iobroker.ai-usage 0.2.0 → 0.3.0

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.
Files changed (59) hide show
  1. package/README.md +76 -15
  2. package/admin/custom/assets/Components-Bq1fGAd7.js +1 -0
  3. package/admin/custom/assets/ConfigPanel-DGMF4_qT.js +1 -0
  4. package/admin/custom/assets/{_virtual_mf-localSharedImportMap___mfe_internal__AiUsageComponentSet__mf_owner__1-CXmnAfNY.js → _virtual_mf-localSharedImportMap___mfe_internal__AiUsageComponentSet__mf_owner__1-DKcsNxEw.js} +1 -1
  5. package/admin/custom/assets/{_virtual_mf___mfe_internal__AiUsageComponentSet__mf_owner__1__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-DwHNIjSR.js → _virtual_mf___mfe_internal__AiUsageComponentSet__mf_owner__1__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-DzPBJWNQ.js} +1 -1
  6. package/admin/custom/assets/{_virtual_mf___mfe_internal__AiUsageComponentSet__mf_owner__1__loadShare___mf_0_iobroker_mf_1_json_mf_2_config__loadShare__.js-qu1s07FY.js → _virtual_mf___mfe_internal__AiUsageComponentSet__mf_owner__1__loadShare___mf_0_iobroker_mf_1_json_mf_2_config__loadShare__.js-DEdJInQG.js} +3 -3
  7. package/admin/custom/assets/{_virtual_mf___mfe_internal__AiUsageComponentSet__mf_owner__1__loadShare__react_mf_2_dom_mf_1_client__loadShare__.js-C8-GjKo4.js → _virtual_mf___mfe_internal__AiUsageComponentSet__mf_owner__1__loadShare__react_mf_2_dom_mf_1_client__loadShare__.js-CFn_lBXc.js} +1 -1
  8. package/admin/custom/assets/{_virtual_mf___mfe_internal__AiUsageComponentSet__mf_owner__1__prebuild___mf_0_iobroker_mf_1_gui_mf_2_components__prebuild__-CQxWwR2r.js → _virtual_mf___mfe_internal__AiUsageComponentSet__mf_owner__1__prebuild___mf_0_iobroker_mf_1_gui_mf_2_components__prebuild__-DeLUTSLT.js} +1 -1
  9. package/admin/custom/assets/{hostInit-RHMRa462.js → hostInit-DoGxgbHj.js} +1 -1
  10. package/admin/custom/assets/index-CKngiVu3.js +1 -0
  11. package/admin/custom/assets/{lib-ByF76TCN.js → lib-MY71LxhX.js} +1 -1
  12. package/admin/custom/assets/{mf-entry-bootstrap-0-e070fa3e.js → mf-entry-bootstrap-0-eec08a33.js} +2 -2
  13. package/admin/custom/assets/virtualExposes-Dc9myzsk.js +1 -0
  14. package/admin/custom/assets/{virtual_mf-REMOTE_ENTRY_ID___mfe_internal__AiUsageComponentSet__customComponents_js-l7jtElkM.js → virtual_mf-REMOTE_ENTRY_ID___mfe_internal__AiUsageComponentSet__customComponents_js-CP4YA3u3.js} +1 -1
  15. package/admin/custom/assets/virtual_mf-exposes-ssr___mfe_internal__AiUsageComponentSet__customComponents_js-DlNU_Z38.js +2 -0
  16. package/admin/custom/assets/{virtual_mf-exposes___mfe_internal__AiUsageComponentSet__customComponents_js-BZ-CVpVo.js → virtual_mf-exposes___mfe_internal__AiUsageComponentSet__customComponents_js-CEfffc0D.js} +2 -2
  17. package/admin/custom/customComponents.js +1 -1
  18. package/admin/custom/i18n/de.json +24 -15
  19. package/admin/custom/i18n/en.json +25 -16
  20. package/admin/custom/i18n/es.json +25 -16
  21. package/admin/custom/i18n/fr.json +25 -16
  22. package/admin/custom/i18n/it.json +25 -16
  23. package/admin/custom/i18n/nl.json +25 -16
  24. package/admin/custom/i18n/pl.json +25 -16
  25. package/admin/custom/i18n/pt.json +25 -16
  26. package/admin/custom/i18n/ru.json +25 -16
  27. package/admin/custom/i18n/uk.json +25 -16
  28. package/admin/custom/i18n/zh-cn.json +25 -16
  29. package/admin/custom/mf-manifest.json +1 -1
  30. package/build/lib/http.js +29 -0
  31. package/build/lib/http.js.map +2 -2
  32. package/build/lib/jwt.js +59 -0
  33. package/build/lib/jwt.js.map +7 -0
  34. package/build/lib/poll-engine.js +14 -0
  35. package/build/lib/poll-engine.js.map +2 -2
  36. package/build/lib/provider.js.map +2 -2
  37. package/build/lib/providers/chatgpt-auth.js +125 -0
  38. package/build/lib/providers/chatgpt-auth.js.map +7 -0
  39. package/build/lib/providers/chatgpt-sub.js +121 -0
  40. package/build/lib/providers/chatgpt-sub.js.map +7 -0
  41. package/build/lib/providers/claude-auth.js.map +2 -2
  42. package/build/lib/providers/claude-sub.js.map +2 -2
  43. package/build/lib/providers/gemini-auth.js +135 -0
  44. package/build/lib/providers/gemini-auth.js.map +7 -0
  45. package/build/lib/providers/gemini-sub.js +147 -0
  46. package/build/lib/providers/gemini-sub.js.map +7 -0
  47. package/build/lib/pure-helpers.js +38 -6
  48. package/build/lib/pure-helpers.js.map +2 -2
  49. package/build/lib/sign-in.js +38 -0
  50. package/build/lib/sign-in.js.map +7 -0
  51. package/build/main.js +283 -151
  52. package/build/main.js.map +2 -2
  53. package/io-package.json +28 -12
  54. package/package.json +1 -1
  55. package/admin/custom/assets/Components-Bd545388.js +0 -1
  56. package/admin/custom/assets/ConfigPanel-qivVprTj.js +0 -1
  57. package/admin/custom/assets/index-B0J1NbOp.js +0 -1
  58. package/admin/custom/assets/virtualExposes-BZWQ_oUV.js +0 -1
  59. package/admin/custom/assets/virtual_mf-exposes-ssr___mfe_internal__AiUsageComponentSet__customComponents_js-CRK-nAdE.js +0 -2
@@ -1,5 +1,5 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./lib-ByF76TCN.js"])))=>i.map(i=>d[i]);
2
- import{i as e,o as t,r as n,t as r}from"./rolldown-runtime-C0FnF6B9.js";import{t as i}from"./vite-preload-helper-B7qeedMF.js";import{$a as a,$i as o,$n as s,$r as c,Aa as l,Ai as u,An as d,Bi as f,Bn as p,Br as m,C as h,Ca as g,Ci as _,Cn as v,Cr as y,Da as b,Di as x,Dn as S,Ea as C,Ei as w,En as T,Fa as E,Fi as D,Fn as O,Fr as k,Ga as A,Gi as j,Gn as ee,Gr as M,Ha as te,Hn as ne,Hr as N,I as re,Ia as P,Ii as F,In as ie,It as I,Ja as L,Ji as ae,Jn as oe,Jr as se,Ka as R,Ki as ce,Kn as le,Kr as ue,Kt as de,La as z,Li as B,Ln as fe,Ma as pe,Mi as V,Mn as me,Na as he,Ni as H,Nn as ge,Oa as U,Oi as _e,On as ve,Pa as ye,Pi as be,Pn as xe,Qa as Se,Qi as Ce,Qn as we,Qr as Te,Ra as Ee,Ri as De,Rn as Oe,Si as ke,Sn as Ae,Sr as je,Ta as Me,Ti as Ne,Tn as Pe,Ui as Fe,Un as Ie,Ur as Le,Va as W,Vi as Re,Vn as ze,Vr as Be,Wa as Ve,Wn as He,Wr as Ue,Xi as We,Xn as Ge,Xr as Ke,Yi as qe,Yn as Je,Yr as Ye,Za as G,Zi as Xe,Zn as Ze,Zr as Qe,Zt as $e,_a as et,_i as tt,_n as nt,_o as K,_r as rt,aa as it,ai as at,an as ot,ao as st,ar as ct,ba as lt,bi as ut,bn as dt,br as ft,ca as pt,ci as mt,co as ht,cr as gt,d as _t,da as vt,di as yt,do as bt,dr as xt,ea as St,ei as Ct,en as wt,eo as Tt,er as Et,fa as Dt,fi as Ot,fo as q,fr as kt,ga as J,gi as At,gn as jt,gr as Mt,ha as Nt,hi as Pt,hn as Ft,ho as It,hr as Lt,ia as Rt,ii as zt,in as Y,io as Bt,ir as Vt,j as Ht,ja as Ut,ji as Wt,jn as Gt,ka as Kt,ki as qt,kn as Jt,l as Yt,la as Xt,li as Zt,lo as Qt,lr as $t,ma as en,mi as tn,mn as nn,mo as rn,mr as an,na as on,ni as sn,nn as cn,no as ln,nr as un,oa as dn,on as fn,oo as pn,or as mn,pa as hn,pi as gn,po as _n,pr as vn,qi as yn,qn as bn,qr as xn,ra as Sn,ri as Cn,rn as wn,ro as Tn,rr as En,sa as Dn,si as On,so as kn,sr as An,ta as jn,ti as Mn,tn as Nn,to as Pn,tr as Fn,u as In,ua as Ln,ui as Rn,uo as zn,ur as Bn,va as Vn,vi as Hn,vn as Un,vr as Wn,wa as X,wi as Gn,wn as Kn,x as qn,xa as Jn,xi as Yn,xn as Xn,xr as Zn,y as Qn,ya as $n,yi as er,yn as tr,yr as nr,za as rr,zi as ir,zn as ar,zr as or}from"./_virtual_mf___mfe_internal__AiUsageComponentSet__mf_owner__1__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-DwHNIjSR.js";var sr=`FEDERATION_DEBUG`,cr={AT:`@`,HYPHEN:`-`,SLASH:`/`},lr={[cr.AT]:`scope_`,[cr.HYPHEN]:`_`,[cr.SLASH]:`__`};lr[cr.AT],cr.AT,lr[cr.HYPHEN],cr.HYPHEN,lr[cr.SLASH],cr.SLASH;var ur=function(e){return e[e.UNKNOWN=1]=`UNKNOWN`,e[e.CALCULATED=2]=`CALCULATED`,e[e.NO_USE=0]=`NO_USE`,e}({});function dr(){return!0}function fr(){var e;return typeof navigator<`u`&&((e=navigator)==null?void 0:e.product)===`ReactNative`}function pr(){try{if(dr()&&window.localStorage)return!!localStorage.getItem(sr)}catch{return!1}return!1}function mr(){return typeof process<`u`&&{}.FEDERATION_DEBUG?!!{}.FEDERATION_DEBUG:typeof FEDERATION_DEBUG<`u`&&FEDERATION_DEBUG?!0:pr()}var hr=`[ Federation Runtime ]`,gr=function(...e){return e.length?e.reduce((e,t)=>t?e?`${e}:${t}`:t:e,``):``},_r=(e,t)=>{if(`getPublicPath`in e){let n;return n=e.getPublicPath.startsWith(`function`)?Function(`return `+e.getPublicPath)()():Function(e.getPublicPath)(),`${n}${t}`}return`publicPath`in e?!dr()&&!fr()&&`ssrPublicPath`in e&&typeof e.ssrPublicPath==`string`?`${e.ssrPublicPath}${t}`:`${e.publicPath}${t}`:(console.warn(`Cannot get resource URL. If in debug mode, please ignore.`,e,t),``)},vr=e=>{console.warn(`${hr}: ${e}`)};function yr(e){try{return JSON.stringify(e,null,2)}catch{return``}}var br=(e,t)=>{if(!e)return t;let n=(e=>{if(e===`.`)return``;if(e.startsWith(`./`))return e.replace(`./`,``);if(e.startsWith(`/`)){let t=e.slice(1);return t.endsWith(`/`)?t.slice(0,-1):t}return e})(e);return n?n.endsWith(`/`)?`${n}${t}`:`${n}/${t}`:t};function xr(e){return e.replace(/#.*$/,``).replace(/\?.*$/,``).replace(/\/[^\/]+$/,`/`)}function Sr(e,t={}){var n;let{remotes:r={},overrides:i={},version:a}=t,o,s=()=>`publicPath`in e.metaData?(e.metaData.publicPath===`auto`||e.metaData.publicPath===``)&&a?xr(a):e.metaData.publicPath:e.metaData.getPublicPath,c=Object.keys(i),l={};Object.keys(r).length||(l=((n=e.remotes)==null?void 0:n.reduce((e,t)=>{let n,r=t.federationContainerName;return n=c.includes(r)?i[r]:`version`in t?t.version:t.entry,e[r]={matchedVersion:n},e},{}))||{}),Object.keys(r).forEach(e=>l[e]={matchedVersion:c.includes(e)?i[e]:r[e]});let{remoteEntry:{path:u,name:d,type:f},types:p={path:``,name:``,zip:``,api:``},buildInfo:{buildVersion:m},globalName:h,ssrRemoteEntry:g}=e.metaData,{exposes:_}=e,v={version:a||``,buildVersion:m,globalName:h,remoteEntry:br(u,d),remoteEntryType:f,remoteTypes:br(p.path,p.name),remoteTypesZip:p.zip||``,remoteTypesAPI:p.api||``,remotesInfo:l,shared:e==null?void 0:e.shared.map(e=>({assets:e.assets,sharedName:e.name,version:e.version,usedExports:e.referenceExports||[]})),modules:_==null?void 0:_.map(e=>({moduleName:e.name,modulePath:e.path,assets:e.assets}))};if(`publicPath`in e.metaData?(o={...v,publicPath:s()},typeof e.metaData.ssrPublicPath==`string`&&(o.ssrPublicPath=e.metaData.ssrPublicPath)):o={...v,getPublicPath:s()},g){let e=br(g.path,g.name);o.ssrRemoteEntry=e,o.ssrRemoteEntryType=g.type||`commonjs-module`}return o}function Cr(e){return!!(`remoteEntry`in e&&e.remoteEntry.includes(`.json`))}var wr=`[ Module Federation ]`,Tr=console,Er=[`logger.ts`,`logger.js`,`captureStackTrace`,`Logger.emit`,`Logger.log`,`Logger.info`,`Logger.warn`,`Logger.error`,`Logger.debug`];function Dr(){try{let e=Error().stack;if(!e)return;let[,...t]=e.split(`
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./lib-MY71LxhX.js"])))=>i.map(i=>d[i]);
2
+ import{i as e,o as t,r as n,t as r}from"./rolldown-runtime-C0FnF6B9.js";import{t as i}from"./vite-preload-helper-B7qeedMF.js";import{$a as a,$i as o,$n as s,$r as c,Aa as l,Ai as u,An as d,Bi as f,Bn as p,Br as m,C as h,Ca as g,Ci as _,Cn as v,Cr as y,Da as b,Di as x,Dn as S,Ea as C,Ei as w,En as T,Fa as E,Fi as D,Fn as O,Fr as k,Ga as A,Gi as j,Gn as ee,Gr as M,Ha as te,Hn as ne,Hr as N,I as re,Ia as P,Ii as F,In as ie,It as I,Ja as L,Ji as ae,Jn as oe,Jr as se,Ka as R,Ki as ce,Kn as le,Kr as ue,Kt as de,La as z,Li as B,Ln as fe,Ma as pe,Mi as V,Mn as me,Na as he,Ni as H,Nn as ge,Oa as U,Oi as _e,On as ve,Pa as ye,Pi as be,Pn as xe,Qa as Se,Qi as Ce,Qn as we,Qr as Te,Ra as Ee,Ri as De,Rn as Oe,Si as ke,Sn as Ae,Sr as je,Ta as Me,Ti as Ne,Tn as Pe,Ui as Fe,Un as Ie,Ur as Le,Va as W,Vi as Re,Vn as ze,Vr as Be,Wa as Ve,Wn as He,Wr as Ue,Xi as We,Xn as Ge,Xr as Ke,Yi as qe,Yn as Je,Yr as Ye,Za as G,Zi as Xe,Zn as Ze,Zr as Qe,Zt as $e,_a as et,_i as tt,_n as nt,_o as K,_r as rt,aa as it,ai as at,an as ot,ao as st,ar as ct,ba as lt,bi as ut,bn as dt,br as ft,ca as pt,ci as mt,co as ht,cr as gt,d as _t,da as vt,di as yt,do as bt,dr as xt,ea as St,ei as Ct,en as wt,eo as Tt,er as Et,fa as Dt,fi as Ot,fo as q,fr as kt,ga as J,gi as At,gn as jt,gr as Mt,ha as Nt,hi as Pt,hn as Ft,ho as It,hr as Lt,ia as Rt,ii as zt,in as Y,io as Bt,ir as Vt,j as Ht,ja as Ut,ji as Wt,jn as Gt,ka as Kt,ki as qt,kn as Jt,l as Yt,la as Xt,li as Zt,lo as Qt,lr as $t,ma as en,mi as tn,mn as nn,mo as rn,mr as an,na as on,ni as sn,nn as cn,no as ln,nr as un,oa as dn,on as fn,oo as pn,or as mn,pa as hn,pi as gn,po as _n,pr as vn,qi as yn,qn as bn,qr as xn,ra as Sn,ri as Cn,rn as wn,ro as Tn,rr as En,sa as Dn,si as On,so as kn,sr as An,ta as jn,ti as Mn,tn as Nn,to as Pn,tr as Fn,u as In,ua as Ln,ui as Rn,uo as zn,ur as Bn,va as Vn,vi as Hn,vn as Un,vr as Wn,wa as X,wi as Gn,wn as Kn,x as qn,xa as Jn,xi as Yn,xn as Xn,xr as Zn,y as Qn,ya as $n,yi as er,yn as tr,yr as nr,za as rr,zi as ir,zn as ar,zr as or}from"./_virtual_mf___mfe_internal__AiUsageComponentSet__mf_owner__1__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-DzPBJWNQ.js";var sr=`FEDERATION_DEBUG`,cr={AT:`@`,HYPHEN:`-`,SLASH:`/`},lr={[cr.AT]:`scope_`,[cr.HYPHEN]:`_`,[cr.SLASH]:`__`};lr[cr.AT],cr.AT,lr[cr.HYPHEN],cr.HYPHEN,lr[cr.SLASH],cr.SLASH;var ur=function(e){return e[e.UNKNOWN=1]=`UNKNOWN`,e[e.CALCULATED=2]=`CALCULATED`,e[e.NO_USE=0]=`NO_USE`,e}({});function dr(){return!0}function fr(){var e;return typeof navigator<`u`&&((e=navigator)==null?void 0:e.product)===`ReactNative`}function pr(){try{if(dr()&&window.localStorage)return!!localStorage.getItem(sr)}catch{return!1}return!1}function mr(){return typeof process<`u`&&{}.FEDERATION_DEBUG?!!{}.FEDERATION_DEBUG:typeof FEDERATION_DEBUG<`u`&&FEDERATION_DEBUG?!0:pr()}var hr=`[ Federation Runtime ]`,gr=function(...e){return e.length?e.reduce((e,t)=>t?e?`${e}:${t}`:t:e,``):``},_r=(e,t)=>{if(`getPublicPath`in e){let n;return n=e.getPublicPath.startsWith(`function`)?Function(`return `+e.getPublicPath)()():Function(e.getPublicPath)(),`${n}${t}`}return`publicPath`in e?!dr()&&!fr()&&`ssrPublicPath`in e&&typeof e.ssrPublicPath==`string`?`${e.ssrPublicPath}${t}`:`${e.publicPath}${t}`:(console.warn(`Cannot get resource URL. If in debug mode, please ignore.`,e,t),``)},vr=e=>{console.warn(`${hr}: ${e}`)};function yr(e){try{return JSON.stringify(e,null,2)}catch{return``}}var br=(e,t)=>{if(!e)return t;let n=(e=>{if(e===`.`)return``;if(e.startsWith(`./`))return e.replace(`./`,``);if(e.startsWith(`/`)){let t=e.slice(1);return t.endsWith(`/`)?t.slice(0,-1):t}return e})(e);return n?n.endsWith(`/`)?`${n}${t}`:`${n}/${t}`:t};function xr(e){return e.replace(/#.*$/,``).replace(/\?.*$/,``).replace(/\/[^\/]+$/,`/`)}function Sr(e,t={}){var n;let{remotes:r={},overrides:i={},version:a}=t,o,s=()=>`publicPath`in e.metaData?(e.metaData.publicPath===`auto`||e.metaData.publicPath===``)&&a?xr(a):e.metaData.publicPath:e.metaData.getPublicPath,c=Object.keys(i),l={};Object.keys(r).length||(l=((n=e.remotes)==null?void 0:n.reduce((e,t)=>{let n,r=t.federationContainerName;return n=c.includes(r)?i[r]:`version`in t?t.version:t.entry,e[r]={matchedVersion:n},e},{}))||{}),Object.keys(r).forEach(e=>l[e]={matchedVersion:c.includes(e)?i[e]:r[e]});let{remoteEntry:{path:u,name:d,type:f},types:p={path:``,name:``,zip:``,api:``},buildInfo:{buildVersion:m},globalName:h,ssrRemoteEntry:g}=e.metaData,{exposes:_}=e,v={version:a||``,buildVersion:m,globalName:h,remoteEntry:br(u,d),remoteEntryType:f,remoteTypes:br(p.path,p.name),remoteTypesZip:p.zip||``,remoteTypesAPI:p.api||``,remotesInfo:l,shared:e==null?void 0:e.shared.map(e=>({assets:e.assets,sharedName:e.name,version:e.version,usedExports:e.referenceExports||[]})),modules:_==null?void 0:_.map(e=>({moduleName:e.name,modulePath:e.path,assets:e.assets}))};if(`publicPath`in e.metaData?(o={...v,publicPath:s()},typeof e.metaData.ssrPublicPath==`string`&&(o.ssrPublicPath=e.metaData.ssrPublicPath)):o={...v,getPublicPath:s()},g){let e=br(g.path,g.name);o.ssrRemoteEntry=e,o.ssrRemoteEntryType=g.type||`commonjs-module`}return o}function Cr(e){return!!(`remoteEntry`in e&&e.remoteEntry.includes(`.json`))}var wr=`[ Module Federation ]`,Tr=console,Er=[`logger.ts`,`logger.js`,`captureStackTrace`,`Logger.emit`,`Logger.log`,`Logger.info`,`Logger.warn`,`Logger.error`,`Logger.debug`];function Dr(){try{let e=Error().stack;if(!e)return;let[,...t]=e.split(`
3
3
  `),n=t.filter(e=>!Er.some(t=>e.includes(t)));return n.length?`Stack trace:\n${n.slice(0,5).join(`
4
4
  `)}`:void 0}catch{return}}var Or=class{constructor(e,t=Tr){this.prefix=e,this.delegate=t??Tr}setPrefix(e){this.prefix=e}setDelegate(e){this.delegate=e??Tr}emit(e,t){let n=this.delegate,r=mr()?Dr():void 0,i=r?[...t,r]:t,a=(()=>{switch(e){case`log`:return[`log`,`info`];case`info`:return[`info`,`log`];case`warn`:return[`warn`,`info`,`log`];case`error`:return[`error`,`warn`,`log`];default:return[`debug`,`log`]}})();for(let e of a){let t=n[e];if(typeof t==`function`){t.call(n,this.prefix,...i);return}}for(let e of a){let t=Tr[e];if(typeof t==`function`){t.call(Tr,this.prefix,...i);return}}}log(...e){this.emit(`log`,e)}warn(...e){this.emit(`warn`,e)}error(...e){this.emit(`error`,e)}success(...e){this.emit(`info`,e)}info(...e){this.emit(`info`,e)}ready(...e){this.emit(`info`,e)}debug(...e){mr()&&this.emit(`debug`,e)}};function kr(e){return new Or(e)}function Ar(e){let t=new Or(e);return Object.defineProperty(t,"__mf_infrastructure_logger__",{value:!0,enumerable:!1,configurable:!1}),t}kr(wr),Ar(wr);async function jr(e,t){try{return await e()}catch(e){!t&&vr(e);return}}function Mr(e,t){let n=/^(https?:)?\/\//i;return e.replace(n,``).replace(/\/$/,``)===t.replace(n,``).replace(/\/$/,``)}function Nr(e){let t=null,n=!0,r=2e4,i,a=document.getElementsByTagName(`script`);for(let r=0;r<a.length;r++){let i=a[r],o=i.getAttribute(`src`);if(o&&Mr(o,e.url)){t=i,n=!1;break}}if(!t){let n=e.attrs;t=document.createElement(`script`),t.type=(n==null?void 0:n.type)===`module`?`module`:`text/javascript`;let i;e.createScriptHook&&(i=e.createScriptHook(e.url,e.attrs),i instanceof HTMLScriptElement?t=i:typeof i==`object`&&(`script`in i&&i.script&&(t=i.script),`timeout`in i&&i.timeout&&(r=i.timeout))),t.src||(t.src=e.url),n&&!i&&Object.keys(n).forEach(e=>{t&&(e===`async`||e===`defer`?t[e]=n[e]:t.getAttribute(e)||t.setAttribute(e,n[e]))})}let o=null,s=typeof window<`u`?t=>{if(t.filename&&Mr(t.filename,e.url)){let n=Error(`ScriptExecutionError: Script "${e.url}" loaded but threw a runtime error during execution: ${t.message} (${t.filename}:${t.lineno}:${t.colno})`);n.name=`ScriptExecutionError`,o=n}}:null;s&&window.addEventListener(`error`,s);let c=async(n,r)=>{clearTimeout(i),s&&window.removeEventListener(`error`,s);let a=()=>{if((r==null?void 0:r.type)===`error`){let t=Error(r!=null&&r.isTimeout?`ScriptNetworkError: Script "${e.url}" timed out.`:`ScriptNetworkError: Failed to load script "${e.url}" - the script URL is unreachable or the server returned an error (network failure, 404, CORS, etc.)`);t.name=`ScriptNetworkError`,e!=null&&e.onErrorCallback&&(e==null||e.onErrorCallback(t))}else o?e!=null&&e.onErrorCallback&&(e==null||e.onErrorCallback(o)):e!=null&&e.cb&&(e==null||e.cb())};if(t&&(t.onerror=null,t.onload=null,jr(()=>{let{needDeleteScript:n=!0}=e;n&&t!=null&&t.parentNode&&t.parentNode.removeChild(t)}),n&&typeof n==`function`)){let e=n(r);if(e instanceof Promise){let t=await e;return a(),t}return a(),e}a()};return t.onerror=c.bind(null,t.onerror),t.onload=c.bind(null,t.onload),i=setTimeout(()=>{c(null,{type:`error`,isTimeout:!0})},r),{script:t,needAttach:n}}function Pr(e){let t=null,n=!0,r=2e4,i,a=document.getElementsByTagName(`link`);for(let r=0;r<a.length;r++){let i=a[r],o=i.getAttribute(`href`),s=i.getAttribute(`rel`);if(o&&Mr(o,e.url)&&s===e.attrs.rel){t=i,n=!1;break}}if(!t){t=document.createElement(`link`),t.setAttribute(`href`,e.url);let n,i=!0,a=e.attrs;e.createLinkHook&&(n=e.createLinkHook(e.url,a),n instanceof HTMLLinkElement?(t=n,i=!1):typeof n==`object`&&(`link`in n&&n.link&&(t=n.link,i=!1),`timeout`in n&&n.timeout&&(r=n.timeout))),a&&i&&Object.keys(a).forEach(e=>{t&&!t.getAttribute(e)&&t.setAttribute(e,a[e])})}if(!n)return Promise.resolve().then(()=>{e!=null&&e.cb&&(e==null||e.cb())}),{link:t,needAttach:n};let o=(n,r)=>{i&&clearTimeout(i);let a=()=>{if((r==null?void 0:r.type)===`error`){let t=Error(r!=null&&r.isTimeout?`LinkNetworkError: Link "${e.url}" timed out.`:`LinkNetworkError: Failed to load link "${e.url}" - the URL is unreachable or the server returned an error.`);t.name=`LinkNetworkError`,e!=null&&e.onErrorCallback&&(e==null||e.onErrorCallback(t))}else e!=null&&e.cb&&(e==null||e.cb())};if(t&&(t.onerror=null,t.onload=null,jr(()=>{let{needDeleteLink:n=!0}=e;n&&t!=null&&t.parentNode&&t.parentNode.removeChild(t)}),n)){let e=n(r);return a(),e}a()};return t.onerror=o.bind(null,t.onerror),t.onload=o.bind(null,t.onload),i=setTimeout(()=>{o(null,{type:`error`,isTimeout:!0})},r),{link:t,needAttach:n}}function Fr(e,t){let{attrs:n={},createScriptHook:r}=t;return new Promise((t,i)=>{let{script:a,needAttach:o}=Nr({url:e,cb:t,onErrorCallback:i,attrs:{fetchpriority:`high`,...n},createScriptHook:r,needDeleteScript:!0});o&&document.head.appendChild(a)})}var Ir=e=>`View the docs to see how to solve: https://module-federation.io/guide/troubleshooting/${e.split(`-`)[0].toLowerCase()}#${e.toLowerCase()}`,Lr=(e,t,n,r)=>{let i=[`${[t[e]]} #${e}`];return n&&i.push(`args: ${JSON.stringify(n)}`),i.push(Ir(e)),r&&i.push(`Original Error Message:\n ${r}`),i.join(`
5
5
  `)};function Rr(e,t,n,r,i,a){return r(Lr(e,t,n,i))}var zr=`[ Federation Runtime ]`,Br=kr(zr);function Vr(e,t,n,r,i){e||(n===void 0?Hr(t):Hr(t,n,r,void 0,i))}function Hr(e,t,n,r,i){if(t!==void 0)return Rr(e,t,n??{},e=>{throw Error(`${zr}: ${e}`)},r,i);let a=e;throw a instanceof Error?(a.message.startsWith(zr)||(a.message=`${zr}: ${a.message}`),a):Error(`${zr}: ${a}`)}function Ur(e){e instanceof Error&&(e.message.startsWith(zr)||(e.message=`${zr}: ${e.message}`)),Br.warn(e)}function Wr(e,t){return e.findIndex(e=>e===t)===-1&&e.push(t),e}function Gr(e){return`version`in e&&e.version?`${e.name}:${e.version}`:`entry`in e&&e.entry?`${e.name}:${e.entry}`:`${e.name}`}function Kr(e){return e.entry!==void 0}function qr(e){return!e.entry.includes(`.json`)}function Jr(e){return e&&typeof e==`object`}var Yr=Object.prototype.toString;function Xr(e){return Yr.call(e)===`[object Object]`}function Zr(e){return Array.isArray(e)?e:[e]}function Qr(e){return`remoteEntry`in e?{url:e.remoteEntry,type:e.remoteEntryType,globalName:e.globalName}:{url:``,type:`global`,globalName:``}}var $r=(e,t)=>{let n;return n=e.endsWith(`/`)?e.slice(0,-1):e,t.startsWith(`.`)&&(t=t.slice(1)),n+=t,n},ei=typeof globalThis==`object`?globalThis:window,ti=(()=>{try{return document.defaultView}catch{return ei}})(),ni=ti;function ri(e,t,n){Object.defineProperty(e,t,{value:n,configurable:!1,writable:!0})}function ii(e,t){return Object.hasOwnProperty.call(e,t)}ii(ei,`__GLOBAL_LOADING_REMOTE_ENTRY__`)||ri(ei,`__GLOBAL_LOADING_REMOTE_ENTRY__`,{});var ai=ei.__GLOBAL_LOADING_REMOTE_ENTRY__;function oi(e){ii(e,`__VMOK__`)&&!ii(e,`__FEDERATION__`)&&ri(e,`__FEDERATION__`,e.__VMOK__),ii(e,`__FEDERATION__`)||(ri(e,`__FEDERATION__`,{__GLOBAL_PLUGIN__:[],__INSTANCES__:[],moduleInfo:{},__SHARE__:{},__MANIFEST_LOADING__:{},__PRELOADED_MAP__:new Map}),ri(e,`__VMOK__`,e.__FEDERATION__)),e.__FEDERATION__.__GLOBAL_PLUGIN__??=[],e.__FEDERATION__.__INSTANCES__??=[],e.__FEDERATION__.moduleInfo??={},e.__FEDERATION__.__SHARE__??={},e.__FEDERATION__.__MANIFEST_LOADING__??={},e.__FEDERATION__.__PRELOADED_MAP__??=new Map}oi(ei),oi(ti);function si(){ei.__FEDERATION__.__GLOBAL_PLUGIN__=[],ei.__FEDERATION__.__INSTANCES__=[],ei.__FEDERATION__.moduleInfo={},ei.__FEDERATION__.__SHARE__={},ei.__FEDERATION__.__MANIFEST_LOADING__={},Object.keys(ai).forEach(e=>{delete ai[e]})}function ci(e){ei.__FEDERATION__.__INSTANCES__.push(e)}function li(){return ei.__FEDERATION__.__DEBUG_CONSTRUCTOR__}function ui(e,t=mr()){t&&(ei.__FEDERATION__.__DEBUG_CONSTRUCTOR__=e,ei.__FEDERATION__.__DEBUG_CONSTRUCTOR_VERSION__=`2.8.0`)}function di(e,t){if(typeof t==`string`){if(e[t])return{value:e[t],key:t};{let n=Object.keys(e);for(let r of n){let[n,i]=r.split(`:`),a=`${n}:${t}`,o=e[a];if(o)return{value:o,key:a}}return{value:void 0,key:t}}}Hr(`getInfoWithoutType: "key" must be a string, got ${typeof t} (${JSON.stringify(t)}).`)}var fi=()=>ti.__FEDERATION__.moduleInfo,pi=(e,t)=>{let n=di(t,Gr(e)).value;if(n&&!n.version&&`version`in e&&e.version&&(n.version=e.version),n)return n;if(`version`in e&&e.version){let{version:t,...n}=e,r=Gr(n),i=di(ti.__FEDERATION__.moduleInfo,r).value;if((i==null?void 0:i.version)===t)return i}},mi=e=>pi(e,ti.__FEDERATION__.moduleInfo),hi=(e,t)=>{let n=Gr(e);return ti.__FEDERATION__.moduleInfo[n]=t,ti.__FEDERATION__.moduleInfo},gi=e=>(ti.__FEDERATION__.moduleInfo={...ti.__FEDERATION__.moduleInfo,...e},()=>{let t=Object.keys(e);for(let e of t)delete ti.__FEDERATION__.moduleInfo[e]}),_i=(e,t)=>{let n=t||`__FEDERATION_${e}:custom__`;return{remoteEntryKey:n,entryExports:ei[n]}},vi=e=>{let{__GLOBAL_PLUGIN__:t}=ti.__FEDERATION__;e.forEach(e=>{t.findIndex(t=>t.name===e.name)===-1?t.push(e):Ur(`The plugin ${e.name} has been registered.`)})},yi=()=>ti.__FEDERATION__.__GLOBAL_PLUGIN__,bi=e=>ei.__FEDERATION__.__PRELOADED_MAP__.get(e),xi=e=>ei.__FEDERATION__.__PRELOADED_MAP__.set(e,!0),Si=`[0-9A-Za-z-]+`,Ci=`(?:\\+(${Si}(?:\\.${Si})*))`,wi=`0|[1-9]\\d*`,Ti=`[0-9]+`,Ei=`\\d*[a-zA-Z-][a-zA-Z0-9-]*`,Di=`(?:${Ti}|${Ei})`,Oi=`(?:-?(${Di}(?:\\.${Di})*))`,ki=`(?:${wi}|${Ei})`,Ai=`(?:-(${ki}(?:\\.${ki})*))`,ji=`${wi}|x|X|\\*`,Mi=`[v=\\s]*(${ji})(?:\\.(${ji})(?:\\.(${ji})(?:${Ai})?${Ci}?)?)?`,Ni=`^\\s*(${Mi})\\s+-\\s+(${Mi})\\s*$`,Pi=`[v=\\s]*${`(${Ti})\\.(${Ti})\\.(${Ti})`}${Oi}?${Ci}?`,Fi=`((?:<|>)?=?)`,Ii=`(\\s*)${Fi}\\s*(${Pi}|${Mi})`,Li=`(?:~>?)`,Ri=`(\\s*)${Li}\\s+`,zi=`(?:\\^)`,Bi=`(\\s*)${zi}\\s+`,Vi=`(<|>)?=?\\s*\\*`,Hi=`^${zi}${Mi}$`,Ui=`v?${`(${wi})\\.(${wi})\\.(${wi})`}${Ai}?${Ci}?`,Wi=`^${Li}${Mi}$`,Gi=`^${Fi}\\s*${Mi}$`,Ki=`^${Fi}\\s*(${Ui})$|^$`,qi=`^\\s*>=\\s*0.0.0\\s*$`;function Ji(e){return new RegExp(e)}function Yi(e){return!e||e.toLowerCase()===`x`||e===`*`}function Xi(...e){return t=>e.reduce((e,t)=>t(e),t)}function Zi(e){return e.match(Ji(Ki))}function Qi(e,t,n,r){let i=`${e}.${t}.${n}`;return r?`${i}-${r}`:i}function $i(e){return e.replace(Ji(Ni),(e,t,n,r,i,a,o,s,c,l,u,d)=>(t=Yi(n)?``:Yi(r)?`>=${n}.0.0`:Yi(i)?`>=${n}.${r}.0`:`>=${t}`,s=Yi(c)?``:Yi(l)?`<${Number(c)+1}.0.0-0`:Yi(u)?`<${c}.${Number(l)+1}.0-0`:d?`<=${c}.${l}.${u}-${d}`:`<=${s}`,`${t} ${s}`.trim()))}function ea(e){return e.replace(Ji(Ii),`$1$2$3`)}function ta(e){return e.replace(Ji(Ri),`$1~`)}function na(e){return e.replace(Ji(Bi),`$1^`)}function ra(e){return e.trim().split(/\s+/).map(e=>e.replace(Ji(Hi),(e,t,n,r,i)=>Yi(t)?``:Yi(n)?`>=${t}.0.0 <${Number(t)+1}.0.0-0`:Yi(r)?t===`0`?`>=${t}.${n}.0 <${t}.${Number(n)+1}.0-0`:`>=${t}.${n}.0 <${Number(t)+1}.0.0-0`:i?t===`0`?n===`0`?`>=${t}.${n}.${r}-${i} <${t}.${n}.${Number(r)+1}-0`:`>=${t}.${n}.${r}-${i} <${t}.${Number(n)+1}.0-0`:`>=${t}.${n}.${r}-${i} <${Number(t)+1}.0.0-0`:t===`0`?n===`0`?`>=${t}.${n}.${r} <${t}.${n}.${Number(r)+1}-0`:`>=${t}.${n}.${r} <${t}.${Number(n)+1}.0-0`:`>=${t}.${n}.${r} <${Number(t)+1}.0.0-0`)).join(` `)}function ia(e){return e.trim().split(/\s+/).map(e=>e.replace(Ji(Wi),(e,t,n,r,i)=>Yi(t)?``:Yi(n)?`>=${t}.0.0 <${Number(t)+1}.0.0-0`:Yi(r)?`>=${t}.${n}.0 <${t}.${Number(n)+1}.0-0`:i?`>=${t}.${n}.${r}-${i} <${t}.${Number(n)+1}.0-0`:`>=${t}.${n}.${r} <${t}.${Number(n)+1}.0-0`)).join(` `)}function aa(e){return e.split(/\s+/).map(e=>e.trim().replace(Ji(Gi),(e,t,n,r,i,a)=>{let o=Yi(n),s=o||Yi(r),c=s||Yi(i);return t===`=`&&c&&(t=``),a=``,o?t===`>`||t===`<`?`<0.0.0-0`:`*`:t&&c?(s&&(r=0),i=0,t===`>`?(t=`>=`,s?(n=Number(n)+1,r=0,i=0):(r=Number(r)+1,i=0)):t===`<=`&&(t=`<`,s?n=Number(n)+1:r=Number(r)+1),t===`<`&&(a=`-0`),`${t+n}.${r}.${i}${a}`):s?`>=${n}.0.0${a} <${Number(n)+1}.0.0-0`:c?`>=${n}.${r}.0${a} <${n}.${Number(r)+1}.0-0`:e})).join(` `)}function oa(e){return e.trim().replace(Ji(Vi),``)}function sa(e){return e.trim().replace(Ji(qi),``)}function ca(e,t){return e=Number(e)||e,t=Number(t)||t,e>t?1:e===t?0:-1}function la(e,t){let{preRelease:n}=e,{preRelease:r}=t;if(n===void 0&&r)return 1;if(n&&r===void 0)return-1;if(n===void 0&&r===void 0)return 0;for(let e=0,t=n.length;e<=t;e++){let t=n[e],i=r[e];if(t!==i)return t===void 0&&i===void 0?0:t?i?ca(t,i):-1:1}return 0}function ua(e,t){return ca(e.major,t.major)||ca(e.minor,t.minor)||ca(e.patch,t.patch)||la(e,t)}function da(e,t){return e.version===t.version}function fa(e,t){switch(e.operator){case``:case`=`:return da(e,t);case`>`:return ua(e,t)<0;case`>=`:return da(e,t)||ua(e,t)<0;case`<`:return ua(e,t)>0;case`<=`:return da(e,t)||ua(e,t)>0;case void 0:return!0;default:return!1}}function pa(e){return Xi(ra,ia,aa,oa)(e)}function ma(e){return Xi($i,ea,ta,na)(e.trim()).split(/\s+/).join(` `)}function ha(e,t){if(!e)return!1;let n=Zi(e);if(!n)return!1;let[,r,,i,a,o,s]=n,c={operator:r,version:Qi(i,a,o,s),major:i,minor:a,patch:o,preRelease:s==null?void 0:s.split(`.`)},l=t.split(`||`);for(let e of l){let t=e.trim();if(!t||t===`*`||t===`x`)return!0;try{let e=ma(t);if(!e.trim())return!0;let n=e.split(` `).map(e=>pa(e)).join(` `);if(!n.trim())return!0;let r=n.split(/\s+/).map(e=>sa(e)).filter(Boolean);if(r.length===0)continue;let i=!0;for(let e of r){let t=Zi(e);if(!t){i=!1;break}let[,n,,r,a,o,s]=t;if(!fa({operator:n,version:Qi(r,a,o,s),major:r,minor:a,patch:o,preRelease:s==null?void 0:s.split(`.`)},c)){i=!1;break}}if(i)return!0}catch(e){console.error(`[semver] Error processing range part "${t}":`,e);continue}}return!1}var ga=`default`,_a=`global`;function va(e,t,n,r){var i,a;let o;return o=`get`in e?e.get:`lib`in e?()=>Promise.resolve(e.lib):()=>Promise.resolve(()=>{Hr(`Cannot get shared "${n}" from "${t}": neither "get" nor "lib" is provided in the share config.`)}),(i=e.shareConfig)!=null&&i.eager&&(a=e.treeShaking)!=null&&a.mode&&Hr(`Invalid shared config for "${n}" from "${t}": cannot use both "eager: true" and "treeShaking.mode" simultaneously. Choose one strategy.`),{deps:[],useIn:[],from:t,loading:null,...e,shareConfig:{requiredVersion:`^${e.version}`,singleton:!1,eager:!1,strictVersion:!1,...e.shareConfig},get:o,loaded:e!=null&&e.loaded||`lib`in e?!0:void 0,version:e.version??`0`,scope:Array.isArray(e.scope)?e.scope:[e.scope??`default`],strategy:(e.strategy??r)||`version-first`,treeShaking:e.treeShaking?{...e.treeShaking,mode:e.treeShaking.mode??`server-calc`,status:e.treeShaking.status??ur.UNKNOWN,useIn:[]}:void 0}}function ya(e,t){let n=t.shared||{},r=t.name,i=Object.keys(n).reduce((e,i)=>{let a=Zr(n[i]);return e[i]=e[i]||[],a.forEach(n=>{e[i].push(va(n,r,i,t.shareStrategy))}),e},{}),a={...e.shared};return Object.keys(i).forEach(e=>{a[e]?i[e].forEach(t=>{a[e].find(e=>e.version===t.version)||a[e].push(t)}):a[e]=i[e]}),{allShareInfos:a,newShareInfos:i}}function ba(e,t){if(!e)return!1;let{status:n,mode:r}=e;return n===ur.NO_USE?!1:n===ur.CALCULATED?!0:r===`runtime-infer`?!t||Ta(e,t):!1}function xa(e,t){let n=e=>{if(!Number.isNaN(Number(e))){let t=e.split(`.`),n=e;for(let e=0;e<3-t.length;e++)n+=`.0`;return n}return e};return!!ha(n(e),`<=${n(t)}`)}var Sa=(e,t)=>{let n=t||function(e,t){return xa(e,t)};return Object.keys(e).reduce((e,t)=>!e||n(e,t)||e===`0`?t:e,0)},Ca=e=>!!e.loaded||typeof e.lib==`function`,wa=e=>!!e.loading,Ta=(e,t)=>{if(!e||!t)return!1;let{usedExports:n}=e;return n?!!t.every(e=>n.includes(e)):!1};function Ea(e,t,n,r){let i=e[t][n],a=``,o=ba(r),s=function(e,t){return o?i[e].treeShaking?i[t].treeShaking?!Ca(i[e].treeShaking)&&xa(e,t):!1:!0:!Ca(i[e])&&xa(e,t)};if(o){if(a=Sa(e[t][n],s),a)return{version:a,useTreesShaking:o};o=!1}return{version:Sa(e[t][n],s),useTreesShaking:o}}var Da=e=>Ca(e)||wa(e);function Oa(e,t,n,r){let i=e[t][n],a=``,o=ba(r),s=function(e,t){if(o){if(!i[e].treeShaking)return!0;if(!i[t].treeShaking)return!1;if(Da(i[t].treeShaking))return!Da(i[e].treeShaking)||!!xa(e,t);if(Da(i[e].treeShaking))return!1}return Da(i[t])?!Da(i[e])||!!xa(e,t):!Da(i[e])&&xa(e,t)};if(o){if(a=Sa(e[t][n],s),a)return{version:a,useTreesShaking:o};o=!1}return{version:Sa(e[t][n],s),useTreesShaking:o}}function ka(e){return e===`loaded-first`?Oa:Ea}function Aa(e,t,n,r){if(!e)return;let{shareConfig:i,scope:a=ga,strategy:o,treeShaking:s}=n,c=Array.isArray(a)?a:[a];for(let a of c)if(i&&e[a]&&e[a][t]){let{requiredVersion:c}=i,{version:l,useTreesShaking:u}=ka(o)(e,a,t,s),d={shareScopeMap:e,scope:a,pkgName:t,version:l,GlobalFederation:ni.__FEDERATION__,shareInfo:n,resolver:()=>{let r=e[a][t][l];if(i.singleton){if(typeof c==`string`&&!ha(l,c)){let e=`Version ${l} from ${l&&r.from} of shared singleton module ${t} does not satisfy the requirement of ${n.from} which needs ${c})`;i.strictVersion?Hr(e):Ur(e)}return{shared:r,useTreesShaking:u}}{if(c===!1||c===`*`||ha(l,c))return{shared:r,useTreesShaking:u};let n=ba(s);if(n){for(let[r,i]of Object.entries(e[a][t]))if(ba(i.treeShaking,s==null?void 0:s.usedExports)&&ha(r,c))return{shared:i,useTreesShaking:n}}for(let[n,r]of Object.entries(e[a][t]))if(ha(n,c))return{shared:r,useTreesShaking:!1}}}};return(r.emit(d)||d).resolver()}}function ja(){return ni.__FEDERATION__.__SHARE__}function Ma(e){let{pkgName:t,extraOptions:n,shareInfos:r}=e,i=(n==null?void 0:n.resolver)??(e=>{if(!e)return;let t={};return e.forEach(e=>{t[e.version]=e}),t[Sa(t,function(e,n){return!Ca(t[e])&&xa(e,n)})]}),a=e=>typeof e==`object`&&!!e&&!Array.isArray(e),o=(...e)=>{let t={};for(let n of e)if(n)for(let[e,r]of Object.entries(n)){let n=t[e];a(n)&&a(r)?t[e]=o(n,r):r!==void 0&&(t[e]=r)}return t};return o(i(r[t]),n==null?void 0:n.customShareInfo)}var Na=(e,t)=>{e.useIn||=[],Wr(e.useIn,t)};function Pa(e,t){return t&&e.treeShaking?e.treeShaking:e}function Fa(e,t){return!t||t===`.`?e:`${e}/${t.replace(/^\.\//,``)}`}function Ia(e,t){for(let n of e){let e=t.startsWith(n.name),r=t.replace(n.name,``);if(e){if(r.startsWith(`/`)){let e=n.name;return r=`.${r}`,{pkgNameOrAlias:e,expose:r,remote:n}}if(r===``)return{pkgNameOrAlias:n.name,expose:`.`,remote:n}}let i=n.alias&&t.startsWith(n.alias),a=n.alias&&t.replace(n.alias,``);if(n.alias&&i){if(a&&a.startsWith(`/`)){let e=n.alias;return a=`.${a}`,{pkgNameOrAlias:e,expose:a,remote:n}}if(a===``)return{pkgNameOrAlias:n.alias,expose:`.`,remote:n}}}}function La(e,t){for(let n of e)if(t===n.name||n.alias&&t===n.alias)return n}var Ra=`RUNTIME-001`,za=`RUNTIME-002`,Ba=`RUNTIME-003`,Va=`RUNTIME-004`,Ha=`RUNTIME-005`,Ua=`RUNTIME-006`,Wa=`RUNTIME-007`,Ga=`RUNTIME-008`,Ka=`RUNTIME-009`,qa=`RUNTIME-010`,Ja=`RUNTIME-011`,Ya=`RUNTIME-012`,Xa=`RUNTIME-013`,Za=`RUNTIME-014`,Qa=`RUNTIME-015`,$a=`TYPE-001`,eo=`BUILD-001`,to=`BUILD-002`,no={[Ra]:`Failed to get remoteEntry exports.`,[za]:`The remote entry interface does not contain "init"`,[Ba]:`Failed to get manifest.`,[Va]:`Failed to locate remote.`,[Ha]:`Invalid loadShareSync function call from bundler runtime`,[Ua]:`Invalid loadShareSync function call from runtime`,[Wa]:`Failed to get remote snapshot.`,[Ga]:`Failed to load script resources.`,[Ka]:`Please call createInstance first.`,[qa]:`The name option cannot be changed after initialization. If you want to create a new instance with a different name, please use "createInstance" api.`,[Ja]:`The remoteEntry URL is missing from the remote snapshot.`,[Ya]:`The getter for the shared module is not a function. This may be caused by setting "shared.import: false" without the host providing the corresponding lib.`,[Xa]:`The manifest is not a valid Module Federation manifest.`,[Za]:`The remote does not expose the requested module.`,[Qa]:`Remote container initialization failed.`},ro={[$a]:`Failed to generate type declaration. Execute the below cmd to reproduce and fix the error.`},io={[eo]:`Failed to find expose module.`,[to]:`PublicPath is required in prod mode.`};({...no,...ro,...io});var ao=`.then(callbacks[0]).catch(callbacks[1])`;async function oo({entry:e,remoteEntryExports:t}){return new Promise((n,r)=>{try{t?n(t):typeof FEDERATION_ALLOW_NEW_FUNCTION<`u`?Function(`callbacks`,`import("${e}")${ao}`)([n,r]):i(()=>import(e).then(n),[],import.meta.url).catch(r)}catch(t){Hr(`Failed to load ESM entry from "${e}". ${t instanceof Error?t.message:String(t)}`)}})}async function so({entry:e,remoteEntryExports:t}){return new Promise((n,r)=>{try{t?n(t):typeof __system_context__>`u`?System.import(e).then(n).catch(r):Function(`callbacks`,`System.import("${e}")${ao}`)([n,r])}catch(t){Hr(`Failed to load SystemJS entry from "${e}". ${t instanceof Error?t.message:String(t)}`)}})}function co(e,t,n){let{remoteEntryKey:r,entryExports:i}=_i(e,t);return i||Hr(Ra,no,{remoteName:e,remoteEntryUrl:n,remoteEntryKey:r}),i}async function lo({name:e,globalName:t,entry:n,remoteInfo:r,loaderHook:i,getEntryUrl:a,resourceContext:o}){let{entryExports:s}=_i(e,t);if(s)return s;let c=a?a(n):n;return Fr(c,{attrs:{},createScriptHook:(e,t)=>{let n=i.lifecycle.createScript.emit({url:e,attrs:t,remoteInfo:r,resourceContext:o?{...o,url:e}:void 0});if(n&&(n instanceof HTMLScriptElement||`script`in n||`timeout`in n))return n}}).then(()=>co(e,t,n),t=>{let n=t instanceof Error?t.message:String(t);Hr(Ga,no,{remoteName:e,resourceUrl:c},n)})}async function uo({remoteInfo:e,remoteEntryExports:t,loaderHook:n,getEntryUrl:r,resourceContext:i}){let{entry:a,entryGlobalName:o,name:s,type:c}=e;switch(c){case`esm`:case`module`:return oo({entry:a,remoteEntryExports:t});case`system`:return so({entry:a,remoteEntryExports:t});default:return lo({entry:a,globalName:o,name:s,remoteInfo:e,loaderHook:n,getEntryUrl:r,resourceContext:i})}}function fo(e){let{entry:t,name:n}=e;return gr(n,t)}async function po(e){let{origin:t,remoteEntryExports:n,remoteInfo:r,getEntryUrl:i,resourceContext:a,_inErrorHandling:o=!1}=e,s=fo(r);if(n)return n;if(!ai[s]){let e=t.remoteHandler.hooks.lifecycle.loadEntry,c=t.loaderHook;ai[s]=e.emit({origin:t,loaderHook:c,remoteInfo:r,remoteEntryExports:n}).then(e=>e||uo({remoteInfo:r,remoteEntryExports:n,loaderHook:c,getEntryUrl:i,resourceContext:a})).then(async e=>(await t.loaderHook.lifecycle.afterLoadEntry.emit({origin:t,remoteInfo:r,remoteEntryExports:e}),e)).catch(async e=>{let i=fo(r),a=e instanceof Error&&e.message.includes(`ScriptExecutionError`);if(e instanceof Error&&e.message.includes(`RUNTIME-008`)&&!a&&!o){let e=await t.loaderHook.lifecycle.loadEntryError.emit({getRemoteEntry:e=>po({...e,_inErrorHandling:!0}),origin:t,remoteInfo:r,remoteEntryExports:n,globalLoading:ai,uniqueKey:i});if(e)return await t.loaderHook.lifecycle.afterLoadEntry.emit({origin:t,remoteInfo:r,remoteEntryExports:e,recovered:!0}),e}throw await t.loaderHook.lifecycle.afterLoadEntry.emit({origin:t,remoteInfo:r,error:e}),e})}return ai[s]}function mo(e){return{...e,entry:`entry`in e?e.entry:``,type:e.type||`global`,entryGlobalName:e.entryGlobalName||e.name,shareScope:e.shareScope||`default`}}function ho(){return typeof FEDERATION_BUILD_IDENTIFIER<`u`?FEDERATION_BUILD_IDENTIFIER:``}function go(e,t){let n=yi(),r=[t.hooks,t.remoteHandler.hooks,t.sharedHandler.hooks,t.snapshotHandler.hooks,t.loaderHook,t.bridgeHook];return n.length>0&&n.forEach(t=>{e!=null&&e.find(e=>e.name!==t.name)&&e.push(t)}),e&&e.length>0&&e.forEach(e=>{r.forEach(n=>{n.applyPlugin(e,t)})}),e}function _o(e){return{name:e.name,alias:e.alias,entry:`entry`in e?e.entry:void 0,version:`version`in e?e.version:void 0,type:e.type,entryGlobalName:e.entryGlobalName,shareScope:e.shareScope}}function vo(e){var t,n;let r={};for(let[t,n]of Object.entries(e.shared)){var i,a,o,s;let e=n[0];e&&(r[t]={version:e.version,singleton:(i=e.shareConfig)==null?void 0:i.singleton,requiredVersion:((a=e.shareConfig)==null?void 0:a.requiredVersion)===!1?!1:(o=e.shareConfig)==null?void 0:o.requiredVersion,eager:e.eager,strictVersion:(s=e.shareConfig)==null?void 0:s.strictVersion})}return{project:{name:e.name,mfRole:((t=e.remotes)==null?void 0:t.length)>0?`host`:`unknown`},mfConfig:{name:e.name,remotes:((n=e.remotes)==null?void 0:n.map(_o))??[],shared:r}}}function yo(e){return{resourceCategory:`sync`,share:!0,depsRemote:!0,...e}}function bo(e,t){return t.map(t=>{let n=La(e,t.nameOrAlias);return Vr(n,`Unable to preload ${t.nameOrAlias} as it is not included in ${!n&&yr({remoteInfo:n,remotes:e})}`),{remote:n,preloadConfig:yo(t)}})}function xo(e){return e?e.map(e=>e===`.`?e:e.startsWith(`./`)?e.replace(`./`,``):e):[]}function So(e){return e instanceof Error?e.message.includes(`timed out`)||e.name.includes(`Timeout`):!1}function Co(e,t,n,r){return{url:t,status:n,resourceType:e.resourceType,initiator:e.initiator,id:e.id,error:r}}async function wo(e,t,n,r){let i=e.moduleCache.get(n.name),a=n.entry;if(i!=null&&i.remoteEntryExports)return Co(r,a,`cached`);try{if(!await po({origin:e,remoteInfo:n,remoteEntryExports:i==null?void 0:i.remoteEntryExports,resourceContext:{...r,url:a}}))throw Error(`Failed to load remoteEntry "${a}".`);return Co(r,a,`success`)}catch(e){return Co(r,a,So(e)?`timeout`:`error`,e)}}function To({host:e,remoteInfo:t,url:n,attrs:r,context:i,needDeleteLink:a}){return new Promise(o=>{let{link:s,needAttach:c}=Pr({url:n,cb:()=>{o(Co(i,n,c?`success`:`cached`))},onErrorCallback:e=>{o(Co(i,n,So(e)?`timeout`:`error`,e))},attrs:r,createLinkHook:(n,r)=>{let a=e.loaderHook.lifecycle.createLink.emit({url:n,attrs:r,remoteInfo:t,resourceContext:{...i,url:n}});return a instanceof HTMLLinkElement,a},needDeleteLink:a});c&&document.head.appendChild(s)})}function Eo({host:e,remoteInfo:t,url:n,attrs:r,context:i}){return new Promise(a=>{let{script:o,needAttach:s}=Nr({url:n,cb:()=>{a(Co(i,n,s?`success`:`cached`))},onErrorCallback:e=>{a(Co(i,n,So(e)?`timeout`:`error`,e))},attrs:r,createScriptHook:(n,r)=>{let a=e.loaderHook.lifecycle.createScript.emit({url:n,attrs:r,remoteInfo:t,resourceContext:{...i,url:n}});return a instanceof HTMLScriptElement,a},needDeleteScript:!0});s&&document.head.appendChild(o)})}function Do(e,t){return{...e,resourceType:t}}function Oo(e,t,n,r=!0,i={initiator:`preloadRemote`,id:e.name}){let{cssAssets:a,jsAssetsWithoutEntry:o,entryAssets:s}=n,c=[];if(t.options.inBrowser){if(s.forEach(n=>{let{moduleInfo:r}=n;c.push(wo(t,e,r,Do(i,`remoteEntry`)))}),r){let n={rel:`preload`,as:`style`};a.forEach(r=>{c.push(To({host:t,remoteInfo:e,url:r,attrs:n,context:Do(i,`css`)}))})}else{let n={rel:`stylesheet`,type:`text/css`};a.forEach(r=>{c.push(To({host:t,remoteInfo:e,url:r,attrs:n,needDeleteLink:!1,context:Do(i,`css`)}))})}if(r){let n={rel:`preload`,as:`script`};o.forEach(r=>{c.push(To({host:t,remoteInfo:e,url:r,attrs:n,context:Do(i,`js`)}))})}else{let n={fetchpriority:`high`,type:(e==null?void 0:e.type)===`module`?`module`:`text/javascript`};o.forEach(r=>{c.push(Eo({host:t,remoteInfo:e,url:r,attrs:n,context:Do(i,`js`)}))})}}return Promise.all(c)}var ko={global:{Global:ni,nativeGlobal:ti,resetFederationGlobalInfo:si,setGlobalFederationInstance:ci,getGlobalFederationConstructor:li,setGlobalFederationConstructor:ui,getInfoWithoutType:di,getGlobalSnapshot:fi,getTargetSnapshotInfoByModuleInfo:pi,getGlobalSnapshotInfoByModuleInfo:mi,setGlobalSnapshotInfoByModuleInfo:hi,addGlobalSnapshot:gi,getRemoteEntryExports:_i,registerGlobalPlugins:vi,getGlobalHostPlugins:yi,getPreloaded:bi,setPreloaded:xi},share:{getRegisteredShare:Aa,getGlobalShareScope:ja},utils:{matchRemoteWithNameAndExpose:Ia,preloadAssets:Oo,getRemoteInfo:mo}};function Ao(e){if(!e||!(`modules`in e)||!Array.isArray(e.modules))return;let t=e.modules.map(e=>e.moduleName).filter(Boolean);return t.length?t.join(`,`):void 0}function jo(e,t,n){let r=t,i=Array.isArray(e.shareScope)?e.shareScope:[e.shareScope];i.length||i.push(`default`),i.forEach(e=>{r[e]||(r[e]={})});let a={version:e.version||``,shareScopeKeys:Array.isArray(e.shareScope)?i:e.shareScope||`default`};return Object.defineProperty(a,"shareScopeMap",{value:r,enumerable:!1}),{remoteEntryInitOptions:a,shareScope:r[i[0]],initScope:n??[]}}var Mo=class{constructor({remoteInfo:e,host:t}){this.inited=!1,this.initing=!1,this.lib=void 0,this.remoteInfo=e,this.host=t}async getEntry(e){if(this.remoteEntryExports)return this.remoteEntryExports;let t=await po({origin:this.host,remoteInfo:this.remoteInfo,remoteEntryExports:this.remoteEntryExports,resourceContext:{initiator:`loadRemote`,id:Fa(this.remoteInfo.name,e),resourceType:`remoteEntry`}});return Vr(t,`remoteEntryExports is undefined \n ${yr(this.remoteInfo)}`),this.remoteEntryExports=t,this.remoteEntryExports}async init(e,t,n,r){let i=await this.getEntry(r);if(this.inited)return await this.host.loaderHook.lifecycle.afterInitRemote.emit({id:e,remoteInfo:this.remoteInfo,remoteSnapshot:t,remoteEntryExports:i,cached:!0,origin:this.host}),i;if(this.initPromise){try{await this.initPromise,await this.host.loaderHook.lifecycle.afterInitRemote.emit({id:e,remoteInfo:this.remoteInfo,remoteSnapshot:t,remoteEntryExports:i,cached:!0,origin:this.host})}catch(n){throw await this.host.loaderHook.lifecycle.afterInitRemote.emit({id:e,remoteInfo:this.remoteInfo,remoteSnapshot:t,remoteEntryExports:i,error:n,cached:!0,origin:this.host}),n}return i}this.initing=!0,this.initPromise=(async()=>{await this.host.loaderHook.lifecycle.beforeInitRemote.emit({id:e,remoteInfo:this.remoteInfo,remoteSnapshot:t,origin:this.host});let{remoteEntryInitOptions:r,shareScope:a,initScope:o}=jo(this.remoteInfo,this.host.shareScopeMap,n),s=await this.host.hooks.lifecycle.beforeInitContainer.emit({shareScope:a,remoteEntryInitOptions:r,initScope:o,remoteInfo:this.remoteInfo,origin:this.host});(i==null?void 0:i.init)===void 0&&Hr(za,no,{hostName:this.host.name,remoteName:this.remoteInfo.name,remoteEntryUrl:this.remoteInfo.entry,remoteEntryKey:this.remoteInfo.entryGlobalName},void 0,vo(this.host.options));try{await i.init(s.shareScope,s.initScope,s.remoteEntryInitOptions)}catch(e){Hr(Qa,no,{hostName:this.host.name,remoteName:this.remoteInfo.name,remoteEntryUrl:this.remoteInfo.entry,remoteEntryKey:this.remoteInfo.entryGlobalName,shareScope:this.remoteInfo.shareScope},`${e}`,vo(this.host.options))}await this.host.hooks.lifecycle.initContainer.emit({...s,id:e,remoteSnapshot:t,remoteEntryExports:i}),this.inited=!0})();try{await this.initPromise,await this.host.loaderHook.lifecycle.afterInitRemote.emit({id:e,remoteInfo:this.remoteInfo,remoteSnapshot:t,remoteEntryExports:i,origin:this.host})}catch(n){throw await this.host.loaderHook.lifecycle.afterInitRemote.emit({id:e,remoteInfo:this.remoteInfo,remoteSnapshot:t,remoteEntryExports:i,error:n,origin:this.host}),n}finally{this.initing=!1,this.initPromise=void 0}return i}async get(e,t,n,r){let{loadFactory:i=!0}=n||{loadFactory:!0},a=await this.init(e,r,void 0,t);this.lib=a,await this.host.loaderHook.lifecycle.beforeGetExpose.emit({id:e,expose:t,moduleInfo:this.remoteInfo,remoteEntryExports:a,origin:this.host});let o;try{let n=await this.host.loaderHook.lifecycle.getModuleFactory.emit({remoteEntryExports:a,expose:t,moduleInfo:this.remoteInfo});o=typeof n==`function`?n:void 0,o||=await a.get(t),o||Hr(Za,no,{hostName:this.host.name,remoteName:this.remoteInfo.name,remoteEntryUrl:this.remoteInfo.entry,expose:t,requestId:e,availableExposes:Ao(r)},void 0,vo(this.host.options)),await this.host.loaderHook.lifecycle.afterGetExpose.emit({id:e,expose:t,moduleInfo:this.remoteInfo,remoteEntryExports:a,moduleFactory:o,origin:this.host})}catch(n){throw await this.host.loaderHook.lifecycle.afterGetExpose.emit({id:e,expose:t,moduleInfo:this.remoteInfo,remoteEntryExports:a,error:n,origin:this.host}),n}let s=$r(this.remoteInfo.name,t),c=this.wraperFactory(o,s);if(!i)return c;await this.host.loaderHook.lifecycle.beforeExecuteFactory.emit({id:e,expose:t,moduleInfo:this.remoteInfo,loadFactory:i,origin:this.host});try{let n=await c();return await this.host.loaderHook.lifecycle.afterExecuteFactory.emit({id:e,expose:t,moduleInfo:this.remoteInfo,loadFactory:i,exposeModule:n,origin:this.host}),n}catch(n){throw await this.host.loaderHook.lifecycle.afterExecuteFactory.emit({id:e,expose:t,moduleInfo:this.remoteInfo,loadFactory:i,error:n,origin:this.host}),n}}wraperFactory(e,t){function n(e,t){e&&typeof e==`object`&&Object.isExtensible(e)&&!Object.getOwnPropertyDescriptor(e,Symbol.for(`mf_module_id`))&&Object.defineProperty(e,Symbol.for(`mf_module_id`),{value:t,enumerable:!1})}return()=>{let r=e();return r instanceof Promise?r.then(e=>(n(e,t),e)):(n(r,t),r)}}},No=class{constructor(e){this.registerPlugins={},this.lifecycle=e,this.lifecycleKeys=Object.keys(e)}applyPlugin(e,t){Vr(Xr(e),`Plugin configuration is invalid.`);let n=e.name;if(Vr(n,`A name must be provided by the plugin.`),!this.registerPlugins[n]){var r;this.registerPlugins[n]=e,(r=e.apply)==null||r.call(e,t),Object.keys(this.lifecycle).forEach(t=>{let n=e[t];n&&this.lifecycle[t].on(n)})}}removePlugin(e){Vr(e,`A name is required.`);let t=this.registerPlugins[e];Vr(t,`The plugin "${e}" is not registered.`),Object.keys(t).forEach(e=>{e!==`name`&&this.lifecycle[e].remove(t[e])})}},Po=class{constructor(e){this.type=``,this.listeners=new Set,e&&(this.type=e)}on(e){typeof e==`function`&&this.listeners.add(e)}once(e){let t=this;this.on(function n(...r){return t.remove(n),e.apply(null,r)})}emit(...e){let t;return this.listeners.size>0&&this.listeners.forEach(n=>{let r=n(...e);r!==void 0&&(t=r)}),t}remove(e){this.listeners.delete(e)}removeAll(){this.listeners.clear()}},Fo=class extends Po{emit(...e){let t,n=Array.from(this.listeners);if(n.length>0){let r=0,i=t=>t===!1?!1:r<n.length?Promise.resolve(n[r++].apply(null,e)).then(n=>n===void 0||e.length===1&&n===e[0]?i(t):i(n)):t;t=i()}return Promise.resolve(t)}};function Io(e,t){if(!Jr(t))return!1;if(e!==t){for(let n in e)if(!(n in t))return!1}return!0}var Lo=class extends Po{constructor(e){super(),this.onerror=Hr,this.type=e}emit(e){Jr(e)||Hr(`The data for the "${this.type}" hook should be an object.`);for(let t of this.listeners)try{let n=t(e);if(n===void 0)continue;if(Io(e,n))e=n;else{this.onerror(`A plugin returned an unacceptable value for the "${this.type}" type.`);break}}catch(e){Ur(e),this.onerror(e)}return e}},Ro=class extends Po{constructor(e){super(),this.onerror=Hr,this.type=e}emit(e){Jr(e)||Hr(`The response data for the "${this.type}" hook must be an object.`);let t=Array.from(this.listeners);if(t.length>0){let n=0,r=t=>(Ur(t),this.onerror(t),e),i=a=>{if(a!==void 0&&Io(e,a))e=a;else if(a!==void 0)return this.onerror(`A plugin returned an incorrect value for the "${this.type}" type.`),e;if(n<t.length)try{return Promise.resolve(t[n++](e)).then(i,r)}catch(e){return r(e)}return e};return Promise.resolve(i(e))}return Promise.resolve(e)}},zo=`Remote loading is disabled by experiments.optimization.disableRemote.`,Bo=class{constructor(){this.hooks=new No({})}formatAndRegisterRemote(){return[]}loadRemote(){throw Error(zo)}preloadRemote(){throw Error(zo)}registerRemotes(){throw Error(zo)}getRemoteModuleAndOptions(){throw Error(zo)}initRawContainer(){throw Error(zo)}};function Vo(e,t){let n=Qr(t);n.url||Hr(Ja,no,{remoteName:e.name});let r=_r(t,n.url);e.type=n.type,e.entryGlobalName=n.globalName,e.entry=r,e.version=t.version,e.buildVersion=t.buildVersion}function Ho(){return{name:`snapshot-plugin`,async afterResolve(e){let{remote:t,pkgNameOrAlias:n,expose:r,origin:i,remoteInfo:a,id:o}=e;if(!Kr(t)||!qr(t)){let{remoteSnapshot:s,globalSnapshot:c}=await i.snapshotHandler.loadRemoteSnapshotInfo({moduleInfo:t,id:Fa(t.name,r)});Vo(a,s);let l={remote:t,preloadConfig:{nameOrAlias:n,exposes:[r],resourceCategory:`sync`,share:!1,depsRemote:!1}},u=await i.remoteHandler.hooks.lifecycle.generatePreloadAssets.emit({origin:i,preloadOptions:l,remoteInfo:a,remote:t,remoteSnapshot:s,globalSnapshot:c});return u&&Oo(a,i,u,!1,{initiator:`loadRemote`,id:o}).catch(()=>void 0),{...e,remoteSnapshot:s}}return e}}}function Uo(e){let t=e.split(`:`);return t.length===1?{name:t[0],version:void 0}:t.length===2?{name:t[0],version:t[1]}:{name:t[1],version:t[2]}}function Wo(e,t,n,r,i={},a){let{value:o}=di(e,Gr(t)),s=a||o;if(s&&!Cr(s)&&(n(s,t,r),s.remotesInfo)){let t=Object.keys(s.remotesInfo);for(let r of t){if(i[r])continue;i[r]=!0;let t=Uo(r),a=s.remotesInfo[r];Wo(e,{name:t.name,version:a.matchedVersion},n,!1,i,void 0)}}}var Go=(e,t)=>document.querySelector(`${e}[${e===`link`?`href`:`src`}="${t}"]`);function Ko(e,t,n,r,i){let a=[],o=[],s=[],c=new Set,l=new Set,{options:u}=e,{preloadConfig:d}=t,{depsRemote:f}=d;if(Wo(r,n,(t,n,r)=>{var i;let c;if(r)c=d;else if(Array.isArray(f)){let e=f.find(e=>e.nameOrAlias===n.name||e.nameOrAlias===n.alias);if(!e)return;c=yo(e)}else if(f===!0)c=d;else return;let l=_r(t,Qr(t).url);l&&s.push({name:n.name,moduleInfo:{name:n.name,entry:l,type:`remoteEntryType`in t?t.remoteEntryType:`global`,entryGlobalName:`globalName`in t?t.globalName:n.name,shareScope:``,version:`version`in t?t.version:void 0},url:l});let u=`modules`in t?t.modules:[],p=xo(c.exposes);p.length&&`modules`in t&&(u=t==null||(i=t.modules)==null?void 0:i.reduce((e,t)=>((p==null?void 0:p.indexOf(t.moduleName))!==-1&&e.push(t),e),[]));function m(e){let n=e.map(e=>_r(t,e));return c.filter?n.filter(c.filter):n}if(u){let r=u.length;for(let i=0;i<r;i++){let r=u[i],s=`${n.name}/${r.moduleName}`;e.remoteHandler.hooks.lifecycle.handlePreloadModule.emit({id:r.moduleName===`.`?n.name:s,name:n.name,remoteSnapshot:t,preloadConfig:c,remote:n,origin:e}),!bi(s)&&(c.resourceCategory===`all`?(a.push(...m(r.assets.css.async)),a.push(...m(r.assets.css.sync)),o.push(...m(r.assets.js.async)),o.push(...m(r.assets.js.sync))):c.resourceCategory===`sync`&&(a.push(...m(r.assets.css.sync)),o.push(...m(r.assets.js.sync))),xi(s))}}},!0,{},i),i.shared&&i.shared.length>0){let t=(t,n)=>{let{shared:r}=Aa(e.shareScopeMap,n.sharedName,t,e.sharedHandler.hooks.lifecycle.resolveShare)||{};r&&typeof r.lib==`function`&&(n.assets.js.sync.forEach(e=>{c.add(e)}),n.assets.css.sync.forEach(e=>{l.add(e)}))};i.shared.forEach(e=>{var n;let r=(n=u.shared)==null?void 0:n[e.sharedName];if(!r)return;let i=e.version?r.find(t=>t.version===e.version):r;i&&Zr(i).forEach(n=>{t(n,e)})})}let p=o.filter(e=>!c.has(e)&&!Go(`script`,e));return{cssAssets:a.filter(e=>!l.has(e)&&!Go(`link`,e)),jsAssetsWithoutEntry:p,entryAssets:s.filter(e=>!Go(`script`,e.url))}}var qo=function(){return{name:`generate-preload-assets-plugin`,async generatePreloadAssets(e){let{origin:t,preloadOptions:n,remoteInfo:r,remote:i,globalSnapshot:a,remoteSnapshot:o}=e;return Kr(i)&&qr(i)?{cssAssets:[],jsAssetsWithoutEntry:[],entryAssets:[{name:i.name,url:i.entry,moduleInfo:{name:r.name,entry:i.entry,type:r.type||`global`,entryGlobalName:``,shareScope:``}}]}:(Vo(r,o),Ko(t,n,r,a,o))}}};function Jo(e,t){let n=mi({name:t.name,version:t.options.version}),r=n&&`remotesInfo`in n&&n.remotesInfo&&di(n.remotesInfo,e.name).value;return r&&r.matchedVersion?{hostGlobalSnapshot:n,globalSnapshot:fi(),remoteSnapshot:mi({name:e.name,version:r.matchedVersion})}:{hostGlobalSnapshot:void 0,globalSnapshot:fi(),remoteSnapshot:mi({name:e.name,version:`version`in e?e.version:void 0})}}var Yo=class{constructor(e){this.loadingHostSnapshot=null,this.manifestCache=new Map,this.hooks=new No({beforeLoadRemoteSnapshot:new Fo(`beforeLoadRemoteSnapshot`),loadSnapshot:new Ro(`loadGlobalSnapshot`),loadRemoteSnapshot:new Ro(`loadRemoteSnapshot`),afterLoadSnapshot:new Ro(`afterLoadSnapshot`)}),this.manifestLoading=ni.__FEDERATION__.__MANIFEST_LOADING__,this.HostInstance=e,this.loaderHook=e.loaderHook}async loadRemoteSnapshotInfo({moduleInfo:e,id:t,initiator:n=`loadRemote`}){let{options:r}=this.HostInstance;await this.hooks.lifecycle.beforeLoadRemoteSnapshot.emit({options:r,moduleInfo:e,origin:this.HostInstance});let i=mi({name:this.HostInstance.options.name,version:this.HostInstance.options.version});i||(i={version:this.HostInstance.options.version||``,remoteEntry:``,remotesInfo:{}},gi({[this.HostInstance.options.name]:i})),i&&`remotesInfo`in i&&!di(i.remotesInfo,e.name).value&&(`version`in e||`entry`in e)&&(i.remotesInfo={...i==null?void 0:i.remotesInfo,[e.name]:{matchedVersion:`version`in e?e.version:e.entry}});let{hostGlobalSnapshot:a,remoteSnapshot:o,globalSnapshot:s}=this.getGlobalRemoteInfo(e),{remoteSnapshot:c,globalSnapshot:l}=await this.hooks.lifecycle.loadSnapshot.emit({options:r,moduleInfo:e,hostGlobalSnapshot:a,remoteSnapshot:o,globalSnapshot:s}),u,d;if(c){if(Cr(c)){let r=c.remoteEntry,i=await this.loadManifestSnapshot(r,e,{},{initiator:n,id:t||e.name}),a=hi({...e,entry:r},i);u=i,d=a}else{let{remoteSnapshot:t}=await this.hooks.lifecycle.loadRemoteSnapshot.emit({options:this.HostInstance.options,moduleInfo:e,remoteSnapshot:c,from:`global`});u=t,d=l}}else if(Kr(e)){let r=await this.loadManifestSnapshot(e.entry,e,{},{initiator:n,id:t||e.name}),i=hi(e,r);u=r,d=i}else Hr(Wa,no,{remoteName:e.name,remoteVersion:e.version,hostName:this.HostInstance.options.name,globalSnapshot:JSON.stringify(l)},void 0,vo(this.HostInstance.options));return await this.hooks.lifecycle.afterLoadSnapshot.emit({id:t,host:this.HostInstance,options:r,moduleInfo:e,remoteSnapshot:u}),{remoteSnapshot:u,globalSnapshot:d}}getGlobalRemoteInfo(e){return Jo(e,this.HostInstance)}async getManifestJson(e,t,n,r){return(async()=>{let n=mo(t),i=this.manifestCache.get(e);if(i)return i;try{let t=await this.loaderHook.lifecycle.fetch.emit(e,{},n,r?{...r,url:e,resourceType:`manifest`}:void 0);(!t||!(t instanceof Response))&&(t=await fetch(e,{})),i=await t.json()}catch(r){i=await this.HostInstance.remoteHandler.hooks.lifecycle.errorLoadRemote.emit({id:e,error:r,from:`runtime`,lifecycle:`afterResolve`,remote:n,origin:this.HostInstance}),i||(delete this.manifestLoading[e],Hr(Ba,no,{manifestUrl:e,moduleName:t.name,hostName:this.HostInstance.options.name},`${r}`,vo(this.HostInstance.options)))}let a=[!i.metaData&&`metaData`,!i.exposes&&`exposes`,!i.shared&&`shared`].filter(Boolean);return a.length>0&&await this.HostInstance.remoteHandler.hooks.lifecycle.errorLoadRemote.emit({id:e,error:Error(`"${e}" is not a valid federation manifest for remote "${t.name}". Missing required fields: ${a.join(`, `)}.`),from:`runtime`,lifecycle:`afterResolve`,remote:n,origin:this.HostInstance}),a.length>0&&Hr(Xa,no,{manifestUrl:e,moduleName:t.name,hostName:this.HostInstance.options.name,missingFields:a.join(`,`)},void 0,vo(this.HostInstance.options)),this.manifestCache.set(e,i),i})()}async loadManifestSnapshot(e,t,n,r){let i=async()=>{let i=await this.getManifestJson(e,t,n,r),a=Sr(i,{version:e}),{remoteSnapshot:o}=await this.hooks.lifecycle.loadRemoteSnapshot.emit({options:this.HostInstance.options,moduleInfo:t,manifestJson:i,remoteSnapshot:a,manifestUrl:e,from:`manifest`});return o};return this.manifestLoading[e]||(this.manifestLoading[e]=i().then(e=>e)),this.manifestLoading[e]}},Xo=class{constructor(){this.hooks=new No({})}},Zo=class{constructor(e){this.hooks=new No({beforeRegisterShare:new Lo(`beforeRegisterShare`),afterResolve:new Ro(`afterResolve`),beforeLoadShare:new Ro(`beforeLoadShare`),loadShare:new Fo,afterLoadShare:new Po(`afterLoadShare`),errorLoadShare:new Po(`errorLoadShare`),resolveShare:new Lo(`resolveShare`),initContainerShareScopeMap:new Lo(`initContainerShareScopeMap`)}),this.host=e,this.shareScopeMap={},this.initTokens={},this._setGlobalShareScopeMap(e.options)}emitAfterLoadShare({lifecycle:e,pkgName:t,shareInfo:n,selectedShared:r}){try{this.hooks.lifecycle.afterLoadShare.emit({pkgName:t,shareInfo:n,selectedShared:r,shared:this.host.options.shared,shareScopeMap:this.shareScopeMap,lifecycle:e,origin:this.host})}catch(e){Ur(e)}}emitErrorLoadShare({lifecycle:e,pkgName:t,shareInfo:n,error:r,recovered:i}){try{this.hooks.lifecycle.errorLoadShare.emit({pkgName:t,shareInfo:n,shared:this.host.options.shared,shareScopeMap:this.shareScopeMap,lifecycle:e,origin:this.host,error:r,recovered:i})}catch(e){Ur(e)}}registerShared(e,t){let{newShareInfos:n,allShareInfos:r}=ya(e,t);return Object.keys(n).forEach(e=>{n[e].forEach(n=>{n.scope.forEach(r=>{var i;this.hooks.lifecycle.beforeRegisterShare.emit({origin:this.host,pkgName:e,shared:n}),(i=this.shareScopeMap[r])!=null&&i[e]||this.setShared({pkgName:e,lib:n.lib,get:n.get,loaded:n.loaded||!!n.lib,shared:n,from:t.name})})})}),{newShareInfos:n,allShareInfos:r}}async loadShare(e,t){let{host:n}=this,r=Ma({pkgName:e,extraOptions:t,shareInfos:n.options.shared}),i=r;try{r!=null&&r.scope&&await Promise.all(r.scope.map(async e=>{await Promise.all(this.initializeSharing(e,{strategy:r.strategy}))})),i=(await this.hooks.lifecycle.beforeLoadShare.emit({pkgName:e,shareInfo:r,shared:n.options.shared,origin:n})).shareInfo,Vr(i,`Cannot find shared "${e}" in host "${n.options.name}". Ensure the shared config for "${e}" is declared in the federation plugin options and the host has been initialized before loading shares.`);let a=i,{shared:o,useTreesShaking:s}=Aa(this.shareScopeMap,e,i,this.hooks.lifecycle.resolveShare)||{};if(o){let t=Pa(o,s);if(t.lib)return Na(t,n.options.name),this.emitAfterLoadShare({lifecycle:`loadShare`,pkgName:e,shareInfo:a,selectedShared:o}),t.lib;if(t.loading&&!t.loaded){let r=await t.loading;return t.loaded=!0,t.lib||=r,Na(t,n.options.name),this.emitAfterLoadShare({lifecycle:`loadShare`,pkgName:e,shareInfo:a,selectedShared:o}),r}{let r=(async()=>{let e=await t.get();return Na(t,n.options.name),t.loaded=!0,t.lib=e,e})();this.setShared({pkgName:e,loaded:!1,shared:o,from:n.options.name,lib:null,loading:r,treeShaking:s?t:void 0});let i=await r;return this.emitAfterLoadShare({lifecycle:`loadShare`,pkgName:e,shareInfo:a,selectedShared:o}),i}}{if(t!=null&&t.customShareInfo)return this.emitErrorLoadShare({lifecycle:`loadShare`,pkgName:e,shareInfo:a,recovered:!0}),!1;let r=ba(a.treeShaking),i=Pa(a,r),o=(async()=>{let t=await i.get();i.lib=t,i.loaded=!0,Na(i,n.options.name);let{shared:r,useTreesShaking:o}=Aa(this.shareScopeMap,e,a,this.hooks.lifecycle.resolveShare)||{};if(r){let e=Pa(r,o);e.lib=t,e.loaded=!0,r.from=a.from}return t})();this.setShared({pkgName:e,loaded:!1,shared:a,from:n.options.name,lib:null,loading:o,treeShaking:r?i:void 0});let s=await o;return this.emitAfterLoadShare({lifecycle:`loadShare`,pkgName:e,shareInfo:a,selectedShared:a}),s}}catch(t){throw this.emitErrorLoadShare({lifecycle:`loadShare`,pkgName:e,shareInfo:i,error:t}),t}}initializeSharing(e=ga,t){let{host:n}=this,r=t==null?void 0:t.from,i=t==null?void 0:t.strategy,a=t==null?void 0:t.initScope,o=[];if(r!==`build`){let{initTokens:t}=this;a||=[];let n=t[e];if(n||=t[e]={from:this.host.name},a.indexOf(n)>=0)return o;a.push(n)}let s=this.shareScopeMap,c=n.options.name;s[e]||(s[e]={});let l=s[e],u=(e,t)=>{var n;let{version:r,eager:i}=t;l[e]=l[e]||{};let a=l[e],o=a[r]&&Pa(a[r]),s=!!(o&&(`eager`in o&&o.eager||`shareConfig`in o&&(n=o.shareConfig)!=null&&n.eager));(!o||o.strategy!==`loaded-first`&&!o.loaded&&(!i==!s?c>a[r].from:i))&&(a[r]=t)},d=async e=>{let{module:t}=await n.remoteHandler.getRemoteModuleAndOptions({id:e}),r;try{r=await t.getEntry()}catch(i){if(r=await n.remoteHandler.hooks.lifecycle.errorLoadRemote.emit({id:e,error:i,from:`runtime`,lifecycle:`beforeLoadShare`,remote:t.remoteInfo,origin:n}),!r)return}finally{r!=null&&r.init&&!t.initing&&(t.remoteEntryExports=r,await t.init(void 0,void 0,a))}};return Object.keys(n.options.shared).forEach(t=>{n.options.shared[t].forEach(n=>{n.scope.includes(e)&&u(t,n)})}),(n.options.shareStrategy===`version-first`||i===`version-first`)&&n.options.remotes.forEach(t=>{t.shareScope===e&&o.push(d(t.name))}),o}loadShareSync(e,t){let{host:n}=this,r=Ma({pkgName:e,extraOptions:t,shareInfos:n.options.shared});try{r!=null&&r.scope&&r.scope.forEach(e=>{this.initializeSharing(e,{strategy:r.strategy})});let{shared:i}=Aa(this.shareScopeMap,e,r,this.hooks.lifecycle.resolveShare)||{};if(i){if(typeof i.lib==`function`)return Na(i,n.options.name),i.loaded||(i.loaded=!0,i.from===n.options.name&&(r.loaded=!0)),this.emitAfterLoadShare({lifecycle:`loadShareSync`,pkgName:e,shareInfo:r,selectedShared:i}),i.lib;if(typeof i.get==`function`){let t=i.get();if(!(t instanceof Promise))return Na(i,n.options.name),this.setShared({pkgName:e,loaded:!0,from:n.options.name,lib:t,shared:i}),this.emitAfterLoadShare({lifecycle:`loadShareSync`,pkgName:e,shareInfo:r,selectedShared:i}),t}}if(r.lib)return r.loaded||=!0,this.emitAfterLoadShare({lifecycle:`loadShareSync`,pkgName:e,shareInfo:r,selectedShared:r}),r.lib;if(r.get){let i=r.get();return i instanceof Promise&&Hr((t==null?void 0:t.from)===`build`?Ha:Ua,no,{hostName:n.options.name,sharedPkgName:e},void 0,vo(n.options)),r.lib=i,this.setShared({pkgName:e,loaded:!0,from:n.options.name,lib:r.lib,shared:r}),this.emitAfterLoadShare({lifecycle:`loadShareSync`,pkgName:e,shareInfo:r,selectedShared:r}),r.lib}Hr(Ua,no,{hostName:n.options.name,sharedPkgName:e},void 0,vo(n.options))}catch(t){throw this.emitErrorLoadShare({lifecycle:`loadShareSync`,pkgName:e,shareInfo:r,error:t}),t}}initShareScopeMap(e,t,n={}){let{host:r}=this;this.shareScopeMap[e]=t,this.hooks.lifecycle.initContainerShareScopeMap.emit({shareScope:t,options:r.options,origin:r,scopeName:e,hostShareScopeMap:n.hostShareScopeMap})}setShared({pkgName:e,shared:t,from:n,lib:r,loading:i,loaded:a,get:o,treeShaking:s}){let{version:c,scope:l=`default`,...u}=t,d=Array.isArray(l)?l:[l],f=e=>{let t=(e,t,n)=>{n&&!e[t]&&(e[t]=n)},n=s?e.treeShaking:e;t(n,`loaded`,a),t(n,`loading`,i),t(n,`get`,o)};d.forEach(t=>{this.shareScopeMap[t]||(this.shareScopeMap[t]={}),this.shareScopeMap[t][e]||(this.shareScopeMap[t][e]={}),this.shareScopeMap[t][e][c]||(this.shareScopeMap[t][e][c]={version:c,scope:[t],...u,lib:r});let i=this.shareScopeMap[t][e][c];f(i),n&&i.from!==n&&(i.from=n)})}_setGlobalShareScopeMap(e){let t=ja(),n=e.id||e.name;n&&!t[n]&&(t[n]=this.shareScopeMap)}},Qo=class{constructor(){this.shareScopeMap={},this.hooks=new No({afterResolve:new Ro(`afterResolve`)})}registerShared(){return{newShareInfos:{},allShareInfos:{}}}loadShare(){throw Error(`Shared dependency loading is disabled by experiments.optimization.disableShared.`)}loadShareSync(){throw Error(`Shared dependency loading is disabled by experiments.optimization.disableShared.`)}initializeSharing(){return[]}initShareScopeMap(e,t){this.shareScopeMap[e]=t}},$o=class{constructor(e){this.hooks=new No({beforeRegisterRemote:new Lo(`beforeRegisterRemote`),registerRemote:new Lo(`registerRemote`),beforeRequest:new Ro(`beforeRequest`),afterMatchRemote:new Fo(`afterMatchRemote`),onLoad:new Fo(`onLoad`),afterLoadRemote:new Fo(`afterLoadRemote`),handlePreloadModule:new Po(`handlePreloadModule`),errorLoadRemote:new Fo(`errorLoadRemote`),beforePreloadRemote:new Fo(`beforePreloadRemote`),generatePreloadAssets:new Fo(`generatePreloadAssets`),afterPreloadRemote:new Fo(`afterPreloadRemote`),loadEntry:new Fo}),this.host=e,this.idToRemoteMap={}}formatAndRegisterRemote(e,t){return(t.remotes||[]).reduce((e,t)=>(this.registerRemote(t,e,{force:!1}),e),e.remotes)}setIdToRemoteMap(e,t){let{remote:n,expose:r}=t,{name:i,alias:a}=n;if(this.idToRemoteMap[e]={name:n.name,expose:r},a&&e.startsWith(i)){let t=e.replace(i,a);this.idToRemoteMap[t]={name:n.name,expose:r};return}if(a&&e.startsWith(a)){let t=e.replace(a,i);this.idToRemoteMap[t]={name:n.name,expose:r}}}async loadRemote(e,t){let{host:n}=this,r=Ia(n.options.remotes,e),i=e,a=r==null?void 0:r.expose,o=r?mo(r.remote):void 0,s;try{let{loadFactory:r=!0}=t||{loadFactory:!0},{module:c,moduleOptions:l,remoteMatchInfo:u}=await this.getRemoteModuleAndOptions({id:e}),{pkgNameOrAlias:d,remote:f,expose:p,id:m,remoteSnapshot:h}=u;i=m,a=p,o=mo(f);let g=await c.get(m,p,t,h),_=await this.hooks.lifecycle.onLoad.emit({id:m,pkgNameOrAlias:d,expose:p,exposeModule:r?g:void 0,exposeModuleFactory:r?void 0:g,remote:f,options:l,moduleInstance:c,origin:n});return this.setIdToRemoteMap(e,u),s={id:i,expose:a,remote:o,options:t,origin:n},typeof _==`function`?_:g}catch(r){let{from:c=`runtime`}=t||{from:`runtime`},l;try{l=await this.hooks.lifecycle.errorLoadRemote.emit({id:e,error:r,from:c,lifecycle:`onLoad`,expose:a,remote:o,origin:n})}catch(e){throw s={id:i,expose:a,remote:o,options:t,error:e,origin:n},e}if(!l)throw s={id:i,expose:a,remote:o,options:t,error:r,origin:n},r;return s={id:i,expose:a,remote:o,options:t,error:r,origin:n,recovered:!0},l}finally{s&&await this.hooks.lifecycle.afterLoadRemote.emit(s)}}async preloadRemote(e){let{host:t}=this,n=[];await this.hooks.lifecycle.beforePreloadRemote.emit({preloadOps:e,options:t.options,origin:t});let r=bo(t.options.remotes,e),i=e=>{let{preloadConfig:t,remote:n}=e,r=t.exposes||[];return r.length?r.map(r=>({ops:{...e,preloadConfig:{...t,exposes:[r]}},id:Fa(n.name,r)})):[{ops:e,id:`${n.name}/*`}]},a;await Promise.all(r.flatMap(i).map(async e=>{let{ops:r,id:i}=e,{remote:a,preloadConfig:o}=r,s=mo(a);try{let{globalSnapshot:e,remoteSnapshot:c}=await t.snapshotHandler.loadRemoteSnapshotInfo({moduleInfo:a,id:i,initiator:`preloadRemote`}),l=await this.hooks.lifecycle.generatePreloadAssets.emit({origin:t,preloadOptions:r,remote:a,remoteInfo:s,globalSnapshot:e,remoteSnapshot:c});if(!l)return;let u=await Oo(s,t,l,!0,{initiator:`preloadRemote`,id:i});n.push({remote:a,remoteInfo:s,preloadConfig:o,id:i,results:u})}catch(e){n.push({remote:a,remoteInfo:s,preloadConfig:o,id:i,results:[{url:s.entry,status:`error`,resourceType:/\.json(?:$|[?#])/i.test(s.entry)?`manifest`:`remoteEntry`,initiator:`preloadRemote`,id:i,error:e}]})}}));let o=n.flatMap(e=>e.results.filter(e=>e.status===`error`||e.status===`timeout`));if(o.length>0&&(a=Error(`preloadRemote failed to load ${o.length} resource(s).`),Object.assign(a,{results:n,failedResults:o})),await this.hooks.lifecycle.afterPreloadRemote.emit({preloadOps:e,options:t.options,origin:t,results:n,error:a}),a)throw a}registerRemotes(e,t){let{host:n}=this;e.forEach(e=>{this.registerRemote(e,n.options.remotes,{force:t==null?void 0:t.force})})}initRawContainer(e,t,n){let{host:r}=this,i=new Mo({host:r,remoteInfo:mo({name:e,entry:t})});return i.remoteEntryExports=n,r.moduleCache.set(e,i),i}async getRemoteModuleAndOptions(e){let{host:t}=this,{id:n}=e,r;try{r=await this.hooks.lifecycle.beforeRequest.emit({id:n,options:t.options,origin:t})}catch(e){if(r=await this.hooks.lifecycle.errorLoadRemote.emit({id:n,options:t.options,origin:t,from:`runtime`,error:e,lifecycle:`beforeRequest`}),!r)throw e}let{id:i}=r,a=Ia(t.options.remotes,i);if(!a)try{Hr(Va,no,{hostName:t.options.name,requestId:i},void 0,vo(t.options))}catch(e){throw await this.hooks.lifecycle.afterMatchRemote.emit({id:i,options:t.options,error:e,origin:t}),e}let{remote:o}=a,s=mo(o);await this.hooks.lifecycle.afterMatchRemote.emit({id:i,...a,options:t.options,remoteInfo:s,origin:t});let c=await t.sharedHandler.hooks.lifecycle.afterResolve.emit({id:i,...a,options:t.options,origin:t,remoteInfo:s}),{remote:l,expose:u}=c;Vr(l&&u,`The 'beforeRequest' hook was executed, but it failed to return the correct 'remote' and 'expose' values while loading ${i}.`);let d=t.moduleCache.get(l.name),f={host:t,remoteInfo:s};return d||(d=new Mo(f),t.moduleCache.set(l.name,d)),{module:d,moduleOptions:f,remoteMatchInfo:c}}registerRemote(e,t,n){let{host:r}=this,i=()=>{if(e.alias){let n=t.find(t=>{var n;return e.alias&&(t.name.startsWith(e.alias)||((n=t.alias)==null?void 0:n.startsWith(e.alias)))});Vr(!n,`The alias ${e.alias} of remote ${e.name} is not allowed to be the prefix of ${n&&n.name} name or alias`)}`entry`in e&&typeof window<`u`&&!e.entry.startsWith(`http`)&&(e.entry=new URL(e.entry,window.location.origin).href),e.shareScope||=ga,e.type||=_a};this.hooks.lifecycle.beforeRegisterRemote.emit({remote:e,origin:r});let a=t.find(t=>t.name===e.name);if(!a)i(),t.push(e),this.hooks.lifecycle.registerRemote.emit({remote:e,origin:r});else{let o=[`The remote "${e.name}" is already registered.`,`Please note that overriding it may cause unexpected errors.`];n!=null&&n.force&&(this.removeRemote(a),i(),t.push(e),this.hooks.lifecycle.registerRemote.emit({remote:e,origin:r}),vr(o.join(` `)))}}removeRemote(e){try{let{host:n}=this,{name:r}=e,i=n.options.remotes.findIndex(e=>e.name===r);i!==-1&&n.options.remotes.splice(i,1);let a=di(ei.__FEDERATION__.moduleInfo,Gr(e)).key;delete ei.__FEDERATION__.moduleInfo[a],`entry`in e&&(n.snapshotHandler.manifestCache.delete(e.entry),delete ni.__FEDERATION__.__MANIFEST_LOADING__[e.entry]);let{hostGlobalSnapshot:o}=Jo(e,n);if(o){let t=o&&`remotesInfo`in o&&o.remotesInfo&&di(o.remotesInfo,e.name).key;t&&delete o.remotesInfo[t]}let s=n.moduleCache.get(e.name);if(s){var t;let r=s.remoteInfo,i=r.entryGlobalName;ei[i]&&((t=Object.getOwnPropertyDescriptor(ei,i))!=null&&t.configurable?delete ei[i]:ei[i]=void 0);let a=fo(s.remoteInfo);ai[a]&&delete ai[a];let o=r.buildVersion?gr(r.name,r.buildVersion):r.name,c=ei.__FEDERATION__.__INSTANCES__.findIndex(e=>r.buildVersion?e.options.id===o:e.name===o);if(c!==-1){let e=ei.__FEDERATION__.__INSTANCES__[c];o=e.options.id||o;let t=ja(),n=!0,i=[];Object.keys(t).forEach(e=>{let a=t[e];a&&Object.keys(a).forEach(t=>{let o=a[t];o&&Object.keys(o).forEach(a=>{let s=o[a];s&&Object.keys(s).forEach(o=>{let c=s[o];c&&typeof c==`object`&&c.from===r.name&&(c.loaded||c.loading?(c.useIn=c.useIn.filter(e=>e!==r.name),c.useIn.length?n=!1:i.push([e,t,a,o])):i.push([e,t,a,o]))})})})}),n&&(e.shareScopeMap={},delete t[o]),i.forEach(([e,n,r,i])=>{var a;(a=t[e])==null||(a=a[n])==null||(a=a[r])==null||delete a[i]}),ei.__FEDERATION__.__INSTANCES__.splice(c,1)}n.moduleCache.delete(e.name)}}catch(e){Br.error(`removeRemote failed: ${e instanceof Error?e.message:String(e)}`)}}},es=typeof FEDERATION_OPTIMIZE_NO_SNAPSHOT_PLUGIN!=`boolean`||!FEDERATION_OPTIMIZE_NO_SNAPSHOT_PLUGIN,ts=typeof FEDERATION_OPTIMIZE_NO_REMOTE!=`boolean`||!FEDERATION_OPTIMIZE_NO_REMOTE,ns=typeof FEDERATION_OPTIMIZE_NO_SHARED!=`boolean`||!FEDERATION_OPTIMIZE_NO_SHARED,rs=class{constructor(e){this.hooks=new No({beforeInit:new Lo(`beforeInit`),init:new Po,beforeInitContainer:new Ro(`beforeInitContainer`),initContainer:new Ro(`initContainer`)}),this.version=`2.8.0`,this.moduleCache=new Map,this.loaderHook=new No({getModuleInfo:new Po,createScript:new Po,createLink:new Po,fetch:new Fo,loadEntryError:new Fo,afterLoadEntry:new Fo(`afterLoadEntry`),beforeInitRemote:new Fo(`beforeInitRemote`),afterInitRemote:new Fo(`afterInitRemote`),beforeGetExpose:new Fo(`beforeGetExpose`),afterGetExpose:new Fo(`afterGetExpose`),beforeExecuteFactory:new Fo(`beforeExecuteFactory`),afterExecuteFactory:new Fo(`afterExecuteFactory`),getModuleFactory:new Fo}),this.bridgeHook=new No({beforeBridgeRender:new Po,afterBridgeRender:new Po,beforeBridgeDestroy:new Po,afterBridgeDestroy:new Po});let t=ts&&es?[Ho(),qo()]:[],n={id:ho(),name:e.name,plugins:t,remotes:[],shared:{},inBrowser:!0};this.name=e.name,this.options=n,this.snapshotHandler=ts?new Yo(this):new Xo,this.sharedHandler=ns?new Zo(this):new Qo,this.remoteHandler=ts?new $o(this):new Bo,this.shareScopeMap=this.sharedHandler.shareScopeMap,this.registerPlugins([...n.plugins,...e.plugins||[]]),this.options=this.formatOptions(n,e)}initOptions(e){e.name&&e.name!==this.options.name&&Hr(Lr(qa,no)),this.registerPlugins(e.plugins);let t=this.formatOptions(this.options,e);return this.options=t,t}async loadShare(e,t){return this.sharedHandler.loadShare(e,t)}loadShareSync(e,t){return this.sharedHandler.loadShareSync(e,t)}initializeSharing(e=ga,t){return this.sharedHandler.initializeSharing(e,t)}initRawContainer(e,t,n){return this.remoteHandler.initRawContainer(e,t,n)}async loadRemote(e,t){return this.remoteHandler.loadRemote(e,t)}async preloadRemote(e){return this.remoteHandler.preloadRemote(e)}initShareScopeMap(e,t,n={}){this.sharedHandler.initShareScopeMap(e,t,n)}formatOptions(e,t){let n=ns?ya(e,t).allShareInfos:{},{userOptions:r,options:i}=this.hooks.lifecycle.beforeInit.emit({origin:this,userOptions:t,options:e,shareInfo:n}),a=this.remoteHandler.formatAndRegisterRemote(i,r),{allShareInfos:o}=this.sharedHandler.registerShared(i,r),s=[...i.plugins];r.plugins&&r.plugins.forEach(e=>{s.includes(e)||s.push(e)});let c={...e,...t,plugins:s,remotes:a,shared:o,id:r.id||e.id};return this.hooks.lifecycle.init.emit({origin:this,options:c}),c}registerPlugins(e){let t=go(e,this);this.options.plugins=this.options.plugins.reduce((e,t)=>(t&&e&&!e.find(e=>e.name===t.name)&&e.push(t),e),t||[])}registerRemotes(e,t){return this.remoteHandler.registerRemotes(e,t)}registerShared(e){this.sharedHandler.registerShared(this.options,{...this.options,shared:e})}},is=ko;function as(){return typeof FEDERATION_BUILD_IDENTIFIER<`u`?FEDERATION_BUILD_IDENTIFIER:``}function os(e,t){let n=as();return ei.__FEDERATION__.__INSTANCES__.find(r=>!!(n&&r.options.id===n||r.options.name===e&&!r.options.version&&!t||r.options.name===e&&t&&r.options.version===t))}function ss(e){let t=new((li())||rs)({id:`${e.name}@${e.version||Date.now()}`,...e});return ci(t),t}var cs=null;function ls(e){let t=os(e.name,e.version),n={...e,id:e.id||``};return t?(t.initOptions(n),cs||=t,t):(cs=ss(n),cs)}function us(...e){return Vr(cs,Ka,no),cs.loadRemote.apply(cs,e)}function ds(...e){return Vr(cs,Ka,no),cs.registerRemotes.apply(cs,e)}ui(rs);var fs=r(((e,t)=>{(function(n,r){typeof e==`object`&&t!==void 0?t.exports=r():typeof define==`function`&&define.amd?define(r):n.JSON5=r()})(e,(function(){function e(e,t){return t={exports:{}},e(t,t.exports),t.exports}var t=e(function(e){var t=e.exports=typeof window<`u`&&window.Math==Math?window:typeof self<`u`&&self.Math==Math?self:Function(`return this`)();typeof __g==`number`&&(__g=t)}),n=e(function(e){var t=e.exports={version:`2.6.5`};typeof __e==`number`&&(__e=t)});n.version;var r=function(e){return typeof e==`object`?e!==null:typeof e==`function`},i=function(e){if(!r(e))throw TypeError(e+` is not an object!`);return e},a=function(e){try{return!!e()}catch{return!0}},o=!a(function(){return Object.defineProperty({},"a",{get:function(){return 7}}).a!=7}),s=t.document,c=r(s)&&r(s.createElement),l=function(e){return c?s.createElement(e):{}},u=!o&&!a(function(){return Object.defineProperty(l(`div`),"a",{get:function(){return 7}}).a!=7}),d=function(e,t){if(!r(e))return e;var n,i;if(t&&typeof(n=e.toString)==`function`&&!r(i=n.call(e))||typeof(n=e.valueOf)==`function`&&!r(i=n.call(e))||!t&&typeof(n=e.toString)==`function`&&!r(i=n.call(e)))return i;throw TypeError(`Can't convert object to primitive value`)},f=Object.defineProperty,p={f:o?Object.defineProperty:function(e,t,n){if(i(e),t=d(t,!0),i(n),u)try{return f(e,t,n)}catch{}if(`get`in n||`set`in n)throw TypeError(`Accessors not supported!`);return`value`in n&&(e[t]=n.value),e}},m=function(e,t){return{enumerable:!(e&1),configurable:!(e&2),writable:!(e&4),value:t}},h=o?function(e,t,n){return p.f(e,t,m(1,n))}:function(e,t,n){return e[t]=n,e},g={}.hasOwnProperty,_=function(e,t){return g.call(e,t)},v=0,y=Math.random(),b=function(e){return`Symbol(${e===void 0?``:e})_${(++v+y).toString(36)}`},x=e(function(e){var r=`__core-js_shared__`,i=t[r]||(t[r]={});(e.exports=function(e,t){return i[e]||(i[e]=t===void 0?{}:t)})(`versions`,[]).push({version:n.version,mode:`global`,copyright:`© 2019 Denis Pushkarev (zloirock.ru)`})})(`native-function-to-string`,Function.toString),S=e(function(e){var r=b(`src`),i=`toString`,a=(``+x).split(i);n.inspectSource=function(e){return x.call(e)},(e.exports=function(e,n,i,o){var s=typeof i==`function`;s&&(_(i,`name`)||h(i,`name`,n)),e[n]!==i&&(s&&(_(i,r)||h(i,r,e[n]?``+e[n]:a.join(String(n)))),e===t?e[n]=i:o?e[n]?e[n]=i:h(e,n,i):(delete e[n],h(e,n,i)))})(Function.prototype,i,function(){return typeof this==`function`&&this[r]||x.call(this)})}),C=function(e){if(typeof e!=`function`)throw TypeError(e+` is not a function!`);return e},w=function(e,t,n){if(C(e),t===void 0)return e;switch(n){case 1:return function(n){return e.call(t,n)};case 2:return function(n,r){return e.call(t,n,r)};case 3:return function(n,r,i){return e.call(t,n,r,i)}}return function(){return e.apply(t,arguments)}},T=`prototype`,E=function(e,r,i){var a=e&E.F,o=e&E.G,s=e&E.S,c=e&E.P,l=e&E.B,u=o?t:s?t[r]||(t[r]={}):(t[r]||{})[T],d=o?n:n[r]||(n[r]={}),f=d[T]||(d[T]={}),p,m,g,_;for(p in o&&(i=r),i)m=!a&&u&&u[p]!==void 0,g=(m?u:i)[p],_=l&&m?w(g,t):c&&typeof g==`function`?w(Function.call,g):g,u&&S(u,p,g,e&E.U),d[p]!=g&&h(d,p,_),c&&f[p]!=g&&(f[p]=g)};t.core=n,E.F=1,E.G=2,E.S=4,E.P=8,E.B=16,E.W=32,E.U=64,E.R=128;var D=E,O=Math.ceil,k=Math.floor,A=function(e){return isNaN(e=+e)?0:(e>0?k:O)(e)},j=function(e){if(e==null)throw TypeError(`Can't call method on `+e);return e},ee=function(e){return function(t,n){var r=String(j(t)),i=A(n),a=r.length,o,s;return i<0||i>=a?e?``:void 0:(o=r.charCodeAt(i),o<55296||o>56319||i+1===a||(s=r.charCodeAt(i+1))<56320||s>57343?e?r.charAt(i):o:e?r.slice(i,i+2):(o-55296<<10)+(s-56320)+65536)}}(!1);D(D.P,`String`,{codePointAt:function(e){return ee(this,e)}}),n.String.codePointAt;var M=Math.max,te=Math.min,ne=function(e,t){return e=A(e),e<0?M(e+t,0):te(e,t)},N=String.fromCharCode,re=String.fromCodePoint;D(D.S+D.F*(!!re&&re.length!=1),`String`,{fromCodePoint:function(e){for(var t=arguments,n=[],r=arguments.length,i=0,a;r>i;){if(a=+t[i++],ne(a,1114111)!==a)throw RangeError(a+` is not a valid code point`);n.push(a<65536?N(a):N(((a-=65536)>>10)+55296,a%1024+56320))}return n.join(``)}}),n.String.fromCodePoint;var P={Space_Separator:/[\u1680\u2000-\u200A\u202F\u205F\u3000]/,ID_Start:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE83\uDE86-\uDE89\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]/,ID_Continue:/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u08D4-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u09FC\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9-\u0AFF\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D00-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19D9\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF9\u1D00-\u1DF9\u1DFB-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE3E\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC00-\uDC4A\uDC50-\uDC59\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDE00-\uDE3E\uDE47\uDE50-\uDE83\uDE86-\uDE99\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC40\uDC50-\uDC59\uDC72-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD47\uDD50-\uDD59]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6\uDD00-\uDD4A\uDD50-\uDD59]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/},F={isSpaceSeparator:function(e){return typeof e==`string`&&P.Space_Separator.test(e)},isIdStartChar:function(e){return typeof e==`string`&&(e>=`a`&&e<=`z`||e>=`A`&&e<=`Z`||e===`$`||e===`_`||P.ID_Start.test(e))},isIdContinueChar:function(e){return typeof e==`string`&&(e>=`a`&&e<=`z`||e>=`A`&&e<=`Z`||e>=`0`&&e<=`9`||e===`$`||e===`_`||e===`‌`||e===`‍`||P.ID_Continue.test(e))},isDigit:function(e){return typeof e==`string`&&/[0-9]/.test(e)},isHexDigit:function(e){return typeof e==`string`&&/[0-9A-Fa-f]/.test(e)}},ie,I,L,ae,oe,se,R,ce,le,ue=function(e,t){ie=String(e),I=`start`,L=[],ae=0,oe=1,se=0,R=void 0,ce=void 0,le=void 0;do R=me(),xe[I]();while(R.type!==`eof`);return typeof t==`function`?de({"":le},``,t):le};function de(e,t,n){var r=e[t];if(typeof r==`object`&&r){if(Array.isArray(r))for(var i=0;i<r.length;i++){var a=String(i),o=de(r,a,n);o===void 0?delete r[a]:Object.defineProperty(r,a,{value:o,writable:!0,enumerable:!0,configurable:!0})}else for(var s in r){var c=de(r,s,n);c===void 0?delete r[s]:Object.defineProperty(r,s,{value:c,writable:!0,enumerable:!0,configurable:!0})}}return n.call(e,t,r)}var z,B,fe,pe,V;function me(){for(z=`default`,B=``,fe=!1,pe=1;;){V=he();var e=ge[z]();if(e)return e}}function he(){if(ie[ae])return String.fromCodePoint(ie.codePointAt(ae))}function H(){var e=he();return e===`
@@ -1491,4 +1491,4 @@ $&`).replace(/(?:^|\n)([\t ].*)(?:([\n\t ]*)\n(?![\n\t ]))?/g,`$1$2`).replace(/\
1491
1491
  `)+1;for(;e!==0;)this.onNewLine(this.offset+e),e=this.source.indexOf(`
1492
1492
  `,e)+1}yield*this.pop();break;default:yield*this.pop(),yield*this.step()}}*blockMap(e){let t=e.items[e.items.length-1];switch(this.type){case`newline`:if(this.onKeyLine=!1,t.value){let n=`end`in t.value?t.value.end:void 0,r=Array.isArray(n)?n[n.length-1]:void 0;(r==null?void 0:r.type)===`comment`?n==null||n.push(this.sourceToken):e.items.push({start:[this.sourceToken]})}else t.sep?t.sep.push(this.sourceToken):t.start.push(this.sourceToken);return;case`space`:case`comment`:if(t.value)e.items.push({start:[this.sourceToken]});else if(t.sep)t.sep.push(this.sourceToken);else{if(this.atIndentedComment(t.start,e.indent)){var n;let r=e.items[e.items.length-2],i=r==null||(n=r.value)==null?void 0:n.end;if(Array.isArray(i)){_w(i,t.start),i.push(this.sourceToken),e.items.pop();return}}t.start.push(this.sourceToken)}return}if(this.indent>=e.indent){let n=!this.onKeyLine&&this.indent===e.indent,r=n&&(t.sep||t.explicitKey)&&this.type!==`seq-item-ind`,i=[];if(r&&t.sep&&!t.value){let n=[];for(let r=0;r<t.sep.length;++r){let i=t.sep[r];switch(i.type){case`newline`:n.push(r);break;case`space`:break;case`comment`:i.indent>e.indent&&(n.length=0);break;default:n.length=0}}n.length>=2&&(i=t.sep.splice(n[1]))}switch(this.type){case`anchor`:case`tag`:r||t.value?(i.push(this.sourceToken),e.items.push({start:i}),this.onKeyLine=!0):t.sep?t.sep.push(this.sourceToken):t.start.push(this.sourceToken);return;case`explicit-key-ind`:!t.sep&&!t.explicitKey?(t.start.push(this.sourceToken),t.explicitKey=!0):r||t.value?(i.push(this.sourceToken),e.items.push({start:i,explicitKey:!0})):this.stack.push({type:`block-map`,offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken],explicitKey:!0}]}),this.onKeyLine=!0;return;case`map-value-ind`:if(t.explicitKey){if(!t.sep){if(fw(t.start,`newline`))Object.assign(t,{key:null,sep:[this.sourceToken]});else{let e=gw(t.start);this.stack.push({type:`block-map`,offset:this.offset,indent:this.indent,items:[{start:e,key:null,sep:[this.sourceToken]}]})}}else if(t.value)e.items.push({start:[],key:null,sep:[this.sourceToken]});else if(fw(t.sep,`map-value-ind`))this.stack.push({type:`block-map`,offset:this.offset,indent:this.indent,items:[{start:i,key:null,sep:[this.sourceToken]}]});else if(mw(t.key)&&!fw(t.sep,`newline`)){let e=gw(t.start),n=t.key,r=t.sep;r.push(this.sourceToken),delete t.key,delete t.sep,this.stack.push({type:`block-map`,offset:this.offset,indent:this.indent,items:[{start:e,key:n,sep:r}]})}else i.length>0?t.sep=t.sep.concat(i,this.sourceToken):t.sep.push(this.sourceToken)}else t.sep?t.value||r?e.items.push({start:i,key:null,sep:[this.sourceToken]}):fw(t.sep,`map-value-ind`)?this.stack.push({type:`block-map`,offset:this.offset,indent:this.indent,items:[{start:[],key:null,sep:[this.sourceToken]}]}):t.sep.push(this.sourceToken):Object.assign(t,{key:null,sep:[this.sourceToken]});this.onKeyLine=!0;return;case`alias`:case`scalar`:case`single-quoted-scalar`:case`double-quoted-scalar`:{let n=this.flowScalar(this.type);r||t.value?(e.items.push({start:i,key:n,sep:[]}),this.onKeyLine=!0):t.sep?this.stack.push(n):(Object.assign(t,{key:n,sep:[]}),this.onKeyLine=!0);return}default:{let r=this.startBlockValue(e);if(r){if(r.type===`block-seq`){if(!t.explicitKey&&t.sep&&!fw(t.sep,`newline`)){yield*this.pop({type:`error`,offset:this.offset,message:`Unexpected block-seq-ind on same line with key`,source:this.source});return}}else n&&e.items.push({start:i});this.stack.push(r);return}}}}yield*this.pop(),yield*this.step()}*blockSequence(e){let t=e.items[e.items.length-1];switch(this.type){case`newline`:if(t.value){let n=`end`in t.value?t.value.end:void 0,r=Array.isArray(n)?n[n.length-1]:void 0;(r==null?void 0:r.type)===`comment`?n==null||n.push(this.sourceToken):e.items.push({start:[this.sourceToken]})}else t.start.push(this.sourceToken);return;case`space`:case`comment`:if(t.value)e.items.push({start:[this.sourceToken]});else{if(this.atIndentedComment(t.start,e.indent)){var n;let r=e.items[e.items.length-2],i=r==null||(n=r.value)==null?void 0:n.end;if(Array.isArray(i)){_w(i,t.start),i.push(this.sourceToken),e.items.pop();return}}t.start.push(this.sourceToken)}return;case`anchor`:case`tag`:if(t.value||this.indent<=e.indent)break;t.start.push(this.sourceToken);return;case`seq-item-ind`:if(this.indent!==e.indent)break;t.value||fw(t.start,`seq-item-ind`)?e.items.push({start:[this.sourceToken]}):t.start.push(this.sourceToken);return}if(this.indent>e.indent){let t=this.startBlockValue(e);if(t){this.stack.push(t);return}}yield*this.pop(),yield*this.step()}*flowCollection(e){let t=e.items[e.items.length-1];if(this.type===`flow-error-end`){let e;do yield*this.pop(),e=this.peek(1);while((e==null?void 0:e.type)===`flow-collection`)}else if(e.end.length===0){switch(this.type){case`comma`:case`explicit-key-ind`:!t||t.sep?e.items.push({start:[this.sourceToken]}):t.start.push(this.sourceToken);return;case`map-value-ind`:!t||t.value?e.items.push({start:[],key:null,sep:[this.sourceToken]}):t.sep?t.sep.push(this.sourceToken):Object.assign(t,{key:null,sep:[this.sourceToken]});return;case`space`:case`comment`:case`newline`:case`anchor`:case`tag`:!t||t.value?e.items.push({start:[this.sourceToken]}):t.sep?t.sep.push(this.sourceToken):t.start.push(this.sourceToken);return;case`alias`:case`scalar`:case`single-quoted-scalar`:case`double-quoted-scalar`:{let n=this.flowScalar(this.type);!t||t.value?e.items.push({start:[],key:n,sep:[]}):t.sep?this.stack.push(n):Object.assign(t,{key:n,sep:[]});return}case`flow-map-end`:case`flow-seq-end`:e.end.push(this.sourceToken);return}let n=this.startBlockValue(e);n?this.stack.push(n):(yield*this.pop(),yield*this.step())}else{let t=this.peek(2);if(t.type===`block-map`&&(this.type===`map-value-ind`&&t.indent===e.indent||this.type===`newline`&&!t.items[t.items.length-1].sep))yield*this.pop(),yield*this.step();else if(this.type===`map-value-ind`&&t.type!==`flow-collection`){let n=gw(hw(t));vw(e);let r=e.end.splice(1,e.end.length);r.push(this.sourceToken);let i={type:`block-map`,offset:e.offset,indent:e.indent,items:[{start:n,key:e,sep:r}]};this.onKeyLine=!0,this.stack[this.stack.length-1]=i}else yield*this.lineEnd(e)}}flowScalar(e){if(this.onNewLine){let e=this.source.indexOf(`
1493
1493
  `)+1;for(;e!==0;)this.onNewLine(this.offset+e),e=this.source.indexOf(`
1494
- `,e)+1}return{type:e,offset:this.offset,indent:this.indent,source:this.source}}startBlockValue(e){switch(this.type){case`alias`:case`scalar`:case`single-quoted-scalar`:case`double-quoted-scalar`:return this.flowScalar(this.type);case`block-scalar-header`:return{type:`block-scalar`,offset:this.offset,indent:this.indent,props:[this.sourceToken],source:``};case`flow-map-start`:case`flow-seq-start`:return{type:`flow-collection`,offset:this.offset,indent:this.indent,start:this.sourceToken,items:[],end:[]};case`seq-item-ind`:return{type:`block-seq`,offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken]}]};case`explicit-key-ind`:{this.onKeyLine=!0;let t=gw(hw(e));return t.push(this.sourceToken),{type:`block-map`,offset:this.offset,indent:this.indent,items:[{start:t,explicitKey:!0}]}}case`map-value-ind`:{this.onKeyLine=!0;let t=gw(hw(e));return{type:`block-map`,offset:this.offset,indent:this.indent,items:[{start:t,key:null,sep:[this.sourceToken]}]}}}return null}atIndentedComment(e,t){return this.type!==`comment`||this.indent<=t?!1:e.every(e=>e.type===`newline`||e.type===`space`)}*documentEnd(e){this.type!==`doc-mode`&&(e.end?e.end.push(this.sourceToken):e.end=[this.sourceToken],this.type===`newline`&&(yield*this.pop()))}*lineEnd(e){switch(this.type){case`comma`:case`doc-start`:case`doc-end`:case`flow-seq-end`:case`flow-map-end`:case`map-value-ind`:yield*this.pop(),yield*this.step();break;case`newline`:this.onKeyLine=!1;default:e.end?e.end.push(this.sourceToken):e.end=[this.sourceToken],this.type===`newline`&&(yield*this.pop())}}};function bw(e){let t=e.prettyErrors!==!1;return{lineCounter:e.lineCounter||t&&new dw||null,prettyErrors:t}}function xw(e,t={}){let{lineCounter:n,prettyErrors:r}=bw(t),i=new yw(n==null?void 0:n.addNewLine),a=new ZC(t),o=null;for(let t of a.compose(i.parse(e),!0,e.length))if(!o)o=t;else if(o.options.logLevel!==`silent`){o.errors.push(new pC(t.range.slice(0,2),`MULTIPLE_DOCS`,`Source contains multiple documents; please use YAML.parseAllDocuments()`));break}return r&&n&&(o.errors.forEach(hC(e,n)),o.warnings.forEach(hC(e,n))),o}function Sw(e,t,n){let r;typeof t==`function`?r=t:n===void 0&&t&&typeof t==`object`&&(n=t);let i=xw(e,n);if(!i)return null;if(i.warnings.forEach(e=>Gx(i.options.logLevel,e)),i.errors.length>0){if(i.options.logLevel!==`silent`)throw i.errors[0];i.errors=[]}return i.toJS(Object.assign({reviver:r},n))}K();var Cw={fullWidth:{width:`100%`},flex:{display:`flex`},button:{height:48,minWidth:48},wrapper:{width:`calc(100vw - 40px)`,height:`calc(100vh - 188px)`}},ww=class extends Z{async componentDidMount(){await super.componentDidMount();let{data:e,attr:t}=this.props,n=Z.getValue(e,t)||``;this.setState({value:n,initialized:!0,yamlError:this.validateYaml(n)})}validateYaml(e){let t=!1;if(this.props.schema.validateYaml!==!1&&typeof e==`string`&&(e||!this.props.schema.allowEmpty))try{Sw(e)}catch(e){console.log(`Error in YAML`,e),t=!0}return t}renderItem(e,t){if(!this.state.initialized)return null;let{schema:n,data:r,attr:i}=this.props,{value:a,showSelectId:o}=this.state,s=n.readOnly===!0||t;return G.createElement(ut,{fullWidth:!0,variant:`standard`},G.createElement(`div`,{style:Cw.flex},G.createElement(zt,{color:`grey`,style:Cw.button,size:`small`,variant:`outlined`,onClick:()=>this.setState({showSelectId:!0})},Y.t(`jc_YAML editor`))),o?G.createElement(rv,{title:this.getText(n.label),overflowHidden:!0,applyDisabled:this.state.yamlError&&this.props.schema.doNotApplyWithError||s,onClose:()=>{s?this.setState({showSelectId:!1}):this.setState({showSelectId:!1,value:Z.getValue(r,i)||``})},onApply:s?void 0:()=>this.setState({showSelectId:!1},()=>i&&this.onChange(i,a))},G.createElement(`div`,{style:{...Cw.wrapper,border:this.state.yamlError?`2px solid red`:`2px solid transparent`}},G.createElement(wy,{mode:`yaml`,value:typeof a==`object`?JSON.stringify(a):a,onChange:s?void 0:e=>this.setState({value:e,yamlError:this.validateYaml(e)}),name:`ConfigYamlEditor`,themeType:this.props.oContext.themeType}))):null,n.help||this.state.yamlError?G.createElement(ke,null,this.state.yamlError?Y.t(`jc_Invalid YAML`):this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)):null)}};K();var Tw=class extends Z{async componentDidMount(){await super.componentDidMount();let e=await i(()=>import(`./lib-ByF76TCN.js`),__vite__mapDeps([0]),import.meta.url);this.setState({QRCode:e.default})}renderItem(){let e=this.state.QRCode;if(!e)return null;let t=Math.max(32,Math.round((this.props.schema.size||256)*.15));return G.createElement(`div`,{style:{display:`flex`,justifyContent:`center`,alignItems:`center`,backgroundColor:this.props.schema.bgColor||`white`,padding:t,width:`100%`,height:`100%`,boxSizing:`border-box`}},G.createElement(e,{title:this.getText(this.props.schema.tooltip),value:this.props.schema.data,size:this.props.schema.size,fgColor:this.props.schema.fgColor,bgColor:this.props.schema.bgColor,level:this.props.schema.level}))}};K();var Ew=class extends Z{constructor(...e){super(...e),J(this,`initialized`,!1),J(this,`localContext`,void 0)}async componentDidMount(){await super.componentDidMount();let e=await i(()=>import(`./lib-ByF76TCN.js`),__vite__mapDeps([0]),import.meta.url);this.setState({QRCode:e.default}),this.props.schema.sendFirstByClick||await this.askInstance()}async askInstance(){if(this.props.alive){let e=this.props.schema.data;if(e===void 0&&this.props.schema.jsonData){let t=await this.getPatternAsync(this.props.schema.jsonData,null,!0);if(t)try{e=JSON.parse(t)}catch{console.error(`Cannot parse json data: ${JSON.stringify(e)}`)}}e??=null;let t=await this.getPatternAsync(this.props.schema.instance||`${this.props.oContext.adapterName}.${this.props.oContext.instance}`);if(t!==`${this.props.oContext.adapterName}.${this.props.oContext.instance}`){let e=await this.props.oContext.socket.getState(`system.adapter.${t}.alive`);if(!(e!=null&&e.val)){window.alert(Y.t(`jc_Instance %s is not alive`,t));return}}this.setState({loading:!0},()=>this.props.oContext.socket.sendTo(t,this.props.schema.command||`send`,e).then(e=>this.setState({qrData:e||``,loading:!1})))}}getContext(){let e={};return Array.isArray(this.props.schema.alsoDependsOn)&&this.props.schema.alsoDependsOn.forEach(t=>e[t]=Z.getValue(this.props.data,t)),JSON.stringify(e)}renderItem(){if(this.props.alive){let e=this.getContext();(e!==this.localContext||!this.initialized)&&(this.localContext=e,(!this.props.schema.sendFirstByClick||this.state.qrData!==void 0)&&setTimeout(()=>this.askInstance(),this.initialized?300:50),this.initialized=!0)}if(!this.state.qrData&&this.props.schema.sendFirstByClick)return this.props.alive?G.createElement(`div`,{style:{width:`100%`,display:`flex`,alignItems:`center`,justifyContent:`center`,cursor:this.state.loading?`default`:`pointer`},onClick:()=>!this.state.loading&&this.askInstance()},this.state.loading?G.createElement(Zt,null):typeof this.props.schema.sendFirstByClick==`boolean`?Y.t(`jc_Click to show`):this.getText(this.props.schema.sendFirstByClick,this.props.schema.noTranslation)):G.createElement(`div`,{style:{width:`100%`,display:`flex`,alignItems:`center`,justifyContent:`center`,cursor:this.state.loading?`default`:`pointer`},onClick:()=>!this.state.loading&&this.askInstance()},Y.t(`jc_Instance %s is not alive`,this.props.oContext.instance.toString()));let e=this.state.QRCode;if(!e||this.state.qrData===void 0)return null;let t=Math.max(32,Math.round((this.props.schema.size||256)*.15));return G.createElement(`div`,{style:{display:`flex`,justifyContent:`center`,alignItems:`center`,backgroundColor:this.props.schema.bgColor||`white`,padding:t,width:`100%`,height:`100%`,boxSizing:`border-box`}},G.createElement(e,{title:this.getText(this.props.schema.tooltip),value:this.state.qrData,size:this.props.schema.size,fgColor:this.props.schema.fgColor,bgColor:this.props.schema.bgColor,level:this.props.schema.level}))}};K();var Dw={accordion:Ss,alive:ws,autocomplete:Ts,autocompleteSendTo:Es,certCollection:Ms,certificate:ks,certificates:js,checkbox:qs,checkDocker:Ns,checkLicense:Ks,chip:$s,chips:$s,color:ec,coordinates:nc,credential:Ws,cron:Os,custom:dc,datePicker:k_,deviceManager:A_,divider:ib,file:W_,fileSelector:L_,func:G_,header:ob,iframe:K_,iframeSendTo:q_,image:X_,imageSendTo:Y_,infoBox:Z_,instance:$_,interface:tv,ip:J_,jsonEditor:Ey,language:Oy,license:ky,number:jy,oauth2:My,objectId:Py,password:Ly,pattern:Ry,port:By,qrCode:Tw,qrCodeSendTo:Ew,room:Vy,select:Uy,selectSendTo:Gy,sendto:Yy,sendTo:Yy,setState:Zy,slider:$y,state:nb,staticImage:sb,staticInfo:db,staticLink:mb,staticText:mb,table:xb,text:Cb,textSendTo:Tb,timePicker:Eb,topic:Ob,uuid:kb,user:jb,yamlEditor:ww},Ow={fullWidth:{width:`100%`},paper:{margin:1,width:`auto !important`,overflowY:`auto`,paddingBottom:1,flex:`1 1 auto`,minHeight:0},padding:{padding:`10px`},heading:{},primary:e=>({backgroundColor:e.palette.primary.main,color:e.palette.mode===`dark`?`inherit`:`#FFF`}),secondary:e=>({backgroundColor:e.palette.secondary.main})},kw=class e extends Z{async componentDidMount(){var e;await super.componentDidMount(),(e=this.props.schema)!=null&&e.collapsable&&this.setState({expanded:(window._localStorage||window.localStorage).getItem(`${this.props.oContext.adapterName}.${this.props.attr}`)===`true`})}renderItems(t,n){return t?Object.keys(t).map(r=>{if(this.props.oContext.multiEdit&&t[r].noMultiEdit||!Z.isHostAllowed(t[r],this.props.oContext.hostInfo))return null;let i=t[r].type||`panel`,a,o=`Use this.props.oContext.socket!`;if(i===`custom`)t[r].url?a=dc:this.props.oContext.customs&&this.props.oContext.customs[t[r].component]?a=this.props.oContext.customs[t[r].component]:(console.error(`Cannot find custom component: ${t[r].component}`),a=Z),o=this.props.oContext.socket;else if(i===`component`){var s;let e=t[r].subType;if(e&&(s=this.props.customComponents)!=null&&s[e])a=this.props.customComponents[e];else return G.createElement(`div`,{key:`${r}_${this.props.index??``}`},`Component ${e} not provided`)}else a=i===`panel`?e:Dw[i]||Z;return G.createElement(a,{socket:o,globalData:this.props.globalData,oContext:this.props.oContext,key:`${r}_${this.props.index??``}`,index:this.props.index,changed:this.props.changed,arrayIndex:this.props.arrayIndex,expertMode:this.props.expertMode,commandRunning:this.props.commandRunning,style:Ow.panel,common:this.props.common,alive:this.props.alive,themeName:this.props.themeName,data:this.props.data,originalData:this.props.originalData,onError:this.props.onError,onHiddenChanged:this.props.onHiddenChanged,onFilterLabelUpdate:this.props.onFilterLabelUpdate,onChange:this.props.onChange,disabled:n,customObj:this.props.customObj,custom:this.props.custom,schema:t[r],attr:r,table:this.props.table,customComponents:this.props.customComponents})}):null}render(){let e=this.props.schema;if(!e||(this.updateCalculatedValues(),!this.state.calculatedValues))return null;let t=this.props.schema.items,n=this.props.schema.style||{};if(this.state.calculatedValues.hidden){if(e.hideOnlyControl){let t=G.createElement(Gn,{size:{xs:e.xs||void 0,sm:e.sm||void 0,md:e.md||void 0,lg:e.lg||void 0,xl:e.xl||void 0},sx:wn.getStyle(this.props.oContext.theme,{marginBottom:0,textAlign:`left`},n,this.props.oContext.themeType===`dark`?e.darkStyle:void 0)});return e.newLine?G.createElement(G.Fragment,null,G.createElement(`div`,{style:{flexBasis:`100%`,height:0}}),t):t}return null}if(this.props.table)return this.renderItems(t,this.state.calculatedValues.disabled);if(this.props.custom)return G.createElement(Gn,{key:`${this.props.attr}_${this.props.index}`,container:!0,style:Ow.fullWidth,columnSpacing:2,rowSpacing:1,sx:n},this.renderItems(t,this.state.calculatedValues.disabled));let r;if(e.collapsable)r=G.createElement(or,{key:`${this.props.attr}_${this.props.index}`,style:Ow.fullWidth,expanded:!!this.state.expanded,onChange:()=>{(window._localStorage||window.localStorage).setItem(`${this.props.oContext.adapterName}.${this.props.attr}`,this.state.expanded?`false`:`true`),this.setState({expanded:!this.state.expanded})}},G.createElement(tt,{expandIcon:G.createElement(ge,null),sx:wn.getStyle(this.props.oContext.theme,n,this.props.oContext.themeType&&e.darkStyle,e.color===`primary`?Ow.primary:e.color===`secondary`&&Ow.secondary,{width:`100%`})},G.createElement(Ct,{style:Ow.heading},this.getText(e.label))),G.createElement(Rn,null,G.createElement(Gn,{container:!0,columnSpacing:2,rowSpacing:1,sx:{...n,width:`100%`,padding:`10px`}},this.renderItems(t,this.state.calculatedValues.disabled))));else{let e=wn.getStyle(this.props.oContext.theme,this.props.style,n,{width:`100%`},this.props.isParentTab&&Ow.paper);r=G.createElement(sn,{component:`div`,key:`${this.props.attr}_${this.props.index}`,className:this.props.className,sx:e},G.createElement(Gn,{container:!0,columnSpacing:2,rowSpacing:1,sx:wn.getStyle(this.props.oContext.theme,{width:`100%`},this.props.isParentTab&&Ow.padding,this.props.schema.innerStyle)},this.renderItems(t,this.state.calculatedValues.disabled)))}if(!this.props.isParentTab){let t=G.createElement(Gn,{title:this.getText(e.tooltip),size:{xs:e.xs||void 0,sm:e.sm||void 0,md:e.md||void 0,lg:e.lg||void 0,xl:e.xl||void 0},sx:{marginBottom:0,textAlign:`left`,...n}},r);return e.newLine?G.createElement(G.Fragment,null,G.createElement(`div`,{style:{flexBasis:`100%`,height:0}}),t):t}return r}};K();var Aw={tabs:{height:`100%`,width:`100%`,display:`flex`,flexDirection:`column`},tabsBar:{flex:`0 0 auto`},panel:{width:`100%`,display:`block`,flex:`1 1 auto`,minHeight:0}},jw=class e extends Z{constructor(t){super(t),J(this,`resizeObserver`,null),J(this,`resizeRaf`,null),J(this,`calculateTimeoutTable`,null),J(this,`pinTimeout`,null),J(this,`refDiv`,void 0),J(this,`onTabError`,(e,t)=>{let n=this.state.tab;if(!n&&e){this.props.onError(e,t);return}let r={...this.state.tabErrors};n&&(r[n]||={}),n&&e&&(t?r[n][e]=t:(delete r[n][e],Object.keys(r[n]).length===0&&delete r[n])),this.setState({tabErrors:r}),this.props.onError(e,t)}),J(this,`hasTabErrors`,e=>!!this.state.tabErrors[e]&&Object.keys(this.state.tabErrors[e]).length>0),J(this,`measureWidth`,()=>{var t;let n=(t=this.refDiv.current)==null?void 0:t.clientWidth;if(!n)return;let r=this.state.useMenu;!r&&n<e.MENU_WIDTH?r=!0:r&&n>e.MENU_WIDTH+e.MENU_HYSTERESIS&&(r=!1),r!==this.state.useMenu&&this.setState({useMenu:r})}),J(this,`onHashTabsChanged`,()=>{let e=(window.location.hash||``).replace(/^#/,``).split(`/`);if(e.length>3&&e[1]===`config`){let t=e[3],n=parseInt(t,10),r;n.toString()===t?n>=0&&n<Object.keys(this.props.schema.items).length&&(r=Object.keys(this.props.schema.items)[n]):Object.keys(this.props.schema.items).includes(t)&&(r=t),r!==void 0&&r!==this.state.tab&&((window._localStorage||window.localStorage).setItem(`${this.props.dialogName||`App`}.${this.props.oContext.adapterName}`,r),this.pinWidthForTransition(),this.setState({tab:r}))}});let n;if(this.props.root){let e=(window.location.hash||``).replace(/^#/,``).split(`/`);if(e.length>=3&&e[1]===`config`){let t=e[3],r=parseInt(t,10);t&&r.toString()===t?r>=0&&r<Object.keys(this.props.schema.items).length&&(n=Object.keys(this.props.schema.items)[r]):t&&Object.keys(this.props.schema.items).includes(t)&&(n=t),window.addEventListener(`hashchange`,this.onHashTabsChanged,!1)}}n===void 0&&(n=(window._localStorage||window.localStorage).getItem(`${this.props.dialogName||`App`}.${this.props.oContext.adapterName}`)||Object.keys(this.props.schema.items)[0],Object.keys(this.props.schema.items).includes(n)||(n=Object.keys(this.props.schema.items)[0])),this.refDiv=G.createRef(),Object.assign(this.state,{tab:n,useMenu:!1,openMenu:null,tabErrors:{}})}async componentDidMount(){await super.componentDidMount(),this.measureWidth(),this.refDiv.current&&typeof ResizeObserver<`u`&&(this.resizeObserver=new ResizeObserver(()=>{this.resizeRaf===null&&(this.resizeRaf=window.requestAnimationFrame(()=>{this.resizeRaf=null,this.measureWidth()}))}),this.resizeObserver.observe(this.refDiv.current))}componentWillUnmount(){this.resizeRaf!==null&&(window.cancelAnimationFrame(this.resizeRaf),this.resizeRaf=null),this.resizeObserver&&=(this.resizeObserver.disconnect(),null),this.calculateTimeoutTable&&=(clearTimeout(this.calculateTimeoutTable),null),this.pinTimeout&&=(clearTimeout(this.pinTimeout),null),window.removeEventListener(`hashchange`,this.onHashTabsChanged,!1),super.componentWillUnmount()}pinWidthForTransition(){var e;let t=(e=this.refDiv.current)==null?void 0:e.clientWidth;t&&(this.pinTimeout&&clearTimeout(this.pinTimeout),this.state.contentMinWidth!==t&&this.setState({contentMinWidth:t}),this.pinTimeout=setTimeout(()=>{this.pinTimeout=null,this.setState({contentMinWidth:void 0})},500))}onMenuChange(e){(window._localStorage||window.localStorage).setItem(`${this.props.dialogName||`App`}.${this.props.oContext.adapterName}`,e),this.pinWidthForTransition(),this.setState({tab:e},()=>{if(this.props.root){let e=(window.location.hash||``).split(`/`);e.length>=3&&e[1]===`config`&&(e[3]=this.state.tab||``,window.location.hash=e.join(`/`))}})}updateCalculatedValuesForTable(){this.calculateTimeoutTable&&clearTimeout(this.calculateTimeoutTable),this.calculateTimeoutTable=setTimeout(async()=>{this.calculateTimeoutTable=null;let e=this.props.schema.items,t={};for(let n in e){let r;if(e[n].expertMode&&!this.props.expertMode){t[n]={hidden:!0,disabled:!1};continue}if(!Z.isHostAllowed(e[n],this.props.oContext.hostInfo)){t[n]={hidden:!0,disabled:!1};continue}if(this.props.custom){let i=!!await this.executeCustom(e[n].hidden,this.props.data,this.props.customObj,this.props.oContext.instanceObj,this.props.index,this.props.globalData);if(i){t[n]={hidden:!0,disabled:!1};continue}r=!!await this.executeCustom(e[n].disabled,this.props.data,this.props.customObj,this.props.oContext.instanceObj,this.props.index,this.props.globalData),t[n]={hidden:i,disabled:r}}else{if(await this.execute(e[n].hidden,!1,this.props.data,this.props.index,this.props.globalData)){t[n]={hidden:!0,disabled:!1};continue}r=!!await this.execute(e[n].disabled,!1,this.props.data,this.props.index,this.props.globalData),t[n]={hidden:!1,disabled:r}}}JSON.stringify(t)!==JSON.stringify(this.state.calculatedValuesTable)&&this.setState({calculatedValuesTable:t})},50)}render(){let e=this.props.schema.items,t=!1;if(this.updateCalculatedValuesForTable(),!this.state.calculatedValuesTable)return null;let n=[];Object.keys(e).filter(e=>{var t;return!((t=this.state.calculatedValuesTable)!=null&&(t=t[e])!=null&&t.hidden)}).map(r=>{var i;let a=this.getIcon(e[r].icon);t||=!!a,n.push({icon:a,disabled:!!((i=this.state.calculatedValuesTable)!=null&&(i=i[r])!=null&&i.disabled),label:this.getText(e[r].label),name:r})}),n.find(e=>e.name===this.state.tab)||setTimeout(()=>this.setState({tab:n[0].name}),50);let r;return r=this.state.useMenu&&n.length>2?G.createElement(Te,{style:{...Aw.tabsBar,top:2,backgroundColor:this.props.oContext.themeType===`dark`?`#222`:`#DDD`},variant:`dense`},G.createElement(w,{onClick:e=>this.setState({openMenu:e.currentTarget})},G.createElement(Et,null)),this.state.openMenu?G.createElement(be,{open:!0,anchorEl:this.state.openMenu,onClose:()=>this.setState({openMenu:null})},n.map(e=>{let n=this.hasTabErrors(e.name);return G.createElement(D,{disabled:e.disabled,key:e.name,onClick:()=>{this.setState({openMenu:null},()=>this.onMenuChange(e.name))},selected:e.name===this.state.tab,sx:n?{color:`error.main`}:void 0},t?G.createElement(Wt,null,e.icon):null,G.createElement(sn,{sx:{display:`flex`,alignItems:`center`,gap:.5,width:`100%`}},e.label,n&&G.createElement(me,{sx:{fontSize:16,color:`error.main`}})))})):null):G.createElement(Ye,{variant:`scrollable`,scrollButtons:`auto`,style:{...Aw.tabsBar,...this.props.schema.tabsStyle},value:this.state.tab,onChange:(e,t)=>this.onMenuChange(t)},n.map(e=>{let t=this.hasTabErrors(e.name),n=t?G.createElement(sn,{sx:{display:`flex`,alignItems:`center`,gap:.5}},e.label,G.createElement(me,{sx:{fontSize:16,color:`error.main`}})):e.label;return G.createElement(Be,{id:e.name,wrapped:!0,disabled:e.disabled,key:e.name,value:e.name,iconPosition:this.props.schema.iconPosition||`start`,icon:e.icon||void 0,label:n,sx:t?{"& .MuiTab-wrapper":{color:`error.main`}}:void 0})})),this.state.tab?G.createElement(`div`,{style:this.state.contentMinWidth===void 0?Aw.tabs:{...Aw.tabs,minWidth:this.state.contentMinWidth},ref:this.refDiv},r,G.createElement(kw,{oContext:this.props.oContext,withoutSaveButtons:this.props.withoutSaveButtons,isParentTab:!0,changed:this.props.changed,key:this.state.tab,expertMode:this.props.expertMode,index:1001,arrayIndex:this.props.arrayIndex,globalData:this.props.globalData,commandRunning:this.props.commandRunning,style:Aw.panel,common:this.props.common,alive:this.props.alive,themeName:this.props.themeName,data:this.props.data,originalData:this.props.originalData,onChange:this.props.onChange,onError:this.onTabError,customObj:this.props.customObj,custom:this.props.custom,schema:e[this.state.tab],table:this.props.table,withIcons:t,customComponents:this.props.customComponents})):null}};J(jw,`MENU_WIDTH`,600),J(jw,`MENU_HYSTERESIS`,40),K(),Y.extendTranslations({en:{"jc_A credential with this name already exists":`A credential with this name already exists`,"jc_A unique name is required":`A unique name is required`,"jc_Accept license":`Accept license`,jc_Actions:`Actions`,"jc_Add credential":`Add credential`,"jc_Add row":`Add row`,"jc_All items are filtered out":`All items are filtered out`,jc_Append:`Append`,"jc_Append %s entries or replace existing?":`Append %s entries or replace existing?`,"jc_Append or replace?":`Append or replace?`,"jc_Are you sure?":`Are you sure?`,jc_Cancel:`Cancel`,"jc_Cannot add items with set filter":`Cannot add items with set filter`,"jc_Cannot create credential: %s":`Cannot create credential: %s`,"jc_Cannot decode license":`Cannot decode license`,"jc_Cannot determine position: System settings are empty and GPS detection is disabled in browser":`Cannot determine position: System settings are empty and GPS detection is disabled in browser`,'jc_Cannot display the custom component "%s"':`Cannot display the custom component "%s"`,"jc_Cannot read licenses: %s":`Cannot read licenses: %s`,"jc_Cannot retrieve options, as instance is offline":`Cannot retrieve options, as instance is offline`,"jc_Cannot save configuration because of error in configuration":`Cannot save configuration because of error in configuration`,"jc_Cannot upload":`Cannot upload`,"jc_Chained certificate":`Chained certificate`,jc_Checked:`Checked`,"jc_Click to see in full size":`Click to see in full size`,"jc_Click to show":`Click to show`,"jc_Clone current row":`Clone current row`,jc_Close:`Close`,jc_Commercial:`Commercial`,jc_Copied:`Copied`,"jc_Copied %s":`Copied "%s"`,"jc_Copy content":`Copy content`,jc_Create:`Create`,"jc_Credential type":`Credential type`,'jc_Custom component "%s" was not started':`Custom component "%s" was not started`,"jc_Define schedule":`Define schedule`,jc_Delete:`Delete`,"jc_Delete current row":`Delete current row`,"jc_Disable/Enable translation":`Disable/Enable translation`,jc_Discard:`Discard`,"jc_Do not use let's encrypt":`Do not use let's encrypt`,"jc_Docker is not available":`Docker is not available`,"jc_Docker is not installed or not running":`Docker is not installed or not running`,"jc_Drop file here":`Drop file here`,"jc_Enter the code from that page here":`Enter the code from that page here`,jc_Error:`Error`,"jc_Expand/Collapse card":`Expand/Collapse card`,"jc_Export configuration section":`Export configuration section`,"jc_Export data to %s file":`Export data to %s file`,"jc_Export setting to JSON file":`Export setting to JSON file`,"jc_Fallback custom certificates":`Fallback custom certificates`,"jc_File is too big. Max %sk allowed. Try use SVG.":`File is too big. Max %sk allowed. Try use SVG.`,"jc_File will be deleted":`File will be deleted`,"jc_Filter and Data Actions":`Filter and Data Actions`,"jc_Get %s access":`Get %s access`,"jc_If the button above does not work, you can authorize manually this app by visiting this url":`If the button above does not work, you can authorize manually this app by visiting this url`,"jc_Import and add configuration section":`Import and add configuration section`,"jc_Import and replace configuration section":`Import and replace configuration section`,"jc_Import data from %s file":`Import data from %s file`,"jc_Import from %s":`Import from %s`,"jc_Import settings from JSON file":`Import settings from JSON file`,"jc_Instance %s is alive":`Instance %s is alive`,"jc_Instance %s is not alive":`Instance %s is not alive`,"jc_Invalid JSON":`Invalid JSON`,"jc_Invalid JSON file.":`Invalid JSON file.`,"jc_Invalid JSON format. Expected an array.":`Invalid JSON format. Expected an array.`,"jc_Invalid YAML":`Invalid YAML`,"jc_It requires GUI API generation %s, but this admin provides generation %s. Please update the admin.":`It requires GUI API generation %s, but this admin provides generation %s. Please update the admin.`,"jc_It was built for GUI API generation %s, but this admin provides generation %s. Please update the adapter.":`It was built for GUI API generation %s, but this admin provides generation %s. Please update the adapter.`,"jc_It was probably built for an older admin version. Please update the adapter.":`It was probably built for an older admin version. Please update the adapter.`,"jc_JSON editor":`JSON editor`,jc_Latitude:`Latitude`,"jc_License %s":`License %s`,"jc_License agreement":`License agreement`,"jc_License does not exist":`License does not exist`,"jc_License expired on %s":`License expired on %s`,'jc_License for other product "%s"':`License for other product "%s"`,"jc_License is for version %s, but required version is %s":`License is for version %s, but required version is %s`,"jc_License must be converted":`License must be converted to newer version. You can do it in your iobroker.net profile.`,"jc_License not found in license manager. Do you want to read licenses from iobroker.net?":`License not found in the license manager. Do you want to update licenses from iobroker.net?`,"jc_Listen on all IPs":`Listen on all IPs`,jc_Longitude:`Longitude`,"jc_Move down":`Move down`,"jc_Move up":`Move up`,jc_Name:`Name`,"jc_No one license found in license manager":`No one license found in license manager`,"jc_No response from admin":`No response from admin`,'jc_Non-allowed duplicate entry "%s" in column "%s"':`Non-allowed duplicate entry "%s" in column "%s"`,"jc_OAuth Client ID":`OAuth Client ID`,"jc_OAuth Client secret":`OAuth Client secret`,jc_Ok:`Ok`,"jc_Passwords are not equal!":`Passwords are not equal!`,"jc_Place your files here or click here to open the browse dialog":`Place your files here or click here to open the browse dialog`,"jc_Please allow popups in your browser for this page!":`Please allow popups in your browser for this page!`,"jc_Please confirm":`Please confirm`,"jc_Please create license":`Please create license`,"jc_Please enter the license":`Please enter the license`,"jc_Please fill in all required fields":`Please fill in all required fields`,"jc_Port could be used by %s":`Port could be used by %s`,"jc_Port is already used by %s":`Port is already used by %s`,"jc_Press ENTER Key to add new item":`Press ENTER Key to add new item`,"jc_Private certificate":`Private certificate`,jc_Product:`Product`,"jc_Public certificate":`Public certificate`,"jc_Renew %s access":`Renew %s access`,jc_Replace:`Replace`,"jc_Request data by instance":`Request data by instance`,"jc_Request timed out":`Request timed out`,jc_Result:`Result`,jc_Save:`Save`,"jc_Save configuration?":`Save configuration?`,"jc_Serial number (UUID)":`Serial number (UUID)`,'jc_Serial number (UUID) "%s" in license is for other device.':`Serial number (UUID) "%s" in license is for other device.`,"jc_Show/hide filter input":`Show/hide filter input`,"jc_Some data are not stored. Discard?":`Some data are not stored. Discard?`,"jc_Successfully authorized. Token valid till %s and will be automatically renewed.":`Successfully authorized. Token valid till %s and will be automatically renewed.`,"jc_Successfully authorized. Token valid till %s but it can expire as the instance is not running.":`Successfully authorized. Token valid till %s but it can expire as the instance is not running.`,"jc_Suitable license not found in license manager":`Suitable license not found in license manager`,"jc_System language":`System language`,"jc_Take browser position":`Take position from browser`,"jc_Take position from system settings":`Take position from system settings`,jc_Template:`Template`,"jc_Use all available let's encrypt certificates":`Use all available let's encrypt certificates`,"jc_Use system settings for position":`Use system settings for position`,"jc_Used system settings":`Used system settings`,jc_ValidTill:`Valid till`,jc_Version:`Version`,"jc_YAML editor":`YAML editor`,jc_Yes:`Yes`,"jc_You can filter entries by entering here some text":`You can filter entries by entering here some text`,"jc_[JsonConfig] Failed to open JSON File":`[JsonConfig] Failed to open JSON File`,"jc_[JsonConfig] Failed to parse JSON file":`[JsonConfig] Failed to parse JSON file`,jc___different__:`different`,jc_false:`FALSE`,jc_locally:`locally`,jc_none:`none`,jc_repeat:`repeat`,jc_true:`TRUE`,"jc_via internet":`via internet`,sch_all:`all`},de:{"jc_A credential with this name already exists":`Es existiert bereits eine Berechtigung mit diesem Namen.`,"jc_A unique name is required":`Ein eindeutiger Name ist erforderlich.`,"jc_Accept license":`Lizenz akzeptieren`,jc_Actions:`Aktionen`,"jc_Add credential":`Anmeldeinformationen hinzufügen`,"jc_Add row":`Zeile hinzufügen`,"jc_All items are filtered out":`Alle Elemente sind herausgefiltert`,jc_Append:`Anhängen`,"jc_Append %s entries or replace existing?":`%s Einträge anhängen oder vorhandene ersetzen?`,"jc_Append or replace?":`Anhängen oder ersetzen?`,"jc_Are you sure?":`Bist du sicher?`,jc_Cancel:`Abbrechen`,"jc_Cannot add items with set filter":`Elemente mit festgelegtem Filter können nicht hinzugefügt werden`,"jc_Cannot create credential: %s":`Anmeldeinformationen konnten nicht erstellt werden: %s`,"jc_Cannot decode license":`Lizenz kann nicht entschlüsselt werden`,"jc_Cannot determine position: System settings are empty and GPS detection is disabled in browser":`Position kann nicht bestimmt werden: Die Systemeinstellungen sind leer und die GPS-Erkennung ist im Browser deaktiviert`,'jc_Cannot display the custom component "%s"':`Die benutzerdefinierte Komponente "%s" kann nicht angezeigt werden`,"jc_Cannot read licenses: %s":`Lizenzen können nicht gelesen werden: %s`,"jc_Cannot retrieve options, as instance is offline":`Optionen können nicht abgerufen werden, da die Instanz offline ist`,"jc_Cannot save configuration because of error in configuration":`Die Konfiguration konnte aufgrund eines Fehlers nicht gespeichert werden.`,"jc_Cannot upload":`Kann nicht hochladen`,"jc_Chained certificate":`Chained Zertifikat`,jc_Checked:`Geprüft`,"jc_Click to see in full size":`Klicken Sie hier, um die Vollbildansicht zu öffnen.`,"jc_Click to show":`Zum Anzeigen klicken`,"jc_Clone current row":`Aktuelle Zeile klonen`,jc_Close:`Schließen`,jc_Commercial:`Kommerziell`,jc_Copied:`Kopiert`,"jc_Copied %s":`"%s" kopiert`,"jc_Copy content":`Inhalte kopieren`,jc_Create:`Erstellen`,"jc_Credential type":`Anmeldeinformationstyp`,'jc_Custom component "%s" was not started':`Die benutzerdefinierte Komponente "%s" wurde nicht gestartet`,"jc_Define schedule":`Zeitplan definieren`,jc_Delete:`Löschen`,"jc_Delete current row":`Aktuelle Zeile löschen`,"jc_Disable/Enable translation":`Übersetzung deaktivieren/aktivieren`,jc_Discard:`Verwerfen`,"jc_Do not use let's encrypt":`Let's encrypt nicht verwenden`,"jc_Docker is not available":`Docker ist nicht verfügbar`,"jc_Docker is not installed or not running":`Docker ist nicht installiert oder läuft nicht`,"jc_Drop file here":`Datei hier ablegen`,"jc_Enter the code from that page here":`Geben Sie den Code von dieser Seite hier ein`,jc_Error:`Fehler`,"jc_Expand/Collapse card":`Karte ein-/ausklappen`,"jc_Export configuration section":`Konfigurationsabschnitt exportieren`,"jc_Export data to %s file":`Daten in %s-Datei exportieren`,"jc_Export setting to JSON file":`Einstellungen in eine JSON-Datei exportieren`,"jc_Fallback custom certificates":`Benutzerdefinierte Fallback-Zertifikate`,"jc_File is too big. Max %sk allowed. Try use SVG.":`Datei ist zu groß. Max %sk erlaubt. Versuchen Sie, SVG zu verwenden.`,"jc_File will be deleted":`Die Datei wird gelöscht`,"jc_Filter and Data Actions":`Filter- und Datenaktionen`,"jc_Get %s access":`%s Zugriff erhalten`,"jc_If the button above does not work, you can authorize manually this app by visiting this url":`Wenn die Schaltfläche oben nicht funktioniert, können Sie diese App manuell autorisieren, indem Sie diese URL besuchen`,"jc_Import and add configuration section":`Konfigurationsabschnitt importieren und hinzufügen`,"jc_Import and replace configuration section":`Konfigurationsabschnitt importieren und ersetzen`,"jc_Import data from %s file":`Daten aus %s-Datei importieren`,"jc_Import from %s":`Von %s importieren`,"jc_Import settings from JSON file":`Einstellungen aus einer JSON-Datei importieren`,"jc_Instance %s is alive":`Instanz %s ist aktiv`,"jc_Instance %s is not alive":`Instanz %s ist nicht aktiv`,"jc_Invalid JSON":`Ungültiges JSON`,"jc_Invalid JSON file.":`Ungültige JSON-Datei.`,"jc_Invalid JSON format. Expected an array.":`Ungültiges JSON-Format. Array erwartet.`,"jc_Invalid YAML":`Ungültiges YAML`,"jc_It requires GUI API generation %s, but this admin provides generation %s. Please update the admin.":`Sie benötigt GUI-API-Generation %s, dieser Admin stellt aber Generation %s bereit. Bitte den Admin aktualisieren.`,"jc_It was built for GUI API generation %s, but this admin provides generation %s. Please update the adapter.":`Sie wurde für GUI-API-Generation %s erstellt, dieser Admin stellt aber Generation %s bereit. Bitte den Adapter aktualisieren.`,"jc_It was probably built for an older admin version. Please update the adapter.":`Sie wurde vermutlich für eine ältere Admin-Version erstellt. Bitte den Adapter aktualisieren.`,"jc_JSON editor":`JSON-Editor`,jc_Latitude:`Breite`,"jc_License %s":`Lizenz %s`,"jc_License agreement":`Lizenzvereinbarung`,"jc_License does not exist":`Lizenz existiert nicht`,"jc_License expired on %s":`Lizenz am %s abgelaufen`,'jc_License for other product "%s"':`Lizenz für anderes Produkt „%s“`,"jc_License is for version %s, but required version is %s":`Die Lizenz gilt für Version %s, benötigt wird jedoch Version %s.`,"jc_License must be converted":`Die Lizenz muss auf eine neuere Version konvertiert werden. Sie können dies in Ihrem iobroker.net-Profil tun.`,"jc_License not found in license manager. Do you want to read licenses from iobroker.net?":`Lizenz im Lizenzmanager nicht gefunden. Möchten Sie Lizenzen von iobroker.net aktualisieren?`,"jc_Listen on all IPs":`Zugriff von allen IPs zulassen`,jc_Longitude:`Längengrad`,"jc_Move down":`Nach unten`,"jc_Move up":`Nach oben`,jc_Name:`Name`,"jc_No one license found in license manager":`Im Lizenzmanager wurde keine Lizenz gefunden`,"jc_No response from admin":`Keine Antwort vom Administrator`,'jc_Non-allowed duplicate entry "%s" in column "%s"':`Nicht zulässiger doppelter Eintrag "%s" in Spalte "%s"`,"jc_OAuth Client ID":`OAuth-Client-ID`,"jc_OAuth Client secret":`OAuth-Client-Secret`,jc_Ok:`OK`,"jc_Passwords are not equal!":`Passwörter sind nicht gleich!`,"jc_Place your files here or click here to open the browse dialog":`Die Dateien hier platzieren oder hier klicken, um den Suchdialog zu öffnen`,"jc_Please allow popups in your browser for this page!":`Bitte lassen Sie Popups für diese Seite in Ihrem Browser zu!`,"jc_Please confirm":`Bitte bestätigen`,"jc_Please create license":`Bitte erstellen Sie eine Lizenz`,"jc_Please enter the license":`Bitte die Lizenz eingeben`,"jc_Please fill in all required fields":`Bitte füllen Sie alle Pflichtfelder aus.`,"jc_Port could be used by %s":`Port könnte von %s verwendet werden`,"jc_Port is already used by %s":`Port wird bereits von %s verwendet`,"jc_Press ENTER Key to add new item":`Die Eingabetaste drücken, um ein neues Element hinzuzufügen`,"jc_Private certificate":`Privates Zertifikat`,jc_Product:`Produkt`,"jc_Public certificate":`Öffentliches Zertifikat`,"jc_Renew %s access":`%s Zugriff erneuern`,jc_Replace:`Ersetzen`,"jc_Request data by instance":`Daten pro Instanz anfordern`,"jc_Request timed out":`Zeitüberschreitung der Anforderung`,jc_Result:`Ergebnis`,jc_Save:`Speichern`,"jc_Save configuration?":`Konfiguration speichern?`,"jc_Serial number (UUID)":`Seriennummer (UUID)`,'jc_Serial number (UUID) "%s" in license is for other device.':`Seriennummer (UUID) „%s“ in der Lizenz gilt für ein anderes Gerät.`,"jc_Show/hide filter input":`Filtereingabe ein-/ausblenden`,"jc_Some data are not stored. Discard?":`Einige Daten werden nicht gespeichert. Verwerfen?`,"jc_Successfully authorized. Token valid till %s and will be automatically renewed.":`Erfolgreich autorisiert. Token gültig bis %s und wird automatisch erneuert.`,"jc_Successfully authorized. Token valid till %s but it can expire as the instance is not running.":`Erfolgreich autorisiert. Token gültig bis %s, kann aber ablaufen, da die Instanz nicht ausgeführt wird.`,"jc_Suitable license not found in license manager":`Passende Lizenz im Lizenzmanager nicht gefunden`,"jc_System language":`Systemsprache`,"jc_Take browser position":`Position vom Browser einnehmen`,"jc_Take position from system settings":`Position aus den Systemeinstellungen übernehmen`,jc_Template:`Vorlage`,"jc_Use all available let's encrypt certificates":`Alle verfügbaren Zertifikate von Let's encrypt benutzen`,"jc_Use system settings for position":`Systemeinstellungen für die Position verwenden`,"jc_Used system settings":`Systemeinstellungen`,jc_ValidTill:`Gültig bis`,jc_Version:`Ausführung`,"jc_YAML editor":`YAML-Editor`,jc_Yes:`Ja`,"jc_You can filter entries by entering here some text":`Sie können Einträge filtern, indem Sie hier Text eingeben`,"jc_[JsonConfig] Failed to open JSON File":`[JsonConfig] Fehler beim Öffnen der JSON-Datei`,"jc_[JsonConfig] Failed to parse JSON file":`[JsonConfig] Fehler beim Parsen der JSON-Datei`,jc___different__:`unterschiedlich`,jc_false:`FALSCH`,jc_locally:`örtlich`,jc_none:`kein`,jc_repeat:`wiederholen`,jc_true:`WAHR`,"jc_via internet":`übers Internet`,sch_all:`alle`},ru:{"jc_A credential with this name already exists":`Учетные данные с таким именем уже существуют.`,"jc_A unique name is required":`Требуется уникальное имя.`,"jc_Accept license":`Принять лицензию`,jc_Actions:`Действия`,"jc_Add credential":`Добавить учетные данные`,"jc_Add row":`Добавить ряд`,"jc_All items are filtered out":`Все элементы отфильтрованы`,jc_Append:`Добавить`,"jc_Append %s entries or replace existing?":`Добавить записи %s или заменить существующие?`,"jc_Append or replace?":`Дополнить или заменить?`,"jc_Are you sure?":`Вы уверены?`,jc_Cancel:`Отмена`,"jc_Cannot add items with set filter":`Невозможно добавить элементы с установленным фильтром`,"jc_Cannot create credential: %s":`Не удалось создать учетные данные: %s`,"jc_Cannot decode license":`Не могу декодировать лицензию`,"jc_Cannot determine position: System settings are empty and GPS detection is disabled in browser":`Невозможно определить местоположение: системные настройки пусты, а обнаружение GPS отключено в браузере.`,'jc_Cannot display the custom component "%s"':`Не удается отобразить пользовательский компонент "%s"`,"jc_Cannot read licenses: %s":`Невозможно прочитать лицензии: %s`,"jc_Cannot retrieve options, as instance is offline":`Невозможно получить параметры, так как экземпляр находится в автономном режиме.`,"jc_Cannot save configuration because of error in configuration":`Невозможно сохранить конфигурацию из-за ошибки в конфигурации.`,"jc_Cannot upload":`Невозможно загрузить`,"jc_Chained certificate":`Chained сертификат`,jc_Checked:`Проверено`,"jc_Click to see in full size":`Нажмите, чтобы посмотреть в полном размере`,"jc_Click to show":`Нажмите, чтобы показать`,"jc_Clone current row":`Клонировать текущую строку`,jc_Close:`Закрыть`,jc_Commercial:`Коммерческая`,jc_Copied:`скопировано`,"jc_Copied %s":`Скопировано "%s"`,"jc_Copy content":`Копировать содержимое`,jc_Create:`Создать`,"jc_Credential type":`Тип учетных данных`,'jc_Custom component "%s" was not started':`Пользовательский компонент "%s" не был запущен.`,"jc_Define schedule":`Задать расписание`,jc_Delete:`Удалить`,"jc_Delete current row":`Удалить текущую строку`,"jc_Disable/Enable translation":`Включить/отключить перевод`,jc_Discard:`Отказаться`,"jc_Do not use let's encrypt":`Не использовать Let’s Encrypt`,"jc_Docker is not available":`Докер недоступен`,"jc_Docker is not installed or not running":`Docker не установлен или не запущен`,"jc_Drop file here":`Перетащите файл сюда`,"jc_Enter the code from that page here":`Введите код с этой страницы здесь`,jc_Error:`Ошибка`,"jc_Expand/Collapse card":`Развернуть/Свернуть карточку`,"jc_Export configuration section":`Раздел конфигурации экспорта`,"jc_Export data to %s file":`Экспорт данных в файл %s`,"jc_Export setting to JSON file":`Экспорт настроек в JSON-файл`,"jc_Fallback custom certificates":`Резервные пользовательские сертификаты`,"jc_File is too big. Max %sk allowed. Try use SVG.":`Файл слишком большой. Разрешено максимальное количество %sk. Попробуйте использовать SVG.`,"jc_File will be deleted":`Файл будет удалён`,"jc_Filter and Data Actions":`Фильтрация и действия с данными`,"jc_Get %s access":`Получить %s доступ`,"jc_If the button above does not work, you can authorize manually this app by visiting this url":`Если кнопка выше не работает, вы можете вручную авторизовать это приложение, перейдя по этой ссылке.`,"jc_Import and add configuration section":`Импорт и добавление раздела конфигурации`,"jc_Import and replace configuration section":`Импорт и замена раздела конфигурации`,"jc_Import data from %s file":`Импорт данных из файла %s`,"jc_Import from %s":`Импорт из %s`,"jc_Import settings from JSON file":`Импорт настроек из JSON-файла`,"jc_Instance %s is alive":`Экземпляр %s работает`,"jc_Instance %s is not alive":`Экземпляр %s не работает`,"jc_Invalid JSON":`Неверный JSON`,"jc_Invalid JSON file.":`Неверный файл JSON.`,"jc_Invalid JSON format. Expected an array.":`Недопустимый формат JSON. Ожидается массив.`,"jc_Invalid YAML":`Недопустимый YAML-файл`,"jc_It requires GUI API generation %s, but this admin provides generation %s. Please update the admin.":`Для этого требуется генерация API графического интерфейса пользователя %s, но администратор предоставляет генерацию %s. Пожалуйста, обновите администратора.`,"jc_It was built for GUI API generation %s, but this admin provides generation %s. Please update the adapter.":`Он был создан для генерации API графического интерфейса пользователя %s, но этот администратор предоставляет генерацию %s. Пожалуйста, обновите адаптер.`,"jc_It was probably built for an older admin version. Please update the adapter.":`Вероятно, он был создан для более старой версии административной панели. Пожалуйста, обновите адаптер.`,"jc_JSON editor":`Редактор JSON`,jc_Latitude:`Широта`,"jc_License %s":`Лицензия %s`,"jc_License agreement":`Лицензионное соглашение`,"jc_License does not exist":`Лицензия не существует`,"jc_License expired on %s":`Срок действия лицензии истек %s`,'jc_License for other product "%s"':`Лицензия на другой продукт "%s"`,"jc_License is for version %s, but required version is %s":`Лицензия распространяется на версию %s, но требуемая версия — %s.`,"jc_License must be converted":`Лицензия должна быть преобразована в более новую версию. Вы можете сделать это в своем профиле на iobroker.net.`,"jc_License not found in license manager. Do you want to read licenses from iobroker.net?":`Лицензия не найдена в диспетчере лицензий. Вы хотите обновить лицензии от iobroker.net?`,"jc_Listen on all IPs":`Слушать на всех IP`,jc_Longitude:`Долгота`,"jc_Move down":`Вниз`,"jc_Move up":`Вверх`,jc_Name:`Имя`,"jc_No one license found in license manager":`В менеджере лицензий не найдена ни одна лицензия`,"jc_No response from admin":`Нет ответа от администратора`,'jc_Non-allowed duplicate entry "%s" in column "%s"':`Недопустимая повторяющаяся запись "%s" в столбце "%s"`,"jc_OAuth Client ID":`Идентификатор клиента OAuth`,"jc_OAuth Client secret":`Секрет клиента OAuth`,jc_Ok:`Ok`,"jc_Passwords are not equal!":`Пароли не равны!`,"jc_Place your files here or click here to open the browse dialog":`Поместите свои файлы сюда или щелкните здесь, чтобы открыть диалоговое окно выбора`,"jc_Please allow popups in your browser for this page!":`Пожалуйста, разрешите всплывающие окна в вашем браузере для этой страницы!`,"jc_Please confirm":`Пожалуйста подтвердите`,"jc_Please create license":`Пожалуйста, создайте лицензию`,"jc_Please enter the license":`Пожалуйста, введите лицензию`,"jc_Please fill in all required fields":`Пожалуйста, заполните все обязательные поля.`,"jc_Port could be used by %s":`Порт может использоваться %s`,"jc_Port is already used by %s":`Порт уже используется %s`,"jc_Press ENTER Key to add new item":`Нажмите клавишу ENTER, чтобы добавить новый элемент.`,"jc_Private certificate":`Частный сертификат`,jc_Product:`Продукт`,"jc_Public certificate":`Публичный сертификат`,"jc_Renew %s access":`Продлить доступ %s`,jc_Replace:`Заменять`,"jc_Request data by instance":`Запрос данных по экземпляру`,"jc_Request timed out":`Истекло время запроса`,jc_Result:`Результат`,jc_Save:`Сохранить`,"jc_Save configuration?":`Сохранить конфигурацию?`,"jc_Serial number (UUID)":`Серийный номер (UUID)`,'jc_Serial number (UUID) "%s" in license is for other device.':`Серийный номер (UUID) «%s» в лицензии предназначен для другого устройства.`,"jc_Show/hide filter input":`Показать/скрыть ввод фильтра`,"jc_Some data are not stored. Discard?":`Некоторые данные не сохранились. Отказаться?`,"jc_Successfully authorized. Token valid till %s and will be automatically renewed.":`Авторизация выполнена успешно. Токен действителен до %s и будет автоматически продлен.`,"jc_Successfully authorized. Token valid till %s but it can expire as the instance is not running.":`Авторизация выполнена успешно. Токен действителен до %s, но его срок действия может истечь, так как экземпляр не запущен.`,"jc_Suitable license not found in license manager":`Подходящая лицензия не найдена в менеджере лицензий`,"jc_System language":`Язык системы`,"jc_Take browser position":`Взять позицию из браузера`,"jc_Take position from system settings":`Занять позицию из системных настроек`,jc_Template:`Шаблон`,"jc_Use all available let's encrypt certificates":`Использовать все доступные сертификаты Let’s encrypt`,"jc_Use system settings for position":`Использовать системные настройки для позиции`,"jc_Used system settings":`Системные настройки`,jc_ValidTill:`Годен до`,jc_Version:`Версия`,"jc_YAML editor":`Редактор YAML`,jc_Yes:`Да`,"jc_You can filter entries by entering here some text":`Вы можете отфильтровать записи, введя здесь текст`,"jc_[JsonConfig] Failed to open JSON File":`[JsonConfig] Не удалось открыть JSON-файл`,"jc_[JsonConfig] Failed to parse JSON file":`[JsonConfig] Не удалось разобрать JSON-файл`,jc___different__:`разное`,jc_false:`ЛОЖЬ`,jc_locally:`локально`,jc_none:`ничего`,jc_repeat:`повтор`,jc_true:`истинный`,"jc_via internet":`через интернет`,sch_all:`все`},pt:{"jc_A credential with this name already exists":`Já existe uma credencial com este nome.`,"jc_A unique name is required":`É necessário um nome único.`,"jc_Accept license":`Aceitar licença`,jc_Actions:`Ações`,"jc_Add credential":`Adicionar credencial`,"jc_Add row":`Adicionar linha`,"jc_All items are filtered out":`Todos os itens são filtrados`,jc_Append:`Acrescentar`,"jc_Append %s entries or replace existing?":`Acrescentar %s entradas ou substituir as existentes?`,"jc_Append or replace?":`Acrescentar ou substituir?`,"jc_Are you sure?":`Você tem certeza?`,jc_Cancel:`Cancelar`,"jc_Cannot add items with set filter":`Não é possível adicionar itens com filtro definido`,"jc_Cannot create credential: %s":`Não foi possível criar a credencial: %s`,"jc_Cannot decode license":`Não é possível decodificar a licença`,"jc_Cannot determine position: System settings are empty and GPS detection is disabled in browser":`Não é possível determinar a posição: as configurações do sistema estão vazias e a detecção de GPS está desativada no navegador`,'jc_Cannot display the custom component "%s"':`Não é possível exibir o componente personalizado "%s"`,"jc_Cannot read licenses: %s":`Não é possível ler licenças: %s`,"jc_Cannot retrieve options, as instance is offline":`Não é possível recuperar opções, pois a instância está off-line`,"jc_Cannot save configuration because of error in configuration":`Não foi possível salvar a configuração devido a um erro na configuração.`,"jc_Cannot upload":`Não é possível fazer upload`,"jc_Chained certificate":`certificado encadeado`,jc_Checked:`Verificado`,"jc_Click to see in full size":`Clique para ver em tamanho real.`,"jc_Click to show":`Clique para mostrar`,"jc_Clone current row":`Clonar linha atual`,jc_Close:`Perto`,jc_Commercial:`Comercial`,jc_Copied:`Copiado`,"jc_Copied %s":`"%s" copiado`,"jc_Copy content":`Copiar conteúdo`,jc_Create:`Crio`,"jc_Credential type":`Tipo de credencial`,'jc_Custom component "%s" was not started':`O componente personalizado "%s" não foi iniciado.`,"jc_Define schedule":`Definir cronograma`,jc_Delete:`Excluir`,"jc_Delete current row":`Excluir linha atual`,"jc_Disable/Enable translation":`Desativar/Ativar tradução`,jc_Discard:`Descartar`,"jc_Do not use let's encrypt":`Não use vamos criptografar`,"jc_Docker is not available":`O Docker não está disponível`,"jc_Docker is not installed or not running":`O Docker não está instalado ou não está em execução`,"jc_Drop file here":`Solte o arquivo aqui`,"jc_Enter the code from that page here":`Digite o código dessa página aqui`,jc_Error:`Erro`,"jc_Expand/Collapse card":`Expandir/Recolher cartão`,"jc_Export configuration section":`Seção de configuração de exportação`,"jc_Export data to %s file":`Exportar dados para o arquivo %s`,"jc_Export setting to JSON file":`Exportar configurações para arquivo JSON`,"jc_Fallback custom certificates":`Certificados personalizados alternativos`,"jc_File is too big. Max %sk allowed. Try use SVG.":`O arquivo é muito grande. Max %sk permitido. Tente usar SVG.`,"jc_File will be deleted":`O arquivo será excluído.`,"jc_Filter and Data Actions":`Ações de filtro e dados`,"jc_Get %s access":`Obtenha acesso %s`,"jc_If the button above does not work, you can authorize manually this app by visiting this url":`Se o botão acima não funcionar, você pode autorizar manualmente este aplicativo visitando esta url`,"jc_Import and add configuration section":`Seção de importação e adição de configuração`,"jc_Import and replace configuration section":`Seção de configuração de importação e substituição`,"jc_Import data from %s file":`Importar dados do arquivo %s`,"jc_Import from %s":`Importar de %s`,"jc_Import settings from JSON file":`Importar configurações de um arquivo JSON`,"jc_Instance %s is alive":`O %s da instância está ativo`,"jc_Instance %s is not alive":`O %s da instância não está ativo`,"jc_Invalid JSON":`JSON inválido`,"jc_Invalid JSON file.":`Arquivo JSON inválido.`,"jc_Invalid JSON format. Expected an array.":`Formato JSON inválido. Esperava-se uma matriz.`,"jc_Invalid YAML":`YAML inválido`,"jc_It requires GUI API generation %s, but this admin provides generation %s. Please update the admin.":`É necessário gerar %s da API da GUI, mas este painel de administração já fornece a geração %s. Por favor, atualize o painel de administração.`,"jc_It was built for GUI API generation %s, but this admin provides generation %s. Please update the adapter.":`Foi desenvolvido para geração de API GUI %s, mas este painel de administração fornece geração %s. Por favor, atualize o adaptador.`,"jc_It was probably built for an older admin version. Please update the adapter.":`Provavelmente foi desenvolvido para uma versão administrativa mais antiga. Por favor, atualize o adaptador.`,"jc_JSON editor":`Editor JSON`,jc_Latitude:`Latitude`,"jc_License %s":`Licença %s`,"jc_License agreement":`Contrato de licença`,"jc_License does not exist":`A licença não existe`,"jc_License expired on %s":`A licença expirou em %s`,'jc_License for other product "%s"':`Licença para outro produto "%s"`,"jc_License is for version %s, but required version is %s":`A licença é para a versão %s, mas a versão necessária é %s.`,"jc_License must be converted":`A licença deve ser convertida para uma versão mais recente. Você pode fazê-lo em seu perfil iobroker.net.`,"jc_License not found in license manager. Do you want to read licenses from iobroker.net?":`Licença não encontrada no gerenciador de licenças. Deseja atualizar as licenças do iobroker.net?`,"jc_Listen on all IPs":`Ouça em todos os IPs`,jc_Longitude:`Longitude`,"jc_Move down":`Mover para baixo`,"jc_Move up":`Subir`,jc_Name:`Nome`,"jc_No one license found in license manager":`Nenhuma licença encontrada no gerenciador de licenças`,"jc_No response from admin":`Nenhuma resposta do administrador`,'jc_Non-allowed duplicate entry "%s" in column "%s"':`Entrada duplicada não permitida "%s" na coluna "%s"`,"jc_OAuth Client ID":`ID do cliente OAuth`,"jc_OAuth Client secret":`Segredo do cliente OAuth`,jc_Ok:`Está bem`,"jc_Passwords are not equal!":`As senhas não são iguais!`,"jc_Place your files here or click here to open the browse dialog":`Coloque seus arquivos aqui ou clique aqui para abrir a janela de navegação`,"jc_Please allow popups in your browser for this page!":`Por favor, permita pop-ups no seu navegador para esta página!`,"jc_Please confirm":`Por favor confirme`,"jc_Please create license":`Crie uma licença`,"jc_Please enter the license":`Por favor, insira a licença`,"jc_Please fill in all required fields":`Por favor, preencha todos os campos obrigatórios.`,"jc_Port could be used by %s":`A porta pode ser usada por %s`,"jc_Port is already used by %s":`A porta já está sendo usada por %s`,"jc_Press ENTER Key to add new item":`Pressione a tecla ENTER para adicionar um novo item`,"jc_Private certificate":`certificado privado`,jc_Product:`produtos`,"jc_Public certificate":`certificado público`,"jc_Renew %s access":`Renovar acesso %s`,jc_Replace:`Substituir`,"jc_Request data by instance":`Solicitar dados por instância`,"jc_Request timed out":`Solicitação expirou`,jc_Result:`Resultado`,jc_Save:`Salve `,"jc_Save configuration?":`Salvar configuração?`,"jc_Serial number (UUID)":`Número de série (UUID)`,'jc_Serial number (UUID) "%s" in license is for other device.':`O número de série (UUID) "%s" na licença é para outro dispositivo.`,"jc_Show/hide filter input":`Mostrar/ocultar entrada de filtro`,"jc_Some data are not stored. Discard?":`Alguns dados não são armazenados. Descartar?`,"jc_Successfully authorized. Token valid till %s and will be automatically renewed.":`Autorizado com sucesso. Token válido até %s e será renovado automaticamente.`,"jc_Successfully authorized. Token valid till %s but it can expire as the instance is not running.":`Autorizado com sucesso. Token válido até %s, mas pode expirar, pois a instância não está em execução.`,"jc_Suitable license not found in license manager":`Licença adequada não encontrada no gerenciador de licenças`,"jc_System language":`Idioma do sistema`,"jc_Take browser position":`Tomar posição do navegador`,"jc_Take position from system settings":`Tomar posição a partir das configurações do sistema`,jc_Template:`Modelo`,"jc_Use all available let's encrypt certificates":`Use todos os certificados disponíveis vamos criptografar`,"jc_Use system settings for position":`Use as configurações do sistema para a posição`,"jc_Used system settings":`Configurações do sistema usadas`,jc_ValidTill:`Válida até`,jc_Version:`Versão`,"jc_YAML editor":`Editor YAML`,jc_Yes:`Sim`,"jc_You can filter entries by entering here some text":`Você pode filtrar as entradas digitando aqui algum texto`,"jc_[JsonConfig] Failed to open JSON File":`[JsonConfig] Falha ao abrir o arquivo JSON`,"jc_[JsonConfig] Failed to parse JSON file":`[JsonConfig] Falha ao analisar o arquivo JSON`,jc___different__:`diferente`,jc_false:`FALSO`,jc_locally:`localmente`,jc_none:`Nenhum`,jc_repeat:`repetir`,jc_true:`verdadeiro`,"jc_via internet":`via internet`,sch_all:`tudo`},nl:{"jc_A credential with this name already exists":`Er bestaat al een legitimatiebewijs met deze naam.`,"jc_A unique name is required":`Een unieke naam is vereist.`,"jc_Accept license":`Accepteer licentie`,jc_Actions:`Acties`,"jc_Add credential":`Voeg inloggegevens toe`,"jc_Add row":`Voeg een rij toe`,"jc_All items are filtered out":`Alle items zijn uitgefilterd`,jc_Append:`toevoegen`,"jc_Append %s entries or replace existing?":`%s ingangen toevoegen of bestaande vervangen?`,"jc_Append or replace?":`Toevoegen of vervangen?`,"jc_Are you sure?":`Weet je het zeker?`,jc_Cancel:`Annuleer`,"jc_Cannot add items with set filter":`Kan geen items toevoegen met ingestelde filter`,"jc_Cannot create credential: %s":`Kan geen inloggegevens aanmaken: %s`,"jc_Cannot decode license":`Kan licentie niet decoderen`,"jc_Cannot determine position: System settings are empty and GPS detection is disabled in browser":`Kan positie niet bepalen: systeeminstellingen zijn leeg en GPS-detectie is uitgeschakeld in browser`,'jc_Cannot display the custom component "%s"':`Kan het aangepaste component "%s" niet weergeven.`,"jc_Cannot read licenses: %s":`Kan licenties niet lezen: %s`,"jc_Cannot retrieve options, as instance is offline":`Kan opties niet ophalen, omdat instantie offline is`,"jc_Cannot save configuration because of error in configuration":`Configuratie kan niet worden opgeslagen vanwege een configuratiefout.`,"jc_Cannot upload":`Kan niet uploaden`,"jc_Chained certificate":`Geketend certificaat`,jc_Checked:`Gecontroleerd`,"jc_Click to see in full size":`Klik om de afbeelding op volledige grootte te bekijken.`,"jc_Click to show":`Klik om te tonen`,"jc_Clone current row":`Kloon de huidige rij`,jc_Close:`Dichtbij`,jc_Commercial:`Reclame`,jc_Copied:`Gekopieerd`,"jc_Copied %s":`"%s" gekopieerd`,"jc_Copy content":`Inhoud kopiëren`,jc_Create:`Creëer`,"jc_Credential type":`Referentietype`,'jc_Custom component "%s" was not started':`Aangepaste component "%s" is niet gestart.`,"jc_Define schedule":`Definieer schema`,jc_Delete:`Verwijderen`,"jc_Delete current row":`Huidige rij verwijderen`,"jc_Disable/Enable translation":`Vertaling uitschakelen/inschakelen`,jc_Discard:`Weggooien`,"jc_Do not use let's encrypt":`Gebruik geen let's encrypt`,"jc_Docker is not available":`Docker is niet beschikbaar`,"jc_Docker is not installed or not running":`Docker is niet geïnstalleerd of draait niet`,"jc_Drop file here":`Zet het bestand hier neer`,"jc_Enter the code from that page here":`Voer hier de code van die pagina in`,jc_Error:`Fout`,"jc_Expand/Collapse card":`Kaart uit-/inklappen`,"jc_Export configuration section":`Sectie Exportconfiguratie`,"jc_Export data to %s file":`Exporteer gegevens naar %s bestand`,"jc_Export setting to JSON file":`Exporteer instellingen naar een JSON-bestand.`,"jc_Fallback custom certificates":`Fallback aangepaste certificaten`,"jc_File is too big. Max %sk allowed. Try use SVG.":`Bestand is te groot. Max. %sk toegestaan. Probeer SVG te gebruiken.`,"jc_File will be deleted":`Het bestand wordt verwijderd.`,"jc_Filter and Data Actions":`Filter- en gegevensacties`,"jc_Get %s access":`Krijg %s toegang`,"jc_If the button above does not work, you can authorize manually this app by visiting this url":`Als de bovenstaande knop niet werkt, kunt u deze app handmatig autoriseren door deze url te bezoeken`,"jc_Import and add configuration section":`Configuratiesectie importeren en toevoegen`,"jc_Import and replace configuration section":`Configuratiesectie importeren en vervangen`,"jc_Import data from %s file":`Importeer gegevens uit %s bestand`,"jc_Import from %s":`Importeren uit %s`,"jc_Import settings from JSON file":`Instellingen importeren vanuit een JSON-bestand`,"jc_Instance %s is alive":`Instantie %s leeft`,"jc_Instance %s is not alive":`Instantie %s is niet actief`,"jc_Invalid JSON":`Ongeldige JSON`,"jc_Invalid JSON file.":`Ongeldig JSON-bestand.`,"jc_Invalid JSON format. Expected an array.":`Ongeldige JSON-indeling. Er werd een array verwacht.`,"jc_Invalid YAML":`Ongeldige YAML`,"jc_It requires GUI API generation %s, but this admin provides generation %s. Please update the admin.":`Het vereist GUI API-generatie %s, maar deze beheerder levert generatie %s. Graag de beheerder bijwerken.`,"jc_It was built for GUI API generation %s, but this admin provides generation %s. Please update the adapter.":`Het is gebouwd voor GUI API-generatie %s, maar deze beheerder levert generatie %s. Update de adapter.`,"jc_It was probably built for an older admin version. Please update the adapter.":`Het is waarschijnlijk ontwikkeld voor een oudere beheerdersversie. Update de adapter.`,"jc_JSON editor":`JSON-editor`,jc_Latitude:`Breedtegraad`,"jc_License %s":`Licentie %s`,"jc_License agreement":`Licentieovereenkomst`,"jc_License does not exist":`Licentie bestaat niet`,"jc_License expired on %s":`Licentie verlopen op %s`,'jc_License for other product "%s"':`Licentie voor ander product "%s"`,"jc_License is for version %s, but required version is %s":`De licentie is voor versie %s, maar de vereiste versie is %s.`,"jc_License must be converted":`Licentie moet worden omgezet naar nieuwere versie. U kunt dit doen in uw iobroker.net-profiel.`,"jc_License not found in license manager. Do you want to read licenses from iobroker.net?":`Licentie niet gevonden in licentiebeheer. Wilt u licenties van iobroker.net bijwerken?`,"jc_Listen on all IPs":`Luister op alle IP's`,jc_Longitude:`Lengtegraad`,"jc_Move down":`Naar beneden verplaatsen`,"jc_Move up":`Omhoog gaan`,jc_Name:`Naam`,"jc_No one license found in license manager":`Geen enkele licentie gevonden in licentiebeheer`,"jc_No response from admin":`Geen reactie van de beheerder`,'jc_Non-allowed duplicate entry "%s" in column "%s"':`Niet-toegestane dubbele invoer "%s" in kolom "%s"`,"jc_OAuth Client ID":`OAuth-client-ID`,"jc_OAuth Client secret":`OAuth-clientgeheim`,jc_Ok:`OK`,"jc_Passwords are not equal!":`Wachtwoorden zijn niet gelijk!`,"jc_Place your files here or click here to open the browse dialog":`Plaats uw bestanden hier of klik hier om het bladervenster te openen`,"jc_Please allow popups in your browser for this page!":`Sta pop-ups toe in uw browser voor deze pagina!`,"jc_Please confirm":`Bevestig alstublieft`,"jc_Please create license":`Maak een licentie aan`,"jc_Please enter the license":`Voer de licentie in`,"jc_Please fill in all required fields":`Vul alle verplichte velden in.`,"jc_Port could be used by %s":`Poort kan worden gebruikt door %s`,"jc_Port is already used by %s":`Poort wordt al gebruikt door %s`,"jc_Press ENTER Key to add new item":`Druk op de ENTER-toets om een nieuw item toe te voegen`,"jc_Private certificate":`Privé certificaat`,jc_Product:`Product`,"jc_Public certificate":`Openbaar certificaat`,"jc_Renew %s access":`%s toegang verlengen`,jc_Replace:`Vervangen`,"jc_Request data by instance":`Gegevens opvragen per instantie`,"jc_Request timed out":`Verzoek verlopen`,jc_Result:`Resultaat`,jc_Save:`Sparen`,"jc_Save configuration?":`Configuratie opslaan?`,"jc_Serial number (UUID)":`Serienummer (UUID)`,'jc_Serial number (UUID) "%s" in license is for other device.':`Serienummer (UUID) "%s" in licentie is voor ander apparaat.`,"jc_Show/hide filter input":`Filterinvoer weergeven/verbergen`,"jc_Some data are not stored. Discard?":`Sommige gegevens worden niet opgeslagen. Weggooien?`,"jc_Successfully authorized. Token valid till %s and will be automatically renewed.":`Succesvol geautoriseerd. Token geldig tot %s en wordt automatisch verlengd.`,"jc_Successfully authorized. Token valid till %s but it can expire as the instance is not running.":`Succesvol geautoriseerd. Token geldig tot %s, maar kan verlopen omdat de instantie niet actief is.`,"jc_Suitable license not found in license manager":`Geschikte licentie niet gevonden in licentiebeheer`,"jc_System language":`Systeemtaal`,"jc_Take browser position":`Positie innemen vanuit de browser`,"jc_Take position from system settings":`Neem positie over van systeeminstellingen`,jc_Template:`Sjabloon`,"jc_Use all available let's encrypt certificates":`Gebruik alle beschikbare Let's Encrypt-certificaten`,"jc_Use system settings for position":`Gebruik systeeminstellingen voor positie`,"jc_Used system settings":`Gebruikte systeeminstellingen`,jc_ValidTill:`Geldig tot`,jc_Version:`Versie`,"jc_YAML editor":`YAML-editor`,jc_Yes:`Ja`,"jc_You can filter entries by entering here some text":`U kunt items filteren door hier wat tekst in te voeren`,"jc_[JsonConfig] Failed to open JSON File":`[JsonConfig] Het openen van het JSON-bestand is mislukt.`,"jc_[JsonConfig] Failed to parse JSON file":`[JsonConfig] Het parseren van het JSON-bestand is mislukt.`,jc___different__:`verschillend`,jc_false:`ONWAAR`,jc_locally:`plaatselijk`,jc_none:`geen`,jc_repeat:`herhalen`,jc_true:`WAAR`,"jc_via internet":`via internet`,sch_all:`allemaal`},fr:{"jc_A credential with this name already exists":`Un certificat portant ce nom existe déjà.`,"jc_A unique name is required":`Un nom unique est requis.`,"jc_Accept license":`Accepter la licence`,jc_Actions:`Actes`,"jc_Add credential":`Ajouter un identifiant`,"jc_Add row":`Ajouter une rangée`,"jc_All items are filtered out":`Tous les éléments sont filtrés`,jc_Append:`Ajouter`,"jc_Append %s entries or replace existing?":`Ajouter %s entrées ou remplacer l'existant\xA0?`,"jc_Append or replace?":`Ajouter ou remplacer\xA0?`,"jc_Are you sure?":`Êtes-vous sûr?`,jc_Cancel:`Annuler`,"jc_Cannot add items with set filter":`Impossible d'ajouter des éléments avec le filtre défini`,"jc_Cannot create credential: %s":`Impossible de créer les informations d'identification\xA0: %s`,"jc_Cannot decode license":`Impossible de décoder la licence`,"jc_Cannot determine position: System settings are empty and GPS detection is disabled in browser":`Impossible de déterminer la position\xA0: les paramètres système sont vides et la détection GPS est désactivée dans le navigateur`,'jc_Cannot display the custom component "%s"':`Impossible d'afficher le composant personnalisé « %s »`,"jc_Cannot read licenses: %s":`Impossible de lire les licences\xA0: %s`,"jc_Cannot retrieve options, as instance is offline":`Impossible de récupérer les options, car l'instance est hors ligne`,"jc_Cannot save configuration because of error in configuration":`Impossible d'enregistrer la configuration en raison d'une erreur de configuration.`,"jc_Cannot upload":`Impossible de télécharger`,"jc_Chained certificate":`Certificat chaîné`,jc_Checked:`Vérifié`,"jc_Click to see in full size":`Cliquez pour afficher en taille réelle`,"jc_Click to show":`Cliquez pour afficher`,"jc_Clone current row":`Cloner la ligne actuelle`,jc_Close:`Fermer`,jc_Commercial:`Commercial`,jc_Copied:`Copié`,"jc_Copied %s":`"%s" copié`,"jc_Copy content":`Copier le contenu`,jc_Create:`Créer`,"jc_Credential type":`Type de justificatif d'identité`,'jc_Custom component "%s" was not started':`Le composant personnalisé « %s » n'a pas été démarré.`,"jc_Define schedule":`Définir le calendrier`,jc_Delete:`Supprimer`,"jc_Delete current row":`Supprimer la ligne actuelle`,"jc_Disable/Enable translation":`Activer/Désactiver la traduction`,jc_Discard:`Jeter`,"jc_Do not use let's encrypt":`Ne pas utiliser let's encrypt`,"jc_Docker is not available":`Docker n'est pas disponible`,"jc_Docker is not installed or not running":`Docker n'est pas installé ou n'est pas en cours d'exécution`,"jc_Drop file here":`Déposer le fichier ici`,"jc_Enter the code from that page here":`Entrez le code de cette page ici`,jc_Error:`Erreur`,"jc_Expand/Collapse card":`Carte Développer/Réduire`,"jc_Export configuration section":`Exporter la section de configuration`,"jc_Export data to %s file":`Exporter les données vers le fichier %s`,"jc_Export setting to JSON file":`Paramètres d'exportation vers un fichier JSON`,"jc_Fallback custom certificates":`Certificats personnalisés de secours`,"jc_File is too big. Max %sk allowed. Try use SVG.":`Le fichier est trop volumineux. Max %sk autorisé. Essayez d'utiliser SVG.`,"jc_File will be deleted":`Le fichier sera supprimé`,"jc_Filter and Data Actions":`Actions sur les filtres et les données`,"jc_Get %s access":`Obtenir l'accès %s`,"jc_If the button above does not work, you can authorize manually this app by visiting this url":`Si le bouton ci-dessus ne fonctionne pas, vous pouvez autoriser manuellement cette application en visitant cette URL`,"jc_Import and add configuration section":`Importer et ajouter la section de configuration`,"jc_Import and replace configuration section":`Importer et remplacer la section de configuration`,"jc_Import data from %s file":`Importer des données à partir du fichier %s`,"jc_Import from %s":`Importer depuis %s`,"jc_Import settings from JSON file":`Importer les paramètres à partir d'un fichier JSON`,"jc_Instance %s is alive":`L'instance %s est active`,"jc_Instance %s is not alive":`L'instance %s n'est pas active`,"jc_Invalid JSON":`JSON invalide`,"jc_Invalid JSON file.":`Fichier JSON invalide.`,"jc_Invalid JSON format. Expected an array.":`Format JSON invalide. Tableau attendu.`,"jc_Invalid YAML":`YAML invalide`,"jc_It requires GUI API generation %s, but this admin provides generation %s. Please update the admin.":`Cela nécessite la génération de l'API GUI %s, mais cet administrateur fournit la génération %s. Veuillez mettre à jour l'administrateur.`,"jc_It was built for GUI API generation %s, but this admin provides generation %s. Please update the adapter.":`Il a été conçu pour la génération d'API GUI %s, mais cet administrateur fournit la génération %s. Veuillez mettre à jour l'adaptateur.`,"jc_It was probably built for an older admin version. Please update the adapter.":`Il a probablement été conçu pour une version d'administration plus ancienne. Veuillez mettre à jour l'adaptateur.`,"jc_JSON editor":`Éditeur JSON`,jc_Latitude:`Latitude`,"jc_License %s":`Licence %s`,"jc_License agreement":`Accord de licence`,"jc_License does not exist":`La licence n'existe pas`,"jc_License expired on %s":`Licence expirée le %s`,'jc_License for other product "%s"':`Licence pour un autre produit "%s"`,"jc_License is for version %s, but required version is %s":`La licence concerne la version %s, mais la version requise est %s`,"jc_License must be converted":`La licence doit être convertie en une version plus récente. Vous pouvez le faire dans votre profil iobroker.net.`,"jc_License not found in license manager. Do you want to read licenses from iobroker.net?":`Licence introuvable dans le gestionnaire de licences. Voulez-vous mettre à jour les licences depuis iobroker.net\xA0?`,"jc_Listen on all IPs":`Écoutez sur toutes les adresses IP`,jc_Longitude:`Longitude`,"jc_Move down":`Descendre`,"jc_Move up":`Déplacer vers le haut`,jc_Name:`Nom`,"jc_No one license found in license manager":`Aucune licence trouvée dans le gestionnaire de licences`,"jc_No response from admin":`Aucune réponse de l'administrateur`,'jc_Non-allowed duplicate entry "%s" in column "%s"':`Entrée en double non autorisée « %s » dans la colonne « %s »`,"jc_OAuth Client ID":`ID client OAuth`,"jc_OAuth Client secret":`Secret client OAuth`,jc_Ok:`D'accord`,"jc_Passwords are not equal!":`Les mots de passe ne sont pas égaux !`,"jc_Place your files here or click here to open the browse dialog":`Placez vos fichiers ici ou cliquez ici pour ouvrir la boîte de dialogue de navigation`,"jc_Please allow popups in your browser for this page!":`Veuillez autoriser les popups dans votre navigateur pour cette page\xA0!`,"jc_Please confirm":`Veuillez confirmer`,"jc_Please create license":`Veuillez créer une licence`,"jc_Please enter the license":`Veuillez entrer la licence`,"jc_Please fill in all required fields":`Veuillez remplir tous les champs obligatoires.`,"jc_Port could be used by %s":`Le port pourrait être utilisé par %s`,"jc_Port is already used by %s":`Le port est déjà utilisé par %s`,"jc_Press ENTER Key to add new item":`Appuyez sur la touche ENTRÉE pour ajouter un nouvel élément`,"jc_Private certificate":`Certificat privé`,jc_Product:`Produit`,"jc_Public certificate":`Certificat public`,"jc_Renew %s access":`Renouveler l'accès %s`,jc_Replace:`Remplacer`,"jc_Request data by instance":`Demander des données par instance`,"jc_Request timed out":`La demande a expiré`,jc_Result:`Résultat`,jc_Save:`sauver`,"jc_Save configuration?":`Enregistrer la configuration\xA0?`,"jc_Serial number (UUID)":`Numéro de série (UUID)`,'jc_Serial number (UUID) "%s" in license is for other device.':`Le numéro de série (UUID) "%s" dans la licence est pour un autre appareil.`,"jc_Show/hide filter input":`Afficher/masquer l'entrée de filtre`,"jc_Some data are not stored. Discard?":`Certaines données ne sont pas stockées. Jeter?`,"jc_Successfully authorized. Token valid till %s and will be automatically renewed.":`Autorisation réussie. Jeton valide jusqu'au %s et sera automatiquement renouvelé.`,"jc_Successfully authorized. Token valid till %s but it can expire as the instance is not running.":`Autorisation réussie. Jeton valide jusqu'à %s, mais il peut expirer car l'instance n'est pas en cours d'exécution.`,"jc_Suitable license not found in license manager":`Licence appropriée introuvable dans le gestionnaire de licences`,"jc_System language":`Langue du système`,"jc_Take browser position":`Prendre position depuis le navigateur`,"jc_Take position from system settings":`Prendre position à partir des paramètres système`,jc_Template:`Modèle`,"jc_Use all available let's encrypt certificates":`Utilisez tous les certificats let's encrypt disponibles`,"jc_Use system settings for position":`Utiliser les paramètres système pour la position`,"jc_Used system settings":`Paramètres système utilisés`,jc_ValidTill:`Valable jusqu'au`,jc_Version:`Version`,"jc_YAML editor":`Éditeur YAML`,jc_Yes:`Oui`,"jc_You can filter entries by entering here some text":`Vous pouvez filtrer les entrées en saisissant ici du texte`,"jc_[JsonConfig] Failed to open JSON File":`[JsonConfig] Impossible d'ouvrir le fichier JSON`,"jc_[JsonConfig] Failed to parse JSON file":`[JsonConfig] Échec de l'analyse du fichier JSON`,jc___different__:`différent`,jc_false:`FAUX`,jc_locally:`localement`,jc_none:`rien`,jc_repeat:`répéter`,jc_true:`VRAI`,"jc_via internet":`par Internet`,sch_all:`tout`},it:{"jc_A credential with this name already exists":`Esiste già una credenziale con questo nome`,"jc_A unique name is required":`È richiesto un nome univoco`,"jc_Accept license":`Accetta licenza`,jc_Actions:`Azioni`,"jc_Add credential":`Aggiungi credenziali`,"jc_Add row":`Aggiungi riga`,"jc_All items are filtered out":`Tutti gli elementi vengono filtrati`,jc_Append:`Aggiungere`,"jc_Append %s entries or replace existing?":`Aggiungi %s voci o sostituisci quelle esistenti?`,"jc_Append or replace?":`Aggiungere o sostituire?`,"jc_Are you sure?":`Sei sicuro?`,jc_Cancel:`Annulla`,"jc_Cannot add items with set filter":`Impossibile aggiungere elementi con il filtro impostato`,"jc_Cannot create credential: %s":`Impossibile creare le credenziali: %s`,"jc_Cannot decode license":`Impossibile decodificare la licenza`,"jc_Cannot determine position: System settings are empty and GPS detection is disabled in browser":`Impossibile determinare la posizione: le impostazioni di sistema sono vuote e il rilevamento GPS è disabilitato nel browser`,'jc_Cannot display the custom component "%s"':`Impossibile visualizzare il componente personalizzato "%s"`,"jc_Cannot read licenses: %s":`Impossibile leggere le licenze: %s`,"jc_Cannot retrieve options, as instance is offline":`Impossibile recuperare le opzioni, poiché l'istanza è offline`,"jc_Cannot save configuration because of error in configuration":`Impossibile salvare la configurazione a causa di un errore nella configurazione`,"jc_Cannot upload":`Impossibile caricare`,"jc_Chained certificate":`Certificato incatenato`,jc_Checked:`Controllato`,"jc_Click to see in full size":`Clicca per visualizzare l'immagine a dimensioni intere`,"jc_Click to show":`Clicca per mostrare`,"jc_Clone current row":`Clona riga corrente`,jc_Close:`Vicino`,jc_Commercial:`Commerciale`,jc_Copied:`Copiato`,"jc_Copied %s":`"%s" copiato`,"jc_Copy content":`Copia contenuto`,jc_Create:`Creare`,"jc_Credential type":`Tipo di credenziale`,'jc_Custom component "%s" was not started':`Il componente personalizzato "%s" non è stato avviato`,"jc_Define schedule":`Definisci programma`,jc_Delete:`Elimina`,"jc_Delete current row":`Elimina la riga corrente`,"jc_Disable/Enable translation":`Disabilita/Abilita la traduzione`,jc_Discard:`Scartare`,"jc_Do not use let's encrypt":`Non utilizzare crittografiamo`,"jc_Docker is not available":`Docker non è disponibile`,"jc_Docker is not installed or not running":`Docker non è installato o non è in esecuzione`,"jc_Drop file here":`Trascina il file qui`,"jc_Enter the code from that page here":`Inserisci qui il codice da quella pagina`,jc_Error:`Errore`,"jc_Expand/Collapse card":`Espandi/Comprimi scheda`,"jc_Export configuration section":`Sezione di configurazione dell'esportazione`,"jc_Export data to %s file":`Esporta i dati nel file %s`,"jc_Export setting to JSON file":`Esporta le impostazioni in un file JSON`,"jc_Fallback custom certificates":`Certificati personalizzati di fallback`,"jc_File is too big. Max %sk allowed. Try use SVG.":`Il file è troppo grande. Max %sk consentito. Prova a usare SVG.`,"jc_File will be deleted":`Il file verrà eliminato`,"jc_Filter and Data Actions":`Azioni sui filtri e sui dati`,"jc_Get %s access":`Ottieni l'accesso %s`,"jc_If the button above does not work, you can authorize manually this app by visiting this url":`Se il pulsante sopra non funziona, puoi autorizzare manualmente questa app visitando questo URL`,"jc_Import and add configuration section":`Importa e aggiungi la sezione di configurazione`,"jc_Import and replace configuration section":`Importa e sostituisci la sezione di configurazione`,"jc_Import data from %s file":`Importa i dati dal file %s`,"jc_Import from %s":`Importa da %s`,"jc_Import settings from JSON file":`Importa le impostazioni dal file JSON`,"jc_Instance %s is alive":`Il %s dell'istanza è vivo`,"jc_Instance %s is not alive":`Il TESTO dell'istanza non è vivo`,"jc_Invalid JSON":`JSON non valido`,"jc_Invalid JSON file.":`File JSON non valido.`,"jc_Invalid JSON format. Expected an array.":`Formato JSON non valido. È previsto un array.`,"jc_Invalid YAML":`YAML non valido`,"jc_It requires GUI API generation %s, but this admin provides generation %s. Please update the admin.":`Richiede la generazione dell'API GUI %s, ma questo amministratore fornisce la generazione %s. Si prega di aggiornare l'amministratore.`,"jc_It was built for GUI API generation %s, but this admin provides generation %s. Please update the adapter.":`È stato creato per la generazione dell'API GUI %s, ma questo amministratore fornisce la generazione %s. Si prega di aggiornare l'adattatore.`,"jc_It was probably built for an older admin version. Please update the adapter.":`Probabilmente è stato creato per una versione di amministrazione precedente. Si prega di aggiornare l'adattatore.`,"jc_JSON editor":`Editor JSON`,jc_Latitude:`Latitudine`,"jc_License %s":`Licenza %s`,"jc_License agreement":`Contratto di licenza`,"jc_License does not exist":`La licenza non esiste`,"jc_License expired on %s":`Licenza scaduta il %s`,'jc_License for other product "%s"':`Licenza per altro prodotto "%s"`,"jc_License is for version %s, but required version is %s":`La licenza è per la versione %s, ma la versione richiesta è %s`,"jc_License must be converted":`La licenza deve essere convertita in una versione più recente. Puoi farlo nel tuo profilo iobroker.net.`,"jc_License not found in license manager. Do you want to read licenses from iobroker.net?":`Licenza non trovata nel gestore delle licenze. Vuoi aggiornare le licenze da iobroker.net?`,"jc_Listen on all IPs":`Ascolta su tutti gli IP`,jc_Longitude:`Longitudine`,"jc_Move down":`Abbassati`,"jc_Move up":`Andare avanti`,jc_Name:`Nome`,"jc_No one license found in license manager":`Nessuna licenza trovata nel gestore delle licenze`,"jc_No response from admin":`Nessuna risposta dall'amministratore`,'jc_Non-allowed duplicate entry "%s" in column "%s"':`Voce duplicata non consentita "%s" nella colonna "%s"`,"jc_OAuth Client ID":`ID client OAuth`,"jc_OAuth Client secret":`Segreto del client OAuth`,jc_Ok:`Ok`,"jc_Passwords are not equal!":`Le password non sono uguali!`,"jc_Place your files here or click here to open the browse dialog":`Posiziona i file qui o fai clic qui per aprire la finestra di dialogo Sfoglia`,"jc_Please allow popups in your browser for this page!":`Si prega di abilitare i popup nel browser per questa pagina!`,"jc_Please confirm":`Si prega di confermare`,"jc_Please create license":`Si prega di creare la licenza`,"jc_Please enter the license":`Inserisci la licenza`,"jc_Please fill in all required fields":`Si prega di compilare tutti i campi obbligatori.`,"jc_Port could be used by %s":`La porta potrebbe essere utilizzata da %s`,"jc_Port is already used by %s":`La porta è già utilizzata da %s`,"jc_Press ENTER Key to add new item":`Premere il tasto INVIO per aggiungere un nuovo elemento`,"jc_Private certificate":`Certificato privato`,jc_Product:`Prodotto`,"jc_Public certificate":`Certificato pubblico`,"jc_Renew %s access":`Rinnova l'accesso %s`,jc_Replace:`Sostituire`,"jc_Request data by instance":`Richiedi dati per istanza`,"jc_Request timed out":`Tempo scaduto per la richiesta`,jc_Result:`Risultato`,jc_Save:`Salva`,"jc_Save configuration?":`Salvare la configurazione?`,"jc_Serial number (UUID)":`Numero di serie (UUID)`,'jc_Serial number (UUID) "%s" in license is for other device.':`Il numero di serie (UUID) "%s" nella licenza è per un altro dispositivo.`,"jc_Show/hide filter input":`Mostra/nascondi input filtro`,"jc_Some data are not stored. Discard?":`Alcuni dati non vengono memorizzati. Scartare?`,"jc_Successfully authorized. Token valid till %s and will be automatically renewed.":`Autorizzazione completata. Il token è valido fino al %s e verrà rinnovato automaticamente.`,"jc_Successfully authorized. Token valid till %s but it can expire as the instance is not running.":`Autorizzazione completata. Il token è valido fino al %s, ma potrebbe scadere perché l'istanza non è in esecuzione.`,"jc_Suitable license not found in license manager":`Licenza adatta non trovata nel gestore delle licenze`,"jc_System language":`Linguaggio di sistema`,"jc_Take browser position":`Prendi posizione dal browser`,"jc_Take position from system settings":`Prendi posizione dalle impostazioni di sistema`,jc_Template:`Modello`,"jc_Use all available let's encrypt certificates":`Usa tutti i certificati Let's Encrypt disponibili`,"jc_Use system settings for position":`Usa le impostazioni di sistema per la posizione`,"jc_Used system settings":`Impostazioni di sistema utilizzate`,jc_ValidTill:`Valido fino a`,jc_Version:`Versione`,"jc_YAML editor":`Editor YAML`,jc_Yes:`SÌ`,"jc_You can filter entries by entering here some text":`Puoi filtrare le voci inserendo qui del testo`,"jc_[JsonConfig] Failed to open JSON File":`[JsonConfig] Impossibile aprire il file JSON`,"jc_[JsonConfig] Failed to parse JSON file":`[JsonConfig] Impossibile analizzare il file JSON`,jc___different__:`diverso`,jc_false:`FALSO`,jc_locally:`localmente`,jc_none:`nessuna`,jc_repeat:`ripetere`,jc_true:`VERO`,"jc_via internet":`attraverso internet`,sch_all:`tutti`},es:{"jc_A credential with this name already exists":`Ya existe una credencial con ese nombre.`,"jc_A unique name is required":`Se requiere un nombre único.`,"jc_Accept license":`Aceptar licencia`,jc_Actions:`Comportamiento`,"jc_Add credential":`Agregar credencial`,"jc_Add row":`Añadir fila`,"jc_All items are filtered out":`Todos los elementos se filtran`,jc_Append:`Adjuntar`,"jc_Append %s entries or replace existing?":`¿Agregar %s entradas o reemplazar las existentes?`,"jc_Append or replace?":`¿Agregar o reemplazar?`,"jc_Are you sure?":`¿Estás seguro?`,jc_Cancel:`Cancelar`,"jc_Cannot add items with set filter":`No se pueden agregar elementos con el filtro establecido`,"jc_Cannot create credential: %s":`No se puede crear la credencial: %s`,"jc_Cannot decode license":`No se puede decodificar la licencia`,"jc_Cannot determine position: System settings are empty and GPS detection is disabled in browser":`No se puede determinar la posición: la configuración del sistema está vacía y la detección de GPS está deshabilitada en el navegador`,'jc_Cannot display the custom component "%s"':`No se puede mostrar el componente personalizado "%s"`,"jc_Cannot read licenses: %s":`No se pueden leer licencias: %s`,"jc_Cannot retrieve options, as instance is offline":`No se pueden recuperar las opciones, ya que la instancia está fuera de línea`,"jc_Cannot save configuration because of error in configuration":`No se puede guardar la configuración debido a un error en la configuración.`,"jc_Cannot upload":`no se puede cargar`,"jc_Chained certificate":`certificado encadenado`,jc_Checked:`Comprobado`,"jc_Click to see in full size":`Haz clic para ver en tamaño completo.`,"jc_Click to show":`Haga clic para mostrar`,"jc_Clone current row":`Clonar fila actual`,jc_Close:`Cerca`,jc_Commercial:`Comercial`,jc_Copied:`Copiado`,"jc_Copied %s":`Copiado "%s"`,"jc_Copy content":`Copiar contenido`,jc_Create:`Crear`,"jc_Credential type":`Tipo de credencial`,'jc_Custom component "%s" was not started':`El componente personalizado "%s" no se inició.`,"jc_Define schedule":`Definir horario`,jc_Delete:`Eliminar`,"jc_Delete current row":`Eliminar fila actual`,"jc_Disable/Enable translation":`Desactivar/Activar traducción`,jc_Discard:`Desechar`,"jc_Do not use let's encrypt":`No use vamos a cifrar`,"jc_Docker is not available":`Docker no está disponible`,"jc_Docker is not installed or not running":`Docker no está instalado o no se está ejecutando`,"jc_Drop file here":`Suelta el archivo aquí`,"jc_Enter the code from that page here":`Introduzca el código de esa página aquí`,jc_Error:`Error`,"jc_Expand/Collapse card":`Expandir/Contraer tarjeta`,"jc_Export configuration section":`Exportar sección de configuración`,"jc_Export data to %s file":`Exportar datos al archivo %s`,"jc_Export setting to JSON file":`Exportar configuración a un archivo JSON`,"jc_Fallback custom certificates":`Certificados personalizados alternativos`,"jc_File is too big. Max %sk allowed. Try use SVG.":`El archivo es demasiado grande. Máximo de %sk permitido. Intenta usar SVG.`,"jc_File will be deleted":`El archivo será eliminado`,"jc_Filter and Data Actions":`Acciones de filtrado y datos`,"jc_Get %s access":`Obtener %s acceso`,"jc_If the button above does not work, you can authorize manually this app by visiting this url":`Si el botón de arriba no funciona, puedes autorizar manualmente esta aplicación visitando esta URL`,"jc_Import and add configuration section":`Importar y agregar sección de configuración`,"jc_Import and replace configuration section":`Importar y reemplazar sección de configuración`,"jc_Import data from %s file":`Importar datos del archivo %s`,"jc_Import from %s":`Importar desde %s`,"jc_Import settings from JSON file":`Importar configuración desde un archivo JSON`,"jc_Instance %s is alive":`Instancia %s está vivo`,"jc_Instance %s is not alive":`Instancia %s no está vivo`,"jc_Invalid JSON":`JSON no válido`,"jc_Invalid JSON file.":`Archivo JSON inválido.`,"jc_Invalid JSON format. Expected an array.":`Formato JSON inválido. Se esperaba un array.`,"jc_Invalid YAML":`YAML no válido`,"jc_It requires GUI API generation %s, but this admin provides generation %s. Please update the admin.":`Requiere la generación de la API de la GUI %s, pero este administrador proporciona la generación %s. Por favor, actualice el administrador.`,"jc_It was built for GUI API generation %s, but this admin provides generation %s. Please update the adapter.":`Fue diseñado para la generación de API GUI %s, pero este administrador proporciona la generación %s. Por favor, actualice el adaptador.`,"jc_It was probably built for an older admin version. Please update the adapter.":`Probablemente se diseñó para una versión de administración anterior. Por favor, actualice el adaptador.`,"jc_JSON editor":`editor JSON`,jc_Latitude:`Latitud`,"jc_License %s":`Licencia %s`,"jc_License agreement":`Acuerdo de licencia`,"jc_License does not exist":`La licencia no existe`,"jc_License expired on %s":`La licencia venció el %s`,'jc_License for other product "%s"':`Licencia para otro producto "%s"`,"jc_License is for version %s, but required version is %s":`La licencia es para la versión %s, pero la versión requerida es %s.`,"jc_License must be converted":`La licencia debe convertirse a una versión más reciente. Puedes hacerlo en tu perfil de iobroker.net.`,"jc_License not found in license manager. Do you want to read licenses from iobroker.net?":`Licencia no encontrada en el administrador de licencias. ¿Quieres actualizar las licencias de iobroker.net?`,"jc_Listen on all IPs":`Escuche en todas las IP`,jc_Longitude:`Longitud`,"jc_Move down":`Mover hacia abajo`,"jc_Move up":`Ascender`,jc_Name:`Nombre`,"jc_No one license found in license manager":`No se encontró ninguna licencia en el administrador de licencias`,"jc_No response from admin":`No hay respuesta del administrador`,'jc_Non-allowed duplicate entry "%s" in column "%s"':`Entrada duplicada no permitida "%s" en la columna "%s"`,"jc_OAuth Client ID":`ID de cliente OAuth`,"jc_OAuth Client secret":`Secreto de cliente OAuth`,jc_Ok:`Okay`,"jc_Passwords are not equal!":`¡Las contraseñas no son iguales!`,"jc_Place your files here or click here to open the browse dialog":`Coloque sus archivos aquí o haga clic aquí para abrir el cuadro de diálogo de exploración`,"jc_Please allow popups in your browser for this page!":`¡Permita ventanas emergentes en su navegador para esta página!`,"jc_Please confirm":`Por favor confirmar`,"jc_Please create license":`Por favor cree una licencia`,"jc_Please enter the license":`Por favor ingrese la licencia`,"jc_Please fill in all required fields":`Por favor, rellene todos los campos obligatorios.`,"jc_Port could be used by %s":`El puerto podría ser utilizado por %s`,"jc_Port is already used by %s":`El puerto ya está en uso por %s`,"jc_Press ENTER Key to add new item":`Presione la tecla ENTER para agregar un nuevo elemento`,"jc_Private certificate":`certificado privado`,jc_Product:`Producto`,"jc_Public certificate":`Certificado público`,"jc_Renew %s access":`Renovar el acceso a %s`,jc_Replace:`Reemplazar`,"jc_Request data by instance":`Solicitar datos por instancia`,"jc_Request timed out":`Tiempo de espera agotado`,jc_Result:`Resultado`,jc_Save:`Salvar`,"jc_Save configuration?":`¿Guardar configuración?`,"jc_Serial number (UUID)":`Número de serie (UUID)`,'jc_Serial number (UUID) "%s" in license is for other device.':`El número de serie (UUID) "%s" en la licencia es para otro dispositivo.`,"jc_Show/hide filter input":`Mostrar/ocultar entrada de filtro`,"jc_Some data are not stored. Discard?":`Algunos datos no se almacenan. ¿Desechar?`,"jc_Successfully authorized. Token valid till %s and will be automatically renewed.":`Autorizado correctamente. El token es válido hasta el %s y se renovará automáticamente.`,"jc_Successfully authorized. Token valid till %s but it can expire as the instance is not running.":`Autorizado correctamente. El token es válido hasta %s, pero puede caducar porque la instancia no está en ejecución.`,"jc_Suitable license not found in license manager":`Licencia adecuada no encontrada en el administrador de licencias`,"jc_System language":`Lenguaje del sistema`,"jc_Take browser position":`Tomar posición desde el navegador`,"jc_Take position from system settings":`Tomar posición desde la configuración del sistema`,jc_Template:`Plantilla`,"jc_Use all available let's encrypt certificates":`Utilice todos los certificados let's encrypt disponibles`,"jc_Use system settings for position":`Usar la configuración del sistema para la posición`,"jc_Used system settings":`Configuraciones del sistema usadas`,jc_ValidTill:`Válida hasta`,jc_Version:`Versión`,"jc_YAML editor":`Editor YAML`,jc_Yes:`Sí`,"jc_You can filter entries by entering here some text":`Puede filtrar las entradas ingresando aquí algún texto`,"jc_[JsonConfig] Failed to open JSON File":`[JsonConfig] Error al abrir el archivo JSON`,"jc_[JsonConfig] Failed to parse JSON file":`[JsonConfig] Error al analizar el archivo JSON`,jc___different__:`diferente`,jc_false:`FALSO`,jc_locally:`en la zona`,jc_none:`ninguno`,jc_repeat:`repetir`,jc_true:`VERDADERO`,"jc_via internet":`vía Internet`,sch_all:`todas`},pl:{"jc_A credential with this name already exists":`Poświadczenie o tej nazwie już istnieje`,"jc_A unique name is required":`Wymagana jest unikalna nazwa`,"jc_Accept license":`Zaakceptuj licencję`,jc_Actions:`Akcje`,"jc_Add credential":`Dodaj poświadczenie`,"jc_Add row":`Dodaj wiersz`,"jc_All items are filtered out":`Wszystkie pozycje są odfiltrowane`,jc_Append:`Dodać`,"jc_Append %s entries or replace existing?":`Dołączyć wpisy %s czy zastąpić istniejące?`,"jc_Append or replace?":`Dołączyć czy zastąpić?`,"jc_Are you sure?":`Jesteś pewny?`,jc_Cancel:`Anuluj`,"jc_Cannot add items with set filter":`Nie można dodać elementów z ustawionym filtrem`,"jc_Cannot create credential: %s":`Nie można utworzyć poświadczeń: %s`,"jc_Cannot decode license":`Nie można zdekodować licencji`,"jc_Cannot determine position: System settings are empty and GPS detection is disabled in browser":`Nie można określić pozycji: ustawienia systemu są puste, a wykrywanie GPS jest wyłączone w przeglądarce`,'jc_Cannot display the custom component "%s"':`Nie można wyświetlić niestandardowego komponentu „%s”`,"jc_Cannot read licenses: %s":`Nie można odczytać licencji: %s`,"jc_Cannot retrieve options, as instance is offline":`Nie można pobrać opcji, ponieważ instancja jest w trybie offline`,"jc_Cannot save configuration because of error in configuration":`Nie można zapisać konfiguracji z powodu błędu w konfiguracji`,"jc_Cannot upload":`Nie można przesłać`,"jc_Chained certificate":`Certyfikat łańcuchowy`,jc_Checked:`Sprawdzony`,"jc_Click to see in full size":`Kliknij, aby zobaczyć w pełnym rozmiarze`,"jc_Click to show":`Kliknij, aby pokazać`,"jc_Clone current row":`Sklonuj bieżący wiersz`,jc_Close:`Blisko`,jc_Commercial:`Handlowy`,jc_Copied:`Skopiowano`,"jc_Copied %s":`Skopiowano "%s"`,"jc_Copy content":`Kopiuj zawartość`,jc_Create:`Stwórz`,"jc_Credential type":`Typ poświadczenia`,'jc_Custom component "%s" was not started':`Komponent niestandardowy „%s” nie został uruchomiony`,"jc_Define schedule":`Zdefiniuj harmonogram`,jc_Delete:`Usunąć`,"jc_Delete current row":`Usuń bieżący wiersz`,"jc_Disable/Enable translation":`Wyłącz/Włącz tłumaczenie`,jc_Discard:`Wyrzucać`,"jc_Do not use let's encrypt":`Nie używaj zaszyfrujmy`,"jc_Docker is not available":`Docker nie jest dostępny`,"jc_Docker is not installed or not running":`Docker nie jest zainstalowany lub nie działa`,"jc_Drop file here":`Upuść plik tutaj`,"jc_Enter the code from that page here":`Wpisz kod z tej strony tutaj`,jc_Error:`Błąd`,"jc_Expand/Collapse card":`Rozwiń/Zwiń kartę`,"jc_Export configuration section":`Sekcja konfiguracji eksportu`,"jc_Export data to %s file":`Eksportuj dane do pliku %s`,"jc_Export setting to JSON file":`Eksportuj ustawienia do pliku JSON`,"jc_Fallback custom certificates":`Niestandardowe certyfikaty zastępcze`,"jc_File is too big. Max %sk allowed. Try use SVG.":`Plik jest za duży. Maksymalna dozwolona liczba %sk. Spróbuj użyć SVG.`,"jc_File will be deleted":`Plik zostanie usunięty`,"jc_Filter and Data Actions":`Akcje filtrów i danych`,"jc_Get %s access":`Uzyskaj dostęp %s`,"jc_If the button above does not work, you can authorize manually this app by visiting this url":`Jeśli przycisk powyżej nie działa, możesz autoryzować tę aplikację ręcznie, odwiedzając ten adres URL`,"jc_Import and add configuration section":`Importuj i dodaj sekcję konfiguracji`,"jc_Import and replace configuration section":`Importuj i zastąp sekcję konfiguracji`,"jc_Import data from %s file":`Importuj dane z pliku %s`,"jc_Import from %s":`Importuj z %s`,"jc_Import settings from JSON file":`Importuj ustawienia z pliku JSON`,"jc_Instance %s is alive":`Instancja %s jest aktywna`,"jc_Instance %s is not alive":`Instancja TEKST nie jest aktywna`,"jc_Invalid JSON":`Nieprawidłowy JSON`,"jc_Invalid JSON file.":`Nieprawidłowy plik JSON.`,"jc_Invalid JSON format. Expected an array.":`Nieprawidłowy format JSON. Oczekiwano tablicy.`,"jc_Invalid YAML":`Nieprawidłowy plik YAML`,"jc_It requires GUI API generation %s, but this admin provides generation %s. Please update the admin.":`Wymaga generacji interfejsu API GUI %s, ale ten administrator zapewnia generację %s. Zaktualizuj administratora.`,"jc_It was built for GUI API generation %s, but this admin provides generation %s. Please update the adapter.":`Został stworzony do generowania interfejsu API GUI %s, ale ten administrator zapewnia generowanie %s. Proszę zaktualizować adapter.`,"jc_It was probably built for an older admin version. Please update the adapter.":`Prawdopodobnie został stworzony dla starszej wersji administratora. Proszę zaktualizować adapter.`,"jc_JSON editor":`Edytor JSON`,jc_Latitude:`Szerokość`,"jc_License %s":`Licencja %s`,"jc_License agreement":`Umowa licencyjna`,"jc_License does not exist":`Licencja nie istnieje`,"jc_License expired on %s":`Licencja wygasła w dniu %s`,'jc_License for other product "%s"':`Licencja na inny produkt „%s”`,"jc_License is for version %s, but required version is %s":`Licencja jest przeznaczona dla wersji %s, ale wymagana jest wersja %s`,"jc_License must be converted":`Licencja musi zostać przekonwertowana na nowszą wersję. Możesz to zrobić w swoim profilu iobroker.net.`,"jc_License not found in license manager. Do you want to read licenses from iobroker.net?":`Nie znaleziono licencji w menedżerze licencji. Chcesz zaktualizować licencje z iobroker.net?`,"jc_Listen on all IPs":`Słuchaj na wszystkich adresach IP`,jc_Longitude:`Długość geograficzna`,"jc_Move down":`Padnij`,"jc_Move up":`Podnieść`,jc_Name:`Nazwa`,"jc_No one license found in license manager":`Nie znaleziono licencji w menedżerze licencji`,"jc_No response from admin":`Brak odpowiedzi od administratora`,'jc_Non-allowed duplicate entry "%s" in column "%s"':`Niedozwolony duplikat wpisu „%s” w kolumnie „%s”`,"jc_OAuth Client ID":`Identyfikator klienta OAuth`,"jc_OAuth Client secret":`Tajny klucz klienta OAuth`,jc_Ok:`Dobrze`,"jc_Passwords are not equal!":`Hasła nie są równe!`,"jc_Place your files here or click here to open the browse dialog":`Umieść swoje pliki tutaj lub kliknij tutaj, aby otworzyć okno dialogowe przeglądania`,"jc_Please allow popups in your browser for this page!":`Proszę zezwolić na wyświetlanie wyskakujących okienek w przeglądarce dla tej strony!`,"jc_Please confirm":`Proszę potwierdzić`,"jc_Please create license":`Utwórz licencję`,"jc_Please enter the license":`Proszę wprowadzić licencję`,"jc_Please fill in all required fields":`Proszę wypełnić wszystkie wymagane pola`,"jc_Port could be used by %s":`Port może być używany przez %s`,"jc_Port is already used by %s":`Port jest już używany przez %s`,"jc_Press ENTER Key to add new item":`Naciśnij klawisz ENTER, aby dodać nowy element`,"jc_Private certificate":`Prywatny certyfikat`,jc_Product:`Produkt`,"jc_Public certificate":`Certyfikat publiczny`,"jc_Renew %s access":`Odnów dostęp %s`,jc_Replace:`Zastępować`,"jc_Request data by instance":`Żądanie danych według instancji`,"jc_Request timed out":`Upłynął limit czasu żądania`,jc_Result:`Wynik`,jc_Save:`Zapisać`,"jc_Save configuration?":`Zapisać konfigurację?`,"jc_Serial number (UUID)":`Numer seryjny (UUID)`,'jc_Serial number (UUID) "%s" in license is for other device.':`Numer seryjny (UUID) „%s” w licencji dotyczy innego urządzenia.`,"jc_Show/hide filter input":`Pokaż/ukryj wejście filtra`,"jc_Some data are not stored. Discard?":`Niektóre dane nie są przechowywane. Wyrzucać?`,"jc_Successfully authorized. Token valid till %s and will be automatically renewed.":`Pomyślnie autoryzowano. Token ważny do %s i zostanie automatycznie odnowiony.`,"jc_Successfully authorized. Token valid till %s but it can expire as the instance is not running.":`Pomyślnie autoryzowano. Token ważny do %s, ale może wygasnąć, ponieważ instancja nie jest uruchomiona.`,"jc_Suitable license not found in license manager":`Nie znaleziono odpowiedniej licencji w menedżerze licencji`,"jc_System language":`Język systemu`,"jc_Take browser position":`Zajmij pozycję z przeglądarki`,"jc_Take position from system settings":`Zajmij pozycję z ustawień systemowych`,jc_Template:`Szablon`,"jc_Use all available let's encrypt certificates":`Użyj wszystkich dostępnych certyfikatów Let's Encrypt`,"jc_Use system settings for position":`Użyj ustawień systemowych dla pozycji`,"jc_Used system settings":`Używane ustawienia systemowe`,jc_ValidTill:`Obowiązuje do`,jc_Version:`Wersja`,"jc_YAML editor":`Edytor YAML`,jc_Yes:`Tak`,"jc_You can filter entries by entering here some text":`Możesz filtrować wpisy, wpisując tutaj jakiś tekst`,"jc_[JsonConfig] Failed to open JSON File":`[JsonConfig] Nie udało się otworzyć pliku JSON`,"jc_[JsonConfig] Failed to parse JSON file":`[JsonConfig] Nie udało się przeanalizować pliku JSON`,jc___different__:`różne`,jc_false:`FAŁSZ`,jc_locally:`lokalnie`,jc_none:`Żaden`,jc_repeat:`powtarzać`,jc_true:`PRAWDA`,"jc_via internet":`przez internet`,sch_all:`wszystko`},uk:{"jc_A credential with this name already exists":`Облікові дані з таким ім'ям вже існують`,"jc_A unique name is required":`Потрібне унікальне ім'я`,"jc_Accept license":`Прийняти ліцензію`,jc_Actions:`Дії`,"jc_Add credential":`Додати облікові дані`,"jc_Add row":`Додати рядок`,"jc_All items are filtered out":`Усі елементи відфільтровано`,jc_Append:`Додайте`,"jc_Append %s entries or replace existing?":`Додати %s записів чи замінити наявні?`,"jc_Append or replace?":`Додати чи замінити?`,"jc_Are you sure?":`Ти впевнений?`,jc_Cancel:`Скасувати`,"jc_Cannot add items with set filter":`Неможливо додати елементи зі встановленим фільтром`,"jc_Cannot create credential: %s":`Не вдається створити облікові дані: %s`,"jc_Cannot decode license":`Неможливо розшифрувати ліцензію`,"jc_Cannot determine position: System settings are empty and GPS detection is disabled in browser":`Неможливо визначити положення: системні налаштування порожні, а визначення GPS вимкнено в браузері`,'jc_Cannot display the custom component "%s"':`Не вдається відобразити користувацький компонент "%s"`,"jc_Cannot read licenses: %s":`Неможливо прочитати ліцензії: %s`,"jc_Cannot retrieve options, as instance is offline":`Неможливо отримати параметри, оскільки екземпляр офлайн`,"jc_Cannot save configuration because of error in configuration":`Не вдалося зберегти конфігурацію через помилку в конфігурації`,"jc_Cannot upload":`Неможливо завантажити`,"jc_Chained certificate":`Прикутий сертифікат`,jc_Checked:`Перевірено`,"jc_Click to see in full size":`Натисніть, щоб побачити в повному розмірі`,"jc_Click to show":`Натисніть, щоб показати`,"jc_Clone current row":`Клонувати поточний рядок`,jc_Close:`Закрити`,jc_Commercial:`Комерційний`,jc_Copied:`Скопійовано`,"jc_Copied %s":`Скопійовано "%s"`,"jc_Copy content":`Скопіюйте вміст`,jc_Create:`Створити`,"jc_Credential type":`Тип облікових даних`,'jc_Custom component "%s" was not started':`Користувацький компонент "%s" не запущено`,"jc_Define schedule":`Визначити розклад`,jc_Delete:`Видалити`,"jc_Delete current row":`Видалити поточний рядок`,"jc_Disable/Enable translation":`Вимкнути/Увімкнути переклад`,jc_Discard:`Відкинути`,"jc_Do not use let's encrypt":`Не використовуйте let's encrypt`,"jc_Docker is not available":`Докер недоступний`,"jc_Docker is not installed or not running":`Docker не встановлено або не працює`,"jc_Drop file here":`Перетягніть файл сюди`,"jc_Enter the code from that page here":`Введіть тут код з цієї сторінки`,jc_Error:`Помилка`,"jc_Expand/Collapse card":`Розгорнути/Згорнути картку`,"jc_Export configuration section":`Розділ конфігурації експорту`,"jc_Export data to %s file":`Експортувати дані у файл %s`,"jc_Export setting to JSON file":`Експорт налаштувань у файл JSON`,"jc_Fallback custom certificates":`Запасні спеціальні сертифікати`,"jc_File is too big. Max %sk allowed. Try use SVG.":`Файл завеликий. Максимально дозволено %sk. Спробуйте використовувати SVG.`,"jc_File will be deleted":`Файл буде видалено`,"jc_Filter and Data Actions":`Фільтр і дії з даними`,"jc_Get %s access":`Отримайте доступ %s`,"jc_If the button above does not work, you can authorize manually this app by visiting this url":`Якщо кнопка вище не працює, ви можете авторизувати цю програму вручну, перейшовши за цим посиланням`,"jc_Import and add configuration section":`Розділ імпорту та додавання конфігурації`,"jc_Import and replace configuration section":`Розділ імпорту та заміни конфігурації`,"jc_Import data from %s file":`Імпортувати дані з файлу %s`,"jc_Import from %s":`Імпортувати з %s`,"jc_Import settings from JSON file":`Імпорт налаштувань з JSON-файлу`,"jc_Instance %s is alive":`Примірник %s живий`,"jc_Instance %s is not alive":`Примірник %s не живий`,"jc_Invalid JSON":`Недійсний JSON`,"jc_Invalid JSON file.":`Недійсний JSON-файл.`,"jc_Invalid JSON format. Expected an array.":`Недійсний формат JSON. Очікується масив.`,"jc_Invalid YAML":`Недійсний YAML`,"jc_It requires GUI API generation %s, but this admin provides generation %s. Please update the admin.":`Потрібна генерація API графічного інтерфейсу %s, але цей адміністратор надає генерацію %s. Будь ласка, оновіть адміністраторську версію.`,"jc_It was built for GUI API generation %s, but this admin provides generation %s. Please update the adapter.":`Його було створено для покоління GUI API %s, але цей адміністратор надає покоління %s. Будь ласка, оновіть адаптер.`,"jc_It was probably built for an older admin version. Please update the adapter.":`Ймовірно, його було створено для старішої версії адміністратора. Будь ласка, оновіть адаптер.`,"jc_JSON editor":`Редактор JSON`,jc_Latitude:`Широта`,"jc_License %s":`Ліцензія %s`,"jc_License agreement":`Ліцензійна угода`,"jc_License does not exist":`Ліцензії не існує`,"jc_License expired on %s":`Термін дії ліцензії закінчився %s`,'jc_License for other product "%s"':`Ліцензія на інший продукт "%s"`,"jc_License is for version %s, but required version is %s":`Ліцензія для версії %s, але потрібна версія %s`,"jc_License must be converted":`Ліцензію необхідно конвертувати до новішої версії. Ви можете зробити це у своєму профілі на iobroker.net.`,"jc_License not found in license manager. Do you want to read licenses from iobroker.net?":`Ліцензія не знайдена в менеджері ліцензій. Хочете оновити ліцензії з iobroker.net?`,"jc_Listen on all IPs":`Прослуховування на всіх IP`,jc_Longitude:`Довгота`,"jc_Move down":`Рухатися вниз`,"jc_Move up":`Рухатися вгору`,jc_Name:`Ім'я`,"jc_No one license found in license manager":`У менеджері ліцензій не знайдено жодної ліцензії`,"jc_No response from admin":`Немає відповіді від адміністратора`,'jc_Non-allowed duplicate entry "%s" in column "%s"':`Недозволений дублікат запису "%s" у стовпці "%s"`,"jc_OAuth Client ID":`Ідентифікатор клієнта OAuth`,"jc_OAuth Client secret":`Секрет клієнта OAuth`,jc_Ok:`В порядку`,"jc_Passwords are not equal!":`Паролі не бувають рівними!`,"jc_Place your files here or click here to open the browse dialog":`Розмістіть свої файли тут або натисніть тут, щоб відкрити діалогове вікно перегляду`,"jc_Please allow popups in your browser for this page!":`Будь ласка, дозвольте спливаючі вікна у вашому браузері для цієї сторінки!`,"jc_Please confirm":`Будь-ласка підтвердіть`,"jc_Please create license":`Будь ласка, створіть ліцензію`,"jc_Please enter the license":`Будь ласка, введіть ліцензію`,"jc_Please fill in all required fields":`Будь ласка, заповніть усі обов'язкові поля`,"jc_Port could be used by %s":`Порт може використовуватися %s`,"jc_Port is already used by %s":`Порт уже використовується %s`,"jc_Press ENTER Key to add new item":`Натисніть клавішу ENTER, щоб додати новий елемент`,"jc_Private certificate":`Приватний сертифікат`,jc_Product:`Продукт`,"jc_Public certificate":`Публічний сертифікат`,"jc_Renew %s access":`Поновити доступ %s`,jc_Replace:`Замінити`,"jc_Request data by instance":`Запит даних за екземпляром`,"jc_Request timed out":`Час запиту вичерпано`,jc_Result:`Результат`,jc_Save:`зберегти`,"jc_Save configuration?":`Зберегти конфігурацію?`,"jc_Serial number (UUID)":`Серійний номер (UUID)`,'jc_Serial number (UUID) "%s" in license is for other device.':`Серійний номер (UUID) "%s" у ліцензії призначений для іншого пристрою.`,"jc_Show/hide filter input":`Показати/сховати введення фільтра`,"jc_Some data are not stored. Discard?":`Деякі дані не зберігаються. Відкинути?`,"jc_Successfully authorized. Token valid till %s and will be automatically renewed.":`Авторизацію успішно пройшло. Токен дійсний до %s та буде автоматично поновлено.`,"jc_Successfully authorized. Token valid till %s but it can expire as the instance is not running.":`Авторизацію успішно виконано. Токен дійсний до %s, але його термін дії може закінчитися, оскільки екземпляр не запущено.`,"jc_Suitable license not found in license manager":`Відповідна ліцензія не знайдена в менеджері ліцензій`,"jc_System language":`Системна мова`,"jc_Take browser position":`Займіть позицію з браузера`,"jc_Take position from system settings":`Займіть позицію в налаштуваннях системи`,jc_Template:`Шаблон`,"jc_Use all available let's encrypt certificates":`Використовуйте всі доступні сертифікати let's encrypt`,"jc_Use system settings for position":`Використовуйте системні налаштування для позиції`,"jc_Used system settings":`Використані системні налаштування`,jc_ValidTill:`Дійсний до`,jc_Version:`Версія`,"jc_YAML editor":`Редактор YAML`,jc_Yes:`Так`,"jc_You can filter entries by entering here some text":`Ви можете фільтрувати записи, ввівши тут певний текст`,"jc_[JsonConfig] Failed to open JSON File":`[JsonConfig] Не вдалося відкрити JSON-файл`,"jc_[JsonConfig] Failed to parse JSON file":`[JsonConfig] Не вдалося проаналізувати JSON-файл`,jc___different__:`інший`,jc_false:`НЕПРАВДА`,jc_locally:`локально`,jc_none:`немає`,jc_repeat:`повторити`,jc_true:`ПРАВДА`,"jc_via internet":`через інтернет`,sch_all:`все`},"zh-cn":{"jc_A credential with this name already exists":`已存在同名凭证`,"jc_A unique name is required":`需要一个唯一的名称。`,"jc_Accept license":`接受许可`,jc_Actions:`操作`,"jc_Add credential":`添加凭据`,"jc_Add row":`添加行`,"jc_All items are filtered out":`所有项目都被过滤掉`,jc_Append:`附加`,"jc_Append %s entries or replace existing?":`追加 %s 条目还是替换现有条目?`,"jc_Append or replace?":`追加还是替换?`,"jc_Are you sure?":`你确定吗?`,jc_Cancel:`取消`,"jc_Cannot add items with set filter":`无法使用设置过滤器添加项目`,"jc_Cannot create credential: %s":`无法创建凭证:%s`,"jc_Cannot decode license":`无法解码许可证`,"jc_Cannot determine position: System settings are empty and GPS detection is disabled in browser":`无法确定位置:系统设置为空且浏览器中禁用了 GPS 检测`,'jc_Cannot display the custom component "%s"':`无法显示自定义组件“%s”`,"jc_Cannot read licenses: %s":`无法读取许可证:%s`,"jc_Cannot retrieve options, as instance is offline":`无法检索选项,因为实例处于脱机状态`,"jc_Cannot save configuration because of error in configuration":`由于配置错误,无法保存配置。`,"jc_Cannot upload":`无法上传`,"jc_Chained certificate":`链式证书`,jc_Checked:`勾选`,"jc_Click to see in full size":`点击查看完整尺寸`,"jc_Click to show":`点击显示`,"jc_Clone current row":`克隆当前行`,jc_Close:`关`,jc_Commercial:`商业的`,jc_Copied:`复制的`,"jc_Copied %s":`复制的"%s"`,"jc_Copy content":`复制内容`,jc_Create:`创建`,"jc_Credential type":`凭证类型`,'jc_Custom component "%s" was not started':`自定义组件“%s”未启动`,"jc_Define schedule":`定义时间表`,jc_Delete:`删除`,"jc_Delete current row":`删除当前行`,"jc_Disable/Enable translation":`禁用/启用翻译`,jc_Discard:`丢弃`,"jc_Do not use let's encrypt":`不要使用让我们加密`,"jc_Docker is not available":`Docker 不可用`,"jc_Docker is not installed or not running":`Docker 未安装或未运行`,"jc_Drop file here":`将档案放在这里`,"jc_Enter the code from that page here":`在此处输入该页面的代码`,jc_Error:`错误`,"jc_Expand/Collapse card":`展开/折叠卡`,"jc_Export configuration section":`导出配置部分`,"jc_Export data to %s file":`将数据导出到 %s 文件`,"jc_Export setting to JSON file":`将设置导出到 JSON 文件`,"jc_Fallback custom certificates":`后备自定义证书`,"jc_File is too big. Max %sk allowed. Try use SVG.":`文件太大。允许的最大字节%s数。尝试使用 SVG。`,"jc_File will be deleted":`文件将被删除`,"jc_Filter and Data Actions":`过滤和数据操作`,"jc_Get %s access":`获取 %s 访问权限`,"jc_If the button above does not work, you can authorize manually this app by visiting this url":`如果上面的按钮不起作用,您可以通过访问此网址手动授权此应用`,"jc_Import and add configuration section":`导入并添加配置部分`,"jc_Import and replace configuration section":`导入和替换配置部分`,"jc_Import data from %s file":`从 %s 文件导入数据`,"jc_Import from %s":`从 %s 导入`,"jc_Import settings from JSON file":`从 JSON 文件导入设置`,"jc_Instance %s is alive":`实例 %s 是活动的`,"jc_Instance %s is not alive":`实例 %s 不存在`,"jc_Invalid JSON":`JSON 无效`,"jc_Invalid JSON file.":`无效的JSON文件。`,"jc_Invalid JSON format. Expected an array.":`JSON格式无效。应为数组。`,"jc_Invalid YAML":`无效的 YAML`,"jc_It requires GUI API generation %s, but this admin provides generation %s. Please update the admin.":`它需要生成 GUI API,但此管理员提供的是生成功能。请更新管理员。`,"jc_It was built for GUI API generation %s, but this admin provides generation %s. Please update the adapter.":`它原本是为 GUI API 生成 %s 而设计的,但此管理员提供了生成 %s 的功能。请更新适配器。`,"jc_It was probably built for an older admin version. Please update the adapter.":`这可能是为旧版管理后台构建的。请更新适配器。`,"jc_JSON editor":`JSON 编辑器`,jc_Latitude:`纬度`,"jc_License %s":`许可证 %s`,"jc_License agreement":`许可协议`,"jc_License does not exist":`许可证不存在`,"jc_License expired on %s":`许可证已于 %s 过期`,'jc_License for other product "%s"':`其他产品“%s”的许可证`,"jc_License is for version %s, but required version is %s":`许可证适用于版本 %s,但所需版本为 %s。`,"jc_License must be converted":`许可证必须转换为更新版本。您可以在 iobroker.net 个人资料中执行此操作。`,"jc_License not found in license manager. Do you want to read licenses from iobroker.net?":`在许可证管理器中找不到许可证。您要从 iobroker.net 更新许可证吗?`,"jc_Listen on all IPs":`监听所有IP`,jc_Longitude:`经度`,"jc_Move down":`下移`,"jc_Move up":`提升`,jc_Name:`姓名`,"jc_No one license found in license manager":`许可证管理器中未找到任何许可证`,"jc_No response from admin":`管理员没有回应`,'jc_Non-allowed duplicate entry "%s" in column "%s"':`列“%s”中存在不允许的重复条目“%s”。`,"jc_OAuth Client ID":`OAuth客户端ID`,"jc_OAuth Client secret":`OAuth 客户端密钥`,jc_Ok:`好`,"jc_Passwords are not equal!":`密码不相等!`,"jc_Place your files here or click here to open the browse dialog":`将文件放在此处或单击此处打开浏览对话框`,"jc_Please allow popups in your browser for this page!":`请允许浏览器弹出此页面!`,"jc_Please confirm":`请确认`,"jc_Please create license":`请创建许可证`,"jc_Please enter the license":`请输入许可证`,"jc_Please fill in all required fields":`请填写所有必填字段`,"jc_Port could be used by %s":`%s 可以使用端口`,"jc_Port is already used by %s":`端口已被 %s 使用`,"jc_Press ENTER Key to add new item":`按 ENTER 键添加新项目`,"jc_Private certificate":`私有证书`,jc_Product:`产品`,"jc_Public certificate":`公共证书`,"jc_Renew %s access":`续订 %s 访问权限`,jc_Replace:`代替`,"jc_Request data by instance":`按实例请求数据`,"jc_Request timed out":`请求超时`,jc_Result:`结果`,jc_Save:`保存`,"jc_Save configuration?":`保存配置?`,"jc_Serial number (UUID)":`序列号 (UUID)`,'jc_Serial number (UUID) "%s" in license is for other device.':`许可证中的序列号 (UUID)“%s”用于其他设备。`,"jc_Show/hide filter input":`显示/隐藏过滤器输入`,"jc_Some data are not stored. Discard?":`部分数据未存储。丢弃?`,"jc_Successfully authorized. Token valid till %s and will be automatically renewed.":`授权成功。令牌有效期至 %s,并将自动续订。`,"jc_Successfully authorized. Token valid till %s but it can expire as the instance is not running.":`授权成功。令牌有效期至 %s,但由于实例未运行,令牌可能会过期。`,"jc_Suitable license not found in license manager":`在许可证管理器中找不到合适的许可证`,"jc_System language":`系统语言`,"jc_Take browser position":`从浏览器获取位置`,"jc_Take position from system settings":`从系统设置中获取位置`,jc_Template:`模板`,"jc_Use all available let's encrypt certificates":`使用所有可用的让我们加密证书`,"jc_Use system settings for position":`使用系统设置定位`,"jc_Used system settings":`使用的系统设置`,jc_ValidTill:`有效期至`,jc_Version:`版本`,"jc_YAML editor":`YAML 编辑器`,jc_Yes:`是的`,"jc_You can filter entries by entering here some text":`您可以通过在此处输入一些文本来过滤条目`,"jc_[JsonConfig] Failed to open JSON File":`[JsonConfig] 打开 JSON 文件失败`,"jc_[JsonConfig] Failed to parse JSON file":`[JsonConfig] 解析 JSON 文件失败`,jc___different__:`不同的`,jc_false:`错误的`,jc_locally:`本地`,jc_none:`没有任何`,jc_repeat:`重复`,jc_true:`真的`,"jc_via internet":`通过互联网`,sch_all:`全选`}});var Mw=3e3,Nw={root:{width:`100%`,height:`100%`,display:`flex`,flexDirection:`column`}},Pw=class e extends pn{constructor(e){super(e),J(this,`forceUpdateHandlers`,void 0),J(this,`errorTimeout`,null),J(this,`errorCached`,null),J(this,`oContext`,void 0),J(this,`cachedObjects`,{}),J(this,`onCommandRunning`,e=>this.setState({commandRunning:e})),J(this,`onAlive`,(e,t)=>{!!(t!=null&&t.val)!==this.state.alive&&this.setState({alive:!!(t!=null&&t.val)})}),J(this,`onChange`,(e,t,n,r)=>{if(this.props.onValueChange)this.props.onValueChange(e,t,!!r),n==null||n();else if(e&&this.props.onChange){let t={changed:JSON.stringify(e)!==this.state.originalData};this.setState(t,()=>{var i,a;(i=(a=this.props).onChange)==null||i.call(a,e,!!t.changed,!!r),n==null||n()})}else if(r){var i,a;(i=(a=this.props).onChange)==null||i.call(a,null,void 0,r)}}),J(this,`onError`,(e,t)=>{this.errorCached=this.errorCached||JSON.parse(JSON.stringify(this.state.errors));let n=this.errorCached;n&&e&&(t?n[e]=t:delete n[e]),this.errorTimeout&&=(clearTimeout(this.errorTimeout),null),JSON.stringify(n)===JSON.stringify(this.state.errors)?this.errorCached=null:this.errorTimeout=setTimeout(()=>this.setState({errors:this.errorCached||{}},()=>{this.errorTimeout=null,this.errorCached=null,this.props.onError(!!Object.keys(this.state.errors).length)}),50)}),J(this,`getCachedObject`,async e=>{if(this.cachedObjects[e]!==void 0)return this.cachedObjects[e];try{this.cachedObjects[e]=await this.props.socket.getObject(e)??null}catch(t){console.error(t),this.cachedObjects[e]=null}return this.cachedObjects[e]}),J(this,`changeLanguage`,()=>{this.forceUpdate()}),J(this,`forceAttrUpdate`,(e,t)=>{Array.isArray(e)?e.forEach(e=>this.forceUpdateHandlers[e]&&this.forceUpdateHandlers[e](t)):this.forceUpdateHandlers[e]&&this.forceUpdateHandlers[e](t)}),J(this,`registerOnForceUpdate`,(e,t)=>{t?this.forceUpdateHandlers[e]=t:this.forceUpdateHandlers[e]&&delete this.forceUpdateHandlers[e]}),this.state={originalData:JSON.stringify(this.props.data),changed:!1,errors:{},updateData:this.props.updateData||0,systemConfig:null,hostInfo:null,alive:!1,commandRunning:!1,schema:JSON.parse(JSON.stringify(this.props.schema))},this.forceUpdateHandlers={},this.buildDependencies(this.state.schema),this.readData().catch(e=>console.error(`Cannot read data: ${e}`))}static getDerivedStateFromProps(e,t){return e.updateData===t.updateData?null:{updateData:e.updateData,originalData:JSON.stringify(e.data),schema:JSON.parse(JSON.stringify(e.schema))}}static async loadI18n(e,t,n){if(t===!0||t&&typeof t==`string`){let r=Y.getLanguage(),i=typeof t==`string`?t:`i18n`,a=await e.fileExists(`${n}.admin`,`${i}/${r}.json`),o;if(a?o=`${i}/${r}.json`:(a=await e.fileExists(`${n}.admin`,`${i}/${r}/translations.json`),a?o=`${i}/${r}/translations.json`:r!==`en`&&(a=await e.fileExists(`${n}.admin`,`${i}/en.json`),a?o=`${i}/en.json`:(a=await e.fileExists(`${n}.admin`,`${i}/en/translations.json`),a&&(o=`${i}/en/translations.json`)))),o){let t=await e.readFile(`${n}.admin`,o),i;i=t.file===void 0?t:t.file;try{let e=JSON.parse(i);Y.extendTranslations(e,r)}catch(e){return console.error(`Cannot parse language file "${n}.admin/${o}: ${e}`),``}return o}return console.warn(`Cannot find i18n for ${n} / ${o}`),``}return t&&typeof t==`object`&&Y.extendTranslations(t),``}async readData(){let e;try{e=this.props.socket.getCompactSystemConfig?await this.props.socket.getCompactSystemConfig():await this.getCachedObject(`system.config`)||void 0;let t=await this.props.socket.getState(`system.adapter.${this.props.adapterName}.${this.props.instance}.alive`);this.setState({systemConfig:(e==null?void 0:e.common)||{},hostInfo:await this.readHostInfo(),alive:!!(t!=null&&t.val)},()=>{this.updateContext(!0),this.props.custom||this.props.socket.subscribeState(`system.adapter.${this.props.adapterName}.${this.props.instance}.alive`,this.onAlive)})}catch(e){console.error(`Cannot read system config: ${e}`)}}async readHostInfo(){var t,n,r,i,a,o,s,c;let l=((t=this.props.common)==null?void 0:t.host)||((n=this.props.instanceObj)==null||(n=n.common)==null?void 0:n.host),u=l?await this.getCachedObject(`system.host.${l}`):null,d={id:l||``,os:(u==null||(r=u.native)==null||(r=r.os)==null?void 0:r.platform)||``,osType:(u==null||(i=u.native)==null||(i=i.os)==null?void 0:i.type)||``,arch:(u==null||(a=u.native)==null||(a=a.os)==null?void 0:a.arch)||``,release:(u==null||(o=u.native)==null||(o=o.os)==null?void 0:o.release)||``,nodeVersion:(u==null||(s=u.native)==null||(s=s.process)==null||(s=s.versions)==null?void 0:s.node)||``,controllerVersion:(u==null||(c=u.common)==null?void 0:c.installedVersion)||``};if(l&&e.usesDocker(this.props.schema))try{let e=await this.props.socket.getState(`system.host.${l}.alive`);if((e==null?void 0:e.val)!==!1){let e=await this.props.socket.getHostInfoShort(l,!1,Mw);if(e){var f,p;d.docker=((f=e.dockerInformation)==null?void 0:f.isDocker)??e.Platform===`docker`,(p=e.dockerInformation)!=null&&p.isOfficial&&(d.dockerVersion=e.dockerInformation.officialVersion)}}}catch(e){console.warn(`Cannot read the docker information of ${l}: ${e}`)}return d}static usesDocker(e){let t=JSON.stringify(e);return t.includes(`"docker":`)||t.includes(`_host.docker`)}flatten(e,t){return t||={},e.items&&Object.keys(e.items).forEach(n=>{t[n]=e.items[n],this.flatten(e.items[n],t)}),t}buildDependencies(e){let t=this.flatten(e);Object.keys(t).forEach(e=>{var n,r,i,a,o;if((n=t[e].confirm)!=null&&n.alsoDependsOn){var s;(s=t[e].confirm)==null||s.alsoDependsOn.forEach(n=>{if(!t[n])console.error(`[JsonConfigComponent] Attribute ${n} does not exist!`),n.startsWith(`data.`)&&console.warn(`[JsonConfigComponent] please use "${n.replace(/^data\./,``)}" instead of "${n}"`);else{t[n].confirmDependsOn=t[n].confirmDependsOn||[];let r={...t[e],attr:e};r.confirm&&(r.confirm.cancel=`Undo`),t[n].confirmDependsOn.push(r)}})}if((r=t[e].onChange)!=null&&r.alsoDependsOn){var c;(c=t[e].onChange)==null||c.alsoDependsOn.forEach(n=>{if(!t[n])console.error(`[JsonConfigComponent] Attribute ${n} does not exist!`),n.startsWith(`data.`)&&console.warn(`[JsonConfigComponent] please use "${n.replace(/^data\./,``)}" instead of "${n}"`);else{t[n].onChangeDependsOn=t[n].onChangeDependsOn||[];let r={...t[e],attr:e};t[n].onChangeDependsOn.push(r)}})}if((i=t[e].hidden)!=null&&i.alsoDependsOn){var l;(l=t[e].hidden)==null||l.alsoDependsOn.forEach(n=>{if(!t[n])console.error(`[JsonConfigComponent] Attribute ${n} does not exist!`),n.startsWith(`data.`)&&console.warn(`[JsonConfigComponent] please use "${n.replace(/^data\./,``)}" instead of "${n}"`);else{t[n].hiddenDependsOn=t[n].hiddenDependsOn||[];let r={...t[e],attr:e};t[n].hiddenDependsOn.push(r)}})}if((a=t[e].label)!=null&&a.alsoDependsOn){var u;(u=t[e].label)==null||u.alsoDependsOn.forEach(n=>{if(!t[n])console.error(`[JsonConfigComponent] Attribute ${n} does not exist!`),n.startsWith(`data.`)&&console.warn(`[JsonConfigComponent] please use "${n.replace(/^data\./,``)}" instead of "${n}"`);else{t[n].labelDependsOn=t[n].labelDependsOn||[];let r={...t[e],attr:e};t[n].labelDependsOn.push(r)}})}if((o=t[e].help)!=null&&o.alsoDependsOn){var d;(d=t[e].help)==null||d.alsoDependsOn.forEach(n=>{if(!t[n])console.error(`[JsonConfigComponent] Attribute ${n} does not exist!`),n.startsWith(`data.`)&&console.warn(`[JsonConfigComponent] please use "${n.replace(/^data\./,``)}" instead of "${n}"`);else{t[n].helpDependsOn=t[n].helpDependsOn||[];let r={...t[e],attr:e};t[n].helpDependsOn.push(r)}})}})}updateContext(e){this.oContext={DeviceManager:this.props.DeviceManager,adapterName:this.props.adapterName,changeLanguage:this.changeLanguage,common:this.props.common,customs:this.props.customs,dateFormat:this.props.dateFormat,embedded:this.props.embedded,forceUpdate:this.forceAttrUpdate,imagePrefix:this.props.imagePrefix,instance:this.props.instance,instanceObj:this.props.instanceObj,isFloatComma:this.props.isFloatComma,multiEdit:this.props.multiEdit,onBackEndCommand:this.props.onBackEndCommand,onCommandRunning:this.onCommandRunning,onValueChange:this.props.onValueChange,registerOnForceUpdate:this.registerOnForceUpdate,socket:this.props.socket,systemConfig:this.state.systemConfig,theme:this.props.theme,themeType:this.props.themeType,_themeName:this.props.themeName,updateData:this.state.updateData,getCachedObject:this.getCachedObject,hostInfo:this.state.hostInfo||void 0},e&&this.forceUpdate()}renderItem(e){return this.oContext?e.type===`tabs`?G.createElement(jw,{withoutSaveButtons:this.props.withoutSaveButtons,oContext:this.oContext,alive:this.state.alive,changed:this.state.changed,commandRunning:this.state.commandRunning,common:this.props.common,custom:this.props.custom,customObj:this.props.customObj,data:this.props.data,onChange:this.onChange,onError:(e,t)=>this.onError(e,t),originalData:JSON.parse(this.state.originalData),root:!0,schema:e,expertMode:this.props.expertMode,themeName:this.props.themeName,customComponents:this.props.customComponents}):e.type===`panel`||!e.type?G.createElement(kw,{withoutSaveButtons:this.props.withoutSaveButtons,oContext:this.oContext,alive:this.state.alive,changed:this.state.changed,commandRunning:this.state.commandRunning,common:this.props.common,custom:this.props.custom,customObj:this.props.customObj,data:this.props.data,expertMode:this.props.expertMode,index:1e3,isParentTab:!this.props.embedded&&!this.props.withoutSaveButtons,onChange:this.onChange,onError:(e,t)=>this.onError(e,t),originalData:JSON.parse(this.state.originalData),root:!0,schema:e,themeName:this.props.themeName,customComponents:this.props.customComponents}):(console.error(`Unknown item type in root: ${JSON.stringify(e)}`),null):null}render(){return!this.state.systemConfig||!this.oContext?G.createElement(u,null):(this.oContext._themeName!==this.props.themeName&&(this.oContext._themeName=this.props.themeName,setTimeout(()=>this.updateContext(!0),0)),G.createElement(`div`,{style:{...!this.props.embedded||this.props.withoutSaveButtons?Nw.root:void 0,...this.props.style,...this.state.schema.style}},this.renderItem(this.state.schema)))}};K();var Fw={root:{width:`100%`,height:`100%`,overflow:`hidden`,position:`relative`},scroll:{height:`calc(100% - 48px)`,overflowY:`auto`},exportImportButtons:{position:`absolute`,top:5,right:0,zIndex:3},button:{marginRight:`5px`},tooltip:{pointerEvents:`none`}};function Iw(e,t){let n=``;for(let r=0;r<t.length;r++)n+=String.fromCharCode(e[r%e.length].charCodeAt(0)^t.charCodeAt(r));return n}function Lw(e,t){let n=``;for(let r=0;r<t.length;r++)n+=String.fromCharCode(e[r%e.length].charCodeAt(0)^t.charCodeAt(r));return n}function Rw(e,t){if(typeof t!=`string`)return t;if(!t.startsWith(`$/aes-192-cbc:`)||!/^[0-9a-f]{48}$/.test(e))return Iw(e,t);let n=t.split(`:`,3),r=window.CryptoJS.enc.Hex.parse(e),i=window.CryptoJS.enc.Hex.parse(n[1]),a=window.CryptoJS.lib.CipherParams.create({ciphertext:window.CryptoJS.enc.Hex.parse(n[2])}),o=window.CryptoJS.AES.decrypt(a,r,{iv:i});return window.CryptoJS.enc.Utf8.stringify(o)}function zw(e,t,n){if(typeof t!=`string`)return t;if(!/^[0-9a-f]{48}$/.test(e))return Lw(e,t);let r;r=n?window.CryptoJS.enc.Hex.parse(n):window.CryptoJS.lib.WordArray.random(16);let i=window.CryptoJS.enc.Hex.parse(e),a=window.CryptoJS.AES.encrypt(t,i,{iv:r}).ciphertext;return`$/aes-192-cbc:${window.CryptoJS.enc.Hex.stringify(r)}:${a}`}function Bw(e,t){var n;return!t||!document.getElementById(t)?new Promise(n=>{let r=document.createElement(`script`);r.setAttribute(`id`,t),r.onload=n,r.src=e,document.getElementsByTagName(`head`)[0].appendChild(r)}):(n=document.getElementById(t))==null?void 0:n.onload}var Vw=class extends fn{constructor(e){super(e),J(this,`fileSubscribed`,[]),J(this,`fileLangSubscribed`,``),J(this,`secret`,void 0),J(this,`handleFileSelect`,e=>{let t=e.target.files[0];if(t){let e=new FileReader;e.onload=e=>{if(!e.target)return;let t=e.target.result;try{let e=JSON.parse(t);this.setState({data:e,changed:JSON.stringify(e)!==JSON.stringify(this.state.originalData)})}catch{window.alert(Y.t(`jc_[JsonConfig] Failed to parse JSON file`))}},e.readAsText(t)}else window.alert(Y.t(`jc_[JsonConfig] Failed to open JSON File`))}),J(this,`onFileChange`,async(e,t,n)=>{if(e===`${this.props.adapterName}.admin`&&n){if(t===this.fileLangSubscribed)try{var r;await Pw.loadI18n(this.props.socket,(r=this.state.schema)==null?void 0:r.i18n,this.props.adapterName),this.setState({hash:`${this.state.hash}1`})}catch{}else if(this.fileSubscribed.includes(t))try{let e=await this.getConfigFile(this.fileSubscribed[0]);this.setState({schema:e||void 0,hash:(0,_s.default)(JSON.stringify(e)).toString()})}catch{}}}),this.state={updateData:0,changed:!1,confirmDialog:!1,theme:k(e.themeName),saveConfigDialog:!1,hash:`_`},this.secret=e.secret||``,this.getInstanceObject().then(e=>this.getConfigFile().then(t=>Pw.loadI18n(this.props.socket,t==null?void 0:t.i18n,this.props.adapterName).then(n=>{n&&(this.fileLangSubscribed||(this.fileLangSubscribed=n,this.props.socket.subscribeFiles(`${this.props.adapterName}.admin`,this.fileLangSubscribed,this.onFileChange))),e?this.setState({schema:t||void 0,data:e.native,common:e.common,hash:(0,_s.default)(JSON.stringify(t)).toString()}):window.alert(`Instance system.adapter.${this.props.adapterName}.${this.props.instance} not found!`)})))}componentWillUnmount(){super.componentWillUnmount(),this.fileSubscribed.length&&(this.props.socket.unsubscribeFiles(`${this.props.adapterName}.admin`,this.fileSubscribed,this.onFileChange),this.fileSubscribed=[]),this.fileLangSubscribed&&=(this.props.socket.unsubscribeFiles(`${this.props.adapterName}.admin`,this.fileLangSubscribed,this.onFileChange),``)}getExportImportButtons(){return G.createElement(`div`,{style:Fw.exportImportButtons},G.createElement(c,{title:this.props.t(`jc_Import settings from JSON file`),slotProps:{popper:{sx:Fw.tooltip}}},G.createElement(Hn,{size:`small`,sx:{"&.MuiFab-root":Fw.button},onClick:()=>{let e=document.createElement(`input`);e.setAttribute(`type`,`file`),e.setAttribute(`id`,`files`),e.setAttribute(`opacity`,0),e.addEventListener(`change`,e=>this.handleFileSelect(e),!1),e.click()}},G.createElement(kt,null))),G.createElement(c,{title:this.props.t(`jc_Export setting to JSON file`),slotProps:{popper:{sx:Fw.tooltip}}},G.createElement(Hn,{size:`small`,sx:{"&.MuiFab-root":Fw.button},onClick:()=>{this.state.data&&wn.generateFile(`${this.props.adapterName}.${this.props.instance}.json`,this.state.data)}},G.createElement(kt,{style:{transform:`rotate(180deg)`}}))))}async getInstanceObject(){try{let t=await this.props.socket.getObject(`system.adapter.${this.props.adapterName}.${this.props.instance}`);if(Array.isArray(t==null?void 0:t.encryptedNative)){var e;if(!this.secret){let e=await this.props.socket.getSystemConfig();await Bw(`../../lib/js/crypto-js/crypto-js.js`,`crypto-js`),this.secret=e.native.secret}return(e=t.encryptedNative)==null||e.forEach(e=>{t.native[e]&&(t.native[e]=Rw(this.secret,t.native[e]))}),t}return t||null}catch(e){window.alert(`[JsonConfig] Cannot read instance object: ${e}`)}return null}renderDialogConfirm(){return this.state.confirmDialog?G.createElement(Nn,{title:Y.t(`jc_Please confirm`),text:Y.t(`jc_Some data are not stored. Discard?`),ok:Y.t(`jc_Discard`),cancel:Y.t(`jc_Cancel`),onClose:e=>this.setState({confirmDialog:!1},()=>e&&fn.doNavigate(null))}):null}async scanForInclude(e,t){if(typeof e[`#include`]==`string`){let n=await this._getConfigFile(e[`#include`],[...t]);return delete e[`#include`],n&&(e={...e,...n}),e}let n=Object.keys(e);for(let r=0;r<n.length;r++)e[n[r]]&&typeof e[n[r]]==`object`&&(e[n[r]]=await this.scanForInclude(e[n[r]],t));return e}async getConfigFile(e){return this._getConfigFile(e)}async _getConfigFile(e,t){if(e||=`jsonConfig.json5`,t||=[],t.includes(e))return window.alert(`[JsonConfig] Circular reference in file: ${e} => ${t.join(` => `)}`),null;t.push(e);try{await this.props.socket.fileExists(`${this.props.adapterName}.admin`,e)||(e=`jsonConfig.json`);let n=await this.props.socket.readFile(`${this.props.adapterName}.admin`,e),r=``,i=``;if(n.file!==void 0&&(i=n.file),typeof i==`string`)r=i;else if(i.type===`Buffer`){let e=``,t=new Uint8Array(i.data),n=t.byteLength;for(let r=0;r<n;r++)e+=String.fromCharCode(t[r]);r=e}this.fileSubscribed.includes(e)||(this.fileSubscribed.push(e),await this.props.socket.subscribeFiles(`${this.props.adapterName}.admin`,e,this.onFileChange));try{return await this.scanForInclude(gs.default.parse(r),t)}catch(e){window.alert(`[JsonConfig] Cannot parse json5 config!`),console.log(e)}}catch(t){this.state.schema||window.alert(`[JsonConfig] Cannot read file "${e}: ${t}`)}return null}renderSaveConfigDialog(){return this.state.saveConfigDialog?G.createElement(Nn,{title:Y.t(`jc_Please confirm`),text:Y.t(`jc_Save configuration?`),ok:Y.t(`jc_Save`),cancel:Y.t(`jc_Cancel`),onClose:e=>this.setState({saveConfigDialog:!1},()=>e&&this.onSave(!0))}):null}findAttr(e,t){if(t||=this.state.schema,t!=null&&t.items){if(e in t.items)return t.items[e];for(let n of Object.values(t.items)){let t=this.findAttr(e,n);if(t)return t}}return null}postProcessing(e,t,n){if(n||=this.state.schema,!e){console.error(`Data is empty in postProcessing: ${t}, ${JSON.stringify(n)}`);return}let r=e[t];if(n.items){if(n.type===`table`){let e=r;if(!Array.isArray(e))return;for(let t of e)if(n.items)for(let e of n.items)e.attr&&this.postProcessing(t,e.attr,e)}else for(let[t,r]of Object.entries(n.items)){if(r.type===`panel`||r.type===`tabs`||r.type===`accordion`)return;this.postProcessing(e,t,r)}}else if(t&&typeof r==`string`){if(n.type===`text`)n.trim!==!1&&(e[t]=r.trim());else if(n.type===`ip`)e[t]=r.trim();else if(n.type===`number`){let i=parseFloat(r.toString().replace(`,`,`.`));e[t]=n.min!==void 0&&i<n.min?n.min:n.max!==void 0&&i>n.max?n.max:i}else if(n.type===`port`){let i=parseInt(r.toString(),10);n.min!==void 0&&i<n.min?e[t]=n.min:n.max!==void 0&&i>n.max&&(e[t]=n.max),e[t]=e[t]!==0&&i<20?20:i>65535?65535:i}else n.type===`checkbox`&&(e[t]=e[t]===!0||e[t]===`true`||e[t]===`on`||e[t]===1||e[t]===`1`)}}async onSave(e,t){if(e){let e=await this.getInstanceObject();if(!e){console.error(`Something went wrong: may be no connection?`),window.alert(`Something went wrong: may be no connection?`);return}if(!this.state.data||!this.state.schema)return;let n={};for(let t of Object.keys(this.state.data)){let r=this.findAttr(t);(!r||!r.doNotSave||r.type===`state`)&&!t.startsWith(`_`)?Z.setValue(e.native,t,this.state.data[t]):(Z.setValue(e.native,t,null),n[t]=this.state.data[t])}try{let t=JSON.parse(JSON.stringify(e));if(Array.isArray(t.encryptedNative)){await Bw(`../../lib/js/crypto-js/crypto-js.js`,`crypto-js`);for(let e of t.encryptedNative)t.native[e]&&(t.native[e]=zw(this.secret,t.native[e]))}await this.props.socket.setObject(t._id,t)}catch(e){window.alert(`[JsonConfig] Cannot set object: ${e}`)}let r={...e.native,...n};console.log(r),this.setState({changed:!1,data:r,updateData:this.state.updateData+1,originalData:r},()=>t&&fn.doNavigate(null))}else this.state.changed?this.setState({confirmDialog:!0}):fn.doNavigate(null)}componentDidUpdate(e,t){t.changed!==this.state.changed&&this.props.configStored(!this.state.changed)}async componentDidMount(){let e=`${window.location.protocol}//${window.location.host}${window.location.pathname}validate_config/${this.props.adapterName}`;console.log(`fetch ${e}`),await fetch(e)}render(){return!this.state.data||!this.state.schema?G.createElement(u,null):G.createElement(`div`,{style:Fw.root},this.renderDialogConfirm(),this.getExportImportButtons(),this.renderSaveConfigDialog(),G.createElement(Pw,{key:this.state.hash,style:Fw.scroll,socket:this.props.socket,themeName:this.props.themeName,themeType:this.props.themeType,adapterName:this.props.adapterName,instance:this.props.instance,isFloatComma:this.props.isFloatComma,dateFormat:this.props.dateFormat,schema:this.state.schema,common:this.state.common,expertMode:this.props.expertMode,data:this.state.data,updateData:this.state.updateData,onError:e=>this.setState({error:e}),onChange:(e,t,n)=>{n&&this.state.error&&(window.alert(Y.t(`jc_Cannot save configuration because of error in configuration`)),n=!1),n&&!this.state.changed&&!t&&(n=!1),e?this.setState({data:e,changed:!!t,saveConfigDialog:n}):n!==void 0&&this.setState({saveConfigDialog:n})},DeviceManager:this.props.DeviceManager,theme:this.state.theme,customComponents:this.props.customComponents,imagePrefix:`.`}),G.createElement(cn,{isIFrame:!1,dense:!0,paddingLeft:0,newReact:!0,theme:this.state.theme,noTextOnButtons:this.props.width===`xs`||this.props.width===`sm`||this.props.width===`md`,changed:!!(this.state.error||this.state.changed),error:!!this.state.error,onSave:e=>this.onSave(!0,e),onClose:()=>this.onSave(!1)}))}},Hw=n({ConfigGeneric:()=>Z,ConfigPanel:()=>kw,GUI_API_GENERATION:()=>2,JsonConfig:()=>Vw,JsonConfigComponent:()=>Pw,checkGuiApiCompatibility:()=>uc}),Uw=n({ConfigGeneric:()=>Xw,ConfigPanel:()=>Yw,GUI_API_GENERATION:()=>Gw,JsonConfig:()=>qw,JsonConfigComponent:()=>Jw,checkGuiApiCompatibility:()=>Kw,default:()=>Zw}),Ww=Hw,Gw=Ww.GUI_API_GENERATION,Kw=Ww.checkGuiApiCompatibility,qw=Ww.JsonConfig,Jw=Ww.JsonConfigComponent,Yw=Ww.ConfigPanel,Xw=Ww.ConfigGeneric,Zw=Reflect.get(Hw,`default`)??Hw,Qw=`__mf_module_cache__`;globalThis[Qw]||={share:{},remote:{}},globalThis[Qw].share||={},globalThis[Qw].remote||={};var $w=globalThis[Qw];for(let e of Object.keys($w.share))if(e.startsWith(`default:`)){let t=e.slice(8);$w.share[t]===void 0&&($w.share[t]=$w.share[e])}else if(!e.includes(`:`)){let t=`default:`+e;$w.share[t]===void 0&&($w.share[t]=$w.share[e])}var eT=(e,t)=>{let n=e[t.canonical];if(n!==void 0)return n;let r=t.aliases||[];for(let n of r){if(!Object.prototype.hasOwnProperty.call(e,n))continue;let r=e[n];if(r!==void 0)return e[t.canonical]=r,r}},tT=Symbol.for(`module-federation.shared-cache-listeners`),nT=e=>{let t=e[tT];return t===void 0&&(t=Object.create(null),Object.defineProperty(e,tT,{value:t,enumerable:!1,configurable:!1,writable:!1})),t},rT=(e,t,n)=>{let r=nT(e);(r[t.canonical]||=new Set).add(n)},iT=Symbol.for(`module-federation.shared-cache-owners`),aT=e=>{let t=e[iT];return t===void 0&&(t=Object.create(null),Object.defineProperty(e,iT,{value:t,enumerable:!1,configurable:!1,writable:!1})),t},oT=(e,t,n,r)=>{var i;e[t.canonical]=n;let a=t.aliases||[];for(let t of a)Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0});let o=e[iT];r===void 0?o&&delete o[t.canonical]:aT(e)[t.canonical]=r;let s=(i=e[tT])==null?void 0:i[t.canonical];if(s)for(let e of s)e(n);return n},sT=e=>{let t=(()=>{let t=e;for(let e=0;e<5;e++){let e=t==null?void 0:t.default;if(!e||typeof e!=`object`)break;let n=Object.keys(t).filter(e=>e!=="default").map(e=>t[e]);if(n.length>0&&n.some(e=>e!==void 0))break;t=e}return t})();return t&&Object.getPrototypeOf(t)===null?Object.assign({},t):t},cT=eT($w.share,{canonical:`default:@iobroker/json-config`,aliases:[`@iobroker/json-config`]});cT===void 0&&(cT=sT(Uw),oT($w.share,{canonical:`default:@iobroker/json-config`,aliases:[`@iobroker/json-config`]},cT,`AiUsageComponentSet`));var lT,uT=e=>{e.GUI_API_GENERATION,e.checkGuiApiCompatibility,e.JsonConfig,e.JsonConfigComponent,e.ConfigPanel,lT=e.ConfigGeneric,(()=>{let t=e;for(let e=0;e<5;e++){let e=t==null?void 0:t.default;if(!e||typeof e!=`object`)return e??t;t=e}return t})()};rT($w.share,{canonical:`default:@iobroker/json-config`,aliases:[`@iobroker/json-config`]},uT),uT(cT);export{is as a,os as i,Uw as n,ls as r,lT as t};
1494
+ `,e)+1}return{type:e,offset:this.offset,indent:this.indent,source:this.source}}startBlockValue(e){switch(this.type){case`alias`:case`scalar`:case`single-quoted-scalar`:case`double-quoted-scalar`:return this.flowScalar(this.type);case`block-scalar-header`:return{type:`block-scalar`,offset:this.offset,indent:this.indent,props:[this.sourceToken],source:``};case`flow-map-start`:case`flow-seq-start`:return{type:`flow-collection`,offset:this.offset,indent:this.indent,start:this.sourceToken,items:[],end:[]};case`seq-item-ind`:return{type:`block-seq`,offset:this.offset,indent:this.indent,items:[{start:[this.sourceToken]}]};case`explicit-key-ind`:{this.onKeyLine=!0;let t=gw(hw(e));return t.push(this.sourceToken),{type:`block-map`,offset:this.offset,indent:this.indent,items:[{start:t,explicitKey:!0}]}}case`map-value-ind`:{this.onKeyLine=!0;let t=gw(hw(e));return{type:`block-map`,offset:this.offset,indent:this.indent,items:[{start:t,key:null,sep:[this.sourceToken]}]}}}return null}atIndentedComment(e,t){return this.type!==`comment`||this.indent<=t?!1:e.every(e=>e.type===`newline`||e.type===`space`)}*documentEnd(e){this.type!==`doc-mode`&&(e.end?e.end.push(this.sourceToken):e.end=[this.sourceToken],this.type===`newline`&&(yield*this.pop()))}*lineEnd(e){switch(this.type){case`comma`:case`doc-start`:case`doc-end`:case`flow-seq-end`:case`flow-map-end`:case`map-value-ind`:yield*this.pop(),yield*this.step();break;case`newline`:this.onKeyLine=!1;default:e.end?e.end.push(this.sourceToken):e.end=[this.sourceToken],this.type===`newline`&&(yield*this.pop())}}};function bw(e){let t=e.prettyErrors!==!1;return{lineCounter:e.lineCounter||t&&new dw||null,prettyErrors:t}}function xw(e,t={}){let{lineCounter:n,prettyErrors:r}=bw(t),i=new yw(n==null?void 0:n.addNewLine),a=new ZC(t),o=null;for(let t of a.compose(i.parse(e),!0,e.length))if(!o)o=t;else if(o.options.logLevel!==`silent`){o.errors.push(new pC(t.range.slice(0,2),`MULTIPLE_DOCS`,`Source contains multiple documents; please use YAML.parseAllDocuments()`));break}return r&&n&&(o.errors.forEach(hC(e,n)),o.warnings.forEach(hC(e,n))),o}function Sw(e,t,n){let r;typeof t==`function`?r=t:n===void 0&&t&&typeof t==`object`&&(n=t);let i=xw(e,n);if(!i)return null;if(i.warnings.forEach(e=>Gx(i.options.logLevel,e)),i.errors.length>0){if(i.options.logLevel!==`silent`)throw i.errors[0];i.errors=[]}return i.toJS(Object.assign({reviver:r},n))}K();var Cw={fullWidth:{width:`100%`},flex:{display:`flex`},button:{height:48,minWidth:48},wrapper:{width:`calc(100vw - 40px)`,height:`calc(100vh - 188px)`}},ww=class extends Z{async componentDidMount(){await super.componentDidMount();let{data:e,attr:t}=this.props,n=Z.getValue(e,t)||``;this.setState({value:n,initialized:!0,yamlError:this.validateYaml(n)})}validateYaml(e){let t=!1;if(this.props.schema.validateYaml!==!1&&typeof e==`string`&&(e||!this.props.schema.allowEmpty))try{Sw(e)}catch(e){console.log(`Error in YAML`,e),t=!0}return t}renderItem(e,t){if(!this.state.initialized)return null;let{schema:n,data:r,attr:i}=this.props,{value:a,showSelectId:o}=this.state,s=n.readOnly===!0||t;return G.createElement(ut,{fullWidth:!0,variant:`standard`},G.createElement(`div`,{style:Cw.flex},G.createElement(zt,{color:`grey`,style:Cw.button,size:`small`,variant:`outlined`,onClick:()=>this.setState({showSelectId:!0})},Y.t(`jc_YAML editor`))),o?G.createElement(rv,{title:this.getText(n.label),overflowHidden:!0,applyDisabled:this.state.yamlError&&this.props.schema.doNotApplyWithError||s,onClose:()=>{s?this.setState({showSelectId:!1}):this.setState({showSelectId:!1,value:Z.getValue(r,i)||``})},onApply:s?void 0:()=>this.setState({showSelectId:!1},()=>i&&this.onChange(i,a))},G.createElement(`div`,{style:{...Cw.wrapper,border:this.state.yamlError?`2px solid red`:`2px solid transparent`}},G.createElement(wy,{mode:`yaml`,value:typeof a==`object`?JSON.stringify(a):a,onChange:s?void 0:e=>this.setState({value:e,yamlError:this.validateYaml(e)}),name:`ConfigYamlEditor`,themeType:this.props.oContext.themeType}))):null,n.help||this.state.yamlError?G.createElement(ke,null,this.state.yamlError?Y.t(`jc_Invalid YAML`):this.renderHelp(this.props.schema.help,this.props.schema.helpLink,this.props.schema.noTranslation)):null)}};K();var Tw=class extends Z{async componentDidMount(){await super.componentDidMount();let e=await i(()=>import(`./lib-MY71LxhX.js`),__vite__mapDeps([0]),import.meta.url);this.setState({QRCode:e.default})}renderItem(){let e=this.state.QRCode;if(!e)return null;let t=Math.max(32,Math.round((this.props.schema.size||256)*.15));return G.createElement(`div`,{style:{display:`flex`,justifyContent:`center`,alignItems:`center`,backgroundColor:this.props.schema.bgColor||`white`,padding:t,width:`100%`,height:`100%`,boxSizing:`border-box`}},G.createElement(e,{title:this.getText(this.props.schema.tooltip),value:this.props.schema.data,size:this.props.schema.size,fgColor:this.props.schema.fgColor,bgColor:this.props.schema.bgColor,level:this.props.schema.level}))}};K();var Ew=class extends Z{constructor(...e){super(...e),J(this,`initialized`,!1),J(this,`localContext`,void 0)}async componentDidMount(){await super.componentDidMount();let e=await i(()=>import(`./lib-MY71LxhX.js`),__vite__mapDeps([0]),import.meta.url);this.setState({QRCode:e.default}),this.props.schema.sendFirstByClick||await this.askInstance()}async askInstance(){if(this.props.alive){let e=this.props.schema.data;if(e===void 0&&this.props.schema.jsonData){let t=await this.getPatternAsync(this.props.schema.jsonData,null,!0);if(t)try{e=JSON.parse(t)}catch{console.error(`Cannot parse json data: ${JSON.stringify(e)}`)}}e??=null;let t=await this.getPatternAsync(this.props.schema.instance||`${this.props.oContext.adapterName}.${this.props.oContext.instance}`);if(t!==`${this.props.oContext.adapterName}.${this.props.oContext.instance}`){let e=await this.props.oContext.socket.getState(`system.adapter.${t}.alive`);if(!(e!=null&&e.val)){window.alert(Y.t(`jc_Instance %s is not alive`,t));return}}this.setState({loading:!0},()=>this.props.oContext.socket.sendTo(t,this.props.schema.command||`send`,e).then(e=>this.setState({qrData:e||``,loading:!1})))}}getContext(){let e={};return Array.isArray(this.props.schema.alsoDependsOn)&&this.props.schema.alsoDependsOn.forEach(t=>e[t]=Z.getValue(this.props.data,t)),JSON.stringify(e)}renderItem(){if(this.props.alive){let e=this.getContext();(e!==this.localContext||!this.initialized)&&(this.localContext=e,(!this.props.schema.sendFirstByClick||this.state.qrData!==void 0)&&setTimeout(()=>this.askInstance(),this.initialized?300:50),this.initialized=!0)}if(!this.state.qrData&&this.props.schema.sendFirstByClick)return this.props.alive?G.createElement(`div`,{style:{width:`100%`,display:`flex`,alignItems:`center`,justifyContent:`center`,cursor:this.state.loading?`default`:`pointer`},onClick:()=>!this.state.loading&&this.askInstance()},this.state.loading?G.createElement(Zt,null):typeof this.props.schema.sendFirstByClick==`boolean`?Y.t(`jc_Click to show`):this.getText(this.props.schema.sendFirstByClick,this.props.schema.noTranslation)):G.createElement(`div`,{style:{width:`100%`,display:`flex`,alignItems:`center`,justifyContent:`center`,cursor:this.state.loading?`default`:`pointer`},onClick:()=>!this.state.loading&&this.askInstance()},Y.t(`jc_Instance %s is not alive`,this.props.oContext.instance.toString()));let e=this.state.QRCode;if(!e||this.state.qrData===void 0)return null;let t=Math.max(32,Math.round((this.props.schema.size||256)*.15));return G.createElement(`div`,{style:{display:`flex`,justifyContent:`center`,alignItems:`center`,backgroundColor:this.props.schema.bgColor||`white`,padding:t,width:`100%`,height:`100%`,boxSizing:`border-box`}},G.createElement(e,{title:this.getText(this.props.schema.tooltip),value:this.state.qrData,size:this.props.schema.size,fgColor:this.props.schema.fgColor,bgColor:this.props.schema.bgColor,level:this.props.schema.level}))}};K();var Dw={accordion:Ss,alive:ws,autocomplete:Ts,autocompleteSendTo:Es,certCollection:Ms,certificate:ks,certificates:js,checkbox:qs,checkDocker:Ns,checkLicense:Ks,chip:$s,chips:$s,color:ec,coordinates:nc,credential:Ws,cron:Os,custom:dc,datePicker:k_,deviceManager:A_,divider:ib,file:W_,fileSelector:L_,func:G_,header:ob,iframe:K_,iframeSendTo:q_,image:X_,imageSendTo:Y_,infoBox:Z_,instance:$_,interface:tv,ip:J_,jsonEditor:Ey,language:Oy,license:ky,number:jy,oauth2:My,objectId:Py,password:Ly,pattern:Ry,port:By,qrCode:Tw,qrCodeSendTo:Ew,room:Vy,select:Uy,selectSendTo:Gy,sendto:Yy,sendTo:Yy,setState:Zy,slider:$y,state:nb,staticImage:sb,staticInfo:db,staticLink:mb,staticText:mb,table:xb,text:Cb,textSendTo:Tb,timePicker:Eb,topic:Ob,uuid:kb,user:jb,yamlEditor:ww},Ow={fullWidth:{width:`100%`},paper:{margin:1,width:`auto !important`,overflowY:`auto`,paddingBottom:1,flex:`1 1 auto`,minHeight:0},padding:{padding:`10px`},heading:{},primary:e=>({backgroundColor:e.palette.primary.main,color:e.palette.mode===`dark`?`inherit`:`#FFF`}),secondary:e=>({backgroundColor:e.palette.secondary.main})},kw=class e extends Z{async componentDidMount(){var e;await super.componentDidMount(),(e=this.props.schema)!=null&&e.collapsable&&this.setState({expanded:(window._localStorage||window.localStorage).getItem(`${this.props.oContext.adapterName}.${this.props.attr}`)===`true`})}renderItems(t,n){return t?Object.keys(t).map(r=>{if(this.props.oContext.multiEdit&&t[r].noMultiEdit||!Z.isHostAllowed(t[r],this.props.oContext.hostInfo))return null;let i=t[r].type||`panel`,a,o=`Use this.props.oContext.socket!`;if(i===`custom`)t[r].url?a=dc:this.props.oContext.customs&&this.props.oContext.customs[t[r].component]?a=this.props.oContext.customs[t[r].component]:(console.error(`Cannot find custom component: ${t[r].component}`),a=Z),o=this.props.oContext.socket;else if(i===`component`){var s;let e=t[r].subType;if(e&&(s=this.props.customComponents)!=null&&s[e])a=this.props.customComponents[e];else return G.createElement(`div`,{key:`${r}_${this.props.index??``}`},`Component ${e} not provided`)}else a=i===`panel`?e:Dw[i]||Z;return G.createElement(a,{socket:o,globalData:this.props.globalData,oContext:this.props.oContext,key:`${r}_${this.props.index??``}`,index:this.props.index,changed:this.props.changed,arrayIndex:this.props.arrayIndex,expertMode:this.props.expertMode,commandRunning:this.props.commandRunning,style:Ow.panel,common:this.props.common,alive:this.props.alive,themeName:this.props.themeName,data:this.props.data,originalData:this.props.originalData,onError:this.props.onError,onHiddenChanged:this.props.onHiddenChanged,onFilterLabelUpdate:this.props.onFilterLabelUpdate,onChange:this.props.onChange,disabled:n,customObj:this.props.customObj,custom:this.props.custom,schema:t[r],attr:r,table:this.props.table,customComponents:this.props.customComponents})}):null}render(){let e=this.props.schema;if(!e||(this.updateCalculatedValues(),!this.state.calculatedValues))return null;let t=this.props.schema.items,n=this.props.schema.style||{};if(this.state.calculatedValues.hidden){if(e.hideOnlyControl){let t=G.createElement(Gn,{size:{xs:e.xs||void 0,sm:e.sm||void 0,md:e.md||void 0,lg:e.lg||void 0,xl:e.xl||void 0},sx:wn.getStyle(this.props.oContext.theme,{marginBottom:0,textAlign:`left`},n,this.props.oContext.themeType===`dark`?e.darkStyle:void 0)});return e.newLine?G.createElement(G.Fragment,null,G.createElement(`div`,{style:{flexBasis:`100%`,height:0}}),t):t}return null}if(this.props.table)return this.renderItems(t,this.state.calculatedValues.disabled);if(this.props.custom)return G.createElement(Gn,{key:`${this.props.attr}_${this.props.index}`,container:!0,style:Ow.fullWidth,columnSpacing:2,rowSpacing:1,sx:n},this.renderItems(t,this.state.calculatedValues.disabled));let r;if(e.collapsable)r=G.createElement(or,{key:`${this.props.attr}_${this.props.index}`,style:Ow.fullWidth,expanded:!!this.state.expanded,onChange:()=>{(window._localStorage||window.localStorage).setItem(`${this.props.oContext.adapterName}.${this.props.attr}`,this.state.expanded?`false`:`true`),this.setState({expanded:!this.state.expanded})}},G.createElement(tt,{expandIcon:G.createElement(ge,null),sx:wn.getStyle(this.props.oContext.theme,n,this.props.oContext.themeType&&e.darkStyle,e.color===`primary`?Ow.primary:e.color===`secondary`&&Ow.secondary,{width:`100%`})},G.createElement(Ct,{style:Ow.heading},this.getText(e.label))),G.createElement(Rn,null,G.createElement(Gn,{container:!0,columnSpacing:2,rowSpacing:1,sx:{...n,width:`100%`,padding:`10px`}},this.renderItems(t,this.state.calculatedValues.disabled))));else{let e=wn.getStyle(this.props.oContext.theme,this.props.style,n,{width:`100%`},this.props.isParentTab&&Ow.paper);r=G.createElement(sn,{component:`div`,key:`${this.props.attr}_${this.props.index}`,className:this.props.className,sx:e},G.createElement(Gn,{container:!0,columnSpacing:2,rowSpacing:1,sx:wn.getStyle(this.props.oContext.theme,{width:`100%`},this.props.isParentTab&&Ow.padding,this.props.schema.innerStyle)},this.renderItems(t,this.state.calculatedValues.disabled)))}if(!this.props.isParentTab){let t=G.createElement(Gn,{title:this.getText(e.tooltip),size:{xs:e.xs||void 0,sm:e.sm||void 0,md:e.md||void 0,lg:e.lg||void 0,xl:e.xl||void 0},sx:{marginBottom:0,textAlign:`left`,...n}},r);return e.newLine?G.createElement(G.Fragment,null,G.createElement(`div`,{style:{flexBasis:`100%`,height:0}}),t):t}return r}};K();var Aw={tabs:{height:`100%`,width:`100%`,display:`flex`,flexDirection:`column`},tabsBar:{flex:`0 0 auto`},panel:{width:`100%`,display:`block`,flex:`1 1 auto`,minHeight:0}},jw=class e extends Z{constructor(t){super(t),J(this,`resizeObserver`,null),J(this,`resizeRaf`,null),J(this,`calculateTimeoutTable`,null),J(this,`pinTimeout`,null),J(this,`refDiv`,void 0),J(this,`onTabError`,(e,t)=>{let n=this.state.tab;if(!n&&e){this.props.onError(e,t);return}let r={...this.state.tabErrors};n&&(r[n]||={}),n&&e&&(t?r[n][e]=t:(delete r[n][e],Object.keys(r[n]).length===0&&delete r[n])),this.setState({tabErrors:r}),this.props.onError(e,t)}),J(this,`hasTabErrors`,e=>!!this.state.tabErrors[e]&&Object.keys(this.state.tabErrors[e]).length>0),J(this,`measureWidth`,()=>{var t;let n=(t=this.refDiv.current)==null?void 0:t.clientWidth;if(!n)return;let r=this.state.useMenu;!r&&n<e.MENU_WIDTH?r=!0:r&&n>e.MENU_WIDTH+e.MENU_HYSTERESIS&&(r=!1),r!==this.state.useMenu&&this.setState({useMenu:r})}),J(this,`onHashTabsChanged`,()=>{let e=(window.location.hash||``).replace(/^#/,``).split(`/`);if(e.length>3&&e[1]===`config`){let t=e[3],n=parseInt(t,10),r;n.toString()===t?n>=0&&n<Object.keys(this.props.schema.items).length&&(r=Object.keys(this.props.schema.items)[n]):Object.keys(this.props.schema.items).includes(t)&&(r=t),r!==void 0&&r!==this.state.tab&&((window._localStorage||window.localStorage).setItem(`${this.props.dialogName||`App`}.${this.props.oContext.adapterName}`,r),this.pinWidthForTransition(),this.setState({tab:r}))}});let n;if(this.props.root){let e=(window.location.hash||``).replace(/^#/,``).split(`/`);if(e.length>=3&&e[1]===`config`){let t=e[3],r=parseInt(t,10);t&&r.toString()===t?r>=0&&r<Object.keys(this.props.schema.items).length&&(n=Object.keys(this.props.schema.items)[r]):t&&Object.keys(this.props.schema.items).includes(t)&&(n=t),window.addEventListener(`hashchange`,this.onHashTabsChanged,!1)}}n===void 0&&(n=(window._localStorage||window.localStorage).getItem(`${this.props.dialogName||`App`}.${this.props.oContext.adapterName}`)||Object.keys(this.props.schema.items)[0],Object.keys(this.props.schema.items).includes(n)||(n=Object.keys(this.props.schema.items)[0])),this.refDiv=G.createRef(),Object.assign(this.state,{tab:n,useMenu:!1,openMenu:null,tabErrors:{}})}async componentDidMount(){await super.componentDidMount(),this.measureWidth(),this.refDiv.current&&typeof ResizeObserver<`u`&&(this.resizeObserver=new ResizeObserver(()=>{this.resizeRaf===null&&(this.resizeRaf=window.requestAnimationFrame(()=>{this.resizeRaf=null,this.measureWidth()}))}),this.resizeObserver.observe(this.refDiv.current))}componentWillUnmount(){this.resizeRaf!==null&&(window.cancelAnimationFrame(this.resizeRaf),this.resizeRaf=null),this.resizeObserver&&=(this.resizeObserver.disconnect(),null),this.calculateTimeoutTable&&=(clearTimeout(this.calculateTimeoutTable),null),this.pinTimeout&&=(clearTimeout(this.pinTimeout),null),window.removeEventListener(`hashchange`,this.onHashTabsChanged,!1),super.componentWillUnmount()}pinWidthForTransition(){var e;let t=(e=this.refDiv.current)==null?void 0:e.clientWidth;t&&(this.pinTimeout&&clearTimeout(this.pinTimeout),this.state.contentMinWidth!==t&&this.setState({contentMinWidth:t}),this.pinTimeout=setTimeout(()=>{this.pinTimeout=null,this.setState({contentMinWidth:void 0})},500))}onMenuChange(e){(window._localStorage||window.localStorage).setItem(`${this.props.dialogName||`App`}.${this.props.oContext.adapterName}`,e),this.pinWidthForTransition(),this.setState({tab:e},()=>{if(this.props.root){let e=(window.location.hash||``).split(`/`);e.length>=3&&e[1]===`config`&&(e[3]=this.state.tab||``,window.location.hash=e.join(`/`))}})}updateCalculatedValuesForTable(){this.calculateTimeoutTable&&clearTimeout(this.calculateTimeoutTable),this.calculateTimeoutTable=setTimeout(async()=>{this.calculateTimeoutTable=null;let e=this.props.schema.items,t={};for(let n in e){let r;if(e[n].expertMode&&!this.props.expertMode){t[n]={hidden:!0,disabled:!1};continue}if(!Z.isHostAllowed(e[n],this.props.oContext.hostInfo)){t[n]={hidden:!0,disabled:!1};continue}if(this.props.custom){let i=!!await this.executeCustom(e[n].hidden,this.props.data,this.props.customObj,this.props.oContext.instanceObj,this.props.index,this.props.globalData);if(i){t[n]={hidden:!0,disabled:!1};continue}r=!!await this.executeCustom(e[n].disabled,this.props.data,this.props.customObj,this.props.oContext.instanceObj,this.props.index,this.props.globalData),t[n]={hidden:i,disabled:r}}else{if(await this.execute(e[n].hidden,!1,this.props.data,this.props.index,this.props.globalData)){t[n]={hidden:!0,disabled:!1};continue}r=!!await this.execute(e[n].disabled,!1,this.props.data,this.props.index,this.props.globalData),t[n]={hidden:!1,disabled:r}}}JSON.stringify(t)!==JSON.stringify(this.state.calculatedValuesTable)&&this.setState({calculatedValuesTable:t})},50)}render(){let e=this.props.schema.items,t=!1;if(this.updateCalculatedValuesForTable(),!this.state.calculatedValuesTable)return null;let n=[];Object.keys(e).filter(e=>{var t;return!((t=this.state.calculatedValuesTable)!=null&&(t=t[e])!=null&&t.hidden)}).map(r=>{var i;let a=this.getIcon(e[r].icon);t||=!!a,n.push({icon:a,disabled:!!((i=this.state.calculatedValuesTable)!=null&&(i=i[r])!=null&&i.disabled),label:this.getText(e[r].label),name:r})}),n.find(e=>e.name===this.state.tab)||setTimeout(()=>this.setState({tab:n[0].name}),50);let r;return r=this.state.useMenu&&n.length>2?G.createElement(Te,{style:{...Aw.tabsBar,top:2,backgroundColor:this.props.oContext.themeType===`dark`?`#222`:`#DDD`},variant:`dense`},G.createElement(w,{onClick:e=>this.setState({openMenu:e.currentTarget})},G.createElement(Et,null)),this.state.openMenu?G.createElement(be,{open:!0,anchorEl:this.state.openMenu,onClose:()=>this.setState({openMenu:null})},n.map(e=>{let n=this.hasTabErrors(e.name);return G.createElement(D,{disabled:e.disabled,key:e.name,onClick:()=>{this.setState({openMenu:null},()=>this.onMenuChange(e.name))},selected:e.name===this.state.tab,sx:n?{color:`error.main`}:void 0},t?G.createElement(Wt,null,e.icon):null,G.createElement(sn,{sx:{display:`flex`,alignItems:`center`,gap:.5,width:`100%`}},e.label,n&&G.createElement(me,{sx:{fontSize:16,color:`error.main`}})))})):null):G.createElement(Ye,{variant:`scrollable`,scrollButtons:`auto`,style:{...Aw.tabsBar,...this.props.schema.tabsStyle},value:this.state.tab,onChange:(e,t)=>this.onMenuChange(t)},n.map(e=>{let t=this.hasTabErrors(e.name),n=t?G.createElement(sn,{sx:{display:`flex`,alignItems:`center`,gap:.5}},e.label,G.createElement(me,{sx:{fontSize:16,color:`error.main`}})):e.label;return G.createElement(Be,{id:e.name,wrapped:!0,disabled:e.disabled,key:e.name,value:e.name,iconPosition:this.props.schema.iconPosition||`start`,icon:e.icon||void 0,label:n,sx:t?{"& .MuiTab-wrapper":{color:`error.main`}}:void 0})})),this.state.tab?G.createElement(`div`,{style:this.state.contentMinWidth===void 0?Aw.tabs:{...Aw.tabs,minWidth:this.state.contentMinWidth},ref:this.refDiv},r,G.createElement(kw,{oContext:this.props.oContext,withoutSaveButtons:this.props.withoutSaveButtons,isParentTab:!0,changed:this.props.changed,key:this.state.tab,expertMode:this.props.expertMode,index:1001,arrayIndex:this.props.arrayIndex,globalData:this.props.globalData,commandRunning:this.props.commandRunning,style:Aw.panel,common:this.props.common,alive:this.props.alive,themeName:this.props.themeName,data:this.props.data,originalData:this.props.originalData,onChange:this.props.onChange,onError:this.onTabError,customObj:this.props.customObj,custom:this.props.custom,schema:e[this.state.tab],table:this.props.table,withIcons:t,customComponents:this.props.customComponents})):null}};J(jw,`MENU_WIDTH`,600),J(jw,`MENU_HYSTERESIS`,40),K(),Y.extendTranslations({en:{"jc_A credential with this name already exists":`A credential with this name already exists`,"jc_A unique name is required":`A unique name is required`,"jc_Accept license":`Accept license`,jc_Actions:`Actions`,"jc_Add credential":`Add credential`,"jc_Add row":`Add row`,"jc_All items are filtered out":`All items are filtered out`,jc_Append:`Append`,"jc_Append %s entries or replace existing?":`Append %s entries or replace existing?`,"jc_Append or replace?":`Append or replace?`,"jc_Are you sure?":`Are you sure?`,jc_Cancel:`Cancel`,"jc_Cannot add items with set filter":`Cannot add items with set filter`,"jc_Cannot create credential: %s":`Cannot create credential: %s`,"jc_Cannot decode license":`Cannot decode license`,"jc_Cannot determine position: System settings are empty and GPS detection is disabled in browser":`Cannot determine position: System settings are empty and GPS detection is disabled in browser`,'jc_Cannot display the custom component "%s"':`Cannot display the custom component "%s"`,"jc_Cannot read licenses: %s":`Cannot read licenses: %s`,"jc_Cannot retrieve options, as instance is offline":`Cannot retrieve options, as instance is offline`,"jc_Cannot save configuration because of error in configuration":`Cannot save configuration because of error in configuration`,"jc_Cannot upload":`Cannot upload`,"jc_Chained certificate":`Chained certificate`,jc_Checked:`Checked`,"jc_Click to see in full size":`Click to see in full size`,"jc_Click to show":`Click to show`,"jc_Clone current row":`Clone current row`,jc_Close:`Close`,jc_Commercial:`Commercial`,jc_Copied:`Copied`,"jc_Copied %s":`Copied "%s"`,"jc_Copy content":`Copy content`,jc_Create:`Create`,"jc_Credential type":`Credential type`,'jc_Custom component "%s" was not started':`Custom component "%s" was not started`,"jc_Define schedule":`Define schedule`,jc_Delete:`Delete`,"jc_Delete current row":`Delete current row`,"jc_Disable/Enable translation":`Disable/Enable translation`,jc_Discard:`Discard`,"jc_Do not use let's encrypt":`Do not use let's encrypt`,"jc_Docker is not available":`Docker is not available`,"jc_Docker is not installed or not running":`Docker is not installed or not running`,"jc_Drop file here":`Drop file here`,"jc_Enter the code from that page here":`Enter the code from that page here`,jc_Error:`Error`,"jc_Expand/Collapse card":`Expand/Collapse card`,"jc_Export configuration section":`Export configuration section`,"jc_Export data to %s file":`Export data to %s file`,"jc_Export setting to JSON file":`Export setting to JSON file`,"jc_Fallback custom certificates":`Fallback custom certificates`,"jc_File is too big. Max %sk allowed. Try use SVG.":`File is too big. Max %sk allowed. Try use SVG.`,"jc_File will be deleted":`File will be deleted`,"jc_Filter and Data Actions":`Filter and Data Actions`,"jc_Get %s access":`Get %s access`,"jc_If the button above does not work, you can authorize manually this app by visiting this url":`If the button above does not work, you can authorize manually this app by visiting this url`,"jc_Import and add configuration section":`Import and add configuration section`,"jc_Import and replace configuration section":`Import and replace configuration section`,"jc_Import data from %s file":`Import data from %s file`,"jc_Import from %s":`Import from %s`,"jc_Import settings from JSON file":`Import settings from JSON file`,"jc_Instance %s is alive":`Instance %s is alive`,"jc_Instance %s is not alive":`Instance %s is not alive`,"jc_Invalid JSON":`Invalid JSON`,"jc_Invalid JSON file.":`Invalid JSON file.`,"jc_Invalid JSON format. Expected an array.":`Invalid JSON format. Expected an array.`,"jc_Invalid YAML":`Invalid YAML`,"jc_It requires GUI API generation %s, but this admin provides generation %s. Please update the admin.":`It requires GUI API generation %s, but this admin provides generation %s. Please update the admin.`,"jc_It was built for GUI API generation %s, but this admin provides generation %s. Please update the adapter.":`It was built for GUI API generation %s, but this admin provides generation %s. Please update the adapter.`,"jc_It was probably built for an older admin version. Please update the adapter.":`It was probably built for an older admin version. Please update the adapter.`,"jc_JSON editor":`JSON editor`,jc_Latitude:`Latitude`,"jc_License %s":`License %s`,"jc_License agreement":`License agreement`,"jc_License does not exist":`License does not exist`,"jc_License expired on %s":`License expired on %s`,'jc_License for other product "%s"':`License for other product "%s"`,"jc_License is for version %s, but required version is %s":`License is for version %s, but required version is %s`,"jc_License must be converted":`License must be converted to newer version. You can do it in your iobroker.net profile.`,"jc_License not found in license manager. Do you want to read licenses from iobroker.net?":`License not found in the license manager. Do you want to update licenses from iobroker.net?`,"jc_Listen on all IPs":`Listen on all IPs`,jc_Longitude:`Longitude`,"jc_Move down":`Move down`,"jc_Move up":`Move up`,jc_Name:`Name`,"jc_No one license found in license manager":`No one license found in license manager`,"jc_No response from admin":`No response from admin`,'jc_Non-allowed duplicate entry "%s" in column "%s"':`Non-allowed duplicate entry "%s" in column "%s"`,"jc_OAuth Client ID":`OAuth Client ID`,"jc_OAuth Client secret":`OAuth Client secret`,jc_Ok:`Ok`,"jc_Passwords are not equal!":`Passwords are not equal!`,"jc_Place your files here or click here to open the browse dialog":`Place your files here or click here to open the browse dialog`,"jc_Please allow popups in your browser for this page!":`Please allow popups in your browser for this page!`,"jc_Please confirm":`Please confirm`,"jc_Please create license":`Please create license`,"jc_Please enter the license":`Please enter the license`,"jc_Please fill in all required fields":`Please fill in all required fields`,"jc_Port could be used by %s":`Port could be used by %s`,"jc_Port is already used by %s":`Port is already used by %s`,"jc_Press ENTER Key to add new item":`Press ENTER Key to add new item`,"jc_Private certificate":`Private certificate`,jc_Product:`Product`,"jc_Public certificate":`Public certificate`,"jc_Renew %s access":`Renew %s access`,jc_Replace:`Replace`,"jc_Request data by instance":`Request data by instance`,"jc_Request timed out":`Request timed out`,jc_Result:`Result`,jc_Save:`Save`,"jc_Save configuration?":`Save configuration?`,"jc_Serial number (UUID)":`Serial number (UUID)`,'jc_Serial number (UUID) "%s" in license is for other device.':`Serial number (UUID) "%s" in license is for other device.`,"jc_Show/hide filter input":`Show/hide filter input`,"jc_Some data are not stored. Discard?":`Some data are not stored. Discard?`,"jc_Successfully authorized. Token valid till %s and will be automatically renewed.":`Successfully authorized. Token valid till %s and will be automatically renewed.`,"jc_Successfully authorized. Token valid till %s but it can expire as the instance is not running.":`Successfully authorized. Token valid till %s but it can expire as the instance is not running.`,"jc_Suitable license not found in license manager":`Suitable license not found in license manager`,"jc_System language":`System language`,"jc_Take browser position":`Take position from browser`,"jc_Take position from system settings":`Take position from system settings`,jc_Template:`Template`,"jc_Use all available let's encrypt certificates":`Use all available let's encrypt certificates`,"jc_Use system settings for position":`Use system settings for position`,"jc_Used system settings":`Used system settings`,jc_ValidTill:`Valid till`,jc_Version:`Version`,"jc_YAML editor":`YAML editor`,jc_Yes:`Yes`,"jc_You can filter entries by entering here some text":`You can filter entries by entering here some text`,"jc_[JsonConfig] Failed to open JSON File":`[JsonConfig] Failed to open JSON File`,"jc_[JsonConfig] Failed to parse JSON file":`[JsonConfig] Failed to parse JSON file`,jc___different__:`different`,jc_false:`FALSE`,jc_locally:`locally`,jc_none:`none`,jc_repeat:`repeat`,jc_true:`TRUE`,"jc_via internet":`via internet`,sch_all:`all`},de:{"jc_A credential with this name already exists":`Es existiert bereits eine Berechtigung mit diesem Namen.`,"jc_A unique name is required":`Ein eindeutiger Name ist erforderlich.`,"jc_Accept license":`Lizenz akzeptieren`,jc_Actions:`Aktionen`,"jc_Add credential":`Anmeldeinformationen hinzufügen`,"jc_Add row":`Zeile hinzufügen`,"jc_All items are filtered out":`Alle Elemente sind herausgefiltert`,jc_Append:`Anhängen`,"jc_Append %s entries or replace existing?":`%s Einträge anhängen oder vorhandene ersetzen?`,"jc_Append or replace?":`Anhängen oder ersetzen?`,"jc_Are you sure?":`Bist du sicher?`,jc_Cancel:`Abbrechen`,"jc_Cannot add items with set filter":`Elemente mit festgelegtem Filter können nicht hinzugefügt werden`,"jc_Cannot create credential: %s":`Anmeldeinformationen konnten nicht erstellt werden: %s`,"jc_Cannot decode license":`Lizenz kann nicht entschlüsselt werden`,"jc_Cannot determine position: System settings are empty and GPS detection is disabled in browser":`Position kann nicht bestimmt werden: Die Systemeinstellungen sind leer und die GPS-Erkennung ist im Browser deaktiviert`,'jc_Cannot display the custom component "%s"':`Die benutzerdefinierte Komponente "%s" kann nicht angezeigt werden`,"jc_Cannot read licenses: %s":`Lizenzen können nicht gelesen werden: %s`,"jc_Cannot retrieve options, as instance is offline":`Optionen können nicht abgerufen werden, da die Instanz offline ist`,"jc_Cannot save configuration because of error in configuration":`Die Konfiguration konnte aufgrund eines Fehlers nicht gespeichert werden.`,"jc_Cannot upload":`Kann nicht hochladen`,"jc_Chained certificate":`Chained Zertifikat`,jc_Checked:`Geprüft`,"jc_Click to see in full size":`Klicken Sie hier, um die Vollbildansicht zu öffnen.`,"jc_Click to show":`Zum Anzeigen klicken`,"jc_Clone current row":`Aktuelle Zeile klonen`,jc_Close:`Schließen`,jc_Commercial:`Kommerziell`,jc_Copied:`Kopiert`,"jc_Copied %s":`"%s" kopiert`,"jc_Copy content":`Inhalte kopieren`,jc_Create:`Erstellen`,"jc_Credential type":`Anmeldeinformationstyp`,'jc_Custom component "%s" was not started':`Die benutzerdefinierte Komponente "%s" wurde nicht gestartet`,"jc_Define schedule":`Zeitplan definieren`,jc_Delete:`Löschen`,"jc_Delete current row":`Aktuelle Zeile löschen`,"jc_Disable/Enable translation":`Übersetzung deaktivieren/aktivieren`,jc_Discard:`Verwerfen`,"jc_Do not use let's encrypt":`Let's encrypt nicht verwenden`,"jc_Docker is not available":`Docker ist nicht verfügbar`,"jc_Docker is not installed or not running":`Docker ist nicht installiert oder läuft nicht`,"jc_Drop file here":`Datei hier ablegen`,"jc_Enter the code from that page here":`Geben Sie den Code von dieser Seite hier ein`,jc_Error:`Fehler`,"jc_Expand/Collapse card":`Karte ein-/ausklappen`,"jc_Export configuration section":`Konfigurationsabschnitt exportieren`,"jc_Export data to %s file":`Daten in %s-Datei exportieren`,"jc_Export setting to JSON file":`Einstellungen in eine JSON-Datei exportieren`,"jc_Fallback custom certificates":`Benutzerdefinierte Fallback-Zertifikate`,"jc_File is too big. Max %sk allowed. Try use SVG.":`Datei ist zu groß. Max %sk erlaubt. Versuchen Sie, SVG zu verwenden.`,"jc_File will be deleted":`Die Datei wird gelöscht`,"jc_Filter and Data Actions":`Filter- und Datenaktionen`,"jc_Get %s access":`%s Zugriff erhalten`,"jc_If the button above does not work, you can authorize manually this app by visiting this url":`Wenn die Schaltfläche oben nicht funktioniert, können Sie diese App manuell autorisieren, indem Sie diese URL besuchen`,"jc_Import and add configuration section":`Konfigurationsabschnitt importieren und hinzufügen`,"jc_Import and replace configuration section":`Konfigurationsabschnitt importieren und ersetzen`,"jc_Import data from %s file":`Daten aus %s-Datei importieren`,"jc_Import from %s":`Von %s importieren`,"jc_Import settings from JSON file":`Einstellungen aus einer JSON-Datei importieren`,"jc_Instance %s is alive":`Instanz %s ist aktiv`,"jc_Instance %s is not alive":`Instanz %s ist nicht aktiv`,"jc_Invalid JSON":`Ungültiges JSON`,"jc_Invalid JSON file.":`Ungültige JSON-Datei.`,"jc_Invalid JSON format. Expected an array.":`Ungültiges JSON-Format. Array erwartet.`,"jc_Invalid YAML":`Ungültiges YAML`,"jc_It requires GUI API generation %s, but this admin provides generation %s. Please update the admin.":`Sie benötigt GUI-API-Generation %s, dieser Admin stellt aber Generation %s bereit. Bitte den Admin aktualisieren.`,"jc_It was built for GUI API generation %s, but this admin provides generation %s. Please update the adapter.":`Sie wurde für GUI-API-Generation %s erstellt, dieser Admin stellt aber Generation %s bereit. Bitte den Adapter aktualisieren.`,"jc_It was probably built for an older admin version. Please update the adapter.":`Sie wurde vermutlich für eine ältere Admin-Version erstellt. Bitte den Adapter aktualisieren.`,"jc_JSON editor":`JSON-Editor`,jc_Latitude:`Breite`,"jc_License %s":`Lizenz %s`,"jc_License agreement":`Lizenzvereinbarung`,"jc_License does not exist":`Lizenz existiert nicht`,"jc_License expired on %s":`Lizenz am %s abgelaufen`,'jc_License for other product "%s"':`Lizenz für anderes Produkt „%s“`,"jc_License is for version %s, but required version is %s":`Die Lizenz gilt für Version %s, benötigt wird jedoch Version %s.`,"jc_License must be converted":`Die Lizenz muss auf eine neuere Version konvertiert werden. Sie können dies in Ihrem iobroker.net-Profil tun.`,"jc_License not found in license manager. Do you want to read licenses from iobroker.net?":`Lizenz im Lizenzmanager nicht gefunden. Möchten Sie Lizenzen von iobroker.net aktualisieren?`,"jc_Listen on all IPs":`Zugriff von allen IPs zulassen`,jc_Longitude:`Längengrad`,"jc_Move down":`Nach unten`,"jc_Move up":`Nach oben`,jc_Name:`Name`,"jc_No one license found in license manager":`Im Lizenzmanager wurde keine Lizenz gefunden`,"jc_No response from admin":`Keine Antwort vom Administrator`,'jc_Non-allowed duplicate entry "%s" in column "%s"':`Nicht zulässiger doppelter Eintrag "%s" in Spalte "%s"`,"jc_OAuth Client ID":`OAuth-Client-ID`,"jc_OAuth Client secret":`OAuth-Client-Secret`,jc_Ok:`OK`,"jc_Passwords are not equal!":`Passwörter sind nicht gleich!`,"jc_Place your files here or click here to open the browse dialog":`Die Dateien hier platzieren oder hier klicken, um den Suchdialog zu öffnen`,"jc_Please allow popups in your browser for this page!":`Bitte lassen Sie Popups für diese Seite in Ihrem Browser zu!`,"jc_Please confirm":`Bitte bestätigen`,"jc_Please create license":`Bitte erstellen Sie eine Lizenz`,"jc_Please enter the license":`Bitte die Lizenz eingeben`,"jc_Please fill in all required fields":`Bitte füllen Sie alle Pflichtfelder aus.`,"jc_Port could be used by %s":`Port könnte von %s verwendet werden`,"jc_Port is already used by %s":`Port wird bereits von %s verwendet`,"jc_Press ENTER Key to add new item":`Die Eingabetaste drücken, um ein neues Element hinzuzufügen`,"jc_Private certificate":`Privates Zertifikat`,jc_Product:`Produkt`,"jc_Public certificate":`Öffentliches Zertifikat`,"jc_Renew %s access":`%s Zugriff erneuern`,jc_Replace:`Ersetzen`,"jc_Request data by instance":`Daten pro Instanz anfordern`,"jc_Request timed out":`Zeitüberschreitung der Anforderung`,jc_Result:`Ergebnis`,jc_Save:`Speichern`,"jc_Save configuration?":`Konfiguration speichern?`,"jc_Serial number (UUID)":`Seriennummer (UUID)`,'jc_Serial number (UUID) "%s" in license is for other device.':`Seriennummer (UUID) „%s“ in der Lizenz gilt für ein anderes Gerät.`,"jc_Show/hide filter input":`Filtereingabe ein-/ausblenden`,"jc_Some data are not stored. Discard?":`Einige Daten werden nicht gespeichert. Verwerfen?`,"jc_Successfully authorized. Token valid till %s and will be automatically renewed.":`Erfolgreich autorisiert. Token gültig bis %s und wird automatisch erneuert.`,"jc_Successfully authorized. Token valid till %s but it can expire as the instance is not running.":`Erfolgreich autorisiert. Token gültig bis %s, kann aber ablaufen, da die Instanz nicht ausgeführt wird.`,"jc_Suitable license not found in license manager":`Passende Lizenz im Lizenzmanager nicht gefunden`,"jc_System language":`Systemsprache`,"jc_Take browser position":`Position vom Browser einnehmen`,"jc_Take position from system settings":`Position aus den Systemeinstellungen übernehmen`,jc_Template:`Vorlage`,"jc_Use all available let's encrypt certificates":`Alle verfügbaren Zertifikate von Let's encrypt benutzen`,"jc_Use system settings for position":`Systemeinstellungen für die Position verwenden`,"jc_Used system settings":`Systemeinstellungen`,jc_ValidTill:`Gültig bis`,jc_Version:`Ausführung`,"jc_YAML editor":`YAML-Editor`,jc_Yes:`Ja`,"jc_You can filter entries by entering here some text":`Sie können Einträge filtern, indem Sie hier Text eingeben`,"jc_[JsonConfig] Failed to open JSON File":`[JsonConfig] Fehler beim Öffnen der JSON-Datei`,"jc_[JsonConfig] Failed to parse JSON file":`[JsonConfig] Fehler beim Parsen der JSON-Datei`,jc___different__:`unterschiedlich`,jc_false:`FALSCH`,jc_locally:`örtlich`,jc_none:`kein`,jc_repeat:`wiederholen`,jc_true:`WAHR`,"jc_via internet":`übers Internet`,sch_all:`alle`},ru:{"jc_A credential with this name already exists":`Учетные данные с таким именем уже существуют.`,"jc_A unique name is required":`Требуется уникальное имя.`,"jc_Accept license":`Принять лицензию`,jc_Actions:`Действия`,"jc_Add credential":`Добавить учетные данные`,"jc_Add row":`Добавить ряд`,"jc_All items are filtered out":`Все элементы отфильтрованы`,jc_Append:`Добавить`,"jc_Append %s entries or replace existing?":`Добавить записи %s или заменить существующие?`,"jc_Append or replace?":`Дополнить или заменить?`,"jc_Are you sure?":`Вы уверены?`,jc_Cancel:`Отмена`,"jc_Cannot add items with set filter":`Невозможно добавить элементы с установленным фильтром`,"jc_Cannot create credential: %s":`Не удалось создать учетные данные: %s`,"jc_Cannot decode license":`Не могу декодировать лицензию`,"jc_Cannot determine position: System settings are empty and GPS detection is disabled in browser":`Невозможно определить местоположение: системные настройки пусты, а обнаружение GPS отключено в браузере.`,'jc_Cannot display the custom component "%s"':`Не удается отобразить пользовательский компонент "%s"`,"jc_Cannot read licenses: %s":`Невозможно прочитать лицензии: %s`,"jc_Cannot retrieve options, as instance is offline":`Невозможно получить параметры, так как экземпляр находится в автономном режиме.`,"jc_Cannot save configuration because of error in configuration":`Невозможно сохранить конфигурацию из-за ошибки в конфигурации.`,"jc_Cannot upload":`Невозможно загрузить`,"jc_Chained certificate":`Chained сертификат`,jc_Checked:`Проверено`,"jc_Click to see in full size":`Нажмите, чтобы посмотреть в полном размере`,"jc_Click to show":`Нажмите, чтобы показать`,"jc_Clone current row":`Клонировать текущую строку`,jc_Close:`Закрыть`,jc_Commercial:`Коммерческая`,jc_Copied:`скопировано`,"jc_Copied %s":`Скопировано "%s"`,"jc_Copy content":`Копировать содержимое`,jc_Create:`Создать`,"jc_Credential type":`Тип учетных данных`,'jc_Custom component "%s" was not started':`Пользовательский компонент "%s" не был запущен.`,"jc_Define schedule":`Задать расписание`,jc_Delete:`Удалить`,"jc_Delete current row":`Удалить текущую строку`,"jc_Disable/Enable translation":`Включить/отключить перевод`,jc_Discard:`Отказаться`,"jc_Do not use let's encrypt":`Не использовать Let’s Encrypt`,"jc_Docker is not available":`Докер недоступен`,"jc_Docker is not installed or not running":`Docker не установлен или не запущен`,"jc_Drop file here":`Перетащите файл сюда`,"jc_Enter the code from that page here":`Введите код с этой страницы здесь`,jc_Error:`Ошибка`,"jc_Expand/Collapse card":`Развернуть/Свернуть карточку`,"jc_Export configuration section":`Раздел конфигурации экспорта`,"jc_Export data to %s file":`Экспорт данных в файл %s`,"jc_Export setting to JSON file":`Экспорт настроек в JSON-файл`,"jc_Fallback custom certificates":`Резервные пользовательские сертификаты`,"jc_File is too big. Max %sk allowed. Try use SVG.":`Файл слишком большой. Разрешено максимальное количество %sk. Попробуйте использовать SVG.`,"jc_File will be deleted":`Файл будет удалён`,"jc_Filter and Data Actions":`Фильтрация и действия с данными`,"jc_Get %s access":`Получить %s доступ`,"jc_If the button above does not work, you can authorize manually this app by visiting this url":`Если кнопка выше не работает, вы можете вручную авторизовать это приложение, перейдя по этой ссылке.`,"jc_Import and add configuration section":`Импорт и добавление раздела конфигурации`,"jc_Import and replace configuration section":`Импорт и замена раздела конфигурации`,"jc_Import data from %s file":`Импорт данных из файла %s`,"jc_Import from %s":`Импорт из %s`,"jc_Import settings from JSON file":`Импорт настроек из JSON-файла`,"jc_Instance %s is alive":`Экземпляр %s работает`,"jc_Instance %s is not alive":`Экземпляр %s не работает`,"jc_Invalid JSON":`Неверный JSON`,"jc_Invalid JSON file.":`Неверный файл JSON.`,"jc_Invalid JSON format. Expected an array.":`Недопустимый формат JSON. Ожидается массив.`,"jc_Invalid YAML":`Недопустимый YAML-файл`,"jc_It requires GUI API generation %s, but this admin provides generation %s. Please update the admin.":`Для этого требуется генерация API графического интерфейса пользователя %s, но администратор предоставляет генерацию %s. Пожалуйста, обновите администратора.`,"jc_It was built for GUI API generation %s, but this admin provides generation %s. Please update the adapter.":`Он был создан для генерации API графического интерфейса пользователя %s, но этот администратор предоставляет генерацию %s. Пожалуйста, обновите адаптер.`,"jc_It was probably built for an older admin version. Please update the adapter.":`Вероятно, он был создан для более старой версии административной панели. Пожалуйста, обновите адаптер.`,"jc_JSON editor":`Редактор JSON`,jc_Latitude:`Широта`,"jc_License %s":`Лицензия %s`,"jc_License agreement":`Лицензионное соглашение`,"jc_License does not exist":`Лицензия не существует`,"jc_License expired on %s":`Срок действия лицензии истек %s`,'jc_License for other product "%s"':`Лицензия на другой продукт "%s"`,"jc_License is for version %s, but required version is %s":`Лицензия распространяется на версию %s, но требуемая версия — %s.`,"jc_License must be converted":`Лицензия должна быть преобразована в более новую версию. Вы можете сделать это в своем профиле на iobroker.net.`,"jc_License not found in license manager. Do you want to read licenses from iobroker.net?":`Лицензия не найдена в диспетчере лицензий. Вы хотите обновить лицензии от iobroker.net?`,"jc_Listen on all IPs":`Слушать на всех IP`,jc_Longitude:`Долгота`,"jc_Move down":`Вниз`,"jc_Move up":`Вверх`,jc_Name:`Имя`,"jc_No one license found in license manager":`В менеджере лицензий не найдена ни одна лицензия`,"jc_No response from admin":`Нет ответа от администратора`,'jc_Non-allowed duplicate entry "%s" in column "%s"':`Недопустимая повторяющаяся запись "%s" в столбце "%s"`,"jc_OAuth Client ID":`Идентификатор клиента OAuth`,"jc_OAuth Client secret":`Секрет клиента OAuth`,jc_Ok:`Ok`,"jc_Passwords are not equal!":`Пароли не равны!`,"jc_Place your files here or click here to open the browse dialog":`Поместите свои файлы сюда или щелкните здесь, чтобы открыть диалоговое окно выбора`,"jc_Please allow popups in your browser for this page!":`Пожалуйста, разрешите всплывающие окна в вашем браузере для этой страницы!`,"jc_Please confirm":`Пожалуйста подтвердите`,"jc_Please create license":`Пожалуйста, создайте лицензию`,"jc_Please enter the license":`Пожалуйста, введите лицензию`,"jc_Please fill in all required fields":`Пожалуйста, заполните все обязательные поля.`,"jc_Port could be used by %s":`Порт может использоваться %s`,"jc_Port is already used by %s":`Порт уже используется %s`,"jc_Press ENTER Key to add new item":`Нажмите клавишу ENTER, чтобы добавить новый элемент.`,"jc_Private certificate":`Частный сертификат`,jc_Product:`Продукт`,"jc_Public certificate":`Публичный сертификат`,"jc_Renew %s access":`Продлить доступ %s`,jc_Replace:`Заменять`,"jc_Request data by instance":`Запрос данных по экземпляру`,"jc_Request timed out":`Истекло время запроса`,jc_Result:`Результат`,jc_Save:`Сохранить`,"jc_Save configuration?":`Сохранить конфигурацию?`,"jc_Serial number (UUID)":`Серийный номер (UUID)`,'jc_Serial number (UUID) "%s" in license is for other device.':`Серийный номер (UUID) «%s» в лицензии предназначен для другого устройства.`,"jc_Show/hide filter input":`Показать/скрыть ввод фильтра`,"jc_Some data are not stored. Discard?":`Некоторые данные не сохранились. Отказаться?`,"jc_Successfully authorized. Token valid till %s and will be automatically renewed.":`Авторизация выполнена успешно. Токен действителен до %s и будет автоматически продлен.`,"jc_Successfully authorized. Token valid till %s but it can expire as the instance is not running.":`Авторизация выполнена успешно. Токен действителен до %s, но его срок действия может истечь, так как экземпляр не запущен.`,"jc_Suitable license not found in license manager":`Подходящая лицензия не найдена в менеджере лицензий`,"jc_System language":`Язык системы`,"jc_Take browser position":`Взять позицию из браузера`,"jc_Take position from system settings":`Занять позицию из системных настроек`,jc_Template:`Шаблон`,"jc_Use all available let's encrypt certificates":`Использовать все доступные сертификаты Let’s encrypt`,"jc_Use system settings for position":`Использовать системные настройки для позиции`,"jc_Used system settings":`Системные настройки`,jc_ValidTill:`Годен до`,jc_Version:`Версия`,"jc_YAML editor":`Редактор YAML`,jc_Yes:`Да`,"jc_You can filter entries by entering here some text":`Вы можете отфильтровать записи, введя здесь текст`,"jc_[JsonConfig] Failed to open JSON File":`[JsonConfig] Не удалось открыть JSON-файл`,"jc_[JsonConfig] Failed to parse JSON file":`[JsonConfig] Не удалось разобрать JSON-файл`,jc___different__:`разное`,jc_false:`ЛОЖЬ`,jc_locally:`локально`,jc_none:`ничего`,jc_repeat:`повтор`,jc_true:`истинный`,"jc_via internet":`через интернет`,sch_all:`все`},pt:{"jc_A credential with this name already exists":`Já existe uma credencial com este nome.`,"jc_A unique name is required":`É necessário um nome único.`,"jc_Accept license":`Aceitar licença`,jc_Actions:`Ações`,"jc_Add credential":`Adicionar credencial`,"jc_Add row":`Adicionar linha`,"jc_All items are filtered out":`Todos os itens são filtrados`,jc_Append:`Acrescentar`,"jc_Append %s entries or replace existing?":`Acrescentar %s entradas ou substituir as existentes?`,"jc_Append or replace?":`Acrescentar ou substituir?`,"jc_Are you sure?":`Você tem certeza?`,jc_Cancel:`Cancelar`,"jc_Cannot add items with set filter":`Não é possível adicionar itens com filtro definido`,"jc_Cannot create credential: %s":`Não foi possível criar a credencial: %s`,"jc_Cannot decode license":`Não é possível decodificar a licença`,"jc_Cannot determine position: System settings are empty and GPS detection is disabled in browser":`Não é possível determinar a posição: as configurações do sistema estão vazias e a detecção de GPS está desativada no navegador`,'jc_Cannot display the custom component "%s"':`Não é possível exibir o componente personalizado "%s"`,"jc_Cannot read licenses: %s":`Não é possível ler licenças: %s`,"jc_Cannot retrieve options, as instance is offline":`Não é possível recuperar opções, pois a instância está off-line`,"jc_Cannot save configuration because of error in configuration":`Não foi possível salvar a configuração devido a um erro na configuração.`,"jc_Cannot upload":`Não é possível fazer upload`,"jc_Chained certificate":`certificado encadeado`,jc_Checked:`Verificado`,"jc_Click to see in full size":`Clique para ver em tamanho real.`,"jc_Click to show":`Clique para mostrar`,"jc_Clone current row":`Clonar linha atual`,jc_Close:`Perto`,jc_Commercial:`Comercial`,jc_Copied:`Copiado`,"jc_Copied %s":`"%s" copiado`,"jc_Copy content":`Copiar conteúdo`,jc_Create:`Crio`,"jc_Credential type":`Tipo de credencial`,'jc_Custom component "%s" was not started':`O componente personalizado "%s" não foi iniciado.`,"jc_Define schedule":`Definir cronograma`,jc_Delete:`Excluir`,"jc_Delete current row":`Excluir linha atual`,"jc_Disable/Enable translation":`Desativar/Ativar tradução`,jc_Discard:`Descartar`,"jc_Do not use let's encrypt":`Não use vamos criptografar`,"jc_Docker is not available":`O Docker não está disponível`,"jc_Docker is not installed or not running":`O Docker não está instalado ou não está em execução`,"jc_Drop file here":`Solte o arquivo aqui`,"jc_Enter the code from that page here":`Digite o código dessa página aqui`,jc_Error:`Erro`,"jc_Expand/Collapse card":`Expandir/Recolher cartão`,"jc_Export configuration section":`Seção de configuração de exportação`,"jc_Export data to %s file":`Exportar dados para o arquivo %s`,"jc_Export setting to JSON file":`Exportar configurações para arquivo JSON`,"jc_Fallback custom certificates":`Certificados personalizados alternativos`,"jc_File is too big. Max %sk allowed. Try use SVG.":`O arquivo é muito grande. Max %sk permitido. Tente usar SVG.`,"jc_File will be deleted":`O arquivo será excluído.`,"jc_Filter and Data Actions":`Ações de filtro e dados`,"jc_Get %s access":`Obtenha acesso %s`,"jc_If the button above does not work, you can authorize manually this app by visiting this url":`Se o botão acima não funcionar, você pode autorizar manualmente este aplicativo visitando esta url`,"jc_Import and add configuration section":`Seção de importação e adição de configuração`,"jc_Import and replace configuration section":`Seção de configuração de importação e substituição`,"jc_Import data from %s file":`Importar dados do arquivo %s`,"jc_Import from %s":`Importar de %s`,"jc_Import settings from JSON file":`Importar configurações de um arquivo JSON`,"jc_Instance %s is alive":`O %s da instância está ativo`,"jc_Instance %s is not alive":`O %s da instância não está ativo`,"jc_Invalid JSON":`JSON inválido`,"jc_Invalid JSON file.":`Arquivo JSON inválido.`,"jc_Invalid JSON format. Expected an array.":`Formato JSON inválido. Esperava-se uma matriz.`,"jc_Invalid YAML":`YAML inválido`,"jc_It requires GUI API generation %s, but this admin provides generation %s. Please update the admin.":`É necessário gerar %s da API da GUI, mas este painel de administração já fornece a geração %s. Por favor, atualize o painel de administração.`,"jc_It was built for GUI API generation %s, but this admin provides generation %s. Please update the adapter.":`Foi desenvolvido para geração de API GUI %s, mas este painel de administração fornece geração %s. Por favor, atualize o adaptador.`,"jc_It was probably built for an older admin version. Please update the adapter.":`Provavelmente foi desenvolvido para uma versão administrativa mais antiga. Por favor, atualize o adaptador.`,"jc_JSON editor":`Editor JSON`,jc_Latitude:`Latitude`,"jc_License %s":`Licença %s`,"jc_License agreement":`Contrato de licença`,"jc_License does not exist":`A licença não existe`,"jc_License expired on %s":`A licença expirou em %s`,'jc_License for other product "%s"':`Licença para outro produto "%s"`,"jc_License is for version %s, but required version is %s":`A licença é para a versão %s, mas a versão necessária é %s.`,"jc_License must be converted":`A licença deve ser convertida para uma versão mais recente. Você pode fazê-lo em seu perfil iobroker.net.`,"jc_License not found in license manager. Do you want to read licenses from iobroker.net?":`Licença não encontrada no gerenciador de licenças. Deseja atualizar as licenças do iobroker.net?`,"jc_Listen on all IPs":`Ouça em todos os IPs`,jc_Longitude:`Longitude`,"jc_Move down":`Mover para baixo`,"jc_Move up":`Subir`,jc_Name:`Nome`,"jc_No one license found in license manager":`Nenhuma licença encontrada no gerenciador de licenças`,"jc_No response from admin":`Nenhuma resposta do administrador`,'jc_Non-allowed duplicate entry "%s" in column "%s"':`Entrada duplicada não permitida "%s" na coluna "%s"`,"jc_OAuth Client ID":`ID do cliente OAuth`,"jc_OAuth Client secret":`Segredo do cliente OAuth`,jc_Ok:`Está bem`,"jc_Passwords are not equal!":`As senhas não são iguais!`,"jc_Place your files here or click here to open the browse dialog":`Coloque seus arquivos aqui ou clique aqui para abrir a janela de navegação`,"jc_Please allow popups in your browser for this page!":`Por favor, permita pop-ups no seu navegador para esta página!`,"jc_Please confirm":`Por favor confirme`,"jc_Please create license":`Crie uma licença`,"jc_Please enter the license":`Por favor, insira a licença`,"jc_Please fill in all required fields":`Por favor, preencha todos os campos obrigatórios.`,"jc_Port could be used by %s":`A porta pode ser usada por %s`,"jc_Port is already used by %s":`A porta já está sendo usada por %s`,"jc_Press ENTER Key to add new item":`Pressione a tecla ENTER para adicionar um novo item`,"jc_Private certificate":`certificado privado`,jc_Product:`produtos`,"jc_Public certificate":`certificado público`,"jc_Renew %s access":`Renovar acesso %s`,jc_Replace:`Substituir`,"jc_Request data by instance":`Solicitar dados por instância`,"jc_Request timed out":`Solicitação expirou`,jc_Result:`Resultado`,jc_Save:`Salve `,"jc_Save configuration?":`Salvar configuração?`,"jc_Serial number (UUID)":`Número de série (UUID)`,'jc_Serial number (UUID) "%s" in license is for other device.':`O número de série (UUID) "%s" na licença é para outro dispositivo.`,"jc_Show/hide filter input":`Mostrar/ocultar entrada de filtro`,"jc_Some data are not stored. Discard?":`Alguns dados não são armazenados. Descartar?`,"jc_Successfully authorized. Token valid till %s and will be automatically renewed.":`Autorizado com sucesso. Token válido até %s e será renovado automaticamente.`,"jc_Successfully authorized. Token valid till %s but it can expire as the instance is not running.":`Autorizado com sucesso. Token válido até %s, mas pode expirar, pois a instância não está em execução.`,"jc_Suitable license not found in license manager":`Licença adequada não encontrada no gerenciador de licenças`,"jc_System language":`Idioma do sistema`,"jc_Take browser position":`Tomar posição do navegador`,"jc_Take position from system settings":`Tomar posição a partir das configurações do sistema`,jc_Template:`Modelo`,"jc_Use all available let's encrypt certificates":`Use todos os certificados disponíveis vamos criptografar`,"jc_Use system settings for position":`Use as configurações do sistema para a posição`,"jc_Used system settings":`Configurações do sistema usadas`,jc_ValidTill:`Válida até`,jc_Version:`Versão`,"jc_YAML editor":`Editor YAML`,jc_Yes:`Sim`,"jc_You can filter entries by entering here some text":`Você pode filtrar as entradas digitando aqui algum texto`,"jc_[JsonConfig] Failed to open JSON File":`[JsonConfig] Falha ao abrir o arquivo JSON`,"jc_[JsonConfig] Failed to parse JSON file":`[JsonConfig] Falha ao analisar o arquivo JSON`,jc___different__:`diferente`,jc_false:`FALSO`,jc_locally:`localmente`,jc_none:`Nenhum`,jc_repeat:`repetir`,jc_true:`verdadeiro`,"jc_via internet":`via internet`,sch_all:`tudo`},nl:{"jc_A credential with this name already exists":`Er bestaat al een legitimatiebewijs met deze naam.`,"jc_A unique name is required":`Een unieke naam is vereist.`,"jc_Accept license":`Accepteer licentie`,jc_Actions:`Acties`,"jc_Add credential":`Voeg inloggegevens toe`,"jc_Add row":`Voeg een rij toe`,"jc_All items are filtered out":`Alle items zijn uitgefilterd`,jc_Append:`toevoegen`,"jc_Append %s entries or replace existing?":`%s ingangen toevoegen of bestaande vervangen?`,"jc_Append or replace?":`Toevoegen of vervangen?`,"jc_Are you sure?":`Weet je het zeker?`,jc_Cancel:`Annuleer`,"jc_Cannot add items with set filter":`Kan geen items toevoegen met ingestelde filter`,"jc_Cannot create credential: %s":`Kan geen inloggegevens aanmaken: %s`,"jc_Cannot decode license":`Kan licentie niet decoderen`,"jc_Cannot determine position: System settings are empty and GPS detection is disabled in browser":`Kan positie niet bepalen: systeeminstellingen zijn leeg en GPS-detectie is uitgeschakeld in browser`,'jc_Cannot display the custom component "%s"':`Kan het aangepaste component "%s" niet weergeven.`,"jc_Cannot read licenses: %s":`Kan licenties niet lezen: %s`,"jc_Cannot retrieve options, as instance is offline":`Kan opties niet ophalen, omdat instantie offline is`,"jc_Cannot save configuration because of error in configuration":`Configuratie kan niet worden opgeslagen vanwege een configuratiefout.`,"jc_Cannot upload":`Kan niet uploaden`,"jc_Chained certificate":`Geketend certificaat`,jc_Checked:`Gecontroleerd`,"jc_Click to see in full size":`Klik om de afbeelding op volledige grootte te bekijken.`,"jc_Click to show":`Klik om te tonen`,"jc_Clone current row":`Kloon de huidige rij`,jc_Close:`Dichtbij`,jc_Commercial:`Reclame`,jc_Copied:`Gekopieerd`,"jc_Copied %s":`"%s" gekopieerd`,"jc_Copy content":`Inhoud kopiëren`,jc_Create:`Creëer`,"jc_Credential type":`Referentietype`,'jc_Custom component "%s" was not started':`Aangepaste component "%s" is niet gestart.`,"jc_Define schedule":`Definieer schema`,jc_Delete:`Verwijderen`,"jc_Delete current row":`Huidige rij verwijderen`,"jc_Disable/Enable translation":`Vertaling uitschakelen/inschakelen`,jc_Discard:`Weggooien`,"jc_Do not use let's encrypt":`Gebruik geen let's encrypt`,"jc_Docker is not available":`Docker is niet beschikbaar`,"jc_Docker is not installed or not running":`Docker is niet geïnstalleerd of draait niet`,"jc_Drop file here":`Zet het bestand hier neer`,"jc_Enter the code from that page here":`Voer hier de code van die pagina in`,jc_Error:`Fout`,"jc_Expand/Collapse card":`Kaart uit-/inklappen`,"jc_Export configuration section":`Sectie Exportconfiguratie`,"jc_Export data to %s file":`Exporteer gegevens naar %s bestand`,"jc_Export setting to JSON file":`Exporteer instellingen naar een JSON-bestand.`,"jc_Fallback custom certificates":`Fallback aangepaste certificaten`,"jc_File is too big. Max %sk allowed. Try use SVG.":`Bestand is te groot. Max. %sk toegestaan. Probeer SVG te gebruiken.`,"jc_File will be deleted":`Het bestand wordt verwijderd.`,"jc_Filter and Data Actions":`Filter- en gegevensacties`,"jc_Get %s access":`Krijg %s toegang`,"jc_If the button above does not work, you can authorize manually this app by visiting this url":`Als de bovenstaande knop niet werkt, kunt u deze app handmatig autoriseren door deze url te bezoeken`,"jc_Import and add configuration section":`Configuratiesectie importeren en toevoegen`,"jc_Import and replace configuration section":`Configuratiesectie importeren en vervangen`,"jc_Import data from %s file":`Importeer gegevens uit %s bestand`,"jc_Import from %s":`Importeren uit %s`,"jc_Import settings from JSON file":`Instellingen importeren vanuit een JSON-bestand`,"jc_Instance %s is alive":`Instantie %s leeft`,"jc_Instance %s is not alive":`Instantie %s is niet actief`,"jc_Invalid JSON":`Ongeldige JSON`,"jc_Invalid JSON file.":`Ongeldig JSON-bestand.`,"jc_Invalid JSON format. Expected an array.":`Ongeldige JSON-indeling. Er werd een array verwacht.`,"jc_Invalid YAML":`Ongeldige YAML`,"jc_It requires GUI API generation %s, but this admin provides generation %s. Please update the admin.":`Het vereist GUI API-generatie %s, maar deze beheerder levert generatie %s. Graag de beheerder bijwerken.`,"jc_It was built for GUI API generation %s, but this admin provides generation %s. Please update the adapter.":`Het is gebouwd voor GUI API-generatie %s, maar deze beheerder levert generatie %s. Update de adapter.`,"jc_It was probably built for an older admin version. Please update the adapter.":`Het is waarschijnlijk ontwikkeld voor een oudere beheerdersversie. Update de adapter.`,"jc_JSON editor":`JSON-editor`,jc_Latitude:`Breedtegraad`,"jc_License %s":`Licentie %s`,"jc_License agreement":`Licentieovereenkomst`,"jc_License does not exist":`Licentie bestaat niet`,"jc_License expired on %s":`Licentie verlopen op %s`,'jc_License for other product "%s"':`Licentie voor ander product "%s"`,"jc_License is for version %s, but required version is %s":`De licentie is voor versie %s, maar de vereiste versie is %s.`,"jc_License must be converted":`Licentie moet worden omgezet naar nieuwere versie. U kunt dit doen in uw iobroker.net-profiel.`,"jc_License not found in license manager. Do you want to read licenses from iobroker.net?":`Licentie niet gevonden in licentiebeheer. Wilt u licenties van iobroker.net bijwerken?`,"jc_Listen on all IPs":`Luister op alle IP's`,jc_Longitude:`Lengtegraad`,"jc_Move down":`Naar beneden verplaatsen`,"jc_Move up":`Omhoog gaan`,jc_Name:`Naam`,"jc_No one license found in license manager":`Geen enkele licentie gevonden in licentiebeheer`,"jc_No response from admin":`Geen reactie van de beheerder`,'jc_Non-allowed duplicate entry "%s" in column "%s"':`Niet-toegestane dubbele invoer "%s" in kolom "%s"`,"jc_OAuth Client ID":`OAuth-client-ID`,"jc_OAuth Client secret":`OAuth-clientgeheim`,jc_Ok:`OK`,"jc_Passwords are not equal!":`Wachtwoorden zijn niet gelijk!`,"jc_Place your files here or click here to open the browse dialog":`Plaats uw bestanden hier of klik hier om het bladervenster te openen`,"jc_Please allow popups in your browser for this page!":`Sta pop-ups toe in uw browser voor deze pagina!`,"jc_Please confirm":`Bevestig alstublieft`,"jc_Please create license":`Maak een licentie aan`,"jc_Please enter the license":`Voer de licentie in`,"jc_Please fill in all required fields":`Vul alle verplichte velden in.`,"jc_Port could be used by %s":`Poort kan worden gebruikt door %s`,"jc_Port is already used by %s":`Poort wordt al gebruikt door %s`,"jc_Press ENTER Key to add new item":`Druk op de ENTER-toets om een nieuw item toe te voegen`,"jc_Private certificate":`Privé certificaat`,jc_Product:`Product`,"jc_Public certificate":`Openbaar certificaat`,"jc_Renew %s access":`%s toegang verlengen`,jc_Replace:`Vervangen`,"jc_Request data by instance":`Gegevens opvragen per instantie`,"jc_Request timed out":`Verzoek verlopen`,jc_Result:`Resultaat`,jc_Save:`Sparen`,"jc_Save configuration?":`Configuratie opslaan?`,"jc_Serial number (UUID)":`Serienummer (UUID)`,'jc_Serial number (UUID) "%s" in license is for other device.':`Serienummer (UUID) "%s" in licentie is voor ander apparaat.`,"jc_Show/hide filter input":`Filterinvoer weergeven/verbergen`,"jc_Some data are not stored. Discard?":`Sommige gegevens worden niet opgeslagen. Weggooien?`,"jc_Successfully authorized. Token valid till %s and will be automatically renewed.":`Succesvol geautoriseerd. Token geldig tot %s en wordt automatisch verlengd.`,"jc_Successfully authorized. Token valid till %s but it can expire as the instance is not running.":`Succesvol geautoriseerd. Token geldig tot %s, maar kan verlopen omdat de instantie niet actief is.`,"jc_Suitable license not found in license manager":`Geschikte licentie niet gevonden in licentiebeheer`,"jc_System language":`Systeemtaal`,"jc_Take browser position":`Positie innemen vanuit de browser`,"jc_Take position from system settings":`Neem positie over van systeeminstellingen`,jc_Template:`Sjabloon`,"jc_Use all available let's encrypt certificates":`Gebruik alle beschikbare Let's Encrypt-certificaten`,"jc_Use system settings for position":`Gebruik systeeminstellingen voor positie`,"jc_Used system settings":`Gebruikte systeeminstellingen`,jc_ValidTill:`Geldig tot`,jc_Version:`Versie`,"jc_YAML editor":`YAML-editor`,jc_Yes:`Ja`,"jc_You can filter entries by entering here some text":`U kunt items filteren door hier wat tekst in te voeren`,"jc_[JsonConfig] Failed to open JSON File":`[JsonConfig] Het openen van het JSON-bestand is mislukt.`,"jc_[JsonConfig] Failed to parse JSON file":`[JsonConfig] Het parseren van het JSON-bestand is mislukt.`,jc___different__:`verschillend`,jc_false:`ONWAAR`,jc_locally:`plaatselijk`,jc_none:`geen`,jc_repeat:`herhalen`,jc_true:`WAAR`,"jc_via internet":`via internet`,sch_all:`allemaal`},fr:{"jc_A credential with this name already exists":`Un certificat portant ce nom existe déjà.`,"jc_A unique name is required":`Un nom unique est requis.`,"jc_Accept license":`Accepter la licence`,jc_Actions:`Actes`,"jc_Add credential":`Ajouter un identifiant`,"jc_Add row":`Ajouter une rangée`,"jc_All items are filtered out":`Tous les éléments sont filtrés`,jc_Append:`Ajouter`,"jc_Append %s entries or replace existing?":`Ajouter %s entrées ou remplacer l'existant\xA0?`,"jc_Append or replace?":`Ajouter ou remplacer\xA0?`,"jc_Are you sure?":`Êtes-vous sûr?`,jc_Cancel:`Annuler`,"jc_Cannot add items with set filter":`Impossible d'ajouter des éléments avec le filtre défini`,"jc_Cannot create credential: %s":`Impossible de créer les informations d'identification\xA0: %s`,"jc_Cannot decode license":`Impossible de décoder la licence`,"jc_Cannot determine position: System settings are empty and GPS detection is disabled in browser":`Impossible de déterminer la position\xA0: les paramètres système sont vides et la détection GPS est désactivée dans le navigateur`,'jc_Cannot display the custom component "%s"':`Impossible d'afficher le composant personnalisé « %s »`,"jc_Cannot read licenses: %s":`Impossible de lire les licences\xA0: %s`,"jc_Cannot retrieve options, as instance is offline":`Impossible de récupérer les options, car l'instance est hors ligne`,"jc_Cannot save configuration because of error in configuration":`Impossible d'enregistrer la configuration en raison d'une erreur de configuration.`,"jc_Cannot upload":`Impossible de télécharger`,"jc_Chained certificate":`Certificat chaîné`,jc_Checked:`Vérifié`,"jc_Click to see in full size":`Cliquez pour afficher en taille réelle`,"jc_Click to show":`Cliquez pour afficher`,"jc_Clone current row":`Cloner la ligne actuelle`,jc_Close:`Fermer`,jc_Commercial:`Commercial`,jc_Copied:`Copié`,"jc_Copied %s":`"%s" copié`,"jc_Copy content":`Copier le contenu`,jc_Create:`Créer`,"jc_Credential type":`Type de justificatif d'identité`,'jc_Custom component "%s" was not started':`Le composant personnalisé « %s » n'a pas été démarré.`,"jc_Define schedule":`Définir le calendrier`,jc_Delete:`Supprimer`,"jc_Delete current row":`Supprimer la ligne actuelle`,"jc_Disable/Enable translation":`Activer/Désactiver la traduction`,jc_Discard:`Jeter`,"jc_Do not use let's encrypt":`Ne pas utiliser let's encrypt`,"jc_Docker is not available":`Docker n'est pas disponible`,"jc_Docker is not installed or not running":`Docker n'est pas installé ou n'est pas en cours d'exécution`,"jc_Drop file here":`Déposer le fichier ici`,"jc_Enter the code from that page here":`Entrez le code de cette page ici`,jc_Error:`Erreur`,"jc_Expand/Collapse card":`Carte Développer/Réduire`,"jc_Export configuration section":`Exporter la section de configuration`,"jc_Export data to %s file":`Exporter les données vers le fichier %s`,"jc_Export setting to JSON file":`Paramètres d'exportation vers un fichier JSON`,"jc_Fallback custom certificates":`Certificats personnalisés de secours`,"jc_File is too big. Max %sk allowed. Try use SVG.":`Le fichier est trop volumineux. Max %sk autorisé. Essayez d'utiliser SVG.`,"jc_File will be deleted":`Le fichier sera supprimé`,"jc_Filter and Data Actions":`Actions sur les filtres et les données`,"jc_Get %s access":`Obtenir l'accès %s`,"jc_If the button above does not work, you can authorize manually this app by visiting this url":`Si le bouton ci-dessus ne fonctionne pas, vous pouvez autoriser manuellement cette application en visitant cette URL`,"jc_Import and add configuration section":`Importer et ajouter la section de configuration`,"jc_Import and replace configuration section":`Importer et remplacer la section de configuration`,"jc_Import data from %s file":`Importer des données à partir du fichier %s`,"jc_Import from %s":`Importer depuis %s`,"jc_Import settings from JSON file":`Importer les paramètres à partir d'un fichier JSON`,"jc_Instance %s is alive":`L'instance %s est active`,"jc_Instance %s is not alive":`L'instance %s n'est pas active`,"jc_Invalid JSON":`JSON invalide`,"jc_Invalid JSON file.":`Fichier JSON invalide.`,"jc_Invalid JSON format. Expected an array.":`Format JSON invalide. Tableau attendu.`,"jc_Invalid YAML":`YAML invalide`,"jc_It requires GUI API generation %s, but this admin provides generation %s. Please update the admin.":`Cela nécessite la génération de l'API GUI %s, mais cet administrateur fournit la génération %s. Veuillez mettre à jour l'administrateur.`,"jc_It was built for GUI API generation %s, but this admin provides generation %s. Please update the adapter.":`Il a été conçu pour la génération d'API GUI %s, mais cet administrateur fournit la génération %s. Veuillez mettre à jour l'adaptateur.`,"jc_It was probably built for an older admin version. Please update the adapter.":`Il a probablement été conçu pour une version d'administration plus ancienne. Veuillez mettre à jour l'adaptateur.`,"jc_JSON editor":`Éditeur JSON`,jc_Latitude:`Latitude`,"jc_License %s":`Licence %s`,"jc_License agreement":`Accord de licence`,"jc_License does not exist":`La licence n'existe pas`,"jc_License expired on %s":`Licence expirée le %s`,'jc_License for other product "%s"':`Licence pour un autre produit "%s"`,"jc_License is for version %s, but required version is %s":`La licence concerne la version %s, mais la version requise est %s`,"jc_License must be converted":`La licence doit être convertie en une version plus récente. Vous pouvez le faire dans votre profil iobroker.net.`,"jc_License not found in license manager. Do you want to read licenses from iobroker.net?":`Licence introuvable dans le gestionnaire de licences. Voulez-vous mettre à jour les licences depuis iobroker.net\xA0?`,"jc_Listen on all IPs":`Écoutez sur toutes les adresses IP`,jc_Longitude:`Longitude`,"jc_Move down":`Descendre`,"jc_Move up":`Déplacer vers le haut`,jc_Name:`Nom`,"jc_No one license found in license manager":`Aucune licence trouvée dans le gestionnaire de licences`,"jc_No response from admin":`Aucune réponse de l'administrateur`,'jc_Non-allowed duplicate entry "%s" in column "%s"':`Entrée en double non autorisée « %s » dans la colonne « %s »`,"jc_OAuth Client ID":`ID client OAuth`,"jc_OAuth Client secret":`Secret client OAuth`,jc_Ok:`D'accord`,"jc_Passwords are not equal!":`Les mots de passe ne sont pas égaux !`,"jc_Place your files here or click here to open the browse dialog":`Placez vos fichiers ici ou cliquez ici pour ouvrir la boîte de dialogue de navigation`,"jc_Please allow popups in your browser for this page!":`Veuillez autoriser les popups dans votre navigateur pour cette page\xA0!`,"jc_Please confirm":`Veuillez confirmer`,"jc_Please create license":`Veuillez créer une licence`,"jc_Please enter the license":`Veuillez entrer la licence`,"jc_Please fill in all required fields":`Veuillez remplir tous les champs obligatoires.`,"jc_Port could be used by %s":`Le port pourrait être utilisé par %s`,"jc_Port is already used by %s":`Le port est déjà utilisé par %s`,"jc_Press ENTER Key to add new item":`Appuyez sur la touche ENTRÉE pour ajouter un nouvel élément`,"jc_Private certificate":`Certificat privé`,jc_Product:`Produit`,"jc_Public certificate":`Certificat public`,"jc_Renew %s access":`Renouveler l'accès %s`,jc_Replace:`Remplacer`,"jc_Request data by instance":`Demander des données par instance`,"jc_Request timed out":`La demande a expiré`,jc_Result:`Résultat`,jc_Save:`sauver`,"jc_Save configuration?":`Enregistrer la configuration\xA0?`,"jc_Serial number (UUID)":`Numéro de série (UUID)`,'jc_Serial number (UUID) "%s" in license is for other device.':`Le numéro de série (UUID) "%s" dans la licence est pour un autre appareil.`,"jc_Show/hide filter input":`Afficher/masquer l'entrée de filtre`,"jc_Some data are not stored. Discard?":`Certaines données ne sont pas stockées. Jeter?`,"jc_Successfully authorized. Token valid till %s and will be automatically renewed.":`Autorisation réussie. Jeton valide jusqu'au %s et sera automatiquement renouvelé.`,"jc_Successfully authorized. Token valid till %s but it can expire as the instance is not running.":`Autorisation réussie. Jeton valide jusqu'à %s, mais il peut expirer car l'instance n'est pas en cours d'exécution.`,"jc_Suitable license not found in license manager":`Licence appropriée introuvable dans le gestionnaire de licences`,"jc_System language":`Langue du système`,"jc_Take browser position":`Prendre position depuis le navigateur`,"jc_Take position from system settings":`Prendre position à partir des paramètres système`,jc_Template:`Modèle`,"jc_Use all available let's encrypt certificates":`Utilisez tous les certificats let's encrypt disponibles`,"jc_Use system settings for position":`Utiliser les paramètres système pour la position`,"jc_Used system settings":`Paramètres système utilisés`,jc_ValidTill:`Valable jusqu'au`,jc_Version:`Version`,"jc_YAML editor":`Éditeur YAML`,jc_Yes:`Oui`,"jc_You can filter entries by entering here some text":`Vous pouvez filtrer les entrées en saisissant ici du texte`,"jc_[JsonConfig] Failed to open JSON File":`[JsonConfig] Impossible d'ouvrir le fichier JSON`,"jc_[JsonConfig] Failed to parse JSON file":`[JsonConfig] Échec de l'analyse du fichier JSON`,jc___different__:`différent`,jc_false:`FAUX`,jc_locally:`localement`,jc_none:`rien`,jc_repeat:`répéter`,jc_true:`VRAI`,"jc_via internet":`par Internet`,sch_all:`tout`},it:{"jc_A credential with this name already exists":`Esiste già una credenziale con questo nome`,"jc_A unique name is required":`È richiesto un nome univoco`,"jc_Accept license":`Accetta licenza`,jc_Actions:`Azioni`,"jc_Add credential":`Aggiungi credenziali`,"jc_Add row":`Aggiungi riga`,"jc_All items are filtered out":`Tutti gli elementi vengono filtrati`,jc_Append:`Aggiungere`,"jc_Append %s entries or replace existing?":`Aggiungi %s voci o sostituisci quelle esistenti?`,"jc_Append or replace?":`Aggiungere o sostituire?`,"jc_Are you sure?":`Sei sicuro?`,jc_Cancel:`Annulla`,"jc_Cannot add items with set filter":`Impossibile aggiungere elementi con il filtro impostato`,"jc_Cannot create credential: %s":`Impossibile creare le credenziali: %s`,"jc_Cannot decode license":`Impossibile decodificare la licenza`,"jc_Cannot determine position: System settings are empty and GPS detection is disabled in browser":`Impossibile determinare la posizione: le impostazioni di sistema sono vuote e il rilevamento GPS è disabilitato nel browser`,'jc_Cannot display the custom component "%s"':`Impossibile visualizzare il componente personalizzato "%s"`,"jc_Cannot read licenses: %s":`Impossibile leggere le licenze: %s`,"jc_Cannot retrieve options, as instance is offline":`Impossibile recuperare le opzioni, poiché l'istanza è offline`,"jc_Cannot save configuration because of error in configuration":`Impossibile salvare la configurazione a causa di un errore nella configurazione`,"jc_Cannot upload":`Impossibile caricare`,"jc_Chained certificate":`Certificato incatenato`,jc_Checked:`Controllato`,"jc_Click to see in full size":`Clicca per visualizzare l'immagine a dimensioni intere`,"jc_Click to show":`Clicca per mostrare`,"jc_Clone current row":`Clona riga corrente`,jc_Close:`Vicino`,jc_Commercial:`Commerciale`,jc_Copied:`Copiato`,"jc_Copied %s":`"%s" copiato`,"jc_Copy content":`Copia contenuto`,jc_Create:`Creare`,"jc_Credential type":`Tipo di credenziale`,'jc_Custom component "%s" was not started':`Il componente personalizzato "%s" non è stato avviato`,"jc_Define schedule":`Definisci programma`,jc_Delete:`Elimina`,"jc_Delete current row":`Elimina la riga corrente`,"jc_Disable/Enable translation":`Disabilita/Abilita la traduzione`,jc_Discard:`Scartare`,"jc_Do not use let's encrypt":`Non utilizzare crittografiamo`,"jc_Docker is not available":`Docker non è disponibile`,"jc_Docker is not installed or not running":`Docker non è installato o non è in esecuzione`,"jc_Drop file here":`Trascina il file qui`,"jc_Enter the code from that page here":`Inserisci qui il codice da quella pagina`,jc_Error:`Errore`,"jc_Expand/Collapse card":`Espandi/Comprimi scheda`,"jc_Export configuration section":`Sezione di configurazione dell'esportazione`,"jc_Export data to %s file":`Esporta i dati nel file %s`,"jc_Export setting to JSON file":`Esporta le impostazioni in un file JSON`,"jc_Fallback custom certificates":`Certificati personalizzati di fallback`,"jc_File is too big. Max %sk allowed. Try use SVG.":`Il file è troppo grande. Max %sk consentito. Prova a usare SVG.`,"jc_File will be deleted":`Il file verrà eliminato`,"jc_Filter and Data Actions":`Azioni sui filtri e sui dati`,"jc_Get %s access":`Ottieni l'accesso %s`,"jc_If the button above does not work, you can authorize manually this app by visiting this url":`Se il pulsante sopra non funziona, puoi autorizzare manualmente questa app visitando questo URL`,"jc_Import and add configuration section":`Importa e aggiungi la sezione di configurazione`,"jc_Import and replace configuration section":`Importa e sostituisci la sezione di configurazione`,"jc_Import data from %s file":`Importa i dati dal file %s`,"jc_Import from %s":`Importa da %s`,"jc_Import settings from JSON file":`Importa le impostazioni dal file JSON`,"jc_Instance %s is alive":`Il %s dell'istanza è vivo`,"jc_Instance %s is not alive":`Il TESTO dell'istanza non è vivo`,"jc_Invalid JSON":`JSON non valido`,"jc_Invalid JSON file.":`File JSON non valido.`,"jc_Invalid JSON format. Expected an array.":`Formato JSON non valido. È previsto un array.`,"jc_Invalid YAML":`YAML non valido`,"jc_It requires GUI API generation %s, but this admin provides generation %s. Please update the admin.":`Richiede la generazione dell'API GUI %s, ma questo amministratore fornisce la generazione %s. Si prega di aggiornare l'amministratore.`,"jc_It was built for GUI API generation %s, but this admin provides generation %s. Please update the adapter.":`È stato creato per la generazione dell'API GUI %s, ma questo amministratore fornisce la generazione %s. Si prega di aggiornare l'adattatore.`,"jc_It was probably built for an older admin version. Please update the adapter.":`Probabilmente è stato creato per una versione di amministrazione precedente. Si prega di aggiornare l'adattatore.`,"jc_JSON editor":`Editor JSON`,jc_Latitude:`Latitudine`,"jc_License %s":`Licenza %s`,"jc_License agreement":`Contratto di licenza`,"jc_License does not exist":`La licenza non esiste`,"jc_License expired on %s":`Licenza scaduta il %s`,'jc_License for other product "%s"':`Licenza per altro prodotto "%s"`,"jc_License is for version %s, but required version is %s":`La licenza è per la versione %s, ma la versione richiesta è %s`,"jc_License must be converted":`La licenza deve essere convertita in una versione più recente. Puoi farlo nel tuo profilo iobroker.net.`,"jc_License not found in license manager. Do you want to read licenses from iobroker.net?":`Licenza non trovata nel gestore delle licenze. Vuoi aggiornare le licenze da iobroker.net?`,"jc_Listen on all IPs":`Ascolta su tutti gli IP`,jc_Longitude:`Longitudine`,"jc_Move down":`Abbassati`,"jc_Move up":`Andare avanti`,jc_Name:`Nome`,"jc_No one license found in license manager":`Nessuna licenza trovata nel gestore delle licenze`,"jc_No response from admin":`Nessuna risposta dall'amministratore`,'jc_Non-allowed duplicate entry "%s" in column "%s"':`Voce duplicata non consentita "%s" nella colonna "%s"`,"jc_OAuth Client ID":`ID client OAuth`,"jc_OAuth Client secret":`Segreto del client OAuth`,jc_Ok:`Ok`,"jc_Passwords are not equal!":`Le password non sono uguali!`,"jc_Place your files here or click here to open the browse dialog":`Posiziona i file qui o fai clic qui per aprire la finestra di dialogo Sfoglia`,"jc_Please allow popups in your browser for this page!":`Si prega di abilitare i popup nel browser per questa pagina!`,"jc_Please confirm":`Si prega di confermare`,"jc_Please create license":`Si prega di creare la licenza`,"jc_Please enter the license":`Inserisci la licenza`,"jc_Please fill in all required fields":`Si prega di compilare tutti i campi obbligatori.`,"jc_Port could be used by %s":`La porta potrebbe essere utilizzata da %s`,"jc_Port is already used by %s":`La porta è già utilizzata da %s`,"jc_Press ENTER Key to add new item":`Premere il tasto INVIO per aggiungere un nuovo elemento`,"jc_Private certificate":`Certificato privato`,jc_Product:`Prodotto`,"jc_Public certificate":`Certificato pubblico`,"jc_Renew %s access":`Rinnova l'accesso %s`,jc_Replace:`Sostituire`,"jc_Request data by instance":`Richiedi dati per istanza`,"jc_Request timed out":`Tempo scaduto per la richiesta`,jc_Result:`Risultato`,jc_Save:`Salva`,"jc_Save configuration?":`Salvare la configurazione?`,"jc_Serial number (UUID)":`Numero di serie (UUID)`,'jc_Serial number (UUID) "%s" in license is for other device.':`Il numero di serie (UUID) "%s" nella licenza è per un altro dispositivo.`,"jc_Show/hide filter input":`Mostra/nascondi input filtro`,"jc_Some data are not stored. Discard?":`Alcuni dati non vengono memorizzati. Scartare?`,"jc_Successfully authorized. Token valid till %s and will be automatically renewed.":`Autorizzazione completata. Il token è valido fino al %s e verrà rinnovato automaticamente.`,"jc_Successfully authorized. Token valid till %s but it can expire as the instance is not running.":`Autorizzazione completata. Il token è valido fino al %s, ma potrebbe scadere perché l'istanza non è in esecuzione.`,"jc_Suitable license not found in license manager":`Licenza adatta non trovata nel gestore delle licenze`,"jc_System language":`Linguaggio di sistema`,"jc_Take browser position":`Prendi posizione dal browser`,"jc_Take position from system settings":`Prendi posizione dalle impostazioni di sistema`,jc_Template:`Modello`,"jc_Use all available let's encrypt certificates":`Usa tutti i certificati Let's Encrypt disponibili`,"jc_Use system settings for position":`Usa le impostazioni di sistema per la posizione`,"jc_Used system settings":`Impostazioni di sistema utilizzate`,jc_ValidTill:`Valido fino a`,jc_Version:`Versione`,"jc_YAML editor":`Editor YAML`,jc_Yes:`SÌ`,"jc_You can filter entries by entering here some text":`Puoi filtrare le voci inserendo qui del testo`,"jc_[JsonConfig] Failed to open JSON File":`[JsonConfig] Impossibile aprire il file JSON`,"jc_[JsonConfig] Failed to parse JSON file":`[JsonConfig] Impossibile analizzare il file JSON`,jc___different__:`diverso`,jc_false:`FALSO`,jc_locally:`localmente`,jc_none:`nessuna`,jc_repeat:`ripetere`,jc_true:`VERO`,"jc_via internet":`attraverso internet`,sch_all:`tutti`},es:{"jc_A credential with this name already exists":`Ya existe una credencial con ese nombre.`,"jc_A unique name is required":`Se requiere un nombre único.`,"jc_Accept license":`Aceptar licencia`,jc_Actions:`Comportamiento`,"jc_Add credential":`Agregar credencial`,"jc_Add row":`Añadir fila`,"jc_All items are filtered out":`Todos los elementos se filtran`,jc_Append:`Adjuntar`,"jc_Append %s entries or replace existing?":`¿Agregar %s entradas o reemplazar las existentes?`,"jc_Append or replace?":`¿Agregar o reemplazar?`,"jc_Are you sure?":`¿Estás seguro?`,jc_Cancel:`Cancelar`,"jc_Cannot add items with set filter":`No se pueden agregar elementos con el filtro establecido`,"jc_Cannot create credential: %s":`No se puede crear la credencial: %s`,"jc_Cannot decode license":`No se puede decodificar la licencia`,"jc_Cannot determine position: System settings are empty and GPS detection is disabled in browser":`No se puede determinar la posición: la configuración del sistema está vacía y la detección de GPS está deshabilitada en el navegador`,'jc_Cannot display the custom component "%s"':`No se puede mostrar el componente personalizado "%s"`,"jc_Cannot read licenses: %s":`No se pueden leer licencias: %s`,"jc_Cannot retrieve options, as instance is offline":`No se pueden recuperar las opciones, ya que la instancia está fuera de línea`,"jc_Cannot save configuration because of error in configuration":`No se puede guardar la configuración debido a un error en la configuración.`,"jc_Cannot upload":`no se puede cargar`,"jc_Chained certificate":`certificado encadenado`,jc_Checked:`Comprobado`,"jc_Click to see in full size":`Haz clic para ver en tamaño completo.`,"jc_Click to show":`Haga clic para mostrar`,"jc_Clone current row":`Clonar fila actual`,jc_Close:`Cerca`,jc_Commercial:`Comercial`,jc_Copied:`Copiado`,"jc_Copied %s":`Copiado "%s"`,"jc_Copy content":`Copiar contenido`,jc_Create:`Crear`,"jc_Credential type":`Tipo de credencial`,'jc_Custom component "%s" was not started':`El componente personalizado "%s" no se inició.`,"jc_Define schedule":`Definir horario`,jc_Delete:`Eliminar`,"jc_Delete current row":`Eliminar fila actual`,"jc_Disable/Enable translation":`Desactivar/Activar traducción`,jc_Discard:`Desechar`,"jc_Do not use let's encrypt":`No use vamos a cifrar`,"jc_Docker is not available":`Docker no está disponible`,"jc_Docker is not installed or not running":`Docker no está instalado o no se está ejecutando`,"jc_Drop file here":`Suelta el archivo aquí`,"jc_Enter the code from that page here":`Introduzca el código de esa página aquí`,jc_Error:`Error`,"jc_Expand/Collapse card":`Expandir/Contraer tarjeta`,"jc_Export configuration section":`Exportar sección de configuración`,"jc_Export data to %s file":`Exportar datos al archivo %s`,"jc_Export setting to JSON file":`Exportar configuración a un archivo JSON`,"jc_Fallback custom certificates":`Certificados personalizados alternativos`,"jc_File is too big. Max %sk allowed. Try use SVG.":`El archivo es demasiado grande. Máximo de %sk permitido. Intenta usar SVG.`,"jc_File will be deleted":`El archivo será eliminado`,"jc_Filter and Data Actions":`Acciones de filtrado y datos`,"jc_Get %s access":`Obtener %s acceso`,"jc_If the button above does not work, you can authorize manually this app by visiting this url":`Si el botón de arriba no funciona, puedes autorizar manualmente esta aplicación visitando esta URL`,"jc_Import and add configuration section":`Importar y agregar sección de configuración`,"jc_Import and replace configuration section":`Importar y reemplazar sección de configuración`,"jc_Import data from %s file":`Importar datos del archivo %s`,"jc_Import from %s":`Importar desde %s`,"jc_Import settings from JSON file":`Importar configuración desde un archivo JSON`,"jc_Instance %s is alive":`Instancia %s está vivo`,"jc_Instance %s is not alive":`Instancia %s no está vivo`,"jc_Invalid JSON":`JSON no válido`,"jc_Invalid JSON file.":`Archivo JSON inválido.`,"jc_Invalid JSON format. Expected an array.":`Formato JSON inválido. Se esperaba un array.`,"jc_Invalid YAML":`YAML no válido`,"jc_It requires GUI API generation %s, but this admin provides generation %s. Please update the admin.":`Requiere la generación de la API de la GUI %s, pero este administrador proporciona la generación %s. Por favor, actualice el administrador.`,"jc_It was built for GUI API generation %s, but this admin provides generation %s. Please update the adapter.":`Fue diseñado para la generación de API GUI %s, pero este administrador proporciona la generación %s. Por favor, actualice el adaptador.`,"jc_It was probably built for an older admin version. Please update the adapter.":`Probablemente se diseñó para una versión de administración anterior. Por favor, actualice el adaptador.`,"jc_JSON editor":`editor JSON`,jc_Latitude:`Latitud`,"jc_License %s":`Licencia %s`,"jc_License agreement":`Acuerdo de licencia`,"jc_License does not exist":`La licencia no existe`,"jc_License expired on %s":`La licencia venció el %s`,'jc_License for other product "%s"':`Licencia para otro producto "%s"`,"jc_License is for version %s, but required version is %s":`La licencia es para la versión %s, pero la versión requerida es %s.`,"jc_License must be converted":`La licencia debe convertirse a una versión más reciente. Puedes hacerlo en tu perfil de iobroker.net.`,"jc_License not found in license manager. Do you want to read licenses from iobroker.net?":`Licencia no encontrada en el administrador de licencias. ¿Quieres actualizar las licencias de iobroker.net?`,"jc_Listen on all IPs":`Escuche en todas las IP`,jc_Longitude:`Longitud`,"jc_Move down":`Mover hacia abajo`,"jc_Move up":`Ascender`,jc_Name:`Nombre`,"jc_No one license found in license manager":`No se encontró ninguna licencia en el administrador de licencias`,"jc_No response from admin":`No hay respuesta del administrador`,'jc_Non-allowed duplicate entry "%s" in column "%s"':`Entrada duplicada no permitida "%s" en la columna "%s"`,"jc_OAuth Client ID":`ID de cliente OAuth`,"jc_OAuth Client secret":`Secreto de cliente OAuth`,jc_Ok:`Okay`,"jc_Passwords are not equal!":`¡Las contraseñas no son iguales!`,"jc_Place your files here or click here to open the browse dialog":`Coloque sus archivos aquí o haga clic aquí para abrir el cuadro de diálogo de exploración`,"jc_Please allow popups in your browser for this page!":`¡Permita ventanas emergentes en su navegador para esta página!`,"jc_Please confirm":`Por favor confirmar`,"jc_Please create license":`Por favor cree una licencia`,"jc_Please enter the license":`Por favor ingrese la licencia`,"jc_Please fill in all required fields":`Por favor, rellene todos los campos obligatorios.`,"jc_Port could be used by %s":`El puerto podría ser utilizado por %s`,"jc_Port is already used by %s":`El puerto ya está en uso por %s`,"jc_Press ENTER Key to add new item":`Presione la tecla ENTER para agregar un nuevo elemento`,"jc_Private certificate":`certificado privado`,jc_Product:`Producto`,"jc_Public certificate":`Certificado público`,"jc_Renew %s access":`Renovar el acceso a %s`,jc_Replace:`Reemplazar`,"jc_Request data by instance":`Solicitar datos por instancia`,"jc_Request timed out":`Tiempo de espera agotado`,jc_Result:`Resultado`,jc_Save:`Salvar`,"jc_Save configuration?":`¿Guardar configuración?`,"jc_Serial number (UUID)":`Número de serie (UUID)`,'jc_Serial number (UUID) "%s" in license is for other device.':`El número de serie (UUID) "%s" en la licencia es para otro dispositivo.`,"jc_Show/hide filter input":`Mostrar/ocultar entrada de filtro`,"jc_Some data are not stored. Discard?":`Algunos datos no se almacenan. ¿Desechar?`,"jc_Successfully authorized. Token valid till %s and will be automatically renewed.":`Autorizado correctamente. El token es válido hasta el %s y se renovará automáticamente.`,"jc_Successfully authorized. Token valid till %s but it can expire as the instance is not running.":`Autorizado correctamente. El token es válido hasta %s, pero puede caducar porque la instancia no está en ejecución.`,"jc_Suitable license not found in license manager":`Licencia adecuada no encontrada en el administrador de licencias`,"jc_System language":`Lenguaje del sistema`,"jc_Take browser position":`Tomar posición desde el navegador`,"jc_Take position from system settings":`Tomar posición desde la configuración del sistema`,jc_Template:`Plantilla`,"jc_Use all available let's encrypt certificates":`Utilice todos los certificados let's encrypt disponibles`,"jc_Use system settings for position":`Usar la configuración del sistema para la posición`,"jc_Used system settings":`Configuraciones del sistema usadas`,jc_ValidTill:`Válida hasta`,jc_Version:`Versión`,"jc_YAML editor":`Editor YAML`,jc_Yes:`Sí`,"jc_You can filter entries by entering here some text":`Puede filtrar las entradas ingresando aquí algún texto`,"jc_[JsonConfig] Failed to open JSON File":`[JsonConfig] Error al abrir el archivo JSON`,"jc_[JsonConfig] Failed to parse JSON file":`[JsonConfig] Error al analizar el archivo JSON`,jc___different__:`diferente`,jc_false:`FALSO`,jc_locally:`en la zona`,jc_none:`ninguno`,jc_repeat:`repetir`,jc_true:`VERDADERO`,"jc_via internet":`vía Internet`,sch_all:`todas`},pl:{"jc_A credential with this name already exists":`Poświadczenie o tej nazwie już istnieje`,"jc_A unique name is required":`Wymagana jest unikalna nazwa`,"jc_Accept license":`Zaakceptuj licencję`,jc_Actions:`Akcje`,"jc_Add credential":`Dodaj poświadczenie`,"jc_Add row":`Dodaj wiersz`,"jc_All items are filtered out":`Wszystkie pozycje są odfiltrowane`,jc_Append:`Dodać`,"jc_Append %s entries or replace existing?":`Dołączyć wpisy %s czy zastąpić istniejące?`,"jc_Append or replace?":`Dołączyć czy zastąpić?`,"jc_Are you sure?":`Jesteś pewny?`,jc_Cancel:`Anuluj`,"jc_Cannot add items with set filter":`Nie można dodać elementów z ustawionym filtrem`,"jc_Cannot create credential: %s":`Nie można utworzyć poświadczeń: %s`,"jc_Cannot decode license":`Nie można zdekodować licencji`,"jc_Cannot determine position: System settings are empty and GPS detection is disabled in browser":`Nie można określić pozycji: ustawienia systemu są puste, a wykrywanie GPS jest wyłączone w przeglądarce`,'jc_Cannot display the custom component "%s"':`Nie można wyświetlić niestandardowego komponentu „%s”`,"jc_Cannot read licenses: %s":`Nie można odczytać licencji: %s`,"jc_Cannot retrieve options, as instance is offline":`Nie można pobrać opcji, ponieważ instancja jest w trybie offline`,"jc_Cannot save configuration because of error in configuration":`Nie można zapisać konfiguracji z powodu błędu w konfiguracji`,"jc_Cannot upload":`Nie można przesłać`,"jc_Chained certificate":`Certyfikat łańcuchowy`,jc_Checked:`Sprawdzony`,"jc_Click to see in full size":`Kliknij, aby zobaczyć w pełnym rozmiarze`,"jc_Click to show":`Kliknij, aby pokazać`,"jc_Clone current row":`Sklonuj bieżący wiersz`,jc_Close:`Blisko`,jc_Commercial:`Handlowy`,jc_Copied:`Skopiowano`,"jc_Copied %s":`Skopiowano "%s"`,"jc_Copy content":`Kopiuj zawartość`,jc_Create:`Stwórz`,"jc_Credential type":`Typ poświadczenia`,'jc_Custom component "%s" was not started':`Komponent niestandardowy „%s” nie został uruchomiony`,"jc_Define schedule":`Zdefiniuj harmonogram`,jc_Delete:`Usunąć`,"jc_Delete current row":`Usuń bieżący wiersz`,"jc_Disable/Enable translation":`Wyłącz/Włącz tłumaczenie`,jc_Discard:`Wyrzucać`,"jc_Do not use let's encrypt":`Nie używaj zaszyfrujmy`,"jc_Docker is not available":`Docker nie jest dostępny`,"jc_Docker is not installed or not running":`Docker nie jest zainstalowany lub nie działa`,"jc_Drop file here":`Upuść plik tutaj`,"jc_Enter the code from that page here":`Wpisz kod z tej strony tutaj`,jc_Error:`Błąd`,"jc_Expand/Collapse card":`Rozwiń/Zwiń kartę`,"jc_Export configuration section":`Sekcja konfiguracji eksportu`,"jc_Export data to %s file":`Eksportuj dane do pliku %s`,"jc_Export setting to JSON file":`Eksportuj ustawienia do pliku JSON`,"jc_Fallback custom certificates":`Niestandardowe certyfikaty zastępcze`,"jc_File is too big. Max %sk allowed. Try use SVG.":`Plik jest za duży. Maksymalna dozwolona liczba %sk. Spróbuj użyć SVG.`,"jc_File will be deleted":`Plik zostanie usunięty`,"jc_Filter and Data Actions":`Akcje filtrów i danych`,"jc_Get %s access":`Uzyskaj dostęp %s`,"jc_If the button above does not work, you can authorize manually this app by visiting this url":`Jeśli przycisk powyżej nie działa, możesz autoryzować tę aplikację ręcznie, odwiedzając ten adres URL`,"jc_Import and add configuration section":`Importuj i dodaj sekcję konfiguracji`,"jc_Import and replace configuration section":`Importuj i zastąp sekcję konfiguracji`,"jc_Import data from %s file":`Importuj dane z pliku %s`,"jc_Import from %s":`Importuj z %s`,"jc_Import settings from JSON file":`Importuj ustawienia z pliku JSON`,"jc_Instance %s is alive":`Instancja %s jest aktywna`,"jc_Instance %s is not alive":`Instancja TEKST nie jest aktywna`,"jc_Invalid JSON":`Nieprawidłowy JSON`,"jc_Invalid JSON file.":`Nieprawidłowy plik JSON.`,"jc_Invalid JSON format. Expected an array.":`Nieprawidłowy format JSON. Oczekiwano tablicy.`,"jc_Invalid YAML":`Nieprawidłowy plik YAML`,"jc_It requires GUI API generation %s, but this admin provides generation %s. Please update the admin.":`Wymaga generacji interfejsu API GUI %s, ale ten administrator zapewnia generację %s. Zaktualizuj administratora.`,"jc_It was built for GUI API generation %s, but this admin provides generation %s. Please update the adapter.":`Został stworzony do generowania interfejsu API GUI %s, ale ten administrator zapewnia generowanie %s. Proszę zaktualizować adapter.`,"jc_It was probably built for an older admin version. Please update the adapter.":`Prawdopodobnie został stworzony dla starszej wersji administratora. Proszę zaktualizować adapter.`,"jc_JSON editor":`Edytor JSON`,jc_Latitude:`Szerokość`,"jc_License %s":`Licencja %s`,"jc_License agreement":`Umowa licencyjna`,"jc_License does not exist":`Licencja nie istnieje`,"jc_License expired on %s":`Licencja wygasła w dniu %s`,'jc_License for other product "%s"':`Licencja na inny produkt „%s”`,"jc_License is for version %s, but required version is %s":`Licencja jest przeznaczona dla wersji %s, ale wymagana jest wersja %s`,"jc_License must be converted":`Licencja musi zostać przekonwertowana na nowszą wersję. Możesz to zrobić w swoim profilu iobroker.net.`,"jc_License not found in license manager. Do you want to read licenses from iobroker.net?":`Nie znaleziono licencji w menedżerze licencji. Chcesz zaktualizować licencje z iobroker.net?`,"jc_Listen on all IPs":`Słuchaj na wszystkich adresach IP`,jc_Longitude:`Długość geograficzna`,"jc_Move down":`Padnij`,"jc_Move up":`Podnieść`,jc_Name:`Nazwa`,"jc_No one license found in license manager":`Nie znaleziono licencji w menedżerze licencji`,"jc_No response from admin":`Brak odpowiedzi od administratora`,'jc_Non-allowed duplicate entry "%s" in column "%s"':`Niedozwolony duplikat wpisu „%s” w kolumnie „%s”`,"jc_OAuth Client ID":`Identyfikator klienta OAuth`,"jc_OAuth Client secret":`Tajny klucz klienta OAuth`,jc_Ok:`Dobrze`,"jc_Passwords are not equal!":`Hasła nie są równe!`,"jc_Place your files here or click here to open the browse dialog":`Umieść swoje pliki tutaj lub kliknij tutaj, aby otworzyć okno dialogowe przeglądania`,"jc_Please allow popups in your browser for this page!":`Proszę zezwolić na wyświetlanie wyskakujących okienek w przeglądarce dla tej strony!`,"jc_Please confirm":`Proszę potwierdzić`,"jc_Please create license":`Utwórz licencję`,"jc_Please enter the license":`Proszę wprowadzić licencję`,"jc_Please fill in all required fields":`Proszę wypełnić wszystkie wymagane pola`,"jc_Port could be used by %s":`Port może być używany przez %s`,"jc_Port is already used by %s":`Port jest już używany przez %s`,"jc_Press ENTER Key to add new item":`Naciśnij klawisz ENTER, aby dodać nowy element`,"jc_Private certificate":`Prywatny certyfikat`,jc_Product:`Produkt`,"jc_Public certificate":`Certyfikat publiczny`,"jc_Renew %s access":`Odnów dostęp %s`,jc_Replace:`Zastępować`,"jc_Request data by instance":`Żądanie danych według instancji`,"jc_Request timed out":`Upłynął limit czasu żądania`,jc_Result:`Wynik`,jc_Save:`Zapisać`,"jc_Save configuration?":`Zapisać konfigurację?`,"jc_Serial number (UUID)":`Numer seryjny (UUID)`,'jc_Serial number (UUID) "%s" in license is for other device.':`Numer seryjny (UUID) „%s” w licencji dotyczy innego urządzenia.`,"jc_Show/hide filter input":`Pokaż/ukryj wejście filtra`,"jc_Some data are not stored. Discard?":`Niektóre dane nie są przechowywane. Wyrzucać?`,"jc_Successfully authorized. Token valid till %s and will be automatically renewed.":`Pomyślnie autoryzowano. Token ważny do %s i zostanie automatycznie odnowiony.`,"jc_Successfully authorized. Token valid till %s but it can expire as the instance is not running.":`Pomyślnie autoryzowano. Token ważny do %s, ale może wygasnąć, ponieważ instancja nie jest uruchomiona.`,"jc_Suitable license not found in license manager":`Nie znaleziono odpowiedniej licencji w menedżerze licencji`,"jc_System language":`Język systemu`,"jc_Take browser position":`Zajmij pozycję z przeglądarki`,"jc_Take position from system settings":`Zajmij pozycję z ustawień systemowych`,jc_Template:`Szablon`,"jc_Use all available let's encrypt certificates":`Użyj wszystkich dostępnych certyfikatów Let's Encrypt`,"jc_Use system settings for position":`Użyj ustawień systemowych dla pozycji`,"jc_Used system settings":`Używane ustawienia systemowe`,jc_ValidTill:`Obowiązuje do`,jc_Version:`Wersja`,"jc_YAML editor":`Edytor YAML`,jc_Yes:`Tak`,"jc_You can filter entries by entering here some text":`Możesz filtrować wpisy, wpisując tutaj jakiś tekst`,"jc_[JsonConfig] Failed to open JSON File":`[JsonConfig] Nie udało się otworzyć pliku JSON`,"jc_[JsonConfig] Failed to parse JSON file":`[JsonConfig] Nie udało się przeanalizować pliku JSON`,jc___different__:`różne`,jc_false:`FAŁSZ`,jc_locally:`lokalnie`,jc_none:`Żaden`,jc_repeat:`powtarzać`,jc_true:`PRAWDA`,"jc_via internet":`przez internet`,sch_all:`wszystko`},uk:{"jc_A credential with this name already exists":`Облікові дані з таким ім'ям вже існують`,"jc_A unique name is required":`Потрібне унікальне ім'я`,"jc_Accept license":`Прийняти ліцензію`,jc_Actions:`Дії`,"jc_Add credential":`Додати облікові дані`,"jc_Add row":`Додати рядок`,"jc_All items are filtered out":`Усі елементи відфільтровано`,jc_Append:`Додайте`,"jc_Append %s entries or replace existing?":`Додати %s записів чи замінити наявні?`,"jc_Append or replace?":`Додати чи замінити?`,"jc_Are you sure?":`Ти впевнений?`,jc_Cancel:`Скасувати`,"jc_Cannot add items with set filter":`Неможливо додати елементи зі встановленим фільтром`,"jc_Cannot create credential: %s":`Не вдається створити облікові дані: %s`,"jc_Cannot decode license":`Неможливо розшифрувати ліцензію`,"jc_Cannot determine position: System settings are empty and GPS detection is disabled in browser":`Неможливо визначити положення: системні налаштування порожні, а визначення GPS вимкнено в браузері`,'jc_Cannot display the custom component "%s"':`Не вдається відобразити користувацький компонент "%s"`,"jc_Cannot read licenses: %s":`Неможливо прочитати ліцензії: %s`,"jc_Cannot retrieve options, as instance is offline":`Неможливо отримати параметри, оскільки екземпляр офлайн`,"jc_Cannot save configuration because of error in configuration":`Не вдалося зберегти конфігурацію через помилку в конфігурації`,"jc_Cannot upload":`Неможливо завантажити`,"jc_Chained certificate":`Прикутий сертифікат`,jc_Checked:`Перевірено`,"jc_Click to see in full size":`Натисніть, щоб побачити в повному розмірі`,"jc_Click to show":`Натисніть, щоб показати`,"jc_Clone current row":`Клонувати поточний рядок`,jc_Close:`Закрити`,jc_Commercial:`Комерційний`,jc_Copied:`Скопійовано`,"jc_Copied %s":`Скопійовано "%s"`,"jc_Copy content":`Скопіюйте вміст`,jc_Create:`Створити`,"jc_Credential type":`Тип облікових даних`,'jc_Custom component "%s" was not started':`Користувацький компонент "%s" не запущено`,"jc_Define schedule":`Визначити розклад`,jc_Delete:`Видалити`,"jc_Delete current row":`Видалити поточний рядок`,"jc_Disable/Enable translation":`Вимкнути/Увімкнути переклад`,jc_Discard:`Відкинути`,"jc_Do not use let's encrypt":`Не використовуйте let's encrypt`,"jc_Docker is not available":`Докер недоступний`,"jc_Docker is not installed or not running":`Docker не встановлено або не працює`,"jc_Drop file here":`Перетягніть файл сюди`,"jc_Enter the code from that page here":`Введіть тут код з цієї сторінки`,jc_Error:`Помилка`,"jc_Expand/Collapse card":`Розгорнути/Згорнути картку`,"jc_Export configuration section":`Розділ конфігурації експорту`,"jc_Export data to %s file":`Експортувати дані у файл %s`,"jc_Export setting to JSON file":`Експорт налаштувань у файл JSON`,"jc_Fallback custom certificates":`Запасні спеціальні сертифікати`,"jc_File is too big. Max %sk allowed. Try use SVG.":`Файл завеликий. Максимально дозволено %sk. Спробуйте використовувати SVG.`,"jc_File will be deleted":`Файл буде видалено`,"jc_Filter and Data Actions":`Фільтр і дії з даними`,"jc_Get %s access":`Отримайте доступ %s`,"jc_If the button above does not work, you can authorize manually this app by visiting this url":`Якщо кнопка вище не працює, ви можете авторизувати цю програму вручну, перейшовши за цим посиланням`,"jc_Import and add configuration section":`Розділ імпорту та додавання конфігурації`,"jc_Import and replace configuration section":`Розділ імпорту та заміни конфігурації`,"jc_Import data from %s file":`Імпортувати дані з файлу %s`,"jc_Import from %s":`Імпортувати з %s`,"jc_Import settings from JSON file":`Імпорт налаштувань з JSON-файлу`,"jc_Instance %s is alive":`Примірник %s живий`,"jc_Instance %s is not alive":`Примірник %s не живий`,"jc_Invalid JSON":`Недійсний JSON`,"jc_Invalid JSON file.":`Недійсний JSON-файл.`,"jc_Invalid JSON format. Expected an array.":`Недійсний формат JSON. Очікується масив.`,"jc_Invalid YAML":`Недійсний YAML`,"jc_It requires GUI API generation %s, but this admin provides generation %s. Please update the admin.":`Потрібна генерація API графічного інтерфейсу %s, але цей адміністратор надає генерацію %s. Будь ласка, оновіть адміністраторську версію.`,"jc_It was built for GUI API generation %s, but this admin provides generation %s. Please update the adapter.":`Його було створено для покоління GUI API %s, але цей адміністратор надає покоління %s. Будь ласка, оновіть адаптер.`,"jc_It was probably built for an older admin version. Please update the adapter.":`Ймовірно, його було створено для старішої версії адміністратора. Будь ласка, оновіть адаптер.`,"jc_JSON editor":`Редактор JSON`,jc_Latitude:`Широта`,"jc_License %s":`Ліцензія %s`,"jc_License agreement":`Ліцензійна угода`,"jc_License does not exist":`Ліцензії не існує`,"jc_License expired on %s":`Термін дії ліцензії закінчився %s`,'jc_License for other product "%s"':`Ліцензія на інший продукт "%s"`,"jc_License is for version %s, but required version is %s":`Ліцензія для версії %s, але потрібна версія %s`,"jc_License must be converted":`Ліцензію необхідно конвертувати до новішої версії. Ви можете зробити це у своєму профілі на iobroker.net.`,"jc_License not found in license manager. Do you want to read licenses from iobroker.net?":`Ліцензія не знайдена в менеджері ліцензій. Хочете оновити ліцензії з iobroker.net?`,"jc_Listen on all IPs":`Прослуховування на всіх IP`,jc_Longitude:`Довгота`,"jc_Move down":`Рухатися вниз`,"jc_Move up":`Рухатися вгору`,jc_Name:`Ім'я`,"jc_No one license found in license manager":`У менеджері ліцензій не знайдено жодної ліцензії`,"jc_No response from admin":`Немає відповіді від адміністратора`,'jc_Non-allowed duplicate entry "%s" in column "%s"':`Недозволений дублікат запису "%s" у стовпці "%s"`,"jc_OAuth Client ID":`Ідентифікатор клієнта OAuth`,"jc_OAuth Client secret":`Секрет клієнта OAuth`,jc_Ok:`В порядку`,"jc_Passwords are not equal!":`Паролі не бувають рівними!`,"jc_Place your files here or click here to open the browse dialog":`Розмістіть свої файли тут або натисніть тут, щоб відкрити діалогове вікно перегляду`,"jc_Please allow popups in your browser for this page!":`Будь ласка, дозвольте спливаючі вікна у вашому браузері для цієї сторінки!`,"jc_Please confirm":`Будь-ласка підтвердіть`,"jc_Please create license":`Будь ласка, створіть ліцензію`,"jc_Please enter the license":`Будь ласка, введіть ліцензію`,"jc_Please fill in all required fields":`Будь ласка, заповніть усі обов'язкові поля`,"jc_Port could be used by %s":`Порт може використовуватися %s`,"jc_Port is already used by %s":`Порт уже використовується %s`,"jc_Press ENTER Key to add new item":`Натисніть клавішу ENTER, щоб додати новий елемент`,"jc_Private certificate":`Приватний сертифікат`,jc_Product:`Продукт`,"jc_Public certificate":`Публічний сертифікат`,"jc_Renew %s access":`Поновити доступ %s`,jc_Replace:`Замінити`,"jc_Request data by instance":`Запит даних за екземпляром`,"jc_Request timed out":`Час запиту вичерпано`,jc_Result:`Результат`,jc_Save:`зберегти`,"jc_Save configuration?":`Зберегти конфігурацію?`,"jc_Serial number (UUID)":`Серійний номер (UUID)`,'jc_Serial number (UUID) "%s" in license is for other device.':`Серійний номер (UUID) "%s" у ліцензії призначений для іншого пристрою.`,"jc_Show/hide filter input":`Показати/сховати введення фільтра`,"jc_Some data are not stored. Discard?":`Деякі дані не зберігаються. Відкинути?`,"jc_Successfully authorized. Token valid till %s and will be automatically renewed.":`Авторизацію успішно пройшло. Токен дійсний до %s та буде автоматично поновлено.`,"jc_Successfully authorized. Token valid till %s but it can expire as the instance is not running.":`Авторизацію успішно виконано. Токен дійсний до %s, але його термін дії може закінчитися, оскільки екземпляр не запущено.`,"jc_Suitable license not found in license manager":`Відповідна ліцензія не знайдена в менеджері ліцензій`,"jc_System language":`Системна мова`,"jc_Take browser position":`Займіть позицію з браузера`,"jc_Take position from system settings":`Займіть позицію в налаштуваннях системи`,jc_Template:`Шаблон`,"jc_Use all available let's encrypt certificates":`Використовуйте всі доступні сертифікати let's encrypt`,"jc_Use system settings for position":`Використовуйте системні налаштування для позиції`,"jc_Used system settings":`Використані системні налаштування`,jc_ValidTill:`Дійсний до`,jc_Version:`Версія`,"jc_YAML editor":`Редактор YAML`,jc_Yes:`Так`,"jc_You can filter entries by entering here some text":`Ви можете фільтрувати записи, ввівши тут певний текст`,"jc_[JsonConfig] Failed to open JSON File":`[JsonConfig] Не вдалося відкрити JSON-файл`,"jc_[JsonConfig] Failed to parse JSON file":`[JsonConfig] Не вдалося проаналізувати JSON-файл`,jc___different__:`інший`,jc_false:`НЕПРАВДА`,jc_locally:`локально`,jc_none:`немає`,jc_repeat:`повторити`,jc_true:`ПРАВДА`,"jc_via internet":`через інтернет`,sch_all:`все`},"zh-cn":{"jc_A credential with this name already exists":`已存在同名凭证`,"jc_A unique name is required":`需要一个唯一的名称。`,"jc_Accept license":`接受许可`,jc_Actions:`操作`,"jc_Add credential":`添加凭据`,"jc_Add row":`添加行`,"jc_All items are filtered out":`所有项目都被过滤掉`,jc_Append:`附加`,"jc_Append %s entries or replace existing?":`追加 %s 条目还是替换现有条目?`,"jc_Append or replace?":`追加还是替换?`,"jc_Are you sure?":`你确定吗?`,jc_Cancel:`取消`,"jc_Cannot add items with set filter":`无法使用设置过滤器添加项目`,"jc_Cannot create credential: %s":`无法创建凭证:%s`,"jc_Cannot decode license":`无法解码许可证`,"jc_Cannot determine position: System settings are empty and GPS detection is disabled in browser":`无法确定位置:系统设置为空且浏览器中禁用了 GPS 检测`,'jc_Cannot display the custom component "%s"':`无法显示自定义组件“%s”`,"jc_Cannot read licenses: %s":`无法读取许可证:%s`,"jc_Cannot retrieve options, as instance is offline":`无法检索选项,因为实例处于脱机状态`,"jc_Cannot save configuration because of error in configuration":`由于配置错误,无法保存配置。`,"jc_Cannot upload":`无法上传`,"jc_Chained certificate":`链式证书`,jc_Checked:`勾选`,"jc_Click to see in full size":`点击查看完整尺寸`,"jc_Click to show":`点击显示`,"jc_Clone current row":`克隆当前行`,jc_Close:`关`,jc_Commercial:`商业的`,jc_Copied:`复制的`,"jc_Copied %s":`复制的"%s"`,"jc_Copy content":`复制内容`,jc_Create:`创建`,"jc_Credential type":`凭证类型`,'jc_Custom component "%s" was not started':`自定义组件“%s”未启动`,"jc_Define schedule":`定义时间表`,jc_Delete:`删除`,"jc_Delete current row":`删除当前行`,"jc_Disable/Enable translation":`禁用/启用翻译`,jc_Discard:`丢弃`,"jc_Do not use let's encrypt":`不要使用让我们加密`,"jc_Docker is not available":`Docker 不可用`,"jc_Docker is not installed or not running":`Docker 未安装或未运行`,"jc_Drop file here":`将档案放在这里`,"jc_Enter the code from that page here":`在此处输入该页面的代码`,jc_Error:`错误`,"jc_Expand/Collapse card":`展开/折叠卡`,"jc_Export configuration section":`导出配置部分`,"jc_Export data to %s file":`将数据导出到 %s 文件`,"jc_Export setting to JSON file":`将设置导出到 JSON 文件`,"jc_Fallback custom certificates":`后备自定义证书`,"jc_File is too big. Max %sk allowed. Try use SVG.":`文件太大。允许的最大字节%s数。尝试使用 SVG。`,"jc_File will be deleted":`文件将被删除`,"jc_Filter and Data Actions":`过滤和数据操作`,"jc_Get %s access":`获取 %s 访问权限`,"jc_If the button above does not work, you can authorize manually this app by visiting this url":`如果上面的按钮不起作用,您可以通过访问此网址手动授权此应用`,"jc_Import and add configuration section":`导入并添加配置部分`,"jc_Import and replace configuration section":`导入和替换配置部分`,"jc_Import data from %s file":`从 %s 文件导入数据`,"jc_Import from %s":`从 %s 导入`,"jc_Import settings from JSON file":`从 JSON 文件导入设置`,"jc_Instance %s is alive":`实例 %s 是活动的`,"jc_Instance %s is not alive":`实例 %s 不存在`,"jc_Invalid JSON":`JSON 无效`,"jc_Invalid JSON file.":`无效的JSON文件。`,"jc_Invalid JSON format. Expected an array.":`JSON格式无效。应为数组。`,"jc_Invalid YAML":`无效的 YAML`,"jc_It requires GUI API generation %s, but this admin provides generation %s. Please update the admin.":`它需要生成 GUI API,但此管理员提供的是生成功能。请更新管理员。`,"jc_It was built for GUI API generation %s, but this admin provides generation %s. Please update the adapter.":`它原本是为 GUI API 生成 %s 而设计的,但此管理员提供了生成 %s 的功能。请更新适配器。`,"jc_It was probably built for an older admin version. Please update the adapter.":`这可能是为旧版管理后台构建的。请更新适配器。`,"jc_JSON editor":`JSON 编辑器`,jc_Latitude:`纬度`,"jc_License %s":`许可证 %s`,"jc_License agreement":`许可协议`,"jc_License does not exist":`许可证不存在`,"jc_License expired on %s":`许可证已于 %s 过期`,'jc_License for other product "%s"':`其他产品“%s”的许可证`,"jc_License is for version %s, but required version is %s":`许可证适用于版本 %s,但所需版本为 %s。`,"jc_License must be converted":`许可证必须转换为更新版本。您可以在 iobroker.net 个人资料中执行此操作。`,"jc_License not found in license manager. Do you want to read licenses from iobroker.net?":`在许可证管理器中找不到许可证。您要从 iobroker.net 更新许可证吗?`,"jc_Listen on all IPs":`监听所有IP`,jc_Longitude:`经度`,"jc_Move down":`下移`,"jc_Move up":`提升`,jc_Name:`姓名`,"jc_No one license found in license manager":`许可证管理器中未找到任何许可证`,"jc_No response from admin":`管理员没有回应`,'jc_Non-allowed duplicate entry "%s" in column "%s"':`列“%s”中存在不允许的重复条目“%s”。`,"jc_OAuth Client ID":`OAuth客户端ID`,"jc_OAuth Client secret":`OAuth 客户端密钥`,jc_Ok:`好`,"jc_Passwords are not equal!":`密码不相等!`,"jc_Place your files here or click here to open the browse dialog":`将文件放在此处或单击此处打开浏览对话框`,"jc_Please allow popups in your browser for this page!":`请允许浏览器弹出此页面!`,"jc_Please confirm":`请确认`,"jc_Please create license":`请创建许可证`,"jc_Please enter the license":`请输入许可证`,"jc_Please fill in all required fields":`请填写所有必填字段`,"jc_Port could be used by %s":`%s 可以使用端口`,"jc_Port is already used by %s":`端口已被 %s 使用`,"jc_Press ENTER Key to add new item":`按 ENTER 键添加新项目`,"jc_Private certificate":`私有证书`,jc_Product:`产品`,"jc_Public certificate":`公共证书`,"jc_Renew %s access":`续订 %s 访问权限`,jc_Replace:`代替`,"jc_Request data by instance":`按实例请求数据`,"jc_Request timed out":`请求超时`,jc_Result:`结果`,jc_Save:`保存`,"jc_Save configuration?":`保存配置?`,"jc_Serial number (UUID)":`序列号 (UUID)`,'jc_Serial number (UUID) "%s" in license is for other device.':`许可证中的序列号 (UUID)“%s”用于其他设备。`,"jc_Show/hide filter input":`显示/隐藏过滤器输入`,"jc_Some data are not stored. Discard?":`部分数据未存储。丢弃?`,"jc_Successfully authorized. Token valid till %s and will be automatically renewed.":`授权成功。令牌有效期至 %s,并将自动续订。`,"jc_Successfully authorized. Token valid till %s but it can expire as the instance is not running.":`授权成功。令牌有效期至 %s,但由于实例未运行,令牌可能会过期。`,"jc_Suitable license not found in license manager":`在许可证管理器中找不到合适的许可证`,"jc_System language":`系统语言`,"jc_Take browser position":`从浏览器获取位置`,"jc_Take position from system settings":`从系统设置中获取位置`,jc_Template:`模板`,"jc_Use all available let's encrypt certificates":`使用所有可用的让我们加密证书`,"jc_Use system settings for position":`使用系统设置定位`,"jc_Used system settings":`使用的系统设置`,jc_ValidTill:`有效期至`,jc_Version:`版本`,"jc_YAML editor":`YAML 编辑器`,jc_Yes:`是的`,"jc_You can filter entries by entering here some text":`您可以通过在此处输入一些文本来过滤条目`,"jc_[JsonConfig] Failed to open JSON File":`[JsonConfig] 打开 JSON 文件失败`,"jc_[JsonConfig] Failed to parse JSON file":`[JsonConfig] 解析 JSON 文件失败`,jc___different__:`不同的`,jc_false:`错误的`,jc_locally:`本地`,jc_none:`没有任何`,jc_repeat:`重复`,jc_true:`真的`,"jc_via internet":`通过互联网`,sch_all:`全选`}});var Mw=3e3,Nw={root:{width:`100%`,height:`100%`,display:`flex`,flexDirection:`column`}},Pw=class e extends pn{constructor(e){super(e),J(this,`forceUpdateHandlers`,void 0),J(this,`errorTimeout`,null),J(this,`errorCached`,null),J(this,`oContext`,void 0),J(this,`cachedObjects`,{}),J(this,`onCommandRunning`,e=>this.setState({commandRunning:e})),J(this,`onAlive`,(e,t)=>{!!(t!=null&&t.val)!==this.state.alive&&this.setState({alive:!!(t!=null&&t.val)})}),J(this,`onChange`,(e,t,n,r)=>{if(this.props.onValueChange)this.props.onValueChange(e,t,!!r),n==null||n();else if(e&&this.props.onChange){let t={changed:JSON.stringify(e)!==this.state.originalData};this.setState(t,()=>{var i,a;(i=(a=this.props).onChange)==null||i.call(a,e,!!t.changed,!!r),n==null||n()})}else if(r){var i,a;(i=(a=this.props).onChange)==null||i.call(a,null,void 0,r)}}),J(this,`onError`,(e,t)=>{this.errorCached=this.errorCached||JSON.parse(JSON.stringify(this.state.errors));let n=this.errorCached;n&&e&&(t?n[e]=t:delete n[e]),this.errorTimeout&&=(clearTimeout(this.errorTimeout),null),JSON.stringify(n)===JSON.stringify(this.state.errors)?this.errorCached=null:this.errorTimeout=setTimeout(()=>this.setState({errors:this.errorCached||{}},()=>{this.errorTimeout=null,this.errorCached=null,this.props.onError(!!Object.keys(this.state.errors).length)}),50)}),J(this,`getCachedObject`,async e=>{if(this.cachedObjects[e]!==void 0)return this.cachedObjects[e];try{this.cachedObjects[e]=await this.props.socket.getObject(e)??null}catch(t){console.error(t),this.cachedObjects[e]=null}return this.cachedObjects[e]}),J(this,`changeLanguage`,()=>{this.forceUpdate()}),J(this,`forceAttrUpdate`,(e,t)=>{Array.isArray(e)?e.forEach(e=>this.forceUpdateHandlers[e]&&this.forceUpdateHandlers[e](t)):this.forceUpdateHandlers[e]&&this.forceUpdateHandlers[e](t)}),J(this,`registerOnForceUpdate`,(e,t)=>{t?this.forceUpdateHandlers[e]=t:this.forceUpdateHandlers[e]&&delete this.forceUpdateHandlers[e]}),this.state={originalData:JSON.stringify(this.props.data),changed:!1,errors:{},updateData:this.props.updateData||0,systemConfig:null,hostInfo:null,alive:!1,commandRunning:!1,schema:JSON.parse(JSON.stringify(this.props.schema))},this.forceUpdateHandlers={},this.buildDependencies(this.state.schema),this.readData().catch(e=>console.error(`Cannot read data: ${e}`))}static getDerivedStateFromProps(e,t){return e.updateData===t.updateData?null:{updateData:e.updateData,originalData:JSON.stringify(e.data),schema:JSON.parse(JSON.stringify(e.schema))}}static async loadI18n(e,t,n){if(t===!0||t&&typeof t==`string`){let r=Y.getLanguage(),i=typeof t==`string`?t:`i18n`,a=await e.fileExists(`${n}.admin`,`${i}/${r}.json`),o;if(a?o=`${i}/${r}.json`:(a=await e.fileExists(`${n}.admin`,`${i}/${r}/translations.json`),a?o=`${i}/${r}/translations.json`:r!==`en`&&(a=await e.fileExists(`${n}.admin`,`${i}/en.json`),a?o=`${i}/en.json`:(a=await e.fileExists(`${n}.admin`,`${i}/en/translations.json`),a&&(o=`${i}/en/translations.json`)))),o){let t=await e.readFile(`${n}.admin`,o),i;i=t.file===void 0?t:t.file;try{let e=JSON.parse(i);Y.extendTranslations(e,r)}catch(e){return console.error(`Cannot parse language file "${n}.admin/${o}: ${e}`),``}return o}return console.warn(`Cannot find i18n for ${n} / ${o}`),``}return t&&typeof t==`object`&&Y.extendTranslations(t),``}async readData(){let e;try{e=this.props.socket.getCompactSystemConfig?await this.props.socket.getCompactSystemConfig():await this.getCachedObject(`system.config`)||void 0;let t=await this.props.socket.getState(`system.adapter.${this.props.adapterName}.${this.props.instance}.alive`);this.setState({systemConfig:(e==null?void 0:e.common)||{},hostInfo:await this.readHostInfo(),alive:!!(t!=null&&t.val)},()=>{this.updateContext(!0),this.props.custom||this.props.socket.subscribeState(`system.adapter.${this.props.adapterName}.${this.props.instance}.alive`,this.onAlive)})}catch(e){console.error(`Cannot read system config: ${e}`)}}async readHostInfo(){var t,n,r,i,a,o,s,c;let l=((t=this.props.common)==null?void 0:t.host)||((n=this.props.instanceObj)==null||(n=n.common)==null?void 0:n.host),u=l?await this.getCachedObject(`system.host.${l}`):null,d={id:l||``,os:(u==null||(r=u.native)==null||(r=r.os)==null?void 0:r.platform)||``,osType:(u==null||(i=u.native)==null||(i=i.os)==null?void 0:i.type)||``,arch:(u==null||(a=u.native)==null||(a=a.os)==null?void 0:a.arch)||``,release:(u==null||(o=u.native)==null||(o=o.os)==null?void 0:o.release)||``,nodeVersion:(u==null||(s=u.native)==null||(s=s.process)==null||(s=s.versions)==null?void 0:s.node)||``,controllerVersion:(u==null||(c=u.common)==null?void 0:c.installedVersion)||``};if(l&&e.usesDocker(this.props.schema))try{let e=await this.props.socket.getState(`system.host.${l}.alive`);if((e==null?void 0:e.val)!==!1){let e=await this.props.socket.getHostInfoShort(l,!1,Mw);if(e){var f,p;d.docker=((f=e.dockerInformation)==null?void 0:f.isDocker)??e.Platform===`docker`,(p=e.dockerInformation)!=null&&p.isOfficial&&(d.dockerVersion=e.dockerInformation.officialVersion)}}}catch(e){console.warn(`Cannot read the docker information of ${l}: ${e}`)}return d}static usesDocker(e){let t=JSON.stringify(e);return t.includes(`"docker":`)||t.includes(`_host.docker`)}flatten(e,t){return t||={},e.items&&Object.keys(e.items).forEach(n=>{t[n]=e.items[n],this.flatten(e.items[n],t)}),t}buildDependencies(e){let t=this.flatten(e);Object.keys(t).forEach(e=>{var n,r,i,a,o;if((n=t[e].confirm)!=null&&n.alsoDependsOn){var s;(s=t[e].confirm)==null||s.alsoDependsOn.forEach(n=>{if(!t[n])console.error(`[JsonConfigComponent] Attribute ${n} does not exist!`),n.startsWith(`data.`)&&console.warn(`[JsonConfigComponent] please use "${n.replace(/^data\./,``)}" instead of "${n}"`);else{t[n].confirmDependsOn=t[n].confirmDependsOn||[];let r={...t[e],attr:e};r.confirm&&(r.confirm.cancel=`Undo`),t[n].confirmDependsOn.push(r)}})}if((r=t[e].onChange)!=null&&r.alsoDependsOn){var c;(c=t[e].onChange)==null||c.alsoDependsOn.forEach(n=>{if(!t[n])console.error(`[JsonConfigComponent] Attribute ${n} does not exist!`),n.startsWith(`data.`)&&console.warn(`[JsonConfigComponent] please use "${n.replace(/^data\./,``)}" instead of "${n}"`);else{t[n].onChangeDependsOn=t[n].onChangeDependsOn||[];let r={...t[e],attr:e};t[n].onChangeDependsOn.push(r)}})}if((i=t[e].hidden)!=null&&i.alsoDependsOn){var l;(l=t[e].hidden)==null||l.alsoDependsOn.forEach(n=>{if(!t[n])console.error(`[JsonConfigComponent] Attribute ${n} does not exist!`),n.startsWith(`data.`)&&console.warn(`[JsonConfigComponent] please use "${n.replace(/^data\./,``)}" instead of "${n}"`);else{t[n].hiddenDependsOn=t[n].hiddenDependsOn||[];let r={...t[e],attr:e};t[n].hiddenDependsOn.push(r)}})}if((a=t[e].label)!=null&&a.alsoDependsOn){var u;(u=t[e].label)==null||u.alsoDependsOn.forEach(n=>{if(!t[n])console.error(`[JsonConfigComponent] Attribute ${n} does not exist!`),n.startsWith(`data.`)&&console.warn(`[JsonConfigComponent] please use "${n.replace(/^data\./,``)}" instead of "${n}"`);else{t[n].labelDependsOn=t[n].labelDependsOn||[];let r={...t[e],attr:e};t[n].labelDependsOn.push(r)}})}if((o=t[e].help)!=null&&o.alsoDependsOn){var d;(d=t[e].help)==null||d.alsoDependsOn.forEach(n=>{if(!t[n])console.error(`[JsonConfigComponent] Attribute ${n} does not exist!`),n.startsWith(`data.`)&&console.warn(`[JsonConfigComponent] please use "${n.replace(/^data\./,``)}" instead of "${n}"`);else{t[n].helpDependsOn=t[n].helpDependsOn||[];let r={...t[e],attr:e};t[n].helpDependsOn.push(r)}})}})}updateContext(e){this.oContext={DeviceManager:this.props.DeviceManager,adapterName:this.props.adapterName,changeLanguage:this.changeLanguage,common:this.props.common,customs:this.props.customs,dateFormat:this.props.dateFormat,embedded:this.props.embedded,forceUpdate:this.forceAttrUpdate,imagePrefix:this.props.imagePrefix,instance:this.props.instance,instanceObj:this.props.instanceObj,isFloatComma:this.props.isFloatComma,multiEdit:this.props.multiEdit,onBackEndCommand:this.props.onBackEndCommand,onCommandRunning:this.onCommandRunning,onValueChange:this.props.onValueChange,registerOnForceUpdate:this.registerOnForceUpdate,socket:this.props.socket,systemConfig:this.state.systemConfig,theme:this.props.theme,themeType:this.props.themeType,_themeName:this.props.themeName,updateData:this.state.updateData,getCachedObject:this.getCachedObject,hostInfo:this.state.hostInfo||void 0},e&&this.forceUpdate()}renderItem(e){return this.oContext?e.type===`tabs`?G.createElement(jw,{withoutSaveButtons:this.props.withoutSaveButtons,oContext:this.oContext,alive:this.state.alive,changed:this.state.changed,commandRunning:this.state.commandRunning,common:this.props.common,custom:this.props.custom,customObj:this.props.customObj,data:this.props.data,onChange:this.onChange,onError:(e,t)=>this.onError(e,t),originalData:JSON.parse(this.state.originalData),root:!0,schema:e,expertMode:this.props.expertMode,themeName:this.props.themeName,customComponents:this.props.customComponents}):e.type===`panel`||!e.type?G.createElement(kw,{withoutSaveButtons:this.props.withoutSaveButtons,oContext:this.oContext,alive:this.state.alive,changed:this.state.changed,commandRunning:this.state.commandRunning,common:this.props.common,custom:this.props.custom,customObj:this.props.customObj,data:this.props.data,expertMode:this.props.expertMode,index:1e3,isParentTab:!this.props.embedded&&!this.props.withoutSaveButtons,onChange:this.onChange,onError:(e,t)=>this.onError(e,t),originalData:JSON.parse(this.state.originalData),root:!0,schema:e,themeName:this.props.themeName,customComponents:this.props.customComponents}):(console.error(`Unknown item type in root: ${JSON.stringify(e)}`),null):null}render(){return!this.state.systemConfig||!this.oContext?G.createElement(u,null):(this.oContext._themeName!==this.props.themeName&&(this.oContext._themeName=this.props.themeName,setTimeout(()=>this.updateContext(!0),0)),G.createElement(`div`,{style:{...!this.props.embedded||this.props.withoutSaveButtons?Nw.root:void 0,...this.props.style,...this.state.schema.style}},this.renderItem(this.state.schema)))}};K();var Fw={root:{width:`100%`,height:`100%`,overflow:`hidden`,position:`relative`},scroll:{height:`calc(100% - 48px)`,overflowY:`auto`},exportImportButtons:{position:`absolute`,top:5,right:0,zIndex:3},button:{marginRight:`5px`},tooltip:{pointerEvents:`none`}};function Iw(e,t){let n=``;for(let r=0;r<t.length;r++)n+=String.fromCharCode(e[r%e.length].charCodeAt(0)^t.charCodeAt(r));return n}function Lw(e,t){let n=``;for(let r=0;r<t.length;r++)n+=String.fromCharCode(e[r%e.length].charCodeAt(0)^t.charCodeAt(r));return n}function Rw(e,t){if(typeof t!=`string`)return t;if(!t.startsWith(`$/aes-192-cbc:`)||!/^[0-9a-f]{48}$/.test(e))return Iw(e,t);let n=t.split(`:`,3),r=window.CryptoJS.enc.Hex.parse(e),i=window.CryptoJS.enc.Hex.parse(n[1]),a=window.CryptoJS.lib.CipherParams.create({ciphertext:window.CryptoJS.enc.Hex.parse(n[2])}),o=window.CryptoJS.AES.decrypt(a,r,{iv:i});return window.CryptoJS.enc.Utf8.stringify(o)}function zw(e,t,n){if(typeof t!=`string`)return t;if(!/^[0-9a-f]{48}$/.test(e))return Lw(e,t);let r;r=n?window.CryptoJS.enc.Hex.parse(n):window.CryptoJS.lib.WordArray.random(16);let i=window.CryptoJS.enc.Hex.parse(e),a=window.CryptoJS.AES.encrypt(t,i,{iv:r}).ciphertext;return`$/aes-192-cbc:${window.CryptoJS.enc.Hex.stringify(r)}:${a}`}function Bw(e,t){var n;return!t||!document.getElementById(t)?new Promise(n=>{let r=document.createElement(`script`);r.setAttribute(`id`,t),r.onload=n,r.src=e,document.getElementsByTagName(`head`)[0].appendChild(r)}):(n=document.getElementById(t))==null?void 0:n.onload}var Vw=class extends fn{constructor(e){super(e),J(this,`fileSubscribed`,[]),J(this,`fileLangSubscribed`,``),J(this,`secret`,void 0),J(this,`handleFileSelect`,e=>{let t=e.target.files[0];if(t){let e=new FileReader;e.onload=e=>{if(!e.target)return;let t=e.target.result;try{let e=JSON.parse(t);this.setState({data:e,changed:JSON.stringify(e)!==JSON.stringify(this.state.originalData)})}catch{window.alert(Y.t(`jc_[JsonConfig] Failed to parse JSON file`))}},e.readAsText(t)}else window.alert(Y.t(`jc_[JsonConfig] Failed to open JSON File`))}),J(this,`onFileChange`,async(e,t,n)=>{if(e===`${this.props.adapterName}.admin`&&n){if(t===this.fileLangSubscribed)try{var r;await Pw.loadI18n(this.props.socket,(r=this.state.schema)==null?void 0:r.i18n,this.props.adapterName),this.setState({hash:`${this.state.hash}1`})}catch{}else if(this.fileSubscribed.includes(t))try{let e=await this.getConfigFile(this.fileSubscribed[0]);this.setState({schema:e||void 0,hash:(0,_s.default)(JSON.stringify(e)).toString()})}catch{}}}),this.state={updateData:0,changed:!1,confirmDialog:!1,theme:k(e.themeName),saveConfigDialog:!1,hash:`_`},this.secret=e.secret||``,this.getInstanceObject().then(e=>this.getConfigFile().then(t=>Pw.loadI18n(this.props.socket,t==null?void 0:t.i18n,this.props.adapterName).then(n=>{n&&(this.fileLangSubscribed||(this.fileLangSubscribed=n,this.props.socket.subscribeFiles(`${this.props.adapterName}.admin`,this.fileLangSubscribed,this.onFileChange))),e?this.setState({schema:t||void 0,data:e.native,common:e.common,hash:(0,_s.default)(JSON.stringify(t)).toString()}):window.alert(`Instance system.adapter.${this.props.adapterName}.${this.props.instance} not found!`)})))}componentWillUnmount(){super.componentWillUnmount(),this.fileSubscribed.length&&(this.props.socket.unsubscribeFiles(`${this.props.adapterName}.admin`,this.fileSubscribed,this.onFileChange),this.fileSubscribed=[]),this.fileLangSubscribed&&=(this.props.socket.unsubscribeFiles(`${this.props.adapterName}.admin`,this.fileLangSubscribed,this.onFileChange),``)}getExportImportButtons(){return G.createElement(`div`,{style:Fw.exportImportButtons},G.createElement(c,{title:this.props.t(`jc_Import settings from JSON file`),slotProps:{popper:{sx:Fw.tooltip}}},G.createElement(Hn,{size:`small`,sx:{"&.MuiFab-root":Fw.button},onClick:()=>{let e=document.createElement(`input`);e.setAttribute(`type`,`file`),e.setAttribute(`id`,`files`),e.setAttribute(`opacity`,0),e.addEventListener(`change`,e=>this.handleFileSelect(e),!1),e.click()}},G.createElement(kt,null))),G.createElement(c,{title:this.props.t(`jc_Export setting to JSON file`),slotProps:{popper:{sx:Fw.tooltip}}},G.createElement(Hn,{size:`small`,sx:{"&.MuiFab-root":Fw.button},onClick:()=>{this.state.data&&wn.generateFile(`${this.props.adapterName}.${this.props.instance}.json`,this.state.data)}},G.createElement(kt,{style:{transform:`rotate(180deg)`}}))))}async getInstanceObject(){try{let t=await this.props.socket.getObject(`system.adapter.${this.props.adapterName}.${this.props.instance}`);if(Array.isArray(t==null?void 0:t.encryptedNative)){var e;if(!this.secret){let e=await this.props.socket.getSystemConfig();await Bw(`../../lib/js/crypto-js/crypto-js.js`,`crypto-js`),this.secret=e.native.secret}return(e=t.encryptedNative)==null||e.forEach(e=>{t.native[e]&&(t.native[e]=Rw(this.secret,t.native[e]))}),t}return t||null}catch(e){window.alert(`[JsonConfig] Cannot read instance object: ${e}`)}return null}renderDialogConfirm(){return this.state.confirmDialog?G.createElement(Nn,{title:Y.t(`jc_Please confirm`),text:Y.t(`jc_Some data are not stored. Discard?`),ok:Y.t(`jc_Discard`),cancel:Y.t(`jc_Cancel`),onClose:e=>this.setState({confirmDialog:!1},()=>e&&fn.doNavigate(null))}):null}async scanForInclude(e,t){if(typeof e[`#include`]==`string`){let n=await this._getConfigFile(e[`#include`],[...t]);return delete e[`#include`],n&&(e={...e,...n}),e}let n=Object.keys(e);for(let r=0;r<n.length;r++)e[n[r]]&&typeof e[n[r]]==`object`&&(e[n[r]]=await this.scanForInclude(e[n[r]],t));return e}async getConfigFile(e){return this._getConfigFile(e)}async _getConfigFile(e,t){if(e||=`jsonConfig.json5`,t||=[],t.includes(e))return window.alert(`[JsonConfig] Circular reference in file: ${e} => ${t.join(` => `)}`),null;t.push(e);try{await this.props.socket.fileExists(`${this.props.adapterName}.admin`,e)||(e=`jsonConfig.json`);let n=await this.props.socket.readFile(`${this.props.adapterName}.admin`,e),r=``,i=``;if(n.file!==void 0&&(i=n.file),typeof i==`string`)r=i;else if(i.type===`Buffer`){let e=``,t=new Uint8Array(i.data),n=t.byteLength;for(let r=0;r<n;r++)e+=String.fromCharCode(t[r]);r=e}this.fileSubscribed.includes(e)||(this.fileSubscribed.push(e),await this.props.socket.subscribeFiles(`${this.props.adapterName}.admin`,e,this.onFileChange));try{return await this.scanForInclude(gs.default.parse(r),t)}catch(e){window.alert(`[JsonConfig] Cannot parse json5 config!`),console.log(e)}}catch(t){this.state.schema||window.alert(`[JsonConfig] Cannot read file "${e}: ${t}`)}return null}renderSaveConfigDialog(){return this.state.saveConfigDialog?G.createElement(Nn,{title:Y.t(`jc_Please confirm`),text:Y.t(`jc_Save configuration?`),ok:Y.t(`jc_Save`),cancel:Y.t(`jc_Cancel`),onClose:e=>this.setState({saveConfigDialog:!1},()=>e&&this.onSave(!0))}):null}findAttr(e,t){if(t||=this.state.schema,t!=null&&t.items){if(e in t.items)return t.items[e];for(let n of Object.values(t.items)){let t=this.findAttr(e,n);if(t)return t}}return null}postProcessing(e,t,n){if(n||=this.state.schema,!e){console.error(`Data is empty in postProcessing: ${t}, ${JSON.stringify(n)}`);return}let r=e[t];if(n.items){if(n.type===`table`){let e=r;if(!Array.isArray(e))return;for(let t of e)if(n.items)for(let e of n.items)e.attr&&this.postProcessing(t,e.attr,e)}else for(let[t,r]of Object.entries(n.items)){if(r.type===`panel`||r.type===`tabs`||r.type===`accordion`)return;this.postProcessing(e,t,r)}}else if(t&&typeof r==`string`){if(n.type===`text`)n.trim!==!1&&(e[t]=r.trim());else if(n.type===`ip`)e[t]=r.trim();else if(n.type===`number`){let i=parseFloat(r.toString().replace(`,`,`.`));e[t]=n.min!==void 0&&i<n.min?n.min:n.max!==void 0&&i>n.max?n.max:i}else if(n.type===`port`){let i=parseInt(r.toString(),10);n.min!==void 0&&i<n.min?e[t]=n.min:n.max!==void 0&&i>n.max&&(e[t]=n.max),e[t]=e[t]!==0&&i<20?20:i>65535?65535:i}else n.type===`checkbox`&&(e[t]=e[t]===!0||e[t]===`true`||e[t]===`on`||e[t]===1||e[t]===`1`)}}async onSave(e,t){if(e){let e=await this.getInstanceObject();if(!e){console.error(`Something went wrong: may be no connection?`),window.alert(`Something went wrong: may be no connection?`);return}if(!this.state.data||!this.state.schema)return;let n={};for(let t of Object.keys(this.state.data)){let r=this.findAttr(t);(!r||!r.doNotSave||r.type===`state`)&&!t.startsWith(`_`)?Z.setValue(e.native,t,this.state.data[t]):(Z.setValue(e.native,t,null),n[t]=this.state.data[t])}try{let t=JSON.parse(JSON.stringify(e));if(Array.isArray(t.encryptedNative)){await Bw(`../../lib/js/crypto-js/crypto-js.js`,`crypto-js`);for(let e of t.encryptedNative)t.native[e]&&(t.native[e]=zw(this.secret,t.native[e]))}await this.props.socket.setObject(t._id,t)}catch(e){window.alert(`[JsonConfig] Cannot set object: ${e}`)}let r={...e.native,...n};console.log(r),this.setState({changed:!1,data:r,updateData:this.state.updateData+1,originalData:r},()=>t&&fn.doNavigate(null))}else this.state.changed?this.setState({confirmDialog:!0}):fn.doNavigate(null)}componentDidUpdate(e,t){t.changed!==this.state.changed&&this.props.configStored(!this.state.changed)}async componentDidMount(){let e=`${window.location.protocol}//${window.location.host}${window.location.pathname}validate_config/${this.props.adapterName}`;console.log(`fetch ${e}`),await fetch(e)}render(){return!this.state.data||!this.state.schema?G.createElement(u,null):G.createElement(`div`,{style:Fw.root},this.renderDialogConfirm(),this.getExportImportButtons(),this.renderSaveConfigDialog(),G.createElement(Pw,{key:this.state.hash,style:Fw.scroll,socket:this.props.socket,themeName:this.props.themeName,themeType:this.props.themeType,adapterName:this.props.adapterName,instance:this.props.instance,isFloatComma:this.props.isFloatComma,dateFormat:this.props.dateFormat,schema:this.state.schema,common:this.state.common,expertMode:this.props.expertMode,data:this.state.data,updateData:this.state.updateData,onError:e=>this.setState({error:e}),onChange:(e,t,n)=>{n&&this.state.error&&(window.alert(Y.t(`jc_Cannot save configuration because of error in configuration`)),n=!1),n&&!this.state.changed&&!t&&(n=!1),e?this.setState({data:e,changed:!!t,saveConfigDialog:n}):n!==void 0&&this.setState({saveConfigDialog:n})},DeviceManager:this.props.DeviceManager,theme:this.state.theme,customComponents:this.props.customComponents,imagePrefix:`.`}),G.createElement(cn,{isIFrame:!1,dense:!0,paddingLeft:0,newReact:!0,theme:this.state.theme,noTextOnButtons:this.props.width===`xs`||this.props.width===`sm`||this.props.width===`md`,changed:!!(this.state.error||this.state.changed),error:!!this.state.error,onSave:e=>this.onSave(!0,e),onClose:()=>this.onSave(!1)}))}},Hw=n({ConfigGeneric:()=>Z,ConfigPanel:()=>kw,GUI_API_GENERATION:()=>2,JsonConfig:()=>Vw,JsonConfigComponent:()=>Pw,checkGuiApiCompatibility:()=>uc}),Uw=n({ConfigGeneric:()=>Xw,ConfigPanel:()=>Yw,GUI_API_GENERATION:()=>Gw,JsonConfig:()=>qw,JsonConfigComponent:()=>Jw,checkGuiApiCompatibility:()=>Kw,default:()=>Zw}),Ww=Hw,Gw=Ww.GUI_API_GENERATION,Kw=Ww.checkGuiApiCompatibility,qw=Ww.JsonConfig,Jw=Ww.JsonConfigComponent,Yw=Ww.ConfigPanel,Xw=Ww.ConfigGeneric,Zw=Reflect.get(Hw,`default`)??Hw,Qw=`__mf_module_cache__`;globalThis[Qw]||={share:{},remote:{}},globalThis[Qw].share||={},globalThis[Qw].remote||={};var $w=globalThis[Qw];for(let e of Object.keys($w.share))if(e.startsWith(`default:`)){let t=e.slice(8);$w.share[t]===void 0&&($w.share[t]=$w.share[e])}else if(!e.includes(`:`)){let t=`default:`+e;$w.share[t]===void 0&&($w.share[t]=$w.share[e])}var eT=(e,t)=>{let n=e[t.canonical];if(n!==void 0)return n;let r=t.aliases||[];for(let n of r){if(!Object.prototype.hasOwnProperty.call(e,n))continue;let r=e[n];if(r!==void 0)return e[t.canonical]=r,r}},tT=Symbol.for(`module-federation.shared-cache-listeners`),nT=e=>{let t=e[tT];return t===void 0&&(t=Object.create(null),Object.defineProperty(e,tT,{value:t,enumerable:!1,configurable:!1,writable:!1})),t},rT=(e,t,n)=>{let r=nT(e);(r[t.canonical]||=new Set).add(n)},iT=Symbol.for(`module-federation.shared-cache-owners`),aT=e=>{let t=e[iT];return t===void 0&&(t=Object.create(null),Object.defineProperty(e,iT,{value:t,enumerable:!1,configurable:!1,writable:!1})),t},oT=(e,t,n,r)=>{var i;e[t.canonical]=n;let a=t.aliases||[];for(let t of a)Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0});let o=e[iT];r===void 0?o&&delete o[t.canonical]:aT(e)[t.canonical]=r;let s=(i=e[tT])==null?void 0:i[t.canonical];if(s)for(let e of s)e(n);return n},sT=e=>{let t=(()=>{let t=e;for(let e=0;e<5;e++){let e=t==null?void 0:t.default;if(!e||typeof e!=`object`)break;let n=Object.keys(t).filter(e=>e!=="default").map(e=>t[e]);if(n.length>0&&n.some(e=>e!==void 0))break;t=e}return t})();return t&&Object.getPrototypeOf(t)===null?Object.assign({},t):t},cT=eT($w.share,{canonical:`default:@iobroker/json-config`,aliases:[`@iobroker/json-config`]});cT===void 0&&(cT=sT(Uw),oT($w.share,{canonical:`default:@iobroker/json-config`,aliases:[`@iobroker/json-config`]},cT,`AiUsageComponentSet`));var lT,uT=e=>{e.GUI_API_GENERATION,e.checkGuiApiCompatibility,e.JsonConfig,e.JsonConfigComponent,e.ConfigPanel,lT=e.ConfigGeneric,(()=>{let t=e;for(let e=0;e<5;e++){let e=t==null?void 0:t.default;if(!e||typeof e!=`object`)return e??t;t=e}return t})()};rT($w.share,{canonical:`default:@iobroker/json-config`,aliases:[`@iobroker/json-config`]},uT),uT(cT);export{is as a,os as i,Uw as n,ls as r,lT as t};