zigbee2mqtt-windfront 1.5.1 → 1.5.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/assets/{About-CjM5WomG.js → About-guM5jIIL.js} +1 -1
- package/dist/assets/About-guM5jIIL.js.br +0 -0
- package/dist/assets/{Availability-BiumPUeO.js → Availability-9y0Errm-.js} +1 -1
- package/dist/assets/Availability-9y0Errm-.js.br +0 -0
- package/dist/assets/{Bind-DjOXtTM6.js → Bind-Dzsbdj9O.js} +1 -1
- package/dist/assets/Bind-Dzsbdj9O.js.br +0 -0
- package/dist/assets/Bridge-DhOd4BAF.js +1 -0
- package/dist/assets/Bridge-DhOd4BAF.js.br +0 -0
- package/dist/assets/{CheckboxField-De0QHbsG.js → CheckboxField-DnsgrtmM.js} +1 -1
- package/dist/assets/CheckboxField-DnsgrtmM.js.br +1 -0
- package/dist/assets/{ClusterSinglePicker-Di8d-bx5.js → ClusterSinglePicker-DlPNbPK2.js} +1 -1
- package/dist/assets/ClusterSinglePicker-DlPNbPK2.js.br +0 -0
- package/dist/assets/{Clusters-EXal5imX.js → Clusters-CJHqlXOr.js} +1 -1
- package/dist/assets/Clusters-CJHqlXOr.js.br +0 -0
- package/dist/assets/{Dashboard-DNnODdKY.js → Dashboard-DrykpWoV.js} +1 -1
- package/dist/assets/Dashboard-DrykpWoV.js.br +0 -0
- package/dist/assets/{DashboardFeatureWrapper-TlB_F76s.js → DashboardFeatureWrapper-BV-EJkYu.js} +1 -1
- package/dist/assets/DashboardFeatureWrapper-BV-EJkYu.js.br +0 -0
- package/dist/assets/{DebouncedInput-C8tkXJ7U.js → DebouncedInput-BbusN73N.js} +1 -1
- package/dist/assets/DebouncedInput-BbusN73N.js.br +0 -0
- package/dist/assets/{DevConsole-BCcxO2rX.js → DevConsole-CdaQK61e.js} +1 -1
- package/dist/assets/DevConsole-CdaQK61e.js.br +0 -0
- package/dist/assets/{DevConsole-YqbpD45I.js → DevConsole-QAj8WJrx.js} +1 -1
- package/dist/assets/DevConsole-QAj8WJrx.js.br +0 -0
- package/dist/assets/{DeviceCard-C9vw9b6F.js → DeviceCard-BibgHF2R.js} +1 -1
- package/dist/assets/DeviceCard-BibgHF2R.js.br +0 -0
- package/dist/assets/{DeviceControlEditName-BObC136U.js → DeviceControlEditName-CW6kAJai.js} +1 -1
- package/dist/assets/DeviceControlEditName-CW6kAJai.js.br +0 -0
- package/dist/assets/{DeviceImage-DshByPQQ.js → DeviceImage-XiUg0NFS.js} +1 -1
- package/dist/assets/DeviceImage-XiUg0NFS.js.br +0 -0
- package/dist/assets/{DeviceInfo-V522QLe7.js → DeviceInfo-DfhI34CI.js} +1 -1
- package/dist/assets/DeviceInfo-DfhI34CI.js.br +0 -0
- package/dist/assets/{DevicePage-BGbRRkF3.js → DevicePage-konyOtA_.js} +2 -2
- package/dist/assets/DevicePage-konyOtA_.js.br +0 -0
- package/dist/assets/{DevicePicker-DUSP1774.js → DevicePicker-BPQGOPp-.js} +1 -1
- package/dist/assets/DevicePicker-BPQGOPp-.js.br +0 -0
- package/dist/assets/{DeviceSettings-BPsmP0OM.js → DeviceSettings-DXxqeQBJ.js} +1 -1
- package/dist/assets/DeviceSettings-DXxqeQBJ.js.br +0 -0
- package/dist/assets/{DeviceSpecificSettings-eDupl8hE.js → DeviceSpecificSettings-BThCFadV.js} +1 -1
- package/dist/assets/DeviceSpecificSettings-BThCFadV.js.br +0 -0
- package/dist/assets/{Devices-TK6OH5en.js → Devices-CpkAlK0U.js} +1 -1
- package/dist/assets/Devices-CpkAlK0U.js.br +0 -0
- package/dist/assets/{DevicesPage-DCVj8eRe.js → DevicesPage-B5NXgkRE.js} +1 -1
- package/dist/assets/DevicesPage-B5NXgkRE.js.br +0 -0
- package/dist/assets/{DisplayValue-CfKoGI0j.js → DisplayValue-DKwqD83w.js} +1 -1
- package/dist/assets/DisplayValue-DKwqD83w.js.br +0 -0
- package/dist/assets/{Donate-B_P_Qsjc.js → Donate-nv8pXVg4.js} +1 -1
- package/dist/assets/Donate-nv8pXVg4.js.br +0 -0
- package/dist/assets/{EndpointPicker-CKjImsmQ.js → EndpointPicker-wR5nrVyy.js} +1 -1
- package/dist/assets/EndpointPicker-wR5nrVyy.js.br +0 -0
- package/dist/assets/{Exposes-CY4p-R2G.js → Exposes-Cndo2Hi0.js} +1 -1
- package/dist/assets/Exposes-Cndo2Hi0.js.br +0 -0
- package/dist/assets/{Feature-DKsa0Oda.js → Feature-DRiBEd30.js} +1 -1
- package/dist/assets/Feature-DRiBEd30.js.br +0 -0
- package/dist/assets/{Frontend-V9wqeWFl.js → Frontend-HvSxr47P.js} +1 -1
- package/dist/assets/Frontend-HvSxr47P.js.br +0 -0
- package/dist/assets/{GroupPage-NDEFGCAo.js → GroupPage-CB6GFdZU.js} +2 -2
- package/dist/assets/GroupPage-CB6GFdZU.js.br +0 -0
- package/dist/assets/{GroupSettings-C9hZwz-c.js → GroupSettings-CFgdJ-vx.js} +1 -1
- package/dist/assets/GroupSettings-CFgdJ-vx.js.br +0 -0
- package/dist/assets/{Groups-BBXSMxiv.js → Groups-PKw32Dqb.js} +1 -1
- package/dist/assets/Groups-PKw32Dqb.js.br +0 -0
- package/dist/assets/{GroupsPage-Bjp4L8m8.js → GroupsPage-BM9MSx3r.js} +1 -1
- package/dist/assets/GroupsPage-BM9MSx3r.js.br +0 -0
- package/dist/assets/{Health-DaYm6W6j.js → Health-BTbkKEto.js} +1 -1
- package/dist/assets/Health-BTbkKEto.js.br +0 -0
- package/dist/assets/{HomePage-_eUNylSo.js → HomePage-DAV81oPD.js} +1 -1
- package/dist/assets/HomePage-DAV81oPD.js.br +0 -0
- package/dist/assets/{InputField-D4dIbfoE.js → InputField-D8fYIAZ2.js} +1 -1
- package/dist/assets/InputField-D8fYIAZ2.js.br +0 -0
- package/dist/assets/{Json-CL1gHmYN.js → Json-C6OVoNML.js} +1 -1
- package/dist/assets/Json-C6OVoNML.js.br +0 -0
- package/dist/assets/{LastSeen-CUs1Vb2e.js → LastSeen-kmLjgf_4.js} +1 -1
- package/dist/assets/LastSeen-kmLjgf_4.js.br +0 -0
- package/dist/assets/{LogsPage-Rn9K7jry.js → LogsPage-Dv7tRxMp.js} +1 -1
- package/dist/assets/LogsPage-Dv7tRxMp.js.br +0 -0
- package/dist/assets/{Lqi-DXzNBOZd.js → Lqi-BZ7lW9bx.js} +1 -1
- package/dist/assets/Lqi-BZ7lW9bx.js.br +0 -0
- package/dist/assets/{NetworkPage-B-vdyAjg.js → NetworkPage-Ln79YwqY.js} +2 -2
- package/dist/assets/NetworkPage-Ln79YwqY.js.br +0 -0
- package/dist/assets/{NumberField-1g9cUedG.js → NumberField-iJErwbzA.js} +1 -1
- package/dist/assets/NumberField-iJErwbzA.js.br +0 -0
- package/dist/assets/{OtaPage-xoAmQlkN.js → OtaPage-D9JG90cZ.js} +1 -1
- package/dist/assets/OtaPage-D9JG90cZ.js.br +0 -0
- package/dist/assets/{PowerSource-DHbzVhTD.js → PowerSource-DgbKMgpx.js} +1 -1
- package/dist/assets/PowerSource-DgbKMgpx.js.br +0 -0
- package/dist/assets/{RawNetworkData-BA35YEdR.js → RawNetworkData-CxfFhrfx.js} +1 -1
- package/dist/assets/RawNetworkData-CxfFhrfx.js.br +0 -0
- package/dist/assets/RawNetworkMap-CSbVvyka.js +4256 -0
- package/dist/assets/RawNetworkMap-CSbVvyka.js.br +0 -0
- package/dist/assets/{RecallRemove-UfYYwosz.js → RecallRemove-ByrNeUbK.js} +1 -1
- package/dist/assets/RecallRemove-ByrNeUbK.js.br +0 -0
- package/dist/assets/{Reporting-D-T0p7pR.js → Reporting-BKKOgcmJ.js} +1 -1
- package/dist/assets/Reporting-BKKOgcmJ.js.br +0 -0
- package/dist/assets/Scene-org1InOA.js +1 -0
- package/dist/assets/Scene-org1InOA.js.br +0 -0
- package/dist/assets/{SelectField-BFSZ1jgU.js → SelectField-CwoktH0d.js} +1 -1
- package/dist/assets/SelectField-CwoktH0d.js.br +0 -0
- package/dist/assets/{Settings-8U06br4I.js → Settings-BcaEyteR.js} +1 -1
- package/dist/assets/Settings-BcaEyteR.js.br +0 -0
- package/dist/assets/{SettingsList-B5lRPdmf.js → SettingsList-C3vSq4jP.js} +1 -1
- package/dist/assets/SettingsList-C3vSq4jP.js.br +0 -0
- package/dist/assets/{SettingsPage-JGHlT8fi.js → SettingsPage-ChO0o-ok.js} +2 -2
- package/dist/assets/SettingsPage-ChO0o-ok.js.br +0 -0
- package/dist/assets/State-_uoH9Qaz.js +1 -0
- package/dist/assets/State-_uoH9Qaz.js.br +0 -0
- package/dist/assets/{Table-BvIilxHn.js → Table-D8Gdn1uG.js} +1 -1
- package/dist/assets/Table-D8Gdn1uG.js.br +0 -0
- package/dist/assets/{TextareaField-DgNWd4bB.js → TextareaField-Busy2yTR.js} +1 -1
- package/dist/assets/TextareaField-Busy2yTR.js.br +0 -0
- package/dist/assets/{Tools-BQw74JrP.js → Tools-B3Y0Qd8A.js} +1 -1
- package/dist/assets/Tools-B3Y0Qd8A.js.br +0 -0
- package/dist/assets/{TouchlinkPage-Dkq8XRUw.js → TouchlinkPage-Bg_tWjMg.js} +1 -1
- package/dist/assets/TouchlinkPage-Bg_tWjMg.js.br +0 -0
- package/dist/assets/{VendorLink-AmsYWJKL.js → VendorLink-KoryP9lw.js} +1 -1
- package/dist/assets/VendorLink-KoryP9lw.js.br +0 -0
- package/dist/assets/{_createCompounder-CDCf6N6Y.js → _createCompounder-Db7SjIIq.js} +1 -1
- package/dist/assets/_createCompounder-Db7SjIIq.js.br +0 -0
- package/dist/assets/{format-CFXT8pE2.js → format-CsVfcRLB.js} +1 -1
- package/dist/assets/format-CsVfcRLB.js.br +0 -0
- package/dist/assets/{index-iXNIEDco.js → index-B9KSRkAy.js} +3 -3
- package/dist/assets/index-B9KSRkAy.js.br +0 -0
- package/dist/assets/{index-Dncflq5A.js → index-DajxErfA.js} +1 -1
- package/dist/assets/index-DajxErfA.js.br +0 -0
- package/dist/assets/{jszip.min-D1cnnDNI.js → jszip.min-2t6j1PLa.js} +1 -1
- package/dist/assets/jszip.min-2t6j1PLa.js.br +0 -0
- package/dist/assets/snakeCase-BsE9z82R.js +1 -0
- package/dist/assets/snakeCase-BsE9z82R.js.br +0 -0
- package/dist/index.html +1 -1
- package/dist/index.html.br +0 -0
- package/package.json +2 -2
- package/dist/assets/About-CjM5WomG.js.br +0 -0
- package/dist/assets/Availability-BiumPUeO.js.br +0 -0
- package/dist/assets/Bind-DjOXtTM6.js.br +0 -0
- package/dist/assets/Bridge-D1gYoITl.js +0 -1
- package/dist/assets/Bridge-D1gYoITl.js.br +0 -0
- package/dist/assets/CheckboxField-De0QHbsG.js.br +0 -0
- package/dist/assets/ClusterSinglePicker-Di8d-bx5.js.br +0 -0
- package/dist/assets/Clusters-EXal5imX.js.br +0 -0
- package/dist/assets/Dashboard-DNnODdKY.js.br +0 -0
- package/dist/assets/DashboardFeatureWrapper-TlB_F76s.js.br +0 -0
- package/dist/assets/DebouncedInput-C8tkXJ7U.js.br +0 -0
- package/dist/assets/DevConsole-BCcxO2rX.js.br +0 -0
- package/dist/assets/DevConsole-YqbpD45I.js.br +0 -0
- package/dist/assets/DeviceCard-C9vw9b6F.js.br +0 -0
- package/dist/assets/DeviceControlEditName-BObC136U.js.br +0 -0
- package/dist/assets/DeviceImage-DshByPQQ.js.br +0 -0
- package/dist/assets/DeviceInfo-V522QLe7.js.br +0 -0
- package/dist/assets/DevicePage-BGbRRkF3.js.br +0 -0
- package/dist/assets/DevicePicker-DUSP1774.js.br +0 -0
- package/dist/assets/DeviceSettings-BPsmP0OM.js.br +0 -0
- package/dist/assets/DeviceSpecificSettings-eDupl8hE.js.br +0 -0
- package/dist/assets/Devices-TK6OH5en.js.br +0 -0
- package/dist/assets/DevicesPage-DCVj8eRe.js.br +0 -0
- package/dist/assets/DisplayValue-CfKoGI0j.js.br +0 -0
- package/dist/assets/Donate-B_P_Qsjc.js.br +0 -0
- package/dist/assets/EndpointPicker-CKjImsmQ.js.br +0 -0
- package/dist/assets/Exposes-CY4p-R2G.js.br +0 -3
- package/dist/assets/Feature-DKsa0Oda.js.br +0 -0
- package/dist/assets/Frontend-V9wqeWFl.js.br +0 -0
- package/dist/assets/GroupPage-NDEFGCAo.js.br +0 -0
- package/dist/assets/GroupSettings-C9hZwz-c.js.br +0 -0
- package/dist/assets/Groups-BBXSMxiv.js.br +0 -0
- package/dist/assets/GroupsPage-Bjp4L8m8.js.br +0 -0
- package/dist/assets/Health-DaYm6W6j.js.br +0 -0
- package/dist/assets/HomePage-_eUNylSo.js.br +0 -0
- package/dist/assets/InputField-D4dIbfoE.js.br +0 -0
- package/dist/assets/Json-CL1gHmYN.js.br +0 -0
- package/dist/assets/LastSeen-CUs1Vb2e.js.br +0 -0
- package/dist/assets/LogsPage-Rn9K7jry.js.br +0 -0
- package/dist/assets/Lqi-DXzNBOZd.js.br +0 -0
- package/dist/assets/NetworkPage-B-vdyAjg.js.br +0 -0
- package/dist/assets/NumberField-1g9cUedG.js.br +0 -0
- package/dist/assets/OtaPage-xoAmQlkN.js.br +0 -0
- package/dist/assets/PowerSource-DHbzVhTD.js.br +0 -0
- package/dist/assets/RawNetworkData-BA35YEdR.js.br +0 -0
- package/dist/assets/RawNetworkMap-IKJdBkYI.js +0 -4256
- package/dist/assets/RawNetworkMap-IKJdBkYI.js.br +0 -0
- package/dist/assets/RecallRemove-UfYYwosz.js.br +0 -0
- package/dist/assets/Reporting-D-T0p7pR.js.br +0 -0
- package/dist/assets/Scene-CBkAt36p.js +0 -1
- package/dist/assets/Scene-CBkAt36p.js.br +0 -0
- package/dist/assets/SelectField-BFSZ1jgU.js.br +0 -5
- package/dist/assets/Settings-8U06br4I.js.br +0 -0
- package/dist/assets/SettingsList-B5lRPdmf.js.br +0 -0
- package/dist/assets/SettingsPage-JGHlT8fi.js.br +0 -0
- package/dist/assets/State-qRhsFF8C.js +0 -1
- package/dist/assets/State-qRhsFF8C.js.br +0 -0
- package/dist/assets/Table-BvIilxHn.js.br +0 -0
- package/dist/assets/TextareaField-DgNWd4bB.js.br +0 -0
- package/dist/assets/Tools-BQw74JrP.js.br +0 -0
- package/dist/assets/TouchlinkPage-Dkq8XRUw.js.br +0 -0
- package/dist/assets/VendorLink-AmsYWJKL.js.br +0 -0
- package/dist/assets/_createCompounder-CDCf6N6Y.js.br +0 -0
- package/dist/assets/format-CFXT8pE2.js.br +0 -0
- package/dist/assets/index-Dncflq5A.js.br +0 -1
- package/dist/assets/index-iXNIEDco.js.br +0 -0
- package/dist/assets/jszip.min-D1cnnDNI.js.br +0 -0
- package/dist/assets/snakeCase-2EvkzqTo.js +0 -1
- package/dist/assets/snakeCase-2EvkzqTo.js.br +0 -0
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./HomePage-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./HomePage-DAV81oPD.js","./envs-DFlyG_dH.js","./DevicesPage-B5NXgkRE.js","./Availability-9y0Errm-.js","./DeviceControlEditName-CW6kAJai.js","./CheckboxField-DnsgrtmM.js","./InputField-D8fYIAZ2.js","./DeviceImage-XiUg0NFS.js","./index-DajxErfA.js","./Table-D8Gdn1uG.js","./DebouncedInput-BbusN73N.js","./LastSeen-kmLjgf_4.js","./format-CsVfcRLB.js","./Lqi-BZ7lW9bx.js","./DisplayValue-DKwqD83w.js","./VendorLink-KoryP9lw.js","./PowerSource-DgbKMgpx.js","./snakeCase-BsE9z82R.js","./_createCompounder-Db7SjIIq.js","./DevicePage-konyOtA_.js","./Dashboard-DrykpWoV.js","./DashboardFeatureWrapper-BV-EJkYu.js","./Feature-DRiBEd30.js","./DeviceCard-BibgHF2R.js","./NetworkPage-Ln79YwqY.js","./SelectField-CwoktH0d.js","./GroupsPage-BM9MSx3r.js","./GroupPage-CB6GFdZU.js","./OtaPage-D9JG90cZ.js","./TouchlinkPage-Bg_tWjMg.js","./LogsPage-Dv7tRxMp.js","./SettingsPage-ChO0o-ok.js"])))=>i.map(i=>d[i]);
|
|
2
2
|
import{Z as xE,a as CE}from"./envs-DFlyG_dH.js";(function(){const r=document.createElement("link").relList;if(r&&r.supports&&r.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))i(o);new MutationObserver(o=>{for(const u of o)if(u.type==="childList")for(const l of u.addedNodes)l.tagName==="LINK"&&l.rel==="modulepreload"&&i(l)}).observe(document,{childList:!0,subtree:!0});function a(o){const u={};return o.integrity&&(u.integrity=o.integrity),o.referrerPolicy&&(u.referrerPolicy=o.referrerPolicy),o.crossOrigin==="use-credentials"?u.credentials="include":o.crossOrigin==="anonymous"?u.credentials="omit":u.credentials="same-origin",u}function i(o){if(o.ep)return;o.ep=!0;const u=a(o);fetch(o.href,u)}})();var rn=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Hr(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var Ch={exports:{}},xu={};/**
|
|
3
3
|
* @license React
|
|
4
4
|
* react-jsx-runtime.production.js
|
|
@@ -634,11 +634,11 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
|
|
|
634
634
|
If it declares any Font Awesome CSS pseudo-elements, they will not be rendered as SVG icons. Add crossorigin="anonymous" to the <link>, enable searchPseudoElementsFullScan for slower but more thorough DOM parsing, or suppress this warning by setting searchPseudoElementsWarnings to false.`))}}}catch(E){o.e(E)}finally{o.f()}if(!i.size)return;var b=Array.from(i).join(", ");try{a=e.querySelectorAll(b)}catch{}}return new Promise(function(E,T){var S=Ns(a).filter(Dae).map(Lae),R=Pb.begin("searchPseudoElements");eB(),Promise.all(S).then(function(){R(),b4(),E()}).catch(function(){R(),b4(),T()})})}}var kae={hooks:function(){return{mutationObserverCallbacks:function(a){return a.pseudoElementsCallback=jD,a}}},provides:function(r){r.pseudoElements2svg=function(a){var i=a.node,o=i===void 0?Yr:i;Xe.searchPseudoElements&&jD(o)}}},kD=!1,zae={mixout:function(){return{dom:{unwatch:function(){eB(),kD=!0}}}},hooks:function(){return{bootstrap:function(){qD(h4("mutationObserverCallbacks",{}))},noAuto:function(){gae()},watch:function(a){var i=a.observeMutationsRoot;kD?b4():qD(h4("mutationObserverCallbacks",{observeMutationsRoot:i}))}}}},zD=function(r){var a={size:16,x:0,y:0,flipX:!1,flipY:!1,rotate:0};return r.toLowerCase().split(" ").reduce(function(i,o){var u=o.toLowerCase().split("-"),l=u[0],f=u.slice(1).join("-");if(l&&f==="h")return i.flipX=!0,i;if(l&&f==="v")return i.flipY=!0,i;if(f=parseFloat(f),isNaN(f))return i;switch(l){case"grow":i.size=i.size+f;break;case"shrink":i.size=i.size-f;break;case"left":i.x=i.x-f;break;case"right":i.x=i.x+f;break;case"up":i.y=i.y-f;break;case"down":i.y=i.y+f;break;case"rotate":i.rotate=i.rotate+f;break}return i},a)},Uae={mixout:function(){return{parse:{transform:function(a){return zD(a)}}}},hooks:function(){return{parseNodeAttributes:function(a,i){var o=i.getAttribute("data-fa-transform");return o&&(a.transform=zD(o)),a}}},provides:function(r){r.generateAbstractTransformGrouping=function(a){var i=a.main,o=a.transform,u=a.containerWidth,l=a.iconWidth,f={transform:"translate(".concat(u/2," 256)")},d="translate(".concat(o.x*32,", ").concat(o.y*32,") "),v="scale(".concat(o.size/16*(o.flipX?-1:1),", ").concat(o.size/16*(o.flipY?-1:1),") "),h="rotate(".concat(o.rotate," 0 0)"),p={transform:"".concat(d," ").concat(v," ").concat(h)},m={transform:"translate(".concat(l/2*-1," -256)")},y={outer:f,inner:p,path:m};return{tag:"g",attributes:Ie({},y.outer),children:[{tag:"g",attributes:Ie({},y.inner),children:[{tag:i.icon.tag,children:i.icon.children,attributes:Ie(Ie({},i.icon.attributes),y.path)}]}]}}}},ry={x:0,y:0,width:"100%",height:"100%"};function UD(e){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;return e.attributes&&(e.attributes.fill||r)&&(e.attributes.fill="black"),e}function Fae(e){return e.tag==="g"?e.children:[e]}var Bae={hooks:function(){return{parseNodeAttributes:function(a,i){var o=i.getAttribute("data-fa-mask"),u=o?fd(o.split(" ").map(function(l){return l.trim()})):KF();return u.prefix||(u.prefix=Si()),a.mask=u,a.maskId=i.getAttribute("data-fa-mask-id"),a}}},provides:function(r){r.generateAbstractMask=function(a){var i=a.children,o=a.attributes,u=a.main,l=a.mask,f=a.maskId,d=a.transform,v=u.width,h=u.icon,p=l.width,m=l.icon,y=Nte({transform:d,containerWidth:p,iconWidth:v}),b={tag:"rect",attributes:Ie(Ie({},ry),{},{fill:"white"})},E=h.children?{children:h.children.map(UD)}:{},T={tag:"g",attributes:Ie({},y.inner),children:[UD(Ie({tag:h.tag,attributes:Ie(Ie({},h.attributes),y.path)},E))]},S={tag:"g",attributes:Ie({},y.outer),children:[T]},R="mask-".concat(f||_D()),O="clip-".concat(f||_D()),w={tag:"mask",attributes:Ie(Ie({},ry),{},{id:R,maskUnits:"userSpaceOnUse",maskContentUnits:"userSpaceOnUse"}),children:[b,S]},A={tag:"defs",children:[{tag:"clipPath",attributes:{id:O},children:Fae(m)},w]};return i.push(A,{tag:"rect",attributes:Ie({fill:"currentColor","clip-path":"url(#".concat(O,")"),mask:"url(#".concat(R,")")},ry)}),{children:i,attributes:o}}}},Hae={provides:function(r){var a=!1;_i.matchMedia&&(a=_i.matchMedia("(prefers-reduced-motion: reduce)").matches),r.missingIconAbstract=function(){var i=[],o={fill:"currentColor"},u={attributeType:"XML",repeatCount:"indefinite",dur:"2s"};i.push({tag:"path",attributes:Ie(Ie({},o),{},{d:"M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z"})});var l=Ie(Ie({},u),{},{attributeName:"opacity"}),f={tag:"circle",attributes:Ie(Ie({},o),{},{cx:"256",cy:"364",r:"28"}),children:[]};return a||f.children.push({tag:"animate",attributes:Ie(Ie({},u),{},{attributeName:"r",values:"28;14;28;28;14;28;"})},{tag:"animate",attributes:Ie(Ie({},l),{},{values:"1;0;1;1;0;1;"})}),i.push(f),i.push({tag:"path",attributes:Ie(Ie({},o),{},{opacity:"1",d:"M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z"}),children:a?[]:[{tag:"animate",attributes:Ie(Ie({},l),{},{values:"1;0;0;0;0;1;"})}]}),a||i.push({tag:"path",attributes:Ie(Ie({},o),{},{opacity:"0",d:"M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z"}),children:[{tag:"animate",attributes:Ie(Ie({},l),{},{values:"0;0;1;1;0;0;"})}]}),{tag:"g",attributes:{class:"missing"},children:i}}}},$ae={hooks:function(){return{parseNodeAttributes:function(a,i){var o=i.getAttribute("data-fa-symbol"),u=o===null?!1:o===""?!0:o;return a.symbol=u,a}}}},Gae=[Pte,Aae,wae,xae,Cae,kae,zae,Uae,Bae,Hae,$ae];Xte(Gae,{mixoutsTo:Sa});Sa.noAuto;Sa.config;Sa.library;Sa.dom;var S4=Sa.parse;Sa.findIconDefinition;Sa.toHtml;var Vae=Sa.icon;Sa.layer;Sa.text;Sa.counter;var ty={exports:{}},ay,FD;function Wae(){if(FD)return ay;FD=1;var e="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED";return ay=e,ay}var ny,BD;function Yae(){if(BD)return ny;BD=1;var e=Wae();function r(){}function a(){}return a.resetWarningCache=r,ny=function(){function i(l,f,d,v,h,p){if(p!==e){var m=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw m.name="Invariant Violation",m}}i.isRequired=i;function o(){return i}var u={array:i,bigint:i,bool:i,func:i,number:i,object:i,string:i,symbol:i,any:i,arrayOf:o,element:i,elementType:i,instanceOf:o,node:i,objectOf:o,oneOf:o,oneOfType:o,shape:o,exact:o,checkPropTypes:a,resetWarningCache:r};return u.PropTypes=u,u},ny}var HD;function Kae(){return HD||(HD=1,ty.exports=Yae()()),ty.exports}var Qae=Kae();const mr=Hr(Qae);var Zae={};function E4(e,r){(r==null||r>e.length)&&(r=e.length);for(var a=0,i=Array(r);a<r;a++)i[a]=e[a];return i}function Xae(e){if(Array.isArray(e))return e}function Jae(e){if(Array.isArray(e))return E4(e)}function yi(e,r,a){return(r=sne(r))in e?Object.defineProperty(e,r,{value:a,enumerable:!0,configurable:!0,writable:!0}):e[r]=a,e}function ene(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function rne(e,r){var a=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(a!=null){var i,o,u,l,f=[],d=!0,v=!1;try{if(u=(a=a.call(e)).next,r!==0)for(;!(d=(i=u.call(a)).done)&&(f.push(i.value),f.length!==r);d=!0);}catch(h){v=!0,o=h}finally{try{if(!d&&a.return!=null&&(l=a.return(),Object(l)!==l))return}finally{if(v)throw o}}return f}}function tne(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
635
635
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function ane(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
|
|
636
636
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function $D(e,r){var a=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);r&&(i=i.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),a.push.apply(a,i)}return a}function en(e){for(var r=1;r<arguments.length;r++){var a=arguments[r]!=null?arguments[r]:{};r%2?$D(Object(a),!0).forEach(function(i){yi(e,i,a[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(a)):$D(Object(a)).forEach(function(i){Object.defineProperty(e,i,Object.getOwnPropertyDescriptor(a,i))})}return e}function nne(e,r){if(e==null)return{};var a,i,o=ine(e,r);if(Object.getOwnPropertySymbols){var u=Object.getOwnPropertySymbols(e);for(i=0;i<u.length;i++)a=u[i],r.indexOf(a)===-1&&{}.propertyIsEnumerable.call(e,a)&&(o[a]=e[a])}return o}function ine(e,r){if(e==null)return{};var a={};for(var i in e)if({}.hasOwnProperty.call(e,i)){if(r.indexOf(i)!==-1)continue;a[i]=e[i]}return a}function GD(e,r){return Xae(e)||rne(e,r)||aB(e,r)||tne()}function T4(e){return Jae(e)||ene(e)||aB(e)||ane()}function one(e,r){if(typeof e!="object"||!e)return e;var a=e[Symbol.toPrimitive];if(a!==void 0){var i=a.call(e,r);if(typeof i!="object")return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return(r==="string"?String:Number)(e)}function sne(e){var r=one(e,"string");return typeof r=="symbol"?r:r+""}function hf(e){"@babel/helpers - typeof";return hf=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(r){return typeof r}:function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},hf(e)}function aB(e,r){if(e){if(typeof e=="string")return E4(e,r);var a={}.toString.call(e).slice(8,-1);return a==="Object"&&e.constructor&&(a=e.constructor.name),a==="Map"||a==="Set"?Array.from(e):a==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?E4(e,r):void 0}}var une="7.0.0-alpha1",R4;try{var lne=require("@fortawesome/fontawesome-svg-core/package.json");R4=lne.version}catch{R4=Zae.FA_VERSION||"7.0.0-alpha8"}function cne(e){var r=e.beat,a=e.fade,i=e.beatFade,o=e.bounce,u=e.shake,l=e.flash,f=e.spin,d=e.spinPulse,v=e.spinReverse,h=e.pulse,p=e.fixedWidth,m=e.inverse,y=e.border,b=e.listItem,E=e.flip,T=e.size,S=e.rotation,R=e.pull,O=e.swapOpacity,w=e.rotateBy,A=e.widthAuto,I=fne(R4,une),q=yi(yi(yi(yi(yi(yi({"fa-beat":r,"fa-fade":a,"fa-beat-fade":i,"fa-bounce":o,"fa-shake":u,"fa-flash":l,"fa-spin":f,"fa-spin-reverse":v,"fa-spin-pulse":d,"fa-pulse":h,"fa-fw":p,"fa-inverse":m,"fa-border":y,"fa-li":b,"fa-flip":E===!0,"fa-flip-horizontal":E==="horizontal"||E==="both","fa-flip-vertical":E==="vertical"||E==="both"},"fa-".concat(T),typeof T<"u"&&T!==null),"fa-rotate-".concat(S),typeof S<"u"&&S!==null&&S!==0),"fa-pull-".concat(R),typeof R<"u"&&R!==null),"fa-swap-opacity",O),"fa-rotate-by",I&&w),"fa-width-auto",I&&A);return Object.keys(q).map(function(M){return q[M]?M:null}).filter(function(M){return M})}function fne(e,r){for(var a=e.split("-"),i=GD(a,2),o=i[0],u=i[1],l=r.split("-"),f=GD(l,2),d=f[0],v=f[1],h=o.split("."),p=d.split("."),m=0;m<Math.max(h.length,p.length);m++){var y=h[m]||"0",b=p[m]||"0",E=parseInt(y,10),T=parseInt(b,10);if(E!==T)return E>T}for(var S=0;S<Math.max(h.length,p.length);S++){var R=h[S]||"0",O=p[S]||"0";if(R!==O&&R.length!==O.length)return R.length<O.length}return!(u&&!v)}function dne(e){return e=e-0,e===e}function nB(e){return dne(e)?e:(e=e.replace(/[\-_\s]+(.)?/g,function(r,a){return a?a.toUpperCase():""}),e.substr(0,1).toLowerCase()+e.substr(1))}var vne=["style"];function hne(e){return e.charAt(0).toUpperCase()+e.slice(1)}function pne(e){return e.split(";").map(function(r){return r.trim()}).filter(function(r){return r}).reduce(function(r,a){var i=a.indexOf(":"),o=nB(a.slice(0,i)),u=a.slice(i+1).trim();return o.startsWith("webkit")?r[hne(o)]=u:r[o]=u,r},{})}function iB(e,r){var a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};if(typeof r=="string")return r;var i=(r.children||[]).map(function(d){return iB(e,d)}),o=Object.keys(r.attributes||{}).reduce(function(d,v){var h=r.attributes[v];switch(v){case"class":d.attrs.className=h,delete r.attributes.class;break;case"style":d.attrs.style=pne(h);break;default:v.indexOf("aria-")===0||v.indexOf("data-")===0?d.attrs[v.toLowerCase()]=h:d.attrs[nB(v)]=h}return d},{attrs:{}}),u=a.style,l=u===void 0?{}:u,f=nne(a,vne);return o.attrs.style=en(en({},o.attrs.style),l),e.apply(void 0,[r.tag,en(en({},o.attrs),f)].concat(T4(i)))}var oB=!1;try{oB=!0}catch{}function gne(){if(!oB&&console&&typeof console.error=="function"){var e;(e=console).error.apply(e,arguments)}}function VD(e){if(e&&hf(e)==="object"&&e.prefix&&e.iconName&&e.icon)return e;if(S4.icon)return S4.icon(e);if(e===null)return null;if(e&&hf(e)==="object"&&e.prefix&&e.iconName)return e;if(Array.isArray(e)&&e.length===2)return{prefix:e[0],iconName:e[1]};if(typeof e=="string")return{prefix:"fas",iconName:e}}function iy(e,r){return Array.isArray(r)&&r.length>0||!Array.isArray(r)&&r?yi({},e,r):{}}var WD={border:!1,className:"",mask:null,maskId:null,fixedWidth:!1,inverse:!1,flip:!1,icon:null,listItem:!1,pull:null,pulse:!1,rotation:null,rotateBy:!1,size:null,spin:!1,spinPulse:!1,spinReverse:!1,beat:!1,fade:!1,beatFade:!1,bounce:!1,shake:!1,symbol:!1,title:"",titleId:null,transform:null,swapOpacity:!1,widthAuto:!1},Ln=Bt.forwardRef(function(e,r){var a=en(en({},WD),e),i=a.icon,o=a.mask,u=a.symbol,l=a.className,f=a.title,d=a.titleId,v=a.maskId,h=VD(i),p=iy("classes",[].concat(T4(cne(a)),T4((l||"").split(" ")))),m=iy("transform",typeof a.transform=="string"?S4.transform(a.transform):a.transform),y=iy("mask",VD(o)),b=Vae(h,en(en(en(en({},p),m),y),{},{symbol:u,title:f,titleId:d,maskId:v}));if(!b)return gne("Could not find icon",h),null;var E=b.abstract,T={ref:r};return Object.keys(a).forEach(function(S){WD.hasOwnProperty(S)||(T[S]=a[S])}),mne(E[0],T)});Ln.displayName="FontAwesomeIcon";Ln.propTypes={beat:mr.bool,border:mr.bool,beatFade:mr.bool,bounce:mr.bool,className:mr.string,fade:mr.bool,flash:mr.bool,mask:mr.oneOfType([mr.object,mr.array,mr.string]),maskId:mr.string,fixedWidth:mr.bool,inverse:mr.bool,flip:mr.oneOf([!0,!1,"horizontal","vertical","both"]),icon:mr.oneOfType([mr.object,mr.array,mr.string]),listItem:mr.bool,pull:mr.oneOf(["right","left"]),pulse:mr.bool,rotation:mr.oneOf([0,90,180,270]),rotateBy:mr.bool,shake:mr.bool,size:mr.oneOf(["2xs","xs","sm","lg","xl","2xl","1x","2x","3x","4x","5x","6x","7x","8x","9x","10x"]),spin:mr.bool,spinPulse:mr.bool,spinReverse:mr.bool,symbol:mr.oneOfType([mr.bool,mr.string]),title:mr.string,titleId:mr.string,transform:mr.oneOfType([mr.string,mr.object]),swapOpacity:mr.bool,widthAuto:mr.bool};var mne=iB.bind(null,Bt.createElement);const yne=LX.withTypes(),us=jX.withTypes(),vd=V.createContext({sendMessage:async(e,r)=>{},readyState:-1,apiUrls:[],apiUrl:"",setApiUrl:e=>{}}),bne=cl.create(e=>{const{onConfirmHandler:r,modalTitle:a,modalDescription:i,modalCancelLabel:o,modalConfirmLabel:u}=e,l=nd(),f=V.useCallback(async()=>{l.remove(),await r()},[l,r]);return V.useEffect(()=>{const d=async v=>{v.key==="Escape"?(v.preventDefault(),l.remove()):v.key==="Enter"&&(v.preventDefault(),await f())};return window.addEventListener("keydown",d),()=>window.removeEventListener("keydown",d)},[l,f]),se.jsx(tF,{isOpen:l.visible,title:a,footer:se.jsxs(se.Fragment,{children:[se.jsx(ls,{className:"btn btn-neutral",onClick:l.remove,children:o}),se.jsx(ls,{className:"btn btn-primary ms-1",onClick:f,children:u||a})]}),children:se.jsxs("div",{className:"flex flex-row justify-center items-center gap-2",children:[se.jsx(Ln,{icon:Mee,size:"3x",className:"text-error"}),i]})})});function _ne(e){const{children:r,item:a,onClick:i,modalDescription:o,modalCancelLabel:u,title:l,...f}=e,d=V.useCallback(async()=>{await cl.show(bne,{onConfirmHandler:async()=>await i?.(a),modalTitle:l,modalDescription:o,modalCancelLabel:u,modalConfirmLabel:l})},[a,i,l,o,u]);return se.jsx("button",{type:"button",title:l,...f,onClick:d,children:r})}var oy={},fa={},sy={},YD;function cn(){return YD||(YD=1,function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.isEventSourceSupported=e.isReactNative=e.ReadyState=e.DEFAULT_HEARTBEAT=e.UNPARSABLE_JSON_OBJECT=e.DEFAULT_RECONNECT_INTERVAL_MS=e.DEFAULT_RECONNECT_LIMIT=e.SOCKET_IO_PING_CODE=e.SOCKET_IO_PATH=e.SOCKET_IO_PING_INTERVAL=e.DEFAULT_EVENT_SOURCE_OPTIONS=e.EMPTY_EVENT_HANDLERS=e.DEFAULT_OPTIONS=void 0;var r=1,a=1e3*r;e.DEFAULT_OPTIONS={},e.EMPTY_EVENT_HANDLERS={},e.DEFAULT_EVENT_SOURCE_OPTIONS={withCredentials:!1,events:e.EMPTY_EVENT_HANDLERS},e.SOCKET_IO_PING_INTERVAL=25*a,e.SOCKET_IO_PATH="/socket.io/?EIO=3&transport=websocket",e.SOCKET_IO_PING_CODE="2",e.DEFAULT_RECONNECT_LIMIT=20,e.DEFAULT_RECONNECT_INTERVAL_MS=5e3,e.UNPARSABLE_JSON_OBJECT={},e.DEFAULT_HEARTBEAT={message:"ping",timeout:6e4,interval:25e3};var i;(function(u){u[u.UNINSTANTIATED=-1]="UNINSTANTIATED",u[u.CONNECTING=0]="CONNECTING",u[u.OPEN=1]="OPEN",u[u.CLOSING=2]="CLOSING",u[u.CLOSED=3]="CLOSED"})(i||(e.ReadyState=i={}));var o=function(){try{return"EventSource"in globalThis}catch{return!1}};e.isReactNative=typeof navigator<"u"&&navigator.product==="ReactNative",e.isEventSourceSupported=!e.isReactNative&&o()}(sy)),sy}var Mu={},uy={},KD;function kb(){return KD||(KD=1,function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.resetWebSockets=e.sharedWebSockets=void 0,e.sharedWebSockets={};var r=function(a){if(a&&e.sharedWebSockets.hasOwnProperty(a))delete e.sharedWebSockets[a];else for(var i in e.sharedWebSockets)e.sharedWebSockets.hasOwnProperty(i)&&delete e.sharedWebSockets[i]};e.resetWebSockets=r}(uy)),uy}var Bi={},xn={},QD;function zb(){if(QD)return xn;QD=1,Object.defineProperty(xn,"__esModule",{value:!0}),xn.setUpSocketIOPing=xn.appendQueryParams=xn.parseSocketIOUrl=void 0;var e=cn(),r=function(o){if(o){var u=/^https|wss/.test(o),l=o.replace(/^(https?|wss?)(:\/\/)?/,""),f=l.replace(/\/$/,""),d=u?"wss":"ws";return"".concat(d,"://").concat(f).concat(e.SOCKET_IO_PATH)}else if(o===""){var u=/^https/.test(window.location.protocol),d=u?"wss":"ws",v=window.location.port?":".concat(window.location.port):"";return"".concat(d,"://").concat(window.location.hostname).concat(v).concat(e.SOCKET_IO_PATH)}return o};xn.parseSocketIOUrl=r;var a=function(o,u){u===void 0&&(u={});var l=/\?([\w]+=[\w]+)/,f=l.test(o),d="".concat(Object.entries(u).reduce(function(v,h){var p=h[0],m=h[1];return v+"".concat(p,"=").concat(m,"&")},"").slice(0,-1));return"".concat(o).concat(f?"&":"?").concat(d)};xn.appendQueryParams=a;var i=function(o,u){u===void 0&&(u=e.SOCKET_IO_PING_INTERVAL);var l=function(){return o(e.SOCKET_IO_PING_CODE)};return window.setInterval(l,u)};return xn.setUpSocketIOPing=i,xn}var Ic={},ZD;function sB(){if(ZD)return Ic;ZD=1,Object.defineProperty(Ic,"__esModule",{value:!0}),Ic.heartbeat=a;var e=cn();function r(i){return Array.isArray(i)?i.reduce(function(o,u){return o.current>u.current?o:u}).current:i.current}function a(i,o,u){var l=u||{},f=l.interval,d=f===void 0?e.DEFAULT_HEARTBEAT.interval:f,v=l.timeout,h=v===void 0?e.DEFAULT_HEARTBEAT.timeout:v,p=l.message,m=p===void 0?e.DEFAULT_HEARTBEAT.message:p,y=Math.max(100,d/10),b=Date.now(),E=setInterval(function(){var T=Date.now(),S=r(o);if(S+h<=T)console.warn("Heartbeat timed out, closing connection, last message received ".concat(T-S,"ms ago, last ping sent ").concat(T-b,"ms ago")),i.close();else if(S+d<=T&&b+d<=T)try{typeof m=="function"?i.send(m()):i.send(m),b=T}catch(R){console.error("Heartbeat failed, closing connection",R instanceof Error?R.message:R),i.close()}},y);return i.addEventListener("close",function(){clearInterval(E)}),function(){}}return Ic}var Nu={},ly={},XD;function Ub(){return XD||(XD=1,function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.resetSubscribers=e.removeSubscriber=e.addSubscriber=e.hasSubscribers=e.getSubscribers=void 0;var r={},a=[],i=function(d){return(0,e.hasSubscribers)(d)?Array.from(r[d]):a};e.getSubscribers=i;var o=function(d){var v;return((v=r[d])===null||v===void 0?void 0:v.size)>0};e.hasSubscribers=o;var u=function(d,v){r[d]=r[d]||new Set,r[d].add(v)};e.addSubscriber=u;var l=function(d,v){r[d].delete(v)};e.removeSubscriber=l;var f=function(d){if(d&&r.hasOwnProperty(d))delete r[d];else for(var v in r)r.hasOwnProperty(v)&&delete r[v]};e.resetSubscribers=f}(ly)),ly}var JD;function Fb(){if(JD)return Nu;JD=1,Object.defineProperty(Nu,"__esModule",{value:!0}),Nu.assertIsWebSocket=a,Nu.resetGlobalState=i;var e=kb(),r=Ub();function a(o,u){if(!u&&!(o instanceof WebSocket))throw new Error("")}function i(o){(0,r.resetSubscribers)(o),(0,e.resetWebSockets)(o)}return Nu}var eP;function Sne(){if(eP)return Bi;eP=1;var e=Bi&&Bi.__assign||function(){return e=Object.assign||function(h){for(var p,m=1,y=arguments.length;m<y;m++){p=arguments[m];for(var b in p)Object.prototype.hasOwnProperty.call(p,b)&&(h[b]=p[b])}return h},e.apply(this,arguments)};Object.defineProperty(Bi,"__esModule",{value:!0}),Bi.attachListeners=void 0;var r=zb(),a=sB(),i=cn(),o=Fb(),u=function(h,p,m,y){h.onmessage=function(b){var E;p.current.onMessage&&p.current.onMessage(b),typeof y?.current=="number"&&(y.current=Date.now()),!(typeof p.current.filter=="function"&&p.current.filter(b)!==!0)&&(p.current.heartbeat&&typeof p.current.heartbeat!="boolean"&&((E=p.current.heartbeat)===null||E===void 0?void 0:E.returnMessage)===b.data||m(b))}},l=function(h,p,m,y,b){h.onopen=function(E){if(p.current.onOpen&&p.current.onOpen(E),y.current=0,m(i.ReadyState.OPEN),p.current.heartbeat&&h instanceof WebSocket){var T=typeof p.current.heartbeat=="boolean"?void 0:p.current.heartbeat;b.current=Date.now(),(0,a.heartbeat)(h,b,T)}}},f=function(h,p,m,y,b){if(i.isEventSourceSupported&&h instanceof EventSource)return function(){};(0,o.assertIsWebSocket)(h,p.current.skipAssert);var E;return h.onclose=function(T){var S;if(p.current.onClose&&p.current.onClose(T),m(i.ReadyState.CLOSED),p.current.shouldReconnect&&p.current.shouldReconnect(T)){var R=(S=p.current.reconnectAttempts)!==null&&S!==void 0?S:i.DEFAULT_RECONNECT_LIMIT;if(b.current<R){var O=typeof p.current.reconnectInterval=="function"?p.current.reconnectInterval(b.current):p.current.reconnectInterval;E=window.setTimeout(function(){b.current++,y()},O??i.DEFAULT_RECONNECT_INTERVAL_MS)}else p.current.onReconnectStop&&p.current.onReconnectStop(R),console.warn("Max reconnect attempts of ".concat(R," exceeded"))}},function(){return E&&window.clearTimeout(E)}},d=function(h,p,m,y,b){var E;return h.onerror=function(T){var S;if(p.current.onError&&p.current.onError(T),i.isEventSourceSupported&&h instanceof EventSource&&(p.current.onClose&&p.current.onClose(e(e({},T),{code:1006,reason:"An error occurred with the EventSource: ".concat(T),wasClean:!1})),m(i.ReadyState.CLOSED),h.close()),p.current.retryOnError)if(b.current<((S=p.current.reconnectAttempts)!==null&&S!==void 0?S:i.DEFAULT_RECONNECT_LIMIT)){var R=typeof p.current.reconnectInterval=="function"?p.current.reconnectInterval(b.current):p.current.reconnectInterval;E=window.setTimeout(function(){b.current++,y()},R??i.DEFAULT_RECONNECT_INTERVAL_MS)}else p.current.onReconnectStop&&p.current.onReconnectStop(p.current.reconnectAttempts),console.warn("Max reconnect attempts of ".concat(p.current.reconnectAttempts," exceeded"))},function(){return E&&window.clearTimeout(E)}},v=function(h,p,m,y,b,E,T){var S=p.setLastMessage,R=p.setReadyState,O,w,A;return m.current.fromSocketIO&&(O=(0,r.setUpSocketIOPing)(T)),u(h,m,S,E),l(h,m,R,b,E),w=f(h,m,R,y,b),A=d(h,m,R,y,b),function(){R(i.ReadyState.CLOSING),w(),A(),h.close(),O&&clearInterval(O)}};return Bi.attachListeners=v,Bi}var Hi={},rP;function Ene(){if(rP)return Hi;rP=1;var e=Hi&&Hi.__assign||function(){return e=Object.assign||function(p){for(var m,y=1,b=arguments.length;y<b;y++){m=arguments[y];for(var E in m)Object.prototype.hasOwnProperty.call(m,E)&&(p[E]=m[E])}return p},e.apply(this,arguments)};Object.defineProperty(Hi,"__esModule",{value:!0}),Hi.attachSharedListeners=void 0;var r=kb(),a=cn(),i=Ub(),o=zb(),u=sB(),l=function(p,m,y){p.onmessage=function(b){(0,i.getSubscribers)(m).forEach(function(E){var T;E.optionsRef.current.onMessage&&E.optionsRef.current.onMessage(b),typeof((T=E?.lastMessageTime)===null||T===void 0?void 0:T.current)=="number"&&(E.lastMessageTime.current=Date.now()),!(typeof E.optionsRef.current.filter=="function"&&E.optionsRef.current.filter(b)!==!0)&&(y&&typeof y!="boolean"&&y?.returnMessage===b.data||E.setLastMessage(b))})}},f=function(p,m,y){p.onopen=function(b){var E=(0,i.getSubscribers)(m);E.forEach(function(T){T.reconnectCount.current=0,T.optionsRef.current.onOpen&&T.optionsRef.current.onOpen(b),T.setReadyState(a.ReadyState.OPEN),y&&p instanceof WebSocket&&(T.lastMessageTime.current=Date.now())}),y&&p instanceof WebSocket&&(0,u.heartbeat)(p,E.map(function(T){return T.lastMessageTime}),typeof y=="boolean"?void 0:y)}},d=function(p,m){p instanceof WebSocket&&(p.onclose=function(y){(0,i.getSubscribers)(m).forEach(function(b){b.optionsRef.current.onClose&&b.optionsRef.current.onClose(y),b.setReadyState(a.ReadyState.CLOSED)}),delete r.sharedWebSockets[m],(0,i.getSubscribers)(m).forEach(function(b){var E;if(b.optionsRef.current.shouldReconnect&&b.optionsRef.current.shouldReconnect(y)){var T=(E=b.optionsRef.current.reconnectAttempts)!==null&&E!==void 0?E:a.DEFAULT_RECONNECT_LIMIT;if(b.reconnectCount.current<T){var S=typeof b.optionsRef.current.reconnectInterval=="function"?b.optionsRef.current.reconnectInterval(b.reconnectCount.current):b.optionsRef.current.reconnectInterval;setTimeout(function(){b.reconnectCount.current++,b.reconnect.current()},S??a.DEFAULT_RECONNECT_INTERVAL_MS)}else b.optionsRef.current.onReconnectStop&&b.optionsRef.current.onReconnectStop(b.optionsRef.current.reconnectAttempts),console.warn("Max reconnect attempts of ".concat(T," exceeded"))}})})},v=function(p,m){p.onerror=function(y){(0,i.getSubscribers)(m).forEach(function(b){b.optionsRef.current.onError&&b.optionsRef.current.onError(y),a.isEventSourceSupported&&p instanceof EventSource&&(b.optionsRef.current.onClose&&b.optionsRef.current.onClose(e(e({},y),{code:1006,reason:"An error occurred with the EventSource: ".concat(y),wasClean:!1})),b.setReadyState(a.ReadyState.CLOSED))}),a.isEventSourceSupported&&p instanceof EventSource&&p.close()}},h=function(p,m,y,b){var E;return y.current.fromSocketIO&&(E=(0,o.setUpSocketIOPing)(b)),l(p,m,y.current.heartbeat),d(p,m),f(p,m,y.current.heartbeat),v(p,m),function(){E&&clearInterval(E)}};return Hi.attachSharedListeners=h,Hi}var tP;function Tne(){if(tP)return Mu;tP=1,Object.defineProperty(Mu,"__esModule",{value:!0}),Mu.createOrJoinSocket=void 0;var e=kb(),r=cn(),a=Sne(),i=Ene(),o=Ub(),u=function(f,d,v,h,p){return function(){if((0,o.removeSubscriber)(f,d),!(0,o.hasSubscribers)(f)){try{var m=e.sharedWebSockets[f];m instanceof WebSocket&&(m.onclose=function(y){v.current.onClose&&v.current.onClose(y),h(r.ReadyState.CLOSED)}),m.close()}catch{}p&&p(),delete e.sharedWebSockets[f]}}},l=function(f,d,v,h,p,m,y,b,E){if(!r.isEventSourceSupported&&h.current.eventSourceOptions)throw r.isReactNative?new Error("EventSource is not supported in ReactNative"):new Error("EventSource is not supported");if(h.current.share){var T=null;e.sharedWebSockets[d]===void 0?(e.sharedWebSockets[d]=h.current.eventSourceOptions?new EventSource(d,h.current.eventSourceOptions):new WebSocket(d,h.current.protocols),f.current=e.sharedWebSockets[d],v(r.ReadyState.CONNECTING),T=(0,i.attachSharedListeners)(e.sharedWebSockets[d],d,h,E)):(f.current=e.sharedWebSockets[d],v(e.sharedWebSockets[d].readyState));var S={setLastMessage:p,setReadyState:v,optionsRef:h,reconnectCount:y,lastMessageTime:b,reconnect:m};return(0,o.addSubscriber)(d,S),u(d,S,h,v,T)}else{if(f.current=h.current.eventSourceOptions?new EventSource(d,h.current.eventSourceOptions):new WebSocket(d,h.current.protocols),v(r.ReadyState.CONNECTING),!f.current)throw new Error("WebSocket failed to be created");return(0,a.attachListeners)(f.current,{setLastMessage:p,setReadyState:v},h,m.current,y,b,E)}};return Mu.createOrJoinSocket=l,Mu}var Cn={},aP;function Rne(){return aP||(aP=1,function(e){var r=Cn&&Cn.__awaiter||function(d,v,h,p){function m(y){return y instanceof h?y:new h(function(b){b(y)})}return new(h||(h=Promise))(function(y,b){function E(R){try{S(p.next(R))}catch(O){b(O)}}function T(R){try{S(p.throw(R))}catch(O){b(O)}}function S(R){R.done?y(R.value):m(R.value).then(E,T)}S((p=p.apply(d,v||[])).next())})},a=Cn&&Cn.__generator||function(d,v){var h={label:0,sent:function(){if(y[0]&1)throw y[1];return y[1]},trys:[],ops:[]},p,m,y,b=Object.create((typeof Iterator=="function"?Iterator:Object).prototype);return b.next=E(0),b.throw=E(1),b.return=E(2),typeof Symbol=="function"&&(b[Symbol.iterator]=function(){return this}),b;function E(S){return function(R){return T([S,R])}}function T(S){if(p)throw new TypeError("Generator is already executing.");for(;b&&(b=0,S[0]&&(h=0)),h;)try{if(p=1,m&&(y=S[0]&2?m.return:S[0]?m.throw||((y=m.return)&&y.call(m),0):m.next)&&!(y=y.call(m,S[1])).done)return y;switch(m=0,y&&(S=[S[0]&2,y.value]),S[0]){case 0:case 1:y=S;break;case 4:return h.label++,{value:S[1],done:!1};case 5:h.label++,m=S[1],S=[0];continue;case 7:S=h.ops.pop(),h.trys.pop();continue;default:if(y=h.trys,!(y=y.length>0&&y[y.length-1])&&(S[0]===6||S[0]===2)){h=0;continue}if(S[0]===3&&(!y||S[1]>y[0]&&S[1]<y[3])){h.label=S[1];break}if(S[0]===6&&h.label<y[1]){h.label=y[1],y=S;break}if(y&&h.label<y[2]){h.label=y[2],h.ops.push(S);break}y[2]&&h.ops.pop(),h.trys.pop();continue}S=v.call(d,h)}catch(R){S=[6,R],m=0}finally{p=y=0}if(S[0]&5)throw S[1];return{value:S[0]?S[1]:void 0,done:!0}}},i=Cn&&Cn.__spreadArray||function(d,v,h){if(h||arguments.length===2)for(var p=0,m=v.length,y;p<m;p++)(y||!(p in v))&&(y||(y=Array.prototype.slice.call(v,0,p)),y[p]=v[p]);return d.concat(y||Array.prototype.slice.call(v))};Object.defineProperty(e,"__esModule",{value:!0}),e.getUrl=void 0;var o=zb(),u=cn(),l=function(d){return new Promise(function(v){return window.setTimeout(v,d)})},f=function(d,v){for(var h=[],p=2;p<arguments.length;p++)h[p-2]=arguments[p];return r(void 0,i([d,v],h,!0),void 0,function(m,y,b){var E,T,S,R,O,w,A,I;return b===void 0&&(b=0),a(this,function(q){switch(q.label){case 0:if(typeof m!="function")return[3,10];q.label=1;case 1:return q.trys.push([1,3,,9]),[4,m()];case 2:return E=q.sent(),[3,9];case 3:return q.sent(),y.current.retryOnError?(T=(w=y.current.reconnectAttempts)!==null&&w!==void 0?w:u.DEFAULT_RECONNECT_LIMIT,b<T?(S=typeof y.current.reconnectInterval=="function"?y.current.reconnectInterval(b):y.current.reconnectInterval,[4,l(S??u.DEFAULT_RECONNECT_INTERVAL_MS)]):[3,5]):[3,7];case 4:return q.sent(),[2,(0,e.getUrl)(m,y,b+1)];case 5:return(I=(A=y.current).onReconnectStop)===null||I===void 0||I.call(A,b),[2,null];case 6:return[3,8];case 7:return[2,null];case 8:return[3,9];case 9:return[3,11];case 10:E=m,q.label=11;case 11:return R=y.current.fromSocketIO?(0,o.parseSocketIOUrl)(E):E,O=y.current.queryParams?(0,o.appendQueryParams)(R,y.current.queryParams):R,[2,O]}})})};e.getUrl=f}(Cn)),Cn}var cy={},nP;function One(){return nP||(nP=1,function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.websocketWrapper=void 0;var r=function(a,i){return new Proxy(a,{get:function(o,u){var l=o[u];return u==="reconnect"?i:typeof l=="function"?(console.error("Calling methods directly on the websocket is not supported at this moment. You must use the methods returned by useWebSocket."),function(){}):l},set:function(o,u,l){return/^on/.test(u)?(console.warn("The websocket's event handlers should be defined through the options object passed into useWebSocket."),!1):(o[u]=l,!0)}})};e.websocketWrapper=r,e.default=e.websocketWrapper}(cy)),cy}var iP;function Bb(){if(iP)return fa;iP=1;var e=fa&&fa.__assign||function(){return e=Object.assign||function(m){for(var y,b=1,E=arguments.length;b<E;b++){y=arguments[b];for(var T in y)Object.prototype.hasOwnProperty.call(y,T)&&(m[T]=y[T])}return m},e.apply(this,arguments)},r=fa&&fa.__awaiter||function(m,y,b,E){function T(S){return S instanceof b?S:new b(function(R){R(S)})}return new(b||(b=Promise))(function(S,R){function O(I){try{A(E.next(I))}catch(q){R(q)}}function w(I){try{A(E.throw(I))}catch(q){R(q)}}function A(I){I.done?S(I.value):T(I.value).then(O,w)}A((E=E.apply(m,y||[])).next())})},a=fa&&fa.__generator||function(m,y){var b={label:0,sent:function(){if(S[0]&1)throw S[1];return S[1]},trys:[],ops:[]},E,T,S,R=Object.create((typeof Iterator=="function"?Iterator:Object).prototype);return R.next=O(0),R.throw=O(1),R.return=O(2),typeof Symbol=="function"&&(R[Symbol.iterator]=function(){return this}),R;function O(A){return function(I){return w([A,I])}}function w(A){if(E)throw new TypeError("Generator is already executing.");for(;R&&(R=0,A[0]&&(b=0)),b;)try{if(E=1,T&&(S=A[0]&2?T.return:A[0]?T.throw||((S=T.return)&&S.call(T),0):T.next)&&!(S=S.call(T,A[1])).done)return S;switch(T=0,S&&(A=[A[0]&2,S.value]),A[0]){case 0:case 1:S=A;break;case 4:return b.label++,{value:A[1],done:!1};case 5:b.label++,T=A[1],A=[0];continue;case 7:A=b.ops.pop(),b.trys.pop();continue;default:if(S=b.trys,!(S=S.length>0&&S[S.length-1])&&(A[0]===6||A[0]===2)){b=0;continue}if(A[0]===3&&(!S||A[1]>S[0]&&A[1]<S[3])){b.label=A[1];break}if(A[0]===6&&b.label<S[1]){b.label=S[1],S=A;break}if(S&&b.label<S[2]){b.label=S[2],b.ops.push(A);break}S[2]&&b.ops.pop(),b.trys.pop();continue}A=y.call(m,b)}catch(I){A=[6,I],T=0}finally{E=S=0}if(A[0]&5)throw A[1];return{value:A[0]?A[1]:void 0,done:!0}}},i=fa&&fa.__importDefault||function(m){return m&&m.__esModule?m:{default:m}};Object.defineProperty(fa,"__esModule",{value:!0}),fa.useWebSocket=void 0;var o=po(),u=AU(),l=cn(),f=Tne(),d=Rne(),v=i(One()),h=Fb(),p=function(m,y,b){y===void 0&&(y=l.DEFAULT_OPTIONS),b===void 0&&(b=!0);var E=(0,o.useState)(null),T=E[0],S=E[1],R=(0,o.useState)({}),O=R[0],w=R[1],A=(0,o.useMemo)(function(){if(!y.disableJson&&T)try{return JSON.parse(T.data)}catch{return l.UNPARSABLE_JSON_OBJECT}return null},[T,y.disableJson]),I=(0,o.useRef)(null),q=(0,o.useRef)(null),M=(0,o.useRef)(function(){}),L=(0,o.useRef)(0),z=(0,o.useRef)(Date.now()),j=(0,o.useRef)([]),U=(0,o.useRef)(null),F=(0,o.useRef)(y);F.current=y;var H=I.current&&O[I.current]!==void 0?O[I.current]:m!==null&&b===!0?l.ReadyState.CONNECTING:l.ReadyState.UNINSTANTIATED,Q=y.queryParams?JSON.stringify(y.queryParams):null,P=(0,o.useCallback)(function(k,C){var D;if(C===void 0&&(C=!0),l.isEventSourceSupported&&q.current instanceof EventSource){console.warn("Unable to send a message from an eventSource");return}((D=q.current)===null||D===void 0?void 0:D.readyState)===l.ReadyState.OPEN?((0,h.assertIsWebSocket)(q.current,F.current.skipAssert),q.current.send(k)):C&&j.current.push(k)},[]),G=(0,o.useCallback)(function(k,C){C===void 0&&(C=!0),P(JSON.stringify(k),C)},[P]),Z=(0,o.useCallback)(function(){return F.current.share!==!0||l.isEventSourceSupported&&q.current instanceof EventSource?q.current:(U.current===null&&q.current&&((0,h.assertIsWebSocket)(q.current,F.current.skipAssert),U.current=(0,v.default)(q.current,M)),U.current)},[]);return(0,o.useEffect)(function(){if(m!==null&&b===!0){var k,C=!1,D=!0,Y=function(){return r(void 0,void 0,void 0,function(){var W,te,Me;return a(this,function(he){switch(he.label){case 0:return W=I,[4,(0,d.getUrl)(m,F)];case 1:return W.current=he.sent(),I.current===null?(console.error("Failed to get a valid URL. WebSocket connection aborted."),I.current="ABORTED",(0,u.flushSync)(function(){return w(function(Ce){return e(e({},Ce),{ABORTED:l.ReadyState.CLOSED})})}),[2]):(te=function(Ce){C||(0,u.flushSync)(function(){return S(Ce)})},Me=function(Ce){C||(0,u.flushSync)(function(){return w(function(le){var Oe;return e(e({},le),I.current&&(Oe={},Oe[I.current]=Ce,Oe))})})},D&&(k=(0,f.createOrJoinSocket)(q,I.current,Me,F,te,M,L,z,P)),[2])}})})};return M.current=function(){C||(U.current&&(U.current=null),k?.(),Y())},Y(),function(){C=!0,D=!1,U.current&&(U.current=null),k?.(),S(null)}}else(m===null||b===!1)&&(L.current=0,w(function(W){var te;return e(e({},W),I.current&&(te={},te[I.current]=l.ReadyState.CLOSED,te))}))},[m,b,Q,P]),(0,o.useEffect)(function(){H===l.ReadyState.OPEN&&j.current.splice(0).forEach(function(k){P(k)})},[H]),{sendMessage:P,sendJsonMessage:G,lastMessage:T,lastJsonMessage:A,readyState:H,getWebSocket:Z}};return fa.useWebSocket=p,fa}var $i={},oP;function Ane(){if(oP)return $i;oP=1;var e=$i&&$i.__assign||function(){return e=Object.assign||function(f){for(var d,v=1,h=arguments.length;v<h;v++){d=arguments[v];for(var p in d)Object.prototype.hasOwnProperty.call(d,p)&&(f[p]=d[p])}return f},e.apply(this,arguments)};Object.defineProperty($i,"__esModule",{value:!0}),$i.useSocketIO=void 0;var r=po(),a=Bb(),i=cn(),o={type:"empty",payload:null},u=function(f){if(!f||!f.data)return o;var d=f.data.match(/\[.*]/);if(!d)return o;var v=JSON.parse(d);return!Array.isArray(v)||!v[1]?o:{type:v[0],payload:v[1]}},l=function(f,d,v){d===void 0&&(d=i.DEFAULT_OPTIONS),v===void 0&&(v=!0);var h=(0,r.useMemo)(function(){return e(e({},d),{fromSocketIO:!0})},[]),p=(0,a.useWebSocket)(f,h,v),m=p.sendMessage,y=p.sendJsonMessage,b=p.lastMessage,E=p.readyState,T=p.getWebSocket,S=(0,r.useMemo)(function(){return u(b)},[b]);return{sendMessage:m,sendJsonMessage:y,lastMessage:S,lastJsonMessage:S,readyState:E,getWebSocket:T}};return $i.useSocketIO=l,$i}var In={},sP;function wne(){if(sP)return In;sP=1;var e=In&&In.__assign||function(){return e=Object.assign||function(l){for(var f,d=1,v=arguments.length;d<v;d++){f=arguments[d];for(var h in f)Object.prototype.hasOwnProperty.call(f,h)&&(l[h]=f[h])}return l},e.apply(this,arguments)},r=In&&In.__rest||function(l,f){var d={};for(var v in l)Object.prototype.hasOwnProperty.call(l,v)&&f.indexOf(v)<0&&(d[v]=l[v]);if(l!=null&&typeof Object.getOwnPropertySymbols=="function")for(var h=0,v=Object.getOwnPropertySymbols(l);h<v.length;h++)f.indexOf(v[h])<0&&Object.prototype.propertyIsEnumerable.call(l,v[h])&&(d[v[h]]=l[v[h]]);return d};Object.defineProperty(In,"__esModule",{value:!0}),In.useEventSource=void 0;var a=po(),i=Bb(),o=cn(),u=function(l,f,d){f===void 0&&(f=o.DEFAULT_EVENT_SOURCE_OPTIONS);var v=f.withCredentials,h=f.events,p=r(f,["withCredentials","events"]);d===void 0&&(d=!0);var m=e(e({},p),{eventSourceOptions:{withCredentials:v}}),y=(0,a.useRef)(o.EMPTY_EVENT_HANDLERS);h&&(y.current=h);var b=(0,i.useWebSocket)(l,m,d),E=b.lastMessage,T=b.readyState,S=b.getWebSocket;return(0,a.useEffect)(function(){E?.type&&Object.entries(y.current).forEach(function(R){var O=R[0],w=R[1];O===E.type&&w(E)})},[E]),{lastEvent:E,readyState:T,getEventSource:S}};return In.useEventSource=u,In}var uP;function xne(){return uP||(uP=1,function(e){Object.defineProperty(e,"__esModule",{value:!0}),e.resetGlobalState=e.useEventSource=e.ReadyState=e.useSocketIO=e.default=void 0;var r=Bb();Object.defineProperty(e,"default",{enumerable:!0,get:function(){return r.useWebSocket}});var a=Ane();Object.defineProperty(e,"useSocketIO",{enumerable:!0,get:function(){return a.useSocketIO}});var i=cn();Object.defineProperty(e,"ReadyState",{enumerable:!0,get:function(){return i.ReadyState}});var o=wne();Object.defineProperty(e,"useEventSource",{enumerable:!0,get:function(){return o.useEventSource}});var u=Fb();Object.defineProperty(e,"resetGlobalState",{enumerable:!0,get:function(){return u.resetGlobalState}})}(oy)),oy}var Vi=xne();const Cne=Hr(Vi),hd=V.memo(e=>{const{name:r,buttonChildren:a,buttonStyle:i,buttonDisabled:o,dropdownStyle:u,children:l}=e,f=`popover-${r}`,d=`--anchor-${r}`,v=V.useCallback(h=>{h.target.tagName!=="INPUT"&&h.currentTarget.togglePopover(!1)},[]);return se.jsxs(se.Fragment,{children:[se.jsx("ul",{className:`dropdown menu min-w-48 rounded-box bg-base-200 shadow-sm${u?` ${u}`:""}`,popover:"",id:f,style:{positionAnchor:d,maxHeight:"95vh"},onClick:v,children:l}),se.jsx(ls,{className:`btn ${typeof a=="string"?"":"btn-square"}${i?` ${i}`:""}`,popoverTarget:f,style:{anchorName:d},disabled:o,children:a})]})}),Ine={[Vi.ReadyState.CONNECTING]:"text-info",[Vi.ReadyState.OPEN]:"text-success",[Vi.ReadyState.CLOSING]:"text-warning",[Vi.ReadyState.CLOSED]:"text-error",[Vi.ReadyState.UNINSTANTIATED]:"text-error"},qne=V.memo(()=>{const{t:e}=qs("navbar"),{readyState:r,apiUrls:a,apiUrl:i,setApiUrl:o}=V.useContext(vd),u=xE.startsWith("${")?a:xE.split(",");return se.jsx(hd,{name:"api-url-switcher",buttonChildren:se.jsx(Ln,{icon:Ree,className:Ine[r],title:`${e("websocket_status")}: ${Vi.ReadyState[r]}`}),dropdownStyle:"dropdown-end",children:a.map((l,f)=>se.jsx("li",{onClick:()=>o(l),onKeyUp:d=>{d.key==="enter"&&o(l)},children:se.jsx("span",{className:`btn btn-sm btn-block ${i===l?"btn-primary":"btn-ghost"}`,children:u[f]&&u[f]!==l?`${u[f]} (${l})`:l})},l))})}),lP={bg:"Български",ca:"Català","zh-CN":"简体中文",cs:"Česky",da:"Dansk",de:"Deutsch",es:"Español",eu:"Euskera",fi:"Suomi",fr:"Français",hu:"Magyar",it:"Italiano",ko:"한국어",nl:"Nederlands",no:"Norsk",pl:"Polski",ptbr:"Brazilian Portuguese",ru:"Русский",sv:"Svenska",tr:"Türkçe",zh:"繁體中文",ua:"Українська",en:"English"},Mne=V.memo(()=>{const{i18n:e}=qs("localeNames"),r=V.useMemo(()=>lP[e.language]?e.language:e.language.split("-")[0],[e.language]),a=V.useMemo(()=>{const i=[];for(const o in e.options.resources??[])i.push(se.jsx("li",{onClick:async()=>await e.changeLanguage(o),onKeyUp:async u=>{u.key==="enter"&&await e.changeLanguage(o)},children:se.jsx("span",{className:`btn btn-sm btn-block ${o===r?"btn-primary":"btn-ghost"}`,children:lP[o]})},o));return i},[r,e.changeLanguage,e.options.resources]);return se.jsx(hd,{name:"locale-picker",buttonChildren:r,dropdownStyle:"dropdown-end",children:a})});var uf={exports:{}};/*! store2 - v2.14.4 - 2024-12-26
|
|
637
|
-
* Copyright (c) 2024 Nathan Bubna; Licensed MIT */var fy=uf.exports,cP;function Nne(){return cP||(cP=1,function(e){(function(r,a){var i={version:"2.14.4",areas:{},apis:{},nsdelim:".",inherit:function(u,l){for(var f in u)l.hasOwnProperty(f)||Object.defineProperty(l,f,Object.getOwnPropertyDescriptor(u,f));return l},stringify:function(u,l){return u===void 0||typeof u=="function"?u+"":JSON.stringify(u,l||i.replace)},parse:function(u,l){try{return JSON.parse(u,l||i.revive)}catch{return u}},fn:function(u,l){i.storeAPI[u]=l;for(var f in i.apis)i.apis[f][u]=l},get:function(u,l){return u.getItem(l)},set:function(u,l,f){u.setItem(l,f)},remove:function(u,l){u.removeItem(l)},key:function(u,l){return u.key(l)},length:function(u){return u.length},clear:function(u){u.clear()},Store:function(u,l,f){var d=i.inherit(i.storeAPI,function(h,p,m){return arguments.length===0?d.getAll():typeof p=="function"?d.transact(h,p,m):p!==void 0?d.set(h,p,m):typeof h=="string"||typeof h=="number"?d.get(h):typeof h=="function"?d.each(h):h?d.setAll(h,p):d.clear()});d._id=u;try{var v="__store2_test";l.setItem(v,"ok"),d._area=l,l.removeItem(v)}catch{d._area=i.storage("fake")}return d._ns=f||"",i.areas[u]||(i.areas[u]=d._area),i.apis[d._ns+d._id]||(i.apis[d._ns+d._id]=d),d},storeAPI:{area:function(u,l){var f=this[u];return(!f||!f.area)&&(f=i.Store(u,l,this._ns),this[u]||(this[u]=f)),f},namespace:function(u,l,f){if(f=f||this._delim||i.nsdelim,!u)return this._ns?this._ns.substring(0,this._ns.length-f.length):"";var d=u,v=this[d];if((!v||!v.namespace)&&(v=i.Store(this._id,this._area,this._ns+d+f),v._delim=f,this[d]||(this[d]=v),!l))for(var h in i.areas)v.area(h,i.areas[h]);return v},isFake:function(u){return u?(this._real=this._area,this._area=i.storage("fake")):u===!1&&(this._area=this._real||this._area),this._area.name==="fake"},toString:function(){return"store"+(this._ns?"."+this.namespace():"")+"["+this._id+"]"},has:function(u){return this._area.has?this._area.has(this._in(u)):this._in(u)in this._area},size:function(){return this.keys().length},each:function(u,l){for(var f=0,d=i.length(this._area);f<d;f++){var v=this._out(i.key(this._area,f));if(v!==void 0&&u.call(this,v,this.get(v),l)===!1)break;d>i.length(this._area)&&(d--,f--)}return l||this},keys:function(u){return this.each(function(l,f,d){d.push(l)},u||[])},get:function(u,l){var f=i.get(this._area,this._in(u)),d;return typeof l=="function"&&(d=l,l=null),f!==null?i.parse(f,d):l??f},getAll:function(u){return this.each(function(l,f,d){d[l]=f},u||{})},transact:function(u,l,f){var d=this.get(u,f),v=l(d);return this.set(u,v===void 0?d:v),this},set:function(u,l,f){var d=this.get(u),v;return d!=null&&f===!1?l:(typeof f=="function"&&(v=f,f=void 0),i.set(this._area,this._in(u),i.stringify(l,v),f)||d)},setAll:function(u,l){var f,d;for(var v in u)d=u[v],this.set(v,d,l)!==d&&(f=!0);return f},add:function(u,l,f){var d=this.get(u);if(d instanceof Array)l=d.concat(l);else if(d!==null){var v=typeof d;if(v===typeof l&&v==="object"){for(var h in l)d[h]=l[h];l=d}else l=d+l}return i.set(this._area,this._in(u),i.stringify(l,f)),l},remove:function(u,l){var f=this.get(u,l);return i.remove(this._area,this._in(u)),f},clear:function(){return this._ns?this.each(function(u){i.remove(this._area,this._in(u))},1):i.clear(this._area),this},clearAll:function(){var u=this._area;for(var l in i.areas)i.areas.hasOwnProperty(l)&&(this._area=i.areas[l],this.clear());return this._area=u,this},_in:function(u){return typeof u!="string"&&(u=i.stringify(u)),this._ns?this._ns+u:u},_out:function(u){return this._ns?u&&u.indexOf(this._ns)===0?u.substring(this._ns.length):void 0:u}},storage:function(u){return i.inherit(i.storageAPI,{items:{},name:u})},storageAPI:{length:0,has:function(u){return this.items.hasOwnProperty(u)},key:function(u){var l=0;for(var f in this.items)if(this.has(f)&&u===l++)return f},setItem:function(u,l){this.has(u)||this.length++,this.items[u]=l},removeItem:function(u){this.has(u)&&(delete this.items[u],this.length--)},getItem:function(u){return this.has(u)?this.items[u]:null},clear:function(){for(var u in this.items)this.removeItem(u)}}},o=i.Store("local",function(){try{return localStorage}catch{}}());o.local=o,o._=i,o.area("session",function(){try{return sessionStorage}catch{}}()),o.area("page",i.storage("page")),typeof a=="function"&&a.amd!==void 0?a("store2",[],function(){return o}):e.exports?e.exports=o:(r.store&&(i.conflict=r.store),r.store=o)})(fy,fy&&fy.define)}(uf)),uf.exports}var Lne=Nne();const qn=Hr(Lne),dy="z2m-token-v2",fP="z2m-auth-v2",dP="theme",Kde="homepage",Qde="dashboard-column-display-key",Dne="permit-join-time",Pne="max-on-screen-notifications",Zde="network-raw-display-type",Xde="network-map-layout-type",Jde="network-map-label-type",eve="network-map-node-strength",rve="network-map-link-distance",tve="i18nextLng",ave="devices-hide-disabled",nve="table-column-visibility",ive="table-column-filter",ove="dashboard-filter",jne=V.memo(e=>{const[r,a]=V.useState(e.seconds);V.useEffect(()=>{const d=setTimeout(()=>{a(r-1)},1e3);return()=>clearTimeout(d)},[r]);const i=Math.floor(r/3600),o=Math.floor(r/60)%60,u=Math.floor(r%60),l=!e.hideZeroes||i>0,f=!e.hideZeroes||o>0;return se.jsxs("span",{className:"countdown",children:[l&&se.jsx("span",{style:{"--value":i},children:i}),l&&":",f&&se.jsx("span",{style:{"--value":o},children:o}),f&&":",se.jsx("span",{style:{"--value":u},children:u})]})});function kne(){const{sendMessage:e}=V.useContext(vd),{t:r}=qs(["navbar"]),[a,i]=V.useState(),o=us(p=>p.devices),u=us(p=>p.bridgeInfo.permit_join),l=us(p=>p.bridgeInfo.permit_join_end),f=V.useCallback(async()=>await e("bridge/request/permit_join",{time:u?0:qn.get(Dne,254),device:a?.ieee_address}),[e,a,u]),d=V.useMemo(()=>{const p=[];for(const m of o)(m.type==="Coordinator"||m.type==="Router")&&p.push(se.jsx("li",{onClick:()=>i(m),onKeyUp:y=>{y.key==="enter"&&i(m)},children:se.jsx("span",{className:"btn btn-sm btn-block btn-ghost",children:m.friendly_name})},m.friendly_name));return p.sort((m,y)=>m.key==="Coordinator"?-1:m.key.localeCompare(y.key)),p},[o]),v=V.useMemo(()=>u?se.jsx(jne,{seconds:(l-Date.now())/1e3,hideZeroes:!0}):null,[u,l]),h=V.useMemo(()=>u?se.jsxs(ls,{onClick:f,className:"btn btn-outline-secondary join-item",title:r("disable_join"),children:[se.jsx(Ln,{icon:cD,className:"text-success",beatFade:!0})," ",a?.friendly_name??r("all"),v]}):se.jsxs(ls,{onClick:f,className:"btn btn-outline-secondary join-item",title:r("permit_join"),children:[se.jsx(Ln,{icon:cD,className:"text-error"})," ",a?.friendly_name??r("all")]}),[u,v,a,r,f]);return se.jsxs("div",{className:"join join-horizontal",children:[h,!u&&se.jsxs(hd,{name:"permit-join",buttonChildren:se.jsx(Ln,{icon:Iee,title:r("toggle_dropdown")}),buttonStyle:"join-item",dropdownStyle:"dropdown-end",children:[se.jsx("li",{onClick:()=>i(void 0),onKeyUp:p=>{p.key==="enter"&&i(void 0)},children:se.jsx("span",{className:"btn btn-sm btn-block btn-ghost",children:r("all")})},"all"),d]})]})}const zne=["","Light","Dark","Abyss","Acid","Aqua","Autumn","Black","Bumblebee","Business","Caramellatte","Cmyk","Coffee","Corporate","Cupcake","Cyberpunk","Dim","Dracula","Emerald","Fantasy","Forest","Garden","Halloween","Lemonade","Lofi","Luxury","Night","Nord","Pastel","Retro","Silk","Sunset","Synthwave","Valentine","Winter","Wireframe"],Une=V.memo(()=>{const e=Wn(),[r,a]=V.useState(qn.get(dP,""));return V.useEffect(()=>{qn.set(dP,r),document.documentElement.setAttribute("data-theme",r)},[r]),se.jsx(hd,{name:"theme-switcher",buttonChildren:se.jsx(Ln,{icon:cee}),dropdownStyle:"dropdown-end",buttonDisabled:e.pathname==="/network",children:zne.map(i=>se.jsx("li",{children:se.jsx("input",{type:"radio",name:"theme-dropdown",className:`theme-controller w-full btn btn-sm btn-block ${r===i.toLowerCase()?"btn-primary":"btn-ghost"}`,"aria-label":i||"Default",value:i.toLowerCase(),onChange:()=>a(i.toLowerCase())})},i||"default"))})}),Fne=[{href:"/devices",key:"devices"},{href:"/dashboard",key:"dashboard"},{href:"/groups",key:"groups"},{href:"/ota",key:"ota"},{href:"/touchlink",key:"touchlink"},{href:"/network",key:"network"},{href:"/logs",key:"logs"},{href:"/settings",key:"settings"}],Bne=()=>{const{t:e}=qs(["navbar","common"]),r=us(u=>u.bridgeInfo.restart_required),{sendMessage:a}=V.useContext(vd),i=V.useMemo(()=>se.jsx(se.Fragment,{children:Fne.map(u=>se.jsx("li",{children:se.jsx(eF,{to:u.href,className:({isActive:l})=>l?"menu-active":"",children:e(u.key)})},u.href))}),[e]),o=V.useMemo(()=>r?se.jsx(_ne,{className:"btn btn-error me-1 animate-pulse",onClick:async()=>await a("bridge/request/restart",""),title:e("restart"),modalDescription:e("common:dialog_confirmation_prompt"),modalCancelLabel:e("common:cancel"),children:e("restart")}):null,[r,a,e]);return se.jsxs("div",{className:"navbar bg-base-200 shadow",children:[se.jsx("div",{className:"navbar-start",children:se.jsxs("div",{className:"dropdown",children:[se.jsx("div",{className:"btn btn-ghost lg:hidden",tabIndex:0,children:se.jsx(Ln,{icon:jee})}),se.jsx("ul",{tabIndex:0,className:"menu dropdown-content bg-base-200 rounded-box z-1 mt-3 w-max p-2 shadow",children:i})]})}),se.jsx(Ab,{to:"/",className:"link link-hover me-1",title:window.location!==window.parent.location?`Zigbee2MQTT@${document.location.hostname}`:void 0,children:"Zigbee2MQTT"}),se.jsx("div",{className:"navbar-center hidden lg:flex",children:se.jsx("ul",{className:"menu menu-horizontal px-1",children:i})}),se.jsx("div",{className:"navbar-end",children:se.jsxs("ul",{className:"menu menu-horizontal px-1 gap-0.5 md:gap-1 justify-end",children:[se.jsx(kne,{}),o,se.jsx(Mne,{}),se.jsx(Une,{}),se.jsx(qne,{})]})})]})},Hne=()=>{const{pathname:e}=Wn();return V.useEffect(()=>{window.scrollTo(0,0)},[e]),null},sve=["debug","info","warning","error"],uve=[100,200,500,1e3],$ne={error:"text-error",warning:"text-warning",info:"text-info",debug:"opacity-50"},lve="https://www.zigbee2mqtt.io/advanced/support-new-devices/01_support_new_devices.html",cve="https://www.zigbee2mqtt.io/guide/configuration/devices-groups.html#generic-device-options",fve="https://www.zigbee2mqtt.io/guide/usage/groups.html#configuration",dve="https://www.zigbee2mqtt.io/guide/configuration/",vve="https://www.zigbee2mqtt.io/guide/usage/mqtt_topics_and_messages.html",hve="https://www.zigbee2mqtt.io/advanced/more/external_converters.html",pve="https://github.com/Nerivec/z2m-external-converter-dev",gve="https://www.zigbee2mqtt.io/advanced/more/external_extensions.html",mve="https://www.zigbee2mqtt.io/guide/configuration/device-availability.html#availability-advanced-configuration",yve="https://www.digitalocean.com/community/tutorials/load-average-in-linux",bve="https://mqtt.org/mqtt-specification/",_ve="https://nodejs.org/en/about/previous-releases",Gne="https://github.com/Nerivec/zigbee2mqtt-windfront/issues/new",Sve="https://github.com/Koenkk/zigbee2mqtt/issues/new",Eve="https://github.com/Koenkk/zigbee-herdsman-converters/issues/new",Tve="https://github.com/Koenkk/zigbee2mqtt/commit/",Rve="https://github.com/Nerivec/zigbee2mqtt-windfront/releases/tag/v",Ove="https://github.com/Koenkk/zigbee2mqtt/releases/tag/",Ave="https://github.com/Koenkk/zigbee-herdsman-converters/releases/tag/v",wve="https://github.com/Koenkk/zigbee-herdsman/releases/tag/v";var Vne=(e=>(e.Pending="PENDING",e.InProgress="IN_PROGRESS",e.Successful="SUCCESSFUL",e.Failed="FAILED",e))(Vne||{});function Wne({idx:e,log:r,expiry:a,remove:i}){const[o]=V.useState(Date.now()+a);return V.useEffect(()=>{const u=setTimeout(()=>{i(e)},o-Date.now());return()=>{clearTimeout(u)}},[e,i,o]),se.jsx("div",{className:`alert ${$ne[r.level]} break-all cursor-pointer select-none`,onClick:()=>i(e),children:r.message})}const Yne=5e3,vP=["MQTT publish"];function Kne(){const e=us(u=>u.bridgeInfo.config.frontend.notification_filter),r=us(u=>u.lastNonDebugLog),[a,i]=V.useState([]);V.useEffect(()=>{r&&!(e?vP.concat(e):vP).some(u=>new RegExp(u).test(r.message))&&i([...a,r])},[r]);const o=V.useCallback(u=>{const l=Array.from(a);l.splice(u,1),i(l)},[a]);return se.jsx("div",{className:"toast max-w-prose",children:a.slice(0,qn.get(Pne,1)).map((u,l)=>se.jsx(Wne,{idx:l,log:u,expiry:Yne,remove:o},`${u.timestamp}-${u.message}`))})}function Nt(e){return`Minified Redux error #${e}; visit https://redux.js.org/Errors?code=${e} for the full message or use the non-minified dev environment for full errors. `}var Qne=typeof Symbol=="function"&&Symbol.observable||"@@observable",hP=Qne,vy=()=>Math.random().toString(36).substring(7).split("").join("."),Zne={INIT:`@@redux/INIT${vy()}`,REPLACE:`@@redux/REPLACE${vy()}`,PROBE_UNKNOWN_ACTION:()=>`@@redux/PROBE_UNKNOWN_ACTION${vy()}`},pf=Zne;function Hb(e){if(typeof e!="object"||e===null)return!1;let r=e;for(;Object.getPrototypeOf(r)!==null;)r=Object.getPrototypeOf(r);return Object.getPrototypeOf(e)===r||Object.getPrototypeOf(e)===null}function uB(e,r,a){if(typeof e!="function")throw new Error(Nt(2));if(typeof r=="function"&&typeof a=="function"||typeof a=="function"&&typeof arguments[3]=="function")throw new Error(Nt(0));if(typeof r=="function"&&typeof a>"u"&&(a=r,r=void 0),typeof a<"u"){if(typeof a!="function")throw new Error(Nt(1));return a(uB)(e,r)}let i=e,o=r,u=new Map,l=u,f=0,d=!1;function v(){l===u&&(l=new Map,u.forEach((T,S)=>{l.set(S,T)}))}function h(){if(d)throw new Error(Nt(3));return o}function p(T){if(typeof T!="function")throw new Error(Nt(4));if(d)throw new Error(Nt(5));let S=!0;v();const R=f++;return l.set(R,T),function(){if(S){if(d)throw new Error(Nt(6));S=!1,v(),l.delete(R),u=null}}}function m(T){if(!Hb(T))throw new Error(Nt(7));if(typeof T.type>"u")throw new Error(Nt(8));if(typeof T.type!="string")throw new Error(Nt(17));if(d)throw new Error(Nt(9));try{d=!0,o=i(o,T)}finally{d=!1}return(u=l).forEach(R=>{R()}),T}function y(T){if(typeof T!="function")throw new Error(Nt(10));i=T,m({type:pf.REPLACE})}function b(){const T=p;return{subscribe(S){if(typeof S!="object"||S===null)throw new Error(Nt(11));function R(){const w=S;w.next&&w.next(h())}return R(),{unsubscribe:T(R)}},[hP](){return this}}}return m({type:pf.INIT}),{dispatch:m,subscribe:p,getState:h,replaceReducer:y,[hP]:b}}function Xne(e){Object.keys(e).forEach(r=>{const a=e[r];if(typeof a(void 0,{type:pf.INIT})>"u")throw new Error(Nt(12));if(typeof a(void 0,{type:pf.PROBE_UNKNOWN_ACTION()})>"u")throw new Error(Nt(13))})}function Jne(e){const r=Object.keys(e),a={};for(let u=0;u<r.length;u++){const l=r[u];typeof e[l]=="function"&&(a[l]=e[l])}const i=Object.keys(a);let o;try{Xne(a)}catch(u){o=u}return function(l={},f){if(o)throw o;let d=!1;const v={};for(let h=0;h<i.length;h++){const p=i[h],m=a[p],y=l[p],b=m(y,f);if(typeof b>"u")throw f&&f.type,new Error(Nt(14));v[p]=b,d=d||b!==y}return d=d||i.length!==Object.keys(l).length,d?v:l}}function gf(...e){return e.length===0?r=>r:e.length===1?e[0]:e.reduce((r,a)=>(...i)=>r(a(...i)))}function eie(...e){return r=>(a,i)=>{const o=r(a,i);let u=()=>{throw new Error(Nt(15))};const l={getState:o.getState,dispatch:(d,...v)=>u(d,...v)},f=e.map(d=>d(l));return u=gf(...f)(o.dispatch),{...o,dispatch:u}}}function rie(e){return Hb(e)&&"type"in e&&typeof e.type=="string"}var lB=Symbol.for("immer-nothing"),pP=Symbol.for("immer-draftable"),da=Symbol.for("immer-state");function Ba(e,...r){throw new Error(`[Immer] minified error nr: ${e}. Full error at: https://bit.ly/3cXEKWf`)}var fs=Object.getPrototypeOf;function Zi(e){return!!e&&!!e[da]}function zn(e){return e?cB(e)||Array.isArray(e)||!!e[pP]||!!e.constructor?.[pP]||gd(e)||md(e):!1}var tie=Object.prototype.constructor.toString();function cB(e){if(!e||typeof e!="object")return!1;const r=fs(e);if(r===null)return!0;const a=Object.hasOwnProperty.call(r,"constructor")&&r.constructor;return a===Object?!0:typeof a=="function"&&Function.toString.call(a)===tie}function mf(e,r){pd(e)===0?Reflect.ownKeys(e).forEach(a=>{r(a,e[a],e)}):e.forEach((a,i)=>r(i,a,e))}function pd(e){const r=e[da];return r?r.type_:Array.isArray(e)?1:gd(e)?2:md(e)?3:0}function O4(e,r){return pd(e)===2?e.has(r):Object.prototype.hasOwnProperty.call(e,r)}function fB(e,r,a){const i=pd(e);i===2?e.set(r,a):i===3?e.add(a):e[r]=a}function aie(e,r){return e===r?e!==0||1/e===1/r:e!==e&&r!==r}function gd(e){return e instanceof Map}function md(e){return e instanceof Set}function Gi(e){return e.copy_||e.base_}function A4(e,r){if(gd(e))return new Map(e);if(md(e))return new Set(e);if(Array.isArray(e))return Array.prototype.slice.call(e);const a=cB(e);if(r===!0||r==="class_only"&&!a){const i=Object.getOwnPropertyDescriptors(e);delete i[da];let o=Reflect.ownKeys(i);for(let u=0;u<o.length;u++){const l=o[u],f=i[l];f.writable===!1&&(f.writable=!0,f.configurable=!0),(f.get||f.set)&&(i[l]={configurable:!0,writable:!0,enumerable:f.enumerable,value:e[l]})}return Object.create(fs(e),i)}else{const i=fs(e);if(i!==null&&a)return{...e};const o=Object.create(i);return Object.assign(o,e)}}function $b(e,r=!1){return yd(e)||Zi(e)||!zn(e)||(pd(e)>1&&(e.set=e.add=e.clear=e.delete=nie),Object.freeze(e),r&&Object.entries(e).forEach(([a,i])=>$b(i,!0))),e}function nie(){Ba(2)}function yd(e){return Object.isFrozen(e)}var iie={};function Xi(e){const r=iie[e];return r||Ba(0,e),r}var Yu;function dB(){return Yu}function oie(e,r){return{drafts_:[],parent_:e,immer_:r,canAutoFreeze_:!0,unfinalizedDrafts_:0}}function gP(e,r){r&&(Xi("Patches"),e.patches_=[],e.inversePatches_=[],e.patchListener_=r)}function w4(e){x4(e),e.drafts_.forEach(sie),e.drafts_=null}function x4(e){e===Yu&&(Yu=e.parent_)}function mP(e){return Yu=oie(Yu,e)}function sie(e){const r=e[da];r.type_===0||r.type_===1?r.revoke_():r.revoked_=!0}function yP(e,r){r.unfinalizedDrafts_=r.drafts_.length;const a=r.drafts_[0];return e!==void 0&&e!==a?(a[da].modified_&&(w4(r),Ba(4)),zn(e)&&(e=yf(r,e),r.parent_||bf(r,e)),r.patches_&&Xi("Patches").generateReplacementPatches_(a[da].base_,e,r.patches_,r.inversePatches_)):e=yf(r,a,[]),w4(r),r.patches_&&r.patchListener_(r.patches_,r.inversePatches_),e!==lB?e:void 0}function yf(e,r,a){if(yd(r))return r;const i=r[da];if(!i)return mf(r,(o,u)=>bP(e,i,r,o,u,a)),r;if(i.scope_!==e)return r;if(!i.modified_)return bf(e,i.base_,!0),i.base_;if(!i.finalized_){i.finalized_=!0,i.scope_.unfinalizedDrafts_--;const o=i.copy_;let u=o,l=!1;i.type_===3&&(u=new Set(o),o.clear(),l=!0),mf(u,(f,d)=>bP(e,i,o,f,d,a,l)),bf(e,o,!1),a&&e.patches_&&Xi("Patches").generatePatches_(i,a,e.patches_,e.inversePatches_)}return i.copy_}function bP(e,r,a,i,o,u,l){if(Zi(o)){const f=u&&r&&r.type_!==3&&!O4(r.assigned_,i)?u.concat(i):void 0,d=yf(e,o,f);if(fB(a,i,d),Zi(d))e.canAutoFreeze_=!1;else return}else l&&a.add(o);if(zn(o)&&!yd(o)){if(!e.immer_.autoFreeze_&&e.unfinalizedDrafts_<1)return;yf(e,o),(!r||!r.scope_.parent_)&&typeof i!="symbol"&&Object.prototype.propertyIsEnumerable.call(a,i)&&bf(e,o)}}function bf(e,r,a=!1){!e.parent_&&e.immer_.autoFreeze_&&e.canAutoFreeze_&&$b(r,a)}function uie(e,r){const a=Array.isArray(e),i={type_:a?1:0,scope_:r?r.scope_:dB(),modified_:!1,finalized_:!1,assigned_:{},parent_:r,base_:e,draft_:null,copy_:null,revoke_:null,isManual_:!1};let o=i,u=Gb;a&&(o=[i],u=Ku);const{revoke:l,proxy:f}=Proxy.revocable(o,u);return i.draft_=f,i.revoke_=l,f}var Gb={get(e,r){if(r===da)return e;const a=Gi(e);if(!O4(a,r))return lie(e,a,r);const i=a[r];return e.finalized_||!zn(i)?i:i===hy(e.base_,r)?(py(e),e.copy_[r]=I4(i,e)):i},has(e,r){return r in Gi(e)},ownKeys(e){return Reflect.ownKeys(Gi(e))},set(e,r,a){const i=vB(Gi(e),r);if(i?.set)return i.set.call(e.draft_,a),!0;if(!e.modified_){const o=hy(Gi(e),r),u=o?.[da];if(u&&u.base_===a)return e.copy_[r]=a,e.assigned_[r]=!1,!0;if(aie(a,o)&&(a!==void 0||O4(e.base_,r)))return!0;py(e),C4(e)}return e.copy_[r]===a&&(a!==void 0||r in e.copy_)||Number.isNaN(a)&&Number.isNaN(e.copy_[r])||(e.copy_[r]=a,e.assigned_[r]=!0),!0},deleteProperty(e,r){return hy(e.base_,r)!==void 0||r in e.base_?(e.assigned_[r]=!1,py(e),C4(e)):delete e.assigned_[r],e.copy_&&delete e.copy_[r],!0},getOwnPropertyDescriptor(e,r){const a=Gi(e),i=Reflect.getOwnPropertyDescriptor(a,r);return i&&{writable:!0,configurable:e.type_!==1||r!=="length",enumerable:i.enumerable,value:a[r]}},defineProperty(){Ba(11)},getPrototypeOf(e){return fs(e.base_)},setPrototypeOf(){Ba(12)}},Ku={};mf(Gb,(e,r)=>{Ku[e]=function(){return arguments[0]=arguments[0][0],r.apply(this,arguments)}});Ku.deleteProperty=function(e,r){return Ku.set.call(this,e,r,void 0)};Ku.set=function(e,r,a){return Gb.set.call(this,e[0],r,a,e[0])};function hy(e,r){const a=e[da];return(a?Gi(a):e)[r]}function lie(e,r,a){const i=vB(r,a);return i?"value"in i?i.value:i.get?.call(e.draft_):void 0}function vB(e,r){if(!(r in e))return;let a=fs(e);for(;a;){const i=Object.getOwnPropertyDescriptor(a,r);if(i)return i;a=fs(a)}}function C4(e){e.modified_||(e.modified_=!0,e.parent_&&C4(e.parent_))}function py(e){e.copy_||(e.copy_=A4(e.base_,e.scope_.immer_.useStrictShallowCopy_))}var cie=class{constructor(e){this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.produce=(r,a,i)=>{if(typeof r=="function"&&typeof a!="function"){const u=a;a=r;const l=this;return function(d=u,...v){return l.produce(d,h=>a.call(this,h,...v))}}typeof a!="function"&&Ba(6),i!==void 0&&typeof i!="function"&&Ba(7);let o;if(zn(r)){const u=mP(this),l=I4(r,void 0);let f=!0;try{o=a(l),f=!1}finally{f?w4(u):x4(u)}return gP(u,i),yP(o,u)}else if(!r||typeof r!="object"){if(o=a(r),o===void 0&&(o=r),o===lB&&(o=void 0),this.autoFreeze_&&$b(o,!0),i){const u=[],l=[];Xi("Patches").generateReplacementPatches_(r,o,u,l),i(u,l)}return o}else Ba(1,r)},this.produceWithPatches=(r,a)=>{if(typeof r=="function")return(l,...f)=>this.produceWithPatches(l,d=>r(d,...f));let i,o;return[this.produce(r,a,(l,f)=>{i=l,o=f}),i,o]},typeof e?.autoFreeze=="boolean"&&this.setAutoFreeze(e.autoFreeze),typeof e?.useStrictShallowCopy=="boolean"&&this.setUseStrictShallowCopy(e.useStrictShallowCopy)}createDraft(e){zn(e)||Ba(8),Zi(e)&&(e=fie(e));const r=mP(this),a=I4(e,void 0);return a[da].isManual_=!0,x4(r),a}finishDraft(e,r){const a=e&&e[da];(!a||!a.isManual_)&&Ba(9);const{scope_:i}=a;return gP(i,r),yP(void 0,i)}setAutoFreeze(e){this.autoFreeze_=e}setUseStrictShallowCopy(e){this.useStrictShallowCopy_=e}applyPatches(e,r){let a;for(a=r.length-1;a>=0;a--){const o=r[a];if(o.path.length===0&&o.op==="replace"){e=o.value;break}}a>-1&&(r=r.slice(a+1));const i=Xi("Patches").applyPatches_;return Zi(e)?i(e,r):this.produce(e,o=>i(o,r))}};function I4(e,r){const a=gd(e)?Xi("MapSet").proxyMap_(e,r):md(e)?Xi("MapSet").proxySet_(e,r):uie(e,r);return(r?r.scope_:dB()).drafts_.push(a),a}function fie(e){return Zi(e)||Ba(10,e),hB(e)}function hB(e){if(!zn(e)||yd(e))return e;const r=e[da];let a;if(r){if(!r.modified_)return r.base_;r.finalized_=!0,a=A4(e,r.scope_.immer_.useStrictShallowCopy_)}else a=A4(e,!0);return mf(a,(i,o)=>{fB(a,i,hB(o))}),r&&(r.finalized_=!1),a}var va=new cie,pB=va.produce;va.produceWithPatches.bind(va);va.setAutoFreeze.bind(va);va.setUseStrictShallowCopy.bind(va);va.applyPatches.bind(va);va.createDraft.bind(va);va.finishDraft.bind(va);function gB(e){return({dispatch:a,getState:i})=>o=>u=>typeof u=="function"?u(a,i,e):o(u)}var die=gB(),vie=gB,hie=typeof window<"u"&&window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__?window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__:function(){if(arguments.length!==0)return typeof arguments[0]=="object"?gf:gf.apply(null,arguments)};function _P(e,r){function a(...i){if(r){let o=r(...i);if(!o)throw new Error(Dn(0));return{type:e,payload:o.payload,..."meta"in o&&{meta:o.meta},..."error"in o&&{error:o.error}}}return{type:e,payload:i[0]}}return a.toString=()=>`${e}`,a.type=e,a.match=i=>rie(i)&&i.type===e,a}var mB=class ju extends Array{constructor(...r){super(...r),Object.setPrototypeOf(this,ju.prototype)}static get[Symbol.species](){return ju}concat(...r){return super.concat.apply(this,r)}prepend(...r){return r.length===1&&Array.isArray(r[0])?new ju(...r[0].concat(this)):new ju(...r.concat(this))}};function SP(e){return zn(e)?pB(e,()=>{}):e}function qc(e,r,a){return e.has(r)?e.get(r):e.set(r,a(r)).get(r)}function pie(e){return typeof e=="boolean"}var gie=()=>function(r){const{thunk:a=!0,immutableCheck:i=!0,serializableCheck:o=!0,actionCreatorCheck:u=!0}=r??{};let l=new mB;return a&&(pie(a)?l.push(die):l.push(vie(a.extraArgument))),l},mie="RTK_autoBatch",EP=e=>r=>{setTimeout(r,e)},yie=(e={type:"raf"})=>r=>(...a)=>{const i=r(...a);let o=!0,u=!1,l=!1;const f=new Set,d=e.type==="tick"?queueMicrotask:e.type==="raf"?typeof window<"u"&&window.requestAnimationFrame?window.requestAnimationFrame:EP(10):e.type==="callback"?e.queueNotification:EP(e.timeout),v=()=>{l=!1,u&&(u=!1,f.forEach(h=>h()))};return Object.assign({},i,{subscribe(h){const p=()=>o&&h(),m=i.subscribe(p);return f.add(h),()=>{m(),f.delete(h)}},dispatch(h){try{return o=!h?.meta?.[mie],u=!o,u&&(l||(l=!0,d(v))),i.dispatch(h)}finally{o=!0}}})},bie=e=>function(a){const{autoBatch:i=!0}=a??{};let o=new mB(e);return i&&o.push(yie(typeof i=="object"?i:void 0)),o};function _ie(e){const r=gie(),{reducer:a=void 0,middleware:i,devTools:o=!0,preloadedState:u=void 0,enhancers:l=void 0}=e||{};let f;if(typeof a=="function")f=a;else if(Hb(a))f=Jne(a);else throw new Error(Dn(1));let d;typeof i=="function"?d=i(r):d=r();let v=gf;o&&(v=hie({trace:!1,...typeof o=="object"&&o}));const h=eie(...d),p=bie(h);let m=typeof l=="function"?l(p):p();const y=v(...m);return uB(f,u,y)}function yB(e){const r={},a=[];let i;const o={addCase(u,l){const f=typeof u=="string"?u:u.type;if(!f)throw new Error(Dn(28));if(f in r)throw new Error(Dn(29));return r[f]=l,o},addMatcher(u,l){return a.push({matcher:u,reducer:l}),o},addDefaultCase(u){return i=u,o}};return e(o),[r,a,i]}function Sie(e){return typeof e=="function"}function Eie(e,r){let[a,i,o]=yB(r),u;if(Sie(e))u=()=>SP(e());else{const f=SP(e);u=()=>f}function l(f=u(),d){let v=[a[d.type],...i.filter(({matcher:h})=>h(d)).map(({reducer:h})=>h)];return v.filter(h=>!!h).length===0&&(v=[o]),v.reduce((h,p)=>{if(p)if(Zi(h)){const y=p(h,d);return y===void 0?h:y}else{if(zn(h))return pB(h,m=>p(m,d));{const m=p(h,d);if(m===void 0){if(h===null)return h;throw Error("A case reducer on a non-draftable value must not return undefined")}return m}}return h},f)}return l.getInitialState=u,l}var Tie=Symbol.for("rtk-slice-createasyncthunk");function Rie(e,r){return`${e}/${r}`}function Oie({creators:e}={}){const r=e?.asyncThunk?.[Tie];return function(i){const{name:o,reducerPath:u=o}=i;if(!o)throw new Error(Dn(11));const l=(typeof i.reducers=="function"?i.reducers(xie()):i.reducers)||{},f=Object.keys(l),d={sliceCaseReducersByName:{},sliceCaseReducersByType:{},actionCreators:{},sliceMatchers:[]},v={addCase(O,w){const A=typeof O=="string"?O:O.type;if(!A)throw new Error(Dn(12));if(A in d.sliceCaseReducersByType)throw new Error(Dn(13));return d.sliceCaseReducersByType[A]=w,v},addMatcher(O,w){return d.sliceMatchers.push({matcher:O,reducer:w}),v},exposeAction(O,w){return d.actionCreators[O]=w,v},exposeCaseReducer(O,w){return d.sliceCaseReducersByName[O]=w,v}};f.forEach(O=>{const w=l[O],A={reducerName:O,type:Rie(o,O),createNotation:typeof i.reducers=="function"};Iie(w)?Mie(A,w,v,r):Cie(A,w,v)});function h(){const[O={},w=[],A=void 0]=typeof i.extraReducers=="function"?yB(i.extraReducers):[i.extraReducers],I={...O,...d.sliceCaseReducersByType};return Eie(i.initialState,q=>{for(let M in I)q.addCase(M,I[M]);for(let M of d.sliceMatchers)q.addMatcher(M.matcher,M.reducer);for(let M of w)q.addMatcher(M.matcher,M.reducer);A&&q.addDefaultCase(A)})}const p=O=>O,m=new Map,y=new WeakMap;let b;function E(O,w){return b||(b=h()),b(O,w)}function T(){return b||(b=h()),b.getInitialState()}function S(O,w=!1){function A(q){let M=q[O];return typeof M>"u"&&w&&(M=qc(y,A,T)),M}function I(q=p){const M=qc(m,w,()=>new WeakMap);return qc(M,q,()=>{const L={};for(const[z,j]of Object.entries(i.selectors??{}))L[z]=Aie(j,q,()=>qc(y,q,T),w);return L})}return{reducerPath:O,getSelectors:I,get selectors(){return I(A)},selectSlice:A}}const R={name:o,reducer:E,actions:d.actionCreators,caseReducers:d.sliceCaseReducersByName,getInitialState:T,...S(u),injectInto(O,{reducerPath:w,...A}={}){const I=w??u;return O.inject({reducerPath:I,reducer:E},A),{...R,...S(I,!0)}}};return R}}function Aie(e,r,a,i){function o(u,...l){let f=r(u);return typeof f>"u"&&i&&(f=a()),e(f,...l)}return o.unwrapped=e,o}var wie=Oie();function xie(){function e(r,a){return{_reducerDefinitionType:"asyncThunk",payloadCreator:r,...a}}return e.withTypes=()=>e,{reducer(r){return Object.assign({[r.name](...a){return r(...a)}}[r.name],{_reducerDefinitionType:"reducer"})},preparedReducer(r,a){return{_reducerDefinitionType:"reducerWithPrepare",prepare:r,reducer:a}},asyncThunk:e}}function Cie({type:e,reducerName:r,createNotation:a},i,o){let u,l;if("reducer"in i){if(a&&!qie(i))throw new Error(Dn(17));u=i.reducer,l=i.prepare}else u=i;o.addCase(e,u).exposeCaseReducer(r,u).exposeAction(r,l?_P(e,l):_P(e))}function Iie(e){return e._reducerDefinitionType==="asyncThunk"}function qie(e){return e._reducerDefinitionType==="reducerWithPrepare"}function Mie({type:e,reducerName:r},a,i,o){if(!o)throw new Error(Dn(18));const{payloadCreator:u,fulfilled:l,pending:f,rejected:d,settled:v,options:h}=a,p=o(e,u,h);i.exposeAction(r,p),l&&i.addCase(p.fulfilled,l),f&&i.addCase(p.pending,f),d&&i.addCase(p.rejected,d),v&&i.addMatcher(p.settled,v),i.exposeCaseReducer(r,{fulfilled:l||Mc,pending:f||Mc,rejected:d||Mc,settled:v||Mc})}function Mc(){}function Dn(e){return`Minified Redux Toolkit error #${e}; visit https://redux-toolkit.js.org/Errors?code=${e} for the full message or use the non-minified dev environment for full errors. `}var gy,TP;function Nie(){if(TP)return gy;TP=1;function e(){this.__data__=[],this.size=0}return gy=e,gy}var my,RP;function bd(){if(RP)return my;RP=1;function e(r,a){return r===a||r!==r&&a!==a}return my=e,my}var yy,OP;function _d(){if(OP)return yy;OP=1;var e=bd();function r(a,i){for(var o=a.length;o--;)if(e(a[o][0],i))return o;return-1}return yy=r,yy}var by,AP;function Lie(){if(AP)return by;AP=1;var e=_d(),r=Array.prototype,a=r.splice;function i(o){var u=this.__data__,l=e(u,o);if(l<0)return!1;var f=u.length-1;return l==f?u.pop():a.call(u,l,1),--this.size,!0}return by=i,by}var _y,wP;function Die(){if(wP)return _y;wP=1;var e=_d();function r(a){var i=this.__data__,o=e(i,a);return o<0?void 0:i[o][1]}return _y=r,_y}var Sy,xP;function Pie(){if(xP)return Sy;xP=1;var e=_d();function r(a){return e(this.__data__,a)>-1}return Sy=r,Sy}var Ey,CP;function jie(){if(CP)return Ey;CP=1;var e=_d();function r(a,i){var o=this.__data__,u=e(o,a);return u<0?(++this.size,o.push([a,i])):o[u][1]=i,this}return Ey=r,Ey}var Ty,IP;function Sd(){if(IP)return Ty;IP=1;var e=Nie(),r=Lie(),a=Die(),i=Pie(),o=jie();function u(l){var f=-1,d=l==null?0:l.length;for(this.clear();++f<d;){var v=l[f];this.set(v[0],v[1])}}return u.prototype.clear=e,u.prototype.delete=r,u.prototype.get=a,u.prototype.has=i,u.prototype.set=o,Ty=u,Ty}var Ry,qP;function kie(){if(qP)return Ry;qP=1;var e=Sd();function r(){this.__data__=new e,this.size=0}return Ry=r,Ry}var Oy,MP;function zie(){if(MP)return Oy;MP=1;function e(r){var a=this.__data__,i=a.delete(r);return this.size=a.size,i}return Oy=e,Oy}var Ay,NP;function Uie(){if(NP)return Ay;NP=1;function e(r){return this.__data__.get(r)}return Ay=e,Ay}var wy,LP;function Fie(){if(LP)return wy;LP=1;function e(r){return this.__data__.has(r)}return wy=e,wy}var xy,DP;function bB(){if(DP)return xy;DP=1;var e=typeof rn=="object"&&rn&&rn.Object===Object&&rn;return xy=e,xy}var Cy,PP;function Ls(){if(PP)return Cy;PP=1;var e=bB(),r=typeof self=="object"&&self&&self.Object===Object&&self,a=e||r||Function("return this")();return Cy=a,Cy}var Iy,jP;function _B(){if(jP)return Iy;jP=1;var e=Ls(),r=e.Symbol;return Iy=r,Iy}var qy,kP;function Bie(){if(kP)return qy;kP=1;var e=_B(),r=Object.prototype,a=r.hasOwnProperty,i=r.toString,o=e?e.toStringTag:void 0;function u(l){var f=a.call(l,o),d=l[o];try{l[o]=void 0;var v=!0}catch{}var h=i.call(l);return v&&(f?l[o]=d:delete l[o]),h}return qy=u,qy}var My,zP;function Hie(){if(zP)return My;zP=1;var e=Object.prototype,r=e.toString;function a(i){return r.call(i)}return My=a,My}var Ny,UP;function Ed(){if(UP)return Ny;UP=1;var e=_B(),r=Bie(),a=Hie(),i="[object Null]",o="[object Undefined]",u=e?e.toStringTag:void 0;function l(f){return f==null?f===void 0?o:i:u&&u in Object(f)?r(f):a(f)}return Ny=l,Ny}var Ly,FP;function mo(){if(FP)return Ly;FP=1;function e(r){var a=typeof r;return r!=null&&(a=="object"||a=="function")}return Ly=e,Ly}var Dy,BP;function Vb(){if(BP)return Dy;BP=1;var e=Ed(),r=mo(),a="[object AsyncFunction]",i="[object Function]",o="[object GeneratorFunction]",u="[object Proxy]";function l(f){if(!r(f))return!1;var d=e(f);return d==i||d==o||d==a||d==u}return Dy=l,Dy}var Py,HP;function $ie(){if(HP)return Py;HP=1;var e=Ls(),r=e["__core-js_shared__"];return Py=r,Py}var jy,$P;function Gie(){if($P)return jy;$P=1;var e=$ie(),r=function(){var i=/[^.]+$/.exec(e&&e.keys&&e.keys.IE_PROTO||"");return i?"Symbol(src)_1."+i:""}();function a(i){return!!r&&r in i}return jy=a,jy}var ky,GP;function Vie(){if(GP)return ky;GP=1;var e=Function.prototype,r=e.toString;function a(i){if(i!=null){try{return r.call(i)}catch{}try{return i+""}catch{}}return""}return ky=a,ky}var zy,VP;function Wie(){if(VP)return zy;VP=1;var e=Vb(),r=Gie(),a=mo(),i=Vie(),o=/[\\^$.*+?()[\]{}|]/g,u=/^\[object .+?Constructor\]$/,l=Function.prototype,f=Object.prototype,d=l.toString,v=f.hasOwnProperty,h=RegExp("^"+d.call(v).replace(o,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function p(m){if(!a(m)||r(m))return!1;var y=e(m)?h:u;return y.test(i(m))}return zy=p,zy}var Uy,WP;function Yie(){if(WP)return Uy;WP=1;function e(r,a){return r?.[a]}return Uy=e,Uy}var Fy,YP;function Wb(){if(YP)return Fy;YP=1;var e=Wie(),r=Yie();function a(i,o){var u=r(i,o);return e(u)?u:void 0}return Fy=a,Fy}var By,KP;function SB(){if(KP)return By;KP=1;var e=Wb(),r=Ls(),a=e(r,"Map");return By=a,By}var Hy,QP;function Td(){if(QP)return Hy;QP=1;var e=Wb(),r=e(Object,"create");return Hy=r,Hy}var $y,ZP;function Kie(){if(ZP)return $y;ZP=1;var e=Td();function r(){this.__data__=e?e(null):{},this.size=0}return $y=r,$y}var Gy,XP;function Qie(){if(XP)return Gy;XP=1;function e(r){var a=this.has(r)&&delete this.__data__[r];return this.size-=a?1:0,a}return Gy=e,Gy}var Vy,JP;function Zie(){if(JP)return Vy;JP=1;var e=Td(),r="__lodash_hash_undefined__",a=Object.prototype,i=a.hasOwnProperty;function o(u){var l=this.__data__;if(e){var f=l[u];return f===r?void 0:f}return i.call(l,u)?l[u]:void 0}return Vy=o,Vy}var Wy,ej;function Xie(){if(ej)return Wy;ej=1;var e=Td(),r=Object.prototype,a=r.hasOwnProperty;function i(o){var u=this.__data__;return e?u[o]!==void 0:a.call(u,o)}return Wy=i,Wy}var Yy,rj;function Jie(){if(rj)return Yy;rj=1;var e=Td(),r="__lodash_hash_undefined__";function a(i,o){var u=this.__data__;return this.size+=this.has(i)?0:1,u[i]=e&&o===void 0?r:o,this}return Yy=a,Yy}var Ky,tj;function eoe(){if(tj)return Ky;tj=1;var e=Kie(),r=Qie(),a=Zie(),i=Xie(),o=Jie();function u(l){var f=-1,d=l==null?0:l.length;for(this.clear();++f<d;){var v=l[f];this.set(v[0],v[1])}}return u.prototype.clear=e,u.prototype.delete=r,u.prototype.get=a,u.prototype.has=i,u.prototype.set=o,Ky=u,Ky}var Qy,aj;function roe(){if(aj)return Qy;aj=1;var e=eoe(),r=Sd(),a=SB();function i(){this.size=0,this.__data__={hash:new e,map:new(a||r),string:new e}}return Qy=i,Qy}var Zy,nj;function toe(){if(nj)return Zy;nj=1;function e(r){var a=typeof r;return a=="string"||a=="number"||a=="symbol"||a=="boolean"?r!=="__proto__":r===null}return Zy=e,Zy}var Xy,ij;function Rd(){if(ij)return Xy;ij=1;var e=toe();function r(a,i){var o=a.__data__;return e(i)?o[typeof i=="string"?"string":"hash"]:o.map}return Xy=r,Xy}var Jy,oj;function aoe(){if(oj)return Jy;oj=1;var e=Rd();function r(a){var i=e(this,a).delete(a);return this.size-=i?1:0,i}return Jy=r,Jy}var e0,sj;function noe(){if(sj)return e0;sj=1;var e=Rd();function r(a){return e(this,a).get(a)}return e0=r,e0}var r0,uj;function ioe(){if(uj)return r0;uj=1;var e=Rd();function r(a){return e(this,a).has(a)}return r0=r,r0}var t0,lj;function ooe(){if(lj)return t0;lj=1;var e=Rd();function r(a,i){var o=e(this,a),u=o.size;return o.set(a,i),this.size+=o.size==u?0:1,this}return t0=r,t0}var a0,cj;function soe(){if(cj)return a0;cj=1;var e=roe(),r=aoe(),a=noe(),i=ioe(),o=ooe();function u(l){var f=-1,d=l==null?0:l.length;for(this.clear();++f<d;){var v=l[f];this.set(v[0],v[1])}}return u.prototype.clear=e,u.prototype.delete=r,u.prototype.get=a,u.prototype.has=i,u.prototype.set=o,a0=u,a0}var n0,fj;function uoe(){if(fj)return n0;fj=1;var e=Sd(),r=SB(),a=soe(),i=200;function o(u,l){var f=this.__data__;if(f instanceof e){var d=f.__data__;if(!r||d.length<i-1)return d.push([u,l]),this.size=++f.size,this;f=this.__data__=new a(d)}return f.set(u,l),this.size=f.size,this}return n0=o,n0}var i0,dj;function loe(){if(dj)return i0;dj=1;var e=Sd(),r=kie(),a=zie(),i=Uie(),o=Fie(),u=uoe();function l(f){var d=this.__data__=new e(f);this.size=d.size}return l.prototype.clear=r,l.prototype.delete=a,l.prototype.get=i,l.prototype.has=o,l.prototype.set=u,i0=l,i0}var o0,vj;function EB(){if(vj)return o0;vj=1;var e=Wb(),r=function(){try{var a=e(Object,"defineProperty");return a({},"",{}),a}catch{}}();return o0=r,o0}var s0,hj;function Yb(){if(hj)return s0;hj=1;var e=EB();function r(a,i,o){i=="__proto__"&&e?e(a,i,{configurable:!0,enumerable:!0,value:o,writable:!0}):a[i]=o}return s0=r,s0}var u0,pj;function TB(){if(pj)return u0;pj=1;var e=Yb(),r=bd();function a(i,o,u){(u!==void 0&&!r(i[o],u)||u===void 0&&!(o in i))&&e(i,o,u)}return u0=a,u0}var l0,gj;function coe(){if(gj)return l0;gj=1;function e(r){return function(a,i,o){for(var u=-1,l=Object(a),f=o(a),d=f.length;d--;){var v=f[r?d:++u];if(i(l[v],v,l)===!1)break}return a}}return l0=e,l0}var c0,mj;function foe(){if(mj)return c0;mj=1;var e=coe(),r=e();return c0=r,c0}var ku={exports:{}};ku.exports;var yj;function doe(){return yj||(yj=1,function(e,r){var a=Ls(),i=r&&!r.nodeType&&r,o=i&&!0&&e&&!e.nodeType&&e,u=o&&o.exports===i,l=u?a.Buffer:void 0,f=l?l.allocUnsafe:void 0;function d(v,h){if(h)return v.slice();var p=v.length,m=f?f(p):new v.constructor(p);return v.copy(m),m}e.exports=d}(ku,ku.exports)),ku.exports}var f0,bj;function voe(){if(bj)return f0;bj=1;var e=Ls(),r=e.Uint8Array;return f0=r,f0}var d0,_j;function hoe(){if(_j)return d0;_j=1;var e=voe();function r(a){var i=new a.constructor(a.byteLength);return new e(i).set(new e(a)),i}return d0=r,d0}var v0,Sj;function poe(){if(Sj)return v0;Sj=1;var e=hoe();function r(a,i){var o=i?e(a.buffer):a.buffer;return new a.constructor(o,a.byteOffset,a.length)}return v0=r,v0}var h0,Ej;function goe(){if(Ej)return h0;Ej=1;function e(r,a){var i=-1,o=r.length;for(a||(a=Array(o));++i<o;)a[i]=r[i];return a}return h0=e,h0}var p0,Tj;function moe(){if(Tj)return p0;Tj=1;var e=mo(),r=Object.create,a=function(){function i(){}return function(o){if(!e(o))return{};if(r)return r(o);i.prototype=o;var u=new i;return i.prototype=void 0,u}}();return p0=a,p0}var g0,Rj;function yoe(){if(Rj)return g0;Rj=1;function e(r,a){return function(i){return r(a(i))}}return g0=e,g0}var m0,Oj;function RB(){if(Oj)return m0;Oj=1;var e=yoe(),r=e(Object.getPrototypeOf,Object);return m0=r,m0}var y0,Aj;function OB(){if(Aj)return y0;Aj=1;var e=Object.prototype;function r(a){var i=a&&a.constructor,o=typeof i=="function"&&i.prototype||e;return a===o}return y0=r,y0}var b0,wj;function boe(){if(wj)return b0;wj=1;var e=moe(),r=RB(),a=OB();function i(o){return typeof o.constructor=="function"&&!a(o)?e(r(o)):{}}return b0=i,b0}var _0,xj;function ml(){if(xj)return _0;xj=1;function e(r){return r!=null&&typeof r=="object"}return _0=e,_0}var S0,Cj;function _oe(){if(Cj)return S0;Cj=1;var e=Ed(),r=ml(),a="[object Arguments]";function i(o){return r(o)&&e(o)==a}return S0=i,S0}var E0,Ij;function AB(){if(Ij)return E0;Ij=1;var e=_oe(),r=ml(),a=Object.prototype,i=a.hasOwnProperty,o=a.propertyIsEnumerable,u=e(function(){return arguments}())?e:function(l){return r(l)&&i.call(l,"callee")&&!o.call(l,"callee")};return E0=u,E0}var T0,qj;function wB(){if(qj)return T0;qj=1;var e=Array.isArray;return T0=e,T0}var R0,Mj;function xB(){if(Mj)return R0;Mj=1;var e=9007199254740991;function r(a){return typeof a=="number"&&a>-1&&a%1==0&&a<=e}return R0=r,R0}var O0,Nj;function Kb(){if(Nj)return O0;Nj=1;var e=Vb(),r=xB();function a(i){return i!=null&&r(i.length)&&!e(i)}return O0=a,O0}var A0,Lj;function Soe(){if(Lj)return A0;Lj=1;var e=Kb(),r=ml();function a(i){return r(i)&&e(i)}return A0=a,A0}var zu={exports:{}},w0,Dj;function Eoe(){if(Dj)return w0;Dj=1;function e(){return!1}return w0=e,w0}zu.exports;var Pj;function CB(){return Pj||(Pj=1,function(e,r){var a=Ls(),i=Eoe(),o=r&&!r.nodeType&&r,u=o&&!0&&e&&!e.nodeType&&e,l=u&&u.exports===o,f=l?a.Buffer:void 0,d=f?f.isBuffer:void 0,v=d||i;e.exports=v}(zu,zu.exports)),zu.exports}var x0,jj;function Toe(){if(jj)return x0;jj=1;var e=Ed(),r=RB(),a=ml(),i="[object Object]",o=Function.prototype,u=Object.prototype,l=o.toString,f=u.hasOwnProperty,d=l.call(Object);function v(h){if(!a(h)||e(h)!=i)return!1;var p=r(h);if(p===null)return!0;var m=f.call(p,"constructor")&&p.constructor;return typeof m=="function"&&m instanceof m&&l.call(m)==d}return x0=v,x0}var C0,kj;function Roe(){if(kj)return C0;kj=1;var e=Ed(),r=xB(),a=ml(),i="[object Arguments]",o="[object Array]",u="[object Boolean]",l="[object Date]",f="[object Error]",d="[object Function]",v="[object Map]",h="[object Number]",p="[object Object]",m="[object RegExp]",y="[object Set]",b="[object String]",E="[object WeakMap]",T="[object ArrayBuffer]",S="[object DataView]",R="[object Float32Array]",O="[object Float64Array]",w="[object Int8Array]",A="[object Int16Array]",I="[object Int32Array]",q="[object Uint8Array]",M="[object Uint8ClampedArray]",L="[object Uint16Array]",z="[object Uint32Array]",j={};j[R]=j[O]=j[w]=j[A]=j[I]=j[q]=j[M]=j[L]=j[z]=!0,j[i]=j[o]=j[T]=j[u]=j[S]=j[l]=j[f]=j[d]=j[v]=j[h]=j[p]=j[m]=j[y]=j[b]=j[E]=!1;function U(F){return a(F)&&r(F.length)&&!!j[e(F)]}return C0=U,C0}var I0,zj;function Ooe(){if(zj)return I0;zj=1;function e(r){return function(a){return r(a)}}return I0=e,I0}var Uu={exports:{}};Uu.exports;var Uj;function Aoe(){return Uj||(Uj=1,function(e,r){var a=bB(),i=r&&!r.nodeType&&r,o=i&&!0&&e&&!e.nodeType&&e,u=o&&o.exports===i,l=u&&a.process,f=function(){try{var d=o&&o.require&&o.require("util").types;return d||l&&l.binding&&l.binding("util")}catch{}}();e.exports=f}(Uu,Uu.exports)),Uu.exports}var q0,Fj;function IB(){if(Fj)return q0;Fj=1;var e=Roe(),r=Ooe(),a=Aoe(),i=a&&a.isTypedArray,o=i?r(i):e;return q0=o,q0}var M0,Bj;function qB(){if(Bj)return M0;Bj=1;function e(r,a){if(!(a==="constructor"&&typeof r[a]=="function")&&a!="__proto__")return r[a]}return M0=e,M0}var N0,Hj;function woe(){if(Hj)return N0;Hj=1;var e=Yb(),r=bd(),a=Object.prototype,i=a.hasOwnProperty;function o(u,l,f){var d=u[l];(!(i.call(u,l)&&r(d,f))||f===void 0&&!(l in u))&&e(u,l,f)}return N0=o,N0}var L0,$j;function xoe(){if($j)return L0;$j=1;var e=woe(),r=Yb();function a(i,o,u,l){var f=!u;u||(u={});for(var d=-1,v=o.length;++d<v;){var h=o[d],p=l?l(u[h],i[h],h,u,i):void 0;p===void 0&&(p=i[h]),f?r(u,h,p):e(u,h,p)}return u}return L0=a,L0}var D0,Gj;function Coe(){if(Gj)return D0;Gj=1;function e(r,a){for(var i=-1,o=Array(r);++i<r;)o[i]=a(i);return o}return D0=e,D0}var P0,Vj;function MB(){if(Vj)return P0;Vj=1;var e=9007199254740991,r=/^(?:0|[1-9]\d*)$/;function a(i,o){var u=typeof i;return o=o??e,!!o&&(u=="number"||u!="symbol"&&r.test(i))&&i>-1&&i%1==0&&i<o}return P0=a,P0}var j0,Wj;function Ioe(){if(Wj)return j0;Wj=1;var e=Coe(),r=AB(),a=wB(),i=CB(),o=MB(),u=IB(),l=Object.prototype,f=l.hasOwnProperty;function d(v,h){var p=a(v),m=!p&&r(v),y=!p&&!m&&i(v),b=!p&&!m&&!y&&u(v),E=p||m||y||b,T=E?e(v.length,String):[],S=T.length;for(var R in v)(h||f.call(v,R))&&!(E&&(R=="length"||y&&(R=="offset"||R=="parent")||b&&(R=="buffer"||R=="byteLength"||R=="byteOffset")||o(R,S)))&&T.push(R);return T}return j0=d,j0}var k0,Yj;function qoe(){if(Yj)return k0;Yj=1;function e(r){var a=[];if(r!=null)for(var i in Object(r))a.push(i);return a}return k0=e,k0}var z0,Kj;function Moe(){if(Kj)return z0;Kj=1;var e=mo(),r=OB(),a=qoe(),i=Object.prototype,o=i.hasOwnProperty;function u(l){if(!e(l))return a(l);var f=r(l),d=[];for(var v in l)v=="constructor"&&(f||!o.call(l,v))||d.push(v);return d}return z0=u,z0}var U0,Qj;function NB(){if(Qj)return U0;Qj=1;var e=Ioe(),r=Moe(),a=Kb();function i(o){return a(o)?e(o,!0):r(o)}return U0=i,U0}var F0,Zj;function Noe(){if(Zj)return F0;Zj=1;var e=xoe(),r=NB();function a(i){return e(i,r(i))}return F0=a,F0}var B0,Xj;function Loe(){if(Xj)return B0;Xj=1;var e=TB(),r=doe(),a=poe(),i=goe(),o=boe(),u=AB(),l=wB(),f=Soe(),d=CB(),v=Vb(),h=mo(),p=Toe(),m=IB(),y=qB(),b=Noe();function E(T,S,R,O,w,A,I){var q=y(T,R),M=y(S,R),L=I.get(M);if(L){e(T,R,L);return}var z=A?A(q,M,R+"",T,S,I):void 0,j=z===void 0;if(j){var U=l(M),F=!U&&d(M),H=!U&&!F&&m(M);z=M,U||F||H?l(q)?z=q:f(q)?z=i(q):F?(j=!1,z=r(M,!0)):H?(j=!1,z=a(M,!0)):z=[]:p(M)||u(M)?(z=q,u(q)?z=b(q):(!h(q)||v(q))&&(z=o(M))):j=!1}j&&(I.set(M,z),w(z,M,O,A,I),I.delete(M)),e(T,R,z)}return B0=E,B0}var H0,Jj;function Doe(){if(Jj)return H0;Jj=1;var e=loe(),r=TB(),a=foe(),i=Loe(),o=mo(),u=NB(),l=qB();function f(d,v,h,p,m){d!==v&&a(v,function(y,b){if(m||(m=new e),o(y))i(d,v,b,h,f,p,m);else{var E=p?p(l(d,b),y,b+"",d,v,m):void 0;E===void 0&&(E=y),r(d,b,E)}},u)}return H0=f,H0}var $0,ek;function LB(){if(ek)return $0;ek=1;function e(r){return r}return $0=e,$0}var G0,rk;function Poe(){if(rk)return G0;rk=1;function e(r,a,i){switch(i.length){case 0:return r.call(a);case 1:return r.call(a,i[0]);case 2:return r.call(a,i[0],i[1]);case 3:return r.call(a,i[0],i[1],i[2])}return r.apply(a,i)}return G0=e,G0}var V0,tk;function joe(){if(tk)return V0;tk=1;var e=Poe(),r=Math.max;function a(i,o,u){return o=r(o===void 0?i.length-1:o,0),function(){for(var l=arguments,f=-1,d=r(l.length-o,0),v=Array(d);++f<d;)v[f]=l[o+f];f=-1;for(var h=Array(o+1);++f<o;)h[f]=l[f];return h[o]=u(v),e(i,this,h)}}return V0=a,V0}var W0,ak;function koe(){if(ak)return W0;ak=1;function e(r){return function(){return r}}return W0=e,W0}var Y0,nk;function zoe(){if(nk)return Y0;nk=1;var e=koe(),r=EB(),a=LB(),i=r?function(o,u){return r(o,"toString",{configurable:!0,enumerable:!1,value:e(u),writable:!0})}:a;return Y0=i,Y0}var K0,ik;function Uoe(){if(ik)return K0;ik=1;var e=800,r=16,a=Date.now;function i(o){var u=0,l=0;return function(){var f=a(),d=r-(f-l);if(l=f,d>0){if(++u>=e)return arguments[0]}else u=0;return o.apply(void 0,arguments)}}return K0=i,K0}var Q0,ok;function Foe(){if(ok)return Q0;ok=1;var e=zoe(),r=Uoe(),a=r(e);return Q0=a,Q0}var Z0,sk;function Boe(){if(sk)return Z0;sk=1;var e=LB(),r=joe(),a=Foe();function i(o,u){return a(r(o,u,e),o+"")}return Z0=i,Z0}var X0,uk;function Hoe(){if(uk)return X0;uk=1;var e=bd(),r=Kb(),a=MB(),i=mo();function o(u,l,f){if(!i(f))return!1;var d=typeof l;return(d=="number"?r(f)&&a(l,f.length):d=="string"&&l in f)?e(f[l],u):!1}return X0=o,X0}var J0,lk;function $oe(){if(lk)return J0;lk=1;var e=Boe(),r=Hoe();function a(i){return e(function(o,u){var l=-1,f=u.length,d=f>1?u[f-1]:void 0,v=f>2?u[2]:void 0;for(d=i.length>3&&typeof d=="function"?(f--,d):void 0,v&&r(u[0],u[1],v)&&(d=f<3?void 0:d,f=1),o=Object(o);++l<f;){var h=u[l];h&&i(o,h,l,d)}return o})}return J0=a,J0}var e4,ck;function Goe(){if(ck)return e4;ck=1;var e=Doe(),r=$oe(),a=r(function(i,o,u){e(i,o,u)});return e4=a,e4}var Voe=Goe();const fk=Hr(Voe);var lf={exports:{}},Woe=lf.exports,dk;function Yoe(){return dk||(dk=1,function(e,r){(function(a,i){i()})(Woe,function(){function a(v,h){return typeof h>"u"?h={autoBom:!1}:typeof h!="object"&&(console.warn("Deprecated: Expected third argument to be a object"),h={autoBom:!h}),h.autoBom&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(v.type)?new Blob(["\uFEFF",v],{type:v.type}):v}function i(v,h,p){var m=new XMLHttpRequest;m.open("GET",v),m.responseType="blob",m.onload=function(){d(m.response,h,p)},m.onerror=function(){console.error("could not download file")},m.send()}function o(v){var h=new XMLHttpRequest;h.open("HEAD",v,!1);try{h.send()}catch{}return 200<=h.status&&299>=h.status}function u(v){try{v.dispatchEvent(new MouseEvent("click"))}catch{var h=document.createEvent("MouseEvents");h.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),v.dispatchEvent(h)}}var l=typeof window=="object"&&window.window===window?window:typeof self=="object"&&self.self===self?self:typeof rn=="object"&&rn.global===rn?rn:void 0,f=l.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),d=l.saveAs||(typeof window!="object"||window!==l?function(){}:"download"in HTMLAnchorElement.prototype&&!f?function(v,h,p){var m=l.URL||l.webkitURL,y=document.createElement("a");h=h||v.name||"download",y.download=h,y.rel="noopener",typeof v=="string"?(y.href=v,y.origin===location.origin?u(y):o(y.href)?i(v,h,p):u(y,y.target="_blank")):(y.href=m.createObjectURL(v),setTimeout(function(){m.revokeObjectURL(y.href)},4e4),setTimeout(function(){u(y)},0))}:"msSaveOrOpenBlob"in navigator?function(v,h,p){if(h=h||v.name||"download",typeof v!="string")navigator.msSaveOrOpenBlob(a(v,p),h);else if(o(v))i(v,h,p);else{var m=document.createElement("a");m.href=v,m.target="_blank",setTimeout(function(){u(m)})}}:function(v,h,p,m){if(m=m||open("","_blank"),m&&(m.document.title=m.document.body.innerText="downloading..."),typeof v=="string")return i(v,h,p);var y=v.type==="application/octet-stream",b=/constructor/i.test(l.HTMLElement)||l.safari,E=/CriOS\/[\d]+/.test(navigator.userAgent);if((E||y&&b||f)&&typeof FileReader<"u"){var T=new FileReader;T.onloadend=function(){var O=T.result;O=E?O:O.replace(/^data:[^;]*;/,"data:attachment/file;"),m?m.location.href=O:location=O,m=null},T.readAsDataURL(v)}else{var S=l.URL||l.webkitURL,R=S.createObjectURL(v);m?m.location=R:location.href=R,m=null,setTimeout(function(){S.revokeObjectURL(R)},4e4)}});l.saveAs=d.saveAs=d,e.exports=d})}(lf)),lf.exports}var DB=Yoe();const xve=Hr(DB),Cve=(e,r,a)=>{const[i,o]=a,[u,l]=r;return(e-u)/(l-u)*(o-i)+i},Koe=e=>Math.random().toString(36).slice(2,2+e),Ive=e=>{for(const r in e)return r},vk=e=>JSON.stringify(e,(r,a)=>a===void 0?null:a),qve=(e,r)=>{if(e)switch(r){case"ISO_8601":case"ISO_8601_local":return new Date(Date.parse(e));case"epoch":return new Date(e);case"disable":return;default:console.warn(`Unknown last_seen type ${r}`);return}};function Lu(e){return e.toString().padStart(2,"0")}function Qoe(e){return`${[e.getFullYear(),Lu(e.getMonth()+1),Lu(e.getDate())].join("-")} ${[Lu(e.getHours()),Lu(e.getMinutes()),Lu(e.getSeconds())].join(":")}`}const Mve=(e,r=4)=>`0x${("0".repeat(r)+e.toString(16)).slice(-1*r).toUpperCase()}`,Nve=e=>e?e.replace(/:|\s|\//g,"-"):"NA";function Zoe(e){return!("members"in e)}const Lve=e=>{const r=new Set;if(!e)return r;if(Zoe(e)){for(const a in e.endpoints)r.add(Number.parseInt(a,10));if(e.definition?.exposes)for(const a of e.definition.exposes)a.endpoint&&r.add(a.endpoint)}else for(const a of e.members)r.add(a.endpoint);return r},Xoe=async(e,r)=>{const{default:a}=await Pa(async()=>{const{default:u}=await import("./jszip.min-D1cnnDNI.js").then(l=>l.j);return{default:u}},[],import.meta.url),i=new a;i.file(r,JSON.stringify(e,null,4),{compression:"DEFLATE"});const o=await i.generateAsync({type:"blob"});DB.saveAs(o,`${r}.zip`)},PB="/availability",hk={devices:[],deviceStates:{},groups:[],bridgeState:{state:"offline"},bridgeHealth:{response_time:0,os:{load_average:[0,0,0],memory_used_mb:0,memory_percent:0},process:{uptime_sec:0,memory_used_mb:0,memory_percent:0},mqtt:{connected:!1,queued:0,received:0,published:0},devices:{}},bridgeInfo:{config_schema:{properties:{},required:[],definitions:{}},config:{advanced:{elapsed:!1,last_seen:"disable",log_level:"info",log_rotation:!1,log_console_json:!1,log_symlink_current:!1,log_output:[],log_directory:"",log_file:"",log_namespaced_levels:{},log_syslog:{},log_debug_to_mqtt_frontend:!1,log_debug_namespace_ignore:"",log_directories_to_keep:0,pan_id:0,ext_pan_id:[],channel:0,cache_state:!1,cache_state_persistent:!1,cache_state_send_on_startup:!1,network_key:[],timestamp_format:"",output:"json"},devices:{},device_options:{},frontend:{enabled:!0,package:"zigbee2mqtt-windfront",port:8080,base_url:"/"},homeassistant:{enabled:!1,discovery_topic:"",status_topic:"",experimental_event_entities:!1,legacy_action_sensor:!1},availability:{enabled:!1,active:{timeout:0,max_jitter:0,backoff:!1,pause_on_backoff_gt:0},passive:{timeout:0}},mqtt:{base_topic:"",include_device_information:!1,force_disable_retain:!1,server:"",maximum_packet_size:0},serial:{disable_led:!1},passlist:[],blocklist:[],map_options:{graphviz:{}},ota:{update_check_interval:0,disable_automatic_update_check:!1,zigbee_ota_override_index_location:void 0,image_block_response_delay:void 0,default_maximum_data_size:void 0},groups:{},health:{interval:10,reset_on_check:!1}},permit_join:!1,permit_join_end:void 0,zigbee_herdsman_converters:{version:""},zigbee_herdsman:{version:""},device_options:{},restart_required:!1,version:"",coordinator:{meta:{},type:"",ieee_address:""},os:{version:"",node_version:"",cpus:"",memory_mb:0},mqtt:{server:"",version:0}},bridgeDefinitions:{clusters:{},custom_clusters:{}},availability:{},generatedExternalDefinitions:{},logs:[],logsLimit:100,lastNonDebugLog:void 0,extensions:[],converters:[],touchlinkDevices:[],touchlinkScanInProgress:!1,touchlinkIdentifyInProgress:!1,touchlinkResetInProgress:!1,networkMap:void 0,networkMapIsLoading:!1,preparingBackup:!1,backup:""},jB=wie({name:"store",initialState:hk,reducers:{setExtensions:(e,r)=>{e.extensions=r.payload},setConverters:(e,r)=>{e.converters=r.payload},setTouchlinkScan:(e,r)=>{e.touchlinkScanInProgress=r.payload.inProgress,e.touchlinkDevices=r.payload.devices},setTouchlinkIdentifyInProgress:(e,r)=>{e.touchlinkIdentifyInProgress=r.payload},setTouchlinkResetInProgress:(e,r)=>{e.touchlinkResetInProgress=r.payload},clearLogs:e=>{e.logs=[],e.lastNonDebugLog=void 0},setLogsLimit:(e,r)=>{e.logsLimit=r.payload,e.logs=e.logs.slice(-r.payload)},addLog:(e,r)=>{e.logs.length>e.logsLimit&&e.logs.pop();const a={...r.payload,timestamp:Qoe(new Date)};e.logs.push(a),a.level!=="debug"&&(e.lastNonDebugLog=a)},updateDeviceStateMessage:(e,r)=>{e.deviceStates[r.payload.topic]=fk(e.deviceStates[r.payload.topic]??{},r.payload.payload)},resetDeviceState:(e,r)=>{e.deviceStates[r.payload]={}},updateAvailability:(e,r)=>{const a=r.payload.topic.split(PB,1)[0];e.availability[a]=r.payload.payload},setBridgeInfo:(e,r)=>{e.bridgeInfo=r.payload},setBridgeState:(e,r)=>{e.bridgeState=r.payload},setBridgeHealth:(e,r)=>{e.bridgeHealth=r.payload},setBridgeDefinitions:(e,r)=>{e.bridgeDefinitions=r.payload},setDevices:(e,r)=>{e.devices=r.payload.sort((a,i)=>a.friendly_name.localeCompare(i.friendly_name))},setGroups:(e,r)=>{e.groups=r.payload.sort((a,i)=>a.friendly_name.localeCompare(i.friendly_name))},setNetworkMap:(e,r)=>{e.networkMapIsLoading=!1,e.networkMap=r.payload},setNetworkMapIsLoading:e=>{e.networkMapIsLoading=!0,e.networkMap=void 0},setBackup:(e,r)=>{e.preparingBackup=!1,e.backup=r.payload},setBackupPreparing:e=>{e.preparingBackup=!0},addGeneratedExternalDefinition:(e,r)=>{e.generatedExternalDefinitions[r.payload.id]=r.payload.source},reset:e=>{const r=fk({},hk);for(const a in r)e[a]=r[a]}}}),kB=_ie({reducer:jB.reducer}),{setExtensions:Joe,setConverters:ese,setTouchlinkScan:rse,setTouchlinkIdentifyInProgress:tse,setTouchlinkResetInProgress:ase,clearLogs:Dve,setLogsLimit:Pve,addLog:Fu,updateDeviceStateMessage:nse,resetDeviceState:jve,updateAvailability:ise,setBridgeInfo:ose,setBridgeState:sse,setBridgeHealth:use,setBridgeDefinitions:lse,setDevices:cse,setGroups:fse,setNetworkMap:dse,setNetworkMapIsLoading:kve,setBackup:vse,setBackupPreparing:zve,addGeneratedExternalDefinition:hse,reset:pse}=jB.actions,pk={didCatch:!1,error:null};class gse extends V.Component{constructor(r){super(r),this.resetErrorBoundary=this.resetErrorBoundary.bind(this),this.state=pk}static getDerivedStateFromError(r){return{didCatch:!0,error:r}}resetErrorBoundary(){this.state.error!==null&&this.setState(pk)}render(){const{didCatch:r,error:a}=this.state;if(r){const i={template:"bug_report.yaml",stacktrace:[`**Current url**: ${window.location.toString()}`,`**Previous url**: ${document.referrer}`,`
|
|
637
|
+
* Copyright (c) 2024 Nathan Bubna; Licensed MIT */var fy=uf.exports,cP;function Nne(){return cP||(cP=1,function(e){(function(r,a){var i={version:"2.14.4",areas:{},apis:{},nsdelim:".",inherit:function(u,l){for(var f in u)l.hasOwnProperty(f)||Object.defineProperty(l,f,Object.getOwnPropertyDescriptor(u,f));return l},stringify:function(u,l){return u===void 0||typeof u=="function"?u+"":JSON.stringify(u,l||i.replace)},parse:function(u,l){try{return JSON.parse(u,l||i.revive)}catch{return u}},fn:function(u,l){i.storeAPI[u]=l;for(var f in i.apis)i.apis[f][u]=l},get:function(u,l){return u.getItem(l)},set:function(u,l,f){u.setItem(l,f)},remove:function(u,l){u.removeItem(l)},key:function(u,l){return u.key(l)},length:function(u){return u.length},clear:function(u){u.clear()},Store:function(u,l,f){var d=i.inherit(i.storeAPI,function(h,p,m){return arguments.length===0?d.getAll():typeof p=="function"?d.transact(h,p,m):p!==void 0?d.set(h,p,m):typeof h=="string"||typeof h=="number"?d.get(h):typeof h=="function"?d.each(h):h?d.setAll(h,p):d.clear()});d._id=u;try{var v="__store2_test";l.setItem(v,"ok"),d._area=l,l.removeItem(v)}catch{d._area=i.storage("fake")}return d._ns=f||"",i.areas[u]||(i.areas[u]=d._area),i.apis[d._ns+d._id]||(i.apis[d._ns+d._id]=d),d},storeAPI:{area:function(u,l){var f=this[u];return(!f||!f.area)&&(f=i.Store(u,l,this._ns),this[u]||(this[u]=f)),f},namespace:function(u,l,f){if(f=f||this._delim||i.nsdelim,!u)return this._ns?this._ns.substring(0,this._ns.length-f.length):"";var d=u,v=this[d];if((!v||!v.namespace)&&(v=i.Store(this._id,this._area,this._ns+d+f),v._delim=f,this[d]||(this[d]=v),!l))for(var h in i.areas)v.area(h,i.areas[h]);return v},isFake:function(u){return u?(this._real=this._area,this._area=i.storage("fake")):u===!1&&(this._area=this._real||this._area),this._area.name==="fake"},toString:function(){return"store"+(this._ns?"."+this.namespace():"")+"["+this._id+"]"},has:function(u){return this._area.has?this._area.has(this._in(u)):this._in(u)in this._area},size:function(){return this.keys().length},each:function(u,l){for(var f=0,d=i.length(this._area);f<d;f++){var v=this._out(i.key(this._area,f));if(v!==void 0&&u.call(this,v,this.get(v),l)===!1)break;d>i.length(this._area)&&(d--,f--)}return l||this},keys:function(u){return this.each(function(l,f,d){d.push(l)},u||[])},get:function(u,l){var f=i.get(this._area,this._in(u)),d;return typeof l=="function"&&(d=l,l=null),f!==null?i.parse(f,d):l??f},getAll:function(u){return this.each(function(l,f,d){d[l]=f},u||{})},transact:function(u,l,f){var d=this.get(u,f),v=l(d);return this.set(u,v===void 0?d:v),this},set:function(u,l,f){var d=this.get(u),v;return d!=null&&f===!1?l:(typeof f=="function"&&(v=f,f=void 0),i.set(this._area,this._in(u),i.stringify(l,v),f)||d)},setAll:function(u,l){var f,d;for(var v in u)d=u[v],this.set(v,d,l)!==d&&(f=!0);return f},add:function(u,l,f){var d=this.get(u);if(d instanceof Array)l=d.concat(l);else if(d!==null){var v=typeof d;if(v===typeof l&&v==="object"){for(var h in l)d[h]=l[h];l=d}else l=d+l}return i.set(this._area,this._in(u),i.stringify(l,f)),l},remove:function(u,l){var f=this.get(u,l);return i.remove(this._area,this._in(u)),f},clear:function(){return this._ns?this.each(function(u){i.remove(this._area,this._in(u))},1):i.clear(this._area),this},clearAll:function(){var u=this._area;for(var l in i.areas)i.areas.hasOwnProperty(l)&&(this._area=i.areas[l],this.clear());return this._area=u,this},_in:function(u){return typeof u!="string"&&(u=i.stringify(u)),this._ns?this._ns+u:u},_out:function(u){return this._ns?u&&u.indexOf(this._ns)===0?u.substring(this._ns.length):void 0:u}},storage:function(u){return i.inherit(i.storageAPI,{items:{},name:u})},storageAPI:{length:0,has:function(u){return this.items.hasOwnProperty(u)},key:function(u){var l=0;for(var f in this.items)if(this.has(f)&&u===l++)return f},setItem:function(u,l){this.has(u)||this.length++,this.items[u]=l},removeItem:function(u){this.has(u)&&(delete this.items[u],this.length--)},getItem:function(u){return this.has(u)?this.items[u]:null},clear:function(){for(var u in this.items)this.removeItem(u)}}},o=i.Store("local",function(){try{return localStorage}catch{}}());o.local=o,o._=i,o.area("session",function(){try{return sessionStorage}catch{}}()),o.area("page",i.storage("page")),typeof a=="function"&&a.amd!==void 0?a("store2",[],function(){return o}):e.exports?e.exports=o:(r.store&&(i.conflict=r.store),r.store=o)})(fy,fy&&fy.define)}(uf)),uf.exports}var Lne=Nne();const qn=Hr(Lne),dy="z2m-token-v2",fP="z2m-auth-v2",dP="theme",Kde="homepage",Qde="dashboard-column-display-key",Dne="permit-join-time",Pne="max-on-screen-notifications",Zde="network-raw-display-type",Xde="network-map-layout-type",Jde="network-map-label-type",eve="network-map-node-strength",rve="network-map-link-distance",tve="i18nextLng",ave="devices-hide-disabled",nve="table-column-visibility",ive="table-column-filter",ove="dashboard-filter",jne=V.memo(e=>{const[r,a]=V.useState(e.seconds);V.useEffect(()=>{const d=setTimeout(()=>{a(r-1)},1e3);return()=>clearTimeout(d)},[r]);const i=Math.floor(r/3600),o=Math.floor(r/60)%60,u=Math.floor(r%60),l=!e.hideZeroes||i>0,f=!e.hideZeroes||o>0;return se.jsxs("span",{className:"countdown",children:[l&&se.jsx("span",{style:{"--value":i},children:i}),l&&":",f&&se.jsx("span",{style:{"--value":o},children:o}),f&&":",se.jsx("span",{style:{"--value":u},children:u})]})});function kne(){const{sendMessage:e}=V.useContext(vd),{t:r}=qs(["navbar"]),[a,i]=V.useState(),o=us(p=>p.devices),u=us(p=>p.bridgeInfo.permit_join),l=us(p=>p.bridgeInfo.permit_join_end),f=V.useCallback(async()=>await e("bridge/request/permit_join",{time:u?0:qn.get(Dne,254),device:a?.ieee_address}),[e,a,u]),d=V.useMemo(()=>{const p=[];for(const m of o)(m.type==="Coordinator"||m.type==="Router")&&p.push(se.jsx("li",{onClick:()=>i(m),onKeyUp:y=>{y.key==="enter"&&i(m)},children:se.jsx("span",{className:"btn btn-sm btn-block btn-ghost",children:m.friendly_name})},m.friendly_name));return p.sort((m,y)=>m.key==="Coordinator"?-1:m.key.localeCompare(y.key)),p},[o]),v=V.useMemo(()=>u?se.jsx(jne,{seconds:(l-Date.now())/1e3,hideZeroes:!0}):null,[u,l]),h=V.useMemo(()=>u?se.jsxs(ls,{onClick:f,className:"btn btn-outline-secondary join-item",title:r("disable_join"),children:[se.jsx(Ln,{icon:cD,className:"text-success",beatFade:!0})," ",a?.friendly_name??r("all"),v]}):se.jsxs(ls,{onClick:f,className:"btn btn-outline-secondary join-item",title:r("permit_join"),children:[se.jsx(Ln,{icon:cD,className:"text-error"})," ",a?.friendly_name??r("all")]}),[u,v,a,r,f]);return se.jsxs("div",{className:"join join-horizontal",children:[h,!u&&se.jsxs(hd,{name:"permit-join",buttonChildren:se.jsx(Ln,{icon:Iee,title:r("toggle_dropdown")}),buttonStyle:"join-item",dropdownStyle:"dropdown-end",children:[se.jsx("li",{onClick:()=>i(void 0),onKeyUp:p=>{p.key==="enter"&&i(void 0)},children:se.jsx("span",{className:"btn btn-sm btn-block btn-ghost",children:r("all")})},"all"),d]})]})}const zne=["","Light","Dark","Abyss","Acid","Aqua","Autumn","Black","Bumblebee","Business","Caramellatte","Cmyk","Coffee","Corporate","Cupcake","Cyberpunk","Dim","Dracula","Emerald","Fantasy","Forest","Garden","Halloween","Lemonade","Lofi","Luxury","Night","Nord","Pastel","Retro","Silk","Sunset","Synthwave","Valentine","Winter","Wireframe"],Une=V.memo(()=>{const e=Wn(),[r,a]=V.useState(qn.get(dP,""));return V.useEffect(()=>{qn.set(dP,r),document.documentElement.setAttribute("data-theme",r)},[r]),se.jsx(hd,{name:"theme-switcher",buttonChildren:se.jsx(Ln,{icon:cee}),dropdownStyle:"dropdown-end",buttonDisabled:e.pathname==="/network",children:zne.map(i=>se.jsx("li",{children:se.jsx("input",{type:"radio",name:"theme-dropdown",className:`theme-controller w-full btn btn-sm btn-block ${r===i.toLowerCase()?"btn-primary":"btn-ghost"}`,"aria-label":i||"Default",value:i.toLowerCase(),onChange:()=>a(i.toLowerCase())})},i||"default"))})}),Fne=[{href:"/devices",key:"devices"},{href:"/dashboard",key:"dashboard"},{href:"/groups",key:"groups"},{href:"/ota",key:"ota"},{href:"/touchlink",key:"touchlink"},{href:"/network",key:"network"},{href:"/logs",key:"logs"},{href:"/settings",key:"settings"}],Bne=()=>{const{t:e}=qs(["navbar","common"]),r=us(u=>u.bridgeInfo.restart_required),{sendMessage:a}=V.useContext(vd),i=V.useMemo(()=>se.jsx(se.Fragment,{children:Fne.map(u=>se.jsx("li",{children:se.jsx(eF,{to:u.href,className:({isActive:l})=>l?"menu-active":"",children:e(u.key)})},u.href))}),[e]),o=V.useMemo(()=>r?se.jsx(_ne,{className:"btn btn-error me-1 animate-pulse",onClick:async()=>await a("bridge/request/restart",""),title:e("restart"),modalDescription:e("common:dialog_confirmation_prompt"),modalCancelLabel:e("common:cancel"),children:e("restart")}):null,[r,a,e]);return se.jsxs("div",{className:"navbar bg-base-200 shadow",children:[se.jsx("div",{className:"navbar-start",children:se.jsxs("div",{className:"dropdown",children:[se.jsx("div",{className:"btn btn-ghost lg:hidden",tabIndex:0,children:se.jsx(Ln,{icon:jee})}),se.jsx("ul",{tabIndex:0,className:"menu dropdown-content bg-base-200 rounded-box z-1 mt-3 w-max p-2 shadow",children:i})]})}),se.jsx(Ab,{to:"/",className:"link link-hover me-1",title:window.location!==window.parent.location?`Zigbee2MQTT@${document.location.hostname}`:void 0,children:"Zigbee2MQTT"}),se.jsx("div",{className:"navbar-center hidden lg:flex",children:se.jsx("ul",{className:"menu menu-horizontal px-1",children:i})}),se.jsx("div",{className:"navbar-end",children:se.jsxs("ul",{className:"menu menu-horizontal px-1 gap-0.5 md:gap-1 justify-end",children:[se.jsx(kne,{}),o,se.jsx(Mne,{}),se.jsx(Une,{}),se.jsx(qne,{})]})})]})},Hne=()=>{const{pathname:e}=Wn();return V.useEffect(()=>{window.scrollTo(0,0)},[e]),null},sve=["debug","info","warning","error"],uve=[100,200,500,1e3],$ne={error:"text-error",warning:"text-warning",info:"text-info",debug:"opacity-50"},lve="https://www.zigbee2mqtt.io/advanced/support-new-devices/01_support_new_devices.html",cve="https://www.zigbee2mqtt.io/guide/configuration/devices-groups.html#generic-device-options",fve="https://www.zigbee2mqtt.io/guide/usage/groups.html#configuration",dve="https://www.zigbee2mqtt.io/guide/configuration/",vve="https://www.zigbee2mqtt.io/guide/usage/mqtt_topics_and_messages.html",hve="https://www.zigbee2mqtt.io/advanced/more/external_converters.html",pve="https://github.com/Nerivec/z2m-external-converter-dev",gve="https://www.zigbee2mqtt.io/advanced/more/external_extensions.html",mve="https://www.zigbee2mqtt.io/guide/configuration/device-availability.html#availability-advanced-configuration",yve="https://www.digitalocean.com/community/tutorials/load-average-in-linux",bve="https://mqtt.org/mqtt-specification/",_ve="https://nodejs.org/en/about/previous-releases",Gne="https://github.com/Nerivec/zigbee2mqtt-windfront/issues/new",Sve="https://github.com/Koenkk/zigbee2mqtt/issues/new",Eve="https://github.com/Koenkk/zigbee-herdsman-converters/issues/new",Tve="https://github.com/Koenkk/zigbee2mqtt/commit/",Rve="https://github.com/Nerivec/zigbee2mqtt-windfront/releases/tag/v",Ove="https://github.com/Koenkk/zigbee2mqtt/releases/tag/",Ave="https://github.com/Koenkk/zigbee-herdsman-converters/releases/tag/v",wve="https://github.com/Koenkk/zigbee-herdsman/releases/tag/v";var Vne=(e=>(e.Pending="PENDING",e.InProgress="IN_PROGRESS",e.Successful="SUCCESSFUL",e.Failed="FAILED",e))(Vne||{});function Wne({idx:e,log:r,expiry:a,remove:i}){const[o]=V.useState(Date.now()+a);return V.useEffect(()=>{const u=setTimeout(()=>{i(e)},o-Date.now());return()=>{clearTimeout(u)}},[e,i,o]),se.jsx("div",{className:`alert ${$ne[r.level]} break-all cursor-pointer select-none`,onClick:()=>i(e),children:r.message})}const Yne=5e3,vP=["MQTT publish"];function Kne(){const e=us(u=>u.bridgeInfo.config.frontend.notification_filter),r=us(u=>u.lastNonDebugLog),[a,i]=V.useState([]);V.useEffect(()=>{r&&!(e?vP.concat(e):vP).some(u=>new RegExp(u).test(r.message))&&i([...a,r])},[r]);const o=V.useCallback(u=>{const l=Array.from(a);l.splice(u,1),i(l)},[a]);return se.jsx("div",{className:"toast max-w-prose",children:a.slice(0,qn.get(Pne,1)).map((u,l)=>se.jsx(Wne,{idx:l,log:u,expiry:Yne,remove:o},`${u.timestamp}-${u.message}`))})}function Nt(e){return`Minified Redux error #${e}; visit https://redux.js.org/Errors?code=${e} for the full message or use the non-minified dev environment for full errors. `}var Qne=typeof Symbol=="function"&&Symbol.observable||"@@observable",hP=Qne,vy=()=>Math.random().toString(36).substring(7).split("").join("."),Zne={INIT:`@@redux/INIT${vy()}`,REPLACE:`@@redux/REPLACE${vy()}`,PROBE_UNKNOWN_ACTION:()=>`@@redux/PROBE_UNKNOWN_ACTION${vy()}`},pf=Zne;function Hb(e){if(typeof e!="object"||e===null)return!1;let r=e;for(;Object.getPrototypeOf(r)!==null;)r=Object.getPrototypeOf(r);return Object.getPrototypeOf(e)===r||Object.getPrototypeOf(e)===null}function uB(e,r,a){if(typeof e!="function")throw new Error(Nt(2));if(typeof r=="function"&&typeof a=="function"||typeof a=="function"&&typeof arguments[3]=="function")throw new Error(Nt(0));if(typeof r=="function"&&typeof a>"u"&&(a=r,r=void 0),typeof a<"u"){if(typeof a!="function")throw new Error(Nt(1));return a(uB)(e,r)}let i=e,o=r,u=new Map,l=u,f=0,d=!1;function v(){l===u&&(l=new Map,u.forEach((T,S)=>{l.set(S,T)}))}function h(){if(d)throw new Error(Nt(3));return o}function p(T){if(typeof T!="function")throw new Error(Nt(4));if(d)throw new Error(Nt(5));let S=!0;v();const R=f++;return l.set(R,T),function(){if(S){if(d)throw new Error(Nt(6));S=!1,v(),l.delete(R),u=null}}}function m(T){if(!Hb(T))throw new Error(Nt(7));if(typeof T.type>"u")throw new Error(Nt(8));if(typeof T.type!="string")throw new Error(Nt(17));if(d)throw new Error(Nt(9));try{d=!0,o=i(o,T)}finally{d=!1}return(u=l).forEach(R=>{R()}),T}function y(T){if(typeof T!="function")throw new Error(Nt(10));i=T,m({type:pf.REPLACE})}function b(){const T=p;return{subscribe(S){if(typeof S!="object"||S===null)throw new Error(Nt(11));function R(){const w=S;w.next&&w.next(h())}return R(),{unsubscribe:T(R)}},[hP](){return this}}}return m({type:pf.INIT}),{dispatch:m,subscribe:p,getState:h,replaceReducer:y,[hP]:b}}function Xne(e){Object.keys(e).forEach(r=>{const a=e[r];if(typeof a(void 0,{type:pf.INIT})>"u")throw new Error(Nt(12));if(typeof a(void 0,{type:pf.PROBE_UNKNOWN_ACTION()})>"u")throw new Error(Nt(13))})}function Jne(e){const r=Object.keys(e),a={};for(let u=0;u<r.length;u++){const l=r[u];typeof e[l]=="function"&&(a[l]=e[l])}const i=Object.keys(a);let o;try{Xne(a)}catch(u){o=u}return function(l={},f){if(o)throw o;let d=!1;const v={};for(let h=0;h<i.length;h++){const p=i[h],m=a[p],y=l[p],b=m(y,f);if(typeof b>"u")throw f&&f.type,new Error(Nt(14));v[p]=b,d=d||b!==y}return d=d||i.length!==Object.keys(l).length,d?v:l}}function gf(...e){return e.length===0?r=>r:e.length===1?e[0]:e.reduce((r,a)=>(...i)=>r(a(...i)))}function eie(...e){return r=>(a,i)=>{const o=r(a,i);let u=()=>{throw new Error(Nt(15))};const l={getState:o.getState,dispatch:(d,...v)=>u(d,...v)},f=e.map(d=>d(l));return u=gf(...f)(o.dispatch),{...o,dispatch:u}}}function rie(e){return Hb(e)&&"type"in e&&typeof e.type=="string"}var lB=Symbol.for("immer-nothing"),pP=Symbol.for("immer-draftable"),da=Symbol.for("immer-state");function Ba(e,...r){throw new Error(`[Immer] minified error nr: ${e}. Full error at: https://bit.ly/3cXEKWf`)}var fs=Object.getPrototypeOf;function Zi(e){return!!e&&!!e[da]}function zn(e){return e?cB(e)||Array.isArray(e)||!!e[pP]||!!e.constructor?.[pP]||gd(e)||md(e):!1}var tie=Object.prototype.constructor.toString();function cB(e){if(!e||typeof e!="object")return!1;const r=fs(e);if(r===null)return!0;const a=Object.hasOwnProperty.call(r,"constructor")&&r.constructor;return a===Object?!0:typeof a=="function"&&Function.toString.call(a)===tie}function mf(e,r){pd(e)===0?Reflect.ownKeys(e).forEach(a=>{r(a,e[a],e)}):e.forEach((a,i)=>r(i,a,e))}function pd(e){const r=e[da];return r?r.type_:Array.isArray(e)?1:gd(e)?2:md(e)?3:0}function O4(e,r){return pd(e)===2?e.has(r):Object.prototype.hasOwnProperty.call(e,r)}function fB(e,r,a){const i=pd(e);i===2?e.set(r,a):i===3?e.add(a):e[r]=a}function aie(e,r){return e===r?e!==0||1/e===1/r:e!==e&&r!==r}function gd(e){return e instanceof Map}function md(e){return e instanceof Set}function Gi(e){return e.copy_||e.base_}function A4(e,r){if(gd(e))return new Map(e);if(md(e))return new Set(e);if(Array.isArray(e))return Array.prototype.slice.call(e);const a=cB(e);if(r===!0||r==="class_only"&&!a){const i=Object.getOwnPropertyDescriptors(e);delete i[da];let o=Reflect.ownKeys(i);for(let u=0;u<o.length;u++){const l=o[u],f=i[l];f.writable===!1&&(f.writable=!0,f.configurable=!0),(f.get||f.set)&&(i[l]={configurable:!0,writable:!0,enumerable:f.enumerable,value:e[l]})}return Object.create(fs(e),i)}else{const i=fs(e);if(i!==null&&a)return{...e};const o=Object.create(i);return Object.assign(o,e)}}function $b(e,r=!1){return yd(e)||Zi(e)||!zn(e)||(pd(e)>1&&(e.set=e.add=e.clear=e.delete=nie),Object.freeze(e),r&&Object.entries(e).forEach(([a,i])=>$b(i,!0))),e}function nie(){Ba(2)}function yd(e){return Object.isFrozen(e)}var iie={};function Xi(e){const r=iie[e];return r||Ba(0,e),r}var Yu;function dB(){return Yu}function oie(e,r){return{drafts_:[],parent_:e,immer_:r,canAutoFreeze_:!0,unfinalizedDrafts_:0}}function gP(e,r){r&&(Xi("Patches"),e.patches_=[],e.inversePatches_=[],e.patchListener_=r)}function w4(e){x4(e),e.drafts_.forEach(sie),e.drafts_=null}function x4(e){e===Yu&&(Yu=e.parent_)}function mP(e){return Yu=oie(Yu,e)}function sie(e){const r=e[da];r.type_===0||r.type_===1?r.revoke_():r.revoked_=!0}function yP(e,r){r.unfinalizedDrafts_=r.drafts_.length;const a=r.drafts_[0];return e!==void 0&&e!==a?(a[da].modified_&&(w4(r),Ba(4)),zn(e)&&(e=yf(r,e),r.parent_||bf(r,e)),r.patches_&&Xi("Patches").generateReplacementPatches_(a[da].base_,e,r.patches_,r.inversePatches_)):e=yf(r,a,[]),w4(r),r.patches_&&r.patchListener_(r.patches_,r.inversePatches_),e!==lB?e:void 0}function yf(e,r,a){if(yd(r))return r;const i=r[da];if(!i)return mf(r,(o,u)=>bP(e,i,r,o,u,a)),r;if(i.scope_!==e)return r;if(!i.modified_)return bf(e,i.base_,!0),i.base_;if(!i.finalized_){i.finalized_=!0,i.scope_.unfinalizedDrafts_--;const o=i.copy_;let u=o,l=!1;i.type_===3&&(u=new Set(o),o.clear(),l=!0),mf(u,(f,d)=>bP(e,i,o,f,d,a,l)),bf(e,o,!1),a&&e.patches_&&Xi("Patches").generatePatches_(i,a,e.patches_,e.inversePatches_)}return i.copy_}function bP(e,r,a,i,o,u,l){if(Zi(o)){const f=u&&r&&r.type_!==3&&!O4(r.assigned_,i)?u.concat(i):void 0,d=yf(e,o,f);if(fB(a,i,d),Zi(d))e.canAutoFreeze_=!1;else return}else l&&a.add(o);if(zn(o)&&!yd(o)){if(!e.immer_.autoFreeze_&&e.unfinalizedDrafts_<1)return;yf(e,o),(!r||!r.scope_.parent_)&&typeof i!="symbol"&&Object.prototype.propertyIsEnumerable.call(a,i)&&bf(e,o)}}function bf(e,r,a=!1){!e.parent_&&e.immer_.autoFreeze_&&e.canAutoFreeze_&&$b(r,a)}function uie(e,r){const a=Array.isArray(e),i={type_:a?1:0,scope_:r?r.scope_:dB(),modified_:!1,finalized_:!1,assigned_:{},parent_:r,base_:e,draft_:null,copy_:null,revoke_:null,isManual_:!1};let o=i,u=Gb;a&&(o=[i],u=Ku);const{revoke:l,proxy:f}=Proxy.revocable(o,u);return i.draft_=f,i.revoke_=l,f}var Gb={get(e,r){if(r===da)return e;const a=Gi(e);if(!O4(a,r))return lie(e,a,r);const i=a[r];return e.finalized_||!zn(i)?i:i===hy(e.base_,r)?(py(e),e.copy_[r]=I4(i,e)):i},has(e,r){return r in Gi(e)},ownKeys(e){return Reflect.ownKeys(Gi(e))},set(e,r,a){const i=vB(Gi(e),r);if(i?.set)return i.set.call(e.draft_,a),!0;if(!e.modified_){const o=hy(Gi(e),r),u=o?.[da];if(u&&u.base_===a)return e.copy_[r]=a,e.assigned_[r]=!1,!0;if(aie(a,o)&&(a!==void 0||O4(e.base_,r)))return!0;py(e),C4(e)}return e.copy_[r]===a&&(a!==void 0||r in e.copy_)||Number.isNaN(a)&&Number.isNaN(e.copy_[r])||(e.copy_[r]=a,e.assigned_[r]=!0),!0},deleteProperty(e,r){return hy(e.base_,r)!==void 0||r in e.base_?(e.assigned_[r]=!1,py(e),C4(e)):delete e.assigned_[r],e.copy_&&delete e.copy_[r],!0},getOwnPropertyDescriptor(e,r){const a=Gi(e),i=Reflect.getOwnPropertyDescriptor(a,r);return i&&{writable:!0,configurable:e.type_!==1||r!=="length",enumerable:i.enumerable,value:a[r]}},defineProperty(){Ba(11)},getPrototypeOf(e){return fs(e.base_)},setPrototypeOf(){Ba(12)}},Ku={};mf(Gb,(e,r)=>{Ku[e]=function(){return arguments[0]=arguments[0][0],r.apply(this,arguments)}});Ku.deleteProperty=function(e,r){return Ku.set.call(this,e,r,void 0)};Ku.set=function(e,r,a){return Gb.set.call(this,e[0],r,a,e[0])};function hy(e,r){const a=e[da];return(a?Gi(a):e)[r]}function lie(e,r,a){const i=vB(r,a);return i?"value"in i?i.value:i.get?.call(e.draft_):void 0}function vB(e,r){if(!(r in e))return;let a=fs(e);for(;a;){const i=Object.getOwnPropertyDescriptor(a,r);if(i)return i;a=fs(a)}}function C4(e){e.modified_||(e.modified_=!0,e.parent_&&C4(e.parent_))}function py(e){e.copy_||(e.copy_=A4(e.base_,e.scope_.immer_.useStrictShallowCopy_))}var cie=class{constructor(e){this.autoFreeze_=!0,this.useStrictShallowCopy_=!1,this.produce=(r,a,i)=>{if(typeof r=="function"&&typeof a!="function"){const u=a;a=r;const l=this;return function(d=u,...v){return l.produce(d,h=>a.call(this,h,...v))}}typeof a!="function"&&Ba(6),i!==void 0&&typeof i!="function"&&Ba(7);let o;if(zn(r)){const u=mP(this),l=I4(r,void 0);let f=!0;try{o=a(l),f=!1}finally{f?w4(u):x4(u)}return gP(u,i),yP(o,u)}else if(!r||typeof r!="object"){if(o=a(r),o===void 0&&(o=r),o===lB&&(o=void 0),this.autoFreeze_&&$b(o,!0),i){const u=[],l=[];Xi("Patches").generateReplacementPatches_(r,o,u,l),i(u,l)}return o}else Ba(1,r)},this.produceWithPatches=(r,a)=>{if(typeof r=="function")return(l,...f)=>this.produceWithPatches(l,d=>r(d,...f));let i,o;return[this.produce(r,a,(l,f)=>{i=l,o=f}),i,o]},typeof e?.autoFreeze=="boolean"&&this.setAutoFreeze(e.autoFreeze),typeof e?.useStrictShallowCopy=="boolean"&&this.setUseStrictShallowCopy(e.useStrictShallowCopy)}createDraft(e){zn(e)||Ba(8),Zi(e)&&(e=fie(e));const r=mP(this),a=I4(e,void 0);return a[da].isManual_=!0,x4(r),a}finishDraft(e,r){const a=e&&e[da];(!a||!a.isManual_)&&Ba(9);const{scope_:i}=a;return gP(i,r),yP(void 0,i)}setAutoFreeze(e){this.autoFreeze_=e}setUseStrictShallowCopy(e){this.useStrictShallowCopy_=e}applyPatches(e,r){let a;for(a=r.length-1;a>=0;a--){const o=r[a];if(o.path.length===0&&o.op==="replace"){e=o.value;break}}a>-1&&(r=r.slice(a+1));const i=Xi("Patches").applyPatches_;return Zi(e)?i(e,r):this.produce(e,o=>i(o,r))}};function I4(e,r){const a=gd(e)?Xi("MapSet").proxyMap_(e,r):md(e)?Xi("MapSet").proxySet_(e,r):uie(e,r);return(r?r.scope_:dB()).drafts_.push(a),a}function fie(e){return Zi(e)||Ba(10,e),hB(e)}function hB(e){if(!zn(e)||yd(e))return e;const r=e[da];let a;if(r){if(!r.modified_)return r.base_;r.finalized_=!0,a=A4(e,r.scope_.immer_.useStrictShallowCopy_)}else a=A4(e,!0);return mf(a,(i,o)=>{fB(a,i,hB(o))}),r&&(r.finalized_=!1),a}var va=new cie,pB=va.produce;va.produceWithPatches.bind(va);va.setAutoFreeze.bind(va);va.setUseStrictShallowCopy.bind(va);va.applyPatches.bind(va);va.createDraft.bind(va);va.finishDraft.bind(va);function gB(e){return({dispatch:a,getState:i})=>o=>u=>typeof u=="function"?u(a,i,e):o(u)}var die=gB(),vie=gB,hie=typeof window<"u"&&window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__?window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__:function(){if(arguments.length!==0)return typeof arguments[0]=="object"?gf:gf.apply(null,arguments)};function _P(e,r){function a(...i){if(r){let o=r(...i);if(!o)throw new Error(Dn(0));return{type:e,payload:o.payload,..."meta"in o&&{meta:o.meta},..."error"in o&&{error:o.error}}}return{type:e,payload:i[0]}}return a.toString=()=>`${e}`,a.type=e,a.match=i=>rie(i)&&i.type===e,a}var mB=class ju extends Array{constructor(...r){super(...r),Object.setPrototypeOf(this,ju.prototype)}static get[Symbol.species](){return ju}concat(...r){return super.concat.apply(this,r)}prepend(...r){return r.length===1&&Array.isArray(r[0])?new ju(...r[0].concat(this)):new ju(...r.concat(this))}};function SP(e){return zn(e)?pB(e,()=>{}):e}function qc(e,r,a){return e.has(r)?e.get(r):e.set(r,a(r)).get(r)}function pie(e){return typeof e=="boolean"}var gie=()=>function(r){const{thunk:a=!0,immutableCheck:i=!0,serializableCheck:o=!0,actionCreatorCheck:u=!0}=r??{};let l=new mB;return a&&(pie(a)?l.push(die):l.push(vie(a.extraArgument))),l},mie="RTK_autoBatch",EP=e=>r=>{setTimeout(r,e)},yie=(e={type:"raf"})=>r=>(...a)=>{const i=r(...a);let o=!0,u=!1,l=!1;const f=new Set,d=e.type==="tick"?queueMicrotask:e.type==="raf"?typeof window<"u"&&window.requestAnimationFrame?window.requestAnimationFrame:EP(10):e.type==="callback"?e.queueNotification:EP(e.timeout),v=()=>{l=!1,u&&(u=!1,f.forEach(h=>h()))};return Object.assign({},i,{subscribe(h){const p=()=>o&&h(),m=i.subscribe(p);return f.add(h),()=>{m(),f.delete(h)}},dispatch(h){try{return o=!h?.meta?.[mie],u=!o,u&&(l||(l=!0,d(v))),i.dispatch(h)}finally{o=!0}}})},bie=e=>function(a){const{autoBatch:i=!0}=a??{};let o=new mB(e);return i&&o.push(yie(typeof i=="object"?i:void 0)),o};function _ie(e){const r=gie(),{reducer:a=void 0,middleware:i,devTools:o=!0,preloadedState:u=void 0,enhancers:l=void 0}=e||{};let f;if(typeof a=="function")f=a;else if(Hb(a))f=Jne(a);else throw new Error(Dn(1));let d;typeof i=="function"?d=i(r):d=r();let v=gf;o&&(v=hie({trace:!1,...typeof o=="object"&&o}));const h=eie(...d),p=bie(h);let m=typeof l=="function"?l(p):p();const y=v(...m);return uB(f,u,y)}function yB(e){const r={},a=[];let i;const o={addCase(u,l){const f=typeof u=="string"?u:u.type;if(!f)throw new Error(Dn(28));if(f in r)throw new Error(Dn(29));return r[f]=l,o},addMatcher(u,l){return a.push({matcher:u,reducer:l}),o},addDefaultCase(u){return i=u,o}};return e(o),[r,a,i]}function Sie(e){return typeof e=="function"}function Eie(e,r){let[a,i,o]=yB(r),u;if(Sie(e))u=()=>SP(e());else{const f=SP(e);u=()=>f}function l(f=u(),d){let v=[a[d.type],...i.filter(({matcher:h})=>h(d)).map(({reducer:h})=>h)];return v.filter(h=>!!h).length===0&&(v=[o]),v.reduce((h,p)=>{if(p)if(Zi(h)){const y=p(h,d);return y===void 0?h:y}else{if(zn(h))return pB(h,m=>p(m,d));{const m=p(h,d);if(m===void 0){if(h===null)return h;throw Error("A case reducer on a non-draftable value must not return undefined")}return m}}return h},f)}return l.getInitialState=u,l}var Tie=Symbol.for("rtk-slice-createasyncthunk");function Rie(e,r){return`${e}/${r}`}function Oie({creators:e}={}){const r=e?.asyncThunk?.[Tie];return function(i){const{name:o,reducerPath:u=o}=i;if(!o)throw new Error(Dn(11));const l=(typeof i.reducers=="function"?i.reducers(xie()):i.reducers)||{},f=Object.keys(l),d={sliceCaseReducersByName:{},sliceCaseReducersByType:{},actionCreators:{},sliceMatchers:[]},v={addCase(O,w){const A=typeof O=="string"?O:O.type;if(!A)throw new Error(Dn(12));if(A in d.sliceCaseReducersByType)throw new Error(Dn(13));return d.sliceCaseReducersByType[A]=w,v},addMatcher(O,w){return d.sliceMatchers.push({matcher:O,reducer:w}),v},exposeAction(O,w){return d.actionCreators[O]=w,v},exposeCaseReducer(O,w){return d.sliceCaseReducersByName[O]=w,v}};f.forEach(O=>{const w=l[O],A={reducerName:O,type:Rie(o,O),createNotation:typeof i.reducers=="function"};Iie(w)?Mie(A,w,v,r):Cie(A,w,v)});function h(){const[O={},w=[],A=void 0]=typeof i.extraReducers=="function"?yB(i.extraReducers):[i.extraReducers],I={...O,...d.sliceCaseReducersByType};return Eie(i.initialState,q=>{for(let M in I)q.addCase(M,I[M]);for(let M of d.sliceMatchers)q.addMatcher(M.matcher,M.reducer);for(let M of w)q.addMatcher(M.matcher,M.reducer);A&&q.addDefaultCase(A)})}const p=O=>O,m=new Map,y=new WeakMap;let b;function E(O,w){return b||(b=h()),b(O,w)}function T(){return b||(b=h()),b.getInitialState()}function S(O,w=!1){function A(q){let M=q[O];return typeof M>"u"&&w&&(M=qc(y,A,T)),M}function I(q=p){const M=qc(m,w,()=>new WeakMap);return qc(M,q,()=>{const L={};for(const[z,j]of Object.entries(i.selectors??{}))L[z]=Aie(j,q,()=>qc(y,q,T),w);return L})}return{reducerPath:O,getSelectors:I,get selectors(){return I(A)},selectSlice:A}}const R={name:o,reducer:E,actions:d.actionCreators,caseReducers:d.sliceCaseReducersByName,getInitialState:T,...S(u),injectInto(O,{reducerPath:w,...A}={}){const I=w??u;return O.inject({reducerPath:I,reducer:E},A),{...R,...S(I,!0)}}};return R}}function Aie(e,r,a,i){function o(u,...l){let f=r(u);return typeof f>"u"&&i&&(f=a()),e(f,...l)}return o.unwrapped=e,o}var wie=Oie();function xie(){function e(r,a){return{_reducerDefinitionType:"asyncThunk",payloadCreator:r,...a}}return e.withTypes=()=>e,{reducer(r){return Object.assign({[r.name](...a){return r(...a)}}[r.name],{_reducerDefinitionType:"reducer"})},preparedReducer(r,a){return{_reducerDefinitionType:"reducerWithPrepare",prepare:r,reducer:a}},asyncThunk:e}}function Cie({type:e,reducerName:r,createNotation:a},i,o){let u,l;if("reducer"in i){if(a&&!qie(i))throw new Error(Dn(17));u=i.reducer,l=i.prepare}else u=i;o.addCase(e,u).exposeCaseReducer(r,u).exposeAction(r,l?_P(e,l):_P(e))}function Iie(e){return e._reducerDefinitionType==="asyncThunk"}function qie(e){return e._reducerDefinitionType==="reducerWithPrepare"}function Mie({type:e,reducerName:r},a,i,o){if(!o)throw new Error(Dn(18));const{payloadCreator:u,fulfilled:l,pending:f,rejected:d,settled:v,options:h}=a,p=o(e,u,h);i.exposeAction(r,p),l&&i.addCase(p.fulfilled,l),f&&i.addCase(p.pending,f),d&&i.addCase(p.rejected,d),v&&i.addMatcher(p.settled,v),i.exposeCaseReducer(r,{fulfilled:l||Mc,pending:f||Mc,rejected:d||Mc,settled:v||Mc})}function Mc(){}function Dn(e){return`Minified Redux Toolkit error #${e}; visit https://redux-toolkit.js.org/Errors?code=${e} for the full message or use the non-minified dev environment for full errors. `}var gy,TP;function Nie(){if(TP)return gy;TP=1;function e(){this.__data__=[],this.size=0}return gy=e,gy}var my,RP;function bd(){if(RP)return my;RP=1;function e(r,a){return r===a||r!==r&&a!==a}return my=e,my}var yy,OP;function _d(){if(OP)return yy;OP=1;var e=bd();function r(a,i){for(var o=a.length;o--;)if(e(a[o][0],i))return o;return-1}return yy=r,yy}var by,AP;function Lie(){if(AP)return by;AP=1;var e=_d(),r=Array.prototype,a=r.splice;function i(o){var u=this.__data__,l=e(u,o);if(l<0)return!1;var f=u.length-1;return l==f?u.pop():a.call(u,l,1),--this.size,!0}return by=i,by}var _y,wP;function Die(){if(wP)return _y;wP=1;var e=_d();function r(a){var i=this.__data__,o=e(i,a);return o<0?void 0:i[o][1]}return _y=r,_y}var Sy,xP;function Pie(){if(xP)return Sy;xP=1;var e=_d();function r(a){return e(this.__data__,a)>-1}return Sy=r,Sy}var Ey,CP;function jie(){if(CP)return Ey;CP=1;var e=_d();function r(a,i){var o=this.__data__,u=e(o,a);return u<0?(++this.size,o.push([a,i])):o[u][1]=i,this}return Ey=r,Ey}var Ty,IP;function Sd(){if(IP)return Ty;IP=1;var e=Nie(),r=Lie(),a=Die(),i=Pie(),o=jie();function u(l){var f=-1,d=l==null?0:l.length;for(this.clear();++f<d;){var v=l[f];this.set(v[0],v[1])}}return u.prototype.clear=e,u.prototype.delete=r,u.prototype.get=a,u.prototype.has=i,u.prototype.set=o,Ty=u,Ty}var Ry,qP;function kie(){if(qP)return Ry;qP=1;var e=Sd();function r(){this.__data__=new e,this.size=0}return Ry=r,Ry}var Oy,MP;function zie(){if(MP)return Oy;MP=1;function e(r){var a=this.__data__,i=a.delete(r);return this.size=a.size,i}return Oy=e,Oy}var Ay,NP;function Uie(){if(NP)return Ay;NP=1;function e(r){return this.__data__.get(r)}return Ay=e,Ay}var wy,LP;function Fie(){if(LP)return wy;LP=1;function e(r){return this.__data__.has(r)}return wy=e,wy}var xy,DP;function bB(){if(DP)return xy;DP=1;var e=typeof rn=="object"&&rn&&rn.Object===Object&&rn;return xy=e,xy}var Cy,PP;function Ls(){if(PP)return Cy;PP=1;var e=bB(),r=typeof self=="object"&&self&&self.Object===Object&&self,a=e||r||Function("return this")();return Cy=a,Cy}var Iy,jP;function _B(){if(jP)return Iy;jP=1;var e=Ls(),r=e.Symbol;return Iy=r,Iy}var qy,kP;function Bie(){if(kP)return qy;kP=1;var e=_B(),r=Object.prototype,a=r.hasOwnProperty,i=r.toString,o=e?e.toStringTag:void 0;function u(l){var f=a.call(l,o),d=l[o];try{l[o]=void 0;var v=!0}catch{}var h=i.call(l);return v&&(f?l[o]=d:delete l[o]),h}return qy=u,qy}var My,zP;function Hie(){if(zP)return My;zP=1;var e=Object.prototype,r=e.toString;function a(i){return r.call(i)}return My=a,My}var Ny,UP;function Ed(){if(UP)return Ny;UP=1;var e=_B(),r=Bie(),a=Hie(),i="[object Null]",o="[object Undefined]",u=e?e.toStringTag:void 0;function l(f){return f==null?f===void 0?o:i:u&&u in Object(f)?r(f):a(f)}return Ny=l,Ny}var Ly,FP;function mo(){if(FP)return Ly;FP=1;function e(r){var a=typeof r;return r!=null&&(a=="object"||a=="function")}return Ly=e,Ly}var Dy,BP;function Vb(){if(BP)return Dy;BP=1;var e=Ed(),r=mo(),a="[object AsyncFunction]",i="[object Function]",o="[object GeneratorFunction]",u="[object Proxy]";function l(f){if(!r(f))return!1;var d=e(f);return d==i||d==o||d==a||d==u}return Dy=l,Dy}var Py,HP;function $ie(){if(HP)return Py;HP=1;var e=Ls(),r=e["__core-js_shared__"];return Py=r,Py}var jy,$P;function Gie(){if($P)return jy;$P=1;var e=$ie(),r=function(){var i=/[^.]+$/.exec(e&&e.keys&&e.keys.IE_PROTO||"");return i?"Symbol(src)_1."+i:""}();function a(i){return!!r&&r in i}return jy=a,jy}var ky,GP;function Vie(){if(GP)return ky;GP=1;var e=Function.prototype,r=e.toString;function a(i){if(i!=null){try{return r.call(i)}catch{}try{return i+""}catch{}}return""}return ky=a,ky}var zy,VP;function Wie(){if(VP)return zy;VP=1;var e=Vb(),r=Gie(),a=mo(),i=Vie(),o=/[\\^$.*+?()[\]{}|]/g,u=/^\[object .+?Constructor\]$/,l=Function.prototype,f=Object.prototype,d=l.toString,v=f.hasOwnProperty,h=RegExp("^"+d.call(v).replace(o,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function p(m){if(!a(m)||r(m))return!1;var y=e(m)?h:u;return y.test(i(m))}return zy=p,zy}var Uy,WP;function Yie(){if(WP)return Uy;WP=1;function e(r,a){return r?.[a]}return Uy=e,Uy}var Fy,YP;function Wb(){if(YP)return Fy;YP=1;var e=Wie(),r=Yie();function a(i,o){var u=r(i,o);return e(u)?u:void 0}return Fy=a,Fy}var By,KP;function SB(){if(KP)return By;KP=1;var e=Wb(),r=Ls(),a=e(r,"Map");return By=a,By}var Hy,QP;function Td(){if(QP)return Hy;QP=1;var e=Wb(),r=e(Object,"create");return Hy=r,Hy}var $y,ZP;function Kie(){if(ZP)return $y;ZP=1;var e=Td();function r(){this.__data__=e?e(null):{},this.size=0}return $y=r,$y}var Gy,XP;function Qie(){if(XP)return Gy;XP=1;function e(r){var a=this.has(r)&&delete this.__data__[r];return this.size-=a?1:0,a}return Gy=e,Gy}var Vy,JP;function Zie(){if(JP)return Vy;JP=1;var e=Td(),r="__lodash_hash_undefined__",a=Object.prototype,i=a.hasOwnProperty;function o(u){var l=this.__data__;if(e){var f=l[u];return f===r?void 0:f}return i.call(l,u)?l[u]:void 0}return Vy=o,Vy}var Wy,ej;function Xie(){if(ej)return Wy;ej=1;var e=Td(),r=Object.prototype,a=r.hasOwnProperty;function i(o){var u=this.__data__;return e?u[o]!==void 0:a.call(u,o)}return Wy=i,Wy}var Yy,rj;function Jie(){if(rj)return Yy;rj=1;var e=Td(),r="__lodash_hash_undefined__";function a(i,o){var u=this.__data__;return this.size+=this.has(i)?0:1,u[i]=e&&o===void 0?r:o,this}return Yy=a,Yy}var Ky,tj;function eoe(){if(tj)return Ky;tj=1;var e=Kie(),r=Qie(),a=Zie(),i=Xie(),o=Jie();function u(l){var f=-1,d=l==null?0:l.length;for(this.clear();++f<d;){var v=l[f];this.set(v[0],v[1])}}return u.prototype.clear=e,u.prototype.delete=r,u.prototype.get=a,u.prototype.has=i,u.prototype.set=o,Ky=u,Ky}var Qy,aj;function roe(){if(aj)return Qy;aj=1;var e=eoe(),r=Sd(),a=SB();function i(){this.size=0,this.__data__={hash:new e,map:new(a||r),string:new e}}return Qy=i,Qy}var Zy,nj;function toe(){if(nj)return Zy;nj=1;function e(r){var a=typeof r;return a=="string"||a=="number"||a=="symbol"||a=="boolean"?r!=="__proto__":r===null}return Zy=e,Zy}var Xy,ij;function Rd(){if(ij)return Xy;ij=1;var e=toe();function r(a,i){var o=a.__data__;return e(i)?o[typeof i=="string"?"string":"hash"]:o.map}return Xy=r,Xy}var Jy,oj;function aoe(){if(oj)return Jy;oj=1;var e=Rd();function r(a){var i=e(this,a).delete(a);return this.size-=i?1:0,i}return Jy=r,Jy}var e0,sj;function noe(){if(sj)return e0;sj=1;var e=Rd();function r(a){return e(this,a).get(a)}return e0=r,e0}var r0,uj;function ioe(){if(uj)return r0;uj=1;var e=Rd();function r(a){return e(this,a).has(a)}return r0=r,r0}var t0,lj;function ooe(){if(lj)return t0;lj=1;var e=Rd();function r(a,i){var o=e(this,a),u=o.size;return o.set(a,i),this.size+=o.size==u?0:1,this}return t0=r,t0}var a0,cj;function soe(){if(cj)return a0;cj=1;var e=roe(),r=aoe(),a=noe(),i=ioe(),o=ooe();function u(l){var f=-1,d=l==null?0:l.length;for(this.clear();++f<d;){var v=l[f];this.set(v[0],v[1])}}return u.prototype.clear=e,u.prototype.delete=r,u.prototype.get=a,u.prototype.has=i,u.prototype.set=o,a0=u,a0}var n0,fj;function uoe(){if(fj)return n0;fj=1;var e=Sd(),r=SB(),a=soe(),i=200;function o(u,l){var f=this.__data__;if(f instanceof e){var d=f.__data__;if(!r||d.length<i-1)return d.push([u,l]),this.size=++f.size,this;f=this.__data__=new a(d)}return f.set(u,l),this.size=f.size,this}return n0=o,n0}var i0,dj;function loe(){if(dj)return i0;dj=1;var e=Sd(),r=kie(),a=zie(),i=Uie(),o=Fie(),u=uoe();function l(f){var d=this.__data__=new e(f);this.size=d.size}return l.prototype.clear=r,l.prototype.delete=a,l.prototype.get=i,l.prototype.has=o,l.prototype.set=u,i0=l,i0}var o0,vj;function EB(){if(vj)return o0;vj=1;var e=Wb(),r=function(){try{var a=e(Object,"defineProperty");return a({},"",{}),a}catch{}}();return o0=r,o0}var s0,hj;function Yb(){if(hj)return s0;hj=1;var e=EB();function r(a,i,o){i=="__proto__"&&e?e(a,i,{configurable:!0,enumerable:!0,value:o,writable:!0}):a[i]=o}return s0=r,s0}var u0,pj;function TB(){if(pj)return u0;pj=1;var e=Yb(),r=bd();function a(i,o,u){(u!==void 0&&!r(i[o],u)||u===void 0&&!(o in i))&&e(i,o,u)}return u0=a,u0}var l0,gj;function coe(){if(gj)return l0;gj=1;function e(r){return function(a,i,o){for(var u=-1,l=Object(a),f=o(a),d=f.length;d--;){var v=f[r?d:++u];if(i(l[v],v,l)===!1)break}return a}}return l0=e,l0}var c0,mj;function foe(){if(mj)return c0;mj=1;var e=coe(),r=e();return c0=r,c0}var ku={exports:{}};ku.exports;var yj;function doe(){return yj||(yj=1,function(e,r){var a=Ls(),i=r&&!r.nodeType&&r,o=i&&!0&&e&&!e.nodeType&&e,u=o&&o.exports===i,l=u?a.Buffer:void 0,f=l?l.allocUnsafe:void 0;function d(v,h){if(h)return v.slice();var p=v.length,m=f?f(p):new v.constructor(p);return v.copy(m),m}e.exports=d}(ku,ku.exports)),ku.exports}var f0,bj;function voe(){if(bj)return f0;bj=1;var e=Ls(),r=e.Uint8Array;return f0=r,f0}var d0,_j;function hoe(){if(_j)return d0;_j=1;var e=voe();function r(a){var i=new a.constructor(a.byteLength);return new e(i).set(new e(a)),i}return d0=r,d0}var v0,Sj;function poe(){if(Sj)return v0;Sj=1;var e=hoe();function r(a,i){var o=i?e(a.buffer):a.buffer;return new a.constructor(o,a.byteOffset,a.length)}return v0=r,v0}var h0,Ej;function goe(){if(Ej)return h0;Ej=1;function e(r,a){var i=-1,o=r.length;for(a||(a=Array(o));++i<o;)a[i]=r[i];return a}return h0=e,h0}var p0,Tj;function moe(){if(Tj)return p0;Tj=1;var e=mo(),r=Object.create,a=function(){function i(){}return function(o){if(!e(o))return{};if(r)return r(o);i.prototype=o;var u=new i;return i.prototype=void 0,u}}();return p0=a,p0}var g0,Rj;function yoe(){if(Rj)return g0;Rj=1;function e(r,a){return function(i){return r(a(i))}}return g0=e,g0}var m0,Oj;function RB(){if(Oj)return m0;Oj=1;var e=yoe(),r=e(Object.getPrototypeOf,Object);return m0=r,m0}var y0,Aj;function OB(){if(Aj)return y0;Aj=1;var e=Object.prototype;function r(a){var i=a&&a.constructor,o=typeof i=="function"&&i.prototype||e;return a===o}return y0=r,y0}var b0,wj;function boe(){if(wj)return b0;wj=1;var e=moe(),r=RB(),a=OB();function i(o){return typeof o.constructor=="function"&&!a(o)?e(r(o)):{}}return b0=i,b0}var _0,xj;function ml(){if(xj)return _0;xj=1;function e(r){return r!=null&&typeof r=="object"}return _0=e,_0}var S0,Cj;function _oe(){if(Cj)return S0;Cj=1;var e=Ed(),r=ml(),a="[object Arguments]";function i(o){return r(o)&&e(o)==a}return S0=i,S0}var E0,Ij;function AB(){if(Ij)return E0;Ij=1;var e=_oe(),r=ml(),a=Object.prototype,i=a.hasOwnProperty,o=a.propertyIsEnumerable,u=e(function(){return arguments}())?e:function(l){return r(l)&&i.call(l,"callee")&&!o.call(l,"callee")};return E0=u,E0}var T0,qj;function wB(){if(qj)return T0;qj=1;var e=Array.isArray;return T0=e,T0}var R0,Mj;function xB(){if(Mj)return R0;Mj=1;var e=9007199254740991;function r(a){return typeof a=="number"&&a>-1&&a%1==0&&a<=e}return R0=r,R0}var O0,Nj;function Kb(){if(Nj)return O0;Nj=1;var e=Vb(),r=xB();function a(i){return i!=null&&r(i.length)&&!e(i)}return O0=a,O0}var A0,Lj;function Soe(){if(Lj)return A0;Lj=1;var e=Kb(),r=ml();function a(i){return r(i)&&e(i)}return A0=a,A0}var zu={exports:{}},w0,Dj;function Eoe(){if(Dj)return w0;Dj=1;function e(){return!1}return w0=e,w0}zu.exports;var Pj;function CB(){return Pj||(Pj=1,function(e,r){var a=Ls(),i=Eoe(),o=r&&!r.nodeType&&r,u=o&&!0&&e&&!e.nodeType&&e,l=u&&u.exports===o,f=l?a.Buffer:void 0,d=f?f.isBuffer:void 0,v=d||i;e.exports=v}(zu,zu.exports)),zu.exports}var x0,jj;function Toe(){if(jj)return x0;jj=1;var e=Ed(),r=RB(),a=ml(),i="[object Object]",o=Function.prototype,u=Object.prototype,l=o.toString,f=u.hasOwnProperty,d=l.call(Object);function v(h){if(!a(h)||e(h)!=i)return!1;var p=r(h);if(p===null)return!0;var m=f.call(p,"constructor")&&p.constructor;return typeof m=="function"&&m instanceof m&&l.call(m)==d}return x0=v,x0}var C0,kj;function Roe(){if(kj)return C0;kj=1;var e=Ed(),r=xB(),a=ml(),i="[object Arguments]",o="[object Array]",u="[object Boolean]",l="[object Date]",f="[object Error]",d="[object Function]",v="[object Map]",h="[object Number]",p="[object Object]",m="[object RegExp]",y="[object Set]",b="[object String]",E="[object WeakMap]",T="[object ArrayBuffer]",S="[object DataView]",R="[object Float32Array]",O="[object Float64Array]",w="[object Int8Array]",A="[object Int16Array]",I="[object Int32Array]",q="[object Uint8Array]",M="[object Uint8ClampedArray]",L="[object Uint16Array]",z="[object Uint32Array]",j={};j[R]=j[O]=j[w]=j[A]=j[I]=j[q]=j[M]=j[L]=j[z]=!0,j[i]=j[o]=j[T]=j[u]=j[S]=j[l]=j[f]=j[d]=j[v]=j[h]=j[p]=j[m]=j[y]=j[b]=j[E]=!1;function U(F){return a(F)&&r(F.length)&&!!j[e(F)]}return C0=U,C0}var I0,zj;function Ooe(){if(zj)return I0;zj=1;function e(r){return function(a){return r(a)}}return I0=e,I0}var Uu={exports:{}};Uu.exports;var Uj;function Aoe(){return Uj||(Uj=1,function(e,r){var a=bB(),i=r&&!r.nodeType&&r,o=i&&!0&&e&&!e.nodeType&&e,u=o&&o.exports===i,l=u&&a.process,f=function(){try{var d=o&&o.require&&o.require("util").types;return d||l&&l.binding&&l.binding("util")}catch{}}();e.exports=f}(Uu,Uu.exports)),Uu.exports}var q0,Fj;function IB(){if(Fj)return q0;Fj=1;var e=Roe(),r=Ooe(),a=Aoe(),i=a&&a.isTypedArray,o=i?r(i):e;return q0=o,q0}var M0,Bj;function qB(){if(Bj)return M0;Bj=1;function e(r,a){if(!(a==="constructor"&&typeof r[a]=="function")&&a!="__proto__")return r[a]}return M0=e,M0}var N0,Hj;function woe(){if(Hj)return N0;Hj=1;var e=Yb(),r=bd(),a=Object.prototype,i=a.hasOwnProperty;function o(u,l,f){var d=u[l];(!(i.call(u,l)&&r(d,f))||f===void 0&&!(l in u))&&e(u,l,f)}return N0=o,N0}var L0,$j;function xoe(){if($j)return L0;$j=1;var e=woe(),r=Yb();function a(i,o,u,l){var f=!u;u||(u={});for(var d=-1,v=o.length;++d<v;){var h=o[d],p=l?l(u[h],i[h],h,u,i):void 0;p===void 0&&(p=i[h]),f?r(u,h,p):e(u,h,p)}return u}return L0=a,L0}var D0,Gj;function Coe(){if(Gj)return D0;Gj=1;function e(r,a){for(var i=-1,o=Array(r);++i<r;)o[i]=a(i);return o}return D0=e,D0}var P0,Vj;function MB(){if(Vj)return P0;Vj=1;var e=9007199254740991,r=/^(?:0|[1-9]\d*)$/;function a(i,o){var u=typeof i;return o=o??e,!!o&&(u=="number"||u!="symbol"&&r.test(i))&&i>-1&&i%1==0&&i<o}return P0=a,P0}var j0,Wj;function Ioe(){if(Wj)return j0;Wj=1;var e=Coe(),r=AB(),a=wB(),i=CB(),o=MB(),u=IB(),l=Object.prototype,f=l.hasOwnProperty;function d(v,h){var p=a(v),m=!p&&r(v),y=!p&&!m&&i(v),b=!p&&!m&&!y&&u(v),E=p||m||y||b,T=E?e(v.length,String):[],S=T.length;for(var R in v)(h||f.call(v,R))&&!(E&&(R=="length"||y&&(R=="offset"||R=="parent")||b&&(R=="buffer"||R=="byteLength"||R=="byteOffset")||o(R,S)))&&T.push(R);return T}return j0=d,j0}var k0,Yj;function qoe(){if(Yj)return k0;Yj=1;function e(r){var a=[];if(r!=null)for(var i in Object(r))a.push(i);return a}return k0=e,k0}var z0,Kj;function Moe(){if(Kj)return z0;Kj=1;var e=mo(),r=OB(),a=qoe(),i=Object.prototype,o=i.hasOwnProperty;function u(l){if(!e(l))return a(l);var f=r(l),d=[];for(var v in l)v=="constructor"&&(f||!o.call(l,v))||d.push(v);return d}return z0=u,z0}var U0,Qj;function NB(){if(Qj)return U0;Qj=1;var e=Ioe(),r=Moe(),a=Kb();function i(o){return a(o)?e(o,!0):r(o)}return U0=i,U0}var F0,Zj;function Noe(){if(Zj)return F0;Zj=1;var e=xoe(),r=NB();function a(i){return e(i,r(i))}return F0=a,F0}var B0,Xj;function Loe(){if(Xj)return B0;Xj=1;var e=TB(),r=doe(),a=poe(),i=goe(),o=boe(),u=AB(),l=wB(),f=Soe(),d=CB(),v=Vb(),h=mo(),p=Toe(),m=IB(),y=qB(),b=Noe();function E(T,S,R,O,w,A,I){var q=y(T,R),M=y(S,R),L=I.get(M);if(L){e(T,R,L);return}var z=A?A(q,M,R+"",T,S,I):void 0,j=z===void 0;if(j){var U=l(M),F=!U&&d(M),H=!U&&!F&&m(M);z=M,U||F||H?l(q)?z=q:f(q)?z=i(q):F?(j=!1,z=r(M,!0)):H?(j=!1,z=a(M,!0)):z=[]:p(M)||u(M)?(z=q,u(q)?z=b(q):(!h(q)||v(q))&&(z=o(M))):j=!1}j&&(I.set(M,z),w(z,M,O,A,I),I.delete(M)),e(T,R,z)}return B0=E,B0}var H0,Jj;function Doe(){if(Jj)return H0;Jj=1;var e=loe(),r=TB(),a=foe(),i=Loe(),o=mo(),u=NB(),l=qB();function f(d,v,h,p,m){d!==v&&a(v,function(y,b){if(m||(m=new e),o(y))i(d,v,b,h,f,p,m);else{var E=p?p(l(d,b),y,b+"",d,v,m):void 0;E===void 0&&(E=y),r(d,b,E)}},u)}return H0=f,H0}var $0,ek;function LB(){if(ek)return $0;ek=1;function e(r){return r}return $0=e,$0}var G0,rk;function Poe(){if(rk)return G0;rk=1;function e(r,a,i){switch(i.length){case 0:return r.call(a);case 1:return r.call(a,i[0]);case 2:return r.call(a,i[0],i[1]);case 3:return r.call(a,i[0],i[1],i[2])}return r.apply(a,i)}return G0=e,G0}var V0,tk;function joe(){if(tk)return V0;tk=1;var e=Poe(),r=Math.max;function a(i,o,u){return o=r(o===void 0?i.length-1:o,0),function(){for(var l=arguments,f=-1,d=r(l.length-o,0),v=Array(d);++f<d;)v[f]=l[o+f];f=-1;for(var h=Array(o+1);++f<o;)h[f]=l[f];return h[o]=u(v),e(i,this,h)}}return V0=a,V0}var W0,ak;function koe(){if(ak)return W0;ak=1;function e(r){return function(){return r}}return W0=e,W0}var Y0,nk;function zoe(){if(nk)return Y0;nk=1;var e=koe(),r=EB(),a=LB(),i=r?function(o,u){return r(o,"toString",{configurable:!0,enumerable:!1,value:e(u),writable:!0})}:a;return Y0=i,Y0}var K0,ik;function Uoe(){if(ik)return K0;ik=1;var e=800,r=16,a=Date.now;function i(o){var u=0,l=0;return function(){var f=a(),d=r-(f-l);if(l=f,d>0){if(++u>=e)return arguments[0]}else u=0;return o.apply(void 0,arguments)}}return K0=i,K0}var Q0,ok;function Foe(){if(ok)return Q0;ok=1;var e=zoe(),r=Uoe(),a=r(e);return Q0=a,Q0}var Z0,sk;function Boe(){if(sk)return Z0;sk=1;var e=LB(),r=joe(),a=Foe();function i(o,u){return a(r(o,u,e),o+"")}return Z0=i,Z0}var X0,uk;function Hoe(){if(uk)return X0;uk=1;var e=bd(),r=Kb(),a=MB(),i=mo();function o(u,l,f){if(!i(f))return!1;var d=typeof l;return(d=="number"?r(f)&&a(l,f.length):d=="string"&&l in f)?e(f[l],u):!1}return X0=o,X0}var J0,lk;function $oe(){if(lk)return J0;lk=1;var e=Boe(),r=Hoe();function a(i){return e(function(o,u){var l=-1,f=u.length,d=f>1?u[f-1]:void 0,v=f>2?u[2]:void 0;for(d=i.length>3&&typeof d=="function"?(f--,d):void 0,v&&r(u[0],u[1],v)&&(d=f<3?void 0:d,f=1),o=Object(o);++l<f;){var h=u[l];h&&i(o,h,l,d)}return o})}return J0=a,J0}var e4,ck;function Goe(){if(ck)return e4;ck=1;var e=Doe(),r=$oe(),a=r(function(i,o,u){e(i,o,u)});return e4=a,e4}var Voe=Goe();const fk=Hr(Voe);var lf={exports:{}},Woe=lf.exports,dk;function Yoe(){return dk||(dk=1,function(e,r){(function(a,i){i()})(Woe,function(){function a(v,h){return typeof h>"u"?h={autoBom:!1}:typeof h!="object"&&(console.warn("Deprecated: Expected third argument to be a object"),h={autoBom:!h}),h.autoBom&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(v.type)?new Blob(["\uFEFF",v],{type:v.type}):v}function i(v,h,p){var m=new XMLHttpRequest;m.open("GET",v),m.responseType="blob",m.onload=function(){d(m.response,h,p)},m.onerror=function(){console.error("could not download file")},m.send()}function o(v){var h=new XMLHttpRequest;h.open("HEAD",v,!1);try{h.send()}catch{}return 200<=h.status&&299>=h.status}function u(v){try{v.dispatchEvent(new MouseEvent("click"))}catch{var h=document.createEvent("MouseEvents");h.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),v.dispatchEvent(h)}}var l=typeof window=="object"&&window.window===window?window:typeof self=="object"&&self.self===self?self:typeof rn=="object"&&rn.global===rn?rn:void 0,f=l.navigator&&/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),d=l.saveAs||(typeof window!="object"||window!==l?function(){}:"download"in HTMLAnchorElement.prototype&&!f?function(v,h,p){var m=l.URL||l.webkitURL,y=document.createElement("a");h=h||v.name||"download",y.download=h,y.rel="noopener",typeof v=="string"?(y.href=v,y.origin===location.origin?u(y):o(y.href)?i(v,h,p):u(y,y.target="_blank")):(y.href=m.createObjectURL(v),setTimeout(function(){m.revokeObjectURL(y.href)},4e4),setTimeout(function(){u(y)},0))}:"msSaveOrOpenBlob"in navigator?function(v,h,p){if(h=h||v.name||"download",typeof v!="string")navigator.msSaveOrOpenBlob(a(v,p),h);else if(o(v))i(v,h,p);else{var m=document.createElement("a");m.href=v,m.target="_blank",setTimeout(function(){u(m)})}}:function(v,h,p,m){if(m=m||open("","_blank"),m&&(m.document.title=m.document.body.innerText="downloading..."),typeof v=="string")return i(v,h,p);var y=v.type==="application/octet-stream",b=/constructor/i.test(l.HTMLElement)||l.safari,E=/CriOS\/[\d]+/.test(navigator.userAgent);if((E||y&&b||f)&&typeof FileReader<"u"){var T=new FileReader;T.onloadend=function(){var O=T.result;O=E?O:O.replace(/^data:[^;]*;/,"data:attachment/file;"),m?m.location.href=O:location=O,m=null},T.readAsDataURL(v)}else{var S=l.URL||l.webkitURL,R=S.createObjectURL(v);m?m.location=R:location.href=R,m=null,setTimeout(function(){S.revokeObjectURL(R)},4e4)}});l.saveAs=d.saveAs=d,e.exports=d})}(lf)),lf.exports}var DB=Yoe();const xve=Hr(DB),Cve=(e,r,a)=>{const[i,o]=a,[u,l]=r;return(e-u)/(l-u)*(o-i)+i},Koe=e=>Math.random().toString(36).slice(2,2+e),Ive=e=>{for(const r in e)return r},vk=e=>JSON.stringify(e,(r,a)=>a===void 0?null:a),qve=(e,r)=>{if(e)switch(r){case"ISO_8601":case"ISO_8601_local":return new Date(Date.parse(e));case"epoch":return new Date(e);case"disable":return;default:console.warn(`Unknown last_seen type ${r}`);return}};function Lu(e){return e.toString().padStart(2,"0")}function Qoe(e){return`${[e.getFullYear(),Lu(e.getMonth()+1),Lu(e.getDate())].join("-")} ${[Lu(e.getHours()),Lu(e.getMinutes()),Lu(e.getSeconds())].join(":")}`}const Mve=(e,r=4)=>`0x${("0".repeat(r)+e.toString(16)).slice(-1*r).toUpperCase()}`,Nve=e=>e?e.replace(/:|\s|\//g,"-"):"NA";function Zoe(e){return!("members"in e)}const Lve=e=>{const r=new Set;if(!e)return r;if(Zoe(e)){for(const a in e.endpoints)r.add(Number.parseInt(a,10));if(e.definition?.exposes)for(const a of e.definition.exposes)a.endpoint&&r.add(a.endpoint)}else for(const a of e.members)r.add(a.endpoint);return r},Xoe=async(e,r)=>{const{default:a}=await Pa(async()=>{const{default:u}=await import("./jszip.min-2t6j1PLa.js").then(l=>l.j);return{default:u}},[],import.meta.url),i=new a;i.file(r,JSON.stringify(e,null,4),{compression:"DEFLATE"});const o=await i.generateAsync({type:"blob"});DB.saveAs(o,`${r}.zip`)},PB="/availability",hk={devices:[],deviceStates:{},groups:[],bridgeState:{state:"offline"},bridgeHealth:{response_time:0,os:{load_average:[0,0,0],memory_used_mb:0,memory_percent:0},process:{uptime_sec:0,memory_used_mb:0,memory_percent:0},mqtt:{connected:!1,queued:0,received:0,published:0},devices:{}},bridgeInfo:{config_schema:{properties:{},required:[],definitions:{}},config:{advanced:{elapsed:!1,last_seen:"disable",log_level:"info",log_rotation:!1,log_console_json:!1,log_symlink_current:!1,log_output:[],log_directory:"",log_file:"",log_namespaced_levels:{},log_syslog:{},log_debug_to_mqtt_frontend:!1,log_debug_namespace_ignore:"",log_directories_to_keep:0,pan_id:0,ext_pan_id:[],channel:0,cache_state:!1,cache_state_persistent:!1,cache_state_send_on_startup:!1,network_key:[],timestamp_format:"",output:"json"},devices:{},device_options:{},frontend:{enabled:!0,package:"zigbee2mqtt-windfront",port:8080,base_url:"/"},homeassistant:{enabled:!1,discovery_topic:"",status_topic:"",experimental_event_entities:!1,legacy_action_sensor:!1},availability:{enabled:!1,active:{timeout:0,max_jitter:0,backoff:!1,pause_on_backoff_gt:0},passive:{timeout:0}},mqtt:{base_topic:"",include_device_information:!1,force_disable_retain:!1,server:"",maximum_packet_size:0},serial:{disable_led:!1},passlist:[],blocklist:[],map_options:{graphviz:{}},ota:{update_check_interval:0,disable_automatic_update_check:!1,zigbee_ota_override_index_location:void 0,image_block_response_delay:void 0,default_maximum_data_size:void 0},groups:{},health:{interval:10,reset_on_check:!1}},permit_join:!1,permit_join_end:void 0,zigbee_herdsman_converters:{version:""},zigbee_herdsman:{version:""},device_options:{},restart_required:!1,version:"",coordinator:{meta:{},type:"",ieee_address:""},os:{version:"",node_version:"",cpus:"",memory_mb:0},mqtt:{server:"",version:0}},bridgeDefinitions:{clusters:{},custom_clusters:{}},availability:{},generatedExternalDefinitions:{},logs:[],logsLimit:100,lastNonDebugLog:void 0,extensions:[],converters:[],touchlinkDevices:[],touchlinkScanInProgress:!1,touchlinkIdentifyInProgress:!1,touchlinkResetInProgress:!1,networkMap:void 0,networkMapIsLoading:!1,preparingBackup:!1,backup:""},jB=wie({name:"store",initialState:hk,reducers:{setExtensions:(e,r)=>{e.extensions=r.payload},setConverters:(e,r)=>{e.converters=r.payload},setTouchlinkScan:(e,r)=>{e.touchlinkScanInProgress=r.payload.inProgress,e.touchlinkDevices=r.payload.devices},setTouchlinkIdentifyInProgress:(e,r)=>{e.touchlinkIdentifyInProgress=r.payload},setTouchlinkResetInProgress:(e,r)=>{e.touchlinkResetInProgress=r.payload},clearLogs:e=>{e.logs=[],e.lastNonDebugLog=void 0},setLogsLimit:(e,r)=>{e.logsLimit=r.payload,e.logs=e.logs.slice(-r.payload)},addLog:(e,r)=>{e.logs.length>e.logsLimit&&e.logs.pop();const a={...r.payload,timestamp:Qoe(new Date)};e.logs.push(a),a.level!=="debug"&&(e.lastNonDebugLog=a)},updateDeviceStateMessage:(e,r)=>{e.deviceStates[r.payload.topic]=fk(e.deviceStates[r.payload.topic]??{},r.payload.payload)},resetDeviceState:(e,r)=>{e.deviceStates[r.payload]={}},updateAvailability:(e,r)=>{const a=r.payload.topic.split(PB,1)[0];e.availability[a]=r.payload.payload},setBridgeInfo:(e,r)=>{e.bridgeInfo=r.payload},setBridgeState:(e,r)=>{e.bridgeState=r.payload},setBridgeHealth:(e,r)=>{e.bridgeHealth=r.payload},setBridgeDefinitions:(e,r)=>{e.bridgeDefinitions=r.payload},setDevices:(e,r)=>{e.devices=r.payload.sort((a,i)=>a.friendly_name.localeCompare(i.friendly_name))},setGroups:(e,r)=>{e.groups=r.payload.sort((a,i)=>a.friendly_name.localeCompare(i.friendly_name))},setNetworkMap:(e,r)=>{e.networkMapIsLoading=!1,e.networkMap=r.payload},setNetworkMapIsLoading:e=>{e.networkMapIsLoading=!0,e.networkMap=void 0},setBackup:(e,r)=>{e.preparingBackup=!1,e.backup=r.payload},setBackupPreparing:e=>{e.preparingBackup=!0},addGeneratedExternalDefinition:(e,r)=>{e.generatedExternalDefinitions[r.payload.id]=r.payload.source},reset:e=>{const r=fk({},hk);for(const a in r)e[a]=r[a]}}}),kB=_ie({reducer:jB.reducer}),{setExtensions:Joe,setConverters:ese,setTouchlinkScan:rse,setTouchlinkIdentifyInProgress:tse,setTouchlinkResetInProgress:ase,clearLogs:Dve,setLogsLimit:Pve,addLog:Fu,updateDeviceStateMessage:nse,resetDeviceState:jve,updateAvailability:ise,setBridgeInfo:ose,setBridgeState:sse,setBridgeHealth:use,setBridgeDefinitions:lse,setDevices:cse,setGroups:fse,setNetworkMap:dse,setNetworkMapIsLoading:kve,setBackup:vse,setBackupPreparing:zve,addGeneratedExternalDefinition:hse,reset:pse}=jB.actions,pk={didCatch:!1,error:null};class gse extends V.Component{constructor(r){super(r),this.resetErrorBoundary=this.resetErrorBoundary.bind(this),this.state=pk}static getDerivedStateFromError(r){return{didCatch:!0,error:r}}resetErrorBoundary(){this.state.error!==null&&this.setState(pk)}render(){const{didCatch:r,error:a}=this.state;if(r){const i={template:"bug_report.yaml",stacktrace:[`**Current url**: ${window.location.toString()}`,`**Previous url**: ${document.referrer}`,`
|
|
638
638
|
`,`**Error type**: ${a?.name}`,`**Error message**: ${a?.message}`,`
|
|
639
639
|
|
|
640
640
|
`,a?.stack].join(`
|
|
641
641
|
`)};return se.jsx("div",{children:se.jsx("div",{className:"hero bg-base-200 min-h-screen",children:se.jsx("div",{className:"hero-content text-center",children:se.jsxs("div",{className:"max-w-lg",children:[se.jsx("h1",{className:"text-3xl font-bold",children:"You've found a bug!"}),se.jsxs("ul",{className:"list bg-base-100 rounded-box shadow-md my-3",children:[se.jsxs("li",{className:"list-row",children:[se.jsx("div",{}),se.jsxs("div",{children:[se.jsx("div",{children:"Save this file"}),se.jsx("div",{className:"text-xs font-semibold opacity-60",children:"For use in next step"})]}),se.jsx("button",{type:"button",className:"btn btn-primary btn-square animate-pulse text-3xl",onClick:async()=>{await Xoe(kB.getState(),"state.json")},children:"➘"})]}),se.jsxs("li",{className:"list-row",children:[se.jsx("div",{}),se.jsxs("div",{children:[se.jsx("div",{children:"Create a Github Issue"}),se.jsx("div",{className:"text-xs uppercase font-semibold opacity-60",children:"Attach the previously saved file"})]}),se.jsx("p",{className:"list-col-wrap",children:"In the github issue write a detailed description. How did it happen? What were you trying to do? Etc."}),se.jsx("a",{target:"_blank",rel:"noopener noreferrer",href:`${Gne}?${new URLSearchParams(i).toString()}`,className:"btn btn-primary btn-square animate-pulse text-3xl",children:"➥"})]})]}),se.jsxs("fieldset",{className:"fieldset my-3",children:[se.jsx("legend",{className:"fieldset-legend",children:"Error details"}),se.jsx("textarea",{className:"textarea w-full",readOnly:!0,rows:10,defaultValue:`${a.name}
|
|
642
642
|
${a.message}
|
|
643
643
|
|
|
644
|
-
${a.stack}`})]}),se.jsx("button",{type:"button",className:"btn btn-secondary",onClick:()=>{this.resetErrorBoundary()},children:"Try again"})]})})})})}return this.props.children}}const sr=e=>typeof e=="string",Du=()=>{let e,r;const a=new Promise((i,o)=>{e=i,r=o});return a.resolve=e,a.reject=r,a},gk=e=>e==null?"":""+e,mse=(e,r,a)=>{e.forEach(i=>{r[i]&&(a[i]=r[i])})},yse=/###/g,mk=e=>e&&e.indexOf("###")>-1?e.replace(yse,"."):e,yk=e=>!e||sr(e),$u=(e,r,a)=>{const i=sr(r)?r.split("."):r;let o=0;for(;o<i.length-1;){if(yk(e))return{};const u=mk(i[o]);!e[u]&&a&&(e[u]=new a),Object.prototype.hasOwnProperty.call(e,u)?e=e[u]:e={},++o}return yk(e)?{}:{obj:e,k:mk(i[o])}},bk=(e,r,a)=>{const{obj:i,k:o}=$u(e,r,Object);if(i!==void 0||r.length===1){i[o]=a;return}let u=r[r.length-1],l=r.slice(0,r.length-1),f=$u(e,l,Object);for(;f.obj===void 0&&l.length;)u=`${l[l.length-1]}.${u}`,l=l.slice(0,l.length-1),f=$u(e,l,Object),f?.obj&&typeof f.obj[`${f.k}.${u}`]<"u"&&(f.obj=void 0);f.obj[`${f.k}.${u}`]=a},bse=(e,r,a,i)=>{const{obj:o,k:u}=$u(e,r,Object);o[u]=o[u]||[],o[u].push(a)},_f=(e,r)=>{const{obj:a,k:i}=$u(e,r);if(a&&Object.prototype.hasOwnProperty.call(a,i))return a[i]},_se=(e,r,a)=>{const i=_f(e,a);return i!==void 0?i:_f(r,a)},zB=(e,r,a)=>{for(const i in r)i!=="__proto__"&&i!=="constructor"&&(i in e?sr(e[i])||e[i]instanceof String||sr(r[i])||r[i]instanceof String?a&&(e[i]=r[i]):zB(e[i],r[i],a):e[i]=r[i]);return e},ts=e=>e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&");var Sse={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"};const Ese=e=>sr(e)?e.replace(/[&<>"'\/]/g,r=>Sse[r]):e;class Tse{constructor(r){this.capacity=r,this.regExpMap=new Map,this.regExpQueue=[]}getRegExp(r){const a=this.regExpMap.get(r);if(a!==void 0)return a;const i=new RegExp(r);return this.regExpQueue.length===this.capacity&&this.regExpMap.delete(this.regExpQueue.shift()),this.regExpMap.set(r,i),this.regExpQueue.push(r),i}}const Rse=[" ",",","?","!",";"],Ose=new Tse(20),Ase=(e,r,a)=>{r=r||"",a=a||"";const i=Rse.filter(l=>r.indexOf(l)<0&&a.indexOf(l)<0);if(i.length===0)return!0;const o=Ose.getRegExp(`(${i.map(l=>l==="?"?"\\?":l).join("|")})`);let u=!o.test(e);if(!u){const l=e.indexOf(a);l>0&&!o.test(e.substring(0,l))&&(u=!0)}return u},q4=(e,r,a=".")=>{if(!e)return;if(e[r])return Object.prototype.hasOwnProperty.call(e,r)?e[r]:void 0;const i=r.split(a);let o=e;for(let u=0;u<i.length;){if(!o||typeof o!="object")return;let l,f="";for(let d=u;d<i.length;++d)if(d!==u&&(f+=a),f+=i[d],l=o[f],l!==void 0){if(["string","number","boolean"].indexOf(typeof l)>-1&&d<i.length-1)continue;u+=d-u+1;break}o=l}return o},Qu=e=>e?.replace("_","-"),wse={type:"logger",log(e){this.output("log",e)},warn(e){this.output("warn",e)},error(e){this.output("error",e)},output(e,r){console?.[e]?.apply?.(console,r)}};class Sf{constructor(r,a={}){this.init(r,a)}init(r,a={}){this.prefix=a.prefix||"i18next:",this.logger=r||wse,this.options=a,this.debug=a.debug}log(...r){return this.forward(r,"log","",!0)}warn(...r){return this.forward(r,"warn","",!0)}error(...r){return this.forward(r,"error","")}deprecate(...r){return this.forward(r,"warn","WARNING DEPRECATED: ",!0)}forward(r,a,i,o){return o&&!this.debug?null:(sr(r[0])&&(r[0]=`${i}${this.prefix} ${r[0]}`),this.logger[a](r))}create(r){return new Sf(this.logger,{prefix:`${this.prefix}:${r}:`,...this.options})}clone(r){return r=r||this.options,r.prefix=r.prefix||this.prefix,new Sf(this.logger,r)}}var an=new Sf;class Od{constructor(){this.observers={}}on(r,a){return r.split(" ").forEach(i=>{this.observers[i]||(this.observers[i]=new Map);const o=this.observers[i].get(a)||0;this.observers[i].set(a,o+1)}),this}off(r,a){if(this.observers[r]){if(!a){delete this.observers[r];return}this.observers[r].delete(a)}}emit(r,...a){this.observers[r]&&Array.from(this.observers[r].entries()).forEach(([o,u])=>{for(let l=0;l<u;l++)o(...a)}),this.observers["*"]&&Array.from(this.observers["*"].entries()).forEach(([o,u])=>{for(let l=0;l<u;l++)o.apply(o,[r,...a])})}}class _k extends Od{constructor(r,a={ns:["translation"],defaultNS:"translation"}){super(),this.data=r||{},this.options=a,this.options.keySeparator===void 0&&(this.options.keySeparator="."),this.options.ignoreJSONStructure===void 0&&(this.options.ignoreJSONStructure=!0)}addNamespaces(r){this.options.ns.indexOf(r)<0&&this.options.ns.push(r)}removeNamespaces(r){const a=this.options.ns.indexOf(r);a>-1&&this.options.ns.splice(a,1)}getResource(r,a,i,o={}){const u=o.keySeparator!==void 0?o.keySeparator:this.options.keySeparator,l=o.ignoreJSONStructure!==void 0?o.ignoreJSONStructure:this.options.ignoreJSONStructure;let f;r.indexOf(".")>-1?f=r.split("."):(f=[r,a],i&&(Array.isArray(i)?f.push(...i):sr(i)&&u?f.push(...i.split(u)):f.push(i)));const d=_f(this.data,f);return!d&&!a&&!i&&r.indexOf(".")>-1&&(r=f[0],a=f[1],i=f.slice(2).join(".")),d||!l||!sr(i)?d:q4(this.data?.[r]?.[a],i,u)}addResource(r,a,i,o,u={silent:!1}){const l=u.keySeparator!==void 0?u.keySeparator:this.options.keySeparator;let f=[r,a];i&&(f=f.concat(l?i.split(l):i)),r.indexOf(".")>-1&&(f=r.split("."),o=a,a=f[1]),this.addNamespaces(a),bk(this.data,f,o),u.silent||this.emit("added",r,a,i,o)}addResources(r,a,i,o={silent:!1}){for(const u in i)(sr(i[u])||Array.isArray(i[u]))&&this.addResource(r,a,u,i[u],{silent:!0});o.silent||this.emit("added",r,a,i)}addResourceBundle(r,a,i,o,u,l={silent:!1,skipCopy:!1}){let f=[r,a];r.indexOf(".")>-1&&(f=r.split("."),o=i,i=a,a=f[1]),this.addNamespaces(a);let d=_f(this.data,f)||{};l.skipCopy||(i=JSON.parse(JSON.stringify(i))),o?zB(d,i,u):d={...d,...i},bk(this.data,f,d),l.silent||this.emit("added",r,a,i)}removeResourceBundle(r,a){this.hasResourceBundle(r,a)&&delete this.data[r][a],this.removeNamespaces(a),this.emit("removed",r,a)}hasResourceBundle(r,a){return this.getResource(r,a)!==void 0}getResourceBundle(r,a){return a||(a=this.options.defaultNS),this.getResource(r,a)}getDataByLanguage(r){return this.data[r]}hasLanguageSomeTranslations(r){const a=this.getDataByLanguage(r);return!!(a&&Object.keys(a)||[]).find(o=>a[o]&&Object.keys(a[o]).length>0)}toJSON(){return this.data}}var UB={processors:{},addPostProcessor(e){this.processors[e.name]=e},handle(e,r,a,i,o){return e.forEach(u=>{r=this.processors[u]?.process(r,a,i,o)??r}),r}};const Sk={},Ek=e=>!sr(e)&&typeof e!="boolean"&&typeof e!="number";class Ef extends Od{constructor(r,a={}){super(),mse(["resourceStore","languageUtils","pluralResolver","interpolator","backendConnector","i18nFormat","utils"],r,this),this.options=a,this.options.keySeparator===void 0&&(this.options.keySeparator="."),this.logger=an.create("translator")}changeLanguage(r){r&&(this.language=r)}exists(r,a={interpolation:{}}){const i={...a};return r==null?!1:this.resolve(r,i)?.res!==void 0}extractFromKey(r,a){let i=a.nsSeparator!==void 0?a.nsSeparator:this.options.nsSeparator;i===void 0&&(i=":");const o=a.keySeparator!==void 0?a.keySeparator:this.options.keySeparator;let u=a.ns||this.options.defaultNS||[];const l=i&&r.indexOf(i)>-1,f=!this.options.userDefinedKeySeparator&&!a.keySeparator&&!this.options.userDefinedNsSeparator&&!a.nsSeparator&&!Ase(r,i,o);if(l&&!f){const d=r.match(this.interpolator.nestingRegexp);if(d&&d.length>0)return{key:r,namespaces:sr(u)?[u]:u};const v=r.split(i);(i!==o||i===o&&this.options.ns.indexOf(v[0])>-1)&&(u=v.shift()),r=v.join(o)}return{key:r,namespaces:sr(u)?[u]:u}}translate(r,a,i){let o=typeof a=="object"?{...a}:a;if(typeof o!="object"&&this.options.overloadTranslationOptionHandler&&(o=this.options.overloadTranslationOptionHandler(arguments)),typeof options=="object"&&(o={...o}),o||(o={}),r==null)return"";Array.isArray(r)||(r=[String(r)]);const u=o.returnDetails!==void 0?o.returnDetails:this.options.returnDetails,l=o.keySeparator!==void 0?o.keySeparator:this.options.keySeparator,{key:f,namespaces:d}=this.extractFromKey(r[r.length-1],o),v=d[d.length-1];let h=o.nsSeparator!==void 0?o.nsSeparator:this.options.nsSeparator;h===void 0&&(h=":");const p=o.lng||this.language,m=o.appendNamespaceToCIMode||this.options.appendNamespaceToCIMode;if(p?.toLowerCase()==="cimode")return m?u?{res:`${v}${h}${f}`,usedKey:f,exactUsedKey:f,usedLng:p,usedNS:v,usedParams:this.getUsedParamsDetails(o)}:`${v}${h}${f}`:u?{res:f,usedKey:f,exactUsedKey:f,usedLng:p,usedNS:v,usedParams:this.getUsedParamsDetails(o)}:f;const y=this.resolve(r,o);let b=y?.res;const E=y?.usedKey||f,T=y?.exactUsedKey||f,S=["[object Number]","[object Function]","[object RegExp]"],R=o.joinArrays!==void 0?o.joinArrays:this.options.joinArrays,O=!this.i18nFormat||this.i18nFormat.handleAsObject,w=o.count!==void 0&&!sr(o.count),A=Ef.hasDefaultValue(o),I=w?this.pluralResolver.getSuffix(p,o.count,o):"",q=o.ordinal&&w?this.pluralResolver.getSuffix(p,o.count,{ordinal:!1}):"",M=w&&!o.ordinal&&o.count===0,L=M&&o[`defaultValue${this.options.pluralSeparator}zero`]||o[`defaultValue${I}`]||o[`defaultValue${q}`]||o.defaultValue;let z=b;O&&!b&&A&&(z=L);const j=Ek(z),U=Object.prototype.toString.apply(z);if(O&&z&&j&&S.indexOf(U)<0&&!(sr(R)&&Array.isArray(z))){if(!o.returnObjects&&!this.options.returnObjects){this.options.returnedObjectHandler||this.logger.warn("accessing an object - but returnObjects options is not enabled!");const F=this.options.returnedObjectHandler?this.options.returnedObjectHandler(E,z,{...o,ns:d}):`key '${f} (${this.language})' returned an object instead of string.`;return u?(y.res=F,y.usedParams=this.getUsedParamsDetails(o),y):F}if(l){const F=Array.isArray(z),H=F?[]:{},Q=F?T:E;for(const P in z)if(Object.prototype.hasOwnProperty.call(z,P)){const G=`${Q}${l}${P}`;A&&!b?H[P]=this.translate(G,{...o,defaultValue:Ek(L)?L[P]:void 0,joinArrays:!1,ns:d}):H[P]=this.translate(G,{...o,joinArrays:!1,ns:d}),H[P]===G&&(H[P]=z[P])}b=H}}else if(O&&sr(R)&&Array.isArray(b))b=b.join(R),b&&(b=this.extendTranslation(b,r,o,i));else{let F=!1,H=!1;!this.isValidLookup(b)&&A&&(F=!0,b=L),this.isValidLookup(b)||(H=!0,b=f);const P=(o.missingKeyNoValueFallbackToKey||this.options.missingKeyNoValueFallbackToKey)&&H?void 0:b,G=A&&L!==b&&this.options.updateMissing;if(H||F||G){if(this.logger.log(G?"updateKey":"missingKey",p,v,f,G?L:b),l){const D=this.resolve(f,{...o,keySeparator:!1});D&&D.res&&this.logger.warn("Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.")}let Z=[];const k=this.languageUtils.getFallbackCodes(this.options.fallbackLng,o.lng||this.language);if(this.options.saveMissingTo==="fallback"&&k&&k[0])for(let D=0;D<k.length;D++)Z.push(k[D]);else this.options.saveMissingTo==="all"?Z=this.languageUtils.toResolveHierarchy(o.lng||this.language):Z.push(o.lng||this.language);const C=(D,Y,W)=>{const te=A&&W!==b?W:P;this.options.missingKeyHandler?this.options.missingKeyHandler(D,v,Y,te,G,o):this.backendConnector?.saveMissing&&this.backendConnector.saveMissing(D,v,Y,te,G,o),this.emit("missingKey",D,v,Y,b)};this.options.saveMissing&&(this.options.saveMissingPlurals&&w?Z.forEach(D=>{const Y=this.pluralResolver.getSuffixes(D,o);M&&o[`defaultValue${this.options.pluralSeparator}zero`]&&Y.indexOf(`${this.options.pluralSeparator}zero`)<0&&Y.push(`${this.options.pluralSeparator}zero`),Y.forEach(W=>{C([D],f+W,o[`defaultValue${W}`]||L)})}):C(Z,f,L))}b=this.extendTranslation(b,r,o,y,i),H&&b===f&&this.options.appendNamespaceToMissingKey&&(b=`${v}${h}${f}`),(H||F)&&this.options.parseMissingKeyHandler&&(b=this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey?`${v}${h}${f}`:f,F?b:void 0,o))}return u?(y.res=b,y.usedParams=this.getUsedParamsDetails(o),y):b}extendTranslation(r,a,i,o,u){if(this.i18nFormat?.parse)r=this.i18nFormat.parse(r,{...this.options.interpolation.defaultVariables,...i},i.lng||this.language||o.usedLng,o.usedNS,o.usedKey,{resolved:o});else if(!i.skipInterpolation){i.interpolation&&this.interpolator.init({...i,interpolation:{...this.options.interpolation,...i.interpolation}});const d=sr(r)&&(i?.interpolation?.skipOnVariables!==void 0?i.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables);let v;if(d){const p=r.match(this.interpolator.nestingRegexp);v=p&&p.length}let h=i.replace&&!sr(i.replace)?i.replace:i;if(this.options.interpolation.defaultVariables&&(h={...this.options.interpolation.defaultVariables,...h}),r=this.interpolator.interpolate(r,h,i.lng||this.language||o.usedLng,i),d){const p=r.match(this.interpolator.nestingRegexp),m=p&&p.length;v<m&&(i.nest=!1)}!i.lng&&o&&o.res&&(i.lng=this.language||o.usedLng),i.nest!==!1&&(r=this.interpolator.nest(r,(...p)=>u?.[0]===p[0]&&!i.context?(this.logger.warn(`It seems you are nesting recursively key: ${p[0]} in key: ${a[0]}`),null):this.translate(...p,a),i)),i.interpolation&&this.interpolator.reset()}const l=i.postProcess||this.options.postProcess,f=sr(l)?[l]:l;return r!=null&&f?.length&&i.applyPostProcessor!==!1&&(r=UB.handle(f,r,a,this.options&&this.options.postProcessPassResolved?{i18nResolved:{...o,usedParams:this.getUsedParamsDetails(i)},...i}:i,this)),r}resolve(r,a={}){let i,o,u,l,f;return sr(r)&&(r=[r]),r.forEach(d=>{if(this.isValidLookup(i))return;const v=this.extractFromKey(d,a),h=v.key;o=h;let p=v.namespaces;this.options.fallbackNS&&(p=p.concat(this.options.fallbackNS));const m=a.count!==void 0&&!sr(a.count),y=m&&!a.ordinal&&a.count===0,b=a.context!==void 0&&(sr(a.context)||typeof a.context=="number")&&a.context!=="",E=a.lngs?a.lngs:this.languageUtils.toResolveHierarchy(a.lng||this.language,a.fallbackLng);p.forEach(T=>{this.isValidLookup(i)||(f=T,!Sk[`${E[0]}-${T}`]&&this.utils?.hasLoadedNamespace&&!this.utils?.hasLoadedNamespace(f)&&(Sk[`${E[0]}-${T}`]=!0,this.logger.warn(`key "${o}" for languages "${E.join(", ")}" won't get resolved as namespace "${f}" was not yet loaded`,"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!")),E.forEach(S=>{if(this.isValidLookup(i))return;l=S;const R=[h];if(this.i18nFormat?.addLookupKeys)this.i18nFormat.addLookupKeys(R,h,S,T,a);else{let w;m&&(w=this.pluralResolver.getSuffix(S,a.count,a));const A=`${this.options.pluralSeparator}zero`,I=`${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`;if(m&&(R.push(h+w),a.ordinal&&w.indexOf(I)===0&&R.push(h+w.replace(I,this.options.pluralSeparator)),y&&R.push(h+A)),b){const q=`${h}${this.options.contextSeparator}${a.context}`;R.push(q),m&&(R.push(q+w),a.ordinal&&w.indexOf(I)===0&&R.push(q+w.replace(I,this.options.pluralSeparator)),y&&R.push(q+A))}}let O;for(;O=R.pop();)this.isValidLookup(i)||(u=O,i=this.getResource(S,T,O,a))}))})}),{res:i,usedKey:o,exactUsedKey:u,usedLng:l,usedNS:f}}isValidLookup(r){return r!==void 0&&!(!this.options.returnNull&&r===null)&&!(!this.options.returnEmptyString&&r==="")}getResource(r,a,i,o={}){return this.i18nFormat?.getResource?this.i18nFormat.getResource(r,a,i,o):this.resourceStore.getResource(r,a,i,o)}getUsedParamsDetails(r={}){const a=["defaultValue","ordinal","context","replace","lng","lngs","fallbackLng","ns","keySeparator","nsSeparator","returnObjects","returnDetails","joinArrays","postProcess","interpolation"],i=r.replace&&!sr(r.replace);let o=i?r.replace:r;if(i&&typeof r.count<"u"&&(o.count=r.count),this.options.interpolation.defaultVariables&&(o={...this.options.interpolation.defaultVariables,...o}),!i){o={...o};for(const u of a)delete o[u]}return o}static hasDefaultValue(r){const a="defaultValue";for(const i in r)if(Object.prototype.hasOwnProperty.call(r,i)&&a===i.substring(0,a.length)&&r[i]!==void 0)return!0;return!1}}class Tk{constructor(r){this.options=r,this.supportedLngs=this.options.supportedLngs||!1,this.logger=an.create("languageUtils")}getScriptPartFromCode(r){if(r=Qu(r),!r||r.indexOf("-")<0)return null;const a=r.split("-");return a.length===2||(a.pop(),a[a.length-1].toLowerCase()==="x")?null:this.formatLanguageCode(a.join("-"))}getLanguagePartFromCode(r){if(r=Qu(r),!r||r.indexOf("-")<0)return r;const a=r.split("-");return this.formatLanguageCode(a[0])}formatLanguageCode(r){if(sr(r)&&r.indexOf("-")>-1){let a;try{a=Intl.getCanonicalLocales(r)[0]}catch{}return a&&this.options.lowerCaseLng&&(a=a.toLowerCase()),a||(this.options.lowerCaseLng?r.toLowerCase():r)}return this.options.cleanCode||this.options.lowerCaseLng?r.toLowerCase():r}isSupportedCode(r){return(this.options.load==="languageOnly"||this.options.nonExplicitSupportedLngs)&&(r=this.getLanguagePartFromCode(r)),!this.supportedLngs||!this.supportedLngs.length||this.supportedLngs.indexOf(r)>-1}getBestMatchFromCodes(r){if(!r)return null;let a;return r.forEach(i=>{if(a)return;const o=this.formatLanguageCode(i);(!this.options.supportedLngs||this.isSupportedCode(o))&&(a=o)}),!a&&this.options.supportedLngs&&r.forEach(i=>{if(a)return;const o=this.getScriptPartFromCode(i);if(this.isSupportedCode(o))return a=o;const u=this.getLanguagePartFromCode(i);if(this.isSupportedCode(u))return a=u;a=this.options.supportedLngs.find(l=>{if(l===u)return l;if(!(l.indexOf("-")<0&&u.indexOf("-")<0)&&(l.indexOf("-")>0&&u.indexOf("-")<0&&l.substring(0,l.indexOf("-"))===u||l.indexOf(u)===0&&u.length>1))return l})}),a||(a=this.getFallbackCodes(this.options.fallbackLng)[0]),a}getFallbackCodes(r,a){if(!r)return[];if(typeof r=="function"&&(r=r(a)),sr(r)&&(r=[r]),Array.isArray(r))return r;if(!a)return r.default||[];let i=r[a];return i||(i=r[this.getScriptPartFromCode(a)]),i||(i=r[this.formatLanguageCode(a)]),i||(i=r[this.getLanguagePartFromCode(a)]),i||(i=r.default),i||[]}toResolveHierarchy(r,a){const i=this.getFallbackCodes((a===!1?[]:a)||this.options.fallbackLng||[],r),o=[],u=l=>{l&&(this.isSupportedCode(l)?o.push(l):this.logger.warn(`rejecting language code not found in supportedLngs: ${l}`))};return sr(r)&&(r.indexOf("-")>-1||r.indexOf("_")>-1)?(this.options.load!=="languageOnly"&&u(this.formatLanguageCode(r)),this.options.load!=="languageOnly"&&this.options.load!=="currentOnly"&&u(this.getScriptPartFromCode(r)),this.options.load!=="currentOnly"&&u(this.getLanguagePartFromCode(r))):sr(r)&&u(this.formatLanguageCode(r)),i.forEach(l=>{o.indexOf(l)<0&&u(this.formatLanguageCode(l))}),o}}const Rk={zero:0,one:1,two:2,few:3,many:4,other:5},Ok={select:e=>e===1?"one":"other",resolvedOptions:()=>({pluralCategories:["one","other"]})};class xse{constructor(r,a={}){this.languageUtils=r,this.options=a,this.logger=an.create("pluralResolver"),this.pluralRulesCache={}}addRule(r,a){this.rules[r]=a}clearCache(){this.pluralRulesCache={}}getRule(r,a={}){const i=Qu(r==="dev"?"en":r),o=a.ordinal?"ordinal":"cardinal",u=JSON.stringify({cleanedCode:i,type:o});if(u in this.pluralRulesCache)return this.pluralRulesCache[u];let l;try{l=new Intl.PluralRules(i,{type:o})}catch{if(!Intl)return this.logger.error("No Intl support, please use an Intl polyfill!"),Ok;if(!r.match(/-|_/))return Ok;const d=this.languageUtils.getLanguagePartFromCode(r);l=this.getRule(d,a)}return this.pluralRulesCache[u]=l,l}needsPlural(r,a={}){let i=this.getRule(r,a);return i||(i=this.getRule("dev",a)),i?.resolvedOptions().pluralCategories.length>1}getPluralFormsOfKey(r,a,i={}){return this.getSuffixes(r,i).map(o=>`${a}${o}`)}getSuffixes(r,a={}){let i=this.getRule(r,a);return i||(i=this.getRule("dev",a)),i?i.resolvedOptions().pluralCategories.sort((o,u)=>Rk[o]-Rk[u]).map(o=>`${this.options.prepend}${a.ordinal?`ordinal${this.options.prepend}`:""}${o}`):[]}getSuffix(r,a,i={}){const o=this.getRule(r,i);return o?`${this.options.prepend}${i.ordinal?`ordinal${this.options.prepend}`:""}${o.select(a)}`:(this.logger.warn(`no plural rule found for: ${r}`),this.getSuffix("dev",a,i))}}const Ak=(e,r,a,i=".",o=!0)=>{let u=_se(e,r,a);return!u&&o&&sr(a)&&(u=q4(e,a,i),u===void 0&&(u=q4(r,a,i))),u},r4=e=>e.replace(/\$/g,"$$$$");class Cse{constructor(r={}){this.logger=an.create("interpolator"),this.options=r,this.format=r?.interpolation?.format||(a=>a),this.init(r)}init(r={}){r.interpolation||(r.interpolation={escapeValue:!0});const{escape:a,escapeValue:i,useRawValueToEscape:o,prefix:u,prefixEscaped:l,suffix:f,suffixEscaped:d,formatSeparator:v,unescapeSuffix:h,unescapePrefix:p,nestingPrefix:m,nestingPrefixEscaped:y,nestingSuffix:b,nestingSuffixEscaped:E,nestingOptionsSeparator:T,maxReplaces:S,alwaysFormat:R}=r.interpolation;this.escape=a!==void 0?a:Ese,this.escapeValue=i!==void 0?i:!0,this.useRawValueToEscape=o!==void 0?o:!1,this.prefix=u?ts(u):l||"{{",this.suffix=f?ts(f):d||"}}",this.formatSeparator=v||",",this.unescapePrefix=h?"":p||"-",this.unescapeSuffix=this.unescapePrefix?"":h||"",this.nestingPrefix=m?ts(m):y||ts("$t("),this.nestingSuffix=b?ts(b):E||ts(")"),this.nestingOptionsSeparator=T||",",this.maxReplaces=S||1e3,this.alwaysFormat=R!==void 0?R:!1,this.resetRegExp()}reset(){this.options&&this.init(this.options)}resetRegExp(){const r=(a,i)=>a?.source===i?(a.lastIndex=0,a):new RegExp(i,"g");this.regexp=r(this.regexp,`${this.prefix}(.+?)${this.suffix}`),this.regexpUnescape=r(this.regexpUnescape,`${this.prefix}${this.unescapePrefix}(.+?)${this.unescapeSuffix}${this.suffix}`),this.nestingRegexp=r(this.nestingRegexp,`${this.nestingPrefix}(.+?)${this.nestingSuffix}`)}interpolate(r,a,i,o){let u,l,f;const d=this.options&&this.options.interpolation&&this.options.interpolation.defaultVariables||{},v=y=>{if(y.indexOf(this.formatSeparator)<0){const S=Ak(a,d,y,this.options.keySeparator,this.options.ignoreJSONStructure);return this.alwaysFormat?this.format(S,void 0,i,{...o,...a,interpolationkey:y}):S}const b=y.split(this.formatSeparator),E=b.shift().trim(),T=b.join(this.formatSeparator).trim();return this.format(Ak(a,d,E,this.options.keySeparator,this.options.ignoreJSONStructure),T,i,{...o,...a,interpolationkey:E})};this.resetRegExp();const h=o?.missingInterpolationHandler||this.options.missingInterpolationHandler,p=o?.interpolation?.skipOnVariables!==void 0?o.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables;return[{regex:this.regexpUnescape,safeValue:y=>r4(y)},{regex:this.regexp,safeValue:y=>this.escapeValue?r4(this.escape(y)):r4(y)}].forEach(y=>{for(f=0;u=y.regex.exec(r);){const b=u[1].trim();if(l=v(b),l===void 0)if(typeof h=="function"){const T=h(r,u,o);l=sr(T)?T:""}else if(o&&Object.prototype.hasOwnProperty.call(o,b))l="";else if(p){l=u[0];continue}else this.logger.warn(`missed to pass in variable ${b} for interpolating ${r}`),l="";else!sr(l)&&!this.useRawValueToEscape&&(l=gk(l));const E=y.safeValue(l);if(r=r.replace(u[0],E),p?(y.regex.lastIndex+=l.length,y.regex.lastIndex-=u[0].length):y.regex.lastIndex=0,f++,f>=this.maxReplaces)break}}),r}nest(r,a,i={}){let o,u,l;const f=(d,v)=>{const h=this.nestingOptionsSeparator;if(d.indexOf(h)<0)return d;const p=d.split(new RegExp(`${h}[ ]*{`));let m=`{${p[1]}`;d=p[0],m=this.interpolate(m,l);const y=m.match(/'/g),b=m.match(/"/g);((y?.length??0)%2===0&&!b||b.length%2!==0)&&(m=m.replace(/'/g,'"'));try{l=JSON.parse(m),v&&(l={...v,...l})}catch(E){return this.logger.warn(`failed parsing options string in nesting for key ${d}`,E),`${d}${h}${m}`}return l.defaultValue&&l.defaultValue.indexOf(this.prefix)>-1&&delete l.defaultValue,d};for(;o=this.nestingRegexp.exec(r);){let d=[];l={...i},l=l.replace&&!sr(l.replace)?l.replace:l,l.applyPostProcessor=!1,delete l.defaultValue;const v=/{.*}/.test(o[1])?o[1].lastIndexOf("}")+1:o[1].indexOf(this.formatSeparator);if(v!==-1&&(d=o[1].slice(v).split(this.formatSeparator).map(h=>h.trim()).filter(Boolean),o[1]=o[1].slice(0,v)),u=a(f.call(this,o[1].trim(),l),l),u&&o[0]===r&&!sr(u))return u;sr(u)||(u=gk(u)),u||(this.logger.warn(`missed to resolve ${o[1]} for nesting ${r}`),u=""),d.length&&(u=d.reduce((h,p)=>this.format(h,p,i.lng,{...i,interpolationkey:o[1].trim()}),u.trim())),r=r.replace(o[0],u),this.regexp.lastIndex=0}return r}}const Ise=e=>{let r=e.toLowerCase().trim();const a={};if(e.indexOf("(")>-1){const i=e.split("(");r=i[0].toLowerCase().trim();const o=i[1].substring(0,i[1].length-1);r==="currency"&&o.indexOf(":")<0?a.currency||(a.currency=o.trim()):r==="relativetime"&&o.indexOf(":")<0?a.range||(a.range=o.trim()):o.split(";").forEach(l=>{if(l){const[f,...d]=l.split(":"),v=d.join(":").trim().replace(/^'+|'+$/g,""),h=f.trim();a[h]||(a[h]=v),v==="false"&&(a[h]=!1),v==="true"&&(a[h]=!0),isNaN(v)||(a[h]=parseInt(v,10))}})}return{formatName:r,formatOptions:a}},wk=e=>{const r={};return(a,i,o)=>{let u=o;o&&o.interpolationkey&&o.formatParams&&o.formatParams[o.interpolationkey]&&o[o.interpolationkey]&&(u={...u,[o.interpolationkey]:void 0});const l=i+JSON.stringify(u);let f=r[l];return f||(f=e(Qu(i),o),r[l]=f),f(a)}},qse=e=>(r,a,i)=>e(Qu(a),i)(r);class Mse{constructor(r={}){this.logger=an.create("formatter"),this.options=r,this.init(r)}init(r,a={interpolation:{}}){this.formatSeparator=a.interpolation.formatSeparator||",";const i=a.cacheInBuiltFormats?wk:qse;this.formats={number:i((o,u)=>{const l=new Intl.NumberFormat(o,{...u});return f=>l.format(f)}),currency:i((o,u)=>{const l=new Intl.NumberFormat(o,{...u,style:"currency"});return f=>l.format(f)}),datetime:i((o,u)=>{const l=new Intl.DateTimeFormat(o,{...u});return f=>l.format(f)}),relativetime:i((o,u)=>{const l=new Intl.RelativeTimeFormat(o,{...u});return f=>l.format(f,u.range||"day")}),list:i((o,u)=>{const l=new Intl.ListFormat(o,{...u});return f=>l.format(f)})}}add(r,a){this.formats[r.toLowerCase().trim()]=a}addCached(r,a){this.formats[r.toLowerCase().trim()]=wk(a)}format(r,a,i,o={}){const u=a.split(this.formatSeparator);if(u.length>1&&u[0].indexOf("(")>1&&u[0].indexOf(")")<0&&u.find(f=>f.indexOf(")")>-1)){const f=u.findIndex(d=>d.indexOf(")")>-1);u[0]=[u[0],...u.splice(1,f)].join(this.formatSeparator)}return u.reduce((f,d)=>{const{formatName:v,formatOptions:h}=Ise(d);if(this.formats[v]){let p=f;try{const m=o?.formatParams?.[o.interpolationkey]||{},y=m.locale||m.lng||o.locale||o.lng||i;p=this.formats[v](f,y,{...h,...o,...m})}catch(m){this.logger.warn(m)}return p}else this.logger.warn(`there was no format function for ${v}`);return f},r)}}const Nse=(e,r)=>{e.pending[r]!==void 0&&(delete e.pending[r],e.pendingCount--)};class Lse extends Od{constructor(r,a,i,o={}){super(),this.backend=r,this.store=a,this.services=i,this.languageUtils=i.languageUtils,this.options=o,this.logger=an.create("backendConnector"),this.waitingReads=[],this.maxParallelReads=o.maxParallelReads||10,this.readingCalls=0,this.maxRetries=o.maxRetries>=0?o.maxRetries:5,this.retryTimeout=o.retryTimeout>=1?o.retryTimeout:350,this.state={},this.queue=[],this.backend?.init?.(i,o.backend,o)}queueLoad(r,a,i,o){const u={},l={},f={},d={};return r.forEach(v=>{let h=!0;a.forEach(p=>{const m=`${v}|${p}`;!i.reload&&this.store.hasResourceBundle(v,p)?this.state[m]=2:this.state[m]<0||(this.state[m]===1?l[m]===void 0&&(l[m]=!0):(this.state[m]=1,h=!1,l[m]===void 0&&(l[m]=!0),u[m]===void 0&&(u[m]=!0),d[p]===void 0&&(d[p]=!0)))}),h||(f[v]=!0)}),(Object.keys(u).length||Object.keys(l).length)&&this.queue.push({pending:l,pendingCount:Object.keys(l).length,loaded:{},errors:[],callback:o}),{toLoad:Object.keys(u),pending:Object.keys(l),toLoadLanguages:Object.keys(f),toLoadNamespaces:Object.keys(d)}}loaded(r,a,i){const o=r.split("|"),u=o[0],l=o[1];a&&this.emit("failedLoading",u,l,a),!a&&i&&this.store.addResourceBundle(u,l,i,void 0,void 0,{skipCopy:!0}),this.state[r]=a?-1:2,a&&i&&(this.state[r]=0);const f={};this.queue.forEach(d=>{bse(d.loaded,[u],l),Nse(d,r),a&&d.errors.push(a),d.pendingCount===0&&!d.done&&(Object.keys(d.loaded).forEach(v=>{f[v]||(f[v]={});const h=d.loaded[v];h.length&&h.forEach(p=>{f[v][p]===void 0&&(f[v][p]=!0)})}),d.done=!0,d.errors.length?d.callback(d.errors):d.callback())}),this.emit("loaded",f),this.queue=this.queue.filter(d=>!d.done)}read(r,a,i,o=0,u=this.retryTimeout,l){if(!r.length)return l(null,{});if(this.readingCalls>=this.maxParallelReads){this.waitingReads.push({lng:r,ns:a,fcName:i,tried:o,wait:u,callback:l});return}this.readingCalls++;const f=(v,h)=>{if(this.readingCalls--,this.waitingReads.length>0){const p=this.waitingReads.shift();this.read(p.lng,p.ns,p.fcName,p.tried,p.wait,p.callback)}if(v&&h&&o<this.maxRetries){setTimeout(()=>{this.read.call(this,r,a,i,o+1,u*2,l)},u);return}l(v,h)},d=this.backend[i].bind(this.backend);if(d.length===2){try{const v=d(r,a);v&&typeof v.then=="function"?v.then(h=>f(null,h)).catch(f):f(null,v)}catch(v){f(v)}return}return d(r,a,f)}prepareLoading(r,a,i={},o){if(!this.backend)return this.logger.warn("No backend was added via i18next.use. Will not load resources."),o&&o();sr(r)&&(r=this.languageUtils.toResolveHierarchy(r)),sr(a)&&(a=[a]);const u=this.queueLoad(r,a,i,o);if(!u.toLoad.length)return u.pending.length||o(),null;u.toLoad.forEach(l=>{this.loadOne(l)})}load(r,a,i){this.prepareLoading(r,a,{},i)}reload(r,a,i){this.prepareLoading(r,a,{reload:!0},i)}loadOne(r,a=""){const i=r.split("|"),o=i[0],u=i[1];this.read(o,u,"read",void 0,void 0,(l,f)=>{l&&this.logger.warn(`${a}loading namespace ${u} for language ${o} failed`,l),!l&&f&&this.logger.log(`${a}loaded namespace ${u} for language ${o}`,f),this.loaded(r,l,f)})}saveMissing(r,a,i,o,u,l={},f=()=>{}){if(this.services?.utils?.hasLoadedNamespace&&!this.services?.utils?.hasLoadedNamespace(a)){this.logger.warn(`did not save key "${i}" as the namespace "${a}" was not yet loaded`,"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!");return}if(!(i==null||i==="")){if(this.backend?.create){const d={...l,isUpdate:u},v=this.backend.create.bind(this.backend);if(v.length<6)try{let h;v.length===5?h=v(r,a,i,o,d):h=v(r,a,i,o),h&&typeof h.then=="function"?h.then(p=>f(null,p)).catch(f):f(null,h)}catch(h){f(h)}else v(r,a,i,o,f,d)}!r||!r[0]||this.store.addResource(r[0],a,i,o)}}}const xk=()=>({debug:!1,initAsync:!0,ns:["translation"],defaultNS:["translation"],fallbackLng:["dev"],fallbackNS:!1,supportedLngs:!1,nonExplicitSupportedLngs:!1,load:"all",preload:!1,simplifyPluralSuffix:!0,keySeparator:".",nsSeparator:":",pluralSeparator:"_",contextSeparator:"_",partialBundledLanguages:!1,saveMissing:!1,updateMissing:!1,saveMissingTo:"fallback",saveMissingPlurals:!0,missingKeyHandler:!1,missingInterpolationHandler:!1,postProcess:!1,postProcessPassResolved:!1,returnNull:!1,returnEmptyString:!0,returnObjects:!1,joinArrays:!1,returnedObjectHandler:!1,parseMissingKeyHandler:!1,appendNamespaceToMissingKey:!1,appendNamespaceToCIMode:!1,overloadTranslationOptionHandler:e=>{let r={};if(typeof e[1]=="object"&&(r=e[1]),sr(e[1])&&(r.defaultValue=e[1]),sr(e[2])&&(r.tDescription=e[2]),typeof e[2]=="object"||typeof e[3]=="object"){const a=e[3]||e[2];Object.keys(a).forEach(i=>{r[i]=a[i]})}return r},interpolation:{escapeValue:!0,format:e=>e,prefix:"{{",suffix:"}}",formatSeparator:",",unescapePrefix:"-",nestingPrefix:"$t(",nestingSuffix:")",nestingOptionsSeparator:",",maxReplaces:1e3,skipOnVariables:!0},cacheInBuiltFormats:!0}),Ck=e=>(sr(e.ns)&&(e.ns=[e.ns]),sr(e.fallbackLng)&&(e.fallbackLng=[e.fallbackLng]),sr(e.fallbackNS)&&(e.fallbackNS=[e.fallbackNS]),e.supportedLngs?.indexOf?.("cimode")<0&&(e.supportedLngs=e.supportedLngs.concat(["cimode"])),typeof e.initImmediate=="boolean"&&(e.initAsync=e.initImmediate),e),Nc=()=>{},Dse=e=>{Object.getOwnPropertyNames(Object.getPrototypeOf(e)).forEach(a=>{typeof e[a]=="function"&&(e[a]=e[a].bind(e))})};class Zu extends Od{constructor(r={},a){if(super(),this.options=Ck(r),this.services={},this.logger=an,this.modules={external:[]},Dse(this),a&&!this.isInitialized&&!r.isClone){if(!this.options.initAsync)return this.init(r,a),this;setTimeout(()=>{this.init(r,a)},0)}}init(r={},a){this.isInitializing=!0,typeof r=="function"&&(a=r,r={}),r.defaultNS==null&&r.ns&&(sr(r.ns)?r.defaultNS=r.ns:r.ns.indexOf("translation")<0&&(r.defaultNS=r.ns[0]));const i=xk();this.options={...i,...this.options,...Ck(r)},this.options.interpolation={...i.interpolation,...this.options.interpolation},r.keySeparator!==void 0&&(this.options.userDefinedKeySeparator=r.keySeparator),r.nsSeparator!==void 0&&(this.options.userDefinedNsSeparator=r.nsSeparator);const o=v=>v?typeof v=="function"?new v:v:null;if(!this.options.isClone){this.modules.logger?an.init(o(this.modules.logger),this.options):an.init(null,this.options);let v;this.modules.formatter?v=this.modules.formatter:v=Mse;const h=new Tk(this.options);this.store=new _k(this.options.resources,this.options);const p=this.services;p.logger=an,p.resourceStore=this.store,p.languageUtils=h,p.pluralResolver=new xse(h,{prepend:this.options.pluralSeparator,simplifyPluralSuffix:this.options.simplifyPluralSuffix}),this.options.interpolation.format&&this.options.interpolation.format!==i.interpolation.format&&this.logger.warn("init: you are still using the legacy format function, please use the new approach: https://www.i18next.com/translation-function/formatting"),v&&(!this.options.interpolation.format||this.options.interpolation.format===i.interpolation.format)&&(p.formatter=o(v),p.formatter.init&&p.formatter.init(p,this.options),this.options.interpolation.format=p.formatter.format.bind(p.formatter)),p.interpolator=new Cse(this.options),p.utils={hasLoadedNamespace:this.hasLoadedNamespace.bind(this)},p.backendConnector=new Lse(o(this.modules.backend),p.resourceStore,p,this.options),p.backendConnector.on("*",(y,...b)=>{this.emit(y,...b)}),this.modules.languageDetector&&(p.languageDetector=o(this.modules.languageDetector),p.languageDetector.init&&p.languageDetector.init(p,this.options.detection,this.options)),this.modules.i18nFormat&&(p.i18nFormat=o(this.modules.i18nFormat),p.i18nFormat.init&&p.i18nFormat.init(this)),this.translator=new Ef(this.services,this.options),this.translator.on("*",(y,...b)=>{this.emit(y,...b)}),this.modules.external.forEach(y=>{y.init&&y.init(this)})}if(this.format=this.options.interpolation.format,a||(a=Nc),this.options.fallbackLng&&!this.services.languageDetector&&!this.options.lng){const v=this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);v.length>0&&v[0]!=="dev"&&(this.options.lng=v[0])}!this.services.languageDetector&&!this.options.lng&&this.logger.warn("init: no languageDetector is used and no lng is defined"),["getResource","hasResourceBundle","getResourceBundle","getDataByLanguage"].forEach(v=>{this[v]=(...h)=>this.store[v](...h)}),["addResource","addResources","addResourceBundle","removeResourceBundle"].forEach(v=>{this[v]=(...h)=>(this.store[v](...h),this)});const f=Du(),d=()=>{const v=(h,p)=>{this.isInitializing=!1,this.isInitialized&&!this.initializedStoreOnce&&this.logger.warn("init: i18next is already initialized. You should call init just once!"),this.isInitialized=!0,this.options.isClone||this.logger.log("initialized",this.options),this.emit("initialized",this.options),f.resolve(p),a(h,p)};if(this.languages&&!this.isInitialized)return v(null,this.t.bind(this));this.changeLanguage(this.options.lng,v)};return this.options.resources||!this.options.initAsync?d():setTimeout(d,0),f}loadResources(r,a=Nc){let i=a;const o=sr(r)?r:this.language;if(typeof r=="function"&&(i=r),!this.options.resources||this.options.partialBundledLanguages){if(o?.toLowerCase()==="cimode"&&(!this.options.preload||this.options.preload.length===0))return i();const u=[],l=f=>{if(!f||f==="cimode")return;this.services.languageUtils.toResolveHierarchy(f).forEach(v=>{v!=="cimode"&&u.indexOf(v)<0&&u.push(v)})};o?l(o):this.services.languageUtils.getFallbackCodes(this.options.fallbackLng).forEach(d=>l(d)),this.options.preload?.forEach?.(f=>l(f)),this.services.backendConnector.load(u,this.options.ns,f=>{!f&&!this.resolvedLanguage&&this.language&&this.setResolvedLanguage(this.language),i(f)})}else i(null)}reloadResources(r,a,i){const o=Du();return typeof r=="function"&&(i=r,r=void 0),typeof a=="function"&&(i=a,a=void 0),r||(r=this.languages),a||(a=this.options.ns),i||(i=Nc),this.services.backendConnector.reload(r,a,u=>{o.resolve(),i(u)}),o}use(r){if(!r)throw new Error("You are passing an undefined module! Please check the object you are passing to i18next.use()");if(!r.type)throw new Error("You are passing a wrong module! Please check the object you are passing to i18next.use()");return r.type==="backend"&&(this.modules.backend=r),(r.type==="logger"||r.log&&r.warn&&r.error)&&(this.modules.logger=r),r.type==="languageDetector"&&(this.modules.languageDetector=r),r.type==="i18nFormat"&&(this.modules.i18nFormat=r),r.type==="postProcessor"&&UB.addPostProcessor(r),r.type==="formatter"&&(this.modules.formatter=r),r.type==="3rdParty"&&this.modules.external.push(r),this}setResolvedLanguage(r){if(!(!r||!this.languages)&&!(["cimode","dev"].indexOf(r)>-1)){for(let a=0;a<this.languages.length;a++){const i=this.languages[a];if(!(["cimode","dev"].indexOf(i)>-1)&&this.store.hasLanguageSomeTranslations(i)){this.resolvedLanguage=i;break}}!this.resolvedLanguage&&this.languages.indexOf(r)<0&&this.store.hasLanguageSomeTranslations(r)&&(this.resolvedLanguage=r,this.languages.unshift(r))}}changeLanguage(r,a){this.isLanguageChangingTo=r;const i=Du();this.emit("languageChanging",r);const o=f=>{this.language=f,this.languages=this.services.languageUtils.toResolveHierarchy(f),this.resolvedLanguage=void 0,this.setResolvedLanguage(f)},u=(f,d)=>{d?this.isLanguageChangingTo===r&&(o(d),this.translator.changeLanguage(d),this.isLanguageChangingTo=void 0,this.emit("languageChanged",d),this.logger.log("languageChanged",d)):this.isLanguageChangingTo=void 0,i.resolve((...v)=>this.t(...v)),a&&a(f,(...v)=>this.t(...v))},l=f=>{!r&&!f&&this.services.languageDetector&&(f=[]);const d=sr(f)?f:f&&f[0],v=this.store.hasLanguageSomeTranslations(d)?d:this.services.languageUtils.getBestMatchFromCodes(sr(f)?[f]:f);v&&(this.language||o(v),this.translator.language||this.translator.changeLanguage(v),this.services.languageDetector?.cacheUserLanguage?.(v)),this.loadResources(v,h=>{u(h,v)})};return!r&&this.services.languageDetector&&!this.services.languageDetector.async?l(this.services.languageDetector.detect()):!r&&this.services.languageDetector&&this.services.languageDetector.async?this.services.languageDetector.detect.length===0?this.services.languageDetector.detect().then(l):this.services.languageDetector.detect(l):l(r),i}getFixedT(r,a,i){const o=(u,l,...f)=>{let d;typeof l!="object"?d=this.options.overloadTranslationOptionHandler([u,l].concat(f)):d={...l},d.lng=d.lng||o.lng,d.lngs=d.lngs||o.lngs,d.ns=d.ns||o.ns,d.keyPrefix!==""&&(d.keyPrefix=d.keyPrefix||i||o.keyPrefix);const v=this.options.keySeparator||".";let h;return d.keyPrefix&&Array.isArray(u)?h=u.map(p=>`${d.keyPrefix}${v}${p}`):h=d.keyPrefix?`${d.keyPrefix}${v}${u}`:u,this.t(h,d)};return sr(r)?o.lng=r:o.lngs=r,o.ns=a,o.keyPrefix=i,o}t(...r){return this.translator?.translate(...r)}exists(...r){return this.translator?.exists(...r)}setDefaultNamespace(r){this.options.defaultNS=r}hasLoadedNamespace(r,a={}){if(!this.isInitialized)return this.logger.warn("hasLoadedNamespace: i18next was not initialized",this.languages),!1;if(!this.languages||!this.languages.length)return this.logger.warn("hasLoadedNamespace: i18n.languages were undefined or empty",this.languages),!1;const i=a.lng||this.resolvedLanguage||this.languages[0],o=this.options?this.options.fallbackLng:!1,u=this.languages[this.languages.length-1];if(i.toLowerCase()==="cimode")return!0;const l=(f,d)=>{const v=this.services.backendConnector.state[`${f}|${d}`];return v===-1||v===0||v===2};if(a.precheck){const f=a.precheck(this,l);if(f!==void 0)return f}return!!(this.hasResourceBundle(i,r)||!this.services.backendConnector.backend||this.options.resources&&!this.options.partialBundledLanguages||l(i,r)&&(!o||l(u,r)))}loadNamespaces(r,a){const i=Du();return this.options.ns?(sr(r)&&(r=[r]),r.forEach(o=>{this.options.ns.indexOf(o)<0&&this.options.ns.push(o)}),this.loadResources(o=>{i.resolve(),a&&a(o)}),i):(a&&a(),Promise.resolve())}loadLanguages(r,a){const i=Du();sr(r)&&(r=[r]);const o=this.options.preload||[],u=r.filter(l=>o.indexOf(l)<0&&this.services.languageUtils.isSupportedCode(l));return u.length?(this.options.preload=o.concat(u),this.loadResources(l=>{i.resolve(),a&&a(l)}),i):(a&&a(),Promise.resolve())}dir(r){if(r||(r=this.resolvedLanguage||(this.languages?.length>0?this.languages[0]:this.language)),!r)return"rtl";try{const o=new Intl.Locale(r);if(o&&o.getTextInfo){const u=o.getTextInfo();if(u&&u.direction)return u.direction}}catch{}const a=["ar","shu","sqr","ssh","xaa","yhd","yud","aao","abh","abv","acm","acq","acw","acx","acy","adf","ads","aeb","aec","afb","ajp","apc","apd","arb","arq","ars","ary","arz","auz","avl","ayh","ayl","ayn","ayp","bbz","pga","he","iw","ps","pbt","pbu","pst","prp","prd","ug","ur","ydd","yds","yih","ji","yi","hbo","men","xmn","fa","jpr","peo","pes","prs","dv","sam","ckb"],i=this.services?.languageUtils||new Tk(xk());return r.toLowerCase().indexOf("-latn")>1?"ltr":a.indexOf(i.getLanguagePartFromCode(r))>-1||r.toLowerCase().indexOf("-arab")>1?"rtl":"ltr"}static createInstance(r={},a){return new Zu(r,a)}cloneInstance(r={},a=Nc){const i=r.forkResourceStore;i&&delete r.forkResourceStore;const o={...this.options,...r,isClone:!0},u=new Zu(o);if((r.debug!==void 0||r.prefix!==void 0)&&(u.logger=u.logger.clone(r)),["store","services","language"].forEach(f=>{u[f]=this[f]}),u.services={...this.services},u.services.utils={hasLoadedNamespace:u.hasLoadedNamespace.bind(u)},i){const f=Object.keys(this.store.data).reduce((d,v)=>(d[v]={...this.store.data[v]},d[v]=Object.keys(d[v]).reduce((h,p)=>(h[p]={...d[v][p]},h),d[v]),d),{});u.store=new _k(f,o),u.services.resourceStore=u.store}return u.translator=new Ef(u.services,o),u.translator.on("*",(f,...d)=>{u.emit(f,...d)}),u.init(o,a),u.translator.options=o,u.translator.backendConnector.services.utils={hasLoadedNamespace:u.hasLoadedNamespace.bind(u)},u}toJSON(){return{options:this.options,store:this.store,language:this.language,languages:this.languages,resolvedLanguage:this.resolvedLanguage}}}const gt=Zu.createInstance();gt.createInstance=Zu.createInstance;gt.createInstance;gt.dir;gt.init;gt.loadResources;gt.reloadResources;gt.use;gt.changeLanguage;gt.getFixedT;gt.t;gt.exists;gt.setDefaultNamespace;gt.hasLoadedNamespace;gt.loadNamespaces;gt.loadLanguages;const{slice:Pse,forEach:jse}=[];function kse(e){return jse.call(Pse.call(arguments,1),r=>{if(r)for(const a in r)e[a]===void 0&&(e[a]=r[a])}),e}function zse(e){return typeof e!="string"?!1:[/<\s*script.*?>/i,/<\s*\/\s*script\s*>/i,/<\s*img.*?on\w+\s*=/i,/<\s*\w+\s*on\w+\s*=.*?>/i,/javascript\s*:/i,/vbscript\s*:/i,/expression\s*\(/i,/eval\s*\(/i,/alert\s*\(/i,/document\.cookie/i,/document\.write\s*\(/i,/window\.location/i,/innerHTML/i].some(a=>a.test(e))}const Ik=/^[\u0009\u0020-\u007e\u0080-\u00ff]+$/,Use=function(e,r){const i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{path:"/"},o=encodeURIComponent(r);let u=`${e}=${o}`;if(i.maxAge>0){const l=i.maxAge-0;if(Number.isNaN(l))throw new Error("maxAge should be a Number");u+=`; Max-Age=${Math.floor(l)}`}if(i.domain){if(!Ik.test(i.domain))throw new TypeError("option domain is invalid");u+=`; Domain=${i.domain}`}if(i.path){if(!Ik.test(i.path))throw new TypeError("option path is invalid");u+=`; Path=${i.path}`}if(i.expires){if(typeof i.expires.toUTCString!="function")throw new TypeError("option expires is invalid");u+=`; Expires=${i.expires.toUTCString()}`}if(i.httpOnly&&(u+="; HttpOnly"),i.secure&&(u+="; Secure"),i.sameSite)switch(typeof i.sameSite=="string"?i.sameSite.toLowerCase():i.sameSite){case!0:u+="; SameSite=Strict";break;case"lax":u+="; SameSite=Lax";break;case"strict":u+="; SameSite=Strict";break;case"none":u+="; SameSite=None";break;default:throw new TypeError("option sameSite is invalid")}return i.partitioned&&(u+="; Partitioned"),u},qk={create(e,r,a,i){let o=arguments.length>4&&arguments[4]!==void 0?arguments[4]:{path:"/",sameSite:"strict"};a&&(o.expires=new Date,o.expires.setTime(o.expires.getTime()+a*60*1e3)),i&&(o.domain=i),document.cookie=Use(e,r,o)},read(e){const r=`${e}=`,a=document.cookie.split(";");for(let i=0;i<a.length;i++){let o=a[i];for(;o.charAt(0)===" ";)o=o.substring(1,o.length);if(o.indexOf(r)===0)return o.substring(r.length,o.length)}return null},remove(e,r){this.create(e,"",-1,r)}};var Fse={name:"cookie",lookup(e){let{lookupCookie:r}=e;if(r&&typeof document<"u")return qk.read(r)||void 0},cacheUserLanguage(e,r){let{lookupCookie:a,cookieMinutes:i,cookieDomain:o,cookieOptions:u}=r;a&&typeof document<"u"&&qk.create(a,e,i,o,u)}},Bse={name:"querystring",lookup(e){let{lookupQuerystring:r}=e,a;if(typeof window<"u"){let{search:i}=window.location;!window.location.search&&window.location.hash?.indexOf("?")>-1&&(i=window.location.hash.substring(window.location.hash.indexOf("?")));const u=i.substring(1).split("&");for(let l=0;l<u.length;l++){const f=u[l].indexOf("=");f>0&&u[l].substring(0,f)===r&&(a=u[l].substring(f+1))}}return a}},Hse={name:"hash",lookup(e){let{lookupHash:r,lookupFromHashIndex:a}=e,i;if(typeof window<"u"){const{hash:o}=window.location;if(o&&o.length>2){const u=o.substring(1);if(r){const l=u.split("&");for(let f=0;f<l.length;f++){const d=l[f].indexOf("=");d>0&&l[f].substring(0,d)===r&&(i=l[f].substring(d+1))}}if(i)return i;if(!i&&a>-1){const l=o.match(/\/([a-zA-Z-]*)/g);return Array.isArray(l)?l[typeof a=="number"?a:0]?.replace("/",""):void 0}}}return i}};let as=null;const Mk=()=>{if(as!==null)return as;try{if(as=typeof window<"u"&&window.localStorage!==null,!as)return!1;const e="i18next.translate.boo";window.localStorage.setItem(e,"foo"),window.localStorage.removeItem(e)}catch{as=!1}return as};var $se={name:"localStorage",lookup(e){let{lookupLocalStorage:r}=e;if(r&&Mk())return window.localStorage.getItem(r)||void 0},cacheUserLanguage(e,r){let{lookupLocalStorage:a}=r;a&&Mk()&&window.localStorage.setItem(a,e)}};let ns=null;const Nk=()=>{if(ns!==null)return ns;try{if(ns=typeof window<"u"&&window.sessionStorage!==null,!ns)return!1;const e="i18next.translate.boo";window.sessionStorage.setItem(e,"foo"),window.sessionStorage.removeItem(e)}catch{ns=!1}return ns};var Gse={name:"sessionStorage",lookup(e){let{lookupSessionStorage:r}=e;if(r&&Nk())return window.sessionStorage.getItem(r)||void 0},cacheUserLanguage(e,r){let{lookupSessionStorage:a}=r;a&&Nk()&&window.sessionStorage.setItem(a,e)}},Vse={name:"navigator",lookup(e){const r=[];if(typeof navigator<"u"){const{languages:a,userLanguage:i,language:o}=navigator;if(a)for(let u=0;u<a.length;u++)r.push(a[u]);i&&r.push(i),o&&r.push(o)}return r.length>0?r:void 0}},Wse={name:"htmlTag",lookup(e){let{htmlTag:r}=e,a;const i=r||(typeof document<"u"?document.documentElement:null);return i&&typeof i.getAttribute=="function"&&(a=i.getAttribute("lang")),a}},Yse={name:"path",lookup(e){let{lookupFromPathIndex:r}=e;if(typeof window>"u")return;const a=window.location.pathname.match(/\/([a-zA-Z-]*)/g);return Array.isArray(a)?a[typeof r=="number"?r:0]?.replace("/",""):void 0}},Kse={name:"subdomain",lookup(e){let{lookupFromSubdomainIndex:r}=e;const a=typeof r=="number"?r+1:1,i=typeof window<"u"&&window.location?.hostname?.match(/^(\w{2,5})\.(([a-z0-9-]{1,63}\.[a-z]{2,6})|localhost)/i);if(i)return i[a]}};let FB=!1;try{document.cookie,FB=!0}catch{}const BB=["querystring","cookie","localStorage","sessionStorage","navigator","htmlTag"];FB||BB.splice(1,1);const Qse=()=>({order:BB,lookupQuerystring:"lng",lookupCookie:"i18next",lookupLocalStorage:"i18nextLng",lookupSessionStorage:"i18nextLng",caches:["localStorage"],excludeCacheFor:["cimode"],convertDetectedLanguage:e=>e});class HB{constructor(r){let a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.type="languageDetector",this.detectors={},this.init(r,a)}init(){let r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{languageUtils:{}},a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};this.services=r,this.options=kse(a,this.options||{},Qse()),typeof this.options.convertDetectedLanguage=="string"&&this.options.convertDetectedLanguage.indexOf("15897")>-1&&(this.options.convertDetectedLanguage=o=>o.replace("-","_")),this.options.lookupFromUrlIndex&&(this.options.lookupFromPathIndex=this.options.lookupFromUrlIndex),this.i18nOptions=i,this.addDetector(Fse),this.addDetector(Bse),this.addDetector($se),this.addDetector(Gse),this.addDetector(Vse),this.addDetector(Wse),this.addDetector(Yse),this.addDetector(Kse),this.addDetector(Hse)}addDetector(r){return this.detectors[r.name]=r,this}detect(){let r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.options.order,a=[];return r.forEach(i=>{if(this.detectors[i]){let o=this.detectors[i].lookup(this.options);o&&typeof o=="string"&&(o=[o]),o&&(a=a.concat(o))}}),a=a.filter(i=>i!=null&&!zse(i)).map(i=>this.options.convertDetectedLanguage(i)),this.services&&this.services.languageUtils&&this.services.languageUtils.getBestMatchFromCodes?a:a.length>0?a[0]:null}cacheUserLanguage(r){let a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.options.caches;a&&(this.options.excludeCacheFor&&this.options.excludeCacheFor.indexOf(r)>-1||a.forEach(i=>{this.detectors[i]&&this.detectors[i].cacheUserLanguage(r,this.options)}))}}HB.type="languageDetector";var Zse=["second","minute","hour","day","week","month","year"];function Xse(e,r){if(r===0)return["just now","right now"];var a=Zse[Math.floor(r/2)];return e>1&&(a+="s"),[e+" "+a+" ago","in "+e+" "+a]}var Jse=["秒","分钟","小时","天","周","个月","年"];function eue(e,r){if(r===0)return["刚刚","片刻后"];var a=Jse[~~(r/2)];return[e+" "+a+"前",e+" "+a+"后"]}var M4={},et=function(e,r){M4[e]=r},Uve=function(e){return M4[e]||M4.en_US};et("en_US",Xse);et("zh_CN",eue);var Lc={},Lk;function rue(){if(Lk)return Lc;Lk=1,Object.defineProperty(Lc,"__esModule",{value:!0});function e(r,a){return[["току що","съвсем скоро"],["преди %s секунди","след %s секунди"],["преди 1 минута","след 1 минута"],["преди %s минути","след %s минути"],["преди 1 час","след 1 час"],["преди %s часа","след %s часа"],["преди 1 ден","след 1 ден"],["преди %s дни","след %s дни"],["преди 1 седмица","след 1 седмица"],["преди %s седмици","след %s седмици"],["преди 1 месец","след 1 месец"],["преди %s месеца","след %s месеца"],["преди 1 година","след 1 година"],["преди %s години","след %s години"]][a]}return Lc.default=e,Lc}var tue=rue();const aue=Hr(tue);var Dc={},Dk;function nue(){if(Dk)return Dc;Dk=1,Object.defineProperty(Dc,"__esModule",{value:!0});function e(r,a){return[["fa un moment","d'aquí un moment"],["fa %s segons","d'aquí %s segons"],["fa 1 minut","d'aquí 1 minut"],["fa %s minuts","d'aquí %s minuts"],["fa 1 hora","d'aquí 1 hora"],["fa %s hores","d'aquí %s hores"],["fa 1 dia","d'aquí 1 dia"],["fa %s dies","d'aquí %s dies"],["fa 1 setmana","d'aquí 1 setmana"],["fa %s setmanes","d'aquí %s setmanes"],["fa 1 mes","d'aquí 1 mes"],["fa %s mesos","d'aquí %s mesos"],["fa 1 any","d'aquí 1 any"],["fa %s anys","d'aquí %s anys"]][a]}return Dc.default=e,Dc}var iue=nue();const oue=Hr(iue);var Pc={},Pk;function sue(){if(Pk)return Pc;Pk=1,Object.defineProperty(Pc,"__esModule",{value:!0});function e(r,a){var i=0,o=a==1||a==3||a==5||a==7||a==9||a==11||a==13;return o&&r>=5&&(i=1),[[["právě teď","právě teď"]],[["před %s vteřinami","za %s vteřiny"],["před %s vteřinami","za %s vteřin"]],[["před minutou","za minutu"]],[["před %s minutami","za %s minuty"],["před %s minutami","za %s minut"]],[["před hodinou","za hodinu"]],[["před %s hodinami","za %s hodiny"],["před %s hodinami","za %s hodin"]],[["včera","zítra"]],[["před %s dny","za %s dny"],["před %s dny","za %s dnů"]],[["minulý týden","příští týden"]],[["před %s týdny","za %s týdny"],["před %s týdny","za %s týdnů"]],[["minulý měsíc","přístí měsíc"]],[["před %s měsíci","za %s měsíce"],["před %s měsíci","za %s měsíců"]],[["před rokem","přístí rok"]],[["před %s lety","za %s roky"],["před %s lety","za %s let"]]][a][i]}return Pc.default=e,Pc}var uue=sue();const lue=Hr(uue);var jc={},jk;function cue(){if(jk)return jc;jk=1,Object.defineProperty(jc,"__esModule",{value:!0});function e(r,a){return[["for et øjeblik siden","om et øjeblik"],["for %s sekunder siden","om %s sekunder"],["for 1 minut siden","om 1 minut"],["for %s minutter siden","om %s minutter"],["for 1 time siden","om 1 time"],["for %s timer siden","om %s timer"],["for 1 dag siden","om 1 dag"],["for %s dage siden","om %s dage"],["for 1 uge siden","om 1 uge"],["for %s uger siden","om %s uger"],["for 1 måned siden","om 1 måned"],["for %s måneder siden","om %s måneder"],["for 1 år siden","om 1 år"],["for %s år siden","om %s år"]][a]}return jc.default=e,jc}var fue=cue();const due=Hr(fue);var kc={},kk;function vue(){if(kk)return kc;kk=1,Object.defineProperty(kc,"__esModule",{value:!0});function e(r,a){return[["gerade eben","vor einer Weile"],["vor %s Sekunden","in %s Sekunden"],["vor 1 Minute","in 1 Minute"],["vor %s Minuten","in %s Minuten"],["vor 1 Stunde","in 1 Stunde"],["vor %s Stunden","in %s Stunden"],["vor 1 Tag","in 1 Tag"],["vor %s Tagen","in %s Tagen"],["vor 1 Woche","in 1 Woche"],["vor %s Wochen","in %s Wochen"],["vor 1 Monat","in 1 Monat"],["vor %s Monaten","in %s Monaten"],["vor 1 Jahr","in 1 Jahr"],["vor %s Jahren","in %s Jahren"]][a]}return kc.default=e,kc}var hue=vue();const pue=Hr(hue);var zc={},zk;function gue(){if(zk)return zc;zk=1,Object.defineProperty(zc,"__esModule",{value:!0});function e(r,a){return[["justo ahora","en un rato"],["hace %s segundos","en %s segundos"],["hace 1 minuto","en 1 minuto"],["hace %s minutos","en %s minutos"],["hace 1 hora","en 1 hora"],["hace %s horas","en %s horas"],["hace 1 día","en 1 día"],["hace %s días","en %s días"],["hace 1 semana","en 1 semana"],["hace %s semanas","en %s semanas"],["hace 1 mes","en 1 mes"],["hace %s meses","en %s meses"],["hace 1 año","en 1 año"],["hace %s años","en %s años"]][a]}return zc.default=e,zc}var mue=gue();const yue=Hr(mue);var Uc={},Uk;function bue(){if(Uk)return Uc;Uk=1,Object.defineProperty(Uc,"__esModule",{value:!0});function e(r,a){return[["orain","denbora bat barru"],["duela %s segundu","%s segundu barru"],["duela minutu 1","minutu 1 barru"],["duela %s minutu","%s minutu barru"],["duela ordu 1","ordu 1 barru"],["duela %s ordu","%s ordu barru"],["duela egun 1","egun 1 barru"],["duela %s egun","%s egun barru"],["duela aste 1","aste 1 barru"],["duela %s aste","%s aste barru"],["duela hillabete 1","hillabete 1 barru"],["duela %s hillabete","%s hillabete barru"],["duela urte 1","urte 1 barru"],["duela %s urte","%s urte barru"]][a]}return Uc.default=e,Uc}var _ue=bue();const Sue=Hr(_ue);var Fc={},Fk;function Eue(){if(Fk)return Fc;Fk=1,Object.defineProperty(Fc,"__esModule",{value:!0});function e(r,a){return[["juuri äsken","juuri nyt"],["%s sekuntia sitten","%s sekunnin päästä"],["minuutti sitten","minuutin päästä"],["%s minuuttia sitten","%s minuutin päästä"],["tunti sitten","tunnin päästä"],["%s tuntia sitten","%s tunnin päästä"],["päivä sitten","päivän päästä"],["%s päivää sitten","%s päivän päästä"],["viikko sitten","viikon päästä"],["%s viikkoa sitten","%s viikon päästä"],["kuukausi sitten","kuukauden päästä"],["%s kuukautta sitten","%s kuukauden päästä"],["vuosi sitten","vuoden päästä"],["%s vuotta sitten","%s vuoden päästä"]][a]}return Fc.default=e,Fc}var Tue=Eue();const Rue=Hr(Tue);var Bc={},Bk;function Oue(){if(Bk)return Bc;Bk=1,Object.defineProperty(Bc,"__esModule",{value:!0});function e(r,a){return[["à l'instant","dans un instant"],["il y a %s secondes","dans %s secondes"],["il y a 1 minute","dans 1 minute"],["il y a %s minutes","dans %s minutes"],["il y a 1 heure","dans 1 heure"],["il y a %s heures","dans %s heures"],["il y a 1 jour","dans 1 jour"],["il y a %s jours","dans %s jours"],["il y a 1 semaine","dans 1 semaine"],["il y a %s semaines","dans %s semaines"],["il y a 1 mois","dans 1 mois"],["il y a %s mois","dans %s mois"],["il y a 1 an","dans 1 an"],["il y a %s ans","dans %s ans"]][a]}return Bc.default=e,Bc}var Aue=Oue();const wue=Hr(Aue);var Hc={},Hk;function xue(){if(Hk)return Hc;Hk=1,Object.defineProperty(Hc,"__esModule",{value:!0});function e(r,a){return[["éppen most","éppen most"],["%s másodperce","%s másodpercen belül"],["1 perce","1 percen belül"],["%s perce","%s percen belül"],["1 órája","1 órán belül"],["%s órája","%s órán belül"],["1 napja","1 napon belül"],["%s napja","%s napon belül"],["1 hete","1 héten belül"],["%s hete","%s héten belül"],["1 hónapja","1 hónapon belül"],["%s hónapja","%s hónapon belül"],["1 éve","1 éven belül"],["%s éve","%s éven belül"]][a]}return Hc.default=e,Hc}var Cue=xue();const Iue=Hr(Cue);var $c={},$k;function que(){if($k)return $c;$k=1,Object.defineProperty($c,"__esModule",{value:!0});function e(r,a){return[["poco fa","fra poco"],["%s secondi fa","fra %s secondi"],["un minuto fa","fra un minuto"],["%s minuti fa","fra %s minuti"],["un'ora fa","fra un'ora"],["%s ore fa","fra %s ore"],["un giorno fa","fra un giorno"],["%s giorni fa","fra %s giorni"],["una settimana fa","fra una settimana"],["%s settimane fa","fra %s settimane"],["un mese fa","fra un mese"],["%s mesi fa","fra %s mesi"],["un anno fa","fra un anno"],["%s anni fa","fra %s anni"]][a]}return $c.default=e,$c}var Mue=que();const Nue=Hr(Mue);var Gc={},Gk;function Lue(){if(Gk)return Gc;Gk=1,Object.defineProperty(Gc,"__esModule",{value:!0});function e(r,a){return[["방금","곧"],["%s초 전","%s초 후"],["1분 전","1분 후"],["%s분 전","%s분 후"],["1시간 전","1시간 후"],["%s시간 전","%s시간 후"],["1일 전","1일 후"],["%s일 전","%s일 후"],["1주일 전","1주일 후"],["%s주일 전","%s주일 후"],["1개월 전","1개월 후"],["%s개월 전","%s개월 후"],["1년 전","1년 후"],["%s년 전","%s년 후"]][a]}return Gc.default=e,Gc}var Due=Lue();const Pue=Hr(Due);var Vc={},Vk;function jue(){if(Vk)return Vc;Vk=1,Object.defineProperty(Vc,"__esModule",{value:!0});function e(r,a){return[["akkurat nå","om litt"],["%s sekunder siden","om %s sekunder"],["1 minutt siden","om 1 minutt"],["%s minutter siden","om %s minutter"],["1 time siden","om 1 time"],["%s timer siden","om %s timer"],["1 dag siden","om 1 dag"],["%s dager siden","om %s dager"],["1 uke siden","om 1 uke"],["%s uker siden","om %s uker"],["1 måned siden","om 1 måned"],["%s måneder siden","om %s måneder"],["1 år siden","om 1 år"],["%s år siden","om %s år"]][a]}return Vc.default=e,Vc}var kue=jue();const zue=Hr(kue);var Wc={},Wk;function Uue(){if(Wk)return Wc;Wk=1,Object.defineProperty(Wc,"__esModule",{value:!0});function e(r,a){return[["recent","binnenkort"],["%s seconden geleden","binnen %s seconden"],["1 minuut geleden","binnen 1 minuut"],["%s minuten geleden","binnen %s minuten"],["1 uur geleden","binnen 1 uur"],["%s uur geleden","binnen %s uur"],["1 dag geleden","binnen 1 dag"],["%s dagen geleden","binnen %s dagen"],["1 week geleden","binnen 1 week"],["%s weken geleden","binnen %s weken"],["1 maand geleden","binnen 1 maand"],["%s maanden geleden","binnen %s maanden"],["1 jaar geleden","binnen 1 jaar"],["%s jaar geleden","binnen %s jaar"]][a]}return Wc.default=e,Wc}var Fue=Uue();const Bue=Hr(Fue);var Yc={},Yk;function Hue(){if(Yk)return Yc;Yk=1,Object.defineProperty(Yc,"__esModule",{value:!0});var e=[["w tej chwili","za chwilę"],["%s sekund temu","za %s sekund"],["1 minutę temu","za 1 minutę"],["%s minut temu","za %s minut"],["1 godzinę temu","za 1 godzinę"],["%s godzin temu","za %s godzin"],["1 dzień temu","za 1 dzień"],["%s dni temu","za %s dni"],["1 tydzień temu","za 1 tydzień"],["%s tygodni temu","za %s tygodni"],["1 miesiąc temu","za 1 miesiąc"],["%s miesięcy temu","za %s miesięcy"],["1 rok temu","za 1 rok"],["%s lat temu","za %s lat"],["%s sekundy temu","za %s sekundy"],["%s minuty temu","za %s minuty"],["%s godziny temu","za %s godziny"],["%s dni temu","za %s dni"],["%s tygodnie temu","za %s tygodnie"],["%s miesiące temu","za %s miesiące"],["%s lata temu","za %s lata"]];function r(a,i){return e[i&1?a%10>4||a%10<2||~~(a/10)%10===1?i:++i/2+13:i]}return Yc.default=r,Yc}var $ue=Hue();const Gue=Hr($ue);var Kc={},Kk;function Vue(){if(Kk)return Kc;Kk=1,Object.defineProperty(Kc,"__esModule",{value:!0});function e(r,a){return[["agora mesmo","agora"],["há %s segundos","em %s segundos"],["há um minuto","em um minuto"],["há %s minutos","em %s minutos"],["há uma hora","em uma hora"],["há %s horas","em %s horas"],["há um dia","em um dia"],["há %s dias","em %s dias"],["há uma semana","em uma semana"],["há %s semanas","em %s semanas"],["há um mês","em um mês"],["há %s meses","em %s meses"],["há um ano","em um ano"],["há %s anos","em %s anos"]][a]}return Kc.default=e,Kc}var Wue=Vue();const Yue=Hr(Wue);var Qc={},Qk;function Kue(){if(Qk)return Qc;Qk=1,Object.defineProperty(Qc,"__esModule",{value:!0});function e(v,h,p,m,y){var b=y%10,E=m;return y===1?E=v:b===1&&y>20?E=h:b>1&&b<5&&(y>20||y<10)&&(E=p),E}var r=e.bind(null,"секунду","%s секунду","%s секунды","%s секунд"),a=e.bind(null,"минуту","%s минуту","%s минуты","%s минут"),i=e.bind(null,"час","%s час","%s часа","%s часов"),o=e.bind(null,"день","%s день","%s дня","%s дней"),u=e.bind(null,"неделю","%s неделю","%s недели","%s недель"),l=e.bind(null,"месяц","%s месяц","%s месяца","%s месяцев"),f=e.bind(null,"год","%s год","%s года","%s лет");function d(v,h){switch(h){case 0:return["только что","через несколько секунд"];case 1:return[r(v)+" назад","через "+r(v)];case 2:case 3:return[a(v)+" назад","через "+a(v)];case 4:case 5:return[i(v)+" назад","через "+i(v)];case 6:return["вчера","завтра"];case 7:return[o(v)+" назад","через "+o(v)];case 8:case 9:return[u(v)+" назад","через "+u(v)];case 10:case 11:return[l(v)+" назад","через "+l(v)];case 12:case 13:return[f(v)+" назад","через "+f(v)];default:return["",""]}}return Qc.default=d,Qc}var Que=Kue();const Zue=Hr(Que);var Zc={},Zk;function Xue(){if(Zk)return Zc;Zk=1,Object.defineProperty(Zc,"__esModule",{value:!0});function e(r,a){return[["just nu","om en stund"],["%s sekunder sedan","om %s sekunder"],["1 minut sedan","om 1 minut"],["%s minuter sedan","om %s minuter"],["1 timme sedan","om 1 timme"],["%s timmar sedan","om %s timmar"],["1 dag sedan","om 1 dag"],["%s dagar sedan","om %s dagar"],["1 vecka sedan","om 1 vecka"],["%s veckor sedan","om %s veckor"],["1 månad sedan","om 1 månad"],["%s månader sedan","om %s månader"],["1 år sedan","om 1 år"],["%s år sedan","om %s år"]][a]}return Zc.default=e,Zc}var Jue=Xue();const ele=Hr(Jue);var Xc={},Xk;function rle(){if(Xk)return Xc;Xk=1,Object.defineProperty(Xc,"__esModule",{value:!0});function e(r,a){return[["az önce","şimdi"],["%s saniye önce","%s saniye içinde"],["1 dakika önce","1 dakika içinde"],["%s dakika önce","%s dakika içinde"],["1 saat önce","1 saat içinde"],["%s saat önce","%s saat içinde"],["1 gün önce","1 gün içinde"],["%s gün önce","%s gün içinde"],["1 hafta önce","1 hafta içinde"],["%s hafta önce","%s hafta içinde"],["1 ay önce","1 ay içinde"],["%s ay önce","%s ay içinde"],["1 yıl önce","1 yıl içinde"],["%s yıl önce","%s yıl içinde"]][a]}return Xc.default=e,Xc}var tle=rle();const ale=Hr(tle);var Jc={},Jk;function nle(){if(Jk)return Jc;Jk=1,Object.defineProperty(Jc,"__esModule",{value:!0});function e(v,h,p,m,y){var b=y%10,E=m;return y===1?E=v:b===1&&y>20?E=h:b>1&&b<5&&(y>20||y<10)&&(E=p),E}var r=e.bind(null,"секунду","%s секунду","%s секунди","%s секунд"),a=e.bind(null,"хвилину","%s хвилину","%s хвилини","%s хвилин"),i=e.bind(null,"годину","%s годину","%s години","%s годин"),o=e.bind(null,"день","%s день","%s дні","%s днів"),u=e.bind(null,"тиждень","%s тиждень","%s тиждні","%s тижднів"),l=e.bind(null,"місяць","%s місяць","%s місяці","%s місяців"),f=e.bind(null,"рік","%s рік","%s роки","%s років");function d(v,h){switch(h){case 0:return["щойно","через декілька секунд"];case 1:return[r(v)+" тому","через "+r(v)];case 2:case 3:return[a(v)+" тому","через "+a(v)];case 4:case 5:return[i(v)+" тому","через "+i(v)];case 6:case 7:return[o(v)+" тому","через "+o(v)];case 8:case 9:return[u(v)+" тому","через "+u(v)];case 10:case 11:return[l(v)+" тому","через "+l(v)];case 12:case 13:return[f(v)+" тому","через "+f(v)];default:return["",""]}}return Jc.default=d,Jc}var ile=nle();const ole=Hr(ile);var ef={},ez;function sle(){if(ez)return ef;ez=1,Object.defineProperty(ef,"__esModule",{value:!0});var e=["秒","分钟","小时","天","周","个月","年"];function r(a,i){if(i===0)return["刚刚","片刻后"];var o=e[~~(i/2)];return[a+" "+o+"前",a+" "+o+"后"]}return ef.default=r,ef}var ule=sle();const lle=Hr(ule);var rf={},rz;function cle(){if(rz)return rf;rz=1,Object.defineProperty(rf,"__esModule",{value:!0});function e(r,a){return[["剛剛","片刻後"],["%s 秒前","%s 秒後"],["1 分鐘前","1 分鐘後"],["%s 分鐘前","%s 分鐘後"],["1 小時前","1 小時後"],["%s 小時前","%s 小時後"],["1 天前","1 天後"],["%s 天前","%s 天後"],["1 週前","1 週後"],["%s 週前","%s 週後"],["1 個月前","1 個月後"],["%s 個月前","%s 個月後"],["1 年前","1 年後"],["%s 年前","%s 年後"]][a]}return rf.default=e,rf}var fle=cle();const dle=Hr(fle),vle={},hle={},ple={},gle={},mle={},yle={},ble={action:"Action",actions:"Actions",apply:"Apply",attribute:"Attribute",bind:"Bind",clear:"Clear",close:"Close",cancel:"Cancel",cluster:"Cluster",clusters:"Clusters",confirmation:"Confirmation prompt",delete:"Delete",destination:"Destination",devices:"Devices",dialog_confirmation_prompt:"Are you sure?",disable:"Disable",search:"Search",highlight:"Highlight",groups:"Groups",loading:"Loading...",none:"None",ok:"OK",read:"Read",save:"Save",select_value:"Select value",select_device:"Select device",select_endpoint:"Select endpoint",select_group:"Select group",source_endpoint:"Source endpoint",the_only_endpoint:"The only endpoint",unbind:"Unbind",write:"Write",destination_endpoint:"Destination endpoint",read_the_docs_info:"Read about this in the documentation…",page:"Page",go_to_page:"Go to page",show:"Show",min:"Min",max:"Max",done:"Done",enter_auth_token:"Enter auth token",token:"Token",documentation:"Documentation",optional:"Optional",init:"Init",undefined:"Undefined",type_to_filter:"Type to filter...",name:"Name",friendly_name:"Friendly name",unknown_device:"Unknown device",unknown_group:"Unknown group",failed:"Failed",disabled:"Disabled",hide_disabled:"Hide disabled",battery_low_only:"Battery low only",available_only:"Available only",execute:"Execute",command:"Command",payload:"Payload",execute_command:"Execute command",send:"Send",columns:"Columns",entries:"Entries"},_le={about:"About",bind:"Bind",clusters:"Clusters",dev_console:"Dev console",reporting:"Reporting",settings:"Settings",settings_specific:"Settings (specific)",state:"State",groups:"Groups",scene:"Scene",exposes:"Exposes",select_a_device:"Select a device"},Sle={empty_exposes_definition:"Empty exposes definition"},Ele={settings:"Settings",add_to_group_header:"Add a device to the group",add_to_group:"Add to group",create_group:"Create group",friendly_name_placeholder:"bedroom_lights, garden...",remove_group:"Remove group",group_id:"Group ID",group_members:"Group members",scenes:"Scenes",rename_group:"Rename group",remove_from_group:"Remove from group"},Tle={log_level_config:"Log level config",empty_logs_message:"Nothing to display",filter_by_text:"Filter by text",show_only:"Show only",logs_limit:"Logs limit",highlight_only:"Highlight only"},Rle={network_hierarchy:"Network hierarchy",help:"Help",load:"Load",reload:"Reload",loading:"Depending on the size of the network and the quality of its links, this can take a while.",parent:"Parent",child:"Child",sibling:"Sibling",children:"Children",siblings:"Siblings",previous_children:"Previous children",nodes:"Nodes",edges:"Edges",legend:"Legend",depth:"Depth",routes:"Routes",type:"Type",raw:"Display data/map",graphviz:"External - Graphviz",plantuml:"External - PlantUML",enable_routes:"Enable routes",display_type:"Display type",data:"Data",map:"Map",layout_type:"Layout type",label_type:"Label type",download_image:"Download as image",zoom_in:"Zoom in",zoom_out:"Zoom out",fit_view:"Fit view",reset_controls:"Reset controls",find_node:"Find node",scroll_to_top:"Scroll to top",node_strength:"Node strength",link_distance:"Link distance",copy_paste_on:"Copy and paste the following data in one of the available online viewers/editors.",highlight_info:"Click on a device's image to highlight it automatically.",legend_node_siblings:"Only highest-rated siblings are shown, which should roughly match the actual connections of the network.",legend_node_size:"Nodes are sized by centrality.",legend_node_select:"Selecting a node will select the depending one-hop part of the network.",legend_node_fold:"Node context menu fold/expand button will affect the depending part of the network.",legend_edge_toggle:"Toggling relationship edges will change the layout. When disabling one or more, the actual layout of the network is no longer accurately represented."},Ole={all:"All",dashboard:"Dashboard",devices:"Devices",disable_join:"Disable join",extensions:"Extensions",groups:"Groups",logs:"Logs",network:"Network",ota:"OTA",permit_join:"Permit join",restart:"Restart",settings:"Settings",toggle_dropdown:"Toggle dropdown",touchlink:"Touchlink",websocket_status:"WebSocket status"},Ale={check:"Check for new updates",check_selected:"Check selected",update_selected:"Update selected",update_selected_info:"An OTA update is very taxing for a network. Make sure it is stable and opt for less used times.",empty_ota_message:"No device currently support OTA",remaining_time:"Remaining time",schedule:"Schedule update",schedule_info:"Will update on next OTA request from device",unschedule:"Cancel scheduled update",update:"Update device firmware",firmware_version:"Firmware version",available_firmware_version:"Available firmware version",app:"App",stack:"Stack"},wle={about:"About",advanced:"Advanced",availability:"Availability",blocklist:"Blocklist",revision:"Revision",coordinator:"Coordinator",donate:"Donate",donation_text:"Here you can thank us for all the hard work. Don't hesitate to say something nice as well ;)",download_state:"Download state",experimental:"Experimental",external_converters:"External converters",frontend:"Frontend",frontend_version:"Frontend version",main:"Main",mqtt:"MQTT",ota:"OTA updates",passlist:"Passlist",bridge:"Bridge",restart_zigbee2mqtt:"Restart Zigbee2MQTT",serial:"Serial",settings:"Settings",tools:"Tools",zigbee2mqtt_version:"Zigbee2MQTT version",translate:"Translate",stats:"Stats",coordinator_ieee_address:"Coordinator IEEE Address",request_z2m_backup:"Request Z2m backup",add_install_code:"Add install code",install_code:"Install code",homeassistant:"Home Assistant integration",translation_prompt:"You can help with the translation at",zigbee_herdsman_converters_version:"zigbee-herdsman-converters version",zigbee_herdsman_version:"zigbee-herdsman version",localise_images:"Localise device images",frontend_notice:"These settings are stored locally in your browser. Using private windows or clearing the cache will reset them to defaults.",reset_settings:"Reset settings",reset_auth:"Reset auth",reset_all:"Reset all",language:"Language",theme:"Theme",homepage:"Homepage",dashboard_column_display:"Dashboard column display",permit_join_time:"Permit join time",dev_console:"Dev console",max_on_screen_notifications:"Max on-screen notifications",network_raw:"Network data/map",network_map:"Network map",machine:"Machine",node_version:"Node version",version:"Version",health:"Health"},xle={awaiting_next_check:"Awaiting next check",last_check:"Last check",response_time:"Response time",os:"OS",process:"Process",load_average:"Load average",ram_usage:"RAM usage",uptime:"Uptime",queued:"Queued",published:"Published",received:"Received",messages:"Messages",messages_per_sec:"Messages per sec",leave_count:"Leave count",network_address_changes:"Network address changes",very_low:"Very low",interview_info:"Device interviews can heavily influence this data."},Cle={detected_devices_message:"Detected {{count}} touchlink devices.",rescan:"Scan again",scan:"Scan",identify:"Identify",factory_reset:"Factory reset"},Ile={clear:"Clear",closed:"Closed",false:"False",not_supported:"Not supported",occupied:"Occupied",open:"Open",supported:"Supported",true:"True",empty_string:'Empty string("")',leaking:"Leaking",tampered:"Tampered",null:"Null",Clear:"Clear",Closed:"Closed",Occupied:"Occupied",Open:"Open"},qle={actions:"Actions",attribute:"Attribute",unknown:"Unknown",mains_single_phase:"Mains (single phase)",mains_3_phase:"Mains (3 phase)",battery:"Battery",dc_source:"DC Source",emergency_mains_constantly_powered:"Emergency mains constantly powered",emergency_mains_and_transfer_switch:"Emergency mains and transfer switch",block_join:"Block from joining again",cluster:"Cluster",description:"Description",device_type:"Device type",endpoint:"Endpoint",firmware_id:"Firmware ID",firmware_build_date:"Firmware build date",force_remove:"Force remove",force_remove_notice:"Use only as last resort (will not propagate to the network)",ieee_address:"IEEE Address",interview:"Interview",interview_failed:"Interview failed",interviewing:"Interviewing",interview_state:"Interview state",last_seen:"Last seen",lqi:"LQI",manufacturer:"Manufacturer",max_rep_interval:"Max rep interval",min_rep_change:"Min rep change",min_rep_interval:"Min rep interval",model:"Model",network_address:"Network address",network_address_hex:"Network address in hexadecimal format",network_address_dec:"Network address in decimal format",none:"None",pic:"Pic",power:"Power",power_level:"power level",reconfigure:"Reconfigure",remove_device:"Remove device",rename_device:"Rename device",select_attribute:"Select attribute",select_cluster:"Select cluster",support_status:"Support status",unsupported:"Unsupported",updating_firmware:"Updating firmware",update_Home_assistant_entity_id:"Update Home Assistant entity ID",zigbee_manufacturer:"ZigBee Manufacturer",zigbee_model:"ZigBee Model",device:"Device",channel:"Channel",possible:"Possible",available:"Available",edit_description:"Edit description",save_description:"Save description",update_description:"Update description",read_write_attributes:"Read / Write attributes from endpoint cluster",input_clusters:"Input clusters",output_clusters:"Output clusters",custom_clusters:"Custom clusters",other_zcl_clusters:"Other ZCL clusters",how_to_add_support:"How to add support?",submit_converter:"Submit converter",request_support:"Request support",report_problem:"Report problem",group:"Group",type:"Type",EndDevice:"End device",Router:"Router",GreenPower:"GreenPower",Unknown:"Unknown",Coordinator:"Coordinator"},Mle={manage_scenes_header:"Manage scenes",add_update_header:"Add/update a scene",scene_id:"Scene ID",recall:"Recall",store:"Store",remove:"Remove",remove_all:"Remove all",add:"Add",select_scene:"Select Scene",scene_name:"Scene Name"},Nle={byType:"By device type",byPowerSource:"By power source",byVendor:"By vendor",byModel:"By model",total:"Total"},Lle={availability:"Availability",offline:"Offline",online:"Online",disabled:"Disabled",enabled:"Enabled"},Dle={generate_external_definition:"Generate external definition",generated_external_definition:"Generated external definition",state_property:"State property",state_property_info:"Set the result into the device's state (only for read)",reset_frontend_state:"Reset frontend state",mqtt:"MQTT",external_converters:"External Converters",external_extensions:"External Extensions",topic:"Topic",send_mqtt:"Send MQTT message",mqtt_topic_info:"Omit the 'base_topic', frontend messages are sent over WebSocket directly to Zigbee2MQTT.",code:"Code",add_update_external_extension:"Add or update external extension",create_new_extension:"Create new extension",select_extension_to_edit:"Select extension to edit",add_update_external_converter:"Add or update external converter",create_new_converter:"Create new converter",select_converter_to_edit:"Select converter to edit",codespace_info:"A Github Codespace is available to help in development",show_definition:"Show definition",hide_definition:"Hide definition"},Ple=JSON.parse(`{"Home Assistant integration (MQTT discovery)":"Home Assistant integration (MQTT discovery)","Enable Home Assistant integration":"Enable Home Assistant integration","Home Assistant discovery topic":"Home Assistant discovery topic","Home Assistant status topic":"Home Assistant status topic","Home Assistant legacy actions sensor, when enabled a action sensor will be discoverd and an empty \`action\` will be send after every published action.":"Home Assistant legacy actions sensor, when enabled a action sensor will be discoverd and an empty \`action\` will be send after every published action.","Home Assistant experimental event entities, when enabled Zigbee2MQTT will add event entities for exposed actions. The events and attributes are currently deemed experimental and subject to change.":"Home Assistant experimental event entities, when enabled Zigbee2MQTT will add event entities for exposed actions. The events and attributes are currently deemed experimental and subject to change.","Checks whether devices are online/offline":"Checks whether devices are online/offline","Enable availability checks":"Enable availability checks","Options for active devices (routers/mains powered)":"Options for active devices (routers/mains powered)","Time after which an active device will be marked as offline in minutes":"Time after which an active device will be marked as offline in minutes","Maximum jitter (in msec) allowed on timeout to avoid availability pings trying to trigger around the same time":"Maximum jitter (in msec) allowed on timeout to avoid availability pings trying to trigger around the same time","Enable timeout backoff on failed availability pings (x1.5, x3, x6, x12...)":"Enable timeout backoff on failed availability pings (x1.5, x3, x6, x12...)","Pause availability pings when backoff reaches over this limit until a new Zigbee message is received from the device. A value of zero disables pausing.":"Pause availability pings when backoff reaches over this limit until a new Zigbee message is received from the device. A value of zero disables pausing.","Options for passive devices (mostly battery powered)":"Options for passive devices (mostly battery powered)","Time after which an passive device will be marked as offline in minutes":"Time after which an passive device will be marked as offline in minutes","MQTT base topic for Zigbee2MQTT MQTT messages":"MQTT base topic for Zigbee2MQTT MQTT messages","MQTT server URL (use mqtts:// for SSL/TLS connection)":"MQTT server URL (use mqtts:// for SSL/TLS connection)","MQTT keepalive in second":"MQTT keepalive in second","Absolute path to SSL/TLS certificate of CA used to sign server and client certificates":"Absolute path to SSL/TLS certificate of CA used to sign server and client certificates","Absolute path to SSL/TLS key for client-authentication":"Absolute path to SSL/TLS key for client-authentication","Absolute path to SSL/TLS certificate for client-authentication":"Absolute path to SSL/TLS certificate for client-authentication","MQTT server authentication user":"MQTT server authentication user","MQTT server authentication password":"MQTT server authentication password","MQTT client ID":"MQTT client ID","Disable self-signed SSL certificate":"Disable self-signed SSL certificate","Include device information to mqtt messages":"Include device information to mqtt messages","MQTT protocol version":"MQTT protocol version","Disable retain for all send messages. ONLY enable if your MQTT broker doesn't support retained message (e.g. AWS IoT core, Azure IoT Hub, Google Cloud IoT core, IBM Watson IoT Platform). Enabling will break the Home Assistant integration":"Disable retain for all send messages. ONLY enable if your MQTT broker doesn't support retained message (e.g. AWS IoT core, Azure IoT Hub, Google Cloud IoT core, IBM Watson IoT Platform). Enabling will break the Home Assistant integration","Specifies the maximum allowed packet length (in bytes) that the server can send to Zigbee2MQTT. NOTE: The same value exists in your MQTT broker but for the length the client can send to it instead.":"Specifies the maximum allowed packet length (in bytes) that the server can send to Zigbee2MQTT. NOTE: The same value exists in your MQTT broker but for the length the client can send to it instead.","Location of the adapter. To autodetect the port, set null":"Location of the adapter. To autodetect the port, set null","Disable LED of the adapter if supported":"Disable LED of the adapter if supported","Adapter type, not needed unless you are experiencing problems":"Adapter type, not needed unless you are experiencing problems","Baud rate speed for the serial port. This must match what the firmware on your adapter supports (most commonly 115200).":"Baud rate speed for the serial port. This must match what the firmware on your adapter supports (most commonly 115200).","RTS / CTS Hardware Flow Control for serial port":"RTS / CTS Hardware Flow Control for serial port","Block devices from the network (by ieeeAddr)":"Block devices from the network (by ieeeAddr)","Allow only certain devices to join the network (by ieeeAddr). Note that all devices not on the passlist will be removed from the network!":"Allow only certain devices to join the network (by ieeeAddr). Note that all devices not on the passlist will be removed from the network!","Your device may request a check for a new firmware update. This value determines how frequently third party servers may actually be contacted to look for firmware updates. The value is set in minutes, and the default is 1 day.":"Your device may request a check for a new firmware update. This value determines how frequently third party servers may actually be contacted to look for firmware updates. The value is set in minutes, and the default is 1 day.","Zigbee devices may request a firmware update, and do so frequently, causing Zigbee2MQTT to reach out to third party servers. If you disable these device initiated checks, you can still initiate a firmware update check manually.":"Zigbee devices may request a firmware update, and do so frequently, causing Zigbee2MQTT to reach out to third party servers. If you disable these device initiated checks, you can still initiate a firmware update check manually.","Location of override OTA index file":"Location of override OTA index file","Limits the rate of requests (in milliseconds) during OTA updates to reduce network congestion. You can increase this value if your network appears unstable during OTA.":"Limits the rate of requests (in milliseconds) during OTA updates to reduce network congestion. You can increase this value if your network appears unstable during OTA.","The size of file chunks sent during an update (in bytes). Note: This value may get ignored for manufacturers that require specific values.":"The size of file chunks sent during an update (in bytes). Note: This value may get ignored for manufacturers that require specific values.","Enable frontend":"Enable frontend","Package used for the frontend":"Package used for the frontend","Frontend binding port. Ignored when using a unix domain socket":"Frontend binding port. Ignored when using a unix domain socket","Frontend binding host. Binds to a unix socket when an absolute path is given instead.":"Frontend binding host. Binds to a unix socket when an absolute path is given instead.","Enables authentication, disabled by default":"Enables authentication, disabled by default","URL on which the frontend can be reached, currently only used for the Home Assistant device configuration page":"URL on which the frontend can be reached, currently only used for the Home Assistant device configuration page","SSL Certificate file path for exposing HTTPS. The sibling property 'ssl_key' must be set for HTTPS to be activated.":"SSL Certificate file path for exposing HTTPS. The sibling property 'ssl_key' must be set for HTTPS to be activated.","SSL key file path for exposing HTTPS. The sibling property 'ssl_cert' must be set for HTTPS to be activated.":"SSL key file path for exposing HTTPS. The sibling property 'ssl_cert' must be set for HTTPS to be activated.","Base URL for the frontend. If hosted under a subpath, e.g. 'http://localhost:8080/z2m', set this to '/z2m'":"Base URL for the frontend. If hosted under a subpath, e.g. 'http://localhost:8080/z2m', set this to '/z2m'","Hide frontend notifications matching specified regex strings. Example: 'z2m: Failed to ping.*'":"Hide frontend notifications matching specified regex strings. Example: 'z2m: Failed to ping.*'","If true, the frontend UI is not served, only the WebSocket is maintained by Zigbee2MQTT (you are required to serve a standalone UI yourself as needed).":"If true, the frontend UI is not served, only the WebSocket is maintained by Zigbee2MQTT (you are required to serve a standalone UI yourself as needed).","Log rotation":"Log rotation","Console json log":"Console json log","Create symlink to current logs in the log directory":"Create symlink to current logs in the log directory","Output location of the log, leave empty to suppress logging":"Output location of the log, leave empty to suppress logging","Location of log directory":"Location of log directory","Log file name, can also contain timestamp":"Log file name, can also contain timestamp","Logging level":"Logging level","Set individual log levels for certain namespaces":"Set individual log levels for certain namespaces","Log debug level to MQTT and frontend (may decrease overall performance)":"Log debug level to MQTT and frontend (may decrease overall performance)","Do not log these namespaces (regex-based) for debug level":"Do not log these namespaces (regex-based) for debug level","Number of log directories to keep before deleting the oldest one":"Number of log directories to keep before deleting the oldest one","The host running syslogd, defaults to localhost.":"The host running syslogd, defaults to localhost.","The port on the host that syslog is running on, defaults to syslogd's default port.":"The port on the host that syslog is running on, defaults to syslogd's default port.","The network protocol to log over (e.g. tcp4, udp4, tls4, unix, unix-connect, etc).":"The network protocol to log over (e.g. tcp4, udp4, tls4, unix, unix-connect, etc).","The path to the syslog dgram socket (i.e. /dev/log or /var/run/syslog for OS X).":"The path to the syslog dgram socket (i.e. /dev/log or /var/run/syslog for OS X).","PID of the process that log messages are coming from (Default process.pid).":"PID of the process that log messages are coming from (Default process.pid).","Host to indicate that log messages are coming from (Default: localhost).":"Host to indicate that log messages are coming from (Default: localhost).","The type of the syslog protocol to use (Default: BSD, also valid: 5424).":"The type of the syslog protocol to use (Default: BSD, also valid: 5424).","The name of the application (Default: Zigbee2MQTT).":"The name of the application (Default: Zigbee2MQTT).","The end of line character to be added to the end of the message (Default: Message without modifications).":"The end of line character to be added to the end of the message (Default: Message without modifications).","ZigBee pan ID, changing requires re-pairing all devices!":"ZigBee pan ID, changing requires re-pairing all devices!","Zigbee extended pan ID, changing requires re-pairing all devices!":"Zigbee extended pan ID, changing requires re-pairing all devices!","Zigbee channel, changing might require re-pairing some devices! (Note: use a ZLL channel: 11, 15, 20, or 25 to avoid problems)":"Zigbee channel, changing might require re-pairing some devices! (Note: use a ZLL channel: 11, 15, 20, or 25 to avoid problems)","Adapter concurrency (e.g. 2 for CC2531 or 16 for CC26X2R1) (default: null, uses recommended value)":"Adapter concurrency (e.g. 2 for CC2531 or 16 for CC26X2R1) (default: null, uses recommended value)","Adapter delay":"Adapter delay","MQTT message payload will contain all attributes, not only changed ones. Has to be true when integrating via Home Assistant":"MQTT message payload will contain all attributes, not only changed ones. Has to be true when integrating via Home Assistant","Persist cached state, only used when cache_state: true":"Persist cached state, only used when cache_state: true","Send cached state on startup, only used when cache_state: true":"Send cached state on startup, only used when cache_state: true","Add a last_seen attribute to MQTT messages, contains date/time of last Zigbee message":"Add a last_seen attribute to MQTT messages, contains date/time of last Zigbee message","Add an elapsed attribute to MQTT messages, contains milliseconds since the previous msg":"Add an elapsed attribute to MQTT messages, contains milliseconds since the previous msg","Network encryption key, changing requires re-pairing all devices!":"Network encryption key, changing requires re-pairing all devices!","Log timestamp format":"Log timestamp format","Transmit power of adapter, only available for Z-Stack (CC253*/CC2652/CC1352) adapters, CC2652 = 5dbm, CC1352 max is = 20dbm (5dbm default)":"Transmit power of adapter, only available for Z-Stack (CC253*/CC2652/CC1352) adapters, CC2652 = 5dbm, CC1352 max is = 20dbm (5dbm default)","Examples when 'state' of a device is published json: topic: 'zigbee2mqtt/my_bulb' payload '{\\"state\\": \\"ON\\"}' attribute: topic 'zigbee2mqtt/my_bulb/state' payload 'ON' attribute_and_json: both json and attribute (see above)":"Examples when 'state' of a device is published json: topic: 'zigbee2mqtt/my_bulb' payload '{\\"state\\": \\"ON\\"}' attribute: topic 'zigbee2mqtt/my_bulb/state' payload 'ON' attribute_and_json: both json and attribute (see above)","Periodically check the health of Zigbee2MQTT":"Periodically check the health of Zigbee2MQTT","Interval between checks in minutes":"Interval between checks in minutes","If true, will reset stats every time the health check is executed (only applicable to stats that can be reset).":"If true, will reset stats every time the health check is executed (only applicable to stats that can be reset).","Used in the MQTT topic of a device. By default this is the device ID":"Used in the MQTT topic of a device. By default this is the device ID","Retain MQTT messages of this device":"Retain MQTT messages of this device","Disables the device (excludes device from network scans, availability and group state updates)":"Disables the device (excludes device from network scans, availability and group state updates)","Sets the MQTT Message Expiry in seconds, Make sure to set mqtt.version to 5":"Sets the MQTT Message Expiry in seconds, Make sure to set mqtt.version to 5","QoS level for MQTT messages of this device":"QoS level for MQTT messages of this device","The minimum time between payloads in seconds. Payloads received whilst the device is being throttled will be discarded":"The minimum time between payloads in seconds. Payloads received whilst the device is being throttled will be discarded","Debounces messages of this device":"Debounces messages of this device","Protects unique payload values of specified payload properties from overriding within debounce time":"Protects unique payload values of specified payload properties from overriding within debounce time","Publish optimistic state after set":"Publish optimistic state after set","Filter attributes with regex from published payload.":"Filter attributes with regex from published payload.","Filter attributes with regex from being added to the cache, this prevents the attribute from being in the published payload when the value didn't change.":"Filter attributes with regex from being added to the cache, this prevents the attribute from being in the published payload when the value didn't change.","Filter attributes with regex from optimistic publish payload when calling /set. (This has no effect if optimistic is set to false).":"Filter attributes with regex from optimistic publish payload when calling /set. (This has no effect if optimistic is set to false).","The user-defined device icon for the frontend. It can be a full URL link to an image (e.g. https://SOME.SITE/MODEL123.jpg) or a path to a local file inside the \`device_icons\` directory (e.g. device_icons/MODEL123.png).":"The user-defined device icon for the frontend. It can be a full URL link to an image (e.g. https://SOME.SITE/MODEL123.jpg) or a path to a local file inside the \`device_icons\` directory (e.g. device_icons/MODEL123.png).","Name of the device in Home Assistant":"Name of the device in Home Assistant","QoS level for MQTT messages of this group":"QoS level for MQTT messages of this group","Control when to publish state OFF or CLOSE for a group. 'all_members_off': only publish state OFF/CLOSE when all group members are in state OFF/CLOSE, 'last_member_state': publish state OFF whenever one of its members changes to OFF":"Control when to publish state OFF or CLOSE for a group. 'all_members_off': only publish state OFF/CLOSE when all group members are in state OFF/CLOSE, 'last_member_state': publish state OFF whenever one of its members changes to OFF"}`),$B={common:ble,devicePage:_le,exposes:Sle,groups:Ele,logs:Tle,network:Rle,navbar:Ole,ota:Ale,settings:wle,health:xle,touchlink:Cle,values:Ile,zigbee:qle,scene:Mle,stats:Nle,availability:Lle,devConsole:Dle,settingsSchemaDescriptions:Ple},jle={},kle={},zle={},Ule={action:"Action",actions:"Actions",apply:"Appliquer",attribute:"Attribut",bind:"Lier",clear:"Effacer",close:"Fermer",cancel:"Annuler",cluster:"Cluster",clusters:"Clusters",confirmation:"Demande de confirmation",delete:"Supprimer",destination:"Destination",devices:"Appareils",dialog_confirmation_prompt:"Êtes-vous sûr ?",disable:"Désactiver",search:"Rechercher",highlight:"Mettre en évidence",groups:"Groupes",loading:"Chargement...",none:"Aucun",ok:"OK",read:"Lire",save:"Sauvegarder",select_value:"Sélectionner la valeur",select_device:"Sélectionner un appareil",select_endpoint:"Sélectionner un point de terminaison",select_group:"Sélectionner un groupe",source_endpoint:"Point de terminaison source",the_only_endpoint:"Le seul point de terminaison",unbind:"Délier",write:"Écrire",destination_endpoint:"Point de terminaison de destination",read_the_docs_info:"Lire à ce sujet dans la documentation...",page:"Page",go_to_page:"Aller à la page",show:"Afficher",min:"Min",max:"Max",done:"Terminé",enter_auth_token:"Entrer le jeton d'authentification",token:"Jeton",documentation:"Documentation",optional:"Facultatif",init:"Initialiser",undefined:"Indéfini",type_to_filter:"Tapez pour filtrer...",name:"Nom",friendly_name:"Nom d'affichage",unknown_device:"Appareil inconnu",unknown_group:"Groupe inconnu",failed:"Échoué",disabled:"Désactivé",hide_disabled:"Masquer les désactivés",battery_low_only:"Batterie faible uniquement",available_only:"Disponible uniquement",execute:"Exécuter",command:"Commande",payload:"Charge utile",execute_command:"Exécuter la commande",send:"Envoyer",columns:"Colonnes",entries:"Entrées"},Fle={about:"À propos",bind:"Lier",clusters:"Clusters",dev_console:"Console de développement",reporting:"Rapport",settings:"Paramètres",settings_specific:"Paramètres (spécifiques)",state:"État",groups:"Groupes",scene:"Scène",exposes:"Exposés",select_a_device:"Sélectionner un appareil"},Ble={empty_exposes_definition:"Définition d'exposés vide"},Hle={settings:"Paramètres",add_to_group_header:"Ajouter un appareil au groupe",add_to_group:"Ajouter au groupe",create_group:"Créer un groupe",friendly_name_placeholder:"luminaires_salon, jardin...",remove_group:"Supprimer le groupe",group_id:"ID du groupe",group_members:"Membres du groupe",scenes:"Scènes",rename_group:"Renommer le groupe",remove_from_group:"Retirer du groupe"},$le={log_level_config:"Configuration du niveau de journal",empty_logs_message:"Rien à afficher",filter_by_text:"Filtrer par texte",show_only:"Afficher uniquement",logs_limit:"Limite des journaux",highlight_only:"Mettre en évidence uniquement"},Gle={network_hierarchy:"Hiérarchie du réseau",help:"Aide",load:"Charger",reload:"Recharger",loading:"En fonction de la taille du réseau et de la qualité de ses liens, cela peut prendre un certain temps.",parent:"Parent",child:"Enfant",sibling:"Frère",children:"Enfants",siblings:"Frères",previous_children:"Enfants précédents",nodes:"Nœuds",edges:"Arêtes",legend:"Légende",depth:"Profondeur",routes:"Routes",type:"Type",raw:"Afficher les données/carte",graphviz:"Externe - Graphviz",plantuml:"Externe - PlantUML",enable_routes:"Activer les routes",display_type:"Type d'affichage",data:"Données",map:"Carte",layout_type:"Type de disposition",label_type:"Type d'étiquette",download_image:"Télécharger l'image",zoom_in:"Zoomer",zoom_out:"Dézoomer",fit_view:"Adapter à l'écran",reset_controls:"Réinitialiser les contrôles",find_node:"Trouver un nœud",scroll_to_top:"Faire défiler vers le haut",node_strength:"Force du nœud",link_distance:"Distance du lien",copy_paste_on:"Copier et coller les données suivantes dans l'un des visionneurs/éditeurs en ligne disponibles.",highlight_info:"Cliquez sur l'image d'un appareil pour le mettre en évidence automatiquement.",legend_node_siblings:"Seuls les frères/sœurs les mieux classés sont affichés, ce qui correspond à peu près aux connexions réelles du réseau.",legend_node_size:"Les nœuds sont dimensionnés en fonction de leur centralité.",legend_node_select:"Sélectionner un nœud sélectionnera la partie du réseau dépendante à un saut.",legend_node_fold:"Le bouton de menu contextuel du nœud pour plier/déplier affectera la partie dépendante du réseau.",legend_edge_toggle:"Basculer les arêtes de relation modifiera la disposition. Lorsque l'une ou plusieurs sont désactivées, la disposition réelle du réseau n'est plus représentée avec précision."},Vle={all:"Tout",dashboard:"Tableau de bord",devices:"Appareils",disable_join:"Désactiver l'appairage",extensions:"Extensions",groups:"Groupes",logs:"Journaux",network:"Réseau",ota:"OTA",permit_join:"Autoriser l'appairage",restart:"Redémarrer",settings:"Paramètres",toggle_dropdown:"Basculer le menu déroulant",touchlink:"Touchlink",websocket_status:"Statut WebSocket"},Wle={check:"Vérifier les mises à jour",check_selected:"Vérifier la sélection",update_selected:"Mettre à jour la sélection",update_selected_info:"Une mise à jour OTA est très exigeante pour un réseau. Assurez-vous qu'il est stable et optez pour des moments moins utilisés.",empty_ota_message:"Aucun appareil ne prend en charge la mise à jour à distance actuellement",remaining_time:"Temps restant",schedule:"Planifier la mise à jour",schedule_info:"La mise à jour se fera lors de la prochaine demande OTA de l'appareil",unschedule:"Annuler la mise à jour programmée",update:"Mettre à jour le firmware de l'appareil",firmware_version:"Version du firmware",available_firmware_version:"Version du firmware disponible",app:"Application",stack:"Pile"},Yle={about:"À propos",advanced:"Avancé",availability:"Disponibilité",blocklist:"Liste noire",revision:"Révision",coordinator:"Coordinateur",donate:"Faire un don",donation_text:"Ici, vous pouvez nous remercier pour tout le travail accompli. N'hésitez pas à dire quelque chose de gentil aussi ;)",download_state:"Télécharger l'état",experimental:"Expérimental",external_converters:"Convertisseurs externes",frontend:"Frontend",frontend_version:"Version du frontend",main:"Principal",mqtt:"MQTT",ota:"Mises à jour OTA",passlist:"Liste blanche",bridge:"Passerelle",restart_zigbee2mqtt:"Redémarrer Zigbee2MQTT",serial:"Série",settings:"Paramètres",tools:"Outils",zigbee2mqtt_version:"Version de Zigbee2MQTT",translate:"Traduire",stats:"Statistiques",coordinator_ieee_address:"Adresse IEEE du coordinateur",request_z2m_backup:"Demander une sauvegarde Z2M",add_install_code:"Ajouter un code d'installation",install_code:"Code d'installation",homeassistant:"Intégration Home Assistant",translation_prompt:"Vous pouvez aider à la traduction sur",zigbee_herdsman_converters_version:"Version de zigbee-herdsman-converters",zigbee_herdsman_version:"Version de zigbee-herdsman",localise_images:"Localiser les images des appareils",frontend_notice:"Ces paramètres sont stockés localement dans votre navigateur. L'utilisation d'une fenêtre privée ou la suppression du cache les réinitialisera.",reset_settings:"Réinitialiser les paramètres",reset_auth:"Réinitialiser l'authentification",reset_all:"Réinitialiser tout",language:"Langue",theme:"Thème",homepage:"Page d'accueil",dashboard_column_display:"Affichage en colonnes du tableau de bord",permit_join_time:"Temps d'autorisation d'appairage",dev_console:"Console de développement",max_on_screen_notifications:"Nombre max de notifications à l'écran",network_raw:"Données réseau / Carte brute",network_map:"Carte du réseau",machine:"Machine",node_version:"Version de Node",version:"Version",health:"État"},Kle={awaiting_next_check:"En attente de la prochaine vérification",last_check:"Dernière vérification",response_time:"Temps de réponse",os:"Système d'exploitation",process:"Processus",load_average:"Charge moyenne",ram_usage:"Utilisation de la RAM",uptime:"Temps de fonctionnement",queued:"En file d'attente",published:"Publié",received:"Reçu",messages:"Messages",messages_per_sec:"Messages par seconde",leave_count:"Nombre de départs",network_address_changes:"Changements d'adresse réseau",very_low:"Très faible",interview_info:"Les interrogations des appareils peuvent fortement influencer ces données."},Qle={detected_devices_message:"{{count}} appareils Touchlink détectés.",rescan:"Analyser de nouveau",scan:"Analyser",identify:"Identifier",factory_reset:"Réinitialisation d'usine"},Zle={clear:"Effacer",closed:"Fermé",false:"Faux",not_supported:"Non pris en charge",occupied:"Occupé",open:"Ouvert",supported:"Pris en charge",true:"Vrai",empty_string:'Chaîne vide ("")',leaking:"Fuite détectée",tampered:"Altéré",null:"Null",Clear:"Effacer",Closed:"Fermé",Occupied:"Occupé",Open:"Ouvert"},Xle={actions:"Actions",attribute:"Attribut",unknown:"Inconnu",mains_single_phase:"Réseau (monophasé)",mains_3_phase:"Réseau (triphasé)",battery:"Pile",dc_source:"Source CC",emergency_mains_constantly_powered:"Réseau de secours toujours alimenté",emergency_mains_and_transfer_switch:"Réseau de secours et commutateur de transfert",block_join:"Interdire l'appairage",cluster:"Groupe de fonctionnalités",description:"Description",device_type:"Type d'appareil",endpoint:"Point de terminaison",firmware_id:"ID du firmware",firmware_build_date:"Date de compilation du firmware",force_remove:"Suppression forcée",force_remove_notice:"À n'utiliser qu'en dernier recours (ne sera pas propagé au réseau)",ieee_address:"Adresse IEEE",interview:"Interrogation",interview_failed:"Interrogation échouée",interviewing:"En cours d'interrogation",interview_state:"État de l'interrogation",last_seen:"Dernière vue",lqi:"LQI",manufacturer:"Fabricant",max_rep_interval:"Intervalle max de rapport",min_rep_change:"Changement min de rapport",min_rep_interval:"Intervalle min de rapport",model:"Modèle",network_address:"Adresse réseau",network_address_hex:"Adresse réseau (hexadécimal)",network_address_dec:"Adresse réseau (décimal)",none:"Aucun",pic:"Image",power:"Puissance",power_level:"Niveau de puissance",reconfigure:"Reconfigurer",remove_device:"Supprimer l'appareil",rename_device:"Renommer l'appareil",select_attribute:"Sélectionner un attribut",select_cluster:"Sélectionner un groupe",support_status:"Statut de prise en charge",unsupported:"Non pris en charge",updating_firmware:"Mise à jour du firmware",update_Home_assistant_entity_id:"Mettre à jour l'ID d'entité Home Assistant",zigbee_manufacturer:"Fabricant ZigBee",zigbee_model:"Modèle ZigBee",device:"Appareil",channel:"Canal",possible:"Possible",available:"Disponible",edit_description:"Modifier la description",save_description:"Enregistrer la description",update_description:"Mettre à jour la description",read_write_attributes:"Lire/écrire les attributs du cluster de point de terminaison",input_clusters:"Clusters d'entrée",output_clusters:"Clusters de sortie",custom_clusters:"Clusters personnalisés",other_zcl_clusters:"Autres clusters ZCL",how_to_add_support:"Comment ajouter la prise en charge ?",group:"Groupe",type:"Type",EndDevice:"Appareil terminal",Router:"Routeur",GreenPower:"GreenPower",Unknown:"Inconnu",Coordinator:"Coordinateur"},Jle={manage_scenes_header:"Gérer les scènes",add_update_header:"Ajouter/mettre à jour une scène",scene_id:"ID de la scène",recall:"Rappeler",store:"Enregistrer",remove:"Supprimer",remove_all:"Tout supprimer",add:"Ajouter",select_scene:"Sélectionner une scène",scene_name:"Nom de la scène"},ece={byType:"Par type d'appareil",byPowerSource:"Par source d'alimentation",byVendor:"Par fournisseur",byModel:"Par modèle",total:"Total"},rce={availability:"Disponibilité",offline:"Hors ligne",online:"En ligne",disabled:"Désactivé",enabled:"Activé"},tce={generate_external_definition:"Générer une définition externe",generated_external_definition:"Définition externe générée",state_property:"Propriété d'état",state_property_info:"Définir le résultat dans l'état de l'appareil (lecture uniquement)",reset_frontend_state:"Réinitialiser l'état du frontend",mqtt:"MQTT",external_converters:"Convertisseurs externes",external_extensions:"Extensions externes",topic:"Sujet",send_mqtt:"Envoyer un message MQTT",mqtt_topic_info:"Omettre le «base_topic», les messages frontend sont envoyés directement par WebSocket à Zigbee2MQTT.",code:"Code",add_update_external_extension:"Ajouter ou mettre à jour une extension externe",create_new_extension:"Créer une nouvelle extension",select_extension_to_edit:"Sélectionner l'extension à modifier",add_update_external_converter:"Ajouter ou mettre à jour un convertisseur externe",create_new_converter:"Créer un nouveau convertisseur",select_converter_to_edit:"Sélectionner le convertisseur à modifier",codespace_info:"Un Codespace GitHub est disponible pour aider au développement"},ace=JSON.parse(`{"Home Assistant integration (MQTT discovery)":"Intégration Home Assistant (découverte MQTT)","Enable Home Assistant integration":"Activer l'intégration Home Assistant","Home Assistant discovery topic":"Sujet de découverte Home Assistant","Home Assistant status topic":"Sujet de statut Home Assistant","Home Assistant legacy actions sensor, when enabled a action sensor will be discoverd and an empty \`action\` will be send after every published action.":"Capteur d'actions hérité Home Assistant : quand activé, un capteur d'action est découvert et une action vide sera envoyée après chaque action publiée.","Home Assistant experimental event entities, when enabled Zigbee2MQTT will add event entities for exposed actions. The events and attributes are currently deemed experimental and subject to change.":"Entités d'événements expérimentales Home Assistant : quand activé, Zigbee2MQTT ajoute des entités d'événements pour les actions exposées. Ces événements et attributs sont considérés expérimentaux et peuvent évoluer.","Checks whether devices are online/offline":"Vérifie si les appareils sont en ligne/hors ligne","Enable availability checks":"Activer les vérifications de disponibilité","Options for active devices (routers/mains powered)":"Options pour les appareils actifs (routeurs/alimentation secteur)","Time after which an active device will be marked as offline in minutes":"Délai après lequel un appareil actif est marqué hors ligne (en minutes)","Maximum jitter (in msec) allowed on timeout to avoid availability pings trying to trigger around the same time":"Dénivellement max (en ms) autorisé sur le timeout pour éviter que les pings de disponibilité ne déclenchent tous en même temps","Enable timeout backoff on failed availability pings (x1.5, x3, x6, x12...)":"Activer le retour en arrière de timeout sur pings de disponibilité échoués (x1,5, x3, x6, x12…)","Pause availability pings when backoff reaches over this limit until a new Zigbee message is received from the device. A value of zero disables pausing.":"Mettre en pause les pings de disponibilité lorsque le backoff dépasse cette limite, jusqu'à réception d'un nouveau message Zigbee. Zéro désactive la pause.","Options for passive devices (mostly battery powered)":"Options pour les appareils passifs (principalement sur pile)","Time after which an passive device will be marked as offline in minutes":"Délai après lequel un appareil passif est marqué hors ligne (en minutes)","MQTT base topic for Zigbee2MQTT MQTT messages":"Sujet de base MQTT pour les messages Zigbee2MQTT","MQTT server URL (use mqtts:// for SSL/TLS connection)":"URL du serveur MQTT (utiliser mqtts:// pour TLS/SSL)","MQTT keepalive in second":"Keepalive MQTT en secondes","Absolute path to SSL/TLS certificate of CA used to sign server and client certificates":"Chemin absolu vers le certificat SSL/TLS de l'AC utilisé pour signer les certificats","Absolute path to SSL/TLS key for client-authentication":"Chemin absolu vers la clé SSL/TLS pour l'authentification client","Absolute path to SSL/TLS certificate for client-authentication":"Chemin absolu vers le certificat SSL/TLS pour l'authentification client","MQTT server authentication user":"Utilisateur pour l'authentification au serveur MQTT","MQTT server authentication password":"Mot de passe pour l'authentification au serveur MQTT","MQTT client ID":"ID client MQTT","Disable self-signed SSL certificate":"Désactiver certificat SSL auto-signé","Include device information to mqtt messages":"Inclure les informations de l'appareil dans les messages MQTT","MQTT protocol version":"Version du protocole MQTT","Disable retain for all send messages. ONLY enable if your MQTT broker doesn't support retained message (e.g. AWS IoT core, Azure IoT Hub, Google Cloud IoT core, IBM Watson IoT Platform). Enabling will break the Home Assistant integration":"Désactiver le retain pour tous les messages envoyés. À activer uniquement si votre broker MQTT ne supporte pas le retain (p. ex. AWS IoT Core, Azure IoT Hub…). Cela rompra l'intégration Home Assistant.","Specifies the maximum allowed packet length (in bytes) that the server can send to Zigbee2MQTT. NOTE: The same value exists in your MQTT broker but for the length the client can send to it instead.":"Spécifie la longueur maximale autorisée d'un paquet (en octets) que le serveur peut envoyer à Zigbee2MQTT. NOTE : la même valeur existe dans votre broker pour la longueur que le client peut envoyer.","Location of the adapter. To autodetect the port, set null":"Emplacement de l'adaptateur. Pour autodétecter le port, mettre null","Disable LED of the adapter if supported":"Désactiver la LED de l'adaptateur si supporté","Adapter type, not needed unless you are experiencing problems":"Type d'adaptateur, non nécessaire sauf en cas de problèmes","Baud rate speed for serial port, this can be anything firmware support but default is 115200 for Z-Stack and EZSP, 38400 for Deconz, however note that some EZSP firmware need 57600":"Vitesse du port série (baud rate), dépend du firmware : 115200 par défaut pour Z-Stack/EZSP, 38400 pour Deconz ; certains EZSP nécessitent 57600.","RTS / CTS Hardware Flow Control for serial port":"Contrôle de flux matériel RTS/CTS pour port série","Block devices from the network (by ieeeAddr)":"Bloquer les appareils du réseau (par ieeeAddr)","Allow only certain devices to join the network (by ieeeAddr). Note that all devices not on the passlist will be removed from the network!":"Autoriser seulement certains appareils à rejoindre le réseau (par ieeeAddr). Tous les appareils non listés seront retirés !","Your device may request a check for a new firmware update. This value determines how frequently third party servers may actually be contacted to look for firmware updates. The value is set in minutes, and the default is 1 day.":"Votre appareil peut demander une vérification de mise à jour : cette valeur détermine la fréquence (en minutes) des requêtes aux serveurs tiers. Par défaut, 1 jour.","Zigbee devices may request a firmware update, and do so frequently, causing Zigbee2MQTT to reach out to third party servers. If you disable these device initiated checks, you can still initiate a firmware update check manually.":"Les appareils Zigbee peuvent demander souvent une mise à jour firmware, provoquant des requêtes à des serveurs tiers. Si vous les désactivez, vous pouvez toujours lancer cette vérification manuellement.","Location of override OTA index file":"Emplacement du fichier d'index OTA de remplacement","Limits the rate of requests (in milliseconds) during OTA updates to reduce network congestion. You can increase this value if your network appears unstable during OTA.":"Limite le taux de requêtes (en ms) lors des mises à jour OTA pour éviter la congestion. Augmentez si instabilité réseau.","The size of file chunks sent during an update (in bytes). Note: This value may get ignored for manufacturers that require specific values.":"Taille des blocs envoyés pendant la mise à jour (en octets). Note : certains fabricants exigent une valeur spécifique, ce qui peut ignorer cette valeur.","Enable frontend":"Activer l'interface","Package used for the frontend":"Package utilisé pour l'interface","Frontend binding port. Ignored when using a unix domain socket":"Port d'écoute de l'interface. Ignoré si socket Unix utilisé","Frontend binding host. Binds to a unix socket when an absolute path is given instead.":"Hôte d'écoute de l'interface. Utilise un socket Unix si un chemin absolu est donné.","Enables authentication, disabled by default":"Active l'authentification, désactivée par défaut","URL on which the frontend can be reached, currently only used for the Home Assistant device configuration page":"URL d'accès à l'interface, utilisée uniquement pour la page de configuration Home Assistant","SSL Certificate file path for exposing HTTPS. The sibling property 'ssl_key' must be set for HTTPS to be activated.":"Chemin du fichier de certificat SSL pour HTTPS. La propriété 'ssl_key' doit être définie pour activer HTTPS.","SSL key file path for exposing HTTPS. The sibling property 'ssl_cert' must be set for HTTPS to be activated.":"Chemin du fichier clé SSL pour HTTPS. La propriété 'ssl_cert' doit être définie pour activer HTTPS.","Base URL for the frontend. If hosted under a subpath, e.g. 'http://localhost:8080/z2m', set this to '/z2m'":"URL de base de l'interface. Si elle est hébergée sous un sous-chemin (ex. '/z2m'), définissez-le ici.","Hide frontend notifications matching specified regex strings. Example: 'z2m: Failed to ping.*'":"Masquer les notifications de l'interface correspondant aux expressions régulières spécifiées. Exemple : 'z2m: Failed to ping.*'","Log rotation":"Rotation des logs","Console json log":"Log JSON console","Create symlink to current logs in the log directory":"Créer un lien symbolique vers les logs actuels dans le répertoire","Output location of the log, leave empty to suppress logging":"Emplacement des logs ; laisser vide pour désactiver","Location of log directory":"Emplacement du répertoire de logs","Log file name, can also contain timestamp":"Nom du fichier de log, peut inclure un timestamp","Logging level":"Niveau de journalisation","Set individual log levels for certain namespaces":"Définir des niveaux de log individuels par espace de noms","Log debug level to MQTT and frontend (may decrease overall performance)":"Journaliser le niveau debug vers MQTT et interface (peut réduire les performances)","Do not log these namespaces (regex-based) for debug level":"Ne pas loguer ces espaces de noms (basé regex) au niveau debug","Number of log directories to keep before deleting the oldest one":"Nombre de répertoires de logs à conserver avant suppression du plus ancien","The host running syslogd, defaults to localhost.":"Hôte exécutant syslogd, par défaut localhost.","The port on the host that syslog is running on, defaults to syslogd's default port.":"Port sur lequel syslog tourne, par défaut le port standard syslogd.","The network protocol to log over (e.g. tcp4, udp4, tls4, unix, unix-connect, etc).":"Protocole réseau pour la journalisation (ex. tcp4, udp4, tls4, unix…).","The path to the syslog dgram socket (i.e. /dev/log or /var/run/syslog for OS X).":"Chemin vers la socket datagramme syslog (ex. /dev/log ou /var/run/syslog).","PID of the process that log messages are coming from (Default process.pid).":"PID du processus d'origine des logs (par défaut process.pid).","Host to indicate that log messages are coming from (Default: localhost).":"Hôte indiqué comme source des logs (par défaut : localhost).","The type of the syslog protocol to use (Default: BSD, also valid: 5424).":"Type de protocole syslog à utiliser (par défaut BSD, ou 5424).","The name of the application (Default: Zigbee2MQTT).":"Nom de l'application (par défaut : Zigbee2MQTT).","The end of line character to be added to the end of the message (Default: Message without modifications).":"Caractère de fin de ligne ajouté au message (par défaut : aucun).","ZigBee pan ID, changing requires re-pairing all devices!":"Identifiant PAN ZigBee, le changer nécessite de ré-appairer tous les appareils !","Zigbee extended pan ID, changing requires re-pairing all devices!":"PAN ID étendu ZigBee, le changer nécessite de ré-appairer tous les appareils !","Zigbee channel, changing might require re-pairing some devices! (Note: use a ZLL channel: 11, 15, 20, or 25 to avoid problems)":"Canal ZigBee, le changer peut nécessiter de ré-appairer certains appareils ! (Utiliser un canal ZLL : 11, 15, 20 ou 25 pour éviter les problèmes)","Adapter concurrency (e.g. 2 for CC2531 or 16 for CC26X2R1) (default: null, uses recommended value)":"Concurrence de l'adaptateur (ex. 2 pour CC2531, 16 pour CC26X2R1) (par défaut null, utilise la valeur recommandée)","Adapter delay":"Délai de l'adaptateur","MQTT message payload will contain all attributes, not only changed ones. Has to be true when integrating via Home Assistant":"La charge MQTT contiendra tous les attributs, pas seulement ceux modifiés. Doit être activé pour l'intégration Home Assistant","Persist cached state, only used when cache_state: true":"Conserver l'état en cache, utilisé uniquement si cache_state est vrai","Send cached state on startup, only used when cache_state: true":"Envoyer l'état mis en cache au démarrage (si cache_state = vrai)","Add a last_seen attribute to MQTT messages, contains date/time of last Zigbee message":"Ajouter un attribut last_seen aux messages MQTT, contenant la date/heure du dernier message Zigbee","Add an elapsed attribute to MQTT messages, contains milliseconds since the previous msg":"Ajouter un attribut elapsed aux messages MQTT, indiquant les ms depuis le message précédent","Network encryption key, changing requires re-pairing all devices!":"Clé de chiffrement du réseau, la changer nécessite de ré-appairer tous les appareils !","Log timestamp format":"Format du timestamp des logs","Transmit power of adapter, only available for Z-Stack (CC253*/CC2652/CC1352) adapters, CC2652 = 5dbm, CC1352 max is = 20dbm (5dbm default)":"Puissance d'émission de l'adaptateur (Z-Stack CC253*/CC2652/CC1352). CC2652 = 5dBm, CC1352 max = 20dBm (5dBm par défaut)","Examples when 'state' of a device is published json: topic: 'zigbee2mqtt/my_bulb' payload '{\\"state\\": \\"ON\\"}' attribute: topic 'zigbee2mqtt/my_bulb/state' payload 'ON' attribute_and_json: both json and attribute (see above)":"Exemples de publication JSON de l'état : topic 'zigbee2mqtt/my_bulb', payload '{\\"state\\": \\"ON\\"}', attribute : topic 'zigbee2mqtt/my_bulb/state', payload 'ON', attribute_and_json : les deux (voir ci-dessus)","Periodically check the health of Zigbee2MQTT":"Vérifier périodiquement la santé de Zigbee2MQTT","Interval between checks in minutes":"Intervalle entre les vérifications (en minutes)","If true, will reset stats every time the health check is executed (only applicable to stats that can be reset).":"Si vrai, réinitialise les statistiques à chaque vérification (uniquement celles réinitialisables).","Used in the MQTT topic of a device. By default this is the device ID":"Utilisé dans le topic MQTT d'un appareil. Par défaut, c'est l'ID de l'appareil","Retain MQTT messages of this device":"Conserver les messages MQTT de cet appareil","Disables the device (excludes device from network scans, availability and group state updates)":"Désactive l'appareil (exclut des scans réseau, disponibilité et mises à jour d'état de groupe)","Sets the MQTT Message Expiry in seconds, Make sure to set mqtt.version to 5":"Définit le délai d'expiration des messages MQTT (en secondes). Assurez-vous d'utiliser mqtt.version = 5","QoS level for MQTT messages of this device":"Niveau QoS des messages MQTT de cet appareil","The minimum time between payloads in seconds. Payloads received whilst the device is being throttled will be discarded":"Temps minimum entre deux payloads (en secondes). Les payloads reçus pendant une limitation seront ignorés","Debounces messages of this device":"Applique un anti-rebond aux messages de cet appareil","Protects unique payload values of specified payload properties from overriding within debounce time":"Protège les valeurs uniques des propriétés payload spécifiées contre écrasement pendant le temps de débounce","Publish optimistic state after set":"Publier l'état optimiste après set","Filter attributes with regex from published payload.":"Filtrer les attributs du payload publié via regex.","Filter attributes with regex from being added to the cache, this prevents the attribute from being in the published payload when the value didn't change.":"Filtrer les attributs ajoutés au cache via regex, afin qu'ils ne soient pas dans le payload si la valeur n'a pas changé.","Filter attributes with regex from optimistic publish payload when calling /set. (This has no effect if optimistic is set to false).":"Filtrer les attributs du payload optimiste (lors de /set) via regex. (Sans effet si optimistic=false).","The user-defined device icon for the frontend. It can be a full URL link to an image (e.g. https://SOME.SITE/MODEL123.jpg) or a path to a local file inside the \`device_icons\` directory (e.g. device_icons/MODEL123.png).":"Icône d'appareil définie par l'utilisateur pour l'interface. Peut être une URL vers une image ou un chemin local dans \`device_icons\`.","Name of the device in Home Assistant":"Nom de l'appareil dans Home Assistant","Control when to publish state OFF or CLOSE for a group. 'all_members_off': only publish state OFF/CLOSE when all group members are in state OFF/CLOSE, 'last_member_state': publish state OFF whenever one of its members changes to OFF":"Contrôle la publication de l'état OFF/FERMÉ pour un groupe: 'all_members_off' = publier OFF/CLOSE quand tous les membres sont OFF/CLOSE ; 'last_member_state' = publier OFF dès qu'un membre passe à OFF"}`),nce={common:Ule,devicePage:Fle,exposes:Ble,groups:Hle,logs:$le,network:Gle,navbar:Vle,ota:Wle,settings:Yle,health:Kle,touchlink:Qle,values:Zle,zigbee:Xle,scene:Jle,stats:ece,availability:rce,devConsole:tce,settingsSchemaDescriptions:ace},ice={},oce={},sce={},uce={},lce={},cce={},fce={},dce={},vce={},hce={},pce={},gce={};et("bg",aue);et("ca",oue);et("cs",lue);et("da",due);et("de",pue);et("es",yue);et("eu",Sue);et("fi",Rue);et("fr",wue);et("hu",Iue);et("it",Nue);et("ko",Pue);et("nl",Bue);et("no",zue);et("pl",Gue);et("ptbr",Yue);et("ru",Zue);et("sv",ele);et("tr",ale);et("ua",ole);et("zh-CN",lle);et("zh",dle);const GB={ca:hle,en:$B,fr:nce,pl:cce,de:yle,ru:dce,ptbr:fce,es:jle,ua:pce,"zh-CN":ple,nl:uce,it:oce,zh:gce,ko:sce,cs:gle,fi:zle,sv:vce,tr:hce,no:lce,da:mle,bg:vle,hu:ice,eu:kle},mce=!1;gt.on("languageChanged",e=>{document.documentElement.lang=e});gt.use(HB).use(cX).init({fallbackLng:"en",debug:mce,resources:GB,ns:Object.keys($B),interpolation:{escapeValue:!1}});const yce=gt.language.split("-")[0].toLocaleLowerCase();GB[yce]||gt.changeLanguage("en");const bce=4401,N4=new Map;let _ce=1;const Sce=Koe(5),Ece=e=>{if(e.transaction!=null){const r=N4.get(e.transaction);r&&(e.status==="ok"||e.status==null?r[0]():r[1](new Error(e.error??"Unknown error",{cause:e.transaction})),N4.delete(e.transaction))}},Tce=(e,r)=>{r(nse(e))},Rce=(e,r)=>{r(ise(e))},Oce=(e,r)=>{switch(e.topic){case"bridge/info":{r(ose(e.payload));break}case"bridge/state":{r(sse(e.payload));break}case"bridge/health":{r(use(e.payload));break}case"bridge/definitions":{r(lse(e.payload));break}case"bridge/devices":{r(cse(e.payload));break}case"bridge/groups":{r(fse(e.payload));break}case"bridge/converters":{r(ese(e.payload));break}case"bridge/extensions":{r(Joe(e.payload));break}case"bridge/logging":{const a=e.payload;r(Fu(a));break}case"bridge/response/networkmap":{const a=e.payload;r(dse(a.status==="ok"?a.data:void 0));break}case"bridge/response/touchlink/scan":{const{status:a,data:i}=e.payload;r(rse(a==="ok"?{inProgress:!1,devices:i.found}:{inProgress:!1,devices:[]}));break}case"bridge/response/touchlink/identify":{r(tse(!1));break}case"bridge/response/touchlink/factory_reset":{r(ase(!1));break}case"bridge/response/backup":{const a=e.payload;r(vse(a.data.zip));break}case"bridge/response/device/generate_external_definition":{const a=e.payload;a.status==="ok"&&r(hse(a.data));break}}e.topic.startsWith("bridge/response/")&&Ece(e.payload)};function Ace(){const e=V.useRef(!1),r=yne(),a=CE.startsWith("${")?[`${window.location.host}${document.location.pathname}api`]:CE.split(","),[i,o]=V.useState(a[0]);V.useEffect(()=>{r(pse())},[i]);const u=V.useCallback(async()=>await new Promise(p=>{const m=new URL(`${location.protocol==="https:"?"wss":"ws"}://${i}`);if(!!qn.get(fP)){const b=new URLSearchParams(window.location.search).get("token")??qn.get(dy);if(!b){cl.show("auth-form",{onAuth:E=>{qn.set(dy,E),m.searchParams.append("token",E),p(m.toString())}});return}m.searchParams.append("token",b)}p(m.toString())}),[i]),l=V.useRef({disableJson:!0,share:!0,retryOnError:!0,shouldReconnect:p=>(v(p),e.current===!1),reconnectInterval:3e3,reconnectAttempts:10,onOpen:p=>console.log("WebSocket opened",p),onClose:p=>console.log("WebSocket closed",p),onError:p=>console.log("WebSocket error",p),filter:p=>{if(p)try{const m=JSON.parse(p.data);m.topic.endsWith(PB)?Rce(m,r):m.topic.startsWith("bridge/")?Oce(m,r):Tce(m,r)}catch(m){r(Fu({level:"error",message:`frontend: ${m.message}`,namespace:"frontend"}))}return!1}}),{sendMessage:f,readyState:d}=Cne(u,l.current),v=V.useCallback(p=>{p.code===bce&&(qn.set(fP,!0),qn.remove(dy))},[]);return V.useEffect(()=>()=>{e.current=!0},[]),{sendMessage:V.useCallback(async(p,m)=>{if(p.startsWith("bridge/request/")){if(m!==""&&typeof m=="string"){console.error("Only `Record<string, unknown>` or empty string payloads allowed");return}const y=`${Sce}-${_ce++}`;try{const b=new Promise((T,S)=>{N4.set(y,[T,S])}),E=vk({topic:p,payload:m===""?{transaction:y}:{...m,transaction:y}});console.debug("Calling Request API:",E),r(Fu({level:"debug",message:`frontend:api: Sending ${E}`,namespace:"frontend:api"})),f(E),await b}catch(b){r(Fu({level:"error",message:`frontend:api: ${b} (transaction: ${b.cause})`,namespace:"frontend:api"}))}}else{const y=vk({topic:p,payload:m});console.debug("Calling API:",y),r(Fu({level:"debug",message:`frontend:api: Sending ${y}`,namespace:"frontend:api"})),f(y)}},[f,r]),readyState:d,apiUrls:a,apiUrl:i,setApiUrl:o}}function wce({children:e}){const r=Ace();return se.jsx(vd.Provider,{value:r,children:e})}const xce=V.lazy(async()=>await Pa(()=>import("./HomePage-_eUNylSo.js"),__vite__mapDeps([0,1]),import.meta.url)),Cce=V.lazy(async()=>await Pa(()=>import("./DevicesPage-DCVj8eRe.js"),__vite__mapDeps([2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,1]),import.meta.url)),Ice=V.lazy(async()=>await Pa(()=>import("./DevicePage-BGbRRkF3.js"),__vite__mapDeps([19,1]),import.meta.url)),qce=V.lazy(async()=>await Pa(()=>import("./Dashboard-DNnODdKY.js"),__vite__mapDeps([20,21,22,14,18,23,11,12,13,16,17,7,8,4,5,6,10,1]),import.meta.url)),Mce=V.lazy(async()=>await Pa(()=>import("./NetworkPage-B-vdyAjg.js"),__vite__mapDeps([24,5,25,1]),import.meta.url)),Nce=V.lazy(async()=>await Pa(()=>import("./GroupsPage-Bjp4L8m8.js"),__vite__mapDeps([26,6,9,10,1]),import.meta.url)),Lce=V.lazy(async()=>await Pa(()=>import("./GroupPage-NDEFGCAo.js"),__vite__mapDeps([27,1]),import.meta.url)),Dce=V.lazy(async()=>await Pa(()=>import("./OtaPage-xoAmQlkN.js"),__vite__mapDeps([28,7,8,5,9,10,15,16,17,18,1]),import.meta.url)),Pce=V.lazy(async()=>await Pa(()=>import("./TouchlinkPage-Dkq8XRUw.js"),__vite__mapDeps([29,9,10,1]),import.meta.url)),jce=V.lazy(async()=>await Pa(()=>import("./LogsPage-Rn9K7jry.js"),__vite__mapDeps([30,5,10,25,1]),import.meta.url)),kce=V.lazy(async()=>await Pa(()=>import("./SettingsPage-JGHlT8fi.js"),__vite__mapDeps([31,1]),import.meta.url));function zce(){const{t:e}=qs("common");return se.jsx(Bt.StrictMode,{children:se.jsx(hX,{i18n:gt,children:se.jsxs(cl.Provider,{children:[se.jsx(oee,{id:"auth-form",onAuth:async()=>{}}),se.jsx(qX,{store:kB,children:se.jsx(gse,{children:se.jsxs(ZJ,{children:[se.jsx(Hne,{}),se.jsxs(wce,{children:[se.jsx(Bne,{}),se.jsx("main",{className:"pt-3 px-2",children:se.jsx(V.Suspense,{fallback:se.jsxs(se.Fragment,{children:[se.jsx("div",{className:"flex flex-row justify-center items-center gap-2",children:se.jsx("span",{className:"loading loading-infinity loading-xl"})}),se.jsx("div",{className:"flex flex-row justify-center items-center gap-2",children:e("loading")})]}),children:se.jsxs(xJ,{children:[se.jsx(Ma,{path:"/ota",element:se.jsx(Dce,{})}),se.jsx(Ma,{path:"/network",element:se.jsx(Mce,{})}),se.jsx(Ma,{path:"/device/:deviceId/:tab?",element:se.jsx(Ice,{})}),se.jsx(Ma,{path:"/settings/:tab?",element:se.jsx(kce,{})}),se.jsx(Ma,{path:"/groups",element:se.jsx(Nce,{})}),se.jsx(Ma,{path:"/group/:groupId/:tab?",element:se.jsx(Lce,{})}),se.jsx(Ma,{path:"/logs",element:se.jsx(jce,{})}),se.jsx(Ma,{path:"/touchlink",element:se.jsx(Pce,{})}),se.jsx(Ma,{path:"/dashboard",element:se.jsx(qce,{})}),se.jsx(Ma,{path:"/devices",element:se.jsx(Cce,{})}),se.jsx(Ma,{path:"/",element:se.jsx(xce,{})})]})})}),se.jsx(Kne,{})]})]})})})]})})})}const tz=document.getElementById("root");tz&&NZ.createRoot(tz).render(se.jsx(zce,{}));window.addEventListener("vite:preloadError",()=>{window.location.reload()});export{tse as $,ffe as A,ls as B,mfe as C,ave as D,yne as E,Ln as F,Zde as G,Kde as H,dse as I,kve as J,Vde as K,Ab as L,Hde as M,eF as N,nd as O,hd as P,tF as Q,pfe as R,_ne as S,Cee as T,gfe as U,Ade as V,vd as W,mde as X,Dde as Y,rse as Z,Pa as _,us as a,bde as a$,ase as a0,dfe as a1,Mee as a2,wfe as a3,$ne as a4,sve as a5,uve as a6,Pve as a7,Dve as a8,Qoe as a9,po as aA,Bt as aB,NZ as aC,Tfe as aD,Rde as aE,ude as aF,xve as aG,Sde as aH,vde as aI,cfe as aJ,xde as aK,Bce as aL,nfe as aM,$fe as aN,sfe as aO,afe as aP,jfe as aQ,Xde as aR,Jde as aS,eve as aT,rve as aU,Gce as aV,Gde as aW,Kfe as aX,Wde as aY,ofe as aZ,Qce as a_,Rfe as aa,Jce as ab,Yce as ac,Nfe as ad,Ffe as ae,rn as af,Hr as ag,Zoe as ah,Lve as ai,Cde as aj,qfe as ak,Mfe as al,Ive as am,jve as an,lve as ao,Sve as ap,Vne as aq,cde as ar,Qfe as as,Eve as at,Pde as au,mve as av,cve as aw,fk as ax,zde as ay,Ofe as az,qs as b,Ed as b$,Wce as b0,yee as b1,Zfe as b2,qee as b3,ode as b4,Nde as b5,sde as b6,Ufe as b7,Vce as b8,pde as b9,lde as bA,Ude as bB,Dfe as bC,Lfe as bD,Efe as bE,ide as bF,Xfe as bG,Tde as bH,Afe as bI,bfe as bJ,Ode as bK,Sfe as bL,Ide as bM,ife as bN,$ce as bO,mo as bP,Cve as bQ,dde as bR,kde as bS,fve as bT,Tve as bU,Ove as bV,Ave as bW,wve as bX,bve as bY,_ve as bZ,Rve as b_,vfe as ba,fde as bb,Pfe as bc,$de as bd,xfe as be,Ife as bf,Jfe as bg,tfe as bh,Xce as bi,_de as bj,jde as bk,_fe as bl,nde as bm,qde as bn,Yfe as bo,kfe as bp,hfe as bq,gde as br,Kce as bs,Vfe as bt,ade as bu,rde as bv,Yde as bw,Mde as bx,hde as by,yde as bz,qve as c,ml as c0,_B as c1,wB as c2,yve as c3,Fde as c4,nve as c5,ive as c6,Uve as c7,Hfe as c8,Gfe as c9,rfe as ca,Dne as cb,Pne as cc,dP as cd,tve as ce,dy as cf,fP as cg,dve as ch,wde as ci,Nve as cj,Xoe as ck,kB as cl,zve as cm,gve as cn,hve as co,pve as cp,vve as cq,yfe as cr,Fce as d,ede as e,efe as f,tde as g,zfe as h,Lde as i,se as j,Hce as k,Bfe as l,Zce as m,lfe as n,Bde as o,Cfe as p,Ede as q,V as r,qn as s,Mve as t,dJ as u,ove as v,Qde as w,cl as x,ufe as y,Wfe as z};
|
|
644
|
+
${a.stack}`})]}),se.jsx("button",{type:"button",className:"btn btn-secondary",onClick:()=>{this.resetErrorBoundary()},children:"Try again"})]})})})})}return this.props.children}}const sr=e=>typeof e=="string",Du=()=>{let e,r;const a=new Promise((i,o)=>{e=i,r=o});return a.resolve=e,a.reject=r,a},gk=e=>e==null?"":""+e,mse=(e,r,a)=>{e.forEach(i=>{r[i]&&(a[i]=r[i])})},yse=/###/g,mk=e=>e&&e.indexOf("###")>-1?e.replace(yse,"."):e,yk=e=>!e||sr(e),$u=(e,r,a)=>{const i=sr(r)?r.split("."):r;let o=0;for(;o<i.length-1;){if(yk(e))return{};const u=mk(i[o]);!e[u]&&a&&(e[u]=new a),Object.prototype.hasOwnProperty.call(e,u)?e=e[u]:e={},++o}return yk(e)?{}:{obj:e,k:mk(i[o])}},bk=(e,r,a)=>{const{obj:i,k:o}=$u(e,r,Object);if(i!==void 0||r.length===1){i[o]=a;return}let u=r[r.length-1],l=r.slice(0,r.length-1),f=$u(e,l,Object);for(;f.obj===void 0&&l.length;)u=`${l[l.length-1]}.${u}`,l=l.slice(0,l.length-1),f=$u(e,l,Object),f?.obj&&typeof f.obj[`${f.k}.${u}`]<"u"&&(f.obj=void 0);f.obj[`${f.k}.${u}`]=a},bse=(e,r,a,i)=>{const{obj:o,k:u}=$u(e,r,Object);o[u]=o[u]||[],o[u].push(a)},_f=(e,r)=>{const{obj:a,k:i}=$u(e,r);if(a&&Object.prototype.hasOwnProperty.call(a,i))return a[i]},_se=(e,r,a)=>{const i=_f(e,a);return i!==void 0?i:_f(r,a)},zB=(e,r,a)=>{for(const i in r)i!=="__proto__"&&i!=="constructor"&&(i in e?sr(e[i])||e[i]instanceof String||sr(r[i])||r[i]instanceof String?a&&(e[i]=r[i]):zB(e[i],r[i],a):e[i]=r[i]);return e},ts=e=>e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&");var Sse={"&":"&","<":"<",">":">",'"':""","'":"'","/":"/"};const Ese=e=>sr(e)?e.replace(/[&<>"'\/]/g,r=>Sse[r]):e;class Tse{constructor(r){this.capacity=r,this.regExpMap=new Map,this.regExpQueue=[]}getRegExp(r){const a=this.regExpMap.get(r);if(a!==void 0)return a;const i=new RegExp(r);return this.regExpQueue.length===this.capacity&&this.regExpMap.delete(this.regExpQueue.shift()),this.regExpMap.set(r,i),this.regExpQueue.push(r),i}}const Rse=[" ",",","?","!",";"],Ose=new Tse(20),Ase=(e,r,a)=>{r=r||"",a=a||"";const i=Rse.filter(l=>r.indexOf(l)<0&&a.indexOf(l)<0);if(i.length===0)return!0;const o=Ose.getRegExp(`(${i.map(l=>l==="?"?"\\?":l).join("|")})`);let u=!o.test(e);if(!u){const l=e.indexOf(a);l>0&&!o.test(e.substring(0,l))&&(u=!0)}return u},q4=(e,r,a=".")=>{if(!e)return;if(e[r])return Object.prototype.hasOwnProperty.call(e,r)?e[r]:void 0;const i=r.split(a);let o=e;for(let u=0;u<i.length;){if(!o||typeof o!="object")return;let l,f="";for(let d=u;d<i.length;++d)if(d!==u&&(f+=a),f+=i[d],l=o[f],l!==void 0){if(["string","number","boolean"].indexOf(typeof l)>-1&&d<i.length-1)continue;u+=d-u+1;break}o=l}return o},Qu=e=>e?.replace("_","-"),wse={type:"logger",log(e){this.output("log",e)},warn(e){this.output("warn",e)},error(e){this.output("error",e)},output(e,r){console?.[e]?.apply?.(console,r)}};class Sf{constructor(r,a={}){this.init(r,a)}init(r,a={}){this.prefix=a.prefix||"i18next:",this.logger=r||wse,this.options=a,this.debug=a.debug}log(...r){return this.forward(r,"log","",!0)}warn(...r){return this.forward(r,"warn","",!0)}error(...r){return this.forward(r,"error","")}deprecate(...r){return this.forward(r,"warn","WARNING DEPRECATED: ",!0)}forward(r,a,i,o){return o&&!this.debug?null:(sr(r[0])&&(r[0]=`${i}${this.prefix} ${r[0]}`),this.logger[a](r))}create(r){return new Sf(this.logger,{prefix:`${this.prefix}:${r}:`,...this.options})}clone(r){return r=r||this.options,r.prefix=r.prefix||this.prefix,new Sf(this.logger,r)}}var an=new Sf;class Od{constructor(){this.observers={}}on(r,a){return r.split(" ").forEach(i=>{this.observers[i]||(this.observers[i]=new Map);const o=this.observers[i].get(a)||0;this.observers[i].set(a,o+1)}),this}off(r,a){if(this.observers[r]){if(!a){delete this.observers[r];return}this.observers[r].delete(a)}}emit(r,...a){this.observers[r]&&Array.from(this.observers[r].entries()).forEach(([o,u])=>{for(let l=0;l<u;l++)o(...a)}),this.observers["*"]&&Array.from(this.observers["*"].entries()).forEach(([o,u])=>{for(let l=0;l<u;l++)o.apply(o,[r,...a])})}}class _k extends Od{constructor(r,a={ns:["translation"],defaultNS:"translation"}){super(),this.data=r||{},this.options=a,this.options.keySeparator===void 0&&(this.options.keySeparator="."),this.options.ignoreJSONStructure===void 0&&(this.options.ignoreJSONStructure=!0)}addNamespaces(r){this.options.ns.indexOf(r)<0&&this.options.ns.push(r)}removeNamespaces(r){const a=this.options.ns.indexOf(r);a>-1&&this.options.ns.splice(a,1)}getResource(r,a,i,o={}){const u=o.keySeparator!==void 0?o.keySeparator:this.options.keySeparator,l=o.ignoreJSONStructure!==void 0?o.ignoreJSONStructure:this.options.ignoreJSONStructure;let f;r.indexOf(".")>-1?f=r.split("."):(f=[r,a],i&&(Array.isArray(i)?f.push(...i):sr(i)&&u?f.push(...i.split(u)):f.push(i)));const d=_f(this.data,f);return!d&&!a&&!i&&r.indexOf(".")>-1&&(r=f[0],a=f[1],i=f.slice(2).join(".")),d||!l||!sr(i)?d:q4(this.data?.[r]?.[a],i,u)}addResource(r,a,i,o,u={silent:!1}){const l=u.keySeparator!==void 0?u.keySeparator:this.options.keySeparator;let f=[r,a];i&&(f=f.concat(l?i.split(l):i)),r.indexOf(".")>-1&&(f=r.split("."),o=a,a=f[1]),this.addNamespaces(a),bk(this.data,f,o),u.silent||this.emit("added",r,a,i,o)}addResources(r,a,i,o={silent:!1}){for(const u in i)(sr(i[u])||Array.isArray(i[u]))&&this.addResource(r,a,u,i[u],{silent:!0});o.silent||this.emit("added",r,a,i)}addResourceBundle(r,a,i,o,u,l={silent:!1,skipCopy:!1}){let f=[r,a];r.indexOf(".")>-1&&(f=r.split("."),o=i,i=a,a=f[1]),this.addNamespaces(a);let d=_f(this.data,f)||{};l.skipCopy||(i=JSON.parse(JSON.stringify(i))),o?zB(d,i,u):d={...d,...i},bk(this.data,f,d),l.silent||this.emit("added",r,a,i)}removeResourceBundle(r,a){this.hasResourceBundle(r,a)&&delete this.data[r][a],this.removeNamespaces(a),this.emit("removed",r,a)}hasResourceBundle(r,a){return this.getResource(r,a)!==void 0}getResourceBundle(r,a){return a||(a=this.options.defaultNS),this.getResource(r,a)}getDataByLanguage(r){return this.data[r]}hasLanguageSomeTranslations(r){const a=this.getDataByLanguage(r);return!!(a&&Object.keys(a)||[]).find(o=>a[o]&&Object.keys(a[o]).length>0)}toJSON(){return this.data}}var UB={processors:{},addPostProcessor(e){this.processors[e.name]=e},handle(e,r,a,i,o){return e.forEach(u=>{r=this.processors[u]?.process(r,a,i,o)??r}),r}};const Sk={},Ek=e=>!sr(e)&&typeof e!="boolean"&&typeof e!="number";class Ef extends Od{constructor(r,a={}){super(),mse(["resourceStore","languageUtils","pluralResolver","interpolator","backendConnector","i18nFormat","utils"],r,this),this.options=a,this.options.keySeparator===void 0&&(this.options.keySeparator="."),this.logger=an.create("translator")}changeLanguage(r){r&&(this.language=r)}exists(r,a={interpolation:{}}){const i={...a};return r==null?!1:this.resolve(r,i)?.res!==void 0}extractFromKey(r,a){let i=a.nsSeparator!==void 0?a.nsSeparator:this.options.nsSeparator;i===void 0&&(i=":");const o=a.keySeparator!==void 0?a.keySeparator:this.options.keySeparator;let u=a.ns||this.options.defaultNS||[];const l=i&&r.indexOf(i)>-1,f=!this.options.userDefinedKeySeparator&&!a.keySeparator&&!this.options.userDefinedNsSeparator&&!a.nsSeparator&&!Ase(r,i,o);if(l&&!f){const d=r.match(this.interpolator.nestingRegexp);if(d&&d.length>0)return{key:r,namespaces:sr(u)?[u]:u};const v=r.split(i);(i!==o||i===o&&this.options.ns.indexOf(v[0])>-1)&&(u=v.shift()),r=v.join(o)}return{key:r,namespaces:sr(u)?[u]:u}}translate(r,a,i){let o=typeof a=="object"?{...a}:a;if(typeof o!="object"&&this.options.overloadTranslationOptionHandler&&(o=this.options.overloadTranslationOptionHandler(arguments)),typeof options=="object"&&(o={...o}),o||(o={}),r==null)return"";Array.isArray(r)||(r=[String(r)]);const u=o.returnDetails!==void 0?o.returnDetails:this.options.returnDetails,l=o.keySeparator!==void 0?o.keySeparator:this.options.keySeparator,{key:f,namespaces:d}=this.extractFromKey(r[r.length-1],o),v=d[d.length-1];let h=o.nsSeparator!==void 0?o.nsSeparator:this.options.nsSeparator;h===void 0&&(h=":");const p=o.lng||this.language,m=o.appendNamespaceToCIMode||this.options.appendNamespaceToCIMode;if(p?.toLowerCase()==="cimode")return m?u?{res:`${v}${h}${f}`,usedKey:f,exactUsedKey:f,usedLng:p,usedNS:v,usedParams:this.getUsedParamsDetails(o)}:`${v}${h}${f}`:u?{res:f,usedKey:f,exactUsedKey:f,usedLng:p,usedNS:v,usedParams:this.getUsedParamsDetails(o)}:f;const y=this.resolve(r,o);let b=y?.res;const E=y?.usedKey||f,T=y?.exactUsedKey||f,S=["[object Number]","[object Function]","[object RegExp]"],R=o.joinArrays!==void 0?o.joinArrays:this.options.joinArrays,O=!this.i18nFormat||this.i18nFormat.handleAsObject,w=o.count!==void 0&&!sr(o.count),A=Ef.hasDefaultValue(o),I=w?this.pluralResolver.getSuffix(p,o.count,o):"",q=o.ordinal&&w?this.pluralResolver.getSuffix(p,o.count,{ordinal:!1}):"",M=w&&!o.ordinal&&o.count===0,L=M&&o[`defaultValue${this.options.pluralSeparator}zero`]||o[`defaultValue${I}`]||o[`defaultValue${q}`]||o.defaultValue;let z=b;O&&!b&&A&&(z=L);const j=Ek(z),U=Object.prototype.toString.apply(z);if(O&&z&&j&&S.indexOf(U)<0&&!(sr(R)&&Array.isArray(z))){if(!o.returnObjects&&!this.options.returnObjects){this.options.returnedObjectHandler||this.logger.warn("accessing an object - but returnObjects options is not enabled!");const F=this.options.returnedObjectHandler?this.options.returnedObjectHandler(E,z,{...o,ns:d}):`key '${f} (${this.language})' returned an object instead of string.`;return u?(y.res=F,y.usedParams=this.getUsedParamsDetails(o),y):F}if(l){const F=Array.isArray(z),H=F?[]:{},Q=F?T:E;for(const P in z)if(Object.prototype.hasOwnProperty.call(z,P)){const G=`${Q}${l}${P}`;A&&!b?H[P]=this.translate(G,{...o,defaultValue:Ek(L)?L[P]:void 0,joinArrays:!1,ns:d}):H[P]=this.translate(G,{...o,joinArrays:!1,ns:d}),H[P]===G&&(H[P]=z[P])}b=H}}else if(O&&sr(R)&&Array.isArray(b))b=b.join(R),b&&(b=this.extendTranslation(b,r,o,i));else{let F=!1,H=!1;!this.isValidLookup(b)&&A&&(F=!0,b=L),this.isValidLookup(b)||(H=!0,b=f);const P=(o.missingKeyNoValueFallbackToKey||this.options.missingKeyNoValueFallbackToKey)&&H?void 0:b,G=A&&L!==b&&this.options.updateMissing;if(H||F||G){if(this.logger.log(G?"updateKey":"missingKey",p,v,f,G?L:b),l){const D=this.resolve(f,{...o,keySeparator:!1});D&&D.res&&this.logger.warn("Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.")}let Z=[];const k=this.languageUtils.getFallbackCodes(this.options.fallbackLng,o.lng||this.language);if(this.options.saveMissingTo==="fallback"&&k&&k[0])for(let D=0;D<k.length;D++)Z.push(k[D]);else this.options.saveMissingTo==="all"?Z=this.languageUtils.toResolveHierarchy(o.lng||this.language):Z.push(o.lng||this.language);const C=(D,Y,W)=>{const te=A&&W!==b?W:P;this.options.missingKeyHandler?this.options.missingKeyHandler(D,v,Y,te,G,o):this.backendConnector?.saveMissing&&this.backendConnector.saveMissing(D,v,Y,te,G,o),this.emit("missingKey",D,v,Y,b)};this.options.saveMissing&&(this.options.saveMissingPlurals&&w?Z.forEach(D=>{const Y=this.pluralResolver.getSuffixes(D,o);M&&o[`defaultValue${this.options.pluralSeparator}zero`]&&Y.indexOf(`${this.options.pluralSeparator}zero`)<0&&Y.push(`${this.options.pluralSeparator}zero`),Y.forEach(W=>{C([D],f+W,o[`defaultValue${W}`]||L)})}):C(Z,f,L))}b=this.extendTranslation(b,r,o,y,i),H&&b===f&&this.options.appendNamespaceToMissingKey&&(b=`${v}${h}${f}`),(H||F)&&this.options.parseMissingKeyHandler&&(b=this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey?`${v}${h}${f}`:f,F?b:void 0,o))}return u?(y.res=b,y.usedParams=this.getUsedParamsDetails(o),y):b}extendTranslation(r,a,i,o,u){if(this.i18nFormat?.parse)r=this.i18nFormat.parse(r,{...this.options.interpolation.defaultVariables,...i},i.lng||this.language||o.usedLng,o.usedNS,o.usedKey,{resolved:o});else if(!i.skipInterpolation){i.interpolation&&this.interpolator.init({...i,interpolation:{...this.options.interpolation,...i.interpolation}});const d=sr(r)&&(i?.interpolation?.skipOnVariables!==void 0?i.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables);let v;if(d){const p=r.match(this.interpolator.nestingRegexp);v=p&&p.length}let h=i.replace&&!sr(i.replace)?i.replace:i;if(this.options.interpolation.defaultVariables&&(h={...this.options.interpolation.defaultVariables,...h}),r=this.interpolator.interpolate(r,h,i.lng||this.language||o.usedLng,i),d){const p=r.match(this.interpolator.nestingRegexp),m=p&&p.length;v<m&&(i.nest=!1)}!i.lng&&o&&o.res&&(i.lng=this.language||o.usedLng),i.nest!==!1&&(r=this.interpolator.nest(r,(...p)=>u?.[0]===p[0]&&!i.context?(this.logger.warn(`It seems you are nesting recursively key: ${p[0]} in key: ${a[0]}`),null):this.translate(...p,a),i)),i.interpolation&&this.interpolator.reset()}const l=i.postProcess||this.options.postProcess,f=sr(l)?[l]:l;return r!=null&&f?.length&&i.applyPostProcessor!==!1&&(r=UB.handle(f,r,a,this.options&&this.options.postProcessPassResolved?{i18nResolved:{...o,usedParams:this.getUsedParamsDetails(i)},...i}:i,this)),r}resolve(r,a={}){let i,o,u,l,f;return sr(r)&&(r=[r]),r.forEach(d=>{if(this.isValidLookup(i))return;const v=this.extractFromKey(d,a),h=v.key;o=h;let p=v.namespaces;this.options.fallbackNS&&(p=p.concat(this.options.fallbackNS));const m=a.count!==void 0&&!sr(a.count),y=m&&!a.ordinal&&a.count===0,b=a.context!==void 0&&(sr(a.context)||typeof a.context=="number")&&a.context!=="",E=a.lngs?a.lngs:this.languageUtils.toResolveHierarchy(a.lng||this.language,a.fallbackLng);p.forEach(T=>{this.isValidLookup(i)||(f=T,!Sk[`${E[0]}-${T}`]&&this.utils?.hasLoadedNamespace&&!this.utils?.hasLoadedNamespace(f)&&(Sk[`${E[0]}-${T}`]=!0,this.logger.warn(`key "${o}" for languages "${E.join(", ")}" won't get resolved as namespace "${f}" was not yet loaded`,"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!")),E.forEach(S=>{if(this.isValidLookup(i))return;l=S;const R=[h];if(this.i18nFormat?.addLookupKeys)this.i18nFormat.addLookupKeys(R,h,S,T,a);else{let w;m&&(w=this.pluralResolver.getSuffix(S,a.count,a));const A=`${this.options.pluralSeparator}zero`,I=`${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`;if(m&&(R.push(h+w),a.ordinal&&w.indexOf(I)===0&&R.push(h+w.replace(I,this.options.pluralSeparator)),y&&R.push(h+A)),b){const q=`${h}${this.options.contextSeparator}${a.context}`;R.push(q),m&&(R.push(q+w),a.ordinal&&w.indexOf(I)===0&&R.push(q+w.replace(I,this.options.pluralSeparator)),y&&R.push(q+A))}}let O;for(;O=R.pop();)this.isValidLookup(i)||(u=O,i=this.getResource(S,T,O,a))}))})}),{res:i,usedKey:o,exactUsedKey:u,usedLng:l,usedNS:f}}isValidLookup(r){return r!==void 0&&!(!this.options.returnNull&&r===null)&&!(!this.options.returnEmptyString&&r==="")}getResource(r,a,i,o={}){return this.i18nFormat?.getResource?this.i18nFormat.getResource(r,a,i,o):this.resourceStore.getResource(r,a,i,o)}getUsedParamsDetails(r={}){const a=["defaultValue","ordinal","context","replace","lng","lngs","fallbackLng","ns","keySeparator","nsSeparator","returnObjects","returnDetails","joinArrays","postProcess","interpolation"],i=r.replace&&!sr(r.replace);let o=i?r.replace:r;if(i&&typeof r.count<"u"&&(o.count=r.count),this.options.interpolation.defaultVariables&&(o={...this.options.interpolation.defaultVariables,...o}),!i){o={...o};for(const u of a)delete o[u]}return o}static hasDefaultValue(r){const a="defaultValue";for(const i in r)if(Object.prototype.hasOwnProperty.call(r,i)&&a===i.substring(0,a.length)&&r[i]!==void 0)return!0;return!1}}class Tk{constructor(r){this.options=r,this.supportedLngs=this.options.supportedLngs||!1,this.logger=an.create("languageUtils")}getScriptPartFromCode(r){if(r=Qu(r),!r||r.indexOf("-")<0)return null;const a=r.split("-");return a.length===2||(a.pop(),a[a.length-1].toLowerCase()==="x")?null:this.formatLanguageCode(a.join("-"))}getLanguagePartFromCode(r){if(r=Qu(r),!r||r.indexOf("-")<0)return r;const a=r.split("-");return this.formatLanguageCode(a[0])}formatLanguageCode(r){if(sr(r)&&r.indexOf("-")>-1){let a;try{a=Intl.getCanonicalLocales(r)[0]}catch{}return a&&this.options.lowerCaseLng&&(a=a.toLowerCase()),a||(this.options.lowerCaseLng?r.toLowerCase():r)}return this.options.cleanCode||this.options.lowerCaseLng?r.toLowerCase():r}isSupportedCode(r){return(this.options.load==="languageOnly"||this.options.nonExplicitSupportedLngs)&&(r=this.getLanguagePartFromCode(r)),!this.supportedLngs||!this.supportedLngs.length||this.supportedLngs.indexOf(r)>-1}getBestMatchFromCodes(r){if(!r)return null;let a;return r.forEach(i=>{if(a)return;const o=this.formatLanguageCode(i);(!this.options.supportedLngs||this.isSupportedCode(o))&&(a=o)}),!a&&this.options.supportedLngs&&r.forEach(i=>{if(a)return;const o=this.getScriptPartFromCode(i);if(this.isSupportedCode(o))return a=o;const u=this.getLanguagePartFromCode(i);if(this.isSupportedCode(u))return a=u;a=this.options.supportedLngs.find(l=>{if(l===u)return l;if(!(l.indexOf("-")<0&&u.indexOf("-")<0)&&(l.indexOf("-")>0&&u.indexOf("-")<0&&l.substring(0,l.indexOf("-"))===u||l.indexOf(u)===0&&u.length>1))return l})}),a||(a=this.getFallbackCodes(this.options.fallbackLng)[0]),a}getFallbackCodes(r,a){if(!r)return[];if(typeof r=="function"&&(r=r(a)),sr(r)&&(r=[r]),Array.isArray(r))return r;if(!a)return r.default||[];let i=r[a];return i||(i=r[this.getScriptPartFromCode(a)]),i||(i=r[this.formatLanguageCode(a)]),i||(i=r[this.getLanguagePartFromCode(a)]),i||(i=r.default),i||[]}toResolveHierarchy(r,a){const i=this.getFallbackCodes((a===!1?[]:a)||this.options.fallbackLng||[],r),o=[],u=l=>{l&&(this.isSupportedCode(l)?o.push(l):this.logger.warn(`rejecting language code not found in supportedLngs: ${l}`))};return sr(r)&&(r.indexOf("-")>-1||r.indexOf("_")>-1)?(this.options.load!=="languageOnly"&&u(this.formatLanguageCode(r)),this.options.load!=="languageOnly"&&this.options.load!=="currentOnly"&&u(this.getScriptPartFromCode(r)),this.options.load!=="currentOnly"&&u(this.getLanguagePartFromCode(r))):sr(r)&&u(this.formatLanguageCode(r)),i.forEach(l=>{o.indexOf(l)<0&&u(this.formatLanguageCode(l))}),o}}const Rk={zero:0,one:1,two:2,few:3,many:4,other:5},Ok={select:e=>e===1?"one":"other",resolvedOptions:()=>({pluralCategories:["one","other"]})};class xse{constructor(r,a={}){this.languageUtils=r,this.options=a,this.logger=an.create("pluralResolver"),this.pluralRulesCache={}}addRule(r,a){this.rules[r]=a}clearCache(){this.pluralRulesCache={}}getRule(r,a={}){const i=Qu(r==="dev"?"en":r),o=a.ordinal?"ordinal":"cardinal",u=JSON.stringify({cleanedCode:i,type:o});if(u in this.pluralRulesCache)return this.pluralRulesCache[u];let l;try{l=new Intl.PluralRules(i,{type:o})}catch{if(!Intl)return this.logger.error("No Intl support, please use an Intl polyfill!"),Ok;if(!r.match(/-|_/))return Ok;const d=this.languageUtils.getLanguagePartFromCode(r);l=this.getRule(d,a)}return this.pluralRulesCache[u]=l,l}needsPlural(r,a={}){let i=this.getRule(r,a);return i||(i=this.getRule("dev",a)),i?.resolvedOptions().pluralCategories.length>1}getPluralFormsOfKey(r,a,i={}){return this.getSuffixes(r,i).map(o=>`${a}${o}`)}getSuffixes(r,a={}){let i=this.getRule(r,a);return i||(i=this.getRule("dev",a)),i?i.resolvedOptions().pluralCategories.sort((o,u)=>Rk[o]-Rk[u]).map(o=>`${this.options.prepend}${a.ordinal?`ordinal${this.options.prepend}`:""}${o}`):[]}getSuffix(r,a,i={}){const o=this.getRule(r,i);return o?`${this.options.prepend}${i.ordinal?`ordinal${this.options.prepend}`:""}${o.select(a)}`:(this.logger.warn(`no plural rule found for: ${r}`),this.getSuffix("dev",a,i))}}const Ak=(e,r,a,i=".",o=!0)=>{let u=_se(e,r,a);return!u&&o&&sr(a)&&(u=q4(e,a,i),u===void 0&&(u=q4(r,a,i))),u},r4=e=>e.replace(/\$/g,"$$$$");class Cse{constructor(r={}){this.logger=an.create("interpolator"),this.options=r,this.format=r?.interpolation?.format||(a=>a),this.init(r)}init(r={}){r.interpolation||(r.interpolation={escapeValue:!0});const{escape:a,escapeValue:i,useRawValueToEscape:o,prefix:u,prefixEscaped:l,suffix:f,suffixEscaped:d,formatSeparator:v,unescapeSuffix:h,unescapePrefix:p,nestingPrefix:m,nestingPrefixEscaped:y,nestingSuffix:b,nestingSuffixEscaped:E,nestingOptionsSeparator:T,maxReplaces:S,alwaysFormat:R}=r.interpolation;this.escape=a!==void 0?a:Ese,this.escapeValue=i!==void 0?i:!0,this.useRawValueToEscape=o!==void 0?o:!1,this.prefix=u?ts(u):l||"{{",this.suffix=f?ts(f):d||"}}",this.formatSeparator=v||",",this.unescapePrefix=h?"":p||"-",this.unescapeSuffix=this.unescapePrefix?"":h||"",this.nestingPrefix=m?ts(m):y||ts("$t("),this.nestingSuffix=b?ts(b):E||ts(")"),this.nestingOptionsSeparator=T||",",this.maxReplaces=S||1e3,this.alwaysFormat=R!==void 0?R:!1,this.resetRegExp()}reset(){this.options&&this.init(this.options)}resetRegExp(){const r=(a,i)=>a?.source===i?(a.lastIndex=0,a):new RegExp(i,"g");this.regexp=r(this.regexp,`${this.prefix}(.+?)${this.suffix}`),this.regexpUnescape=r(this.regexpUnescape,`${this.prefix}${this.unescapePrefix}(.+?)${this.unescapeSuffix}${this.suffix}`),this.nestingRegexp=r(this.nestingRegexp,`${this.nestingPrefix}(.+?)${this.nestingSuffix}`)}interpolate(r,a,i,o){let u,l,f;const d=this.options&&this.options.interpolation&&this.options.interpolation.defaultVariables||{},v=y=>{if(y.indexOf(this.formatSeparator)<0){const S=Ak(a,d,y,this.options.keySeparator,this.options.ignoreJSONStructure);return this.alwaysFormat?this.format(S,void 0,i,{...o,...a,interpolationkey:y}):S}const b=y.split(this.formatSeparator),E=b.shift().trim(),T=b.join(this.formatSeparator).trim();return this.format(Ak(a,d,E,this.options.keySeparator,this.options.ignoreJSONStructure),T,i,{...o,...a,interpolationkey:E})};this.resetRegExp();const h=o?.missingInterpolationHandler||this.options.missingInterpolationHandler,p=o?.interpolation?.skipOnVariables!==void 0?o.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables;return[{regex:this.regexpUnescape,safeValue:y=>r4(y)},{regex:this.regexp,safeValue:y=>this.escapeValue?r4(this.escape(y)):r4(y)}].forEach(y=>{for(f=0;u=y.regex.exec(r);){const b=u[1].trim();if(l=v(b),l===void 0)if(typeof h=="function"){const T=h(r,u,o);l=sr(T)?T:""}else if(o&&Object.prototype.hasOwnProperty.call(o,b))l="";else if(p){l=u[0];continue}else this.logger.warn(`missed to pass in variable ${b} for interpolating ${r}`),l="";else!sr(l)&&!this.useRawValueToEscape&&(l=gk(l));const E=y.safeValue(l);if(r=r.replace(u[0],E),p?(y.regex.lastIndex+=l.length,y.regex.lastIndex-=u[0].length):y.regex.lastIndex=0,f++,f>=this.maxReplaces)break}}),r}nest(r,a,i={}){let o,u,l;const f=(d,v)=>{const h=this.nestingOptionsSeparator;if(d.indexOf(h)<0)return d;const p=d.split(new RegExp(`${h}[ ]*{`));let m=`{${p[1]}`;d=p[0],m=this.interpolate(m,l);const y=m.match(/'/g),b=m.match(/"/g);((y?.length??0)%2===0&&!b||b.length%2!==0)&&(m=m.replace(/'/g,'"'));try{l=JSON.parse(m),v&&(l={...v,...l})}catch(E){return this.logger.warn(`failed parsing options string in nesting for key ${d}`,E),`${d}${h}${m}`}return l.defaultValue&&l.defaultValue.indexOf(this.prefix)>-1&&delete l.defaultValue,d};for(;o=this.nestingRegexp.exec(r);){let d=[];l={...i},l=l.replace&&!sr(l.replace)?l.replace:l,l.applyPostProcessor=!1,delete l.defaultValue;const v=/{.*}/.test(o[1])?o[1].lastIndexOf("}")+1:o[1].indexOf(this.formatSeparator);if(v!==-1&&(d=o[1].slice(v).split(this.formatSeparator).map(h=>h.trim()).filter(Boolean),o[1]=o[1].slice(0,v)),u=a(f.call(this,o[1].trim(),l),l),u&&o[0]===r&&!sr(u))return u;sr(u)||(u=gk(u)),u||(this.logger.warn(`missed to resolve ${o[1]} for nesting ${r}`),u=""),d.length&&(u=d.reduce((h,p)=>this.format(h,p,i.lng,{...i,interpolationkey:o[1].trim()}),u.trim())),r=r.replace(o[0],u),this.regexp.lastIndex=0}return r}}const Ise=e=>{let r=e.toLowerCase().trim();const a={};if(e.indexOf("(")>-1){const i=e.split("(");r=i[0].toLowerCase().trim();const o=i[1].substring(0,i[1].length-1);r==="currency"&&o.indexOf(":")<0?a.currency||(a.currency=o.trim()):r==="relativetime"&&o.indexOf(":")<0?a.range||(a.range=o.trim()):o.split(";").forEach(l=>{if(l){const[f,...d]=l.split(":"),v=d.join(":").trim().replace(/^'+|'+$/g,""),h=f.trim();a[h]||(a[h]=v),v==="false"&&(a[h]=!1),v==="true"&&(a[h]=!0),isNaN(v)||(a[h]=parseInt(v,10))}})}return{formatName:r,formatOptions:a}},wk=e=>{const r={};return(a,i,o)=>{let u=o;o&&o.interpolationkey&&o.formatParams&&o.formatParams[o.interpolationkey]&&o[o.interpolationkey]&&(u={...u,[o.interpolationkey]:void 0});const l=i+JSON.stringify(u);let f=r[l];return f||(f=e(Qu(i),o),r[l]=f),f(a)}},qse=e=>(r,a,i)=>e(Qu(a),i)(r);class Mse{constructor(r={}){this.logger=an.create("formatter"),this.options=r,this.init(r)}init(r,a={interpolation:{}}){this.formatSeparator=a.interpolation.formatSeparator||",";const i=a.cacheInBuiltFormats?wk:qse;this.formats={number:i((o,u)=>{const l=new Intl.NumberFormat(o,{...u});return f=>l.format(f)}),currency:i((o,u)=>{const l=new Intl.NumberFormat(o,{...u,style:"currency"});return f=>l.format(f)}),datetime:i((o,u)=>{const l=new Intl.DateTimeFormat(o,{...u});return f=>l.format(f)}),relativetime:i((o,u)=>{const l=new Intl.RelativeTimeFormat(o,{...u});return f=>l.format(f,u.range||"day")}),list:i((o,u)=>{const l=new Intl.ListFormat(o,{...u});return f=>l.format(f)})}}add(r,a){this.formats[r.toLowerCase().trim()]=a}addCached(r,a){this.formats[r.toLowerCase().trim()]=wk(a)}format(r,a,i,o={}){const u=a.split(this.formatSeparator);if(u.length>1&&u[0].indexOf("(")>1&&u[0].indexOf(")")<0&&u.find(f=>f.indexOf(")")>-1)){const f=u.findIndex(d=>d.indexOf(")")>-1);u[0]=[u[0],...u.splice(1,f)].join(this.formatSeparator)}return u.reduce((f,d)=>{const{formatName:v,formatOptions:h}=Ise(d);if(this.formats[v]){let p=f;try{const m=o?.formatParams?.[o.interpolationkey]||{},y=m.locale||m.lng||o.locale||o.lng||i;p=this.formats[v](f,y,{...h,...o,...m})}catch(m){this.logger.warn(m)}return p}else this.logger.warn(`there was no format function for ${v}`);return f},r)}}const Nse=(e,r)=>{e.pending[r]!==void 0&&(delete e.pending[r],e.pendingCount--)};class Lse extends Od{constructor(r,a,i,o={}){super(),this.backend=r,this.store=a,this.services=i,this.languageUtils=i.languageUtils,this.options=o,this.logger=an.create("backendConnector"),this.waitingReads=[],this.maxParallelReads=o.maxParallelReads||10,this.readingCalls=0,this.maxRetries=o.maxRetries>=0?o.maxRetries:5,this.retryTimeout=o.retryTimeout>=1?o.retryTimeout:350,this.state={},this.queue=[],this.backend?.init?.(i,o.backend,o)}queueLoad(r,a,i,o){const u={},l={},f={},d={};return r.forEach(v=>{let h=!0;a.forEach(p=>{const m=`${v}|${p}`;!i.reload&&this.store.hasResourceBundle(v,p)?this.state[m]=2:this.state[m]<0||(this.state[m]===1?l[m]===void 0&&(l[m]=!0):(this.state[m]=1,h=!1,l[m]===void 0&&(l[m]=!0),u[m]===void 0&&(u[m]=!0),d[p]===void 0&&(d[p]=!0)))}),h||(f[v]=!0)}),(Object.keys(u).length||Object.keys(l).length)&&this.queue.push({pending:l,pendingCount:Object.keys(l).length,loaded:{},errors:[],callback:o}),{toLoad:Object.keys(u),pending:Object.keys(l),toLoadLanguages:Object.keys(f),toLoadNamespaces:Object.keys(d)}}loaded(r,a,i){const o=r.split("|"),u=o[0],l=o[1];a&&this.emit("failedLoading",u,l,a),!a&&i&&this.store.addResourceBundle(u,l,i,void 0,void 0,{skipCopy:!0}),this.state[r]=a?-1:2,a&&i&&(this.state[r]=0);const f={};this.queue.forEach(d=>{bse(d.loaded,[u],l),Nse(d,r),a&&d.errors.push(a),d.pendingCount===0&&!d.done&&(Object.keys(d.loaded).forEach(v=>{f[v]||(f[v]={});const h=d.loaded[v];h.length&&h.forEach(p=>{f[v][p]===void 0&&(f[v][p]=!0)})}),d.done=!0,d.errors.length?d.callback(d.errors):d.callback())}),this.emit("loaded",f),this.queue=this.queue.filter(d=>!d.done)}read(r,a,i,o=0,u=this.retryTimeout,l){if(!r.length)return l(null,{});if(this.readingCalls>=this.maxParallelReads){this.waitingReads.push({lng:r,ns:a,fcName:i,tried:o,wait:u,callback:l});return}this.readingCalls++;const f=(v,h)=>{if(this.readingCalls--,this.waitingReads.length>0){const p=this.waitingReads.shift();this.read(p.lng,p.ns,p.fcName,p.tried,p.wait,p.callback)}if(v&&h&&o<this.maxRetries){setTimeout(()=>{this.read.call(this,r,a,i,o+1,u*2,l)},u);return}l(v,h)},d=this.backend[i].bind(this.backend);if(d.length===2){try{const v=d(r,a);v&&typeof v.then=="function"?v.then(h=>f(null,h)).catch(f):f(null,v)}catch(v){f(v)}return}return d(r,a,f)}prepareLoading(r,a,i={},o){if(!this.backend)return this.logger.warn("No backend was added via i18next.use. Will not load resources."),o&&o();sr(r)&&(r=this.languageUtils.toResolveHierarchy(r)),sr(a)&&(a=[a]);const u=this.queueLoad(r,a,i,o);if(!u.toLoad.length)return u.pending.length||o(),null;u.toLoad.forEach(l=>{this.loadOne(l)})}load(r,a,i){this.prepareLoading(r,a,{},i)}reload(r,a,i){this.prepareLoading(r,a,{reload:!0},i)}loadOne(r,a=""){const i=r.split("|"),o=i[0],u=i[1];this.read(o,u,"read",void 0,void 0,(l,f)=>{l&&this.logger.warn(`${a}loading namespace ${u} for language ${o} failed`,l),!l&&f&&this.logger.log(`${a}loaded namespace ${u} for language ${o}`,f),this.loaded(r,l,f)})}saveMissing(r,a,i,o,u,l={},f=()=>{}){if(this.services?.utils?.hasLoadedNamespace&&!this.services?.utils?.hasLoadedNamespace(a)){this.logger.warn(`did not save key "${i}" as the namespace "${a}" was not yet loaded`,"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!");return}if(!(i==null||i==="")){if(this.backend?.create){const d={...l,isUpdate:u},v=this.backend.create.bind(this.backend);if(v.length<6)try{let h;v.length===5?h=v(r,a,i,o,d):h=v(r,a,i,o),h&&typeof h.then=="function"?h.then(p=>f(null,p)).catch(f):f(null,h)}catch(h){f(h)}else v(r,a,i,o,f,d)}!r||!r[0]||this.store.addResource(r[0],a,i,o)}}}const xk=()=>({debug:!1,initAsync:!0,ns:["translation"],defaultNS:["translation"],fallbackLng:["dev"],fallbackNS:!1,supportedLngs:!1,nonExplicitSupportedLngs:!1,load:"all",preload:!1,simplifyPluralSuffix:!0,keySeparator:".",nsSeparator:":",pluralSeparator:"_",contextSeparator:"_",partialBundledLanguages:!1,saveMissing:!1,updateMissing:!1,saveMissingTo:"fallback",saveMissingPlurals:!0,missingKeyHandler:!1,missingInterpolationHandler:!1,postProcess:!1,postProcessPassResolved:!1,returnNull:!1,returnEmptyString:!0,returnObjects:!1,joinArrays:!1,returnedObjectHandler:!1,parseMissingKeyHandler:!1,appendNamespaceToMissingKey:!1,appendNamespaceToCIMode:!1,overloadTranslationOptionHandler:e=>{let r={};if(typeof e[1]=="object"&&(r=e[1]),sr(e[1])&&(r.defaultValue=e[1]),sr(e[2])&&(r.tDescription=e[2]),typeof e[2]=="object"||typeof e[3]=="object"){const a=e[3]||e[2];Object.keys(a).forEach(i=>{r[i]=a[i]})}return r},interpolation:{escapeValue:!0,format:e=>e,prefix:"{{",suffix:"}}",formatSeparator:",",unescapePrefix:"-",nestingPrefix:"$t(",nestingSuffix:")",nestingOptionsSeparator:",",maxReplaces:1e3,skipOnVariables:!0},cacheInBuiltFormats:!0}),Ck=e=>(sr(e.ns)&&(e.ns=[e.ns]),sr(e.fallbackLng)&&(e.fallbackLng=[e.fallbackLng]),sr(e.fallbackNS)&&(e.fallbackNS=[e.fallbackNS]),e.supportedLngs?.indexOf?.("cimode")<0&&(e.supportedLngs=e.supportedLngs.concat(["cimode"])),typeof e.initImmediate=="boolean"&&(e.initAsync=e.initImmediate),e),Nc=()=>{},Dse=e=>{Object.getOwnPropertyNames(Object.getPrototypeOf(e)).forEach(a=>{typeof e[a]=="function"&&(e[a]=e[a].bind(e))})};class Zu extends Od{constructor(r={},a){if(super(),this.options=Ck(r),this.services={},this.logger=an,this.modules={external:[]},Dse(this),a&&!this.isInitialized&&!r.isClone){if(!this.options.initAsync)return this.init(r,a),this;setTimeout(()=>{this.init(r,a)},0)}}init(r={},a){this.isInitializing=!0,typeof r=="function"&&(a=r,r={}),r.defaultNS==null&&r.ns&&(sr(r.ns)?r.defaultNS=r.ns:r.ns.indexOf("translation")<0&&(r.defaultNS=r.ns[0]));const i=xk();this.options={...i,...this.options,...Ck(r)},this.options.interpolation={...i.interpolation,...this.options.interpolation},r.keySeparator!==void 0&&(this.options.userDefinedKeySeparator=r.keySeparator),r.nsSeparator!==void 0&&(this.options.userDefinedNsSeparator=r.nsSeparator);const o=v=>v?typeof v=="function"?new v:v:null;if(!this.options.isClone){this.modules.logger?an.init(o(this.modules.logger),this.options):an.init(null,this.options);let v;this.modules.formatter?v=this.modules.formatter:v=Mse;const h=new Tk(this.options);this.store=new _k(this.options.resources,this.options);const p=this.services;p.logger=an,p.resourceStore=this.store,p.languageUtils=h,p.pluralResolver=new xse(h,{prepend:this.options.pluralSeparator,simplifyPluralSuffix:this.options.simplifyPluralSuffix}),this.options.interpolation.format&&this.options.interpolation.format!==i.interpolation.format&&this.logger.warn("init: you are still using the legacy format function, please use the new approach: https://www.i18next.com/translation-function/formatting"),v&&(!this.options.interpolation.format||this.options.interpolation.format===i.interpolation.format)&&(p.formatter=o(v),p.formatter.init&&p.formatter.init(p,this.options),this.options.interpolation.format=p.formatter.format.bind(p.formatter)),p.interpolator=new Cse(this.options),p.utils={hasLoadedNamespace:this.hasLoadedNamespace.bind(this)},p.backendConnector=new Lse(o(this.modules.backend),p.resourceStore,p,this.options),p.backendConnector.on("*",(y,...b)=>{this.emit(y,...b)}),this.modules.languageDetector&&(p.languageDetector=o(this.modules.languageDetector),p.languageDetector.init&&p.languageDetector.init(p,this.options.detection,this.options)),this.modules.i18nFormat&&(p.i18nFormat=o(this.modules.i18nFormat),p.i18nFormat.init&&p.i18nFormat.init(this)),this.translator=new Ef(this.services,this.options),this.translator.on("*",(y,...b)=>{this.emit(y,...b)}),this.modules.external.forEach(y=>{y.init&&y.init(this)})}if(this.format=this.options.interpolation.format,a||(a=Nc),this.options.fallbackLng&&!this.services.languageDetector&&!this.options.lng){const v=this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);v.length>0&&v[0]!=="dev"&&(this.options.lng=v[0])}!this.services.languageDetector&&!this.options.lng&&this.logger.warn("init: no languageDetector is used and no lng is defined"),["getResource","hasResourceBundle","getResourceBundle","getDataByLanguage"].forEach(v=>{this[v]=(...h)=>this.store[v](...h)}),["addResource","addResources","addResourceBundle","removeResourceBundle"].forEach(v=>{this[v]=(...h)=>(this.store[v](...h),this)});const f=Du(),d=()=>{const v=(h,p)=>{this.isInitializing=!1,this.isInitialized&&!this.initializedStoreOnce&&this.logger.warn("init: i18next is already initialized. You should call init just once!"),this.isInitialized=!0,this.options.isClone||this.logger.log("initialized",this.options),this.emit("initialized",this.options),f.resolve(p),a(h,p)};if(this.languages&&!this.isInitialized)return v(null,this.t.bind(this));this.changeLanguage(this.options.lng,v)};return this.options.resources||!this.options.initAsync?d():setTimeout(d,0),f}loadResources(r,a=Nc){let i=a;const o=sr(r)?r:this.language;if(typeof r=="function"&&(i=r),!this.options.resources||this.options.partialBundledLanguages){if(o?.toLowerCase()==="cimode"&&(!this.options.preload||this.options.preload.length===0))return i();const u=[],l=f=>{if(!f||f==="cimode")return;this.services.languageUtils.toResolveHierarchy(f).forEach(v=>{v!=="cimode"&&u.indexOf(v)<0&&u.push(v)})};o?l(o):this.services.languageUtils.getFallbackCodes(this.options.fallbackLng).forEach(d=>l(d)),this.options.preload?.forEach?.(f=>l(f)),this.services.backendConnector.load(u,this.options.ns,f=>{!f&&!this.resolvedLanguage&&this.language&&this.setResolvedLanguage(this.language),i(f)})}else i(null)}reloadResources(r,a,i){const o=Du();return typeof r=="function"&&(i=r,r=void 0),typeof a=="function"&&(i=a,a=void 0),r||(r=this.languages),a||(a=this.options.ns),i||(i=Nc),this.services.backendConnector.reload(r,a,u=>{o.resolve(),i(u)}),o}use(r){if(!r)throw new Error("You are passing an undefined module! Please check the object you are passing to i18next.use()");if(!r.type)throw new Error("You are passing a wrong module! Please check the object you are passing to i18next.use()");return r.type==="backend"&&(this.modules.backend=r),(r.type==="logger"||r.log&&r.warn&&r.error)&&(this.modules.logger=r),r.type==="languageDetector"&&(this.modules.languageDetector=r),r.type==="i18nFormat"&&(this.modules.i18nFormat=r),r.type==="postProcessor"&&UB.addPostProcessor(r),r.type==="formatter"&&(this.modules.formatter=r),r.type==="3rdParty"&&this.modules.external.push(r),this}setResolvedLanguage(r){if(!(!r||!this.languages)&&!(["cimode","dev"].indexOf(r)>-1)){for(let a=0;a<this.languages.length;a++){const i=this.languages[a];if(!(["cimode","dev"].indexOf(i)>-1)&&this.store.hasLanguageSomeTranslations(i)){this.resolvedLanguage=i;break}}!this.resolvedLanguage&&this.languages.indexOf(r)<0&&this.store.hasLanguageSomeTranslations(r)&&(this.resolvedLanguage=r,this.languages.unshift(r))}}changeLanguage(r,a){this.isLanguageChangingTo=r;const i=Du();this.emit("languageChanging",r);const o=f=>{this.language=f,this.languages=this.services.languageUtils.toResolveHierarchy(f),this.resolvedLanguage=void 0,this.setResolvedLanguage(f)},u=(f,d)=>{d?this.isLanguageChangingTo===r&&(o(d),this.translator.changeLanguage(d),this.isLanguageChangingTo=void 0,this.emit("languageChanged",d),this.logger.log("languageChanged",d)):this.isLanguageChangingTo=void 0,i.resolve((...v)=>this.t(...v)),a&&a(f,(...v)=>this.t(...v))},l=f=>{!r&&!f&&this.services.languageDetector&&(f=[]);const d=sr(f)?f:f&&f[0],v=this.store.hasLanguageSomeTranslations(d)?d:this.services.languageUtils.getBestMatchFromCodes(sr(f)?[f]:f);v&&(this.language||o(v),this.translator.language||this.translator.changeLanguage(v),this.services.languageDetector?.cacheUserLanguage?.(v)),this.loadResources(v,h=>{u(h,v)})};return!r&&this.services.languageDetector&&!this.services.languageDetector.async?l(this.services.languageDetector.detect()):!r&&this.services.languageDetector&&this.services.languageDetector.async?this.services.languageDetector.detect.length===0?this.services.languageDetector.detect().then(l):this.services.languageDetector.detect(l):l(r),i}getFixedT(r,a,i){const o=(u,l,...f)=>{let d;typeof l!="object"?d=this.options.overloadTranslationOptionHandler([u,l].concat(f)):d={...l},d.lng=d.lng||o.lng,d.lngs=d.lngs||o.lngs,d.ns=d.ns||o.ns,d.keyPrefix!==""&&(d.keyPrefix=d.keyPrefix||i||o.keyPrefix);const v=this.options.keySeparator||".";let h;return d.keyPrefix&&Array.isArray(u)?h=u.map(p=>`${d.keyPrefix}${v}${p}`):h=d.keyPrefix?`${d.keyPrefix}${v}${u}`:u,this.t(h,d)};return sr(r)?o.lng=r:o.lngs=r,o.ns=a,o.keyPrefix=i,o}t(...r){return this.translator?.translate(...r)}exists(...r){return this.translator?.exists(...r)}setDefaultNamespace(r){this.options.defaultNS=r}hasLoadedNamespace(r,a={}){if(!this.isInitialized)return this.logger.warn("hasLoadedNamespace: i18next was not initialized",this.languages),!1;if(!this.languages||!this.languages.length)return this.logger.warn("hasLoadedNamespace: i18n.languages were undefined or empty",this.languages),!1;const i=a.lng||this.resolvedLanguage||this.languages[0],o=this.options?this.options.fallbackLng:!1,u=this.languages[this.languages.length-1];if(i.toLowerCase()==="cimode")return!0;const l=(f,d)=>{const v=this.services.backendConnector.state[`${f}|${d}`];return v===-1||v===0||v===2};if(a.precheck){const f=a.precheck(this,l);if(f!==void 0)return f}return!!(this.hasResourceBundle(i,r)||!this.services.backendConnector.backend||this.options.resources&&!this.options.partialBundledLanguages||l(i,r)&&(!o||l(u,r)))}loadNamespaces(r,a){const i=Du();return this.options.ns?(sr(r)&&(r=[r]),r.forEach(o=>{this.options.ns.indexOf(o)<0&&this.options.ns.push(o)}),this.loadResources(o=>{i.resolve(),a&&a(o)}),i):(a&&a(),Promise.resolve())}loadLanguages(r,a){const i=Du();sr(r)&&(r=[r]);const o=this.options.preload||[],u=r.filter(l=>o.indexOf(l)<0&&this.services.languageUtils.isSupportedCode(l));return u.length?(this.options.preload=o.concat(u),this.loadResources(l=>{i.resolve(),a&&a(l)}),i):(a&&a(),Promise.resolve())}dir(r){if(r||(r=this.resolvedLanguage||(this.languages?.length>0?this.languages[0]:this.language)),!r)return"rtl";try{const o=new Intl.Locale(r);if(o&&o.getTextInfo){const u=o.getTextInfo();if(u&&u.direction)return u.direction}}catch{}const a=["ar","shu","sqr","ssh","xaa","yhd","yud","aao","abh","abv","acm","acq","acw","acx","acy","adf","ads","aeb","aec","afb","ajp","apc","apd","arb","arq","ars","ary","arz","auz","avl","ayh","ayl","ayn","ayp","bbz","pga","he","iw","ps","pbt","pbu","pst","prp","prd","ug","ur","ydd","yds","yih","ji","yi","hbo","men","xmn","fa","jpr","peo","pes","prs","dv","sam","ckb"],i=this.services?.languageUtils||new Tk(xk());return r.toLowerCase().indexOf("-latn")>1?"ltr":a.indexOf(i.getLanguagePartFromCode(r))>-1||r.toLowerCase().indexOf("-arab")>1?"rtl":"ltr"}static createInstance(r={},a){return new Zu(r,a)}cloneInstance(r={},a=Nc){const i=r.forkResourceStore;i&&delete r.forkResourceStore;const o={...this.options,...r,isClone:!0},u=new Zu(o);if((r.debug!==void 0||r.prefix!==void 0)&&(u.logger=u.logger.clone(r)),["store","services","language"].forEach(f=>{u[f]=this[f]}),u.services={...this.services},u.services.utils={hasLoadedNamespace:u.hasLoadedNamespace.bind(u)},i){const f=Object.keys(this.store.data).reduce((d,v)=>(d[v]={...this.store.data[v]},d[v]=Object.keys(d[v]).reduce((h,p)=>(h[p]={...d[v][p]},h),d[v]),d),{});u.store=new _k(f,o),u.services.resourceStore=u.store}return u.translator=new Ef(u.services,o),u.translator.on("*",(f,...d)=>{u.emit(f,...d)}),u.init(o,a),u.translator.options=o,u.translator.backendConnector.services.utils={hasLoadedNamespace:u.hasLoadedNamespace.bind(u)},u}toJSON(){return{options:this.options,store:this.store,language:this.language,languages:this.languages,resolvedLanguage:this.resolvedLanguage}}}const gt=Zu.createInstance();gt.createInstance=Zu.createInstance;gt.createInstance;gt.dir;gt.init;gt.loadResources;gt.reloadResources;gt.use;gt.changeLanguage;gt.getFixedT;gt.t;gt.exists;gt.setDefaultNamespace;gt.hasLoadedNamespace;gt.loadNamespaces;gt.loadLanguages;const{slice:Pse,forEach:jse}=[];function kse(e){return jse.call(Pse.call(arguments,1),r=>{if(r)for(const a in r)e[a]===void 0&&(e[a]=r[a])}),e}function zse(e){return typeof e!="string"?!1:[/<\s*script.*?>/i,/<\s*\/\s*script\s*>/i,/<\s*img.*?on\w+\s*=/i,/<\s*\w+\s*on\w+\s*=.*?>/i,/javascript\s*:/i,/vbscript\s*:/i,/expression\s*\(/i,/eval\s*\(/i,/alert\s*\(/i,/document\.cookie/i,/document\.write\s*\(/i,/window\.location/i,/innerHTML/i].some(a=>a.test(e))}const Ik=/^[\u0009\u0020-\u007e\u0080-\u00ff]+$/,Use=function(e,r){const i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{path:"/"},o=encodeURIComponent(r);let u=`${e}=${o}`;if(i.maxAge>0){const l=i.maxAge-0;if(Number.isNaN(l))throw new Error("maxAge should be a Number");u+=`; Max-Age=${Math.floor(l)}`}if(i.domain){if(!Ik.test(i.domain))throw new TypeError("option domain is invalid");u+=`; Domain=${i.domain}`}if(i.path){if(!Ik.test(i.path))throw new TypeError("option path is invalid");u+=`; Path=${i.path}`}if(i.expires){if(typeof i.expires.toUTCString!="function")throw new TypeError("option expires is invalid");u+=`; Expires=${i.expires.toUTCString()}`}if(i.httpOnly&&(u+="; HttpOnly"),i.secure&&(u+="; Secure"),i.sameSite)switch(typeof i.sameSite=="string"?i.sameSite.toLowerCase():i.sameSite){case!0:u+="; SameSite=Strict";break;case"lax":u+="; SameSite=Lax";break;case"strict":u+="; SameSite=Strict";break;case"none":u+="; SameSite=None";break;default:throw new TypeError("option sameSite is invalid")}return i.partitioned&&(u+="; Partitioned"),u},qk={create(e,r,a,i){let o=arguments.length>4&&arguments[4]!==void 0?arguments[4]:{path:"/",sameSite:"strict"};a&&(o.expires=new Date,o.expires.setTime(o.expires.getTime()+a*60*1e3)),i&&(o.domain=i),document.cookie=Use(e,r,o)},read(e){const r=`${e}=`,a=document.cookie.split(";");for(let i=0;i<a.length;i++){let o=a[i];for(;o.charAt(0)===" ";)o=o.substring(1,o.length);if(o.indexOf(r)===0)return o.substring(r.length,o.length)}return null},remove(e,r){this.create(e,"",-1,r)}};var Fse={name:"cookie",lookup(e){let{lookupCookie:r}=e;if(r&&typeof document<"u")return qk.read(r)||void 0},cacheUserLanguage(e,r){let{lookupCookie:a,cookieMinutes:i,cookieDomain:o,cookieOptions:u}=r;a&&typeof document<"u"&&qk.create(a,e,i,o,u)}},Bse={name:"querystring",lookup(e){let{lookupQuerystring:r}=e,a;if(typeof window<"u"){let{search:i}=window.location;!window.location.search&&window.location.hash?.indexOf("?")>-1&&(i=window.location.hash.substring(window.location.hash.indexOf("?")));const u=i.substring(1).split("&");for(let l=0;l<u.length;l++){const f=u[l].indexOf("=");f>0&&u[l].substring(0,f)===r&&(a=u[l].substring(f+1))}}return a}},Hse={name:"hash",lookup(e){let{lookupHash:r,lookupFromHashIndex:a}=e,i;if(typeof window<"u"){const{hash:o}=window.location;if(o&&o.length>2){const u=o.substring(1);if(r){const l=u.split("&");for(let f=0;f<l.length;f++){const d=l[f].indexOf("=");d>0&&l[f].substring(0,d)===r&&(i=l[f].substring(d+1))}}if(i)return i;if(!i&&a>-1){const l=o.match(/\/([a-zA-Z-]*)/g);return Array.isArray(l)?l[typeof a=="number"?a:0]?.replace("/",""):void 0}}}return i}};let as=null;const Mk=()=>{if(as!==null)return as;try{if(as=typeof window<"u"&&window.localStorage!==null,!as)return!1;const e="i18next.translate.boo";window.localStorage.setItem(e,"foo"),window.localStorage.removeItem(e)}catch{as=!1}return as};var $se={name:"localStorage",lookup(e){let{lookupLocalStorage:r}=e;if(r&&Mk())return window.localStorage.getItem(r)||void 0},cacheUserLanguage(e,r){let{lookupLocalStorage:a}=r;a&&Mk()&&window.localStorage.setItem(a,e)}};let ns=null;const Nk=()=>{if(ns!==null)return ns;try{if(ns=typeof window<"u"&&window.sessionStorage!==null,!ns)return!1;const e="i18next.translate.boo";window.sessionStorage.setItem(e,"foo"),window.sessionStorage.removeItem(e)}catch{ns=!1}return ns};var Gse={name:"sessionStorage",lookup(e){let{lookupSessionStorage:r}=e;if(r&&Nk())return window.sessionStorage.getItem(r)||void 0},cacheUserLanguage(e,r){let{lookupSessionStorage:a}=r;a&&Nk()&&window.sessionStorage.setItem(a,e)}},Vse={name:"navigator",lookup(e){const r=[];if(typeof navigator<"u"){const{languages:a,userLanguage:i,language:o}=navigator;if(a)for(let u=0;u<a.length;u++)r.push(a[u]);i&&r.push(i),o&&r.push(o)}return r.length>0?r:void 0}},Wse={name:"htmlTag",lookup(e){let{htmlTag:r}=e,a;const i=r||(typeof document<"u"?document.documentElement:null);return i&&typeof i.getAttribute=="function"&&(a=i.getAttribute("lang")),a}},Yse={name:"path",lookup(e){let{lookupFromPathIndex:r}=e;if(typeof window>"u")return;const a=window.location.pathname.match(/\/([a-zA-Z-]*)/g);return Array.isArray(a)?a[typeof r=="number"?r:0]?.replace("/",""):void 0}},Kse={name:"subdomain",lookup(e){let{lookupFromSubdomainIndex:r}=e;const a=typeof r=="number"?r+1:1,i=typeof window<"u"&&window.location?.hostname?.match(/^(\w{2,5})\.(([a-z0-9-]{1,63}\.[a-z]{2,6})|localhost)/i);if(i)return i[a]}};let FB=!1;try{document.cookie,FB=!0}catch{}const BB=["querystring","cookie","localStorage","sessionStorage","navigator","htmlTag"];FB||BB.splice(1,1);const Qse=()=>({order:BB,lookupQuerystring:"lng",lookupCookie:"i18next",lookupLocalStorage:"i18nextLng",lookupSessionStorage:"i18nextLng",caches:["localStorage"],excludeCacheFor:["cimode"],convertDetectedLanguage:e=>e});class HB{constructor(r){let a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.type="languageDetector",this.detectors={},this.init(r,a)}init(){let r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{languageUtils:{}},a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};this.services=r,this.options=kse(a,this.options||{},Qse()),typeof this.options.convertDetectedLanguage=="string"&&this.options.convertDetectedLanguage.indexOf("15897")>-1&&(this.options.convertDetectedLanguage=o=>o.replace("-","_")),this.options.lookupFromUrlIndex&&(this.options.lookupFromPathIndex=this.options.lookupFromUrlIndex),this.i18nOptions=i,this.addDetector(Fse),this.addDetector(Bse),this.addDetector($se),this.addDetector(Gse),this.addDetector(Vse),this.addDetector(Wse),this.addDetector(Yse),this.addDetector(Kse),this.addDetector(Hse)}addDetector(r){return this.detectors[r.name]=r,this}detect(){let r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.options.order,a=[];return r.forEach(i=>{if(this.detectors[i]){let o=this.detectors[i].lookup(this.options);o&&typeof o=="string"&&(o=[o]),o&&(a=a.concat(o))}}),a=a.filter(i=>i!=null&&!zse(i)).map(i=>this.options.convertDetectedLanguage(i)),this.services&&this.services.languageUtils&&this.services.languageUtils.getBestMatchFromCodes?a:a.length>0?a[0]:null}cacheUserLanguage(r){let a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this.options.caches;a&&(this.options.excludeCacheFor&&this.options.excludeCacheFor.indexOf(r)>-1||a.forEach(i=>{this.detectors[i]&&this.detectors[i].cacheUserLanguage(r,this.options)}))}}HB.type="languageDetector";var Zse=["second","minute","hour","day","week","month","year"];function Xse(e,r){if(r===0)return["just now","right now"];var a=Zse[Math.floor(r/2)];return e>1&&(a+="s"),[e+" "+a+" ago","in "+e+" "+a]}var Jse=["秒","分钟","小时","天","周","个月","年"];function eue(e,r){if(r===0)return["刚刚","片刻后"];var a=Jse[~~(r/2)];return[e+" "+a+"前",e+" "+a+"后"]}var M4={},et=function(e,r){M4[e]=r},Uve=function(e){return M4[e]||M4.en_US};et("en_US",Xse);et("zh_CN",eue);var Lc={},Lk;function rue(){if(Lk)return Lc;Lk=1,Object.defineProperty(Lc,"__esModule",{value:!0});function e(r,a){return[["току що","съвсем скоро"],["преди %s секунди","след %s секунди"],["преди 1 минута","след 1 минута"],["преди %s минути","след %s минути"],["преди 1 час","след 1 час"],["преди %s часа","след %s часа"],["преди 1 ден","след 1 ден"],["преди %s дни","след %s дни"],["преди 1 седмица","след 1 седмица"],["преди %s седмици","след %s седмици"],["преди 1 месец","след 1 месец"],["преди %s месеца","след %s месеца"],["преди 1 година","след 1 година"],["преди %s години","след %s години"]][a]}return Lc.default=e,Lc}var tue=rue();const aue=Hr(tue);var Dc={},Dk;function nue(){if(Dk)return Dc;Dk=1,Object.defineProperty(Dc,"__esModule",{value:!0});function e(r,a){return[["fa un moment","d'aquí un moment"],["fa %s segons","d'aquí %s segons"],["fa 1 minut","d'aquí 1 minut"],["fa %s minuts","d'aquí %s minuts"],["fa 1 hora","d'aquí 1 hora"],["fa %s hores","d'aquí %s hores"],["fa 1 dia","d'aquí 1 dia"],["fa %s dies","d'aquí %s dies"],["fa 1 setmana","d'aquí 1 setmana"],["fa %s setmanes","d'aquí %s setmanes"],["fa 1 mes","d'aquí 1 mes"],["fa %s mesos","d'aquí %s mesos"],["fa 1 any","d'aquí 1 any"],["fa %s anys","d'aquí %s anys"]][a]}return Dc.default=e,Dc}var iue=nue();const oue=Hr(iue);var Pc={},Pk;function sue(){if(Pk)return Pc;Pk=1,Object.defineProperty(Pc,"__esModule",{value:!0});function e(r,a){var i=0,o=a==1||a==3||a==5||a==7||a==9||a==11||a==13;return o&&r>=5&&(i=1),[[["právě teď","právě teď"]],[["před %s vteřinami","za %s vteřiny"],["před %s vteřinami","za %s vteřin"]],[["před minutou","za minutu"]],[["před %s minutami","za %s minuty"],["před %s minutami","za %s minut"]],[["před hodinou","za hodinu"]],[["před %s hodinami","za %s hodiny"],["před %s hodinami","za %s hodin"]],[["včera","zítra"]],[["před %s dny","za %s dny"],["před %s dny","za %s dnů"]],[["minulý týden","příští týden"]],[["před %s týdny","za %s týdny"],["před %s týdny","za %s týdnů"]],[["minulý měsíc","přístí měsíc"]],[["před %s měsíci","za %s měsíce"],["před %s měsíci","za %s měsíců"]],[["před rokem","přístí rok"]],[["před %s lety","za %s roky"],["před %s lety","za %s let"]]][a][i]}return Pc.default=e,Pc}var uue=sue();const lue=Hr(uue);var jc={},jk;function cue(){if(jk)return jc;jk=1,Object.defineProperty(jc,"__esModule",{value:!0});function e(r,a){return[["for et øjeblik siden","om et øjeblik"],["for %s sekunder siden","om %s sekunder"],["for 1 minut siden","om 1 minut"],["for %s minutter siden","om %s minutter"],["for 1 time siden","om 1 time"],["for %s timer siden","om %s timer"],["for 1 dag siden","om 1 dag"],["for %s dage siden","om %s dage"],["for 1 uge siden","om 1 uge"],["for %s uger siden","om %s uger"],["for 1 måned siden","om 1 måned"],["for %s måneder siden","om %s måneder"],["for 1 år siden","om 1 år"],["for %s år siden","om %s år"]][a]}return jc.default=e,jc}var fue=cue();const due=Hr(fue);var kc={},kk;function vue(){if(kk)return kc;kk=1,Object.defineProperty(kc,"__esModule",{value:!0});function e(r,a){return[["gerade eben","vor einer Weile"],["vor %s Sekunden","in %s Sekunden"],["vor 1 Minute","in 1 Minute"],["vor %s Minuten","in %s Minuten"],["vor 1 Stunde","in 1 Stunde"],["vor %s Stunden","in %s Stunden"],["vor 1 Tag","in 1 Tag"],["vor %s Tagen","in %s Tagen"],["vor 1 Woche","in 1 Woche"],["vor %s Wochen","in %s Wochen"],["vor 1 Monat","in 1 Monat"],["vor %s Monaten","in %s Monaten"],["vor 1 Jahr","in 1 Jahr"],["vor %s Jahren","in %s Jahren"]][a]}return kc.default=e,kc}var hue=vue();const pue=Hr(hue);var zc={},zk;function gue(){if(zk)return zc;zk=1,Object.defineProperty(zc,"__esModule",{value:!0});function e(r,a){return[["justo ahora","en un rato"],["hace %s segundos","en %s segundos"],["hace 1 minuto","en 1 minuto"],["hace %s minutos","en %s minutos"],["hace 1 hora","en 1 hora"],["hace %s horas","en %s horas"],["hace 1 día","en 1 día"],["hace %s días","en %s días"],["hace 1 semana","en 1 semana"],["hace %s semanas","en %s semanas"],["hace 1 mes","en 1 mes"],["hace %s meses","en %s meses"],["hace 1 año","en 1 año"],["hace %s años","en %s años"]][a]}return zc.default=e,zc}var mue=gue();const yue=Hr(mue);var Uc={},Uk;function bue(){if(Uk)return Uc;Uk=1,Object.defineProperty(Uc,"__esModule",{value:!0});function e(r,a){return[["orain","denbora bat barru"],["duela %s segundu","%s segundu barru"],["duela minutu 1","minutu 1 barru"],["duela %s minutu","%s minutu barru"],["duela ordu 1","ordu 1 barru"],["duela %s ordu","%s ordu barru"],["duela egun 1","egun 1 barru"],["duela %s egun","%s egun barru"],["duela aste 1","aste 1 barru"],["duela %s aste","%s aste barru"],["duela hillabete 1","hillabete 1 barru"],["duela %s hillabete","%s hillabete barru"],["duela urte 1","urte 1 barru"],["duela %s urte","%s urte barru"]][a]}return Uc.default=e,Uc}var _ue=bue();const Sue=Hr(_ue);var Fc={},Fk;function Eue(){if(Fk)return Fc;Fk=1,Object.defineProperty(Fc,"__esModule",{value:!0});function e(r,a){return[["juuri äsken","juuri nyt"],["%s sekuntia sitten","%s sekunnin päästä"],["minuutti sitten","minuutin päästä"],["%s minuuttia sitten","%s minuutin päästä"],["tunti sitten","tunnin päästä"],["%s tuntia sitten","%s tunnin päästä"],["päivä sitten","päivän päästä"],["%s päivää sitten","%s päivän päästä"],["viikko sitten","viikon päästä"],["%s viikkoa sitten","%s viikon päästä"],["kuukausi sitten","kuukauden päästä"],["%s kuukautta sitten","%s kuukauden päästä"],["vuosi sitten","vuoden päästä"],["%s vuotta sitten","%s vuoden päästä"]][a]}return Fc.default=e,Fc}var Tue=Eue();const Rue=Hr(Tue);var Bc={},Bk;function Oue(){if(Bk)return Bc;Bk=1,Object.defineProperty(Bc,"__esModule",{value:!0});function e(r,a){return[["à l'instant","dans un instant"],["il y a %s secondes","dans %s secondes"],["il y a 1 minute","dans 1 minute"],["il y a %s minutes","dans %s minutes"],["il y a 1 heure","dans 1 heure"],["il y a %s heures","dans %s heures"],["il y a 1 jour","dans 1 jour"],["il y a %s jours","dans %s jours"],["il y a 1 semaine","dans 1 semaine"],["il y a %s semaines","dans %s semaines"],["il y a 1 mois","dans 1 mois"],["il y a %s mois","dans %s mois"],["il y a 1 an","dans 1 an"],["il y a %s ans","dans %s ans"]][a]}return Bc.default=e,Bc}var Aue=Oue();const wue=Hr(Aue);var Hc={},Hk;function xue(){if(Hk)return Hc;Hk=1,Object.defineProperty(Hc,"__esModule",{value:!0});function e(r,a){return[["éppen most","éppen most"],["%s másodperce","%s másodpercen belül"],["1 perce","1 percen belül"],["%s perce","%s percen belül"],["1 órája","1 órán belül"],["%s órája","%s órán belül"],["1 napja","1 napon belül"],["%s napja","%s napon belül"],["1 hete","1 héten belül"],["%s hete","%s héten belül"],["1 hónapja","1 hónapon belül"],["%s hónapja","%s hónapon belül"],["1 éve","1 éven belül"],["%s éve","%s éven belül"]][a]}return Hc.default=e,Hc}var Cue=xue();const Iue=Hr(Cue);var $c={},$k;function que(){if($k)return $c;$k=1,Object.defineProperty($c,"__esModule",{value:!0});function e(r,a){return[["poco fa","fra poco"],["%s secondi fa","fra %s secondi"],["un minuto fa","fra un minuto"],["%s minuti fa","fra %s minuti"],["un'ora fa","fra un'ora"],["%s ore fa","fra %s ore"],["un giorno fa","fra un giorno"],["%s giorni fa","fra %s giorni"],["una settimana fa","fra una settimana"],["%s settimane fa","fra %s settimane"],["un mese fa","fra un mese"],["%s mesi fa","fra %s mesi"],["un anno fa","fra un anno"],["%s anni fa","fra %s anni"]][a]}return $c.default=e,$c}var Mue=que();const Nue=Hr(Mue);var Gc={},Gk;function Lue(){if(Gk)return Gc;Gk=1,Object.defineProperty(Gc,"__esModule",{value:!0});function e(r,a){return[["방금","곧"],["%s초 전","%s초 후"],["1분 전","1분 후"],["%s분 전","%s분 후"],["1시간 전","1시간 후"],["%s시간 전","%s시간 후"],["1일 전","1일 후"],["%s일 전","%s일 후"],["1주일 전","1주일 후"],["%s주일 전","%s주일 후"],["1개월 전","1개월 후"],["%s개월 전","%s개월 후"],["1년 전","1년 후"],["%s년 전","%s년 후"]][a]}return Gc.default=e,Gc}var Due=Lue();const Pue=Hr(Due);var Vc={},Vk;function jue(){if(Vk)return Vc;Vk=1,Object.defineProperty(Vc,"__esModule",{value:!0});function e(r,a){return[["akkurat nå","om litt"],["%s sekunder siden","om %s sekunder"],["1 minutt siden","om 1 minutt"],["%s minutter siden","om %s minutter"],["1 time siden","om 1 time"],["%s timer siden","om %s timer"],["1 dag siden","om 1 dag"],["%s dager siden","om %s dager"],["1 uke siden","om 1 uke"],["%s uker siden","om %s uker"],["1 måned siden","om 1 måned"],["%s måneder siden","om %s måneder"],["1 år siden","om 1 år"],["%s år siden","om %s år"]][a]}return Vc.default=e,Vc}var kue=jue();const zue=Hr(kue);var Wc={},Wk;function Uue(){if(Wk)return Wc;Wk=1,Object.defineProperty(Wc,"__esModule",{value:!0});function e(r,a){return[["recent","binnenkort"],["%s seconden geleden","binnen %s seconden"],["1 minuut geleden","binnen 1 minuut"],["%s minuten geleden","binnen %s minuten"],["1 uur geleden","binnen 1 uur"],["%s uur geleden","binnen %s uur"],["1 dag geleden","binnen 1 dag"],["%s dagen geleden","binnen %s dagen"],["1 week geleden","binnen 1 week"],["%s weken geleden","binnen %s weken"],["1 maand geleden","binnen 1 maand"],["%s maanden geleden","binnen %s maanden"],["1 jaar geleden","binnen 1 jaar"],["%s jaar geleden","binnen %s jaar"]][a]}return Wc.default=e,Wc}var Fue=Uue();const Bue=Hr(Fue);var Yc={},Yk;function Hue(){if(Yk)return Yc;Yk=1,Object.defineProperty(Yc,"__esModule",{value:!0});var e=[["w tej chwili","za chwilę"],["%s sekund temu","za %s sekund"],["1 minutę temu","za 1 minutę"],["%s minut temu","za %s minut"],["1 godzinę temu","za 1 godzinę"],["%s godzin temu","za %s godzin"],["1 dzień temu","za 1 dzień"],["%s dni temu","za %s dni"],["1 tydzień temu","za 1 tydzień"],["%s tygodni temu","za %s tygodni"],["1 miesiąc temu","za 1 miesiąc"],["%s miesięcy temu","za %s miesięcy"],["1 rok temu","za 1 rok"],["%s lat temu","za %s lat"],["%s sekundy temu","za %s sekundy"],["%s minuty temu","za %s minuty"],["%s godziny temu","za %s godziny"],["%s dni temu","za %s dni"],["%s tygodnie temu","za %s tygodnie"],["%s miesiące temu","za %s miesiące"],["%s lata temu","za %s lata"]];function r(a,i){return e[i&1?a%10>4||a%10<2||~~(a/10)%10===1?i:++i/2+13:i]}return Yc.default=r,Yc}var $ue=Hue();const Gue=Hr($ue);var Kc={},Kk;function Vue(){if(Kk)return Kc;Kk=1,Object.defineProperty(Kc,"__esModule",{value:!0});function e(r,a){return[["agora mesmo","agora"],["há %s segundos","em %s segundos"],["há um minuto","em um minuto"],["há %s minutos","em %s minutos"],["há uma hora","em uma hora"],["há %s horas","em %s horas"],["há um dia","em um dia"],["há %s dias","em %s dias"],["há uma semana","em uma semana"],["há %s semanas","em %s semanas"],["há um mês","em um mês"],["há %s meses","em %s meses"],["há um ano","em um ano"],["há %s anos","em %s anos"]][a]}return Kc.default=e,Kc}var Wue=Vue();const Yue=Hr(Wue);var Qc={},Qk;function Kue(){if(Qk)return Qc;Qk=1,Object.defineProperty(Qc,"__esModule",{value:!0});function e(v,h,p,m,y){var b=y%10,E=m;return y===1?E=v:b===1&&y>20?E=h:b>1&&b<5&&(y>20||y<10)&&(E=p),E}var r=e.bind(null,"секунду","%s секунду","%s секунды","%s секунд"),a=e.bind(null,"минуту","%s минуту","%s минуты","%s минут"),i=e.bind(null,"час","%s час","%s часа","%s часов"),o=e.bind(null,"день","%s день","%s дня","%s дней"),u=e.bind(null,"неделю","%s неделю","%s недели","%s недель"),l=e.bind(null,"месяц","%s месяц","%s месяца","%s месяцев"),f=e.bind(null,"год","%s год","%s года","%s лет");function d(v,h){switch(h){case 0:return["только что","через несколько секунд"];case 1:return[r(v)+" назад","через "+r(v)];case 2:case 3:return[a(v)+" назад","через "+a(v)];case 4:case 5:return[i(v)+" назад","через "+i(v)];case 6:return["вчера","завтра"];case 7:return[o(v)+" назад","через "+o(v)];case 8:case 9:return[u(v)+" назад","через "+u(v)];case 10:case 11:return[l(v)+" назад","через "+l(v)];case 12:case 13:return[f(v)+" назад","через "+f(v)];default:return["",""]}}return Qc.default=d,Qc}var Que=Kue();const Zue=Hr(Que);var Zc={},Zk;function Xue(){if(Zk)return Zc;Zk=1,Object.defineProperty(Zc,"__esModule",{value:!0});function e(r,a){return[["just nu","om en stund"],["%s sekunder sedan","om %s sekunder"],["1 minut sedan","om 1 minut"],["%s minuter sedan","om %s minuter"],["1 timme sedan","om 1 timme"],["%s timmar sedan","om %s timmar"],["1 dag sedan","om 1 dag"],["%s dagar sedan","om %s dagar"],["1 vecka sedan","om 1 vecka"],["%s veckor sedan","om %s veckor"],["1 månad sedan","om 1 månad"],["%s månader sedan","om %s månader"],["1 år sedan","om 1 år"],["%s år sedan","om %s år"]][a]}return Zc.default=e,Zc}var Jue=Xue();const ele=Hr(Jue);var Xc={},Xk;function rle(){if(Xk)return Xc;Xk=1,Object.defineProperty(Xc,"__esModule",{value:!0});function e(r,a){return[["az önce","şimdi"],["%s saniye önce","%s saniye içinde"],["1 dakika önce","1 dakika içinde"],["%s dakika önce","%s dakika içinde"],["1 saat önce","1 saat içinde"],["%s saat önce","%s saat içinde"],["1 gün önce","1 gün içinde"],["%s gün önce","%s gün içinde"],["1 hafta önce","1 hafta içinde"],["%s hafta önce","%s hafta içinde"],["1 ay önce","1 ay içinde"],["%s ay önce","%s ay içinde"],["1 yıl önce","1 yıl içinde"],["%s yıl önce","%s yıl içinde"]][a]}return Xc.default=e,Xc}var tle=rle();const ale=Hr(tle);var Jc={},Jk;function nle(){if(Jk)return Jc;Jk=1,Object.defineProperty(Jc,"__esModule",{value:!0});function e(v,h,p,m,y){var b=y%10,E=m;return y===1?E=v:b===1&&y>20?E=h:b>1&&b<5&&(y>20||y<10)&&(E=p),E}var r=e.bind(null,"секунду","%s секунду","%s секунди","%s секунд"),a=e.bind(null,"хвилину","%s хвилину","%s хвилини","%s хвилин"),i=e.bind(null,"годину","%s годину","%s години","%s годин"),o=e.bind(null,"день","%s день","%s дні","%s днів"),u=e.bind(null,"тиждень","%s тиждень","%s тиждні","%s тижднів"),l=e.bind(null,"місяць","%s місяць","%s місяці","%s місяців"),f=e.bind(null,"рік","%s рік","%s роки","%s років");function d(v,h){switch(h){case 0:return["щойно","через декілька секунд"];case 1:return[r(v)+" тому","через "+r(v)];case 2:case 3:return[a(v)+" тому","через "+a(v)];case 4:case 5:return[i(v)+" тому","через "+i(v)];case 6:case 7:return[o(v)+" тому","через "+o(v)];case 8:case 9:return[u(v)+" тому","через "+u(v)];case 10:case 11:return[l(v)+" тому","через "+l(v)];case 12:case 13:return[f(v)+" тому","через "+f(v)];default:return["",""]}}return Jc.default=d,Jc}var ile=nle();const ole=Hr(ile);var ef={},ez;function sle(){if(ez)return ef;ez=1,Object.defineProperty(ef,"__esModule",{value:!0});var e=["秒","分钟","小时","天","周","个月","年"];function r(a,i){if(i===0)return["刚刚","片刻后"];var o=e[~~(i/2)];return[a+" "+o+"前",a+" "+o+"后"]}return ef.default=r,ef}var ule=sle();const lle=Hr(ule);var rf={},rz;function cle(){if(rz)return rf;rz=1,Object.defineProperty(rf,"__esModule",{value:!0});function e(r,a){return[["剛剛","片刻後"],["%s 秒前","%s 秒後"],["1 分鐘前","1 分鐘後"],["%s 分鐘前","%s 分鐘後"],["1 小時前","1 小時後"],["%s 小時前","%s 小時後"],["1 天前","1 天後"],["%s 天前","%s 天後"],["1 週前","1 週後"],["%s 週前","%s 週後"],["1 個月前","1 個月後"],["%s 個月前","%s 個月後"],["1 年前","1 年後"],["%s 年前","%s 年後"]][a]}return rf.default=e,rf}var fle=cle();const dle=Hr(fle),vle={},hle={},ple={},gle={},mle={},yle={},ble={action:"Action",actions:"Actions",apply:"Apply",attribute:"Attribute",bind:"Bind",clear:"Clear",close:"Close",cancel:"Cancel",cluster:"Cluster",clusters:"Clusters",confirmation:"Confirmation prompt",delete:"Delete",destination:"Destination",devices:"Devices",dialog_confirmation_prompt:"Are you sure?",disable:"Disable",search:"Search",highlight:"Highlight",groups:"Groups",loading:"Loading...",none:"None",ok:"OK",read:"Read",save:"Save",select_value:"Select value",select_device:"Select device",select_endpoint:"Select endpoint",select_group:"Select group",source_endpoint:"Source endpoint",the_only_endpoint:"The only endpoint",unbind:"Unbind",write:"Write",destination_endpoint:"Destination endpoint",read_the_docs_info:"Read about this in the documentation…",page:"Page",go_to_page:"Go to page",show:"Show",min:"Min",max:"Max",done:"Done",enter_auth_token:"Enter auth token",token:"Token",documentation:"Documentation",optional:"Optional",init:"Init",undefined:"Undefined",type_to_filter:"Type to filter...",name:"Name",friendly_name:"Friendly name",unknown_device:"Unknown device",unknown_group:"Unknown group",failed:"Failed",disabled:"Disabled",hide_disabled:"Hide disabled",battery_low_only:"Battery low only",available_only:"Available only",execute:"Execute",command:"Command",payload:"Payload",execute_command:"Execute command",send:"Send",columns:"Columns",entries:"Entries"},_le={about:"About",bind:"Bind",clusters:"Clusters",dev_console:"Dev console",reporting:"Reporting",settings:"Settings",settings_specific:"Settings (specific)",state:"State",groups:"Groups",scene:"Scene",exposes:"Exposes",select_a_device:"Select a device"},Sle={empty_exposes_definition:"Empty exposes definition"},Ele={settings:"Settings",add_to_group_header:"Add a device to the group",add_to_group:"Add to group",create_group:"Create group",friendly_name_placeholder:"bedroom_lights, garden...",remove_group:"Remove group",group_id:"Group ID",group_members:"Group members",scenes:"Scenes",rename_group:"Rename group",remove_from_group:"Remove from group"},Tle={log_level_config:"Log level config",empty_logs_message:"Nothing to display",filter_by_text:"Filter by text",show_only:"Show only",logs_limit:"Logs limit",highlight_only:"Highlight only"},Rle={network_hierarchy:"Network hierarchy",help:"Help",load:"Load",reload:"Reload",loading:"Depending on the size of the network and the quality of its links, this can take a while.",parent:"Parent",child:"Child",sibling:"Sibling",children:"Children",siblings:"Siblings",previous_children:"Previous children",nodes:"Nodes",edges:"Edges",legend:"Legend",depth:"Depth",routes:"Routes",type:"Type",raw:"Display data/map",graphviz:"External - Graphviz",plantuml:"External - PlantUML",enable_routes:"Enable routes",display_type:"Display type",data:"Data",map:"Map",layout_type:"Layout type",label_type:"Label type",download_image:"Download as image",zoom_in:"Zoom in",zoom_out:"Zoom out",fit_view:"Fit view",reset_controls:"Reset controls",find_node:"Find node",scroll_to_top:"Scroll to top",node_strength:"Node strength",link_distance:"Link distance",copy_paste_on:"Copy and paste the following data in one of the available online viewers/editors.",highlight_info:"Click on a device's image to highlight it automatically.",legend_node_siblings:"Only highest-rated siblings are shown, which should roughly match the actual connections of the network.",legend_node_size:"Nodes are sized by centrality.",legend_node_select:"Selecting a node will select the depending one-hop part of the network.",legend_node_fold:"Node context menu fold/expand button will affect the depending part of the network.",legend_edge_toggle:"Toggling relationship edges will change the layout. When disabling one or more, the actual layout of the network is no longer accurately represented."},Ole={all:"All",dashboard:"Dashboard",devices:"Devices",disable_join:"Disable join",extensions:"Extensions",groups:"Groups",logs:"Logs",network:"Network",ota:"OTA",permit_join:"Permit join",restart:"Restart",settings:"Settings",toggle_dropdown:"Toggle dropdown",touchlink:"Touchlink",websocket_status:"WebSocket status"},Ale={check:"Check for new updates",check_selected:"Check selected",update_selected:"Update selected",update_selected_info:"An OTA update is very taxing for a network. Make sure it is stable and opt for less used times.",empty_ota_message:"No device currently support OTA",remaining_time:"Remaining time",schedule:"Schedule update",schedule_info:"Will update on next OTA request from device",unschedule:"Cancel scheduled update",update:"Update device firmware",firmware_version:"Firmware version",available_firmware_version:"Available firmware version",app:"App",stack:"Stack"},wle={about:"About",advanced:"Advanced",availability:"Availability",blocklist:"Blocklist",revision:"Revision",coordinator:"Coordinator",donate:"Donate",donation_text:"Here you can thank us for all the hard work. Don't hesitate to say something nice as well ;)",download_state:"Download state",experimental:"Experimental",external_converters:"External converters",frontend:"Frontend",frontend_version:"Frontend version",main:"Main",mqtt:"MQTT",ota:"OTA updates",passlist:"Passlist",bridge:"Bridge",restart_zigbee2mqtt:"Restart Zigbee2MQTT",serial:"Serial",settings:"Settings",tools:"Tools",zigbee2mqtt_version:"Zigbee2MQTT version",translate:"Translate",stats:"Stats",coordinator_ieee_address:"Coordinator IEEE Address",request_z2m_backup:"Request Z2m backup",add_install_code:"Add install code",install_code:"Install code",homeassistant:"Home Assistant integration",translation_prompt:"You can help with the translation at",zigbee_herdsman_converters_version:"zigbee-herdsman-converters version",zigbee_herdsman_version:"zigbee-herdsman version",localise_images:"Localise device images",frontend_notice:"These settings are stored locally in your browser. Using private windows or clearing the cache will reset them to defaults.",reset_settings:"Reset settings",reset_auth:"Reset auth",reset_all:"Reset all",language:"Language",theme:"Theme",homepage:"Homepage",dashboard_column_display:"Dashboard column display",permit_join_time:"Permit join time",dev_console:"Dev console",max_on_screen_notifications:"Max on-screen notifications",network_raw:"Network data/map",network_map:"Network map",machine:"Machine",node_version:"Node version",version:"Version",health:"Health"},xle={awaiting_next_check:"Awaiting next check",last_check:"Last check",response_time:"Response time",os:"OS",process:"Process",load_average:"Load average",ram_usage:"RAM usage",uptime:"Uptime",queued:"Queued",published:"Published",received:"Received",messages:"Messages",messages_per_sec:"Messages per sec",leave_count:"Leave count",network_address_changes:"Network address changes",very_low:"Very low",interview_info:"Device interviews can heavily influence this data."},Cle={detected_devices_message:"Detected {{count}} touchlink devices.",rescan:"Scan again",scan:"Scan",identify:"Identify",factory_reset:"Factory reset"},Ile={clear:"Clear",closed:"Closed",false:"False",not_supported:"Not supported",occupied:"Occupied",open:"Open",supported:"Supported",true:"True",empty_string:'Empty string("")',leaking:"Leaking",tampered:"Tampered",null:"Null",Clear:"Clear",Closed:"Closed",Occupied:"Occupied",Open:"Open"},qle={actions:"Actions",attribute:"Attribute",unknown:"Unknown",mains_single_phase:"Mains (single phase)",mains_3_phase:"Mains (3 phase)",battery:"Battery",dc_source:"DC Source",emergency_mains_constantly_powered:"Emergency mains constantly powered",emergency_mains_and_transfer_switch:"Emergency mains and transfer switch",block_join:"Block from joining again",cluster:"Cluster",description:"Description",device_type:"Device type",endpoint:"Endpoint",firmware_id:"Firmware ID",firmware_build_date:"Firmware build date",force_remove:"Force remove",force_remove_notice:"Use only as last resort (will not propagate to the network)",ieee_address:"IEEE Address",interview:"Interview",interview_failed:"Interview failed",interviewing:"Interviewing",interview_state:"Interview state",last_seen:"Last seen",lqi:"LQI",manufacturer:"Manufacturer",max_rep_interval:"Max rep interval",min_rep_change:"Min rep change",min_rep_interval:"Min rep interval",model:"Model",network_address:"Network address",network_address_hex:"Network address in hexadecimal format",network_address_dec:"Network address in decimal format",none:"None",pic:"Pic",power:"Power",power_level:"power level",reconfigure:"Reconfigure",remove_device:"Remove device",rename_device:"Rename device",select_attribute:"Select attribute",select_cluster:"Select cluster",support_status:"Support status",unsupported:"Unsupported",updating_firmware:"Updating firmware",update_Home_assistant_entity_id:"Update Home Assistant entity ID",zigbee_manufacturer:"ZigBee Manufacturer",zigbee_model:"ZigBee Model",device:"Device",channel:"Channel",possible:"Possible",available:"Available",edit_description:"Edit description",save_description:"Save description",update_description:"Update description",read_write_attributes:"Read / Write attributes from endpoint cluster",input_clusters:"Input clusters",output_clusters:"Output clusters",custom_clusters:"Custom clusters",other_zcl_clusters:"Other ZCL clusters",how_to_add_support:"How to add support?",submit_converter:"Submit converter",request_support:"Request support",report_problem:"Report problem",group:"Group",type:"Type",EndDevice:"End device",Router:"Router",GreenPower:"GreenPower",Unknown:"Unknown",Coordinator:"Coordinator"},Mle={manage_scenes_header:"Manage scenes",add_update_header:"Add/update a scene",scene_id:"Scene ID",recall:"Recall",store:"Store",remove:"Remove",remove_all:"Remove all",add:"Add",select_scene:"Select Scene",scene_name:"Scene Name"},Nle={byType:"By device type",byPowerSource:"By power source",byVendor:"By vendor",byModel:"By model",total:"Total"},Lle={availability:"Availability",offline:"Offline",online:"Online",disabled:"Disabled",enabled:"Enabled"},Dle={generate_external_definition:"Generate external definition",generated_external_definition:"Generated external definition",state_property:"State property",state_property_info:"Set the result into the device's state (only for read)",reset_frontend_state:"Reset frontend state",mqtt:"MQTT",external_converters:"External Converters",external_extensions:"External Extensions",topic:"Topic",send_mqtt:"Send MQTT message",mqtt_topic_info:"Omit the 'base_topic', frontend messages are sent over WebSocket directly to Zigbee2MQTT.",code:"Code",add_update_external_extension:"Add or update external extension",create_new_extension:"Create new extension",select_extension_to_edit:"Select extension to edit",add_update_external_converter:"Add or update external converter",create_new_converter:"Create new converter",select_converter_to_edit:"Select converter to edit",codespace_info:"A Github Codespace is available to help in development",show_definition:"Show definition",hide_definition:"Hide definition"},Ple=JSON.parse(`{"Home Assistant integration (MQTT discovery)":"Home Assistant integration (MQTT discovery)","Enable Home Assistant integration":"Enable Home Assistant integration","Home Assistant discovery topic":"Home Assistant discovery topic","Home Assistant status topic":"Home Assistant status topic","Home Assistant legacy actions sensor, when enabled a action sensor will be discoverd and an empty \`action\` will be send after every published action.":"Home Assistant legacy actions sensor, when enabled a action sensor will be discoverd and an empty \`action\` will be send after every published action.","Home Assistant experimental event entities, when enabled Zigbee2MQTT will add event entities for exposed actions. The events and attributes are currently deemed experimental and subject to change.":"Home Assistant experimental event entities, when enabled Zigbee2MQTT will add event entities for exposed actions. The events and attributes are currently deemed experimental and subject to change.","Checks whether devices are online/offline":"Checks whether devices are online/offline","Enable availability checks":"Enable availability checks","Options for active devices (routers/mains powered)":"Options for active devices (routers/mains powered)","Time after which an active device will be marked as offline in minutes":"Time after which an active device will be marked as offline in minutes","Maximum jitter (in msec) allowed on timeout to avoid availability pings trying to trigger around the same time":"Maximum jitter (in msec) allowed on timeout to avoid availability pings trying to trigger around the same time","Enable timeout backoff on failed availability pings (x1.5, x3, x6, x12...)":"Enable timeout backoff on failed availability pings (x1.5, x3, x6, x12...)","Pause availability pings when backoff reaches over this limit until a new Zigbee message is received from the device. A value of zero disables pausing.":"Pause availability pings when backoff reaches over this limit until a new Zigbee message is received from the device. A value of zero disables pausing.","Options for passive devices (mostly battery powered)":"Options for passive devices (mostly battery powered)","Time after which an passive device will be marked as offline in minutes":"Time after which an passive device will be marked as offline in minutes","MQTT base topic for Zigbee2MQTT MQTT messages":"MQTT base topic for Zigbee2MQTT MQTT messages","MQTT server URL (use mqtts:// for SSL/TLS connection)":"MQTT server URL (use mqtts:// for SSL/TLS connection)","MQTT keepalive in second":"MQTT keepalive in second","Absolute path to SSL/TLS certificate of CA used to sign server and client certificates":"Absolute path to SSL/TLS certificate of CA used to sign server and client certificates","Absolute path to SSL/TLS key for client-authentication":"Absolute path to SSL/TLS key for client-authentication","Absolute path to SSL/TLS certificate for client-authentication":"Absolute path to SSL/TLS certificate for client-authentication","MQTT server authentication user":"MQTT server authentication user","MQTT server authentication password":"MQTT server authentication password","MQTT client ID":"MQTT client ID","Disable self-signed SSL certificate":"Disable self-signed SSL certificate","Include device information to mqtt messages":"Include device information to mqtt messages","MQTT protocol version":"MQTT protocol version","Disable retain for all send messages. ONLY enable if your MQTT broker doesn't support retained message (e.g. AWS IoT core, Azure IoT Hub, Google Cloud IoT core, IBM Watson IoT Platform). Enabling will break the Home Assistant integration":"Disable retain for all send messages. ONLY enable if your MQTT broker doesn't support retained message (e.g. AWS IoT core, Azure IoT Hub, Google Cloud IoT core, IBM Watson IoT Platform). Enabling will break the Home Assistant integration","Specifies the maximum allowed packet length (in bytes) that the server can send to Zigbee2MQTT. NOTE: The same value exists in your MQTT broker but for the length the client can send to it instead.":"Specifies the maximum allowed packet length (in bytes) that the server can send to Zigbee2MQTT. NOTE: The same value exists in your MQTT broker but for the length the client can send to it instead.","Location of the adapter. To autodetect the port, set null":"Location of the adapter. To autodetect the port, set null","Disable LED of the adapter if supported":"Disable LED of the adapter if supported","Adapter type, not needed unless you are experiencing problems":"Adapter type, not needed unless you are experiencing problems","Baud rate speed for the serial port. This must match what the firmware on your adapter supports (most commonly 115200).":"Baud rate speed for the serial port. This must match what the firmware on your adapter supports (most commonly 115200).","RTS / CTS Hardware Flow Control for serial port":"RTS / CTS Hardware Flow Control for serial port","Block devices from the network (by ieeeAddr)":"Block devices from the network (by ieeeAddr)","Allow only certain devices to join the network (by ieeeAddr). Note that all devices not on the passlist will be removed from the network!":"Allow only certain devices to join the network (by ieeeAddr). Note that all devices not on the passlist will be removed from the network!","Your device may request a check for a new firmware update. This value determines how frequently third party servers may actually be contacted to look for firmware updates. The value is set in minutes, and the default is 1 day.":"Your device may request a check for a new firmware update. This value determines how frequently third party servers may actually be contacted to look for firmware updates. The value is set in minutes, and the default is 1 day.","Zigbee devices may request a firmware update, and do so frequently, causing Zigbee2MQTT to reach out to third party servers. If you disable these device initiated checks, you can still initiate a firmware update check manually.":"Zigbee devices may request a firmware update, and do so frequently, causing Zigbee2MQTT to reach out to third party servers. If you disable these device initiated checks, you can still initiate a firmware update check manually.","Location of override OTA index file":"Location of override OTA index file","Limits the rate of requests (in milliseconds) during OTA updates to reduce network congestion. You can increase this value if your network appears unstable during OTA.":"Limits the rate of requests (in milliseconds) during OTA updates to reduce network congestion. You can increase this value if your network appears unstable during OTA.","The size of file chunks sent during an update (in bytes). Note: This value may get ignored for manufacturers that require specific values.":"The size of file chunks sent during an update (in bytes). Note: This value may get ignored for manufacturers that require specific values.","Enable frontend":"Enable frontend","Package used for the frontend":"Package used for the frontend","Frontend binding port. Ignored when using a unix domain socket":"Frontend binding port. Ignored when using a unix domain socket","Frontend binding host. Binds to a unix socket when an absolute path is given instead.":"Frontend binding host. Binds to a unix socket when an absolute path is given instead.","Enables authentication, disabled by default":"Enables authentication, disabled by default","URL on which the frontend can be reached, currently only used for the Home Assistant device configuration page":"URL on which the frontend can be reached, currently only used for the Home Assistant device configuration page","SSL Certificate file path for exposing HTTPS. The sibling property 'ssl_key' must be set for HTTPS to be activated.":"SSL Certificate file path for exposing HTTPS. The sibling property 'ssl_key' must be set for HTTPS to be activated.","SSL key file path for exposing HTTPS. The sibling property 'ssl_cert' must be set for HTTPS to be activated.":"SSL key file path for exposing HTTPS. The sibling property 'ssl_cert' must be set for HTTPS to be activated.","Base URL for the frontend. If hosted under a subpath, e.g. 'http://localhost:8080/z2m', set this to '/z2m'":"Base URL for the frontend. If hosted under a subpath, e.g. 'http://localhost:8080/z2m', set this to '/z2m'","Hide frontend notifications matching specified regex strings. Example: 'z2m: Failed to ping.*'":"Hide frontend notifications matching specified regex strings. Example: 'z2m: Failed to ping.*'","If true, the frontend UI is not served, only the WebSocket is maintained by Zigbee2MQTT (you are required to serve a standalone UI yourself as needed).":"If true, the frontend UI is not served, only the WebSocket is maintained by Zigbee2MQTT (you are required to serve a standalone UI yourself as needed).","Log rotation":"Log rotation","Console json log":"Console json log","Create symlink to current logs in the log directory":"Create symlink to current logs in the log directory","Output location of the log, leave empty to suppress logging":"Output location of the log, leave empty to suppress logging","Location of log directory":"Location of log directory","Log file name, can also contain timestamp":"Log file name, can also contain timestamp","Logging level":"Logging level","Set individual log levels for certain namespaces":"Set individual log levels for certain namespaces","Log debug level to MQTT and frontend (may decrease overall performance)":"Log debug level to MQTT and frontend (may decrease overall performance)","Do not log these namespaces (regex-based) for debug level":"Do not log these namespaces (regex-based) for debug level","Number of log directories to keep before deleting the oldest one":"Number of log directories to keep before deleting the oldest one","The host running syslogd, defaults to localhost.":"The host running syslogd, defaults to localhost.","The port on the host that syslog is running on, defaults to syslogd's default port.":"The port on the host that syslog is running on, defaults to syslogd's default port.","The network protocol to log over (e.g. tcp4, udp4, tls4, unix, unix-connect, etc).":"The network protocol to log over (e.g. tcp4, udp4, tls4, unix, unix-connect, etc).","The path to the syslog dgram socket (i.e. /dev/log or /var/run/syslog for OS X).":"The path to the syslog dgram socket (i.e. /dev/log or /var/run/syslog for OS X).","PID of the process that log messages are coming from (Default process.pid).":"PID of the process that log messages are coming from (Default process.pid).","Host to indicate that log messages are coming from (Default: localhost).":"Host to indicate that log messages are coming from (Default: localhost).","The type of the syslog protocol to use (Default: BSD, also valid: 5424).":"The type of the syslog protocol to use (Default: BSD, also valid: 5424).","The name of the application (Default: Zigbee2MQTT).":"The name of the application (Default: Zigbee2MQTT).","The end of line character to be added to the end of the message (Default: Message without modifications).":"The end of line character to be added to the end of the message (Default: Message without modifications).","ZigBee pan ID, changing requires re-pairing all devices!":"ZigBee pan ID, changing requires re-pairing all devices!","Zigbee extended pan ID, changing requires re-pairing all devices!":"Zigbee extended pan ID, changing requires re-pairing all devices!","Zigbee channel, changing might require re-pairing some devices! (Note: use a ZLL channel: 11, 15, 20, or 25 to avoid problems)":"Zigbee channel, changing might require re-pairing some devices! (Note: use a ZLL channel: 11, 15, 20, or 25 to avoid problems)","Adapter concurrency (e.g. 2 for CC2531 or 16 for CC26X2R1) (default: null, uses recommended value)":"Adapter concurrency (e.g. 2 for CC2531 or 16 for CC26X2R1) (default: null, uses recommended value)","Adapter delay":"Adapter delay","MQTT message payload will contain all attributes, not only changed ones. Has to be true when integrating via Home Assistant":"MQTT message payload will contain all attributes, not only changed ones. Has to be true when integrating via Home Assistant","Persist cached state, only used when cache_state: true":"Persist cached state, only used when cache_state: true","Send cached state on startup, only used when cache_state: true":"Send cached state on startup, only used when cache_state: true","Add a last_seen attribute to MQTT messages, contains date/time of last Zigbee message":"Add a last_seen attribute to MQTT messages, contains date/time of last Zigbee message","Add an elapsed attribute to MQTT messages, contains milliseconds since the previous msg":"Add an elapsed attribute to MQTT messages, contains milliseconds since the previous msg","Network encryption key, changing requires re-pairing all devices!":"Network encryption key, changing requires re-pairing all devices!","Log timestamp format":"Log timestamp format","Transmit power of adapter, only available for Z-Stack (CC253*/CC2652/CC1352) adapters, CC2652 = 5dbm, CC1352 max is = 20dbm (5dbm default)":"Transmit power of adapter, only available for Z-Stack (CC253*/CC2652/CC1352) adapters, CC2652 = 5dbm, CC1352 max is = 20dbm (5dbm default)","Examples when 'state' of a device is published json: topic: 'zigbee2mqtt/my_bulb' payload '{\\"state\\": \\"ON\\"}' attribute: topic 'zigbee2mqtt/my_bulb/state' payload 'ON' attribute_and_json: both json and attribute (see above)":"Examples when 'state' of a device is published json: topic: 'zigbee2mqtt/my_bulb' payload '{\\"state\\": \\"ON\\"}' attribute: topic 'zigbee2mqtt/my_bulb/state' payload 'ON' attribute_and_json: both json and attribute (see above)","Periodically check the health of Zigbee2MQTT":"Periodically check the health of Zigbee2MQTT","Interval between checks in minutes":"Interval between checks in minutes","If true, will reset stats every time the health check is executed (only applicable to stats that can be reset).":"If true, will reset stats every time the health check is executed (only applicable to stats that can be reset).","Used in the MQTT topic of a device. By default this is the device ID":"Used in the MQTT topic of a device. By default this is the device ID","Retain MQTT messages of this device":"Retain MQTT messages of this device","Disables the device (excludes device from network scans, availability and group state updates)":"Disables the device (excludes device from network scans, availability and group state updates)","Sets the MQTT Message Expiry in seconds, Make sure to set mqtt.version to 5":"Sets the MQTT Message Expiry in seconds, Make sure to set mqtt.version to 5","QoS level for MQTT messages of this device":"QoS level for MQTT messages of this device","The minimum time between payloads in seconds. Payloads received whilst the device is being throttled will be discarded":"The minimum time between payloads in seconds. Payloads received whilst the device is being throttled will be discarded","Debounces messages of this device":"Debounces messages of this device","Protects unique payload values of specified payload properties from overriding within debounce time":"Protects unique payload values of specified payload properties from overriding within debounce time","Publish optimistic state after set":"Publish optimistic state after set","Filter attributes with regex from published payload.":"Filter attributes with regex from published payload.","Filter attributes with regex from being added to the cache, this prevents the attribute from being in the published payload when the value didn't change.":"Filter attributes with regex from being added to the cache, this prevents the attribute from being in the published payload when the value didn't change.","Filter attributes with regex from optimistic publish payload when calling /set. (This has no effect if optimistic is set to false).":"Filter attributes with regex from optimistic publish payload when calling /set. (This has no effect if optimistic is set to false).","The user-defined device icon for the frontend. It can be a full URL link to an image (e.g. https://SOME.SITE/MODEL123.jpg) or a path to a local file inside the \`device_icons\` directory (e.g. device_icons/MODEL123.png).":"The user-defined device icon for the frontend. It can be a full URL link to an image (e.g. https://SOME.SITE/MODEL123.jpg) or a path to a local file inside the \`device_icons\` directory (e.g. device_icons/MODEL123.png).","Name of the device in Home Assistant":"Name of the device in Home Assistant","QoS level for MQTT messages of this group":"QoS level for MQTT messages of this group","Control when to publish state OFF or CLOSE for a group. 'all_members_off': only publish state OFF/CLOSE when all group members are in state OFF/CLOSE, 'last_member_state': publish state OFF whenever one of its members changes to OFF":"Control when to publish state OFF or CLOSE for a group. 'all_members_off': only publish state OFF/CLOSE when all group members are in state OFF/CLOSE, 'last_member_state': publish state OFF whenever one of its members changes to OFF"}`),$B={common:ble,devicePage:_le,exposes:Sle,groups:Ele,logs:Tle,network:Rle,navbar:Ole,ota:Ale,settings:wle,health:xle,touchlink:Cle,values:Ile,zigbee:qle,scene:Mle,stats:Nle,availability:Lle,devConsole:Dle,settingsSchemaDescriptions:Ple},jle={},kle={},zle={},Ule={action:"Action",actions:"Actions",apply:"Appliquer",attribute:"Attribut",bind:"Lier",clear:"Effacer",close:"Fermer",cancel:"Annuler",cluster:"Cluster",clusters:"Clusters",confirmation:"Demande de confirmation",delete:"Supprimer",destination:"Destination",devices:"Appareils",dialog_confirmation_prompt:"Êtes-vous sûr ?",disable:"Désactiver",search:"Rechercher",highlight:"Mettre en évidence",groups:"Groupes",loading:"Chargement...",none:"Aucun",ok:"OK",read:"Lire",save:"Sauvegarder",select_value:"Sélectionner la valeur",select_device:"Sélectionner un appareil",select_endpoint:"Sélectionner un point de terminaison",select_group:"Sélectionner un groupe",source_endpoint:"Point de terminaison source",the_only_endpoint:"Le seul point de terminaison",unbind:"Délier",write:"Écrire",destination_endpoint:"Point de terminaison de destination",read_the_docs_info:"Lire à ce sujet dans la documentation...",page:"Page",go_to_page:"Aller à la page",show:"Afficher",min:"Min",max:"Max",done:"Terminé",enter_auth_token:"Entrer le jeton d'authentification",token:"Jeton",documentation:"Documentation",optional:"Facultatif",init:"Initialiser",undefined:"Indéfini",type_to_filter:"Tapez pour filtrer...",name:"Nom",friendly_name:"Nom d'affichage",unknown_device:"Appareil inconnu",unknown_group:"Groupe inconnu",failed:"Échoué",disabled:"Désactivé",hide_disabled:"Masquer les désactivés",battery_low_only:"Batterie faible uniquement",available_only:"Disponible uniquement",execute:"Exécuter",command:"Commande",payload:"Charge utile",execute_command:"Exécuter la commande",send:"Envoyer",columns:"Colonnes",entries:"Entrées"},Fle={about:"À propos",bind:"Lier",clusters:"Clusters",dev_console:"Console de développement",reporting:"Rapport",settings:"Paramètres",settings_specific:"Paramètres (spécifiques)",state:"État",groups:"Groupes",scene:"Scène",exposes:"Exposés",select_a_device:"Sélectionner un appareil"},Ble={empty_exposes_definition:"Définition d'exposés vide"},Hle={settings:"Paramètres",add_to_group_header:"Ajouter un appareil au groupe",add_to_group:"Ajouter au groupe",create_group:"Créer un groupe",friendly_name_placeholder:"luminaires_salon, jardin...",remove_group:"Supprimer le groupe",group_id:"ID du groupe",group_members:"Membres du groupe",scenes:"Scènes",rename_group:"Renommer le groupe",remove_from_group:"Retirer du groupe"},$le={log_level_config:"Configuration du niveau de journal",empty_logs_message:"Rien à afficher",filter_by_text:"Filtrer par texte",show_only:"Afficher uniquement",logs_limit:"Limite des journaux",highlight_only:"Mettre en évidence uniquement"},Gle={network_hierarchy:"Hiérarchie du réseau",help:"Aide",load:"Charger",reload:"Recharger",loading:"En fonction de la taille du réseau et de la qualité de ses liens, cela peut prendre un certain temps.",parent:"Parent",child:"Enfant",sibling:"Frère",children:"Enfants",siblings:"Frères",previous_children:"Enfants précédents",nodes:"Nœuds",edges:"Arêtes",legend:"Légende",depth:"Profondeur",routes:"Routes",type:"Type",raw:"Afficher les données/carte",graphviz:"Externe - Graphviz",plantuml:"Externe - PlantUML",enable_routes:"Activer les routes",display_type:"Type d'affichage",data:"Données",map:"Carte",layout_type:"Type de disposition",label_type:"Type d'étiquette",download_image:"Télécharger l'image",zoom_in:"Zoomer",zoom_out:"Dézoomer",fit_view:"Adapter à l'écran",reset_controls:"Réinitialiser les contrôles",find_node:"Trouver un nœud",scroll_to_top:"Faire défiler vers le haut",node_strength:"Force du nœud",link_distance:"Distance du lien",copy_paste_on:"Copier et coller les données suivantes dans l'un des visionneurs/éditeurs en ligne disponibles.",highlight_info:"Cliquez sur l'image d'un appareil pour le mettre en évidence automatiquement.",legend_node_siblings:"Seuls les frères/sœurs les mieux classés sont affichés, ce qui correspond à peu près aux connexions réelles du réseau.",legend_node_size:"Les nœuds sont dimensionnés en fonction de leur centralité.",legend_node_select:"Sélectionner un nœud sélectionnera la partie du réseau dépendante à un saut.",legend_node_fold:"Le bouton de menu contextuel du nœud pour plier/déplier affectera la partie dépendante du réseau.",legend_edge_toggle:"Basculer les arêtes de relation modifiera la disposition. Lorsque l'une ou plusieurs sont désactivées, la disposition réelle du réseau n'est plus représentée avec précision."},Vle={all:"Tout",dashboard:"Tableau de bord",devices:"Appareils",disable_join:"Désactiver l'appairage",extensions:"Extensions",groups:"Groupes",logs:"Journaux",network:"Réseau",ota:"OTA",permit_join:"Autoriser l'appairage",restart:"Redémarrer",settings:"Paramètres",toggle_dropdown:"Basculer le menu déroulant",touchlink:"Touchlink",websocket_status:"Statut WebSocket"},Wle={check:"Vérifier les mises à jour",check_selected:"Vérifier la sélection",update_selected:"Mettre à jour la sélection",update_selected_info:"Une mise à jour OTA est très exigeante pour un réseau. Assurez-vous qu'il est stable et optez pour des moments moins utilisés.",empty_ota_message:"Aucun appareil ne prend en charge la mise à jour à distance actuellement",remaining_time:"Temps restant",schedule:"Planifier la mise à jour",schedule_info:"La mise à jour se fera lors de la prochaine demande OTA de l'appareil",unschedule:"Annuler la mise à jour programmée",update:"Mettre à jour le firmware de l'appareil",firmware_version:"Version du firmware",available_firmware_version:"Version du firmware disponible",app:"Application",stack:"Pile"},Yle={about:"À propos",advanced:"Avancé",availability:"Disponibilité",blocklist:"Liste noire",revision:"Révision",coordinator:"Coordinateur",donate:"Faire un don",donation_text:"Ici, vous pouvez nous remercier pour tout le travail accompli. N'hésitez pas à dire quelque chose de gentil aussi ;)",download_state:"Télécharger l'état",experimental:"Expérimental",external_converters:"Convertisseurs externes",frontend:"Frontend",frontend_version:"Version du frontend",main:"Principal",mqtt:"MQTT",ota:"Mises à jour OTA",passlist:"Liste blanche",bridge:"Passerelle",restart_zigbee2mqtt:"Redémarrer Zigbee2MQTT",serial:"Série",settings:"Paramètres",tools:"Outils",zigbee2mqtt_version:"Version de Zigbee2MQTT",translate:"Traduire",stats:"Statistiques",coordinator_ieee_address:"Adresse IEEE du coordinateur",request_z2m_backup:"Demander une sauvegarde Z2M",add_install_code:"Ajouter un code d'installation",install_code:"Code d'installation",homeassistant:"Intégration Home Assistant",translation_prompt:"Vous pouvez aider à la traduction sur",zigbee_herdsman_converters_version:"Version de zigbee-herdsman-converters",zigbee_herdsman_version:"Version de zigbee-herdsman",localise_images:"Localiser les images des appareils",frontend_notice:"Ces paramètres sont stockés localement dans votre navigateur. L'utilisation d'une fenêtre privée ou la suppression du cache les réinitialisera.",reset_settings:"Réinitialiser les paramètres",reset_auth:"Réinitialiser l'authentification",reset_all:"Réinitialiser tout",language:"Langue",theme:"Thème",homepage:"Page d'accueil",dashboard_column_display:"Affichage en colonnes du tableau de bord",permit_join_time:"Temps d'autorisation d'appairage",dev_console:"Console de développement",max_on_screen_notifications:"Nombre max de notifications à l'écran",network_raw:"Données réseau / Carte brute",network_map:"Carte du réseau",machine:"Machine",node_version:"Version de Node",version:"Version",health:"État"},Kle={awaiting_next_check:"En attente de la prochaine vérification",last_check:"Dernière vérification",response_time:"Temps de réponse",os:"Système d'exploitation",process:"Processus",load_average:"Charge moyenne",ram_usage:"Utilisation de la RAM",uptime:"Temps de fonctionnement",queued:"En file d'attente",published:"Publié",received:"Reçu",messages:"Messages",messages_per_sec:"Messages par seconde",leave_count:"Nombre de départs",network_address_changes:"Changements d'adresse réseau",very_low:"Très faible",interview_info:"Les interrogations des appareils peuvent fortement influencer ces données."},Qle={detected_devices_message:"{{count}} appareils Touchlink détectés.",rescan:"Analyser de nouveau",scan:"Analyser",identify:"Identifier",factory_reset:"Réinitialisation d'usine"},Zle={clear:"Effacer",closed:"Fermé",false:"Faux",not_supported:"Non pris en charge",occupied:"Occupé",open:"Ouvert",supported:"Pris en charge",true:"Vrai",empty_string:'Chaîne vide ("")',leaking:"Fuite détectée",tampered:"Altéré",null:"Null",Clear:"Effacer",Closed:"Fermé",Occupied:"Occupé",Open:"Ouvert"},Xle={actions:"Actions",attribute:"Attribut",unknown:"Inconnu",mains_single_phase:"Réseau (monophasé)",mains_3_phase:"Réseau (triphasé)",battery:"Pile",dc_source:"Source CC",emergency_mains_constantly_powered:"Réseau de secours toujours alimenté",emergency_mains_and_transfer_switch:"Réseau de secours et commutateur de transfert",block_join:"Interdire l'appairage",cluster:"Groupe de fonctionnalités",description:"Description",device_type:"Type d'appareil",endpoint:"Point de terminaison",firmware_id:"ID du firmware",firmware_build_date:"Date de compilation du firmware",force_remove:"Suppression forcée",force_remove_notice:"À n'utiliser qu'en dernier recours (ne sera pas propagé au réseau)",ieee_address:"Adresse IEEE",interview:"Interrogation",interview_failed:"Interrogation échouée",interviewing:"En cours d'interrogation",interview_state:"État de l'interrogation",last_seen:"Dernière vue",lqi:"LQI",manufacturer:"Fabricant",max_rep_interval:"Intervalle max de rapport",min_rep_change:"Changement min de rapport",min_rep_interval:"Intervalle min de rapport",model:"Modèle",network_address:"Adresse réseau",network_address_hex:"Adresse réseau (hexadécimal)",network_address_dec:"Adresse réseau (décimal)",none:"Aucun",pic:"Image",power:"Puissance",power_level:"Niveau de puissance",reconfigure:"Reconfigurer",remove_device:"Supprimer l'appareil",rename_device:"Renommer l'appareil",select_attribute:"Sélectionner un attribut",select_cluster:"Sélectionner un groupe",support_status:"Statut de prise en charge",unsupported:"Non pris en charge",updating_firmware:"Mise à jour du firmware",update_Home_assistant_entity_id:"Mettre à jour l'ID d'entité Home Assistant",zigbee_manufacturer:"Fabricant ZigBee",zigbee_model:"Modèle ZigBee",device:"Appareil",channel:"Canal",possible:"Possible",available:"Disponible",edit_description:"Modifier la description",save_description:"Enregistrer la description",update_description:"Mettre à jour la description",read_write_attributes:"Lire/écrire les attributs du cluster de point de terminaison",input_clusters:"Clusters d'entrée",output_clusters:"Clusters de sortie",custom_clusters:"Clusters personnalisés",other_zcl_clusters:"Autres clusters ZCL",how_to_add_support:"Comment ajouter la prise en charge ?",group:"Groupe",type:"Type",EndDevice:"Appareil terminal",Router:"Routeur",GreenPower:"GreenPower",Unknown:"Inconnu",Coordinator:"Coordinateur"},Jle={manage_scenes_header:"Gérer les scènes",add_update_header:"Ajouter/mettre à jour une scène",scene_id:"ID de la scène",recall:"Rappeler",store:"Enregistrer",remove:"Supprimer",remove_all:"Tout supprimer",add:"Ajouter",select_scene:"Sélectionner une scène",scene_name:"Nom de la scène"},ece={byType:"Par type d'appareil",byPowerSource:"Par source d'alimentation",byVendor:"Par fournisseur",byModel:"Par modèle",total:"Total"},rce={availability:"Disponibilité",offline:"Hors ligne",online:"En ligne",disabled:"Désactivé",enabled:"Activé"},tce={generate_external_definition:"Générer une définition externe",generated_external_definition:"Définition externe générée",state_property:"Propriété d'état",state_property_info:"Définir le résultat dans l'état de l'appareil (lecture uniquement)",reset_frontend_state:"Réinitialiser l'état du frontend",mqtt:"MQTT",external_converters:"Convertisseurs externes",external_extensions:"Extensions externes",topic:"Sujet",send_mqtt:"Envoyer un message MQTT",mqtt_topic_info:"Omettre le «base_topic», les messages frontend sont envoyés directement par WebSocket à Zigbee2MQTT.",code:"Code",add_update_external_extension:"Ajouter ou mettre à jour une extension externe",create_new_extension:"Créer une nouvelle extension",select_extension_to_edit:"Sélectionner l'extension à modifier",add_update_external_converter:"Ajouter ou mettre à jour un convertisseur externe",create_new_converter:"Créer un nouveau convertisseur",select_converter_to_edit:"Sélectionner le convertisseur à modifier",codespace_info:"Un Codespace GitHub est disponible pour aider au développement"},ace=JSON.parse(`{"Home Assistant integration (MQTT discovery)":"Intégration Home Assistant (découverte MQTT)","Enable Home Assistant integration":"Activer l'intégration Home Assistant","Home Assistant discovery topic":"Sujet de découverte Home Assistant","Home Assistant status topic":"Sujet de statut Home Assistant","Home Assistant legacy actions sensor, when enabled a action sensor will be discoverd and an empty \`action\` will be send after every published action.":"Capteur d'actions hérité Home Assistant : quand activé, un capteur d'action est découvert et une action vide sera envoyée après chaque action publiée.","Home Assistant experimental event entities, when enabled Zigbee2MQTT will add event entities for exposed actions. The events and attributes are currently deemed experimental and subject to change.":"Entités d'événements expérimentales Home Assistant : quand activé, Zigbee2MQTT ajoute des entités d'événements pour les actions exposées. Ces événements et attributs sont considérés expérimentaux et peuvent évoluer.","Checks whether devices are online/offline":"Vérifie si les appareils sont en ligne/hors ligne","Enable availability checks":"Activer les vérifications de disponibilité","Options for active devices (routers/mains powered)":"Options pour les appareils actifs (routeurs/alimentation secteur)","Time after which an active device will be marked as offline in minutes":"Délai après lequel un appareil actif est marqué hors ligne (en minutes)","Maximum jitter (in msec) allowed on timeout to avoid availability pings trying to trigger around the same time":"Dénivellement max (en ms) autorisé sur le timeout pour éviter que les pings de disponibilité ne déclenchent tous en même temps","Enable timeout backoff on failed availability pings (x1.5, x3, x6, x12...)":"Activer le retour en arrière de timeout sur pings de disponibilité échoués (x1,5, x3, x6, x12…)","Pause availability pings when backoff reaches over this limit until a new Zigbee message is received from the device. A value of zero disables pausing.":"Mettre en pause les pings de disponibilité lorsque le backoff dépasse cette limite, jusqu'à réception d'un nouveau message Zigbee. Zéro désactive la pause.","Options for passive devices (mostly battery powered)":"Options pour les appareils passifs (principalement sur pile)","Time after which an passive device will be marked as offline in minutes":"Délai après lequel un appareil passif est marqué hors ligne (en minutes)","MQTT base topic for Zigbee2MQTT MQTT messages":"Sujet de base MQTT pour les messages Zigbee2MQTT","MQTT server URL (use mqtts:// for SSL/TLS connection)":"URL du serveur MQTT (utiliser mqtts:// pour TLS/SSL)","MQTT keepalive in second":"Keepalive MQTT en secondes","Absolute path to SSL/TLS certificate of CA used to sign server and client certificates":"Chemin absolu vers le certificat SSL/TLS de l'AC utilisé pour signer les certificats","Absolute path to SSL/TLS key for client-authentication":"Chemin absolu vers la clé SSL/TLS pour l'authentification client","Absolute path to SSL/TLS certificate for client-authentication":"Chemin absolu vers le certificat SSL/TLS pour l'authentification client","MQTT server authentication user":"Utilisateur pour l'authentification au serveur MQTT","MQTT server authentication password":"Mot de passe pour l'authentification au serveur MQTT","MQTT client ID":"ID client MQTT","Disable self-signed SSL certificate":"Désactiver certificat SSL auto-signé","Include device information to mqtt messages":"Inclure les informations de l'appareil dans les messages MQTT","MQTT protocol version":"Version du protocole MQTT","Disable retain for all send messages. ONLY enable if your MQTT broker doesn't support retained message (e.g. AWS IoT core, Azure IoT Hub, Google Cloud IoT core, IBM Watson IoT Platform). Enabling will break the Home Assistant integration":"Désactiver le retain pour tous les messages envoyés. À activer uniquement si votre broker MQTT ne supporte pas le retain (p. ex. AWS IoT Core, Azure IoT Hub…). Cela rompra l'intégration Home Assistant.","Specifies the maximum allowed packet length (in bytes) that the server can send to Zigbee2MQTT. NOTE: The same value exists in your MQTT broker but for the length the client can send to it instead.":"Spécifie la longueur maximale autorisée d'un paquet (en octets) que le serveur peut envoyer à Zigbee2MQTT. NOTE : la même valeur existe dans votre broker pour la longueur que le client peut envoyer.","Location of the adapter. To autodetect the port, set null":"Emplacement de l'adaptateur. Pour autodétecter le port, mettre null","Disable LED of the adapter if supported":"Désactiver la LED de l'adaptateur si supporté","Adapter type, not needed unless you are experiencing problems":"Type d'adaptateur, non nécessaire sauf en cas de problèmes","Baud rate speed for serial port, this can be anything firmware support but default is 115200 for Z-Stack and EZSP, 38400 for Deconz, however note that some EZSP firmware need 57600":"Vitesse du port série (baud rate), dépend du firmware : 115200 par défaut pour Z-Stack/EZSP, 38400 pour Deconz ; certains EZSP nécessitent 57600.","RTS / CTS Hardware Flow Control for serial port":"Contrôle de flux matériel RTS/CTS pour port série","Block devices from the network (by ieeeAddr)":"Bloquer les appareils du réseau (par ieeeAddr)","Allow only certain devices to join the network (by ieeeAddr). Note that all devices not on the passlist will be removed from the network!":"Autoriser seulement certains appareils à rejoindre le réseau (par ieeeAddr). Tous les appareils non listés seront retirés !","Your device may request a check for a new firmware update. This value determines how frequently third party servers may actually be contacted to look for firmware updates. The value is set in minutes, and the default is 1 day.":"Votre appareil peut demander une vérification de mise à jour : cette valeur détermine la fréquence (en minutes) des requêtes aux serveurs tiers. Par défaut, 1 jour.","Zigbee devices may request a firmware update, and do so frequently, causing Zigbee2MQTT to reach out to third party servers. If you disable these device initiated checks, you can still initiate a firmware update check manually.":"Les appareils Zigbee peuvent demander souvent une mise à jour firmware, provoquant des requêtes à des serveurs tiers. Si vous les désactivez, vous pouvez toujours lancer cette vérification manuellement.","Location of override OTA index file":"Emplacement du fichier d'index OTA de remplacement","Limits the rate of requests (in milliseconds) during OTA updates to reduce network congestion. You can increase this value if your network appears unstable during OTA.":"Limite le taux de requêtes (en ms) lors des mises à jour OTA pour éviter la congestion. Augmentez si instabilité réseau.","The size of file chunks sent during an update (in bytes). Note: This value may get ignored for manufacturers that require specific values.":"Taille des blocs envoyés pendant la mise à jour (en octets). Note : certains fabricants exigent une valeur spécifique, ce qui peut ignorer cette valeur.","Enable frontend":"Activer l'interface","Package used for the frontend":"Package utilisé pour l'interface","Frontend binding port. Ignored when using a unix domain socket":"Port d'écoute de l'interface. Ignoré si socket Unix utilisé","Frontend binding host. Binds to a unix socket when an absolute path is given instead.":"Hôte d'écoute de l'interface. Utilise un socket Unix si un chemin absolu est donné.","Enables authentication, disabled by default":"Active l'authentification, désactivée par défaut","URL on which the frontend can be reached, currently only used for the Home Assistant device configuration page":"URL d'accès à l'interface, utilisée uniquement pour la page de configuration Home Assistant","SSL Certificate file path for exposing HTTPS. The sibling property 'ssl_key' must be set for HTTPS to be activated.":"Chemin du fichier de certificat SSL pour HTTPS. La propriété 'ssl_key' doit être définie pour activer HTTPS.","SSL key file path for exposing HTTPS. The sibling property 'ssl_cert' must be set for HTTPS to be activated.":"Chemin du fichier clé SSL pour HTTPS. La propriété 'ssl_cert' doit être définie pour activer HTTPS.","Base URL for the frontend. If hosted under a subpath, e.g. 'http://localhost:8080/z2m', set this to '/z2m'":"URL de base de l'interface. Si elle est hébergée sous un sous-chemin (ex. '/z2m'), définissez-le ici.","Hide frontend notifications matching specified regex strings. Example: 'z2m: Failed to ping.*'":"Masquer les notifications de l'interface correspondant aux expressions régulières spécifiées. Exemple : 'z2m: Failed to ping.*'","Log rotation":"Rotation des logs","Console json log":"Log JSON console","Create symlink to current logs in the log directory":"Créer un lien symbolique vers les logs actuels dans le répertoire","Output location of the log, leave empty to suppress logging":"Emplacement des logs ; laisser vide pour désactiver","Location of log directory":"Emplacement du répertoire de logs","Log file name, can also contain timestamp":"Nom du fichier de log, peut inclure un timestamp","Logging level":"Niveau de journalisation","Set individual log levels for certain namespaces":"Définir des niveaux de log individuels par espace de noms","Log debug level to MQTT and frontend (may decrease overall performance)":"Journaliser le niveau debug vers MQTT et interface (peut réduire les performances)","Do not log these namespaces (regex-based) for debug level":"Ne pas loguer ces espaces de noms (basé regex) au niveau debug","Number of log directories to keep before deleting the oldest one":"Nombre de répertoires de logs à conserver avant suppression du plus ancien","The host running syslogd, defaults to localhost.":"Hôte exécutant syslogd, par défaut localhost.","The port on the host that syslog is running on, defaults to syslogd's default port.":"Port sur lequel syslog tourne, par défaut le port standard syslogd.","The network protocol to log over (e.g. tcp4, udp4, tls4, unix, unix-connect, etc).":"Protocole réseau pour la journalisation (ex. tcp4, udp4, tls4, unix…).","The path to the syslog dgram socket (i.e. /dev/log or /var/run/syslog for OS X).":"Chemin vers la socket datagramme syslog (ex. /dev/log ou /var/run/syslog).","PID of the process that log messages are coming from (Default process.pid).":"PID du processus d'origine des logs (par défaut process.pid).","Host to indicate that log messages are coming from (Default: localhost).":"Hôte indiqué comme source des logs (par défaut : localhost).","The type of the syslog protocol to use (Default: BSD, also valid: 5424).":"Type de protocole syslog à utiliser (par défaut BSD, ou 5424).","The name of the application (Default: Zigbee2MQTT).":"Nom de l'application (par défaut : Zigbee2MQTT).","The end of line character to be added to the end of the message (Default: Message without modifications).":"Caractère de fin de ligne ajouté au message (par défaut : aucun).","ZigBee pan ID, changing requires re-pairing all devices!":"Identifiant PAN ZigBee, le changer nécessite de ré-appairer tous les appareils !","Zigbee extended pan ID, changing requires re-pairing all devices!":"PAN ID étendu ZigBee, le changer nécessite de ré-appairer tous les appareils !","Zigbee channel, changing might require re-pairing some devices! (Note: use a ZLL channel: 11, 15, 20, or 25 to avoid problems)":"Canal ZigBee, le changer peut nécessiter de ré-appairer certains appareils ! (Utiliser un canal ZLL : 11, 15, 20 ou 25 pour éviter les problèmes)","Adapter concurrency (e.g. 2 for CC2531 or 16 for CC26X2R1) (default: null, uses recommended value)":"Concurrence de l'adaptateur (ex. 2 pour CC2531, 16 pour CC26X2R1) (par défaut null, utilise la valeur recommandée)","Adapter delay":"Délai de l'adaptateur","MQTT message payload will contain all attributes, not only changed ones. Has to be true when integrating via Home Assistant":"La charge MQTT contiendra tous les attributs, pas seulement ceux modifiés. Doit être activé pour l'intégration Home Assistant","Persist cached state, only used when cache_state: true":"Conserver l'état en cache, utilisé uniquement si cache_state est vrai","Send cached state on startup, only used when cache_state: true":"Envoyer l'état mis en cache au démarrage (si cache_state = vrai)","Add a last_seen attribute to MQTT messages, contains date/time of last Zigbee message":"Ajouter un attribut last_seen aux messages MQTT, contenant la date/heure du dernier message Zigbee","Add an elapsed attribute to MQTT messages, contains milliseconds since the previous msg":"Ajouter un attribut elapsed aux messages MQTT, indiquant les ms depuis le message précédent","Network encryption key, changing requires re-pairing all devices!":"Clé de chiffrement du réseau, la changer nécessite de ré-appairer tous les appareils !","Log timestamp format":"Format du timestamp des logs","Transmit power of adapter, only available for Z-Stack (CC253*/CC2652/CC1352) adapters, CC2652 = 5dbm, CC1352 max is = 20dbm (5dbm default)":"Puissance d'émission de l'adaptateur (Z-Stack CC253*/CC2652/CC1352). CC2652 = 5dBm, CC1352 max = 20dBm (5dBm par défaut)","Examples when 'state' of a device is published json: topic: 'zigbee2mqtt/my_bulb' payload '{\\"state\\": \\"ON\\"}' attribute: topic 'zigbee2mqtt/my_bulb/state' payload 'ON' attribute_and_json: both json and attribute (see above)":"Exemples de publication JSON de l'état : topic 'zigbee2mqtt/my_bulb', payload '{\\"state\\": \\"ON\\"}', attribute : topic 'zigbee2mqtt/my_bulb/state', payload 'ON', attribute_and_json : les deux (voir ci-dessus)","Periodically check the health of Zigbee2MQTT":"Vérifier périodiquement la santé de Zigbee2MQTT","Interval between checks in minutes":"Intervalle entre les vérifications (en minutes)","If true, will reset stats every time the health check is executed (only applicable to stats that can be reset).":"Si vrai, réinitialise les statistiques à chaque vérification (uniquement celles réinitialisables).","Used in the MQTT topic of a device. By default this is the device ID":"Utilisé dans le topic MQTT d'un appareil. Par défaut, c'est l'ID de l'appareil","Retain MQTT messages of this device":"Conserver les messages MQTT de cet appareil","Disables the device (excludes device from network scans, availability and group state updates)":"Désactive l'appareil (exclut des scans réseau, disponibilité et mises à jour d'état de groupe)","Sets the MQTT Message Expiry in seconds, Make sure to set mqtt.version to 5":"Définit le délai d'expiration des messages MQTT (en secondes). Assurez-vous d'utiliser mqtt.version = 5","QoS level for MQTT messages of this device":"Niveau QoS des messages MQTT de cet appareil","The minimum time between payloads in seconds. Payloads received whilst the device is being throttled will be discarded":"Temps minimum entre deux payloads (en secondes). Les payloads reçus pendant une limitation seront ignorés","Debounces messages of this device":"Applique un anti-rebond aux messages de cet appareil","Protects unique payload values of specified payload properties from overriding within debounce time":"Protège les valeurs uniques des propriétés payload spécifiées contre écrasement pendant le temps de débounce","Publish optimistic state after set":"Publier l'état optimiste après set","Filter attributes with regex from published payload.":"Filtrer les attributs du payload publié via regex.","Filter attributes with regex from being added to the cache, this prevents the attribute from being in the published payload when the value didn't change.":"Filtrer les attributs ajoutés au cache via regex, afin qu'ils ne soient pas dans le payload si la valeur n'a pas changé.","Filter attributes with regex from optimistic publish payload when calling /set. (This has no effect if optimistic is set to false).":"Filtrer les attributs du payload optimiste (lors de /set) via regex. (Sans effet si optimistic=false).","The user-defined device icon for the frontend. It can be a full URL link to an image (e.g. https://SOME.SITE/MODEL123.jpg) or a path to a local file inside the \`device_icons\` directory (e.g. device_icons/MODEL123.png).":"Icône d'appareil définie par l'utilisateur pour l'interface. Peut être une URL vers une image ou un chemin local dans \`device_icons\`.","Name of the device in Home Assistant":"Nom de l'appareil dans Home Assistant","Control when to publish state OFF or CLOSE for a group. 'all_members_off': only publish state OFF/CLOSE when all group members are in state OFF/CLOSE, 'last_member_state': publish state OFF whenever one of its members changes to OFF":"Contrôle la publication de l'état OFF/FERMÉ pour un groupe: 'all_members_off' = publier OFF/CLOSE quand tous les membres sont OFF/CLOSE ; 'last_member_state' = publier OFF dès qu'un membre passe à OFF"}`),nce={common:Ule,devicePage:Fle,exposes:Ble,groups:Hle,logs:$le,network:Gle,navbar:Vle,ota:Wle,settings:Yle,health:Kle,touchlink:Qle,values:Zle,zigbee:Xle,scene:Jle,stats:ece,availability:rce,devConsole:tce,settingsSchemaDescriptions:ace},ice={},oce={},sce={},uce={},lce={},cce={},fce={},dce={},vce={},hce={},pce={},gce={};et("bg",aue);et("ca",oue);et("cs",lue);et("da",due);et("de",pue);et("es",yue);et("eu",Sue);et("fi",Rue);et("fr",wue);et("hu",Iue);et("it",Nue);et("ko",Pue);et("nl",Bue);et("no",zue);et("pl",Gue);et("ptbr",Yue);et("ru",Zue);et("sv",ele);et("tr",ale);et("ua",ole);et("zh-CN",lle);et("zh",dle);const GB={ca:hle,en:$B,fr:nce,pl:cce,de:yle,ru:dce,ptbr:fce,es:jle,ua:pce,"zh-CN":ple,nl:uce,it:oce,zh:gce,ko:sce,cs:gle,fi:zle,sv:vce,tr:hce,no:lce,da:mle,bg:vle,hu:ice,eu:kle},mce=!1;gt.on("languageChanged",e=>{document.documentElement.lang=e});gt.use(HB).use(cX).init({fallbackLng:"en",debug:mce,resources:GB,ns:Object.keys($B),interpolation:{escapeValue:!1}});const yce=gt.language.split("-")[0].toLocaleLowerCase();GB[yce]||gt.changeLanguage("en");const bce=4401,N4=new Map;let _ce=1;const Sce=Koe(5),Ece=e=>{if(e.transaction!=null){const r=N4.get(e.transaction);r&&(e.status==="ok"||e.status==null?r[0]():r[1](new Error(e.error??"Unknown error",{cause:e.transaction})),N4.delete(e.transaction))}},Tce=(e,r)=>{r(nse(e))},Rce=(e,r)=>{r(ise(e))},Oce=(e,r)=>{switch(e.topic){case"bridge/info":{r(ose(e.payload));break}case"bridge/state":{r(sse(e.payload));break}case"bridge/health":{r(use(e.payload));break}case"bridge/definitions":{r(lse(e.payload));break}case"bridge/devices":{r(cse(e.payload));break}case"bridge/groups":{r(fse(e.payload));break}case"bridge/converters":{r(ese(e.payload));break}case"bridge/extensions":{r(Joe(e.payload));break}case"bridge/logging":{const a=e.payload;r(Fu(a));break}case"bridge/response/networkmap":{const a=e.payload;r(dse(a.status==="ok"?a.data:void 0));break}case"bridge/response/touchlink/scan":{const{status:a,data:i}=e.payload;r(rse(a==="ok"?{inProgress:!1,devices:i.found}:{inProgress:!1,devices:[]}));break}case"bridge/response/touchlink/identify":{r(tse(!1));break}case"bridge/response/touchlink/factory_reset":{r(ase(!1));break}case"bridge/response/backup":{const a=e.payload;r(vse(a.data.zip));break}case"bridge/response/device/generate_external_definition":{const a=e.payload;a.status==="ok"&&r(hse(a.data));break}}e.topic.startsWith("bridge/response/")&&Ece(e.payload)};function Ace(){const e=V.useRef(!1),r=yne(),a=CE.startsWith("${")?[`${window.location.host}${document.location.pathname}api`]:CE.split(","),[i,o]=V.useState(a[0]);V.useEffect(()=>{r(pse())},[i]);const u=V.useCallback(async()=>await new Promise(p=>{const m=new URL(`${location.protocol==="https:"?"wss":"ws"}://${i}`);if(!!qn.get(fP)){const b=new URLSearchParams(window.location.search).get("token")??qn.get(dy);if(!b){cl.show("auth-form",{onAuth:E=>{qn.set(dy,E),m.searchParams.append("token",E),p(m.toString())}});return}m.searchParams.append("token",b)}p(m.toString())}),[i]),l=V.useRef({disableJson:!0,share:!0,retryOnError:!0,shouldReconnect:p=>(v(p),e.current===!1),reconnectInterval:3e3,reconnectAttempts:10,onOpen:p=>console.log("WebSocket opened",p),onClose:p=>console.log("WebSocket closed",p),onError:p=>console.log("WebSocket error",p),filter:p=>{if(p)try{const m=JSON.parse(p.data);m.topic.endsWith(PB)?Rce(m,r):m.topic.startsWith("bridge/")?Oce(m,r):Tce(m,r)}catch(m){r(Fu({level:"error",message:`frontend: ${m.message}`,namespace:"frontend"}))}return!1}}),{sendMessage:f,readyState:d}=Cne(u,l.current),v=V.useCallback(p=>{p.code===bce&&(qn.set(fP,!0),qn.remove(dy))},[]);return V.useEffect(()=>()=>{e.current=!0},[]),{sendMessage:V.useCallback(async(p,m)=>{if(p.startsWith("bridge/request/")){if(m!==""&&typeof m=="string"){console.error("Only `Record<string, unknown>` or empty string payloads allowed");return}const y=`${Sce}-${_ce++}`;try{const b=new Promise((T,S)=>{N4.set(y,[T,S])}),E=vk({topic:p,payload:m===""?{transaction:y}:{...m,transaction:y}});console.debug("Calling Request API:",E),r(Fu({level:"debug",message:`frontend:api: Sending ${E}`,namespace:"frontend:api"})),f(E),await b}catch(b){r(Fu({level:"error",message:`frontend:api: ${b} (transaction: ${b.cause})`,namespace:"frontend:api"}))}}else{const y=vk({topic:p,payload:m});console.debug("Calling API:",y),r(Fu({level:"debug",message:`frontend:api: Sending ${y}`,namespace:"frontend:api"})),f(y)}},[f,r]),readyState:d,apiUrls:a,apiUrl:i,setApiUrl:o}}function wce({children:e}){const r=Ace();return se.jsx(vd.Provider,{value:r,children:e})}const xce=V.lazy(async()=>await Pa(()=>import("./HomePage-DAV81oPD.js"),__vite__mapDeps([0,1]),import.meta.url)),Cce=V.lazy(async()=>await Pa(()=>import("./DevicesPage-B5NXgkRE.js"),__vite__mapDeps([2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,1]),import.meta.url)),Ice=V.lazy(async()=>await Pa(()=>import("./DevicePage-konyOtA_.js"),__vite__mapDeps([19,1]),import.meta.url)),qce=V.lazy(async()=>await Pa(()=>import("./Dashboard-DrykpWoV.js"),__vite__mapDeps([20,21,22,14,18,23,11,12,13,16,17,7,8,4,5,6,10,1]),import.meta.url)),Mce=V.lazy(async()=>await Pa(()=>import("./NetworkPage-Ln79YwqY.js"),__vite__mapDeps([24,5,25,1]),import.meta.url)),Nce=V.lazy(async()=>await Pa(()=>import("./GroupsPage-BM9MSx3r.js"),__vite__mapDeps([26,6,9,10,1]),import.meta.url)),Lce=V.lazy(async()=>await Pa(()=>import("./GroupPage-CB6GFdZU.js"),__vite__mapDeps([27,1]),import.meta.url)),Dce=V.lazy(async()=>await Pa(()=>import("./OtaPage-D9JG90cZ.js"),__vite__mapDeps([28,7,8,5,9,10,15,16,17,18,1]),import.meta.url)),Pce=V.lazy(async()=>await Pa(()=>import("./TouchlinkPage-Bg_tWjMg.js"),__vite__mapDeps([29,9,10,1]),import.meta.url)),jce=V.lazy(async()=>await Pa(()=>import("./LogsPage-Dv7tRxMp.js"),__vite__mapDeps([30,5,10,25,1]),import.meta.url)),kce=V.lazy(async()=>await Pa(()=>import("./SettingsPage-ChO0o-ok.js"),__vite__mapDeps([31,1]),import.meta.url));function zce(){const{t:e}=qs("common");return se.jsx(Bt.StrictMode,{children:se.jsx(hX,{i18n:gt,children:se.jsxs(cl.Provider,{children:[se.jsx(oee,{id:"auth-form",onAuth:async()=>{}}),se.jsx(qX,{store:kB,children:se.jsx(gse,{children:se.jsxs(ZJ,{children:[se.jsx(Hne,{}),se.jsxs(wce,{children:[se.jsx(Bne,{}),se.jsx("main",{className:"pt-3 px-2",children:se.jsx(V.Suspense,{fallback:se.jsxs(se.Fragment,{children:[se.jsx("div",{className:"flex flex-row justify-center items-center gap-2",children:se.jsx("span",{className:"loading loading-infinity loading-xl"})}),se.jsx("div",{className:"flex flex-row justify-center items-center gap-2",children:e("loading")})]}),children:se.jsxs(xJ,{children:[se.jsx(Ma,{path:"/ota",element:se.jsx(Dce,{})}),se.jsx(Ma,{path:"/network",element:se.jsx(Mce,{})}),se.jsx(Ma,{path:"/device/:deviceId/:tab?",element:se.jsx(Ice,{})}),se.jsx(Ma,{path:"/settings/:tab?",element:se.jsx(kce,{})}),se.jsx(Ma,{path:"/groups",element:se.jsx(Nce,{})}),se.jsx(Ma,{path:"/group/:groupId/:tab?",element:se.jsx(Lce,{})}),se.jsx(Ma,{path:"/logs",element:se.jsx(jce,{})}),se.jsx(Ma,{path:"/touchlink",element:se.jsx(Pce,{})}),se.jsx(Ma,{path:"/dashboard",element:se.jsx(qce,{})}),se.jsx(Ma,{path:"/devices",element:se.jsx(Cce,{})}),se.jsx(Ma,{path:"/",element:se.jsx(xce,{})})]})})}),se.jsx(Kne,{})]})]})})})]})})})}const tz=document.getElementById("root");tz&&NZ.createRoot(tz).render(se.jsx(zce,{}));window.addEventListener("vite:preloadError",()=>{window.location.reload()});export{tse as $,ffe as A,ls as B,mfe as C,ave as D,yne as E,Ln as F,Zde as G,Kde as H,dse as I,kve as J,Vde as K,Ab as L,Hde as M,eF as N,nd as O,hd as P,tF as Q,pfe as R,_ne as S,Cee as T,gfe as U,Ade as V,vd as W,mde as X,Dde as Y,rse as Z,Pa as _,us as a,bde as a$,ase as a0,dfe as a1,Mee as a2,wfe as a3,$ne as a4,sve as a5,uve as a6,Pve as a7,Dve as a8,Qoe as a9,po as aA,Bt as aB,NZ as aC,Tfe as aD,Rde as aE,ude as aF,xve as aG,Sde as aH,vde as aI,cfe as aJ,xde as aK,Bce as aL,nfe as aM,$fe as aN,sfe as aO,afe as aP,jfe as aQ,Xde as aR,Jde as aS,eve as aT,rve as aU,Gce as aV,Gde as aW,Kfe as aX,Wde as aY,ofe as aZ,Qce as a_,Rfe as aa,Jce as ab,Yce as ac,Nfe as ad,Ffe as ae,rn as af,Hr as ag,Zoe as ah,Lve as ai,Cde as aj,qfe as ak,Mfe as al,Ive as am,jve as an,lve as ao,Sve as ap,Vne as aq,cde as ar,Qfe as as,Eve as at,Pde as au,mve as av,cve as aw,fk as ax,zde as ay,Ofe as az,qs as b,Ed as b$,Wce as b0,yee as b1,Zfe as b2,qee as b3,ode as b4,Nde as b5,sde as b6,Ufe as b7,Vce as b8,pde as b9,lde as bA,Ude as bB,Dfe as bC,Lfe as bD,Efe as bE,ide as bF,Xfe as bG,Tde as bH,Afe as bI,bfe as bJ,Ode as bK,Sfe as bL,Ide as bM,ife as bN,$ce as bO,mo as bP,Cve as bQ,dde as bR,kde as bS,fve as bT,Tve as bU,Ove as bV,Ave as bW,wve as bX,bve as bY,_ve as bZ,Rve as b_,vfe as ba,fde as bb,Pfe as bc,$de as bd,xfe as be,Ife as bf,Jfe as bg,tfe as bh,Xce as bi,_de as bj,jde as bk,_fe as bl,nde as bm,qde as bn,Yfe as bo,kfe as bp,hfe as bq,gde as br,Kce as bs,Vfe as bt,ade as bu,rde as bv,Yde as bw,Mde as bx,hde as by,yde as bz,qve as c,ml as c0,_B as c1,wB as c2,yve as c3,Fde as c4,nve as c5,ive as c6,Uve as c7,Hfe as c8,Gfe as c9,rfe as ca,Dne as cb,Pne as cc,dP as cd,tve as ce,dy as cf,fP as cg,dve as ch,wde as ci,Nve as cj,Xoe as ck,kB as cl,zve as cm,gve as cn,hve as co,pve as cp,vve as cq,yfe as cr,Fce as d,ede as e,efe as f,tde as g,zfe as h,Lde as i,se as j,Hce as k,Bfe as l,Zce as m,lfe as n,Bde as o,Cfe as p,Ede as q,V as r,qn as s,Mve as t,dJ as u,ove as v,Qde as w,cl as x,ufe as y,Wfe as z};
|