From 93e9fca7669fc33a3a0f97e11d4a180317f279ac Mon Sep 17 00:00:00 2001 From: Ilias Rbayti <63159154+Kenshiin13@users.noreply.github.com> Date: Sat, 2 Nov 2024 17:30:10 +0100 Subject: [PATCH 001/138] refactor(SQL/legacy): Add primary key to vehicles table --- [SQL]/legacy.sql | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/[SQL]/legacy.sql b/[SQL]/legacy.sql index 308c608c..53247523 100644 --- a/[SQL]/legacy.sql +++ b/[SQL]/legacy.sql @@ -427,10 +427,12 @@ CREATE TABLE `user_licenses` ( -- CREATE TABLE `vehicles` ( + `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(60) NOT NULL, `model` varchar(60) NOT NULL, `price` int(11) NOT NULL, - `category` varchar(60) DEFAULT NULL + `category` varchar(60) DEFAULT NULL, + PRIMARY KEY (`id`) ) ENGINE=InnoDB; -- From 86c5e64d9fe239a5f922883c8af9eca6d0898be5 Mon Sep 17 00:00:00 2001 From: Ilias Rbayti <63159154+Kenshiin13@users.noreply.github.com> Date: Tue, 5 Nov 2024 08:16:41 +0100 Subject: [PATCH 002/138] replace `id` PK with `model` --- [SQL]/legacy.sql | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/[SQL]/legacy.sql b/[SQL]/legacy.sql index 53247523..b041f32f 100644 --- a/[SQL]/legacy.sql +++ b/[SQL]/legacy.sql @@ -427,12 +427,10 @@ CREATE TABLE `user_licenses` ( -- CREATE TABLE `vehicles` ( - `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(60) NOT NULL, `model` varchar(60) NOT NULL, `price` int(11) NOT NULL, - `category` varchar(60) DEFAULT NULL, - PRIMARY KEY (`id`) + `category` varchar(60) DEFAULT NULL ) ENGINE=InnoDB; -- @@ -823,6 +821,13 @@ ALTER TABLE `licenses` ALTER TABLE `owned_vehicles` ADD PRIMARY KEY (`plate`); +-- +-- +-- Indexes for table `vehicles` +-- +ALTER TABLE `vehicles` + ADD PRIMARY KEY (`model`); + -- -- Indexes for table `rented_vehicles` -- From 26d229d36b8060c8ca30af1092fd020066f47f50 Mon Sep 17 00:00:00 2001 From: Kasey FItton Date: Sat, 9 Nov 2024 08:23:20 +0000 Subject: [PATCH 003/138] experimental: Class and Point imports --- [core]/es_extended/client/imports/class.lua | 21 +++++++ [core]/es_extended/client/imports/point.lua | 44 +++++++++++++++ [core]/es_extended/client/main.lua | 2 +- [core]/es_extended/client/modules/points.lua | 58 ++++++++++++++++++++ [core]/es_extended/fxmanifest.lua | 2 + [core]/es_extended/imports.lua | 19 +++++++ 6 files changed, 145 insertions(+), 1 deletion(-) create mode 100644 [core]/es_extended/client/imports/class.lua create mode 100644 [core]/es_extended/client/imports/point.lua create mode 100644 [core]/es_extended/client/modules/points.lua diff --git a/[core]/es_extended/client/imports/class.lua b/[core]/es_extended/client/imports/class.lua new file mode 100644 index 00000000..0b21d998 --- /dev/null +++ b/[core]/es_extended/client/imports/class.lua @@ -0,0 +1,21 @@ +local class = {} +class.__index = class + +function class:new(...) + local instance = setmetatable({}, self) + if instance.constructor then + local ret = instance:constructor(...) + if type(ret) == 'table' then + return ret + end + end + return instance +end + +function Class(body, heritage) + local prototype = body or {} + prototype.__index = prototype + return setmetatable(prototype, heritage or class) +end + +return Class \ No newline at end of file diff --git a/[core]/es_extended/client/imports/point.lua b/[core]/es_extended/client/imports/point.lua new file mode 100644 index 00000000..2e4a7b9a --- /dev/null +++ b/[core]/es_extended/client/imports/point.lua @@ -0,0 +1,44 @@ +Point = ESX.Class() + +function Point:constructor(properties) + self.coords = properties.coords + self.hidden = properties.hidden or false + self.inside = properties.inside or function() end + self.enter = properties.enter or function() end + self.leave = properties.leave or function() end + self.handle = ESX.CreatePointIntenal(properties.coords, properties.distance, properties.hidden, function() + self.nearby = true + if self.enter then + self:enter() + end + if self.inside then + CreateThread(function() + while self.nearby do + local coords = GetEntityCoords(ESX.PlayerData.ped) + self.currDistance = #(coords - self.coords) + self:inside() + Wait(0) + end + end) + end + end, function() + self.nearby = false + if self.leave then + self:leave() + end + end) +end + +function Point:delete() + ESX.RemovePointInternal(self.handle) +end + +function Point:toggle(hidden) + if hidden == nil then + hidden = not self.hidden + end + self.hidden = hidden + ESX.HidePointInternal(self.handle, hidden) +end + +return Point \ No newline at end of file diff --git a/[core]/es_extended/client/main.lua b/[core]/es_extended/client/main.lua index 8599666d..25a79182 100644 --- a/[core]/es_extended/client/main.lua +++ b/[core]/es_extended/client/main.lua @@ -54,7 +54,7 @@ ESX.SecureNetEvent("esx:playerLoaded", function(xPlayer, _, skin) end Actions:Init() - + StartPointsLoop() StartServerSyncLoops() end) diff --git a/[core]/es_extended/client/modules/points.lua b/[core]/es_extended/client/modules/points.lua new file mode 100644 index 00000000..2723bee3 --- /dev/null +++ b/[core]/es_extended/client/modules/points.lua @@ -0,0 +1,58 @@ +local points = {} + +function ESX.CreatePointIntenal(coords, distance, hidden, enter, leave) + local point = { + coords = coords, + distance = distance, + hidden = hidden, + enter = enter, + leave = leave, + resource = GetInvokingResource() + } + local handle = ESX.Table.SizeOf(points) + 1 + points[handle] = point + return handle +end + +function ESX.RemovePointInternal(handle) + points[handle] = nil +end + +function ESX.HidePointInternal(handle, hidden) + if points[handle] then + points[handle].hidden = hidden + end +end + +function StartPointsLoop() + CreateThread(function() + while true do + local coords = GetEntityCoords(ESX.PlayerData.ped) + for i=1, #points do + local point = points[i] + local distance = #(coords - point.coords) + + if not point.hidden and distance <= point.distance then + if not point.nearby then + points[i].nearby = true + points[i].enter() + end + point.currentDistance = distance + elseif point.nearby then + points[i].nearby = false + points[i].leave() + end + end + Wait(500) + end + end) +end + + +AddEventHandler('onResourceStop', function(resource) + for i=1, #points do + if points[i].resource == resource then + points[i] = nil + end + end +end) diff --git a/[core]/es_extended/fxmanifest.lua b/[core]/es_extended/fxmanifest.lua index 1723b940..13ebbc40 100644 --- a/[core]/es_extended/fxmanifest.lua +++ b/[core]/es_extended/fxmanifest.lua @@ -45,6 +45,7 @@ client_scripts { 'client/modules/wrapper.lua', 'client/modules/callback.lua', 'client/modules/adjustments.lua', + 'client/modules/points.lua', 'client/main.lua', @@ -73,6 +74,7 @@ files { 'html/fonts/pdown.ttf', 'html/fonts/bankgothic.ttf', + "client/imports/*.lua", } dependencies { diff --git a/[core]/es_extended/imports.lua b/[core]/es_extended/imports.lua index 7357675e..f1483d0a 100644 --- a/[core]/es_extended/imports.lua +++ b/[core]/es_extended/imports.lua @@ -21,4 +21,23 @@ if not IsDuplicityVersion() then -- Only register this event for the client ESX.PlayerLoaded = false ESX.PlayerData = {} end) + + local external = {{"Class", "class.lua"}, {"Point", "point.lua"}} + for i=1, #external do + local module = external[i] + local path = string.format("client/imports/%s", module[2]) + + local file = LoadResourceFile("es_extended", path) + if file then + local fn, err = load(file, ('@@es_extended/%s'):format(path)) + + if not fn or err then + return error(('\n^1Error importing module (%s)'):format(external[i])) + end + + ESX[module[1]] = fn() + else + return error(('\n^1Error loading module (%s)'):format(external[i])) + end + end end From 483fee8602fa54de4e105ac9d0a12e5d3c94798e Mon Sep 17 00:00:00 2001 From: Ilias Rbayti <63159154+Kenshiin13@users.noreply.github.com> Date: Sat, 9 Nov 2024 09:34:49 +0100 Subject: [PATCH 004/138] fix(client/modules/points): safely iterate over sparse points table --- [core]/es_extended/client/modules/points.lua | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/[core]/es_extended/client/modules/points.lua b/[core]/es_extended/client/modules/points.lua index 2723bee3..f7bd2191 100644 --- a/[core]/es_extended/client/modules/points.lua +++ b/[core]/es_extended/client/modules/points.lua @@ -28,8 +28,7 @@ function StartPointsLoop() CreateThread(function() while true do local coords = GetEntityCoords(ESX.PlayerData.ped) - for i=1, #points do - local point = points[i] + for i, point in pairs(points) do local distance = #(coords - point.coords) if not point.hidden and distance <= point.distance then @@ -50,9 +49,9 @@ end AddEventHandler('onResourceStop', function(resource) - for i=1, #points do - if points[i].resource == resource then - points[i] = nil - end - end + for i, point in pairs(points) do + if point.resource == resource then + points[i] = nil + end + end end) From 75088230e439fba9712059586491559ce9a26d66 Mon Sep 17 00:00:00 2001 From: Ilias Rbayti <63159154+Kenshiin13@users.noreply.github.com> Date: Sat, 9 Nov 2024 09:39:18 +0100 Subject: [PATCH 005/138] refactor(client/modules/points): Fix function name typo --- [core]/es_extended/client/imports/point.lua | 2 +- [core]/es_extended/client/modules/points.lua | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/[core]/es_extended/client/imports/point.lua b/[core]/es_extended/client/imports/point.lua index 2e4a7b9a..55ec92bc 100644 --- a/[core]/es_extended/client/imports/point.lua +++ b/[core]/es_extended/client/imports/point.lua @@ -6,7 +6,7 @@ function Point:constructor(properties) self.inside = properties.inside or function() end self.enter = properties.enter or function() end self.leave = properties.leave or function() end - self.handle = ESX.CreatePointIntenal(properties.coords, properties.distance, properties.hidden, function() + self.handle = ESX.CreatePointInternal(properties.coords, properties.distance, properties.hidden, function() self.nearby = true if self.enter then self:enter() diff --git a/[core]/es_extended/client/modules/points.lua b/[core]/es_extended/client/modules/points.lua index f7bd2191..fee318be 100644 --- a/[core]/es_extended/client/modules/points.lua +++ b/[core]/es_extended/client/modules/points.lua @@ -1,6 +1,6 @@ local points = {} -function ESX.CreatePointIntenal(coords, distance, hidden, enter, leave) +function ESX.CreatePointInternal(coords, distance, hidden, enter, leave) local point = { coords = coords, distance = distance, From b780e980987030a36e2c808425670fadb560adba Mon Sep 17 00:00:00 2001 From: Kasey FItton Date: Sat, 9 Nov 2024 10:41:25 +0000 Subject: [PATCH 006/138] feat(esx_notifty): new design --- [core]/esx_notify/Notify.lua | 2 +- [core]/esx_notify/fxmanifest.lua | 2 +- [core]/esx_notify/nui/css/style.css | 15 +++++++++------ [core]/esx_notify/nui/js/script.js | 10 +++++----- 4 files changed, 16 insertions(+), 13 deletions(-) diff --git a/[core]/esx_notify/Notify.lua b/[core]/esx_notify/Notify.lua index 26dacd06..a1a17342 100644 --- a/[core]/esx_notify/Notify.lua +++ b/[core]/esx_notify/Notify.lua @@ -1,4 +1,4 @@ -local Debug = ESX.GetConfig().EnableDebug +local Debug = true ---@param notificatonType string the notification type ---@param length number the length of the notification diff --git a/[core]/esx_notify/fxmanifest.lua b/[core]/esx_notify/fxmanifest.lua index c213e0e3..456107c7 100644 --- a/[core]/esx_notify/fxmanifest.lua +++ b/[core]/esx_notify/fxmanifest.lua @@ -2,7 +2,7 @@ fx_version 'adamant' lua54 'yes' game 'gta5' -version '1.11.1' +version '1.11.0' author 'ESX-Framework' description 'A beautiful and simple NUI notification system for ESX' diff --git a/[core]/esx_notify/nui/css/style.css b/[core]/esx_notify/nui/css/style.css index 08fc8c53..6dc29290 100644 --- a/[core]/esx_notify/nui/css/style.css +++ b/[core]/esx_notify/nui/css/style.css @@ -32,8 +32,8 @@ body { min-width: 20rem; width: fit-content; height: 3.5rem; - background: rgba(5, 5, 5, 0.9); - border-radius: 0.5rem; + background: rgba(15, 15, 15, 0.9); + border-radius: 0.4rem; margin-top: 0.5rem; animation: anim 300ms ease-in-out; align-items: center; @@ -47,24 +47,27 @@ body { #root .icon { float: left; - color: #fff; } #root .text { display: inline-block; + color: #fff; margin-left: 0.5rem; } #root .error { - border-bottom: 3px solid #c0392b; + color: #c0392b; + border: 2px solid #c0392b; } #root .success { - border-bottom: 3px solid #2ecc71; + color: #2ecc71; + border: 2px solid #2ecc71; } #root .info { - border-bottom: 3px solid #2980b9; + color: #fb9b04; + border: 2px solid #fb9b04; } .material-symbols-outlined { diff --git a/[core]/esx_notify/nui/js/script.js b/[core]/esx_notify/nui/js/script.js index edb90cb0..54c89967 100644 --- a/[core]/esx_notify/nui/js/script.js +++ b/[core]/esx_notify/nui/js/script.js @@ -15,15 +15,15 @@ const types = { // the color codes example `i ~r~love~s~ donuts` const codes = { - "~r~": "red", + "~r~": "#c0392b", "~b~": "#378cbf", - "~g~": "green", + "~g~": "#2ecc71", "~y~": "yellow", "~p~": "purple", "~c~": "grey", "~m~": "#212121", "~u~": "black", - "~o~": "orange", + "~o~": "#fb9b04", }; w.addEventListener("message", (event) => { @@ -67,8 +67,8 @@ notification = (data) => { `).appendTo(`#root`); setTimeout(() => { - notification.fadeOut(700); - }, data.length); + notification.fadeOut(70); + }, 10000); return notification; }; From 3b6baa31523b5e1f88ce1b2b8e7e0be9d9532938 Mon Sep 17 00:00:00 2001 From: Kasey FItton Date: Sat, 9 Nov 2024 10:42:03 +0000 Subject: [PATCH 007/138] feat(esx_textui): new design --- [core]/esx_textui/nui/css/style.css | 36 +++++++++++++++++++++++------ [core]/esx_textui/nui/js/script.js | 20 +++++++++++----- 2 files changed, 43 insertions(+), 13 deletions(-) diff --git a/[core]/esx_textui/nui/css/style.css b/[core]/esx_textui/nui/css/style.css index 185fa895..bf0d00b7 100644 --- a/[core]/esx_textui/nui/css/style.css +++ b/[core]/esx_textui/nui/css/style.css @@ -1,6 +1,6 @@ :root { --color: white; - --bgColor: #212121; + --bgColor: rgba(15, 15, 15, 0.9); } * { @@ -24,22 +24,32 @@ body { min-width: 15%; width: fit-content; height: 50px; - background: rgba(5, 5, 5, 0.9); + background: rgba(15, 15, 15, 0.9); border-radius: 0.5rem; - animation: growDown 300ms ease-in-out; align-items: center; } +.fadeIn { + animation: growUp 300ms ease-in-out; +} + +.fadeOut { + animation: growDown 300ms ease-in-out; +} + .error { - border-left: 5px solid #c0392b; + border-left: 3px solid #c0392b; + border-right: 3px solid #c0392b; } .success { - border-left: 5px solid #2ecc71; + border-left: 3px solid #2ecc71; + border-right: 3px solid #2ecc71; } .info { - border-left: 5px solid #2980b9; + border-left: 3px solid #fb9b04; + border-right: 3px solid #fb9b04; } .innerText { @@ -62,9 +72,21 @@ body { @keyframes growDown { 0% { + transform: scaleY(1); + } + 50% { + transform: scaleY(1.1); + } + 100% { transform: scaleY(0); } - 80% { +} + +@keyframes growUp { + 0% { + transform: scaleY(0); + } + 50% { transform: scaleY(1.1); } 100% { diff --git a/[core]/esx_textui/nui/js/script.js b/[core]/esx_textui/nui/js/script.js index 2b625e7a..9bbd5c6d 100644 --- a/[core]/esx_textui/nui/js/script.js +++ b/[core]/esx_textui/nui/js/script.js @@ -20,15 +20,15 @@ const types = { // the color codes example `i ~r~love~s~ donuts` const codes = { - "~r~": "red", + "~r~": "#c0392b", "~b~": "#378cbf", - "~g~": "green", + "~g~": "#2ecc71", "~y~": "yellow", "~p~": "purple", "~c~": "grey", "~m~": "#212121", "~u~": "black", - "~o~": "orange", + "~o~": "#fb9b04", }; w.addEventListener("message", (event) => { @@ -47,7 +47,11 @@ w.addEventListener("message", (event) => { } } else if (event.data.action === "hide") { if (lastType !== "") { - doc.getElementById(lastType).style.display = "none"; + doc.getElementById(lastType).classList.add("fadeOut"); + setTimeout(() => { + doc.getElementById(lastType).classList.remove("fadeOut"); + doc.getElementById(lastType).style.display = "none"; + }, 300); } else { console.log("There isn't a textUI displaying!?"); } @@ -78,6 +82,10 @@ notification = (data) => { } doc.getElementById(types[data.type]["id"]).style.display = "block"; - lastType = types[data.type]["id"]; - doc.getElementById(types[data.type]["message"]).innerHTML = data["message"]; + doc.getElementById(types[data.type]["id"]).classList.add("fadeIn"); + setTimeout(() => { + doc.getElementById(types[data.type]["id"]).classList.remove("fadeIn"); + lastType = types[data.type]["id"]; + doc.getElementById(types[data.type]["message"]).innerHTML = data["message"]; + }, 300); }; From 5ae1b3656456dd9bbbbeda9cdc6c5add9e9f0b41 Mon Sep 17 00:00:00 2001 From: Kasey FItton Date: Sat, 9 Nov 2024 10:43:09 +0000 Subject: [PATCH 008/138] fix(esx_notify): disable debug mode --- [core]/esx_notify/Notify.lua | 2 +- [core]/esx_notify/fxmanifest.lua | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/[core]/esx_notify/Notify.lua b/[core]/esx_notify/Notify.lua index a1a17342..26dacd06 100644 --- a/[core]/esx_notify/Notify.lua +++ b/[core]/esx_notify/Notify.lua @@ -1,4 +1,4 @@ -local Debug = true +local Debug = ESX.GetConfig().EnableDebug ---@param notificatonType string the notification type ---@param length number the length of the notification diff --git a/[core]/esx_notify/fxmanifest.lua b/[core]/esx_notify/fxmanifest.lua index 456107c7..c213e0e3 100644 --- a/[core]/esx_notify/fxmanifest.lua +++ b/[core]/esx_notify/fxmanifest.lua @@ -2,7 +2,7 @@ fx_version 'adamant' lua54 'yes' game 'gta5' -version '1.11.0' +version '1.11.1' author 'ESX-Framework' description 'A beautiful and simple NUI notification system for ESX' From c09ce093582e087039ea34c0c8fcf10aa78a5bfe Mon Sep 17 00:00:00 2001 From: Kasey FItton Date: Sat, 9 Nov 2024 10:58:34 +0000 Subject: [PATCH 009/138] feat(esx_progressbar): New styling --- [core]/esx_progressbar/nui/index.html | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/[core]/esx_progressbar/nui/index.html b/[core]/esx_progressbar/nui/index.html index 0ea3bd93..beb84d1b 100644 --- a/[core]/esx_progressbar/nui/index.html +++ b/[core]/esx_progressbar/nui/index.html @@ -28,7 +28,7 @@ min-width: 15%; width: fit-content; height: 45px; - background-color: rgba(5, 5, 5, 0.8); + background-color: rgba(15, 15, 15, 0.9); border-radius: 5px; animation: growDown 300ms ease-in-out; padding-right: 10px; @@ -41,8 +41,8 @@ right: 0; height: 2px; width: 100%; - border-radius: 20px; - background: linear-gradient(to right, #0052d4, #4364f7, #6fb1fc); /* W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */ + border-radius: 15px; + background: linear-gradient(to right, #b84f05, #de7301, #fb9b04); /* W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */ } .icon { @@ -61,7 +61,7 @@ p { flex: auto; word-wrap: break-word; - margin-left: 30px; + margin-left: 35px; margin-top: 15px; } @@ -69,6 +69,7 @@ float: left; margin-left: 5px; font-size: 20px; + color: #fb9b04; } @keyframes growDown { From 3a1adc897905e80240d907715741a91a883f6266 Mon Sep 17 00:00:00 2001 From: iSentrie Date: Sat, 9 Nov 2024 17:20:49 +0200 Subject: [PATCH 010/138] es_extended(server/main.lua): return if no weapon return if target has no weapon --- [core]/es_extended/server/main.lua | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/[core]/es_extended/server/main.lua b/[core]/es_extended/server/main.lua index 1b9c7522..57108b32 100644 --- a/[core]/es_extended/server/main.lua +++ b/[core]/es_extended/server/main.lua @@ -462,6 +462,7 @@ if not Config.CustomInventory then if not targetXPlayer.hasWeapon(itemName) then sourceXPlayer.showNotification(TranslateCap("gave_weapon_noweapon", targetXPlayer.name)) targetXPlayer.showNotification(TranslateCap("received_weapon_noweapon", sourceXPlayer.name, weapon.label)) + return end local _, weaponObject = ESX.GetWeapon(itemName) @@ -502,7 +503,8 @@ if not Config.CustomInventory then if itemCount == nil or itemCount < 1 then return xPlayer.showNotification(TranslateCap("imp_invalid_amount")) end - local account = xPlayer.getAccount(itemName) + + local account = xPlayer.getAccount(itemName) if itemCount > account.money or account.money < 1 then return xPlayer.showNotification(TranslateCap("imp_invalid_amount")) From 247b70a56dc431e996efe798bba6c063ce3afdf3 Mon Sep 17 00:00:00 2001 From: Ilias Rbayti <63159154+Kenshiin13@users.noreply.github.com> Date: Sat, 9 Nov 2024 17:37:32 +0100 Subject: [PATCH 011/138] add locale --- [core]/es_extended/locales/en.lua | 33 +++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/[core]/es_extended/locales/en.lua b/[core]/es_extended/locales/en.lua index 10a0bdd5..c0b71869 100644 --- a/[core]/es_extended/locales/en.lua +++ b/[core]/es_extended/locales/en.lua @@ -378,4 +378,37 @@ Locales["en"] = { ["tint_lspd"] = "blue skin", ["tint_orange"] = "orange skin", ["tint_platinum"] = "platinum skin", + -- MK2 Weapon Tints + ["tint_classic_black"] = "classic black", + ["tint_classic_gray"] = "classic gray", + ["tint_classic_two_tone"] = "classic two-tone", + ["tint_classic_white"] = "classic white", + ["tint_classic_beige"] = "classic beige", + ["tint_classic_green"] = "classic green", + ["tint_classic_blue"] = "classic blue", + ["tint_classic_earth"] = "classic earth", + ["tint_classic_brown_black"] = "classic brown-black", + ["tint_contrast_red"] = "contrast red", + ["tint_contrast_blue"] = "contrast blue", + ["tint_contrast_yellow"] = "contrast yellow", + ["tint_contrast_orange"] = "contrast orange", + ["tint_bold_pink"] = "bold pink", + ["tint_bold_purple_yellow"] = "bold purple-yellow", + ["tint_bold_orange"] = "bold orange", + ["tint_bold_green_purple"] = "bold green-purple", + ["tint_bold_red_feat"] = "bold red feat", + ["tint_bold_green_feat"] = "bold green feat", + ["tint_bold_cyan_feat"] = "bold cyan feat", + ["tint_bold_yellow_feat"] = "bold yellow feat", + ["tint_bold_red_white"] = "bold red-white", + ["tint_bold_blue_white"] = "bold blue-white", + ["tint_metallic_gold"] = "metallic gold", + ["tint_metallic_platinum"] = "metallic platinum", + ["tint_metallic_gray_lilac"] = "metallic gray-lilac", + ["tint_metallic_purple_lime"] = "metallic purple-lime", + ["tint_metallic_red"] = "metallic red", + ["tint_metallic_green"] = "metallic green", + ["tint_metallic_blue"] = "metallic blue", + ["tint_metallic_white_aqua"] = "metallic white-aqua", + ["tint_metallic_red_yellow"] = "metallic red-yellow", } From 5af7bd38a9e01ce1263696763a5320d96d8de9ee Mon Sep 17 00:00:00 2001 From: Ilias Rbayti <63159154+Kenshiin13@users.noreply.github.com> Date: Sat, 9 Nov 2024 17:37:54 +0100 Subject: [PATCH 012/138] add ai-generated locales --- [core]/es_extended/locales/cs.lua | 32 +++++++++++++++++++++++++++ [core]/es_extended/locales/de.lua | 33 ++++++++++++++++++++++++++++ [core]/es_extended/locales/el.lua | 33 ++++++++++++++++++++++++++++ [core]/es_extended/locales/es.lua | 33 ++++++++++++++++++++++++++++ [core]/es_extended/locales/fi.lua | 33 ++++++++++++++++++++++++++++ [core]/es_extended/locales/fr.lua | 33 ++++++++++++++++++++++++++++ [core]/es_extended/locales/he.lua | 33 ++++++++++++++++++++++++++++ [core]/es_extended/locales/hu.lua | 33 ++++++++++++++++++++++++++++ [core]/es_extended/locales/id.lua | 33 ++++++++++++++++++++++++++++ [core]/es_extended/locales/it.lua | 33 ++++++++++++++++++++++++++++ [core]/es_extended/locales/nl.lua | 33 ++++++++++++++++++++++++++++ [core]/es_extended/locales/pl.lua | 33 ++++++++++++++++++++++++++++ [core]/es_extended/locales/sl.lua | 33 ++++++++++++++++++++++++++++ [core]/es_extended/locales/sr.lua | 33 ++++++++++++++++++++++++++++ [core]/es_extended/locales/sv.lua | 33 ++++++++++++++++++++++++++++ [core]/es_extended/locales/zh-cn.lua | 33 ++++++++++++++++++++++++++++ 16 files changed, 527 insertions(+) diff --git a/[core]/es_extended/locales/cs.lua b/[core]/es_extended/locales/cs.lua index 0e9d3a92..a9b278fd 100644 --- a/[core]/es_extended/locales/cs.lua +++ b/[core]/es_extended/locales/cs.lua @@ -368,4 +368,36 @@ Locales["cs"] = { ["tint_lspd"] = "blue skin", ["tint_orange"] = "orange skin", ["tint_platinum"] = "platinum skin", + -- MK2 Weapon Tints + ["tint_classic_gray"] = "klasická šedá", + ["tint_classic_two_tone"] = "klasická dvoutónová", + ["tint_classic_white"] = "klasická bílá", + ["tint_classic_beige"] = "klasická béžová", + ["tint_classic_green"] = "klasická zelená", + ["tint_classic_blue"] = "klasická modrá", + ["tint_classic_earth"] = "klasická hnědá", + ["tint_classic_brown_black"] = "klasická hnědá-černá", + ["tint_contrast_red"] = "kontrastní červená", + ["tint_contrast_blue"] = "kontrastní modrá", + ["tint_contrast_yellow"] = "kontrastní žlutá", + ["tint_contrast_orange"] = "kontrastní oranžová", + ["tint_bold_pink"] = "odvážná růžová", + ["tint_bold_purple_yellow"] = "odvážná fialovo-žlutá", + ["tint_bold_orange"] = "odvážná oranžová", + ["tint_bold_green_purple"] = "odvážná zeleno-fialová", + ["tint_bold_red_feat"] = "odvážná červená feat", + ["tint_bold_green_feat"] = "odvážná zelená feat", + ["tint_bold_cyan_feat"] = "odvážná azurová feat", + ["tint_bold_yellow_feat"] = "odvážná žlutá feat", + ["tint_bold_red_white"] = "odvážná červená bílá", + ["tint_bold_blue_white"] = "odvážná modrá bílá", + ["tint_metallic_gold"] = "metalická zlatá", + ["tint_metallic_platinum"] = "metalická platina", + ["tint_metallic_gray_lilac"] = "metalická šedá lila", + ["tint_metallic_purple_lime"] = "metalická fialová limetka", + ["tint_metallic_red"] = "metalická červená", + ["tint_metallic_green"] = "metalická zelená", + ["tint_metallic_blue"] = "metalická modrá", + ["tint_metallic_white_aqua"] = "metalická bílá aqua", + ["tint_metallic_red_yellow"] = "metalická červená žlutá", } diff --git a/[core]/es_extended/locales/de.lua b/[core]/es_extended/locales/de.lua index cbdb524d..6490f8e7 100644 --- a/[core]/es_extended/locales/de.lua +++ b/[core]/es_extended/locales/de.lua @@ -378,4 +378,37 @@ Locales["de"] = { ["tint_lspd"] = "Blau", ["tint_orange"] = "Orange", ["tint_platinum"] = "Platin", + -- MK2 Weapon Tints + ["tint_classic_black"] = "klassisches Schwarz", + ["tint_classic_gray"] = "klassisches Grau", + ["tint_classic_two_tone"] = "klassisches Zwei-Ton", + ["tint_classic_white"] = "klassisches Weiß", + ["tint_classic_beige"] = "klassisches Beige", + ["tint_classic_green"] = "klassisches Grün", + ["tint_classic_blue"] = "klassisches Blau", + ["tint_classic_earth"] = "klassisches Erdfarben", + ["tint_classic_brown_black"] = "klassisches Braun-Schwarz", + ["tint_contrast_red"] = "Kontrast Rot", + ["tint_contrast_blue"] = "Kontrast Blau", + ["tint_contrast_yellow"] = "Kontrast Gelb", + ["tint_contrast_orange"] = "Kontrast Orange", + ["tint_bold_pink"] = "fette Pink", + ["tint_bold_purple_yellow"] = "fette Lila-Gelb", + ["tint_bold_orange"] = "fette Orange", + ["tint_bold_green_purple"] = "fette Grün-Lila", + ["tint_bold_red_feat"] = "fette Rot feat", + ["tint_bold_green_feat"] = "fette Grün feat", + ["tint_bold_cyan_feat"] = "fette Cyan feat", + ["tint_bold_yellow_feat"] = "fette Gelb feat", + ["tint_bold_red_white"] = "fette Rot Weiß", + ["tint_bold_blue_white"] = "fette Blau Weiß", + ["tint_metallic_gold"] = "metallisches Gold", + ["tint_metallic_platinum"] = "metallisches Platin", + ["tint_metallic_gray_lilac"] = "metallisches Grau-Lila", + ["tint_metallic_purple_lime"] = "metallisches Lila-Limette", + ["tint_metallic_red"] = "metallisches Rot", + ["tint_metallic_green"] = "metallisches Grün", + ["tint_metallic_blue"] = "metallisches Blau", + ["tint_metallic_white_aqua"] = "metallisches Weiß-Aqua", + ["tint_metallic_red_yellow"] = "metallisches Rot-Gelb", } diff --git a/[core]/es_extended/locales/el.lua b/[core]/es_extended/locales/el.lua index 1de660c6..ba1d1ab0 100644 --- a/[core]/es_extended/locales/el.lua +++ b/[core]/es_extended/locales/el.lua @@ -378,4 +378,37 @@ Locales["el"] = { ["tint_lspd"] = "μπλε δέρμα", ["tint_orange"] = "πορτοκαλί δέρμα", ["tint_platinum"] = "πλατίνενο δέρμα", + -- MK2 Weapon Tints + ["tint_classic_black"] = "κλασικό μαύρο", + ["tint_classic_gray"] = "κλασικό γκρι", + ["tint_classic_two_tone"] = "κλασικό δίχρωμο", + ["tint_classic_white"] = "κλασικό λευκό", + ["tint_classic_beige"] = "κλασικό μπεζ", + ["tint_classic_green"] = "κλασικό πράσινο", + ["tint_classic_blue"] = "κλασικό μπλε", + ["tint_classic_earth"] = "κλασική γή", + ["tint_classic_brown_black"] = "κλασικό καφέ-μαύρο", + ["tint_contrast_red"] = "αντίθεση κόκκινο", + ["tint_contrast_blue"] = "αντίθεση μπλε", + ["tint_contrast_yellow"] = "αντίθεση κίτρινο", + ["tint_contrast_orange"] = "αντίθεση πορτοκαλί", + ["tint_bold_pink"] = "τολμηρό ροζ", + ["tint_bold_purple_yellow"] = "τολμηρό μοβ-κίτρινο", + ["tint_bold_orange"] = "τολμηρό πορτοκαλί", + ["tint_bold_green_purple"] = "τολμηρό πράσινο-μοβ", + ["tint_bold_red_feat"] = "τολμηρό κόκκινο feat", + ["tint_bold_green_feat"] = "τολμηρό πράσινο feat", + ["tint_bold_cyan_feat"] = "τολμηρό κυανό feat", + ["tint_bold_yellow_feat"] = "τολμηρό κίτρινο feat", + ["tint_bold_red_white"] = "τολμηρό κόκκινο λευκό", + ["tint_bold_blue_white"] = "τολμηρό μπλε λευκό", + ["tint_metallic_gold"] = "μεταλλικό χρυσό", + ["tint_metallic_platinum"] = "μεταλλικό πλατίνα", + ["tint_metallic_gray_lilac"] = "μεταλλικό γκρι λιλά", + ["tint_metallic_purple_lime"] = "μεταλλικό μοβ-λάιμ", + ["tint_metallic_red"] = "μεταλλικό κόκκινο", + ["tint_metallic_green"] = "μεταλλικό πράσινο", + ["tint_metallic_blue"] = "μεταλλικό μπλε", + ["tint_metallic_white_aqua"] = "μεταλλικό λευκό aqua", + ["tint_metallic_red_yellow"] = "μεταλλικό κόκκινο-κίτρινο", } diff --git a/[core]/es_extended/locales/es.lua b/[core]/es_extended/locales/es.lua index 9ee9a33b..1b085880 100644 --- a/[core]/es_extended/locales/es.lua +++ b/[core]/es_extended/locales/es.lua @@ -363,6 +363,39 @@ Locales["es"] = { ["tint_lspd"] = "Skin Azul", ["tint_orange"] = "Skin Naranja", ["tint_platinum"] = "Skin Plata", + -- MK2 Weapon Tints + ["tint_classic_black"] = "negro clásico", + ["tint_classic_gray"] = "gris clásico", + ["tint_classic_two_tone"] = "dos tonos clásicos", + ["tint_classic_white"] = "blanco clásico", + ["tint_classic_beige"] = "beige clásico", + ["tint_classic_green"] = "verde clásico", + ["tint_classic_blue"] = "azul clásico", + ["tint_classic_earth"] = "tierra clásica", + ["tint_classic_brown_black"] = "marrón negro clásico", + ["tint_contrast_red"] = "rojo de contraste", + ["tint_contrast_blue"] = "azul de contraste", + ["tint_contrast_yellow"] = "amarillo de contraste", + ["tint_contrast_orange"] = "naranja de contraste", + ["tint_bold_pink"] = "rosa atrevida", + ["tint_bold_purple_yellow"] = "púrpura amarilla atrevida", + ["tint_bold_orange"] = "naranja atrevido", + ["tint_bold_green_purple"] = "verde púrpura atrevido", + ["tint_bold_red_feat"] = "rojo atrevido feat", + ["tint_bold_green_feat"] = "verde atrevido feat", + ["tint_bold_cyan_feat"] = "cian atrevido feat", + ["tint_bold_yellow_feat"] = "amarillo atrevido feat", + ["tint_bold_red_white"] = "rojo blanco atrevido", + ["tint_bold_blue_white"] = "azul blanco atrevido", + ["tint_metallic_gold"] = "oro metálico", + ["tint_metallic_platinum"] = "platino metálico", + ["tint_metallic_gray_lilac"] = "gris lila metálico", + ["tint_metallic_purple_lime"] = "púrpura lima metálico", + ["tint_metallic_red"] = "rojo metálico", + ["tint_metallic_green"] = "verde metálico", + ["tint_metallic_blue"] = "azul metálico", + ["tint_metallic_white_aqua"] = "blanco aqua metálico", + ["tint_metallic_red_yellow"] = "rojo amarillo metálico", -- Duty related ["stopped_duty"] = "Has salido de servicio.", diff --git a/[core]/es_extended/locales/fi.lua b/[core]/es_extended/locales/fi.lua index 983fa79b..4d71ff48 100644 --- a/[core]/es_extended/locales/fi.lua +++ b/[core]/es_extended/locales/fi.lua @@ -237,4 +237,37 @@ Locales["fi"] = { ["tint_lspd"] = "Sininen ulkokuori", ["tint_orange"] = "Oranssi ulkokuori", ["tint_platinum"] = "Platina ulkokuori", + -- MK2 Weapon Tints + ["tint_classic_black"] = "klassinen musta", + ["tint_classic_gray"] = "klassinen harmaa", + ["tint_classic_two_tone"] = "klassinen kaksivärinen", + ["tint_classic_white"] = "klassinen valkoinen", + ["tint_classic_beige"] = "klassinen beessi", + ["tint_classic_green"] = "klassinen vihreä", + ["tint_classic_blue"] = "klassinen sininen", + ["tint_classic_earth"] = "klassinen maa", + ["tint_classic_brown_black"] = "klassinen ruskea-musta", + ["tint_contrast_red"] = "kontrastinen punainen", + ["tint_contrast_blue"] = "kontrastinen sininen", + ["tint_contrast_yellow"] = "kontrastinen keltainen", + ["tint_contrast_orange"] = "kontrastinen oranssi", + ["tint_bold_pink"] = "rohkea vaaleanpunainen", + ["tint_bold_purple_yellow"] = "rohkea violetti-keltainen", + ["tint_bold_orange"] = "rohkea oranssi", + ["tint_bold_green_purple"] = "rohkea vihreä-violetti", + ["tint_bold_red_feat"] = "rohkea punainen feat", + ["tint_bold_green_feat"] = "rohkea vihreä feat", + ["tint_bold_cyan_feat"] = "rohkea syaani feat", + ["tint_bold_yellow_feat"] = "rohkea keltainen feat", + ["tint_bold_red_white"] = "rohkea punainen valkoinen", + ["tint_bold_blue_white"] = "rohkea sininen valkoinen", + ["tint_metallic_gold"] = "metallinen kulta", + ["tint_metallic_platinum"] = "metallinen platina", + ["tint_metallic_gray_lilac"] = "metallinen harmaa lila", + ["tint_metallic_purple_lime"] = "metallinen violetti limetti", + ["tint_metallic_red"] = "metallinen punainen", + ["tint_metallic_green"] = "metallinen vihreä", + ["tint_metallic_blue"] = "metallinen sininen", + ["tint_metallic_white_aqua"] = "metallinen valkoinen aqua", + ["tint_metallic_red_yellow"] = "metallinen punainen keltainen", } diff --git a/[core]/es_extended/locales/fr.lua b/[core]/es_extended/locales/fr.lua index 44760c69..3792406e 100644 --- a/[core]/es_extended/locales/fr.lua +++ b/[core]/es_extended/locales/fr.lua @@ -378,4 +378,37 @@ Locales["fr"] = { ["tint_lspd"] = "skin bleu", ["tint_orange"] = "skin orange", ["tint_platinum"] = "skin platine", + -- MK2 Weapon Tints + ["tint_classic_black"] = "noir classique", + ["tint_classic_gray"] = "gris classique", + ["tint_classic_two_tone"] = "deux tons classiques", + ["tint_classic_white"] = "blanc classique", + ["tint_classic_beige"] = "beige classique", + ["tint_classic_green"] = "vert classique", + ["tint_classic_blue"] = "bleu classique", + ["tint_classic_earth"] = "terre classique", + ["tint_classic_brown_black"] = "marron noir classique", + ["tint_contrast_red"] = "rouge contrasté", + ["tint_contrast_blue"] = "bleu contrasté", + ["tint_contrast_yellow"] = "jaune contrasté", + ["tint_contrast_orange"] = "orange contrasté", + ["tint_bold_pink"] = "rose audacieux", + ["tint_bold_purple_yellow"] = "violet jaune audacieux", + ["tint_bold_orange"] = "orange audacieux", + ["tint_bold_green_purple"] = "vert violet audacieux", + ["tint_bold_red_feat"] = "rouge audacieux feat", + ["tint_bold_green_feat"] = "vert audacieux feat", + ["tint_bold_cyan_feat"] = "cyan audacieux feat", + ["tint_bold_yellow_feat"] = "jaune audacieux feat", + ["tint_bold_red_white"] = "rouge blanc audacieux", + ["tint_bold_blue_white"] = "bleu blanc audacieux", + ["tint_metallic_gold"] = "or métallique", + ["tint_metallic_platinum"] = "platine métallique", + ["tint_metallic_gray_lilac"] = "gris lilas métallique", + ["tint_metallic_purple_lime"] = "violet lime métallique", + ["tint_metallic_red"] = "rouge métallique", + ["tint_metallic_green"] = "vert métallique", + ["tint_metallic_blue"] = "bleu métallique", + ["tint_metallic_white_aqua"] = "blanc aqua métallique", + ["tint_metallic_red_yellow"] = "rouge jaune métallique", } diff --git a/[core]/es_extended/locales/he.lua b/[core]/es_extended/locales/he.lua index 12ebc9e5..d6216573 100644 --- a/[core]/es_extended/locales/he.lua +++ b/[core]/es_extended/locales/he.lua @@ -372,4 +372,37 @@ Locales["he"] = { ["tint_lspd"] = "צבע כחול", ["tint_orange"] = "צבע כתום", ["tint_platinum"] = "צבע פלטינה", + -- MK2 Weapon Tints + ["tint_classic_black"] = "שחור קלאסי", + ["tint_classic_gray"] = "אפור קלאסי", + ["tint_classic_two_tone"] = "קלאסי דו-גוני", + ["tint_classic_white"] = "לבן קלאסי", + ["tint_classic_beige"] = "בז' קלאסי", + ["tint_classic_green"] = "ירוק קלאסי", + ["tint_classic_blue"] = "כחול קלאסי", + ["tint_classic_earth"] = "אדמה קלאסית", + ["tint_classic_brown_black"] = "חום שחור קלאסי", + ["tint_contrast_red"] = "אדום קונטרסט", + ["tint_contrast_blue"] = "כחול קונטרסט", + ["tint_contrast_yellow"] = "צהוב קונטרסט", + ["tint_contrast_orange"] = "כתום קונטרסט", + ["tint_bold_pink"] = "ורוד נועז", + ["tint_bold_purple_yellow"] = "סגול צהוב נועז", + ["tint_bold_orange"] = "כתום נועז", + ["tint_bold_green_purple"] = "ירוק סגול נועז", + ["tint_bold_red_feat"] = "אדום נועז feat", + ["tint_bold_green_feat"] = "ירוק נועז feat", + ["tint_bold_cyan_feat"] = "סיאן נועז feat", + ["tint_bold_yellow_feat"] = "צהוב נועז feat", + ["tint_bold_red_white"] = "אדום לבן נועז", + ["tint_bold_blue_white"] = "כחול לבן נועז", + ["tint_metallic_gold"] = "זהב מתכתי", + ["tint_metallic_platinum"] = "פלטינה מתכתית", + ["tint_metallic_gray_lilac"] = "אפור לילך מתכתי", + ["tint_metallic_purple_lime"] = "סגול ליים מתכתי", + ["tint_metallic_red"] = "אדום מתכתי", + ["tint_metallic_green"] = "ירוק מתכתי", + ["tint_metallic_blue"] = "כחול מתכתי", + ["tint_metallic_white_aqua"] = "לבן aqua מתכתי", + ["tint_metallic_red_yellow"] = "אדום צהוב מתכתי", } diff --git a/[core]/es_extended/locales/hu.lua b/[core]/es_extended/locales/hu.lua index 6971d662..8e1e1d38 100644 --- a/[core]/es_extended/locales/hu.lua +++ b/[core]/es_extended/locales/hu.lua @@ -374,6 +374,39 @@ Locales["hu"] = { ["tint_lspd"] = "blue skin", ["tint_orange"] = "orange skin", ["tint_platinum"] = "platinum skin", + -- MK2 Weapon Tints + ["tint_classic_black"] = "klasszikus fekete", + ["tint_classic_gray"] = "klasszikus szürke", + ["tint_classic_two_tone"] = "klasszikus két szín", + ["tint_classic_white"] = "klasszikus fehér", + ["tint_classic_beige"] = "klasszikus bézs", + ["tint_classic_green"] = "klasszikus zöld", + ["tint_classic_blue"] = "klasszikus kék", + ["tint_classic_earth"] = "klasszikus föld", + ["tint_classic_brown_black"] = "klasszikus barna-fekete", + ["tint_contrast_red"] = "kontraszt piros", + ["tint_contrast_blue"] = "kontraszt kék", + ["tint_contrast_yellow"] = "kontraszt sárga", + ["tint_contrast_orange"] = "kontraszt narancs", + ["tint_bold_pink"] = "merész rózsaszín", + ["tint_bold_purple_yellow"] = "merész lila-sárga", + ["tint_bold_orange"] = "merész narancs", + ["tint_bold_green_purple"] = "merész zöld-lila", + ["tint_bold_red_feat"] = "merész piros feat", + ["tint_bold_green_feat"] = "merész zöld feat", + ["tint_bold_cyan_feat"] = "merész cián feat", + ["tint_bold_yellow_feat"] = "merész sárga feat", + ["tint_bold_red_white"] = "merész piros fehér", + ["tint_bold_blue_white"] = "merész kék fehér", + ["tint_metallic_gold"] = "metál arany", + ["tint_metallic_platinum"] = "metál platina", + ["tint_metallic_gray_lilac"] = "metál szürke lila", + ["tint_metallic_purple_lime"] = "metál lila lime", + ["tint_metallic_red"] = "metál piros", + ["tint_metallic_green"] = "metál zöld", + ["tint_metallic_blue"] = "metál kék", + ["tint_metallic_white_aqua"] = "metál fehér aqua", + ["tint_metallic_red_yellow"] = "metál piros sárga", -- Duty related ["stopped_duty"] = "Leadtad a szolgálatot.", diff --git a/[core]/es_extended/locales/id.lua b/[core]/es_extended/locales/id.lua index 1d7d1d82..bbd2587c 100644 --- a/[core]/es_extended/locales/id.lua +++ b/[core]/es_extended/locales/id.lua @@ -378,4 +378,37 @@ Locales["id"] = { ["tint_lspd"] = "blue skin", ["tint_orange"] = "orange skin", ["tint_platinum"] = "platinum skin", + -- MK2 Weapon Tints + ["tint_classic_black"] = "hitam klasik", + ["tint_classic_gray"] = "abu-abu klasik", + ["tint_classic_two_tone"] = "dua warna klasik", + ["tint_classic_white"] = "putih klasik", + ["tint_classic_beige"] = "beige klasik", + ["tint_classic_green"] = "hijau klasik", + ["tint_classic_blue"] = "biru klasik", + ["tint_classic_earth"] = "tanah klasik", + ["tint_classic_brown_black"] = "coklat hitam klasik", + ["tint_contrast_red"] = "merah kontras", + ["tint_contrast_blue"] = "biru kontras", + ["tint_contrast_yellow"] = "kuning kontras", + ["tint_contrast_orange"] = "oren kontras", + ["tint_bold_pink"] = "pink berani", + ["tint_bold_purple_yellow"] = "ungu kuning berani", + ["tint_bold_orange"] = "oren berani", + ["tint_bold_green_purple"] = "hijau ungu berani", + ["tint_bold_red_feat"] = "merah berani feat", + ["tint_bold_green_feat"] = "hijau berani feat", + ["tint_bold_cyan_feat"] = "sian berani feat", + ["tint_bold_yellow_feat"] = "kuning berani feat", + ["tint_bold_red_white"] = "merah putih berani", + ["tint_bold_blue_white"] = "biru putih berani", + ["tint_metallic_gold"] = "emas metalik", + ["tint_metallic_platinum"] = "platina metalik", + ["tint_metallic_gray_lilac"] = "abu-abu lilac metalik", + ["tint_metallic_purple_lime"] = "ungu jeruk nipis metalik", + ["tint_metallic_red"] = "merah metalik", + ["tint_metallic_green"] = "hijau metalik", + ["tint_metallic_blue"] = "biru metalik", + ["tint_metallic_white_aqua"] = "putih aqua metalik", + ["tint_metallic_red_yellow"] = "merah kuning metalik", } diff --git a/[core]/es_extended/locales/it.lua b/[core]/es_extended/locales/it.lua index 24280c15..8a7caf59 100644 --- a/[core]/es_extended/locales/it.lua +++ b/[core]/es_extended/locales/it.lua @@ -378,4 +378,37 @@ Locales["it"] = { ["tint_lspd"] = "color blu", ["tint_orange"] = "color arancio", ["tint_platinum"] = "color platino", + -- MK2 Weapon Tints + ["tint_classic_black"] = "nero classico", + ["tint_classic_gray"] = "grigio classico", + ["tint_classic_two_tone"] = "due toni classico", + ["tint_classic_white"] = "bianco classico", + ["tint_classic_beige"] = "beige classico", + ["tint_classic_green"] = "verde classico", + ["tint_classic_blue"] = "blu classico", + ["tint_classic_earth"] = "terra classica", + ["tint_classic_brown_black"] = "marrone nero classico", + ["tint_contrast_red"] = "rosso contrastante", + ["tint_contrast_blue"] = "blu contrastante", + ["tint_contrast_yellow"] = "giallo contrastante", + ["tint_contrast_orange"] = "arancione contrastante", + ["tint_bold_pink"] = "rosa audace", + ["tint_bold_purple_yellow"] = "viola giallo audace", + ["tint_bold_orange"] = "arancione audace", + ["tint_bold_green_purple"] = "verde viola audace", + ["tint_bold_red_feat"] = "rosso audace feat", + ["tint_bold_green_feat"] = "verde audace feat", + ["tint_bold_cyan_feat"] = "cyan audace feat", + ["tint_bold_yellow_feat"] = "giallo audace feat", + ["tint_bold_red_white"] = "rosso bianco audace", + ["tint_bold_blue_white"] = "blu bianco audace", + ["tint_metallic_gold"] = "oro metallico", + ["tint_metallic_platinum"] = "platino metallico", + ["tint_metallic_gray_lilac"] = "grigio lilla metallico", + ["tint_metallic_purple_lime"] = "viola lime metallico", + ["tint_metallic_red"] = "rosso metallico", + ["tint_metallic_green"] = "verde metallico", + ["tint_metallic_blue"] = "blu metallico", + ["tint_metallic_white_aqua"] = "bianco aqua metallico", + ["tint_metallic_red_yellow"] = "rosso giallo metallico", } diff --git a/[core]/es_extended/locales/nl.lua b/[core]/es_extended/locales/nl.lua index b6a699ac..2dee1716 100644 --- a/[core]/es_extended/locales/nl.lua +++ b/[core]/es_extended/locales/nl.lua @@ -369,4 +369,37 @@ Locales["nl"] = { ["tint_lspd"] = "blauwe skin", ["tint_orange"] = "oranje skin", ["tint_platinum"] = "platina skin", + -- MK2 Weapon Tints + ["tint_classic_black"] = "klassiek zwart", + ["tint_classic_gray"] = "klassiek grijs", + ["tint_classic_two_tone"] = "klassiek twee-tonig", + ["tint_classic_white"] = "klassiek wit", + ["tint_classic_beige"] = "klassiek beige", + ["tint_classic_green"] = "klassiek groen", + ["tint_classic_blue"] = "klassiek blauw", + ["tint_classic_earth"] = "klassieke aarde", + ["tint_classic_brown_black"] = "klassiek bruin zwart", + ["tint_contrast_red"] = "contrast rood", + ["tint_contrast_blue"] = "contrast blauw", + ["tint_contrast_yellow"] = "contrast geel", + ["tint_contrast_orange"] = "contrast oranje", + ["tint_bold_pink"] = "gedurfde roze", + ["tint_bold_purple_yellow"] = "gedurfde paarse geel", + ["tint_bold_orange"] = "gedurfde oranje", + ["tint_bold_green_purple"] = "gedurfde groene paarse", + ["tint_bold_red_feat"] = "gedurfde rode feat", + ["tint_bold_green_feat"] = "gedurfde groene feat", + ["tint_bold_cyan_feat"] = "gedurfde cyaan feat", + ["tint_bold_yellow_feat"] = "gedurfde gele feat", + ["tint_bold_red_white"] = "gedurfde rode witte", + ["tint_bold_blue_white"] = "gedurfde blauwe witte", + ["tint_metallic_gold"] = "metallisch goud", + ["tint_metallic_platinum"] = "metallisch platina", + ["tint_metallic_gray_lilac"] = "metallisch grijs lila", + ["tint_metallic_purple_lime"] = "metallisch paarse limo", + ["tint_metallic_red"] = "metallisch rood", + ["tint_metallic_green"] = "metallisch groen", + ["tint_metallic_blue"] = "metallisch blauw", + ["tint_metallic_white_aqua"] = "metallisch wit aqua", + ["tint_metallic_red_yellow"] = "metallisch rood geel", } diff --git a/[core]/es_extended/locales/pl.lua b/[core]/es_extended/locales/pl.lua index d50f91eb..a9dceb4f 100644 --- a/[core]/es_extended/locales/pl.lua +++ b/[core]/es_extended/locales/pl.lua @@ -236,4 +236,37 @@ Locales["pl"] = { ["tint_lspd"] = "niebieski skin", ["tint_orange"] = "pomarańczowy skin", ["tint_platinum"] = "platynowy skin", + -- MK2 Weapon Tints + ["tint_classic_black"] = "klasyczna czerń", + ["tint_classic_gray"] = "klasyczny szary", + ["tint_classic_two_tone"] = "klasyczny dwutonowy", + ["tint_classic_white"] = "klasyczna biel", + ["tint_classic_beige"] = "klasyczny beż", + ["tint_classic_green"] = "klasyczna zieleń", + ["tint_classic_blue"] = "klasyczny niebieski", + ["tint_classic_earth"] = "klasyczna ziemia", + ["tint_classic_brown_black"] = "klasyczny brązowo-czarny", + ["tint_contrast_red"] = "kontrastowy czerwony", + ["tint_contrast_blue"] = "kontrastowy niebieski", + ["tint_contrast_yellow"] = "kontrastowy żółty", + ["tint_contrast_orange"] = "kontrastowy pomarańczowy", + ["tint_bold_pink"] = "odważny różowy", + ["tint_bold_purple_yellow"] = "odważny fioletowo-żółty", + ["tint_bold_orange"] = "odważny pomarańczowy", + ["tint_bold_green_purple"] = "odważny zielono-fioletowy", + ["tint_bold_red_feat"] = "odważny czerwony feat", + ["tint_bold_green_feat"] = "odważny zielony feat", + ["tint_bold_cyan_feat"] = "odważny cyjan feat", + ["tint_bold_yellow_feat"] = "odważny żółty feat", + ["tint_bold_red_white"] = "odważny czerwony biały", + ["tint_bold_blue_white"] = "odważny niebieski biały", + ["tint_metallic_gold"] = "złoto metaliczne", + ["tint_metallic_platinum"] = "platyna metaliczna", + ["tint_metallic_gray_lilac"] = "szaro-liliowe metaliczne", + ["tint_metallic_purple_lime"] = "fioletowo-limonkowe metaliczne", + ["tint_metallic_red"] = "czerwony metaliczny", + ["tint_metallic_green"] = "zielony metaliczny", + ["tint_metallic_blue"] = "niebieski metaliczny", + ["tint_metallic_white_aqua"] = "białe aqua metaliczne", + ["tint_metallic_red_yellow"] = "czerwono-żółte metaliczne", } diff --git a/[core]/es_extended/locales/sl.lua b/[core]/es_extended/locales/sl.lua index 2c3e1f8e..da0c9de4 100644 --- a/[core]/es_extended/locales/sl.lua +++ b/[core]/es_extended/locales/sl.lua @@ -374,4 +374,37 @@ Locales["sl"] = { ["tint_lspd"] = "blue skin", ["tint_orange"] = "orange skin", ["tint_platinum"] = "platinum skin", + -- MK2 Weapon Tints + ["tint_classic_black"] = "klasična črna", + ["tint_classic_gray"] = "klasična siva", + ["tint_classic_two_tone"] = "klasična dvo-tonska", + ["tint_classic_white"] = "klasična bela", + ["tint_classic_beige"] = "klasična bež", + ["tint_classic_green"] = "klasična zelena", + ["tint_classic_blue"] = "klasična modra", + ["tint_classic_earth"] = "klasična zemlja", + ["tint_classic_brown_black"] = "klasična rjava-črna", + ["tint_contrast_red"] = "kontrastna rdeča", + ["tint_contrast_blue"] = "kontrastna modra", + ["tint_contrast_yellow"] = "kontrastna rumena", + ["tint_contrast_orange"] = "kontrastna oranžna", + ["tint_bold_pink"] = "drzna roza", + ["tint_bold_purple_yellow"] = "drzna vijolično-rumena", + ["tint_bold_orange"] = "drzna oranžna", + ["tint_bold_green_purple"] = "drzna zelena-vijolična", + ["tint_bold_red_feat"] = "drzna rdeča feat", + ["tint_bold_green_feat"] = "drzna zelena feat", + ["tint_bold_cyan_feat"] = "drzna cian feat", + ["tint_bold_yellow_feat"] = "drzna rumena feat", + ["tint_bold_red_white"] = "drzna rdeča bela", + ["tint_bold_blue_white"] = "drzna modra bela", + ["tint_metallic_gold"] = "metalik zlato", + ["tint_metallic_platinum"] = "metalik platina", + ["tint_metallic_gray_lilac"] = "metalik siv lila", + ["tint_metallic_purple_lime"] = "metalik vijolična limona", + ["tint_metallic_red"] = "metalik rdeča", + ["tint_metallic_green"] = "metalik zelena", + ["tint_metallic_blue"] = "metalik modra", + ["tint_metallic_white_aqua"] = "metalik bela aqua", + ["tint_metallic_red_yellow"] = "metalik rdeče rumeno", } diff --git a/[core]/es_extended/locales/sr.lua b/[core]/es_extended/locales/sr.lua index 6aefa25b..9ef51703 100644 --- a/[core]/es_extended/locales/sr.lua +++ b/[core]/es_extended/locales/sr.lua @@ -374,4 +374,37 @@ Locales["sr"] = { ["tint_lspd"] = "blue skin", ["tint_orange"] = "orange skin", ["tint_platinum"] = "platinum skin", + -- MK2 Weapon Tints + ["tint_classic_black"] = "klasična crna", + ["tint_classic_gray"] = "klasična siva", + ["tint_classic_two_tone"] = "klasična dvo-tonska", + ["tint_classic_white"] = "klasična bela", + ["tint_classic_beige"] = "klasična bež", + ["tint_classic_green"] = "klasična zelena", + ["tint_classic_blue"] = "klasična plava", + ["tint_classic_earth"] = "klasična zemlja", + ["tint_classic_brown_black"] = "klasična braon-crna", + ["tint_contrast_red"] = "kontrastna crvena", + ["tint_contrast_blue"] = "kontrastna plava", + ["tint_contrast_yellow"] = "kontrastna žuta", + ["tint_contrast_orange"] = "kontrastna narandžasta", + ["tint_bold_pink"] = "drska roze", + ["tint_bold_purple_yellow"] = "drska ljubičasto-žuta", + ["tint_bold_orange"] = "drska narandžasta", + ["tint_bold_green_purple"] = "drska zelena-ljubičasta", + ["tint_bold_red_feat"] = "drska crvena feat", + ["tint_bold_green_feat"] = "drska zelena feat", + ["tint_bold_cyan_feat"] = "drska cijan feat", + ["tint_bold_yellow_feat"] = "drska žuta feat", + ["tint_bold_red_white"] = "drska crvena bela", + ["tint_bold_blue_white"] = "drska plava bela", + ["tint_metallic_gold"] = "metalik zlatna", + ["tint_metallic_platinum"] = "metalik platina", + ["tint_metallic_gray_lilac"] = "metalik siva lila", + ["tint_metallic_purple_lime"] = "metalik ljubičasta limeta", + ["tint_metallic_red"] = "metalik crvena", + ["tint_metallic_green"] = "metalik zelena", + ["tint_metallic_blue"] = "metalik plava", + ["tint_metallic_white_aqua"] = "metalik bela aqua", + ["tint_metallic_red_yellow"] = "metalik crvena-žuta", } diff --git a/[core]/es_extended/locales/sv.lua b/[core]/es_extended/locales/sv.lua index 193089a7..e528baca 100644 --- a/[core]/es_extended/locales/sv.lua +++ b/[core]/es_extended/locales/sv.lua @@ -378,4 +378,37 @@ Locales["sv"] = { ["tint_lspd"] = "blue skin", ["tint_orange"] = "orange skin", ["tint_platinum"] = "platinum skin", + -- MK2 Weapon Tints + ["tint_classic_black"] = "klassisk svart", + ["tint_classic_gray"] = "klassisk grå", + ["tint_classic_two_tone"] = "klassisk tvåfärgad", + ["tint_classic_white"] = "klassisk vit", + ["tint_classic_beige"] = "klassisk beige", + ["tint_classic_green"] = "klassisk grön", + ["tint_classic_blue"] = "klassisk blå", + ["tint_classic_earth"] = "klassisk jord", + ["tint_classic_brown_black"] = "klassisk brun svart", + ["tint_contrast_red"] = "kontrast röd", + ["tint_contrast_blue"] = "kontrast blå", + ["tint_contrast_yellow"] = "kontrast gul", + ["tint_contrast_orange"] = "kontrast orange", + ["tint_bold_pink"] = "djärv rosa", + ["tint_bold_purple_yellow"] = "djärv lila gul", + ["tint_bold_orange"] = "djärv orange", + ["tint_bold_green_purple"] = "djärv grön lila", + ["tint_bold_red_feat"] = "djärv röd feat", + ["tint_bold_green_feat"] = "djärv grön feat", + ["tint_bold_cyan_feat"] = "djärv cyan feat", + ["tint_bold_yellow_feat"] = "djärv gul feat", + ["tint_bold_red_white"] = "djärv röd vit", + ["tint_bold_blue_white"] = "djärv blå vit", + ["tint_metallic_gold"] = "metalliskt guld", + ["tint_metallic_platinum"] = "metalliskt platina", + ["tint_metallic_gray_lilac"] = "metalliskt grå lila", + ["tint_metallic_purple_lime"] = "metalliskt lila lime", + ["tint_metallic_red"] = "metalliskt röd", + ["tint_metallic_green"] = "metalliskt grön", + ["tint_metallic_blue"] = "metalliskt blå", + ["tint_metallic_white_aqua"] = "metalliskt vitt aqua", + ["tint_metallic_red_yellow"] = "metalliskt röd gul", } diff --git a/[core]/es_extended/locales/zh-cn.lua b/[core]/es_extended/locales/zh-cn.lua index a8a1ad8e..5971cc35 100644 --- a/[core]/es_extended/locales/zh-cn.lua +++ b/[core]/es_extended/locales/zh-cn.lua @@ -374,4 +374,37 @@ Locales["zh-cn"] = { ["tint_lspd"] = "洛圣都警局色调", ["tint_orange"] = "橙色调", ["tint_platinum"] = "铂金色调", + -- MK2 Weapon Tints + ["tint_classic_black"] = "经典黑色", + ["tint_classic_gray"] = "经典灰色", + ["tint_classic_two_tone"] = "经典双色", + ["tint_classic_white"] = "经典白色", + ["tint_classic_beige"] = "经典米色", + ["tint_classic_green"] = "经典绿色", + ["tint_classic_blue"] = "经典蓝色", + ["tint_classic_earth"] = "经典大地色", + ["tint_classic_brown_black"] = "经典棕黑色", + ["tint_contrast_red"] = "对比红色", + ["tint_contrast_blue"] = "对比蓝色", + ["tint_contrast_yellow"] = "对比黄色", + ["tint_contrast_orange"] = "对比橙色", + ["tint_bold_pink"] = "大胆粉色", + ["tint_bold_purple_yellow"] = "大胆紫黄色", + ["tint_bold_orange"] = "大胆橙色", + ["tint_bold_green_purple"] = "大胆绿色紫色", + ["tint_bold_red_feat"] = "大胆红色feat", + ["tint_bold_green_feat"] = "大胆绿色feat", + ["tint_bold_cyan_feat"] = "大胆青色feat", + ["tint_bold_yellow_feat"] = "大胆黄色feat", + ["tint_bold_red_white"] = "大胆红白色", + ["tint_bold_blue_white"] = "大胆蓝白色", + ["tint_metallic_gold"] = "金属金色", + ["tint_metallic_platinum"] = "金属铂金", + ["tint_metallic_gray_lilac"] = "金属灰紫色", + ["tint_metallic_purple_lime"] = "金属紫色青柠", + ["tint_metallic_red"] = "金属红色", + ["tint_metallic_green"] = "金属绿色", + ["tint_metallic_blue"] = "金属蓝色", + ["tint_metallic_white_aqua"] = "金属白色水蓝", + ["tint_metallic_red_yellow"] = "金属红黄色", } From da0d13e8b9cd214065634ccf2ffa0f5b890b4cd4 Mon Sep 17 00:00:00 2001 From: Ilias Rbayti <63159154+Kenshiin13@users.noreply.github.com> Date: Sat, 9 Nov 2024 17:42:33 +0100 Subject: [PATCH 013/138] add mk2 weapon tints --- [core]/es_extended/shared/config/weapons.lua | 59 ++++++++++++++++---- 1 file changed, 47 insertions(+), 12 deletions(-) diff --git a/[core]/es_extended/shared/config/weapons.lua b/[core]/es_extended/shared/config/weapons.lua index cbeecb54..d26ab75a 100644 --- a/[core]/es_extended/shared/config/weapons.lua +++ b/[core]/es_extended/shared/config/weapons.lua @@ -8,6 +8,41 @@ Config.DefaultWeaponTints = { [6] = TranslateCap("tint_orange"), [7] = TranslateCap("tint_platinum"), } +Config.MK2WeaponTints = { + [0] = TranslateCap('tint_classic_black'), + [1] = TranslateCap('tint_classic_gray'), + [2] = TranslateCap('tint_classic_two_tone'), + [3] = TranslateCap('tint_classic_white'), + [4] = TranslateCap('tint_classic_beige'), + [5] = TranslateCap('tint_classic_green'), + [6] = TranslateCap('tint_classic_blue'), + [7] = TranslateCap('tint_classic_earth'), + [8] = TranslateCap('tint_classic_brown_black'), + [9] = TranslateCap('tint_contrast_red'), + [10] = TranslateCap('tint_contrast_blue'), + [11] = TranslateCap('tint_contrast_yellow'), + [12] = TranslateCap('tint_contrast_orange'), + [13] = TranslateCap('tint_bold_pink'), + [14] = TranslateCap('tint_bold_purple_yellow'), + [15] = TranslateCap('tint_bold_orange'), + [16] = TranslateCap('tint_bold_green_purple'), + [17] = TranslateCap('tint_bold_red_feat'), + [18] = TranslateCap('tint_bold_green_feat'), + [19] = TranslateCap('tint_bold_cyan_feat'), + [20] = TranslateCap('tint_bold_yellow_feat'), + [21] = TranslateCap('tint_bold_red_white'), + [22] = TranslateCap('tint_bold_blue_white'), + [23] = TranslateCap('tint_metallic_gold'), + [24] = TranslateCap('tint_metallic_platinum'), + [25] = TranslateCap('tint_metallic_gray_lilac'), + [26] = TranslateCap('tint_metallic_purple_lime'), + [27] = TranslateCap('tint_metallic_red'), + [28] = TranslateCap('tint_metallic_green'), + [29] = TranslateCap('tint_metallic_blue'), + [30] = TranslateCap('tint_metallic_white_aqua'), + [31] = TranslateCap('tint_metallic_orange_yellow'), + [32] = TranslateCap('tint_metallic_red_yellow') +} Config.Weapons = { -- Melee @@ -111,7 +146,7 @@ Config.Weapons = { name = "WEAPON_REVOLVER_MK2", label = TranslateCap("weapon_revolver_mk2"), ammo = { label = TranslateCap("ammo_rounds"), hash = `AMMO_PISTOL` }, - tints = Config.DefaultWeaponTints, + tints = Config.MK2WeaponTints, components = { { name = "clip_default", label = TranslateCap("component_clip_default"), hash = `COMPONENT_REVOLVER_MK2_CLIP_01` }, { name = "ammo_tracer", label = TranslateCap("component_ammo_tracer"), hash = `COMPONENT_REVOLVER_MK2_CLIP_TRACER` }, @@ -153,7 +188,7 @@ Config.Weapons = { name = "WEAPON_PISTOL_MK2", label = TranslateCap("weapon_pistol_mk2"), ammo = { label = TranslateCap("ammo_rounds"), hash = `AMMO_PISTOL` }, - tints = Config.DefaultWeaponTints, + tints = Config.MK2WeaponTints, components = { { name = "clip_default", label = TranslateCap("component_clip_default"), hash = `COMPONENT_PISTOL_MK2_CLIP_01` }, { name = "clip_extended", label = TranslateCap("component_clip_extended"), hash = `COMPONENT_PISTOL_MK2_CLIP_02` }, @@ -217,7 +252,7 @@ Config.Weapons = { name = "WEAPON_SNSPISTOL_MK2", label = TranslateCap("weapon_snspistol_mk2"), ammo = { label = TranslateCap("ammo_rounds"), hash = `AMMO_PISTOL` }, - tints = Config.DefaultWeaponTints, + tints = Config.MK2WeaponTints, components = { { name = "clip_default", label = TranslateCap("component_clip_default"), hash = `COMPONENT_SNSPISTOL_MK2_CLIP_01` }, { name = "clip_extended", label = TranslateCap("component_clip_extended"), hash = `COMPONENT_SNSPISTOL_MK2_CLIP_02` }, @@ -333,7 +368,7 @@ Config.Weapons = { name = "WEAPON_PUMPSHOTGUN_MK2", label = TranslateCap("weapon_pumpshotgun_mk2"), ammo = { label = TranslateCap("ammo_shells"), hash = `AMMO_SHOTGUN` }, - tints = Config.DefaultWeaponTints, + tints = Config.MK2WeaponTints, components = { { name = "shells_default", label = TranslateCap("component_shells_default"), hash = `COMPONENT_PUMPSHOTGUN_MK2_CLIP_01` }, { name = "shells_incendiary", label = TranslateCap("component_shells_incendiary"), hash = `COMPONENT_PUMPSHOTGUN_MK2_CLIP_INCENDIARY` }, @@ -400,7 +435,7 @@ Config.Weapons = { name = "WEAPON_COMBATMG_MK2", label = TranslateCap("weapon_combatmg_mk2"), ammo = { label = TranslateCap("ammo_rounds"), hash = `AMMO_MG` }, - tints = Config.DefaultWeaponTints, + tints = Config.MK2WeaponTints, components = { { name = "clip_default", label = TranslateCap("component_clip_default"), hash = `COMPONENT_COMBATMG_MK2_CLIP_01` }, { name = "clip_extended", label = TranslateCap("component_clip_extended"), hash = `COMPONENT_COMBATMG_MK2_CLIP_02` }, @@ -525,7 +560,7 @@ Config.Weapons = { name = "WEAPON_SMG_MK2", label = TranslateCap("weapon_smg_mk2"), ammo = { label = TranslateCap("ammo_rounds"), hash = `AMMO_SMG` }, - tints = Config.DefaultWeaponTints, + tints = Config.MK2WeaponTints, components = { { name = "clip_default", label = TranslateCap("component_clip_default"), hash = `COMPONENT_SMG_MK2_CLIP_01` }, { name = "clip_extended", label = TranslateCap("component_clip_extended"), hash = `COMPONENT_SMG_MK2_CLIP_02` }, @@ -596,7 +631,7 @@ Config.Weapons = { name = "WEAPON_ASSAULTRIFLE_MK2", label = TranslateCap("weapon_assaultrifle_mk2"), ammo = { label = TranslateCap("ammo_rounds"), hash = `AMMO_RIFLE` }, - tints = Config.DefaultWeaponTints, + tints = Config.MK2WeaponTints, components = { { name = "clip_default", label = TranslateCap("component_clip_default"), hash = `COMPONENT_ASSAULTRIFLE_MK2_CLIP_01` }, { name = "clip_extended", label = TranslateCap("component_clip_extended"), hash = `COMPONENT_ASSAULTRIFLE_MK2_CLIP_02` }, @@ -651,7 +686,7 @@ Config.Weapons = { name = "WEAPON_BULLPUPRIFLE_MK2", label = TranslateCap("weapon_bullpuprifle_mk2"), ammo = { label = TranslateCap("ammo_rounds"), hash = `AMMO_RIFLE` }, - tints = Config.DefaultWeaponTints, + tints = Config.MK2WeaponTints, components = { { name = "clip_default", label = TranslateCap("component_clip_default"), hash = `COMPONENT_BULLPUPRIFLE_MK2_CLIP_01` }, { name = "clip_extended", label = TranslateCap("component_clip_extended"), hash = `COMPONENT_BULLPUPRIFLE_MK2_CLIP_02` }, @@ -707,7 +742,7 @@ Config.Weapons = { name = "WEAPON_CARBINERIFLE_MK2", label = TranslateCap("weapon_carbinerifle_mk2"), ammo = { label = TranslateCap("ammo_rounds"), hash = `AMMO_RIFLE` }, - tints = Config.DefaultWeaponTints, + tints = Config.MK2WeaponTints, components = { { name = "clip_default", label = TranslateCap("component_clip_default"), hash = `COMPONENT_CARBINERIFLE_MK2_CLIP_01` }, { name = "clip_extended", label = TranslateCap("component_clip_extended"), hash = `COMPONENT_CARBINERIFLE_MK2_CLIP_02` }, @@ -788,7 +823,7 @@ Config.Weapons = { name = "WEAPON_SPECIALCARBINE_MK2", label = TranslateCap("weapon_specialcarbine_mk2"), ammo = { label = TranslateCap("ammo_rounds"), hash = `AMMO_RIFLE` }, - tints = Config.DefaultWeaponTints, + tints = Config.MK2WeaponTints, components = { { name = "clip_default", label = TranslateCap("component_clip_default"), hash = `COMPONENT_SPECIALCARBINE_MK2_CLIP_01` }, { name = "clip_extended", label = TranslateCap("component_clip_extended"), hash = `COMPONENT_SPECIALCARBINE_MK2_CLIP_02` }, @@ -854,7 +889,7 @@ Config.Weapons = { name = "WEAPON_HEAVYSNIPER_MK2", label = TranslateCap("weapon_heavysniper_mk2"), ammo = { label = TranslateCap("ammo_rounds"), hash = `AMMO_SNIPER` }, - tints = Config.DefaultWeaponTints, + tints = Config.MK2WeaponTints, components = { { name = "clip_default", label = TranslateCap("component_clip_default"), hash = `COMPONENT_HEAVYSNIPER_MK2_CLIP_01` }, { name = "clip_extended", label = TranslateCap("component_clip_extended"), hash = `COMPONENT_HEAVYSNIPER_MK2_CLIP_02` }, @@ -903,7 +938,7 @@ Config.Weapons = { name = "WEAPON_MARKSMANRIFLE_MK2", label = TranslateCap("weapon_marksmanrifle_mk2"), ammo = { label = TranslateCap("ammo_rounds"), hash = `AMMO_SNIPER` }, - tints = Config.DefaultWeaponTints, + tints = Config.MK2WeaponTints, components = { { name = "clip_default", label = TranslateCap("component_clip_default"), hash = `COMPONENT_MARKSMANRIFLE_MK2_CLIP_01` }, { name = "clip_extended", label = TranslateCap("component_clip_extended"), hash = `COMPONENT_MARKSMANRIFLE_MK2_CLIP_02` }, From 2ab3cf21bc8663b7b4cb4c7992b50e60005ba3bd Mon Sep 17 00:00:00 2001 From: Kasey FItton Date: Sun, 10 Nov 2024 08:36:08 +0000 Subject: [PATCH 014/138] fix(es_extended/server): support routing buckets for /car --- [core]/es_extended/server/modules/commands.lua | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/[core]/es_extended/server/modules/commands.lua b/[core]/es_extended/server/modules/commands.lua index dfb4baa5..4e9d6862 100644 --- a/[core]/es_extended/server/modules/commands.lua +++ b/[core]/es_extended/server/modules/commands.lua @@ -95,10 +95,17 @@ ESX.RegisterCommand( }) end + local xRoutingBucket = GetPlayerRoutingBucket(xPlayer.source) + ESX.OneSync.SpawnVehicle(args.car, playerCoords, playerHeading, upgrades, function(networkId) if networkId then local vehicle = NetworkGetEntityFromNetworkId(networkId) - for _ = 1, 20 do + + if xRoutingBucket ~= 0 then + SetEntityRoutingBucket(vehicle, xRoutingBucket) + end + + for _ = 1, 100 do Wait(0) SetPedIntoVehicle(playerPed, vehicle, -1) @@ -106,6 +113,7 @@ ESX.RegisterCommand( break end end + if GetVehiclePedIsIn(playerPed, false) ~= vehicle then showError("[^1ERROR^7] The player could not be seated in the vehicle") end From f464bd185899e993a594ea2204ccf1da0dacefe2 Mon Sep 17 00:00:00 2001 From: Kasey FItton Date: Sun, 10 Nov 2024 08:41:04 +0000 Subject: [PATCH 015/138] tweak(esx_progressbar): new colours --- [core]/esx_progressbar/nui/js/script.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/[core]/esx_progressbar/nui/js/script.js b/[core]/esx_progressbar/nui/js/script.js index 330fefb3..9ea8ec27 100644 --- a/[core]/esx_progressbar/nui/js/script.js +++ b/[core]/esx_progressbar/nui/js/script.js @@ -1,13 +1,13 @@ const codes = { - "~r~": "red", + "~r~": "#c0392b", "~b~": "#378cbf", - "~g~": "green", + "~g~": "#2ecc71", "~y~": "yellow", "~p~": "purple", "~c~": "grey", "~m~": "#212121", "~u~": "black", - "~o~": "orange", + "~o~": "#fb9b04", }; const elems = { From a1084d309fe3a58921d8b4c724e63a60aac2714a Mon Sep 17 00:00:00 2001 From: Kasey FItton Date: Sun, 10 Nov 2024 09:11:35 +0000 Subject: [PATCH 016/138] tweak(esx_menu_default): new theme, maybe --- [core]/esx_menu_default/html/css/app.css | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/[core]/esx_menu_default/html/css/app.css b/[core]/esx_menu_default/html/css/app.css index 4658b79d..a02d2a1d 100644 --- a/[core]/esx_menu_default/html/css/app.css +++ b/[core]/esx_menu_default/html/css/app.css @@ -9,8 +9,9 @@ min-width: 350px; color: #fff; position: absolute; - background: rgba(33, 33, 33, 0); + background: rgba(15, 15, 15, 0.0); text-align: center; + border-radius: 5px; } .head { @@ -18,9 +19,9 @@ overflow: hidden; padding-bottom: 3px; text-align: center; - margin-bottom: 5px; white-space: nowrap; - background: rgba(10, 10, 10, 0.9); + background: rgba(10, 10, 10, 1); + border-bottom: 2px solid #fb9b04; } .menu .head { @@ -47,16 +48,14 @@ font-size: 13px; height: 16px; text-indent: 5px; - margin-top: 5px; - background: rgba(40, 40, 40, 0.8); - color: rgb(202, 202, 202); - border-radius: 5px; - margin-bottom: 6px; + background: rgba(30, 30, 30, 0.9); + color: rgb(243, 243, 243); } + .menu .menu-items .menu-item.selected { - border: 1px solid rgba(55, 55, 55, 0.9); - background: rgba(20, 20, 20, 0.9); + border: 1px solid #fb9c04ec; + background: rgba(15, 15, 15, 0.9); color: rgba(243, 243, 243); letter-spacing: 0.2px; font-weight: 500; @@ -68,7 +67,7 @@ } .menu.align-top-left { - left: 3rem; + left: 4rem; top: 0; } @@ -99,7 +98,7 @@ } .menu.align-bottom-left { - left: 3rem; + left: 4rem; bottom: 0; } From 970fcf7b07dab9aa0d3f5c987df791315dddf023 Mon Sep 17 00:00:00 2001 From: Kasey FItton Date: Sun, 10 Nov 2024 10:04:30 +0000 Subject: [PATCH 017/138] fix(esx_textui): wipe last message --- [core]/esx_textui/nui/js/script.js | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/[core]/esx_textui/nui/js/script.js b/[core]/esx_textui/nui/js/script.js index 9bbd5c6d..ffc54faa 100644 --- a/[core]/esx_textui/nui/js/script.js +++ b/[core]/esx_textui/nui/js/script.js @@ -1,6 +1,6 @@ const w = window; const doc = document; -let lastType = ""; +let lastType = {}; // Gets the current icon it needs to use. const types = { @@ -33,8 +33,8 @@ const codes = { w.addEventListener("message", (event) => { if (event.data.action === "show") { - if (lastType) { - doc.getElementById(lastType).style.display = "none"; + if (lastType.id !== undefined) { + doc.getElementById(lastType["id"]).style.display = "none"; notification({ type: event.data.type, message: event.data.message, @@ -47,10 +47,11 @@ w.addEventListener("message", (event) => { } } else if (event.data.action === "hide") { if (lastType !== "") { - doc.getElementById(lastType).classList.add("fadeOut"); + doc.getElementById(lastType["id"]).classList.add("fadeOut"); setTimeout(() => { - doc.getElementById(lastType).classList.remove("fadeOut"); - doc.getElementById(lastType).style.display = "none"; + doc.getElementById(lastType["id"]).classList.remove("fadeOut"); + doc.getElementById(lastType["id"]).style.display = "none"; + doc.getElementById(lastType["message"]).innerHTML = ""; }, 300); } else { console.log("There isn't a textUI displaying!?"); @@ -85,7 +86,7 @@ notification = (data) => { doc.getElementById(types[data.type]["id"]).classList.add("fadeIn"); setTimeout(() => { doc.getElementById(types[data.type]["id"]).classList.remove("fadeIn"); - lastType = types[data.type]["id"]; + lastType = types[data.type]; doc.getElementById(types[data.type]["message"]).innerHTML = data["message"]; }, 300); }; From dc9a9b66ae8df0d912e3d650052996fa2a293f73 Mon Sep 17 00:00:00 2001 From: EinS4ckZwiebeln <66690565+EinS4ckZwiebeln@users.noreply.github.com> Date: Sun, 10 Nov 2024 12:52:37 +0100 Subject: [PATCH 018/138] validate player skin --- [core]/esx_skin/server/main.lua | 3 +++ 1 file changed, 3 insertions(+) diff --git a/[core]/esx_skin/server/main.lua b/[core]/esx_skin/server/main.lua index 6538feb5..60ec63df 100644 --- a/[core]/esx_skin/server/main.lua +++ b/[core]/esx_skin/server/main.lua @@ -1,4 +1,7 @@ RegisterNetEvent("esx_skin:save", function(skin) + if not skin or type(skin) ~= "table" then + return + end local xPlayer = ESX.GetPlayerFromId(source) if not ESX.GetConfig().CustomInventory then From a8940f59500bcf7a19eab1d6354be57f1574cfcc Mon Sep 17 00:00:00 2001 From: Kasey FItton Date: Sun, 10 Nov 2024 12:13:35 +0000 Subject: [PATCH 019/138] fix/feat(esx_notify): use correct length and add animations correctly --- [core]/esx_notify/nui/js/script.js | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/[core]/esx_notify/nui/js/script.js b/[core]/esx_notify/nui/js/script.js index 54c89967..64002521 100644 --- a/[core]/esx_notify/nui/js/script.js +++ b/[core]/esx_notify/nui/js/script.js @@ -57,8 +57,9 @@ notification = (data) => { } } + const id = Math.floor(Math.random() * Math.random()); const notification = $(` -
+
${types[data.type] ? types[data.type]["icon"] : types["info"]["icon"]}

${data["message"]}

@@ -67,8 +68,16 @@ notification = (data) => { `).appendTo(`#root`); setTimeout(() => { - notification.fadeOut(70); - }, 10000); + document.getElementById(id).classList.remove("fadeIn"); + }, 300); + + setTimeout(() => { + document.getElementById(id).classList.add("fadeOut"); + + setTimeout(() => { + document.getElementById(id).remove(); + }, 400); + },data.length); return notification; }; From 40e43904d4260566a820a6c5d917f5223d384cbe Mon Sep 17 00:00:00 2001 From: Ilias Rbayti <63159154+Kenshiin13@users.noreply.github.com> Date: Sun, 10 Nov 2024 14:11:40 +0100 Subject: [PATCH 020/138] refactor(locales): Remove unused duty locales --- [core]/es_extended/locales/es.lua | 4 ---- [core]/es_extended/locales/hu.lua | 4 ---- 2 files changed, 8 deletions(-) diff --git a/[core]/es_extended/locales/es.lua b/[core]/es_extended/locales/es.lua index 1b085880..9d03a65d 100644 --- a/[core]/es_extended/locales/es.lua +++ b/[core]/es_extended/locales/es.lua @@ -396,8 +396,4 @@ Locales["es"] = { ["tint_metallic_blue"] = "azul metálico", ["tint_metallic_white_aqua"] = "blanco aqua metálico", ["tint_metallic_red_yellow"] = "rojo amarillo metálico", - - -- Duty related - ["stopped_duty"] = "Has salido de servicio.", - ["started_duty"] = "Has entrado de servicio.", } diff --git a/[core]/es_extended/locales/hu.lua b/[core]/es_extended/locales/hu.lua index 8e1e1d38..5d3b230b 100644 --- a/[core]/es_extended/locales/hu.lua +++ b/[core]/es_extended/locales/hu.lua @@ -407,8 +407,4 @@ Locales["hu"] = { ["tint_metallic_blue"] = "metál kék", ["tint_metallic_white_aqua"] = "metál fehér aqua", ["tint_metallic_red_yellow"] = "metál piros sárga", - - -- Duty related - ["stopped_duty"] = "Leadtad a szolgálatot.", - ["started_duty"] = "Szolgálatba álltál.", } From a3fab28d1f08a7375060748b08e3473e9a3bc592 Mon Sep 17 00:00:00 2001 From: Kasey FItton Date: Mon, 11 Nov 2024 20:36:00 +0000 Subject: [PATCH 021/138] fix: Cached Ped not being updated Correctly --- [core]/es_extended/client/modules/actions.lua | 10 ++++++++++ [core]/skinchanger/client/main.lua | 2 +- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/[core]/es_extended/client/modules/actions.lua b/[core]/es_extended/client/modules/actions.lua index 455dcff0..1f495682 100644 --- a/[core]/es_extended/client/modules/actions.lua +++ b/[core]/es_extended/client/modules/actions.lua @@ -145,8 +145,18 @@ function Actions:SlowLoop() end) end +function Actions:PedTrackingLoop() + CreateThread(function() + while ESX.PlayerLoaded do + self:TrackPed() + Wait(0) + end + end) +end + function Actions:Init() self:SlowLoop() + self:PedTrackingLoop() end Actions:Init() diff --git a/[core]/skinchanger/client/main.lua b/[core]/skinchanger/client/main.lua index e28aee17..76d5d4f2 100644 --- a/[core]/skinchanger/client/main.lua +++ b/[core]/skinchanger/client/main.lua @@ -44,7 +44,7 @@ function SkinChanger:DefaultModel(male, cb) local model = self:RequestModel(characterModel) SetPlayerModel(PlayerId(), model) - SetPedDefaultComponentVariation(playerPed) + SetPedDefaultComponentVariation(PlayerPedId()) SetModelAsNoLongerNeeded(model) From 4be87bb34f62f30e0943e8ffb247b868f11b8b15 Mon Sep 17 00:00:00 2001 From: luckie12 Date: Tue, 12 Nov 2024 23:53:02 +0100 Subject: [PATCH 022/138] Fix issues --- [core]/esx_identity/dist/assets/index-B6T-7u2-.css | 1 - [core]/esx_identity/dist/assets/index-CBKwBtku.css | 1 + .../dist/assets/{index-CaT4lk_v.js => index-Cmv_Bh-6.js} | 2 +- [core]/esx_identity/dist/index.html | 4 ++-- [core]/esx_identity/src/App.vue | 4 ++-- .../src/components/{HelloWorld.vue => Identity.vue} | 9 ++------- [core]/esx_identity/src/style.css | 7 ++++++- 7 files changed, 14 insertions(+), 14 deletions(-) delete mode 100644 [core]/esx_identity/dist/assets/index-B6T-7u2-.css create mode 100644 [core]/esx_identity/dist/assets/index-CBKwBtku.css rename [core]/esx_identity/dist/assets/{index-CaT4lk_v.js => index-Cmv_Bh-6.js} (98%) rename [core]/esx_identity/src/components/{HelloWorld.vue => Identity.vue} (88%) diff --git a/[core]/esx_identity/dist/assets/index-B6T-7u2-.css b/[core]/esx_identity/dist/assets/index-B6T-7u2-.css deleted file mode 100644 index e0299875..00000000 --- a/[core]/esx_identity/dist/assets/index-B6T-7u2-.css +++ /dev/null @@ -1 +0,0 @@ -@import"https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap";body{font-family:sans-serif;overflow:hidden;background-color:transparent}.none{display:none}.dialog{width:477px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background-color:#080808;border-radius:8px;border:none;color:#fff;font-family:Poppins,sans-serif}.dialog__header{background-color:#040404;border-top-left-radius:8px;border-top-right-radius:8px;padding:20px;text-align:center}.dialog__header h1{font-weight:700;margin-bottom:0;font-size:30px}.dialog__header span{color:#fd9800}.dialog__body{padding-block:20px;padding-inline:65px}.dialog__body-hint{text-align:center;margin-bottom:20px}.dialog__body-form{display:flex;flex-direction:column;gap:35px;font-weight:600;font-size:15px}.dialog__form-submit{border:none;background-color:#fd9800;color:#fff;font-size:18px;font-weight:700;border-radius:4px;padding-block:5px}.dialog__form-submit i{margin-right:5px}.dialog__form-group{display:flex;align-items:center;justify-content:space-between;gap:30px;background-color:#040404;position:relative}.dialog__form-group--radio{gap:0}.dialog__form-group label{text-align:center;flex-grow:1;flex-shrink:1;padding-inline:20px}.dialog__form-group input{background-color:transparent;border:none;height:30px;width:180px;flex-shrink:0;color:#fff}.dialog__form-group input:focus{background-color:#0f0f0fe6;border:none;border-radius:5px;color:#fff;outline:none;box-shadow:none}.dialog__form-validation{position:relative}.dialog__form-validation i{position:absolute;right:10px;top:50%;transform:translateY(-50%)}.dialog__form-radio{display:flex;align-items:center}.dialog__form-radio input{display:none}.dialog__form-radio label{display:flex;align-items:center;gap:10px;cursor:pointer}.dialog__form-radio input+label{height:30px;display:flex;align-items:center}.dialog__form-radio input:checked+label{color:#30a1fd;height:30px}.dialog__form-radio input:not(:checked)+label{color:#242424;height:30px}.dialog__form-message{position:absolute;top:35px;right:0;font-size:9px}.dialog__form-message--error{color:#733838}#male:checked+label{color:#30a1fd}#female:checked+label{color:#ff69b4}::placeholder{color:#242424;font-weight:600} diff --git a/[core]/esx_identity/dist/assets/index-CBKwBtku.css b/[core]/esx_identity/dist/assets/index-CBKwBtku.css new file mode 100644 index 00000000..1ad7fe3f --- /dev/null +++ b/[core]/esx_identity/dist/assets/index-CBKwBtku.css @@ -0,0 +1 @@ +@import"https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap";body{font-family:sans-serif;overflow:hidden;background-color:transparent}.none{display:none}.dialog{width:477px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background-color:#080808;border-radius:8px;border:none;color:#fff;font-family:Poppins,sans-serif}.dialog__header{background-color:#040404;border-top-left-radius:8px;border-top-right-radius:8px;padding:20px;text-align:center}.dialog__header h1{font-weight:700;margin-bottom:0;font-size:30px}.dialog__header span{color:#fd9800}.dialog__body{padding-block:20px;padding-inline:65px}.dialog__body-hint{text-align:center;margin-bottom:20px}.dialog__body-form{display:flex;flex-direction:column;gap:35px;font-weight:600;font-size:15px}.dialog__form-submit{border:none;background-color:#fd9800;color:#fff;font-size:18px;font-weight:700;border-radius:4px;padding-block:5px}.dialog__form-submit i{margin-right:5px}.dialog__form-group{display:flex;align-items:center;justify-content:space-between;gap:30px;background-color:#040404;position:relative}.dialog__form-group--radio{gap:0}.dialog__form-group label{flex-grow:1;flex-shrink:1;padding-inline:20px}.dialog__form-group input{background-color:transparent;border:none;height:30px;width:180px;flex-shrink:0;color:#fff}.dialog__form-group input:focus{background-color:#0f0f0fe6;border:none;border-radius:5px;color:#fff;outline:none;box-shadow:none}.dialog__form-validation{position:relative}.dialog__form-validation i{position:absolute;right:10px;top:50%;transform:translateY(-50%)}.dialog__form-radio{display:flex;align-items:center}.dialog__form-radio input{display:none}.dialog__form-radio label{display:flex;align-items:center;gap:10px;cursor:pointer}.dialog__form-radio input+label{height:30px;display:flex;align-items:center}.dialog__form-radio input:checked+label{color:#30a1fd;height:30px}.dialog__form-radio input:not(:checked)+label{color:#242424;height:30px}.dialog__form-message{position:absolute;top:35px;right:0;font-size:9px}.dialog__form-message--error{color:#733838}#male:checked+label{color:#30a1fd}#female:checked+label{color:#ff69b4}::placeholder{color:#242424;font-weight:600}input[type=date]::-webkit-inner-spin-button,input[type=date]::-webkit-calendar-picker-indicator{display:none;-webkit-appearance:none} diff --git a/[core]/esx_identity/dist/assets/index-CaT4lk_v.js b/[core]/esx_identity/dist/assets/index-Cmv_Bh-6.js similarity index 98% rename from [core]/esx_identity/dist/assets/index-CaT4lk_v.js rename to [core]/esx_identity/dist/assets/index-Cmv_Bh-6.js index 2936a317..2eb455ba 100644 --- a/[core]/esx_identity/dist/assets/index-CaT4lk_v.js +++ b/[core]/esx_identity/dist/assets/index-Cmv_Bh-6.js @@ -30,4 +30,4 @@ var Gf;function N(){return Gf.apply(null,arguments)}function cv(e){Gf=e}function [`+i+"] ";for(o in arguments[0])ge(arguments[0],o)&&(s+=o+": "+arguments[0][o]+", ");s=s.slice(0,-2)}else s=arguments[i];r.push(s)}Zf(e+` Arguments: `+Array.prototype.slice.call(r).join("")+` `+new Error().stack),n=!1}return t.apply(this,arguments)},t)}var Yl={};function Jf(e,t){N.deprecationHandler!=null&&N.deprecationHandler(e,t),Yl[e]||(Zf(t),Yl[e]=!0)}N.suppressDeprecationWarnings=!1;N.deprecationHandler=null;function Zt(e){return typeof Function<"u"&&e instanceof Function||Object.prototype.toString.call(e)==="[object Function]"}function dv(e){var t,n;for(n in e)ge(e,n)&&(t=e[n],Zt(t)?this[n]=t:this["_"+n]=t);this._config=e,this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+"|"+/\d{1,2}/.source)}function To(e,t){var n=En({},e),r;for(r in t)ge(t,r)&&(Ln(e[r])&&Ln(t[r])?(n[r]={},En(n[r],e[r]),En(n[r],t[r])):t[r]!=null?n[r]=t[r]:delete n[r]);for(r in e)ge(e,r)&&!ge(t,r)&&Ln(e[r])&&(n[r]=En({},n[r]));return n}function Ta(e){e!=null&&this.set(e)}var Do;Object.keys?Do=Object.keys:Do=function(e){var t,n=[];for(t in e)ge(e,t)&&n.push(t);return n};var hv={sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"};function pv(e,t,n){var r=this._calendar[e]||this._calendar.sameElse;return Zt(r)?r.call(t,n):r}function Gt(e,t,n){var r=""+Math.abs(e),s=t-r.length,i=e>=0;return(i?n?"+":"":"-")+Math.pow(10,Math.max(0,s)).toString().substr(1)+r}var Da=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,ms=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,Ki={},ar={};function K(e,t,n,r){var s=r;typeof r=="string"&&(s=function(){return this[r]()}),e&&(ar[e]=s),t&&(ar[t[0]]=function(){return Gt(s.apply(this,arguments),t[1],t[2])}),n&&(ar[n]=function(){return this.localeData().ordinal(s.apply(this,arguments),e)})}function _v(e){return e.match(/\[[\s\S]/)?e.replace(/^\[|\]$/g,""):e.replace(/\\/g,"")}function mv(e){var t=e.match(Da),n,r;for(n=0,r=t.length;n=0&&ms.test(e);)e=e.replace(ms,r),ms.lastIndex=0,n-=1;return e}var gv={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"};function vv(e){var t=this._longDateFormat[e],n=this._longDateFormat[e.toUpperCase()];return t||!n?t:(this._longDateFormat[e]=n.match(Da).map(function(r){return r==="MMMM"||r==="MM"||r==="DD"||r==="dddd"?r.slice(1):r}).join(""),this._longDateFormat[e])}var yv="Invalid date";function Ev(){return this._invalidDate}var bv="%d",Ov=/\d{1,2}/;function Sv(e){return this._ordinal.replace("%d",e)}var wv={future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",w:"a week",ww:"%d weeks",M:"a month",MM:"%d months",y:"a year",yy:"%d years"};function xv(e,t,n,r){var s=this._relativeTime[n];return Zt(s)?s(e,t,n,r):s.replace(/%d/i,e)}function Tv(e,t){var n=this._relativeTime[e>0?"future":"past"];return Zt(n)?n(t):n.replace(/%s/i,t)}var $l={D:"date",dates:"date",date:"date",d:"day",days:"day",day:"day",e:"weekday",weekdays:"weekday",weekday:"weekday",E:"isoWeekday",isoweekdays:"isoWeekday",isoweekday:"isoWeekday",DDD:"dayOfYear",dayofyears:"dayOfYear",dayofyear:"dayOfYear",h:"hour",hours:"hour",hour:"hour",ms:"millisecond",milliseconds:"millisecond",millisecond:"millisecond",m:"minute",minutes:"minute",minute:"minute",M:"month",months:"month",month:"month",Q:"quarter",quarters:"quarter",quarter:"quarter",s:"second",seconds:"second",second:"second",gg:"weekYear",weekyears:"weekYear",weekyear:"weekYear",GG:"isoWeekYear",isoweekyears:"isoWeekYear",isoweekyear:"isoWeekYear",w:"week",weeks:"week",week:"week",W:"isoWeek",isoweeks:"isoWeek",isoweek:"isoWeek",y:"year",years:"year",year:"year"};function kt(e){return typeof e=="string"?$l[e]||$l[e.toLowerCase()]:void 0}function Aa(e){var t={},n,r;for(r in e)ge(e,r)&&(n=kt(r),n&&(t[n]=e[r]));return t}var Dv={date:9,day:11,weekday:11,isoWeekday:11,dayOfYear:4,hour:13,millisecond:16,minute:14,month:8,quarter:7,second:15,weekYear:1,isoWeekYear:1,week:5,isoWeek:5,year:1};function Av(e){var t=[],n;for(n in e)ge(e,n)&&t.push({unit:n,priority:Dv[n]});return t.sort(function(r,s){return r.priority-s.priority}),t}var Qf=/\d/,bt=/\d\d/,ed=/\d{3}/,ka=/\d{4}/,pi=/[+-]?\d{6}/,Re=/\d\d?/,td=/\d\d\d\d?/,nd=/\d\d\d\d\d\d?/,_i=/\d{1,3}/,Ca=/\d{1,4}/,mi=/[+-]?\d{1,6}/,mr=/\d+/,gi=/[+-]?\d+/,kv=/Z|[+-]\d\d:?\d\d/gi,vi=/Z|[+-]\d\d(?::?\d\d)?/gi,Cv=/[+-]?\d+(\.\d{1,3})?/,as=/[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i,gr=/^[1-9]\d?/,Ma=/^([1-9]\d|\d)/,Bs;Bs={};function Y(e,t,n){Bs[e]=Zt(t)?t:function(r,s){return r&&n?n:t}}function Mv(e,t){return ge(Bs,e)?Bs[e](t._strict,t._locale):new RegExp(Fv(e))}function Fv(e){return cn(e.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(t,n,r,s,i){return n||r||s||i}))}function cn(e){return e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function xt(e){return e<0?Math.ceil(e)||0:Math.floor(e)}function ce(e){var t=+e,n=0;return t!==0&&isFinite(t)&&(n=xt(t)),n}var Ao={};function xe(e,t){var n,r=t,s;for(typeof e=="string"&&(e=[e]),dn(t)&&(r=function(i,o){o[t]=ce(i)}),s=e.length,n=0;n68?1900:2e3)};var rd=vr("FullYear",!0);function Vv(){return yi(this.year())}function vr(e,t){return function(n){return n!=null?(sd(this,e,n),N.updateOffset(this,t),this):Zr(this,e)}}function Zr(e,t){if(!e.isValid())return NaN;var n=e._d,r=e._isUTC;switch(t){case"Milliseconds":return r?n.getUTCMilliseconds():n.getMilliseconds();case"Seconds":return r?n.getUTCSeconds():n.getSeconds();case"Minutes":return r?n.getUTCMinutes():n.getMinutes();case"Hours":return r?n.getUTCHours():n.getHours();case"Date":return r?n.getUTCDate():n.getDate();case"Day":return r?n.getUTCDay():n.getDay();case"Month":return r?n.getUTCMonth():n.getMonth();case"FullYear":return r?n.getUTCFullYear():n.getFullYear();default:return NaN}}function sd(e,t,n){var r,s,i,o,a;if(!(!e.isValid()||isNaN(n))){switch(r=e._d,s=e._isUTC,t){case"Milliseconds":return void(s?r.setUTCMilliseconds(n):r.setMilliseconds(n));case"Seconds":return void(s?r.setUTCSeconds(n):r.setSeconds(n));case"Minutes":return void(s?r.setUTCMinutes(n):r.setMinutes(n));case"Hours":return void(s?r.setUTCHours(n):r.setHours(n));case"Date":return void(s?r.setUTCDate(n):r.setDate(n));case"FullYear":break;default:return}i=n,o=e.month(),a=e.date(),a=a===29&&o===1&&!yi(i)?28:a,s?r.setUTCFullYear(i,o,a):r.setFullYear(i,o,a)}}function Nv(e){return e=kt(e),Zt(this[e])?this[e]():this}function Uv(e,t){if(typeof e=="object"){e=Aa(e);var n=Av(e),r,s=n.length;for(r=0;r=0?(a=new Date(e+400,t,n,r,s,i,o),isFinite(a.getFullYear())&&a.setFullYear(e)):a=new Date(e,t,n,r,s,i,o),a}function Jr(e){var t,n;return e<100&&e>=0?(n=Array.prototype.slice.call(arguments),n[0]=e+400,t=new Date(Date.UTC.apply(null,n)),isFinite(t.getUTCFullYear())&&t.setUTCFullYear(e)):t=new Date(Date.UTC.apply(null,arguments)),t}function Hs(e,t,n){var r=7+t-n,s=(7+Jr(e,0,r).getUTCDay()-t)%7;return-s+r-1}function cd(e,t,n,r,s){var i=(7+n-r)%7,o=Hs(e,r,s),a=1+7*(t-1)+i+o,u,l;return a<=0?(u=e-1,l=Ur(u)+a):a>Ur(e)?(u=e+1,l=a-Ur(e)):(u=e,l=a),{year:u,dayOfYear:l}}function Xr(e,t,n){var r=Hs(e.year(),t,n),s=Math.floor((e.dayOfYear()-r-1)/7)+1,i,o;return s<1?(o=e.year()-1,i=s+fn(o,t,n)):s>fn(e.year(),t,n)?(i=s-fn(e.year(),t,n),o=e.year()+1):(o=e.year(),i=s),{week:i,year:o}}function fn(e,t,n){var r=Hs(e,t,n),s=Hs(e+1,t,n);return(Ur(e)-r+s)/7}K("w",["ww",2],"wo","week");K("W",["WW",2],"Wo","isoWeek");Y("w",Re,gr);Y("ww",Re,bt);Y("W",Re,gr);Y("WW",Re,bt);us(["w","ww","W","WW"],function(e,t,n,r){t[r.substr(0,1)]=ce(e)});function Jv(e){return Xr(e,this._week.dow,this._week.doy).week}var Xv={dow:0,doy:6};function Qv(){return this._week.dow}function ey(){return this._week.doy}function ty(e){var t=this.localeData().week(this);return e==null?t:this.add((e-t)*7,"d")}function ny(e){var t=Xr(this,1,4).week;return e==null?t:this.add((e-t)*7,"d")}K("d",0,"do","day");K("dd",0,0,function(e){return this.localeData().weekdaysMin(this,e)});K("ddd",0,0,function(e){return this.localeData().weekdaysShort(this,e)});K("dddd",0,0,function(e){return this.localeData().weekdays(this,e)});K("e",0,0,"weekday");K("E",0,0,"isoWeekday");Y("d",Re);Y("e",Re);Y("E",Re);Y("dd",function(e,t){return t.weekdaysMinRegex(e)});Y("ddd",function(e,t){return t.weekdaysShortRegex(e)});Y("dddd",function(e,t){return t.weekdaysRegex(e)});us(["dd","ddd","dddd"],function(e,t,n,r){var s=n._locale.weekdaysParse(e,r,n._strict);s!=null?t.d=s:se(n).invalidWeekday=e});us(["d","e","E"],function(e,t,n,r){t[r]=ce(e)});function ry(e,t){return typeof e!="string"?e:isNaN(e)?(e=t.weekdaysParse(e),typeof e=="number"?e:null):parseInt(e,10)}function sy(e,t){return typeof e=="string"?t.weekdaysParse(e)%7||7:isNaN(e)?null:e}function Ia(e,t){return e.slice(t,7).concat(e.slice(0,t))}var iy="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),fd="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),oy="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),ay=as,uy=as,ly=as;function cy(e,t){var n=Vt(this._weekdays)?this._weekdays:this._weekdays[e&&e!==!0&&this._weekdays.isFormat.test(t)?"format":"standalone"];return e===!0?Ia(n,this._week.dow):e?n[e.day()]:n}function fy(e){return e===!0?Ia(this._weekdaysShort,this._week.dow):e?this._weekdaysShort[e.day()]:this._weekdaysShort}function dy(e){return e===!0?Ia(this._weekdaysMin,this._week.dow):e?this._weekdaysMin[e.day()]:this._weekdaysMin}function hy(e,t,n){var r,s,i,o=e.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],r=0;r<7;++r)i=qt([2e3,1]).day(r),this._minWeekdaysParse[r]=this.weekdaysMin(i,"").toLocaleLowerCase(),this._shortWeekdaysParse[r]=this.weekdaysShort(i,"").toLocaleLowerCase(),this._weekdaysParse[r]=this.weekdays(i,"").toLocaleLowerCase();return n?t==="dddd"?(s=We.call(this._weekdaysParse,o),s!==-1?s:null):t==="ddd"?(s=We.call(this._shortWeekdaysParse,o),s!==-1?s:null):(s=We.call(this._minWeekdaysParse,o),s!==-1?s:null):t==="dddd"?(s=We.call(this._weekdaysParse,o),s!==-1||(s=We.call(this._shortWeekdaysParse,o),s!==-1)?s:(s=We.call(this._minWeekdaysParse,o),s!==-1?s:null)):t==="ddd"?(s=We.call(this._shortWeekdaysParse,o),s!==-1||(s=We.call(this._weekdaysParse,o),s!==-1)?s:(s=We.call(this._minWeekdaysParse,o),s!==-1?s:null)):(s=We.call(this._minWeekdaysParse,o),s!==-1||(s=We.call(this._weekdaysParse,o),s!==-1)?s:(s=We.call(this._shortWeekdaysParse,o),s!==-1?s:null))}function py(e,t,n){var r,s,i;if(this._weekdaysParseExact)return hy.call(this,e,t,n);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),r=0;r<7;r++){if(s=qt([2e3,1]).day(r),n&&!this._fullWeekdaysParse[r]&&(this._fullWeekdaysParse[r]=new RegExp("^"+this.weekdays(s,"").replace(".","\\.?")+"$","i"),this._shortWeekdaysParse[r]=new RegExp("^"+this.weekdaysShort(s,"").replace(".","\\.?")+"$","i"),this._minWeekdaysParse[r]=new RegExp("^"+this.weekdaysMin(s,"").replace(".","\\.?")+"$","i")),this._weekdaysParse[r]||(i="^"+this.weekdays(s,"")+"|^"+this.weekdaysShort(s,"")+"|^"+this.weekdaysMin(s,""),this._weekdaysParse[r]=new RegExp(i.replace(".",""),"i")),n&&t==="dddd"&&this._fullWeekdaysParse[r].test(e))return r;if(n&&t==="ddd"&&this._shortWeekdaysParse[r].test(e))return r;if(n&&t==="dd"&&this._minWeekdaysParse[r].test(e))return r;if(!n&&this._weekdaysParse[r].test(e))return r}}function _y(e){if(!this.isValid())return e!=null?this:NaN;var t=Zr(this,"Day");return e!=null?(e=ry(e,this.localeData()),this.add(e-t,"d")):t}function my(e){if(!this.isValid())return e!=null?this:NaN;var t=(this.day()+7-this.localeData()._week.dow)%7;return e==null?t:this.add(e-t,"d")}function gy(e){if(!this.isValid())return e!=null?this:NaN;if(e!=null){var t=sy(e,this.localeData());return this.day(this.day()%7?t:t-7)}else return this.day()||7}function vy(e){return this._weekdaysParseExact?(ge(this,"_weekdaysRegex")||Ra.call(this),e?this._weekdaysStrictRegex:this._weekdaysRegex):(ge(this,"_weekdaysRegex")||(this._weekdaysRegex=ay),this._weekdaysStrictRegex&&e?this._weekdaysStrictRegex:this._weekdaysRegex)}function yy(e){return this._weekdaysParseExact?(ge(this,"_weekdaysRegex")||Ra.call(this),e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(ge(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=uy),this._weekdaysShortStrictRegex&&e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)}function Ey(e){return this._weekdaysParseExact?(ge(this,"_weekdaysRegex")||Ra.call(this),e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(ge(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=ly),this._weekdaysMinStrictRegex&&e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)}function Ra(){function e(c,f){return f.length-c.length}var t=[],n=[],r=[],s=[],i,o,a,u,l;for(i=0;i<7;i++)o=qt([2e3,1]).day(i),a=cn(this.weekdaysMin(o,"")),u=cn(this.weekdaysShort(o,"")),l=cn(this.weekdays(o,"")),t.push(a),n.push(u),r.push(l),s.push(a),s.push(u),s.push(l);t.sort(e),n.sort(e),r.sort(e),s.sort(e),this._weekdaysRegex=new RegExp("^("+s.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+r.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+n.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+t.join("|")+")","i")}function Pa(){return this.hours()%12||12}function by(){return this.hours()||24}K("H",["HH",2],0,"hour");K("h",["hh",2],0,Pa);K("k",["kk",2],0,by);K("hmm",0,0,function(){return""+Pa.apply(this)+Gt(this.minutes(),2)});K("hmmss",0,0,function(){return""+Pa.apply(this)+Gt(this.minutes(),2)+Gt(this.seconds(),2)});K("Hmm",0,0,function(){return""+this.hours()+Gt(this.minutes(),2)});K("Hmmss",0,0,function(){return""+this.hours()+Gt(this.minutes(),2)+Gt(this.seconds(),2)});function dd(e,t){K(e,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),t)})}dd("a",!0);dd("A",!1);function hd(e,t){return t._meridiemParse}Y("a",hd);Y("A",hd);Y("H",Re,Ma);Y("h",Re,gr);Y("k",Re,gr);Y("HH",Re,bt);Y("hh",Re,bt);Y("kk",Re,bt);Y("hmm",td);Y("hmmss",nd);Y("Hmm",td);Y("Hmmss",nd);xe(["H","HH"],ze);xe(["k","kk"],function(e,t,n){var r=ce(e);t[ze]=r===24?0:r});xe(["a","A"],function(e,t,n){n._isPm=n._locale.isPM(e),n._meridiem=e});xe(["h","hh"],function(e,t,n){t[ze]=ce(e),se(n).bigHour=!0});xe("hmm",function(e,t,n){var r=e.length-2;t[ze]=ce(e.substr(0,r)),t[Ft]=ce(e.substr(r)),se(n).bigHour=!0});xe("hmmss",function(e,t,n){var r=e.length-4,s=e.length-2;t[ze]=ce(e.substr(0,r)),t[Ft]=ce(e.substr(r,2)),t[ln]=ce(e.substr(s)),se(n).bigHour=!0});xe("Hmm",function(e,t,n){var r=e.length-2;t[ze]=ce(e.substr(0,r)),t[Ft]=ce(e.substr(r))});xe("Hmmss",function(e,t,n){var r=e.length-4,s=e.length-2;t[ze]=ce(e.substr(0,r)),t[Ft]=ce(e.substr(r,2)),t[ln]=ce(e.substr(s))});function Oy(e){return(e+"").toLowerCase().charAt(0)==="p"}var Sy=/[ap]\.?m?\.?/i,wy=vr("Hours",!0);function xy(e,t,n){return e>11?n?"pm":"PM":n?"am":"AM"}var pd={calendar:hv,longDateFormat:gv,invalidDate:yv,ordinal:bv,dayOfMonthOrdinalParse:Ov,relativeTime:wv,months:Yv,monthsShort:id,week:Xv,weekdays:iy,weekdaysMin:oy,weekdaysShort:fd,meridiemParse:Sy},Ve={},Sr={},Qr;function Ty(e,t){var n,r=Math.min(e.length,t.length);for(n=0;n0;){if(s=Ei(i.slice(0,n).join("-")),s)return s;if(r&&r.length>=n&&Ty(i,r)>=n-1)break;n--}t++}return Qr}function Ay(e){return!!(e&&e.match("^[^/\\\\]*$"))}function Ei(e){var t=null,n;if(Ve[e]===void 0&&typeof Ds<"u"&&Ds&&Ds.exports&&Ay(e))try{t=Qr._abbr,n=require,n("./locale/"+e),wn(t)}catch{Ve[e]=null}return Ve[e]}function wn(e,t){var n;return e&&(dt(t)?n=pn(e):n=Va(e,t),n?Qr=n:typeof console<"u"&&console.warn&&console.warn("Locale "+e+" not found. Did you forget to load it?")),Qr._abbr}function Va(e,t){if(t!==null){var n,r=pd;if(t.abbr=e,Ve[e]!=null)Jf("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),r=Ve[e]._config;else if(t.parentLocale!=null)if(Ve[t.parentLocale]!=null)r=Ve[t.parentLocale]._config;else if(n=Ei(t.parentLocale),n!=null)r=n._config;else return Sr[t.parentLocale]||(Sr[t.parentLocale]=[]),Sr[t.parentLocale].push({name:e,config:t}),null;return Ve[e]=new Ta(To(r,t)),Sr[e]&&Sr[e].forEach(function(s){Va(s.name,s.config)}),wn(e),Ve[e]}else return delete Ve[e],null}function ky(e,t){if(t!=null){var n,r,s=pd;Ve[e]!=null&&Ve[e].parentLocale!=null?Ve[e].set(To(Ve[e]._config,t)):(r=Ei(e),r!=null&&(s=r._config),t=To(s,t),r==null&&(t.abbr=e),n=new Ta(t),n.parentLocale=Ve[e],Ve[e]=n),wn(e)}else Ve[e]!=null&&(Ve[e].parentLocale!=null?(Ve[e]=Ve[e].parentLocale,e===wn()&&wn(e)):Ve[e]!=null&&delete Ve[e]);return Ve[e]}function pn(e){var t;if(e&&e._locale&&e._locale._abbr&&(e=e._locale._abbr),!e)return Qr;if(!Vt(e)){if(t=Ei(e),t)return t;e=[e]}return Dy(e)}function Cy(){return Do(Ve)}function Na(e){var t,n=e._a;return n&&se(e).overflow===-2&&(t=n[un]<0||n[un]>11?un:n[Ht]<1||n[Ht]>Fa(n[nt],n[un])?Ht:n[ze]<0||n[ze]>24||n[ze]===24&&(n[Ft]!==0||n[ln]!==0||n[Pn]!==0)?ze:n[Ft]<0||n[Ft]>59?Ft:n[ln]<0||n[ln]>59?ln:n[Pn]<0||n[Pn]>999?Pn:-1,se(e)._overflowDayOfYear&&(tHt)&&(t=Ht),se(e)._overflowWeeks&&t===-1&&(t=Rv),se(e)._overflowWeekday&&t===-1&&(t=Pv),se(e).overflow=t),e}var My=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/,Fy=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d|))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/,Iy=/Z|[+-]\d\d(?::?\d\d)?/,gs=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/],["YYYYMM",/\d{6}/,!1],["YYYY",/\d{4}/,!1]],Gi=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],Ry=/^\/?Date\((-?\d+)/i,Py=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/,Vy={UT:0,GMT:0,EDT:-4*60,EST:-5*60,CDT:-5*60,CST:-6*60,MDT:-6*60,MST:-7*60,PDT:-7*60,PST:-8*60};function _d(e){var t,n,r=e._i,s=My.exec(r)||Fy.exec(r),i,o,a,u,l=gs.length,c=Gi.length;if(s){for(se(e).iso=!0,t=0,n=l;tUr(o)||e._dayOfYear===0)&&(se(e)._overflowDayOfYear=!0),n=Jr(o,0,e._dayOfYear),e._a[un]=n.getUTCMonth(),e._a[Ht]=n.getUTCDate()),t=0;t<3&&e._a[t]==null;++t)e._a[t]=r[t]=s[t];for(;t<7;t++)e._a[t]=r[t]=e._a[t]==null?t===2?1:0:e._a[t];e._a[ze]===24&&e._a[Ft]===0&&e._a[ln]===0&&e._a[Pn]===0&&(e._nextDay=!0,e._a[ze]=0),e._d=(e._useUTC?Jr:Zv).apply(null,r),i=e._useUTC?e._d.getUTCDay():e._d.getDay(),e._tzm!=null&&e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),e._nextDay&&(e._a[ze]=24),e._w&&typeof e._w.d<"u"&&e._w.d!==i&&(se(e).weekdayMismatch=!0)}}function Hy(e){var t,n,r,s,i,o,a,u,l;t=e._w,t.GG!=null||t.W!=null||t.E!=null?(i=1,o=4,n=Qn(t.GG,e._a[nt],Xr(Ie(),1,4).year),r=Qn(t.W,1),s=Qn(t.E,1),(s<1||s>7)&&(u=!0)):(i=e._locale._week.dow,o=e._locale._week.doy,l=Xr(Ie(),i,o),n=Qn(t.gg,e._a[nt],l.year),r=Qn(t.w,l.week),t.d!=null?(s=t.d,(s<0||s>6)&&(u=!0)):t.e!=null?(s=t.e+i,(t.e<0||t.e>6)&&(u=!0)):s=i),r<1||r>fn(n,i,o)?se(e)._overflowWeeks=!0:u!=null?se(e)._overflowWeekday=!0:(a=cd(n,r,s,i,o),e._a[nt]=a.year,e._dayOfYear=a.dayOfYear)}N.ISO_8601=function(){};N.RFC_2822=function(){};function La(e){if(e._f===N.ISO_8601){_d(e);return}if(e._f===N.RFC_2822){md(e);return}e._a=[],se(e).empty=!0;var t=""+e._i,n,r,s,i,o,a=t.length,u=0,l,c;for(s=Xf(e._f,e._locale).match(Da)||[],c=s.length,n=0;n0&&se(e).unusedInput.push(o),t=t.slice(t.indexOf(r)+r.length),u+=r.length),ar[i]?(r?se(e).empty=!1:se(e).unusedTokens.push(i),Iv(i,r,e)):e._strict&&!r&&se(e).unusedTokens.push(i);se(e).charsLeftOver=a-u,t.length>0&&se(e).unusedInput.push(t),e._a[ze]<=12&&se(e).bigHour===!0&&e._a[ze]>0&&(se(e).bigHour=void 0),se(e).parsedDateParts=e._a.slice(0),se(e).meridiem=e._meridiem,e._a[ze]=Wy(e._locale,e._a[ze],e._meridiem),l=se(e).era,l!==null&&(e._a[nt]=e._locale.erasConvertYear(l,e._a[nt])),Ua(e),Na(e)}function Wy(e,t,n){var r;return n==null?t:e.meridiemHour!=null?e.meridiemHour(t,n):(e.isPM!=null&&(r=e.isPM(n),r&&t<12&&(t+=12),!r&&t===12&&(t=0)),t)}function zy(e){var t,n,r,s,i,o,a=!1,u=e._f.length;if(u===0){se(e).invalidFormat=!0,e._d=new Date(NaN);return}for(s=0;sthis?this:e:hi()});function yd(e,t){var n,r;if(t.length===1&&Vt(t[0])&&(t=t[0]),!t.length)return Ie();for(n=t[0],r=1;rthis.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function h1(){if(!dt(this._isDSTShifted))return this._isDSTShifted;var e={},t;return xa(e,this),e=gd(e),e._a?(t=e._isUTC?qt(e._a):Ie(e._a),this._isDSTShifted=this.isValid()&&s1(e._a,t.toArray())>0):this._isDSTShifted=!1,this._isDSTShifted}function p1(){return this.isValid()?!this._isUTC:!1}function _1(){return this.isValid()?this._isUTC:!1}function bd(){return this.isValid()?this._isUTC&&this._offset===0:!1}var m1=/^(-|\+)?(?:(\d*)[. ])?(\d+):(\d+)(?::(\d+)(\.\d*)?)?$/,g1=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;function Ut(e,t){var n=e,r=null,s,i,o;return xs(e)?n={ms:e._milliseconds,d:e._days,M:e._months}:dn(e)||!isNaN(+e)?(n={},t?n[t]=+e:n.milliseconds=+e):(r=m1.exec(e))?(s=r[1]==="-"?-1:1,n={y:0,d:ce(r[Ht])*s,h:ce(r[ze])*s,m:ce(r[Ft])*s,s:ce(r[ln])*s,ms:ce(ko(r[Pn]*1e3))*s}):(r=g1.exec(e))?(s=r[1]==="-"?-1:1,n={y:Cn(r[2],s),M:Cn(r[3],s),w:Cn(r[4],s),d:Cn(r[5],s),h:Cn(r[6],s),m:Cn(r[7],s),s:Cn(r[8],s)}):n==null?n={}:typeof n=="object"&&("from"in n||"to"in n)&&(o=v1(Ie(n.from),Ie(n.to)),n={},n.ms=o.milliseconds,n.M=o.months),i=new bi(n),xs(e)&&ge(e,"_locale")&&(i._locale=e._locale),xs(e)&&ge(e,"_isValid")&&(i._isValid=e._isValid),i}Ut.fn=bi.prototype;Ut.invalid=r1;function Cn(e,t){var n=e&&parseFloat(e.replace(",","."));return(isNaN(n)?0:n)*t}function Bl(e,t){var n={};return n.months=t.month()-e.month()+(t.year()-e.year())*12,e.clone().add(n.months,"M").isAfter(t)&&--n.months,n.milliseconds=+t-+e.clone().add(n.months,"M"),n}function v1(e,t){var n;return e.isValid()&&t.isValid()?(t=$a(t,e),e.isBefore(t)?n=Bl(e,t):(n=Bl(t,e),n.milliseconds=-n.milliseconds,n.months=-n.months),n):{milliseconds:0,months:0}}function Od(e,t){return function(n,r){var s,i;return r!==null&&!isNaN(+r)&&(Jf(t,"moment()."+t+"(period, number) is deprecated. Please use moment()."+t+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),i=n,n=r,r=i),s=Ut(n,r),Sd(this,s,e),this}}function Sd(e,t,n,r){var s=t._milliseconds,i=ko(t._days),o=ko(t._months);e.isValid()&&(r=r??!0,o&&ad(e,Zr(e,"Month")+o*n),i&&sd(e,"Date",Zr(e,"Date")+i*n),s&&e._d.setTime(e._d.valueOf()+s*n),r&&N.updateOffset(e,i||o))}var y1=Od(1,"add"),E1=Od(-1,"subtract");function wd(e){return typeof e=="string"||e instanceof String}function b1(e){return Nt(e)||is(e)||wd(e)||dn(e)||S1(e)||O1(e)||e===null||e===void 0}function O1(e){var t=Ln(e)&&!Sa(e),n=!1,r=["years","year","y","months","month","M","days","day","d","dates","date","D","hours","hour","h","minutes","minute","m","seconds","second","s","milliseconds","millisecond","ms"],s,i,o=r.length;for(s=0;sn.valueOf():n.valueOf()9999?ws(n,t?"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ"):Zt(Date.prototype.toISOString)?t?this.toDate().toISOString():new Date(this.valueOf()+this.utcOffset()*60*1e3).toISOString().replace("Z",ws(n,"Z")):ws(n,t?"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYY-MM-DD[T]HH:mm:ss.SSSZ")}function N1(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var e="moment",t="",n,r,s,i;return this.isLocal()||(e=this.utcOffset()===0?"moment.utc":"moment.parseZone",t="Z"),n="["+e+'("]',r=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",s="-MM-DD[T]HH:mm:ss.SSS",i=t+'[")]',this.format(n+r+s+i)}function U1(e){e||(e=this.isUtc()?N.defaultFormatUtc:N.defaultFormat);var t=ws(this,e);return this.localeData().postformat(t)}function L1(e,t){return this.isValid()&&(Nt(e)&&e.isValid()||Ie(e).isValid())?Ut({to:this,from:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()}function Y1(e){return this.from(Ie(),e)}function $1(e,t){return this.isValid()&&(Nt(e)&&e.isValid()||Ie(e).isValid())?Ut({from:this,to:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()}function j1(e){return this.to(Ie(),e)}function xd(e){var t;return e===void 0?this._locale._abbr:(t=pn(e),t!=null&&(this._locale=t),this)}var Td=At("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(e){return e===void 0?this.localeData():this.locale(e)});function Dd(){return this._locale}var Ws=1e3,ur=60*Ws,zs=60*ur,Ad=(365*400+97)*24*zs;function lr(e,t){return(e%t+t)%t}function kd(e,t,n){return e<100&&e>=0?new Date(e+400,t,n)-Ad:new Date(e,t,n).valueOf()}function Cd(e,t,n){return e<100&&e>=0?Date.UTC(e+400,t,n)-Ad:Date.UTC(e,t,n)}function B1(e){var t,n;if(e=kt(e),e===void 0||e==="millisecond"||!this.isValid())return this;switch(n=this._isUTC?Cd:kd,e){case"year":t=n(this.year(),0,1);break;case"quarter":t=n(this.year(),this.month()-this.month()%3,1);break;case"month":t=n(this.year(),this.month(),1);break;case"week":t=n(this.year(),this.month(),this.date()-this.weekday());break;case"isoWeek":t=n(this.year(),this.month(),this.date()-(this.isoWeekday()-1));break;case"day":case"date":t=n(this.year(),this.month(),this.date());break;case"hour":t=this._d.valueOf(),t-=lr(t+(this._isUTC?0:this.utcOffset()*ur),zs);break;case"minute":t=this._d.valueOf(),t-=lr(t,ur);break;case"second":t=this._d.valueOf(),t-=lr(t,Ws);break}return this._d.setTime(t),N.updateOffset(this,!0),this}function H1(e){var t,n;if(e=kt(e),e===void 0||e==="millisecond"||!this.isValid())return this;switch(n=this._isUTC?Cd:kd,e){case"year":t=n(this.year()+1,0,1)-1;break;case"quarter":t=n(this.year(),this.month()-this.month()%3+3,1)-1;break;case"month":t=n(this.year(),this.month()+1,1)-1;break;case"week":t=n(this.year(),this.month(),this.date()-this.weekday()+7)-1;break;case"isoWeek":t=n(this.year(),this.month(),this.date()-(this.isoWeekday()-1)+7)-1;break;case"day":case"date":t=n(this.year(),this.month(),this.date()+1)-1;break;case"hour":t=this._d.valueOf(),t+=zs-lr(t+(this._isUTC?0:this.utcOffset()*ur),zs)-1;break;case"minute":t=this._d.valueOf(),t+=ur-lr(t,ur)-1;break;case"second":t=this._d.valueOf(),t+=Ws-lr(t,Ws)-1;break}return this._d.setTime(t),N.updateOffset(this,!0),this}function W1(){return this._d.valueOf()-(this._offset||0)*6e4}function z1(){return Math.floor(this.valueOf()/1e3)}function K1(){return new Date(this.valueOf())}function G1(){var e=this;return[e.year(),e.month(),e.date(),e.hour(),e.minute(),e.second(),e.millisecond()]}function q1(){var e=this;return{years:e.year(),months:e.month(),date:e.date(),hours:e.hours(),minutes:e.minutes(),seconds:e.seconds(),milliseconds:e.milliseconds()}}function Z1(){return this.isValid()?this.toISOString():null}function J1(){return wa(this)}function X1(){return En({},se(this))}function Q1(){return se(this).overflow}function eE(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}}K("N",0,0,"eraAbbr");K("NN",0,0,"eraAbbr");K("NNN",0,0,"eraAbbr");K("NNNN",0,0,"eraName");K("NNNNN",0,0,"eraNarrow");K("y",["y",1],"yo","eraYear");K("y",["yy",2],0,"eraYear");K("y",["yyy",3],0,"eraYear");K("y",["yyyy",4],0,"eraYear");Y("N",ja);Y("NN",ja);Y("NNN",ja);Y("NNNN",fE);Y("NNNNN",dE);xe(["N","NN","NNN","NNNN","NNNNN"],function(e,t,n,r){var s=n._locale.erasParse(e,r,n._strict);s?se(n).era=s:se(n).invalidEra=e});Y("y",mr);Y("yy",mr);Y("yyy",mr);Y("yyyy",mr);Y("yo",hE);xe(["y","yy","yyy","yyyy"],nt);xe(["yo"],function(e,t,n,r){var s;n._locale._eraYearOrdinalRegex&&(s=e.match(n._locale._eraYearOrdinalRegex)),n._locale.eraYearOrdinalParse?t[nt]=n._locale.eraYearOrdinalParse(e,s):t[nt]=parseInt(e,10)});function tE(e,t){var n,r,s,i=this._eras||pn("en")._eras;for(n=0,r=i.length;n=0)return i[r]}function rE(e,t){var n=e.since<=e.until?1:-1;return t===void 0?N(e.since).year():N(e.since).year()+(t-e.offset)*n}function sE(){var e,t,n,r=this.localeData().eras();for(e=0,t=r.length;ei&&(t=i),EE.call(this,e,t,n,r,s))}function EE(e,t,n,r,s){var i=cd(e,t,n,r,s),o=Jr(i.year,0,i.dayOfYear);return this.year(o.getUTCFullYear()),this.month(o.getUTCMonth()),this.date(o.getUTCDate()),this}K("Q",0,"Qo","quarter");Y("Q",Qf);xe("Q",function(e,t){t[un]=(ce(e)-1)*3});function bE(e){return e==null?Math.ceil((this.month()+1)/3):this.month((e-1)*3+this.month()%3)}K("D",["DD",2],"Do","date");Y("D",Re,gr);Y("DD",Re,bt);Y("Do",function(e,t){return e?t._dayOfMonthOrdinalParse||t._ordinalParse:t._dayOfMonthOrdinalParseLenient});xe(["D","DD"],Ht);xe("Do",function(e,t){t[Ht]=ce(e.match(Re)[0])});var Fd=vr("Date",!0);K("DDD",["DDDD",3],"DDDo","dayOfYear");Y("DDD",_i);Y("DDDD",ed);xe(["DDD","DDDD"],function(e,t,n){n._dayOfYear=ce(e)});function OE(e){var t=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return e==null?t:this.add(e-t,"d")}K("m",["mm",2],0,"minute");Y("m",Re,Ma);Y("mm",Re,bt);xe(["m","mm"],Ft);var SE=vr("Minutes",!1);K("s",["ss",2],0,"second");Y("s",Re,Ma);Y("ss",Re,bt);xe(["s","ss"],ln);var wE=vr("Seconds",!1);K("S",0,0,function(){return~~(this.millisecond()/100)});K(0,["SS",2],0,function(){return~~(this.millisecond()/10)});K(0,["SSS",3],0,"millisecond");K(0,["SSSS",4],0,function(){return this.millisecond()*10});K(0,["SSSSS",5],0,function(){return this.millisecond()*100});K(0,["SSSSSS",6],0,function(){return this.millisecond()*1e3});K(0,["SSSSSSS",7],0,function(){return this.millisecond()*1e4});K(0,["SSSSSSSS",8],0,function(){return this.millisecond()*1e5});K(0,["SSSSSSSSS",9],0,function(){return this.millisecond()*1e6});Y("S",_i,Qf);Y("SS",_i,bt);Y("SSS",_i,ed);var bn,Id;for(bn="SSSS";bn.length<=9;bn+="S")Y(bn,mr);function xE(e,t){t[Pn]=ce(("0."+e)*1e3)}for(bn="S";bn.length<=9;bn+="S")xe(bn,xE);Id=vr("Milliseconds",!1);K("z",0,0,"zoneAbbr");K("zz",0,0,"zoneName");function TE(){return this._isUTC?"UTC":""}function DE(){return this._isUTC?"Coordinated Universal Time":""}var k=os.prototype;k.add=y1;k.calendar=T1;k.clone=D1;k.diff=R1;k.endOf=H1;k.format=U1;k.from=L1;k.fromNow=Y1;k.to=$1;k.toNow=j1;k.get=Nv;k.invalidAt=Q1;k.isAfter=A1;k.isBefore=k1;k.isBetween=C1;k.isSame=M1;k.isSameOrAfter=F1;k.isSameOrBefore=I1;k.isValid=J1;k.lang=Td;k.locale=xd;k.localeData=Dd;k.max=Jy;k.min=Zy;k.parsingFlags=X1;k.set=Uv;k.startOf=B1;k.subtract=E1;k.toArray=G1;k.toObject=q1;k.toDate=K1;k.toISOString=V1;k.inspect=N1;typeof Symbol<"u"&&Symbol.for!=null&&(k[Symbol.for("nodejs.util.inspect.custom")]=function(){return"Moment<"+this.format()+">"});k.toJSON=Z1;k.toString=P1;k.unix=z1;k.valueOf=W1;k.creationData=eE;k.eraName=sE;k.eraNarrow=iE;k.eraAbbr=oE;k.eraYear=aE;k.year=rd;k.isLeapYear=Vv;k.weekYear=pE;k.isoWeekYear=_E;k.quarter=k.quarters=bE;k.month=ud;k.daysInMonth=Kv;k.week=k.weeks=ty;k.isoWeek=k.isoWeeks=ny;k.weeksInYear=vE;k.weeksInWeekYear=yE;k.isoWeeksInYear=mE;k.isoWeeksInISOWeekYear=gE;k.date=Fd;k.day=k.days=_y;k.weekday=my;k.isoWeekday=gy;k.dayOfYear=OE;k.hour=k.hours=wy;k.minute=k.minutes=SE;k.second=k.seconds=wE;k.millisecond=k.milliseconds=Id;k.utcOffset=o1;k.utc=u1;k.local=l1;k.parseZone=c1;k.hasAlignedHourOffset=f1;k.isDST=d1;k.isLocal=p1;k.isUtcOffset=_1;k.isUtc=bd;k.isUTC=bd;k.zoneAbbr=TE;k.zoneName=DE;k.dates=At("dates accessor is deprecated. Use date instead.",Fd);k.months=At("months accessor is deprecated. Use month instead",ud);k.years=At("years accessor is deprecated. Use year instead",rd);k.zone=At("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",a1);k.isDSTShifted=At("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",h1);function AE(e){return Ie(e*1e3)}function kE(){return Ie.apply(null,arguments).parseZone()}function Rd(e){return e}var ve=Ta.prototype;ve.calendar=pv;ve.longDateFormat=vv;ve.invalidDate=Ev;ve.ordinal=Sv;ve.preparse=Rd;ve.postformat=Rd;ve.relativeTime=xv;ve.pastFuture=Tv;ve.set=dv;ve.eras=tE;ve.erasParse=nE;ve.erasConvertYear=rE;ve.erasAbbrRegex=lE;ve.erasNameRegex=uE;ve.erasNarrowRegex=cE;ve.months=Bv;ve.monthsShort=Hv;ve.monthsParse=zv;ve.monthsRegex=qv;ve.monthsShortRegex=Gv;ve.week=Jv;ve.firstDayOfYear=ey;ve.firstDayOfWeek=Qv;ve.weekdays=cy;ve.weekdaysMin=dy;ve.weekdaysShort=fy;ve.weekdaysParse=py;ve.weekdaysRegex=vy;ve.weekdaysShortRegex=yy;ve.weekdaysMinRegex=Ey;ve.isPM=Oy;ve.meridiem=xy;function Ks(e,t,n,r){var s=pn(),i=qt().set(r,t);return s[n](i,e)}function Pd(e,t,n){if(dn(e)&&(t=e,e=void 0),e=e||"",t!=null)return Ks(e,t,n,"month");var r,s=[];for(r=0;r<12;r++)s[r]=Ks(e,r,n,"month");return s}function Ha(e,t,n,r){typeof e=="boolean"?(dn(t)&&(n=t,t=void 0),t=t||""):(t=e,n=t,e=!1,dn(t)&&(n=t,t=void 0),t=t||"");var s=pn(),i=e?s._week.dow:0,o,a=[];if(n!=null)return Ks(t,(n+i)%7,r,"day");for(o=0;o<7;o++)a[o]=Ks(t,(o+i)%7,r,"day");return a}function CE(e,t){return Pd(e,t,"months")}function ME(e,t){return Pd(e,t,"monthsShort")}function FE(e,t,n){return Ha(e,t,n,"weekdays")}function IE(e,t,n){return Ha(e,t,n,"weekdaysShort")}function RE(e,t,n){return Ha(e,t,n,"weekdaysMin")}wn("en",{eras:[{since:"0001-01-01",until:1/0,offset:1,name:"Anno Domini",narrow:"AD",abbr:"AD"},{since:"0000-12-31",until:-1/0,offset:1,name:"Before Christ",narrow:"BC",abbr:"BC"}],dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var t=e%10,n=ce(e%100/10)===1?"th":t===1?"st":t===2?"nd":t===3?"rd":"th";return e+n}});N.lang=At("moment.lang is deprecated. Use moment.locale instead.",wn);N.langData=At("moment.langData is deprecated. Use moment.localeData instead.",pn);var en=Math.abs;function PE(){var e=this._data;return this._milliseconds=en(this._milliseconds),this._days=en(this._days),this._months=en(this._months),e.milliseconds=en(e.milliseconds),e.seconds=en(e.seconds),e.minutes=en(e.minutes),e.hours=en(e.hours),e.months=en(e.months),e.years=en(e.years),this}function Vd(e,t,n,r){var s=Ut(t,n);return e._milliseconds+=r*s._milliseconds,e._days+=r*s._days,e._months+=r*s._months,e._bubble()}function VE(e,t){return Vd(this,e,t,1)}function NE(e,t){return Vd(this,e,t,-1)}function Hl(e){return e<0?Math.floor(e):Math.ceil(e)}function UE(){var e=this._milliseconds,t=this._days,n=this._months,r=this._data,s,i,o,a,u;return e>=0&&t>=0&&n>=0||e<=0&&t<=0&&n<=0||(e+=Hl(Mo(n)+t)*864e5,t=0,n=0),r.milliseconds=e%1e3,s=xt(e/1e3),r.seconds=s%60,i=xt(s/60),r.minutes=i%60,o=xt(i/60),r.hours=o%24,t+=xt(o/24),u=xt(Nd(t)),n+=u,t-=Hl(Mo(u)),a=xt(n/12),n%=12,r.days=t,r.months=n,r.years=a,this}function Nd(e){return e*4800/146097}function Mo(e){return e*146097/4800}function LE(e){if(!this.isValid())return NaN;var t,n,r=this._milliseconds;if(e=kt(e),e==="month"||e==="quarter"||e==="year")switch(t=this._days+r/864e5,n=this._months+Nd(t),e){case"month":return n;case"quarter":return n/3;case"year":return n/12}else switch(t=this._days+Math.round(Mo(this._months)),e){case"week":return t/7+r/6048e5;case"day":return t+r/864e5;case"hour":return t*24+r/36e5;case"minute":return t*1440+r/6e4;case"second":return t*86400+r/1e3;case"millisecond":return Math.floor(t*864e5)+r;default:throw new Error("Unknown unit "+e)}}function _n(e){return function(){return this.as(e)}}var Ud=_n("ms"),YE=_n("s"),$E=_n("m"),jE=_n("h"),BE=_n("d"),HE=_n("w"),WE=_n("M"),zE=_n("Q"),KE=_n("y"),GE=Ud;function qE(){return Ut(this)}function ZE(e){return e=kt(e),this.isValid()?this[e+"s"]():NaN}function Kn(e){return function(){return this.isValid()?this._data[e]:NaN}}var JE=Kn("milliseconds"),XE=Kn("seconds"),QE=Kn("minutes"),eb=Kn("hours"),tb=Kn("days"),nb=Kn("months"),rb=Kn("years");function sb(){return xt(this.days()/7)}var rn=Math.round,nr={ss:44,s:45,m:45,h:22,d:26,w:null,M:11};function ib(e,t,n,r,s){return s.relativeTime(t||1,!!n,e,r)}function ob(e,t,n,r){var s=Ut(e).abs(),i=rn(s.as("s")),o=rn(s.as("m")),a=rn(s.as("h")),u=rn(s.as("d")),l=rn(s.as("M")),c=rn(s.as("w")),f=rn(s.as("y")),g=i<=n.ss&&["s",i]||i0,g[4]=r,ib.apply(null,g)}function ab(e){return e===void 0?rn:typeof e=="function"?(rn=e,!0):!1}function ub(e,t){return nr[e]===void 0?!1:t===void 0?nr[e]:(nr[e]=t,e==="s"&&(nr.ss=t-1),!0)}function lb(e,t){if(!this.isValid())return this.localeData().invalidDate();var n=!1,r=nr,s,i;return typeof e=="object"&&(t=e,e=!1),typeof e=="boolean"&&(n=e),typeof t=="object"&&(r=Object.assign({},nr,t),t.s!=null&&t.ss==null&&(r.ss=t.s-1)),s=this.localeData(),i=ob(this,!n,r,s),n&&(i=s.pastFuture(+this,i)),s.postformat(i)}var qi=Math.abs;function Jn(e){return(e>0)-(e<0)||+e}function Si(){if(!this.isValid())return this.localeData().invalidDate();var e=qi(this._milliseconds)/1e3,t=qi(this._days),n=qi(this._months),r,s,i,o,a=this.asSeconds(),u,l,c,f;return a?(r=xt(e/60),s=xt(r/60),e%=60,r%=60,i=xt(n/12),n%=12,o=e?e.toFixed(3).replace(/\.?0+$/,""):"",u=a<0?"-":"",l=Jn(this._months)!==Jn(a)?"-":"",c=Jn(this._days)!==Jn(a)?"-":"",f=Jn(this._milliseconds)!==Jn(a)?"-":"",u+"P"+(i?l+i+"Y":"")+(n?l+n+"M":"")+(t?c+t+"D":"")+(s||r||e?"T":"")+(s?f+s+"H":"")+(r?f+r+"M":"")+(e?f+o+"S":"")):"P0D"}var he=bi.prototype;he.isValid=n1;he.abs=PE;he.add=VE;he.subtract=NE;he.as=LE;he.asMilliseconds=Ud;he.asSeconds=YE;he.asMinutes=$E;he.asHours=jE;he.asDays=BE;he.asWeeks=HE;he.asMonths=WE;he.asQuarters=zE;he.asYears=KE;he.valueOf=GE;he._bubble=UE;he.clone=qE;he.get=ZE;he.milliseconds=JE;he.seconds=XE;he.minutes=QE;he.hours=eb;he.days=tb;he.weeks=sb;he.months=nb;he.years=rb;he.humanize=lb;he.toISOString=Si;he.toString=Si;he.toJSON=Si;he.locale=xd;he.localeData=Dd;he.toIsoString=At("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",Si);he.lang=Td;K("X",0,0,"unix");K("x",0,0,"valueOf");Y("x",gi);Y("X",Cv);xe("X",function(e,t,n){n._d=new Date(parseFloat(e)*1e3)});xe("x",function(e,t,n){n._d=new Date(ce(e))});//! moment.js -N.version="2.30.1";cv(Ie);N.fn=k;N.min=Xy;N.max=Qy;N.now=e1;N.utc=qt;N.unix=AE;N.months=CE;N.isDate=is;N.locale=wn;N.invalid=hi;N.duration=Ut;N.isMoment=Nt;N.weekdays=FE;N.parseZone=kE;N.localeData=pn;N.isDuration=xs;N.monthsShort=ME;N.weekdaysMin=RE;N.defineLocale=Va;N.updateLocale=ky;N.locales=Cy;N.weekdaysShort=IE;N.normalizeUnits=kt;N.relativeTimeRounding=ab;N.relativeTimeThreshold=ub;N.calendarFormat=x1;N.prototype=k;N.HTML5_FMT={DATETIME_LOCAL:"YYYY-MM-DDTHH:mm",DATETIME_LOCAL_SECONDS:"YYYY-MM-DDTHH:mm:ss",DATETIME_LOCAL_MS:"YYYY-MM-DDTHH:mm:ss.SSS",DATE:"YYYY-MM-DD",TIME:"HH:mm",TIME_SECONDS:"HH:mm:ss",TIME_MS:"HH:mm:ss.SSS",WEEK:"GGGG-[W]WW",MONTH:"YYYY-MM"};const cb={class:"dialog"},fb={class:"dialog__body"},db={class:"dialog__form-group"},hb={class:"dialog__form-validation"},pb={class:"dialog__form-group"},_b={class:"dialog__form-validation"},mb={class:"dialog__form-group"},gb={class:"dialog__form-group"},vb={class:"dialog__form-group dialog__form-group--radio"},yb={class:"dialog__form-radio"},Eb={class:"dialog__form-radio"},bb={class:"dialog__form-group"},Ob={__name:"HelloWorld",setup(e){const t=r=>{fetch("http://esx_identity/register",{method:"POST",body:JSON.stringify({firstname:r.firstname,lastname:r.lastname,dateofbirth:r.dob,sex:r.gender,height:r.height})})},n=zf({firstname:Os().required("Firstname is required").min(3,"Firstname must be at least 3 characters"),lastname:Os().required("Lastname is required").min(3,"Lastname must be at least 3 characters"),dob:Oa().required("Date of Birth is required").transform((r,s)=>{const i=N(s,"DD/MM/YYYY",!0);return i.isValid()?i.toDate():new Date("")}).typeError("Date must be in mm/dd/yyyy format"),gender:Os().required("Gender is required"),height:jf().required("Height is required").min(120,"Minimum height is 120cm").max(220,"Maximum height is 220cm").typeError("Amount must be a number")});return(r,s)=>(Uc(),D0("div",cb,[s[9]||(s[9]=we("div",{class:"dialog__header"},[we("h1",null,[Tr("CHARACTER "),we("span",null,"IDENTITY")])],-1)),we("div",fb,[s[8]||(s[8]=we("p",{class:"dialog__body-hint"},"Start by creating your identity",-1)),Ne(re(hg),{class:"dialog__body-form",id:"register",action:"#",novalidate:"",onSubmit:t,"validation-schema":re(n)},{default:_c(()=>[we("div",db,[s[0]||(s[0]=we("label",{for:"firstname"},"Firstname",-1)),we("div",hb,[Ne(re(qn),{id:"firstname",type:"text",name:"firstname",placeholder:"Firstname",validateOnInput:""})]),Ne(re(Or),{name:"firstname",class:"dialog__form-message dialog__form-message--error"})]),we("div",pb,[s[1]||(s[1]=we("label",{for:"lastname"},"Lastname",-1)),we("div",_b,[Ne(re(qn),{id:"lastname",type:"text",name:"lastname",placeholder:"Lastname",validateOnInput:""})]),Ne(re(Or),{name:"lastname",class:"dialog__form-message dialog__form-message--error"})]),we("div",mb,[s[2]||(s[2]=we("label",{for:"dob"},"Date of birth",-1)),Ne(re(qn),{id:"dob",type:"text",name:"dob",placeholder:"mm/dd/yyyy",validateOnInput:""}),Ne(re(Or),{name:"dob",class:"dialog__form-message dialog__form-message--error"})]),we("div",gb,[s[5]||(s[5]=we("label",{for:"gender"},"Gender",-1)),we("div",vb,[we("div",yb,[Ne(re(qn),{type:"radio",id:"male",value:"m",name:"gender",validateOnInput:""}),s[3]||(s[3]=we("label",{for:"male"},[we("i",{class:"fas fa-mars"}),Tr("Male ")],-1))]),we("div",Eb,[Ne(re(qn),{type:"radio",id:"female",value:"f",name:"gender",validateOnInput:""}),s[4]||(s[4]=we("label",{for:"female"},[we("i",{class:"fas fa-venus"}),Tr("Female ")],-1))])]),Ne(re(Or),{name:"gender",class:"dialog__form-message dialog__form-message--error"})]),we("div",bb,[s[6]||(s[6]=we("label",{for:"height"},"Height",-1)),Ne(re(qn),{id:"height",type:"text",name:"height",placeholder:"175",validateOnInput:""}),Ne(re(Or),{name:"height",class:"dialog__form-message dialog__form-message--error"})]),s[7]||(s[7]=we("button",{class:"dialog__form-submit",id:"submit",type:"submit"},[we("i",{class:"fas fa-user-plus"}),Tr("CREATE ")],-1))]),_:1},8,["validation-schema"])])]))}},Sb={__name:"App",setup(e){return ti(()=>{fetch("http://esx_identity/ready",{method:"POST",body:JSON.stringify({})}),window.addEventListener("message",t=>{t.data.type==="enableui"&&document.body.classList[t.data.enable?"remove":"add"]("none")})}),(t,n)=>(Uc(),A0(Ob))}};cp(Sb).mount("#app")});export default wb(); +N.version="2.30.1";cv(Ie);N.fn=k;N.min=Xy;N.max=Qy;N.now=e1;N.utc=qt;N.unix=AE;N.months=CE;N.isDate=is;N.locale=wn;N.invalid=hi;N.duration=Ut;N.isMoment=Nt;N.weekdays=FE;N.parseZone=kE;N.localeData=pn;N.isDuration=xs;N.monthsShort=ME;N.weekdaysMin=RE;N.defineLocale=Va;N.updateLocale=ky;N.locales=Cy;N.weekdaysShort=IE;N.normalizeUnits=kt;N.relativeTimeRounding=ab;N.relativeTimeThreshold=ub;N.calendarFormat=x1;N.prototype=k;N.HTML5_FMT={DATETIME_LOCAL:"YYYY-MM-DDTHH:mm",DATETIME_LOCAL_SECONDS:"YYYY-MM-DDTHH:mm:ss",DATETIME_LOCAL_MS:"YYYY-MM-DDTHH:mm:ss.SSS",DATE:"YYYY-MM-DD",TIME:"HH:mm",TIME_SECONDS:"HH:mm:ss",TIME_MS:"HH:mm:ss.SSS",WEEK:"GGGG-[W]WW",MONTH:"YYYY-MM"};const cb={class:"dialog"},fb={class:"dialog__body"},db={class:"dialog__form-group"},hb={class:"dialog__form-validation"},pb={class:"dialog__form-group"},_b={class:"dialog__form-validation"},mb={class:"dialog__form-group"},gb={class:"dialog__form-group"},vb={class:"dialog__form-group dialog__form-group--radio"},yb={class:"dialog__form-radio"},Eb={class:"dialog__form-radio"},bb={class:"dialog__form-group"},Ob={__name:"Identity",setup(e){const t=r=>{fetch("http://esx_identity/register",{method:"POST",body:JSON.stringify({firstname:r.firstname,lastname:r.lastname,dateofbirth:r.dob,sex:r.gender,height:r.height})})},n=zf({firstname:Os().required("Firstname is required").min(3,"Firstname must be at least 3 characters"),lastname:Os().required("Lastname is required").min(3,"Lastname must be at least 3 characters"),dob:Oa().required("Date of Birth is required").min("01-01-1900","Date is too early").max(N().format("DD-MM-YYYY"),"You cant be older than today"),gender:Os().required("Gender is required"),height:jf().required("Height is required").min(120,"Minimum height is 120cm").max(220,"Maximum height is 220cm").typeError("Amount must be a number")});return(r,s)=>(Uc(),D0("div",cb,[s[9]||(s[9]=we("div",{class:"dialog__header"},[we("h1",null,[Tr("CHARACTER "),we("span",null,"IDENTITY")])],-1)),we("div",fb,[s[8]||(s[8]=we("p",{class:"dialog__body-hint"},"Start by creating your identity",-1)),Ne(re(hg),{class:"dialog__body-form",id:"register",action:"#",novalidate:"",onSubmit:t,"validation-schema":re(n)},{default:_c(()=>[we("div",db,[s[0]||(s[0]=we("label",{for:"firstname"},"Firstname",-1)),we("div",hb,[Ne(re(qn),{id:"firstname",type:"text",name:"firstname",placeholder:"Firstname",validateOnInput:""})]),Ne(re(Or),{name:"firstname",class:"dialog__form-message dialog__form-message--error"})]),we("div",pb,[s[1]||(s[1]=we("label",{for:"lastname"},"Lastname",-1)),we("div",_b,[Ne(re(qn),{id:"lastname",type:"text",name:"lastname",placeholder:"Lastname",validateOnInput:""})]),Ne(re(Or),{name:"lastname",class:"dialog__form-message dialog__form-message--error"})]),we("div",mb,[s[2]||(s[2]=we("label",{for:"dob"},"Date of birth",-1)),Ne(re(qn),{id:"dob",type:"date",name:"dob",placeholder:"mm/dd/yyyy",validateOnInput:""}),Ne(re(Or),{name:"dob",class:"dialog__form-message dialog__form-message--error"})]),we("div",gb,[s[5]||(s[5]=we("label",{for:"gender"},"Gender",-1)),we("div",vb,[we("div",yb,[Ne(re(qn),{type:"radio",id:"male",value:"m",name:"gender",validateOnInput:""}),s[3]||(s[3]=we("label",{for:"male"},[we("i",{class:"fas fa-mars"}),Tr("Male ")],-1))]),we("div",Eb,[Ne(re(qn),{type:"radio",id:"female",value:"f",name:"gender",validateOnInput:""}),s[4]||(s[4]=we("label",{for:"female"},[we("i",{class:"fas fa-venus"}),Tr("Female ")],-1))])]),Ne(re(Or),{name:"gender",class:"dialog__form-message dialog__form-message--error"})]),we("div",bb,[s[6]||(s[6]=we("label",{for:"height"},"Height",-1)),Ne(re(qn),{id:"height",type:"text",name:"height",placeholder:"175",validateOnInput:""}),Ne(re(Or),{name:"height",class:"dialog__form-message dialog__form-message--error"})]),s[7]||(s[7]=we("button",{class:"dialog__form-submit",id:"submit",type:"submit"},[we("i",{class:"fas fa-user-plus"}),Tr("CREATE ")],-1))]),_:1},8,["validation-schema"])])]))}},Sb={__name:"App",setup(e){return ti(()=>{fetch("http://esx_identity/ready",{method:"POST",body:JSON.stringify({})}),window.addEventListener("message",t=>{t.data.type==="enableui"&&document.body.classList[t.data.enable?"remove":"add"]("none")})}),(t,n)=>(Uc(),A0(Ob))}};cp(Sb).mount("#app")});export default wb(); diff --git a/[core]/esx_identity/dist/index.html b/[core]/esx_identity/dist/index.html index 6e42d2ca..db57ffb8 100644 --- a/[core]/esx_identity/dist/index.html +++ b/[core]/esx_identity/dist/index.html @@ -11,8 +11,8 @@ - - + + diff --git a/[core]/esx_identity/src/App.vue b/[core]/esx_identity/src/App.vue index a5abab90..c8dc6797 100644 --- a/[core]/esx_identity/src/App.vue +++ b/[core]/esx_identity/src/App.vue @@ -1,6 +1,6 @@ diff --git a/[core]/esx_identity/web/src/assets/vue.svg b/[core]/esx_identity/web/src/assets/vue.svg new file mode 100644 index 00000000..770e9d33 --- /dev/null +++ b/[core]/esx_identity/web/src/assets/vue.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/[core]/esx_identity/web/src/components/Identity.vue b/[core]/esx_identity/web/src/components/Identity.vue new file mode 100644 index 00000000..d51739ba --- /dev/null +++ b/[core]/esx_identity/web/src/components/Identity.vue @@ -0,0 +1,92 @@ + + + + + diff --git a/[core]/esx_identity/web/src/main.js b/[core]/esx_identity/web/src/main.js new file mode 100644 index 00000000..5a6e2468 --- /dev/null +++ b/[core]/esx_identity/web/src/main.js @@ -0,0 +1,5 @@ +import { createApp } from 'vue' +import './style.css' +import App from './App.vue' + +createApp(App).mount('#app') \ No newline at end of file diff --git a/[core]/esx_identity/web/src/style.css b/[core]/esx_identity/web/src/style.css new file mode 100644 index 00000000..17023ffc --- /dev/null +++ b/[core]/esx_identity/web/src/style.css @@ -0,0 +1,195 @@ +@import url('https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap'); +/* body { + margin: 0; + display: flex; + place-items: center; + min-width: 320px; + min-height: 100vh; +} */ + +/* REMOVE LATER, ADD SCSS */ + +body { + font-family: sans-serif; + overflow: hidden; + background-color: transparent; +} + +.none { + display: none; +} + +.dialog { + width: 477px; + position: absolute; + top: 50%; + left: 50%; + transform: translate(-50%, -50%); + background-color: #080808; + border-radius: 8px; + border: none; + color: #ffffff; + font-family: "Poppins", sans-serif; +} + +.dialog__header { + background-color: #040404; + border-top-left-radius: 8px; + border-top-right-radius: 8px; + padding: 20px; + text-align: center; +} + +.dialog__header h1 { + font-weight: 700; + margin-bottom: 0; + font-size: 30px; +} + +.dialog__header span { + color: #FD9800; +} + +.dialog__body { + padding-block: 20px; + padding-inline: 65px; +} + +.dialog__body-hint { + text-align: center; + margin-bottom: 20px; +} + +.dialog__body-form { + display: flex; + flex-direction: column; + gap: 35px; + font-weight: 600; + font-size: 15px; +} + +.dialog__form-submit { + border:none; + background-color: #FD9800; + color: #fff; + font-size: 18px; + font-weight:bold; + border-radius: 4px; + padding-block: 5px; +} + +.dialog__form-submit i { + margin-right: 5px; +} + +.dialog__form-group { + display: flex; + align-items: center; + justify-content: space-between; + gap: 30px; + background-color: #040404; + position: relative; +} + +.dialog__form-group--radio { + gap: 0; +} + +.dialog__form-group label { + flex-grow: 1; /* Label will expand to fill available space */ + flex-shrink: 1; /* Allows the label to shrink if necessary */ + padding-inline: 20px; /* Horizontal padding */ +} + +.dialog__form-group input { + background-color: transparent; + border: none; + height: 30px; + width: 180px; /* Fixed width for input */ + flex-shrink: 0; /* Prevent input from shrinking */ + color: white; +} + + +.dialog__form-group input:focus { + background-color: rgba(15, 15, 15, 0.9); + border: none; + border-radius: 5px; + color: #ffffff; + outline: none; + box-shadow: none; +} + +.dialog__form-validation { + position: relative; +} + +.dialog__form-validation i { + position: absolute; + right: 10px; + top: 50%; + transform: translate(0, -50%); +} + +.dialog__form-radio { + display: flex; + align-items: center; +} + +.dialog__form-radio input { + display: none; +} + +.dialog__form-radio label { + display: flex; + align-items: center; + gap: 10px; + cursor: pointer; +} + +.dialog__form-radio input + label { + height: 30px; + display: flex; + align-items: center; +} + +.dialog__form-radio input:checked + label { + color: #30A1FD; + height: 30px; +} + +.dialog__form-radio input:not(:checked) + label { + color: #242424; + height: 30px; +} + +.dialog__form-message { + position: absolute; + top: 35px; + right: 0; + font-size: 9px; +} + +.dialog__form-message--error { + color: #733838; +} + +#male:checked + label { + color: #30A1FD; /* Blue color */ +} + +/* For the female radio button */ +#female:checked + label { + color: #FF69B4; /* Pink color */ +} + +::placeholder { + color: #242424; + font-weight: 600; +} + +input[type="date"]::-webkit-inner-spin-button, +input[type="date"]::-webkit-calendar-picker-indicator { + display: none; + -webkit-appearance: none; +} \ No newline at end of file diff --git a/[core]/esx_identity/web/vite.config.js b/[core]/esx_identity/web/vite.config.js new file mode 100644 index 00000000..4b141472 --- /dev/null +++ b/[core]/esx_identity/web/vite.config.js @@ -0,0 +1,8 @@ +import { defineConfig } from 'vite' +import vue from '@vitejs/plugin-vue' + +// https://vitejs.dev/config/ +export default defineConfig({ + base: './', + plugins: [vue()], +}) From 15b64a7f568acd69a3dcbd4ac00659b5fba3e7a7 Mon Sep 17 00:00:00 2001 From: luckie12 Date: Thu, 14 Nov 2024 20:19:53 +0100 Subject: [PATCH 042/138] Added FXManifest --- .../dist/assets/index-BR-kw549.js | 33 - .../dist/assets/index-CBKwBtku.css | 1 - [core]/esx_identity/dist/index.html | 22 - [core]/esx_identity/dist/vite.svg | 1 - [core]/esx_identity/fxmanifest.lua | 6 +- [core]/esx_identity/index.html | 21 - [core]/esx_identity/package-lock.json | 1186 ----------------- [core]/esx_identity/package.json | 21 - [core]/esx_identity/public/vite.svg | 1 - [core]/esx_identity/src/App.vue | 26 - [core]/esx_identity/src/assets/vue.svg | 1 - .../esx_identity/src/components/Identity.vue | 92 -- [core]/esx_identity/src/main.js | 5 - [core]/esx_identity/src/style.css | 195 --- [core]/esx_identity/vite.config.js | 8 - 15 files changed, 3 insertions(+), 1616 deletions(-) delete mode 100644 [core]/esx_identity/dist/assets/index-BR-kw549.js delete mode 100644 [core]/esx_identity/dist/assets/index-CBKwBtku.css delete mode 100644 [core]/esx_identity/dist/index.html delete mode 100644 [core]/esx_identity/dist/vite.svg delete mode 100644 [core]/esx_identity/index.html delete mode 100644 [core]/esx_identity/package-lock.json delete mode 100644 [core]/esx_identity/package.json delete mode 100644 [core]/esx_identity/public/vite.svg delete mode 100644 [core]/esx_identity/src/App.vue delete mode 100644 [core]/esx_identity/src/assets/vue.svg delete mode 100644 [core]/esx_identity/src/components/Identity.vue delete mode 100644 [core]/esx_identity/src/main.js delete mode 100644 [core]/esx_identity/src/style.css delete mode 100644 [core]/esx_identity/vite.config.js diff --git a/[core]/esx_identity/dist/assets/index-BR-kw549.js b/[core]/esx_identity/dist/assets/index-BR-kw549.js deleted file mode 100644 index 75747bb1..00000000 --- a/[core]/esx_identity/dist/assets/index-BR-kw549.js +++ /dev/null @@ -1,33 +0,0 @@ -var Ld=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var wb=Ld((Tb,Ds)=>{(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const s of document.querySelectorAll('link[rel="modulepreload"]'))r(s);new MutationObserver(s=>{for(const i of s)if(i.type==="childList")for(const o of i.addedNodes)o.tagName==="LINK"&&o.rel==="modulepreload"&&r(o)}).observe(document,{childList:!0,subtree:!0});function n(s){const i={};return s.integrity&&(i.integrity=s.integrity),s.referrerPolicy&&(i.referrerPolicy=s.referrerPolicy),s.crossOrigin==="use-credentials"?i.credentials="include":s.crossOrigin==="anonymous"?i.credentials="omit":i.credentials="same-origin",i}function r(s){if(s.ep)return;s.ep=!0;const i=n(s);fetch(s.href,i)}})();/** -* @vue/shared v3.5.12 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**//*! #__NO_SIDE_EFFECTS__ */function Fo(e){const t=Object.create(null);for(const n of e.split(","))t[n]=1;return n=>n in t}const ke={},rr=[],Wt=()=>{},Yd=()=>!1,Gs=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),Io=e=>e.startsWith("onUpdate:"),qe=Object.assign,Ro=(e,t)=>{const n=e.indexOf(t);n>-1&&e.splice(n,1)},$d=Object.prototype.hasOwnProperty,be=(e,t)=>$d.call(e,t),ie=Array.isArray,kr=e=>qs(e)==="[object Map]",jd=e=>qs(e)==="[object Set]",ee=e=>typeof e=="function",Ke=e=>typeof e=="string",hr=e=>typeof e=="symbol",He=e=>e!==null&&typeof e=="object",Wl=e=>(He(e)||ee(e))&&ee(e.then)&&ee(e.catch),Bd=Object.prototype.toString,qs=e=>Bd.call(e),Hd=e=>qs(e).slice(8,-1),Wd=e=>qs(e)==="[object Object]",Po=e=>Ke(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,Cr=Fo(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),Zs=e=>{const t=Object.create(null);return n=>t[n]||(t[n]=e(n))},zd=/-(\w)/g,Dt=Zs(e=>e.replace(zd,(t,n)=>n?n.toUpperCase():"")),Kd=/\B([A-Z])/g,Hn=Zs(e=>e.replace(Kd,"-$1").toLowerCase()),Js=Zs(e=>e.charAt(0).toUpperCase()+e.slice(1)),Ai=Zs(e=>e?`on${Js(e)}`:""),On=(e,t)=>!Object.is(e,t),ki=(e,...t)=>{for(let n=0;n{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:r,value:n})},Gd=e=>{const t=parseFloat(e);return isNaN(t)?e:t};let Wa;const Xs=()=>Wa||(Wa=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global<"u"?global:{});function Vo(e){if(ie(e)){const t={};for(let n=0;n{if(n){const r=n.split(Zd);r.length>1&&(t[r[0].trim()]=r[1].trim())}}),t}function No(e){let t="";if(Ke(e))t=e;else if(ie(e))for(let n=0;n0)return;if(Fr){let t=Fr;for(Fr=void 0;t;){const n=t.next;t.next=void 0,t.flags&=-9,t=n}}let e;for(;Mr;){let t=Mr;for(Mr=void 0;t;){const n=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(r){e||(e=r)}t=n}}if(e)throw e}function Jl(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function Xl(e){let t,n=e.depsTail,r=n;for(;r;){const s=r.prevDep;r.version===-1?(r===n&&(n=s),Yo(r),rh(r)):t=r,r.dep.activeLink=r.prevActiveLink,r.prevActiveLink=void 0,r=s}e.deps=t,e.depsTail=n}function Zi(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(Ql(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function Ql(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===Lr))return;e.globalVersion=Lr;const t=e.dep;if(e.flags|=2,t.version>0&&!e.isSSR&&e.deps&&!Zi(e)){e.flags&=-3;return}const n=Ae,r=It;Ae=e,It=!0;try{Jl(e);const s=e.fn(e._value);(t.version===0||On(s,e._value))&&(e._value=s,t.version++)}catch(s){throw t.version++,s}finally{Ae=n,It=r,Xl(e),e.flags&=-3}}function Yo(e,t=!1){const{dep:n,prevSub:r,nextSub:s}=e;if(r&&(r.nextSub=s,e.prevSub=void 0),s&&(s.prevSub=r,e.nextSub=void 0),n.subs===e&&(n.subs=r,!r&&n.computed)){n.computed.flags&=-5;for(let i=n.computed.deps;i;i=i.nextDep)Yo(i,!0)}!t&&!--n.sc&&n.map&&n.map.delete(n.key)}function rh(e){const{prevDep:t,nextDep:n}=e;t&&(t.nextDep=n,e.prevDep=void 0),n&&(n.prevDep=t,e.nextDep=void 0)}let It=!0;const ec=[];function Tn(){ec.push(It),It=!1}function Dn(){const e=ec.pop();It=e===void 0?!0:e}function za(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const n=Ae;Ae=void 0;try{t()}finally{Ae=n}}}let Lr=0;class sh{constructor(t,n){this.sub=t,this.dep=n,this.version=n.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class $o{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0}track(t){if(!Ae||!It||Ae===this.computed)return;let n=this.activeLink;if(n===void 0||n.sub!==Ae)n=this.activeLink=new sh(Ae,this),Ae.deps?(n.prevDep=Ae.depsTail,Ae.depsTail.nextDep=n,Ae.depsTail=n):Ae.deps=Ae.depsTail=n,tc(n);else if(n.version===-1&&(n.version=this.version,n.nextDep)){const r=n.nextDep;r.prevDep=n.prevDep,n.prevDep&&(n.prevDep.nextDep=r),n.prevDep=Ae.depsTail,n.nextDep=void 0,Ae.depsTail.nextDep=n,Ae.depsTail=n,Ae.deps===n&&(Ae.deps=r)}return n}trigger(t){this.version++,Lr++,this.notify(t)}notify(t){Uo();try{for(let n=this.subs;n;n=n.prevSub)n.sub.notify()&&n.sub.dep.notify()}finally{Lo()}}}function tc(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let r=t.deps;r;r=r.nextDep)tc(r)}const n=e.dep.subs;n!==e&&(e.prevSub=n,n&&(n.nextSub=e)),e.dep.subs=e}}const As=new WeakMap,Vn=Symbol(""),Ji=Symbol(""),Yr=Symbol("");function tt(e,t,n){if(It&&Ae){let r=As.get(e);r||As.set(e,r=new Map);let s=r.get(n);s||(r.set(n,s=new $o),s.map=r,s.key=n),s.track()}}function on(e,t,n,r,s,i){const o=As.get(e);if(!o){Lr++;return}const a=u=>{u&&u.trigger()};if(Uo(),t==="clear")o.forEach(a);else{const u=ie(e),l=u&&Po(n);if(u&&n==="length"){const c=Number(r);o.forEach((f,g)=>{(g==="length"||g===Yr||!hr(g)&&g>=c)&&a(f)})}else switch((n!==void 0||o.has(void 0))&&a(o.get(n)),l&&a(o.get(Yr)),t){case"add":u?l&&a(o.get("length")):(a(o.get(Vn)),kr(e)&&a(o.get(Ji)));break;case"delete":u||(a(o.get(Vn)),kr(e)&&a(o.get(Ji)));break;case"set":kr(e)&&a(o.get(Vn));break}}Lo()}function ih(e,t){const n=As.get(e);return n&&n.get(t)}function Gn(e){const t=ye(e);return t===e?t:(tt(t,"iterate",Yr),Rt(e)?t:t.map(it))}function jo(e){return tt(e=ye(e),"iterate",Yr),e}const oh={__proto__:null,[Symbol.iterator](){return Mi(this,Symbol.iterator,it)},concat(...e){return Gn(this).concat(...e.map(t=>ie(t)?Gn(t):t))},entries(){return Mi(this,"entries",e=>(e[1]=it(e[1]),e))},every(e,t){return Xt(this,"every",e,t,void 0,arguments)},filter(e,t){return Xt(this,"filter",e,t,n=>n.map(it),arguments)},find(e,t){return Xt(this,"find",e,t,it,arguments)},findIndex(e,t){return Xt(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return Xt(this,"findLast",e,t,it,arguments)},findLastIndex(e,t){return Xt(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return Xt(this,"forEach",e,t,void 0,arguments)},includes(...e){return Fi(this,"includes",e)},indexOf(...e){return Fi(this,"indexOf",e)},join(e){return Gn(this).join(e)},lastIndexOf(...e){return Fi(this,"lastIndexOf",e)},map(e,t){return Xt(this,"map",e,t,void 0,arguments)},pop(){return Er(this,"pop")},push(...e){return Er(this,"push",e)},reduce(e,...t){return Ka(this,"reduce",e,t)},reduceRight(e,...t){return Ka(this,"reduceRight",e,t)},shift(){return Er(this,"shift")},some(e,t){return Xt(this,"some",e,t,void 0,arguments)},splice(...e){return Er(this,"splice",e)},toReversed(){return Gn(this).toReversed()},toSorted(e){return Gn(this).toSorted(e)},toSpliced(...e){return Gn(this).toSpliced(...e)},unshift(...e){return Er(this,"unshift",e)},values(){return Mi(this,"values",it)}};function Mi(e,t,n){const r=jo(e),s=r[t]();return r!==e&&!Rt(e)&&(s._next=s.next,s.next=()=>{const i=s._next();return i.value&&(i.value=n(i.value)),i}),s}const ah=Array.prototype;function Xt(e,t,n,r,s,i){const o=jo(e),a=o!==e&&!Rt(e),u=o[t];if(u!==ah[t]){const f=u.apply(e,i);return a?it(f):f}let l=n;o!==e&&(a?l=function(f,g){return n.call(this,it(f),g,e)}:n.length>2&&(l=function(f,g){return n.call(this,f,g,e)}));const c=u.call(o,l,r);return a&&s?s(c):c}function Ka(e,t,n,r){const s=jo(e);let i=n;return s!==e&&(Rt(e)?n.length>3&&(i=function(o,a,u){return n.call(this,o,a,u,e)}):i=function(o,a,u){return n.call(this,o,it(a),u,e)}),s[t](i,...r)}function Fi(e,t,n){const r=ye(e);tt(r,"iterate",Yr);const s=r[t](...n);return(s===-1||s===!1)&&zo(n[0])?(n[0]=ye(n[0]),r[t](...n)):s}function Er(e,t,n=[]){Tn(),Uo();const r=ye(e)[t].apply(e,n);return Lo(),Dn(),r}const uh=Fo("__proto__,__v_isRef,__isVue"),nc=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(hr));function lh(e){hr(e)||(e=String(e));const t=ye(this);return tt(t,"has",e),t.hasOwnProperty(e)}class rc{constructor(t=!1,n=!1){this._isReadonly=t,this._isShallow=n}get(t,n,r){const s=this._isReadonly,i=this._isShallow;if(n==="__v_isReactive")return!s;if(n==="__v_isReadonly")return s;if(n==="__v_isShallow")return i;if(n==="__v_raw")return r===(s?i?yh:ac:i?oc:ic).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(r)?t:void 0;const o=ie(t);if(!s){let u;if(o&&(u=oh[n]))return u;if(n==="hasOwnProperty")return lh}const a=Reflect.get(t,n,Be(t)?t:r);return(hr(n)?nc.has(n):uh(n))||(s||tt(t,"get",n),i)?a:Be(a)?o&&Po(n)?a:a.value:He(a)?s?Ho(a):Yn(a):a}}class sc extends rc{constructor(t=!1){super(!1,t)}set(t,n,r,s){let i=t[n];if(!this._isShallow){const u=$n(i);if(!Rt(r)&&!$n(r)&&(i=ye(i),r=ye(r)),!ie(t)&&Be(i)&&!Be(r))return u?!1:(i.value=r,!0)}const o=ie(t)&&Po(n)?Number(n)e,ls=e=>Reflect.getPrototypeOf(e);function ph(e,t,n){return function(...r){const s=this.__v_raw,i=ye(s),o=kr(i),a=e==="entries"||e===Symbol.iterator&&o,u=e==="keys"&&o,l=s[e](...r),c=n?Xi:t?Qi:it;return!t&&tt(i,"iterate",u?Ji:Vn),{next(){const{value:f,done:g}=l.next();return g?{value:f,done:g}:{value:a?[c(f[0]),c(f[1])]:c(f),done:g}},[Symbol.iterator](){return this}}}}function cs(e){return function(...t){return e==="delete"?!1:e==="clear"?void 0:this}}function _h(e,t){const n={get(s){const i=this.__v_raw,o=ye(i),a=ye(s);e||(On(s,a)&&tt(o,"get",s),tt(o,"get",a));const{has:u}=ls(o),l=t?Xi:e?Qi:it;if(u.call(o,s))return l(i.get(s));if(u.call(o,a))return l(i.get(a));i!==o&&i.get(s)},get size(){const s=this.__v_raw;return!e&&tt(ye(s),"iterate",Vn),Reflect.get(s,"size",s)},has(s){const i=this.__v_raw,o=ye(i),a=ye(s);return e||(On(s,a)&&tt(o,"has",s),tt(o,"has",a)),s===a?i.has(s):i.has(s)||i.has(a)},forEach(s,i){const o=this,a=o.__v_raw,u=ye(a),l=t?Xi:e?Qi:it;return!e&&tt(u,"iterate",Vn),a.forEach((c,f)=>s.call(i,l(c),l(f),o))}};return qe(n,e?{add:cs("add"),set:cs("set"),delete:cs("delete"),clear:cs("clear")}:{add(s){!t&&!Rt(s)&&!$n(s)&&(s=ye(s));const i=ye(this);return ls(i).has.call(i,s)||(i.add(s),on(i,"add",s,s)),this},set(s,i){!t&&!Rt(i)&&!$n(i)&&(i=ye(i));const o=ye(this),{has:a,get:u}=ls(o);let l=a.call(o,s);l||(s=ye(s),l=a.call(o,s));const c=u.call(o,s);return o.set(s,i),l?On(i,c)&&on(o,"set",s,i):on(o,"add",s,i),this},delete(s){const i=ye(this),{has:o,get:a}=ls(i);let u=o.call(i,s);u||(s=ye(s),u=o.call(i,s)),a&&a.call(i,s);const l=i.delete(s);return u&&on(i,"delete",s,void 0),l},clear(){const s=ye(this),i=s.size!==0,o=s.clear();return i&&on(s,"clear",void 0,void 0),o}}),["keys","values","entries",Symbol.iterator].forEach(s=>{n[s]=ph(s,e,t)}),n}function Bo(e,t){const n=_h(e,t);return(r,s,i)=>s==="__v_isReactive"?!e:s==="__v_isReadonly"?e:s==="__v_raw"?r:Reflect.get(be(n,s)&&s in r?n:r,s,i)}const mh={get:Bo(!1,!1)},gh={get:Bo(!1,!0)},vh={get:Bo(!0,!1)},ic=new WeakMap,oc=new WeakMap,ac=new WeakMap,yh=new WeakMap;function Eh(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function bh(e){return e.__v_skip||!Object.isExtensible(e)?0:Eh(Hd(e))}function Yn(e){return $n(e)?e:Wo(e,!1,fh,mh,ic)}function Oh(e){return Wo(e,!1,hh,gh,oc)}function Ho(e){return Wo(e,!0,dh,vh,ac)}function Wo(e,t,n,r,s){if(!He(e)||e.__v_raw&&!(t&&e.__v_isReactive))return e;const i=s.get(e);if(i)return i;const o=bh(e);if(o===0)return e;const a=new Proxy(e,o===2?r:n);return s.set(e,a),a}function Ir(e){return $n(e)?Ir(e.__v_raw):!!(e&&e.__v_isReactive)}function $n(e){return!!(e&&e.__v_isReadonly)}function Rt(e){return!!(e&&e.__v_isShallow)}function zo(e){return e?!!e.__v_raw:!1}function ye(e){const t=e&&e.__v_raw;return t?ye(t):e}function Sh(e){return!be(e,"__v_skip")&&Object.isExtensible(e)&&zl(e,"__v_skip",!0),e}const it=e=>He(e)?Yn(e):e,Qi=e=>He(e)?Ho(e):e;function Be(e){return e?e.__v_isRef===!0:!1}function wt(e){return uc(e,!1)}function wh(e){return uc(e,!0)}function uc(e,t){return Be(e)?e:new xh(e,t)}class xh{constructor(t,n){this.dep=new $o,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=n?t:ye(t),this._value=n?t:it(t),this.__v_isShallow=n}get value(){return this.dep.track(),this._value}set value(t){const n=this._rawValue,r=this.__v_isShallow||Rt(t)||$n(t);t=r?t:ye(t),On(t,n)&&(this._rawValue=t,this._value=r?t:it(t),this.dep.trigger())}}function re(e){return Be(e)?e.value:e}function de(e){return ee(e)?e():re(e)}const Th={get:(e,t,n)=>t==="__v_raw"?e:re(Reflect.get(e,t,n)),set:(e,t,n,r)=>{const s=e[t];return Be(s)&&!Be(n)?(s.value=n,!0):Reflect.set(e,t,n,r)}};function lc(e){return Ir(e)?e:new Proxy(e,Th)}class Dh{constructor(t,n,r){this._object=t,this._key=n,this._defaultValue=r,this.__v_isRef=!0,this._value=void 0}get value(){const t=this._object[this._key];return this._value=t===void 0?this._defaultValue:t}set value(t){this._object[this._key]=t}get dep(){return ih(ye(this._object),this._key)}}class Ah{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function Fn(e,t,n){return Be(e)?e:ee(e)?new Ah(e):He(e)&&arguments.length>1?kh(e,t,n):wt(e)}function kh(e,t,n){const r=e[t];return Be(r)?r:new Dh(e,t,n)}class Ch{constructor(t,n,r){this.fn=t,this.setter=n,this._value=void 0,this.dep=new $o(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=Lr-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!n,this.isSSR=r}notify(){if(this.flags|=16,!(this.flags&8)&&Ae!==this)return Zl(this,!0),!0}get value(){const t=this.dep.track();return Ql(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter&&this.setter(t)}}function Mh(e,t,n=!1){let r,s;return ee(e)?r=e:(r=e.get,s=e.set),new Ch(r,s,n)}const fs={},ks=new WeakMap;let Mn;function Fh(e,t=!1,n=Mn){if(n){let r=ks.get(n);r||ks.set(n,r=[]),r.push(e)}}function Ih(e,t,n=ke){const{immediate:r,deep:s,once:i,scheduler:o,augmentJob:a,call:u}=n,l=V=>s?V:Rt(V)||s===!1||s===0?yn(V,1):yn(V);let c,f,g,p,v=!1,w=!1;if(Be(e)?(f=()=>e.value,v=Rt(e)):Ir(e)?(f=()=>l(e),v=!0):ie(e)?(w=!0,v=e.some(V=>Ir(V)||Rt(V)),f=()=>e.map(V=>{if(Be(V))return V.value;if(Ir(V))return l(V);if(ee(V))return u?u(V,2):V()})):ee(e)?t?f=u?()=>u(e,2):e:f=()=>{if(g){Tn();try{g()}finally{Dn()}}const V=Mn;Mn=c;try{return u?u(e,3,[p]):e(p)}finally{Mn=V}}:f=Wt,t&&s){const V=f,Z=s===!0?1/0:s;f=()=>yn(V(),Z)}const E=nh(),O=()=>{c.stop(),E&&Ro(E.effects,c)};if(i&&t){const V=t;t=(...Z)=>{V(...Z),O()}}let P=w?new Array(e.length).fill(fs):fs;const j=V=>{if(!(!(c.flags&1)||!c.dirty&&!V))if(t){const Z=c.run();if(s||v||(w?Z.some((oe,ae)=>On(oe,P[ae])):On(Z,P))){g&&g();const oe=Mn;Mn=c;try{const ae=[Z,P===fs?void 0:w&&P[0]===fs?[]:P,p];u?u(t,3,ae):t(...ae),P=Z}finally{Mn=oe}}}else c.run()};return a&&a(j),c=new Gl(f),c.scheduler=o?()=>o(j,!1):j,p=V=>Fh(V,!1,c),g=c.onStop=()=>{const V=ks.get(c);if(V){if(u)u(V,4);else for(const Z of V)Z();ks.delete(c)}},t?r?j(!0):P=c.run():o?o(j.bind(null,!0),!0):c.run(),O.pause=c.pause.bind(c),O.resume=c.resume.bind(c),O.stop=O,O}function yn(e,t=1/0,n){if(t<=0||!He(e)||e.__v_skip||(n=n||new Set,n.has(e)))return e;if(n.add(e),t--,Be(e))yn(e.value,t,n);else if(ie(e))for(let r=0;r{yn(r,t,n)});else if(Wd(e)){for(const r in e)yn(e[r],t,n);for(const r of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,r)&&yn(e[r],t,n)}return e}/** -* @vue/runtime-core v3.5.12 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**/function es(e,t,n,r){try{return r?e(...r):e()}catch(s){Qs(s,t,n)}}function Kt(e,t,n,r){if(ee(e)){const s=es(e,t,n,r);return s&&Wl(s)&&s.catch(i=>{Qs(i,t,n)}),s}if(ie(e)){const s=[];for(let i=0;i>>1,s=ot[r],i=$r(s);i=$r(n)?ot.push(e):ot.splice(Ph(t),0,e),e.flags|=1,fc()}}function fc(){Cs||(Cs=cc.then(hc))}function Vh(e){ie(e)?sr.push(...e):gn&&e.id===-1?gn.splice(Xn+1,0,e):e.flags&1||(sr.push(e),e.flags|=1),fc()}function Ga(e,t,n=$t+1){for(;n$r(n)-$r(r));if(sr.length=0,gn){gn.push(...t);return}for(gn=t,Xn=0;Xne.id==null?e.flags&2?-1:1/0:e.id;function hc(e){try{for($t=0;$t{r._d&&ru(-1);const i=Ms(t);let o;try{o=e(...s)}finally{Ms(i),r._d&&ru(1)}return o};return r._n=!0,r._c=!0,r._d=!0,r}function An(e,t,n,r){const s=e.dirs,i=t&&t.dirs;for(let o=0;oe.__isTeleport;function Go(e,t){e.shapeFlag&6&&e.component?(e.transition=t,Go(e.component.subTree,t)):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}/*! #__NO_SIDE_EFFECTS__ */function qo(e,t){return ee(e)?qe({name:e.name},t,{setup:e}):e}function mc(e){e.ids=[e.ids[0]+e.ids[2]+++"-",0,0]}function eo(e,t,n,r,s=!1){if(ie(e)){e.forEach((v,w)=>eo(v,t&&(ie(t)?t[w]:t),n,r,s));return}if(Rr(r)&&!s)return;const i=r.shapeFlag&4?ta(r.component):r.el,o=s?null:i,{i:a,r:u}=e,l=t&&t.r,c=a.refs===ke?a.refs={}:a.refs,f=a.setupState,g=ye(f),p=f===ke?()=>!1:v=>be(g,v);if(l!=null&&l!==u&&(Ke(l)?(c[l]=null,p(l)&&(f[l]=null)):Be(l)&&(l.value=null)),ee(u))es(u,a,12,[o,c]);else{const v=Ke(u),w=Be(u);if(v||w){const E=()=>{if(e.f){const O=v?p(u)?f[u]:c[u]:u.value;s?ie(O)&&Ro(O,i):ie(O)?O.includes(i)||O.push(i):v?(c[u]=[i],p(u)&&(f[u]=c[u])):(u.value=[i],e.k&&(c[e.k]=u.value))}else v?(c[u]=o,p(u)&&(f[u]=o)):w&&(u.value=o,e.k&&(c[e.k]=o))};o?(E.id=-1,mt(E,n)):E()}}}Xs().requestIdleCallback;Xs().cancelIdleCallback;const Rr=e=>!!e.type.__asyncLoader,gc=e=>e.type.__isKeepAlive;function Lh(e,t){vc(e,"a",t)}function Yh(e,t){vc(e,"da",t)}function vc(e,t,n=Ze){const r=e.__wdc||(e.__wdc=()=>{let s=n;for(;s;){if(s.isDeactivated)return;s=s.parent}return e()});if(ei(t,r,n),n){let s=n.parent;for(;s&&s.parent;)gc(s.parent.vnode)&&$h(r,t,n,s),s=s.parent}}function $h(e,t,n,r){const s=ei(t,e,r,!0);Ec(()=>{Ro(r[t],s)},n)}function ei(e,t,n=Ze,r=!1){if(n){const s=n[e]||(n[e]=[]),i=t.__weh||(t.__weh=(...o)=>{Tn();const a=ts(n),u=Kt(t,n,e,o);return a(),Dn(),u});return r?s.unshift(i):s.push(i),i}}const hn=e=>(t,n=Ze)=>{(!Hr||e==="sp")&&ei(e,(...r)=>t(...r),n)},jh=hn("bm"),ti=hn("m"),Bh=hn("bu"),Hh=hn("u"),yc=hn("bum"),Ec=hn("um"),Wh=hn("sp"),zh=hn("rtg"),Kh=hn("rtc");function Gh(e,t=Ze){ei("ec",e,t)}const qh="components",bc=Symbol.for("v-ndc");function Zo(e){return Ke(e)?Zh(qh,e,!1)||e:e||bc}function Zh(e,t,n=!0,r=!1){const s=Tt||Ze;if(s){const i=s.type;{const a=L0(i,!1);if(a&&(a===t||a===Dt(t)||a===Js(Dt(t))))return i}const o=qa(s[e]||i[e],t)||qa(s.appContext[e],t);return!o&&r?i:o}}function qa(e,t){return e&&(e[t]||e[Dt(t)]||e[Js(Dt(t))])}const to=e=>e?$c(e)?ta(e):to(e.parent):null,Pr=qe(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>e.props,$attrs:e=>e.attrs,$slots:e=>e.slots,$refs:e=>e.refs,$parent:e=>to(e.parent),$root:e=>to(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>Jo(e),$forceUpdate:e=>e.f||(e.f=()=>{Ko(e.update)}),$nextTick:e=>e.n||(e.n=Ct.bind(e.proxy)),$watch:e=>v0.bind(e)}),Ii=(e,t)=>e!==ke&&!e.__isScriptSetup&&be(e,t),Jh={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:n,setupState:r,data:s,props:i,accessCache:o,type:a,appContext:u}=e;let l;if(t[0]!=="$"){const p=o[t];if(p!==void 0)switch(p){case 1:return r[t];case 2:return s[t];case 4:return n[t];case 3:return i[t]}else{if(Ii(r,t))return o[t]=1,r[t];if(s!==ke&&be(s,t))return o[t]=2,s[t];if((l=e.propsOptions[0])&&be(l,t))return o[t]=3,i[t];if(n!==ke&&be(n,t))return o[t]=4,n[t];no&&(o[t]=0)}}const c=Pr[t];let f,g;if(c)return t==="$attrs"&&tt(e.attrs,"get",""),c(e);if((f=a.__cssModules)&&(f=f[t]))return f;if(n!==ke&&be(n,t))return o[t]=4,n[t];if(g=u.config.globalProperties,be(g,t))return g[t]},set({_:e},t,n){const{data:r,setupState:s,ctx:i}=e;return Ii(s,t)?(s[t]=n,!0):r!==ke&&be(r,t)?(r[t]=n,!0):be(e.props,t)||t[0]==="$"&&t.slice(1)in e?!1:(i[t]=n,!0)},has({_:{data:e,setupState:t,accessCache:n,ctx:r,appContext:s,propsOptions:i}},o){let a;return!!n[o]||e!==ke&&be(e,o)||Ii(t,o)||(a=i[0])&&be(a,o)||be(r,o)||be(Pr,o)||be(s.config.globalProperties,o)},defineProperty(e,t,n){return n.get!=null?e._.accessCache[t]=0:be(n,"value")&&this.set(e,t,n.value,null),Reflect.defineProperty(e,t,n)}};function Za(e){return ie(e)?e.reduce((t,n)=>(t[n]=null,t),{}):e}let no=!0;function Xh(e){const t=Jo(e),n=e.proxy,r=e.ctx;no=!1,t.beforeCreate&&Ja(t.beforeCreate,e,"bc");const{data:s,computed:i,methods:o,watch:a,provide:u,inject:l,created:c,beforeMount:f,mounted:g,beforeUpdate:p,updated:v,activated:w,deactivated:E,beforeDestroy:O,beforeUnmount:P,destroyed:j,unmounted:V,render:Z,renderTracked:oe,renderTriggered:ae,errorCaptured:De,serverPrefetch:ue,expose:ne,inheritAttrs:te,components:Pe,directives:Ue,filters:Oe}=t;if(l&&Qh(l,r,null),o)for(const C in o){const J=o[C];ee(J)&&(r[C]=J.bind(n))}if(s){const C=s.call(n,n);He(C)&&(e.data=Yn(C))}if(no=!0,i)for(const C in i){const J=i[C],Te=ee(J)?J.bind(n,n):ee(J.get)?J.get.bind(n,n):Wt,Xe=!ee(J)&&ee(J.set)?J.set.bind(n):Wt,Le=me({get:Te,set:Xe});Object.defineProperty(r,C,{enumerable:!0,configurable:!0,get:()=>Le.value,set:Me=>Le.value=Me})}if(a)for(const C in a)Oc(a[C],r,n,C);if(u){const C=ee(u)?u.call(n):u;Reflect.ownKeys(C).forEach(J=>{Is(J,C[J])})}c&&Ja(c,e,"c");function W(C,J){ie(J)?J.forEach(Te=>C(Te.bind(n))):J&&C(J.bind(n))}if(W(jh,f),W(ti,g),W(Bh,p),W(Hh,v),W(Lh,w),W(Yh,E),W(Gh,De),W(Kh,oe),W(zh,ae),W(yc,P),W(Ec,V),W(Wh,ue),ie(ne))if(ne.length){const C=e.exposed||(e.exposed={});ne.forEach(J=>{Object.defineProperty(C,J,{get:()=>n[J],set:Te=>n[J]=Te})})}else e.exposed||(e.exposed={});Z&&e.render===Wt&&(e.render=Z),te!=null&&(e.inheritAttrs=te),Pe&&(e.components=Pe),Ue&&(e.directives=Ue),ue&&mc(e)}function Qh(e,t,n=Wt){ie(e)&&(e=ro(e));for(const r in e){const s=e[r];let i;He(s)?"default"in s?i=or(s.from||r,s.default,!0):i=or(s.from||r):i=or(s),Be(i)?Object.defineProperty(t,r,{enumerable:!0,configurable:!0,get:()=>i.value,set:o=>i.value=o}):t[r]=i}}function Ja(e,t,n){Kt(ie(e)?e.map(r=>r.bind(t.proxy)):e.bind(t.proxy),t,n)}function Oc(e,t,n,r){let s=r.includes(".")?Pc(n,r):()=>n[r];if(Ke(e)){const i=t[e];ee(i)&&zt(s,i)}else if(ee(e))zt(s,e.bind(n));else if(He(e))if(ie(e))e.forEach(i=>Oc(i,t,n,r));else{const i=ee(e.handler)?e.handler.bind(n):t[e.handler];ee(i)&&zt(s,i,e)}}function Jo(e){const t=e.type,{mixins:n,extends:r}=t,{mixins:s,optionsCache:i,config:{optionMergeStrategies:o}}=e.appContext,a=i.get(t);let u;return a?u=a:!s.length&&!n&&!r?u=t:(u={},s.length&&s.forEach(l=>Fs(u,l,o,!0)),Fs(u,t,o)),He(t)&&i.set(t,u),u}function Fs(e,t,n,r=!1){const{mixins:s,extends:i}=t;i&&Fs(e,i,n,!0),s&&s.forEach(o=>Fs(e,o,n,!0));for(const o in t)if(!(r&&o==="expose")){const a=e0[o]||n&&n[o];e[o]=a?a(e[o],t[o]):t[o]}return e}const e0={data:Xa,props:Qa,emits:Qa,methods:xr,computed:xr,beforeCreate:st,created:st,beforeMount:st,mounted:st,beforeUpdate:st,updated:st,beforeDestroy:st,beforeUnmount:st,destroyed:st,unmounted:st,activated:st,deactivated:st,errorCaptured:st,serverPrefetch:st,components:xr,directives:xr,watch:n0,provide:Xa,inject:t0};function Xa(e,t){return t?e?function(){return qe(ee(e)?e.call(this,this):e,ee(t)?t.call(this,this):t)}:t:e}function t0(e,t){return xr(ro(e),ro(t))}function ro(e){if(ie(e)){const t={};for(let n=0;n1)return n&&ee(t)?t.call(r&&r.proxy):t}}const wc={},xc=()=>Object.create(wc),Tc=e=>Object.getPrototypeOf(e)===wc;function i0(e,t,n,r=!1){const s={},i=xc();e.propsDefaults=Object.create(null),Dc(e,t,s,i);for(const o in e.propsOptions[0])o in s||(s[o]=void 0);n?e.props=r?s:Oh(s):e.type.props?e.props=s:e.props=i,e.attrs=i}function o0(e,t,n,r){const{props:s,attrs:i,vnode:{patchFlag:o}}=e,a=ye(s),[u]=e.propsOptions;let l=!1;if((r||o>0)&&!(o&16)){if(o&8){const c=e.vnode.dynamicProps;for(let f=0;f{u=!0;const[g,p]=Ac(f,t,!0);qe(o,g),p&&a.push(...p)};!n&&t.mixins.length&&t.mixins.forEach(c),e.extends&&c(e.extends),e.mixins&&e.mixins.forEach(c)}if(!i&&!u)return He(e)&&r.set(e,rr),rr;if(ie(i))for(let c=0;ce[0]==="_"||e==="$stable",Xo=e=>ie(e)?e.map(Bt):[Bt(e)],u0=(e,t,n)=>{if(t._n)return t;const r=_c((...s)=>Xo(t(...s)),n);return r._c=!1,r},Cc=(e,t,n)=>{const r=e._ctx;for(const s in e){if(kc(s))continue;const i=e[s];if(ee(i))t[s]=u0(s,i,r);else if(i!=null){const o=Xo(i);t[s]=()=>o}}},Mc=(e,t)=>{const n=Xo(t);e.slots.default=()=>n},Fc=(e,t,n)=>{for(const r in t)(n||r!=="_")&&(e[r]=t[r])},l0=(e,t,n)=>{const r=e.slots=xc();if(e.vnode.shapeFlag&32){const s=t._;s?(Fc(r,t,n),n&&zl(r,"_",s,!0)):Cc(t,r)}else t&&Mc(e,t)},c0=(e,t,n)=>{const{vnode:r,slots:s}=e;let i=!0,o=ke;if(r.shapeFlag&32){const a=t._;a?n&&a===1?i=!1:Fc(s,t,n):(i=!t.$stable,Cc(t,s)),o=t}else t&&(Mc(e,t),o={default:1});if(i)for(const a in s)!kc(a)&&o[a]==null&&delete s[a]},mt=x0;function f0(e){return d0(e)}function d0(e,t){const n=Xs();n.__VUE__=!0;const{insert:r,remove:s,patchProp:i,createElement:o,createText:a,createComment:u,setText:l,setElementText:c,parentNode:f,nextSibling:g,setScopeId:p=Wt,insertStaticContent:v}=e,w=(d,h,y,A=null,S=null,x=null,I=void 0,R=null,M=!!h.dynamicChildren)=>{if(d===h)return;d&&!br(d,h)&&(A=X(d),Me(d,S,x,!0),d=null),h.patchFlag===-2&&(M=!1,h.dynamicChildren=null);const{type:D,ref:G,shapeFlag:L}=h;switch(D){case ri:E(d,h,y,A);break;case jr:O(d,h,y,A);break;case Vi:d==null&&P(h,y,A,I);break;case sn:Pe(d,h,y,A,S,x,I,R,M);break;default:L&1?Z(d,h,y,A,S,x,I,R,M):L&6?Ue(d,h,y,A,S,x,I,R,M):(L&64||L&128)&&D.process(d,h,y,A,S,x,I,R,M,rt)}G!=null&&S&&eo(G,d&&d.ref,x,h||d,!h)},E=(d,h,y,A)=>{if(d==null)r(h.el=a(h.children),y,A);else{const S=h.el=d.el;h.children!==d.children&&l(S,h.children)}},O=(d,h,y,A)=>{d==null?r(h.el=u(h.children||""),y,A):h.el=d.el},P=(d,h,y,A)=>{[d.el,d.anchor]=v(d.children,h,y,A,d.el,d.anchor)},j=({el:d,anchor:h},y,A)=>{let S;for(;d&&d!==h;)S=g(d),r(d,y,A),d=S;r(h,y,A)},V=({el:d,anchor:h})=>{let y;for(;d&&d!==h;)y=g(d),s(d),d=y;s(h)},Z=(d,h,y,A,S,x,I,R,M)=>{h.type==="svg"?I="svg":h.type==="math"&&(I="mathml"),d==null?oe(h,y,A,S,x,I,R,M):ue(d,h,S,x,I,R,M)},oe=(d,h,y,A,S,x,I,R)=>{let M,D;const{props:G,shapeFlag:L,transition:H,dirs:q}=d;if(M=d.el=o(d.type,x,G&&G.is,G),L&8?c(M,d.children):L&16&&De(d.children,M,null,A,S,Ri(d,x),I,R),q&&An(d,null,A,"created"),ae(M,d,d.scopeId,I,A),G){for(const Se in G)Se!=="value"&&!Cr(Se)&&i(M,Se,null,G[Se],x,A);"value"in G&&i(M,"value",null,G.value,x),(D=G.onVnodeBeforeMount)&&Lt(D,A,d)}q&&An(d,null,A,"beforeMount");const le=h0(S,H);le&&H.beforeEnter(M),r(M,h,y),((D=G&&G.onVnodeMounted)||le||q)&&mt(()=>{D&&Lt(D,A,d),le&&H.enter(M),q&&An(d,null,A,"mounted")},S)},ae=(d,h,y,A,S)=>{if(y&&p(d,y),A)for(let x=0;x{for(let D=M;D{const R=h.el=d.el;let{patchFlag:M,dynamicChildren:D,dirs:G}=h;M|=d.patchFlag&16;const L=d.props||ke,H=h.props||ke;let q;if(y&&kn(y,!1),(q=H.onVnodeBeforeUpdate)&&Lt(q,y,h,d),G&&An(h,d,y,"beforeUpdate"),y&&kn(y,!0),(L.innerHTML&&H.innerHTML==null||L.textContent&&H.textContent==null)&&c(R,""),D?ne(d.dynamicChildren,D,R,y,A,Ri(h,S),x):I||J(d,h,R,null,y,A,Ri(h,S),x,!1),M>0){if(M&16)te(R,L,H,y,S);else if(M&2&&L.class!==H.class&&i(R,"class",null,H.class,S),M&4&&i(R,"style",L.style,H.style,S),M&8){const le=h.dynamicProps;for(let Se=0;Se{q&&Lt(q,y,h,d),G&&An(h,d,y,"updated")},A)},ne=(d,h,y,A,S,x,I)=>{for(let R=0;R{if(h!==y){if(h!==ke)for(const x in h)!Cr(x)&&!(x in y)&&i(d,x,h[x],null,S,A);for(const x in y){if(Cr(x))continue;const I=y[x],R=h[x];I!==R&&x!=="value"&&i(d,x,R,I,S,A)}"value"in y&&i(d,"value",h.value,y.value,S)}},Pe=(d,h,y,A,S,x,I,R,M)=>{const D=h.el=d?d.el:a(""),G=h.anchor=d?d.anchor:a("");let{patchFlag:L,dynamicChildren:H,slotScopeIds:q}=h;q&&(R=R?R.concat(q):q),d==null?(r(D,y,A),r(G,y,A),De(h.children||[],y,G,S,x,I,R,M)):L>0&&L&64&&H&&d.dynamicChildren?(ne(d.dynamicChildren,H,y,S,x,I,R),(h.key!=null||S&&h===S.subTree)&&Ic(d,h,!0)):J(d,h,y,G,S,x,I,R,M)},Ue=(d,h,y,A,S,x,I,R,M)=>{h.slotScopeIds=R,d==null?h.shapeFlag&512?S.ctx.activate(h,y,A,I,M):Oe(h,y,A,S,x,I,M):je(d,h,M)},Oe=(d,h,y,A,S,x,I)=>{const R=d.component=R0(d,A,S);if(gc(d)&&(R.ctx.renderer=rt),P0(R,!1,I),R.asyncDep){if(S&&S.registerDep(R,W,I),!d.el){const M=R.subTree=Ne(jr);O(null,M,h,y)}}else W(R,d,h,y,S,x,I)},je=(d,h,y)=>{const A=h.component=d.component;if(S0(d,h,y))if(A.asyncDep&&!A.asyncResolved){C(A,h,y);return}else A.next=h,A.update();else h.el=d.el,A.vnode=h},W=(d,h,y,A,S,x,I)=>{const R=()=>{if(d.isMounted){let{next:L,bu:H,u:q,parent:le,vnode:Se}=d;{const F=Rc(d);if(F){L&&(L.el=Se.el,C(d,L,I)),F.asyncDep.then(()=>{d.isUnmounted||R()});return}}let _e=L,m;kn(d,!1),L?(L.el=Se.el,C(d,L,I)):L=Se,H&&ki(H),(m=L.props&&L.props.onVnodeBeforeUpdate)&&Lt(m,le,L,Se),kn(d,!0);const _=Pi(d),b=d.subTree;d.subTree=_,w(b,_,f(b.el),X(b),d,S,x),L.el=_.el,_e===null&&w0(d,_.el),q&&mt(q,S),(m=L.props&&L.props.onVnodeUpdated)&&mt(()=>Lt(m,le,L,Se),S)}else{let L;const{el:H,props:q}=h,{bm:le,m:Se,parent:_e,root:m,type:_}=d,b=Rr(h);if(kn(d,!1),le&&ki(le),!b&&(L=q&&q.onVnodeBeforeMount)&&Lt(L,_e,h),kn(d,!0),H&&Ot){const F=()=>{d.subTree=Pi(d),Ot(H,d.subTree,d,S,null)};b&&_.__asyncHydrate?_.__asyncHydrate(H,d,F):F()}else{m.ce&&m.ce._injectChildStyle(_);const F=d.subTree=Pi(d);w(null,F,y,A,d,S,x),h.el=F.el}if(Se&&mt(Se,S),!b&&(L=q&&q.onVnodeMounted)){const F=h;mt(()=>Lt(L,_e,F),S)}(h.shapeFlag&256||_e&&Rr(_e.vnode)&&_e.vnode.shapeFlag&256)&&d.a&&mt(d.a,S),d.isMounted=!0,h=y=A=null}};d.scope.on();const M=d.effect=new Gl(R);d.scope.off();const D=d.update=M.run.bind(M),G=d.job=M.runIfDirty.bind(M);G.i=d,G.id=d.uid,M.scheduler=()=>Ko(G),kn(d,!0),D()},C=(d,h,y)=>{h.component=d;const A=d.vnode.props;d.vnode=h,d.next=null,o0(d,h.props,A,y),c0(d,h.children,y),Tn(),Ga(d),Dn()},J=(d,h,y,A,S,x,I,R,M=!1)=>{const D=d&&d.children,G=d?d.shapeFlag:0,L=h.children,{patchFlag:H,shapeFlag:q}=h;if(H>0){if(H&128){Xe(D,L,y,A,S,x,I,R,M);return}else if(H&256){Te(D,L,y,A,S,x,I,R,M);return}}q&8?(G&16&&U(D,S,x),L!==D&&c(y,L)):G&16?q&16?Xe(D,L,y,A,S,x,I,R,M):U(D,S,x,!0):(G&8&&c(y,""),q&16&&De(L,y,A,S,x,I,R,M))},Te=(d,h,y,A,S,x,I,R,M)=>{d=d||rr,h=h||rr;const D=d.length,G=h.length,L=Math.min(D,G);let H;for(H=0;HG?U(d,S,x,!0,!1,L):De(h,y,A,S,x,I,R,M,L)},Xe=(d,h,y,A,S,x,I,R,M)=>{let D=0;const G=h.length;let L=d.length-1,H=G-1;for(;D<=L&&D<=H;){const q=d[D],le=h[D]=M?vn(h[D]):Bt(h[D]);if(br(q,le))w(q,le,y,null,S,x,I,R,M);else break;D++}for(;D<=L&&D<=H;){const q=d[L],le=h[H]=M?vn(h[H]):Bt(h[H]);if(br(q,le))w(q,le,y,null,S,x,I,R,M);else break;L--,H--}if(D>L){if(D<=H){const q=H+1,le=qH)for(;D<=L;)Me(d[D],S,x,!0),D++;else{const q=D,le=D,Se=new Map;for(D=le;D<=H;D++){const B=h[D]=M?vn(h[D]):Bt(h[D]);B.key!=null&&Se.set(B.key,D)}let _e,m=0;const _=H-le+1;let b=!1,F=0;const z=new Array(_);for(D=0;D<_;D++)z[D]=0;for(D=q;D<=L;D++){const B=d[D];if(m>=_){Me(B,S,x,!0);continue}let fe;if(B.key!=null)fe=Se.get(B.key);else for(_e=le;_e<=H;_e++)if(z[_e-le]===0&&br(B,h[_e])){fe=_e;break}fe===void 0?Me(B,S,x,!0):(z[fe-le]=D+1,fe>=F?F=fe:b=!0,w(B,h[fe],y,null,S,x,I,R,M),m++)}const Q=b?p0(z):rr;for(_e=Q.length-1,D=_-1;D>=0;D--){const B=le+D,fe=h[B],$e=B+1{const{el:x,type:I,transition:R,children:M,shapeFlag:D}=d;if(D&6){Le(d.component.subTree,h,y,A);return}if(D&128){d.suspense.move(h,y,A);return}if(D&64){I.move(d,h,y,rt);return}if(I===sn){r(x,h,y);for(let L=0;LR.enter(x),S);else{const{leave:L,delayLeave:H,afterLeave:q}=R,le=()=>r(x,h,y),Se=()=>{L(x,()=>{le(),q&&q()})};H?H(x,le,Se):Se()}else r(x,h,y)},Me=(d,h,y,A=!1,S=!1)=>{const{type:x,props:I,ref:R,children:M,dynamicChildren:D,shapeFlag:G,patchFlag:L,dirs:H,cacheIndex:q}=d;if(L===-2&&(S=!1),R!=null&&eo(R,null,y,d,!0),q!=null&&(h.renderCache[q]=void 0),G&256){h.ctx.deactivate(d);return}const le=G&1&&H,Se=!Rr(d);let _e;if(Se&&(_e=I&&I.onVnodeBeforeUnmount)&&Lt(_e,h,d),G&6)Jt(d.component,y,A);else{if(G&128){d.suspense.unmount(y,A);return}le&&An(d,null,h,"beforeUnmount"),G&64?d.type.remove(d,h,y,rt,A):D&&!D.hasOnce&&(x!==sn||L>0&&L&64)?U(D,h,y,!1,!0):(x===sn&&L&384||!S&&G&16)&&U(M,h,y),A&&ut(d)}(Se&&(_e=I&&I.onVnodeUnmounted)||le)&&mt(()=>{_e&&Lt(_e,h,d),le&&An(d,null,h,"unmounted")},y)},ut=d=>{const{type:h,el:y,anchor:A,transition:S}=d;if(h===sn){Ge(y,A);return}if(h===Vi){V(d);return}const x=()=>{s(y),S&&!S.persisted&&S.afterLeave&&S.afterLeave()};if(d.shapeFlag&1&&S&&!S.persisted){const{leave:I,delayLeave:R}=S,M=()=>I(y,x);R?R(d.el,x,M):M()}else x()},Ge=(d,h)=>{let y;for(;d!==h;)y=g(d),s(d),d=y;s(h)},Jt=(d,h,y)=>{const{bum:A,scope:S,job:x,subTree:I,um:R,m:M,a:D}=d;tu(M),tu(D),A&&ki(A),S.stop(),x&&(x.flags|=8,Me(I,d,h,y)),R&&mt(R,h),mt(()=>{d.isUnmounted=!0},h),h&&h.pendingBranch&&!h.isUnmounted&&d.asyncDep&&!d.asyncResolved&&d.suspenseId===h.pendingId&&(h.deps--,h.deps===0&&h.resolve())},U=(d,h,y,A=!1,S=!1,x=0)=>{for(let I=x;I{if(d.shapeFlag&6)return X(d.component.subTree);if(d.shapeFlag&128)return d.suspense.next();const h=g(d.anchor||d.el),y=h&&h[Nh];return y?g(y):h};let Ye=!1;const pe=(d,h,y)=>{d==null?h._vnode&&Me(h._vnode,null,null,!0):w(h._vnode||null,d,h,null,null,null,y),h._vnode=d,Ye||(Ye=!0,Ga(),dc(),Ye=!1)},rt={p:w,um:Me,m:Le,r:ut,mt:Oe,mc:De,pc:J,pbc:ne,n:X,o:e};let lt,Ot;return{render:pe,hydrate:lt,createApp:s0(pe,lt)}}function Ri({type:e,props:t},n){return n==="svg"&&e==="foreignObject"||n==="mathml"&&e==="annotation-xml"&&t&&t.encoding&&t.encoding.includes("html")?void 0:n}function kn({effect:e,job:t},n){n?(e.flags|=32,t.flags|=4):(e.flags&=-33,t.flags&=-5)}function h0(e,t){return(!e||e&&!e.pendingBranch)&&t&&!t.persisted}function Ic(e,t,n=!1){const r=e.children,s=t.children;if(ie(r)&&ie(s))for(let i=0;i>1,e[n[a]]0&&(t[r]=n[i-1]),n[i]=r)}}for(i=n.length,o=n[i-1];i-- >0;)n[i]=o,o=t[o];return n}function Rc(e){const t=e.subTree.component;if(t)return t.asyncDep&&!t.asyncResolved?t:Rc(t)}function tu(e){if(e)for(let t=0;tor(_0);function g0(e,t){return Qo(e,null,t)}function zt(e,t,n){return Qo(e,t,n)}function Qo(e,t,n=ke){const{immediate:r,deep:s,flush:i,once:o}=n,a=qe({},n),u=t&&r||!t&&i!=="post";let l;if(Hr){if(i==="sync"){const p=m0();l=p.__watcherHandles||(p.__watcherHandles=[])}else if(!u){const p=()=>{};return p.stop=Wt,p.resume=Wt,p.pause=Wt,p}}const c=Ze;a.call=(p,v,w)=>Kt(p,c,v,w);let f=!1;i==="post"?a.scheduler=p=>{mt(p,c&&c.suspense)}:i!=="sync"&&(f=!0,a.scheduler=(p,v)=>{v?p():Ko(p)}),a.augmentJob=p=>{t&&(p.flags|=4),f&&(p.flags|=2,c&&(p.id=c.uid,p.i=c))};const g=Ih(e,t,a);return Hr&&(l?l.push(g):u&&g()),g}function v0(e,t,n){const r=this.proxy,s=Ke(e)?e.includes(".")?Pc(r,e):()=>r[e]:e.bind(r,r);let i;ee(t)?i=t:(i=t.handler,n=t);const o=ts(this),a=Qo(s,i.bind(r),n);return o(),a}function Pc(e,t){const n=t.split(".");return()=>{let r=e;for(let s=0;st==="modelValue"||t==="model-value"?e.modelModifiers:e[`${t}Modifiers`]||e[`${Dt(t)}Modifiers`]||e[`${Hn(t)}Modifiers`];function E0(e,t,...n){if(e.isUnmounted)return;const r=e.vnode.props||ke;let s=n;const i=t.startsWith("update:"),o=i&&y0(r,t.slice(7));o&&(o.trim&&(s=n.map(c=>Ke(c)?c.trim():c)),o.number&&(s=n.map(Gd)));let a,u=r[a=Ai(t)]||r[a=Ai(Dt(t))];!u&&i&&(u=r[a=Ai(Hn(t))]),u&&Kt(u,e,6,s);const l=r[a+"Once"];if(l){if(!e.emitted)e.emitted={};else if(e.emitted[a])return;e.emitted[a]=!0,Kt(l,e,6,s)}}function Vc(e,t,n=!1){const r=t.emitsCache,s=r.get(e);if(s!==void 0)return s;const i=e.emits;let o={},a=!1;if(!ee(e)){const u=l=>{const c=Vc(l,t,!0);c&&(a=!0,qe(o,c))};!n&&t.mixins.length&&t.mixins.forEach(u),e.extends&&u(e.extends),e.mixins&&e.mixins.forEach(u)}return!i&&!a?(He(e)&&r.set(e,null),null):(ie(i)?i.forEach(u=>o[u]=null):qe(o,i),He(e)&&r.set(e,o),o)}function ni(e,t){return!e||!Gs(t)?!1:(t=t.slice(2).replace(/Once$/,""),be(e,t[0].toLowerCase()+t.slice(1))||be(e,Hn(t))||be(e,t))}function Pi(e){const{type:t,vnode:n,proxy:r,withProxy:s,propsOptions:[i],slots:o,attrs:a,emit:u,render:l,renderCache:c,props:f,data:g,setupState:p,ctx:v,inheritAttrs:w}=e,E=Ms(e);let O,P;try{if(n.shapeFlag&4){const V=s||r,Z=V;O=Bt(l.call(Z,V,c,f,p,g,v)),P=a}else{const V=t;O=Bt(V.length>1?V(f,{attrs:a,slots:o,emit:u}):V(f,null)),P=t.props?a:b0(a)}}catch(V){Vr.length=0,Qs(V,e,1),O=Ne(jr)}let j=O;if(P&&w!==!1){const V=Object.keys(P),{shapeFlag:Z}=j;V.length&&Z&7&&(i&&V.some(Io)&&(P=O0(P,i)),j=cr(j,P,!1,!0))}return n.dirs&&(j=cr(j,null,!1,!0),j.dirs=j.dirs?j.dirs.concat(n.dirs):n.dirs),n.transition&&Go(j,n.transition),O=j,Ms(E),O}const b0=e=>{let t;for(const n in e)(n==="class"||n==="style"||Gs(n))&&((t||(t={}))[n]=e[n]);return t},O0=(e,t)=>{const n={};for(const r in e)(!Io(r)||!(r.slice(9)in t))&&(n[r]=e[r]);return n};function S0(e,t,n){const{props:r,children:s,component:i}=e,{props:o,children:a,patchFlag:u}=t,l=i.emitsOptions;if(t.dirs||t.transition)return!0;if(n&&u>=0){if(u&1024)return!0;if(u&16)return r?nu(r,o,l):!!o;if(u&8){const c=t.dynamicProps;for(let f=0;fe.__isSuspense;function x0(e,t){t&&t.pendingBranch?ie(e)?t.effects.push(...e):t.effects.push(e):Vh(e)}const sn=Symbol.for("v-fgt"),ri=Symbol.for("v-txt"),jr=Symbol.for("v-cmt"),Vi=Symbol.for("v-stc"),Vr=[];let Et=null;function Uc(e=!1){Vr.push(Et=e?null:[])}function T0(){Vr.pop(),Et=Vr[Vr.length-1]||null}let Br=1;function ru(e){Br+=e,e<0&&Et&&(Et.hasOnce=!0)}function Lc(e){return e.dynamicChildren=Br>0?Et||rr:null,T0(),Br>0&&Et&&Et.push(e),e}function D0(e,t,n,r,s,i){return Lc(we(e,t,n,r,s,i,!0))}function A0(e,t,n,r,s){return Lc(Ne(e,t,n,r,s,!0))}function Rs(e){return e?e.__v_isVNode===!0:!1}function br(e,t){return e.type===t.type&&e.key===t.key}const Yc=({key:e})=>e??null,vs=({ref:e,ref_key:t,ref_for:n})=>(typeof e=="number"&&(e=""+e),e!=null?Ke(e)||Be(e)||ee(e)?{i:Tt,r:e,k:t,f:!!n}:e:null);function we(e,t=null,n=null,r=0,s=null,i=e===sn?0:1,o=!1,a=!1){const u={__v_isVNode:!0,__v_skip:!0,type:e,props:t,key:t&&Yc(t),ref:t&&vs(t),scopeId:pc,slotScopeIds:null,children:n,component:null,suspense:null,ssContent:null,ssFallback:null,dirs:null,transition:null,el:null,anchor:null,target:null,targetStart:null,targetAnchor:null,staticCount:0,shapeFlag:i,patchFlag:r,dynamicProps:s,dynamicChildren:null,appContext:null,ctx:Tt};return a?(ea(u,n),i&128&&e.normalize(u)):n&&(u.shapeFlag|=Ke(n)?8:16),Br>0&&!o&&Et&&(u.patchFlag>0||i&6)&&u.patchFlag!==32&&Et.push(u),u}const Ne=k0;function k0(e,t=null,n=null,r=0,s=null,i=!1){if((!e||e===bc)&&(e=jr),Rs(e)){const a=cr(e,t,!0);return n&&ea(a,n),Br>0&&!i&&Et&&(a.shapeFlag&6?Et[Et.indexOf(e)]=a:Et.push(a)),a.patchFlag=-2,a}if(Y0(e)&&(e=e.__vccOpts),t){t=C0(t);let{class:a,style:u}=t;a&&!Ke(a)&&(t.class=No(a)),He(u)&&(zo(u)&&!ie(u)&&(u=qe({},u)),t.style=Vo(u))}const o=Ke(e)?1:Nc(e)?128:Uh(e)?64:He(e)?4:ee(e)?2:0;return we(e,t,n,r,s,o,i,!0)}function C0(e){return e?zo(e)||Tc(e)?qe({},e):e:null}function cr(e,t,n=!1,r=!1){const{props:s,ref:i,patchFlag:o,children:a,transition:u}=e,l=t?M0(s||{},t):s,c={__v_isVNode:!0,__v_skip:!0,type:e.type,props:l,key:l&&Yc(l),ref:t&&t.ref?n&&i?ie(i)?i.concat(vs(t)):[i,vs(t)]:vs(t):i,scopeId:e.scopeId,slotScopeIds:e.slotScopeIds,children:a,target:e.target,targetStart:e.targetStart,targetAnchor:e.targetAnchor,staticCount:e.staticCount,shapeFlag:e.shapeFlag,patchFlag:t&&e.type!==sn?o===-1?16:o|16:o,dynamicProps:e.dynamicProps,dynamicChildren:e.dynamicChildren,appContext:e.appContext,dirs:e.dirs,transition:u,component:e.component,suspense:e.suspense,ssContent:e.ssContent&&cr(e.ssContent),ssFallback:e.ssFallback&&cr(e.ssFallback),el:e.el,anchor:e.anchor,ctx:e.ctx,ce:e.ce};return u&&r&&Go(c,u.clone(c)),c}function Tr(e=" ",t=0){return Ne(ri,null,e,t)}function Bt(e){return e==null||typeof e=="boolean"?Ne(jr):ie(e)?Ne(sn,null,e.slice()):Rs(e)?vn(e):Ne(ri,null,String(e))}function vn(e){return e.el===null&&e.patchFlag!==-1||e.memo?e:cr(e)}function ea(e,t){let n=0;const{shapeFlag:r}=e;if(t==null)t=null;else if(ie(t))n=16;else if(typeof t=="object")if(r&65){const s=t.default;s&&(s._c&&(s._d=!1),ea(e,s()),s._c&&(s._d=!0));return}else{n=32;const s=t._;!s&&!Tc(t)?t._ctx=Tt:s===3&&Tt&&(Tt.slots._===1?t._=1:(t._=2,e.patchFlag|=1024))}else ee(t)?(t={default:t,_ctx:Tt},n=32):(t=String(t),r&64?(n=16,t=[Tr(t)]):n=8);e.children=t,e.shapeFlag|=n}function M0(...e){const t={};for(let n=0;nZe||Tt;let Ps,io;{const e=Xs(),t=(n,r)=>{let s;return(s=e[n])||(s=e[n]=[]),s.push(r),i=>{s.length>1?s.forEach(o=>o(i)):s[0](i)}};Ps=t("__VUE_INSTANCE_SETTERS__",n=>Ze=n),io=t("__VUE_SSR_SETTERS__",n=>Hr=n)}const ts=e=>{const t=Ze;return Ps(e),e.scope.on(),()=>{e.scope.off(),Ps(t)}},su=()=>{Ze&&Ze.scope.off(),Ps(null)};function $c(e){return e.vnode.shapeFlag&4}let Hr=!1;function P0(e,t=!1,n=!1){t&&io(t);const{props:r,children:s}=e.vnode,i=$c(e);i0(e,r,i,t),l0(e,s,n);const o=i?V0(e,t):void 0;return t&&io(!1),o}function V0(e,t){const n=e.type;e.accessCache=Object.create(null),e.proxy=new Proxy(e.ctx,Jh);const{setup:r}=n;if(r){Tn();const s=e.setupContext=r.length>1?U0(e):null,i=ts(e),o=es(r,e,0,[e.props,s]),a=Wl(o);if(Dn(),i(),(a||e.sp)&&!Rr(e)&&mc(e),a){if(o.then(su,su),t)return o.then(u=>{iu(e,u,t)}).catch(u=>{Qs(u,e,0)});e.asyncDep=o}else iu(e,o,t)}else jc(e,t)}function iu(e,t,n){ee(t)?e.type.__ssrInlineRender?e.ssrRender=t:e.render=t:He(t)&&(e.setupState=lc(t)),jc(e,n)}let ou;function jc(e,t,n){const r=e.type;if(!e.render){if(!t&&ou&&!r.render){const s=r.template||Jo(e).template;if(s){const{isCustomElement:i,compilerOptions:o}=e.appContext.config,{delimiters:a,compilerOptions:u}=r,l=qe(qe({isCustomElement:i,delimiters:a},o),u);r.render=ou(s,l)}}e.render=r.render||Wt}{const s=ts(e);Tn();try{Xh(e)}finally{Dn(),s()}}}const N0={get(e,t){return tt(e,"get",""),e[t]}};function U0(e){const t=n=>{e.exposed=n||{}};return{attrs:new Proxy(e.attrs,N0),slots:e.slots,emit:e.emit,expose:t}}function ta(e){return e.exposed?e.exposeProxy||(e.exposeProxy=new Proxy(lc(Sh(e.exposed)),{get(t,n){if(n in t)return t[n];if(n in Pr)return Pr[n](e)},has(t,n){return n in t||n in Pr}})):e.proxy}function L0(e,t=!0){return ee(e)?e.displayName||e.name:e.name||t&&e.__name}function Y0(e){return ee(e)&&"__vccOpts"in e}const me=(e,t)=>Mh(e,t,Hr);function Vs(e,t,n){const r=arguments.length;return r===2?He(t)&&!ie(t)?Rs(t)?Ne(e,null,[t]):Ne(e,t):Ne(e,null,t):(r>3?n=Array.prototype.slice.call(arguments,2):r===3&&Rs(n)&&(n=[n]),Ne(e,t,n))}const $0="3.5.12";/** -* @vue/runtime-dom v3.5.12 -* (c) 2018-present Yuxi (Evan) You and Vue contributors -* @license MIT -**/let oo;const au=typeof window<"u"&&window.trustedTypes;if(au)try{oo=au.createPolicy("vue",{createHTML:e=>e})}catch{}const Bc=oo?e=>oo.createHTML(e):e=>e,j0="http://www.w3.org/2000/svg",B0="http://www.w3.org/1998/Math/MathML",nn=typeof document<"u"?document:null,uu=nn&&nn.createElement("template"),H0={insert:(e,t,n)=>{t.insertBefore(e,n||null)},remove:e=>{const t=e.parentNode;t&&t.removeChild(e)},createElement:(e,t,n,r)=>{const s=t==="svg"?nn.createElementNS(j0,e):t==="mathml"?nn.createElementNS(B0,e):n?nn.createElement(e,{is:n}):nn.createElement(e);return e==="select"&&r&&r.multiple!=null&&s.setAttribute("multiple",r.multiple),s},createText:e=>nn.createTextNode(e),createComment:e=>nn.createComment(e),setText:(e,t)=>{e.nodeValue=t},setElementText:(e,t)=>{e.textContent=t},parentNode:e=>e.parentNode,nextSibling:e=>e.nextSibling,querySelector:e=>nn.querySelector(e),setScopeId(e,t){e.setAttribute(t,"")},insertStaticContent(e,t,n,r,s,i){const o=n?n.previousSibling:t.lastChild;if(s&&(s===i||s.nextSibling))for(;t.insertBefore(s.cloneNode(!0),n),!(s===i||!(s=s.nextSibling)););else{uu.innerHTML=Bc(r==="svg"?`${e}`:r==="mathml"?`${e}`:e);const a=uu.content;if(r==="svg"||r==="mathml"){const u=a.firstChild;for(;u.firstChild;)a.appendChild(u.firstChild);a.removeChild(u)}t.insertBefore(a,n)}return[o?o.nextSibling:t.firstChild,n?n.previousSibling:t.lastChild]}},W0=Symbol("_vtc");function z0(e,t,n){const r=e[W0];r&&(t=(t?[t,...r]:[...r]).join(" ")),t==null?e.removeAttribute("class"):n?e.setAttribute("class",t):e.className=t}const lu=Symbol("_vod"),K0=Symbol("_vsh"),G0=Symbol(""),q0=/(^|;)\s*display\s*:/;function Z0(e,t,n){const r=e.style,s=Ke(n);let i=!1;if(n&&!s){if(t)if(Ke(t))for(const o of t.split(";")){const a=o.slice(0,o.indexOf(":")).trim();n[a]==null&&ys(r,a,"")}else for(const o in t)n[o]==null&&ys(r,o,"");for(const o in n)o==="display"&&(i=!0),ys(r,o,n[o])}else if(s){if(t!==n){const o=r[G0];o&&(n+=";"+o),r.cssText=n,i=q0.test(n)}}else t&&e.removeAttribute("style");lu in e&&(e[lu]=i?r.display:"",e[K0]&&(r.display="none"))}const cu=/\s*!important$/;function ys(e,t,n){if(ie(n))n.forEach(r=>ys(e,t,r));else if(n==null&&(n=""),t.startsWith("--"))e.setProperty(t,n);else{const r=J0(e,t);cu.test(n)?e.setProperty(Hn(r),n.replace(cu,""),"important"):e[r]=n}}const fu=["Webkit","Moz","ms"],Ni={};function J0(e,t){const n=Ni[t];if(n)return n;let r=Dt(t);if(r!=="filter"&&r in e)return Ni[t]=r;r=Js(r);for(let s=0;sUi||(np.then(()=>Ui=0),Ui=Date.now());function sp(e,t){const n=r=>{if(!r._vts)r._vts=Date.now();else if(r._vts<=n.attached)return;Kt(ip(r,n.value),t,5,[r])};return n.value=e,n.attached=rp(),n}function ip(e,t){if(ie(t)){const n=e.stopImmediatePropagation;return e.stopImmediatePropagation=()=>{n.call(e),e._stopped=!0},t.map(r=>s=>!s._stopped&&r&&r(s))}else return t}const gu=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&e.charCodeAt(2)>96&&e.charCodeAt(2)<123,op=(e,t,n,r,s,i)=>{const o=s==="svg";t==="class"?z0(e,r,o):t==="style"?Z0(e,n,r):Gs(t)?Io(t)||ep(e,t,n,r,i):(t[0]==="."?(t=t.slice(1),!0):t[0]==="^"?(t=t.slice(1),!1):ap(e,t,r,o))?(pu(e,t,r),!e.tagName.includes("-")&&(t==="value"||t==="checked"||t==="selected")&&hu(e,t,r,o,i,t!=="value")):e._isVueCE&&(/[A-Z]/.test(t)||!Ke(r))?pu(e,Dt(t),r,i,t):(t==="true-value"?e._trueValue=r:t==="false-value"&&(e._falseValue=r),hu(e,t,r,o))};function ap(e,t,n,r){if(r)return!!(t==="innerHTML"||t==="textContent"||t in e&&gu(t)&&ee(n));if(t==="spellcheck"||t==="draggable"||t==="translate"||t==="form"||t==="list"&&e.tagName==="INPUT"||t==="type"&&e.tagName==="TEXTAREA")return!1;if(t==="width"||t==="height"){const s=e.tagName;if(s==="IMG"||s==="VIDEO"||s==="CANVAS"||s==="SOURCE")return!1}return gu(t)&&Ke(n)?!1:t in e}const up=qe({patchProp:op},H0);let vu;function lp(){return vu||(vu=f0(up))}const cp=(...e)=>{const t=lp().createApp(...e),{mount:n}=t;return t.mount=r=>{const s=dp(r);if(!s)return;const i=t._component;!ee(i)&&!i.render&&!i.template&&(i.template=s.innerHTML),s.nodeType===1&&(s.textContent="");const o=n(s,!1,fp(s));return s instanceof Element&&(s.removeAttribute("v-cloak"),s.setAttribute("data-v-app","")),o},t};function fp(e){if(e instanceof SVGElement)return"svg";if(typeof MathMLElement=="function"&&e instanceof MathMLElement)return"mathml"}function dp(e){return Ke(e)?document.querySelector(e):e}var hp=Object.create,Hc=Object.defineProperty,pp=Object.getOwnPropertyDescriptor,na=Object.getOwnPropertyNames,_p=Object.getPrototypeOf,mp=Object.prototype.hasOwnProperty,gp=(e,t)=>function(){return e&&(t=(0,e[na(e)[0]])(e=0)),t},vp=(e,t)=>function(){return t||(0,e[na(e)[0]])((t={exports:{}}).exports,t),t.exports},yp=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of na(t))!mp.call(e,s)&&s!==n&&Hc(e,s,{get:()=>t[s],enumerable:!(r=pp(t,s))||r.enumerable});return e},Ep=(e,t,n)=>(n=e!=null?hp(_p(e)):{},yp(Hc(n,"default",{value:e,enumerable:!0}),e)),ns=gp({"../../node_modules/.pnpm/tsup@8.3.0_@microsoft+api-extractor@7.43.0_@types+node@20.16.11__@swc+core@1.5.29_jiti@2.0.0__khi6fwhekjxtif3xyxfitrs5gq/node_modules/tsup/assets/esm_shims.js"(){}}),bp=vp({"../../node_modules/.pnpm/rfdc@1.4.1/node_modules/rfdc/index.js"(e,t){ns(),t.exports=r;function n(i){return i instanceof Buffer?Buffer.from(i):new i.constructor(i.buffer.slice(),i.byteOffset,i.length)}function r(i){if(i=i||{},i.circles)return s(i);const o=new Map;if(o.set(Date,f=>new Date(f)),o.set(Map,(f,g)=>new Map(u(Array.from(f),g))),o.set(Set,(f,g)=>new Set(u(Array.from(f),g))),i.constructorHandlers)for(const f of i.constructorHandlers)o.set(f[0],f[1]);let a=null;return i.proto?c:l;function u(f,g){const p=Object.keys(f),v=new Array(p.length);for(let w=0;wnew Date(p)),u.set(Map,(p,v)=>new Map(c(Array.from(p),v))),u.set(Set,(p,v)=>new Set(c(Array.from(p),v))),i.constructorHandlers)for(const p of i.constructorHandlers)u.set(p[0],p[1]);let l=null;return i.proto?g:f;function c(p,v){const w=Object.keys(p),E=new Array(w.length);for(let O=0;O(o=Ap(e,l,c),o.finally(()=>{if(o=null,n.trailing&&a&&!s){const f=u(l,a);return a=null,f}}),o);return function(...l){return o?(n.trailing&&(a=l),o):new Promise(c=>{const f=!s&&n.leading;clearTimeout(s),s=setTimeout(()=>{s=null;const g=n.leading?r:u(this,l);for(const p of i)p(g);i=[]},t),f?(r=u(this,l),c(r)):i.push(c)})}}async function Ap(e,t,n){return await e.apply(t,n)}function ao(e,t={},n){for(const r in e){const s=e[r],i=n?`${n}:${r}`:r;typeof s=="object"&&s!==null?ao(s,t,i):typeof s=="function"&&(t[i]=s)}return t}const kp={run:e=>e()},Cp=()=>kp,zc=typeof console.createTask<"u"?console.createTask:Cp;function Mp(e,t){const n=t.shift(),r=zc(n);return e.reduce((s,i)=>s.then(()=>r.run(()=>i(...t))),Promise.resolve())}function Fp(e,t){const n=t.shift(),r=zc(n);return Promise.all(e.map(s=>r.run(()=>s(...t))))}function Li(e,t){for(const n of[...e])n(t)}class Ip{constructor(){this._hooks={},this._before=void 0,this._after=void 0,this._deprecatedMessages=void 0,this._deprecatedHooks={},this.hook=this.hook.bind(this),this.callHook=this.callHook.bind(this),this.callHookWith=this.callHookWith.bind(this)}hook(t,n,r={}){if(!t||typeof n!="function")return()=>{};const s=t;let i;for(;this._deprecatedHooks[t];)i=this._deprecatedHooks[t],t=i.to;if(i&&!r.allowDeprecated){let o=i.message;o||(o=`${s} hook has been deprecated`+(i.to?`, please use ${i.to}`:"")),this._deprecatedMessages||(this._deprecatedMessages=new Set),this._deprecatedMessages.has(o)||(console.warn(o),this._deprecatedMessages.add(o))}if(!n.name)try{Object.defineProperty(n,"name",{get:()=>"_"+t.replace(/\W+/g,"_")+"_hook_cb",configurable:!0})}catch{}return this._hooks[t]=this._hooks[t]||[],this._hooks[t].push(n),()=>{n&&(this.removeHook(t,n),n=void 0)}}hookOnce(t,n){let r,s=(...i)=>(typeof r=="function"&&r(),r=void 0,s=void 0,n(...i));return r=this.hook(t,s),r}removeHook(t,n){if(this._hooks[t]){const r=this._hooks[t].indexOf(n);r!==-1&&this._hooks[t].splice(r,1),this._hooks[t].length===0&&delete this._hooks[t]}}deprecateHook(t,n){this._deprecatedHooks[t]=typeof n=="string"?{to:n}:n;const r=this._hooks[t]||[];delete this._hooks[t];for(const s of r)this.hook(t,s)}deprecateHooks(t){Object.assign(this._deprecatedHooks,t);for(const n in t)this.deprecateHook(n,t[n])}addHooks(t){const n=ao(t),r=Object.keys(n).map(s=>this.hook(s,n[s]));return()=>{for(const s of r.splice(0,r.length))s()}}removeHooks(t){const n=ao(t);for(const r in n)this.removeHook(r,n[r])}removeAllHooks(){for(const t in this._hooks)delete this._hooks[t]}callHook(t,...n){return n.unshift(t),this.callHookWith(Mp,t,...n)}callHookParallel(t,...n){return n.unshift(t),this.callHookWith(Fp,t,...n)}callHookWith(t,n,...r){const s=this._before||this._after?{name:n,args:r,context:{}}:void 0;this._before&&Li(this._before,s);const i=t(n in this._hooks?[...this._hooks[n]]:[],r);return i instanceof Promise?i.finally(()=>{this._after&&s&&Li(this._after,s)}):(this._after&&s&&Li(this._after,s),i)}beforeEach(t){return this._before=this._before||[],this._before.push(t),()=>{if(this._before!==void 0){const n=this._before.indexOf(t);n!==-1&&this._before.splice(n,1)}}}afterEach(t){return this._after=this._after||[],this._after.push(t),()=>{if(this._after!==void 0){const n=this._after.indexOf(t);n!==-1&&this._after.splice(n,1)}}}}function Kc(){return new Ip}var Rp=Object.create,Gc=Object.defineProperty,Pp=Object.getOwnPropertyDescriptor,ra=Object.getOwnPropertyNames,Vp=Object.getPrototypeOf,Np=Object.prototype.hasOwnProperty,Up=(e,t)=>function(){return e&&(t=(0,e[ra(e)[0]])(e=0)),t},qc=(e,t)=>function(){return t||(0,e[ra(e)[0]])((t={exports:{}}).exports,t),t.exports},Lp=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of ra(t))!Np.call(e,s)&&s!==n&&Gc(e,s,{get:()=>t[s],enumerable:!(r=Pp(t,s))||r.enumerable});return e},Yp=(e,t,n)=>(n=e!=null?Rp(Vp(e)):{},Lp(Gc(n,"default",{value:e,enumerable:!0}),e)),T=Up({"../../node_modules/.pnpm/tsup@8.3.0_@microsoft+api-extractor@7.43.0_@types+node@20.16.11__@swc+core@1.5.29_jiti@2.0.0__khi6fwhekjxtif3xyxfitrs5gq/node_modules/tsup/assets/esm_shims.js"(){}}),$p=qc({"../../node_modules/.pnpm/speakingurl@14.0.1/node_modules/speakingurl/lib/speakingurl.js"(e,t){T(),function(n){var r={À:"A",Á:"A",Â:"A",Ã:"A",Ä:"Ae",Å:"A",Æ:"AE",Ç:"C",È:"E",É:"E",Ê:"E",Ë:"E",Ì:"I",Í:"I",Î:"I",Ï:"I",Ð:"D",Ñ:"N",Ò:"O",Ó:"O",Ô:"O",Õ:"O",Ö:"Oe",Ő:"O",Ø:"O",Ù:"U",Ú:"U",Û:"U",Ü:"Ue",Ű:"U",Ý:"Y",Þ:"TH",ß:"ss",à:"a",á:"a",â:"a",ã:"a",ä:"ae",å:"a",æ:"ae",ç:"c",è:"e",é:"e",ê:"e",ë:"e",ì:"i",í:"i",î:"i",ï:"i",ð:"d",ñ:"n",ò:"o",ó:"o",ô:"o",õ:"o",ö:"oe",ő:"o",ø:"o",ù:"u",ú:"u",û:"u",ü:"ue",ű:"u",ý:"y",þ:"th",ÿ:"y","ẞ":"SS",ا:"a",أ:"a",إ:"i",آ:"aa",ؤ:"u",ئ:"e",ء:"a",ب:"b",ت:"t",ث:"th",ج:"j",ح:"h",خ:"kh",د:"d",ذ:"th",ر:"r",ز:"z",س:"s",ش:"sh",ص:"s",ض:"dh",ط:"t",ظ:"z",ع:"a",غ:"gh",ف:"f",ق:"q",ك:"k",ل:"l",م:"m",ن:"n",ه:"h",و:"w",ي:"y",ى:"a",ة:"h",ﻻ:"la",ﻷ:"laa",ﻹ:"lai",ﻵ:"laa",گ:"g",چ:"ch",پ:"p",ژ:"zh",ک:"k",ی:"y","َ":"a","ً":"an","ِ":"e","ٍ":"en","ُ":"u","ٌ":"on","ْ":"","٠":"0","١":"1","٢":"2","٣":"3","٤":"4","٥":"5","٦":"6","٧":"7","٨":"8","٩":"9","۰":"0","۱":"1","۲":"2","۳":"3","۴":"4","۵":"5","۶":"6","۷":"7","۸":"8","۹":"9",က:"k",ခ:"kh",ဂ:"g",ဃ:"ga",င:"ng",စ:"s",ဆ:"sa",ဇ:"z","စျ":"za",ည:"ny",ဋ:"t",ဌ:"ta",ဍ:"d",ဎ:"da",ဏ:"na",တ:"t",ထ:"ta",ဒ:"d",ဓ:"da",န:"n",ပ:"p",ဖ:"pa",ဗ:"b",ဘ:"ba",မ:"m",ယ:"y",ရ:"ya",လ:"l",ဝ:"w",သ:"th",ဟ:"h",ဠ:"la",အ:"a","ြ":"y","ျ":"ya","ွ":"w","ြွ":"yw","ျွ":"ywa","ှ":"h",ဧ:"e","၏":"-e",ဣ:"i",ဤ:"-i",ဉ:"u",ဦ:"-u",ဩ:"aw","သြော":"aw",ဪ:"aw","၀":"0","၁":"1","၂":"2","၃":"3","၄":"4","၅":"5","၆":"6","၇":"7","၈":"8","၉":"9","္":"","့":"","း":"",č:"c",ď:"d",ě:"e",ň:"n",ř:"r",š:"s",ť:"t",ů:"u",ž:"z",Č:"C",Ď:"D",Ě:"E",Ň:"N",Ř:"R",Š:"S",Ť:"T",Ů:"U",Ž:"Z",ހ:"h",ށ:"sh",ނ:"n",ރ:"r",ބ:"b",ޅ:"lh",ކ:"k",އ:"a",ވ:"v",މ:"m",ފ:"f",ދ:"dh",ތ:"th",ލ:"l",ގ:"g",ޏ:"gn",ސ:"s",ޑ:"d",ޒ:"z",ޓ:"t",ޔ:"y",ޕ:"p",ޖ:"j",ޗ:"ch",ޘ:"tt",ޙ:"hh",ޚ:"kh",ޛ:"th",ޜ:"z",ޝ:"sh",ޞ:"s",ޟ:"d",ޠ:"t",ޡ:"z",ޢ:"a",ޣ:"gh",ޤ:"q",ޥ:"w","ަ":"a","ާ":"aa","ި":"i","ީ":"ee","ު":"u","ޫ":"oo","ެ":"e","ޭ":"ey","ޮ":"o","ޯ":"oa","ް":"",ა:"a",ბ:"b",გ:"g",დ:"d",ე:"e",ვ:"v",ზ:"z",თ:"t",ი:"i",კ:"k",ლ:"l",მ:"m",ნ:"n",ო:"o",პ:"p",ჟ:"zh",რ:"r",ს:"s",ტ:"t",უ:"u",ფ:"p",ქ:"k",ღ:"gh",ყ:"q",შ:"sh",ჩ:"ch",ც:"ts",ძ:"dz",წ:"ts",ჭ:"ch",ხ:"kh",ჯ:"j",ჰ:"h",α:"a",β:"v",γ:"g",δ:"d",ε:"e",ζ:"z",η:"i",θ:"th",ι:"i",κ:"k",λ:"l",μ:"m",ν:"n",ξ:"ks",ο:"o",π:"p",ρ:"r",σ:"s",τ:"t",υ:"y",φ:"f",χ:"x",ψ:"ps",ω:"o",ά:"a",έ:"e",ί:"i",ό:"o",ύ:"y",ή:"i",ώ:"o",ς:"s",ϊ:"i",ΰ:"y",ϋ:"y",ΐ:"i",Α:"A",Β:"B",Γ:"G",Δ:"D",Ε:"E",Ζ:"Z",Η:"I",Θ:"TH",Ι:"I",Κ:"K",Λ:"L",Μ:"M",Ν:"N",Ξ:"KS",Ο:"O",Π:"P",Ρ:"R",Σ:"S",Τ:"T",Υ:"Y",Φ:"F",Χ:"X",Ψ:"PS",Ω:"O",Ά:"A",Έ:"E",Ί:"I",Ό:"O",Ύ:"Y",Ή:"I",Ώ:"O",Ϊ:"I",Ϋ:"Y",ā:"a",ē:"e",ģ:"g",ī:"i",ķ:"k",ļ:"l",ņ:"n",ū:"u",Ā:"A",Ē:"E",Ģ:"G",Ī:"I",Ķ:"k",Ļ:"L",Ņ:"N",Ū:"U",Ќ:"Kj",ќ:"kj",Љ:"Lj",љ:"lj",Њ:"Nj",њ:"nj",Тс:"Ts",тс:"ts",ą:"a",ć:"c",ę:"e",ł:"l",ń:"n",ś:"s",ź:"z",ż:"z",Ą:"A",Ć:"C",Ę:"E",Ł:"L",Ń:"N",Ś:"S",Ź:"Z",Ż:"Z",Є:"Ye",І:"I",Ї:"Yi",Ґ:"G",є:"ye",і:"i",ї:"yi",ґ:"g",ă:"a",Ă:"A",ș:"s",Ș:"S",ț:"t",Ț:"T",ţ:"t",Ţ:"T",а:"a",б:"b",в:"v",г:"g",д:"d",е:"e",ё:"yo",ж:"zh",з:"z",и:"i",й:"i",к:"k",л:"l",м:"m",н:"n",о:"o",п:"p",р:"r",с:"s",т:"t",у:"u",ф:"f",х:"kh",ц:"c",ч:"ch",ш:"sh",щ:"sh",ъ:"",ы:"y",ь:"",э:"e",ю:"yu",я:"ya",А:"A",Б:"B",В:"V",Г:"G",Д:"D",Е:"E",Ё:"Yo",Ж:"Zh",З:"Z",И:"I",Й:"I",К:"K",Л:"L",М:"M",Н:"N",О:"O",П:"P",Р:"R",С:"S",Т:"T",У:"U",Ф:"F",Х:"Kh",Ц:"C",Ч:"Ch",Ш:"Sh",Щ:"Sh",Ъ:"",Ы:"Y",Ь:"",Э:"E",Ю:"Yu",Я:"Ya",ђ:"dj",ј:"j",ћ:"c",џ:"dz",Ђ:"Dj",Ј:"j",Ћ:"C",Џ:"Dz",ľ:"l",ĺ:"l",ŕ:"r",Ľ:"L",Ĺ:"L",Ŕ:"R",ş:"s",Ş:"S",ı:"i",İ:"I",ğ:"g",Ğ:"G",ả:"a",Ả:"A",ẳ:"a",Ẳ:"A",ẩ:"a",Ẩ:"A",đ:"d",Đ:"D",ẹ:"e",Ẹ:"E",ẽ:"e",Ẽ:"E",ẻ:"e",Ẻ:"E",ế:"e",Ế:"E",ề:"e",Ề:"E",ệ:"e",Ệ:"E",ễ:"e",Ễ:"E",ể:"e",Ể:"E",ỏ:"o",ọ:"o",Ọ:"o",ố:"o",Ố:"O",ồ:"o",Ồ:"O",ổ:"o",Ổ:"O",ộ:"o",Ộ:"O",ỗ:"o",Ỗ:"O",ơ:"o",Ơ:"O",ớ:"o",Ớ:"O",ờ:"o",Ờ:"O",ợ:"o",Ợ:"O",ỡ:"o",Ỡ:"O",Ở:"o",ở:"o",ị:"i",Ị:"I",ĩ:"i",Ĩ:"I",ỉ:"i",Ỉ:"i",ủ:"u",Ủ:"U",ụ:"u",Ụ:"U",ũ:"u",Ũ:"U",ư:"u",Ư:"U",ứ:"u",Ứ:"U",ừ:"u",Ừ:"U",ự:"u",Ự:"U",ữ:"u",Ữ:"U",ử:"u",Ử:"ư",ỷ:"y",Ỷ:"y",ỳ:"y",Ỳ:"Y",ỵ:"y",Ỵ:"Y",ỹ:"y",Ỹ:"Y",ạ:"a",Ạ:"A",ấ:"a",Ấ:"A",ầ:"a",Ầ:"A",ậ:"a",Ậ:"A",ẫ:"a",Ẫ:"A",ắ:"a",Ắ:"A",ằ:"a",Ằ:"A",ặ:"a",Ặ:"A",ẵ:"a",Ẵ:"A","⓪":"0","①":"1","②":"2","③":"3","④":"4","⑤":"5","⑥":"6","⑦":"7","⑧":"8","⑨":"9","⑩":"10","⑪":"11","⑫":"12","⑬":"13","⑭":"14","⑮":"15","⑯":"16","⑰":"17","⑱":"18","⑲":"18","⑳":"18","⓵":"1","⓶":"2","⓷":"3","⓸":"4","⓹":"5","⓺":"6","⓻":"7","⓼":"8","⓽":"9","⓾":"10","⓿":"0","⓫":"11","⓬":"12","⓭":"13","⓮":"14","⓯":"15","⓰":"16","⓱":"17","⓲":"18","⓳":"19","⓴":"20","Ⓐ":"A","Ⓑ":"B","Ⓒ":"C","Ⓓ":"D","Ⓔ":"E","Ⓕ":"F","Ⓖ":"G","Ⓗ":"H","Ⓘ":"I","Ⓙ":"J","Ⓚ":"K","Ⓛ":"L","Ⓜ":"M","Ⓝ":"N","Ⓞ":"O","Ⓟ":"P","Ⓠ":"Q","Ⓡ":"R","Ⓢ":"S","Ⓣ":"T","Ⓤ":"U","Ⓥ":"V","Ⓦ":"W","Ⓧ":"X","Ⓨ":"Y","Ⓩ":"Z","ⓐ":"a","ⓑ":"b","ⓒ":"c","ⓓ":"d","ⓔ":"e","ⓕ":"f","ⓖ":"g","ⓗ":"h","ⓘ":"i","ⓙ":"j","ⓚ":"k","ⓛ":"l","ⓜ":"m","ⓝ":"n","ⓞ":"o","ⓟ":"p","ⓠ":"q","ⓡ":"r","ⓢ":"s","ⓣ":"t","ⓤ":"u","ⓦ":"v","ⓥ":"w","ⓧ":"x","ⓨ":"y","ⓩ":"z","“":'"',"”":'"',"‘":"'","’":"'","∂":"d",ƒ:"f","™":"(TM)","©":"(C)",œ:"oe",Œ:"OE","®":"(R)","†":"+","℠":"(SM)","…":"...","˚":"o",º:"o",ª:"a","•":"*","၊":",","။":".",$:"USD","€":"EUR","₢":"BRN","₣":"FRF","£":"GBP","₤":"ITL","₦":"NGN","₧":"ESP","₩":"KRW","₪":"ILS","₫":"VND","₭":"LAK","₮":"MNT","₯":"GRD","₱":"ARS","₲":"PYG","₳":"ARA","₴":"UAH","₵":"GHS","¢":"cent","¥":"CNY",元:"CNY",円:"YEN","﷼":"IRR","₠":"EWE","฿":"THB","₨":"INR","₹":"INR","₰":"PF","₺":"TRY","؋":"AFN","₼":"AZN",лв:"BGN","៛":"KHR","₡":"CRC","₸":"KZT",ден:"MKD",zł:"PLN","₽":"RUB","₾":"GEL"},s=["်","ް"],i={"ာ":"a","ါ":"a","ေ":"e","ဲ":"e","ိ":"i","ီ":"i","ို":"o","ု":"u","ူ":"u","ေါင်":"aung","ော":"aw","ော်":"aw","ေါ":"aw","ေါ်":"aw","်":"်","က်":"et","ိုက်":"aik","ောက်":"auk","င်":"in","ိုင်":"aing","ောင်":"aung","စ်":"it","ည်":"i","တ်":"at","ိတ်":"eik","ုတ်":"ok","ွတ်":"ut","ေတ်":"it","ဒ်":"d","ိုဒ်":"ok","ုဒ်":"ait","န်":"an","ာန်":"an","ိန်":"ein","ုန်":"on","ွန်":"un","ပ်":"at","ိပ်":"eik","ုပ်":"ok","ွပ်":"ut","န်ုပ်":"nub","မ်":"an","ိမ်":"ein","ုမ်":"on","ွမ်":"un","ယ်":"e","ိုလ်":"ol","ဉ်":"in","ံ":"an","ိံ":"ein","ုံ":"on","ައް":"ah","ަށް":"ah"},o={en:{},az:{ç:"c",ə:"e",ğ:"g",ı:"i",ö:"o",ş:"s",ü:"u",Ç:"C",Ə:"E",Ğ:"G",İ:"I",Ö:"O",Ş:"S",Ü:"U"},cs:{č:"c",ď:"d",ě:"e",ň:"n",ř:"r",š:"s",ť:"t",ů:"u",ž:"z",Č:"C",Ď:"D",Ě:"E",Ň:"N",Ř:"R",Š:"S",Ť:"T",Ů:"U",Ž:"Z"},fi:{ä:"a",Ä:"A",ö:"o",Ö:"O"},hu:{ä:"a",Ä:"A",ö:"o",Ö:"O",ü:"u",Ü:"U",ű:"u",Ű:"U"},lt:{ą:"a",č:"c",ę:"e",ė:"e",į:"i",š:"s",ų:"u",ū:"u",ž:"z",Ą:"A",Č:"C",Ę:"E",Ė:"E",Į:"I",Š:"S",Ų:"U",Ū:"U"},lv:{ā:"a",č:"c",ē:"e",ģ:"g",ī:"i",ķ:"k",ļ:"l",ņ:"n",š:"s",ū:"u",ž:"z",Ā:"A",Č:"C",Ē:"E",Ģ:"G",Ī:"i",Ķ:"k",Ļ:"L",Ņ:"N",Š:"S",Ū:"u",Ž:"Z"},pl:{ą:"a",ć:"c",ę:"e",ł:"l",ń:"n",ó:"o",ś:"s",ź:"z",ż:"z",Ą:"A",Ć:"C",Ę:"e",Ł:"L",Ń:"N",Ó:"O",Ś:"S",Ź:"Z",Ż:"Z"},sv:{ä:"a",Ä:"A",ö:"o",Ö:"O"},sk:{ä:"a",Ä:"A"},sr:{љ:"lj",њ:"nj",Љ:"Lj",Њ:"Nj",đ:"dj",Đ:"Dj"},tr:{Ü:"U",Ö:"O",ü:"u",ö:"o"}},a={ar:{"∆":"delta","∞":"la-nihaya","♥":"hob","&":"wa","|":"aw","<":"aqal-men",">":"akbar-men","∑":"majmou","¤":"omla"},az:{},ca:{"∆":"delta","∞":"infinit","♥":"amor","&":"i","|":"o","<":"menys que",">":"mes que","∑":"suma dels","¤":"moneda"},cs:{"∆":"delta","∞":"nekonecno","♥":"laska","&":"a","|":"nebo","<":"mensi nez",">":"vetsi nez","∑":"soucet","¤":"mena"},de:{"∆":"delta","∞":"unendlich","♥":"Liebe","&":"und","|":"oder","<":"kleiner als",">":"groesser als","∑":"Summe von","¤":"Waehrung"},dv:{"∆":"delta","∞":"kolunulaa","♥":"loabi","&":"aai","|":"noonee","<":"ah vure kuda",">":"ah vure bodu","∑":"jumula","¤":"faisaa"},en:{"∆":"delta","∞":"infinity","♥":"love","&":"and","|":"or","<":"less than",">":"greater than","∑":"sum","¤":"currency"},es:{"∆":"delta","∞":"infinito","♥":"amor","&":"y","|":"u","<":"menos que",">":"mas que","∑":"suma de los","¤":"moneda"},fa:{"∆":"delta","∞":"bi-nahayat","♥":"eshgh","&":"va","|":"ya","<":"kamtar-az",">":"bishtar-az","∑":"majmooe","¤":"vahed"},fi:{"∆":"delta","∞":"aarettomyys","♥":"rakkaus","&":"ja","|":"tai","<":"pienempi kuin",">":"suurempi kuin","∑":"summa","¤":"valuutta"},fr:{"∆":"delta","∞":"infiniment","♥":"Amour","&":"et","|":"ou","<":"moins que",">":"superieure a","∑":"somme des","¤":"monnaie"},ge:{"∆":"delta","∞":"usasruloba","♥":"siqvaruli","&":"da","|":"an","<":"naklebi",">":"meti","∑":"jami","¤":"valuta"},gr:{},hu:{"∆":"delta","∞":"vegtelen","♥":"szerelem","&":"es","|":"vagy","<":"kisebb mint",">":"nagyobb mint","∑":"szumma","¤":"penznem"},it:{"∆":"delta","∞":"infinito","♥":"amore","&":"e","|":"o","<":"minore di",">":"maggiore di","∑":"somma","¤":"moneta"},lt:{"∆":"delta","∞":"begalybe","♥":"meile","&":"ir","|":"ar","<":"maziau nei",">":"daugiau nei","∑":"suma","¤":"valiuta"},lv:{"∆":"delta","∞":"bezgaliba","♥":"milestiba","&":"un","|":"vai","<":"mazak neka",">":"lielaks neka","∑":"summa","¤":"valuta"},my:{"∆":"kwahkhyaet","∞":"asaonasme","♥":"akhyait","&":"nhin","|":"tho","<":"ngethaw",">":"kyithaw","∑":"paungld","¤":"ngwekye"},mk:{},nl:{"∆":"delta","∞":"oneindig","♥":"liefde","&":"en","|":"of","<":"kleiner dan",">":"groter dan","∑":"som","¤":"valuta"},pl:{"∆":"delta","∞":"nieskonczonosc","♥":"milosc","&":"i","|":"lub","<":"mniejsze niz",">":"wieksze niz","∑":"suma","¤":"waluta"},pt:{"∆":"delta","∞":"infinito","♥":"amor","&":"e","|":"ou","<":"menor que",">":"maior que","∑":"soma","¤":"moeda"},ro:{"∆":"delta","∞":"infinit","♥":"dragoste","&":"si","|":"sau","<":"mai mic ca",">":"mai mare ca","∑":"suma","¤":"valuta"},ru:{"∆":"delta","∞":"beskonechno","♥":"lubov","&":"i","|":"ili","<":"menshe",">":"bolshe","∑":"summa","¤":"valjuta"},sk:{"∆":"delta","∞":"nekonecno","♥":"laska","&":"a","|":"alebo","<":"menej ako",">":"viac ako","∑":"sucet","¤":"mena"},sr:{},tr:{"∆":"delta","∞":"sonsuzluk","♥":"ask","&":"ve","|":"veya","<":"kucuktur",">":"buyuktur","∑":"toplam","¤":"para birimi"},uk:{"∆":"delta","∞":"bezkinechnist","♥":"lubov","&":"i","|":"abo","<":"menshe",">":"bilshe","∑":"suma","¤":"valjuta"},vn:{"∆":"delta","∞":"vo cuc","♥":"yeu","&":"va","|":"hoac","<":"nho hon",">":"lon hon","∑":"tong","¤":"tien te"}},u=[";","?",":","@","&","=","+","$",",","/"].join(""),l=[";","?",":","@","&","=","+","$",","].join(""),c=[".","!","~","*","'","(",")"].join(""),f=function(E,O){var P="-",j="",V="",Z=!0,oe={},ae,De,ue,ne,te,Pe,Ue,Oe,je,W,C,J,Te,Xe,Le="";if(typeof E!="string")return"";if(typeof O=="string"&&(P=O),Ue=a.en,Oe=o.en,typeof O=="object"){ae=O.maintainCase||!1,oe=O.custom&&typeof O.custom=="object"?O.custom:oe,ue=+O.truncate>1&&O.truncate||!1,ne=O.uric||!1,te=O.uricNoSlash||!1,Pe=O.mark||!1,Z=!(O.symbols===!1||O.lang===!1),P=O.separator||P,ne&&(Le+=u),te&&(Le+=l),Pe&&(Le+=c),Ue=O.lang&&a[O.lang]&&Z?a[O.lang]:Z?a.en:{},Oe=O.lang&&o[O.lang]?o[O.lang]:O.lang===!1||O.lang===!0?{}:o.en,O.titleCase&&typeof O.titleCase.length=="number"&&Array.prototype.toString.call(O.titleCase)?(O.titleCase.forEach(function(Me){oe[Me+""]=Me+""}),De=!0):De=!!O.titleCase,O.custom&&typeof O.custom.length=="number"&&Array.prototype.toString.call(O.custom)&&O.custom.forEach(function(Me){oe[Me+""]=Me+""}),Object.keys(oe).forEach(function(Me){var ut;Me.length>1?ut=new RegExp("\\b"+p(Me)+"\\b","gi"):ut=new RegExp(p(Me),"gi"),E=E.replace(ut,oe[Me])});for(C in oe)Le+=C}for(Le+=P,Le=p(Le),E=E.replace(/(^\s+|\s+$)/g,""),Te=!1,Xe=!1,W=0,J=E.length;W=0?(V+=C,C=""):Xe===!0?(C=i[V]+r[C],V=""):C=Te&&r[C].match(/[A-Za-z0-9]/)?" "+r[C]:r[C],Te=!1,Xe=!1):C in i?(V+=C,C="",W===J-1&&(C=i[V]),Xe=!0):Ue[C]&&!(ne&&u.indexOf(C)!==-1)&&!(te&&l.indexOf(C)!==-1)?(C=Te||j.substr(-1).match(/[A-Za-z0-9]/)?P+Ue[C]:Ue[C],C+=E[W+1]!==void 0&&E[W+1].match(/[A-Za-z0-9]/)?P:"",Te=!0):(Xe===!0?(C=i[V]+C,V="",Xe=!1):Te&&(/[A-Za-z0-9]/.test(C)||j.substr(-1).match(/A-Za-z0-9]/))&&(C=" "+C),Te=!1),j+=C.replace(new RegExp("[^\\w\\s"+Le+"_-]","g"),P);return De&&(j=j.replace(/(\w)(\S*)/g,function(Me,ut,Ge){var Jt=ut.toUpperCase()+(Ge!==null?Ge:"");return Object.keys(oe).indexOf(Jt.toLowerCase())<0?Jt:Jt.toLowerCase()})),j=j.replace(/\s+/g,P).replace(new RegExp("\\"+P+"+","g"),P).replace(new RegExp("(^\\"+P+"+|\\"+P+"+$)","g"),""),ue&&j.length>ue&&(je=j.charAt(ue)===P,j=j.slice(0,ue),je||(j=j.slice(0,j.lastIndexOf(P)))),!ae&&!De&&(j=j.toLowerCase()),j},g=function(E){return function(P){return f(P,E)}},p=function(E){return E.replace(/[-\\^$*+?.()|[\]{}\/]/g,"\\$&")},v=function(w,E){for(var O in E)if(E[O]===w)return!0};if(typeof t<"u"&&t.exports)t.exports=f,t.exports.createSlug=g;else if(typeof define<"u"&&define.amd)define([],function(){return f});else try{if(n.getSlug||n.createSlug)throw"speakingurl: globals exists /(getSlug|createSlug)/";n.getSlug=f,n.createSlug=g}catch{}}(e)}}),jp=qc({"../../node_modules/.pnpm/speakingurl@14.0.1/node_modules/speakingurl/index.js"(e,t){T(),t.exports=$p()}});T();T();T();T();T();T();T();function Bp(e){return!!(e&&e.__v_isReadonly)}function Zc(e){return Bp(e)?Zc(e.__v_raw):!!(e&&e.__v_isReactive)}function Yi(e){return!!(e&&e.__v_isRef===!0)}function Dr(e){const t=e&&e.__v_raw;return t?Dr(t):e}var Hp=Symbol.for("v-fgt");T();function Wp(e){var t;const n=e.name||e._componentTag||e.__VUE_DEVTOOLS_COMPONENT_GUSSED_NAME__||e.__name;return n==="index"&&((t=e.__file)!=null&&t.endsWith("index.vue"))?"":n}function zp(e){const t=e.__file;if(t)return xp(Tp(t,".vue"))}function bu(e,t){return e.type.__VUE_DEVTOOLS_COMPONENT_GUSSED_NAME__=t,t}function sa(e){if(e.__VUE_DEVTOOLS_NEXT_APP_RECORD__)return e.__VUE_DEVTOOLS_NEXT_APP_RECORD__;if(e.root)return e.appContext.app.__VUE_DEVTOOLS_NEXT_APP_RECORD__}async function Kp(e){const{app:t,uid:n,instance:r}=e;try{if(r.__VUE_DEVTOOLS_NEXT_UID__)return r.__VUE_DEVTOOLS_NEXT_UID__;const s=await sa(t);if(!s)return null;const i=s.rootInstance===r;return`${s.id}:${i?"root":n}`}catch{}}function Jc(e){var t;return((t=e.subTree)==null?void 0:t.type)===Hp}function oi(e){var t,n,r;const s=Wp((e==null?void 0:e.type)||{});if(s)return s;if((e==null?void 0:e.root)===e)return"Root";for(const o in(n=(t=e.parent)==null?void 0:t.type)==null?void 0:n.components)if(e.parent.type.components[o]===(e==null?void 0:e.type))return bu(e,o);for(const o in(r=e.appContext)==null?void 0:r.components)if(e.appContext.components[o]===(e==null?void 0:e.type))return bu(e,o);const i=zp((e==null?void 0:e.type)||{});return i||"Anonymous Component"}function uo(e,t){return t=t||`${e.id}:root`,e.instanceMap.get(t)||e.instanceMap.get(":root")}var Gp=class{constructor(){this.refEditor=new qp}set(e,t,n,r){const s=Array.isArray(t)?t:t.split(".");for(;s.length>1;){const a=s.shift();e instanceof Map&&(e=e.get(a)),e instanceof Set?e=Array.from(e.values())[a]:e=e[a],this.refEditor.isRef(e)&&(e=this.refEditor.get(e))}const i=s[0],o=this.refEditor.get(e)[i];r?r(e,i,n):this.refEditor.isRef(o)?this.refEditor.set(o,n):e[i]=n}get(e,t){const n=Array.isArray(t)?t:t.split(".");for(let r=0;r"u")return!1;const r=Array.isArray(t)?t.slice():t.split("."),s=n?2:1;for(;e&&r.length>s;){const i=r.shift();e=e[i],this.refEditor.isRef(e)&&(e=this.refEditor.get(e))}return e!=null&&Object.prototype.hasOwnProperty.call(e,r[0])}createDefaultSetCallback(e){return(t,n,r)=>{if((e.remove||e.newKey)&&(Array.isArray(t)?t.splice(n,1):Dr(t)instanceof Map?t.delete(n):Dr(t)instanceof Set?t.delete(Array.from(t.values())[n]):Reflect.deleteProperty(t,n)),!e.remove){const s=t[e.newKey||n];this.refEditor.isRef(s)?this.refEditor.set(s,r):Dr(t)instanceof Map?t.set(e.newKey||n,r):Dr(t)instanceof Set?t.add(r):t[e.newKey||n]=r}}}},qp=class{set(e,t){if(Yi(e))e.value=t;else{if(e instanceof Set&&Array.isArray(t)){e.clear(),t.forEach(s=>e.add(s));return}const n=Object.keys(t);if(e instanceof Map){const s=new Set(e.keys());n.forEach(i=>{e.set(i,Reflect.get(t,i)),s.delete(i)}),s.forEach(i=>e.delete(i));return}const r=new Set(Object.keys(e));n.forEach(s=>{Reflect.set(e,s,Reflect.get(t,s)),r.delete(s)}),r.forEach(s=>Reflect.deleteProperty(e,s))}}get(e){return Yi(e)?e.value:e}isRef(e){return Yi(e)||Zc(e)}};T();function ia(e){return Jc(e)?Zp(e.subTree):e.subTree?[e.subTree.el]:[]}function Zp(e){if(!e.children)return[];const t=[];return e.children.forEach(n=>{n.component?t.push(...ia(n.component)):n!=null&&n.el&&t.push(n.el)}),t}T();T();function Jp(){const e={top:0,bottom:0,left:0,right:0,get width(){return e.right-e.left},get height(){return e.bottom-e.top}};return e}var ds;function Xp(e){return ds||(ds=document.createRange()),ds.selectNode(e),ds.getBoundingClientRect()}function Qp(e){const t=Jp();if(!e.children)return t;for(let n=0,r=e.children.length;ne.bottom)&&(e.bottom=t.bottom),(!e.left||t.lefte.right)&&(e.right=t.right),e}var Ou={top:0,left:0,right:0,bottom:0,width:0,height:0};function jn(e){const t=e.subTree.el;return typeof window>"u"?Ou:Jc(e)?Qp(e.subTree):(t==null?void 0:t.nodeType)===1?t==null?void 0:t.getBoundingClientRect():e.subTree.component?jn(e.subTree.component):Ou}var Xc="__vue-devtools-component-inspector__",Qc="__vue-devtools-component-inspector__card__",ef="__vue-devtools-component-inspector__name__",tf="__vue-devtools-component-inspector__indicator__",nf={display:"block",zIndex:2147483640,position:"fixed",backgroundColor:"#42b88325",border:"1px solid #42b88350",borderRadius:"5px",transition:"all 0.1s ease-in",pointerEvents:"none"},t_={fontFamily:"Arial, Helvetica, sans-serif",padding:"5px 8px",borderRadius:"4px",textAlign:"left",position:"absolute",left:0,color:"#e9e9e9",fontSize:"14px",fontWeight:600,lineHeight:"24px",backgroundColor:"#42b883",boxShadow:"0 1px 3px 0 rgba(0, 0, 0, 0.1), 0 1px 2px -1px rgba(0, 0, 0, 0.1)"},n_={display:"inline-block",fontWeight:400,fontStyle:"normal",fontSize:"12px",opacity:.7};function pr(){return document.getElementById(Xc)}function r_(){return document.getElementById(Qc)}function s_(){return document.getElementById(tf)}function i_(){return document.getElementById(ef)}function oa(e){return{left:`${Math.round(e.left*100)/100}px`,top:`${Math.round(e.top*100)/100}px`,width:`${Math.round(e.width*100)/100}px`,height:`${Math.round(e.height*100)/100}px`}}function aa(e){var t;const n=document.createElement("div");n.id=(t=e.elementId)!=null?t:Xc,Object.assign(n.style,{...nf,...oa(e.bounds),...e.style});const r=document.createElement("span");r.id=Qc,Object.assign(r.style,{...t_,top:e.bounds.top<35?0:"-35px"});const s=document.createElement("span");s.id=ef,s.innerHTML=`<${e.name}>  `;const i=document.createElement("i");return i.id=tf,i.innerHTML=`${Math.round(e.bounds.width*100)/100} x ${Math.round(e.bounds.height*100)/100}`,Object.assign(i.style,n_),r.appendChild(s),r.appendChild(i),n.appendChild(r),document.body.appendChild(n),n}function ua(e){const t=pr(),n=r_(),r=i_(),s=s_();t&&(Object.assign(t.style,{...nf,...oa(e.bounds)}),Object.assign(n.style,{top:e.bounds.top<35?0:"-35px"}),r.innerHTML=`<${e.name}>  `,s.innerHTML=`${Math.round(e.bounds.width*100)/100} x ${Math.round(e.bounds.height*100)/100}`)}function o_(e){const t=jn(e),n=oi(e);pr()?ua({bounds:t,name:n}):aa({bounds:t,name:n})}function rf(){const e=pr();e&&(e.style.display="none")}var lo=null;function co(e){const t=e.target;if(t){const n=t.__vueParentComponent;if(n&&(lo=n,n.vnode.el)){const s=jn(n),i=oi(n);pr()?ua({bounds:s,name:i}):aa({bounds:s,name:i})}}}function a_(e,t){var n;if(e.preventDefault(),e.stopPropagation(),lo){const r=(n=ht.value)==null?void 0:n.app;Kp({app:r,uid:r.uid,instance:lo}).then(s=>{t(s)})}}var Ns=null;function u_(){rf(),window.removeEventListener("mouseover",co),window.removeEventListener("click",Ns,!0),Ns=null}function l_(){return window.addEventListener("mouseover",co),new Promise(e=>{function t(n){n.preventDefault(),n.stopPropagation(),a_(n,r=>{window.removeEventListener("click",t,!0),Ns=null,window.removeEventListener("mouseover",co);const s=pr();s&&(s.style.display="none"),e(JSON.stringify({id:r}))})}Ns=t,window.addEventListener("click",t,!0)})}function c_(e){const t=uo(ht.value,e.id);if(t){const[n]=ia(t);if(typeof n.scrollIntoView=="function")n.scrollIntoView({behavior:"smooth"});else{const r=jn(t),s=document.createElement("div"),i={...oa(r),position:"absolute"};Object.assign(s.style,i),document.body.appendChild(s),s.scrollIntoView({behavior:"smooth"}),setTimeout(()=>{document.body.removeChild(s)},2e3)}setTimeout(()=>{const r=jn(t);if(r.width||r.height){const s=oi(t),i=pr();i?ua({...e,name:s,bounds:r}):aa({...e,name:s,bounds:r}),setTimeout(()=>{i&&(i.style.display="none")},1500)}},1200)}}T();var Su,wu;(wu=(Su=$).__VUE_DEVTOOLS_COMPONENT_INSPECTOR_ENABLED__)!=null||(Su.__VUE_DEVTOOLS_COMPONENT_INSPECTOR_ENABLED__=!0);function f_(e){let t=0;const n=setInterval(()=>{$.__VUE_INSPECTOR__&&(clearInterval(n),t+=30,e()),t>=5e3&&clearInterval(n)},30)}function d_(){const e=$.__VUE_INSPECTOR__,t=e.openInEditor;e.openInEditor=async(...n)=>{e.disable(),t(...n)}}function h_(){return new Promise(e=>{function t(){d_(),e($.__VUE_INSPECTOR__)}$.__VUE_INSPECTOR__?t():f_(()=>{t()})})}T();T();T();var p_="__VUE_DEVTOOLS_KIT_TIMELINE_LAYERS_STATE__";function __(){if(!Wc||typeof localStorage>"u")return{recordingState:!1,mouseEventEnabled:!1,keyboardEventEnabled:!1,componentEventEnabled:!1,performanceEventEnabled:!1,selected:""};const e=localStorage.getItem(p_);return e?JSON.parse(e):{recordingState:!1,mouseEventEnabled:!1,keyboardEventEnabled:!1,componentEventEnabled:!1,performanceEventEnabled:!1,selected:""}}T();T();T();var xu,Tu;(Tu=(xu=$).__VUE_DEVTOOLS_KIT_TIMELINE_LAYERS)!=null||(xu.__VUE_DEVTOOLS_KIT_TIMELINE_LAYERS=[]);var m_=new Proxy($.__VUE_DEVTOOLS_KIT_TIMELINE_LAYERS,{get(e,t,n){return Reflect.get(e,t,n)}});function g_(e,t){m_.push({...e,descriptorId:t.id,appRecord:sa(t.app)})}var Du,Au;(Au=(Du=$).__VUE_DEVTOOLS_KIT_INSPECTOR__)!=null||(Du.__VUE_DEVTOOLS_KIT_INSPECTOR__=[]);var la=new Proxy($.__VUE_DEVTOOLS_KIT_INSPECTOR__,{get(e,t,n){return Reflect.get(e,t,n)}}),sf=ii(()=>{_r.hooks.callHook("sendInspectorToClient",of())});function v_(e,t){la.push({options:e,descriptor:t,treeFilter:"",selectedNodeId:"",appRecord:sa(t.app)}),sf()}function of(){return la.filter(e=>e.descriptor.app===ht.value.app).filter(e=>e.descriptor.id!=="components").map(e=>{var t;const n=e.descriptor,r=e.options;return{id:r.id,label:r.label,logo:n.logo,icon:`custom-ic-baseline-${(t=r==null?void 0:r.icon)==null?void 0:t.replace(/_/g,"-")}`,packageName:n.packageName,homepage:n.homepage,pluginId:n.id}})}function Es(e,t){return la.find(n=>n.options.id===e&&(t?n.descriptor.app===t:!0))}function y_(){const e=Kc();return e.hook("addInspector",({inspector:t,plugin:n})=>{v_(t,n.descriptor)}),e.hook("sendInspectorTree",async({inspectorId:t,plugin:n})=>{var r;if(!t||!((r=n==null?void 0:n.descriptor)!=null&&r.app))return;const s=Es(t,n.descriptor.app),i={app:n.descriptor.app,inspectorId:t,filter:(s==null?void 0:s.treeFilter)||"",rootNodes:[]};await new Promise(o=>{e.callHookWith(async a=>{await Promise.all(a.map(u=>u(i))),o()},"getInspectorTree")}),e.callHookWith(async o=>{await Promise.all(o.map(a=>a({inspectorId:t,rootNodes:i.rootNodes})))},"sendInspectorTreeToClient")}),e.hook("sendInspectorState",async({inspectorId:t,plugin:n})=>{var r;if(!t||!((r=n==null?void 0:n.descriptor)!=null&&r.app))return;const s=Es(t,n.descriptor.app),i={app:n.descriptor.app,inspectorId:t,nodeId:(s==null?void 0:s.selectedNodeId)||"",state:null},o={currentTab:`custom-inspector:${t}`};i.nodeId&&await new Promise(a=>{e.callHookWith(async u=>{await Promise.all(u.map(l=>l(i,o))),a()},"getInspectorState")}),e.callHookWith(async a=>{await Promise.all(a.map(u=>u({inspectorId:t,nodeId:i.nodeId,state:i.state})))},"sendInspectorStateToClient")}),e.hook("customInspectorSelectNode",({inspectorId:t,nodeId:n,plugin:r})=>{const s=Es(t,r.descriptor.app);s&&(s.selectedNodeId=n)}),e.hook("timelineLayerAdded",({options:t,plugin:n})=>{g_(t,n.descriptor)}),e.hook("timelineEventAdded",({options:t,plugin:n})=>{e.callHookWith(async r=>{await Promise.all(r.map(s=>s(t)))},"sendTimelineEventToClient")}),e.hook("getComponentInstances",async({app:t})=>{const n=t.__VUE_DEVTOOLS_NEXT_APP_RECORD__;if(!n)return null;const r=n.id.toString();return[...n.instanceMap].filter(([i])=>i.split(":")[0]===r).map(([,i])=>i)}),e.hook("getComponentBounds",async({instance:t})=>jn(t)),e.hook("getComponentName",({instance:t})=>oi(t)),e.hook("componentHighlight",({uid:t})=>{const n=ht.value.instanceMap.get(t);n&&o_(n)}),e.hook("componentUnhighlight",()=>{rf()}),e}var ku,Cu;(Cu=(ku=$).__VUE_DEVTOOLS_KIT_APP_RECORDS__)!=null||(ku.__VUE_DEVTOOLS_KIT_APP_RECORDS__=[]);var Mu,Fu;(Fu=(Mu=$).__VUE_DEVTOOLS_KIT_ACTIVE_APP_RECORD__)!=null||(Mu.__VUE_DEVTOOLS_KIT_ACTIVE_APP_RECORD__={});var Iu,Ru;(Ru=(Iu=$).__VUE_DEVTOOLS_KIT_ACTIVE_APP_RECORD_ID__)!=null||(Iu.__VUE_DEVTOOLS_KIT_ACTIVE_APP_RECORD_ID__="");var Pu,Vu;(Vu=(Pu=$).__VUE_DEVTOOLS_KIT_CUSTOM_TABS__)!=null||(Pu.__VUE_DEVTOOLS_KIT_CUSTOM_TABS__=[]);var Nu,Uu;(Uu=(Nu=$).__VUE_DEVTOOLS_KIT_CUSTOM_COMMANDS__)!=null||(Nu.__VUE_DEVTOOLS_KIT_CUSTOM_COMMANDS__=[]);var In="__VUE_DEVTOOLS_KIT_GLOBAL_STATE__";function E_(){return{connected:!1,clientConnected:!1,vitePluginDetected:!0,appRecords:[],activeAppRecordId:"",tabs:[],commands:[],highPerfModeEnabled:!0,devtoolsClientDetected:{},perfUniqueGroupId:0,timelineLayersState:__()}}var Lu,Yu;(Yu=(Lu=$)[In])!=null||(Lu[In]=E_());var b_=ii(e=>{_r.hooks.callHook("devtoolsStateUpdated",{state:e})});ii((e,t)=>{_r.hooks.callHook("devtoolsConnectedUpdated",{state:e,oldState:t})});var ai=new Proxy($.__VUE_DEVTOOLS_KIT_APP_RECORDS__,{get(e,t,n){return t==="value"?$.__VUE_DEVTOOLS_KIT_APP_RECORDS__:$.__VUE_DEVTOOLS_KIT_APP_RECORDS__[t]}}),ht=new Proxy($.__VUE_DEVTOOLS_KIT_ACTIVE_APP_RECORD__,{get(e,t,n){return t==="value"?$.__VUE_DEVTOOLS_KIT_ACTIVE_APP_RECORD__:t==="id"?$.__VUE_DEVTOOLS_KIT_ACTIVE_APP_RECORD_ID__:$.__VUE_DEVTOOLS_KIT_ACTIVE_APP_RECORD__[t]}});function af(){b_({...$[In],appRecords:ai.value,activeAppRecordId:ht.id,tabs:$.__VUE_DEVTOOLS_KIT_CUSTOM_TABS__,commands:$.__VUE_DEVTOOLS_KIT_CUSTOM_COMMANDS__})}function O_(e){$.__VUE_DEVTOOLS_KIT_ACTIVE_APP_RECORD__=e,af()}function S_(e){$.__VUE_DEVTOOLS_KIT_ACTIVE_APP_RECORD_ID__=e,af()}var Nn=new Proxy($[In],{get(e,t){return t==="appRecords"?ai:t==="activeAppRecordId"?ht.id:t==="tabs"?$.__VUE_DEVTOOLS_KIT_CUSTOM_TABS__:t==="commands"?$.__VUE_DEVTOOLS_KIT_CUSTOM_COMMANDS__:$[In][t]},deleteProperty(e,t){return delete e[t],!0},set(e,t,n){return{...$[In]},e[t]=n,$[In][t]=n,!0}});function w_(e={}){var t,n,r;const{file:s,host:i,baseUrl:o=window.location.origin,line:a=0,column:u=0}=e;if(s){if(i==="chrome-extension"){const l=s.replace(/\\/g,"\\\\"),c=(n=(t=window.VUE_DEVTOOLS_CONFIG)==null?void 0:t.openInEditorHost)!=null?n:"/";fetch(`${c}__open-in-editor?file=${encodeURI(s)}`).then(f=>{if(!f.ok){const g=`Opening component ${l} failed`;console.log(`%c${g}`,"color:red")}})}else if(Nn.vitePluginDetected){const l=(r=$.__VUE_DEVTOOLS_OPEN_IN_EDITOR_BASE_URL__)!=null?r:o;$.__VUE_INSPECTOR__.openInEditor(l,s,a,u)}}}T();T();T();T();T();var $u,ju;(ju=($u=$).__VUE_DEVTOOLS_KIT_PLUGIN_BUFFER__)!=null||($u.__VUE_DEVTOOLS_KIT_PLUGIN_BUFFER__=[]);var ca=new Proxy($.__VUE_DEVTOOLS_KIT_PLUGIN_BUFFER__,{get(e,t,n){return Reflect.get(e,t,n)}});function fo(e){const t={};return Object.keys(e).forEach(n=>{t[n]=e[n].defaultValue}),t}function fa(e){return`__VUE_DEVTOOLS_NEXT_PLUGIN_SETTINGS__${e}__`}function x_(e){var t,n,r;const s=(n=(t=ca.find(i=>{var o;return i[0].id===e&&!!((o=i[0])!=null&&o.settings)}))==null?void 0:t[0])!=null?n:null;return(r=s==null?void 0:s.settings)!=null?r:null}function uf(e,t){var n,r,s;const i=fa(e);if(i){const o=localStorage.getItem(i);if(o)return JSON.parse(o)}if(e){const o=(r=(n=ca.find(a=>a[0].id===e))==null?void 0:n[0])!=null?r:null;return fo((s=o==null?void 0:o.settings)!=null?s:{})}return fo(t)}function T_(e,t){const n=fa(e);localStorage.getItem(n)||localStorage.setItem(n,JSON.stringify(fo(t)))}function D_(e,t,n){const r=fa(e),s=localStorage.getItem(r),i=JSON.parse(s||"{}"),o={...i,[t]:n};localStorage.setItem(r,JSON.stringify(o)),_r.hooks.callHookWith(a=>{a.forEach(u=>u({pluginId:e,key:t,oldValue:i[t],newValue:n,settings:o}))},"setPluginSettings")}T();T();T();T();T();T();T();T();T();T();T();var Bu,Hu,gt=(Hu=(Bu=$).__VUE_DEVTOOLS_HOOK)!=null?Hu:Bu.__VUE_DEVTOOLS_HOOK=Kc(),A_={vueAppInit(e){gt.hook("app:init",e)},vueAppUnmount(e){gt.hook("app:unmount",e)},vueAppConnected(e){gt.hook("app:connected",e)},componentAdded(e){return gt.hook("component:added",e)},componentEmit(e){return gt.hook("component:emit",e)},componentUpdated(e){return gt.hook("component:updated",e)},componentRemoved(e){return gt.hook("component:removed",e)},setupDevtoolsPlugin(e){gt.hook("devtools-plugin:setup",e)},perfStart(e){return gt.hook("perf:start",e)},perfEnd(e){return gt.hook("perf:end",e)}},k_={on:A_,setupDevToolsPlugin(e,t){return gt.callHook("devtools-plugin:setup",e,t)}},C_=class{constructor({plugin:e,ctx:t}){this.hooks=t.hooks,this.plugin=e}get on(){return{visitComponentTree:e=>{this.hooks.hook("visitComponentTree",e)},inspectComponent:e=>{this.hooks.hook("inspectComponent",e)},editComponentState:e=>{this.hooks.hook("editComponentState",e)},getInspectorTree:e=>{this.hooks.hook("getInspectorTree",e)},getInspectorState:e=>{this.hooks.hook("getInspectorState",e)},editInspectorState:e=>{this.hooks.hook("editInspectorState",e)},inspectTimelineEvent:e=>{this.hooks.hook("inspectTimelineEvent",e)},timelineCleared:e=>{this.hooks.hook("timelineCleared",e)},setPluginSettings:e=>{this.hooks.hook("setPluginSettings",e)}}}notifyComponentUpdate(e){var t;const n=of().find(r=>r.packageName===this.plugin.descriptor.packageName);if(n!=null&&n.id){if(e){const r=[e.appContext.app,e.uid,(t=e.parent)==null?void 0:t.uid,e];gt.callHook("component:updated",...r)}else gt.callHook("component:updated");this.hooks.callHook("sendInspectorState",{inspectorId:n.id,plugin:this.plugin})}}addInspector(e){this.hooks.callHook("addInspector",{inspector:e,plugin:this.plugin}),this.plugin.descriptor.settings&&T_(e.id,this.plugin.descriptor.settings)}sendInspectorTree(e){this.hooks.callHook("sendInspectorTree",{inspectorId:e,plugin:this.plugin})}sendInspectorState(e){this.hooks.callHook("sendInspectorState",{inspectorId:e,plugin:this.plugin})}selectInspectorNode(e,t){this.hooks.callHook("customInspectorSelectNode",{inspectorId:e,nodeId:t,plugin:this.plugin})}now(){return Date.now()}addTimelineLayer(e){this.hooks.callHook("timelineLayerAdded",{options:e,plugin:this.plugin})}addTimelineEvent(e){this.hooks.callHook("timelineEventAdded",{options:e,plugin:this.plugin})}getSettings(e){return uf(e??this.plugin.descriptor.id,this.plugin.descriptor.settings)}getComponentInstances(e){return this.hooks.callHook("getComponentInstances",{app:e})}getComponentBounds(e){return this.hooks.callHook("getComponentBounds",{instance:e})}getComponentName(e){return this.hooks.callHook("getComponentName",{instance:e})}highlightElement(e){const t=e.__VUE_DEVTOOLS_NEXT_UID__;return this.hooks.callHook("componentHighlight",{uid:t})}unhighlightElement(){return this.hooks.callHook("componentUnhighlight")}},M_=C_;T();T();T();T();var F_="__vue_devtool_undefined__",I_="__vue_devtool_infinity__",R_="__vue_devtool_negative_infinity__",P_="__vue_devtool_nan__";T();T();var V_={[F_]:"undefined",[P_]:"NaN",[I_]:"Infinity",[R_]:"-Infinity"};Object.entries(V_).reduce((e,[t,n])=>(e[n]=t,e),{});T();T();T();T();T();var Wu,zu;(zu=(Wu=$).__VUE_DEVTOOLS_KIT__REGISTERED_PLUGIN_APPS__)!=null||(Wu.__VUE_DEVTOOLS_KIT__REGISTERED_PLUGIN_APPS__=new Set);function N_(e,t){const[n,r]=e;if(n.app!==t)return;const s=new M_({plugin:{setupFn:r,descriptor:n},ctx:_r});n.packageName==="vuex"&&s.on.editInspectorState(i=>{s.sendInspectorState(i.inspectorId)}),r(s)}function U_(e){$.__VUE_DEVTOOLS_KIT__REGISTERED_PLUGIN_APPS__.has(e)||($.__VUE_DEVTOOLS_KIT__REGISTERED_PLUGIN_APPS__.add(e),ca.forEach(t=>{N_(t,e)}))}T();T();var Wr="__VUE_DEVTOOLS_ROUTER__",fr="__VUE_DEVTOOLS_ROUTER_INFO__",Ku,Gu;(Gu=(Ku=$)[fr])!=null||(Ku[fr]={currentRoute:null,routes:[]});var qu,Zu;(Zu=(qu=$)[Wr])!=null||(qu[Wr]={});new Proxy($[fr],{get(e,t){return $[fr][t]}});new Proxy($[Wr],{get(e,t){if(t==="value")return $[Wr]}});function L_(e){const t=new Map;return((e==null?void 0:e.getRoutes())||[]).filter(n=>!t.has(n.path)&&t.set(n.path,1))}function da(e){return e.map(t=>{let{path:n,name:r,children:s,meta:i}=t;return s!=null&&s.length&&(s=da(s)),{path:n,name:r,children:s,meta:i}})}function Y_(e){if(e){const{fullPath:t,hash:n,href:r,path:s,name:i,matched:o,params:a,query:u}=e;return{fullPath:t,hash:n,href:r,path:s,name:i,params:a,query:u,matched:da(o)}}return e}function $_(e,t){function n(){var r;const s=(r=e.app)==null?void 0:r.config.globalProperties.$router,i=Y_(s==null?void 0:s.currentRoute.value),o=da(L_(s)),a=console.warn;console.warn=()=>{},$[fr]={currentRoute:i?Eu(i):{},routes:Eu(o)},$[Wr]=s,console.warn=a}n(),k_.on.componentUpdated(ii(()=>{var r;((r=t.value)==null?void 0:r.app)===e.app&&(n(),_r.hooks.callHook("routerInfoUpdated",{state:$[fr]}))},200))}function j_(e){return{async getInspectorTree(t){const n={...t,app:ht.value.app,rootNodes:[]};return await new Promise(r=>{e.callHookWith(async s=>{await Promise.all(s.map(i=>i(n))),r()},"getInspectorTree")}),n.rootNodes},async getInspectorState(t){const n={...t,app:ht.value.app,state:null},r={currentTab:`custom-inspector:${t.inspectorId}`};return await new Promise(s=>{e.callHookWith(async i=>{await Promise.all(i.map(o=>o(n,r))),s()},"getInspectorState")}),n.state},editInspectorState(t){const n=new Gp,r={...t,app:ht.value.app,set:(s,i=t.path,o=t.state.value,a)=>{n.set(s,i,o,a||n.createDefaultSetCallback(t.state))}};e.callHookWith(s=>{s.forEach(i=>i(r))},"editInspectorState")},sendInspectorState(t){const n=Es(t);e.callHook("sendInspectorState",{inspectorId:t,plugin:{descriptor:n.descriptor,setupFn:()=>({})}})},inspectComponentInspector(){return l_()},cancelInspectComponentInspector(){return u_()},getComponentRenderCode(t){const n=uo(ht.value,t);if(n)return(n==null?void 0:n.type)instanceof Function?n.type.toString():n.render.toString()},scrollToComponent(t){return c_({id:t})},openInEditor:w_,getVueInspector:h_,toggleApp(t){const n=ai.value.find(r=>r.id===t);n&&(S_(t),O_(n),$_(n,ht),sf(),U_(n.app))},inspectDOM(t){const n=uo(ht.value,t);if(n){const[r]=ia(n);r&&($.__VUE_DEVTOOLS_INSPECT_DOM_TARGET__=r)}},updatePluginSettings(t,n,r){D_(t,n,r)},getPluginSettings(t){return{options:x_(t),values:uf(t)}}}}T();var Ju,Xu;(Xu=(Ju=$).__VUE_DEVTOOLS_ENV__)!=null||(Ju.__VUE_DEVTOOLS_ENV__={vitePluginDetected:!1});var Qu=y_(),el,tl;(tl=(el=$).__VUE_DEVTOOLS_KIT_CONTEXT__)!=null||(el.__VUE_DEVTOOLS_KIT_CONTEXT__={hooks:Qu,get state(){return{...Nn,activeAppRecordId:ht.id,activeAppRecord:ht.value,appRecords:ai.value}},api:j_(Qu)});var _r=$.__VUE_DEVTOOLS_KIT_CONTEXT__;T();Yp(jp());var nl,rl;(rl=(nl=$).__VUE_DEVTOOLS_NEXT_APP_RECORD_INFO__)!=null||(nl.__VUE_DEVTOOLS_NEXT_APP_RECORD_INFO__={id:0,appIds:new Set});T();function B_(e){Nn.highPerfModeEnabled=e??!Nn.highPerfModeEnabled}T();T();T();function H_(e){Nn.devtoolsClientDetected={...Nn.devtoolsClientDetected,...e};const t=Object.values(Nn.devtoolsClientDetected).some(Boolean);B_(!t)}var sl,il;(il=(sl=$).__VUE_DEVTOOLS_UPDATE_CLIENT_DETECTED__)!=null||(sl.__VUE_DEVTOOLS_UPDATE_CLIENT_DETECTED__=H_);T();T();T();T();T();T();T();var W_=class{constructor(){this.keyToValue=new Map,this.valueToKey=new Map}set(e,t){this.keyToValue.set(e,t),this.valueToKey.set(t,e)}getByKey(e){return this.keyToValue.get(e)}getByValue(e){return this.valueToKey.get(e)}clear(){this.keyToValue.clear(),this.valueToKey.clear()}},lf=class{constructor(e){this.generateIdentifier=e,this.kv=new W_}register(e,t){this.kv.getByValue(e)||(t||(t=this.generateIdentifier(e)),this.kv.set(t,e))}clear(){this.kv.clear()}getIdentifier(e){return this.kv.getByValue(e)}getValue(e){return this.kv.getByKey(e)}},z_=class extends lf{constructor(){super(e=>e.name),this.classToAllowedProps=new Map}register(e,t){typeof t=="object"?(t.allowProps&&this.classToAllowedProps.set(e,t.allowProps),super.register(e,t.identifier)):super.register(e,t)}getAllowedProps(e){return this.classToAllowedProps.get(e)}};T();T();function K_(e){if("values"in Object)return Object.values(e);const t=[];for(const n in e)e.hasOwnProperty(n)&&t.push(e[n]);return t}function G_(e,t){const n=K_(e);if("find"in n)return n.find(t);const r=n;for(let s=0;st(r,n))}function bs(e,t){return e.indexOf(t)!==-1}function ol(e,t){for(let n=0;nt.isApplicable(e))}findByName(e){return this.transfomers[e]}};T();T();var Z_=e=>Object.prototype.toString.call(e).slice(8,-1),cf=e=>typeof e>"u",J_=e=>e===null,zr=e=>typeof e!="object"||e===null||e===Object.prototype?!1:Object.getPrototypeOf(e)===null?!0:Object.getPrototypeOf(e)===Object.prototype,ho=e=>zr(e)&&Object.keys(e).length===0,xn=e=>Array.isArray(e),X_=e=>typeof e=="string",Q_=e=>typeof e=="number"&&!isNaN(e),em=e=>typeof e=="boolean",tm=e=>e instanceof RegExp,Kr=e=>e instanceof Map,Gr=e=>e instanceof Set,ff=e=>Z_(e)==="Symbol",nm=e=>e instanceof Date&&!isNaN(e.valueOf()),rm=e=>e instanceof Error,al=e=>typeof e=="number"&&isNaN(e),sm=e=>em(e)||J_(e)||cf(e)||Q_(e)||X_(e)||ff(e),im=e=>typeof e=="bigint",om=e=>e===1/0||e===-1/0,am=e=>ArrayBuffer.isView(e)&&!(e instanceof DataView),um=e=>e instanceof URL;T();var df=e=>e.replace(/\./g,"\\."),$i=e=>e.map(String).map(df).join("."),Nr=e=>{const t=[];let n="";for(let s=0;snull,()=>{}),Yt(im,"bigint",e=>e.toString(),e=>typeof BigInt<"u"?BigInt(e):(console.error("Please add a BigInt polyfill."),e)),Yt(nm,"Date",e=>e.toISOString(),e=>new Date(e)),Yt(rm,"Error",(e,t)=>{const n={name:e.name,message:e.message};return t.allowedErrorProps.forEach(r=>{n[r]=e[r]}),n},(e,t)=>{const n=new Error(e.message);return n.name=e.name,n.stack=e.stack,t.allowedErrorProps.forEach(r=>{n[r]=e[r]}),n}),Yt(tm,"regexp",e=>""+e,e=>{const t=e.slice(1,e.lastIndexOf("/")),n=e.slice(e.lastIndexOf("/")+1);return new RegExp(t,n)}),Yt(Gr,"set",e=>[...e.values()],e=>new Set(e)),Yt(Kr,"map",e=>[...e.entries()],e=>new Map(e)),Yt(e=>al(e)||om(e),"number",e=>al(e)?"NaN":e>0?"Infinity":"-Infinity",Number),Yt(e=>e===0&&1/e===-1/0,"number",()=>"-0",Number),Yt(um,"URL",e=>e.toString(),e=>new URL(e))];function ui(e,t,n,r){return{isApplicable:e,annotation:t,transform:n,untransform:r}}var pf=ui((e,t)=>ff(e)?!!t.symbolRegistry.getIdentifier(e):!1,(e,t)=>["symbol",t.symbolRegistry.getIdentifier(e)],e=>e.description,(e,t,n)=>{const r=n.symbolRegistry.getValue(t[1]);if(!r)throw new Error("Trying to deserialize unknown symbol");return r}),lm=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,Uint8ClampedArray].reduce((e,t)=>(e[t.name]=t,e),{}),_f=ui(am,e=>["typed-array",e.constructor.name],e=>[...e],(e,t)=>{const n=lm[t[1]];if(!n)throw new Error("Trying to deserialize unknown typed array");return new n(e)});function mf(e,t){return e!=null&&e.constructor?!!t.classRegistry.getIdentifier(e.constructor):!1}var gf=ui(mf,(e,t)=>["class",t.classRegistry.getIdentifier(e.constructor)],(e,t)=>{const n=t.classRegistry.getAllowedProps(e.constructor);if(!n)return{...e};const r={};return n.forEach(s=>{r[s]=e[s]}),r},(e,t,n)=>{const r=n.classRegistry.getValue(t[1]);if(!r)throw new Error("Trying to deserialize unknown class - check https://github.com/blitz-js/superjson/issues/116#issuecomment-773996564");return Object.assign(Object.create(r.prototype),e)}),vf=ui((e,t)=>!!t.customTransformerRegistry.findApplicable(e),(e,t)=>["custom",t.customTransformerRegistry.findApplicable(e).name],(e,t)=>t.customTransformerRegistry.findApplicable(e).serialize(e),(e,t,n)=>{const r=n.customTransformerRegistry.findByName(t[1]);if(!r)throw new Error("Trying to deserialize unknown custom value");return r.deserialize(e)}),cm=[gf,pf,vf,_f],ul=(e,t)=>{const n=ol(cm,s=>s.isApplicable(e,t));if(n)return{value:n.transform(e,t),type:n.annotation(e,t)};const r=ol(hf,s=>s.isApplicable(e,t));if(r)return{value:r.transform(e,t),type:r.annotation}},yf={};hf.forEach(e=>{yf[e.annotation]=e});var fm=(e,t,n)=>{if(xn(t))switch(t[0]){case"symbol":return pf.untransform(e,t,n);case"class":return gf.untransform(e,t,n);case"custom":return vf.untransform(e,t,n);case"typed-array":return _f.untransform(e,t,n);default:throw new Error("Unknown transformation: "+t)}else{const r=yf[t];if(!r)throw new Error("Unknown transformation: "+t);return r.untransform(e,n)}};T();var er=(e,t)=>{const n=e.keys();for(;t>0;)n.next(),t--;return n.next().value};function Ef(e){if(bs(e,"__proto__"))throw new Error("__proto__ is not allowed as a property");if(bs(e,"prototype"))throw new Error("prototype is not allowed as a property");if(bs(e,"constructor"))throw new Error("constructor is not allowed as a property")}var dm=(e,t)=>{Ef(t);for(let n=0;n{if(Ef(t),t.length===0)return n(e);let r=e;for(let i=0;i_o(i,t,[...n,...Nr(o)]));return}const[r,s]=e;s&&dr(s,(i,o)=>{_o(i,t,[...n,...Nr(o)])}),t(r,n)}function hm(e,t,n){return _o(t,(r,s)=>{e=po(e,s,i=>fm(i,r,n))}),e}function pm(e,t){function n(r,s){const i=dm(e,Nr(s));r.map(Nr).forEach(o=>{e=po(e,o,()=>i)})}if(xn(t)){const[r,s]=t;r.forEach(i=>{e=po(e,Nr(i),()=>e)}),s&&dr(s,n)}else dr(t,n);return e}var _m=(e,t)=>zr(e)||xn(e)||Kr(e)||Gr(e)||mf(e,t);function mm(e,t,n){const r=n.get(e);r?r.push(t):n.set(e,[t])}function gm(e,t){const n={};let r;return e.forEach(s=>{if(s.length<=1)return;t||(s=s.map(a=>a.map(String)).sort((a,u)=>a.length-u.length));const[i,...o]=s;i.length===0?r=o.map($i):n[$i(i)]=o.map($i)}),r?ho(n)?[r]:[r,n]:ho(n)?void 0:n}var bf=(e,t,n,r,s=[],i=[],o=new Map)=>{var a;const u=sm(e);if(!u){mm(e,s,t);const v=o.get(e);if(v)return r?{transformedValue:null}:v}if(!_m(e,n)){const v=ul(e,n),w=v?{transformedValue:v.value,annotations:[v.type]}:{transformedValue:e};return u||o.set(e,w),w}if(bs(i,e))return{transformedValue:null};const l=ul(e,n),c=(a=l==null?void 0:l.value)!=null?a:e,f=xn(c)?[]:{},g={};dr(c,(v,w)=>{if(w==="__proto__"||w==="constructor"||w==="prototype")throw new Error(`Detected property ${w}. This is a prototype pollution risk, please remove it from your object.`);const E=bf(v,t,n,r,[...s,w],[...i,e],o);f[w]=E.transformedValue,xn(E.annotations)?g[w]=E.annotations:zr(E.annotations)&&dr(E.annotations,(O,P)=>{g[df(w)+"."+P]=O})});const p=ho(g)?{transformedValue:f,annotations:l?[l.type]:void 0}:{transformedValue:f,annotations:l?[l.type,g]:g};return u||o.set(e,p),p};T();T();function Of(e){return Object.prototype.toString.call(e).slice(8,-1)}function ll(e){return Of(e)==="Array"}function vm(e){if(Of(e)!=="Object")return!1;const t=Object.getPrototypeOf(e);return!!t&&t.constructor===Object&&t===Object.prototype}function ym(e,t,n,r,s){const i={}.propertyIsEnumerable.call(r,t)?"enumerable":"nonenumerable";i==="enumerable"&&(e[t]=n),s&&i==="nonenumerable"&&Object.defineProperty(e,t,{value:n,enumerable:!1,writable:!0,configurable:!0})}function mo(e,t={}){if(ll(e))return e.map(s=>mo(s,t));if(!vm(e))return e;const n=Object.getOwnPropertyNames(e),r=Object.getOwnPropertySymbols(e);return[...n,...r].reduce((s,i)=>{if(ll(t.props)&&!t.props.includes(i))return s;const o=e[i],a=mo(o,t);return ym(s,i,a,e,t.nonenumerable),s},{})}var Ce=class{constructor({dedupe:e=!1}={}){this.classRegistry=new z_,this.symbolRegistry=new lf(t=>{var n;return(n=t.description)!=null?n:""}),this.customTransformerRegistry=new q_,this.allowedErrorProps=[],this.dedupe=e}serialize(e){const t=new Map,n=bf(e,t,this,this.dedupe),r={json:n.transformedValue};n.annotations&&(r.meta={...r.meta,values:n.annotations});const s=gm(t,this.dedupe);return s&&(r.meta={...r.meta,referentialEqualities:s}),r}deserialize(e){const{json:t,meta:n}=e;let r=mo(t);return n!=null&&n.values&&(r=hm(r,n.values,this)),n!=null&&n.referentialEqualities&&(r=pm(r,n.referentialEqualities)),r}stringify(e){return JSON.stringify(this.serialize(e))}parse(e){return this.deserialize(JSON.parse(e))}registerClass(e,t){this.classRegistry.register(e,t)}registerSymbol(e,t){this.symbolRegistry.register(e,t)}registerCustom(e,t){this.customTransformerRegistry.register({name:t,...e})}allowErrorProps(...e){this.allowedErrorProps.push(...e)}};Ce.defaultInstance=new Ce;Ce.serialize=Ce.defaultInstance.serialize.bind(Ce.defaultInstance);Ce.deserialize=Ce.defaultInstance.deserialize.bind(Ce.defaultInstance);Ce.stringify=Ce.defaultInstance.stringify.bind(Ce.defaultInstance);Ce.parse=Ce.defaultInstance.parse.bind(Ce.defaultInstance);Ce.registerClass=Ce.defaultInstance.registerClass.bind(Ce.defaultInstance);Ce.registerSymbol=Ce.defaultInstance.registerSymbol.bind(Ce.defaultInstance);Ce.registerCustom=Ce.defaultInstance.registerCustom.bind(Ce.defaultInstance);Ce.allowErrorProps=Ce.defaultInstance.allowErrorProps.bind(Ce.defaultInstance);T();T();T();T();T();T();T();T();T();T();T();T();T();T();T();T();T();T();T();T();T();T();T();var cl,fl;(fl=(cl=$).__VUE_DEVTOOLS_KIT_MESSAGE_CHANNELS__)!=null||(cl.__VUE_DEVTOOLS_KIT_MESSAGE_CHANNELS__=[]);var dl,hl;(hl=(dl=$).__VUE_DEVTOOLS_KIT_RPC_CLIENT__)!=null||(dl.__VUE_DEVTOOLS_KIT_RPC_CLIENT__=null);var pl,_l;(_l=(pl=$).__VUE_DEVTOOLS_KIT_RPC_SERVER__)!=null||(pl.__VUE_DEVTOOLS_KIT_RPC_SERVER__=null);var ml,gl;(gl=(ml=$).__VUE_DEVTOOLS_KIT_VITE_RPC_CLIENT__)!=null||(ml.__VUE_DEVTOOLS_KIT_VITE_RPC_CLIENT__=null);var vl,yl;(yl=(vl=$).__VUE_DEVTOOLS_KIT_VITE_RPC_SERVER__)!=null||(vl.__VUE_DEVTOOLS_KIT_VITE_RPC_SERVER__=null);var El,bl;(bl=(El=$).__VUE_DEVTOOLS_KIT_BROADCAST_RPC_SERVER__)!=null||(El.__VUE_DEVTOOLS_KIT_BROADCAST_RPC_SERVER__=null);T();T();T();T();T();T();T();/** - * vee-validate v4.14.3 - * (c) 2024 Abdelrahman Awad - * @license MIT - */function Je(e){return typeof e=="function"}function Sf(e){return e==null}const Bn=e=>e!==null&&!!e&&typeof e=="object"&&!Array.isArray(e);function ha(e){return Number(e)>=0}function Em(e){const t=parseFloat(e);return isNaN(t)?e:t}function bm(e){return typeof e=="object"&&e!==null}function Om(e){return e==null?e===void 0?"[object Undefined]":"[object Null]":Object.prototype.toString.call(e)}function Ol(e){if(!bm(e)||Om(e)!=="[object Object]")return!1;if(Object.getPrototypeOf(e)===null)return!0;let t=e;for(;Object.getPrototypeOf(t)!==null;)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t}function qr(e,t){return Object.keys(t).forEach(n=>{if(Ol(t[n])&&Ol(e[n])){e[n]||(e[n]={}),qr(e[n],t[n]);return}e[n]=t[n]}),e}function Ar(e){const t=e.split(".");if(!t.length)return"";let n=String(t[0]);for(let r=1;rAm(s)&&i in s?s[i]:n,e):n}function tn(e,t,n){if(ci(t)){e[_a(t)]=n;return}const r=t.split(/\.|\[(\d+)\]/).filter(Boolean);let s=e;for(let i=0;i_t(e,n.slice(0,o).join(".")));for(let i=s.length-1;i>=0;i--)if(km(s[i])){if(i===0){ji(e,n[0]);continue}ji(s[i-1],n[i-1])}}function yt(e){return Object.keys(e)}function Tf(e,t=void 0){const n=si();return(n==null?void 0:n.provides[e])||or(e,t)}function Dl(e,t,n){if(Array.isArray(e)){const r=[...e],s=r.findIndex(i=>at(i,t));return s>=0?r.splice(s,1):r.push(t),r}return at(e,t)?n:t}function Al(e,t=0){let n=null,r=[];return function(...s){return n&&clearTimeout(n),n=setTimeout(()=>{const i=e(...s);r.forEach(o=>o(i)),r=[]},t),new Promise(i=>r.push(i))}}function Im(e,t){return Bn(t)&&t.number?Em(e):e}function vo(e,t){let n;return async function(...s){const i=e(...s);n=i;const o=await i;return i!==n?o:(n=void 0,t(o,s))}}function yo(e){return Array.isArray(e)?e:e?[e]:[]}function hs(e,t){const n={};for(const r in e)t.includes(r)||(n[r]=e[r]);return n}function Rm(e){let t=null,n=[];return function(...r){const s=Ct(()=>{if(t!==s)return;const i=e(...r);n.forEach(o=>o(i)),n=[],t=null});return t=s,new Promise(i=>n.push(i))}}function ma(e,t,n){return t.slots.default?typeof e=="string"||!e?t.slots.default(n()):{default:()=>{var r,s;return(s=(r=t.slots).default)===null||s===void 0?void 0:s.call(r,n())}}:t.slots.default}function Bi(e){if(Df(e))return e._value}function Df(e){return"_value"in e}function Pm(e){return e.type==="number"||e.type==="range"?Number.isNaN(e.valueAsNumber)?e.value:e.valueAsNumber:e.value}function Ys(e){if(!pa(e))return e;const t=e.target;if(rs(t.type)&&Df(t))return Bi(t);if(t.type==="file"&&t.files){const n=Array.from(t.files);return t.multiple?n:n[0]}if(Cm(t))return Array.from(t.options).filter(n=>n.selected&&!n.disabled).map(Bi);if(wf(t)){const n=Array.from(t.options).find(r=>r.selected);return n?Bi(n):t.value}return Pm(t)}function Af(e){const t={};return Object.defineProperty(t,"_$$isNormalized",{value:!0,writable:!1,enumerable:!1,configurable:!1}),e?Bn(e)&&e._$$isNormalized?e:Bn(e)?Object.keys(e).reduce((n,r)=>{const s=Vm(e[r]);return e[r]!==!1&&(n[r]=kl(s)),n},t):typeof e!="string"?t:e.split("|").reduce((n,r)=>{const s=Nm(r);return s.name&&(n[s.name]=kl(s.params)),n},t):t}function Vm(e){return e===!0?[]:Array.isArray(e)||Bn(e)?e:[e]}function kl(e){const t=n=>typeof n=="string"&&n[0]==="@"?Um(n.slice(1)):n;return Array.isArray(e)?e.map(t):e instanceof RegExp?[e]:Object.keys(e).reduce((n,r)=>(n[r]=t(e[r]),n),{})}const Nm=e=>{let t=[];const n=e.split(":")[0];return e.includes(":")&&(t=e.split(":").slice(1).join(":").split(",")),{name:n,params:t}};function Um(e){const t=n=>{var r;return(r=_t(n,e))!==null&&r!==void 0?r:n[e]};return t.__locatorRef=e,t}function Lm(e){return Array.isArray(e)?e.filter(go):yt(e).filter(t=>go(e[t])).map(t=>e[t])}const Ym={generateMessage:({field:e})=>`${e} is not valid.`,bails:!0,validateOnBlur:!0,validateOnChange:!0,validateOnInput:!1,validateOnModelUpdate:!0};let $m=Object.assign({},Ym);const Rn=()=>$m;async function kf(e,t,n={}){const r=n==null?void 0:n.bails,s={name:(n==null?void 0:n.name)||"{field}",rules:t,label:n==null?void 0:n.label,bails:r??!0,formData:(n==null?void 0:n.values)||{}},i=await jm(s,e);return Object.assign(Object.assign({},i),{valid:!i.errors.length})}async function jm(e,t){const n=e.rules;if(Mt(n)||Ls(n))return Hm(t,Object.assign(Object.assign({},e),{rules:n}));if(Je(n)||Array.isArray(n)){const a={field:e.label||e.name,name:e.name,label:e.label,form:e.formData,value:t},u=Array.isArray(n)?n:[n],l=u.length,c=[];for(let f=0;f{const l=u.path||"";return a[l]||(a[l]={errors:[],path:l}),a[l].errors.push(...u.errors),a},{});return{errors:Object.values(o)}}}}}async function Hm(e,t){const r=await(Mt(t.rules)?t.rules:Cf(t.rules)).parse(e,{formData:t.formData}),s=[];for(const i of r.errors)i.errors.length&&s.push(...i.errors);return{value:r.value,errors:s}}async function Wm(e,t,n){const r=wm(n.name);if(!r)throw new Error(`No such validator '${n.name}' exists.`);const s=zm(n.params,e.formData),i={field:e.label||e.name,name:e.name,label:e.label,value:t,form:e.formData,rule:Object.assign(Object.assign({},n),{params:s})},o=await r(t,s,i);return typeof o=="string"?{error:o}:{error:o?void 0:Mf(i)}}function Mf(e){const t=Rn().generateMessage;return t?t(e):"Field is invalid"}function zm(e,t){const n=r=>go(r)?r(t):r;return Array.isArray(e)?e.map(n):Object.keys(e).reduce((r,s)=>(r[s]=n(e[s]),r),{})}async function Km(e,t){const r=await(Mt(e)?e:Cf(e)).parse(Ee(t),{formData:Ee(t)}),s={},i={};for(const o of r.errors){const a=o.errors,u=(o.path||"").replace(/\["(\d+)"\]/g,(l,c)=>`[${c}]`);s[u]={valid:!a.length,errors:a},a.length&&(i[u]=a[0])}return{valid:!r.errors.length,results:s,errors:i,values:r.value,source:"schema"}}async function Gm(e,t,n){const s=yt(e).map(async l=>{var c,f,g;const p=(c=n==null?void 0:n.names)===null||c===void 0?void 0:c[l],v=await kf(_t(t,l),e[l],{name:(p==null?void 0:p.name)||l,label:p==null?void 0:p.label,values:t,bails:(g=(f=n==null?void 0:n.bailsMap)===null||f===void 0?void 0:f[l])!==null&&g!==void 0?g:!0});return Object.assign(Object.assign({},v),{path:l})});let i=!0;const o=await Promise.all(s),a={},u={};for(const l of o)a[l.path]={valid:l.valid,errors:l.errors},l.valid||(i=!1,u[l.path]=l.errors[0]);return{valid:i,results:a,errors:u,source:"schema"}}let Cl=0;function qm(e,t){const{value:n,initialValue:r,setInitialValue:s}=Zm(e,t.modelValue,t.form);if(!t.form){let u=function(p){var v;"value"in p&&(n.value=p.value),"errors"in p&&c(p.errors),"touched"in p&&(g.touched=(v=p.touched)!==null&&v!==void 0?v:g.touched),"initialValue"in p&&s(p.initialValue)};const{errors:l,setErrors:c}=Qm(),f=Cl>=Number.MAX_SAFE_INTEGER?0:++Cl,g=Xm(n,r,l,t.schema);return{id:f,path:e,value:n,initialValue:r,meta:g,flags:{pendingUnmount:{[f]:!1},pendingReset:!1},errors:l,setState:u}}const i=t.form.createPathState(e,{bails:t.bails,label:t.label,type:t.type,validate:t.validate,schema:t.schema}),o=me(()=>i.errors);function a(u){var l,c,f;"value"in u&&(n.value=u.value),"errors"in u&&((l=t.form)===null||l===void 0||l.setFieldError(re(e),u.errors)),"touched"in u&&((c=t.form)===null||c===void 0||c.setFieldTouched(re(e),(f=u.touched)!==null&&f!==void 0?f:!1)),"initialValue"in u&&s(u.initialValue)}return{id:Array.isArray(i.id)?i.id[i.id.length-1]:i.id,path:e,value:n,errors:o,meta:i,initialValue:r,flags:i.__flags,setState:a}}function Zm(e,t,n){const r=wt(re(t));function s(){return n?_t(n.initialValues.value,re(e),re(r)):re(r)}function i(l){if(!n){r.value=l;return}n.setFieldInitialValue(re(e),l,!0)}const o=me(s);if(!n)return{value:wt(s()),initialValue:o,setInitialValue:i};const a=Jm(t,n,o,e);return n.stageInitialValue(re(e),a,!0),{value:me({get(){return _t(n.values,re(e))},set(l){n.setFieldValue(re(e),l,!1)}}),initialValue:o,setInitialValue:i}}function Jm(e,t,n,r){return Be(e)?re(e):e!==void 0?e:_t(t.values,re(r),re(n))}function Xm(e,t,n,r){const s=me(()=>{var o,a,u;return(u=(a=(o=de(r))===null||o===void 0?void 0:o.describe)===null||a===void 0?void 0:a.call(o).required)!==null&&u!==void 0?u:!1}),i=Yn({touched:!1,pending:!1,valid:!0,required:s,validated:!!re(n).length,initialValue:me(()=>re(t)),dirty:me(()=>!at(re(e),re(t)))});return zt(n,o=>{i.valid=!o.length},{immediate:!0,flush:"sync"}),i}function Qm(){const e=wt([]);return{errors:e,setErrors:t=>{e.value=yo(t)}}}function eg(e,t,n){return rs(n==null?void 0:n.type)?ng(e,t,n):Ff(e,t,n)}function Ff(e,t,n){const{initialValue:r,validateOnMount:s,bails:i,type:o,checkedValue:a,label:u,validateOnValueUpdate:l,uncheckedValue:c,controlled:f,keepValueOnUnmount:g,syncVModel:p,form:v}=tg(n),w=f?Tf(li):void 0,E=v||w,O=me(()=>Ar(de(e))),P=me(()=>{if(de(E==null?void 0:E.schema))return;const X=re(t);return Ls(X)||Mt(X)||Je(X)||Array.isArray(X)?X:Af(X)}),j=!Je(P.value)&&Mt(de(t)),{id:V,value:Z,initialValue:oe,meta:ae,setState:De,errors:ue,flags:ne}=qm(O,{modelValue:r,form:E,bails:i,label:u,type:o,validate:P.value?W:void 0,schema:j?t:void 0}),te=me(()=>ue.value[0]);p&&rg({value:Z,prop:p,handleChange:C,shouldValidate:()=>l&&!ne.pendingReset});const Pe=(U,X=!1)=>{ae.touched=!0,X&&Oe()};async function Ue(U){var X,Ye;if(E!=null&&E.validateSchema){const{results:pe}=await E.validateSchema(U);return(X=pe[de(O)])!==null&&X!==void 0?X:{valid:!0,errors:[]}}return P.value?kf(Z.value,P.value,{name:de(O),label:de(u),values:(Ye=E==null?void 0:E.values)!==null&&Ye!==void 0?Ye:{},bails:i}):{valid:!0,errors:[]}}const Oe=vo(async()=>(ae.pending=!0,ae.validated=!0,Ue("validated-only")),U=>(ne.pendingUnmount[Ge.id]||(De({errors:U.errors}),ae.pending=!1,ae.valid=U.valid),U)),je=vo(async()=>Ue("silent"),U=>(ae.valid=U.valid,U));function W(U){return(U==null?void 0:U.mode)==="silent"?je():Oe()}function C(U,X=!0){const Ye=Ys(U);Le(Ye,X)}ti(()=>{if(s)return Oe();(!E||!E.validateSchema)&&je()});function J(U){ae.touched=U}function Te(U){var X;const Ye=U&&"value"in U?U.value:oe.value;De({value:Ee(Ye),initialValue:Ee(Ye),touched:(X=U==null?void 0:U.touched)!==null&&X!==void 0?X:!1,errors:(U==null?void 0:U.errors)||[]}),ae.pending=!1,ae.validated=!1,je()}const Xe=si();function Le(U,X=!0){Z.value=Xe&&p?Im(U,Xe.props.modelModifiers):U,(X?Oe:je)()}function Me(U){De({errors:Array.isArray(U)?U:[U]})}const ut=me({get(){return Z.value},set(U){Le(U,l)}}),Ge={id:V,name:O,label:u,value:ut,meta:ae,errors:ue,errorMessage:te,type:o,checkedValue:a,uncheckedValue:c,bails:i,keepValueOnUnmount:g,resetField:Te,handleReset:()=>Te(),validate:W,handleChange:C,handleBlur:Pe,setState:De,setTouched:J,setErrors:Me,setValue:Le};if(Is(Tm,Ge),Be(t)&&typeof re(t)!="function"&&zt(t,(U,X)=>{at(U,X)||(ae.validated?Oe():je())},{deep:!0}),!E)return Ge;const Jt=me(()=>{const U=P.value;return!U||Je(U)||Ls(U)||Mt(U)||Array.isArray(U)?{}:Object.keys(U).reduce((X,Ye)=>{const pe=Lm(U[Ye]).map(rt=>rt.__locatorRef).reduce((rt,lt)=>{const Ot=_t(E.values,lt)||E.values[lt];return Ot!==void 0&&(rt[lt]=Ot),rt},{});return Object.assign(X,pe),X},{})});return zt(Jt,(U,X)=>{if(!Object.keys(U).length)return;!at(U,X)&&(ae.validated?Oe():je())}),yc(()=>{var U;const X=(U=de(Ge.keepValueOnUnmount))!==null&&U!==void 0?U:de(E.keepValuesOnUnmount),Ye=de(O);if(X||!E||ne.pendingUnmount[Ge.id]){E==null||E.removePathState(Ye,V);return}ne.pendingUnmount[Ge.id]=!0;const pe=E.getPathState(Ye);if(Array.isArray(pe==null?void 0:pe.id)&&(pe!=null&&pe.multiple)?pe!=null&&pe.id.includes(Ge.id):(pe==null?void 0:pe.id)===Ge.id){if(pe!=null&&pe.multiple&&Array.isArray(pe.value)){const lt=pe.value.findIndex(Ot=>at(Ot,de(Ge.checkedValue)));if(lt>-1){const Ot=[...pe.value];Ot.splice(lt,1),E.setFieldValue(Ye,Ot)}Array.isArray(pe.id)&&pe.id.splice(pe.id.indexOf(Ge.id),1)}else E.unsetPathValue(de(O));E.removePathState(Ye,V)}}),Ge}function tg(e){const t=()=>({initialValue:void 0,validateOnMount:!1,bails:!0,label:void 0,validateOnValueUpdate:!0,keepValueOnUnmount:void 0,syncVModel:!1,controlled:!0}),n=!!(e!=null&&e.syncVModel),r=typeof(e==null?void 0:e.syncVModel)=="string"?e.syncVModel:(e==null?void 0:e.modelPropName)||"modelValue",s=n&&!("initialValue"in(e||{}))?Eo(si(),r):e==null?void 0:e.initialValue;if(!e)return Object.assign(Object.assign({},t()),{initialValue:s});const i="valueProp"in e?e.valueProp:e.checkedValue,o="standalone"in e?!e.standalone:e.controlled,a=(e==null?void 0:e.modelPropName)||(e==null?void 0:e.syncVModel)||!1;return Object.assign(Object.assign(Object.assign({},t()),e||{}),{initialValue:s,controlled:o??!0,checkedValue:i,syncVModel:a})}function ng(e,t,n){const r=n!=null&&n.standalone?void 0:Tf(li),s=n==null?void 0:n.checkedValue,i=n==null?void 0:n.uncheckedValue;function o(a){const u=a.handleChange,l=me(()=>{const f=de(a.value),g=de(s);return Array.isArray(f)?f.findIndex(p=>at(p,g))>=0:at(g,f)});function c(f,g=!0){var p,v;if(l.value===((p=f==null?void 0:f.target)===null||p===void 0?void 0:p.checked)){g&&a.validate();return}const w=de(e),E=r==null?void 0:r.getPathState(w),O=Ys(f);let P=(v=de(s))!==null&&v!==void 0?v:O;r&&(E!=null&&E.multiple)&&E.type==="checkbox"?P=Dl(_t(r.values,w)||[],P,void 0):(n==null?void 0:n.type)==="checkbox"&&(P=Dl(de(a.value),P,de(i))),u(P,g)}return Object.assign(Object.assign({},a),{checked:l,checkedValue:s,uncheckedValue:i,handleChange:c})}return o(Ff(e,t,n))}function rg({prop:e,value:t,handleChange:n,shouldValidate:r}){const s=si();if(!s||!e)return;const i=typeof e=="string"?e:"modelValue",o=`update:${i}`;i in s.props&&(zt(t,a=>{at(a,Eo(s,i))||s.emit(o,a)}),zt(()=>Eo(s,i),a=>{if(a===Us&&t.value===void 0)return;const u=a===Us?void 0:a;at(u,t.value)||n(u,r())}))}function Eo(e,t){if(e)return e.props[t]}const sg=qo({name:"Field",inheritAttrs:!1,props:{as:{type:[String,Object],default:void 0},name:{type:String,required:!0},rules:{type:[Object,String,Function],default:void 0},validateOnMount:{type:Boolean,default:!1},validateOnBlur:{type:Boolean,default:void 0},validateOnChange:{type:Boolean,default:void 0},validateOnInput:{type:Boolean,default:void 0},validateOnModelUpdate:{type:Boolean,default:void 0},bails:{type:Boolean,default:()=>Rn().bails},label:{type:String,default:void 0},uncheckedValue:{type:null,default:void 0},modelValue:{type:null,default:Us},modelModifiers:{type:null,default:()=>({})},"onUpdate:modelValue":{type:null,default:void 0},standalone:{type:Boolean,default:!1},keepValue:{type:Boolean,default:void 0}},setup(e,t){const n=Fn(e,"rules"),r=Fn(e,"name"),s=Fn(e,"label"),i=Fn(e,"uncheckedValue"),o=Fn(e,"keepValue"),{errors:a,value:u,errorMessage:l,validate:c,handleChange:f,handleBlur:g,setTouched:p,resetField:v,handleReset:w,meta:E,checked:O,setErrors:P,setValue:j}=eg(r,n,{validateOnMount:e.validateOnMount,bails:e.bails,standalone:e.standalone,type:t.attrs.type,initialValue:og(e,t),checkedValue:t.attrs.value,uncheckedValue:i,label:s,validateOnValueUpdate:e.validateOnModelUpdate,keepValueOnUnmount:o,syncVModel:!0}),V=function(ne,te=!0){f(ne,te)},Z=me(()=>{const{validateOnInput:ue,validateOnChange:ne,validateOnBlur:te,validateOnModelUpdate:Pe}=ig(e);function Ue(C){g(C,te),Je(t.attrs.onBlur)&&t.attrs.onBlur(C)}function Oe(C){V(C,ue),Je(t.attrs.onInput)&&t.attrs.onInput(C)}function je(C){V(C,ne),Je(t.attrs.onChange)&&t.attrs.onChange(C)}const W={name:e.name,onBlur:Ue,onInput:Oe,onChange:je};return W["onUpdate:modelValue"]=C=>V(C,Pe),W}),oe=me(()=>{const ue=Object.assign({},Z.value);rs(t.attrs.type)&&O&&(ue.checked=O.value);const ne=Ml(e,t);return Fm(ne,t.attrs)&&(ue.value=u.value),ue}),ae=me(()=>Object.assign(Object.assign({},Z.value),{modelValue:u.value}));function De(){return{field:oe.value,componentField:ae.value,value:u.value,meta:E,errors:a.value,errorMessage:l.value,validate:c,resetField:v,handleChange:V,handleInput:ue=>V(ue,!1),handleReset:w,handleBlur:Z.value.onBlur,setTouched:p,setErrors:P,setValue:j}}return t.expose({value:u,meta:E,errors:a,errorMessage:l,setErrors:P,setTouched:p,setValue:j,reset:v,validate:c,handleChange:f}),()=>{const ue=Zo(Ml(e,t)),ne=ma(ue,t,De);return ue?Vs(ue,Object.assign(Object.assign({},t.attrs),oe.value),ne):ne}}});function Ml(e,t){let n=e.as||"";return!e.as&&!t.slots.default&&(n="input"),n}function ig(e){var t,n,r,s;const{validateOnInput:i,validateOnChange:o,validateOnBlur:a,validateOnModelUpdate:u}=Rn();return{validateOnInput:(t=e.validateOnInput)!==null&&t!==void 0?t:i,validateOnChange:(n=e.validateOnChange)!==null&&n!==void 0?n:o,validateOnBlur:(r=e.validateOnBlur)!==null&&r!==void 0?r:a,validateOnModelUpdate:(s=e.validateOnModelUpdate)!==null&&s!==void 0?s:u}}function og(e,t){return rs(t.attrs.type)?wl(e,"modelValue")?e.modelValue:void 0:wl(e,"modelValue")?e.modelValue:t.attrs.value}const qn=sg;let ag=0;const ps=["bails","fieldsCount","id","multiple","type","validate"];function If(e){const t=(e==null?void 0:e.initialValues)||{},n=Object.assign({},de(t)),r=re(e==null?void 0:e.validationSchema);return r&&Mt(r)&&Je(r.cast)?Ee(r.cast(n)||{}):Ee(n)}function ug(e){var t;const n=ag++;let r=0;const s=wt(!1),i=wt(!1),o=wt(0),a=[],u=Yn(If(e)),l=wt([]),c=wt({}),f=wt({}),g=Rm(()=>{f.value=l.value.reduce((m,_)=>(m[Ar(de(_.path))]=_,m),{})});function p(m,_){const b=W(m);if(!b){typeof m=="string"&&(c.value[Ar(m)]=yo(_));return}if(typeof m=="string"){const F=Ar(m);c.value[F]&&delete c.value[F]}b.errors=yo(_),b.valid=!b.errors.length}function v(m){yt(m).forEach(_=>{p(_,m[_])})}e!=null&&e.initialErrors&&v(e.initialErrors);const w=me(()=>{const m=l.value.reduce((_,b)=>(b.errors.length&&(_[b.path]=b.errors),_),{});return Object.assign(Object.assign({},c.value),m)}),E=me(()=>yt(w.value).reduce((m,_)=>{const b=w.value[_];return b!=null&&b.length&&(m[_]=b[0]),m},{})),O=me(()=>l.value.reduce((m,_)=>(m[_.path]={name:_.path||"",label:_.label||""},m),{})),P=me(()=>l.value.reduce((m,_)=>{var b;return m[_.path]=(b=_.bails)!==null&&b!==void 0?b:!0,m},{})),j=Object.assign({},(e==null?void 0:e.initialErrors)||{}),V=(t=e==null?void 0:e.keepValuesOnUnmount)!==null&&t!==void 0?t:!1,{initialValues:Z,originalInitialValues:oe,setInitialValues:ae}=cg(l,u,e),De=lg(l,u,oe,E),ue=me(()=>l.value.reduce((m,_)=>{const b=_t(u,_.path);return tn(m,_.path,b),m},{})),ne=e==null?void 0:e.validationSchema;function te(m,_){var b,F;const z=me(()=>_t(Z.value,de(m))),Q=f.value[de(m)],B=(_==null?void 0:_.type)==="checkbox"||(_==null?void 0:_.type)==="radio";if(Q&&B){Q.multiple=!0;const St=r++;return Array.isArray(Q.id)?Q.id.push(St):Q.id=[Q.id,St],Q.fieldsCount++,Q.__flags.pendingUnmount[St]=!1,Q}const fe=me(()=>_t(u,de(m))),$e=de(m),Qe=J.findIndex(St=>St===$e);Qe!==-1&&J.splice(Qe,1);const Fe=me(()=>{var St,yr,wi,xi;const Ti=de(ne);if(Mt(Ti))return(yr=(St=Ti.describe)===null||St===void 0?void 0:St.call(Ti,de(m)).required)!==null&&yr!==void 0?yr:!1;const Di=de(_==null?void 0:_.schema);return Mt(Di)&&(xi=(wi=Di.describe)===null||wi===void 0?void 0:wi.call(Di).required)!==null&&xi!==void 0?xi:!1}),et=r++,ct=Yn({id:et,path:m,touched:!1,pending:!1,valid:!0,validated:!!(!((b=j[$e])===null||b===void 0)&&b.length),required:Fe,initialValue:z,errors:wh([]),bails:(F=_==null?void 0:_.bails)!==null&&F!==void 0?F:!1,label:_==null?void 0:_.label,type:(_==null?void 0:_.type)||"default",value:fe,multiple:!1,__flags:{pendingUnmount:{[et]:!1},pendingReset:!1},fieldsCount:1,validate:_==null?void 0:_.validate,dirty:me(()=>!at(re(fe),re(z)))});return l.value.push(ct),f.value[$e]=ct,g(),E.value[$e]&&!j[$e]&&Ct(()=>{I($e,{mode:"silent"})}),Be(m)&&zt(m,St=>{g();const yr=Ee(fe.value);f.value[St]=ct,Ct(()=>{tn(u,St,yr)})}),ct}const Pe=Al(G,5),Ue=Al(G,5),Oe=vo(async m=>await(m==="silent"?Pe():Ue()),(m,[_])=>{const b=yt(U.errorBag.value),z=[...new Set([...yt(m.results),...l.value.map(Q=>Q.path),...b])].sort().reduce((Q,B)=>{var fe;const $e=B,Qe=W($e)||C($e),Fe=((fe=m.results[$e])===null||fe===void 0?void 0:fe.errors)||[],et=de(Qe==null?void 0:Qe.path)||$e,ct=fg({errors:Fe,valid:!Fe.length},Q.results[et]);return Q.results[et]=ct,ct.valid||(Q.errors[et]=ct.errors[0]),Qe&&c.value[et]&&delete c.value[et],Qe?(Qe.valid=ct.valid,_==="silent"||_==="validated-only"&&!Qe.validated||p(Qe,ct.errors),Q):(p(et,Fe),Q)},{valid:m.valid,results:{},errors:{},source:m.source});return m.values&&(z.values=m.values,z.source=m.source),yt(z.results).forEach(Q=>{var B;const fe=W(Q);fe&&_!=="silent"&&(_==="validated-only"&&!fe.validated||p(fe,(B=z.results[Q])===null||B===void 0?void 0:B.errors))}),z});function je(m){l.value.forEach(m)}function W(m){const _=typeof m=="string"?Ar(m):m;return typeof _=="string"?f.value[_]:_}function C(m){return l.value.filter(b=>m.startsWith(b.path)).reduce((b,F)=>b?F.path.length>b.path.length?F:b:F,void 0)}let J=[],Te;function Xe(m){return J.push(m),Te||(Te=Ct(()=>{[...J].sort().reverse().forEach(b=>{Tl(u,b)}),J=[],Te=null})),Te}function Le(m){return function(b,F){return function(Q){return Q instanceof Event&&(Q.preventDefault(),Q.stopPropagation()),je(B=>B.touched=!0),s.value=!0,o.value++,x().then(B=>{const fe=Ee(u);if(B.valid&&typeof b=="function"){const $e=Ee(ue.value);let Qe=m?$e:fe;return B.values&&(Qe=B.source==="schema"?B.values:Object.assign({},Qe,B.values)),b(Qe,{evt:Q,controlledValues:$e,setErrors:v,setFieldError:p,setTouched:y,setFieldTouched:lt,setValues:pe,setFieldValue:X,resetForm:S,resetField:A})}!B.valid&&typeof F=="function"&&F({values:fe,evt:Q,errors:B.errors,results:B.results})}).then(B=>(s.value=!1,B),B=>{throw s.value=!1,B})}}}const ut=Le(!1);ut.withControlled=Le(!0);function Ge(m,_){const b=l.value.findIndex(z=>z.path===m&&(Array.isArray(z.id)?z.id.includes(_):z.id===_)),F=l.value[b];if(!(b===-1||!F)){if(Ct(()=>{I(m,{mode:"silent",warn:!1})}),F.multiple&&F.fieldsCount&&F.fieldsCount--,Array.isArray(F.id)){const z=F.id.indexOf(_);z>=0&&F.id.splice(z,1),delete F.__flags.pendingUnmount[_]}(!F.multiple||F.fieldsCount<=0)&&(l.value.splice(b,1),R(m),g(),delete f.value[m])}}function Jt(m){yt(f.value).forEach(_=>{_.startsWith(m)&&delete f.value[_]}),l.value=l.value.filter(_=>!_.path.startsWith(m)),Ct(()=>{g()})}const U={formId:n,values:u,controlledValues:ue,errorBag:w,errors:E,schema:ne,submitCount:o,meta:De,isSubmitting:s,isValidating:i,fieldArrays:a,keepValuesOnUnmount:V,validateSchema:re(ne)?Oe:void 0,validate:x,setFieldError:p,validateField:I,setFieldValue:X,setValues:pe,setErrors:v,setFieldTouched:lt,setTouched:y,resetForm:S,resetField:A,handleSubmit:ut,useFieldModel:q,defineInputBinds:le,defineComponentBinds:Se,defineField:H,stageInitialValue:M,unsetInitialValue:R,setFieldInitialValue:D,createPathState:te,getPathState:W,unsetPathValue:Xe,removePathState:Ge,initialValues:Z,getAllPathStates:()=>l.value,destroyPath:Jt,isFieldTouched:Ot,isFieldDirty:d,isFieldValid:h};function X(m,_,b=!0){const F=Ee(_),z=typeof m=="string"?m:m.path;W(z)||te(z),tn(u,z,F),b&&I(z)}function Ye(m,_=!0){yt(u).forEach(b=>{delete u[b]}),yt(m).forEach(b=>{X(b,m[b],!1)}),_&&x()}function pe(m,_=!0){qr(u,m),a.forEach(b=>b&&b.reset()),_&&x()}function rt(m,_){const b=W(de(m))||te(m);return me({get(){return b.value},set(F){var z;const Q=de(m);X(Q,F,(z=de(_))!==null&&z!==void 0?z:!1)}})}function lt(m,_){const b=W(m);b&&(b.touched=_)}function Ot(m){const _=W(m);return _?_.touched:l.value.filter(b=>b.path.startsWith(m)).some(b=>b.touched)}function d(m){const _=W(m);return _?_.dirty:l.value.filter(b=>b.path.startsWith(m)).some(b=>b.dirty)}function h(m){const _=W(m);return _?_.valid:l.value.filter(b=>b.path.startsWith(m)).every(b=>b.valid)}function y(m){if(typeof m=="boolean"){je(_=>{_.touched=m});return}yt(m).forEach(_=>{lt(_,!!m[_])})}function A(m,_){var b;const F=_&&"value"in _?_.value:_t(Z.value,m),z=W(m);z&&(z.__flags.pendingReset=!0),D(m,Ee(F),!0),X(m,F,!1),lt(m,(b=_==null?void 0:_.touched)!==null&&b!==void 0?b:!1),p(m,(_==null?void 0:_.errors)||[]),Ct(()=>{z&&(z.__flags.pendingReset=!1)})}function S(m,_){let b=Ee(m!=null&&m.values?m.values:oe.value);b=_!=null&&_.force?b:qr(oe.value,b),b=Mt(ne)&&Je(ne.cast)?ne.cast(b):b,ae(b,{force:_==null?void 0:_.force}),je(F=>{var z;F.__flags.pendingReset=!0,F.validated=!1,F.touched=((z=m==null?void 0:m.touched)===null||z===void 0?void 0:z[F.path])||!1,X(F.path,_t(b,F.path),!1),p(F.path,void 0)}),_!=null&&_.force?Ye(b,!1):pe(b,!1),v((m==null?void 0:m.errors)||{}),o.value=(m==null?void 0:m.submitCount)||0,Ct(()=>{x({mode:"silent"}),je(F=>{F.__flags.pendingReset=!1})})}async function x(m){const _=(m==null?void 0:m.mode)||"force";if(_==="force"&&je(B=>B.validated=!0),U.validateSchema)return U.validateSchema(_);i.value=!0;const b=await Promise.all(l.value.map(B=>B.validate?B.validate(m).then(fe=>({key:B.path,valid:fe.valid,errors:fe.errors,value:fe.value})):Promise.resolve({key:B.path,valid:!0,errors:[],value:void 0})));i.value=!1;const F={},z={},Q={};for(const B of b)F[B.key]={valid:B.valid,errors:B.errors},B.value&&tn(Q,B.key,B.value),B.errors.length&&(z[B.key]=B.errors[0]);return{valid:b.every(B=>B.valid),results:F,errors:z,values:Q,source:"fields"}}async function I(m,_){var b;const F=W(m);if(F&&(_==null?void 0:_.mode)!=="silent"&&(F.validated=!0),ne){const{results:z}=await Oe((_==null?void 0:_.mode)||"validated-only");return z[m]||{errors:[],valid:!0}}return F!=null&&F.validate?F.validate(_):(!F&&(b=_==null?void 0:_.warn),Promise.resolve({errors:[],valid:!0}))}function R(m){Tl(Z.value,m)}function M(m,_,b=!1){D(m,_),tn(u,m,_),b&&!(e!=null&&e.initialValues)&&tn(oe.value,m,Ee(_))}function D(m,_,b=!1){tn(Z.value,m,Ee(_)),b&&tn(oe.value,m,Ee(_))}async function G(){const m=re(ne);if(!m)return{valid:!0,results:{},errors:{},source:"none"};i.value=!0;const _=Ls(m)||Mt(m)?await Km(m,u):await Gm(m,u,{names:O.value,bailsMap:P.value});return i.value=!1,_}const L=ut((m,{evt:_})=>{xf(_)&&_.target.submit()});ti(()=>{if(e!=null&&e.initialErrors&&v(e.initialErrors),e!=null&&e.initialTouched&&y(e.initialTouched),e!=null&&e.validateOnMount){x();return}U.validateSchema&&U.validateSchema("silent")}),Be(ne)&&zt(ne,()=>{var m;(m=U.validateSchema)===null||m===void 0||m.call(U,"validated-only")}),Is(li,U);function H(m,_){const b=Je(_)||_==null?void 0:_.label,F=W(de(m))||te(m,{label:b}),z=()=>Je(_)?_(hs(F,ps)):_||{};function Q(){var Fe;F.touched=!0,((Fe=z().validateOnBlur)!==null&&Fe!==void 0?Fe:Rn().validateOnBlur)&&I(F.path)}function B(){var Fe;((Fe=z().validateOnInput)!==null&&Fe!==void 0?Fe:Rn().validateOnInput)&&Ct(()=>{I(F.path)})}function fe(){var Fe;((Fe=z().validateOnChange)!==null&&Fe!==void 0?Fe:Rn().validateOnChange)&&Ct(()=>{I(F.path)})}const $e=me(()=>{const Fe={onChange:fe,onInput:B,onBlur:Q};return Je(_)?Object.assign(Object.assign({},Fe),_(hs(F,ps)).props||{}):_!=null&&_.props?Object.assign(Object.assign({},Fe),_.props(hs(F,ps))):Fe});return[rt(m,()=>{var Fe,et,ct;return(ct=(Fe=z().validateOnModelUpdate)!==null&&Fe!==void 0?Fe:(et=Rn())===null||et===void 0?void 0:et.validateOnModelUpdate)!==null&&ct!==void 0?ct:!0}),$e]}function q(m){return Array.isArray(m)?m.map(_=>rt(_,!0)):rt(m)}function le(m,_){const[b,F]=H(m,_);function z(){F.value.onBlur()}function Q(fe){const $e=Ys(fe);X(de(m),$e,!1),F.value.onInput()}function B(fe){const $e=Ys(fe);X(de(m),$e,!1),F.value.onChange()}return me(()=>Object.assign(Object.assign({},F.value),{onBlur:z,onInput:Q,onChange:B,value:b.value}))}function Se(m,_){const[b,F]=H(m,_),z=W(de(m));function Q(B){b.value=B}return me(()=>{const B=Je(_)?_(hs(z,ps)):_||{};return Object.assign({[B.model||"modelValue"]:b.value,[`onUpdate:${B.model||"modelValue"}`]:Q},F.value)})}const _e=Object.assign(Object.assign({},U),{values:Ho(u),handleReset:()=>S(),submitForm:L});return Is(xm,_e),_e}function lg(e,t,n,r){const s={touched:"some",pending:"some",valid:"every"},i=me(()=>!at(t,re(n)));function o(){const u=e.value;return yt(s).reduce((l,c)=>{const f=s[c];return l[c]=u[f](g=>g[c]),l},{})}const a=Yn(o());return g0(()=>{const u=o();a.touched=u.touched,a.valid=u.valid,a.pending=u.pending}),me(()=>Object.assign(Object.assign({initialValues:re(n)},a),{valid:a.valid&&!yt(r.value).length,dirty:i.value}))}function cg(e,t,n){const r=If(n),s=wt(r),i=wt(Ee(r));function o(a,u){u!=null&&u.force?(s.value=Ee(a),i.value=Ee(a)):(s.value=qr(Ee(s.value)||{},Ee(a)),i.value=qr(Ee(i.value)||{},Ee(a))),u!=null&&u.updateFields&&e.value.forEach(l=>{if(l.touched)return;const f=_t(s.value,l.path);tn(t,l.path,Ee(f))})}return{initialValues:s,originalInitialValues:i,setInitialValues:o}}function fg(e,t){return t?{valid:e.valid&&t.valid,errors:[...e.errors,...t.errors]}:e}const dg=qo({name:"Form",inheritAttrs:!1,props:{as:{type:null,default:"form"},validationSchema:{type:Object,default:void 0},initialValues:{type:Object,default:void 0},initialErrors:{type:Object,default:void 0},initialTouched:{type:Object,default:void 0},validateOnMount:{type:Boolean,default:!1},onSubmit:{type:Function,default:void 0},onInvalidSubmit:{type:Function,default:void 0},keepValues:{type:Boolean,default:!1}},setup(e,t){const n=Fn(e,"validationSchema"),r=Fn(e,"keepValues"),{errors:s,errorBag:i,values:o,meta:a,isSubmitting:u,isValidating:l,submitCount:c,controlledValues:f,validate:g,validateField:p,handleReset:v,resetForm:w,handleSubmit:E,setErrors:O,setFieldError:P,setFieldValue:j,setValues:V,setFieldTouched:Z,setTouched:oe,resetField:ae}=ug({validationSchema:n.value?n:void 0,initialValues:e.initialValues,initialErrors:e.initialErrors,initialTouched:e.initialTouched,validateOnMount:e.validateOnMount,keepValuesOnUnmount:r}),De=E((W,{evt:C})=>{xf(C)&&C.target.submit()},e.onInvalidSubmit),ue=e.onSubmit?E(e.onSubmit,e.onInvalidSubmit):De;function ne(W){pa(W)&&W.preventDefault(),v(),typeof t.attrs.onReset=="function"&&t.attrs.onReset()}function te(W,C){return E(typeof W=="function"&&!C?W:C,e.onInvalidSubmit)(W)}function Pe(){return Ee(o)}function Ue(){return Ee(a.value)}function Oe(){return Ee(s.value)}function je(){return{meta:a.value,errors:s.value,errorBag:i.value,values:o,isSubmitting:u.value,isValidating:l.value,submitCount:c.value,controlledValues:f.value,validate:g,validateField:p,handleSubmit:te,handleReset:v,submitForm:De,setErrors:O,setFieldError:P,setFieldValue:j,setValues:V,setFieldTouched:Z,setTouched:oe,resetForm:w,resetField:ae,getValues:Pe,getMeta:Ue,getErrors:Oe}}return t.expose({setFieldError:P,setErrors:O,setFieldValue:j,setValues:V,setFieldTouched:Z,setTouched:oe,resetForm:w,validate:g,validateField:p,resetField:ae,getValues:Pe,getMeta:Ue,getErrors:Oe,values:o,meta:a,errors:s}),function(){const C=e.as==="form"?e.as:e.as?Zo(e.as):null,J=ma(C,t,je);return C?Vs(C,Object.assign(Object.assign(Object.assign({},C==="form"?{novalidate:!0}:{}),t.attrs),{onSubmit:ue,onReset:ne}),J):J}}}),hg=dg,pg=qo({name:"ErrorMessage",props:{as:{type:String,default:void 0},name:{type:String,required:!0}},setup(e,t){const n=or(li,void 0),r=me(()=>n==null?void 0:n.errors.value[e.name]);function s(){return{message:r.value}}return()=>{if(!r.value)return;const i=e.as?Zo(e.as):e.as,o=ma(i,t,s),a=Object.assign({role:"alert"},t.attrs);return!i&&(Array.isArray(o)||!o)&&(o!=null&&o.length)?o:(Array.isArray(o)||!o)&&!(o!=null&&o.length)?Vs(i||"span",a,r.value):Vs(i,a,o)}}}),Or=pg;function _g(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function Wn(e){this._maxSize=e,this.clear()}Wn.prototype.clear=function(){this._size=0,this._values=Object.create(null)};Wn.prototype.get=function(e){return this._values[e]};Wn.prototype.set=function(e,t){return this._size>=this._maxSize&&this.clear(),e in this._values||this._size++,this._values[e]=t};var mg=/[^.^\]^[]+|(?=\[\]|\.\.)/g,Rf=/^\d+$/,gg=/^\d/,vg=/[~`!#$%\^&*+=\-\[\]\\';,/{}|\\":<>\?]/g,yg=/^\s*(['"]?)(.*?)(\1)\s*$/,ga=512,Fl=new Wn(ga),Il=new Wn(ga),Rl=new Wn(ga),Un={Cache:Wn,split:bo,normalizePath:Hi,setter:function(e){var t=Hi(e);return Il.get(e)||Il.set(e,function(r,s){for(var i=0,o=t.length,a=r;ie.match(wg)||[],di=e=>e[0].toUpperCase()+e.slice(1),ya=(e,t)=>fi(e).join(t).toLowerCase(),Pf=e=>fi(e).reduce((t,n)=>`${t}${t?n[0].toUpperCase()+n.slice(1).toLowerCase():n.toLowerCase()}`,""),xg=e=>di(Pf(e)),Tg=e=>ya(e,"_"),Dg=e=>ya(e,"-"),Ag=e=>di(ya(e," ")),kg=e=>fi(e).map(di).join(" ");var Wi={words:fi,upperFirst:di,camelCase:Pf,pascalCase:xg,snakeCase:Tg,kebabCase:Dg,sentenceCase:Ag,titleCase:kg},Ea={exports:{}};Ea.exports=function(e){return Vf(Cg(e),e)};Ea.exports.array=Vf;function Vf(e,t){var n=e.length,r=new Array(n),s={},i=n,o=Mg(t),a=Fg(e);for(t.forEach(function(l){if(!a.has(l[0])||!a.has(l[1]))throw new Error("Unknown node. There is an unknown node in the supplied edges.")});i--;)s[i]||u(e[i],i,new Set);return r;function u(l,c,f){if(f.has(l)){var g;try{g=", node was:"+JSON.stringify(l)}catch{g=""}throw new Error("Cyclic dependency"+g)}if(!a.has(l))throw new Error("Found unknown node. Make sure to provided all involved nodes. Unknown node: "+JSON.stringify(l));if(!s[c]){s[c]=!0;var p=o.get(l)||new Set;if(p=Array.from(p),c=p.length){f.add(l);do{var v=p[--c];u(v,a.get(v),f)}while(c);f.delete(l)}r[--n]=l}}}function Cg(e){for(var t=new Set,n=0,r=e.length;n"",Lg=/^Symbol\((.*)\)(.*)$/;function Yg(e){return e!=+e?"NaN":e===0&&1/e<0?"-0":""+e}function Pl(e,t=!1){if(e==null||e===!0||e===!1)return""+e;const n=typeof e;if(n==="number")return Yg(e);if(n==="string")return t?`"${e}"`:e;if(n==="function")return"[Function "+(e.name||"anonymous")+"]";if(n==="symbol")return Ug.call(e).replace(Lg,"Symbol($1)");const r=Pg.call(e).slice(8,-1);return r==="Date"?isNaN(e.getTime())?""+e:e.toISOString(e):r==="Error"||e instanceof Error?"["+Vg.call(e)+"]":r==="RegExp"?Ng.call(e):null}function Sn(e,t){let n=Pl(e,t);return n!==null?n:JSON.stringify(e,function(r,s){let i=Pl(this[r],t);return i!==null?i:s},2)}function Nf(e){return e==null?[]:[].concat(e)}let Uf,Lf,Yf,$g=/\$\{\s*(\w+)\s*\}/g;Uf=Symbol.toStringTag;class Vl{constructor(t,n,r,s){this.name=void 0,this.message=void 0,this.value=void 0,this.path=void 0,this.type=void 0,this.params=void 0,this.errors=void 0,this.inner=void 0,this[Uf]="Error",this.name="ValidationError",this.value=n,this.path=r,this.type=s,this.errors=[],this.inner=[],Nf(t).forEach(i=>{if(pt.isError(i)){this.errors.push(...i.errors);const o=i.inner.length?i.inner:[i];this.inner.push(...o)}else this.errors.push(i)}),this.message=this.errors.length>1?`${this.errors.length} errors occurred`:this.errors[0]}}Lf=Symbol.hasInstance;Yf=Symbol.toStringTag;class pt extends Error{static formatError(t,n){const r=n.label||n.path||"this";return r!==n.path&&(n=Object.assign({},n,{path:r})),typeof t=="string"?t.replace($g,(s,i)=>Sn(n[i])):typeof t=="function"?t(n):t}static isError(t){return t&&t.name==="ValidationError"}constructor(t,n,r,s,i){const o=new Vl(t,n,r,s);if(i)return o;super(),this.value=void 0,this.path=void 0,this.type=void 0,this.params=void 0,this.errors=[],this.inner=[],this[Yf]="Error",this.name=o.name,this.message=o.message,this.type=o.type,this.value=o.value,this.path=o.path,this.errors=o.errors,this.inner=o.inner,Error.captureStackTrace&&Error.captureStackTrace(this,pt)}static[Lf](t){return Vl[Symbol.hasInstance](t)||super[Symbol.hasInstance](t)}}let jt={default:"${path} is invalid",required:"${path} is a required field",defined:"${path} must be defined",notNull:"${path} cannot be null",oneOf:"${path} must be one of the following values: ${values}",notOneOf:"${path} must not be one of the following values: ${values}",notType:({path:e,type:t,value:n,originalValue:r})=>{const s=r!=null&&r!==n?` (cast from the value \`${Sn(r,!0)}\`).`:".";return t!=="mixed"?`${e} must be a \`${t}\` type, but the final value was: \`${Sn(n,!0)}\``+s:`${e} must match the configured type. The validated value was: \`${Sn(n,!0)}\``+s}},ft={length:"${path} must be exactly ${length} characters",min:"${path} must be at least ${min} characters",max:"${path} must be at most ${max} characters",matches:'${path} must match the following: "${regex}"',email:"${path} must be a valid email",url:"${path} must be a valid URL",uuid:"${path} must be a valid UUID",datetime:"${path} must be a valid ISO date-time",datetime_precision:"${path} must be a valid ISO date-time with a sub-second precision of exactly ${precision} digits",datetime_offset:'${path} must be a valid ISO date-time with UTC "Z" timezone',trim:"${path} must be a trimmed string",lowercase:"${path} must be a lowercase string",uppercase:"${path} must be a upper case string"},mn={min:"${path} must be greater than or equal to ${min}",max:"${path} must be less than or equal to ${max}",lessThan:"${path} must be less than ${less}",moreThan:"${path} must be greater than ${more}",positive:"${path} must be a positive number",negative:"${path} must be a negative number",integer:"${path} must be an integer"},Oo={min:"${path} field must be later than ${min}",max:"${path} field must be at earlier than ${max}"},jg={isValue:"${path} field must be ${value}"},So={noUnknown:"${path} field has unspecified keys: ${unknown}"},Bg={min:"${path} field must have at least ${min} items",max:"${path} field must have less than or equal to ${max} items",length:"${path} must have ${length} items"},Hg={notType:e=>{const{path:t,value:n,spec:r}=e,s=r.types.length;if(Array.isArray(n)){if(n.lengths)return`${t} tuple value has too many items, expected a length of ${s} but got ${n.length} for value: \`${Sn(n,!0)}\``}return pt.formatError(jt.notType,e)}};Object.assign(Object.create(null),{mixed:jt,string:ft,number:mn,date:Oo,object:So,array:Bg,boolean:jg,tuple:Hg});const ba=e=>e&&e.__isYupSchema__;class $s{static fromOptions(t,n){if(!n.then&&!n.otherwise)throw new TypeError("either `then:` or `otherwise:` is required for `when()` conditions");let{is:r,then:s,otherwise:i}=n,o=typeof r=="function"?r:(...a)=>a.every(u=>u===r);return new $s(t,(a,u)=>{var l;let c=o(...a)?s:i;return(l=c==null?void 0:c(u))!=null?l:u})}constructor(t,n){this.fn=void 0,this.refs=t,this.refs=t,this.fn=n}resolve(t,n){let r=this.refs.map(i=>i.getValue(n==null?void 0:n.value,n==null?void 0:n.parent,n==null?void 0:n.context)),s=this.fn(r,t,n);if(s===void 0||s===t)return t;if(!ba(s))throw new TypeError("conditions must return a schema object");return s.resolve(n)}}const _s={context:"$",value:"."};class zn{constructor(t,n={}){if(this.key=void 0,this.isContext=void 0,this.isValue=void 0,this.isSibling=void 0,this.path=void 0,this.getter=void 0,this.map=void 0,typeof t!="string")throw new TypeError("ref must be a string, got: "+t);if(this.key=t.trim(),t==="")throw new TypeError("ref must be a non-empty string");this.isContext=this.key[0]===_s.context,this.isValue=this.key[0]===_s.value,this.isSibling=!this.isContext&&!this.isValue;let r=this.isContext?_s.context:this.isValue?_s.value:"";this.path=this.key.slice(r.length),this.getter=this.path&&Un.getter(this.path,!0),this.map=n.map}getValue(t,n,r){let s=this.isContext?r:this.isValue?t:n;return this.getter&&(s=this.getter(s||{})),this.map&&(s=this.map(s)),s}cast(t,n){return this.getValue(t,n==null?void 0:n.parent,n==null?void 0:n.context)}resolve(){return this}describe(){return{type:"ref",key:this.key}}toString(){return`Ref(${this.key})`}static isRef(t){return t&&t.__isYupRef}}zn.prototype.__isYupRef=!0;const an=e=>e==null;function Zn(e){function t({value:n,path:r="",options:s,originalValue:i,schema:o},a,u){const{name:l,test:c,params:f,message:g,skipAbsent:p}=e;let{parent:v,context:w,abortEarly:E=o.spec.abortEarly,disableStackTrace:O=o.spec.disableStackTrace}=s;function P(te){return zn.isRef(te)?te.getValue(n,v,w):te}function j(te={}){const Pe=Object.assign({value:n,originalValue:i,label:o.spec.label,path:te.path||r,spec:o.spec,disableStackTrace:te.disableStackTrace||O},f,te.params);for(const Oe of Object.keys(Pe))Pe[Oe]=P(Pe[Oe]);const Ue=new pt(pt.formatError(te.message||g,Pe),n,Pe.path,te.type||l,Pe.disableStackTrace);return Ue.params=Pe,Ue}const V=E?a:u;let Z={path:r,parent:v,type:l,from:s.from,createError:j,resolve:P,options:s,originalValue:i,schema:o};const oe=te=>{pt.isError(te)?V(te):te?u(null):V(j())},ae=te=>{pt.isError(te)?V(te):a(te)};if(p&&an(n))return oe(!0);let ue;try{var ne;if(ue=c.call(Z,n,Z),typeof((ne=ue)==null?void 0:ne.then)=="function"){if(s.sync)throw new Error(`Validation test of type: "${Z.type}" returned a Promise during a synchronous validate. This test will finish after the validate call has returned`);return Promise.resolve(ue).then(oe,ae)}}catch(te){ae(te);return}oe(ue)}return t.OPTIONS=e,t}function Wg(e,t,n,r=n){let s,i,o;return t?(Un.forEach(t,(a,u,l)=>{let c=u?a.slice(1,a.length-1):a;e=e.resolve({context:r,parent:s,value:n});let f=e.type==="tuple",g=l?parseInt(c,10):0;if(e.innerType||f){if(f&&!l)throw new Error(`Yup.reach cannot implicitly index into a tuple type. the path part "${o}" must contain an index to the tuple element, e.g. "${o}[0]"`);if(n&&g>=n.length)throw new Error(`Yup.reach cannot resolve an array item at index: ${a}, in the path: ${t}. because there is no value at that index. `);s=n,n=n&&n[g],e=f?e.spec.types[g]:e.innerType}if(!l){if(!e.fields||!e.fields[c])throw new Error(`The schema does not contain the path: ${t}. (failed at: ${o} which is a type: "${e.type}")`);s=n,n=n&&n[c],e=e.fields[c]}i=c,o=u?"["+a+"]":"."+a}),{schema:e,parent:s,parentPath:i}):{parent:s,parentPath:t,schema:e}}class js extends Set{describe(){const t=[];for(const n of this.values())t.push(zn.isRef(n)?n.describe():n);return t}resolveAll(t){let n=[];for(const r of this.values())n.push(t(r));return n}clone(){return new js(this.values())}merge(t,n){const r=this.clone();return t.forEach(s=>r.add(s)),n.forEach(s=>r.delete(s)),r}}function tr(e,t=new Map){if(ba(e)||!e||typeof e!="object")return e;if(t.has(e))return t.get(e);let n;if(e instanceof Date)n=new Date(e.getTime()),t.set(e,n);else if(e instanceof RegExp)n=new RegExp(e),t.set(e,n);else if(Array.isArray(e)){n=new Array(e.length),t.set(e,n);for(let r=0;r{this.typeError(jt.notType)}),this.type=t.type,this._typeCheck=t.check,this.spec=Object.assign({strip:!1,strict:!1,abortEarly:!0,recursive:!0,disableStackTrace:!1,nullable:!1,optional:!0,coerce:!0},t==null?void 0:t.spec),this.withMutation(n=>{n.nonNullable()})}get _type(){return this.type}clone(t){if(this._mutate)return t&&Object.assign(this.spec,t),this;const n=Object.create(Object.getPrototypeOf(this));return n.type=this.type,n._typeCheck=this._typeCheck,n._whitelist=this._whitelist.clone(),n._blacklist=this._blacklist.clone(),n.internalTests=Object.assign({},this.internalTests),n.exclusiveTests=Object.assign({},this.exclusiveTests),n.deps=[...this.deps],n.conditions=[...this.conditions],n.tests=[...this.tests],n.transforms=[...this.transforms],n.spec=tr(Object.assign({},this.spec,t)),n}label(t){let n=this.clone();return n.spec.label=t,n}meta(...t){if(t.length===0)return this.spec.meta;let n=this.clone();return n.spec.meta=Object.assign(n.spec.meta||{},t[0]),n}withMutation(t){let n=this._mutate;this._mutate=!0;let r=t(this);return this._mutate=n,r}concat(t){if(!t||t===this)return this;if(t.type!==this.type&&this.type!=="mixed")throw new TypeError(`You cannot \`concat()\` schema's of different types: ${this.type} and ${t.type}`);let n=this,r=t.clone();const s=Object.assign({},n.spec,r.spec);return r.spec=s,r.internalTests=Object.assign({},n.internalTests,r.internalTests),r._whitelist=n._whitelist.merge(t._whitelist,t._blacklist),r._blacklist=n._blacklist.merge(t._blacklist,t._whitelist),r.tests=n.tests,r.exclusiveTests=n.exclusiveTests,r.withMutation(i=>{t.tests.forEach(o=>{i.test(o.OPTIONS)})}),r.transforms=[...n.transforms,...r.transforms],r}isType(t){return t==null?!!(this.spec.nullable&&t===null||this.spec.optional&&t===void 0):this._typeCheck(t)}resolve(t){let n=this;if(n.conditions.length){let r=n.conditions;n=n.clone(),n.conditions=[],n=r.reduce((s,i)=>i.resolve(s,t),n),n=n.resolve(t)}return n}resolveOptions(t){var n,r,s,i;return Object.assign({},t,{from:t.from||[],strict:(n=t.strict)!=null?n:this.spec.strict,abortEarly:(r=t.abortEarly)!=null?r:this.spec.abortEarly,recursive:(s=t.recursive)!=null?s:this.spec.recursive,disableStackTrace:(i=t.disableStackTrace)!=null?i:this.spec.disableStackTrace})}cast(t,n={}){let r=this.resolve(Object.assign({value:t},n)),s=n.assert==="ignore-optionality",i=r._cast(t,n);if(n.assert!==!1&&!r.isType(i)){if(s&&an(i))return i;let o=Sn(t),a=Sn(i);throw new TypeError(`The value of ${n.path||"field"} could not be cast to a value that satisfies the schema type: "${r.type}". - -attempted value: ${o} -`+(a!==o?`result of cast: ${a}`:""))}return i}_cast(t,n){let r=t===void 0?t:this.transforms.reduce((s,i)=>i.call(this,s,t,this),t);return r===void 0&&(r=this.getDefault(n)),r}_validate(t,n={},r,s){let{path:i,originalValue:o=t,strict:a=this.spec.strict}=n,u=t;a||(u=this._cast(u,Object.assign({assert:!1},n)));let l=[];for(let c of Object.values(this.internalTests))c&&l.push(c);this.runTests({path:i,value:u,originalValue:o,options:n,tests:l},r,c=>{if(c.length)return s(c,u);this.runTests({path:i,value:u,originalValue:o,options:n,tests:this.tests},r,s)})}runTests(t,n,r){let s=!1,{tests:i,value:o,originalValue:a,path:u,options:l}=t,c=w=>{s||(s=!0,n(w,o))},f=w=>{s||(s=!0,r(w,o))},g=i.length,p=[];if(!g)return f([]);let v={value:o,originalValue:a,path:u,options:l,schema:this};for(let w=0;wthis.resolve(c)._validate(l,c,g,p)}validate(t,n){var r;let s=this.resolve(Object.assign({},n,{value:t})),i=(r=n==null?void 0:n.disableStackTrace)!=null?r:s.spec.disableStackTrace;return new Promise((o,a)=>s._validate(t,n,(u,l)=>{pt.isError(u)&&(u.value=l),a(u)},(u,l)=>{u.length?a(new pt(u,l,void 0,void 0,i)):o(l)}))}validateSync(t,n){var r;let s=this.resolve(Object.assign({},n,{value:t})),i,o=(r=n==null?void 0:n.disableStackTrace)!=null?r:s.spec.disableStackTrace;return s._validate(t,Object.assign({},n,{sync:!0}),(a,u)=>{throw pt.isError(a)&&(a.value=u),a},(a,u)=>{if(a.length)throw new pt(a,t,void 0,void 0,o);i=u}),i}isValid(t,n){return this.validate(t,n).then(()=>!0,r=>{if(pt.isError(r))return!1;throw r})}isValidSync(t,n){try{return this.validateSync(t,n),!0}catch(r){if(pt.isError(r))return!1;throw r}}_getDefault(t){let n=this.spec.default;return n==null?n:typeof n=="function"?n.call(this,t):tr(n)}getDefault(t){return this.resolve(t||{})._getDefault(t)}default(t){return arguments.length===0?this._getDefault():this.clone({default:t})}strict(t=!0){return this.clone({strict:t})}nullability(t,n){const r=this.clone({nullable:t});return r.internalTests.nullable=Zn({message:n,name:"nullable",test(s){return s===null?this.schema.spec.nullable:!0}}),r}optionality(t,n){const r=this.clone({optional:t});return r.internalTests.optionality=Zn({message:n,name:"optionality",test(s){return s===void 0?this.schema.spec.optional:!0}}),r}optional(){return this.optionality(!0)}defined(t=jt.defined){return this.optionality(!1,t)}nullable(){return this.nullability(!0)}nonNullable(t=jt.notNull){return this.nullability(!1,t)}required(t=jt.required){return this.clone().withMutation(n=>n.nonNullable(t).defined(t))}notRequired(){return this.clone().withMutation(t=>t.nullable().optional())}transform(t){let n=this.clone();return n.transforms.push(t),n}test(...t){let n;if(t.length===1?typeof t[0]=="function"?n={test:t[0]}:n=t[0]:t.length===2?n={name:t[0],test:t[1]}:n={name:t[0],message:t[1],test:t[2]},n.message===void 0&&(n.message=jt.default),typeof n.test!="function")throw new TypeError("`test` is a required parameters");let r=this.clone(),s=Zn(n),i=n.exclusive||n.name&&r.exclusiveTests[n.name]===!0;if(n.exclusive&&!n.name)throw new TypeError("Exclusive tests must provide a unique `name` identifying the test");return n.name&&(r.exclusiveTests[n.name]=!!n.exclusive),r.tests=r.tests.filter(o=>!(o.OPTIONS.name===n.name&&(i||o.OPTIONS.test===s.OPTIONS.test))),r.tests.push(s),r}when(t,n){!Array.isArray(t)&&typeof t!="string"&&(n=t,t=".");let r=this.clone(),s=Nf(t).map(i=>new zn(i));return s.forEach(i=>{i.isSibling&&r.deps.push(i.key)}),r.conditions.push(typeof n=="function"?new $s(s,n):$s.fromOptions(s,n)),r}typeError(t){let n=this.clone();return n.internalTests.typeError=Zn({message:t,name:"typeError",skipAbsent:!0,test(r){return this.schema._typeCheck(r)?!0:this.createError({params:{type:this.schema.type}})}}),n}oneOf(t,n=jt.oneOf){let r=this.clone();return t.forEach(s=>{r._whitelist.add(s),r._blacklist.delete(s)}),r.internalTests.whiteList=Zn({message:n,name:"oneOf",skipAbsent:!0,test(s){let i=this.schema._whitelist,o=i.resolveAll(this.resolve);return o.includes(s)?!0:this.createError({params:{values:Array.from(i).join(", "),resolved:o}})}}),r}notOneOf(t,n=jt.notOneOf){let r=this.clone();return t.forEach(s=>{r._blacklist.add(s),r._whitelist.delete(s)}),r.internalTests.blacklist=Zn({message:n,name:"notOneOf",test(s){let i=this.schema._blacklist,o=i.resolveAll(this.resolve);return o.includes(s)?this.createError({params:{values:Array.from(i).join(", "),resolved:o}}):!0}}),r}strip(t=!0){let n=this.clone();return n.spec.strip=t,n}describe(t){const n=(t?this.resolve(t):this).clone(),{label:r,meta:s,optional:i,nullable:o}=n.spec;return{meta:s,label:r,optional:i,nullable:o,default:n.getDefault(t),type:n.type,oneOf:n._whitelist.describe(),notOneOf:n._blacklist.describe(),tests:n.tests.map(u=>({name:u.OPTIONS.name,params:u.OPTIONS.params})).filter((u,l,c)=>c.findIndex(f=>f.name===u.name)===l)}}}Pt.prototype.__isYupSchema__=!0;for(const e of["validate","validateSync"])Pt.prototype[`${e}At`]=function(t,n,r={}){const{parent:s,parentPath:i,schema:o}=Wg(this,t,n,r.context);return o[e](s&&s[i],Object.assign({},r,{parent:s,path:t}))};for(const e of["equals","is"])Pt.prototype[e]=Pt.prototype.oneOf;for(const e of["not","nope"])Pt.prototype[e]=Pt.prototype.notOneOf;const zg=/^(\d{4}|[+-]\d{6})(?:-?(\d{2})(?:-?(\d{2}))?)?(?:[ T]?(\d{2}):?(\d{2})(?::?(\d{2})(?:[,.](\d{1,}))?)?(?:(Z)|([+-])(\d{2})(?::?(\d{2}))?)?)?$/;function Kg(e){const t=wo(e);if(!t)return Date.parse?Date.parse(e):Number.NaN;if(t.z===void 0&&t.plusMinus===void 0)return new Date(t.year,t.month,t.day,t.hour,t.minute,t.second,t.millisecond).valueOf();let n=0;return t.z!=="Z"&&t.plusMinus!==void 0&&(n=t.hourOffset*60+t.minuteOffset,t.plusMinus==="+"&&(n=0-n)),Date.UTC(t.year,t.month,t.day,t.hour,t.minute+n,t.second,t.millisecond)}function wo(e){var t,n;const r=zg.exec(e);return r?{year:Qt(r[1]),month:Qt(r[2],1)-1,day:Qt(r[3],1),hour:Qt(r[4]),minute:Qt(r[5]),second:Qt(r[6]),millisecond:r[7]?Qt(r[7].substring(0,3)):0,precision:(t=(n=r[7])==null?void 0:n.length)!=null?t:void 0,z:r[8]||void 0,plusMinus:r[9]||void 0,hourOffset:Qt(r[10]),minuteOffset:Qt(r[11])}:null}function Qt(e,t=0){return Number(e)||t}let Gg=/^[a-zA-Z0-9.!#$%&'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,qg=/^((https?|ftp):)?\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i,Zg=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i,Jg="^\\d{4}-\\d{2}-\\d{2}",Xg="\\d{2}:\\d{2}:\\d{2}",Qg="(([+-]\\d{2}(:?\\d{2})?)|Z)",ev=new RegExp(`${Jg}T${Xg}(\\.\\d+)?${Qg}$`),tv=e=>an(e)||e===e.trim(),nv={}.toString();function Os(){return new $f}class $f extends Pt{constructor(){super({type:"string",check(t){return t instanceof String&&(t=t.valueOf()),typeof t=="string"}}),this.withMutation(()=>{this.transform((t,n,r)=>{if(!r.spec.coerce||r.isType(t)||Array.isArray(t))return t;const s=t!=null&&t.toString?t.toString():t;return s===nv?t:s})})}required(t){return super.required(t).withMutation(n=>n.test({message:t||jt.required,name:"required",skipAbsent:!0,test:r=>!!r.length}))}notRequired(){return super.notRequired().withMutation(t=>(t.tests=t.tests.filter(n=>n.OPTIONS.name!=="required"),t))}length(t,n=ft.length){return this.test({message:n,name:"length",exclusive:!0,params:{length:t},skipAbsent:!0,test(r){return r.length===this.resolve(t)}})}min(t,n=ft.min){return this.test({message:n,name:"min",exclusive:!0,params:{min:t},skipAbsent:!0,test(r){return r.length>=this.resolve(t)}})}max(t,n=ft.max){return this.test({name:"max",exclusive:!0,message:n,params:{max:t},skipAbsent:!0,test(r){return r.length<=this.resolve(t)}})}matches(t,n){let r=!1,s,i;return n&&(typeof n=="object"?{excludeEmptyString:r=!1,message:s,name:i}=n:s=n),this.test({name:i||"matches",message:s||ft.matches,params:{regex:t},skipAbsent:!0,test:o=>o===""&&r||o.search(t)!==-1})}email(t=ft.email){return this.matches(Gg,{name:"email",message:t,excludeEmptyString:!0})}url(t=ft.url){return this.matches(qg,{name:"url",message:t,excludeEmptyString:!0})}uuid(t=ft.uuid){return this.matches(Zg,{name:"uuid",message:t,excludeEmptyString:!1})}datetime(t){let n="",r,s;return t&&(typeof t=="object"?{message:n="",allowOffset:r=!1,precision:s=void 0}=t:n=t),this.matches(ev,{name:"datetime",message:n||ft.datetime,excludeEmptyString:!0}).test({name:"datetime_offset",message:n||ft.datetime_offset,params:{allowOffset:r},skipAbsent:!0,test:i=>{if(!i||r)return!0;const o=wo(i);return o?!!o.z:!1}}).test({name:"datetime_precision",message:n||ft.datetime_precision,params:{precision:s},skipAbsent:!0,test:i=>{if(!i||s==null)return!0;const o=wo(i);return o?o.precision===s:!1}})}ensure(){return this.default("").transform(t=>t===null?"":t)}trim(t=ft.trim){return this.transform(n=>n!=null?n.trim():n).test({message:t,name:"trim",test:tv})}lowercase(t=ft.lowercase){return this.transform(n=>an(n)?n:n.toLowerCase()).test({message:t,name:"string_case",exclusive:!0,skipAbsent:!0,test:n=>an(n)||n===n.toLowerCase()})}uppercase(t=ft.uppercase){return this.transform(n=>an(n)?n:n.toUpperCase()).test({message:t,name:"string_case",exclusive:!0,skipAbsent:!0,test:n=>an(n)||n===n.toUpperCase()})}}Os.prototype=$f.prototype;let rv=e=>e!=+e;function jf(){return new Bf}class Bf extends Pt{constructor(){super({type:"number",check(t){return t instanceof Number&&(t=t.valueOf()),typeof t=="number"&&!rv(t)}}),this.withMutation(()=>{this.transform((t,n,r)=>{if(!r.spec.coerce)return t;let s=t;if(typeof s=="string"){if(s=s.replace(/\s/g,""),s==="")return NaN;s=+s}return r.isType(s)||s===null?s:parseFloat(s)})})}min(t,n=mn.min){return this.test({message:n,name:"min",exclusive:!0,params:{min:t},skipAbsent:!0,test(r){return r>=this.resolve(t)}})}max(t,n=mn.max){return this.test({message:n,name:"max",exclusive:!0,params:{max:t},skipAbsent:!0,test(r){return r<=this.resolve(t)}})}lessThan(t,n=mn.lessThan){return this.test({message:n,name:"max",exclusive:!0,params:{less:t},skipAbsent:!0,test(r){return rthis.resolve(t)}})}positive(t=mn.positive){return this.moreThan(0,t)}negative(t=mn.negative){return this.lessThan(0,t)}integer(t=mn.integer){return this.test({name:"integer",message:t,skipAbsent:!0,test:n=>Number.isInteger(n)})}truncate(){return this.transform(t=>an(t)?t:t|0)}round(t){var n;let r=["ceil","floor","round","trunc"];if(t=((n=t)==null?void 0:n.toLowerCase())||"round",t==="trunc")return this.truncate();if(r.indexOf(t.toLowerCase())===-1)throw new TypeError("Only valid options for round() are: "+r.join(", "));return this.transform(s=>an(s)?s:Math[t](s))}}jf.prototype=Bf.prototype;let Hf=new Date(""),sv=e=>Object.prototype.toString.call(e)==="[object Date]";function Oa(){return new ss}class ss extends Pt{constructor(){super({type:"date",check(t){return sv(t)&&!isNaN(t.getTime())}}),this.withMutation(()=>{this.transform((t,n,r)=>!r.spec.coerce||r.isType(t)||t===null?t:(t=Kg(t),isNaN(t)?ss.INVALID_DATE:new Date(t)))})}prepareParam(t,n){let r;if(zn.isRef(t))r=t;else{let s=this.cast(t);if(!this._typeCheck(s))throw new TypeError(`\`${n}\` must be a Date or a value that can be \`cast()\` to a Date`);r=s}return r}min(t,n=Oo.min){let r=this.prepareParam(t,"min");return this.test({message:n,name:"min",exclusive:!0,params:{min:t},skipAbsent:!0,test(s){return s>=this.resolve(r)}})}max(t,n=Oo.max){let r=this.prepareParam(t,"max");return this.test({message:n,name:"max",exclusive:!0,params:{max:t},skipAbsent:!0,test(s){return s<=this.resolve(r)}})}}ss.INVALID_DATE=Hf;Oa.prototype=ss.prototype;Oa.INVALID_DATE=Hf;function iv(e,t=[]){let n=[],r=new Set,s=new Set(t.map(([o,a])=>`${o}-${a}`));function i(o,a){let u=Un.split(o)[0];r.add(u),s.has(`${a}-${u}`)||n.push([a,u])}for(const o of Object.keys(e)){let a=e[o];r.add(o),zn.isRef(a)&&a.isSibling?i(a.path,o):ba(a)&&"deps"in a&&a.deps.forEach(u=>i(u,o))}return Rg.array(Array.from(r),n).reverse()}function Nl(e,t){let n=1/0;return e.some((r,s)=>{var i;if((i=t.path)!=null&&i.includes(r))return n=s,!0}),n}function Wf(e){return(t,n)=>Nl(e,t)-Nl(e,n)}const ov=(e,t,n)=>{if(typeof e!="string")return e;let r=e;try{r=JSON.parse(e)}catch{}return n.isType(r)?r:e};function Ss(e){if("fields"in e){const t={};for(const[n,r]of Object.entries(e.fields))t[n]=Ss(r);return e.setFields(t)}if(e.type==="array"){const t=e.optional();return t.innerType&&(t.innerType=Ss(t.innerType)),t}return e.type==="tuple"?e.optional().clone({types:e.spec.types.map(Ss)}):"optional"in e?e.optional():e}const av=(e,t)=>{const n=[...Un.normalizePath(t)];if(n.length===1)return n[0]in e;let r=n.pop(),s=Un.getter(Un.join(n),!0)(e);return!!(s&&r in s)};let Ul=e=>Object.prototype.toString.call(e)==="[object Object]";function uv(e,t){let n=Object.keys(e.fields);return Object.keys(t).filter(r=>n.indexOf(r)===-1)}const lv=Wf([]);function zf(e){return new Kf(e)}class Kf extends Pt{constructor(t){super({type:"object",check(n){return Ul(n)||typeof n=="function"}}),this.fields=Object.create(null),this._sortErrors=lv,this._nodes=[],this._excludedEdges=[],this.withMutation(()=>{t&&this.shape(t)})}_cast(t,n={}){var r;let s=super._cast(t,n);if(s===void 0)return this.getDefault(n);if(!this._typeCheck(s))return s;let i=this.fields,o=(r=n.stripUnknown)!=null?r:this.spec.noUnknown,a=[].concat(this._nodes,Object.keys(s).filter(f=>!this._nodes.includes(f))),u={},l=Object.assign({},n,{parent:u,__validating:n.__validating||!1}),c=!1;for(const f of a){let g=i[f],p=f in s;if(g){let v,w=s[f];l.path=(n.path?`${n.path}.`:"")+f,g=g.resolve({value:w,context:n.context,parent:u});let E=g instanceof Pt?g.spec:void 0,O=E==null?void 0:E.strict;if(E!=null&&E.strip){c=c||f in s;continue}v=!n.__validating||!O?g.cast(s[f],l):s[f],v!==void 0&&(u[f]=v)}else p&&!o&&(u[f]=s[f]);(p!==f in u||u[f]!==s[f])&&(c=!0)}return c?u:s}_validate(t,n={},r,s){let{from:i=[],originalValue:o=t,recursive:a=this.spec.recursive}=n;n.from=[{schema:this,value:o},...i],n.__validating=!0,n.originalValue=o,super._validate(t,n,r,(u,l)=>{if(!a||!Ul(l)){s(u,l);return}o=o||l;let c=[];for(let f of this._nodes){let g=this.fields[f];!g||zn.isRef(g)||c.push(g.asNestedTest({options:n,key:f,parent:l,parentPath:n.path,originalParent:o}))}this.runTests({tests:c,value:l,originalValue:o,options:n},r,f=>{s(f.sort(this._sortErrors).concat(u),l)})})}clone(t){const n=super.clone(t);return n.fields=Object.assign({},this.fields),n._nodes=this._nodes,n._excludedEdges=this._excludedEdges,n._sortErrors=this._sortErrors,n}concat(t){let n=super.concat(t),r=n.fields;for(let[s,i]of Object.entries(this.fields)){const o=r[s];r[s]=o===void 0?i:o}return n.withMutation(s=>s.setFields(r,[...this._excludedEdges,...t._excludedEdges]))}_getDefault(t){if("default"in this.spec)return super._getDefault(t);if(!this._nodes.length)return;let n={};return this._nodes.forEach(r=>{var s;const i=this.fields[r];let o=t;(s=o)!=null&&s.value&&(o=Object.assign({},o,{parent:o.value,value:o.value[r]})),n[r]=i&&"getDefault"in i?i.getDefault(o):void 0}),n}setFields(t,n){let r=this.clone();return r.fields=t,r._nodes=iv(t,n),r._sortErrors=Wf(Object.keys(t)),n&&(r._excludedEdges=n),r}shape(t,n=[]){return this.clone().withMutation(r=>{let s=r._excludedEdges;return n.length&&(Array.isArray(n[0])||(n=[n]),s=[...r._excludedEdges,...n]),r.setFields(Object.assign(r.fields,t),s)})}partial(){const t={};for(const[n,r]of Object.entries(this.fields))t[n]="optional"in r&&r.optional instanceof Function?r.optional():r;return this.setFields(t)}deepPartial(){return Ss(this)}pick(t){const n={};for(const r of t)this.fields[r]&&(n[r]=this.fields[r]);return this.setFields(n,this._excludedEdges.filter(([r,s])=>t.includes(r)&&t.includes(s)))}omit(t){const n=[];for(const r of Object.keys(this.fields))t.includes(r)||n.push(r);return this.pick(n)}from(t,n,r){let s=Un.getter(t,!0);return this.transform(i=>{if(!i)return i;let o=i;return av(i,t)&&(o=Object.assign({},i),r||delete o[t],o[n]=s(i)),o})}json(){return this.transform(ov)}noUnknown(t=!0,n=So.noUnknown){typeof t!="boolean"&&(n=t,t=!0);let r=this.test({name:"noUnknown",exclusive:!0,message:n,test(s){if(s==null)return!0;const i=uv(this.schema,s);return!t||i.length===0||this.createError({params:{unknown:i.join(", ")}})}});return r.spec.noUnknown=t,r}unknown(t=!0,n=So.noUnknown){return this.noUnknown(!t,n)}transformKeys(t){return this.transform(n=>{if(!n)return n;const r={};for(const s of Object.keys(n))r[t(s)]=n[s];return r})}camelCase(){return this.transformKeys(Wi.camelCase)}snakeCase(){return this.transformKeys(Wi.snakeCase)}constantCase(){return this.transformKeys(t=>Wi.snakeCase(t).toUpperCase())}describe(t){const n=(t?this.resolve(t):this).clone(),r=super.describe(t);r.fields={};for(const[i,o]of Object.entries(n.fields)){var s;let a=t;(s=a)!=null&&s.value&&(a=Object.assign({},a,{parent:a.value,value:a.value[i]})),r.fields[i]=o.describe(a)}return r}}zf.prototype=Kf.prototype;//! moment.js -//! version : 2.30.1 -//! authors : Tim Wood, Iskren Chernev, Moment.js contributors -//! license : MIT -//! momentjs.com -var Gf;function N(){return Gf.apply(null,arguments)}function cv(e){Gf=e}function Vt(e){return e instanceof Array||Object.prototype.toString.call(e)==="[object Array]"}function Ln(e){return e!=null&&Object.prototype.toString.call(e)==="[object Object]"}function ge(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function Sa(e){if(Object.getOwnPropertyNames)return Object.getOwnPropertyNames(e).length===0;var t;for(t in e)if(ge(e,t))return!1;return!0}function dt(e){return e===void 0}function dn(e){return typeof e=="number"||Object.prototype.toString.call(e)==="[object Number]"}function is(e){return e instanceof Date||Object.prototype.toString.call(e)==="[object Date]"}function qf(e,t){var n=[],r,s=e.length;for(r=0;r>>0,r;for(r=0;r0)for(n=0;n=0;return(i?n?"+":"":"-")+Math.pow(10,Math.max(0,s)).toString().substr(1)+r}var Da=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|N{1,5}|YYYYYY|YYYYY|YYYY|YY|y{2,4}|yo?|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,ms=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,Ki={},ar={};function K(e,t,n,r){var s=r;typeof r=="string"&&(s=function(){return this[r]()}),e&&(ar[e]=s),t&&(ar[t[0]]=function(){return Gt(s.apply(this,arguments),t[1],t[2])}),n&&(ar[n]=function(){return this.localeData().ordinal(s.apply(this,arguments),e)})}function _v(e){return e.match(/\[[\s\S]/)?e.replace(/^\[|\]$/g,""):e.replace(/\\/g,"")}function mv(e){var t=e.match(Da),n,r;for(n=0,r=t.length;n=0&&ms.test(e);)e=e.replace(ms,r),ms.lastIndex=0,n-=1;return e}var gv={LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"};function vv(e){var t=this._longDateFormat[e],n=this._longDateFormat[e.toUpperCase()];return t||!n?t:(this._longDateFormat[e]=n.match(Da).map(function(r){return r==="MMMM"||r==="MM"||r==="DD"||r==="dddd"?r.slice(1):r}).join(""),this._longDateFormat[e])}var yv="Invalid date";function Ev(){return this._invalidDate}var bv="%d",Ov=/\d{1,2}/;function Sv(e){return this._ordinal.replace("%d",e)}var wv={future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",w:"a week",ww:"%d weeks",M:"a month",MM:"%d months",y:"a year",yy:"%d years"};function xv(e,t,n,r){var s=this._relativeTime[n];return Zt(s)?s(e,t,n,r):s.replace(/%d/i,e)}function Tv(e,t){var n=this._relativeTime[e>0?"future":"past"];return Zt(n)?n(t):n.replace(/%s/i,t)}var $l={D:"date",dates:"date",date:"date",d:"day",days:"day",day:"day",e:"weekday",weekdays:"weekday",weekday:"weekday",E:"isoWeekday",isoweekdays:"isoWeekday",isoweekday:"isoWeekday",DDD:"dayOfYear",dayofyears:"dayOfYear",dayofyear:"dayOfYear",h:"hour",hours:"hour",hour:"hour",ms:"millisecond",milliseconds:"millisecond",millisecond:"millisecond",m:"minute",minutes:"minute",minute:"minute",M:"month",months:"month",month:"month",Q:"quarter",quarters:"quarter",quarter:"quarter",s:"second",seconds:"second",second:"second",gg:"weekYear",weekyears:"weekYear",weekyear:"weekYear",GG:"isoWeekYear",isoweekyears:"isoWeekYear",isoweekyear:"isoWeekYear",w:"week",weeks:"week",week:"week",W:"isoWeek",isoweeks:"isoWeek",isoweek:"isoWeek",y:"year",years:"year",year:"year"};function kt(e){return typeof e=="string"?$l[e]||$l[e.toLowerCase()]:void 0}function Aa(e){var t={},n,r;for(r in e)ge(e,r)&&(n=kt(r),n&&(t[n]=e[r]));return t}var Dv={date:9,day:11,weekday:11,isoWeekday:11,dayOfYear:4,hour:13,millisecond:16,minute:14,month:8,quarter:7,second:15,weekYear:1,isoWeekYear:1,week:5,isoWeek:5,year:1};function Av(e){var t=[],n;for(n in e)ge(e,n)&&t.push({unit:n,priority:Dv[n]});return t.sort(function(r,s){return r.priority-s.priority}),t}var Qf=/\d/,bt=/\d\d/,ed=/\d{3}/,ka=/\d{4}/,pi=/[+-]?\d{6}/,Re=/\d\d?/,td=/\d\d\d\d?/,nd=/\d\d\d\d\d\d?/,_i=/\d{1,3}/,Ca=/\d{1,4}/,mi=/[+-]?\d{1,6}/,mr=/\d+/,gi=/[+-]?\d+/,kv=/Z|[+-]\d\d:?\d\d/gi,vi=/Z|[+-]\d\d(?::?\d\d)?/gi,Cv=/[+-]?\d+(\.\d{1,3})?/,as=/[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i,gr=/^[1-9]\d?/,Ma=/^([1-9]\d|\d)/,Bs;Bs={};function Y(e,t,n){Bs[e]=Zt(t)?t:function(r,s){return r&&n?n:t}}function Mv(e,t){return ge(Bs,e)?Bs[e](t._strict,t._locale):new RegExp(Fv(e))}function Fv(e){return cn(e.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,function(t,n,r,s,i){return n||r||s||i}))}function cn(e){return e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}function xt(e){return e<0?Math.ceil(e)||0:Math.floor(e)}function ce(e){var t=+e,n=0;return t!==0&&isFinite(t)&&(n=xt(t)),n}var Ao={};function xe(e,t){var n,r=t,s;for(typeof e=="string"&&(e=[e]),dn(t)&&(r=function(i,o){o[t]=ce(i)}),s=e.length,n=0;n68?1900:2e3)};var rd=vr("FullYear",!0);function Vv(){return yi(this.year())}function vr(e,t){return function(n){return n!=null?(sd(this,e,n),N.updateOffset(this,t),this):Zr(this,e)}}function Zr(e,t){if(!e.isValid())return NaN;var n=e._d,r=e._isUTC;switch(t){case"Milliseconds":return r?n.getUTCMilliseconds():n.getMilliseconds();case"Seconds":return r?n.getUTCSeconds():n.getSeconds();case"Minutes":return r?n.getUTCMinutes():n.getMinutes();case"Hours":return r?n.getUTCHours():n.getHours();case"Date":return r?n.getUTCDate():n.getDate();case"Day":return r?n.getUTCDay():n.getDay();case"Month":return r?n.getUTCMonth():n.getMonth();case"FullYear":return r?n.getUTCFullYear():n.getFullYear();default:return NaN}}function sd(e,t,n){var r,s,i,o,a;if(!(!e.isValid()||isNaN(n))){switch(r=e._d,s=e._isUTC,t){case"Milliseconds":return void(s?r.setUTCMilliseconds(n):r.setMilliseconds(n));case"Seconds":return void(s?r.setUTCSeconds(n):r.setSeconds(n));case"Minutes":return void(s?r.setUTCMinutes(n):r.setMinutes(n));case"Hours":return void(s?r.setUTCHours(n):r.setHours(n));case"Date":return void(s?r.setUTCDate(n):r.setDate(n));case"FullYear":break;default:return}i=n,o=e.month(),a=e.date(),a=a===29&&o===1&&!yi(i)?28:a,s?r.setUTCFullYear(i,o,a):r.setFullYear(i,o,a)}}function Nv(e){return e=kt(e),Zt(this[e])?this[e]():this}function Uv(e,t){if(typeof e=="object"){e=Aa(e);var n=Av(e),r,s=n.length;for(r=0;r=0?(a=new Date(e+400,t,n,r,s,i,o),isFinite(a.getFullYear())&&a.setFullYear(e)):a=new Date(e,t,n,r,s,i,o),a}function Jr(e){var t,n;return e<100&&e>=0?(n=Array.prototype.slice.call(arguments),n[0]=e+400,t=new Date(Date.UTC.apply(null,n)),isFinite(t.getUTCFullYear())&&t.setUTCFullYear(e)):t=new Date(Date.UTC.apply(null,arguments)),t}function Hs(e,t,n){var r=7+t-n,s=(7+Jr(e,0,r).getUTCDay()-t)%7;return-s+r-1}function cd(e,t,n,r,s){var i=(7+n-r)%7,o=Hs(e,r,s),a=1+7*(t-1)+i+o,u,l;return a<=0?(u=e-1,l=Ur(u)+a):a>Ur(e)?(u=e+1,l=a-Ur(e)):(u=e,l=a),{year:u,dayOfYear:l}}function Xr(e,t,n){var r=Hs(e.year(),t,n),s=Math.floor((e.dayOfYear()-r-1)/7)+1,i,o;return s<1?(o=e.year()-1,i=s+fn(o,t,n)):s>fn(e.year(),t,n)?(i=s-fn(e.year(),t,n),o=e.year()+1):(o=e.year(),i=s),{week:i,year:o}}function fn(e,t,n){var r=Hs(e,t,n),s=Hs(e+1,t,n);return(Ur(e)-r+s)/7}K("w",["ww",2],"wo","week");K("W",["WW",2],"Wo","isoWeek");Y("w",Re,gr);Y("ww",Re,bt);Y("W",Re,gr);Y("WW",Re,bt);us(["w","ww","W","WW"],function(e,t,n,r){t[r.substr(0,1)]=ce(e)});function Jv(e){return Xr(e,this._week.dow,this._week.doy).week}var Xv={dow:0,doy:6};function Qv(){return this._week.dow}function ey(){return this._week.doy}function ty(e){var t=this.localeData().week(this);return e==null?t:this.add((e-t)*7,"d")}function ny(e){var t=Xr(this,1,4).week;return e==null?t:this.add((e-t)*7,"d")}K("d",0,"do","day");K("dd",0,0,function(e){return this.localeData().weekdaysMin(this,e)});K("ddd",0,0,function(e){return this.localeData().weekdaysShort(this,e)});K("dddd",0,0,function(e){return this.localeData().weekdays(this,e)});K("e",0,0,"weekday");K("E",0,0,"isoWeekday");Y("d",Re);Y("e",Re);Y("E",Re);Y("dd",function(e,t){return t.weekdaysMinRegex(e)});Y("ddd",function(e,t){return t.weekdaysShortRegex(e)});Y("dddd",function(e,t){return t.weekdaysRegex(e)});us(["dd","ddd","dddd"],function(e,t,n,r){var s=n._locale.weekdaysParse(e,r,n._strict);s!=null?t.d=s:se(n).invalidWeekday=e});us(["d","e","E"],function(e,t,n,r){t[r]=ce(e)});function ry(e,t){return typeof e!="string"?e:isNaN(e)?(e=t.weekdaysParse(e),typeof e=="number"?e:null):parseInt(e,10)}function sy(e,t){return typeof e=="string"?t.weekdaysParse(e)%7||7:isNaN(e)?null:e}function Ia(e,t){return e.slice(t,7).concat(e.slice(0,t))}var iy="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),fd="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),oy="Su_Mo_Tu_We_Th_Fr_Sa".split("_"),ay=as,uy=as,ly=as;function cy(e,t){var n=Vt(this._weekdays)?this._weekdays:this._weekdays[e&&e!==!0&&this._weekdays.isFormat.test(t)?"format":"standalone"];return e===!0?Ia(n,this._week.dow):e?n[e.day()]:n}function fy(e){return e===!0?Ia(this._weekdaysShort,this._week.dow):e?this._weekdaysShort[e.day()]:this._weekdaysShort}function dy(e){return e===!0?Ia(this._weekdaysMin,this._week.dow):e?this._weekdaysMin[e.day()]:this._weekdaysMin}function hy(e,t,n){var r,s,i,o=e.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],r=0;r<7;++r)i=qt([2e3,1]).day(r),this._minWeekdaysParse[r]=this.weekdaysMin(i,"").toLocaleLowerCase(),this._shortWeekdaysParse[r]=this.weekdaysShort(i,"").toLocaleLowerCase(),this._weekdaysParse[r]=this.weekdays(i,"").toLocaleLowerCase();return n?t==="dddd"?(s=We.call(this._weekdaysParse,o),s!==-1?s:null):t==="ddd"?(s=We.call(this._shortWeekdaysParse,o),s!==-1?s:null):(s=We.call(this._minWeekdaysParse,o),s!==-1?s:null):t==="dddd"?(s=We.call(this._weekdaysParse,o),s!==-1||(s=We.call(this._shortWeekdaysParse,o),s!==-1)?s:(s=We.call(this._minWeekdaysParse,o),s!==-1?s:null)):t==="ddd"?(s=We.call(this._shortWeekdaysParse,o),s!==-1||(s=We.call(this._weekdaysParse,o),s!==-1)?s:(s=We.call(this._minWeekdaysParse,o),s!==-1?s:null)):(s=We.call(this._minWeekdaysParse,o),s!==-1||(s=We.call(this._weekdaysParse,o),s!==-1)?s:(s=We.call(this._shortWeekdaysParse,o),s!==-1?s:null))}function py(e,t,n){var r,s,i;if(this._weekdaysParseExact)return hy.call(this,e,t,n);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),r=0;r<7;r++){if(s=qt([2e3,1]).day(r),n&&!this._fullWeekdaysParse[r]&&(this._fullWeekdaysParse[r]=new RegExp("^"+this.weekdays(s,"").replace(".","\\.?")+"$","i"),this._shortWeekdaysParse[r]=new RegExp("^"+this.weekdaysShort(s,"").replace(".","\\.?")+"$","i"),this._minWeekdaysParse[r]=new RegExp("^"+this.weekdaysMin(s,"").replace(".","\\.?")+"$","i")),this._weekdaysParse[r]||(i="^"+this.weekdays(s,"")+"|^"+this.weekdaysShort(s,"")+"|^"+this.weekdaysMin(s,""),this._weekdaysParse[r]=new RegExp(i.replace(".",""),"i")),n&&t==="dddd"&&this._fullWeekdaysParse[r].test(e))return r;if(n&&t==="ddd"&&this._shortWeekdaysParse[r].test(e))return r;if(n&&t==="dd"&&this._minWeekdaysParse[r].test(e))return r;if(!n&&this._weekdaysParse[r].test(e))return r}}function _y(e){if(!this.isValid())return e!=null?this:NaN;var t=Zr(this,"Day");return e!=null?(e=ry(e,this.localeData()),this.add(e-t,"d")):t}function my(e){if(!this.isValid())return e!=null?this:NaN;var t=(this.day()+7-this.localeData()._week.dow)%7;return e==null?t:this.add(e-t,"d")}function gy(e){if(!this.isValid())return e!=null?this:NaN;if(e!=null){var t=sy(e,this.localeData());return this.day(this.day()%7?t:t-7)}else return this.day()||7}function vy(e){return this._weekdaysParseExact?(ge(this,"_weekdaysRegex")||Ra.call(this),e?this._weekdaysStrictRegex:this._weekdaysRegex):(ge(this,"_weekdaysRegex")||(this._weekdaysRegex=ay),this._weekdaysStrictRegex&&e?this._weekdaysStrictRegex:this._weekdaysRegex)}function yy(e){return this._weekdaysParseExact?(ge(this,"_weekdaysRegex")||Ra.call(this),e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(ge(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=uy),this._weekdaysShortStrictRegex&&e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)}function Ey(e){return this._weekdaysParseExact?(ge(this,"_weekdaysRegex")||Ra.call(this),e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(ge(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=ly),this._weekdaysMinStrictRegex&&e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)}function Ra(){function e(c,f){return f.length-c.length}var t=[],n=[],r=[],s=[],i,o,a,u,l;for(i=0;i<7;i++)o=qt([2e3,1]).day(i),a=cn(this.weekdaysMin(o,"")),u=cn(this.weekdaysShort(o,"")),l=cn(this.weekdays(o,"")),t.push(a),n.push(u),r.push(l),s.push(a),s.push(u),s.push(l);t.sort(e),n.sort(e),r.sort(e),s.sort(e),this._weekdaysRegex=new RegExp("^("+s.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+r.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+n.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+t.join("|")+")","i")}function Pa(){return this.hours()%12||12}function by(){return this.hours()||24}K("H",["HH",2],0,"hour");K("h",["hh",2],0,Pa);K("k",["kk",2],0,by);K("hmm",0,0,function(){return""+Pa.apply(this)+Gt(this.minutes(),2)});K("hmmss",0,0,function(){return""+Pa.apply(this)+Gt(this.minutes(),2)+Gt(this.seconds(),2)});K("Hmm",0,0,function(){return""+this.hours()+Gt(this.minutes(),2)});K("Hmmss",0,0,function(){return""+this.hours()+Gt(this.minutes(),2)+Gt(this.seconds(),2)});function dd(e,t){K(e,0,0,function(){return this.localeData().meridiem(this.hours(),this.minutes(),t)})}dd("a",!0);dd("A",!1);function hd(e,t){return t._meridiemParse}Y("a",hd);Y("A",hd);Y("H",Re,Ma);Y("h",Re,gr);Y("k",Re,gr);Y("HH",Re,bt);Y("hh",Re,bt);Y("kk",Re,bt);Y("hmm",td);Y("hmmss",nd);Y("Hmm",td);Y("Hmmss",nd);xe(["H","HH"],ze);xe(["k","kk"],function(e,t,n){var r=ce(e);t[ze]=r===24?0:r});xe(["a","A"],function(e,t,n){n._isPm=n._locale.isPM(e),n._meridiem=e});xe(["h","hh"],function(e,t,n){t[ze]=ce(e),se(n).bigHour=!0});xe("hmm",function(e,t,n){var r=e.length-2;t[ze]=ce(e.substr(0,r)),t[Ft]=ce(e.substr(r)),se(n).bigHour=!0});xe("hmmss",function(e,t,n){var r=e.length-4,s=e.length-2;t[ze]=ce(e.substr(0,r)),t[Ft]=ce(e.substr(r,2)),t[ln]=ce(e.substr(s)),se(n).bigHour=!0});xe("Hmm",function(e,t,n){var r=e.length-2;t[ze]=ce(e.substr(0,r)),t[Ft]=ce(e.substr(r))});xe("Hmmss",function(e,t,n){var r=e.length-4,s=e.length-2;t[ze]=ce(e.substr(0,r)),t[Ft]=ce(e.substr(r,2)),t[ln]=ce(e.substr(s))});function Oy(e){return(e+"").toLowerCase().charAt(0)==="p"}var Sy=/[ap]\.?m?\.?/i,wy=vr("Hours",!0);function xy(e,t,n){return e>11?n?"pm":"PM":n?"am":"AM"}var pd={calendar:hv,longDateFormat:gv,invalidDate:yv,ordinal:bv,dayOfMonthOrdinalParse:Ov,relativeTime:wv,months:Yv,monthsShort:id,week:Xv,weekdays:iy,weekdaysMin:oy,weekdaysShort:fd,meridiemParse:Sy},Ve={},Sr={},Qr;function Ty(e,t){var n,r=Math.min(e.length,t.length);for(n=0;n0;){if(s=Ei(i.slice(0,n).join("-")),s)return s;if(r&&r.length>=n&&Ty(i,r)>=n-1)break;n--}t++}return Qr}function Ay(e){return!!(e&&e.match("^[^/\\\\]*$"))}function Ei(e){var t=null,n;if(Ve[e]===void 0&&typeof Ds<"u"&&Ds&&Ds.exports&&Ay(e))try{t=Qr._abbr,n=require,n("./locale/"+e),wn(t)}catch{Ve[e]=null}return Ve[e]}function wn(e,t){var n;return e&&(dt(t)?n=pn(e):n=Va(e,t),n?Qr=n:typeof console<"u"&&console.warn&&console.warn("Locale "+e+" not found. Did you forget to load it?")),Qr._abbr}function Va(e,t){if(t!==null){var n,r=pd;if(t.abbr=e,Ve[e]!=null)Jf("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),r=Ve[e]._config;else if(t.parentLocale!=null)if(Ve[t.parentLocale]!=null)r=Ve[t.parentLocale]._config;else if(n=Ei(t.parentLocale),n!=null)r=n._config;else return Sr[t.parentLocale]||(Sr[t.parentLocale]=[]),Sr[t.parentLocale].push({name:e,config:t}),null;return Ve[e]=new Ta(To(r,t)),Sr[e]&&Sr[e].forEach(function(s){Va(s.name,s.config)}),wn(e),Ve[e]}else return delete Ve[e],null}function ky(e,t){if(t!=null){var n,r,s=pd;Ve[e]!=null&&Ve[e].parentLocale!=null?Ve[e].set(To(Ve[e]._config,t)):(r=Ei(e),r!=null&&(s=r._config),t=To(s,t),r==null&&(t.abbr=e),n=new Ta(t),n.parentLocale=Ve[e],Ve[e]=n),wn(e)}else Ve[e]!=null&&(Ve[e].parentLocale!=null?(Ve[e]=Ve[e].parentLocale,e===wn()&&wn(e)):Ve[e]!=null&&delete Ve[e]);return Ve[e]}function pn(e){var t;if(e&&e._locale&&e._locale._abbr&&(e=e._locale._abbr),!e)return Qr;if(!Vt(e)){if(t=Ei(e),t)return t;e=[e]}return Dy(e)}function Cy(){return Do(Ve)}function Na(e){var t,n=e._a;return n&&se(e).overflow===-2&&(t=n[un]<0||n[un]>11?un:n[Ht]<1||n[Ht]>Fa(n[nt],n[un])?Ht:n[ze]<0||n[ze]>24||n[ze]===24&&(n[Ft]!==0||n[ln]!==0||n[Pn]!==0)?ze:n[Ft]<0||n[Ft]>59?Ft:n[ln]<0||n[ln]>59?ln:n[Pn]<0||n[Pn]>999?Pn:-1,se(e)._overflowDayOfYear&&(tHt)&&(t=Ht),se(e)._overflowWeeks&&t===-1&&(t=Rv),se(e)._overflowWeekday&&t===-1&&(t=Pv),se(e).overflow=t),e}var My=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/,Fy=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d|))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([+-]\d\d(?::?\d\d)?|\s*Z)?)?$/,Iy=/Z|[+-]\d\d(?::?\d\d)?/,gs=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/],["YYYYMM",/\d{6}/,!1],["YYYY",/\d{4}/,!1]],Gi=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],Ry=/^\/?Date\((-?\d+)/i,Py=/^(?:(Mon|Tue|Wed|Thu|Fri|Sat|Sun),?\s)?(\d{1,2})\s(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)\s(\d{2,4})\s(\d\d):(\d\d)(?::(\d\d))?\s(?:(UT|GMT|[ECMP][SD]T)|([Zz])|([+-]\d{4}))$/,Vy={UT:0,GMT:0,EDT:-4*60,EST:-5*60,CDT:-5*60,CST:-6*60,MDT:-6*60,MST:-7*60,PDT:-7*60,PST:-8*60};function _d(e){var t,n,r=e._i,s=My.exec(r)||Fy.exec(r),i,o,a,u,l=gs.length,c=Gi.length;if(s){for(se(e).iso=!0,t=0,n=l;tUr(o)||e._dayOfYear===0)&&(se(e)._overflowDayOfYear=!0),n=Jr(o,0,e._dayOfYear),e._a[un]=n.getUTCMonth(),e._a[Ht]=n.getUTCDate()),t=0;t<3&&e._a[t]==null;++t)e._a[t]=r[t]=s[t];for(;t<7;t++)e._a[t]=r[t]=e._a[t]==null?t===2?1:0:e._a[t];e._a[ze]===24&&e._a[Ft]===0&&e._a[ln]===0&&e._a[Pn]===0&&(e._nextDay=!0,e._a[ze]=0),e._d=(e._useUTC?Jr:Zv).apply(null,r),i=e._useUTC?e._d.getUTCDay():e._d.getDay(),e._tzm!=null&&e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),e._nextDay&&(e._a[ze]=24),e._w&&typeof e._w.d<"u"&&e._w.d!==i&&(se(e).weekdayMismatch=!0)}}function Hy(e){var t,n,r,s,i,o,a,u,l;t=e._w,t.GG!=null||t.W!=null||t.E!=null?(i=1,o=4,n=Qn(t.GG,e._a[nt],Xr(Ie(),1,4).year),r=Qn(t.W,1),s=Qn(t.E,1),(s<1||s>7)&&(u=!0)):(i=e._locale._week.dow,o=e._locale._week.doy,l=Xr(Ie(),i,o),n=Qn(t.gg,e._a[nt],l.year),r=Qn(t.w,l.week),t.d!=null?(s=t.d,(s<0||s>6)&&(u=!0)):t.e!=null?(s=t.e+i,(t.e<0||t.e>6)&&(u=!0)):s=i),r<1||r>fn(n,i,o)?se(e)._overflowWeeks=!0:u!=null?se(e)._overflowWeekday=!0:(a=cd(n,r,s,i,o),e._a[nt]=a.year,e._dayOfYear=a.dayOfYear)}N.ISO_8601=function(){};N.RFC_2822=function(){};function La(e){if(e._f===N.ISO_8601){_d(e);return}if(e._f===N.RFC_2822){md(e);return}e._a=[],se(e).empty=!0;var t=""+e._i,n,r,s,i,o,a=t.length,u=0,l,c;for(s=Xf(e._f,e._locale).match(Da)||[],c=s.length,n=0;n0&&se(e).unusedInput.push(o),t=t.slice(t.indexOf(r)+r.length),u+=r.length),ar[i]?(r?se(e).empty=!1:se(e).unusedTokens.push(i),Iv(i,r,e)):e._strict&&!r&&se(e).unusedTokens.push(i);se(e).charsLeftOver=a-u,t.length>0&&se(e).unusedInput.push(t),e._a[ze]<=12&&se(e).bigHour===!0&&e._a[ze]>0&&(se(e).bigHour=void 0),se(e).parsedDateParts=e._a.slice(0),se(e).meridiem=e._meridiem,e._a[ze]=Wy(e._locale,e._a[ze],e._meridiem),l=se(e).era,l!==null&&(e._a[nt]=e._locale.erasConvertYear(l,e._a[nt])),Ua(e),Na(e)}function Wy(e,t,n){var r;return n==null?t:e.meridiemHour!=null?e.meridiemHour(t,n):(e.isPM!=null&&(r=e.isPM(n),r&&t<12&&(t+=12),!r&&t===12&&(t=0)),t)}function zy(e){var t,n,r,s,i,o,a=!1,u=e._f.length;if(u===0){se(e).invalidFormat=!0,e._d=new Date(NaN);return}for(s=0;sthis?this:e:hi()});function yd(e,t){var n,r;if(t.length===1&&Vt(t[0])&&(t=t[0]),!t.length)return Ie();for(n=t[0],r=1;rthis.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()}function h1(){if(!dt(this._isDSTShifted))return this._isDSTShifted;var e={},t;return xa(e,this),e=gd(e),e._a?(t=e._isUTC?qt(e._a):Ie(e._a),this._isDSTShifted=this.isValid()&&s1(e._a,t.toArray())>0):this._isDSTShifted=!1,this._isDSTShifted}function p1(){return this.isValid()?!this._isUTC:!1}function _1(){return this.isValid()?this._isUTC:!1}function bd(){return this.isValid()?this._isUTC&&this._offset===0:!1}var m1=/^(-|\+)?(?:(\d*)[. ])?(\d+):(\d+)(?::(\d+)(\.\d*)?)?$/,g1=/^(-|\+)?P(?:([-+]?[0-9,.]*)Y)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)W)?(?:([-+]?[0-9,.]*)D)?(?:T(?:([-+]?[0-9,.]*)H)?(?:([-+]?[0-9,.]*)M)?(?:([-+]?[0-9,.]*)S)?)?$/;function Ut(e,t){var n=e,r=null,s,i,o;return xs(e)?n={ms:e._milliseconds,d:e._days,M:e._months}:dn(e)||!isNaN(+e)?(n={},t?n[t]=+e:n.milliseconds=+e):(r=m1.exec(e))?(s=r[1]==="-"?-1:1,n={y:0,d:ce(r[Ht])*s,h:ce(r[ze])*s,m:ce(r[Ft])*s,s:ce(r[ln])*s,ms:ce(ko(r[Pn]*1e3))*s}):(r=g1.exec(e))?(s=r[1]==="-"?-1:1,n={y:Cn(r[2],s),M:Cn(r[3],s),w:Cn(r[4],s),d:Cn(r[5],s),h:Cn(r[6],s),m:Cn(r[7],s),s:Cn(r[8],s)}):n==null?n={}:typeof n=="object"&&("from"in n||"to"in n)&&(o=v1(Ie(n.from),Ie(n.to)),n={},n.ms=o.milliseconds,n.M=o.months),i=new bi(n),xs(e)&&ge(e,"_locale")&&(i._locale=e._locale),xs(e)&&ge(e,"_isValid")&&(i._isValid=e._isValid),i}Ut.fn=bi.prototype;Ut.invalid=r1;function Cn(e,t){var n=e&&parseFloat(e.replace(",","."));return(isNaN(n)?0:n)*t}function Bl(e,t){var n={};return n.months=t.month()-e.month()+(t.year()-e.year())*12,e.clone().add(n.months,"M").isAfter(t)&&--n.months,n.milliseconds=+t-+e.clone().add(n.months,"M"),n}function v1(e,t){var n;return e.isValid()&&t.isValid()?(t=$a(t,e),e.isBefore(t)?n=Bl(e,t):(n=Bl(t,e),n.milliseconds=-n.milliseconds,n.months=-n.months),n):{milliseconds:0,months:0}}function Od(e,t){return function(n,r){var s,i;return r!==null&&!isNaN(+r)&&(Jf(t,"moment()."+t+"(period, number) is deprecated. Please use moment()."+t+"(number, period). See http://momentjs.com/guides/#/warnings/add-inverted-param/ for more info."),i=n,n=r,r=i),s=Ut(n,r),Sd(this,s,e),this}}function Sd(e,t,n,r){var s=t._milliseconds,i=ko(t._days),o=ko(t._months);e.isValid()&&(r=r??!0,o&&ad(e,Zr(e,"Month")+o*n),i&&sd(e,"Date",Zr(e,"Date")+i*n),s&&e._d.setTime(e._d.valueOf()+s*n),r&&N.updateOffset(e,i||o))}var y1=Od(1,"add"),E1=Od(-1,"subtract");function wd(e){return typeof e=="string"||e instanceof String}function b1(e){return Nt(e)||is(e)||wd(e)||dn(e)||S1(e)||O1(e)||e===null||e===void 0}function O1(e){var t=Ln(e)&&!Sa(e),n=!1,r=["years","year","y","months","month","M","days","day","d","dates","date","D","hours","hour","h","minutes","minute","m","seconds","second","s","milliseconds","millisecond","ms"],s,i,o=r.length;for(s=0;sn.valueOf():n.valueOf()9999?ws(n,t?"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ"):Zt(Date.prototype.toISOString)?t?this.toDate().toISOString():new Date(this.valueOf()+this.utcOffset()*60*1e3).toISOString().replace("Z",ws(n,"Z")):ws(n,t?"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYY-MM-DD[T]HH:mm:ss.SSSZ")}function N1(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var e="moment",t="",n,r,s,i;return this.isLocal()||(e=this.utcOffset()===0?"moment.utc":"moment.parseZone",t="Z"),n="["+e+'("]',r=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",s="-MM-DD[T]HH:mm:ss.SSS",i=t+'[")]',this.format(n+r+s+i)}function U1(e){e||(e=this.isUtc()?N.defaultFormatUtc:N.defaultFormat);var t=ws(this,e);return this.localeData().postformat(t)}function L1(e,t){return this.isValid()&&(Nt(e)&&e.isValid()||Ie(e).isValid())?Ut({to:this,from:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()}function Y1(e){return this.from(Ie(),e)}function $1(e,t){return this.isValid()&&(Nt(e)&&e.isValid()||Ie(e).isValid())?Ut({from:this,to:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()}function j1(e){return this.to(Ie(),e)}function xd(e){var t;return e===void 0?this._locale._abbr:(t=pn(e),t!=null&&(this._locale=t),this)}var Td=At("moment().lang() is deprecated. Instead, use moment().localeData() to get the language configuration. Use moment().locale() to change languages.",function(e){return e===void 0?this.localeData():this.locale(e)});function Dd(){return this._locale}var Ws=1e3,ur=60*Ws,zs=60*ur,Ad=(365*400+97)*24*zs;function lr(e,t){return(e%t+t)%t}function kd(e,t,n){return e<100&&e>=0?new Date(e+400,t,n)-Ad:new Date(e,t,n).valueOf()}function Cd(e,t,n){return e<100&&e>=0?Date.UTC(e+400,t,n)-Ad:Date.UTC(e,t,n)}function B1(e){var t,n;if(e=kt(e),e===void 0||e==="millisecond"||!this.isValid())return this;switch(n=this._isUTC?Cd:kd,e){case"year":t=n(this.year(),0,1);break;case"quarter":t=n(this.year(),this.month()-this.month()%3,1);break;case"month":t=n(this.year(),this.month(),1);break;case"week":t=n(this.year(),this.month(),this.date()-this.weekday());break;case"isoWeek":t=n(this.year(),this.month(),this.date()-(this.isoWeekday()-1));break;case"day":case"date":t=n(this.year(),this.month(),this.date());break;case"hour":t=this._d.valueOf(),t-=lr(t+(this._isUTC?0:this.utcOffset()*ur),zs);break;case"minute":t=this._d.valueOf(),t-=lr(t,ur);break;case"second":t=this._d.valueOf(),t-=lr(t,Ws);break}return this._d.setTime(t),N.updateOffset(this,!0),this}function H1(e){var t,n;if(e=kt(e),e===void 0||e==="millisecond"||!this.isValid())return this;switch(n=this._isUTC?Cd:kd,e){case"year":t=n(this.year()+1,0,1)-1;break;case"quarter":t=n(this.year(),this.month()-this.month()%3+3,1)-1;break;case"month":t=n(this.year(),this.month()+1,1)-1;break;case"week":t=n(this.year(),this.month(),this.date()-this.weekday()+7)-1;break;case"isoWeek":t=n(this.year(),this.month(),this.date()-(this.isoWeekday()-1)+7)-1;break;case"day":case"date":t=n(this.year(),this.month(),this.date()+1)-1;break;case"hour":t=this._d.valueOf(),t+=zs-lr(t+(this._isUTC?0:this.utcOffset()*ur),zs)-1;break;case"minute":t=this._d.valueOf(),t+=ur-lr(t,ur)-1;break;case"second":t=this._d.valueOf(),t+=Ws-lr(t,Ws)-1;break}return this._d.setTime(t),N.updateOffset(this,!0),this}function W1(){return this._d.valueOf()-(this._offset||0)*6e4}function z1(){return Math.floor(this.valueOf()/1e3)}function K1(){return new Date(this.valueOf())}function G1(){var e=this;return[e.year(),e.month(),e.date(),e.hour(),e.minute(),e.second(),e.millisecond()]}function q1(){var e=this;return{years:e.year(),months:e.month(),date:e.date(),hours:e.hours(),minutes:e.minutes(),seconds:e.seconds(),milliseconds:e.milliseconds()}}function Z1(){return this.isValid()?this.toISOString():null}function J1(){return wa(this)}function X1(){return En({},se(this))}function Q1(){return se(this).overflow}function eE(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}}K("N",0,0,"eraAbbr");K("NN",0,0,"eraAbbr");K("NNN",0,0,"eraAbbr");K("NNNN",0,0,"eraName");K("NNNNN",0,0,"eraNarrow");K("y",["y",1],"yo","eraYear");K("y",["yy",2],0,"eraYear");K("y",["yyy",3],0,"eraYear");K("y",["yyyy",4],0,"eraYear");Y("N",ja);Y("NN",ja);Y("NNN",ja);Y("NNNN",fE);Y("NNNNN",dE);xe(["N","NN","NNN","NNNN","NNNNN"],function(e,t,n,r){var s=n._locale.erasParse(e,r,n._strict);s?se(n).era=s:se(n).invalidEra=e});Y("y",mr);Y("yy",mr);Y("yyy",mr);Y("yyyy",mr);Y("yo",hE);xe(["y","yy","yyy","yyyy"],nt);xe(["yo"],function(e,t,n,r){var s;n._locale._eraYearOrdinalRegex&&(s=e.match(n._locale._eraYearOrdinalRegex)),n._locale.eraYearOrdinalParse?t[nt]=n._locale.eraYearOrdinalParse(e,s):t[nt]=parseInt(e,10)});function tE(e,t){var n,r,s,i=this._eras||pn("en")._eras;for(n=0,r=i.length;n=0)return i[r]}function rE(e,t){var n=e.since<=e.until?1:-1;return t===void 0?N(e.since).year():N(e.since).year()+(t-e.offset)*n}function sE(){var e,t,n,r=this.localeData().eras();for(e=0,t=r.length;ei&&(t=i),EE.call(this,e,t,n,r,s))}function EE(e,t,n,r,s){var i=cd(e,t,n,r,s),o=Jr(i.year,0,i.dayOfYear);return this.year(o.getUTCFullYear()),this.month(o.getUTCMonth()),this.date(o.getUTCDate()),this}K("Q",0,"Qo","quarter");Y("Q",Qf);xe("Q",function(e,t){t[un]=(ce(e)-1)*3});function bE(e){return e==null?Math.ceil((this.month()+1)/3):this.month((e-1)*3+this.month()%3)}K("D",["DD",2],"Do","date");Y("D",Re,gr);Y("DD",Re,bt);Y("Do",function(e,t){return e?t._dayOfMonthOrdinalParse||t._ordinalParse:t._dayOfMonthOrdinalParseLenient});xe(["D","DD"],Ht);xe("Do",function(e,t){t[Ht]=ce(e.match(Re)[0])});var Fd=vr("Date",!0);K("DDD",["DDDD",3],"DDDo","dayOfYear");Y("DDD",_i);Y("DDDD",ed);xe(["DDD","DDDD"],function(e,t,n){n._dayOfYear=ce(e)});function OE(e){var t=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return e==null?t:this.add(e-t,"d")}K("m",["mm",2],0,"minute");Y("m",Re,Ma);Y("mm",Re,bt);xe(["m","mm"],Ft);var SE=vr("Minutes",!1);K("s",["ss",2],0,"second");Y("s",Re,Ma);Y("ss",Re,bt);xe(["s","ss"],ln);var wE=vr("Seconds",!1);K("S",0,0,function(){return~~(this.millisecond()/100)});K(0,["SS",2],0,function(){return~~(this.millisecond()/10)});K(0,["SSS",3],0,"millisecond");K(0,["SSSS",4],0,function(){return this.millisecond()*10});K(0,["SSSSS",5],0,function(){return this.millisecond()*100});K(0,["SSSSSS",6],0,function(){return this.millisecond()*1e3});K(0,["SSSSSSS",7],0,function(){return this.millisecond()*1e4});K(0,["SSSSSSSS",8],0,function(){return this.millisecond()*1e5});K(0,["SSSSSSSSS",9],0,function(){return this.millisecond()*1e6});Y("S",_i,Qf);Y("SS",_i,bt);Y("SSS",_i,ed);var bn,Id;for(bn="SSSS";bn.length<=9;bn+="S")Y(bn,mr);function xE(e,t){t[Pn]=ce(("0."+e)*1e3)}for(bn="S";bn.length<=9;bn+="S")xe(bn,xE);Id=vr("Milliseconds",!1);K("z",0,0,"zoneAbbr");K("zz",0,0,"zoneName");function TE(){return this._isUTC?"UTC":""}function DE(){return this._isUTC?"Coordinated Universal Time":""}var k=os.prototype;k.add=y1;k.calendar=T1;k.clone=D1;k.diff=R1;k.endOf=H1;k.format=U1;k.from=L1;k.fromNow=Y1;k.to=$1;k.toNow=j1;k.get=Nv;k.invalidAt=Q1;k.isAfter=A1;k.isBefore=k1;k.isBetween=C1;k.isSame=M1;k.isSameOrAfter=F1;k.isSameOrBefore=I1;k.isValid=J1;k.lang=Td;k.locale=xd;k.localeData=Dd;k.max=Jy;k.min=Zy;k.parsingFlags=X1;k.set=Uv;k.startOf=B1;k.subtract=E1;k.toArray=G1;k.toObject=q1;k.toDate=K1;k.toISOString=V1;k.inspect=N1;typeof Symbol<"u"&&Symbol.for!=null&&(k[Symbol.for("nodejs.util.inspect.custom")]=function(){return"Moment<"+this.format()+">"});k.toJSON=Z1;k.toString=P1;k.unix=z1;k.valueOf=W1;k.creationData=eE;k.eraName=sE;k.eraNarrow=iE;k.eraAbbr=oE;k.eraYear=aE;k.year=rd;k.isLeapYear=Vv;k.weekYear=pE;k.isoWeekYear=_E;k.quarter=k.quarters=bE;k.month=ud;k.daysInMonth=Kv;k.week=k.weeks=ty;k.isoWeek=k.isoWeeks=ny;k.weeksInYear=vE;k.weeksInWeekYear=yE;k.isoWeeksInYear=mE;k.isoWeeksInISOWeekYear=gE;k.date=Fd;k.day=k.days=_y;k.weekday=my;k.isoWeekday=gy;k.dayOfYear=OE;k.hour=k.hours=wy;k.minute=k.minutes=SE;k.second=k.seconds=wE;k.millisecond=k.milliseconds=Id;k.utcOffset=o1;k.utc=u1;k.local=l1;k.parseZone=c1;k.hasAlignedHourOffset=f1;k.isDST=d1;k.isLocal=p1;k.isUtcOffset=_1;k.isUtc=bd;k.isUTC=bd;k.zoneAbbr=TE;k.zoneName=DE;k.dates=At("dates accessor is deprecated. Use date instead.",Fd);k.months=At("months accessor is deprecated. Use month instead",ud);k.years=At("years accessor is deprecated. Use year instead",rd);k.zone=At("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",a1);k.isDSTShifted=At("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",h1);function AE(e){return Ie(e*1e3)}function kE(){return Ie.apply(null,arguments).parseZone()}function Rd(e){return e}var ve=Ta.prototype;ve.calendar=pv;ve.longDateFormat=vv;ve.invalidDate=Ev;ve.ordinal=Sv;ve.preparse=Rd;ve.postformat=Rd;ve.relativeTime=xv;ve.pastFuture=Tv;ve.set=dv;ve.eras=tE;ve.erasParse=nE;ve.erasConvertYear=rE;ve.erasAbbrRegex=lE;ve.erasNameRegex=uE;ve.erasNarrowRegex=cE;ve.months=Bv;ve.monthsShort=Hv;ve.monthsParse=zv;ve.monthsRegex=qv;ve.monthsShortRegex=Gv;ve.week=Jv;ve.firstDayOfYear=ey;ve.firstDayOfWeek=Qv;ve.weekdays=cy;ve.weekdaysMin=dy;ve.weekdaysShort=fy;ve.weekdaysParse=py;ve.weekdaysRegex=vy;ve.weekdaysShortRegex=yy;ve.weekdaysMinRegex=Ey;ve.isPM=Oy;ve.meridiem=xy;function Ks(e,t,n,r){var s=pn(),i=qt().set(r,t);return s[n](i,e)}function Pd(e,t,n){if(dn(e)&&(t=e,e=void 0),e=e||"",t!=null)return Ks(e,t,n,"month");var r,s=[];for(r=0;r<12;r++)s[r]=Ks(e,r,n,"month");return s}function Ha(e,t,n,r){typeof e=="boolean"?(dn(t)&&(n=t,t=void 0),t=t||""):(t=e,n=t,e=!1,dn(t)&&(n=t,t=void 0),t=t||"");var s=pn(),i=e?s._week.dow:0,o,a=[];if(n!=null)return Ks(t,(n+i)%7,r,"day");for(o=0;o<7;o++)a[o]=Ks(t,(o+i)%7,r,"day");return a}function CE(e,t){return Pd(e,t,"months")}function ME(e,t){return Pd(e,t,"monthsShort")}function FE(e,t,n){return Ha(e,t,n,"weekdays")}function IE(e,t,n){return Ha(e,t,n,"weekdaysShort")}function RE(e,t,n){return Ha(e,t,n,"weekdaysMin")}wn("en",{eras:[{since:"0001-01-01",until:1/0,offset:1,name:"Anno Domini",narrow:"AD",abbr:"AD"},{since:"0000-12-31",until:-1/0,offset:1,name:"Before Christ",narrow:"BC",abbr:"BC"}],dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var t=e%10,n=ce(e%100/10)===1?"th":t===1?"st":t===2?"nd":t===3?"rd":"th";return e+n}});N.lang=At("moment.lang is deprecated. Use moment.locale instead.",wn);N.langData=At("moment.langData is deprecated. Use moment.localeData instead.",pn);var en=Math.abs;function PE(){var e=this._data;return this._milliseconds=en(this._milliseconds),this._days=en(this._days),this._months=en(this._months),e.milliseconds=en(e.milliseconds),e.seconds=en(e.seconds),e.minutes=en(e.minutes),e.hours=en(e.hours),e.months=en(e.months),e.years=en(e.years),this}function Vd(e,t,n,r){var s=Ut(t,n);return e._milliseconds+=r*s._milliseconds,e._days+=r*s._days,e._months+=r*s._months,e._bubble()}function VE(e,t){return Vd(this,e,t,1)}function NE(e,t){return Vd(this,e,t,-1)}function Hl(e){return e<0?Math.floor(e):Math.ceil(e)}function UE(){var e=this._milliseconds,t=this._days,n=this._months,r=this._data,s,i,o,a,u;return e>=0&&t>=0&&n>=0||e<=0&&t<=0&&n<=0||(e+=Hl(Mo(n)+t)*864e5,t=0,n=0),r.milliseconds=e%1e3,s=xt(e/1e3),r.seconds=s%60,i=xt(s/60),r.minutes=i%60,o=xt(i/60),r.hours=o%24,t+=xt(o/24),u=xt(Nd(t)),n+=u,t-=Hl(Mo(u)),a=xt(n/12),n%=12,r.days=t,r.months=n,r.years=a,this}function Nd(e){return e*4800/146097}function Mo(e){return e*146097/4800}function LE(e){if(!this.isValid())return NaN;var t,n,r=this._milliseconds;if(e=kt(e),e==="month"||e==="quarter"||e==="year")switch(t=this._days+r/864e5,n=this._months+Nd(t),e){case"month":return n;case"quarter":return n/3;case"year":return n/12}else switch(t=this._days+Math.round(Mo(this._months)),e){case"week":return t/7+r/6048e5;case"day":return t+r/864e5;case"hour":return t*24+r/36e5;case"minute":return t*1440+r/6e4;case"second":return t*86400+r/1e3;case"millisecond":return Math.floor(t*864e5)+r;default:throw new Error("Unknown unit "+e)}}function _n(e){return function(){return this.as(e)}}var Ud=_n("ms"),YE=_n("s"),$E=_n("m"),jE=_n("h"),BE=_n("d"),HE=_n("w"),WE=_n("M"),zE=_n("Q"),KE=_n("y"),GE=Ud;function qE(){return Ut(this)}function ZE(e){return e=kt(e),this.isValid()?this[e+"s"]():NaN}function Kn(e){return function(){return this.isValid()?this._data[e]:NaN}}var JE=Kn("milliseconds"),XE=Kn("seconds"),QE=Kn("minutes"),eb=Kn("hours"),tb=Kn("days"),nb=Kn("months"),rb=Kn("years");function sb(){return xt(this.days()/7)}var rn=Math.round,nr={ss:44,s:45,m:45,h:22,d:26,w:null,M:11};function ib(e,t,n,r,s){return s.relativeTime(t||1,!!n,e,r)}function ob(e,t,n,r){var s=Ut(e).abs(),i=rn(s.as("s")),o=rn(s.as("m")),a=rn(s.as("h")),u=rn(s.as("d")),l=rn(s.as("M")),c=rn(s.as("w")),f=rn(s.as("y")),g=i<=n.ss&&["s",i]||i0,g[4]=r,ib.apply(null,g)}function ab(e){return e===void 0?rn:typeof e=="function"?(rn=e,!0):!1}function ub(e,t){return nr[e]===void 0?!1:t===void 0?nr[e]:(nr[e]=t,e==="s"&&(nr.ss=t-1),!0)}function lb(e,t){if(!this.isValid())return this.localeData().invalidDate();var n=!1,r=nr,s,i;return typeof e=="object"&&(t=e,e=!1),typeof e=="boolean"&&(n=e),typeof t=="object"&&(r=Object.assign({},nr,t),t.s!=null&&t.ss==null&&(r.ss=t.s-1)),s=this.localeData(),i=ob(this,!n,r,s),n&&(i=s.pastFuture(+this,i)),s.postformat(i)}var qi=Math.abs;function Jn(e){return(e>0)-(e<0)||+e}function Si(){if(!this.isValid())return this.localeData().invalidDate();var e=qi(this._milliseconds)/1e3,t=qi(this._days),n=qi(this._months),r,s,i,o,a=this.asSeconds(),u,l,c,f;return a?(r=xt(e/60),s=xt(r/60),e%=60,r%=60,i=xt(n/12),n%=12,o=e?e.toFixed(3).replace(/\.?0+$/,""):"",u=a<0?"-":"",l=Jn(this._months)!==Jn(a)?"-":"",c=Jn(this._days)!==Jn(a)?"-":"",f=Jn(this._milliseconds)!==Jn(a)?"-":"",u+"P"+(i?l+i+"Y":"")+(n?l+n+"M":"")+(t?c+t+"D":"")+(s||r||e?"T":"")+(s?f+s+"H":"")+(r?f+r+"M":"")+(e?f+o+"S":"")):"P0D"}var he=bi.prototype;he.isValid=n1;he.abs=PE;he.add=VE;he.subtract=NE;he.as=LE;he.asMilliseconds=Ud;he.asSeconds=YE;he.asMinutes=$E;he.asHours=jE;he.asDays=BE;he.asWeeks=HE;he.asMonths=WE;he.asQuarters=zE;he.asYears=KE;he.valueOf=GE;he._bubble=UE;he.clone=qE;he.get=ZE;he.milliseconds=JE;he.seconds=XE;he.minutes=QE;he.hours=eb;he.days=tb;he.weeks=sb;he.months=nb;he.years=rb;he.humanize=lb;he.toISOString=Si;he.toString=Si;he.toJSON=Si;he.locale=xd;he.localeData=Dd;he.toIsoString=At("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",Si);he.lang=Td;K("X",0,0,"unix");K("x",0,0,"valueOf");Y("x",gi);Y("X",Cv);xe("X",function(e,t,n){n._d=new Date(parseFloat(e)*1e3)});xe("x",function(e,t,n){n._d=new Date(ce(e))});//! moment.js -N.version="2.30.1";cv(Ie);N.fn=k;N.min=Xy;N.max=Qy;N.now=e1;N.utc=qt;N.unix=AE;N.months=CE;N.isDate=is;N.locale=wn;N.invalid=hi;N.duration=Ut;N.isMoment=Nt;N.weekdays=FE;N.parseZone=kE;N.localeData=pn;N.isDuration=xs;N.monthsShort=ME;N.weekdaysMin=RE;N.defineLocale=Va;N.updateLocale=ky;N.locales=Cy;N.weekdaysShort=IE;N.normalizeUnits=kt;N.relativeTimeRounding=ab;N.relativeTimeThreshold=ub;N.calendarFormat=x1;N.prototype=k;N.HTML5_FMT={DATETIME_LOCAL:"YYYY-MM-DDTHH:mm",DATETIME_LOCAL_SECONDS:"YYYY-MM-DDTHH:mm:ss",DATETIME_LOCAL_MS:"YYYY-MM-DDTHH:mm:ss.SSS",DATE:"YYYY-MM-DD",TIME:"HH:mm",TIME_SECONDS:"HH:mm:ss",TIME_MS:"HH:mm:ss.SSS",WEEK:"GGGG-[W]WW",MONTH:"YYYY-MM"};const cb={class:"dialog"},fb={class:"dialog__body"},db={class:"dialog__form-group"},hb={class:"dialog__form-validation"},pb={class:"dialog__form-group"},_b={class:"dialog__form-validation"},mb={class:"dialog__form-group"},gb={class:"dialog__form-group"},vb={class:"dialog__form-group dialog__form-group--radio"},yb={class:"dialog__form-radio"},Eb={class:"dialog__form-radio"},bb={class:"dialog__form-group"},Ob={__name:"Identity",setup(e){const t=r=>{fetch("http://esx_identity/register",{method:"POST",body:JSON.stringify({firstname:r.firstname,lastname:r.lastname,dateofbirth:N(r.dob).format("DD/MM/YYYY"),sex:r.gender,height:r.height})})},n=zf({firstname:Os().required("Firstname is required").min(3,"Firstname must be at least 3 characters"),lastname:Os().required("Lastname is required").min(3,"Lastname must be at least 3 characters"),dob:Oa().required("Date of Birth is required").min(new Date("1900-01-01"),"Date is too early").max(N().subtract(1,"years").toDate(),"You need to be atleast 1 year old"),gender:Os().required("Gender is required"),height:jf().required("Height is required").min(120,"Minimum height is 120cm").max(220,"Maximum height is 220cm").typeError("Amount must be a number")});return(r,s)=>(Uc(),D0("div",cb,[s[9]||(s[9]=we("div",{class:"dialog__header"},[we("h1",null,[Tr("CHARACTER "),we("span",null,"IDENTITY")])],-1)),we("div",fb,[s[8]||(s[8]=we("p",{class:"dialog__body-hint"},"Start by creating your identity",-1)),Ne(re(hg),{class:"dialog__body-form",id:"register",action:"#",novalidate:"",onSubmit:t,"validation-schema":re(n)},{default:_c(()=>[we("div",db,[s[0]||(s[0]=we("label",{for:"firstname"},"Firstname",-1)),we("div",hb,[Ne(re(qn),{id:"firstname",type:"text",name:"firstname",placeholder:"Firstname",validateOnInput:""})]),Ne(re(Or),{name:"firstname",class:"dialog__form-message dialog__form-message--error"})]),we("div",pb,[s[1]||(s[1]=we("label",{for:"lastname"},"Lastname",-1)),we("div",_b,[Ne(re(qn),{id:"lastname",type:"text",name:"lastname",placeholder:"Lastname",validateOnInput:""})]),Ne(re(Or),{name:"lastname",class:"dialog__form-message dialog__form-message--error"})]),we("div",mb,[s[2]||(s[2]=we("label",{for:"dob"},"Date of birth",-1)),Ne(re(qn),{id:"dob",type:"date",name:"dob",placeholder:"dd/mm/yyyy",validateOnInput:""}),Ne(re(Or),{name:"dob",class:"dialog__form-message dialog__form-message--error"})]),we("div",gb,[s[5]||(s[5]=we("label",{for:"gender"},"Gender",-1)),we("div",vb,[we("div",yb,[Ne(re(qn),{type:"radio",id:"male",value:"m",name:"gender",validateOnInput:""}),s[3]||(s[3]=we("label",{for:"male"},[we("i",{class:"fas fa-mars"}),Tr("Male ")],-1))]),we("div",Eb,[Ne(re(qn),{type:"radio",id:"female",value:"f",name:"gender",validateOnInput:""}),s[4]||(s[4]=we("label",{for:"female"},[we("i",{class:"fas fa-venus"}),Tr("Female ")],-1))])]),Ne(re(Or),{name:"gender",class:"dialog__form-message dialog__form-message--error"})]),we("div",bb,[s[6]||(s[6]=we("label",{for:"height"},"Height",-1)),Ne(re(qn),{id:"height",type:"text",name:"height",placeholder:"175",validateOnInput:""}),Ne(re(Or),{name:"height",class:"dialog__form-message dialog__form-message--error"})]),s[7]||(s[7]=we("button",{class:"dialog__form-submit",id:"submit",type:"submit"},[we("i",{class:"fas fa-user-plus"}),Tr("CREATE ")],-1))]),_:1},8,["validation-schema"])])]))}},Sb={__name:"App",setup(e){return ti(()=>{fetch("http://esx_identity/ready",{method:"POST",body:JSON.stringify({})}),window.addEventListener("message",t=>{t.data.type==="enableui"&&document.body.classList[t.data.enable?"remove":"add"]("none")})}),(t,n)=>(Uc(),A0(Ob))}};cp(Sb).mount("#app")});export default wb(); diff --git a/[core]/esx_identity/dist/assets/index-CBKwBtku.css b/[core]/esx_identity/dist/assets/index-CBKwBtku.css deleted file mode 100644 index 1ad7fe3f..00000000 --- a/[core]/esx_identity/dist/assets/index-CBKwBtku.css +++ /dev/null @@ -1 +0,0 @@ -@import"https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap";body{font-family:sans-serif;overflow:hidden;background-color:transparent}.none{display:none}.dialog{width:477px;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background-color:#080808;border-radius:8px;border:none;color:#fff;font-family:Poppins,sans-serif}.dialog__header{background-color:#040404;border-top-left-radius:8px;border-top-right-radius:8px;padding:20px;text-align:center}.dialog__header h1{font-weight:700;margin-bottom:0;font-size:30px}.dialog__header span{color:#fd9800}.dialog__body{padding-block:20px;padding-inline:65px}.dialog__body-hint{text-align:center;margin-bottom:20px}.dialog__body-form{display:flex;flex-direction:column;gap:35px;font-weight:600;font-size:15px}.dialog__form-submit{border:none;background-color:#fd9800;color:#fff;font-size:18px;font-weight:700;border-radius:4px;padding-block:5px}.dialog__form-submit i{margin-right:5px}.dialog__form-group{display:flex;align-items:center;justify-content:space-between;gap:30px;background-color:#040404;position:relative}.dialog__form-group--radio{gap:0}.dialog__form-group label{flex-grow:1;flex-shrink:1;padding-inline:20px}.dialog__form-group input{background-color:transparent;border:none;height:30px;width:180px;flex-shrink:0;color:#fff}.dialog__form-group input:focus{background-color:#0f0f0fe6;border:none;border-radius:5px;color:#fff;outline:none;box-shadow:none}.dialog__form-validation{position:relative}.dialog__form-validation i{position:absolute;right:10px;top:50%;transform:translateY(-50%)}.dialog__form-radio{display:flex;align-items:center}.dialog__form-radio input{display:none}.dialog__form-radio label{display:flex;align-items:center;gap:10px;cursor:pointer}.dialog__form-radio input+label{height:30px;display:flex;align-items:center}.dialog__form-radio input:checked+label{color:#30a1fd;height:30px}.dialog__form-radio input:not(:checked)+label{color:#242424;height:30px}.dialog__form-message{position:absolute;top:35px;right:0;font-size:9px}.dialog__form-message--error{color:#733838}#male:checked+label{color:#30a1fd}#female:checked+label{color:#ff69b4}::placeholder{color:#242424;font-weight:600}input[type=date]::-webkit-inner-spin-button,input[type=date]::-webkit-calendar-picker-indicator{display:none;-webkit-appearance:none} diff --git a/[core]/esx_identity/dist/index.html b/[core]/esx_identity/dist/index.html deleted file mode 100644 index 0bd855e1..00000000 --- a/[core]/esx_identity/dist/index.html +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - Vite + Vue - - - - - - - -
- - - \ No newline at end of file diff --git a/[core]/esx_identity/dist/vite.svg b/[core]/esx_identity/dist/vite.svg deleted file mode 100644 index e7b8dfb1..00000000 --- a/[core]/esx_identity/dist/vite.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/[core]/esx_identity/fxmanifest.lua b/[core]/esx_identity/fxmanifest.lua index 4860f315..872696e5 100644 --- a/[core]/esx_identity/fxmanifest.lua +++ b/[core]/esx_identity/fxmanifest.lua @@ -24,10 +24,10 @@ client_scripts { } files ({ - 'dist/assets/**', - 'dist/**', + 'web/dist/assets/**', + 'web/dist/**', }) -ui_page 'dist/index.html' +ui_page 'web/dist/index.html' dependency 'es_extended' diff --git a/[core]/esx_identity/index.html b/[core]/esx_identity/index.html deleted file mode 100644 index 1159b9eb..00000000 --- a/[core]/esx_identity/index.html +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - Vite + Vue - - - - - -
- - - - \ No newline at end of file diff --git a/[core]/esx_identity/package-lock.json b/[core]/esx_identity/package-lock.json deleted file mode 100644 index 98ec28e7..00000000 --- a/[core]/esx_identity/package-lock.json +++ /dev/null @@ -1,1186 +0,0 @@ -{ - "name": "esx_identity_new", - "version": "0.0.0", - "lockfileVersion": 3, - "requires": true, - "packages": { - "": { - "name": "esx_identity_new", - "version": "0.0.0", - "dependencies": { - "moment": "^2.30.1", - "vee-validate": "^4.14.3", - "vue": "^3.5.10", - "yup": "^1.4.0" - }, - "devDependencies": { - "@vitejs/plugin-vue": "^5.1.4", - "vite": "^5.4.8" - } - }, - "node_modules/@babel/helper-string-parser": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.25.7.tgz", - "integrity": "sha512-CbkjYdsJNHFk8uqpEkpCvRs3YRp9tY6FmFY7wLMSYuGYkrdUi7r2lc4/wqsvlHoMznX3WJ9IP8giGPq68T/Y6g==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.25.7", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.7.tgz", - "integrity": "sha512-AM6TzwYqGChO45oiuPqwL2t20/HdMC1rTPAesnBCgPCSF1x3oN9MVUwQV2iyz4xqWrctwK5RNC8LV22kaQCNYg==", - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.25.8", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.25.8.tgz", - "integrity": "sha512-HcttkxzdPucv3nNFmfOOMfFf64KgdJVqm1KaCm25dPGMLElo9nsLvXeJECQg8UzPuBGLyTSA0ZzqCtDSzKTEoQ==", - "dependencies": { - "@babel/types": "^7.25.8" - }, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/types": { - "version": "7.25.8", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.25.8.tgz", - "integrity": "sha512-JWtuCu8VQsMladxVz/P4HzHUGCAwpuqacmowgXFs5XjxIgKuNjnLokQzuVjlTvIzODaDmpjT3oxcC48vyk9EWg==", - "dependencies": { - "@babel/helper-string-parser": "^7.25.7", - "@babel/helper-validator-identifier": "^7.25.7", - "to-fast-properties": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@esbuild/aix-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.21.5.tgz", - "integrity": "sha512-1SDgH6ZSPTlggy1yI6+Dbkiz8xzpHJEVAlF/AM1tHPLsf5STom9rwtjE4hKAF20FfXXNTFqEYXyJNWh1GiZedQ==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "aix" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.21.5.tgz", - "integrity": "sha512-vCPvzSjpPHEi1siZdlvAlsPxXl7WbOVUBBAowWug4rJHb68Ox8KualB+1ocNvT5fjv6wpkX6o/iEpbDrf68zcg==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.21.5.tgz", - "integrity": "sha512-c0uX9VAUBQ7dTDCjq+wdyGLowMdtR/GoC2U5IYk/7D1H1JYC0qseD7+11iMP2mRLN9RcCMRcjC4YMclCzGwS/A==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/android-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.21.5.tgz", - "integrity": "sha512-D7aPRUUNHRBwHxzxRvp856rjUHRFW1SdQATKXH2hqA0kAZb1hKmi02OpYRacl0TxIGz/ZmXWlbZgjwWYaCakTA==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/darwin-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.21.5.tgz", - "integrity": "sha512-DwqXqZyuk5AiWWf3UfLiRDJ5EDd49zg6O9wclZ7kUMv2WRFr4HKjXp/5t8JZ11QbQfUS6/cRCKGwYhtNAY88kQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/darwin-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.21.5.tgz", - "integrity": "sha512-se/JjF8NlmKVG4kNIuyWMV/22ZaerB+qaSi5MdrXtd6R08kvs2qCN4C09miupktDitvh8jRFflwGFBQcxZRjbw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.21.5.tgz", - "integrity": "sha512-5JcRxxRDUJLX8JXp/wcBCy3pENnCgBR9bN6JsY4OmhfUtIHe3ZW0mawA7+RDAcMLrMIZaf03NlQiX9DGyB8h4g==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/freebsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.21.5.tgz", - "integrity": "sha512-J95kNBj1zkbMXtHVH29bBriQygMXqoVQOQYA+ISs0/2l3T9/kj42ow2mpqerRBxDJnmkUDCaQT/dfNXWX/ZZCQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "freebsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.21.5.tgz", - "integrity": "sha512-bPb5AHZtbeNGjCKVZ9UGqGwo8EUu4cLq68E95A53KlxAPRmUyYv2D6F0uUI65XisGOL1hBP5mTronbgo+0bFcA==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.21.5.tgz", - "integrity": "sha512-ibKvmyYzKsBeX8d8I7MH/TMfWDXBF3db4qM6sy+7re0YXya+K1cem3on9XgdT2EQGMu4hQyZhan7TeQ8XkGp4Q==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.21.5.tgz", - "integrity": "sha512-YvjXDqLRqPDl2dvRODYmmhz4rPeVKYvppfGYKSNGdyZkA01046pLWyRKKI3ax8fbJoK5QbxblURkwK/MWY18Tg==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-loong64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.21.5.tgz", - "integrity": "sha512-uHf1BmMG8qEvzdrzAqg2SIG/02+4/DHB6a9Kbya0XDvwDEKCoC8ZRWI5JJvNdUjtciBGFQ5PuBlpEOXQj+JQSg==", - "cpu": [ - "loong64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-mips64el": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.21.5.tgz", - "integrity": "sha512-IajOmO+KJK23bj52dFSNCMsz1QP1DqM6cwLUv3W1QwyxkyIWecfafnI555fvSGqEKwjMXVLokcV5ygHW5b3Jbg==", - "cpu": [ - "mips64el" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-ppc64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.21.5.tgz", - "integrity": "sha512-1hHV/Z4OEfMwpLO8rp7CvlhBDnjsC3CttJXIhBi+5Aj5r+MBvy4egg7wCbe//hSsT+RvDAG7s81tAvpL2XAE4w==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-riscv64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.21.5.tgz", - "integrity": "sha512-2HdXDMd9GMgTGrPWnJzP2ALSokE/0O5HhTUvWIbD3YdjME8JwvSCnNGBnTThKGEB91OZhzrJ4qIIxk/SBmyDDA==", - "cpu": [ - "riscv64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-s390x": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.21.5.tgz", - "integrity": "sha512-zus5sxzqBJD3eXxwvjN1yQkRepANgxE9lgOW2qLnmr8ikMTphkjgXu1HR01K4FJg8h1kEEDAqDcZQtbrRnB41A==", - "cpu": [ - "s390x" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/linux-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.21.5.tgz", - "integrity": "sha512-1rYdTpyv03iycF1+BhzrzQJCdOuAOtaqHTWJZCWvijKD2N5Xu0TtVC8/+1faWqcP9iBCWOmjmhoH94dH82BxPQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/netbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.21.5.tgz", - "integrity": "sha512-Woi2MXzXjMULccIwMnLciyZH4nCIMpWQAs049KEeMvOcNADVxo0UBIQPfSmxB3CWKedngg7sWZdLvLczpe0tLg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "netbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/openbsd-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.21.5.tgz", - "integrity": "sha512-HLNNw99xsvx12lFBUwoT8EVCsSvRNDVxNpjZ7bPn947b8gJPzeHWyNVhFsaerc0n3TsbOINvRP2byTZ5LKezow==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "openbsd" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/sunos-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.21.5.tgz", - "integrity": "sha512-6+gjmFpfy0BHU5Tpptkuh8+uw3mnrvgs+dSPQXQOv3ekbordwnzTVEb4qnIvQcYXq6gzkyTnoZ9dZG+D4garKg==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "sunos" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-arm64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.21.5.tgz", - "integrity": "sha512-Z0gOTd75VvXqyq7nsl93zwahcTROgqvuAcYDUr+vOv8uHhNSKROyU961kgtCD1e95IqPKSQKH7tBTslnS3tA8A==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-ia32": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.21.5.tgz", - "integrity": "sha512-SWXFF1CL2RVNMaVs+BBClwtfZSvDgtL//G/smwAc5oVK/UPu2Gu9tIaRgFmYFFKrmg3SyAjSrElf0TiJ1v8fYA==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@esbuild/win32-x64": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.21.5.tgz", - "integrity": "sha512-tQd/1efJuzPC6rCFwEvLtci/xNFcTZknmXs98FYDfGE4wP9ClFV98nyKrzJKVPMhdDnjzLhdUyMX4PsQAPjwIw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">=12" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz", - "integrity": "sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ==" - }, - "node_modules/@rollup/rollup-android-arm-eabi": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.24.0.tgz", - "integrity": "sha512-Q6HJd7Y6xdB48x8ZNVDOqsbh2uByBhgK8PiQgPhwkIw/HC/YX5Ghq2mQY5sRMZWHb3VsFkWooUVOZHKr7DmDIA==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-android-arm64": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.24.0.tgz", - "integrity": "sha512-ijLnS1qFId8xhKjT81uBHuuJp2lU4x2yxa4ctFPtG+MqEE6+C5f/+X/bStmxapgmwLwiL3ih122xv8kVARNAZA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "android" - ] - }, - "node_modules/@rollup/rollup-darwin-arm64": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.24.0.tgz", - "integrity": "sha512-bIv+X9xeSs1XCk6DVvkO+S/z8/2AMt/2lMqdQbMrmVpgFvXlmde9mLcbQpztXm1tajC3raFDqegsH18HQPMYtA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-darwin-x64": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.24.0.tgz", - "integrity": "sha512-X6/nOwoFN7RT2svEQWUsW/5C/fYMBe4fnLK9DQk4SX4mgVBiTA9h64kjUYPvGQ0F/9xwJ5U5UfTbl6BEjaQdBQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "darwin" - ] - }, - "node_modules/@rollup/rollup-linux-arm-gnueabihf": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.24.0.tgz", - "integrity": "sha512-0KXvIJQMOImLCVCz9uvvdPgfyWo93aHHp8ui3FrtOP57svqrF/roSSR5pjqL2hcMp0ljeGlU4q9o/rQaAQ3AYA==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm-musleabihf": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.24.0.tgz", - "integrity": "sha512-it2BW6kKFVh8xk/BnHfakEeoLPv8STIISekpoF+nBgWM4d55CZKc7T4Dx1pEbTnYm/xEKMgy1MNtYuoA8RFIWw==", - "cpu": [ - "arm" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-gnu": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.24.0.tgz", - "integrity": "sha512-i0xTLXjqap2eRfulFVlSnM5dEbTVque/3Pi4g2y7cxrs7+a9De42z4XxKLYJ7+OhE3IgxvfQM7vQc43bwTgPwA==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-arm64-musl": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.24.0.tgz", - "integrity": "sha512-9E6MKUJhDuDh604Qco5yP/3qn3y7SLXYuiC0Rpr89aMScS2UAmK1wHP2b7KAa1nSjWJc/f/Lc0Wl1L47qjiyQw==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-powerpc64le-gnu": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.24.0.tgz", - "integrity": "sha512-2XFFPJ2XMEiF5Zi2EBf4h73oR1V/lycirxZxHZNc93SqDN/IWhYYSYj8I9381ikUFXZrz2v7r2tOVk2NBwxrWw==", - "cpu": [ - "ppc64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-riscv64-gnu": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.24.0.tgz", - "integrity": "sha512-M3Dg4hlwuntUCdzU7KjYqbbd+BLq3JMAOhCKdBE3TcMGMZbKkDdJ5ivNdehOssMCIokNHFOsv7DO4rlEOfyKpg==", - "cpu": [ - "riscv64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-s390x-gnu": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.24.0.tgz", - "integrity": "sha512-mjBaoo4ocxJppTorZVKWFpy1bfFj9FeCMJqzlMQGjpNPY9JwQi7OuS1axzNIk0nMX6jSgy6ZURDZ2w0QW6D56g==", - "cpu": [ - "s390x" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-gnu": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.24.0.tgz", - "integrity": "sha512-ZXFk7M72R0YYFN5q13niV0B7G8/5dcQ9JDp8keJSfr3GoZeXEoMHP/HlvqROA3OMbMdfr19IjCeNAnPUG93b6A==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-linux-x64-musl": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.24.0.tgz", - "integrity": "sha512-w1i+L7kAXZNdYl+vFvzSZy8Y1arS7vMgIy8wusXJzRrPyof5LAb02KGr1PD2EkRcl73kHulIID0M501lN+vobQ==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "linux" - ] - }, - "node_modules/@rollup/rollup-win32-arm64-msvc": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.24.0.tgz", - "integrity": "sha512-VXBrnPWgBpVDCVY6XF3LEW0pOU51KbaHhccHw6AS6vBWIC60eqsH19DAeeObl+g8nKAz04QFdl/Cefta0xQtUQ==", - "cpu": [ - "arm64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-ia32-msvc": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.24.0.tgz", - "integrity": "sha512-xrNcGDU0OxVcPTH/8n/ShH4UevZxKIO6HJFK0e15XItZP2UcaiLFd5kiX7hJnqCbSztUF8Qot+JWBC/QXRPYWQ==", - "cpu": [ - "ia32" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@rollup/rollup-win32-x64-msvc": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.24.0.tgz", - "integrity": "sha512-fbMkAF7fufku0N2dE5TBXcNlg0pt0cJue4xBRE2Qc5Vqikxr4VCgKj/ht6SMdFcOacVA9rqF70APJ8RN/4vMJw==", - "cpu": [ - "x64" - ], - "dev": true, - "optional": true, - "os": [ - "win32" - ] - }, - "node_modules/@types/estree": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.6.tgz", - "integrity": "sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==", - "dev": true - }, - "node_modules/@vitejs/plugin-vue": { - "version": "5.1.4", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-5.1.4.tgz", - "integrity": "sha512-N2XSI2n3sQqp5w7Y/AN/L2XDjBIRGqXko+eDp42sydYSBeJuSm5a1sLf8zakmo8u7tA8NmBgoDLA1HeOESjp9A==", - "dev": true, - "engines": { - "node": "^18.0.0 || >=20.0.0" - }, - "peerDependencies": { - "vite": "^5.0.0", - "vue": "^3.2.25" - } - }, - "node_modules/@vue/compiler-core": { - "version": "3.5.12", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.5.12.tgz", - "integrity": "sha512-ISyBTRMmMYagUxhcpyEH0hpXRd/KqDU4ymofPgl2XAkY9ZhQ+h0ovEZJIiPop13UmR/54oA2cgMDjgroRelaEw==", - "dependencies": { - "@babel/parser": "^7.25.3", - "@vue/shared": "3.5.12", - "entities": "^4.5.0", - "estree-walker": "^2.0.2", - "source-map-js": "^1.2.0" - } - }, - "node_modules/@vue/compiler-dom": { - "version": "3.5.12", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.5.12.tgz", - "integrity": "sha512-9G6PbJ03uwxLHKQ3P42cMTi85lDRvGLB2rSGOiQqtXELat6uI4n8cNz9yjfVHRPIu+MsK6TE418Giruvgptckg==", - "dependencies": { - "@vue/compiler-core": "3.5.12", - "@vue/shared": "3.5.12" - } - }, - "node_modules/@vue/compiler-sfc": { - "version": "3.5.12", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.5.12.tgz", - "integrity": "sha512-2k973OGo2JuAa5+ZlekuQJtitI5CgLMOwgl94BzMCsKZCX/xiqzJYzapl4opFogKHqwJk34vfsaKpfEhd1k5nw==", - "dependencies": { - "@babel/parser": "^7.25.3", - "@vue/compiler-core": "3.5.12", - "@vue/compiler-dom": "3.5.12", - "@vue/compiler-ssr": "3.5.12", - "@vue/shared": "3.5.12", - "estree-walker": "^2.0.2", - "magic-string": "^0.30.11", - "postcss": "^8.4.47", - "source-map-js": "^1.2.0" - } - }, - "node_modules/@vue/compiler-ssr": { - "version": "3.5.12", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.5.12.tgz", - "integrity": "sha512-eLwc7v6bfGBSM7wZOGPmRavSWzNFF6+PdRhE+VFJhNCgHiF8AM7ccoqcv5kBXA2eWUfigD7byekvf/JsOfKvPA==", - "dependencies": { - "@vue/compiler-dom": "3.5.12", - "@vue/shared": "3.5.12" - } - }, - "node_modules/@vue/devtools-api": { - "version": "7.5.2", - "resolved": "https://registry.npmjs.org/@vue/devtools-api/-/devtools-api-7.5.2.tgz", - "integrity": "sha512-VxPbAQxJrYSIkoGVvQ2oOoKW8u4CMpvRLySTxhoJA38z8bQEGy9GO33eoRY/DulJbSFRfjZFNvH+dh8B4qpesQ==", - "dependencies": { - "@vue/devtools-kit": "^7.5.2" - } - }, - "node_modules/@vue/devtools-kit": { - "version": "7.5.2", - "resolved": "https://registry.npmjs.org/@vue/devtools-kit/-/devtools-kit-7.5.2.tgz", - "integrity": "sha512-0leUOE2HBfl8sHf9ePKzxqnCFskkU22tWWqd9OfeSlslAKE30/TViYvWcF4vgQmPlJnAAdHU0WfW5dYlCeOiuw==", - "dependencies": { - "@vue/devtools-shared": "^7.5.2", - "birpc": "^0.2.19", - "hookable": "^5.5.3", - "mitt": "^3.0.1", - "perfect-debounce": "^1.0.0", - "speakingurl": "^14.0.1", - "superjson": "^2.2.1" - } - }, - "node_modules/@vue/devtools-shared": { - "version": "7.5.2", - "resolved": "https://registry.npmjs.org/@vue/devtools-shared/-/devtools-shared-7.5.2.tgz", - "integrity": "sha512-+zmcixnD6TAo+zwm30YuwZckhL9iIi4u+gFwbq9C8zpm3SMndTlEYZtNhAHUhOXB+bCkzyunxw80KQ/T0trF4w==", - "dependencies": { - "rfdc": "^1.4.1" - } - }, - "node_modules/@vue/reactivity": { - "version": "3.5.12", - "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.5.12.tgz", - "integrity": "sha512-UzaN3Da7xnJXdz4Okb/BGbAaomRHc3RdoWqTzlvd9+WBR5m3J39J1fGcHes7U3za0ruYn/iYy/a1euhMEHvTAg==", - "dependencies": { - "@vue/shared": "3.5.12" - } - }, - "node_modules/@vue/runtime-core": { - "version": "3.5.12", - "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.5.12.tgz", - "integrity": "sha512-hrMUYV6tpocr3TL3Ad8DqxOdpDe4zuQY4HPY3X/VRh+L2myQO8MFXPAMarIOSGNu0bFAjh1yBkMPXZBqCk62Uw==", - "dependencies": { - "@vue/reactivity": "3.5.12", - "@vue/shared": "3.5.12" - } - }, - "node_modules/@vue/runtime-dom": { - "version": "3.5.12", - "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.5.12.tgz", - "integrity": "sha512-q8VFxR9A2MRfBr6/55Q3umyoN7ya836FzRXajPB6/Vvuv0zOPL+qltd9rIMzG/DbRLAIlREmnLsplEF/kotXKA==", - "dependencies": { - "@vue/reactivity": "3.5.12", - "@vue/runtime-core": "3.5.12", - "@vue/shared": "3.5.12", - "csstype": "^3.1.3" - } - }, - "node_modules/@vue/server-renderer": { - "version": "3.5.12", - "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.5.12.tgz", - "integrity": "sha512-I3QoeDDeEPZm8yR28JtY+rk880Oqmj43hreIBVTicisFTx/Dl7JpG72g/X7YF8hnQD3IFhkky5i2bPonwrTVPg==", - "dependencies": { - "@vue/compiler-ssr": "3.5.12", - "@vue/shared": "3.5.12" - }, - "peerDependencies": { - "vue": "3.5.12" - } - }, - "node_modules/@vue/shared": { - "version": "3.5.12", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.5.12.tgz", - "integrity": "sha512-L2RPSAwUFbgZH20etwrXyVyCBu9OxRSi8T/38QsvnkJyvq2LufW2lDCOzm7t/U9C1mkhJGWYfCuFBCmIuNivrg==" - }, - "node_modules/birpc": { - "version": "0.2.19", - "resolved": "https://registry.npmjs.org/birpc/-/birpc-0.2.19.tgz", - "integrity": "sha512-5WeXXAvTmitV1RqJFppT5QtUiz2p1mRSYU000Jkft5ZUCLJIk4uQriYNO50HknxKwM6jd8utNc66K1qGIwwWBQ==", - "funding": { - "url": "https://github.com/sponsors/antfu" - } - }, - "node_modules/copy-anything": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-3.0.5.tgz", - "integrity": "sha512-yCEafptTtb4bk7GLEQoM8KVJpxAfdBJYaXyzQEgQQQgYrZiDp8SJmGKlYza6CYjEDNstAdNdKA3UuoULlEbS6w==", - "dependencies": { - "is-what": "^4.1.8" - }, - "engines": { - "node": ">=12.13" - }, - "funding": { - "url": "https://github.com/sponsors/mesqueeb" - } - }, - "node_modules/csstype": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.3.tgz", - "integrity": "sha512-M1uQkMl8rQK/szD0LNhtqxIPLpimGm8sOBwU7lLnCpSbTyY3yeU1Vc7l4KT5zT4s/yOxHH5O7tIuuLOCnLADRw==" - }, - "node_modules/entities": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-4.5.0.tgz", - "integrity": "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==", - "engines": { - "node": ">=0.12" - }, - "funding": { - "url": "https://github.com/fb55/entities?sponsor=1" - } - }, - "node_modules/esbuild": { - "version": "0.21.5", - "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.21.5.tgz", - "integrity": "sha512-mg3OPMV4hXywwpoDxu3Qda5xCKQi+vCTZq8S9J/EpkhB2HzKXq4SNFZE3+NK93JYxc8VMSep+lOUSC/RVKaBqw==", - "dev": true, - "hasInstallScript": true, - "bin": { - "esbuild": "bin/esbuild" - }, - "engines": { - "node": ">=12" - }, - "optionalDependencies": { - "@esbuild/aix-ppc64": "0.21.5", - "@esbuild/android-arm": "0.21.5", - "@esbuild/android-arm64": "0.21.5", - "@esbuild/android-x64": "0.21.5", - "@esbuild/darwin-arm64": "0.21.5", - "@esbuild/darwin-x64": "0.21.5", - "@esbuild/freebsd-arm64": "0.21.5", - "@esbuild/freebsd-x64": "0.21.5", - "@esbuild/linux-arm": "0.21.5", - "@esbuild/linux-arm64": "0.21.5", - "@esbuild/linux-ia32": "0.21.5", - "@esbuild/linux-loong64": "0.21.5", - "@esbuild/linux-mips64el": "0.21.5", - "@esbuild/linux-ppc64": "0.21.5", - "@esbuild/linux-riscv64": "0.21.5", - "@esbuild/linux-s390x": "0.21.5", - "@esbuild/linux-x64": "0.21.5", - "@esbuild/netbsd-x64": "0.21.5", - "@esbuild/openbsd-x64": "0.21.5", - "@esbuild/sunos-x64": "0.21.5", - "@esbuild/win32-arm64": "0.21.5", - "@esbuild/win32-ia32": "0.21.5", - "@esbuild/win32-x64": "0.21.5" - } - }, - "node_modules/estree-walker": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz", - "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==" - }, - "node_modules/fsevents": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz", - "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/hookable": { - "version": "5.5.3", - "resolved": "https://registry.npmjs.org/hookable/-/hookable-5.5.3.tgz", - "integrity": "sha512-Yc+BQe8SvoXH1643Qez1zqLRmbA5rCL+sSmk6TVos0LWVfNIB7PGncdlId77WzLGSIB5KaWgTaNTs2lNVEI6VQ==" - }, - "node_modules/is-what": { - "version": "4.1.16", - "resolved": "https://registry.npmjs.org/is-what/-/is-what-4.1.16.tgz", - "integrity": "sha512-ZhMwEosbFJkA0YhFnNDgTM4ZxDRsS6HqTo7qsZM08fehyRYIYa0yHu5R6mgo1n/8MgaPBXiPimPD77baVFYg+A==", - "engines": { - "node": ">=12.13" - }, - "funding": { - "url": "https://github.com/sponsors/mesqueeb" - } - }, - "node_modules/magic-string": { - "version": "0.30.12", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.12.tgz", - "integrity": "sha512-Ea8I3sQMVXr8JhN4z+H/d8zwo+tYDgHE9+5G4Wnrwhs0gaK9fXTKx0Tw5Xwsd/bCPTTZNRAdpyzvoeORe9LYpw==", - "dependencies": { - "@jridgewell/sourcemap-codec": "^1.5.0" - } - }, - "node_modules/mitt": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/mitt/-/mitt-3.0.1.tgz", - "integrity": "sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==" - }, - "node_modules/moment": { - "version": "2.30.1", - "resolved": "https://registry.npmjs.org/moment/-/moment-2.30.1.tgz", - "integrity": "sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==", - "engines": { - "node": "*" - } - }, - "node_modules/nanoid": { - "version": "3.3.7", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.7.tgz", - "integrity": "sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/perfect-debounce": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/perfect-debounce/-/perfect-debounce-1.0.0.tgz", - "integrity": "sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==" - }, - "node_modules/picocolors": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz", - "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==" - }, - "node_modules/postcss": { - "version": "8.4.47", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.47.tgz", - "integrity": "sha512-56rxCq7G/XfB4EkXq9Egn5GCqugWvDFjafDOThIdMBsI15iqPqR5r15TfSr1YPYeEI19YeaXMCbY6u88Y76GLQ==", - "funding": [ - { - "type": "opencollective", - "url": "https://opencollective.com/postcss/" - }, - { - "type": "tidelift", - "url": "https://tidelift.com/funding/github/npm/postcss" - }, - { - "type": "github", - "url": "https://github.com/sponsors/ai" - } - ], - "dependencies": { - "nanoid": "^3.3.7", - "picocolors": "^1.1.0", - "source-map-js": "^1.2.1" - }, - "engines": { - "node": "^10 || ^12 || >=14" - } - }, - "node_modules/property-expr": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/property-expr/-/property-expr-2.0.6.tgz", - "integrity": "sha512-SVtmxhRE/CGkn3eZY1T6pC8Nln6Fr/lu1mKSgRud0eC73whjGfoAogbn78LkD8aFL0zz3bAFerKSnOl7NlErBA==" - }, - "node_modules/rfdc": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.4.1.tgz", - "integrity": "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA==" - }, - "node_modules/rollup": { - "version": "4.24.0", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.24.0.tgz", - "integrity": "sha512-DOmrlGSXNk1DM0ljiQA+i+o0rSLhtii1je5wgk60j49d1jHT5YYttBv1iWOnYSTG+fZZESUOSNiAl89SIet+Cg==", - "dev": true, - "dependencies": { - "@types/estree": "1.0.6" - }, - "bin": { - "rollup": "dist/bin/rollup" - }, - "engines": { - "node": ">=18.0.0", - "npm": ">=8.0.0" - }, - "optionalDependencies": { - "@rollup/rollup-android-arm-eabi": "4.24.0", - "@rollup/rollup-android-arm64": "4.24.0", - "@rollup/rollup-darwin-arm64": "4.24.0", - "@rollup/rollup-darwin-x64": "4.24.0", - "@rollup/rollup-linux-arm-gnueabihf": "4.24.0", - "@rollup/rollup-linux-arm-musleabihf": "4.24.0", - "@rollup/rollup-linux-arm64-gnu": "4.24.0", - "@rollup/rollup-linux-arm64-musl": "4.24.0", - "@rollup/rollup-linux-powerpc64le-gnu": "4.24.0", - "@rollup/rollup-linux-riscv64-gnu": "4.24.0", - "@rollup/rollup-linux-s390x-gnu": "4.24.0", - "@rollup/rollup-linux-x64-gnu": "4.24.0", - "@rollup/rollup-linux-x64-musl": "4.24.0", - "@rollup/rollup-win32-arm64-msvc": "4.24.0", - "@rollup/rollup-win32-ia32-msvc": "4.24.0", - "@rollup/rollup-win32-x64-msvc": "4.24.0", - "fsevents": "~2.3.2" - } - }, - "node_modules/source-map-js": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz", - "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/speakingurl": { - "version": "14.0.1", - "resolved": "https://registry.npmjs.org/speakingurl/-/speakingurl-14.0.1.tgz", - "integrity": "sha512-1POYv7uv2gXoyGFpBCmpDVSNV74IfsWlDW216UPjbWufNf+bSU6GdbDsxdcxtfwb4xlI3yxzOTKClUosxARYrQ==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/superjson": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/superjson/-/superjson-2.2.1.tgz", - "integrity": "sha512-8iGv75BYOa0xRJHK5vRLEjE2H/i4lulTjzpUXic3Eg8akftYjkmQDa8JARQ42rlczXyFR3IeRoeFCc7RxHsYZA==", - "dependencies": { - "copy-anything": "^3.0.2" - }, - "engines": { - "node": ">=16" - } - }, - "node_modules/tiny-case": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/tiny-case/-/tiny-case-1.0.3.tgz", - "integrity": "sha512-Eet/eeMhkO6TX8mnUteS9zgPbUMQa4I6Kkp5ORiBD5476/m+PIRiumP5tmh5ioJpH7k51Kehawy2UDfsnxxY8Q==" - }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==", - "engines": { - "node": ">=4" - } - }, - "node_modules/toposort": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/toposort/-/toposort-2.0.2.tgz", - "integrity": "sha512-0a5EOkAUp8D4moMi2W8ZF8jcga7BgZd91O/yabJCFY8az+XSzeGyTKs0Aoo897iV1Nj6guFq8orWDS96z91oGg==" - }, - "node_modules/type-fest": { - "version": "4.26.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.26.1.tgz", - "integrity": "sha512-yOGpmOAL7CkKe/91I5O3gPICmJNLJ1G4zFYVAsRHg7M64biSnPtRj0WNQt++bRkjYOqjWXrhnUw1utzmVErAdg==", - "engines": { - "node": ">=16" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/vee-validate": { - "version": "4.14.3", - "resolved": "https://registry.npmjs.org/vee-validate/-/vee-validate-4.14.3.tgz", - "integrity": "sha512-o4yABwgmCxyNz63hAFiDuLtK4qSrJ3+Ri5kbbJ9RQecXpaMp6NzJUEGE3LOcScakkSmtLDzvliQ2yBdFyPWDIw==", - "dependencies": { - "@vue/devtools-api": "^7.5.2", - "type-fest": "^4.8.3" - }, - "peerDependencies": { - "vue": "^3.4.26" - } - }, - "node_modules/vite": { - "version": "5.4.9", - "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.9.tgz", - "integrity": "sha512-20OVpJHh0PAM0oSOELa5GaZNWeDjcAvQjGXy2Uyr+Tp+/D2/Hdz6NLgpJLsarPTA2QJ6v8mX2P1ZfbsSKvdMkg==", - "dev": true, - "dependencies": { - "esbuild": "^0.21.3", - "postcss": "^8.4.43", - "rollup": "^4.20.0" - }, - "bin": { - "vite": "bin/vite.js" - }, - "engines": { - "node": "^18.0.0 || >=20.0.0" - }, - "funding": { - "url": "https://github.com/vitejs/vite?sponsor=1" - }, - "optionalDependencies": { - "fsevents": "~2.3.3" - }, - "peerDependencies": { - "@types/node": "^18.0.0 || >=20.0.0", - "less": "*", - "lightningcss": "^1.21.0", - "sass": "*", - "sass-embedded": "*", - "stylus": "*", - "sugarss": "*", - "terser": "^5.4.0" - }, - "peerDependenciesMeta": { - "@types/node": { - "optional": true - }, - "less": { - "optional": true - }, - "lightningcss": { - "optional": true - }, - "sass": { - "optional": true - }, - "sass-embedded": { - "optional": true - }, - "stylus": { - "optional": true - }, - "sugarss": { - "optional": true - }, - "terser": { - "optional": true - } - } - }, - "node_modules/vue": { - "version": "3.5.12", - "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.12.tgz", - "integrity": "sha512-CLVZtXtn2ItBIi/zHZ0Sg1Xkb7+PU32bJJ8Bmy7ts3jxXTcbfsEfBivFYYWz1Hur+lalqGAh65Coin0r+HRUfg==", - "dependencies": { - "@vue/compiler-dom": "3.5.12", - "@vue/compiler-sfc": "3.5.12", - "@vue/runtime-dom": "3.5.12", - "@vue/server-renderer": "3.5.12", - "@vue/shared": "3.5.12" - }, - "peerDependencies": { - "typescript": "*" - }, - "peerDependenciesMeta": { - "typescript": { - "optional": true - } - } - }, - "node_modules/yup": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/yup/-/yup-1.4.0.tgz", - "integrity": "sha512-wPbgkJRCqIf+OHyiTBQoJiP5PFuAXaWiJK6AmYkzQAh5/c2K9hzSApBZG5wV9KoKSePF7sAxmNSvh/13YHkFDg==", - "dependencies": { - "property-expr": "^2.0.5", - "tiny-case": "^1.0.3", - "toposort": "^2.0.2", - "type-fest": "^2.19.0" - } - }, - "node_modules/yup/node_modules/type-fest": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", - "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - } - } -} diff --git a/[core]/esx_identity/package.json b/[core]/esx_identity/package.json deleted file mode 100644 index c40a1918..00000000 --- a/[core]/esx_identity/package.json +++ /dev/null @@ -1,21 +0,0 @@ -{ - "name": "esx_identity_new", - "private": true, - "version": "0.0.0", - "type": "module", - "scripts": { - "dev": "vite", - "build": "vite build", - "preview": "vite preview" - }, - "dependencies": { - "moment": "^2.30.1", - "vee-validate": "^4.14.3", - "vue": "^3.5.10", - "yup": "^1.4.0" - }, - "devDependencies": { - "@vitejs/plugin-vue": "^5.1.4", - "vite": "^5.4.8" - } -} diff --git a/[core]/esx_identity/public/vite.svg b/[core]/esx_identity/public/vite.svg deleted file mode 100644 index e7b8dfb1..00000000 --- a/[core]/esx_identity/public/vite.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/[core]/esx_identity/src/App.vue b/[core]/esx_identity/src/App.vue deleted file mode 100644 index c8dc6797..00000000 --- a/[core]/esx_identity/src/App.vue +++ /dev/null @@ -1,26 +0,0 @@ - - - - - diff --git a/[core]/esx_identity/src/assets/vue.svg b/[core]/esx_identity/src/assets/vue.svg deleted file mode 100644 index 770e9d33..00000000 --- a/[core]/esx_identity/src/assets/vue.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/[core]/esx_identity/src/components/Identity.vue b/[core]/esx_identity/src/components/Identity.vue deleted file mode 100644 index d51739ba..00000000 --- a/[core]/esx_identity/src/components/Identity.vue +++ /dev/null @@ -1,92 +0,0 @@ - - - - - diff --git a/[core]/esx_identity/src/main.js b/[core]/esx_identity/src/main.js deleted file mode 100644 index 5a6e2468..00000000 --- a/[core]/esx_identity/src/main.js +++ /dev/null @@ -1,5 +0,0 @@ -import { createApp } from 'vue' -import './style.css' -import App from './App.vue' - -createApp(App).mount('#app') \ No newline at end of file diff --git a/[core]/esx_identity/src/style.css b/[core]/esx_identity/src/style.css deleted file mode 100644 index 17023ffc..00000000 --- a/[core]/esx_identity/src/style.css +++ /dev/null @@ -1,195 +0,0 @@ -@import url('https://fonts.googleapis.com/css2?family=Poppins:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;0,800;0,900;1,100;1,200;1,300;1,400;1,500;1,600;1,700;1,800;1,900&display=swap'); -/* body { - margin: 0; - display: flex; - place-items: center; - min-width: 320px; - min-height: 100vh; -} */ - -/* REMOVE LATER, ADD SCSS */ - -body { - font-family: sans-serif; - overflow: hidden; - background-color: transparent; -} - -.none { - display: none; -} - -.dialog { - width: 477px; - position: absolute; - top: 50%; - left: 50%; - transform: translate(-50%, -50%); - background-color: #080808; - border-radius: 8px; - border: none; - color: #ffffff; - font-family: "Poppins", sans-serif; -} - -.dialog__header { - background-color: #040404; - border-top-left-radius: 8px; - border-top-right-radius: 8px; - padding: 20px; - text-align: center; -} - -.dialog__header h1 { - font-weight: 700; - margin-bottom: 0; - font-size: 30px; -} - -.dialog__header span { - color: #FD9800; -} - -.dialog__body { - padding-block: 20px; - padding-inline: 65px; -} - -.dialog__body-hint { - text-align: center; - margin-bottom: 20px; -} - -.dialog__body-form { - display: flex; - flex-direction: column; - gap: 35px; - font-weight: 600; - font-size: 15px; -} - -.dialog__form-submit { - border:none; - background-color: #FD9800; - color: #fff; - font-size: 18px; - font-weight:bold; - border-radius: 4px; - padding-block: 5px; -} - -.dialog__form-submit i { - margin-right: 5px; -} - -.dialog__form-group { - display: flex; - align-items: center; - justify-content: space-between; - gap: 30px; - background-color: #040404; - position: relative; -} - -.dialog__form-group--radio { - gap: 0; -} - -.dialog__form-group label { - flex-grow: 1; /* Label will expand to fill available space */ - flex-shrink: 1; /* Allows the label to shrink if necessary */ - padding-inline: 20px; /* Horizontal padding */ -} - -.dialog__form-group input { - background-color: transparent; - border: none; - height: 30px; - width: 180px; /* Fixed width for input */ - flex-shrink: 0; /* Prevent input from shrinking */ - color: white; -} - - -.dialog__form-group input:focus { - background-color: rgba(15, 15, 15, 0.9); - border: none; - border-radius: 5px; - color: #ffffff; - outline: none; - box-shadow: none; -} - -.dialog__form-validation { - position: relative; -} - -.dialog__form-validation i { - position: absolute; - right: 10px; - top: 50%; - transform: translate(0, -50%); -} - -.dialog__form-radio { - display: flex; - align-items: center; -} - -.dialog__form-radio input { - display: none; -} - -.dialog__form-radio label { - display: flex; - align-items: center; - gap: 10px; - cursor: pointer; -} - -.dialog__form-radio input + label { - height: 30px; - display: flex; - align-items: center; -} - -.dialog__form-radio input:checked + label { - color: #30A1FD; - height: 30px; -} - -.dialog__form-radio input:not(:checked) + label { - color: #242424; - height: 30px; -} - -.dialog__form-message { - position: absolute; - top: 35px; - right: 0; - font-size: 9px; -} - -.dialog__form-message--error { - color: #733838; -} - -#male:checked + label { - color: #30A1FD; /* Blue color */ -} - -/* For the female radio button */ -#female:checked + label { - color: #FF69B4; /* Pink color */ -} - -::placeholder { - color: #242424; - font-weight: 600; -} - -input[type="date"]::-webkit-inner-spin-button, -input[type="date"]::-webkit-calendar-picker-indicator { - display: none; - -webkit-appearance: none; -} \ No newline at end of file diff --git a/[core]/esx_identity/vite.config.js b/[core]/esx_identity/vite.config.js deleted file mode 100644 index 4b141472..00000000 --- a/[core]/esx_identity/vite.config.js +++ /dev/null @@ -1,8 +0,0 @@ -import { defineConfig } from 'vite' -import vue from '@vitejs/plugin-vue' - -// https://vitejs.dev/config/ -export default defineConfig({ - base: './', - plugins: [vue()], -}) From 2b9b4067a77712372913ccbe22119e8bb4c4224b Mon Sep 17 00:00:00 2001 From: Ilias Rbayti <63159154+Kenshiin13@users.noreply.github.com> Date: Thu, 14 Nov 2024 22:56:03 +0100 Subject: [PATCH 043/138] fix(es_extended/locales/de): Fix German received_weapon_noweapon --- [core]/es_extended/locales/de.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/[core]/es_extended/locales/de.lua b/[core]/es_extended/locales/de.lua index 6490f8e7..da224c3a 100644 --- a/[core]/es_extended/locales/de.lua +++ b/[core]/es_extended/locales/de.lua @@ -21,7 +21,7 @@ Locales["de"] = { ["received_weapon_ammo"] = "Du bekommst ~o~%sx %s für deine %s von %s", ["received_weapon_withammo"] = "Du bekommst %s mit ~o~%sx %s von %s", ["received_weapon_hasalready"] = "%s hat versucht dir eine %s zu geben, jedoch hast du diese Waffe bereits!", - ["received_weapon_noweapon"] = "%s hat versucht dir Munition für eine %s zu geben, jedoch hast du diese Waffe bereits!", + ["received_weapon_noweapon"] = "%s hat versucht dir Munition für eine %s zu geben, jedoch hast du diese Waffe nicht!", ["gave_account_money"] = "Du gibst %s€ (%s) an %s", ["received_account_money"] = "Du bekommst %s€ (%s) von %s", ["amount_invalid"] = "Ungültige Anzahl", From 0576b209670780b34d5b0483bedda630b69515ea Mon Sep 17 00:00:00 2001 From: Ilias Rbayti <63159154+Kenshiin13@users.noreply.github.com> Date: Fri, 15 Nov 2024 15:28:45 +0100 Subject: [PATCH 044/138] validate serialized function references --- [core]/cron/server/main.lua | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/[core]/cron/server/main.lua b/[core]/cron/server/main.lua index fb6cec25..51da085d 100644 --- a/[core]/cron/server/main.lua +++ b/[core]/cron/server/main.lua @@ -1,7 +1,7 @@ ---@class CronJob ---@field h number ---@field m number ----@field cb function +---@field cb function|table ---@type CronJob[] local cronJobs = {} @@ -10,7 +10,7 @@ local lastTimestamp = false ---@param h number ---@param m number ----@param cb function +---@param cb function|table function RunAt(h, m, cb) cronJobs[#cronJobs + 1] = { h = h, @@ -60,11 +60,16 @@ Tick() ---@param h number ---@param m number ----@param cb function +---@param cb function|table AddEventHandler("cron:runAt", function(h, m, cb) - assert(type(h) == "number", ("Expected number for h, got %s"):format(type(h))) - assert(type(m) == "number", ("Expected number for m, got %s"):format(type(m))) - assert(type(cb) == "function", ("Expected function for cb, got %s"):format(type(cb))) + local invokingResource = GetInvokingResource() or "Unknown" + local typeH = type(h) + local typeM = type(m) + local typeCb = type(cb) + + assert(typeH == "number", ("Expected number for h, got %s. Invoking Resource: '%s'"):format(typeH, invokingResource)) + assert(typeM == "number", ("Expected number for m, got %s. Invoking Resource: '%s'"):format(typeM, invokingResource)) + assert(typeCb == "function" or (typeCb == "table" and type(getmetatable(cb)?.__call) == "function"), ("Expected function for cb, got %s. Invoking Resource: '%s'"):format(typeCb, invokingResource)) RunAt(h, m, cb) end) From 3922e190e0eca83e8b97c09cc31d243d851de6a8 Mon Sep 17 00:00:00 2001 From: Kasey FItton Date: Sat, 16 Nov 2024 01:00:13 +0000 Subject: [PATCH 045/138] fix(skinchanger): wrong operator --- [core]/skinchanger/client/main.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/[core]/skinchanger/client/main.lua b/[core]/skinchanger/client/main.lua index 85620d81..133d8a22 100644 --- a/[core]/skinchanger/client/main.lua +++ b/[core]/skinchanger/client/main.lua @@ -104,7 +104,7 @@ function SkinChanger:ValidClothes(key) ["blemishes_2"] = true, ["blemishes_3"] = true, ["blush_1"] = true, ["blush_2"] = true, ["blush_3"] = true, ["complexion_1"] = true, ["complexion_2"] = true, ["sun_1"] = true, ["sun_2"] = true, ["moles_1"] = true, ["moles_2"] = true, ["chest_1"] = true, ["chest_2"] = true, ["chest_3"] = true, ["bodyb_1"] = true, ["bodyb_2"] = true, ["bodyb_3"] = true, ["bodyb_4"] = true} - return keys[key] ~= nil + return keys[key] == nil end local function Normalise(weight, divison) From e0ccc667850f401030cae6ea6e549006f6fbf0f9 Mon Sep 17 00:00:00 2001 From: Ilias Rbayti <63159154+Kenshiin13@users.noreply.github.com> Date: Sun, 17 Nov 2024 02:04:16 +0100 Subject: [PATCH 046/138] fix(es_extended/client/modules/actions): correctly update ped reference in TrackPed --- [core]/es_extended/client/modules/actions.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/[core]/es_extended/client/modules/actions.lua b/[core]/es_extended/client/modules/actions.lua index 3a81e129..23189d98 100644 --- a/[core]/es_extended/client/modules/actions.lua +++ b/[core]/es_extended/client/modules/actions.lua @@ -45,9 +45,9 @@ function Actions:TrackPed() if playerPed ~= newPed then ESX.PlayerData.ped = newPed - ESX.SetPlayerData("ped", playerPed) + ESX.SetPlayerData("ped", newPed) - TriggerEvent("esx:playerPedChanged", playerPed) + TriggerEvent("esx:playerPedChanged", newPed) end end From b10c599dc9bf3ee67619fb2a04dd92352b3a34d2 Mon Sep 17 00:00:00 2001 From: Gellipapa Date: Sun, 17 Nov 2024 13:02:59 +0100 Subject: [PATCH 047/138] test for lua lint ignore --- [core]/es_extended/server/classes/player.lua | 1 + 1 file changed, 1 insertion(+) diff --git a/[core]/es_extended/server/classes/player.lua b/[core]/es_extended/server/classes/player.lua index 1011c0d3..2bfeb79f 100644 --- a/[core]/es_extended/server/classes/player.lua +++ b/[core]/es_extended/server/classes/player.lua @@ -130,6 +130,7 @@ function CreateExtendedPlayer(playerId, identifier, group, accounts, inventory, ---@return number function self.getPlayTime() + -- luacheck: ignore return self.lastPlaytime + GetPlayerTimeOnline(self.source) end From 5c8d65dd7fda73fc333361f54eb6d65ecf899caa Mon Sep 17 00:00:00 2001 From: Gellipapa Date: Sun, 17 Nov 2024 13:05:27 +0100 Subject: [PATCH 048/138] test for lua lint ignore --- [core]/es_extended/server/modules/onesync.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/[core]/es_extended/server/modules/onesync.lua b/[core]/es_extended/server/modules/onesync.lua index cb9bfdfa..87c5f7f0 100644 --- a/[core]/es_extended/server/modules/onesync.lua +++ b/[core]/es_extended/server/modules/onesync.lua @@ -101,7 +101,7 @@ function ESX.OneSync.SpawnVehicle(model, coords, heading, properties, cb) return error(("Could not spawn vehicle - ^5%s^7!"):format(model)) end end - + -- luacheck: ignore SetEntityOrphanMode(createdVehicle, 2) local networkId = NetworkGetNetworkIdFromEntity(createdVehicle) Entity(createdVehicle).state:set("VehicleProperties", vehicleProperties, true) From f367b8e0e0f1fc6f9c7a91838a3974cfe4a17bfd Mon Sep 17 00:00:00 2001 From: Gellipapa Date: Sun, 17 Nov 2024 13:31:38 +0100 Subject: [PATCH 049/138] :pencil2: ignore/handle lint errors --- [core]/es_extended/server/main.lua | 4 ++-- [core]/esx_multicharacter/server/modules/functions.lua | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/[core]/es_extended/server/main.lua b/[core]/es_extended/server/main.lua index 1b9c7522..ab0937aa 100644 --- a/[core]/es_extended/server/main.lua +++ b/[core]/es_extended/server/main.lua @@ -102,7 +102,7 @@ if not Config.Multichar then Wait(0) -- Required local identifier = ESX.GetIdentifier(playerId) - + -- luacheck: ignore if not SetEntityOrphanMode then return deferrals.done(("[ESX] ESX Requires a minimum Artifact version of 10188, Please update your server.")) end @@ -694,7 +694,7 @@ AddEventHandler("onResourceStart", function(key) StopResource(key) error(("WE STOPPED A RESOURCE THAT WILL BREAK ^1ESX^1, PLEASE REMOVE ^5%s^1"):format(key)) end - + -- luacheck: ignore if not SetEntityOrphanMode then CreateThread(function() while true do diff --git a/[core]/esx_multicharacter/server/modules/functions.lua b/[core]/esx_multicharacter/server/modules/functions.lua index 47aeb5b4..f1750e2f 100644 --- a/[core]/esx_multicharacter/server/modules/functions.lua +++ b/[core]/esx_multicharacter/server/modules/functions.lua @@ -25,7 +25,8 @@ function Server:OnConnecting(source, deferrals) deferrals.defer() Wait(0) -- Required local identifier = self:GetIdentifier(source) - + + -- luacheck: ignore if not SetEntityOrphanMode then return deferrals.done(("[ESX] ESX Requires a minimum Artifact version of 10188, Please update your server.")) end From e40d48750077741230ecbf423e597e3209434cb1 Mon Sep 17 00:00:00 2001 From: Ilias Rbayti <63159154+Kenshiin13@users.noreply.github.com> Date: Sun, 17 Nov 2024 17:15:34 +0100 Subject: [PATCH 050/138] fix(skinchanger/client/main): fix HeadOverlay not being applied correctly --- [core]/skinchanger/client/main.lua | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/[core]/skinchanger/client/main.lua b/[core]/skinchanger/client/main.lua index 133d8a22..67be80d5 100644 --- a/[core]/skinchanger/client/main.lua +++ b/[core]/skinchanger/client/main.lua @@ -140,7 +140,7 @@ function SkinChanger:SetFace() end function SkinChanger:SetHeadOverlay() - local features = {{"age_1", "age_2"}, {"blemishes_1", "blemishes_2"}, {"beard_1", "beard_2"}, {"eyebrows_1", "eyebrows_2"}, {"makeup_1", "makeup_2"}, {"lipstick_1", "lipstick_2"}, {"blush_1", "blush_2"}, {"complexion_1", "complexion_2"}, {"sun_1", "sun_2"}, {"moles_1", "moles_2"}, {"chest_1", "chest_2"}} + local features = {{"blemishes_1", "blemishes_2"}, {"beard_1", "beard_2"}, {"eyebrows_1", "eyebrows_2"}, {"age_1", "age_2"}, {"makeup_1", "makeup_2"}, {"blush_1", "blush_2"}, {"complexion_1", "complexion_2"}, {"sun_1", "sun_2"}, {"lipstick_1", "lipstick_2"}, {"moles_1", "moles_2"}, {"chest_1", "chest_2"}} for i = 1, #features, 1 do local feature = features[i] SetPedHeadOverlay(self.playerPed, i - 1, self.character[feature[1]], Normalise(self.character[feature[2]], 10)) @@ -148,10 +148,9 @@ function SkinChanger:SetHeadOverlay() end function SkinChanger:SetHeadOverlayColour() - local features = {{"beard_3", "beard_4"}, {"eyebrows_3", "eyebrows_4"}, {"makeup_3", "makeup_4"}, {"lipstick_3", "lipstick_4"}, {"blush_3", 0}, {"chest_3", 0}} - for i = 1, #features, 1 do - local feature = features[i] - SetPedHeadOverlayColor(self.playerPed, i - 1, 1, self.character[feature[1]], self.character[feature[2]]) + local features = {[1] = {"beard_3", "beard_4"}, [2] = {"eyebrows_3", "eyebrows_4"}, [4] = {"makeup_3", "makeup_4"}, [5] = {"blush_3", 0}, [8] = {"lipstick_3", "lipstick_4"}, [10] = {"chest_3", 0}} + for i, feature in pairs(features) do + SetPedHeadOverlayColor(self.playerPed, i, 1, self.character[feature[1]], self.character[feature[2]]) end if self.character["bodyb_1"] == -1 then SetPedHeadOverlay(self.playerPed, 11, 255, (self.character["bodyb_2"] / 10) + 0.0) -- Body Blemishes + opacity From 1fb6037aad7f95bc85beb4182771e25d6a59e5d5 Mon Sep 17 00:00:00 2001 From: Ilias Rbayti <63159154+Kenshiin13@users.noreply.github.com> Date: Sun, 17 Nov 2024 21:47:33 +0100 Subject: [PATCH 051/138] fix(es_extended/client/main): use RegisterNetEvent for esx:playerLoaded --- [core]/es_extended/client/main.lua | 2 +- [core]/esx_skin/client/main.lua | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/[core]/es_extended/client/main.lua b/[core]/es_extended/client/main.lua index 25a79182..b989857f 100644 --- a/[core]/es_extended/client/main.lua +++ b/[core]/es_extended/client/main.lua @@ -14,7 +14,7 @@ local function ApplyMetadata(metadata) end end -ESX.SecureNetEvent("esx:playerLoaded", function(xPlayer, _, skin) +RegisterNetEvent("esx:playerLoaded", function(xPlayer, _, skin) ESX.PlayerData = xPlayer if not Config.Multichar then diff --git a/[core]/esx_skin/client/main.lua b/[core]/esx_skin/client/main.lua index 7240ae83..f30c86bc 100644 --- a/[core]/esx_skin/client/main.lua +++ b/[core]/esx_skin/client/main.lua @@ -70,7 +70,7 @@ AddEventHandler("esx_skin:playerRegistered", function() end) end) -ESX.SecureNetEvent("esx:playerLoaded", function(_, _, skin) +RegisterNetEvent("esx:playerLoaded", function(_, _, skin) ESX.PlayerLoaded = true TriggerServerEvent("esx_skin:setWeight", skin) end) From 56cd03c68a429561a27cd3eda95b5fba7042f3c8 Mon Sep 17 00:00:00 2001 From: Ilias Rbayti <63159154+Kenshiin13@users.noreply.github.com> Date: Sun, 17 Nov 2024 21:47:43 +0100 Subject: [PATCH 052/138] fix(es_extended/client/modules/npwd): use RegisterNetEvent for esx:playerLoaded --- [core]/es_extended/client/modules/npwd.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/[core]/es_extended/client/modules/npwd.lua b/[core]/es_extended/client/modules/npwd.lua index 98ff92e6..a1aa73a8 100644 --- a/[core]/es_extended/client/modules/npwd.lua +++ b/[core]/es_extended/client/modules/npwd.lua @@ -9,7 +9,7 @@ local function checkPhone() npwd:setPhoneDisabled((phoneItem and phoneItem.count or 0) <= 0) end -ESX.SecureNetEvent("esx:playerLoaded", checkPhone) +RegisterNetEvent("esx:playerLoaded", checkPhone) AddEventHandler("onClientResourceStart", function(resource) if resource ~= "npwd" then From 9446d73e9b041df6d657ce7fab275e59dac25ac1 Mon Sep 17 00:00:00 2001 From: Ilias Rbayti <63159154+Kenshiin13@users.noreply.github.com> Date: Sun, 17 Nov 2024 21:56:05 +0100 Subject: [PATCH 053/138] fix(esx_multicharacter/client/main): use RegisterNetEvent for esx:playerLoaded --- [core]/esx_multicharacter/client/main.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/[core]/esx_multicharacter/client/main.lua b/[core]/esx_multicharacter/client/main.lua index 33568bc6..0e6da55c 100644 --- a/[core]/esx_multicharacter/client/main.lua +++ b/[core]/esx_multicharacter/client/main.lua @@ -33,7 +33,7 @@ ESX.SecureNetEvent("esx_multicharacter:SetupUI", function(data, slots) Multicharacter:SetupUI(data, slots) end) -ESX.SecureNetEvent('esx:playerLoaded', function(playerData, isNew, skin) +RegisterNetEvent('esx:playerLoaded', function(playerData, isNew, skin) Multicharacter:PlayerLoaded(playerData, isNew, skin) end) From 5d59b2d94d4f1011692fd3dc5d740392f433e833 Mon Sep 17 00:00:00 2001 From: Ilias Rbayti <63159154+Kenshiin13@users.noreply.github.com> Date: Sun, 17 Nov 2024 21:56:14 +0100 Subject: [PATCH 054/138] refactor(es_extended/server/main): use esx:playerLoaded:internal --- [core]/es_extended/imports.lua | 4 +++- [core]/es_extended/server/main.lua | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/[core]/es_extended/imports.lua b/[core]/es_extended/imports.lua index f1483d0a..9069aac3 100644 --- a/[core]/es_extended/imports.lua +++ b/[core]/es_extended/imports.lua @@ -12,9 +12,11 @@ if not IsDuplicityVersion() then -- Only register this event for the client end end) - ESX.SecureNetEvent("esx:playerLoaded", function(xPlayer) + ESX.SecureNetEvent("esx:playerLoaded:internal", function(xPlayer, isNew, playerSkin) ESX.PlayerData = xPlayer ESX.PlayerLoaded = true + + TriggerEvent("esx:playerLoaded", xPlayer, isNew, playerSkin) end) ESX.SecureNetEvent("esx:onPlayerLogout", function() diff --git a/[core]/es_extended/server/main.lua b/[core]/es_extended/server/main.lua index 61fbe78e..cc1a6a95 100644 --- a/[core]/es_extended/server/main.lua +++ b/[core]/es_extended/server/main.lua @@ -290,7 +290,7 @@ function loadESXPlayer(identifier, playerId, isNew) TriggerEvent("esx:playerLoaded", playerId, xPlayer, isNew) userData.money = xPlayer.getMoney() userData.maxWeight = xPlayer.getMaxWeight() - xPlayer.triggerEvent("esx:playerLoaded", userData, isNew, userData.skin) + xPlayer.triggerEvent("esx:playerLoaded:internal", userData, isNew, userData.skin) if not Config.CustomInventory then xPlayer.triggerEvent("esx:createMissingPickups", Core.Pickups) From 8004dcfbf087aa1e1668cc6a7a6ba5f5b0b5d727 Mon Sep 17 00:00:00 2001 From: Kasey FItton Date: Sun, 17 Nov 2024 21:42:23 +0000 Subject: [PATCH 055/138] feat(es_extended/client/callback): implement ESX.AwaitServerCallback example usage: ```lua RegisterCommand("callback", function () local value, value2 = ESX.AwaitServerCallback("es_extended:callbackTest") print(value, value2) end, false) ``` --- .../es_extended/client/modules/callback.lua | 39 ++++++++++++++++++- 1 file changed, 37 insertions(+), 2 deletions(-) diff --git a/[core]/es_extended/client/modules/callback.lua b/[core]/es_extended/client/modules/callback.lua index 738b3bb1..7d69a6ff 100644 --- a/[core]/es_extended/client/modules/callback.lua +++ b/[core]/es_extended/client/modules/callback.lua @@ -7,10 +7,18 @@ Callbacks.storage = {} Callbacks.id = 0 function Callbacks:Trigger(event, cb, invoker, ...) - self.requests[self.id] = cb + + self.requests[self.id] = { + await = type(cb) == "boolean", + cb = cb or promise:new() + } + local table = self.requests[self.id] + TriggerServerEvent("esx:triggerServerCallback", event, self.id, invoker, ...) self.id += 1 + + return table.cb end function Callbacks:Execute(cb, ...) @@ -32,7 +40,12 @@ function Callbacks:ServerRecieve(requestId, invoker, ...) local callback = self.requests[self.currentId] - Callbacks:Execute(callback, ...) + if callback.await then + return callback.cb:resolve({...}) + else + Callbacks:Execute(callback.cb, ...) + end + self.requests[requestId] = nil end @@ -66,6 +79,28 @@ ESX.TriggerServerCallback = function(eventName, callback, ...) Callbacks:Trigger(eventName, callback, invoker, ...) end +---@param eventName string +---@param ... any +---@return any +ESX.AwaitServerCallback = function(eventName, ...) + local invokingResource = GetInvokingResource() + local invoker = (invokingResource and invokingResource ~= "unknown") and invokingResource or "es_extended" + + local p = Callbacks:Trigger(eventName, false, invoker, ...) + if not p then return end + + -- if the server callback takes longer than 15 seconds to respond, reject the promise + SetTimeout(15000, function() + if p.state == "pending" then + p:reject("Server Callback Timed Out") + end + end) + + Citizen.Await(p) + + return table.unpack(p.value) +end + ESX.SecureNetEvent("esx:serverCallback", function(...) Callbacks:ServerRecieve(...) end) From 6aa49369a12463927a10db0502ca32d6e857ca24 Mon Sep 17 00:00:00 2001 From: Ilias Rbayti <63159154+Kenshiin13@users.noreply.github.com> Date: Sun, 17 Nov 2024 22:48:04 +0100 Subject: [PATCH 056/138] Revert "refactor(es_extended/server/main): use esx:playerLoaded:internal" This reverts commit 5d59b2d94d4f1011692fd3dc5d740392f433e833. --- [core]/es_extended/imports.lua | 4 +--- [core]/es_extended/server/main.lua | 2 +- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/[core]/es_extended/imports.lua b/[core]/es_extended/imports.lua index 9069aac3..f1483d0a 100644 --- a/[core]/es_extended/imports.lua +++ b/[core]/es_extended/imports.lua @@ -12,11 +12,9 @@ if not IsDuplicityVersion() then -- Only register this event for the client end end) - ESX.SecureNetEvent("esx:playerLoaded:internal", function(xPlayer, isNew, playerSkin) + ESX.SecureNetEvent("esx:playerLoaded", function(xPlayer) ESX.PlayerData = xPlayer ESX.PlayerLoaded = true - - TriggerEvent("esx:playerLoaded", xPlayer, isNew, playerSkin) end) ESX.SecureNetEvent("esx:onPlayerLogout", function() diff --git a/[core]/es_extended/server/main.lua b/[core]/es_extended/server/main.lua index cc1a6a95..61fbe78e 100644 --- a/[core]/es_extended/server/main.lua +++ b/[core]/es_extended/server/main.lua @@ -290,7 +290,7 @@ function loadESXPlayer(identifier, playerId, isNew) TriggerEvent("esx:playerLoaded", playerId, xPlayer, isNew) userData.money = xPlayer.getMoney() userData.maxWeight = xPlayer.getMaxWeight() - xPlayer.triggerEvent("esx:playerLoaded:internal", userData, isNew, userData.skin) + xPlayer.triggerEvent("esx:playerLoaded", userData, isNew, userData.skin) if not Config.CustomInventory then xPlayer.triggerEvent("esx:createMissingPickups", Core.Pickups) From 37aaae629622ca35ebe27a3a6018e9c332a84931 Mon Sep 17 00:00:00 2001 From: Ilias Rbayti <63159154+Kenshiin13@users.noreply.github.com> Date: Sun, 17 Nov 2024 22:49:25 +0100 Subject: [PATCH 057/138] fix(es_extended/imports): use RegisterNetEvent for esx:playerLoaded --- [core]/es_extended/imports.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/[core]/es_extended/imports.lua b/[core]/es_extended/imports.lua index f1483d0a..d6eb1449 100644 --- a/[core]/es_extended/imports.lua +++ b/[core]/es_extended/imports.lua @@ -12,7 +12,7 @@ if not IsDuplicityVersion() then -- Only register this event for the client end end) - ESX.SecureNetEvent("esx:playerLoaded", function(xPlayer) + RegisterNetEvent("esx:playerLoaded", function(xPlayer) ESX.PlayerData = xPlayer ESX.PlayerLoaded = true end) From b4548945dddd6dc0a4695071f5040db6abc46966 Mon Sep 17 00:00:00 2001 From: Kasey FItton Date: Sun, 17 Nov 2024 22:09:55 +0000 Subject: [PATCH 058/138] tweak(es_extended/client/callback): use self:Execute --- [core]/es_extended/client/modules/callback.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/[core]/es_extended/client/modules/callback.lua b/[core]/es_extended/client/modules/callback.lua index 7d69a6ff..9e614b43 100644 --- a/[core]/es_extended/client/modules/callback.lua +++ b/[core]/es_extended/client/modules/callback.lua @@ -43,7 +43,7 @@ function Callbacks:ServerRecieve(requestId, invoker, ...) if callback.await then return callback.cb:resolve({...}) else - Callbacks:Execute(callback.cb, ...) + self:Execute(callback.cb, ...) end self.requests[requestId] = nil @@ -65,7 +65,7 @@ function Callbacks:ClientRecieve(eventName, requestId, invoker, ...) end local callback = self.storage[eventName] - Callbacks:Execute(callback, returnCb, ...) + self:Execute(callback, returnCb, ...) end ---@param eventName string From 32f8e05442d1856f178fb1af992240dee2ba0f3f Mon Sep 17 00:00:00 2001 From: Kasey FItton Date: Sun, 17 Nov 2024 22:12:29 +0000 Subject: [PATCH 059/138] fix(es_extended/client/callback): dont return before cleanup --- [core]/es_extended/client/modules/callback.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/[core]/es_extended/client/modules/callback.lua b/[core]/es_extended/client/modules/callback.lua index 9e614b43..74692840 100644 --- a/[core]/es_extended/client/modules/callback.lua +++ b/[core]/es_extended/client/modules/callback.lua @@ -41,7 +41,7 @@ function Callbacks:ServerRecieve(requestId, invoker, ...) local callback = self.requests[self.currentId] if callback.await then - return callback.cb:resolve({...}) + callback.cb:resolve({...}) else self:Execute(callback.cb, ...) end From faef100addef0fb98ab2010a3c3e542e9b1fd12d Mon Sep 17 00:00:00 2001 From: Kasey FItton Date: Sun, 17 Nov 2024 22:59:21 +0000 Subject: [PATCH 060/138] fix(es_extended/client/callback): make sure data is cleaned up --- .../es_extended/client/modules/callback.lua | 21 ++++++++----------- 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/[core]/es_extended/client/modules/callback.lua b/[core]/es_extended/client/modules/callback.lua index 74692840..bd47e447 100644 --- a/[core]/es_extended/client/modules/callback.lua +++ b/[core]/es_extended/client/modules/callback.lua @@ -21,32 +21,30 @@ function Callbacks:Trigger(event, cb, invoker, ...) return table.cb end -function Callbacks:Execute(cb, ...) +function Callbacks:Execute(cb, id, ...) local success, errorString = pcall(cb, ...) if not success then - print(("[^1ERROR^7] Failed to execute Callback with RequestId: ^5%s^7"):format(self.currentId)) + print(("[^1ERROR^7] Failed to execute Callback with RequestId: ^5%s^7"):format(id)) error(errorString) return end - self.currentId = nil end function Callbacks:ServerRecieve(requestId, invoker, ...) - self.currentId = requestId - if not self.requests[self.currentId] then - return error(("Server Callback with requestId ^5%s^1 Was Called by ^5%s^1 but does not exist."):format(self.currentId, invoker)) + if not self.requests[requestId] then + return error(("Server Callback with requestId ^5%s^1 Was Called by ^5%s^1 but does not exist."):format(requestId, invoker)) end - local callback = self.requests[self.currentId] + local callback = self.requests[requestId] + + self.requests[requestId] = nil if callback.await then callback.cb:resolve({...}) else - self:Execute(callback.cb, ...) + self:Execute(callback.cb, requestId, ...) end - - self.requests[requestId] = nil end function Callbacks:Register(name, cb) @@ -54,7 +52,6 @@ function Callbacks:Register(name, cb) end function Callbacks:ClientRecieve(eventName, requestId, invoker, ...) - self.currentId = requestId if not self.storage[eventName] then return error(("Client Callback with requestId ^5%s^1 Was Called by ^5%s^1 but does not exist."):format(eventName, invoker)) @@ -65,7 +62,7 @@ function Callbacks:ClientRecieve(eventName, requestId, invoker, ...) end local callback = self.storage[eventName] - self:Execute(callback, returnCb, ...) + self:Execute(callback, requestId, returnCb, ...) end ---@param eventName string From e4f55ab2f5df569de61ac5b2b0a1b2f48f559ed9 Mon Sep 17 00:00:00 2001 From: Kasey FItton Date: Mon, 18 Nov 2024 16:08:45 +0000 Subject: [PATCH 061/138] fix(esx_skin): restrict menu --- [core]/esx_skin/client/main.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/[core]/esx_skin/client/main.lua b/[core]/esx_skin/client/main.lua index 7240ae83..a2e26a4f 100644 --- a/[core]/esx_skin/client/main.lua +++ b/[core]/esx_skin/client/main.lua @@ -80,7 +80,7 @@ RegisterNetEvent("esx_skin:openMenu", function(submitCb, cancelCb) end) RegisterNetEvent("esx_skin:openRestrictedMenu", function(submitCb, cancelCb, restrict) - Menu:Open(submitCb, cancelCb, nil) + Menu:Open(submitCb, cancelCb, restrict) end) RegisterNetEvent("esx_skin:openSaveableMenu", function(submitCb, cancelCb) From de7dcb75bae8a759da14d336c93d5a123620397c Mon Sep 17 00:00:00 2001 From: Ilias Rbayti <63159154+Kenshiin13@users.noreply.github.com> Date: Wed, 20 Nov 2024 19:36:49 +0100 Subject: [PATCH 062/138] fix(esx_skin/client/modules/menu): clear old menu items before inserting new ones --- [core]/esx_skin/client/modules/menu.lua | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/[core]/esx_skin/client/modules/menu.lua b/[core]/esx_skin/client/modules/menu.lua index e7ddcf1b..786a1b3b 100644 --- a/[core]/esx_skin/client/modules/menu.lua +++ b/[core]/esx_skin/client/modules/menu.lua @@ -37,7 +37,8 @@ end function Menu:InsertElements() local playerPed = PlayerPedId() - + + self.elements = {} for i = 1, #self.components, 1 do local value = self.components[i].value local componentId = self.components[i].componentId From d947633be8869d562eb86e23a536d2922d3b43aa Mon Sep 17 00:00:00 2001 From: Ilias Rbayti <63159154+Kenshiin13@users.noreply.github.com> Date: Wed, 20 Nov 2024 19:47:50 +0100 Subject: [PATCH 063/138] refactor(esx_skin/client/modules/menu): remove redundant check --- [core]/esx_skin/client/modules/menu.lua | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/[core]/esx_skin/client/modules/menu.lua b/[core]/esx_skin/client/modules/menu.lua index 786a1b3b..7af77cd6 100644 --- a/[core]/esx_skin/client/modules/menu.lua +++ b/[core]/esx_skin/client/modules/menu.lua @@ -37,7 +37,7 @@ end function Menu:InsertElements() local playerPed = PlayerPedId() - + self.elements = {} for i = 1, #self.components, 1 do local value = self.components[i].value @@ -52,9 +52,6 @@ function Menu:InsertElements() data.type = "slider" data.max = self.maxValues[self.components[i].name] - if not self.elements then - self.elements = {} - end self.elements[#self.elements + 1] = data end end From 6ed90e8a06a083483a577c12a096ef8b77c39b8c Mon Sep 17 00:00:00 2001 From: Ilias Rbayti <63159154+Kenshiin13@users.noreply.github.com> Date: Wed, 20 Nov 2024 20:10:15 +0100 Subject: [PATCH 064/138] fix(esx_skin/client/modules/menu): set initial camera offsets properly --- [core]/esx_skin/client/modules/menu.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/[core]/esx_skin/client/modules/menu.lua b/[core]/esx_skin/client/modules/menu.lua index e7ddcf1b..3767d9b1 100644 --- a/[core]/esx_skin/client/modules/menu.lua +++ b/[core]/esx_skin/client/modules/menu.lua @@ -122,8 +122,8 @@ function Menu:Open(submit, cancel, restrict) self:InsertElements() - self.zoomOffset = self.components[1].zoomOffset - self.camOffset = self.components[1].camOffset + Skin.zoomOffset = self.components[1].zoomOffset + Skin.camOffset = self.components[1].camOffset Camera:Create() self:ESXMenu() From e64c7f73497c826240f25aa547e10846b344f2c2 Mon Sep 17 00:00:00 2001 From: Kasey FItton Date: Thu, 21 Nov 2024 00:44:56 +0000 Subject: [PATCH 065/138] fix(es_extended/callback): correctly dispose of function references This has been an Issue since ESX 1.0, This should hopefully stop invalid callbacks being called --- .../es_extended/client/modules/callback.lua | 22 ++++++++++++++---- .../es_extended/server/modules/callback.lua | 23 +++++++++++++++---- 2 files changed, 36 insertions(+), 9 deletions(-) diff --git a/[core]/es_extended/client/modules/callback.lua b/[core]/es_extended/client/modules/callback.lua index bd47e447..1d23d9b6 100644 --- a/[core]/es_extended/client/modules/callback.lua +++ b/[core]/es_extended/client/modules/callback.lua @@ -47,8 +47,11 @@ function Callbacks:ServerRecieve(requestId, invoker, ...) end end -function Callbacks:Register(name, cb) - self.storage[name] = cb +function Callbacks:Register(name, resource, cb) + self.storage[name] = { + resource = resource, + cb = cb + } end function Callbacks:ClientRecieve(eventName, requestId, invoker, ...) @@ -60,7 +63,7 @@ function Callbacks:ClientRecieve(eventName, requestId, invoker, ...) local returnCb = function(...) TriggerServerEvent("esx:clientCallback", requestId, invoker, ...) end - local callback = self.storage[eventName] + local callback = self.storage[eventName].cb self:Execute(callback, requestId, returnCb, ...) end @@ -106,9 +109,20 @@ end) ---@param callback function ---@return nil ESX.RegisterClientCallback = function(eventName, callback) - Callbacks:Register(eventName, callback) + local invokingResource = GetInvokingResource() + local invoker = (invokingResource and invokingResource ~= "Unknown") and invokingResource or "es_extended" + + Callbacks:Register(eventName, invoker, callback) end ESX.SecureNetEvent("esx:triggerClientCallback", function(...) Callbacks:ClientRecieve(...) end) + +AddEventHandler("onResourceStop", function(resource) + for k, v in pairs(Callbacks.storage) do + if v.resource == resource then + Callbacks.storage[k] = nil + end + end +end) diff --git a/[core]/es_extended/server/modules/callback.lua b/[core]/es_extended/server/modules/callback.lua index 245b0987..df06cc2e 100644 --- a/[core]/es_extended/server/modules/callback.lua +++ b/[core]/es_extended/server/modules/callback.lua @@ -6,8 +6,11 @@ Callbacks.requests = {} Callbacks.storage = {} Callbacks.id = 0 -function Callbacks:Register(name, cb) - self.storage[name] = cb +function Callbacks:Register(name, resource, cb) + self.storage[name] = { + resource = resource, + cb = cb + } end function Callbacks:Execute(cb, ...) @@ -39,7 +42,7 @@ function Callbacks:ServerRecieve(player, event, requestId, invoker, ...) local returnCb = function(...) TriggerClientEvent("esx:serverCallback", player, requestId, invoker, ...) end - local callback = self.storage[event] + local callback = self.storage[event].cb self:Execute(callback, player, returnCb, ...) end @@ -73,7 +76,7 @@ end) ---@param ... any function ESX.TriggerClientCallback(player, eventName, callback, ...) local invokingResource = GetInvokingResource() - local invoker = (invokingResource and invokingResource ~= "unknown") and invokingResource or "es_extended" + local invoker = (invokingResource and invokingResource ~= "Unknown") and invokingResource or "es_extended" Callbacks:Trigger(player, eventName, callback, invoker, ...) end @@ -81,6 +84,16 @@ end ---@param eventName string ---@param callback function ESX.RegisterServerCallback = function(eventName, callback) - Callbacks:Register(eventName, callback) + local invokingResource = GetInvokingResource() + local invoker = (invokingResource and invokingResource ~= "Unknown") and invokingResource or "es_extended" + + Callbacks:Register(eventName, invoker, callback) end +AddEventHandler("onResourceStop", function(resource) + for k, v in pairs(Callbacks.storage) do + if v.resource == resource then + Callbacks.storage[k] = nil + end + end +end) From 7c4c3aec56d70c994ebbbbba1cc184cec1cdbc93 Mon Sep 17 00:00:00 2001 From: Rafael Antunes <147253092+Fellow1990@users.noreply.github.com> Date: Thu, 21 Nov 2024 17:39:35 +0000 Subject: [PATCH 066/138] update: menu.lua Confusion of lowercase and uppercase letters --- [core]/esx_skin/client/modules/menu.lua | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/[core]/esx_skin/client/modules/menu.lua b/[core]/esx_skin/client/modules/menu.lua index e7ddcf1b..5f9e090a 100644 --- a/[core]/esx_skin/client/modules/menu.lua +++ b/[core]/esx_skin/client/modules/menu.lua @@ -59,7 +59,7 @@ function Menu:InsertElements() end function Menu:Submit(data, menu) - Skin.last = exports["skinchanger"]:GetSkin() + Skin.Last = exports["skinchanger"]:GetSkin() self.submitCb(data, menu) Camera:Destroy() end @@ -67,7 +67,7 @@ end function Menu:Cancel(data, menu) menu.close() Camera:Destroy() - TriggerEvent("skinchanger:loadSkin", Skin.last) + TriggerEvent("skinchanger:loadSkin", Skin.Last) if self.cancelCb then self.cancelCb(data, menu) @@ -113,7 +113,7 @@ function Menu:Open(submit, cancel, restrict) self.submitCb = submit self.cancelCb = cancel self.restricted = restrict - Skin.last = exports["skinchanger"]:GetSkin() + Skin.Last = exports["skinchanger"]:GetSkin() self.components, self.maxValues = exports["skinchanger"]:GetData() if restrict then @@ -130,7 +130,7 @@ function Menu:Open(submit, cancel, restrict) end function Menu:Saveable(submitCb, cancelCb, restrict) - Skin.last = exports["skinchanger"]:GetSkin() + Skin.Last = exports["skinchanger"]:GetSkin() self:Open(function(data, menu) menu.close() From 7954d6ec108786a1c4468231d4b078cea817452f Mon Sep 17 00:00:00 2001 From: Ilias Rbayti <63159154+Kenshiin13@users.noreply.github.com> Date: Sat, 23 Nov 2024 00:15:14 +0100 Subject: [PATCH 067/138] refactor(es_extended/server/modules/actions): replace deprecated RegisterServerEvent --- [core]/es_extended/server/modules/actions.lua | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/[core]/es_extended/server/modules/actions.lua b/[core]/es_extended/server/modules/actions.lua index 52eeeb5b..e7c91e6a 100644 --- a/[core]/es_extended/server/modules/actions.lua +++ b/[core]/es_extended/server/modules/actions.lua @@ -1,9 +1,9 @@ -RegisterServerEvent("esx:playerPedChanged") -RegisterServerEvent("esx:playerJumping") -RegisterServerEvent("esx:enteringVehicle") -RegisterServerEvent("esx:enteringVehicleAborted") -RegisterServerEvent("esx:enteredVehicle") -RegisterServerEvent("esx:exitedVehicle") +RegisterNetEvent("esx:playerPedChanged") +RegisterNetEvent("esx:playerJumping") +RegisterNetEvent("esx:enteringVehicle") +RegisterNetEvent("esx:enteringVehicleAborted") +RegisterNetEvent("esx:enteredVehicle") +RegisterNetEvent("esx:exitedVehicle") if Config.EnableDebug then AddEventHandler("esx:playerPedChanged", function(netId) From 4feda3ba0879c9643c90ef25917856f4aa585dfa Mon Sep 17 00:00:00 2001 From: Ilias Rbayti <63159154+Kenshiin13@users.noreply.github.com> Date: Sat, 23 Nov 2024 00:54:37 +0100 Subject: [PATCH 068/138] feat(es_extended/shared/modules/table): add ESX.Table.ToArray --- [core]/es_extended/shared/modules/table.lua | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/[core]/es_extended/shared/modules/table.lua b/[core]/es_extended/shared/modules/table.lua index fc345200..aacb2584 100644 --- a/[core]/es_extended/shared/modules/table.lua +++ b/[core]/es_extended/shared/modules/table.lua @@ -223,3 +223,11 @@ function ESX.Table.Sort(t, order) end end end + +function ESX.Table.ToArray(table) + local array = {} + for _, v in pairs(table) do + array[#array + 1] = v + end + return array +end From 3a61ae53103f30bae189b5efbe23a0527c9c03bd Mon Sep 17 00:00:00 2001 From: Ilias Rbayti <63159154+Kenshiin13@users.noreply.github.com> Date: Sat, 23 Nov 2024 01:00:47 +0100 Subject: [PATCH 069/138] refactor(es_extended/server/functions): refactor ESX.GetExtendedPlayers --- [core]/es_extended/server/functions.lua | 30 +++++++++++++------------ 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/[core]/es_extended/server/functions.lua b/[core]/es_extended/server/functions.lua index 606ab0e7..cec340b5 100644 --- a/[core]/es_extended/server/functions.lua +++ b/[core]/es_extended/server/functions.lua @@ -276,15 +276,15 @@ end ESX.GetPlayers = GetPlayers -local function checkTable(key, val, player, xPlayers) +local function checkTable(key, val, xPlayer, xPlayers) for valIndex = 1, #val do local value = val[valIndex] if not xPlayers[value] then xPlayers[value] = {} end - if (key == "job" and player.job.name == value) or player[key] == value then - xPlayers[value][#xPlayers[value] + 1] = player + if (key == "job" and xPlayer.job.name == value) or xPlayer[key] == value then + xPlayers[value][#xPlayers[value] + 1] = xPlayer end end end @@ -293,20 +293,22 @@ end ---@param val? string|table ---@return table function ESX.GetExtendedPlayers(key, val) + if not key then + return ESX.Table.ToArray(ESX.Players) + end + local xPlayers = {} if type(val) == "table" then - for _, v in pairs(ESX.Players) do - checkTable(key, val, v, xPlayers) + for i, xPlayer in pairs(ESX.Players) do + checkTable(key, val, xPlayer, xPlayers) end - else - for _, v in pairs(ESX.Players) do - if key then - if (key == "job" and v.job.name == val) or v[key] == val then - xPlayers[#xPlayers + 1] = v - end - else - xPlayers[#xPlayers + 1] = v - end + + return xPlayers + end + + for i, xPlayer in pairs(ESX.Players) do + if (key == "job" and xPlayer.job.name == val) or xPlayer[key] == val then + xPlayers[#xPlayers + 1] = xPlayer end end From d69af15d28550ec8469758cf8590cd8e803d7faa Mon Sep 17 00:00:00 2001 From: Ilias Rbayti <63159154+Kenshiin13@users.noreply.github.com> Date: Sun, 24 Nov 2024 16:24:23 +0100 Subject: [PATCH 070/138] feat(es_extended/client/modules/adjustments): add adjustment DisableRadio --- [core]/es_extended/client/modules/adjustments.lua | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/[core]/es_extended/client/modules/adjustments.lua b/[core]/es_extended/client/modules/adjustments.lua index 42fa9398..4b46a4a8 100644 --- a/[core]/es_extended/client/modules/adjustments.lua +++ b/[core]/es_extended/client/modules/adjustments.lua @@ -215,6 +215,15 @@ function Adjustments:WantedLevel() end end +function Adjustments:DisableRadio() + if Config.RemoveHudComponents[16] then + AddEventHandler("esx:enteredVehicle", function(vehicle, plate, seat, displayName, netId) + SetVehRadioStation(vehicle,"OFF") + SetUserRadioControlEnabled(false) + end) + end +end + function Adjustments:Load() self:RemoveHudComponents() self:DisableAimAssist() @@ -228,4 +237,5 @@ function Adjustments:Load() self:LicensePlates() self:DiscordPresence() self:WantedLevel() + self:DisableRadio() end From 359077c66e03d33d7bb13a57c2672b766c7f196f Mon Sep 17 00:00:00 2001 From: Ilias Rbayti <63159154+Kenshiin13@users.noreply.github.com> Date: Sun, 24 Nov 2024 16:53:52 +0100 Subject: [PATCH 071/138] fix(es_extended/client/modules/adjustments): add SetHudComponentPosition --- [core]/es_extended/client/modules/adjustments.lua | 1 + 1 file changed, 1 insertion(+) diff --git a/[core]/es_extended/client/modules/adjustments.lua b/[core]/es_extended/client/modules/adjustments.lua index 4b46a4a8..b4d4fe8a 100644 --- a/[core]/es_extended/client/modules/adjustments.lua +++ b/[core]/es_extended/client/modules/adjustments.lua @@ -4,6 +4,7 @@ function Adjustments:RemoveHudComponents() for i = 1, #Config.RemoveHudComponents do if Config.RemoveHudComponents[i] then SetHudComponentSize(i, 0.0, 0.0) + SetHudComponentPosition(i, 900, 900) end end end From 4fb1ac0aa73edbc8d139277e41d21b65f91a18a3 Mon Sep 17 00:00:00 2001 From: Ilias Rbayti <63159154+Kenshiin13@users.noreply.github.com> Date: Mon, 25 Nov 2024 15:19:15 +0100 Subject: [PATCH 072/138] fix(es_extended/client/functions): properly call SetVehicleExtra --- [core]/es_extended/client/functions.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/[core]/es_extended/client/functions.lua b/[core]/es_extended/client/functions.lua index 42569381..58252a0f 100644 --- a/[core]/es_extended/client/functions.lua +++ b/[core]/es_extended/client/functions.lua @@ -1019,7 +1019,7 @@ function ESX.Game.SetVehicleProperties(vehicle, props) for extraId, enabled in pairs(props.extras) do extraId = tonumber(extraId) if extraId then - SetVehicleExtra(vehicle, extraId, enabled) + SetVehicleExtra(vehicle, extraId, not enabled) end end end From ef935e14d6fd90059e93552efba6b0b007a4450a Mon Sep 17 00:00:00 2001 From: Kasey FItton Date: Mon, 25 Nov 2024 18:11:51 +0000 Subject: [PATCH 073/138] feat(es_extended/server): more callback functions --- [core]/es_extended/server/modules/callback.lua | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/[core]/es_extended/server/modules/callback.lua b/[core]/es_extended/server/modules/callback.lua index 245b0987..4e17f2c5 100644 --- a/[core]/es_extended/server/modules/callback.lua +++ b/[core]/es_extended/server/modules/callback.lua @@ -80,7 +80,18 @@ end ---@param eventName string ---@param callback function -ESX.RegisterServerCallback = function(eventName, callback) +function ESX.RegisterServerCallback(eventName, callback) Callbacks:Register(eventName, callback) end +---@param eventName string +---@return boolean +function ESX.DoesServerCallbackExist(eventName) + return Callbacks.storage[eventName] ~= nil +end + +---@param eventName string +---@return table | nil +function ESX.GetCallbackInfo(eventName) + return Callbacks.storage[eventName] +end From a4115d516502a64a6da172ae7c4f96579e4477c9 Mon Sep 17 00:00:00 2001 From: Kasey FItton Date: Mon, 25 Nov 2024 18:22:57 +0000 Subject: [PATCH 074/138] feat(es_extended/client): extra callback functions --- .../es_extended/client/modules/callback.lua | 41 ++++++++++++++----- 1 file changed, 31 insertions(+), 10 deletions(-) diff --git a/[core]/es_extended/client/modules/callback.lua b/[core]/es_extended/client/modules/callback.lua index bd47e447..20fa7463 100644 --- a/[core]/es_extended/client/modules/callback.lua +++ b/[core]/es_extended/client/modules/callback.lua @@ -6,6 +6,10 @@ Callbacks.requests = {} Callbacks.storage = {} Callbacks.id = 0 +-- ============================================= +-- MARK: Internal Functions +-- ============================================= + function Callbacks:Trigger(event, cb, invoker, ...) self.requests[self.id] = { @@ -65,11 +69,24 @@ function Callbacks:ClientRecieve(eventName, requestId, invoker, ...) self:Execute(callback, requestId, returnCb, ...) end +ESX.SecureNetEvent("esx:triggerClientCallback", function(...) + Callbacks:ClientRecieve(...) +end) + + +ESX.SecureNetEvent("esx:serverCallback", function(...) + Callbacks:ServerRecieve(...) +end) + +-- ============================================= +-- MARK: ESX Functions +-- ============================================= + ---@param eventName string ---@param callback function ---@param ... any ---@return nil -ESX.TriggerServerCallback = function(eventName, callback, ...) +function ESX.TriggerServerCallback(eventName, callback, ...) local invokingResource = GetInvokingResource() local invoker = (invokingResource and invokingResource ~= "unknown") and invokingResource or "es_extended" @@ -79,7 +96,7 @@ end ---@param eventName string ---@param ... any ---@return any -ESX.AwaitServerCallback = function(eventName, ...) +function ESX.AwaitServerCallback(eventName, ...) local invokingResource = GetInvokingResource() local invoker = (invokingResource and invokingResource ~= "unknown") and invokingResource or "es_extended" @@ -98,17 +115,21 @@ ESX.AwaitServerCallback = function(eventName, ...) return table.unpack(p.value) end -ESX.SecureNetEvent("esx:serverCallback", function(...) - Callbacks:ServerRecieve(...) -end) - ---@param eventName string ---@param callback function ---@return nil -ESX.RegisterClientCallback = function(eventName, callback) +function ESX.RegisterClientCallback(eventName, callback) Callbacks:Register(eventName, callback) end -ESX.SecureNetEvent("esx:triggerClientCallback", function(...) - Callbacks:ClientRecieve(...) -end) +---@param eventName string +---@return boolean +function ESX.DoesClientCallbackExist(eventName) + return Callbacks.storage[eventName] ~= nil +end + +---@param eventName string +---@return table | nil +function ESX.GetClientCallbackInfo(eventName) + return Callbacks.storage[eventName] +end From 672237cd3bf75be1401156411293b32cab7f856f Mon Sep 17 00:00:00 2001 From: Kasey FItton Date: Mon, 25 Nov 2024 18:28:01 +0000 Subject: [PATCH 075/138] fix(es_extended/server/callback): correct function names --- [core]/es_extended/server/modules/callback.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/[core]/es_extended/server/modules/callback.lua b/[core]/es_extended/server/modules/callback.lua index 4e17f2c5..f84ae987 100644 --- a/[core]/es_extended/server/modules/callback.lua +++ b/[core]/es_extended/server/modules/callback.lua @@ -92,6 +92,6 @@ end ---@param eventName string ---@return table | nil -function ESX.GetCallbackInfo(eventName) +function ESX.GetServerCallbackInfo(eventName) return Callbacks.storage[eventName] end From ccc9b3d3e7a6f796c8cd20f9d1eceb74de190d73 Mon Sep 17 00:00:00 2001 From: Tom <111147401+1OSaft@users.noreply.github.com> Date: Tue, 26 Nov 2024 10:19:17 +0100 Subject: [PATCH 076/138] Added missing parameter Added a missing parameter that wouldnt allow users to have custom charSlots --- [core]/esx_multicharacter/server/modules/multicharacter.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/[core]/esx_multicharacter/server/modules/multicharacter.lua b/[core]/esx_multicharacter/server/modules/multicharacter.lua index 923dd55e..c43be581 100644 --- a/[core]/esx_multicharacter/server/modules/multicharacter.lua +++ b/[core]/esx_multicharacter/server/modules/multicharacter.lua @@ -13,7 +13,7 @@ function Multicharacter:SetupCharacters(source) local identifier = Server:GetIdentifier(source) ESX.Players[identifier] = true - local slots = Database:GetPlayerSlots() + local slots = Database:GetPlayerSlots(identifier) identifier = Server.prefix .. "%:" .. identifier local rawCharacters = Database:GetPlayerInfo(identifier, slots) From 9272d71ba89ee58b2226861400b41f31560dcf8c Mon Sep 17 00:00:00 2001 From: Ilias Rbayti <63159154+Kenshiin13@users.noreply.github.com> Date: Tue, 26 Nov 2024 22:00:16 +0100 Subject: [PATCH 077/138] fix(esx_multicharacter/client/modules/multicharacter): remove redundant playerSpawned trigger --- [core]/esx_multicharacter/client/modules/multicharacter.lua | 1 - 1 file changed, 1 deletion(-) diff --git a/[core]/esx_multicharacter/client/modules/multicharacter.lua b/[core]/esx_multicharacter/client/modules/multicharacter.lua index 9ea9b974..ef099f58 100644 --- a/[core]/esx_multicharacter/client/modules/multicharacter.lua +++ b/[core]/esx_multicharacter/client/modules/multicharacter.lua @@ -272,7 +272,6 @@ function Multicharacter:PlayerLoaded(playerData, isNew, skin) TriggerServerEvent("esx:onPlayerSpawn") TriggerEvent("esx:onPlayerSpawn") - TriggerEvent("playerSpawned") TriggerEvent("esx:restoreLoadout") self:Reset() From 8528321c055c33ae07148598e92df57bddaa48ca Mon Sep 17 00:00:00 2001 From: Ilias Rbayti <63159154+Kenshiin13@users.noreply.github.com> Date: Tue, 26 Nov 2024 22:00:56 +0100 Subject: [PATCH 078/138] fix(es_extended/client/main): apply player metadata in esx:onPlayerSpawn to fix race condition --- [core]/es_extended/client/main.lua | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/[core]/es_extended/client/main.lua b/[core]/es_extended/client/main.lua index b989857f..6516355e 100644 --- a/[core]/es_extended/client/main.lua +++ b/[core]/es_extended/client/main.lua @@ -4,16 +4,6 @@ ESX.SecureNetEvent("esx:requestModel", function(model) ESX.Streaming.RequestModel(model) end) -local function ApplyMetadata(metadata) - if metadata.health then - SetEntityHealth(ESX.PlayerData.ped, metadata.health) - end - - if metadata.armor and metadata.armor > 0 then - SetPedArmour(ESX.PlayerData.ped, metadata.armor) - end -end - RegisterNetEvent("esx:playerLoaded", function(xPlayer, _, skin) ESX.PlayerData = xPlayer @@ -34,8 +24,6 @@ RegisterNetEvent("esx:playerLoaded", function(xPlayer, _, skin) ESX.PlayerLoaded = true - ApplyMetadata(ESX.PlayerData.metadata) - local timer = GetGameTimer() while not HaveAllStreamingRequestsCompleted(ESX.PlayerData.ped) and (GetGameTimer() - timer) < 2000 do Wait(0) @@ -72,7 +60,17 @@ local function onPlayerSpawn() end AddEventHandler("playerSpawned", onPlayerSpawn) -AddEventHandler("esx:onPlayerSpawn", onPlayerSpawn) +AddEventHandler("esx:onPlayerSpawn", function() + onPlayerSpawn() + + if ESX.PlayerData.metadata.health then + SetEntityHealth(ESX.PlayerData.ped, ESX.PlayerData.metadata.health) + end + + if ESX.PlayerData.metadata.armor and ESX.PlayerData.metadata.armor > 0 then + SetPedArmour(ESX.PlayerData.ped, ESX.PlayerData.metadata.armor) + end +end) AddEventHandler("esx:onPlayerDeath", function() ESX.SetPlayerData("ped", PlayerPedId()) From 47442020074e75fa6b3d577236501b974f15a86a Mon Sep 17 00:00:00 2001 From: Ilias Rbayti <63159154+Kenshiin13@users.noreply.github.com> Date: Tue, 26 Nov 2024 22:05:01 +0100 Subject: [PATCH 079/138] fix(es_extended/client/main): only apply metadata on first spawn --- [core]/es_extended/client/main.lua | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/[core]/es_extended/client/main.lua b/[core]/es_extended/client/main.lua index 6516355e..9912bbff 100644 --- a/[core]/es_extended/client/main.lua +++ b/[core]/es_extended/client/main.lua @@ -59,16 +59,21 @@ local function onPlayerSpawn() ESX.SetPlayerData("dead", false) end +local isFirstSpawn = true AddEventHandler("playerSpawned", onPlayerSpawn) AddEventHandler("esx:onPlayerSpawn", function() onPlayerSpawn() - if ESX.PlayerData.metadata.health then - SetEntityHealth(ESX.PlayerData.ped, ESX.PlayerData.metadata.health) - end + if isFirstSpawn then + isFirstSpawn = false - if ESX.PlayerData.metadata.armor and ESX.PlayerData.metadata.armor > 0 then - SetPedArmour(ESX.PlayerData.ped, ESX.PlayerData.metadata.armor) + if ESX.PlayerData.metadata.health then + SetEntityHealth(ESX.PlayerData.ped, ESX.PlayerData.metadata.health) + end + + if ESX.PlayerData.metadata.armor and ESX.PlayerData.metadata.armor > 0 then + SetPedArmour(ESX.PlayerData.ped, ESX.PlayerData.metadata.armor) + end end end) From 51c777f6c27709cadb0b84b35ccc326d4dbed508 Mon Sep 17 00:00:00 2001 From: Ilias Rbayti <63159154+Kenshiin13@users.noreply.github.com> Date: Tue, 26 Nov 2024 23:02:13 +0100 Subject: [PATCH 080/138] fix(es_extended/client/main): reset isFirstSpawn on logout --- [core]/es_extended/client/main.lua | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/[core]/es_extended/client/main.lua b/[core]/es_extended/client/main.lua index 9912bbff..3cfdc449 100644 --- a/[core]/es_extended/client/main.lua +++ b/[core]/es_extended/client/main.lua @@ -46,8 +46,10 @@ RegisterNetEvent("esx:playerLoaded", function(xPlayer, _, skin) StartServerSyncLoops() end) +local isFirstSpawn = true ESX.SecureNetEvent("esx:onPlayerLogout", function() ESX.PlayerLoaded = false + isFirstSpawn = true end) ESX.SecureNetEvent("esx:setMaxWeight", function(newMaxWeight) @@ -59,7 +61,6 @@ local function onPlayerSpawn() ESX.SetPlayerData("dead", false) end -local isFirstSpawn = true AddEventHandler("playerSpawned", onPlayerSpawn) AddEventHandler("esx:onPlayerSpawn", function() onPlayerSpawn() From 47ae063aa150722ff5019741d6ab726dd31fc1f3 Mon Sep 17 00:00:00 2001 From: Ilias Rbayti <63159154+Kenshiin13@users.noreply.github.com> Date: Tue, 26 Nov 2024 23:20:35 +0100 Subject: [PATCH 081/138] feat(es_extended/shared/config/main): add Config.SaveDeathStatus --- [core]/es_extended/client/main.lua | 2 +- [core]/es_extended/shared/config/main.lua | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/[core]/es_extended/client/main.lua b/[core]/es_extended/client/main.lua index 3cfdc449..a4d1daa9 100644 --- a/[core]/es_extended/client/main.lua +++ b/[core]/es_extended/client/main.lua @@ -68,7 +68,7 @@ AddEventHandler("esx:onPlayerSpawn", function() if isFirstSpawn then isFirstSpawn = false - if ESX.PlayerData.metadata.health then + if ESX.PlayerData.metadata.health and (ESX.PlayerData.metadata.health > 0 or Config.SaveDeathStatus) then SetEntityHealth(ESX.PlayerData.ped, ESX.PlayerData.metadata.health) end diff --git a/[core]/es_extended/shared/config/main.lua b/[core]/es_extended/shared/config/main.lua index 2c375605..7db1e472 100644 --- a/[core]/es_extended/shared/config/main.lua +++ b/[core]/es_extended/shared/config/main.lua @@ -40,6 +40,7 @@ Config.LogPaycheck = false -- Logs paychecks to a nominated Discord channel via Config.EnableSocietyPayouts = false -- pay from the society account that the player is employed at? Requirement: esx_society Config.MaxWeight = 24 -- the max inventory weight without a backpack Config.PaycheckInterval = 7 * 60000 -- how often to receive paychecks in milliseconds +Config.SaveDeathStatus = true -- Save the death status of a player Config.EnableDebug = false -- Use Debug options? Config.DefaultJobDuty = true -- A players default duty status when changing jobs From 5392f38c7a080f676693e204f3e46da25ae1f45b Mon Sep 17 00:00:00 2001 From: Ilias Rbayti <63159154+Kenshiin13@users.noreply.github.com> Date: Wed, 27 Nov 2024 21:36:54 +0100 Subject: [PATCH 082/138] feat(es_extended/shared/functions): add ESX.IsFunctionReference --- [core]/es_extended/shared/functions.lua | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/[core]/es_extended/shared/functions.lua b/[core]/es_extended/shared/functions.lua index fc342bce..1a5d0090 100644 --- a/[core]/es_extended/shared/functions.lua +++ b/[core]/es_extended/shared/functions.lua @@ -164,3 +164,10 @@ function ESX.AssertType(...) return matches end + +---@param val unknown +function ESX.IsFunctionReference(val) + local typeVal = type(val) + + return typeVal == "function" or (typeVal == "table" and type(getmetatable(val)?.__call) == "function") +end \ No newline at end of file From 346ce349020256aac4f46c4bbaae9d9e8535a7b4 Mon Sep 17 00:00:00 2001 From: Ilias Rbayti <63159154+Kenshiin13@users.noreply.github.com> Date: Wed, 27 Nov 2024 21:38:19 +0100 Subject: [PATCH 083/138] fix(skinchanger/config): add missing textureof --- [core]/skinchanger/config.lua | 1 + 1 file changed, 1 insertion(+) diff --git a/[core]/skinchanger/config.lua b/[core]/skinchanger/config.lua index 2401b9c7..1d5a0fed 100644 --- a/[core]/skinchanger/config.lua +++ b/[core]/skinchanger/config.lua @@ -237,6 +237,7 @@ Config.Components = { min = 0, zoomOffset = 0.6, camOffset = 0.65, + textureof = "hair_1", max = function(playerPed, Character) return GetNumberOfPedTextureVariations(playerPed, 2, Character["hair_1"]) - 1 end From 2b8841c95a308e2df257e1d580a72262f21110dc Mon Sep 17 00:00:00 2001 From: Ilias Rbayti <63159154+Kenshiin13@users.noreply.github.com> Date: Wed, 27 Nov 2024 21:38:48 +0100 Subject: [PATCH 084/138] fix(esx_skin/client/modules/menu): fix texture variations not updating --- [core]/esx_skin/client/modules/menu.lua | 38 +++++++++++++++---------- 1 file changed, 23 insertions(+), 15 deletions(-) diff --git a/[core]/esx_skin/client/modules/menu.lua b/[core]/esx_skin/client/modules/menu.lua index 0137f40a..f1179151 100644 --- a/[core]/esx_skin/client/modules/menu.lua +++ b/[core]/esx_skin/client/modules/menu.lua @@ -47,7 +47,7 @@ function Menu:InsertElements() value = GetPedPropIndex(playerPed, self.components[i].componentId) end - local data = self.components[i] + local data = table.clone(self.components[i]) data.value = value data.type = "slider" data.max = self.maxValues[self.components[i].name] @@ -78,27 +78,35 @@ function Menu:Change(data, menu) Skin.zoomOffset = data.current.zoomOffset Skin.camOffset = data.current.camOffset - if skin[data.current.name] ~= data.current.value then - -- Change skin element - exports["skinchanger"]:Change(data.current.name, data.current.value) - skin[data.current.name] = data.current.value + if skin[data.current.name] == data.current.value then + return + end - local newData = {} + -- Change skin element + exports["skinchanger"]:Change(data.current.name, data.current.value) + skin[data.current.name] = data.current.value - for i = 1, #self.elements, 1 do + -- Texture variation changed. We don't have to update anything. + if data.current.textureof then + return + end + + -- Texture changed. Update variation max value. + for i = 1, #self.elements, 1 do + local element = self.elements[i] + + if element.textureof == data.current.name then local component = self.components[i] - newData.max = type(component.max) == "function" and component.max(PlayerPedId(), skin) or component.max - - if self.elements[i].textureof ~= nil and data.current.name == self.elements[i].textureof then - newData.value = 0 + if (ESX.IsFunctionReference(component.max)) then + self.elements[i].max = component.max(PlayerPedId(), skin) end + self.elements[i].value = 0 - menu.update({ name = self.elements[i].name }, newData) + menu.update({ name = self.elements[i].name }, self.elements[i]) + menu.refresh() + break end - - self.elements = newData - menu.refresh() end end From 166fdff8eb3e295ec207fc85c4488f6777d273c2 Mon Sep 17 00:00:00 2001 From: Ilias Rbayti <63159154+Kenshiin13@users.noreply.github.com> Date: Wed, 27 Nov 2024 21:52:15 +0100 Subject: [PATCH 085/138] refactor(esx_skin/client/modules/menu): bad habbits --- [core]/esx_skin/client/modules/menu.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/[core]/esx_skin/client/modules/menu.lua b/[core]/esx_skin/client/modules/menu.lua index f1179151..effed0d8 100644 --- a/[core]/esx_skin/client/modules/menu.lua +++ b/[core]/esx_skin/client/modules/menu.lua @@ -98,7 +98,7 @@ function Menu:Change(data, menu) if element.textureof == data.current.name then local component = self.components[i] - if (ESX.IsFunctionReference(component.max)) then + if ESX.IsFunctionReference(component.max) then self.elements[i].max = component.max(PlayerPedId(), skin) end self.elements[i].value = 0 From 016b9bb97ec9b0a8083da86f934cd11ef521ed15 Mon Sep 17 00:00:00 2001 From: Ilias Rbayti <63159154+Kenshiin13@users.noreply.github.com> Date: Wed, 27 Nov 2024 22:06:02 +0100 Subject: [PATCH 086/138] fix(esx_skin/client/modules/menu): immediately update texture variation on texture change --- [core]/esx_skin/client/modules/menu.lua | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/[core]/esx_skin/client/modules/menu.lua b/[core]/esx_skin/client/modules/menu.lua index effed0d8..b6de6745 100644 --- a/[core]/esx_skin/client/modules/menu.lua +++ b/[core]/esx_skin/client/modules/menu.lua @@ -103,6 +103,10 @@ function Menu:Change(data, menu) end self.elements[i].value = 0 + -- Change skin element + exports["skinchanger"]:Change(element.name, 0) + skin[element.name] = data.current.value + menu.update({ name = self.elements[i].name }, self.elements[i]) menu.refresh() break From 96cb6b04fbcb74c0b559ad22fc7140201ee1d44d Mon Sep 17 00:00:00 2001 From: Ilias Rbayti <63159154+Kenshiin13@users.noreply.github.com> Date: Thu, 28 Nov 2024 18:22:49 +0100 Subject: [PATCH 087/138] refactor(es_extended/client/modules/death): replace gameEventTriggered --- [core]/es_extended/client/modules/death.lua | 29 ++++++++------------- 1 file changed, 11 insertions(+), 18 deletions(-) diff --git a/[core]/es_extended/client/modules/death.lua b/[core]/es_extended/client/modules/death.lua index 4054421e..936d6411 100644 --- a/[core]/es_extended/client/modules/death.lua +++ b/[core]/es_extended/client/modules/death.lua @@ -43,19 +43,7 @@ function Death:Natual() TriggerServerEvent("esx:onPlayerDeath", data) end -function Death:Damaged(victim, victimDied) - if not victimDied then - return - end - - if not IsEntityAPed(victim) then - return - end - - if not IsPedAPlayer(victim) then - return - end - +function Death:Damaged(victim) local victimId = NetworkGetPlayerIndexFromPed(victim) local isDead = IsPedDeadOrDying(victim, true) or IsPedFatallyInjured(victim) if victimId ~= ESX.playerId or not isDead then @@ -78,9 +66,14 @@ function Death:Damaged(victim, victimDied) self:ResetValues() end -AddEventHandler("gameEventTriggered", function(event, data) - if event ~= "CEventNetworkEntityDamage" then - return - end - Death:Damaged(data[1], data[4]) +AddEventHandler("esx:onPlayerSpawn", function() + Citizen.CreateThreadNow(function() + while not ESX.PlayerData.dead do + if IsPedDeadOrDying(ESX.PlayerData.ped, true) then + Death:Damaged(ESX.PlayerData.ped) + break + end + Citizen.Wait(250) + end + end) end) From e2c4ab73a6a47e7e55f0b1ab98f849222c408df6 Mon Sep 17 00:00:00 2001 From: Ilias Rbayti <63159154+Kenshiin13@users.noreply.github.com> Date: Thu, 28 Nov 2024 18:23:09 +0100 Subject: [PATCH 088/138] refactor(es_extended/client/modules/death): fix typo --- [core]/es_extended/client/modules/death.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/[core]/es_extended/client/modules/death.lua b/[core]/es_extended/client/modules/death.lua index 936d6411..248916b6 100644 --- a/[core]/es_extended/client/modules/death.lua +++ b/[core]/es_extended/client/modules/death.lua @@ -29,7 +29,7 @@ function Death:ByPlayer() TriggerServerEvent("esx:onPlayerDeath", data) end -function Death:Natual() +function Death:Natural() local coords = GetEntityCoords(ESX.PlayerData.ped) local data = { @@ -60,7 +60,7 @@ function Death:Damaged(victim) if self.killerEntity ~= ESX.PlayerData.ped and self.killerId and isActive then self:ByPlayer() else - self:Natual() + self:Natural() end self:ResetValues() From 1bbd9b119ad3b979f9589929948ed878ca9a845e Mon Sep 17 00:00:00 2001 From: Ilias Rbayti <63159154+Kenshiin13@users.noreply.github.com> Date: Thu, 28 Nov 2024 18:49:34 +0100 Subject: [PATCH 089/138] refactor(es_extended/client/modules/death): cleanup redundant checks --- [core]/es_extended/client/modules/death.lua | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/[core]/es_extended/client/modules/death.lua b/[core]/es_extended/client/modules/death.lua index 248916b6..ccd7d380 100644 --- a/[core]/es_extended/client/modules/death.lua +++ b/[core]/es_extended/client/modules/death.lua @@ -44,12 +44,6 @@ function Death:Natural() end function Death:Damaged(victim) - local victimId = NetworkGetPlayerIndexFromPed(victim) - local isDead = IsPedDeadOrDying(victim, true) or IsPedFatallyInjured(victim) - if victimId ~= ESX.playerId or not isDead then - return - end - self.killerEntity = GetPedSourceOfDeath(ESX.PlayerData.ped) self.deathCause = GetPedCauseOfDeath(ESX.PlayerData.ped) self.killerId = NetworkGetPlayerIndexFromPed(self.killerEntity) @@ -69,7 +63,7 @@ end AddEventHandler("esx:onPlayerSpawn", function() Citizen.CreateThreadNow(function() while not ESX.PlayerData.dead do - if IsPedDeadOrDying(ESX.PlayerData.ped, true) then + if IsPedDeadOrDying(ESX.PlayerData.ped, true) or IsPedFatallyInjured(ESX.PlayerData.ped) then Death:Damaged(ESX.PlayerData.ped) break end From 3af9ce34fdea99d7a68d0e0e996332f1db59f9b4 Mon Sep 17 00:00:00 2001 From: Ilias Rbayti <63159154+Kenshiin13@users.noreply.github.com> Date: Thu, 28 Nov 2024 18:50:41 +0100 Subject: [PATCH 090/138] refactor(es_extended/client/modules/death): remove unused function param --- [core]/es_extended/client/modules/death.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/[core]/es_extended/client/modules/death.lua b/[core]/es_extended/client/modules/death.lua index ccd7d380..810525f2 100644 --- a/[core]/es_extended/client/modules/death.lua +++ b/[core]/es_extended/client/modules/death.lua @@ -43,7 +43,7 @@ function Death:Natural() TriggerServerEvent("esx:onPlayerDeath", data) end -function Death:Damaged(victim) +function Death:Damaged() self.killerEntity = GetPedSourceOfDeath(ESX.PlayerData.ped) self.deathCause = GetPedCauseOfDeath(ESX.PlayerData.ped) self.killerId = NetworkGetPlayerIndexFromPed(self.killerEntity) @@ -64,7 +64,7 @@ AddEventHandler("esx:onPlayerSpawn", function() Citizen.CreateThreadNow(function() while not ESX.PlayerData.dead do if IsPedDeadOrDying(ESX.PlayerData.ped, true) or IsPedFatallyInjured(ESX.PlayerData.ped) then - Death:Damaged(ESX.PlayerData.ped) + Death:Damaged() break end Citizen.Wait(250) From 114c337d6c80766905704765b32e3b01ff2edc1a Mon Sep 17 00:00:00 2001 From: Ilias Rbayti <63159154+Kenshiin13@users.noreply.github.com> Date: Thu, 28 Nov 2024 18:51:26 +0100 Subject: [PATCH 091/138] refactor(es_extended/client/modules/death): more appropriate function name --- [core]/es_extended/client/modules/death.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/[core]/es_extended/client/modules/death.lua b/[core]/es_extended/client/modules/death.lua index 810525f2..28e860de 100644 --- a/[core]/es_extended/client/modules/death.lua +++ b/[core]/es_extended/client/modules/death.lua @@ -43,7 +43,7 @@ function Death:Natural() TriggerServerEvent("esx:onPlayerDeath", data) end -function Death:Damaged() +function Death:Died() self.killerEntity = GetPedSourceOfDeath(ESX.PlayerData.ped) self.deathCause = GetPedCauseOfDeath(ESX.PlayerData.ped) self.killerId = NetworkGetPlayerIndexFromPed(self.killerEntity) @@ -64,7 +64,7 @@ AddEventHandler("esx:onPlayerSpawn", function() Citizen.CreateThreadNow(function() while not ESX.PlayerData.dead do if IsPedDeadOrDying(ESX.PlayerData.ped, true) or IsPedFatallyInjured(ESX.PlayerData.ped) then - Death:Damaged() + Death:Died() break end Citizen.Wait(250) From 0fe6ef4b1cfec028be03fb2965d1c2eaf3510e26 Mon Sep 17 00:00:00 2001 From: Ilias Rbayti <63159154+Kenshiin13@users.noreply.github.com> Date: Sat, 30 Nov 2024 23:40:09 +0100 Subject: [PATCH 092/138] fix(es_extended/server/classes/player): remove throwables from loadout when out of ammo --- [core]/es_extended/server/classes/player.lua | 13 +++++++++++-- [core]/es_extended/shared/config/weapons.lua | 16 ++++++++-------- 2 files changed, 19 insertions(+), 10 deletions(-) diff --git a/[core]/es_extended/server/classes/player.lua b/[core]/es_extended/server/classes/player.lua index 2bfeb79f..9f6c9c8c 100644 --- a/[core]/es_extended/server/classes/player.lua +++ b/[core]/es_extended/server/classes/player.lua @@ -608,8 +608,17 @@ function CreateExtendedPlayer(playerId, identifier, group, accounts, inventory, function self.updateWeaponAmmo(weaponName, ammoCount) local _, weapon = self.getWeapon(weaponName) - if weapon then - weapon.ammo = ammoCount + if not weapon then + return + end + + weapon.ammo = ammoCount + + if weapon.ammo <= 0 then + local index, weaponConfig = ESX.GetWeapon(weaponName) + if weaponConfig.throwable then + self.removeWeapon(weaponName) + end end end diff --git a/[core]/es_extended/shared/config/weapons.lua b/[core]/es_extended/shared/config/weapons.lua index d26ab75a..5b8107ad 100644 --- a/[core]/es_extended/shared/config/weapons.lua +++ b/[core]/es_extended/shared/config/weapons.lua @@ -1008,22 +1008,22 @@ Config.Weapons = { { name = "WEAPON_RPG", label = TranslateCap("weapon_rpg"), tints = Config.DefaultWeaponTints, components = {}, ammo = { label = TranslateCap("ammo_rockets"), hash = `AMMO_RPG` } }, { name = "WEAPON_RAYMINIGUN", label = TranslateCap("weapon_rayminigun"), tints = Config.DefaultWeaponTints, components = {}, ammo = { label = TranslateCap("ammo_rounds"), hash = `AMMO_MINIGUN` } }, -- Thrown - { name = "WEAPON_BALL", label = TranslateCap("weapon_ball"), components = {}, ammo = { label = TranslateCap("ammo_ball"), hash = `AMMO_BALL` } }, - { name = "WEAPON_BZGAS", label = TranslateCap("weapon_bzgas"), components = {}, ammo = { label = TranslateCap("ammo_bzgas"), hash = `AMMO_BZGAS` } }, + { name = "WEAPON_BALL", label = TranslateCap("weapon_ball"), components = {}, ammo = { label = TranslateCap("ammo_ball"), hash = `AMMO_BALL` }, throwable = true }, + { name = "WEAPON_BZGAS", label = TranslateCap("weapon_bzgas"), components = {}, ammo = { label = TranslateCap("ammo_bzgas"), hash = `AMMO_BZGAS` }, throwable = true }, { name = "WEAPON_FLARE", label = TranslateCap("weapon_flare"), components = {}, ammo = { label = TranslateCap("ammo_flare"), hash = `AMMO_FLARE` } }, - { name = "WEAPON_GRENADE", label = TranslateCap("weapon_grenade"), components = {}, ammo = { label = TranslateCap("ammo_grenade"), hash = `AMMO_GRENADE` } }, + { name = "WEAPON_GRENADE", label = TranslateCap("weapon_grenade"), components = {}, ammo = { label = TranslateCap("ammo_grenade"), hash = `AMMO_GRENADE` }, throwable = true }, { name = "WEAPON_PETROLCAN", label = TranslateCap("weapon_petrolcan"), components = {}, ammo = { label = TranslateCap("ammo_petrol"), hash = `AMMO_PETROLCAN` } }, { name = "WEAPON_HAZARDCAN", label = TranslateCap("weapon_hazardcan"), components = {}, ammo = { label = TranslateCap("ammo_petrol"), hash = `AMMO_PETROLCAN` } }, - { name = "WEAPON_MOLOTOV", label = TranslateCap("weapon_molotov"), components = {}, ammo = { label = TranslateCap("ammo_molotov"), hash = `AMMO_MOLOTOV` } }, + { name = "WEAPON_MOLOTOV", label = TranslateCap("weapon_molotov"), components = {}, ammo = { label = TranslateCap("ammo_molotov"), hash = `AMMO_MOLOTOV` }, throwable = true }, { name = "WEAPON_PROXMINE", label = TranslateCap("weapon_proxmine"), components = {}, ammo = { label = TranslateCap("ammo_proxmine"), hash = `AMMO_PROXMINE` } }, { name = "WEAPON_PIPEBOMB", label = TranslateCap("weapon_pipebomb"), components = {}, ammo = { label = TranslateCap("ammo_pipebomb"), hash = `AMMO_PIPEBOMB` } }, - { name = "WEAPON_SNOWBALL", label = TranslateCap("weapon_snowball"), components = {}, ammo = { label = TranslateCap("ammo_snowball"), hash = `AMMO_SNOWBALL` } }, - { name = "WEAPON_STICKYBOMB", label = TranslateCap("weapon_stickybomb"), components = {}, ammo = { label = TranslateCap("ammo_stickybomb"), hash = `AMMO_STICKYBOMB` } }, - { name = "WEAPON_SMOKEGRENADE", label = TranslateCap("weapon_smokegrenade"), components = {}, ammo = { label = TranslateCap("ammo_smokebomb"), hash = `AMMO_SMOKEGRENADE` } }, + { name = "WEAPON_SNOWBALL", label = TranslateCap("weapon_snowball"), components = {}, ammo = { label = TranslateCap("ammo_snowball"), hash = `AMMO_SNOWBALL` }, throwable = true }, + { name = "WEAPON_STICKYBOMB", label = TranslateCap("weapon_stickybomb"), components = {}, ammo = { label = TranslateCap("ammo_stickybomb"), hash = `AMMO_STICKYBOMB` }, throwable = true }, + { name = "WEAPON_SMOKEGRENADE", label = TranslateCap("weapon_smokegrenade"), components = {}, ammo = { label = TranslateCap("ammo_smokebomb"), hash = `AMMO_SMOKEGRENADE` }, throwable = true }, -- Tools { name = "WEAPON_FIREEXTINGUISHER", label = TranslateCap("weapon_fireextinguisher"), components = {}, ammo = { label = TranslateCap("ammo_charge"), hash = `AMMO_FIREEXTINGUISHER` } }, { name = "WEAPON_DIGISCANNER", label = TranslateCap("weapon_digiscanner"), components = {} }, - { name = "GADGET_PARACHUTE", label = TranslateCap("gadget_parachute"), components = {} }, + { name = "GADGET_PARACHUTE", label = TranslateCap("gadget_parachute"), components = {}, throwable = true }, { name = "WEAPON_TACTICALRIFLE", label = TranslateCap("weapon_tactilerifle"), From d1cdd3584b6d2c2dc46e1f62ca9eb491d5f1d90f Mon Sep 17 00:00:00 2001 From: Ilias Rbayti <63159154+Kenshiin13@users.noreply.github.com> Date: Sun, 1 Dec 2024 00:09:23 +0100 Subject: [PATCH 093/138] refactor(es_extended/client/main): lowercase ammo --- [core]/es_extended/client/main.lua | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/[core]/es_extended/client/main.lua b/[core]/es_extended/client/main.lua index a4d1daa9..2b82a1d1 100644 --- a/[core]/es_extended/client/main.lua +++ b/[core]/es_extended/client/main.lua @@ -288,7 +288,7 @@ function StartServerSyncLoops() if Config.CustomInventory then return end -- keep track of ammo CreateThread(function() - local currentWeapon = { Ammo = 0 } + local currentWeapon = { ammo = 0 } while ESX.PlayerLoaded do local sleep = 1500 if GetSelectedPedWeapon(ESX.PlayerData.ped) ~= -1569615261 then @@ -298,11 +298,11 @@ function StartServerSyncLoops() if weapon then local ammoCount = GetAmmoInPedWeapon(ESX.PlayerData.ped, weaponHash) if weapon.name ~= currentWeapon.name then - currentWeapon.Ammo = ammoCount + currentWeapon.ammo = ammoCount currentWeapon.name = weapon.name else - if ammoCount ~= currentWeapon.Ammo then - currentWeapon.Ammo = ammoCount + if ammoCount ~= currentWeapon.ammo then + currentWeapon.ammo = ammoCount TriggerServerEvent("esx:updateWeaponAmmo", weapon.name, ammoCount) end end From 6fd92c72d4ca2a977df5d35ac617b9703d3f1327 Mon Sep 17 00:00:00 2001 From: Ilias Rbayti <63159154+Kenshiin13@users.noreply.github.com> Date: Sun, 1 Dec 2024 00:47:19 +0100 Subject: [PATCH 094/138] refactor(es_extended/client/main): faster thread, but only update weapon ammo on weapon change --- [core]/es_extended/client/main.lua | 39 ++++++++++++++++-------------- 1 file changed, 21 insertions(+), 18 deletions(-) diff --git a/[core]/es_extended/client/main.lua b/[core]/es_extended/client/main.lua index 2b82a1d1..6a3eba71 100644 --- a/[core]/es_extended/client/main.lua +++ b/[core]/es_extended/client/main.lua @@ -286,29 +286,32 @@ end function StartServerSyncLoops() if Config.CustomInventory then return end - -- keep track of ammo + CreateThread(function() - local currentWeapon = { ammo = 0 } + local currentWeapon = { + ---@type number + ---@diagnostic disable-next-line: assign-type-mismatch + hash = `WEAPON_UNARMED`, + ammo = 0, + } + while ESX.PlayerLoaded do - local sleep = 1500 - if GetSelectedPedWeapon(ESX.PlayerData.ped) ~= -1569615261 then - sleep = 1000 - local _, weaponHash = GetCurrentPedWeapon(ESX.PlayerData.ped, true) - local weapon = ESX.GetWeaponFromHash(weaponHash) - if weapon then - local ammoCount = GetAmmoInPedWeapon(ESX.PlayerData.ped, weaponHash) - if weapon.name ~= currentWeapon.name then - currentWeapon.ammo = ammoCount - currentWeapon.name = weapon.name - else - if ammoCount ~= currentWeapon.ammo then - currentWeapon.ammo = ammoCount - TriggerServerEvent("esx:updateWeaponAmmo", weapon.name, ammoCount) - end + currentWeapon.hash = GetSelectedPedWeapon(ESX.PlayerData.ped) + + if currentWeapon.hash ~= `WEAPON_UNARMED` then + local weaponConfig = ESX.GetWeaponFromHash(currentWeapon.hash) + + if weaponConfig then + currentWeapon.ammo = GetAmmoInPedWeapon(ESX.PlayerData.ped, currentWeapon.hash) + while (GetSelectedPedWeapon(ESX.PlayerData.ped) == currentWeapon.hash) do Citizen.Wait(500) end + + local newAmmo = GetAmmoInPedWeapon(ESX.PlayerData.ped, currentWeapon.hash) + if newAmmo ~= currentWeapon.ammo then + TriggerServerEvent("esx:updateWeaponAmmo", weaponConfig.name, newAmmo) end end end - Wait(sleep) + Wait(250) end end) end From d1412c74123226582513f4c2ed0112eab8ddc5e3 Mon Sep 17 00:00:00 2001 From: Ilias Rbayti <63159154+Kenshiin13@users.noreply.github.com> Date: Sun, 1 Dec 2024 01:30:29 +0100 Subject: [PATCH 095/138] fix(es_extended/client/main): track parachute opening to remove from loadout --- [core]/es_extended/client/main.lua | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/[core]/es_extended/client/main.lua b/[core]/es_extended/client/main.lua index 6a3eba71..5df66c32 100644 --- a/[core]/es_extended/client/main.lua +++ b/[core]/es_extended/client/main.lua @@ -303,7 +303,7 @@ function StartServerSyncLoops() if weaponConfig then currentWeapon.ammo = GetAmmoInPedWeapon(ESX.PlayerData.ped, currentWeapon.hash) - while (GetSelectedPedWeapon(ESX.PlayerData.ped) == currentWeapon.hash) do Citizen.Wait(500) end + while GetSelectedPedWeapon(ESX.PlayerData.ped) == currentWeapon.hash do Wait(500) end local newAmmo = GetAmmoInPedWeapon(ESX.PlayerData.ped, currentWeapon.hash) if newAmmo ~= currentWeapon.ammo then @@ -314,6 +314,22 @@ function StartServerSyncLoops() Wait(250) end end) + + CreateThread(function() + local PARACHUTE_OPENING = 1 + local PARACHUTE_OPEN = 2 + + while ESX.PlayerLoaded do + local parachuteState = GetPedParachuteState(ESX.PlayerData.ped) + + if parachuteState == PARACHUTE_OPENING or parachuteState == PARACHUTE_OPEN then + while GetPedParachuteState(ESX.PlayerData.ped) ~= -1 do Wait(1000) end + + TriggerServerEvent("esx:updateWeaponAmmo", "GADGET_PARACHUTE", 0) + end + Wait(500) + end + end) end if not Config.CustomInventory and Config.EnableDefaultInventory then From edc73a1048ef58bbe7e11a039aaf7a57177a6b7b Mon Sep 17 00:00:00 2001 From: Ilias Rbayti <63159154+Kenshiin13@users.noreply.github.com> Date: Sun, 1 Dec 2024 01:49:41 +0100 Subject: [PATCH 096/138] fix(es_extended/shared/config/weapons): add remaining throwables --- [core]/es_extended/shared/config/weapons.lua | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/[core]/es_extended/shared/config/weapons.lua b/[core]/es_extended/shared/config/weapons.lua index 5b8107ad..82acd944 100644 --- a/[core]/es_extended/shared/config/weapons.lua +++ b/[core]/es_extended/shared/config/weapons.lua @@ -1010,13 +1010,13 @@ Config.Weapons = { -- Thrown { name = "WEAPON_BALL", label = TranslateCap("weapon_ball"), components = {}, ammo = { label = TranslateCap("ammo_ball"), hash = `AMMO_BALL` }, throwable = true }, { name = "WEAPON_BZGAS", label = TranslateCap("weapon_bzgas"), components = {}, ammo = { label = TranslateCap("ammo_bzgas"), hash = `AMMO_BZGAS` }, throwable = true }, - { name = "WEAPON_FLARE", label = TranslateCap("weapon_flare"), components = {}, ammo = { label = TranslateCap("ammo_flare"), hash = `AMMO_FLARE` } }, + { name = "WEAPON_FLARE", label = TranslateCap("weapon_flare"), components = {}, ammo = { label = TranslateCap("ammo_flare"), hash = `AMMO_FLARE` }, throwable = true }, { name = "WEAPON_GRENADE", label = TranslateCap("weapon_grenade"), components = {}, ammo = { label = TranslateCap("ammo_grenade"), hash = `AMMO_GRENADE` }, throwable = true }, { name = "WEAPON_PETROLCAN", label = TranslateCap("weapon_petrolcan"), components = {}, ammo = { label = TranslateCap("ammo_petrol"), hash = `AMMO_PETROLCAN` } }, { name = "WEAPON_HAZARDCAN", label = TranslateCap("weapon_hazardcan"), components = {}, ammo = { label = TranslateCap("ammo_petrol"), hash = `AMMO_PETROLCAN` } }, { name = "WEAPON_MOLOTOV", label = TranslateCap("weapon_molotov"), components = {}, ammo = { label = TranslateCap("ammo_molotov"), hash = `AMMO_MOLOTOV` }, throwable = true }, - { name = "WEAPON_PROXMINE", label = TranslateCap("weapon_proxmine"), components = {}, ammo = { label = TranslateCap("ammo_proxmine"), hash = `AMMO_PROXMINE` } }, - { name = "WEAPON_PIPEBOMB", label = TranslateCap("weapon_pipebomb"), components = {}, ammo = { label = TranslateCap("ammo_pipebomb"), hash = `AMMO_PIPEBOMB` } }, + { name = "WEAPON_PROXMINE", label = TranslateCap("weapon_proxmine"), components = {}, ammo = { label = TranslateCap("ammo_proxmine"), hash = `AMMO_PROXMINE` }, throwable = true }, + { name = "WEAPON_PIPEBOMB", label = TranslateCap("weapon_pipebomb"), components = {}, ammo = { label = TranslateCap("ammo_pipebomb"), hash = `AMMO_PIPEBOMB` }, throwable = true }, { name = "WEAPON_SNOWBALL", label = TranslateCap("weapon_snowball"), components = {}, ammo = { label = TranslateCap("ammo_snowball"), hash = `AMMO_SNOWBALL` }, throwable = true }, { name = "WEAPON_STICKYBOMB", label = TranslateCap("weapon_stickybomb"), components = {}, ammo = { label = TranslateCap("ammo_stickybomb"), hash = `AMMO_STICKYBOMB` }, throwable = true }, { name = "WEAPON_SMOKEGRENADE", label = TranslateCap("weapon_smokegrenade"), components = {}, ammo = { label = TranslateCap("ammo_smokebomb"), hash = `AMMO_SMOKEGRENADE` }, throwable = true }, @@ -1057,7 +1057,7 @@ Config.Weapons = { { name = "suppressor", label = TranslateCap("component_suppressor"), hash = `COMPONENT_PISTOLXM3_SUPP` }, }, }, - { name = "WEAPON_ACIDPACKAGE", label = TranslateCap("weapon_acidpackage"), components = {} }, + { name = "WEAPON_ACIDPACKAGE", label = TranslateCap("weapon_acidpackage"), components = {}, throwable = true }, { name = "WEAPON_CANDYCANE", label = TranslateCap("weapon_candycane"), components = {} }, { name = "WEAPON_RAILGUNXM3", From 018b663b8a8b5032a4ec9a271c7f1851d3b59da7 Mon Sep 17 00:00:00 2001 From: Ilias Rbayti <63159154+Kenshiin13@users.noreply.github.com> Date: Sun, 1 Dec 2024 02:02:33 +0100 Subject: [PATCH 097/138] fix(es_extended/shared/config/weapons): add missing throwables --- [core]/es_extended/shared/config/weapons.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/[core]/es_extended/shared/config/weapons.lua b/[core]/es_extended/shared/config/weapons.lua index 82acd944..e9392f30 100644 --- a/[core]/es_extended/shared/config/weapons.lua +++ b/[core]/es_extended/shared/config/weapons.lua @@ -1012,8 +1012,8 @@ Config.Weapons = { { name = "WEAPON_BZGAS", label = TranslateCap("weapon_bzgas"), components = {}, ammo = { label = TranslateCap("ammo_bzgas"), hash = `AMMO_BZGAS` }, throwable = true }, { name = "WEAPON_FLARE", label = TranslateCap("weapon_flare"), components = {}, ammo = { label = TranslateCap("ammo_flare"), hash = `AMMO_FLARE` }, throwable = true }, { name = "WEAPON_GRENADE", label = TranslateCap("weapon_grenade"), components = {}, ammo = { label = TranslateCap("ammo_grenade"), hash = `AMMO_GRENADE` }, throwable = true }, - { name = "WEAPON_PETROLCAN", label = TranslateCap("weapon_petrolcan"), components = {}, ammo = { label = TranslateCap("ammo_petrol"), hash = `AMMO_PETROLCAN` } }, - { name = "WEAPON_HAZARDCAN", label = TranslateCap("weapon_hazardcan"), components = {}, ammo = { label = TranslateCap("ammo_petrol"), hash = `AMMO_PETROLCAN` } }, + { name = "WEAPON_PETROLCAN", label = TranslateCap("weapon_petrolcan"), components = {}, ammo = { label = TranslateCap("ammo_petrol"), hash = `AMMO_PETROLCAN` }, throwable = true }, + { name = "WEAPON_HAZARDCAN", label = TranslateCap("weapon_hazardcan"), components = {}, ammo = { label = TranslateCap("ammo_petrol"), hash = `AMMO_PETROLCAN` }, throwable = true }, { name = "WEAPON_MOLOTOV", label = TranslateCap("weapon_molotov"), components = {}, ammo = { label = TranslateCap("ammo_molotov"), hash = `AMMO_MOLOTOV` }, throwable = true }, { name = "WEAPON_PROXMINE", label = TranslateCap("weapon_proxmine"), components = {}, ammo = { label = TranslateCap("ammo_proxmine"), hash = `AMMO_PROXMINE` }, throwable = true }, { name = "WEAPON_PIPEBOMB", label = TranslateCap("weapon_pipebomb"), components = {}, ammo = { label = TranslateCap("ammo_pipebomb"), hash = `AMMO_PIPEBOMB` }, throwable = true }, From 2b74b5f5e2adb549c22bf601bb0b57dd35e9a689 Mon Sep 17 00:00:00 2001 From: Ilias Rbayti <63159154+Kenshiin13@users.noreply.github.com> Date: Sun, 1 Dec 2024 12:55:50 +0100 Subject: [PATCH 098/138] fix(es_extended/client/main): remove parachute immediately on use --- [core]/es_extended/client/main.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/[core]/es_extended/client/main.lua b/[core]/es_extended/client/main.lua index 5df66c32..1736b5d1 100644 --- a/[core]/es_extended/client/main.lua +++ b/[core]/es_extended/client/main.lua @@ -323,9 +323,9 @@ function StartServerSyncLoops() local parachuteState = GetPedParachuteState(ESX.PlayerData.ped) if parachuteState == PARACHUTE_OPENING or parachuteState == PARACHUTE_OPEN then - while GetPedParachuteState(ESX.PlayerData.ped) ~= -1 do Wait(1000) end - TriggerServerEvent("esx:updateWeaponAmmo", "GADGET_PARACHUTE", 0) + + while GetPedParachuteState(ESX.PlayerData.ped) ~= -1 do Wait(1000) end end Wait(500) end From 0b21afff67aa1434622c56884d3199a65433dcb9 Mon Sep 17 00:00:00 2001 From: Ilias Rbayti <63159154+Kenshiin13@users.noreply.github.com> Date: Sun, 1 Dec 2024 14:07:05 +0100 Subject: [PATCH 099/138] fix(es_extended/client/main): revert ammo caching --- [core]/es_extended/client/main.lua | 32 ++++++++++++++++++++---------- 1 file changed, 21 insertions(+), 11 deletions(-) diff --git a/[core]/es_extended/client/main.lua b/[core]/es_extended/client/main.lua index 1736b5d1..5ba9fad5 100644 --- a/[core]/es_extended/client/main.lua +++ b/[core]/es_extended/client/main.lua @@ -287,14 +287,23 @@ end function StartServerSyncLoops() if Config.CustomInventory then return end - CreateThread(function() - local currentWeapon = { - ---@type number - ---@diagnostic disable-next-line: assign-type-mismatch - hash = `WEAPON_UNARMED`, - ammo = 0, - } + local currentWeapon = { + ---@type number + ---@diagnostic disable-next-line: assign-type-mismatch + hash = `WEAPON_UNARMED`, + ammo = 0, + } + local function updateCurrentWeaponAmmo(weaponName) + local newAmmo = GetAmmoInPedWeapon(ESX.PlayerData.ped, currentWeapon.hash) + + if newAmmo ~= currentWeapon.ammo then + currentWeapon.ammo = newAmmo + TriggerServerEvent("esx:updateWeaponAmmo", weaponName, newAmmo) + end + end + + CreateThread(function() while ESX.PlayerLoaded do currentWeapon.hash = GetSelectedPedWeapon(ESX.PlayerData.ped) @@ -303,12 +312,13 @@ function StartServerSyncLoops() if weaponConfig then currentWeapon.ammo = GetAmmoInPedWeapon(ESX.PlayerData.ped, currentWeapon.hash) - while GetSelectedPedWeapon(ESX.PlayerData.ped) == currentWeapon.hash do Wait(500) end - local newAmmo = GetAmmoInPedWeapon(ESX.PlayerData.ped, currentWeapon.hash) - if newAmmo ~= currentWeapon.ammo then - TriggerServerEvent("esx:updateWeaponAmmo", weaponConfig.name, newAmmo) + while GetSelectedPedWeapon(ESX.PlayerData.ped) == currentWeapon.hash do + updateCurrentWeaponAmmo(weaponConfig.name) + Wait(1000) end + + updateCurrentWeaponAmmo(weaponConfig.name) end end Wait(250) From 727ef8395eb7ee9d84114e013755be83f5282cb5 Mon Sep 17 00:00:00 2001 From: Ilias Rbayti <63159154+Kenshiin13@users.noreply.github.com> Date: Sun, 1 Dec 2024 14:32:52 +0100 Subject: [PATCH 100/138] refactor(es_extended/server/classes/player): index is unused --- [core]/es_extended/server/classes/player.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/[core]/es_extended/server/classes/player.lua b/[core]/es_extended/server/classes/player.lua index 9f6c9c8c..b5e66e7b 100644 --- a/[core]/es_extended/server/classes/player.lua +++ b/[core]/es_extended/server/classes/player.lua @@ -615,7 +615,7 @@ function CreateExtendedPlayer(playerId, identifier, group, accounts, inventory, weapon.ammo = ammoCount if weapon.ammo <= 0 then - local index, weaponConfig = ESX.GetWeapon(weaponName) + local _, weaponConfig = ESX.GetWeapon(weaponName) if weaponConfig.throwable then self.removeWeapon(weaponName) end From 783c8125d5dcd66c3a6ca6eca2fcc680457ce298 Mon Sep 17 00:00:00 2001 From: Kenshin13 <63159154+Kenshiin13@users.noreply.github.com> Date: Tue, 3 Dec 2024 17:11:43 +0100 Subject: [PATCH 101/138] feat(es_extended/client/main): sync where players look at --- [core]/es_extended/client/main.lua | 1 + 1 file changed, 1 insertion(+) diff --git a/[core]/es_extended/client/main.lua b/[core]/es_extended/client/main.lua index 5ba9fad5..08d85b78 100644 --- a/[core]/es_extended/client/main.lua +++ b/[core]/es_extended/client/main.lua @@ -44,6 +44,7 @@ RegisterNetEvent("esx:playerLoaded", function(xPlayer, _, skin) Actions:Init() StartPointsLoop() StartServerSyncLoops() + NetworkSetLocalPlayerSyncLookAt(true) end) local isFirstSpawn = true From 2e3917f7d26dd467fd034e3165041d75a3ba9966 Mon Sep 17 00:00:00 2001 From: Kasey FItton Date: Tue, 3 Dec 2024 22:46:59 +0000 Subject: [PATCH 102/138] tweak(es_extended/callback): remove GetCallbackInfo --- [core]/es_extended/client/modules/callback.lua | 6 ------ [core]/es_extended/server/modules/callback.lua | 6 ------ 2 files changed, 12 deletions(-) diff --git a/[core]/es_extended/client/modules/callback.lua b/[core]/es_extended/client/modules/callback.lua index 0230aa87..ec80d76e 100644 --- a/[core]/es_extended/client/modules/callback.lua +++ b/[core]/es_extended/client/modules/callback.lua @@ -135,12 +135,6 @@ function ESX.DoesClientCallbackExist(eventName) return Callbacks.storage[eventName] ~= nil end ----@param eventName string ----@return table | nil -function ESX.GetClientCallbackInfo(eventName) - return Callbacks.storage[eventName] -end - AddEventHandler("onResourceStop", function(resource) for k, v in pairs(Callbacks.storage) do if v.resource == resource then diff --git a/[core]/es_extended/server/modules/callback.lua b/[core]/es_extended/server/modules/callback.lua index 59fa7435..f01a9da6 100644 --- a/[core]/es_extended/server/modules/callback.lua +++ b/[core]/es_extended/server/modules/callback.lua @@ -97,12 +97,6 @@ function ESX.DoesServerCallbackExist(eventName) return Callbacks.storage[eventName] ~= nil end ----@param eventName string ----@return table | nil -function ESX.GetServerCallbackInfo(eventName) - return Callbacks.storage[eventName] -end - AddEventHandler("onResourceStop", function(resource) for k, v in pairs(Callbacks.storage) do if v.resource == resource then From a9a4ff69f9c5d828503ab4dfd67d5dbbf0f6af38 Mon Sep 17 00:00:00 2001 From: Kasey FItton Date: Tue, 3 Dec 2024 22:49:28 +0000 Subject: [PATCH 103/138] fix(es_extended/client/callback): merge issues --- [core]/es_extended/client/modules/callback.lua | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/[core]/es_extended/client/modules/callback.lua b/[core]/es_extended/client/modules/callback.lua index ec80d76e..7a364c92 100644 --- a/[core]/es_extended/client/modules/callback.lua +++ b/[core]/es_extended/client/modules/callback.lua @@ -72,15 +72,6 @@ function Callbacks:ClientRecieve(eventName, requestId, invoker, ...) self:Execute(callback, requestId, returnCb, ...) end -ESX.SecureNetEvent("esx:triggerClientCallback", function(...) - Callbacks:ClientRecieve(...) -end) - - -ESX.SecureNetEvent("esx:serverCallback", function(...) - Callbacks:ServerRecieve(...) -end) - -- ============================================= -- MARK: ESX Functions -- ============================================= @@ -129,6 +120,10 @@ ESX.SecureNetEvent("esx:triggerClientCallback", function(...) Callbacks:ClientRecieve(...) end) +ESX.SecureNetEvent("esx:serverCallback", function(...) + Callbacks:ServerRecieve(...) +end) + ---@param eventName string ---@return boolean function ESX.DoesClientCallbackExist(eventName) From d23b7ceea3b90960f0e2d71a97b353685a716734 Mon Sep 17 00:00:00 2001 From: Kasey FItton Date: Tue, 3 Dec 2024 22:53:37 +0000 Subject: [PATCH 104/138] tweak(es)extended/client/callback): merging style issues --- [core]/es_extended/client/modules/callback.lua | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/[core]/es_extended/client/modules/callback.lua b/[core]/es_extended/client/modules/callback.lua index 7a364c92..450f2e3e 100644 --- a/[core]/es_extended/client/modules/callback.lua +++ b/[core]/es_extended/client/modules/callback.lua @@ -109,13 +109,23 @@ function ESX.AwaitServerCallback(eventName, ...) return table.unpack(p.value) end -ESX.RegisterClientCallback = function(eventName, callback) +function ESX.RegisterClientCallback(eventName, callback) local invokingResource = GetInvokingResource() local invoker = (invokingResource and invokingResource ~= "Unknown") and invokingResource or "es_extended" Callbacks:Register(eventName, invoker, callback) end +---@param eventName string +---@return boolean +function ESX.DoesClientCallbackExist(eventName) + return Callbacks.storage[eventName] ~= nil +end + +-- ============================================= +-- MARK: Events +-- ============================================= + ESX.SecureNetEvent("esx:triggerClientCallback", function(...) Callbacks:ClientRecieve(...) end) @@ -124,12 +134,6 @@ ESX.SecureNetEvent("esx:serverCallback", function(...) Callbacks:ServerRecieve(...) end) ----@param eventName string ----@return boolean -function ESX.DoesClientCallbackExist(eventName) - return Callbacks.storage[eventName] ~= nil -end - AddEventHandler("onResourceStop", function(resource) for k, v in pairs(Callbacks.storage) do if v.resource == resource then From 76a1df36f9a261e735deb12430f7e388e0a50847 Mon Sep 17 00:00:00 2001 From: Kasey FItton Date: Tue, 3 Dec 2024 22:56:39 +0000 Subject: [PATCH 105/138] fix(es_extended/callback): merge styling issues --- .../es_extended/client/modules/callback.lua | 4 +++ .../es_extended/server/modules/callback.lua | 35 +++++++++++++------ 2 files changed, 29 insertions(+), 10 deletions(-) diff --git a/[core]/es_extended/client/modules/callback.lua b/[core]/es_extended/client/modules/callback.lua index 450f2e3e..6bd2d758 100644 --- a/[core]/es_extended/client/modules/callback.lua +++ b/[core]/es_extended/client/modules/callback.lua @@ -1,5 +1,9 @@ ---@diagnostic disable: duplicate-set-field +-- ============================================= +-- MARK: Variables +-- ============================================= + Callbacks = {} Callbacks.requests = {} diff --git a/[core]/es_extended/server/modules/callback.lua b/[core]/es_extended/server/modules/callback.lua index f01a9da6..3301e6a6 100644 --- a/[core]/es_extended/server/modules/callback.lua +++ b/[core]/es_extended/server/modules/callback.lua @@ -1,11 +1,19 @@ ---@diagnostic disable: duplicate-set-field +-- ============================================= +-- MARK: Variables +-- ============================================= + Callbacks = {} Callbacks.requests = {} Callbacks.storage = {} Callbacks.id = 0 +-- ============================================= +-- MARK: Internal Functions +-- ============================================= + function Callbacks:Register(name, resource, cb) self.storage[name] = { resource = resource, @@ -60,15 +68,9 @@ function Callbacks:RecieveClient(requestId, invoker, ...) self.requests[requestId] = nil end -RegisterNetEvent("esx:clientCallback", function(requestId, invoker, ...) - Callbacks:RecieveClient(requestId, invoker, ...) -end) - -RegisterNetEvent("esx:triggerServerCallback", function(eventName, requestId, invoker, ...) - local source = source - Callbacks:ServerRecieve(source, eventName, requestId, invoker, ...) -end) - +-- ============================================= +-- MARK: ESX Functions +-- ============================================= ---@param player number playerId ---@param eventName string @@ -84,7 +86,7 @@ end ---@param eventName string ---@param callback function ---@return nil -ESX.RegisterServerCallback = function(eventName, callback) +function ESX.RegisterServerCallback(eventName, callback) local invokingResource = GetInvokingResource() local invoker = (invokingResource and invokingResource ~= "Unknown") and invokingResource or "es_extended" @@ -97,6 +99,19 @@ function ESX.DoesServerCallbackExist(eventName) return Callbacks.storage[eventName] ~= nil end +-- ============================================= +-- MARK: Events +-- ============================================= + +RegisterNetEvent("esx:clientCallback", function(requestId, invoker, ...) + Callbacks:RecieveClient(requestId, invoker, ...) +end) + +RegisterNetEvent("esx:triggerServerCallback", function(eventName, requestId, invoker, ...) + local source = source + Callbacks:ServerRecieve(source, eventName, requestId, invoker, ...) +end) + AddEventHandler("onResourceStop", function(resource) for k, v in pairs(Callbacks.storage) do if v.resource == resource then From 1b8774f515a61b519c337846bddaad0544df4b0d Mon Sep 17 00:00:00 2001 From: Kasey FItton Date: Wed, 4 Dec 2024 06:00:41 +0000 Subject: [PATCH 106/138] fix(es_extended/client/functions): validate model is a vehicle --- [core]/es_extended/client/functions.lua | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/[core]/es_extended/client/functions.lua b/[core]/es_extended/client/functions.lua index 58252a0f..8c35eae6 100644 --- a/[core]/es_extended/client/functions.lua +++ b/[core]/es_extended/client/functions.lua @@ -391,7 +391,7 @@ function ESX.UI.Menu.Close(menuType, namespace, name, cancel) else local menu = ESX.UI.Menu.Opened[i] ESX.UI.Menu.RegisteredTypes[menu.type].close(menu.namespace, menu.name) - + if type(menu.cancel) ~= "nil" then menu.cancel(menu.data, menu) end @@ -412,7 +412,7 @@ function ESX.UI.Menu.CloseAll(cancel) else local menu = ESX.UI.Menu.Opened[i] ESX.UI.Menu.RegisteredTypes[menu.type].close(menu.namespace, menu.name) - + if type(menu.cancel) ~= "nil" then menu.cancel(menu.data, menu) end @@ -1585,6 +1585,11 @@ function ESX.GetVehicleTypeClient(model) if not IsModelInCdimage(model) then return false end + + if not IsModelAVehicle(model) then + return false + end + if mismatchedTypes[model] then return mismatchedTypes[model] end From a9b52fadc62524b02fec2436884e89a9f78392c6 Mon Sep 17 00:00:00 2001 From: Kenshin13 <63159154+Kenshiin13@users.noreply.github.com> Date: Thu, 5 Dec 2024 16:32:13 +0100 Subject: [PATCH 107/138] chore: add contrinbution guidelines --- CONTRIBUTION_GUIDELINES.md | 47 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 CONTRIBUTION_GUIDELINES.md diff --git a/CONTRIBUTION_GUIDELINES.md b/CONTRIBUTION_GUIDELINES.md new file mode 100644 index 00000000..a97fae66 --- /dev/null +++ b/CONTRIBUTION_GUIDELINES.md @@ -0,0 +1,47 @@ +# Contribution Guidelines + +If you're planning to contribute, **please follow the [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) standard.** + +Pull Requests (PRs) that do not adhere to this standard will **not be accepted**. + +## Branch Requirements + +- **All PRs must be based on the `dev` branch.** +- Merges will only occur into the `dev` branch before being released to the main branch. + +## Commit Message Format + +Ensure your commit messages and PR titles use the following format: + +``` +(): +``` + +For example: +``` +feat(es_extended/client/main): sync where players look at +fix(es_extended/client/functions): validate model is a vehicle +refactor(es_extended/client/modules/death): replace gameEventTriggered +``` + +Common commit types include: +- **`feat`** for new features +- **`fix`** for bug fixes +- **`refactor`** for code improvements without functionality changes +- **`!`** to indicate breaking changes (e.g., `feat!` or `fix!`) + +--- + +## PR Checklist + +**Please include this in your PR.** +``` +- [ ] My commit messages and PR title follow the [Conventional Commits](https://www.conventionalcommits.org/en/v1.0.0/) standard. +- [ ] My changes have been tested locally and function as expected. +- [ ] My PR does not introduce any breaking changes. +- [ ] I have provided a clear explanation of what my PR does, including the reasoning behind the changes and any relevant context. +``` + + +# We value your contribution! +By adhering to these guidelines, we can ensure a clean and maintainable codebase. Thank you for contributing to ESX! \ No newline at end of file From 32fb097428f7bf36d23942ad44a28b47fd3604a5 Mon Sep 17 00:00:00 2001 From: Kenshin13 <63159154+Kenshiin13@users.noreply.github.com> Date: Thu, 5 Dec 2024 16:38:36 +0100 Subject: [PATCH 108/138] chore: rename contribution guidelines --- CONTRIBUTION_GUIDELINES.md => CONTRIBUTING.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename CONTRIBUTION_GUIDELINES.md => CONTRIBUTING.md (100%) diff --git a/CONTRIBUTION_GUIDELINES.md b/CONTRIBUTING.md similarity index 100% rename from CONTRIBUTION_GUIDELINES.md rename to CONTRIBUTING.md From 7e61031c31cdbad95d31dbcbee24e12c17e477ef Mon Sep 17 00:00:00 2001 From: Kenshin13 <63159154+Kenshiin13@users.noreply.github.com> Date: Fri, 6 Dec 2024 10:30:20 +0100 Subject: [PATCH 109/138] feat(es_extended/server/modules/commands): match target dimension on tp cmds --- [core]/es_extended/server/modules/commands.lua | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/[core]/es_extended/server/modules/commands.lua b/[core]/es_extended/server/modules/commands.lua index 4e9d6862..519f72e4 100644 --- a/[core]/es_extended/server/modules/commands.lua +++ b/[core]/es_extended/server/modules/commands.lua @@ -593,6 +593,9 @@ ESX.RegisterCommand( "admin", function(xPlayer, args) local targetCoords = args.playerId.getCoords() + local targetDim = GetPlayerRoutingBucket(args.playerId.source) + + SetPlayerRoutingBucket(xPlayer.source, targetDim) xPlayer.setCoords(targetCoords) if Config.AdminLogging then ESX.DiscordLogFields("UserActions", "Admin Teleport /goto Triggered!", "pink", { @@ -619,6 +622,9 @@ ESX.RegisterCommand( function(xPlayer, args) local targetCoords = args.playerId.getCoords() local playerCoords = xPlayer.getCoords() + local srcDim = GetPlayerRoutingBucket(xPlayer.source) + + SetPlayerRoutingBucket(args.playerId.source, srcDim) args.playerId.setCoords(playerCoords) if Config.AdminLogging then ESX.DiscordLogFields("UserActions", "Admin Teleport /bring Triggered!", "pink", { From fcdd257cabdaf711efaa7330c493c79473454bd6 Mon Sep 17 00:00:00 2001 From: Kenshin13 <63159154+Kenshiin13@users.noreply.github.com> Date: Fri, 6 Dec 2024 10:33:47 +0100 Subject: [PATCH 110/138] feat(es_extended/server/modules/commands): add /setdim admin cmd --- [core]/es_extended/locales/en.lua | 2 ++ .../es_extended/server/modules/commands.lua | 25 +++++++++++++++++++ 2 files changed, 27 insertions(+) diff --git a/[core]/es_extended/locales/en.lua b/[core]/es_extended/locales/en.lua index c0b71869..44d62293 100644 --- a/[core]/es_extended/locales/en.lua +++ b/[core]/es_extended/locales/en.lua @@ -114,9 +114,11 @@ Locales["en"] = { ["commanderror_invalidcommand"] = "Invalid Command - /%s", ["commanderror_invalidplayerid"] = "Specified Player is not online", ["commandgeneric_playerid"] = "Player`s Server Id", + ["commandgeneric_dimension"] = "Target Dimension", ["command_giveammo_noweapon_found"] = "%s does not have that weapon", ["command_giveammo_weapon"] = "Weapon name", ["command_giveammo_ammo"] = "Ammo Quantity", + ["command_setdim"] = "Set a players dimension", ["tpm_nowaypoint"] = "No Waypoint Set.", ["tpm_success"] = "Successfully Teleported", diff --git a/[core]/es_extended/server/modules/commands.lua b/[core]/es_extended/server/modules/commands.lua index 519f72e4..7df37401 100644 --- a/[core]/es_extended/server/modules/commands.lua +++ b/[core]/es_extended/server/modules/commands.lua @@ -732,3 +732,28 @@ ESX.RegisterCommand("players", "admin", function() print(("^1[^2ID: ^5%s^0 | ^2Name : ^5%s^0 | ^2Group : ^5%s^0 | ^2Identifier : ^5%s^1]^0\n"):format(xPlayer.source, xPlayer.getName(), xPlayer.getGroup(), xPlayer.identifier)) end end, true) + +ESX.RegisterCommand( + {"setdim", "setbucket"}, + "admin", + function(xPlayer, args) + SetPlayerRoutingBucket(args.playerId.source, args.dimension) + if Config.AdminLogging then + ESX.DiscordLogFields("UserActions", "Admin Set Dim /setdim Triggered!", "pink", { + { name = "Player", value = xPlayer and xPlayer.name or "Server Console", inline = true }, + { name = "ID", value = xPlayer and xPlayer.source or "Unknown ID", inline = true }, + { name = "Target", value = args.playerId.name, inline = true }, + { name = "Dimension", value = args.dimension, inline = true }, + }) + end + end, + true, + { + help = TranslateCap("command_setdim"), + validate = true, + arguments = { + { name = "playerId", help = TranslateCap("commandgeneric_playerid"), type = "player" }, + { name = "dimension", help = TranslateCap("commandgeneric_dimension"), type = "number" }, + }, + } +) From be7a448feca5b5b513830af68528be8f5179913d Mon Sep 17 00:00:00 2001 From: Kenshin13 <63159154+Kenshiin13@users.noreply.github.com> Date: Fri, 6 Dec 2024 10:42:08 +0100 Subject: [PATCH 111/138] fix(es_extended/server/modules/commands): only set dim if needed --- [core]/es_extended/server/modules/commands.lua | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/[core]/es_extended/server/modules/commands.lua b/[core]/es_extended/server/modules/commands.lua index 7df37401..628e85ea 100644 --- a/[core]/es_extended/server/modules/commands.lua +++ b/[core]/es_extended/server/modules/commands.lua @@ -593,9 +593,12 @@ ESX.RegisterCommand( "admin", function(xPlayer, args) local targetCoords = args.playerId.getCoords() + local srcDim = GetPlayerRoutingBucket(xPlayer.source) local targetDim = GetPlayerRoutingBucket(args.playerId.source) - SetPlayerRoutingBucket(xPlayer.source, targetDim) + if srcDim ~= targetDim then + SetPlayerRoutingBucket(xPlayer.source, targetDim) + end xPlayer.setCoords(targetCoords) if Config.AdminLogging then ESX.DiscordLogFields("UserActions", "Admin Teleport /goto Triggered!", "pink", { @@ -622,9 +625,12 @@ ESX.RegisterCommand( function(xPlayer, args) local targetCoords = args.playerId.getCoords() local playerCoords = xPlayer.getCoords() + local targetDim = GetPlayerRoutingBucket(args.playerId.source) local srcDim = GetPlayerRoutingBucket(xPlayer.source) - SetPlayerRoutingBucket(args.playerId.source, srcDim) + if targetDim ~= srcDim then + SetPlayerRoutingBucket(args.playerId.source, srcDim) + end args.playerId.setCoords(playerCoords) if Config.AdminLogging then ESX.DiscordLogFields("UserActions", "Admin Teleport /bring Triggered!", "pink", { From 6c9726ffbd55061a84ac3a836f3bc5c9f149d53d Mon Sep 17 00:00:00 2001 From: Kenshin13 <63159154+Kenshiin13@users.noreply.github.com> Date: Fri, 6 Dec 2024 10:58:51 +0100 Subject: [PATCH 112/138] refactor(es_extended/server/functions): address lint errors --- [core]/es_extended/server/functions.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/[core]/es_extended/server/functions.lua b/[core]/es_extended/server/functions.lua index cec340b5..884ef4a5 100644 --- a/[core]/es_extended/server/functions.lua +++ b/[core]/es_extended/server/functions.lua @@ -299,14 +299,14 @@ function ESX.GetExtendedPlayers(key, val) local xPlayers = {} if type(val) == "table" then - for i, xPlayer in pairs(ESX.Players) do + for _, xPlayer in pairs(ESX.Players) do checkTable(key, val, xPlayer, xPlayers) end return xPlayers end - for i, xPlayer in pairs(ESX.Players) do + for _, xPlayer in pairs(ESX.Players) do if (key == "job" and xPlayer.job.name == val) or xPlayer[key] == val then xPlayers[#xPlayers + 1] = xPlayer end From 74d1820df29c70b4bb5fb45a6978c04e40a92ff2 Mon Sep 17 00:00:00 2001 From: FirstSanchez <87505001+FirstSanchez@users.noreply.github.com> Date: Fri, 6 Dec 2024 12:35:51 +0100 Subject: [PATCH 113/138] feat(es_extended/locales/de): translated 2 missing locales --- [core]/es_extended/locales/de.lua | 2 ++ 1 file changed, 2 insertions(+) diff --git a/[core]/es_extended/locales/de.lua b/[core]/es_extended/locales/de.lua index da224c3a..5391c052 100644 --- a/[core]/es_extended/locales/de.lua +++ b/[core]/es_extended/locales/de.lua @@ -114,9 +114,11 @@ Locales["de"] = { ["commanderror_invalidcommand"] = "Ungültiger Befehl - /%s", ["commanderror_invalidplayerid"] = "Angegebener Spieler ist nicht online!", ["commandgeneric_playerid"] = "Spieler ID", + ["commandgeneric_dimension"] = "Ziel Dimension", ["command_giveammo_noweapon_found"] = "%s besitzt diese Waffe nicht!", ["command_giveammo_weapon"] = "Waffenname", ["command_giveammo_ammo"] = "Munitionsanzahl", + ["command_setdim"] = "Setzt Spielerdimension!", ["tpm_nowaypoint"] = "Kein Wegpunkt gesetzt!", ["tpm_success"] = "Erfolgreich teleportiert.", From b436fc6072e33ead6a58fa0ba182bc09c0843600 Mon Sep 17 00:00:00 2001 From: FirstSanchez <87505001+FirstSanchez@users.noreply.github.com> Date: Fri, 6 Dec 2024 11:56:58 +0000 Subject: [PATCH 114/138] Space error --- [core]/es_extended/locales/de.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/[core]/es_extended/locales/de.lua b/[core]/es_extended/locales/de.lua index 5391c052..8951fdf0 100644 --- a/[core]/es_extended/locales/de.lua +++ b/[core]/es_extended/locales/de.lua @@ -118,7 +118,7 @@ Locales["de"] = { ["command_giveammo_noweapon_found"] = "%s besitzt diese Waffe nicht!", ["command_giveammo_weapon"] = "Waffenname", ["command_giveammo_ammo"] = "Munitionsanzahl", - ["command_setdim"] = "Setzt Spielerdimension!", + ["command_setdim"] = "Setzt Spieler Dimension!", ["tpm_nowaypoint"] = "Kein Wegpunkt gesetzt!", ["tpm_success"] = "Erfolgreich teleportiert.", From 23ad35b6e271cdbc3bcba36d3600c40f787ef4d0 Mon Sep 17 00:00:00 2001 From: Kenshin13 <63159154+Kenshiin13@users.noreply.github.com> Date: Fri, 6 Dec 2024 22:00:33 +0100 Subject: [PATCH 115/138] feat(es_extended/shared/main): restore backwards compat --- [core]/es_extended/shared/main.lua | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/[core]/es_extended/shared/main.lua b/[core]/es_extended/shared/main.lua index 0e78f0cb..00f775b4 100644 --- a/[core]/es_extended/shared/main.lua +++ b/[core]/es_extended/shared/main.lua @@ -4,9 +4,12 @@ exports("getSharedObject", function() return ESX end) -AddEventHandler("esx:getSharedObject", function() - local Invoke = GetInvokingResource() - error(("Resource ^5%s^1 Used the ^5getSharedObject^1 Event, this event ^1no longer exists!^1 Visit https://documentation.esx-framework.org/tutorials/tutorials-esx/sharedevent for how to fix!"):format(Invoke)) +AddEventHandler("esx:getSharedObject", function(cb) + if ESX.IsFunctionReference(cb) then + cb(ESX) + end + local invokingResource = GetInvokingResource() + print(("^3[WARNING]^0 Resource ^5%s^0 used the ^5getSharedObject^0 event. This is not the recommended way to import ESX. Visit https://documentation.esx-framework.org/tutorials/tutorials-esx/sharedevent to find out why."):format(invokingResource)) end) -- backwards compatibility (DO NOT TOUCH !) From 092b843674177f7712d58bfa90a683a82b9e8c53 Mon Sep 17 00:00:00 2001 From: Kenshin13 <63159154+Kenshiin13@users.noreply.github.com> Date: Sat, 7 Dec 2024 00:22:02 +0100 Subject: [PATCH 116/138] feat(es_extended/client/modules/actions): track current ped weapon --- [core]/es_extended/client/modules/actions.lua | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/[core]/es_extended/client/modules/actions.lua b/[core]/es_extended/client/modules/actions.lua index 23189d98..16c75c80 100644 --- a/[core]/es_extended/client/modules/actions.lua +++ b/[core]/es_extended/client/modules/actions.lua @@ -4,6 +4,7 @@ Actions._index = Actions Actions.inVehicle = false Actions.enteringVehicle = false Actions.inPauseMenu = false +Actions.currentWeapon = false function Actions:GetSeatPedIsIn() for i = -1, 16 do @@ -132,12 +133,24 @@ function Actions:TrackVehicle() end end +function Actions:TrackWeapon() + ---@type number|false + local newWeapon = GetSelectedPedWeapon(ESX.PlayerData.ped) + newWeapon = newWeapon ~= `WEAPON_UNARMED` and newWeapon or false + + if newWeapon ~= self.currentWeapon then + self.currentWeapon = newWeapon + TriggerEvent("esx:weaponChanged", self.currentWeapon) + end +end + function Actions:SlowLoop() CreateThread(function() while ESX.PlayerLoaded do self:TrackPedCoords() self:TrackPauseMenu() self:TrackVehicle() + self:TrackWeapon() Wait(500) end end) From ce773fe7dd1495661e728bb7a726c8d28dd4327e Mon Sep 17 00:00:00 2001 From: xGhostxDev <69668488+xGhostxDev@users.noreply.github.com> Date: Sat, 7 Dec 2024 20:44:27 +0100 Subject: [PATCH 117/138] Create pl.lua Adds translation for Polish language --- [core]/esx_multicharacter/locales/pl.lua | 33 ++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 [core]/esx_multicharacter/locales/pl.lua diff --git a/[core]/esx_multicharacter/locales/pl.lua b/[core]/esx_multicharacter/locales/pl.lua new file mode 100644 index 00000000..b71f35fd --- /dev/null +++ b/[core]/esx_multicharacter/locales/pl.lua @@ -0,0 +1,33 @@ +Locales["pl"] = { + ["male"] = "Mężczyzna", + ["female"] = "Kobieta", + ["select_char"] = "Wybierz postać", + ["select_char_description"] = "Wybierz postać, którą chcesz grać.", + ["create_char"] = "Nowa postać", + ["char_play"] = "Graj", + ["char_play_description"] = "Przejdź do miasta.", + ["char_disabled"] = "Wyłączona", + ["char_disabled_description"] = "Ta postać jest niedostępna.", + ["char_delete"] = "Usuń", + ["char_delete_description"] = "Trwale usuń tę postać.", + ["char_delete_confirmation"] = "Potwierdz usunięcie", + ["char_delete_confirmation_description"] = "Czy na pewno chcesz usunąć wybraną postać?", + ["char_delete_yes_description"] = "Tak, jestem pewien, że chcę usunąć wybraną postać", + ["char_delete_no_description"] = "Nie, wróć do opcji postaci", + ["character"] = "Postać: %s", + ["return"] = "Powrót", + ["return_description"] = "Wróć do wyboru postaci.", + ["command_setslots"] = "Ustaw liczbę slotów dla wielu postaci", + ["command_remslots"] = "Usuń liczbę slotów dla wielu postaci", + ["command_enablechar"] = "Włącz określoną postać", + ["command_disablechar"] = "Wyłącz określoną postać", + ["command_charslot"] = "Numer slotu postaci", + ["command_identifier"] = "Identyfikator postaci", + ["command_slots"] = "# liczba slotów", + ["slotsadd"] = "Ustawiłeś %s slotów dla %s", + ["slotsrem"] = "Usunąłeś sloty dla %s", + ["charenabled"] = "Włączyłeś postać #%s gracza %s", + ["chardisabled"] = "Wyłączyłeś postać #%s gracza %s", + ["charnotfound"] = "Postać #%s gracza %s nie istnieje", + +} From db685e612bb4be2911ec7dbc8c68579a6be015d0 Mon Sep 17 00:00:00 2001 From: Kenshin13 <63159154+Kenshiin13@users.noreply.github.com> Date: Sun, 8 Dec 2024 23:30:00 +0100 Subject: [PATCH 118/138] feat(es_extended/client/modules/actions): track vehicle seat --- [core]/es_extended/client/modules/actions.lua | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/[core]/es_extended/client/modules/actions.lua b/[core]/es_extended/client/modules/actions.lua index 16c75c80..1b2206bb 100644 --- a/[core]/es_extended/client/modules/actions.lua +++ b/[core]/es_extended/client/modules/actions.lua @@ -130,6 +130,20 @@ function Actions:TrackVehicle() end elseif self.inVehicle then self:ExitVehicle() + self:TrackSeat() + end +end + +function Actions:TrackSeat() + if not self.inVehicle then + return + end + + local newSeat = self:GetSeatPedIsIn() + if newSeat ~= self.seat then + self.seat = newSeat + ESX.SetPlayerData("seat", self.seat) + TriggerEvent("esx:vehicleSeatChanged", self.seat) end end From 3c6d88768014f462b994333419856b01c2296505 Mon Sep 17 00:00:00 2001 From: Kenshin13 <63159154+Kenshiin13@users.noreply.github.com> Date: Sun, 8 Dec 2024 23:38:13 +0100 Subject: [PATCH 119/138] feat(es_extended/client/modules/actions): add current weapon to playerdata --- [core]/es_extended/client/modules/actions.lua | 1 + 1 file changed, 1 insertion(+) diff --git a/[core]/es_extended/client/modules/actions.lua b/[core]/es_extended/client/modules/actions.lua index 1b2206bb..89c6757c 100644 --- a/[core]/es_extended/client/modules/actions.lua +++ b/[core]/es_extended/client/modules/actions.lua @@ -154,6 +154,7 @@ function Actions:TrackWeapon() if newWeapon ~= self.currentWeapon then self.currentWeapon = newWeapon + ESX.SetPlayerData("weapon", self.currentWeapon) TriggerEvent("esx:weaponChanged", self.currentWeapon) end end From a84c28f8b288af10369953da5d54056f1294898d Mon Sep 17 00:00:00 2001 From: Kenshin13 <63159154+Kenshiin13@users.noreply.github.com> Date: Sun, 8 Dec 2024 23:55:52 +0100 Subject: [PATCH 120/138] fix(es_extended/client/modules/death): fix death event for multichar relog --- [core]/es_extended/client/modules/death.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/[core]/es_extended/client/modules/death.lua b/[core]/es_extended/client/modules/death.lua index 28e860de..ab75719c 100644 --- a/[core]/es_extended/client/modules/death.lua +++ b/[core]/es_extended/client/modules/death.lua @@ -62,7 +62,7 @@ end AddEventHandler("esx:onPlayerSpawn", function() Citizen.CreateThreadNow(function() - while not ESX.PlayerData.dead do + while ESX.PlayerLoaded and not ESX.PlayerData.dead do if IsPedDeadOrDying(ESX.PlayerData.ped, true) or IsPedFatallyInjured(ESX.PlayerData.ped) then Death:Died() break From 9fb586eb8449ab752b3dbc6644346f683c26d4ff Mon Sep 17 00:00:00 2001 From: Gold14567 <70439470+Gold14567@users.noreply.github.com> Date: Mon, 9 Dec 2024 18:03:46 +0100 Subject: [PATCH 121/138] Add files via upload --- [core]/es_extended/locales/tr.lua | 381 ++++++++++++++++++++++++++++++ 1 file changed, 381 insertions(+) create mode 100644 [core]/es_extended/locales/tr.lua diff --git a/[core]/es_extended/locales/tr.lua b/[core]/es_extended/locales/tr.lua new file mode 100644 index 00000000..5215181e --- /dev/null +++ b/[core]/es_extended/locales/tr.lua @@ -0,0 +1,381 @@ +Locales["en"] = { + -- Inventory + ["inventory"] = "Envanter ( Ağırlık %s / %s )", + ["use"] = "Kullan", + ["give"] = "Ver", + ["remove"] = "At", + ["return"] = "Geri Ver", + ["give_to"] = "Şuna Ver", + ["amount"] = "Miktar", + ["giveammo"] = "Mermi Ver", + ["amountammo"] = "Mermi Miktarı", + ["noammo"] = "Yeterli Değil!", + ["gave_item"] = "Verilen %sx %s %s'ye", + ["received_item"] = "Alınan %sx %s %s'den", + ["gave_weapon"] = "Verilen %s %s'ye", + ["gave_weapon_ammo"] = "Verilen ~o~%sx %s %s için %s'ye", + ["gave_weapon_withammo"] = "Verilen %s ile ~o~%sx %s %s'ye", + ["gave_weapon_hasalready"] = "%s Zaten Bir %s Sahip", + ["gave_weapon_noweapon"] = "%s O Silahı Sahip Değil", + ["received_weapon"] = "%s'den %s Alındı", + ["received_weapon_ammo"] = "%s'den %s için ~o~%sx %s Alındı", + ["received_weapon_withammo"] = "%s'den %s ile ~o~%sx %s Alındı", + ["received_weapon_hasalready"] = "%s Size Bir %s Vermeye Çalıştı, Ama Zaten Bu Silahınız Var", + ["received_weapon_noweapon"] = "%s Size Bir %s İçin Mermi Vermeye Çalıştı, Ama Bu Silaha Sahip Değilsiniz", + ["gave_account_money"] = "Verilen $%s (%s) %s'ye", + ["received_account_money"] = "Alınan $%s (%s) %s'den", + ["amount_invalid"] = "Geçersiz Miktar", + ["players_nearby"] = "Yakınlarda Hiçbir Oyuncu Yok", + ["ex_inv_lim"] = "İşlem Yapılamaz, %s Ağırlık Sınırı Aşıldı", + ["imp_invalid_quantity"] = "İşlem Yapılamaz, Miktar Geçersiz", + ["imp_invalid_amount"] = "İşlem Yapılamaz, Miktar Geçersiz", + ["threw_standard"] = "Atılan %sx %s", + ["threw_account"] = "Atılan $%s %s", + ["threw_weapon"] = "Atılan %s", + ["threw_weapon_ammo"] = "Atılan %s ile ~o~%sx %s", + ["threw_weapon_already"] = "Bu Silaha Zaten Sahipsiniz", + ["threw_cannot_pickup"] = "Envanter Dolu, Alınamaz!", + ["threw_pickup_prompt"] = "Almak İçin E'ye Basın", + + -- Key mapping + ["keymap_showinventory"] = "Envanteri Göster", + + -- Salary related + ["received_salary"] = "Maaşınız Ödendi: $%s", + ["received_help"] = "Yardım Çekiniz Ödendi: $%s", + ["company_nomoney"] = "Çalıştığınız Şirket Maaşınızı Ödeyebilecek Kadar Zengin Değil", + ["received_paycheck"] = "Maaş Alındı", + ["bank"] = "Maze Bank", + ["account_bank"] = "Banka", + ["account_black_money"] = "Kirli Para", + ["account_money"] = "Nakit", + + ["act_imp"] = "İşlem Yapılamaz", + ["in_vehicle"] = "İşlem Yapılamaz, Oyuncu Araçta", + ["not_in_vehicle"] = "İşlem Yapılamaz, Oyuncu Araçta Değil", + + -- Commands + ["command_bring"] = "Oyuncuyu Yanınıza Getir", + ["command_car"] = "Araç Spawn Et", + ["command_car_car"] = "Araç Modeli veya Hash", + ["command_cardel"] = "Yakınlardaki Araçları Kaldır", + ["command_cardel_radius"] = "Belirtilen Yarıçap İçindeki Tüm Araçları Kaldırır", + ["command_repair"] = "Araçınızı Onarın", + ["command_repair_success"] = "Araç Başarıyla Onarıldı", + ["command_repair_success_target"] = "Bir Yönetici Araçınızı Onardı", + ["command_clear"] = "Sohbeti Temizle", + ["command_clearall"] = "Tüm Oyuncular İçin Sohbeti Temizle", + ["command_clearinventory"] = "Oyuncunun Envanterindeki Tüm Eşyaları Kaldır", + ["command_clearloadout"] = "Oyuncunun Yükündeki Tüm Silahları Kaldır", + ["command_freeze"] = "Bir Oyuncuyu Dondur", + ["command_unfreeze"] = "Bir Oyuncunun Dondurmasını Kaldır", + ["command_giveaccountmoney"] = "Bir Hesaba Para Ver", + ["command_giveaccountmoney_account"] = "Ekleme Yapılacak Hesap", + ["command_giveaccountmoney_amount"] = "Eklemek İçin Miktar", + ["command_giveaccountmoney_invalid"] = "Hesap Adı Geçersiz", + ["command_removeaccountmoney"] = "Bir Hesaptan Para Çek", + ["command_removeaccountmoney_account"] = "Çekilecek Hesap", + ["command_removeaccountmoney_amount"] = "Çekilecek Miktar", + ["command_removeaccountmoney_invalid"] = "Hesap Adı Geçersiz", + ["command_giveitem"] = "Oyuncuya Eşya Ver", + ["command_giveitem_item"] = "Eşya Adı", + ["command_giveitem_count"] = "Miktar", + ["command_giveweapon"] = "Oyuncuya Silah Ver", + ["command_giveweapon_weapon"] = "Silah Adı", + ["command_giveweapon_ammo"] = "Mermi Miktarı", + ["command_giveweapon_hasalready"] = "Oyuncu Zaten Bu Silaha Sahip", + ["command_giveweaponcomponent"] = "Oyuncuya Silah Parçası Ver", + ["command_giveweaponcomponent_component"] = "Parça Adı", + ["command_giveweaponcomponent_invalid"] = "Geçersiz Silah Parçası", + ["command_giveweaponcomponent_hasalready"] = "Oyuncu Zaten Bu Silah Parçasına Sahip", + ["command_giveweaponcomponent_missingweapon"] = "Oyuncu Bu Silaha Sahip Değil", + ["command_goto"] = "Kendinizi Bir Oyuncuya Teleport Et", + ["command_kill"] = "Bir Oyuncuyu Öldür", + ["command_save"] = "Bir Oyuncunun Verilerini Zorla Kaydet", + ["command_saveall"] = "Tüm Oyuncu Verilerini Zorla Kaydet", + ["command_setaccountmoney"] = "Bir Hesaptaki Parayı Ayarla", + ["command_setaccountmoney_amount"] = "Miktar", + ["command_setcoords"] = "Belirtilen Koordinatlara Teleport Ol", + ["command_setcoords_x"] = "X Değeri", + ["command_setcoords_y"] = "Y Değeri", + ["command_setcoords_z"] = "Z Değeri", + ["command_setjob"] = "Bir Oyuncunun Mesleğini Ayarla", + ["command_setjob_job"] = "Adı", + ["command_setjob_grade"] = "Meslek Derecesi", + ["command_setjob_invalid"] = "Meslek, Derece veya Her Ikisi Geçersiz", + ["command_setgroup"] = "Bir Oyuncunun Yetki Grubunu Ayarla", + ["command_setgroup_group"] = "Grup Adı", + ["commanderror_argumentmismatch"] = "Geçersiz Argüman Sayısı (Verilen %s, İstenen %s)", + ["commanderror_argumentmismatch_number"] = "Geçersiz Argüman #%s Veri Tipi (Verilen Metin, İstenen Sayı)", + ["commanderror_argumentmismatch_string"] = "Geçersiz Argüman #%s Veri Tipi (Verilen Sayı, İstenen Metin)", + ["commanderror_invaliditem"] = "Geçersiz Eşya", + ["commanderror_invalidweapon"] = "Geçersiz Silah", + ["commanderror_console"] = "Komut Konsoldan Çalıştırılamaz", + ["commanderror_invalidcommand"] = "Geçersiz Komut - /%s", + ["commanderror_invalidplayerid"] = "Belirtilen Oyuncu Çevrimdışı", + ["commandgeneric_playerid"] = "Oyuncunun Sunucu ID'si", + ["command_giveammo_noweapon_found"] = "%s O Silaha Sahip Değil", + ["command_giveammo_weapon"] = "Silah Adı", + ["command_giveammo_ammo"] = "Mermi Miktarı", + ["tpm_nowaypoint"] = "Hiçbir Yol İşareti Ayarlanmadı.", + ["tpm_success"] = "Başarıyla Teleport Edildi", + + ["noclip_message"] = "Noclip %s Yapıldı", + ["enabled"] = "~g~Aktif Edildi~s~", + ["disabled"] = "~r~Pasif Edildi~s~", + + -- Locale settings + ["locale_digit_grouping_symbol"] = ",", + ["locale_currency"] = "£%s", + + -- Silahlar + + -- Melee + ["weapon_dagger"] = "Kılıç", + ["weapon_bat"] = "Sopa", + ["weapon_battleaxe"] = "Savaş Balta", + ["weapon_bottle"] = "Şişe", + ["weapon_crowbar"] = "Kaldıraç", + ["weapon_flashlight"] = "Fener", + ["weapon_golfclub"] = "Golf Sopası", + ["weapon_hammer"] = "Çekiç", + ["weapon_hatchet"] = "Balta", + ["weapon_knife"] = "Bıçak", + ["weapon_knuckle"] = "Düğmeli Eldiven", + ["weapon_machete"] = "Machete", + ["weapon_nightstick"] = "Gece Dürbünü", + ["weapon_wrench"] = "Anahtar", + ["weapon_poolcue"] = "Havuz Sopası", + ["weapon_stone_hatchet"] = "Taş Balta", + ["weapon_switchblade"] = "Dönme Bıçağı", + + -- Tabancalar + ["weapon_appistol"] = "AP Tabancası", + ["weapon_ceramicpistol"] = "Seramik Tabanca", + ["weapon_combatpistol"] = "Savaş Tabancası", + ["weapon_doubleaction"] = "Çift Aksiyonlu Tabanca", + ["weapon_navyrevolver"] = "Donanma Revolveri", + ["weapon_flaregun"] = "Işık Fişeği Tabancası", + ["weapon_gadgetpistol"] = "Cihaz Tabancası", + ["weapon_heavypistol"] = "Ağır Tabanca", + ["weapon_revolver"] = "Revolver", + ["weapon_revolver_mk2"] = "Revolver MK2", + ["weapon_marksmanpistol"] = "Nişancı Tabancası", + ["weapon_pistol"] = "Tabanca", + ["weapon_pistol_mk2"] = "Tabanca MK2", + ["weapon_pistol50"] = "Tabanca .50", + ["weapon_snspistol"] = "SNS Tabancası", + ["weapon_snspistol_mk2"] = "SNS Tabancası MK2", + ["weapon_stungun"] = "Elektrik Tabancası", + ["weapon_raypistol"] = "Atomizer Tabancası", + ["weapon_vintagepistol"] = "Vintage Tabanca", + + -- Av Tüfekleri + ["weapon_assaultshotgun"] = "Saldırı Tüfeği", + ["weapon_autoshotgun"] = "Otomatik Tüfek", + ["weapon_bullpupshotgun"] = "Bullpup Tüfeği", + ["weapon_combatshotgun"] = "Savaş Tüfeği", + ["weapon_dbshotgun"] = "Çift Namlu Tüfeği", + ["weapon_heavyshotgun"] = "Ağır Tüfek", + ["weapon_musket"] = "Tüfek", + ["weapon_pumpshotgun"] = "Pompalı Tüfek", + ["weapon_pumpshotgun_mk2"] = "Pompalı Tüfek MK2", + ["weapon_sawnoffshotgun"] = "Kısa Namlu Tüfek", + + -- SMG ve LMG + ["weapon_assaultsmg"] = "Saldırı SMG", + ["weapon_combatmg"] = "Savaş MG", + ["weapon_combatmg_mk2"] = "Savaş MG MK2", + ["weapon_combatpdw"] = "Savaş PDW", + ["weapon_gusenberg"] = "Gusenberg Sweeper", + ["weapon_machinepistol"] = "Makine Tabancası", + ["weapon_mg"] = "MG", + ["weapon_microsmg"] = "Micro SMG", + ["weapon_minismg"] = "Mini SMG", + ["weapon_smg"] = "SMG", + ["weapon_smg_mk2"] = "SMG MK2", + ["weapon_raycarbine"] = "Unholy Hellbringer", + + -- Tüfekler + ["weapon_advancedrifle"] = "İleri Düzey Tüfeği", + ["weapon_assaultrifle"] = "Saldırı Tüfeği", + ["weapon_assaultrifle_mk2"] = "Saldırı Tüfeği MK2", + ["weapon_bullpuprifle"] = "Bullpup Tüfeği", + ["weapon_bullpuprifle_mk2"] = "Bullpup Tüfeği MK2", + ["weapon_carbinerifle"] = "Carbine Tüfeği", + ["weapon_carbinerifle_mk2"] = "Carbine Tüfeği MK2", + ["weapon_compactrifle"] = "Komple Tüfek", + ["weapon_militaryrifle"] = "Askeri Tüfek", + ["weapon_specialcarbine"] = "Özel Carbine", + ["weapon_specialcarbine_mk2"] = "Özel Carbine MK2", + ["weapon_heavyrifle"] = "Ağır Tüfek", + + -- Keskin Nişancı + ["weapon_heavysniper"] = "Ağır Keskin Nişancı", + ["weapon_heavysniper_mk2"] = "Ağır Keskin Nişancı MK2", + ["weapon_marksmanrifle"] = "Keskin Nişancı Tüfeği", + ["weapon_marksmanrifle_mk2"] = "Keskin Nişancı Tüfeği MK2", + ["weapon_sniperrifle"] = "Keskin Nişancı Tüfeği", + + -- Ağır / Roket Atıcılar + ["weapon_compactlauncher"] = "Kompakt Roket Atıcı", + ["weapon_firework"] = "Havai Fişek Atıcı", + ["weapon_grenadelauncher"] = "El Bombası Atıcı", + ["weapon_hominglauncher"] = "Hedefli Roket Atıcı", + ["weapon_minigun"] = "Minigun", + ["weapon_railgun"] = "Raylı Silah", + ["weapon_rpg"] = "Roket Atıcı", + ["weapon_rayminigun"] = "Widowmaker", + + -- Suçlu Girişimleri DLC + ["weapon_metaldetector"] = "Metal Dedektörü", + ["weapon_precisionrifle"] = "Keskin Nişancı Tüfeği", + ["weapon_tactilerifle"] = "Hizmet Karabina", + + -- Uyuşturucu Savaşları DLC + ["weapon_candycane"] = "Şeker Kamışı", + ["weapon_acidpackage"] = "Asit Paketi", + ["weapon_pistolxm3"] = "Pistol8 x3m", + ["weapon_railgunxm3"] = "Raylı Silah", + + -- Atılan Silahlar + ["weapon_ball"] = "Beyzbol Topu", + ["weapon_bzgas"] = "BZ Gazı", + ["weapon_flare"] = "Duman Fişeği", + ["weapon_grenade"] = "El Bombası", + ["weapon_petrolcan"] = "Petrol Bidonu", + ["weapon_hazardcan"] = "Tehlikeli Bidon", + ["weapon_molotov"] = "Molotof Kokteyli", + ["weapon_proxmine"] = "Yakınlık Mayını", + ["weapon_pipebomb"] = "Boru Bombası", + ["weapon_snowball"] = "Karla Bombası", + ["weapon_stickybomb"] = "Yapışkan Bomba", + ["weapon_smokegrenade"] = "Gözyaşı Gazı", + + -- Özel + ["weapon_fireextinguisher"] = "Yangın Söndürücü", + ["weapon_digiscanner"] = "Dijital Tarayıcı", + ["weapon_garbagebag"] = "Çöp Torbası", + ["weapon_handcuffs"] = "Kelepçe", + ["gadget_nightvision"] = "Gece Görüşü", + ["gadget_parachute"] = "Paraşüt", + + -- Silah Bileşenleri + ["component_knuckle_base"] = "Temel Model", + ["component_knuckle_pimp"] = "Fahişe", + ["component_knuckle_ballas"] = "Ballas", + ["component_knuckle_dollar"] = "Hustler", + ["component_knuckle_diamond"] = "Elmas", + ["component_knuckle_hate"] = "Nefret", + ["component_knuckle_love"] = "Aşk", + ["component_knuckle_player"] = "Oyuncu", + ["component_knuckle_king"] = "Kral", + ["component_knuckle_vagos"] = "Vagos", + + ["component_luxary_finish"] = "Lüks Silah Kaplama", + + ["component_handle_default"] = "Varsayılan Sap", + ["component_handle_vip"] = "VIP Sap", + ["component_handle_bodyguard"] = "Vücut Koruma Sapı", + + ["component_vip_finish"] = "VIP Kaplama", + ["component_bodyguard_finish"] = "Vücut Koruma Kaplaması", + + ["component_camo_finish"] = "Dijital Kamuflaj", + ["component_camo_finish2"] = "Fırçalama Kamuflaj", + ["component_camo_finish3"] = "Orman Kamuflajı", + ["component_camo_finish4"] = "Kafatası Kamuflajı", + ["component_camo_finish5"] = "Sessanta Nove Kamuflajı", + ["component_camo_finish6"] = "Perseus Kamuflajı", + ["component_camo_finish7"] = "Leopar Kamuflajı", + ["component_camo_finish8"] = "Zebra Kamuflajı", + ["component_camo_finish9"] = "Geometrik Kamuflaj", + ["component_camo_finish10"] = "Boom Kamuflajı", + ["component_camo_finish11"] = "Patriot Kamuflajı", + + ["component_camo_slide_finish"] = "Dijital Kayma Kamuflajı", + ["component_camo_slide_finish2"] = "Fırçalama Kayma Kamuflajı", + ["component_camo_slide_finish3"] = "Orman Kayma Kamuflajı", + ["component_camo_slide_finish4"] = "Kafatası Kayma Kamuflajı", + ["component_camo_slide_finish5"] = "Sessanta Nove Kayma Kamuflajı", + ["component_camo_slide_finish6"] = "Perseus Kayma Kamuflajı", + ["component_camo_slide_finish7"] = "Leopar Kayma Kamuflajı", + ["component_camo_slide_finish8"] = "Zebra Kayma Kamuflajı", + ["component_camo_slide_finish9"] = "Geometrik Kayma Kamuflajı", + ["component_camo_slide_finish10"] = "Boom Kayma Kamuflajı", + ["component_camo_slide_finish11"] = "Patriot Kayma Kamuflajı", + + ["component_clip_default"] = "Varsayılan Şarjör", + ["component_clip_extended"] = "Uzun Şarjör", + ["component_clip_drum"] = "Davul Şarjör", + ["component_clip_box"] = "Kutu Şarjör", + + ["component_scope_holo"] = "Holografik Dürbün", + ["component_scope_small"] = "Küçük Dürbün", + ["component_scope_medium"] = "Orta Dürbün", + ["component_scope_large"] = "Büyük Dürbün", + ["component_scope"] = "Montelenmiş Dürbün", + ["component_scope_advanced"] = "İleri Seviye Dürbün", + ["component_ironsights"] = "Nişangah", + + ["component_suppressor"] = "Susturucu", + ["component_compensator"] = "Dengeleyici", + + ["component_muzzle_flat"] = "Düz Namlu Freni", + ["component_muzzle_tactical"] = "Taktiksel Namlu Freni", + ["component_muzzle_fat"] = "Geniş Uçlu Namlu Freni", + ["component_muzzle_precision"] = "Hassas Namlu Freni", + ["component_muzzle_heavy"] = "Ağır Namlu Freni", + ["component_muzzle_slanted"] = "Eğik Namlu Freni", + ["component_muzzle_split"] = "Bölünmüş Namlu Freni", + ["component_muzzle_squared"] = "Kare Namlu Freni", + + ["component_flashlight"] = "Fener", + ["component_grip"] = "Tutamak", + + ["component_barrel_default"] = "Varsayılan Namlu", + ["component_barrel_heavy"] = "Ağır Namlu", + + ["component_ammo_tracer"] = "Işık İzli Mühimmat", + ["component_ammo_incendiary"] = "Alev Alıcı Mühimmat", + ["component_ammo_hollowpoint"] = "Hollowpoint Mühimmat", + ["component_ammo_fmj"] = "FMJ Mühimmat", + ["component_ammo_armor"] = "Zırh Delici Mühimmat", + ["component_ammo_explosive"] = "Zırh Delici Alev Alıcı Mühimmat", + + ["component_shells_default"] = "Varsayılan Mühimmat", + ["component_shells_incendiary"] = "Dragon's Breath Mühimmatı", + ["component_shells_armor"] = "Çelik Buckshot Mühimmat", + ["component_shells_hollowpoint"] = "Flechette Mühimmat", + ["component_shells_explosive"] = "Patlayıcı Slug Mühimmat", + + -- Silah Mermileri + ["ammo_rounds"] = "Dişli(ler)", + ["ammo_shells"] = "Kovan(lar)", + ["ammo_charge"] = "Şarjör", + ["ammo_petrol"] = "Yakıt Galonları", + ["ammo_firework"] = "Havai Fişek(ler)", + ["ammo_rockets"] = "Roket(ler)", + ["ammo_grenadelauncher"] = "El Bombası(ları)", + ["ammo_grenade"] = "El Bombası(ları)", + ["ammo_stickybomb"] = "Bomba(lar)", + ["ammo_pipebomb"] = "Bomba(lar)", + ["ammo_smokebomb"] = "Bomba(lar)", + ["ammo_molotov"] = "Molotof Kokteyli(leri)", + ["ammo_proxmine"] = "Mayın(lar)", + ["ammo_bzgas"] = "Kutu(lar)", + ["ammo_ball"] = "Top(lar)", + ["ammo_snowball"] = "Kar Topu(ları)", + ["ammo_flare"] = "Duman Fişek(leri)", + ["ammo_flaregun"] = "Duman Fişek(leri)", + + -- Silah Renkleri + ["tint_default"] = "Varsayılan Kaplama", + ["tint_green"] = "Yeşil Kaplama", + ["tint_gold"] = "Altın Kaplama", + ["tint_pink"] = "Pembe Kaplama", + ["tint_army"] = "Ordu Kaplaması", + ["tint_lspd"] = "Mavi Kaplama", + ["tint_orange"] = "Turuncu Kaplama", + ["tint_platinum"] = "Platin Kaplama", +} \ No newline at end of file From 635a556c913e89c829e0159de5229ed58afef6ea Mon Sep 17 00:00:00 2001 From: Gold14567 <70439470+Gold14567@users.noreply.github.com> Date: Mon, 9 Dec 2024 18:21:17 +0100 Subject: [PATCH 122/138] Update tr.lua --- [core]/es_extended/locales/tr.lua | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/[core]/es_extended/locales/tr.lua b/[core]/es_extended/locales/tr.lua index 5215181e..f12d6495 100644 --- a/[core]/es_extended/locales/tr.lua +++ b/[core]/es_extended/locales/tr.lua @@ -1,4 +1,4 @@ -Locales["en"] = { +Locales["tr"] = { -- Inventory ["inventory"] = "Envanter ( Ağırlık %s / %s )", ["use"] = "Kullan", @@ -378,4 +378,4 @@ Locales["en"] = { ["tint_lspd"] = "Mavi Kaplama", ["tint_orange"] = "Turuncu Kaplama", ["tint_platinum"] = "Platin Kaplama", -} \ No newline at end of file +} From f34f0d2db58c27be7e5022cfaadf327227f190b9 Mon Sep 17 00:00:00 2001 From: Kenshin13 <63159154+Kenshiin13@users.noreply.github.com> Date: Sat, 14 Dec 2024 21:05:56 +0100 Subject: [PATCH 123/138] feat(es_extended/server/modules/onesync): add promise support for ESX.OneSync.SpawnVehicle --- [core]/es_extended/server/modules/onesync.lua | 56 +++++++++++++------ 1 file changed, 39 insertions(+), 17 deletions(-) diff --git a/[core]/es_extended/server/modules/onesync.lua b/[core]/es_extended/server/modules/onesync.lua index 87c5f7f0..a20cd16c 100644 --- a/[core]/es_extended/server/modules/onesync.lua +++ b/[core]/es_extended/server/modules/onesync.lua @@ -82,35 +82,57 @@ end ---@param coords vector3|table ---@param heading number ---@param properties table ----@param cb function +---@param cb? fun(netId: number) +---@return number|nil netId function ESX.OneSync.SpawnVehicle(model, coords, heading, properties, cb) + if cb and not ESX.IsFunctionReference(cb) then + error("Invalid callback function") + end + + local vehicleModel = joaat(model) local vehicleProperties = properties + local promise = not cb and promise.new() CreateThread(function() local xPlayer = ESX.OneSync.GetClosestPlayer(coords, 300) ESX.GetVehicleType(vehicleModel, xPlayer.id, function(vehicleType) - if vehicleType then - local createdVehicle = CreateVehicleServerSetter(vehicleModel, vehicleType, coords.x, coords.y, coords.z, heading) - local tries = 0 - - while not createdVehicle or createdVehicle == 0 or not GetEntityCoords(createdVehicle) do - Wait(200) - tries = tries + 1 - if tries > 20 then - return error(("Could not spawn vehicle - ^5%s^7!"):format(model)) - end + if not vehicleType then + if (promise) then + return promise:reject(("Tried to spawn invalid vehicle - ^5%s^7!"):format(model)) end - -- luacheck: ignore - SetEntityOrphanMode(createdVehicle, 2) - local networkId = NetworkGetNetworkIdFromEntity(createdVehicle) - Entity(createdVehicle).state:set("VehicleProperties", vehicleProperties, true) - cb(networkId) - else error(("Tried to spawn invalid vehicle - ^5%s^7!"):format(model)) end + + local createdVehicle = CreateVehicleServerSetter(vehicleModel, vehicleType, coords.x, coords.y, coords.z, heading) + local tries = 0 + + while not createdVehicle or createdVehicle == 0 or not GetEntityCoords(createdVehicle) do + Wait(200) + tries = tries + 1 + if tries > 20 then + if promise then + return promise:reject(("Could not spawn vehicle - ^5%s^7!"):format(model)) + end + error(("Could not spawn vehicle - ^5%s^7!"):format(model)) + end + end + + -- luacheck: ignore + SetEntityOrphanMode(createdVehicle, 2) + local networkId = NetworkGetNetworkIdFromEntity(createdVehicle) + Entity(createdVehicle).state:set("VehicleProperties", vehicleProperties, true) + if promise then + return promise:resolve(networkId) + elseif cb then + return cb(networkId) + end end) end) + + if promise then + return Citizen.Await(promise) + end end ---@param model number|string From 16e208c7ee93ab9fbcdfec01894715192007f93a Mon Sep 17 00:00:00 2001 From: Kenshin13 <63159154+Kenshiin13@users.noreply.github.com> Date: Sat, 14 Dec 2024 21:14:42 +0100 Subject: [PATCH 124/138] feat(es_extended/client/functions): add promise support for ESX.Game.SpawnVehicle --- [core]/es_extended/client/functions.lua | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/[core]/es_extended/client/functions.lua b/[core]/es_extended/client/functions.lua index 8c35eae6..f4bce9db 100644 --- a/[core]/es_extended/client/functions.lua +++ b/[core]/es_extended/client/functions.lua @@ -549,6 +549,7 @@ function ESX.Game.SpawnVehicle(vehicleModel, coords, heading, cb, networked) return error(("Resource ^5%s^1 Tried to spawn vehicle on the client but the position is too far away (Out of onesync range)."):format(executingResource)) end + local promise = not cb and promise.new() CreateThread(function() ESX.Streaming.RequestModel(model) @@ -569,10 +570,16 @@ function ESX.Game.SpawnVehicle(vehicleModel, coords, heading, cb, networked) Wait(0) end - if cb then + if promise then + promise:resolve(vehicle) + elseif cb then cb(vehicle) end end) + + if promise then + return Citizen.Await(promise) + end end ---@param vehicle integer The vehicle to spawn From 627d48a0e3b8566587c18eb36fe8f7e6d91c6ffb Mon Sep 17 00:00:00 2001 From: Kenshin13 <63159154+Kenshiin13@users.noreply.github.com> Date: Sat, 14 Dec 2024 21:15:27 +0100 Subject: [PATCH 125/138] fix(es_extended/client/functions): reject on invalid vehicle model --- [core]/es_extended/client/functions.lua | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/[core]/es_extended/client/functions.lua b/[core]/es_extended/client/functions.lua index f4bce9db..03b7f1be 100644 --- a/[core]/es_extended/client/functions.lua +++ b/[core]/es_extended/client/functions.lua @@ -551,7 +551,13 @@ function ESX.Game.SpawnVehicle(vehicleModel, coords, heading, cb, networked) local promise = not cb and promise.new() CreateThread(function() - ESX.Streaming.RequestModel(model) + local modelHash = ESX.Streaming.RequestModel(model) + if not modelHash then + if promise then + return promise:reject(("Tried to spawn invalid vehicle - ^5%s^7!"):format(model)) + end + error(("Tried to spawn invalid vehicle - ^5%s^7!"):format(model)) + end local vehicle = CreateVehicle(model, vector.x, vector.y, vector.z, heading, isNetworked, true) From 792543ba390c97060ea840e4e60713b13ee30827 Mon Sep 17 00:00:00 2001 From: Kenshin13 <63159154+Kenshiin13@users.noreply.github.com> Date: Sat, 14 Dec 2024 21:38:24 +0100 Subject: [PATCH 126/138] fix(es_extended/client/functions): add optional return type --- [core]/es_extended/client/functions.lua | 2 +- [core]/es_extended/server/modules/onesync.lua | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/[core]/es_extended/client/functions.lua b/[core]/es_extended/client/functions.lua index 03b7f1be..5959ccac 100644 --- a/[core]/es_extended/client/functions.lua +++ b/[core]/es_extended/client/functions.lua @@ -532,7 +532,7 @@ end ---@param heading number The heading of the vehicle ---@param cb? function The callback function ---@param networked? boolean Whether the vehicle should be networked ----@return nil +---@return number? vehicle function ESX.Game.SpawnVehicle(vehicleModel, coords, heading, cb, networked) local model = type(vehicleModel) == "number" and vehicleModel or joaat(vehicleModel) local vector = type(coords) == "vector3" and coords or vec(coords.x, coords.y, coords.z) diff --git a/[core]/es_extended/server/modules/onesync.lua b/[core]/es_extended/server/modules/onesync.lua index a20cd16c..67111602 100644 --- a/[core]/es_extended/server/modules/onesync.lua +++ b/[core]/es_extended/server/modules/onesync.lua @@ -83,7 +83,7 @@ end ---@param heading number ---@param properties table ---@param cb? fun(netId: number) ----@return number|nil netId +---@return number? netId function ESX.OneSync.SpawnVehicle(model, coords, heading, properties, cb) if cb and not ESX.IsFunctionReference(cb) then error("Invalid callback function") From 1d9f52802bd700be2cb1492fe22adeca91e1a712 Mon Sep 17 00:00:00 2001 From: Kenshin13 <63159154+Kenshiin13@users.noreply.github.com> Date: Sat, 14 Dec 2024 21:42:07 +0100 Subject: [PATCH 127/138] refactor(es_extended/client/functions): validate cb fun --- [core]/es_extended/client/functions.lua | 6 +++++- [core]/es_extended/server/modules/onesync.lua | 4 ++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/[core]/es_extended/client/functions.lua b/[core]/es_extended/client/functions.lua index 5959ccac..8a577e7e 100644 --- a/[core]/es_extended/client/functions.lua +++ b/[core]/es_extended/client/functions.lua @@ -530,10 +530,14 @@ end ---@param vehicleModel integer | string The vehicle to spawn ---@param coords table | vector3 The coords to spawn the vehicle at ---@param heading number The heading of the vehicle ----@param cb? function The callback function +---@param cb? fun(vehicle: number) The callback function ---@param networked? boolean Whether the vehicle should be networked ---@return number? vehicle function ESX.Game.SpawnVehicle(vehicleModel, coords, heading, cb, networked) + if cb and not ESX.IsFunctionReference(cb) then + error("Invalid callback function") + end + local model = type(vehicleModel) == "number" and vehicleModel or joaat(vehicleModel) local vector = type(coords) == "vector3" and coords or vec(coords.x, coords.y, coords.z) local isNetworked = networked == nil or networked diff --git a/[core]/es_extended/server/modules/onesync.lua b/[core]/es_extended/server/modules/onesync.lua index 67111602..cb914a17 100644 --- a/[core]/es_extended/server/modules/onesync.lua +++ b/[core]/es_extended/server/modules/onesync.lua @@ -123,9 +123,9 @@ function ESX.OneSync.SpawnVehicle(model, coords, heading, properties, cb) local networkId = NetworkGetNetworkIdFromEntity(createdVehicle) Entity(createdVehicle).state:set("VehicleProperties", vehicleProperties, true) if promise then - return promise:resolve(networkId) + promise:resolve(networkId) elseif cb then - return cb(networkId) + cb(networkId) end end) end) From 276fc69449f4d4a12816147ffaf51492e97c073c Mon Sep 17 00:00:00 2001 From: zykem#0643 <86602828+Zykem@users.noreply.github.com> Date: Sun, 15 Dec 2024 10:11:01 +0100 Subject: [PATCH 128/138] Add ESX.Await function --- [core]/es_extended/shared/functions.lua | 39 +++++++++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/[core]/es_extended/shared/functions.lua b/[core]/es_extended/shared/functions.lua index 1a5d0090..293d73c9 100644 --- a/[core]/es_extended/shared/functions.lua +++ b/[core]/es_extended/shared/functions.lua @@ -170,4 +170,43 @@ function ESX.IsFunctionReference(val) local typeVal = type(val) return typeVal == "function" or (typeVal == "table" and type(getmetatable(val)?.__call) == "function") +end + +---@param conditionFunc function A function that returns a boolean indicating whether the condition is met. +---@param timeout number The maximum time (in milliseconds) to wait for the condition to be met. +---@param errorMessage? string The error message to print if the condition is not met within the timeout period. +---@return boolean: Returns true if the condition is met within the timeout, otherwise returns `false`. +---@return number: The time (in milliseconds) it took to meet the condition, or the timeout time if not met. +ESX.Await = function(conditionFunc, timeout, errorMessage) + timeout = timeout or 1000 + + if timeout < 0 then + error('Timeout should be a positive number.') + end + + local startTime = GetGameTimer() + local prefix = ('[%s] -> '):format(GetInvokingResource()) + + while GetGameTimer() - startTime < timeout do + local success, result = pcall(conditionFunc) + + if not success then + print(prefix .. 'Error while calling conditionFunc! Result: ' .. result) + local elapsedTime = GetGameTimer() - startTime + return false, elapsedTime + end + + if result then + local elapsedTime = GetGameTimer() - startTime + return true, elapsedTime + end + + Wait(10) + end + + if errorMessage then + print(prefix .. errorMessage) + end + + return false, timeout end \ No newline at end of file From 8568e628d55c9ee37f776cb347f5fe0aeb093b97 Mon Sep 17 00:00:00 2001 From: zykem#0643 <86602828+Zykem@users.noreply.github.com> Date: Sun, 15 Dec 2024 11:39:19 +0100 Subject: [PATCH 129/138] Fix EnterVehicle wrong variable name assign --- [core]/es_extended/client/modules/actions.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/[core]/es_extended/client/modules/actions.lua b/[core]/es_extended/client/modules/actions.lua index 750d3bea..190e9472 100644 --- a/[core]/es_extended/client/modules/actions.lua +++ b/[core]/es_extended/client/modules/actions.lua @@ -65,7 +65,7 @@ function Actions:EnterVehicle() local _, netId, plate = self:GetVehicleData() - self.isEnteringVehicle = true + self.enteringVehicle = true TriggerEvent("esx:enteringVehicle", self.vehicle, plate, self.seat, netId) TriggerServerEvent("esx:enteringVehicle", plate, self.seat, netId) From c32c41d718d62836cea6ee29e86e61ee2dfa1cf4 Mon Sep 17 00:00:00 2001 From: zykem#0643 <86602828+Zykem@users.noreply.github.com> Date: Sun, 15 Dec 2024 14:26:57 +0100 Subject: [PATCH 130/138] Addressed PR feedback from Kenshiin13 --- [core]/es_extended/shared/functions.lua | 23 ++++++++++++++++------- 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/[core]/es_extended/shared/functions.lua b/[core]/es_extended/shared/functions.lua index 293d73c9..e6411222 100644 --- a/[core]/es_extended/shared/functions.lua +++ b/[core]/es_extended/shared/functions.lua @@ -173,17 +173,22 @@ function ESX.IsFunctionReference(val) end ---@param conditionFunc function A function that returns a boolean indicating whether the condition is met. ----@param timeout number The maximum time (in milliseconds) to wait for the condition to be met. ---@param errorMessage? string The error message to print if the condition is not met within the timeout period. ----@return boolean: Returns true if the condition is met within the timeout, otherwise returns `false`. ----@return number: The time (in milliseconds) it took to meet the condition, or the timeout time if not met. -ESX.Await = function(conditionFunc, timeout, errorMessage) +---@param timeout? number The maximum time (in milliseconds) to wait for the condition to be met. +---@return boolean, number: Returns success status and the time taken +ESX.Await = function(conditionFunc, errorMessage, timeout) timeout = timeout or 1000 if timeout < 0 then error('Timeout should be a positive number.') end + local isFunctionReference = ESX.IsFunctionReference(conditionFunc) + + if not isFunctionReference then + error('Condition Function should be a function reference.') + end + local startTime = GetGameTimer() local prefix = ('[%s] -> '):format(GetInvokingResource()) @@ -191,7 +196,8 @@ ESX.Await = function(conditionFunc, timeout, errorMessage) local success, result = pcall(conditionFunc) if not success then - print(prefix .. 'Error while calling conditionFunc! Result: ' .. result) + local conditionErrorMessage = ('%s Error while calling conditionFunc! Result: %s'):format(prefix, result) + print(conditionErrorMessage) local elapsedTime = GetGameTimer() - startTime return false, elapsedTime end @@ -201,11 +207,14 @@ ESX.Await = function(conditionFunc, timeout, errorMessage) return true, elapsedTime end - Wait(10) + Wait(0) end if errorMessage then - print(prefix .. errorMessage) + ESX.AssertType(errorMessage, 'string', 'errorMessage should be a string.') + + local formattedErrorMessage = ('%s %s'):format(prefix, errorMessage) + print(formattedErrorMessage) end return false, timeout From b6e82bd93da1ceece4c70504215d87995a090283 Mon Sep 17 00:00:00 2001 From: zykem#0643 <86602828+Zykem@users.noreply.github.com> Date: Sun, 15 Dec 2024 15:31:40 +0100 Subject: [PATCH 131/138] Addressing requested changes: pcall replace, errorMessage validation before loop, throwing actual error as formattedErrorMessage --- [core]/es_extended/shared/functions.lua | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/[core]/es_extended/shared/functions.lua b/[core]/es_extended/shared/functions.lua index e6411222..4b8b4f2d 100644 --- a/[core]/es_extended/shared/functions.lua +++ b/[core]/es_extended/shared/functions.lua @@ -189,18 +189,16 @@ ESX.Await = function(conditionFunc, errorMessage, timeout) error('Condition Function should be a function reference.') end + -- since errorMessage is optional, we only validate it if the user provided it. + if errorMessage then + ESX.AssertType(errorMessage, 'string', 'errorMessage should be a string.') + end + local startTime = GetGameTimer() local prefix = ('[%s] -> '):format(GetInvokingResource()) while GetGameTimer() - startTime < timeout do - local success, result = pcall(conditionFunc) - - if not success then - local conditionErrorMessage = ('%s Error while calling conditionFunc! Result: %s'):format(prefix, result) - print(conditionErrorMessage) - local elapsedTime = GetGameTimer() - startTime - return false, elapsedTime - end + local result = conditionFunc() if result then local elapsedTime = GetGameTimer() - startTime @@ -211,10 +209,8 @@ ESX.Await = function(conditionFunc, errorMessage, timeout) end if errorMessage then - ESX.AssertType(errorMessage, 'string', 'errorMessage should be a string.') - local formattedErrorMessage = ('%s %s'):format(prefix, errorMessage) - print(formattedErrorMessage) + error(formattedErrorMessage) end return false, timeout From 9336cfdc69da223d311c4a3bcbe41c25d70d1bb3 Mon Sep 17 00:00:00 2001 From: Kenshin13 <63159154+Kenshiin13@users.noreply.github.com> Date: Sun, 15 Dec 2024 17:51:12 +0100 Subject: [PATCH 132/138] fix(es_extended/shared/functions): return result of conditionFunc & refactored code --- [core]/es_extended/shared/functions.lua | 42 +++++++++++-------------- 1 file changed, 18 insertions(+), 24 deletions(-) diff --git a/[core]/es_extended/shared/functions.lua b/[core]/es_extended/shared/functions.lua index 4b8b4f2d..52e3030a 100644 --- a/[core]/es_extended/shared/functions.lua +++ b/[core]/es_extended/shared/functions.lua @@ -172,46 +172,40 @@ function ESX.IsFunctionReference(val) return typeVal == "function" or (typeVal == "table" and type(getmetatable(val)?.__call) == "function") end ----@param conditionFunc function A function that returns a boolean indicating whether the condition is met. ----@param errorMessage? string The error message to print if the condition is not met within the timeout period. ----@param timeout? number The maximum time (in milliseconds) to wait for the condition to be met. ----@return boolean, number: Returns success status and the time taken -ESX.Await = function(conditionFunc, errorMessage, timeout) - timeout = timeout or 1000 - - if timeout < 0 then - error('Timeout should be a positive number.') +---@param conditionFunc function A function that is repeatedly called until it returns a truthy value or the timeout is exceeded. +---@param errorMessage? string Optional. If set, an error will be thrown with this message if the condition is not met within the timeout. If not set, no error will be thrown. +---@param timeoutMs? number Optional. The maximum time to wait (in milliseconds) for the condition to be met. Defaults to 1000ms. +---@return boolean, any: Returns success status and the returned value of the condition function. +function ESX.Await(conditionFunc, errorMessage, timeoutMs) + timeoutMs = timeoutMs or 1000 + + if timeoutMs < 0 then + error("Timeout should be a positive number.") end - local isFunctionReference = ESX.IsFunctionReference(conditionFunc) - - if not isFunctionReference then - error('Condition Function should be a function reference.') + if not ESX.IsFunctionReference(conditionFunc) then + error("Condition Function should be a function reference.") end -- since errorMessage is optional, we only validate it if the user provided it. if errorMessage then - ESX.AssertType(errorMessage, 'string', 'errorMessage should be a string.') + ESX.AssertType(errorMessage, "string", "errorMessage should be a string.") end - local startTime = GetGameTimer() - local prefix = ('[%s] -> '):format(GetInvokingResource()) - - while GetGameTimer() - startTime < timeout do + local startTimeMs = GetGameTimer() + while GetGameTimer() - startTimeMs < timeoutMs do local result = conditionFunc() if result then - local elapsedTime = GetGameTimer() - startTime - return true, elapsedTime + return true, result end Wait(0) end if errorMessage then - local formattedErrorMessage = ('%s %s'):format(prefix, errorMessage) - error(formattedErrorMessage) + error(("[%s] -> %s"):format(GetInvokingResource(), errorMessage)) end - return false, timeout -end \ No newline at end of file + return false +end From db68fceccc69f69866e4b316837d1b80e24c15b6 Mon Sep 17 00:00:00 2001 From: Kenshin13 <63159154+Kenshiin13@users.noreply.github.com> Date: Sun, 15 Dec 2024 17:56:12 +0100 Subject: [PATCH 133/138] fix(es_extended/shared/functions): invokingResource not being displayed --- [core]/es_extended/shared/functions.lua | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/[core]/es_extended/shared/functions.lua b/[core]/es_extended/shared/functions.lua index 52e3030a..184def1b 100644 --- a/[core]/es_extended/shared/functions.lua +++ b/[core]/es_extended/shared/functions.lua @@ -192,6 +192,7 @@ function ESX.Await(conditionFunc, errorMessage, timeoutMs) ESX.AssertType(errorMessage, "string", "errorMessage should be a string.") end + local invokingResource = GetInvokingResource() local startTimeMs = GetGameTimer() while GetGameTimer() - startTimeMs < timeoutMs do local result = conditionFunc() @@ -204,7 +205,7 @@ function ESX.Await(conditionFunc, errorMessage, timeoutMs) end if errorMessage then - error(("[%s] -> %s"):format(GetInvokingResource(), errorMessage)) + error(("[%s] -> %s"):format(invokingResource, errorMessage)) end return false From 29fbab3d46653b127a935969dad487ebf73e99c0 Mon Sep 17 00:00:00 2001 From: Kasey FItton Date: Sun, 15 Dec 2024 21:39:12 +0000 Subject: [PATCH 134/138] feat(es_extended/shared): add ox inventory detection back --- [core]/es_extended/shared/config/main.lua | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/[core]/es_extended/shared/config/main.lua b/[core]/es_extended/shared/config/main.lua index 7db1e472..c87a9339 100644 --- a/[core]/es_extended/shared/config/main.lua +++ b/[core]/es_extended/shared/config/main.lua @@ -51,9 +51,13 @@ Config.DistanceGive = 4.0 -- Max distance when giving items, weapons etc. Config.AdminLogging = false -- Logs the usage of certain commands by those with group.admin ace permissions (default is false) --------------------------------------------------------------------- --- DO NOT CHANGE BELOW THIS LINE UNLESS YOU KNOW WHAT YOU ARE DOING --------------------------------------------------------------------- +------------------------------------- +-- DO NOT CHANGE BELOW THIS LINE !!! +------------------------------------- +if GetResourceState("ox_inventory") ~= "missing" then + Config.CustomInventory = "ox" +end + Config.EnableDefaultInventory = Config.CustomInventory == false -- Display the default Inventory ( F2 ) local txAdminLocale = GetConvar("txAdmin-locale", "en") From 11a26dc7af6c1614e10a01d13a4c5858f1fd2492 Mon Sep 17 00:00:00 2001 From: Kasey FItton Date: Sun, 15 Dec 2024 21:40:33 +0000 Subject: [PATCH 135/138] tweak(es_extended/shared/config/main): adjust comment --- [core]/es_extended/shared/config/main.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/[core]/es_extended/shared/config/main.lua b/[core]/es_extended/shared/config/main.lua index c87a9339..f769f758 100644 --- a/[core]/es_extended/shared/config/main.lua +++ b/[core]/es_extended/shared/config/main.lua @@ -1,6 +1,6 @@ Config = {} --- for ox inventory, use Config.CustomInventory = "ox", for others, set to "resource_name" +-- for ox inventory, this will automatically be adjusted, do not change! for other inventories, change to "resource_name" Config.CustomInventory = false Config.Accounts = { From ab19608dc245397d0052c2b2eda5b5644884ab74 Mon Sep 17 00:00:00 2001 From: Kasey FItton Date: Sun, 15 Dec 2024 23:31:00 +0000 Subject: [PATCH 136/138] chore(es_extended/server): remove actions.lua --- [core]/es_extended/server/modules/actions.lua | 28 ------------------- 1 file changed, 28 deletions(-) delete mode 100644 [core]/es_extended/server/modules/actions.lua diff --git a/[core]/es_extended/server/modules/actions.lua b/[core]/es_extended/server/modules/actions.lua deleted file mode 100644 index e7c91e6a..00000000 --- a/[core]/es_extended/server/modules/actions.lua +++ /dev/null @@ -1,28 +0,0 @@ -RegisterNetEvent("esx:playerPedChanged") -RegisterNetEvent("esx:playerJumping") -RegisterNetEvent("esx:enteringVehicle") -RegisterNetEvent("esx:enteringVehicleAborted") -RegisterNetEvent("esx:enteredVehicle") -RegisterNetEvent("esx:exitedVehicle") - -if Config.EnableDebug then - AddEventHandler("esx:playerPedChanged", function(netId) - print("esx:playerPedChanged", source, netId) - end) - - AddEventHandler("esx:enteringVehicle", function(plate, seat, netId) - print("esx:enteringVehicle", "source", source, "plate", plate, "seat", seat, "netId", netId) - end) - - AddEventHandler("esx:enteringVehicleAborted", function() - print("esx:enteringVehicleAborted", source) - end) - - AddEventHandler("esx:enteredVehicle", function(plate, seat, displayName, netId) - print("esx:enteredVehicle", "source", source, "plate", plate, "seat", seat, "displayName", displayName, "netId", netId) - end) - - AddEventHandler("esx:exitedVehicle", function(plate, seat, displayName, netId) - print("esx:exitedVehicle", "source", source, "plate", plate, "seat", seat, "displayName", displayName, "netId", netId) - end) -end From 4c8f577d8136ebef89d5c6d99d303e32387f5a10 Mon Sep 17 00:00:00 2001 From: Kasey FItton Date: Sun, 15 Dec 2024 23:32:13 +0000 Subject: [PATCH 137/138] tweak(es_extended/fxmanifest): remove actions.lua --- [core]/es_extended/fxmanifest.lua | 1 - 1 file changed, 1 deletion(-) diff --git a/[core]/es_extended/fxmanifest.lua b/[core]/es_extended/fxmanifest.lua index 848289bf..9fe19a96 100644 --- a/[core]/es_extended/fxmanifest.lua +++ b/[core]/es_extended/fxmanifest.lua @@ -34,7 +34,6 @@ server_scripts { 'server/modules/commands.lua', 'server/bridge/**/*.lua', - 'server/modules/actions.lua', 'server/modules/npwd.lua', 'server/modules/createJob.lua' } From 023dfa509b1b461f91a2ba963f73cb997bb59d5a Mon Sep 17 00:00:00 2001 From: Kasey FItton Date: Sun, 15 Dec 2024 23:53:43 +0000 Subject: [PATCH 138/138] feat(es_extended/client/actions): add debug prints --- [core]/es_extended/client/modules/actions.lua | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) diff --git a/[core]/es_extended/client/modules/actions.lua b/[core]/es_extended/client/modules/actions.lua index 002cf0c9..0ff99ff9 100644 --- a/[core]/es_extended/client/modules/actions.lua +++ b/[core]/es_extended/client/modules/actions.lua @@ -49,6 +49,10 @@ function Actions:TrackPed() ESX.SetPlayerData("ped", newPed) TriggerEvent("esx:playerPedChanged", newPed) + + if Config.EnableDebug then + print("[DEBUG] Player ped changed:", newPed) + end end end @@ -58,6 +62,10 @@ function Actions:TrackPauseMenu() if isActive ~= self.inPauseMenu then self.inPauseMenu = isActive TriggerEvent("esx:pauseMenuActive", isActive) + + if Config.EnableDebug then + print("[DEBUG] Pause menu active:", isActive) + end end end @@ -71,6 +79,10 @@ function Actions:EnterVehicle() TriggerServerEvent("esx:enteringVehicle", plate, self.seat, netId) self:SetVehicleStatus() + + if Config.EnableDebug then + print("[DEBUG] Entering vehicle:", self.vehicle, plate, self.seat, netId) + end end function Actions:ResetVehicleData() @@ -87,6 +99,10 @@ function Actions:EnterAborted() TriggerEvent("esx:enteringVehicleAborted") TriggerServerEvent("esx:enteringVehicleAborted") + + if Config.EnableDebug then + print("[DEBUG] Entering vehicle aborted") + end end function Actions:WarpEnter() @@ -100,6 +116,10 @@ function Actions:WarpEnter() self:SetVehicleStatus() TriggerEvent("esx:enteredVehicle", self.vehicle, plate, self.seat, displayName, netId) TriggerServerEvent("esx:enteredVehicle", plate, self.seat, displayName, netId) + + if Config.EnableDebug then + print("[DEBUG] Entered vehicle:", self.vehicle, plate, self.seat, displayName, netId) + end end function Actions:ExitVehicle() @@ -111,6 +131,10 @@ function Actions:ExitVehicle() TriggerEvent("esx:exitedVehicle", self.vehicle, plate, self.seat, displayName, netId) TriggerServerEvent("esx:exitedVehicle", plate, self.seat, displayName, netId) + if Config.EnableDebug then + print("[DEBUG] Exited vehicle:", self.vehicle, plate, self.seat, displayName, netId) + end + self:ResetVehicleData() end end @@ -144,6 +168,10 @@ function Actions:TrackSeat() self.seat = newSeat ESX.SetPlayerData("seat", self.seat) TriggerEvent("esx:vehicleSeatChanged", self.seat) + + if Config.EnableDebug then + print("[DEBUG] Vehicle seat changed:", self.seat) + end end end @@ -156,6 +184,10 @@ function Actions:TrackWeapon() self.currentWeapon = newWeapon ESX.SetPlayerData("weapon", self.currentWeapon) TriggerEvent("esx:weaponChanged", self.currentWeapon) + + if Config.EnableDebug then + print("[DEBUG] Weapon changed:", self.currentWeapon) + end end end