From a043a8d50caccae8648c09053bde35bdba09b698 Mon Sep 17 00:00:00 2001 From: Dominic Griesel Date: Wed, 27 Sep 2023 11:09:04 +0200 Subject: [PATCH] bump Z-Wave JS to 10.23.6 --- README.md | 9 ++++++++- admin/build/{chunk-LBOQGQC5.js => chunk-J724PBLX.js} | 4 ++-- .../{chunk-LBOQGQC5.js.map => chunk-J724PBLX.js.map} | 0 admin/build/{chunk-5K7AELRB.js => chunk-QC74SDCH.js} | 4 ++-- .../{chunk-5K7AELRB.js.map => chunk-QC74SDCH.js.map} | 2 +- admin/build/{chunk-4JNOSO5E.js => chunk-RV4HM636.js} | 4 ++-- .../{chunk-4JNOSO5E.js.map => chunk-RV4HM636.js.map} | 0 admin/build/index.js | 2 +- admin/build/log.js | 2 +- admin/build/tab.js | 2 +- package.json | 2 +- 11 files changed, 19 insertions(+), 12 deletions(-) rename admin/build/{chunk-LBOQGQC5.js => chunk-J724PBLX.js} (99%) rename admin/build/{chunk-LBOQGQC5.js.map => chunk-J724PBLX.js.map} (100%) rename admin/build/{chunk-5K7AELRB.js => chunk-QC74SDCH.js} (85%) rename admin/build/{chunk-5K7AELRB.js.map => chunk-QC74SDCH.js.map} (99%) rename admin/build/{chunk-4JNOSO5E.js => chunk-RV4HM636.js} (99%) rename admin/build/{chunk-4JNOSO5E.js.map => chunk-RV4HM636.js.map} (100%) diff --git a/README.md b/README.md index f0ddcfbf..792ea0c6 100644 --- a/README.md +++ b/README.md @@ -41,11 +41,15 @@ Easy usage in ioBroker was kept in mind during the whole development. For exampl ### __WORK IN PROGRESS__ --> ### __WORK IN PROGRESS__ -Updated `zwave-js` to `10.15.0`. This includes the following changes: +Updated `zwave-js` to `10.23.6`. This includes the following changes: * Added support for `Security S2` multicast * Added support for parsing additional information from `Notification CC Reports`. Note that this may change the values reported for Door/Window sensors! If you rely on the old behavior, use the new `Door state (simple)` value instead. +* Added support for `Energy Production CC` and `Window Covering CC` * On devices where legacy alarm values are mapped, the resulting `Notification` values are now created during the interview. * Fixed an issue where communication with a node included with `Security S2` was not always using encryption. +* Fixed an issue where the Z-Wave stack would not start on Windows systems +* Z-Wave controllers hosted remotely over TCP can now be discovered using mDNS +* Disconnects of Z-Wave controllers hosted remotely over TCP are now detected again * All commands contained in a `Multi Command CC` are now properly handled * Failures while assigning routes to nodes no longer mark the node as dead (unless they actually are) * Values for unsupported `Door Lock CC` features are no longer created @@ -53,6 +57,9 @@ Updated `zwave-js` to `10.15.0`. This includes the following changes: * Auto-assign routes between nodes after creating a new association * Values for `Battery`, `Meter`, `Multilevel Switch` and (in some cases) `Notification CC` are now queried periodically or on device wakeup * Notification variables (like Lock jammed) are now updated when another received report indicates a change, even if the device did not update the notification variable itself. +* Fixed a startup crash that happens when the controller returns an empty list of nodes +* Fixed a crash that happens when message from an unknown node was received +* Several improvements for auto-assigning Lifeline associations * Lots of new and updated configuration files, see [Z-Wave JS releases](https://github.com/zwave-js/node-zwave-js/releases) for details ### 3.0.5 (2023-01-28) diff --git a/admin/build/chunk-LBOQGQC5.js b/admin/build/chunk-J724PBLX.js similarity index 99% rename from admin/build/chunk-LBOQGQC5.js rename to admin/build/chunk-J724PBLX.js index bd22be82..2579abad 100644 --- a/admin/build/chunk-LBOQGQC5.js +++ b/admin/build/chunk-J724PBLX.js @@ -1,6 +1,6 @@ -import{B as Ee,Fa as Ae,Ga as dr,J as $,Ja as J,W as de,a as z,b as M,c as L,e as V,f as G,g as lr,j as ur,oa as cr,u as Oe,ua as We,va as Le}from"./chunk-5K7AELRB.js";var fr=z((Q,ke)=>{(function(t,e){typeof Q=="object"&&typeof ke!="undefined"?e(Q,L()):typeof define=="function"&&define.amd?define(["exports","react"],e):(t=typeof globalThis!="undefined"?globalThis:t||self,e(t.ReactErrorBoundary={},t.React))})(Q,function(t,e){"use strict";function r(m){if(m&&m.__esModule)return m;var w=Object.create(null);return m&&Object.keys(m).forEach(function(g){if(g!=="default"){var p=Object.getOwnPropertyDescriptor(m,g);Object.defineProperty(w,g,p.get?p:{enumerable:!0,get:function(){return m[g]}})}}),w.default=m,Object.freeze(w)}var n=r(e);function o(m,w){return o=Object.setPrototypeOf||function(p,i){return p.__proto__=i,p},o(m,w)}function s(m,w){m.prototype=Object.create(w.prototype),m.prototype.constructor=m,o(m,w)}var d=function(w,g){return w===void 0&&(w=[]),g===void 0&&(g=[]),w.length!==g.length||w.some(function(p,i){return!Object.is(p,g[i])})},u={error:null},v=function(m){s(w,m);function w(){for(var p,i=arguments.length,c=new Array(i),h=0;h{"use strict";var hr=V(),mr=G();Object.defineProperty(ee,"__esModule",{value:!0});ee.default=void 0;var gr=mr(L()),pr=hr($()),vr=(0,pr.default)(gr.createElement("path",{d:"M19.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zM17 13l-5 5-5-5h3V9h4v4h3z"}),"CloudDownload");ee.default=vr});var Fe=z(te=>{"use strict";var wr=V(),br=G();Object.defineProperty(te,"__esModule",{value:!0});te.default=void 0;var yr=br(L()),Sr=wr($()),Ir=(0,Sr.default)(yr.createElement("path",{d:"M19 19H5V5h7V3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z"}),"Launch");te.default=Ir});var Pe=z(re=>{"use strict";var _r=V(),Cr=G();Object.defineProperty(re,"__esModule",{value:!0});re.default=void 0;var xr=Cr(L()),Tr=_r($()),zr=(0,Tr.default)(xr.createElement("path",{d:"M18 8h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zm-6 9c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zm3.1-9H8.9V6c0-1.71 1.39-3.1 3.1-3.1 1.71 0 3.1 1.39 3.1 3.1v2z"}),"Lock");re.default=zr});var De=z(ne=>{"use strict";var Rr=V(),Mr=G();Object.defineProperty(ne,"__esModule",{value:!0});ne.default=void 0;var Or=Mr(L()),Er=Rr($()),Wr=(0,Er.default)(Or.createElement("path",{d:"M6 19h4V5H6v14zm8-14v14h4V5h-4z"}),"Pause");ne.default=Wr});var He=z(ie=>{"use strict";var Lr=V(),Ar=G();Object.defineProperty(ie,"__esModule",{value:!0});ie.default=void 0;var kr=Ar(L()),Nr=Lr($()),Fr=(0,Nr.default)(kr.createElement("path",{d:"M8 5v14l11-7z"}),"PlayArrow");ie.default=Fr});var Ke=z((ci,$e)=>{"use strict";var Ue=function(){function t(e,r){var n=[],o=!0,s=!1,d=void 0;try{for(var u=e[Symbol.iterator](),v;!(o=(v=u.next()).done)&&(n.push(v.value),!(r&&n.length===r));o=!0);}catch(b){s=!0,d=b}finally{try{!o&&u.return&&u.return()}finally{if(s)throw d}}return n}return function(e,r){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,r);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),ge=function(){function t(e,r){for(var n=0;n{(function(t,e){typeof Q=="object"&&typeof ke!="undefined"?e(Q,L()):typeof define=="function"&&define.amd?define(["exports","react"],e):(t=typeof globalThis!="undefined"?globalThis:t||self,e(t.ReactErrorBoundary={},t.React))})(Q,function(t,e){"use strict";function r(m){if(m&&m.__esModule)return m;var w=Object.create(null);return m&&Object.keys(m).forEach(function(g){if(g!=="default"){var p=Object.getOwnPropertyDescriptor(m,g);Object.defineProperty(w,g,p.get?p:{enumerable:!0,get:function(){return m[g]}})}}),w.default=m,Object.freeze(w)}var n=r(e);function o(m,w){return o=Object.setPrototypeOf||function(p,i){return p.__proto__=i,p},o(m,w)}function s(m,w){m.prototype=Object.create(w.prototype),m.prototype.constructor=m,o(m,w)}var d=function(w,g){return w===void 0&&(w=[]),g===void 0&&(g=[]),w.length!==g.length||w.some(function(p,i){return!Object.is(p,g[i])})},u={error:null},v=function(m){s(w,m);function w(){for(var p,i=arguments.length,c=new Array(i),h=0;h{"use strict";var hr=V(),mr=G();Object.defineProperty(ee,"__esModule",{value:!0});ee.default=void 0;var gr=mr(L()),pr=hr($()),vr=(0,pr.default)(gr.createElement("path",{d:"M19.35 10.04C18.67 6.59 15.64 4 12 4 9.11 4 6.6 5.64 5.35 8.04 2.34 8.36 0 10.91 0 14c0 3.31 2.69 6 6 6h13c2.76 0 5-2.24 5-5 0-2.64-2.05-4.78-4.65-4.96zM17 13l-5 5-5-5h3V9h4v4h3z"}),"CloudDownload");ee.default=vr});var Fe=z(te=>{"use strict";var wr=V(),br=G();Object.defineProperty(te,"__esModule",{value:!0});te.default=void 0;var yr=br(L()),Sr=wr($()),Ir=(0,Sr.default)(yr.createElement("path",{d:"M19 19H5V5h7V3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z"}),"Launch");te.default=Ir});var Pe=z(re=>{"use strict";var _r=V(),Cr=G();Object.defineProperty(re,"__esModule",{value:!0});re.default=void 0;var xr=Cr(L()),Tr=_r($()),zr=(0,Tr.default)(xr.createElement("path",{d:"M18 8h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zm-6 9c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zm3.1-9H8.9V6c0-1.71 1.39-3.1 3.1-3.1 1.71 0 3.1 1.39 3.1 3.1v2z"}),"Lock");re.default=zr});var De=z(ne=>{"use strict";var Rr=V(),Mr=G();Object.defineProperty(ne,"__esModule",{value:!0});ne.default=void 0;var Or=Mr(L()),Er=Rr($()),Wr=(0,Er.default)(Or.createElement("path",{d:"M6 19h4V5H6v14zm8-14v14h4V5h-4z"}),"Pause");ne.default=Wr});var He=z(ie=>{"use strict";var Lr=V(),Ar=G();Object.defineProperty(ie,"__esModule",{value:!0});ie.default=void 0;var kr=Ar(L()),Nr=Lr($()),Fr=(0,Nr.default)(kr.createElement("path",{d:"M8 5v14l11-7z"}),"PlayArrow");ie.default=Fr});var Ke=z((ci,$e)=>{"use strict";var Ue=function(){function t(e,r){var n=[],o=!0,s=!1,d=void 0;try{for(var u=e[Symbol.iterator](),v;!(o=(v=u.next()).done)&&(n.push(v.value),!(r&&n.length===r));o=!0);}catch(b){s=!0,d=b}finally{try{!o&&u.return&&u.return()}finally{if(s)throw d}}return n}return function(e,r){if(Array.isArray(e))return e;if(Symbol.iterator in Object(e))return t(e,r);throw new TypeError("Invalid attempt to destructure non-iterable instance")}}(),ge=function(){function t(e,r){for(var n=0;n1&&arguments[1]!==void 0?arguments[1]:e;return Ge.reduce(function(n,o){var s=Ue(o,3),d=s[0],u=s[1],v=s[2];return P.defineProperty(n,d,{get:function(){return t(function(C){return r(Ur(C,u,v))})}})},e)},N=0,qe=1,je=2;function Gr(t){for(var e=N,r="",n="",o="",s=[],d=[],u=0,v=t.length;u="0"&&b<="9")o+=b;else if(b===";")s.push(new R(o)),o="";else if(b==="m"){o=o||"0",s.push(new R(o));var C=!0,m=!1,w=void 0;try{for(var g=s[Symbol.iterator](),p;!(C=(p=g.next()).done);C=!0){var i=p.value;d.push({text:n,code:i}),n=""}}catch(c){m=!0,w=c}finally{try{!C&&g.return&&g.return()}finally{if(m)throw w}}e=N}else e=N,n+=r}}return e!==N&&(n+=r),n&&d.push({text:n,code:new R}),d}var K=function(){function t(e){pe(this,t),this.spans=e?Gr(e):[]}return ge(t,[{key:Symbol.iterator,value:function(){return this.spans[Symbol.iterator]()}},{key:"str",get:function(){return this.spans.reduce(function(r,n){return r+n.text+n.code.str},"")}},{key:"parsed",get:function(){var r=void 0,n=void 0,o=void 0,s=void 0;function d(){r=new oe,n=new oe(!0),o=void 0,s=new Set}return d(),P.assign(new t,{spans:this.spans.map(function(u){var v=u.code,b=s.has("inverse"),C=s.has("underline")?"text-decoration: underline;":"",m=s.has("italic")?"font-style: italic;":"",w=o===R.bright?"font-weight: bold;":"",g=r.defaultBrightness(o),p=P.assign({css:w+m+C+g.css(b)+n.css(b)},Ve({bold:!!w,color:g.clean,bgColor:n.clean}),u),i=!0,c=!1,h=void 0;try{for(var y=s[Symbol.iterator](),S;!(i=(S=y.next()).done);i=!0){var a=S.value;p[a]=!0}}catch(l){c=!0,h=l}finally{try{!i&&y.return&&y.return()}finally{if(c)throw h}}if(v.isBrightness)o=v.value;else if(u.code.value!==void 0)if(u.code.value===R.reset)d();else switch(u.code.type){case"color":case"colorLight":r=new oe(!1,v.subtype);break;case"bgColor":case"bgColorLight":n=new oe(!0,v.subtype);break;case"style":s.add(v.subtype);break;case"unstyle":s.delete(v.subtype);break}return p}).filter(function(u){return u.text.length>0})})}},{key:"asChromeConsoleLogArguments",get:function(){var r=this.parsed.spans;return[r.map(function(n){return"%c"+n.text}).join("")].concat(F(r.map(function(n){return n.css})))}},{key:"browserConsoleArguments",get:function(){return this.asChromeConsoleLogArguments}}],[{key:"parse",value:function(r){return new t(r).parsed}},{key:"strip",value:function(r){return r.replace(/[\u001b\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-PRZcf-nqry=><]/g,"")}},{key:"isEscaped",value:function(r){return r=String(r),t.strip(r)!==r}},{key:"nice",get:function(){return t.names.forEach(function(r){r in String.prototype||P.defineProperty(String.prototype,r,{get:function(){return t[r](this)}})}),t}},{key:"ansicolor",get:function(){return t}}]),t}();Vr(K,function(t){return t});K.names=Ge.map(function(t){var e=Ue(t,1),r=e[0];return r});K.rgb={black:[0,0,0],darkGray:[100,100,100],lightGray:[200,200,200],white:[255,255,255],red:[204,0,0],lightRed:[255,51,0],green:[0,204,0],lightGreen:[51,204,51],yellow:[204,102,0],lightYellow:[255,153,51],blue:[0,0,255],lightBlue:[26,140,255],magenta:[204,0,204],lightMagenta:[255,0,255],cyan:[0,153,255],lightCyan:[0,204,255]};$e.exports=K});var se=z((co,Ye)=>{function $r(t){var e=typeof t;return t!=null&&(e=="object"||e=="function")}Ye.exports=$r});var Xe=z((fo,Ze)=>{var Kr=typeof global=="object"&&global&&global.Object===Object&&global;Ze.exports=Kr});var ve=z((ho,Je)=>{var Yr=Xe(),Zr=typeof self=="object"&&self&&self.Object===Object&&self,Xr=Yr||Zr||Function("return this")();Je.exports=Xr});var et=z((mo,Qe)=>{var Jr=ve(),Qr=function(){return Jr.Date.now()};Qe.exports=Qr});var rt=z((go,tt)=>{var en=/\s/;function tn(t){for(var e=t.length;e--&&en.test(t.charAt(e)););return e}tt.exports=tn});var it=z((po,nt)=>{var rn=rt(),nn=/^\s+/;function on(t){return t&&t.slice(0,rn(t)+1).replace(nn,"")}nt.exports=on});var we=z((vo,ot)=>{var an=ve(),sn=an.Symbol;ot.exports=sn});var ut=z((wo,lt)=>{var at=we(),st=Object.prototype,ln=st.hasOwnProperty,un=st.toString,X=at?at.toStringTag:void 0;function cn(t){var e=ln.call(t,X),r=t[X];try{t[X]=void 0;var n=!0}catch(s){}var o=un.call(t);return n&&(e?t[X]=r:delete t[X]),o}lt.exports=cn});var dt=z((bo,ct)=>{var dn=Object.prototype,fn=dn.toString;function hn(t){return fn.call(t)}ct.exports=hn});var gt=z((yo,mt)=>{var ft=we(),mn=ut(),gn=dt(),pn="[object Null]",vn="[object Undefined]",ht=ft?ft.toStringTag:void 0;function wn(t){return t==null?t===void 0?vn:pn:ht&&ht in Object(t)?mn(t):gn(t)}mt.exports=wn});var vt=z((So,pt)=>{function bn(t){return t!=null&&typeof t=="object"}pt.exports=bn});var bt=z((Io,wt)=>{var yn=gt(),Sn=vt(),In="[object Symbol]";function _n(t){return typeof t=="symbol"||Sn(t)&&yn(t)==In}wt.exports=_n});var _t=z((_o,It)=>{var Cn=it(),yt=se(),xn=bt(),St=0/0,Tn=/^[-+]0x[0-9a-f]+$/i,zn=/^0b[01]+$/i,Rn=/^0o[0-7]+$/i,Mn=parseInt;function On(t){if(typeof t=="number")return t;if(xn(t))return St;if(yt(t)){var e=typeof t.valueOf=="function"?t.valueOf():t;t=yt(e)?e+"":e}if(typeof t!="string")return t===0?t:+t;t=Cn(t);var r=zn.test(t);return r||Rn.test(t)?Mn(t.slice(2),r?2:8):Tn.test(t)?St:+t}It.exports=On});var Tt=z((Co,xt)=>{var En=se(),be=et(),Ct=_t(),Wn="Expected a function",Ln=Math.max,An=Math.min;function kn(t,e,r){var n,o,s,d,u,v,b=0,C=!1,m=!1,w=!0;if(typeof t!="function")throw new TypeError(Wn);e=Ct(e)||0,En(r)&&(C=!!r.leading,m="maxWait"in r,s=m?Ln(Ct(r.maxWait)||0,e):s,w="trailing"in r?!!r.trailing:w);function g(f){var _=n,x=o;return n=o=void 0,b=f,d=t.apply(x,_),d}function p(f){return b=f,u=setTimeout(h,e),C?g(f):d}function i(f){var _=f-v,x=f-b,O=e-_;return m?An(O,s-x):O}function c(f){var _=f-v,x=f-b;return v===void 0||_>=e||_<0||m&&x>=s}function h(){var f=be();if(c(f))return y(f);u=setTimeout(h,i(f))}function y(f){return u=void 0,w&&n?g(f):(n=o=void 0,d)}function S(){u!==void 0&&clearTimeout(u),b=0,n=v=o=u=void 0}function a(){return u===void 0?d:y(be())}function l(){var f=be(),_=c(f);if(n=arguments,o=this,v=f,_){if(u===void 0)return p(v);if(m)return clearTimeout(u),u=setTimeout(h,e),g(v)}return u===void 0&&(u=setTimeout(h,e)),d}return l.cancel=S,l.flush=a,l}xt.exports=kn});var Rt=z((xo,zt)=>{var Nn=Tt(),Fn=se(),Pn="Expected a function";function Dn(t,e,r){var n=!0,o=!0;if(typeof t!="function")throw new TypeError(Pn);return Fn(r)&&(n="leading"in r?!!r.leading:n,o="trailing"in r?!!r.trailing:o),Nn(t,e,{leading:n,maxWait:e,trailing:o})}zt.exports=Dn});var A=M(ur());var q=M(cr()),Vt=M(Ne()),Gt=M(dr()),$t=M(Fe()),Kt=M(Pe()),Yt=M(De()),Zt=M(He());var I=M(Ke(),1),di=I.default.nice,fi=I.default.parse,hi=I.default.strip,mi=I.default.ansicolor,gi=I.default.black,pi=I.default.bgBlack,vi=I.default.red,wi=I.default.bgRed,bi=I.default.green,yi=I.default.bgGreen,Si=I.default.yellow,Ii=I.default.bgYellow,_i=I.default.blue,Ci=I.default.bgBlue,xi=I.default.magenta,Ti=I.default.bgMagenta,zi=I.default.cyan,Ri=I.default.bgCyan,Mi=I.default.lightGray,Oi=I.default.bgLightGray,Ei=I.default.bgDefault,Wi=I.default.darkGray,Li=I.default.bgDarkGray,Ai=I.default.lightRed,ki=I.default.bgLightRed,Ni=I.default.lightGreen,Fi=I.default.bgLightGreen,Pi=I.default.lightYellow,Di=I.default.bgLightYellow,Hi=I.default.lightBlue,Bi=I.default.bgLightBlue,qi=I.default.lightMagenta,ji=I.default.bgLightMagenta,Ui=I.default.lightCyan,Vi=I.default.bgLightCyan,Gi=I.default.white,$i=I.default.bgWhite,Ki=I.default.bgBrightRed,Yi=I.default.bgBrightGreen,Zi=I.default.bgBrightYellow,Xi=I.default.bgBrightBlue,Ji=I.default.bgBrightMagenta,Qi=I.default.bgBrightCyan,eo=I.default.bright,to=I.default.dim,ro=I.default.italic,no=I.default.underline,io=I.default.inverse,oo=I.default.names,ao=I.default.rgb,Y=I.default;var Xt=M(lr());function Z(t,e){return Z=Object.setPrototypeOf||function(n,o){return n.__proto__=o,n},Z(t,e)}function ae(t){if(t===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}var Jt=M(Rt()),E=M(L());var le=M(L()),Hn=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},Bn=function(){function t(e,r){for(var n=0;n div, .contract-trigger:before { content: " "; display: block; position: absolute; top: 0; left: 0; height: 100%; width: 100%; overflow: hidden; z-index: -1; } .resize-triggers > div { background: #eee; overflow: auto; } .contract-trigger:before { width: 200%; height: 200%; }',f=a.head||a.getElementsByTagName("head")[0],_=a.createElement("style");_.id="detectElementResize",_.type="text/css",t!=null&&_.setAttribute("nonce",t),_.styleSheet?_.styleSheet.cssText=l:_.appendChild(a.createTextNode(l)),f.appendChild(_)}},h=function(a,l){if(v)a.attachEvent("onresize",l);else{if(!a.__resizeTriggers__){var f=a.ownerDocument,_=W.getComputedStyle(a);_&&_.position==="static"&&(a.style.position="relative"),c(f),a.__resizeLast__={},a.__resizeListeners__=[],(a.__resizeTriggers__=f.createElement("div")).className="resize-triggers";var x=f.createElement("div");x.className="expand-trigger",x.appendChild(f.createElement("div"));var O=f.createElement("div");O.className="contract-trigger",a.__resizeTriggers__.appendChild(x),a.__resizeTriggers__.appendChild(O),a.appendChild(a.__resizeTriggers__),d(a),a.addEventListener("scroll",u,!0),n&&(a.__resizeTriggers__.__animationListener__=function(k){k.animationName===r&&d(a)},a.__resizeTriggers__.addEventListener(n,a.__resizeTriggers__.__animationListener__))}a.__resizeListeners__.push(l)}},y=function(a,l){if(v)a.detachEvent("onresize",l);else if(a.__resizeListeners__.splice(a.__resizeListeners__.indexOf(l),1),!a.__resizeListeners__.length){a.removeEventListener("scroll",u,!0),a.__resizeTriggers__.__animationListener__&&(a.__resizeTriggers__.removeEventListener(n,a.__resizeTriggers__.__animationListener__),a.__resizeTriggers__.__animationListener__=null);try{a.__resizeTriggers__=!a.removeChild(a.__resizeTriggers__)}catch(f){}}};return{addResizeListener:h,removeResizeListener:y}}var Lt=function(t){jn(e,t);function e(){var r,n,o,s;Hn(this,e);for(var d=arguments.length,u=Array(d),v=0;v=e?t.call(null):o.id=requestAnimationFrame(n)}var o={id:requestAnimationFrame(n)};return o}var xe=-1;function Pt(t){if(t===void 0&&(t=!1),xe===-1||t){var e=document.createElement("div"),r=e.style;r.width="50px",r.height="50px",r.overflow="scroll",document.body.appendChild(e),xe=e.offsetWidth-e.clientWidth,document.body.removeChild(e)}return xe}var D=null;function Dt(t){if(t===void 0&&(t=!1),D===null||t){var e=document.createElement("div"),r=e.style;r.width="50px",r.height="50px",r.overflow="scroll",r.direction="rtl";var n=document.createElement("div"),o=n.style;return o.width="100px",o.height="100px",e.appendChild(n),document.body.appendChild(e),e.scrollLeft>0?D="positive-descending":(e.scrollLeft=1,e.scrollLeft===0?D="negative":D="positive-ascending"),document.body.removeChild(e),D}return D}var Xn=150,Jn=function(e,r){return e};function Qn(t){var e,r=t.getItemOffset,n=t.getEstimatedTotalSize,o=t.getItemSize,s=t.getOffsetForIndexAndAlignment,d=t.getStartIndexForOffset,u=t.getStopIndexForStartIndex,v=t.initInstanceProps,b=t.shouldResetStyleCacheOnItemSizeChange,C=t.validateProps;return e=function(m){Ce(w,m);function w(p){var i;return i=m.call(this,p)||this,i._instanceProps=v(i.props,ae(i)),i._outerRef=void 0,i._resetIsScrollingTimeoutId=null,i.state={instance:ae(i),isScrolling:!1,scrollDirection:"forward",scrollOffset:typeof i.props.initialScrollOffset=="number"?i.props.initialScrollOffset:0,scrollUpdateWasRequested:!1},i._callOnItemsRendered=void 0,i._callOnItemsRendered=ue(function(c,h,y,S){return i.props.onItemsRendered({overscanStartIndex:c,overscanStopIndex:h,visibleStartIndex:y,visibleStopIndex:S})}),i._callOnScroll=void 0,i._callOnScroll=ue(function(c,h,y){return i.props.onScroll({scrollDirection:c,scrollOffset:h,scrollUpdateWasRequested:y})}),i._getItemStyle=void 0,i._getItemStyle=function(c){var h=i.props,y=h.direction,S=h.itemSize,a=h.layout,l=i._getItemStyleCache(b&&S,b&&a,b&&y),f;if(l.hasOwnProperty(c))f=l[c];else{var _=r(i.props,c,i._instanceProps),x=o(i.props,c,i._instanceProps),O=y==="horizontal"||a==="horizontal",j=y==="rtl",k=O?_:0;l[c]=f={position:"absolute",left:j?void 0:k,right:j?k:void 0,top:O?0:_,height:O?"100%":x,width:O?x:"100%"}}return f},i._getItemStyleCache=void 0,i._getItemStyleCache=ue(function(c,h,y){return{}}),i._onScrollHorizontal=function(c){var h=c.currentTarget,y=h.clientWidth,S=h.scrollLeft,a=h.scrollWidth;i.setState(function(l){if(l.scrollOffset===S)return null;var f=i.props.direction,_=S;if(f==="rtl")switch(Dt()){case"negative":_=-S;break;case"positive-descending":_=a-y-S;break}return _=Math.max(0,Math.min(_,a-y)),{isScrolling:!0,scrollDirection:l.scrollOffsetf.clientWidth?Pt():0:l=f.scrollHeight>f.clientHeight?Pt():0}this.scrollTo(s(this.props,i,c,a,this._instanceProps,l))},g.componentDidMount=function(){var i=this.props,c=i.direction,h=i.initialScrollOffset,y=i.layout;if(typeof h=="number"&&this._outerRef!=null){var S=this._outerRef;c==="horizontal"||y==="horizontal"?S.scrollLeft=h:S.scrollTop=h}this._callPropsCallbacks()},g.componentDidUpdate=function(){var i=this.props,c=i.direction,h=i.layout,y=this.state,S=y.scrollOffset,a=y.scrollUpdateWasRequested;if(a&&this._outerRef!=null){var l=this._outerRef;if(c==="horizontal"||h==="horizontal")if(c==="rtl")switch(Dt()){case"negative":l.scrollLeft=-S;break;case"positive-ascending":l.scrollLeft=S;break;default:var f=l.clientWidth,_=l.scrollWidth;l.scrollLeft=_-f-S;break}else l.scrollLeft=S;else l.scrollTop=S}this._callPropsCallbacks()},g.componentWillUnmount=function(){this._resetIsScrollingTimeoutId!==null&&Ft(this._resetIsScrollingTimeoutId)},g.render=function(){var i=this.props,c=i.children,h=i.className,y=i.direction,S=i.height,a=i.innerRef,l=i.innerElementType,f=i.innerTagName,_=i.itemCount,x=i.itemData,O=i.itemKey,j=O===void 0?Jn:O,k=i.layout,er=i.outerElementType,tr=i.outerTagName,rr=i.style,nr=i.useIsScrolling,ir=i.width,Te=this.state.isScrolling,ce=y==="horizontal"||k==="horizontal",or=ce?this._onScrollHorizontal:this._onScrollVertical,ze=this._getRangeToRender(),ar=ze[0],sr=ze[1],Re=[];if(_>0)for(var U=ar;U<=sr;U++)Re.push((0,B.createElement)(c,{data:x,key:j(U,x),index:U,isScrolling:nr?Te:void 0,style:this._getItemStyle(U)}));var Me=n(this.props,this._instanceProps);return(0,B.createElement)(er||tr||"div",{className:h,onScroll:or,ref:this._outerRefSetter,style:Oe({position:"relative",height:S,width:ir,overflow:"auto",WebkitOverflowScrolling:"touch",willChange:"transform",direction:y},rr)},(0,B.createElement)(l||f||"div",{children:Re,ref:a,style:{height:ce?"100%":Me,pointerEvents:Te?"none":void 0,width:ce?Me:"100%"}}))},g._callPropsCallbacks=function(){if(typeof this.props.onItemsRendered=="function"){var i=this.props.itemCount;if(i>0){var c=this._getRangeToRender(),h=c[0],y=c[1],S=c[2],a=c[3];this._callOnItemsRendered(h,y,S,a)}}if(typeof this.props.onScroll=="function"){var l=this.state,f=l.scrollDirection,_=l.scrollOffset,x=l.scrollUpdateWasRequested;this._callOnScroll(f,_,x)}},g._getRangeToRender=function(){var i=this.props,c=i.itemCount,h=i.overscanCount,y=this.state,S=y.isScrolling,a=y.scrollDirection,l=y.scrollOffset;if(c===0)return[0,0,0,0];var f=d(this.props,l,this._instanceProps),_=u(this.props,f,l,this._instanceProps),x=!S||a==="backward"?Math.max(1,h):1,O=!S||a==="forward"?Math.max(1,h):1;return[Math.max(0,f-x),Math.max(0,Math.min(c-1,_+O)),f,_]},w}(B.PureComponent),e.defaultProps={direction:"ltr",itemData:void 0,layout:"vertical",overscanCount:2,useIsScrolling:!1},e}var ei=function(e,r){var n=e.children,o=e.direction,s=e.height,d=e.layout,u=e.innerTagName,v=e.outerTagName,b=e.width,C=r.instance;if(!1){var m;switch(o){case"horizontal":case"vertical":case"ltr":case"rtl":default:}switch(d){case"horizontal":case"vertical":default:}}},ti=50,H=function(e,r,n){var o=e,s=o.itemSize,d=n.itemMetadataMap,u=n.lastMeasuredIndex;if(r>u){var v=0;if(u>=0){var b=d[u];v=b.offset+b.size}for(var C=u+1;C<=r;C++){var m=s(C);d[C]={offset:v,size:m},v+=m}n.lastMeasuredIndex=r}return d[r]},ri=function(e,r,n){var o=r.itemMetadataMap,s=r.lastMeasuredIndex,d=s>0?o[s].offset:0;return d>=n?Bt(e,r,s,0,n):ni(e,r,Math.max(0,s),n)},Bt=function(e,r,n,o,s){for(;o<=n;){var d=o+Math.floor((n-o)/2),u=H(e,d,r).offset;if(u===s)return d;us&&(n=d-1)}return o>0?o-1:0},ni=function(e,r,n,o){for(var s=e.itemCount,d=1;n=n&&(d=n-1),d>=0){var v=o[d];u=v.offset+v.size}var b=n-d-1,C=b*s;return u+C},qt=Qn({getItemOffset:function(e,r,n){return H(e,r,n).offset},getItemSize:function(e,r,n){return n.itemMetadataMap[r].size},getEstimatedTotalSize:Ht,getOffsetForIndexAndAlignment:function(e,r,n,o,s,d){var u=e.direction,v=e.height,b=e.layout,C=e.width,m=u==="horizontal"||b==="horizontal",w=m?C:v,g=H(e,r,s),p=Ht(e,s),i=Math.max(0,Math.min(p-w,g.offset)),c=Math.max(0,g.offset-w+g.size+d);switch(n==="smart"&&(o>=c-w&&o<=i+w?n="auto":n="center"),n){case"start":return i;case"end":return c;case"center":return Math.round(c+(i-c)/2);case"auto":default:return o>=c&&o<=i?o:o(e.addPushCallback(t),()=>{e.removePushCallback(t)}),[e,t])}var T=M(Ae()),Qt=18,ii=Ee(t=>({root:{display:"flex",height:"100%",flexFlow:"column nowrap",alignItems:"stretch",gap:t.spacing(2)},root_window:{padding:t.spacing(2)},buttons:{flex:"0 1 auto",display:"flex",gap:t.spacing(1)},code:{display:"block",flex:1,background:"#1e1e1e",color:"#cccccc",fontSize:"14px",lineHeight:`${Qt}px`,padding:t.spacing(2,0),"& pre":{margin:0,padding:t.spacing(0,2),fontFamily:'"Fira Code", "Consolas", "Lucida Console", monospace'}}}));Y.rgb.blue=[36,114,200];Y.rgb.cyan=[17,168,205];Y.rgb.green=[13,188,121];var Ko=()=>{let t=ii(),e=J(),{translate:r}=Le(),{instance:n}=We(),o=(0,E.useRef)(null),[s,d]=(0,E.useState)([]),u=l=>{d(f=>[...f,l])},v=l=>s[l].split(` `).length*Qt;function b({index:l,style:f}){let _=s[l];return(0,T.jsx)("pre",{style:f,dangerouslySetInnerHTML:{__html:_}})}let[C,m]=(0,E.useState)(!1),[w,g]=(0,E.useState)(!0),p=(0,Jt.default)(()=>{var l;(l=o.current)==null||l.scrollToItem(s.length-1,"end")},100);(0,E.useEffect)(()=>{w&&s.length>0&&p()},[s.length,w]);let i=(0,E.useCallback)(l=>{if(l.type==="log"){let _=Y.parse(l.info.message).spans.map(x=>`${x.text}`);u(_.join(""))}},[d]);Ut(i);let c=(0,E.useCallback)(()=>{C||e.subscribeLogs().then(()=>{u(r("Subscribed to logs...")),m(!0)})},[e,C]),h=(0,E.useCallback)(()=>{!C||e.unsubscribeLogs().then(()=>{u(r("Unsubscribed logs...")),m(!1)})},[e,C]);(0,E.useEffect)(()=>(c(),h),[]);let y=(0,E.useCallback)(()=>{let l=document.createElement("a"),f=s.join(` `).replace(/\<.*?\>/g,""),_=new Blob([f],{type:"text/plain"});l.href=URL.createObjectURL(_),l.download=`zwave_${new Date().toISOString().replace("T","_").replace(/[:\.]/g,"-").replace("Z","")}.log`,document.body.appendChild(l),l.click()},[s]),S=(0,E.useCallback)(()=>{window.open("log_window.html",`zwave_log_${n}`,"innerWidth=1040,innerHeight=600")},[]),a=window.name.startsWith("zwave_log_");return(0,T.jsxs)("div",{className:(0,Xt.default)(t.root,a&&t.root_window),children:[(0,T.jsxs)("div",{className:t.buttons,children:[(0,T.jsxs)(de,{variant:"contained",color:"primary",children:[(0,T.jsx)(q.default,{title:r("Start logging"),children:(0,T.jsx)(A.default,{disabled:C,onClick:c,children:(0,T.jsx)(Zt.default,{})})}),(0,T.jsx)(q.default,{title:r("Pause logging"),children:(0,T.jsx)(A.default,{disabled:!C,onClick:h,children:(0,T.jsx)(Yt.default,{})})})]}),(0,T.jsxs)(de,{variant:"contained",color:"primary",children:[(0,T.jsx)(q.default,{title:r("Auto-scroll to bottom"),children:(0,T.jsx)(A.default,{disabled:w,onClick:()=>g(!0),children:(0,T.jsx)(Gt.default,{})})}),(0,T.jsx)(q.default,{title:r("Pause auto-scrolling"),children:(0,T.jsx)(A.default,{disabled:!w,onClick:()=>g(!1),children:(0,T.jsx)(Kt.default,{})})})]}),(0,T.jsx)(A.default,{variant:"contained",color:"primary",onClick:y,startIcon:(0,T.jsx)(Vt.default,{}),children:r("Download logs")}),!a&&(0,T.jsx)(q.default,{title:r("Open log in new window"),children:(0,T.jsx)(A.default,{variant:"contained",color:"primary",style:{marginLeft:"auto"},onClick:S,children:(0,T.jsx)($t.default,{})})})]}),(0,T.jsx)("code",{className:t.code,children:(0,T.jsx)(At,{children:({height:l,width:f})=>(0,T.jsx)(qt,{itemCount:s.length,itemSize:v,width:f,height:l,ref:o,children:b})})})]})};export{fr as a,Pe as b,Ut as c,Ko as d}; -//# sourceMappingURL=chunk-LBOQGQC5.js.map +//# sourceMappingURL=chunk-J724PBLX.js.map diff --git a/admin/build/chunk-LBOQGQC5.js.map b/admin/build/chunk-J724PBLX.js.map similarity index 100% rename from admin/build/chunk-LBOQGQC5.js.map rename to admin/build/chunk-J724PBLX.js.map diff --git a/admin/build/chunk-5K7AELRB.js b/admin/build/chunk-QC74SDCH.js similarity index 85% rename from admin/build/chunk-5K7AELRB.js rename to admin/build/chunk-QC74SDCH.js index 9763680d..a609e410 100644 --- a/admin/build/chunk-5K7AELRB.js +++ b/admin/build/chunk-QC74SDCH.js @@ -27,7 +27,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho `),s=0;s>16).toString(16).toUpperCase()),a}},{key:"clone",value:function(r){return JSON.parse(JSON.stringify(r))}},{key:"getStates",value:function(r){var n,o=r==null||(n=r.common)===null||n===void 0?void 0:n.states;if(o){if(typeof o=="string"&&o[0]==="{")try{o=JSON.parse(o)}catch(u){console.error("Cannot parse states: ".concat(o)),o=null}else if(typeof o=="string"){var a=o.split(";");o={};for(var i=0;i{var Jx=function(t){"use strict";var e=Object.prototype,r=e.hasOwnProperty,n,o=typeof Symbol=="function"?Symbol:{},a=o.iterator||"@@iterator",i=o.asyncIterator||"@@asyncIterator",s=o.toStringTag||"@@toStringTag";function l(N,P,q){return Object.defineProperty(N,P,{value:q,enumerable:!0,configurable:!0,writable:!0}),N[P]}try{l({},"")}catch(N){l=function(P,q,L){return P[q]=L}}function u(N,P,q,L){var $=P&&P.prototype instanceof f?P:f,K=Object.create($.prototype),ee=new V(L||[]);return K._invoke=R(N,q,ee),K}t.wrap=u;function c(N,P,q){try{return{type:"normal",arg:N.call(P,q)}}catch(L){return{type:"throw",arg:L}}}var d="suspendedStart",m="suspendedYield",g="executing",y="completed",h={};function f(){}function p(){}function v(){}var b={};l(b,a,function(){return this});var S=Object.getPrototypeOf,x=S&&S(S(Z([])));x&&x!==e&&r.call(x,a)&&(b=x);var T=v.prototype=f.prototype=Object.create(b);p.prototype=v,l(T,"constructor",v),l(v,"constructor",p),p.displayName=l(v,s,"GeneratorFunction");function k(N){["next","throw","return"].forEach(function(P){l(N,P,function(q){return this._invoke(P,q)})})}t.isGeneratorFunction=function(N){var P=typeof N=="function"&&N.constructor;return P?P===p||(P.displayName||P.name)==="GeneratorFunction":!1},t.mark=function(N){return Object.setPrototypeOf?Object.setPrototypeOf(N,v):(N.__proto__=v,l(N,s,"GeneratorFunction")),N.prototype=Object.create(T),N},t.awrap=function(N){return{__await:N}};function D(N,P){function q(K,ee,ae,ce){var se=c(N[K],N,ee);if(se.type==="throw")ce(se.arg);else{var te=se.arg,ge=te.value;return ge&&typeof ge=="object"&&r.call(ge,"__await")?P.resolve(ge.__await).then(function(fe){q("next",fe,ae,ce)},function(fe){q("throw",fe,ae,ce)}):P.resolve(ge).then(function(fe){te.value=fe,ae(te)},function(fe){return q("throw",fe,ae,ce)})}}var L;function $(K,ee){function ae(){return new P(function(ce,se){q(K,ee,ce,se)})}return L=L?L.then(ae,ae):ae()}this._invoke=$}k(D.prototype),l(D.prototype,i,function(){return this}),t.AsyncIterator=D,t.async=function(N,P,q,L,$){$===void 0&&($=Promise);var K=new D(u(N,P,q,L),$);return t.isGeneratorFunction(P)?K:K.next().then(function(ee){return ee.done?ee.value:K.next()})};function R(N,P,q){var L=d;return function(K,ee){if(L===g)throw new Error("Generator is already running");if(L===y){if(K==="throw")throw ee;return Q()}for(q.method=K,q.arg=ee;;){var ae=q.delegate;if(ae){var ce=I(ae,q);if(ce){if(ce===h)continue;return ce}}if(q.method==="next")q.sent=q._sent=q.arg;else if(q.method==="throw"){if(L===d)throw L=y,q.arg;q.dispatchException(q.arg)}else q.method==="return"&&q.abrupt("return",q.arg);L=g;var se=c(N,P,q);if(se.type==="normal"){if(L=q.done?y:m,se.arg===h)continue;return{value:se.arg,done:q.done}}else se.type==="throw"&&(L=y,q.method="throw",q.arg=se.arg)}}}function I(N,P){var q=N.iterator[P.method];if(q===n){if(P.delegate=null,P.method==="throw"){if(N.iterator.return&&(P.method="return",P.arg=n,I(N,P),P.method==="throw"))return h;P.method="throw",P.arg=new TypeError("The iterator does not provide a 'throw' method")}return h}var L=c(q,N.iterator,P.arg);if(L.type==="throw")return P.method="throw",P.arg=L.arg,P.delegate=null,h;var $=L.arg;if(!$)return P.method="throw",P.arg=new TypeError("iterator result is not an object"),P.delegate=null,h;if($.done)P[N.resultName]=$.value,P.next=N.nextLoc,P.method!=="return"&&(P.method="next",P.arg=n);else return $;return P.delegate=null,h}k(T),l(T,s,"Generator"),l(T,a,function(){return this}),l(T,"toString",function(){return"[object Generator]"});function U(N){var P={tryLoc:N[0]};1 in N&&(P.catchLoc=N[1]),2 in N&&(P.finallyLoc=N[2],P.afterLoc=N[3]),this.tryEntries.push(P)}function A(N){var P=N.completion||{};P.type="normal",delete P.arg,N.completion=P}function V(N){this.tryEntries=[{tryLoc:"root"}],N.forEach(U,this),this.reset(!0)}t.keys=function(N){var P=[];for(var q in N)P.push(q);return P.reverse(),function L(){for(;P.length;){var $=P.pop();if($ in N)return L.value=$,L.done=!1,L}return L.done=!0,L}};function Z(N){if(N){var P=N[a];if(P)return P.call(N);if(typeof N.next=="function")return N;if(!isNaN(N.length)){var q=-1,L=function $(){for(;++q=0;--L){var $=this.tryEntries[L],K=$.completion;if($.tryLoc==="root")return q("end");if($.tryLoc<=this.prev){var ee=r.call($,"catchLoc"),ae=r.call($,"finallyLoc");if(ee&&ae){if(this.prev<$.catchLoc)return q($.catchLoc,!0);if(this.prev<$.finallyLoc)return q($.finallyLoc)}else if(ee){if(this.prev<$.catchLoc)return q($.catchLoc,!0)}else if(ae){if(this.prev<$.finallyLoc)return q($.finallyLoc)}else throw new Error("try statement without catch or finally")}}},abrupt:function(N,P){for(var q=this.tryEntries.length-1;q>=0;--q){var L=this.tryEntries[q];if(L.tryLoc<=this.prev&&r.call(L,"finallyLoc")&&this.prev=0;--P){var q=this.tryEntries[P];if(q.finallyLoc===N)return this.complete(q.completion,q.afterLoc),A(q),h}},catch:function(N){for(var P=this.tryEntries.length-1;P>=0;--P){var q=this.tryEntries[P];if(q.tryLoc===N){var L=q.completion;if(L.type==="throw"){var $=L.arg;A(q)}return $}}throw new Error("illegal catch attempt")},delegateYield:function(N,P,q){return this.delegate={iterator:Z(N),resultName:P,nextLoc:q},this.method==="next"&&(this.arg=n),h}},t}(typeof Yx=="object"?Yx.exports:{});try{regeneratorRuntime=Jx}catch(t){typeof globalThis=="object"?globalThis.regeneratorRuntime=Jx:Function("r","regeneratorRuntime = r")(Jx)}});var m5=w((INe,p5)=>{p5.exports=f5()});var v5=w((zNe,Vf)=>{function h5(t,e,r,n,o,a,i){try{var s=t[a](i),l=s.value}catch(u){r(u);return}s.done?e(l):Promise.resolve(l).then(n,o)}function hse(t){return function(){var e=this,r=arguments;return new Promise(function(n,o){var a=t.apply(e,r);function i(l){h5(a,n,o,i,s,"next",l)}function s(l){h5(a,n,o,i,s,"throw",l)}i(void 0)})}}Vf.exports=hse,Vf.exports.__esModule=!0,Vf.exports.default=Vf.exports});var _5=w((ANe,y5)=>{"use strict";function vse(){var t=document.getSelection();if(!t.rangeCount)return function(){};for(var e=document.activeElement,r=[],n=0;n{"use strict";var bse=Nn&&Nn.__read||function(t,e){var r=typeof Symbol=="function"&&t[Symbol.iterator];if(!r)return t;var n=r.call(t),o,a=[],i;try{for(;(e===void 0||e-- >0)&&!(o=n.next()).done;)a.push(o.value)}catch(s){i={error:s}}finally{try{o&&!o.done&&(r=n.return)&&r.call(n)}finally{if(i)throw i.error}}return a};Object.defineProperty(Nn,"__esModule",{value:!0});Nn.possibleStandardNames=Nn.noTextChildNodes=Nn.randomString=Nn.styleToObject=void 0;var wse=function(t){var e=t.split(/ ?; ?/);return e.reduce(function(r,n){var o=bse(n.split(/ ?: ?/),2),a=o[0],i=o[1];return a&&i&&(r[a.replace(/-(\w)/g,function(s,l){return l.toUpperCase()})]=Number.isNaN(Number(i))?i:Number(i)),r},{})};Nn.styleToObject=wse;function Sse(t){t===void 0&&(t=6);for(var e="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ",r="",n=t;n>0;--n)r+=e[Math.round(Math.random()*(e.length-1))];return r}Nn.randomString=Sse;Nn.noTextChildNodes=["br","col","colgroup","dl","hr","iframe","img","input","link","menuitem","meta","ol","param","select","table","tbody","tfoot","thead","tr","ul","wbr"];Nn.possibleStandardNames={"accept-charset":"acceptCharset",acceptcharset:"acceptCharset",accesskey:"accessKey",allowfullscreen:"allowFullScreen",autocapitalize:"autoCapitalize",autocomplete:"autoComplete",autocorrect:"autoCorrect",autofocus:"autoFocus",autoplay:"autoPlay",autosave:"autoSave",cellpadding:"cellPadding",cellspacing:"cellSpacing",charset:"charSet",class:"className",classid:"classID",classname:"className",colspan:"colSpan",contenteditable:"contentEditable",contextmenu:"contextMenu",controlslist:"controlsList",crossorigin:"crossOrigin",dangerouslysetinnerhtml:"dangerouslySetInnerHTML",datetime:"dateTime",defaultchecked:"defaultChecked",defaultvalue:"defaultValue",enctype:"encType",for:"htmlFor",formmethod:"formMethod",formaction:"formAction",formenctype:"formEncType",formnovalidate:"formNoValidate",formtarget:"formTarget",frameborder:"frameBorder",hreflang:"hrefLang",htmlfor:"htmlFor",httpequiv:"httpEquiv","http-equiv":"httpEquiv",icon:"icon",innerhtml:"innerHTML",inputmode:"inputMode",itemid:"itemID",itemprop:"itemProp",itemref:"itemRef",itemscope:"itemScope",itemtype:"itemType",keyparams:"keyParams",keytype:"keyType",marginwidth:"marginWidth",marginheight:"marginHeight",maxlength:"maxLength",mediagroup:"mediaGroup",minlength:"minLength",nomodule:"noModule",novalidate:"noValidate",playsinline:"playsInline",radiogroup:"radioGroup",readonly:"readOnly",referrerpolicy:"referrerPolicy",rowspan:"rowSpan",spellcheck:"spellCheck",srcdoc:"srcDoc",srclang:"srcLang",srcset:"srcSet",tabindex:"tabIndex",typemustmatch:"typeMustMatch",usemap:"useMap",accentheight:"accentHeight","accent-height":"accentHeight",alignmentbaseline:"alignmentBaseline","alignment-baseline":"alignmentBaseline",allowreorder:"allowReorder",arabicform:"arabicForm","arabic-form":"arabicForm",attributename:"attributeName",attributetype:"attributeType",autoreverse:"autoReverse",basefrequency:"baseFrequency",baselineshift:"baselineShift","baseline-shift":"baselineShift",baseprofile:"baseProfile",calcmode:"calcMode",capheight:"capHeight","cap-height":"capHeight",clippath:"clipPath","clip-path":"clipPath",clippathunits:"clipPathUnits",cliprule:"clipRule","clip-rule":"clipRule",colorinterpolation:"colorInterpolation","color-interpolation":"colorInterpolation",colorinterpolationfilters:"colorInterpolationFilters","color-interpolation-filters":"colorInterpolationFilters",colorprofile:"colorProfile","color-profile":"colorProfile",colorrendering:"colorRendering","color-rendering":"colorRendering",contentscripttype:"contentScriptType",contentstyletype:"contentStyleType",diffuseconstant:"diffuseConstant",dominantbaseline:"dominantBaseline","dominant-baseline":"dominantBaseline",edgemode:"edgeMode",enablebackground:"enableBackground","enable-background":"enableBackground",externalresourcesrequired:"externalResourcesRequired",fillopacity:"fillOpacity","fill-opacity":"fillOpacity",fillrule:"fillRule","fill-rule":"fillRule",filterres:"filterRes",filterunits:"filterUnits",floodopacity:"floodOpacity","flood-opacity":"floodOpacity",floodcolor:"floodColor","flood-color":"floodColor",fontfamily:"fontFamily","font-family":"fontFamily",fontsize:"fontSize","font-size":"fontSize",fontsizeadjust:"fontSizeAdjust","font-size-adjust":"fontSizeAdjust",fontstretch:"fontStretch","font-stretch":"fontStretch",fontstyle:"fontStyle","font-style":"fontStyle",fontvariant:"fontVariant","font-variant":"fontVariant",fontweight:"fontWeight","font-weight":"fontWeight",glyphname:"glyphName","glyph-name":"glyphName",glyphorientationhorizontal:"glyphOrientationHorizontal","glyph-orientation-horizontal":"glyphOrientationHorizontal",glyphorientationvertical:"glyphOrientationVertical","glyph-orientation-vertical":"glyphOrientationVertical",glyphref:"glyphRef",gradienttransform:"gradientTransform",gradientunits:"gradientUnits",horizadvx:"horizAdvX","horiz-adv-x":"horizAdvX",horizoriginx:"horizOriginX","horiz-origin-x":"horizOriginX",imagerendering:"imageRendering","image-rendering":"imageRendering",kernelmatrix:"kernelMatrix",kernelunitlength:"kernelUnitLength",keypoints:"keyPoints",keysplines:"keySplines",keytimes:"keyTimes",lengthadjust:"lengthAdjust",letterspacing:"letterSpacing","letter-spacing":"letterSpacing",lightingcolor:"lightingColor","lighting-color":"lightingColor",limitingconeangle:"limitingConeAngle",markerend:"markerEnd","marker-end":"markerEnd",markerheight:"markerHeight",markermid:"markerMid","marker-mid":"markerMid",markerstart:"markerStart","marker-start":"markerStart",markerunits:"markerUnits",markerwidth:"markerWidth",maskcontentunits:"maskContentUnits",maskunits:"maskUnits",numoctaves:"numOctaves",overlineposition:"overlinePosition","overline-position":"overlinePosition",overlinethickness:"overlineThickness","overline-thickness":"overlineThickness",paintorder:"paintOrder","paint-order":"paintOrder","panose-1":"panose1",pathlength:"pathLength",patterncontentunits:"patternContentUnits",patterntransform:"patternTransform",patternunits:"patternUnits",pointerevents:"pointerEvents","pointer-events":"pointerEvents",pointsatx:"pointsAtX",pointsaty:"pointsAtY",pointsatz:"pointsAtZ",preservealpha:"preserveAlpha",preserveaspectratio:"preserveAspectRatio",primitiveunits:"primitiveUnits",refx:"refX",refy:"refY",renderingintent:"renderingIntent","rendering-intent":"renderingIntent",repeatcount:"repeatCount",repeatdur:"repeatDur",requiredextensions:"requiredExtensions",requiredfeatures:"requiredFeatures",shaperendering:"shapeRendering","shape-rendering":"shapeRendering",specularconstant:"specularConstant",specularexponent:"specularExponent",spreadmethod:"spreadMethod",startoffset:"startOffset",stddeviation:"stdDeviation",stitchtiles:"stitchTiles",stopcolor:"stopColor","stop-color":"stopColor",stopopacity:"stopOpacity","stop-opacity":"stopOpacity",strikethroughposition:"strikethroughPosition","strikethrough-position":"strikethroughPosition",strikethroughthickness:"strikethroughThickness","strikethrough-thickness":"strikethroughThickness",strokedasharray:"strokeDasharray","stroke-dasharray":"strokeDasharray",strokedashoffset:"strokeDashoffset","stroke-dashoffset":"strokeDashoffset",strokelinecap:"strokeLinecap","stroke-linecap":"strokeLinecap",strokelinejoin:"strokeLinejoin","stroke-linejoin":"strokeLinejoin",strokemiterlimit:"strokeMiterlimit","stroke-miterlimit":"strokeMiterlimit",strokewidth:"strokeWidth","stroke-width":"strokeWidth",strokeopacity:"strokeOpacity","stroke-opacity":"strokeOpacity",suppresscontenteditablewarning:"suppressContentEditableWarning",suppresshydrationwarning:"suppressHydrationWarning",surfacescale:"surfaceScale",systemlanguage:"systemLanguage",tablevalues:"tableValues",targetx:"targetX",targety:"targetY",textanchor:"textAnchor","text-anchor":"textAnchor",textdecoration:"textDecoration","text-decoration":"textDecoration",textlength:"textLength",textrendering:"textRendering","text-rendering":"textRendering",underlineposition:"underlinePosition","underline-position":"underlinePosition",underlinethickness:"underlineThickness","underline-thickness":"underlineThickness",unicodebidi:"unicodeBidi","unicode-bidi":"unicodeBidi",unicoderange:"unicodeRange","unicode-range":"unicodeRange",unitsperem:"unitsPerEm","units-per-em":"unitsPerEm",unselectable:"unselectable",valphabetic:"vAlphabetic","v-alphabetic":"vAlphabetic",vectoreffect:"vectorEffect","vector-effect":"vectorEffect",vertadvy:"vertAdvY","vert-adv-y":"vertAdvY",vertoriginx:"vertOriginX","vert-origin-x":"vertOriginX",vertoriginy:"vertOriginY","vert-origin-y":"vertOriginY",vhanging:"vHanging","v-hanging":"vHanging",videographic:"vIdeographic","v-ideographic":"vIdeographic",viewbox:"viewBox",viewtarget:"viewTarget",vmathematical:"vMathematical","v-mathematical":"vMathematical",wordspacing:"wordSpacing","word-spacing":"wordSpacing",writingmode:"writingMode","writing-mode":"writingMode",xchannelselector:"xChannelSelector",xheight:"xHeight","x-height":"xHeight",xlinkactuate:"xlinkActuate","xlink:actuate":"xlinkActuate",xlinkarcrole:"xlinkArcrole","xlink:arcrole":"xlinkArcrole",xlinkhref:"xlinkHref","xlink:href":"xlinkHref",xlinkrole:"xlinkRole","xlink:role":"xlinkRole",xlinkshow:"xlinkShow","xlink:show":"xlinkShow",xlinktitle:"xlinkTitle","xlink:title":"xlinkTitle",xlinktype:"xlinkType","xlink:type":"xlinkType",xmlbase:"xmlBase","xml:base":"xmlBase",xmllang:"xmlLang","xml:lang":"xmlLang","xml:space":"xmlSpace",xmlnsxlink:"xmlnsXlink","xmlns:xlink":"xmlnsXlink",xmlspace:"xmlSpace",ychannelselector:"yChannelSelector",zoomandpan:"zoomAndPan",onblur:"onBlur",onchange:"onChange",onclick:"onClick",oncontextmenu:"onContextMenu",ondoubleclick:"onDoubleClick",ondrag:"onDrag",ondragend:"onDragEnd",ondragenter:"onDragEnter",ondragexit:"onDragExit",ondragleave:"onDragLeave",ondragover:"onDragOver",ondragstart:"onDragStart",ondrop:"onDrop",onerror:"onError",onfocus:"onFocus",oninput:"onInput",oninvalid:"onInvalid",onkeydown:"onKeyDown",onkeypress:"onKeyPress",onkeyup:"onKeyUp",onload:"onLoad",onmousedown:"onMouseDown",onmouseenter:"onMouseEnter",onmouseleave:"onMouseLeave",onmousemove:"onMouseMove",onmouseout:"onMouseOut",onmouseover:"onMouseOver",onmouseup:"onMouseUp",onscroll:"onScroll",onsubmit:"onSubmit",ontouchcancel:"onTouchCancel",ontouchend:"onTouchEnd",ontouchmove:"onTouchMove",ontouchstart:"onTouchStart",onwheel:"onWheel"}});var x5=w(ln=>{"use strict";var _g=ln&&ln.__assign||function(){return _g=Object.assign||function(t){for(var e,r=1,n=arguments.length;r0)&&!(o=n.next()).done;)a.push(o.value)}catch(s){i={error:s}}finally{try{o&&!o.done&&(r=n.return)&&r.call(n)}finally{if(i)throw i.error}}return a},S5=ln&&ln.__spreadArray||function(t,e){for(var r=0,n=e.length,o=t.length;r *":o,i=e.type,s=i===void 0?"text/html":i;try{var l=new DOMParser,u=l.parseFromString(t,s),c=u.querySelector(a);if(!(c instanceof Node))throw new Error("Error parsing input");return n?c:bg(c,e)}catch(d){}return null}ln.convertFromString=T5;function Cse(t,e){return e===void 0&&(e={}),typeof t=="string"?T5(t,e):t instanceof Node?bg(t,e):null}ln.default=Cse});var E5=w((WNe,wg)=>{(function(){"use strict";var t=!!(typeof window!="undefined"&&window.document&&window.document.createElement),e={canUseDOM:t,canUseWorkers:typeof Worker!="undefined",canUseEventListeners:t&&!!(window.addEventListener||window.attachEvent),canUseViewport:t&&!!window.screen};typeof define=="function"&&typeof define.amd=="object"&&define.amd?define(function(){return e}):typeof wg!="undefined"&&wg.exports?wg.exports=e:window.ExecutionEnvironment=e})()});var C5=w($r=>{"use strict";Object.defineProperty($r,"__esModule",{value:!0});$r.removeProperties=$r.randomString=$r.supportsInlineSVG=$r.isSupportedEnvironment=$r.canUseDOM=$r.STATUS=void 0;var Ose=E5();$r.STATUS={FAILED:"failed",LOADED:"loaded",LOADING:"loading",PENDING:"pending",READY:"ready",UNSUPPORTED:"unsupported"};function Rse(){return Ose.canUseDOM}$r.canUseDOM=Rse;function Nse(){return k5()&&typeof window!="undefined"&&window!==null}$r.isSupportedEnvironment=Nse;function k5(){if(!document)return!1;var t=document.createElement("div");return t.innerHTML="",!!t.firstChild&&t.firstChild.namespaceURI==="http://www.w3.org/2000/svg"}$r.supportsInlineSVG=k5;function Pse(t){for(var e="abcdefghijklmnopqrstuvwxyz",r="1234567890",n=""+e+e.toUpperCase()+r,o=function(s){return s[Math.floor(Math.random()*s.length)]},a="",i=0;i{"use strict";Object.defineProperty(O5,"__esModule",{value:!0})});var Xx=w(Ct=>{"use strict";var qse=Ct&&Ct.__extends||function(){var t=function(e,r){return t=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,o){n.__proto__=o}||function(n,o){for(var a in o)Object.prototype.hasOwnProperty.call(o,a)&&(n[a]=o[a])},t(e,r)};return function(e,r){if(typeof r!="function"&&r!==null)throw new TypeError("Class extends value "+String(r)+" is not a constructor or null");t(e,r);function n(){this.constructor=e}e.prototype=r===null?Object.create(r):(n.prototype=r.prototype,new n)}}(),Zx=Ct&&Ct.__assign||function(){return Zx=Object.assign||function(t){for(var e,r=1,n=arguments.length;r0)&&!(o=n.next()).done;)a.push(o.value)}catch(s){i={error:s}}finally{try{o&&!o.done&&(r=n.return)&&r.call(n)}finally{if(i)throw i.error}}return a},Ise=Ct&&Ct.__spreadArray||function(t,e){for(var r=0,n=e.length,o=t.length;r299)throw new Error("Not found");if(!["image/svg+xml","text/plain"].some(function(m){return d.indexOf(m)>=0}))throw new Error("Content type isn't valid: "+d);return l.text()}).then(function(l){var u=n.props.src;if(s===u&&(n.handleLoad(l),a)){var c=Ct.cacheStore[s];c&&(c.content=l,c.status=It.STATUS.LOADED,c.queue=c.queue.filter(function(d){return d(l),!1}))}}).catch(function(l){if(n.handleError(l),a){var u=Ct.cacheStore[s];u&&(u.queue.forEach(function(c){c(l)}),delete Ct.cacheStore[s])}})}catch(l){return n.handleError(new Error(l.message))}},n.state={content:"",element:null,hasCache:!!r.cacheRequests&&!!Ct.cacheStore[r.src],status:It.STATUS.PENDING},n.hash=r.uniqueHash||It.randomString(8),n}return e.prototype.componentDidMount=function(){if(this.isActive=!0,!!It.canUseDOM()){var r=this.state.status,n=this.props.src;try{if(r===It.STATUS.PENDING){if(!It.isSupportedEnvironment())throw new Error("Browser does not support SVG");if(!n)throw new Error("Missing src");this.load()}}catch(o){this.handleError(o)}}},e.prototype.componentDidUpdate=function(r,n){if(!!It.canUseDOM()){var o=this.state,a=o.hasCache,i=o.status,s=this.props,l=s.onLoad,u=s.src;if(n.status!==It.STATUS.READY&&i===It.STATUS.READY&&l&&l(u,a),r.src!==u){if(!u){this.handleError(new Error("Missing src"));return}this.load()}}},e.prototype.componentWillUnmount=function(){this.isActive=!1},e.prototype.processSVG=function(){var r=this.state.content,n=this.props.preProcessor;return n?n(r):r},e.prototype.updateSVGAttributes=function(r){var n=this,o=this.props,a=o.baseURL,i=a===void 0?"":a,s=o.uniquifyIDs,l=["id","href","xlink:href","xlink:role","xlink:arcrole"],u=["href","xlink:href"],c=function(d,m){return u.indexOf(d)>=0&&(m?m.indexOf("#")<0:!1)};return s&&Ise([],N5(r.children)).map(function(d){if(d.attributes&&d.attributes.length){var m=Object.values(d.attributes).map(function(g){var y=g,h=g.value.match(/url\((.*?)\)/);return h&&h[1]&&(y.value=g.value.replace(h[0],"url("+i+h[1]+"__"+n.hash+")")),y});l.forEach(function(g){var y=m.find(function(h){return h.name===g});y&&!c(g,y.value)&&(y.value=y.value+"__"+n.hash)})}return d.children.length?n.updateSVGAttributes(d):d}),r},e.prototype.getNode=function(){var r=this.props,n=r.description,o=r.title;try{var a=this.processSVG(),i=P5.default(a,{nodeOnly:!0});if(!i||!(i instanceof SVGSVGElement))throw new Error("Could not convert the src to a DOM Node");var s=this.updateSVGAttributes(i);if(n){var l=s.querySelector("desc");l&&l.parentNode&&l.parentNode.removeChild(l);var u=document.createElement("desc");u.innerHTML=n,s.prepend(u)}if(o){var c=s.querySelector("title");c&&c.parentNode&&c.parentNode.removeChild(c);var d=document.createElement("title");d.innerHTML=o,s.prepend(d)}return s}catch(m){return this.handleError(m)}},e.prototype.getElement=function(){try{var r=this.getNode(),n=P5.default(r);if(!n||!Qx.isValidElement(n))throw new Error("Could not convert the src to a React element");this.setState({element:n,status:It.STATUS.READY})}catch(o){this.handleError(new Error(o.message))}},e.prototype.load=function(){var r=this;this.isActive&&this.setState({content:"",element:null,status:It.STATUS.LOADING},function(){var n=r.props,o=n.cacheRequests,a=n.src,i=o&&Ct.cacheStore[a];if(i){i.status===It.STATUS.LOADING?i.queue.push(r.handleCacheQueue):i.status===It.STATUS.LOADED&&r.handleLoad(i.content);return}var s=a.match(/data:image\/svg[^,]*?(;base64)?,(.*)/),l;if(s?l=s[1]?atob(s[2]):decodeURIComponent(s[2]):a.indexOf("=0&&(l=a),l){r.handleLoad(l);return}r.request()})},e.prototype.render=function(){var r=this.state,n=r.element,o=r.status,a=this.props,i=a.children,s=i===void 0?null:i,l=a.innerRef,u=a.loader,c=u===void 0?null:u,d=It.removeProperties(this.props,"baseURL","cacheRequests","children","description","fetchOptions","innerRef","loader","onError","onLoad","preProcessor","src","title","uniqueHash","uniquifyIDs");return It.canUseDOM()?n?Qx.cloneElement(n,Zx({ref:l},d)):[It.STATUS.UNSUPPORTED,It.STATUS.FAILED].indexOf(o)>-1?s:c:c},e.defaultProps={cacheRequests:!0,uniquifyIDs:!1},e}(Qx.PureComponent);Ct.default=zse;Mse(R5(),Ct)});var j5=w(eE=>{"use strict";var Ase=X(),Fse=O();Object.defineProperty(eE,"__esModule",{value:!0});eE.default=Wse;var Lse=Fse(pe()),D5=Ase(j()),q5=jr();function Wse(t){var e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},r=(0,q5.useTheme)(),n=(0,q5.getThemeProps)({theme:r,name:"MuiUseMediaQuery",props:{}}),o=typeof t=="function"?t(r):t;o=o.replace(/^@media( ?)/m,"");var a=typeof window!="undefined"&&typeof window.matchMedia!="undefined",i=(0,Lse.default)({},n,e),s=i.defaultMatches,l=s===void 0?!1:s,u=i.matchMedia,c=u===void 0?a?window.matchMedia:null:u,d=i.noSsr,m=d===void 0?!1:d,g=i.ssrMatchMedia,y=g===void 0?null:g,h=D5.useState(function(){return m&&a?c(o).matches:y?y(o).matches:l}),f=h[0],p=h[1];return D5.useEffect(function(){var v=!0;if(!!a){var b=c(o),S=function(){v&&p(b.matches)};return S(),b.addListener(S),function(){v=!1,b.removeListener(S)}}},[o,c,a]),f}});var rE=w(tE=>{"use strict";var Bse=O();Object.defineProperty(tE,"__esModule",{value:!0});Object.defineProperty(tE,"default",{enumerable:!0,get:function(){return Vse.default}});var Vse=Bse(j5())});var I5=w(ni=>{"use strict";var $se=X(),Uu=O();Object.defineProperty(ni,"__esModule",{value:!0});ni.default=ni.isWidthDown=ni.isWidthUp=void 0;var M5=Uu(pe()),Use=Uu(Ee()),Sg=$se(j()),GNe=Uu(ne()),KNe=Ie(),Hse=jr(),Gse=Uu(Nd()),Kse=Uu(Ba()),ri=Bw(),Jse=Uu(rE()),Yse=function(e,r){var n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:!0;return n?ri.keys.indexOf(e)<=ri.keys.indexOf(r):ri.keys.indexOf(e)2&&arguments[2]!==void 0?arguments[2]:!0;return n?ri.keys.indexOf(r)<=ri.keys.indexOf(e):ri.keys.indexOf(r)0&&arguments[0]!==void 0?arguments[0]:{};return function(r){var n=e.withTheme,o=n===void 0?!1:n,a=e.noSSR,i=a===void 0?!1:a,s=e.initialWidth;function l(u){var c=(0,Kse.default)(),d=u.theme||c,m=(0,Hse.getThemeProps)({theme:d,name:"MuiWithWidth",props:(0,M5.default)({},u)}),g=m.initialWidth,y=m.width,h=(0,Use.default)(m,["initialWidth","width"]),f=Sg.useState(!1),p=f[0],v=f[1];Zse(function(){v(!0)},[]);var b=d.breakpoints.keys.slice().reverse(),S=b.reduce(function(T,k){var D=(0,Jse.default)(d.breakpoints.up(k));return!T&&D?k:T},null),x=(0,M5.default)({width:y||(p||i?S:void 0)||g||s},o?{theme:d}:{},h);return x.width===void 0?null:Sg.createElement(r,x)}return(0,Gse.default)(l,r),l}},ele=Xse;ni.default=ele});var z5=w(Tg=>{"use strict";var tle=X();Object.defineProperty(Tg,"__esModule",{value:!0});var rle={};Object.defineProperty(Tg,"default",{enumerable:!0,get:function(){return nE.default}});var nE=tle(I5());Object.keys(nE).forEach(function(t){t==="default"||t==="__esModule"||Object.prototype.hasOwnProperty.call(rle,t)||Object.defineProperty(Tg,t,{enumerable:!0,get:function(){return nE[t]}})})});var W5=w(Hu=>{"use strict";var nle=X(),Gu=O();Object.defineProperty(Hu,"__esModule",{value:!0});Hu.default=Hu.styles=void 0;var A5=Gu(pe()),ole=Gu(Ee()),xg=nle(j()),QNe=Gu(ne()),F5=Gu(_e()),ZNe=Ie(),ale=Gu(ze()),ile=Gu(Dt()),oi=44,L5=function(e){return{root:{display:"inline-block"},static:{transition:e.transitions.create("transform")},indeterminate:{animation:"$circular-rotate 1.4s linear infinite"},determinate:{transition:e.transitions.create("transform")},colorPrimary:{color:e.palette.primary.main},colorSecondary:{color:e.palette.secondary.main},svg:{display:"block"},circle:{stroke:"currentColor"},circleStatic:{transition:e.transitions.create("stroke-dashoffset")},circleIndeterminate:{animation:"$circular-dash 1.4s ease-in-out infinite",strokeDasharray:"80px, 200px",strokeDashoffset:"0px"},circleDeterminate:{transition:e.transitions.create("stroke-dashoffset")},"@keyframes circular-rotate":{"0%":{transformOrigin:"50% 50%"},"100%":{transform:"rotate(360deg)"}},"@keyframes circular-dash":{"0%":{strokeDasharray:"1px, 200px",strokeDashoffset:"0px"},"50%":{strokeDasharray:"100px, 200px",strokeDashoffset:"-15px"},"100%":{strokeDasharray:"100px, 200px",strokeDashoffset:"-125px"}},circleDisableShrink:{animation:"none"}}};Hu.styles=L5;var sle=xg.forwardRef(function(e,r){var n=e.classes,o=e.className,a=e.color,i=a===void 0?"primary":a,s=e.disableShrink,l=s===void 0?!1:s,u=e.size,c=u===void 0?40:u,d=e.style,m=e.thickness,g=m===void 0?3.6:m,y=e.value,h=y===void 0?0:y,f=e.variant,p=f===void 0?"indeterminate":f,v=(0,ole.default)(e,["classes","className","color","disableShrink","size","style","thickness","value","variant"]),b={},S={},x={};if(p==="determinate"||p==="static"){var T=2*Math.PI*((oi-g)/2);b.strokeDasharray=T.toFixed(3),x["aria-valuenow"]=Math.round(h),b.strokeDashoffset="".concat(((100-h)/100*T).toFixed(3),"px"),S.transform="rotate(-90deg)"}return xg.createElement("div",(0,A5.default)({className:(0,F5.default)(n.root,o,i!=="inherit"&&n["color".concat((0,ile.default)(i))],{determinate:n.determinate,indeterminate:n.indeterminate,static:n.static}[p]),style:(0,A5.default)({width:c,height:c},S,d),ref:r,role:"progressbar"},x,v),xg.createElement("svg",{className:n.svg,viewBox:"".concat(oi/2," ").concat(oi/2," ").concat(oi," ").concat(oi)},xg.createElement("circle",{className:(0,F5.default)(n.circle,l&&n.circleDisableShrink,{determinate:n.circleDeterminate,indeterminate:n.circleIndeterminate,static:n.circleStatic}[p]),style:b,cx:oi,cy:oi,r:(oi-g)/2,fill:"none",strokeWidth:g})))}),lle=(0,ale.default)(L5,{name:"MuiCircularProgress",flip:!1})(sle);Hu.default=lle});var B5=w(oE=>{"use strict";var ule=O();Object.defineProperty(oE,"__esModule",{value:!0});Object.defineProperty(oE,"default",{enumerable:!0,get:function(){return cle.default}});var cle=ule(W5())});var H5=w(Ku=>{"use strict";var $5=X(),Jo=O();Object.defineProperty(Ku,"__esModule",{value:!0});Ku.default=Ku.styles=void 0;var aE=Jo(pe()),V5=Jo(Ee()),Pn=$5(j()),t2e=Jo(ne()),iE=Jo(_e()),r2e=Ie(),dle=Jo(ze()),fle=Jo(nf()),ple=Jo(sv()),mle=Jo(ar()),sE=Jo(Tf()),hle=$5(hr()),U5=function(e){return{root:{display:"flex",justifyContent:"flex-start",alignItems:"center",position:"relative",textDecoration:"none",width:"100%",boxSizing:"border-box",textAlign:"left",paddingTop:8,paddingBottom:8,"&$focusVisible":{backgroundColor:e.palette.action.selected},"&$selected, &$selected:hover":{backgroundColor:e.palette.action.selected},"&$disabled":{opacity:.5}},container:{position:"relative"},focusVisible:{},dense:{paddingTop:4,paddingBottom:4},alignItemsFlexStart:{alignItems:"flex-start"},disabled:{},divider:{borderBottom:"1px solid ".concat(e.palette.divider),backgroundClip:"padding-box"},gutters:{paddingLeft:16,paddingRight:16},button:{transition:e.transitions.create("background-color",{duration:e.transitions.duration.shortest}),"&:hover":{textDecoration:"none",backgroundColor:e.palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}}},secondaryAction:{paddingRight:48},selected:{}}};Ku.styles=U5;var vle=typeof window=="undefined"?Pn.useEffect:Pn.useLayoutEffect,gle=Pn.forwardRef(function(e,r){var n=e.alignItems,o=n===void 0?"center":n,a=e.autoFocus,i=a===void 0?!1:a,s=e.button,l=s===void 0?!1:s,u=e.children,c=e.classes,d=e.className,m=e.component,g=e.ContainerComponent,y=g===void 0?"li":g,h=e.ContainerProps;h=h===void 0?{}:h;var f=h.className,p=(0,V5.default)(h,["className"]),v=e.dense,b=v===void 0?!1:v,S=e.disabled,x=S===void 0?!1:S,T=e.disableGutters,k=T===void 0?!1:T,D=e.divider,R=D===void 0?!1:D,I=e.focusVisibleClassName,U=e.selected,A=U===void 0?!1:U,V=(0,V5.default)(e,["alignItems","autoFocus","button","children","classes","className","component","ContainerComponent","ContainerProps","dense","disabled","disableGutters","divider","focusVisibleClassName","selected"]),Z=Pn.useContext(sE.default),Q={dense:b||Z.dense||!1,alignItems:o},N=Pn.useRef(null);vle(function(){i&&N.current&&N.current.focus()},[i]);var P=Pn.Children.toArray(u),q=P.length&&(0,ple.default)(P[P.length-1],["ListItemSecondaryAction"]),L=Pn.useCallback(function(ae){N.current=hle.findDOMNode(ae)},[]),$=(0,mle.default)(L,r),K=(0,aE.default)({className:(0,iE.default)(c.root,d,Q.dense&&c.dense,!k&&c.gutters,R&&c.divider,x&&c.disabled,l&&c.button,o!=="center"&&c.alignItemsFlexStart,q&&c.secondaryAction,A&&c.selected),disabled:x},V),ee=m||"li";return l&&(K.component=m||"div",K.focusVisibleClassName=(0,iE.default)(c.focusVisible,I),ee=fle.default),q?(ee=!K.component&&!m?"div":ee,y==="li"&&(ee==="li"?ee="div":K.component==="li"&&(K.component="div")),Pn.createElement(sE.default.Provider,{value:Q},Pn.createElement(y,(0,aE.default)({className:(0,iE.default)(c.container,f),ref:$},p),Pn.createElement(ee,K,P),P.pop()))):Pn.createElement(sE.default.Provider,{value:Q},Pn.createElement(ee,(0,aE.default)({ref:$},K),P))}),yle=(0,dle.default)(U5,{name:"MuiListItem"})(gle);Ku.default=yle});var uE=w(lE=>{"use strict";var _le=O();Object.defineProperty(lE,"__esModule",{value:!0});Object.defineProperty(lE,"default",{enumerable:!0,get:function(){return ble.default}});var ble=_le(H5())});var J5=w(Ju=>{"use strict";var wle=X(),xs=O();Object.defineProperty(Ju,"__esModule",{value:!0});Ju.default=Ju.styles=void 0;var Sle=xs(Ee()),Tle=xs(or()),Eg=xs(pe()),G5=wle(j()),a2e=xs(ne()),xle=xs(_e()),Ele=xs(ze()),kle=xs(uE()),K5=function(e){return{root:(0,Eg.default)({},e.typography.body1,(0,Tle.default)({minHeight:48,paddingTop:6,paddingBottom:6,boxSizing:"border-box",width:"auto",overflow:"hidden",whiteSpace:"nowrap"},e.breakpoints.up("sm"),{minHeight:"auto"})),gutters:{},selected:{},dense:(0,Eg.default)({},e.typography.body2,{minHeight:"auto"})}};Ju.styles=K5;var Cle=G5.forwardRef(function(e,r){var n=e.classes,o=e.className,a=e.component,i=a===void 0?"li":a,s=e.disableGutters,l=s===void 0?!1:s,u=e.ListItemClasses,c=e.role,d=c===void 0?"menuitem":c,m=e.selected,g=e.tabIndex,y=(0,Sle.default)(e,["classes","className","component","disableGutters","ListItemClasses","role","selected","tabIndex"]),h;return e.disabled||(h=g!==void 0?g:-1),G5.createElement(kle.default,(0,Eg.default)({button:!0,role:d,tabIndex:h,component:i,selected:m,disableGutters:l,classes:(0,Eg.default)({dense:n.dense},u),className:(0,xle.default)(n.root,o,m&&n.selected,!l&&n.gutters),ref:r},y))}),Ole=(0,Ele.default)(K5,{name:"MuiMenuItem"})(Cle);Ju.default=Ole});var Y5=w(cE=>{"use strict";var Rle=O();Object.defineProperty(cE,"__esModule",{value:!0});Object.defineProperty(cE,"default",{enumerable:!0,get:function(){return Nle.default}});var Nle=Rle(J5())});var X5=w(Yu=>{"use strict";var Ple=X(),Es=O();Object.defineProperty(Yu,"__esModule",{value:!0});Yu.default=Yu.styles=void 0;var l2e=Es(lo()),Dle=Es(pe()),qle=Es(Ee()),dE=Ple(j()),u2e=Es(ne()),Q5=Es(_e()),c2e=Ie(),jle=Es(ze()),Uf=Es(Dt()),fE=10,pE=4,Z5=function(e){return{root:{position:"relative",display:"inline-flex",verticalAlign:"middle",flexShrink:0},badge:{display:"flex",flexDirection:"row",flexWrap:"wrap",justifyContent:"center",alignContent:"center",alignItems:"center",position:"absolute",boxSizing:"border-box",fontFamily:e.typography.fontFamily,fontWeight:e.typography.fontWeightMedium,fontSize:e.typography.pxToRem(12),minWidth:fE*2,lineHeight:1,padding:"0 6px",height:fE*2,borderRadius:fE,zIndex:1,transition:e.transitions.create("transform",{easing:e.transitions.easing.easeInOut,duration:e.transitions.duration.enteringScreen})},colorPrimary:{backgroundColor:e.palette.primary.main,color:e.palette.primary.contrastText},colorSecondary:{backgroundColor:e.palette.secondary.main,color:e.palette.secondary.contrastText},colorError:{backgroundColor:e.palette.error.main,color:e.palette.error.contrastText},dot:{borderRadius:pE,height:pE*2,minWidth:pE*2,padding:0},anchorOriginTopRightRectangle:{top:0,right:0,transform:"scale(1) translate(50%, -50%)",transformOrigin:"100% 0%","&$invisible":{transform:"scale(0) translate(50%, -50%)"}},anchorOriginTopRightRectangular:{top:0,right:0,transform:"scale(1) translate(50%, -50%)",transformOrigin:"100% 0%","&$invisible":{transform:"scale(0) translate(50%, -50%)"}},anchorOriginBottomRightRectangle:{bottom:0,right:0,transform:"scale(1) translate(50%, 50%)",transformOrigin:"100% 100%","&$invisible":{transform:"scale(0) translate(50%, 50%)"}},anchorOriginBottomRightRectangular:{bottom:0,right:0,transform:"scale(1) translate(50%, 50%)",transformOrigin:"100% 100%","&$invisible":{transform:"scale(0) translate(50%, 50%)"}},anchorOriginTopLeftRectangle:{top:0,left:0,transform:"scale(1) translate(-50%, -50%)",transformOrigin:"0% 0%","&$invisible":{transform:"scale(0) translate(-50%, -50%)"}},anchorOriginTopLeftRectangular:{top:0,left:0,transform:"scale(1) translate(-50%, -50%)",transformOrigin:"0% 0%","&$invisible":{transform:"scale(0) translate(-50%, -50%)"}},anchorOriginBottomLeftRectangle:{bottom:0,left:0,transform:"scale(1) translate(-50%, 50%)",transformOrigin:"0% 100%","&$invisible":{transform:"scale(0) translate(-50%, 50%)"}},anchorOriginBottomLeftRectangular:{bottom:0,left:0,transform:"scale(1) translate(-50%, 50%)",transformOrigin:"0% 100%","&$invisible":{transform:"scale(0) translate(-50%, 50%)"}},anchorOriginTopRightCircle:{top:"14%",right:"14%",transform:"scale(1) translate(50%, -50%)",transformOrigin:"100% 0%","&$invisible":{transform:"scale(0) translate(50%, -50%)"}},anchorOriginTopRightCircular:{top:"14%",right:"14%",transform:"scale(1) translate(50%, -50%)",transformOrigin:"100% 0%","&$invisible":{transform:"scale(0) translate(50%, -50%)"}},anchorOriginBottomRightCircle:{bottom:"14%",right:"14%",transform:"scale(1) translate(50%, 50%)",transformOrigin:"100% 100%","&$invisible":{transform:"scale(0) translate(50%, 50%)"}},anchorOriginBottomRightCircular:{bottom:"14%",right:"14%",transform:"scale(1) translate(50%, 50%)",transformOrigin:"100% 100%","&$invisible":{transform:"scale(0) translate(50%, 50%)"}},anchorOriginTopLeftCircle:{top:"14%",left:"14%",transform:"scale(1) translate(-50%, -50%)",transformOrigin:"0% 0%","&$invisible":{transform:"scale(0) translate(-50%, -50%)"}},anchorOriginTopLeftCircular:{top:"14%",left:"14%",transform:"scale(1) translate(-50%, -50%)",transformOrigin:"0% 0%","&$invisible":{transform:"scale(0) translate(-50%, -50%)"}},anchorOriginBottomLeftCircle:{bottom:"14%",left:"14%",transform:"scale(1) translate(-50%, 50%)",transformOrigin:"0% 100%","&$invisible":{transform:"scale(0) translate(-50%, 50%)"}},anchorOriginBottomLeftCircular:{bottom:"14%",left:"14%",transform:"scale(1) translate(-50%, 50%)",transformOrigin:"0% 100%","&$invisible":{transform:"scale(0) translate(-50%, 50%)"}},invisible:{transition:e.transitions.create("transform",{easing:e.transitions.easing.easeInOut,duration:e.transitions.duration.leavingScreen})}}};Yu.styles=Z5;var Mle=dE.forwardRef(function(e,r){var n=e.anchorOrigin,o=n===void 0?{vertical:"top",horizontal:"right"}:n,a=e.badgeContent,i=e.children,s=e.classes,l=e.className,u=e.color,c=u===void 0?"default":u,d=e.component,m=d===void 0?"span":d,g=e.invisible,y=e.max,h=y===void 0?99:y,f=e.overlap,p=f===void 0?"rectangle":f,v=e.showZero,b=v===void 0?!1:v,S=e.variant,x=S===void 0?"standard":S,T=(0,qle.default)(e,["anchorOrigin","badgeContent","children","classes","className","color","component","invisible","max","overlap","showZero","variant"]),k=g;g==null&&(a===0&&!b||a==null&&x!=="dot")&&(k=!0);var D="";return x!=="dot"&&(D=a>h?"".concat(h,"+"):a),dE.createElement(m,(0,Dle.default)({className:(0,Q5.default)(s.root,l),ref:r},T),i,dE.createElement("span",{className:(0,Q5.default)(s.badge,s["".concat(o.horizontal).concat((0,Uf.default)(o.vertical),"}")],s["anchorOrigin".concat((0,Uf.default)(o.vertical)).concat((0,Uf.default)(o.horizontal)).concat((0,Uf.default)(p))],c!=="default"&&s["color".concat((0,Uf.default)(c))],k&&s.invisible,x==="dot"&&s.dot)},D))}),Ile=(0,jle.default)(Z5,{name:"MuiBadge"})(Mle);Yu.default=Ile});var e4=w(mE=>{"use strict";var zle=O();Object.defineProperty(mE,"__esModule",{value:!0});Object.defineProperty(mE,"default",{enumerable:!0,get:function(){return Ale.default}});var Ale=zle(X5())});var o4=w(Cg=>{"use strict";var Fle=X(),ai=O();Object.defineProperty(Cg,"__esModule",{value:!0});Cg.default=void 0;var kg=ai(pe()),Lle=ai(Ee()),wr=Fle(j()),p2e=ai(ne()),Wle=ai(Iz()),m2e=Ie(),Ble=jr(),Vle=ai(t1()),t4=ai(fu()),$le=ai(Ui()),r4=ai(ar());function Ule(t,e){var r=e&&e.direction||"ltr";if(r==="ltr")return t;switch(t){case"bottom-end":return"bottom-start";case"bottom-start":return"bottom-end";case"top-end":return"top-start";case"top-start":return"top-end";default:return t}}function n4(t){return typeof t=="function"?t():t}var Hle=typeof window!="undefined"?wr.useLayoutEffect:wr.useEffect,Gle={},Kle=wr.forwardRef(function(e,r){var n=e.anchorEl,o=e.children,a=e.container,i=e.disablePortal,s=i===void 0?!1:i,l=e.keepMounted,u=l===void 0?!1:l,c=e.modifiers,d=e.open,m=e.placement,g=m===void 0?"bottom":m,y=e.popperOptions,h=y===void 0?Gle:y,f=e.popperRef,p=e.style,v=e.transition,b=v===void 0?!1:v,S=(0,Lle.default)(e,["anchorEl","children","container","disablePortal","keepMounted","modifiers","open","placement","popperOptions","popperRef","style","transition"]),x=wr.useRef(null),T=(0,r4.default)(x,r),k=wr.useRef(null),D=(0,r4.default)(k,f),R=wr.useRef(D);Hle(function(){R.current=D},[D]),wr.useImperativeHandle(f,function(){return k.current},[]);var I=wr.useState(!0),U=I[0],A=I[1],V=(0,Ble.useTheme)(),Z=Ule(g,V),Q=wr.useState(Z),N=Q[0],P=Q[1];wr.useEffect(function(){k.current&&k.current.update()});var q=wr.useCallback(function(){if(!(!x.current||!n||!d)){k.current&&(k.current.destroy(),R.current(null));var ce=function(ye){P(ye.placement)},se=n4(n);if(!1&&se&&se.nodeType===1)var te;var ge=new Wle.default(n4(n),x.current,(0,kg.default)({placement:Z},h,{modifiers:(0,kg.default)({},s?{}:{preventOverflow:{boundariesElement:"window"}},c,h.modifiers),onCreate:(0,t4.default)(ce,h.onCreate),onUpdate:(0,t4.default)(ce,h.onUpdate)}));R.current(ge)}},[n,s,c,d,Z,h]),L=wr.useCallback(function(ce){(0,$le.default)(T,ce),q()},[T,q]),$=function(){A(!1)},K=function(){!k.current||(k.current.destroy(),R.current(null))},ee=function(){A(!0),K()};if(wr.useEffect(function(){return function(){K()}},[]),wr.useEffect(function(){!d&&!b&&K()},[d,b]),!u&&!d&&(!b||U))return null;var ae={placement:N};return b&&(ae.TransitionProps={in:d,onEnter:$,onExited:ee}),wr.createElement(Vle.default,{disablePortal:s,container:a},wr.createElement("div",(0,kg.default)({ref:L,role:"tooltip"},S,{style:(0,kg.default)({position:"fixed",top:0,left:0,display:!d&&u&&!b?"none":null},p)}),typeof o=="function"?o(ae):o))}),Jle=Kle;Cg.default=Jle});var a4=w(hE=>{"use strict";var Yle=O();Object.defineProperty(hE,"__esModule",{value:!0});Object.defineProperty(hE,"default",{enumerable:!0,get:function(){return Qle.default}});var Qle=Yle(o4())});var c4=w(ks=>{"use strict";var l4=X(),Sr=O();Object.defineProperty(ks,"__esModule",{value:!0});ks.testReset=fue;ks.default=ks.styles=void 0;var vE=Sr(pe()),Zle=Sr(lo()),Xle=Sr(Ee()),Og=Sr(or()),$t=l4(j()),eue=l4(hr()),g2e=Sr(ne()),gE=Sr(_e()),tue=Ie(),i4=qo(),rue=Sr(ze()),nue=Sr(Dt()),oue=Sr(kv()),aue=Sr(a4()),yE=Sr(ar()),iue=Sr($x()),sue=Sr(Ui()),lue=Sr(Kd()),uue=Sr(Wl()),cue=Sr(Ba());function s4(t){return Math.round(t*1e5)/1e5}function due(){return{'&[x-placement*="bottom"] $arrow':{top:0,left:0,marginTop:"-0.71em",marginLeft:4,marginRight:4,"&::before":{transformOrigin:"0 100%"}},'&[x-placement*="top"] $arrow':{bottom:0,left:0,marginBottom:"-0.71em",marginLeft:4,marginRight:4,"&::before":{transformOrigin:"100% 0"}},'&[x-placement*="right"] $arrow':{left:0,marginLeft:"-0.71em",height:"1em",width:"0.71em",marginTop:4,marginBottom:4,"&::before":{transformOrigin:"100% 100%"}},'&[x-placement*="left"] $arrow':{right:0,marginRight:"-0.71em",height:"1em",width:"0.71em",marginTop:4,marginBottom:4,"&::before":{transformOrigin:"0 0"}}}}var u4=function(e){return{popper:{zIndex:e.zIndex.tooltip,pointerEvents:"none"},popperInteractive:{pointerEvents:"auto"},popperArrow:due(),tooltip:{backgroundColor:(0,i4.alpha)(e.palette.grey[700],.9),borderRadius:e.shape.borderRadius,color:e.palette.common.white,fontFamily:e.typography.fontFamily,padding:"4px 8px",fontSize:e.typography.pxToRem(10),lineHeight:"".concat(s4(14/10),"em"),maxWidth:300,wordWrap:"break-word",fontWeight:e.typography.fontWeightMedium},tooltipArrow:{position:"relative",margin:"0"},arrow:{overflow:"hidden",position:"absolute",width:"1em",height:"0.71em",boxSizing:"border-box",color:(0,i4.alpha)(e.palette.grey[700],.9),"&::before":{content:'""',margin:"auto",display:"block",width:"100%",height:"100%",backgroundColor:"currentColor",transform:"rotate(45deg)"}},touch:{padding:"8px 16px",fontSize:e.typography.pxToRem(14),lineHeight:"".concat(s4(16/14),"em"),fontWeight:e.typography.fontWeightRegular},tooltipPlacementLeft:(0,Og.default)({transformOrigin:"right center",margin:"0 24px "},e.breakpoints.up("sm"),{margin:"0 14px"}),tooltipPlacementRight:(0,Og.default)({transformOrigin:"left center",margin:"0 24px"},e.breakpoints.up("sm"),{margin:"0 14px"}),tooltipPlacementTop:(0,Og.default)({transformOrigin:"center bottom",margin:"24px 0"},e.breakpoints.up("sm"),{margin:"14px 0"}),tooltipPlacementBottom:(0,Og.default)({transformOrigin:"center top",margin:"24px 0"},e.breakpoints.up("sm"),{margin:"14px 0"})}};ks.styles=u4;var Hf=!1,Rg=null;function fue(){Hf=!1,clearTimeout(Rg)}var pue=$t.forwardRef(function(e,r){var n=e.arrow,o=n===void 0?!1:n,a=e.children,i=e.classes,s=e.disableFocusListener,l=s===void 0?!1:s,u=e.disableHoverListener,c=u===void 0?!1:u,d=e.disableTouchListener,m=d===void 0?!1:d,g=e.enterDelay,y=g===void 0?100:g,h=e.enterNextDelay,f=h===void 0?0:h,p=e.enterTouchDelay,v=p===void 0?700:p,b=e.id,S=e.interactive,x=S===void 0?!1:S,T=e.leaveDelay,k=T===void 0?0:T,D=e.leaveTouchDelay,R=D===void 0?1500:D,I=e.onClose,U=e.onOpen,A=e.open,V=e.placement,Z=V===void 0?"bottom":V,Q=e.PopperComponent,N=Q===void 0?aue.default:Q,P=e.PopperProps,q=e.title,L=e.TransitionComponent,$=L===void 0?oue.default:L,K=e.TransitionProps,ee=(0,Xle.default)(e,["arrow","children","classes","disableFocusListener","disableHoverListener","disableTouchListener","enterDelay","enterNextDelay","enterTouchDelay","id","interactive","leaveDelay","leaveTouchDelay","onClose","onOpen","open","placement","PopperComponent","PopperProps","title","TransitionComponent","TransitionProps"]),ae=(0,cue.default)(),ce=$t.useState(),se=ce[0],te=ce[1],ge=$t.useState(null),fe=ge[0],ye=ge[1],ke=$t.useRef(!1),le=$t.useRef(),be=$t.useRef(),qe=$t.useRef(),Oe=$t.useRef(),nt=(0,uue.default)({controlled:A,default:!1,name:"Tooltip",state:"open"}),ve=(0,Zle.default)(nt,2),Me=ve[0],Ce=ve[1],de=Me;if(!1)var Pe,Je;var je=(0,iue.default)(b);$t.useEffect(function(){return function(){clearTimeout(le.current),clearTimeout(be.current),clearTimeout(qe.current),clearTimeout(Oe.current)}},[]);var Le=function(H){clearTimeout(Rg),Hf=!0,Ce(!0),U&&U(H)},Ye=function(){var H=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;return function(B){var F=a.props;B.type==="mouseover"&&F.onMouseOver&&H&&F.onMouseOver(B),!(ke.current&&B.type!=="touchstart")&&(se&&se.removeAttribute("title"),clearTimeout(be.current),clearTimeout(qe.current),y||Hf&&f?(B.persist(),be.current=setTimeout(function(){Le(B)},Hf?f:y)):Le(B))}},ct=(0,lue.default)(),Ft=ct.isFocusVisible,ur=ct.onBlurVisible,tt=ct.ref,Ge=$t.useState(!1),zt=Ge[0],Ze=Ge[1],Qe=function(){zt&&(Ze(!1),ur())},At=function(){var H=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;return function(B){se||te(B.currentTarget),Ft(B)&&(Ze(!0),Ye()(B));var F=a.props;F.onFocus&&H&&F.onFocus(B)}},He=function(H){clearTimeout(Rg),Rg=setTimeout(function(){Hf=!1},800+k),Ce(!1),I&&I(H),clearTimeout(le.current),le.current=setTimeout(function(){ke.current=!1},ae.transitions.duration.shortest)},Re=function(){var H=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;return function(B){var F=a.props;B.type==="blur"&&(F.onBlur&&H&&F.onBlur(B),Qe()),B.type==="mouseleave"&&F.onMouseLeave&&B.currentTarget===se&&F.onMouseLeave(B),clearTimeout(be.current),clearTimeout(qe.current),B.persist(),qe.current=setTimeout(function(){He(B)},k)}},Se=function(H){ke.current=!0;var B=a.props;B.onTouchStart&&B.onTouchStart(H)},W=function(H){Se(H),clearTimeout(qe.current),clearTimeout(le.current),clearTimeout(Oe.current),H.persist(),Oe.current=setTimeout(function(){Ye()(H)},v)},Ne=function(H){a.props.onTouchEnd&&a.props.onTouchEnd(H),clearTimeout(Oe.current),clearTimeout(qe.current),H.persist(),qe.current=setTimeout(function(){He(H)},R)},lt=(0,yE.default)(te,r),rt=(0,yE.default)(tt,lt),mt=$t.useCallback(function(z){(0,sue.default)(rt,eue.findDOMNode(z))},[rt]),St=(0,yE.default)(a.ref,mt);q===""&&(de=!1);var jt=!de&&!c,_=(0,vE.default)({"aria-describedby":de?je:null,title:jt&&typeof q=="string"?q:null},ee,a.props,{className:(0,gE.default)(ee.className,a.props.className),onTouchStart:Se,ref:St}),C={};m||(_.onTouchStart=W,_.onTouchEnd=Ne),c||(_.onMouseOver=Ye(),_.onMouseLeave=Re(),x&&(C.onMouseOver=Ye(!1),C.onMouseLeave=Re(!1))),l||(_.onFocus=At(),_.onBlur=Re(),x&&(C.onFocus=At(!1),C.onBlur=Re(!1)));var M=$t.useMemo(function(){return(0,tue.deepmerge)({popperOptions:{modifiers:{arrow:{enabled:Boolean(fe),element:fe}}}},P)},[fe,P]);return $t.createElement($t.Fragment,null,$t.cloneElement(a,_),$t.createElement(N,(0,vE.default)({className:(0,gE.default)(i.popper,x&&i.popperInteractive,o&&i.popperArrow),placement:Z,anchorEl:se,open:se?de:!1,id:_["aria-describedby"],transition:!0},C,M),function(z){var H=z.placement,B=z.TransitionProps;return $t.createElement($,(0,vE.default)({timeout:ae.transitions.duration.shorter},B,K),$t.createElement("div",{className:(0,gE.default)(i.tooltip,i["tooltipPlacement".concat((0,nue.default)(H.split("-")[0]))],ke.current&&i.touch,o&&i.tooltipArrow)},q,o?$t.createElement("span",{className:i.arrow,ref:ye}):null))}))}),mue=(0,rue.default)(u4,{name:"MuiTooltip",flip:!1})(pue);ks.default=mue});var d4=w(_E=>{"use strict";var hue=O();Object.defineProperty(_E,"__esModule",{value:!0});Object.defineProperty(_E,"default",{enumerable:!0,get:function(){return vue.default}});var vue=hue(c4())});var p4=w(Qu=>{"use strict";var gue=X(),Zu=O();Object.defineProperty(Qu,"__esModule",{value:!0});Qu.default=Qu.styles=void 0;var yue=Zu(pe()),_ue=Zu(Ee()),bE=gue(j()),b2e=Zu(ne()),bue=Zu(_e()),wue=Zu(ze()),Sue=Zu(Tf()),f4=function(e){return{root:{minWidth:56,color:e.palette.action.active,flexShrink:0,display:"inline-flex"},alignItemsFlexStart:{marginTop:8}}};Qu.styles=f4;var Tue=bE.forwardRef(function(e,r){var n=e.classes,o=e.className,a=(0,_ue.default)(e,["classes","className"]),i=bE.useContext(Sue.default);return bE.createElement("div",(0,yue.default)({className:(0,bue.default)(n.root,o,i.alignItems==="flex-start"&&n.alignItemsFlexStart),ref:r},a))}),xue=(0,wue.default)(f4,{name:"MuiListItemIcon"})(Tue);Qu.default=xue});var m4=w(wE=>{"use strict";var Eue=O();Object.defineProperty(wE,"__esModule",{value:!0});Object.defineProperty(wE,"default",{enumerable:!0,get:function(){return kue.default}});var kue=Eue(p4())});var y4=w(Xu=>{"use strict";var Cue=X(),Gf=O();Object.defineProperty(Xu,"__esModule",{value:!0});Xu.default=Xu.styles=void 0;var Oue=Gf(pe()),Rue=Gf(Ee()),h4=Cue(j()),T2e=Gf(ne()),Nue=Gf(_e()),Pue=Gf(ze()),v4={root:{position:"absolute",right:16,top:"50%",transform:"translateY(-50%)"}};Xu.styles=v4;var g4=h4.forwardRef(function(e,r){var n=e.classes,o=e.className,a=(0,Rue.default)(e,["classes","className"]);return h4.createElement("div",(0,Oue.default)({className:(0,Nue.default)(n.root,o),ref:r},a))});g4.muiName="ListItemSecondaryAction";var Due=(0,Pue.default)(v4,{name:"MuiListItemSecondaryAction"})(g4);Xu.default=Due});var _4=w(SE=>{"use strict";var que=O();Object.defineProperty(SE,"__esModule",{value:!0});Object.defineProperty(SE,"default",{enumerable:!0,get:function(){return jue.default}});var jue=que(y4())});var w4=w(ec=>{"use strict";var Mue=X(),Cs=O();Object.defineProperty(ec,"__esModule",{value:!0});ec.default=ec.styles=void 0;var TE=Cs(pe()),Iue=Cs(Ee()),Kf=Mue(j()),k2e=Cs(ne()),zue=Cs(_e()),Aue=Cs(ze()),Ng=Cs(Yl()),Fue=Cs(Tf()),b4={root:{flex:"1 1 auto",minWidth:0,marginTop:4,marginBottom:4},multiline:{marginTop:6,marginBottom:6},dense:{},inset:{paddingLeft:56},primary:{},secondary:{}};ec.styles=b4;var Lue=Kf.forwardRef(function(e,r){var n=e.children,o=e.classes,a=e.className,i=e.disableTypography,s=i===void 0?!1:i,l=e.inset,u=l===void 0?!1:l,c=e.primary,d=e.primaryTypographyProps,m=e.secondary,g=e.secondaryTypographyProps,y=(0,Iue.default)(e,["children","classes","className","disableTypography","inset","primary","primaryTypographyProps","secondary","secondaryTypographyProps"]),h=Kf.useContext(Fue.default),f=h.dense,p=c!=null?c:n;p!=null&&p.type!==Ng.default&&!s&&(p=Kf.createElement(Ng.default,(0,TE.default)({variant:f?"body2":"body1",className:o.primary,component:"span",display:"block"},d),p));var v=m;return v!=null&&v.type!==Ng.default&&!s&&(v=Kf.createElement(Ng.default,(0,TE.default)({variant:"body2",className:o.secondary,color:"textSecondary",display:"block"},g),v)),Kf.createElement("div",(0,TE.default)({className:(0,zue.default)(o.root,a,f&&o.dense,u&&o.inset,p&&v&&o.multiline),ref:r},y),p,v)}),Wue=(0,Aue.default)(b4,{name:"MuiListItemText"})(Lue);ec.default=Wue});var S4=w(xE=>{"use strict";var Bue=O();Object.defineProperty(xE,"__esModule",{value:!0});Object.defineProperty(xE,"default",{enumerable:!0,get:function(){return Vue.default}});var Vue=Bue(w4())});var k4=w(tc=>{"use strict";var $ue=X(),Os=O();Object.defineProperty(tc,"__esModule",{value:!0});tc.default=tc.styles=void 0;var Uue=Os(Ee()),x4=Os(pe()),EE=$ue(j()),R2e=Os(ne()),T4=Os(_e()),N2e=Ie(),Hue=Os(ze()),Gue=Os(nf()),Kue=Os(Dt()),E4=function(e){return{root:(0,x4.default)({},e.typography.button,{boxSizing:"border-box",minHeight:36,transition:e.transitions.create(["background-color","box-shadow","border"],{duration:e.transitions.duration.short}),borderRadius:"50%",padding:0,minWidth:0,width:56,height:56,boxShadow:e.shadows[6],"&:active":{boxShadow:e.shadows[12]},color:e.palette.getContrastText(e.palette.grey[300]),backgroundColor:e.palette.grey[300],"&:hover":{backgroundColor:e.palette.grey.A100,"@media (hover: none)":{backgroundColor:e.palette.grey[300]},"&$disabled":{backgroundColor:e.palette.action.disabledBackground},textDecoration:"none"},"&$focusVisible":{boxShadow:e.shadows[6]},"&$disabled":{color:e.palette.action.disabled,boxShadow:e.shadows[0],backgroundColor:e.palette.action.disabledBackground}}),label:{width:"100%",display:"inherit",alignItems:"inherit",justifyContent:"inherit"},primary:{color:e.palette.primary.contrastText,backgroundColor:e.palette.primary.main,"&:hover":{backgroundColor:e.palette.primary.dark,"@media (hover: none)":{backgroundColor:e.palette.primary.main}}},secondary:{color:e.palette.secondary.contrastText,backgroundColor:e.palette.secondary.main,"&:hover":{backgroundColor:e.palette.secondary.dark,"@media (hover: none)":{backgroundColor:e.palette.secondary.main}}},extended:{borderRadius:48/2,padding:"0 16px",width:"auto",minHeight:"auto",minWidth:48,height:48,"&$sizeSmall":{width:"auto",padding:"0 8px",borderRadius:34/2,minWidth:34,height:34},"&$sizeMedium":{width:"auto",padding:"0 16px",borderRadius:40/2,minWidth:40,height:40}},focusVisible:{},disabled:{},colorInherit:{color:"inherit"},sizeSmall:{width:40,height:40},sizeMedium:{width:48,height:48}}};tc.styles=E4;var Jue=EE.forwardRef(function(e,r){var n=e.children,o=e.classes,a=e.className,i=e.color,s=i===void 0?"default":i,l=e.component,u=l===void 0?"button":l,c=e.disabled,d=c===void 0?!1:c,m=e.disableFocusRipple,g=m===void 0?!1:m,y=e.focusVisibleClassName,h=e.size,f=h===void 0?"large":h,p=e.variant,v=p===void 0?"circular":p,b=(0,Uue.default)(e,["children","classes","className","color","component","disabled","disableFocusRipple","focusVisibleClassName","size","variant"]);return EE.createElement(Gue.default,(0,x4.default)({className:(0,T4.default)(o.root,a,f!=="large"&&o["size".concat((0,Kue.default)(f))],d&&o.disabled,v==="extended"&&o.extended,{primary:o.primary,secondary:o.secondary,inherit:o.colorInherit}[s]),component:u,disabled:d,focusRipple:!g,focusVisibleClassName:(0,T4.default)(o.focusVisible,y),ref:r},b),EE.createElement("span",{className:o.label},n))}),Yue=(0,Hue.default)(E4,{name:"MuiFab"})(Jue);tc.default=Yue});var C4=w(kE=>{"use strict";var Que=O();Object.defineProperty(kE,"__esModule",{value:!0});Object.defineProperty(kE,"default",{enumerable:!0,get:function(){return Zue.default}});var Zue=Que(k4())});var D4=w(rc=>{"use strict";var Xue=X(),Rs=O();Object.defineProperty(rc,"__esModule",{value:!0});rc.default=rc.styles=void 0;var ece=Rs(pe()),tce=Rs(Ee()),Jf=Xue(j()),q2e=Rs(ne()),O4=Rs(_e()),j2e=Ie(),rce=Rs(ze()),R4=qo(),N4=Rs(Dt()),nce=Rs(eT()),P4=function(e){return{root:{display:"inline-flex",width:34+12*2,height:14+12*2,overflow:"hidden",padding:12,boxSizing:"border-box",position:"relative",flexShrink:0,zIndex:0,verticalAlign:"middle","@media print":{colorAdjust:"exact"}},edgeStart:{marginLeft:-8},edgeEnd:{marginRight:-8},switchBase:{position:"absolute",top:0,left:0,zIndex:1,color:e.palette.type==="light"?e.palette.grey[50]:e.palette.grey[400],transition:e.transitions.create(["left","transform"],{duration:e.transitions.duration.shortest}),"&$checked":{transform:"translateX(20px)"},"&$disabled":{color:e.palette.type==="light"?e.palette.grey[400]:e.palette.grey[800]},"&$checked + $track":{opacity:.5},"&$disabled + $track":{opacity:e.palette.type==="light"?.12:.1}},colorPrimary:{"&$checked":{color:e.palette.primary.main,"&:hover":{backgroundColor:(0,R4.alpha)(e.palette.primary.main,e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}}},"&$disabled":{color:e.palette.type==="light"?e.palette.grey[400]:e.palette.grey[800]},"&$checked + $track":{backgroundColor:e.palette.primary.main},"&$disabled + $track":{backgroundColor:e.palette.type==="light"?e.palette.common.black:e.palette.common.white}},colorSecondary:{"&$checked":{color:e.palette.secondary.main,"&:hover":{backgroundColor:(0,R4.alpha)(e.palette.secondary.main,e.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}}},"&$disabled":{color:e.palette.type==="light"?e.palette.grey[400]:e.palette.grey[800]},"&$checked + $track":{backgroundColor:e.palette.secondary.main},"&$disabled + $track":{backgroundColor:e.palette.type==="light"?e.palette.common.black:e.palette.common.white}},sizeSmall:{width:40,height:24,padding:7,"& $thumb":{width:16,height:16},"& $switchBase":{padding:4,"&$checked":{transform:"translateX(16px)"}}},checked:{},disabled:{},input:{left:"-100%",width:"300%"},thumb:{boxShadow:e.shadows[1],backgroundColor:"currentColor",width:20,height:20,borderRadius:"50%"},track:{height:"100%",width:"100%",borderRadius:14/2,zIndex:-1,transition:e.transitions.create(["opacity","background-color"],{duration:e.transitions.duration.shortest}),backgroundColor:e.palette.type==="light"?e.palette.common.black:e.palette.common.white,opacity:e.palette.type==="light"?.38:.3}}};rc.styles=P4;var oce=Jf.forwardRef(function(e,r){var n=e.classes,o=e.className,a=e.color,i=a===void 0?"secondary":a,s=e.edge,l=s===void 0?!1:s,u=e.size,c=u===void 0?"medium":u,d=(0,tce.default)(e,["classes","className","color","edge","size"]),m=Jf.createElement("span",{className:n.thumb});return Jf.createElement("span",{className:(0,O4.default)(n.root,o,{start:n.edgeStart,end:n.edgeEnd}[l],c==="small"&&n["size".concat((0,N4.default)(c))])},Jf.createElement(nce.default,(0,ece.default)({type:"checkbox",icon:m,checkedIcon:m,classes:{root:(0,O4.default)(n.switchBase,n["color".concat((0,N4.default)(i))]),input:n.input,checked:n.checked,disabled:n.disabled},ref:r},d)),Jf.createElement("span",{className:n.track}))}),ace=(0,rce.default)(P4,{name:"MuiSwitch"})(oce);rc.default=ace});var q4=w(CE=>{"use strict";var ice=O();Object.defineProperty(CE,"__esModule",{value:!0});Object.defineProperty(CE,"default",{enumerable:!0,get:function(){return sce.default}});var sce=ice(D4())});var M4=w(Dg=>{"use strict";var lce=X(),OE=O();Object.defineProperty(Dg,"__esModule",{value:!0});Dg.default=void 0;var uce=OE(pe()),Pg=lce(j()),j4=OE(_e()),cce=OE(ze()),dce=function(e){return{thumb:{"&$open":{"& $offset":{transform:"scale(1) translateY(-10px)"}}},open:{},offset:(0,uce.default)({zIndex:1},e.typography.body2,{fontSize:e.typography.pxToRem(12),lineHeight:1.2,transition:e.transitions.create(["transform"],{duration:e.transitions.duration.shortest}),top:-34,transformOrigin:"bottom center",transform:"scale(0)",position:"absolute"}),circle:{display:"flex",alignItems:"center",justifyContent:"center",width:32,height:32,borderRadius:"50% 50% 50% 0",backgroundColor:"currentColor",transform:"rotate(-45deg)"},label:{color:e.palette.primary.contrastText,transform:"rotate(45deg)"}}};function fce(t){var e=t.children,r=t.classes,n=t.className,o=t.open,a=t.value,i=t.valueLabelDisplay;return i==="off"?e:Pg.cloneElement(e,{className:(0,j4.default)(e.props.className,(o||i==="on")&&r.open,r.thumb)},Pg.createElement("span",{className:(0,j4.default)(r.offset,n)},Pg.createElement("span",{className:r.circle},Pg.createElement("span",{className:r.label},a))))}var pce=(0,cce.default)(dce,{name:"PrivateValueLabel"})(fce);Dg.default=pce});var V4=w(oc=>{"use strict";var mce=X(),Or=O();Object.defineProperty(oc,"__esModule",{value:!0});oc.default=oc.styles=void 0;var hce=Or(xa()),vce=Or(lo()),gce=Or(Ee()),PE=Or(pe()),Xt=mce(j()),A2e=Or(ne()),qg=Or(_e()),F2e=Ie(),yce=Or(ze()),_ce=Or(Ba()),nc=qo(),bce=Or(Kd()),jg=Or(Vn()),Yo=Or(Da()),I4=Or(ar()),z4=Or(Dt()),wce=Or(Wl()),Sce=Or(M4());function RE(t,e){return t-e}function NE(t,e,r){return Math.min(Math.max(e,t),r)}function A4(t,e){var r=t.reduce(function(o,a,i){var s=Math.abs(e-a);return o===null||s0&&Le.some(function(F){return F.label})&&i.marked,$===!1&&i.trackFalse,A==="vertical"&&i.vertical,$==="inverted"&&i.trackInverted),onMouseDown:M},fe),Xt.createElement("span",{className:i.rail}),Xt.createElement("span",{className:i.track,style:B}),Xt.createElement("input",{value:je.join(","),name:k,type:"hidden"}),Le.map(function(F,G){var re=Ig(F.value,T,S),me=Ag[mt].offset(re),he;return $===!1?he=je.indexOf(F.value)!==-1:he=$==="normal"&&(Je?F.value>=je[0]&&F.value<=je[je.length-1]:F.value<=je[0])||$==="inverted"&&(Je?F.value<=je[0]||F.value>=je[je.length-1]:F.value>=je[0]),Xt.createElement(Xt.Fragment,{key:F.value},Xt.createElement("span",{style:me,"data-index":G,className:(0,qg.default)(i.mark,he&&i.markActive)}),F.label!=null?Xt.createElement("span",{"aria-hidden":!0,"data-index":G,style:me,className:(0,qg.default)(i.markLabel,he&&i.markLabelActive)},F.label):null)}),je.map(function(F,G){var re=Ig(F,T,S),me=Ag[mt].offset(re);return Xt.createElement(ae,{key:G,valueLabelFormat:ge,valueLabelDisplay:se,className:i.valueLabel,value:typeof ge=="function"?ge(Z(F),G):ge,index:G,open:nt===G||be===G||se==="on",disabled:y},Xt.createElement(q,{className:(0,qg.default)(i.thumb,i["thumbColor".concat((0,z4.default)(u))],be===G&&i.active,y&&i.disabled,Ge===G&&i.focusVisible),tabIndex:y?null:0,role:"slider",style:me,"data-index":G,"aria-label":h?h(G):n,"aria-labelledby":o,"aria-orientation":A,"aria-valuemax":Z(S),"aria-valuemin":Z(T),"aria-valuenow":Z(F),"aria-valuetext":f?f(Z(F),G):a,onKeyDown:lt,onFocus:He,onBlur:Re,onMouseOver:Se,onMouseLeave:W}))}))}),kce=(0,yce.default)(B4,{name:"MuiSlider"})(Ece);oc.default=kce});var $4=w(DE=>{"use strict";var Cce=O();Object.defineProperty(DE,"__esModule",{value:!0});Object.defineProperty(DE,"default",{enumerable:!0,get:function(){return Oce.default}});var Oce=Cce(V4())});var U4=w(Fg=>{"use strict";var Rce=O(),Nce=X();Object.defineProperty(Fg,"__esModule",{value:!0});Fg.default=void 0;var Pce=Nce(j()),Dce=Rce(ot()),qce=(0,Dce.default)(Pce.createElement("path",{d:"M3 17.25V21h3.75L17.81 9.94l-3.75-3.75L3 17.25zM20.71 7.04c.39-.39.39-1.02 0-1.41l-2.34-2.34a.9959.9959 0 00-1.41 0l-1.83 1.83 3.75 3.75 1.83-1.83z"}),"Edit");Fg.default=qce});var H4=w(Lg=>{"use strict";var jce=O(),Mce=X();Object.defineProperty(Lg,"__esModule",{value:!0});Lg.default=void 0;var Ice=Mce(j()),zce=jce(ot()),Ace=(0,zce.default)(Ice.createElement("path",{d:"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z"}),"Delete");Lg.default=Ace});var G4=w(Wg=>{"use strict";var Fce=O(),Lce=X();Object.defineProperty(Wg,"__esModule",{value:!0});Wg.default=void 0;var Wce=Lce(j()),Bce=Fce(ot()),Vce=(0,Bce.default)(Wce.createElement("path",{d:"M19.14 12.94c.04-.3.06-.61.06-.94 0-.32-.02-.64-.07-.94l2.03-1.58c.18-.14.23-.41.12-.61l-1.92-3.32c-.12-.22-.37-.29-.59-.22l-2.39.96c-.5-.38-1.03-.7-1.62-.94l-.36-2.54c-.04-.24-.24-.41-.48-.41h-3.84c-.24 0-.43.17-.47.41l-.36 2.54c-.59.24-1.13.57-1.62.94l-2.39-.96c-.22-.08-.47 0-.59.22L2.74 8.87c-.12.21-.08.47.12.61l2.03 1.58c-.05.3-.09.63-.09.94s.02.64.07.94l-2.03 1.58c-.18.14-.23.41-.12.61l1.92 3.32c.12.22.37.29.59.22l2.39-.96c.5.38 1.03.7 1.62.94l.36 2.54c.05.24.24.41.48.41h3.84c.24 0 .44-.17.47-.41l.36-2.54c.59-.24 1.13-.56 1.62-.94l2.39.96c.22.08.47 0 .59-.22l1.92-3.32c.12-.22.07-.47-.12-.61l-2.01-1.58zM12 15.6c-1.98 0-3.6-1.62-3.6-3.6s1.62-3.6 3.6-3.6 3.6 1.62 3.6 3.6-1.62 3.6-3.6 3.6z"}),"Settings");Wg.default=Vce});var qE=w(Bg=>{"use strict";var $ce=O(),Uce=X();Object.defineProperty(Bg,"__esModule",{value:!0});Bg.default=void 0;var Hce=Uce(j()),Gce=$ce(ot()),Kce=(0,Gce.default)(Hce.createElement("path",{d:"M12 10c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm7-7H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-1.75 9c0 .23-.02.46-.05.68l1.48 1.16c.13.11.17.3.08.45l-1.4 2.42c-.09.15-.27.21-.43.15l-1.74-.7c-.36.28-.76.51-1.18.69l-.26 1.85c-.03.17-.18.3-.35.3h-2.8c-.17 0-.32-.13-.35-.29l-.26-1.85c-.43-.18-.82-.41-1.18-.69l-1.74.7c-.16.06-.34 0-.43-.15l-1.4-2.42c-.09-.15-.05-.34.08-.45l1.48-1.16c-.03-.23-.05-.46-.05-.69 0-.23.02-.46.05-.68l-1.48-1.16c-.13-.11-.17-.3-.08-.45l1.4-2.42c.09-.15.27-.21.43-.15l1.74.7c.36-.28.76-.51 1.18-.69l.26-1.85c.03-.17.18-.3.35-.3h2.8c.17 0 .32.13.35.29l.26 1.85c.43.18.82.41 1.18.69l1.74-.7c.16-.06.34 0 .43.15l1.4 2.42c.09.15.05.34-.08.45l-1.48 1.16c.03.23.05.46.05.69z"}),"SettingsApplications");Bg.default=Kce});var jE=w(Vg=>{"use strict";var Jce=O(),Yce=X();Object.defineProperty(Vg,"__esModule",{value:!0});Vg.default=void 0;var Qce=Yce(j()),Zce=Jce(ot()),Xce=(0,Zce.default)(Qce.createElement("path",{d:"M21 19V5c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2zM8.5 13.5l2.5 3.01L14.5 12l4.5 6H5l3.5-4.5z"}),"Photo");Vg.default=Xce});var ME=w($g=>{"use strict";var ede=O(),tde=X();Object.defineProperty($g,"__esModule",{value:!0});$g.default=void 0;var rde=tde(j()),nde=ede(ot()),ode=(0,nde.default)(rde.createElement("path",{d:"M11.99 2c-5.52 0-10 4.48-10 10s4.48 10 10 10 10-4.48 10-10-4.48-10-10-10zm3.61 6.34c1.07 0 1.93.86 1.93 1.93 0 1.07-.86 1.93-1.93 1.93-1.07 0-1.93-.86-1.93-1.93-.01-1.07.86-1.93 1.93-1.93zm-6-1.58c1.3 0 2.36 1.06 2.36 2.36 0 1.3-1.06 2.36-2.36 2.36s-2.36-1.06-2.36-2.36c0-1.31 1.05-2.36 2.36-2.36zm0 9.13v3.75c-2.4-.75-4.3-2.6-5.14-4.96 1.05-1.12 3.67-1.69 5.14-1.69.53 0 1.2.08 1.9.22-1.64.87-1.9 2.02-1.9 2.68zM11.99 20c-.27 0-.53-.01-.79-.04v-4.07c0-1.42 2.94-2.13 4.4-2.13 1.07 0 2.92.39 3.84 1.15-1.17 2.97-4.06 5.09-7.45 5.09z"}),"SupervisedUserCircle");$g.default=ode});var K4=w(Ug=>{"use strict";var ade=O(),ide=X();Object.defineProperty(Ug,"__esModule",{value:!0});Ug.default=void 0;var sde=ide(j()),lde=ade(ot()),ude=(0,lde.default)(sde.createElement("path",{d:"M20 3h-1V1h-2v2H7V1H5v2H4c-1.1 0-2 .9-2 2v16c0 1.1.9 2 2 2h16c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 18H4V8h16v13z"}),"CalendarToday");Ug.default=ude});var IE=w(Hg=>{"use strict";var cde=O(),dde=X();Object.defineProperty(Hg,"__esModule",{value:!0});Hg.default=void 0;var fde=dde(j()),pde=cde(ot()),mde=(0,pde.default)(fde.createElement("path",{d:"M12 6c1.1 0 2 .9 2 2s-.9 2-2 2-2-.9-2-2 .9-2 2-2m0 10c2.7 0 5.8 1.29 6 2H6c.23-.72 3.31-2 6-2m0-12C9.79 4 8 5.79 8 8s1.79 4 4 4 4-1.79 4-4-1.79-4-4-4zm0 10c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z"}),"PersonOutlined");Hg.default=mde});var zE=w(Gg=>{"use strict";var hde=O(),vde=X();Object.defineProperty(Gg,"__esModule",{value:!0});Gg.default=void 0;var gde=vde(j()),yde=hde(ot()),_de=(0,yde.default)(gde.createElement("path",{d:"M20.2 5.9l.8-.8C19.6 3.7 17.8 3 16 3s-3.6.7-5 2.1l.8.8C13 4.8 14.5 4.2 16 4.2s3 .6 4.2 1.7zm-.9.8c-.9-.9-2.1-1.4-3.3-1.4s-2.4.5-3.3 1.4l.8.8c.7-.7 1.6-1 2.5-1 .9 0 1.8.3 2.5 1l.8-.8zM19 13h-2V9h-2v4H5c-1.1 0-2 .9-2 2v4c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2v-4c0-1.1-.9-2-2-2zM8 18H6v-2h2v2zm3.5 0h-2v-2h2v2zm3.5 0h-2v-2h2v2z"}),"Router");Gg.default=_de});var AE=w(Kg=>{"use strict";var bde=O(),wde=X();Object.defineProperty(Kg,"__esModule",{value:!0});Kg.default=void 0;var Sde=wde(j()),Tde=bde(ot()),xde=(0,Tde.default)(Sde.createElement("path",{d:"M1 9l2 2c4.97-4.97 13.03-4.97 18 0l2-2C16.93 2.93 7.08 2.93 1 9zm8 8l3 3 3-3c-1.65-1.66-4.34-1.66-6 0zm-4-4l2 2c2.76-2.76 7.24-2.76 10 0l2-2C15.14 9.14 8.87 9.14 5 13z"}),"Wifi");Kg.default=xde});var FE=w(Jg=>{"use strict";var Ede=O(),kde=X();Object.defineProperty(Jg,"__esModule",{value:!0});Jg.default=void 0;var Cde=kde(j()),Ode=Ede(ot()),Rde=(0,Ode.default)(Cde.createElement("path",{d:"M14 2H6c-1.1 0-1.99.9-1.99 2L4 20c0 1.1.89 2 1.99 2H18c1.1 0 2-.9 2-2V8l-6-6zm2 16H8v-2h8v2zm0-4H8v-2h8v2zm-3-5V3.5L18.5 9H13z"}),"Description");Jg.default=Rde});var J4=w(Yg=>{"use strict";var Nde=O(),Pde=X();Object.defineProperty(Yg,"__esModule",{value:!0});Yg.default=void 0;var Dde=Pde(j()),qde=Nde(ot()),jde=(0,qde.default)(Dde.createElement("path",{d:"M9.4 16.6L4.8 12l4.6-4.6L8 6l-6 6 6 6 1.4-1.4zm5.2 0l4.6-4.6-4.6-4.6L16 6l6 6-6 6-1.4-1.4z"}),"Code");Yg.default=jde});var Y4=w(Qg=>{"use strict";var Mde=O(),Ide=X();Object.defineProperty(Qg,"__esModule",{value:!0});Qg.default=void 0;var zde=Ide(j()),Ade=Mde(ot()),Fde=(0,Ade.default)(zde.createElement("path",{d:"M3.5 18.49l6-6.01 4 4L22 6.92l-1.41-1.41-7.09 7.97-4-4L2 16.99z"}),"ShowChart");Qg.default=Fde});var Q4=w(Zg=>{"use strict";var Lde=O(),Wde=X();Object.defineProperty(Zg,"__esModule",{value:!0});Zg.default=void 0;var Bde=Wde(j()),Vde=Lde(ot()),$de=(0,Vde.default)(Bde.createElement("path",{d:"M19 5v14H5V5h14m1.1-2H3.9c-.5 0-.9.4-.9.9v16.2c0 .4.4.9.9.9h16.2c.4 0 .9-.5.9-.9V3.9c0-.5-.5-.9-.9-.9zM11 7h6v2h-6V7zm0 4h6v2h-6v-2zm0 4h6v2h-6zM7 7h2v2H7zm0 4h2v2H7zm0 4h2v2H7z"}),"ListAlt");Zg.default=$de});var Z4=w(Xg=>{"use strict";var Ude=O(),Hde=X();Object.defineProperty(Xg,"__esModule",{value:!0});Xg.default=void 0;var Gde=Hde(j()),Kde=Ude(ot()),Jde=(0,Kde.default)(Gde.createElement("path",{d:"M10 18h5V5h-5v13zm-6 0h5V5H4v13zM16 5v13h5V5h-5z"}),"ViewColumn");Xg.default=Jde});var X4=w(ey=>{"use strict";var Yde=O(),Qde=X();Object.defineProperty(ey,"__esModule",{value:!0});ey.default=void 0;var Zde=Qde(j()),Xde=Yde(ot()),efe=(0,Xde.default)(Zde.createElement("path",{d:"M22.7 19l-9.1-9.1c.9-2.3.4-5-1.5-6.9-2-2-5-2.4-7.4-1.3L9 6 6 9 1.6 4.7C.4 7.1.9 10.1 2.9 12.1c1.9 1.9 4.6 2.4 6.9 1.5l9.1 9.1c.4.4 1 .4 1.4 0l2.3-2.3c.5-.4.5-1.1.1-1.4z"}),"Build");ey.default=efe});var eF=w(ty=>{"use strict";var tfe=O(),rfe=X();Object.defineProperty(ty,"__esModule",{value:!0});ty.default=void 0;var nfe=rfe(j()),ofe=tfe(ot()),afe=(0,ofe.default)(nfe.createElement("path",{d:"M5 4v2h14V4H5zm0 10h4v6h6v-6h4l-7-7-7 7z"}),"Publish");ty.default=afe});var tF=w(ry=>{"use strict";var ife=O(),sfe=X();Object.defineProperty(ry,"__esModule",{value:!0});ry.default=void 0;var lfe=sfe(j()),ufe=ife(ot()),cfe=(0,ufe.default)(lfe.createElement("path",{d:"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"}),"Add");ry.default=cfe});var rF=w(ny=>{"use strict";var dfe=O(),ffe=X();Object.defineProperty(ny,"__esModule",{value:!0});ny.default=void 0;var pfe=ffe(j()),mfe=dfe(ot()),hfe=(0,mfe.default)(pfe.createElement("path",{d:"M17.65 6.35C16.2 4.9 14.21 4 12 4c-4.42 0-7.99 3.58-7.99 8s3.57 8 7.99 8c3.73 0 6.84-2.55 7.73-6h-2.08c-.82 2.33-3.04 4-5.65 4-3.31 0-6-2.69-6-6s2.69-6 6-6c1.66 0 3.14.69 4.22 1.78L13 11h7V4l-2.35 2.35z"}),"Refresh");ny.default=hfe});var nF=w(oy=>{"use strict";var vfe=O(),gfe=X();Object.defineProperty(oy,"__esModule",{value:!0});oy.default=void 0;var yfe=gfe(j()),_fe=vfe(ot()),bfe=(0,_fe.default)(yfe.createElement("path",{d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-5 14h-2V9h-2V7h4v10z"}),"LooksOne");oy.default=bfe});var oF=w(ay=>{"use strict";var wfe=O(),Sfe=X();Object.defineProperty(ay,"__esModule",{value:!0});ay.default=void 0;var Tfe=Sfe(j()),xfe=wfe(ot()),Efe=(0,xfe.default)(Tfe.createElement("path",{d:"M2 17h20v2H2zm11.84-9.21c.1-.24.16-.51.16-.79 0-1.1-.9-2-2-2s-2 .9-2 2c0 .28.06.55.16.79C6.25 8.6 3.27 11.93 3 16h18c-.27-4.07-3.25-7.4-7.16-8.21z"}),"RoomService");ay.default=Efe});var sF=w(iy=>{"use strict";var aF=O();Object.defineProperty(iy,"__esModule",{value:!0});iy.default=void 0;var LE=aF(j()),ii=aF(ne()),iF=function(e){return LE.default.createElement("svg",{onClick:function(n){return e.onClick&&e.onClick(n)},viewBox:"0 0 486.70625 486",width:e.width||20,height:e.height||e.width||20,xmlns:"http://www.w3.org/2000/svg",className:e.className},LE.default.createElement("path",{fill:"currentColor",d:"m414.928297,149.715165 c-2.639376,-57.222555 -35.669446,-106.505345 -83.345894,-132.039151 c-3.758948,-2.049842 -7.636885,-3.932022 -11.590542,-5.641125 c-19.303146,-8.394083 -40.607459,-13.050853 -63.004303,-13.050853 c-84.113909,0 -152.791790,65.703174 -157.718988,148.605566 l0.043268,-0.010816 v0.281245 c0,3.061243 -0.146031,16.750306 -0.146031,16.750306 l-2.352723,5.224668 h15.744315 c5.916964,-19.384275 24.078904,-32.635245 45.513024,-32.635245 c26.231510,0 47.573684,21.915481 47.573684,48.146991 c0,26.226103 -21.342174,47.146409 -47.573684,47.146409 c-25.111939,0 -45.734774,-19.735831 -47.443879,-44.658471 h-18.789334 c-0.400232,0 -0.778832,0.638209 -1.162839,0.584122 l-19.762875,55.199753 c-2.774590,7.696379 2.926030,16.214860 11.103771,16.214860 h17.020735 l-0.129805,87.899899 c0,17.356066 14.073071,31.174935 31.429136,31.174935 h56.205745 v82.648189 c0,12.877778 12.937273,22.580734 25.815051,22.580734 h144.597825 c12.877778,0 23.429877,-9.702955 23.429877,-22.580734 v-166.037352 c0,-22.645636 5.976457,-44.761234 16.561008,-64.789128 c11.055093,-20.925714 17.523731,-44.620611 18.129489,-69.792045 c0.027042,-1.260193 0.037858,-2.552839 0.037858,-3.845485 c0,-2.466302 -0.070310,-4.938014 -0.183890,-7.377273 zm-155.393308,-11.731165 h-13.456494 v13.559257 c0,4.732489 -4.267352,8.567157 -8.999842,8.567157 c-4.727079,0 -8.999842,-3.834667 -8.999842,-8.567157 v-13.559257 h-12.185483 c-4.732489,0 -8.567157,-4.267352 -8.567157,-8.999842 c0,-4.727079 3.834667,-8.999842 8.567157,-8.999842 h12.185483 v-12.077311 c0,-4.732489 4.272762,-8.567157 8.999842,-8.567157 c4.732489,0 8.999842,3.834667 8.999842,8.567157 v12.077311 h13.456494 c4.727079,0 8.567157,4.272762 8.567157,8.999842 c0,4.732489 -3.840077,8.999842 -8.567157,8.999842 zm0,0"}),LE.default.createElement("path",{fill:"currentColor",d:"m187.695312 285.875c3.9375-3.980469 6.414063-9.449219 6.414063-15.523438 0-12.128906-9.855469-21.980468-21.984375-21.980468-6.007812 0-11.472656 2.410156-15.457031 6.347656-4.023438 4.003906-6.523438 9.539062-6.523438 15.636719 0 12.125 9.855469 21.980469 21.980469 21.980469 6.078125 0 11.585938-2.476563 15.570312-6.460938zm0 0"}))};iF.propTypes={onClick:ii.default.func,width:ii.default.oneOfType([ii.default.number,ii.default.string]),height:ii.default.oneOfType([ii.default.number,ii.default.string]),className:ii.default.string};var kfe=iF;iy.default=kfe});var dF=w(sy=>{"use strict";var uF=O();Object.defineProperty(sy,"__esModule",{value:!0});sy.default=void 0;var lF=uF(j()),si=uF(ne()),cF=function(e){return lF.default.createElement("svg",{onClick:function(n){return e.onClick&&e.onClick(n)},viewBox:"0 0 512 512",width:e.width||20,height:e.height||e.width||20,xmlns:"http://www.w3.org/2000/svg",className:e.className},lF.default.createElement("path",{fill:"currentColor",d:"M448 0L320 96v62.06l-83.03 83.03c6.79 4.25 13.27 9.06 19.07 14.87 5.8 5.8 10.62 12.28 14.87 19.07L353.94 192H416l96-128-64-64zM128 278.59L10.92 395.67c-14.55 14.55-14.55 38.15 0 52.71l52.7 52.7c14.56 14.56 38.15 14.56 52.71 0L233.41 384c29.11-29.11 29.11-76.3 0-105.41s-76.3-29.11-105.41 0z"}))};cF.propTypes={onClick:si.default.func,width:si.default.oneOfType([si.default.number,si.default.string]),height:si.default.oneOfType([si.default.number,si.default.string]),className:si.default.string};var Cfe=cF;sy.default=Cfe});var WE=w(ly=>{"use strict";var pF=O();Object.defineProperty(ly,"__esModule",{value:!0});ly.default=void 0;var fF=pF(j()),li=pF(ne()),mF=function(e){return fF.default.createElement("svg",{onClick:function(n){return e.onClick&&e.onClick(n)},viewBox:"0 0 512 512",width:e.width||20,height:e.height||e.width||20,xmlns:"http://www.w3.org/2000/svg",className:e.className},fF.default.createElement("path",{fill:"currentColor",d:"M96.06 454.35c.01 6.29 1.87 12.45 5.36 17.69l17.09 25.69a31.99 31.99 0 0 0 26.64 14.28h61.71a31.99 31.99 0 0 0 26.64-14.28l17.09-25.69a31.989 31.989 0 0 0 5.36-17.69l.04-38.35H96.01l.05 38.35zM0 176c0 44.37 16.45 84.85 43.56 115.78 16.52 18.85 42.36 58.23 52.21 91.45.04.26.07.52.11.78h160.24c.04-.26.07-.51.11-.78 9.85-33.22 35.69-72.6 52.21-91.45C335.55 260.85 352 220.37 352 176 352 78.61 272.91-.3 175.45 0 73.44.31 0 82.97 0 176zm176-80c-44.11 0-80 35.89-80 80 0 8.84-7.16 16-16 16s-16-7.16-16-16c0-61.76 50.24-112 112-112 8.84 0 16 7.16 16 16s-7.16 16-16 16z"}))};mF.propTypes={onClick:li.default.func,width:li.default.oneOfType([li.default.number,li.default.string]),height:li.default.oneOfType([li.default.number,li.default.string]),className:li.default.string};var Ofe=mF;ly.default=Ofe});var gF=w(uy=>{"use strict";var hF=O();Object.defineProperty(uy,"__esModule",{value:!0});uy.default=void 0;var ac=hF(j()),ui=hF(ne()),vF=function(e){return ac.default.createElement("svg",{onClick:function(n){return e.onClick&&e.onClick(n)},viewBox:"0 0 320 320",width:e.width||20,height:e.height||e.width||20,xmlns:"http://www.w3.org/2000/svg",className:e.className},ac.default.createElement("g",{fill:"currentColor"},ac.default.createElement("rect",{rx:"32",id:"svg_1",height:"272",width:"267",y:"25",x:"25",strokeWidth:"15",stroke:"currentColor",fill:"none"}),ac.default.createElement("ellipse",{stroke:"currentColor",ry:"26",rx:"26",id:"svg_2",cy:"248",cx:"160",fill:"none",strokeWidth:"15"}),ac.default.createElement("line",{strokeLinecap:"null",strokeLinejoin:"null",id:"svg_3",y2:"201.94531",x2:"159.5",y1:"46.94531",x1:"159.5",fillOpacity:"null",strokeOpacity:"null",strokeWidth:"15",stroke:"currentColor",fill:"none"}),ac.default.createElement("rect",{id:"svg_4",height:"27",width:"50",y:"79.7979",x:"133.5",fillOpacity:"null",strokeOpacity:"null",strokeWidth:"15",stroke:"currentColor",fill:"#fff"})))};vF.propTypes={onClick:ui.default.func,width:ui.default.oneOfType([ui.default.number,ui.default.string]),height:ui.default.oneOfType([ui.default.number,ui.default.string]),className:ui.default.string};var Rfe=vF;uy.default=Rfe});var wF=w(cy=>{"use strict";var _F=O();Object.defineProperty(cy,"__esModule",{value:!0});cy.default=void 0;var yF=_F(j()),ci=_F(ne()),bF=function(e){return yF.default.createElement("svg",{onClick:function(n){return e.onClick&&e.onClick(n)},viewBox:"0 0 512 512",width:e.width||20,height:e.height||e.width||20,xmlns:"http://www.w3.org/2000/svg",className:e.className},yF.default.createElement("path",{fill:"currentColor",d:"M433.941 65.941l-51.882-51.882A48 48 0 0 0 348.118 0H176c-26.51 0-48 21.49-48 48v48H48c-26.51 0-48 21.49-48 48v320c0 26.51 21.49 48 48 48h224c26.51 0 48-21.49 48-48v-48h80c26.51 0 48-21.49 48-48V99.882a48 48 0 0 0-14.059-33.941zM266 464H54a6 6 0 0 1-6-6V150a6 6 0 0 1 6-6h74v224c0 26.51 21.49 48 48 48h96v42a6 6 0 0 1-6 6zm128-96H182a6 6 0 0 1-6-6V54a6 6 0 0 1 6-6h106v88c0 13.255 10.745 24 24 24h88v202a6 6 0 0 1-6 6zm6-256h-64V48h9.632c1.591 0 3.117.632 4.243 1.757l48.368 48.368a6 6 0 0 1 1.757 4.243V112z"}))};bF.propTypes={onClick:ci.default.func,width:ci.default.oneOfType([ci.default.number,ci.default.string]),height:ci.default.oneOfType([ci.default.number,ci.default.string]),className:ci.default.string};var Nfe=bF;cy.default=Nfe});var xF=w(dy=>{"use strict";var SF=O();Object.defineProperty(dy,"__esModule",{value:!0});dy.default=void 0;var Dn=SF(j()),di=SF(ne()),TF=function(e){return Dn.default.createElement("svg",{onClick:function(n){return e.onClick&&e.onClick(n)},viewBox:"0 0 320 320",width:e.width||20,height:e.height||e.width||20,xmlns:"http://www.w3.org/2000/svg",className:e.className},Dn.default.createElement("g",{fill:"currentColor"},Dn.default.createElement("rect",{rx:"32",id:"svg_1",height:"272",width:"267",y:"25",x:"25",strokeWidth:"15",stroke:"currentColor",fill:"none"}),Dn.default.createElement("ellipse",{stroke:"currentColor",ry:"26",rx:"26",id:"svg_2",cy:"252",cx:"160",fillOpacity:"null",strokeOpacity:"null",strokeWidth:"15",fill:"#fff"}),Dn.default.createElement("line",{strokeLinecap:"null",strokeLinejoin:"null",id:"svg_3",y2:"201.94531",x2:"159.5",y1:"46.94531",x1:"159.5",fillOpacity:"null",strokeOpacity:"null",strokeWidth:"15",stroke:"currentColor",fill:"none"}),Dn.default.createElement("rect",{height:"27",width:"50",y:"140.83068",x:"133.5",fillOpacity:"null",strokeOpacity:"null",strokeWidth:"15",stroke:"currentColor",fill:"#fff"}),Dn.default.createElement("ellipse",{stroke:"currentColor",ry:"26",rx:"26",id:"svg_5",cy:"251",cx:"241",fillOpacity:"null",strokeOpacity:"null",strokeWidth:"15",fill:"#fff"}),Dn.default.createElement("line",{strokeLinecap:"null",strokeLinejoin:"null",id:"svg_6",y2:"200.94531",x2:"240.5",y1:"45.94531",x1:"240.5",fillOpacity:"null",strokeOpacity:"null",strokeWidth:"15",stroke:"currentColor",fill:"none"}),Dn.default.createElement("rect",{height:"27",width:"50",y:"78.7979",x:"214.5",strokeWidth:"15",stroke:"currentColor",fill:"#fff"}),Dn.default.createElement("ellipse",{stroke:"currentColor",ry:"26",rx:"26",id:"svg_8",cy:"252",cx:"84",fillOpacity:"null",strokeOpacity:"null",strokeWidth:"15",fill:"#fff"}),Dn.default.createElement("line",{strokeLinecap:"null",strokeLinejoin:"null",id:"svg_9",y2:"201.94531",x2:"83.5",y1:"46.94531",x1:"83.5",fillOpacity:"null",strokeOpacity:"null",strokeWidth:"15",stroke:"currentColor",fill:"none"}),Dn.default.createElement("rect",{height:"27",width:"50",y:"79.7979",x:"57.5",fillOpacity:"null",strokeOpacity:"null",strokeWidth:"15",stroke:"currentColor",fill:"#fff"})))};TF.propTypes={onClick:di.default.func,width:di.default.oneOfType([di.default.number,di.default.string]),height:di.default.oneOfType([di.default.number,di.default.string]),className:di.default.string};var Pfe=TF;dy.default=Pfe});var OF=w(fy=>{"use strict";var kF=O();Object.defineProperty(fy,"__esModule",{value:!0});fy.default=void 0;var EF=kF(j()),fi=kF(ne()),CF=function(e){return EF.default.createElement("svg",{onClick:function(n){return e.onClick&&e.onClick(n)},viewBox:"0 0 512 512",width:e.width||20,height:e.height||e.width||20,xmlns:"http://www.w3.org/2000/svg",className:e.className},EF.default.createElement("path",{fill:"currentColor",d:"M369.9 97.9L286 14C277 5 264.8-.1 252.1-.1H48C21.5 0 0 21.5 0 48v416c0 26.5 21.5 48 48 48h288c26.5 0 48-21.5 48-48V131.9c0-12.7-5.1-25-14.1-34zM332.1 128H256V51.9l76.1 76.1zM48 464V48h160v104c0 13.3 10.7 24 24 24h104v288H48z"}))};CF.propTypes={onClick:fi.default.func,width:fi.default.oneOfType([fi.default.number,fi.default.string]),height:fi.default.oneOfType([fi.default.number,fi.default.string]),className:fi.default.string};var Dfe=CF;fy.default=Dfe});var DF=w(py=>{"use strict";var NF=O();Object.defineProperty(py,"__esModule",{value:!0});py.default=void 0;var RF=NF(j()),pi=NF(ne()),PF=function(e){return RF.default.createElement("svg",{onClick:function(n){return e.onClick&&e.onClick(n)},viewBox:"0 0 512 512",width:e.width||20,height:e.height||e.width||20,xmlns:"http://www.w3.org/2000/svg",className:e.className},RF.default.createElement("path",{fill:"currentColor",d:"M448 0L320 96v62.06l-83.03 83.03c6.79 4.25 13.27 9.06 19.07 14.87 5.8 5.8 10.62 12.28 14.87 19.07L353.94 192H416l96-128-64-64zM128 278.59L10.92 395.67c-14.55 14.55-14.55 38.15 0 52.71l52.7 52.7c14.56 14.56 38.15 14.56 52.71 0L233.41 384c29.11-29.11 29.11-76.3 0-105.41s-76.3-29.11-105.41 0z"}))};PF.propTypes={onClick:pi.default.func,width:pi.default.oneOfType([pi.default.number,pi.default.string]),height:pi.default.oneOfType([pi.default.number,pi.default.string]),className:pi.default.string};var qfe=PF;py.default=qfe});var MF=w(my=>{"use strict";var VE=O();Object.defineProperty(my,"__esModule",{value:!0});my.default=void 0;var qF=VE(or()),BE=VE(j()),mi=VE(ne()),jF=function(e){return BE.default.createElement("svg",{onClick:function(n){return e.onClick&&e.onClick(n)},viewBox:"0 0 320 320",width:e.width||20,height:e.height||e.width||20,xmlns:"http://www.w3.org/2000/svg",className:e.className},BE.default.createElement("rect",(0,qF.default)({fill:"currentColor",rx:"32",id:"svg_1",height:"272",width:"267",y:"25",x:"25",strokeWidth:"15",stroke:"currentColor"},"fill","none")),BE.default.createElement("ellipse",(0,qF.default)({fill:"currentColor",ry:"54",rx:"54",id:"svg_2",cy:"160",cx:"160",fillOpacity:"null",strokeOpacity:"null",strokeWidth:"15",stroke:"currentColor"},"fill","#fff")))};jF.propTypes={onClick:mi.default.func,width:mi.default.oneOfType([mi.default.number,mi.default.string]),height:mi.default.oneOfType([mi.default.number,mi.default.string]),className:mi.default.string};var jfe=jF;my.default=jfe});var FF=w(hy=>{"use strict";var zF=O();Object.defineProperty(hy,"__esModule",{value:!0});hy.default=void 0;var IF=zF(j()),hi=zF(ne()),AF=function(e){return IF.default.createElement("svg",{onClick:function(n){return e.onClick&&e.onClick(n)},viewBox:"0 0 650 512",xmlns:"http://www.w3.org/2000/svg",width:e.width||20,height:e.height||e.width||20,className:e.className},IF.default.createElement("path",{fill:"currentColor",d:"M464 128H272l-64-64H48C21.49 64 0 85.49 0 112v288c0 26.51 21.49 48 48 48h416c26.51 0 48-21.49 48-48V176c0-26.51-21.49-48-48-48z"}))};AF.propTypes={onClick:hi.default.func,width:hi.default.oneOfType([hi.default.number,hi.default.string]),height:hi.default.oneOfType([hi.default.number,hi.default.string]),className:hi.default.string};var Mfe=AF;hy.default=Mfe});var VF=w(vy=>{"use strict";var WF=O();Object.defineProperty(vy,"__esModule",{value:!0});vy.default=void 0;var LF=WF(j()),vi=WF(ne()),BF=function(e){return LF.default.createElement("svg",{onClick:function(n){return e.onClick&&e.onClick(n)},viewBox:"0 0 650 512",xmlns:"http://www.w3.org/2000/svg",width:e.width||20,height:e.height||e.width||20,className:e.className},LF.default.createElement("path",{fill:"currentColor",d:"M572.694 292.093L500.27 416.248A63.997 63.997 0 0 1 444.989 448H45.025c-18.523 0-30.064-20.093-20.731-36.093l72.424-124.155A64 64 0 0 1 152 256h399.964c18.523 0 30.064 20.093 20.73 36.093zM152 224h328v-48c0-26.51-21.49-48-48-48H272l-64-64H48C21.49 64 0 85.49 0 112v278.046l69.077-118.418C86.214 242.25 117.989 224 152 224z"}))};BF.propTypes={onClick:vi.default.func,width:vi.default.oneOfType([vi.default.number,vi.default.string]),height:vi.default.oneOfType([vi.default.number,vi.default.string]),className:vi.default.string};var Ife=BF;vy.default=Ife});var GF=w(gy=>{"use strict";var UF=O();Object.defineProperty(gy,"__esModule",{value:!0});gy.default=void 0;var $F=UF(j()),gi=UF(ne()),HF=function(e){return $F.default.createElement("svg",{onClick:function(n){return e.onClick&&e.onClick(n)},viewBox:"0 0 24 24",width:e.width||20,height:e.height||e.width||20,xmlns:"http://www.w3.org/2000/svg",className:e.className},$F.default.createElement("path",{fill:"currentColor",stroke:"currentColor",d:"M4.25 5.61C6.27 8.2 10 13 10 13v6c0 .55.45 1 1 1h2c.55 0 1-.45 1-1v-6s3.72-4.8 5.74-7.39A.998.998 0 0 0 18.95 4H5.04c-.83 0-1.3.95-.79 1.61z"}))};HF.propTypes={onClick:gi.default.func,width:gi.default.oneOfType([gi.default.number,gi.default.string]),height:gi.default.oneOfType([gi.default.number,gi.default.string]),className:gi.default.string};var zfe=HF;gy.default=zfe});var QF=w(ic=>{"use strict";var er=O();Object.defineProperty(ic,"__esModule",{value:!0});ic.default=void 0;ic.getSelectIdIcon=epe;ic.getSystemIcon=Xfe;var Afe=er(An()),Ffe=er(bn()),Lfe=er(_s()),Wfe=er(bs()),KF=er(ws()),Ur=er(j()),Qo=er(ne()),Bfe=er(Xx()),JF=er(qE()),Vfe=er(jE()),$fe=er(ME()),Ufe=er(IE()),Hfe=er(zE()),Gfe=er(AE()),Kfe=er(fg()),Jfe=er(FE()),Yfe=er(WE()),$E=er($u());function Qfe(t){var e=Zfe();return function(){var n=(0,KF.default)(t),o;if(e){var a=(0,KF.default)(this).constructor;o=Reflect.construct(n,arguments,a)}else o=n.apply(this,arguments);return(0,Wfe.default)(this,o)}}function Zfe(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}function Xfe(t){var e,r=t==null?void 0:t._id;return r?(r.startsWith("_design/")||r==="system"?e=Ur.default.createElement(JF.default,{className:"iconOwn"}):r==="0_userdata"||r==="0_userdata.0"?e=Ur.default.createElement(Vfe.default,{className:"iconOwn"}):r==="alias"||r==="alias.0"?e=Ur.default.createElement(Yfe.default,{className:"iconOwn"}):r==="system.adapter"?e=Ur.default.createElement(JF.default,{className:"iconOwn"}):r==="system.group"?e=Ur.default.createElement($fe.default,{className:"iconOwn"}):r==="system.user"?e=Ur.default.createElement(Ufe.default,{className:"iconOwn"}):r==="system.host"?e=Ur.default.createElement(Hfe.default,{className:"iconOwn"}):r.endsWith(".connection")||r.endsWith(".connected")?e=Ur.default.createElement(Gfe.default,{className:"iconOwn"}):r.endsWith(".info")?e=Ur.default.createElement(Kfe.default,{className:"iconOwn"}):(t==null?void 0:t.type)==="meta"&&(e=Ur.default.createElement(Jfe.default,{className:"iconOwn"})),e||null):null}function epe(t,e){e=e||".";var r="",n=t==null?void 0:t.common;if(n){var o=n.icon;if(o)if(o.startsWith("data:image/"))r=o;else if(o.includes(".")){var a;t.type==="instance"||t.type==="adapter"?r=e+"/adapter/"+n.name+"/"+o:t._id&&t._id.startsWith("system.adapter.")?(a=t._id.split(".",3),o[0]==="/"?a[2]+=o:a[2]+="/"+o,r=e+"/adapter/"+a[2]):(a=t._id.split(".",2),o[0]==="/"?a[0]+=o:a[0]+="/"+o,r=e+"/adapter/"+a[0])}else return null}return r||null}var YF=function(t){(0,Lfe.default)(r,t);var e=Qfe(r);function r(){return(0,Afe.default)(this,r),e.apply(this,arguments)}return(0,Ffe.default)(r,[{key:"render",value:function(){if(this.props.src)if(typeof this.props.src=="string"){if(this.props.src.length<3)return Ur.default.createElement("span",{title:this.props.title||void 0,style:Object.assign({height:27,marginTop:-8},this.props.styleUTF8||this.props.style),className:$E.default.clsx(this.props.className,"iconOwn")},this.props.src);if(this.props.src.startsWith("data:image/svg")){var o,a,i;return Ur.default.createElement(Bfe.default,{title:this.props.title||void 0,src:this.props.src,className:$E.default.clsx(this.props.className,"iconOwn"),width:((o=this.props.style)===null||o===void 0?void 0:o.width)||28,height:((a=this.props.style)===null||a===void 0?void 0:a.height)||((i=this.props.style)===null||i===void 0?void 0:i.width)||28,style:this.props.style||{}})}else return Ur.default.createElement("img",{title:this.props.title||void 0,style:this.props.style||{},className:$E.default.clsx(this.props.className,"iconOwn"),src:this.props.src,alt:""})}else return this.props.src;else return null}}]),r}(Ur.default.Component);YF.propTypes={color:Qo.default.string,title:Qo.default.string,src:Qo.default.oneOfType([Qo.default.string,Qo.default.object]),className:Qo.default.string,imagePrefix:Qo.default.string,style:Qo.default.object,styleUTF8:Qo.default.object};var tpe=YF;ic.default=tpe});var t3=w(yy=>{"use strict";var qn=O();Object.defineProperty(yy,"__esModule",{value:!0});yy.default=void 0;var rpe=qn(or()),npe=qn(An()),ope=qn(bn()),ape=qn(_s()),ipe=qn(bs()),ZF=qn(ws()),UE=qn(j()),spe=qn(ze()),XF=qn(ne()),lpe=qn($u()),upe=qn(cf()),cpe=qn(Sf());function dpe(t){var e=fpe();return function(){var n=(0,ZF.default)(t),o;if(e){var a=(0,ZF.default)(this).constructor;o=Reflect.construct(n,arguments,a)}else o=n.apply(this,arguments);return(0,ipe.default)(this,o)}}function fpe(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}var ppe={root:{width:"100%",height:"100%"},overflowHidden:{overflow:"hidden"},container:{height:"100%"}},e3=function(t){(0,ape.default)(r,t);var e=dpe(r);function r(){return(0,npe.default)(this,r),e.apply(this,arguments)}return(0,ope.default)(r,[{key:"render",value:function(){var o=this.props.classes;return UE.default.createElement(cpe.default,{elevation:isNaN(this.props.elevation)?1:this.props.elevation,className:lpe.default.clsx(o.root,(0,rpe.default)({},o.overflowHidden,this.props.overflow!=="visible"))},UE.default.createElement(upe.default,{container:!0,direction:"column",wrap:"nowrap",className:o.container},this.props.children))}}]),r}(UE.default.Component);e3.propTypes={elevation:XF.default.number,overflow:XF.default.string};var mpe=(0,spe.default)(ppe)(e3),hpe=mpe;yy.default=hpe});var a3=w(_y=>{"use strict";var Hn=O();Object.defineProperty(_y,"__esModule",{value:!0});_y.default=void 0;var vpe=Hn(or()),gpe=Hn(An()),ype=Hn(bn()),_pe=Hn(_s()),bpe=Hn(bs()),r3=Hn(ws()),n3=Hn(j()),wpe=Hn(ze()),Spe=Hn(ne()),Tpe=Hn($u()),xpe=Hn(cf());function Epe(t){var e=kpe();return function(){var n=(0,r3.default)(t),o;if(e){var a=(0,r3.default)(this).constructor;o=Reflect.construct(n,arguments,a)}else o=n.apply(this,arguments);return(0,bpe.default)(this,o)}}function kpe(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}var Cpe={root:{height:"100%",overflow:"hidden"},overflowAuto:{overflow:"auto"}},o3=function(t){(0,_pe.default)(r,t);var e=Epe(r);function r(){return(0,gpe.default)(this,r),e.apply(this,arguments)}return(0,ype.default)(r,[{key:"render",value:function(){var o=this.props.classes;return n3.default.createElement(xpe.default,{item:!0,className:Tpe.default.clsx(o.root,(0,vpe.default)({},o.overflowAuto,this.props.overflow==="auto"))},this.props.children)}}]),r}(n3.default.Component);o3.propTypes={overflow:Spe.default.string};var Ope=(0,wpe.default)(Cpe)(o3),Rpe=Ope;_y.default=Rpe});var u3=w(by=>{"use strict";var yi=O();Object.defineProperty(by,"__esModule",{value:!0});by.default=void 0;var Npe=yi(An()),Ppe=yi(bn()),Dpe=yi(_s()),qpe=yi(bs()),i3=yi(ws()),s3=yi(j()),xPe=yi(ne()),jpe=yi(cf());function Mpe(t){var e=Ipe();return function(){var n=(0,i3.default)(t),o;if(e){var a=(0,i3.default)(this).constructor;o=Reflect.construct(n,arguments,a)}else o=n.apply(this,arguments);return(0,qpe.default)(this,o)}}function Ipe(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}var l3=function(t){(0,Dpe.default)(r,t);var e=Mpe(r);function r(){return(0,Npe.default)(this,r),e.apply(this,arguments)}return(0,Ppe.default)(r,[{key:"render",value:function(){return s3.default.createElement(jpe.default,{item:!0,container:!0,alignItems:"center"},this.props.children)}}]),r}(s3.default.Component);l3.propTypes={};var zpe=l3;by.default=zpe});var A3=w(Cy=>{"use strict";var ie=O(),Ape=yn();Object.defineProperty(Cy,"__esModule",{value:!0});Cy.default=void 0;var Ns=ie(m5()),Gn=ie(xa()),HE=ie(v5()),Fpe=ie(An()),Lpe=ie(bn()),bo=ie(Lm()),Wpe=ie(_s()),Bpe=ie(bs()),c3=ie(ws()),Kn=ie(or()),at=ie(yn()),E=Eme(j()),Ae=ie(ne()),Vpe=ie(_5()),C3=ie(ze()),d3=ie(Xx()),qt=ie(rv()),$pe=ie(z5()),Upe=ie(B5()),f3=ie(Y5()),Hpe=ie(D1()),GE=ie(uv()),KE=ie(gf()),Yf=ie(cf()),Gpe=ie(e4()),Hr=ie(d4()),Kpe=ie(Wx()),Qf=ie(Cj()),p3=ie(x1()),JE=ie(uE()),m3=ie(m4()),YE=ie(_4()),QE=ie(S4()),Zf=ie(ng()),Xf=ie(Xv()),wy=ie(tg()),ZE=ie(Dx()),Sy=ie(eg()),Ps=ie(sf()),Jpe=ie(C4()),Ype=ie(XI()),Ty=ie(Fj()),XE=ie(q4()),Qpe=ie($4()),Zpe=ie(Yl()),Xpe=ie(U4()),h3=ie(H4()),O3=ie(G4()),v3=ie(qE()),eme=ie(jE()),R3=ie(ME()),tme=ie(K4()),N3=ie(IE()),P3=ie(zE()),rme=ie(AE()),nme=ie(fg()),D3=ie(FE()),ome=ie(J4()),ame=ie(Y4()),ime=ie(Q4()),sme=ie(Z4()),Ds=ie(ug()),ek=ie(Gx()),lme=ie(X4()),g3=ie(eF()),ume=ie(tF()),cme=ie(rF()),dme=ie(nF()),fme=ie(oF()),pme=ie(sF()),mme=ie(dF()),hme=ie(WE()),vme=ie(gF()),y3=ie(wF()),gme=ie(xF()),yme=ie(OF()),_me=ie(DF()),bme=ie(MF()),Ey=ie(FF()),tk=ie(VF()),wme=ie(GF()),rk=ie(QF()),Ke=ie($u()),Sme=ie(t3()),Tme=ie(a3()),xme=ie(u3());function q3(t){if(typeof WeakMap!="function")return null;var e=new WeakMap,r=new WeakMap;return(q3=function(o){return o?r:e})(t)}function Eme(t,e){if(!e&&t&&t.__esModule)return t;if(t===null||Ape(t)!=="object"&&typeof t!="function")return{default:t};var r=q3(e);if(r&&r.has(t))return r.get(t);var n={},o=Object.defineProperty&&Object.getOwnPropertyDescriptor;for(var a in t)if(a!=="default"&&Object.prototype.hasOwnProperty.call(t,a)){var i=o?Object.getOwnPropertyDescriptor(t,a):null;i&&(i.get||i.set)?Object.defineProperty(n,a,i):n[a]=t[a]}return n.default=t,r&&r.set(t,n),n}function _3(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(t,o).enumerable})),r.push.apply(r,n)}return r}function kme(t){for(var e=1;et[o])return ep(t,e,o,n);if(ey?1:-1)});for(var o=[],a="",i=0,s={data:{name:"",id:""},children:[]},l={funcEnums:[],roomEnums:[],roles:[],ids:[],types:[],objects:t,customs:[],enums:[],hasSomeCustoms:!1},u=s,c=function(y){var h=n[y];if(!h)return"continue";var f=t[h],p=h.split(".");if(f.type&&!l.types.includes(f.type)&&l.types.push(f.type),f){var v,b=f.common,S=b&&b.role;S&&!l.roles.includes(S)?l.roles.push(S):h.startsWith("enum.rooms.")?(l.roomEnums.push(h),l.enums.push(h)):h.startsWith("enum.functions.")?(l.funcEnums.push(h),l.enums.push(h)):f.type==="enum"?l.enums.push(h):f.type==="instance"&&b&&(b.supportCustoms||(v=b.adminUI)!==null&&v!==void 0&&v.custom)&&(l.hasSomeCustoms=!0,l.customs.push(h.substring(15)))}l.ids.push(h);var x=void 0;do if(x=!1,!a||h.startsWith(a+".")){var T,k,D;if(p.length-i>1)for(var R=a,I=function(N){if(R+=(R?".":"")+p[N],ep(l.ids,R))u=u.children.find(function(q){return q.data.name===p[N]});else{var P={data:{name:p[N],parent:u,id:R,obj:t[R],level:N,icon:w3(t,R,N,r),generated:!0}};u.children=u.children||[],u.children.push(P),u=P,l.ids.push(R)}},U=i;U0){var Z=o.length;for(o=o.splice(0,V),i=V,a=o.join(".");Z>V;)u=u.data.parent,Z--}else u=s,o=[],a="",i=0;x=!0}while(x)},d=0;dS?1:bS?1:bn)break}return a?M3(a,e,r,n+"."+r[o+1],o+1):null}function Jn(t,e){return t&&(0,at.default)(t)==="object"?(t[e]||t.en||"").toString():(t||"").toString()}function I3(t,e,r,n,o){if(!e)return{rooms:[],per:!1};o=o||[];for(var a=0;a=r)o.push(0);else if(n stateChange "+h),o.states[h]){var p=o.findItem(h);p&&p.data.state&&(p.data.state=null)}o.states[h]=f,o.pausedSubscribes?o.statesUpdateTimer&&(clearTimeout(o.statesUpdateTimer),o.statesUpdateTimer=null):o.statesUpdateTimer||(o.statesUpdateTimer=setTimeout(function(){o.statesUpdateTimer=null,o.forceUpdate()},300))}),(0,Kn.default)((0,bo.default)(o),"onObjectChange",function(h,f,p){var v;if(Array.isArray(h))h.forEach(function(S){if(console.log("> objectChange "+S.id),!(S.obj&&typeof o.props.filterFunc=="function"&&!o.props.filterFunc(S.obj))){if(S.id.startsWith("system.adapter.")&&S.obj&&S.obj.type==="adapter"){var x=JSON.parse(JSON.stringify(o.state.columnsForAdmin));o.parseObjectForAdmins(x,S.obj),JSON.stringify(o.state.columnsForAdmin)!==JSON.stringify(x)&&(v={columnsForAdmin:x})}o.objects=o.objects||[],o.objects[S.id]?S.obj?o.objects[S.id]=S.obj:delete o.objects[S.id]:o.objects[S.id]&&delete o.objects[S.id]}});else{if(console.log("> objectChange "+h),o.objects=o.objects||[],f&&typeof o.props.filterFunc=="function"&&!o.props.filterFunc(f))return;if(h.startsWith("system.adapter.")&&f&&f.type==="adapter"){var b=JSON.parse(JSON.stringify(o.state.columnsForAdmin));o.parseObjectForAdmins(b,f),JSON.stringify(o.state.columnsForAdmin)!==JSON.stringify(b)&&(v={columnsForAdmin:b})}o.objects[h]?f?o.objects[h]=f:delete o.objects[h]:o.objects[h]&&delete o.objects[h]}v&&o.setState(v),!o.objectsUpdateTimer&&o.objects&&(o.objectsUpdateTimer=setTimeout(function(){o.objectsUpdateTimer=null;var S=S3(o.objects,o.props),x=S.info,T=S.root;o.root=T,o.info=x,o.lastAppliedFilter=null,o.pausedSubscribes||o.forceUpdate()},500))}),(0,Kn.default)((0,bo.default)(o),"getEnumsForId",function(h){var f=[];return o.info.enums.forEach(function(p){var v,b,S;if((v=o.objects[p])!==null&&v!==void 0&&(b=v.common)!==null&&b!==void 0&&(S=b.members)!==null&&S!==void 0&&S.includes(h)){var x={_id:o.objects[p]._id,common:JSON.parse(JSON.stringify(o.objects[p].common)),native:o.objects[p].native,type:"enum"};x.common&&(delete x.common.members,delete x.common.custom,delete x.common.mobile),f.push(x)}}),f.length?f:void 0}),(0,Kn.default)((0,bo.default)(o),"_createAllEnums",function(){var h=(0,HE.default)(Ns.default.mark(function f(p,v){var b,S,x,T,k,D;return Ns.default.wrap(function(I){for(;;)switch(I.prev=I.next){case 0:b=0;case 1:if(!(b0&&arguments[0]!==void 0?arguments[0]:"object",x=h[S];f.forEach(function(T,k){x&T.valueNum&&p.push(E.default.createElement("span",{key:S+k},o.texts["acl"+T.group+"_"+T.title+"_"+S],",",E.default.createElement("span",{className:S==="object"?o.props.classes.rightsObject:o.props.classes.rightsState},T.value)))})};return p.push(E.default.createElement("span",{key:"group"},o.texts.ownerGroup+": "+(h.ownerGroup||"").replace("system.group.",""))),p.push(E.default.createElement("span",{key:"owner"},o.texts.ownerUser+": "+(h.owner||"").replace("system.user.",""))),v(),h.state&&v("state"),p.length?E.default.createElement("span",{className:o.props.classes.tooltipAccessControl},p.map(function(b){return b})):""}),(0,Kn.default)((0,bo.default)(o),"extendObject",function(h,f){return o.props.socket.extendObject(h,f).catch(function(p){return window.alert(p)})}),(0,Kn.default)((0,bo.default)(o),"setObject",function(h,f){return o.props.socket.setObject(h,f).catch(function(p){return window.alert(p)})}),o.lastSelectedItems=window.localStorage.getItem("".concat(n.dialogName||"App",".objectSelected"))||"[]";try{o.lastSelectedItems=JSON.parse(o.lastSelectedItems),(0,at.default)(o.lastSelectedItems)!=="object"&&(o.lastSelectedItems=[o.lastSelectedItems]),o.lastSelectedItems=o.lastSelectedItems.filter(function(h){return h})}catch(h){}var a=window.localStorage.getItem("".concat(n.dialogName||"App",".objectExpanded"))||"[]";try{a=JSON.parse(a)}catch(h){a=[]}var i=n.defaultFilters||window.localStorage.getItem("".concat(n.dialogName||"App",".objectFilter"))||Object.assign({},xy);if(typeof i=="string")try{i=JSON.parse(i)}catch(h){i=Object.assign({},xy)}if(i.expertMode=n.expertMode!==void 0?n.expertMode:window.sessionStorage.getItem("App.expertMode")==="true",o.tableRef=(0,E.createRef)(),o.filterRefs={},Object.keys(xy).forEach(function(h){return o.filterRefs[h]=(0,E.createRef)()}),o.lastAppliedFilter=null,o.pausedSubscribes=!1,o.selectedFound=!1,o.root=null,o.states={},o.subscribes=[],o.statesUpdateTimer=null,o.objectsUpdateTimer=null,o.visibleCols=n.columns||Gr[n.width].fields,n.types&&n.types.length===1){var s=o.visibleCols.indexOf("type");s!==-1&&o.visibleCols.splice(s,1)}o.possibleCols=Gr.xl.fields;var l=null;if(n.router){var u=n.router.getLocation();u.id&&u.dialog==="customs"&&(l=[u.id],o.pauseSubscribe(!0))}var c=n.selected||"";(0,at.default)(c)!=="object"&&(c=[c]),c=c.map(function(h){return h.replace(/["']/g,"")}).filter(function(h){return h});var d=window.localStorage.getItem("".concat(n.dialogName||"App",".columns"));try{d=d?JSON.parse(d):null}catch(h){d=null}var m=window.localStorage.getItem("".concat(n.dialogName||"App",".columnsWidths"));try{m=m?JSON.parse(m):{}}catch(h){m={}}o.imagePrefix=n.imagePrefix||".";var g=window.localStorage.getItem((n.dialogName||"App")+".foldersFirst");g==="false"?g=!1:g==="true"?g=!0:g=n.foldersFirst===void 0?!0:n.foldersFirst;var y=o.props.objectStatesView&&JSON.parse(window.localStorage.getItem((n.dialogName||"App")+".objectStatesView"))||!1;return o.state={loaded:!1,foldersFirst:g,selected:c,selectedNonObject:window.localStorage.getItem("".concat(n.dialogName||"App",".selectedNonObject"))||"",filter:i,filterKey:0,depth:0,expandAllVisible:!1,expanded:a,toast:"",lang:n.lang,scrollBarWidth:16,customDialog:l,editObjectDialog:"",enumDialog:null,roleDialog:null,modalEmptyId:null,statesView:y,columns:d,columnsForAdmin:null,columnsSelectorShow:!1,columnsAuto:window.localStorage.getItem("".concat(n.dialogName||"App",".columnsAuto"))!=="false",columnsWidths:m,columnsDialogTransparent:100,columnsEditCustomDialog:null,customColumnDialogValueChanged:!1,showExportDialog:!1,linesEnabled:window.localStorage.getItem("".concat(n.dialogName||"App",".lines"))==="true"},o.edit={},o.texts={value:n.t("ra_tooltip_value"),ack:n.t("ra_tooltip_ack"),ts:n.t("ra_tooltip_ts"),lc:n.t("ra_tooltip_lc"),from:n.t("ra_tooltip_from"),user:n.t("ra_tooltip_user"),quality:n.t("ra_tooltip_quality"),editObject:n.t("ra_tooltip_editObject"),deleteObject:n.t("ra_tooltip_deleteObject"),customConfig:n.t("ra_tooltip_customConfig"),copyState:n.t("ra_tooltip_copyState"),editState:n.t("ra_tooltip_editState"),close:n.t("ra_Close"),filter_id:n.t("ra_filter_id"),filter_name:n.t("ra_filter_name"),filter_type:n.t("ra_filter_type"),filter_role:n.t("ra_filter_role"),filter_room:n.t("ra_filter_room"),filter_func:n.t("ra_filter_func"),filter_custom:n.t("ra_filter_customs"),objectChangedByUser:n.t("ra_object_changed_by_user"),objectChangedBy:n.t("ra_object_changed_by"),objectChangedFrom:n.t("ra_state_changed_from"),stateChangedBy:n.t("ra_state_changed_by"),stateChangedFrom:n.t("ra_state_changed_from"),ownerGroup:n.t("ra_Owner group"),ownerUser:n.t("ra_Owner user"),aclOwner_read_object:n.t("ra_aclOwner_read_object"),aclOwner_read_state:n.t("ra_aclOwner_read_state"),aclOwner_write_object:n.t("ra_aclOwner_write_object"),aclOwner_write_state:n.t("ra_aclOwner_write_state"),aclGroup_read_object:n.t("ra_aclGroup_read_object"),aclGroup_read_state:n.t("ra_aclGroup_read_state"),aclGroup_write_object:n.t("ra_aclGroup_write_object"),aclGroup_write_state:n.t("ra_aclGroup_write_state"),aclEveryone_read_object:n.t("ra_aclEveryone_read_object"),aclEveryone_read_state:n.t("ra_aclEveryone_read_state"),aclEveryone_write_object:n.t("ra_aclEveryone_write_object"),aclEveryone_write_state:n.t("ra_aclEveryone_write_state")},o.levelPadding=n.levelPadding||Rme,o.calculateColumnsVisibility(),o}return(0,Lpe.default)(r,[{key:"loadAllObjects",value:function(o){var a=this,i=this.props;return new Promise(function(s){return a.setState({updating:!0},function(){return s()})}).then(function(){return a.props.objectsWorker?a.props.objectsWorker.getObjects(o):i.socket.getObjects(o,!0)}).then(function(s){if(a.systemConfig=s["system.config"]||{},a.systemConfig.common=a.systemConfig.common||{},a.systemConfig.common.defaultNewAcl=a.systemConfig.common.defaultNewAcl||{},a.systemConfig.common.defaultNewAcl.owner=a.systemConfig.common.defaultNewAcl.owner||"system.user.admin",a.systemConfig.common.defaultNewAcl.ownerGroup=a.systemConfig.common.defaultNewAcl.ownerGroup||"system.group.administrator",typeof a.systemConfig.common.defaultNewAcl.state!="number"&&(a.systemConfig.common.defaultNewAcl.state=1636),typeof a.systemConfig.common.defaultNewAcl.object!="number"&&(a.systemConfig.common.defaultNewAcl.state=1636),typeof i.filterFunc=="function"){a.objects={};for(var l=Object.keys(s),u=0;u=0;o--)!this.recordStates.includes(this.subscribes[o])&&this.unsubscribe(this.subscribes[o]);this.recordStates=[]}},{key:"findItem",value:function(o,a,i,s){if(a=a||o.split("."),i=i||this.root,!i||!a.length)return null;if(s=(s?s+".":"")+a.shift(),i.children){var l=i.children.find(function(u){return u.data.id===s});if(l){if(l.data.id===o)return l;if(a.length)return this.findItem(o,a,l,s)}else return null}else return null}},{key:"parseObjectForAdmins",value:function(o,a){var i=this;if(a.common&&a.common.adminColumns&&a.common.name){var s=a.common.adminColumns;(0,at.default)(s)!=="object"&&(s=[s]),s=s.map(function(l){return(0,at.default)(l)!=="object"?{path:l,name:l.split(".").pop()}:(l.objTypes&&(0,at.default)(l.objTypes)!=="object"?l.objTypes=[l.objTypes]:l.objTypes||(l.objTypes=null),!l.name&&l.path?{path:l.path,name:l.path.split(".").pop(),width:l.width,edit:!!l.edit,type:l.type,objTypes:l.objTypes}:(0,at.default)(l.name)!=="object"&&l.path?{path:l.path,name:l.name,width:l.width,edit:!!l.edit,type:l.type,objTypes:l.objTypes}:l.path?{path:l.path,name:l.name[i.props.lang]||l.name.en,width:l.width,edit:!!l.edit,type:l.type,objTypes:l.objTypes}:(console.warn("Admin columns for ".concat(a._id," ignored, because path not found")),null))}).filter(function(l){return l}),s&&s.length&&(o=o||{},o[a.common.name]=s.sort(function(l,u){return l.path>u.path?-1:l.path0&&o.children&&o.children.forEach(function(l){l.data.sumVisibility&&(ep(i,l.data.id)||(i.push(l.data.id),i.sort()),a-1>0&&s.expandDepth(l,a-1,i))})}},{key:"collapseDepth",value:function(o,a){return a.filter(function(i){return i.split(".").length<=o})}},{key:"onExpandVisible",value:function(){if(this.state.depth<9){var o=this.state.depth+1,a=(0,Gn.default)(this.state.expanded);this.expandDepth(this.root,o,a),window.localStorage.setItem((this.props.dialogName||"App")+".objectExpanded",JSON.stringify(a)),this.setState({depth:o,expanded:a})}}},{key:"onStatesViewVisible",value:function(){var o=!this.state.statesView;window.localStorage.setItem((this.props.dialogName||"App")+".objectStatesView",JSON.stringify(o)),this.setState({statesView:o})}},{key:"onCollapseVisible",value:function(){if(this.state.depth>0){var o=this.state.depth-1,a=this.collapseDepth(o,this.state.expanded);window.localStorage.setItem((this.props.dialogName||"App")+".objectExpanded",JSON.stringify(a)),this.setState({depth:o,expanded:a})}}},{key:"_getSelectedIdsForExport",value:function(){if(this.state.selected.length||this.state.selectedNonObject){var o=[],a=Object.keys(this.objects);a.sort();for(var i=this.state.selected[0]||this.state.selectedNonObject,s=i+".",l=s.length,u=0;us)break}return o}else return[]}},{key:"_exportObjects",value:function(o){var a=this;if(o)b3("allObjects.json",this.objects);else if(this.state.selected.length||this.state.selectedNonObject){var i={},s=this.state.selected[0]||this.state.selectedNonObject;this._getSelectedIdsForExport().forEach(function(l){if(i[l]=JSON.parse(JSON.stringify(a.objects[l])),i[l].common){var u=a.getEnumsForId(l);u&&(i[l].common.enums=u)}}),b3(s+".json",i)}else window.alert(this.props.t("ra_Save of objects-tree is not possible"))}},{key:"renderExportDialog",value:function(){var o=this;return this.state.showExportDialog===!1?null:E.default.createElement(Xf.default,{open:!0},E.default.createElement(Zf.default,null,this.props.t("Select type of export")),E.default.createElement(wy.default,null,E.default.createElement(ZE.default,null,this.props.t("You can export all objects or just the selected branch."),E.default.createElement("br",null),this.props.t("Selected %s object(s)",this.state.showExportDialog))),E.default.createElement(Sy.default,null,E.default.createElement(Ps.default,{variant:"outlined",onClick:function(){return o.setState({showExportDialog:!1},function(){return o._exportObjects(!0)})}},this.props.t("All objects")),E.default.createElement(Ps.default,{variant:"contained",autoFocus:!0,color:"primary",onClick:function(){return o.setState({showExportDialog:!1},function(){return o._exportObjects(!1)})}},this.props.t("Only selected")),E.default.createElement(Ps.default,{variant:"contained",onClick:function(){return o.setState({showExportDialog:!1})},startIcon:E.default.createElement(Ds.default,null)},this.props.t("Cancel"))))}},{key:"getToolbar",value:function(){var o=this,a=!1;if(this.state.selected.length||this.state.selectedNonObject){var i=this.state.selected[0]||this.state.selectedNonObject;i.split(".").length<2||this.objects[i]&&this.objects[i].type==="state"?a=!1:(this.props.expertMode||i.startsWith("alias.0")||i.startsWith("0_userdata"))&&(a=!0)}return E.default.createElement("div",{style:{display:"flex",width:"100%",alignItems:"center"}},E.default.createElement("div",{style:{display:"flex",width:"100%",alignItems:"center"}},E.default.createElement(Hr.default,{title:this.props.t("ra_Refresh tree")},E.default.createElement("div",null,E.default.createElement(qt.default,{onClick:function(){return o.refreshComponent()},disabled:this.state.updating},E.default.createElement(cme.default,null)))),this.props.showExpertButton&&E.default.createElement(Hr.default,{title:this.props.t("ra_expertMode")},E.default.createElement(qt.default,{key:"expertMode",color:this.state.filter.expertMode?"secondary":"default",onClick:function(){return o.onFilter("expertMode",!o.state.filter.expertMode)}},E.default.createElement(pme.default,null))),!this.props.disableColumnSelector&&E.default.createElement(Hr.default,{title:this.props.t("ra_Configure visible columns")},E.default.createElement(qt.default,{key:"columnSelector",color:this.state.columnsAuto?"primary":"default",onClick:function(){return o.setState({columnsSelectorShow:!0})}},E.default.createElement(sme.default,null))),this.state.expandAllVisible&&E.default.createElement(Hr.default,{title:this.props.t("ra_Expand all nodes")},E.default.createElement(qt.default,{key:"expandAll",onClick:function(){return o.onExpandAll()}},E.default.createElement(tk.default,null))),E.default.createElement(Hr.default,{title:this.props.t("ra_Collapse all nodes")},E.default.createElement(qt.default,{key:"collapseAll",onClick:function(){return o.onCollapseAll()}},E.default.createElement(Ey.default,null))),E.default.createElement(Hr.default,{title:this.props.t("ra_Expand one step node")},E.default.createElement(qt.default,{key:"expandVisible",color:"primary",onClick:function(){return o.onExpandVisible()}},E.default.createElement(E3,{badgeContent:this.state.depth,color:"secondary"},E.default.createElement(tk.default,null)))),E.default.createElement(Hr.default,{title:this.props.t("ra_Collapse one step node")},E.default.createElement(qt.default,{key:"collapseVisible",color:"primary",onClick:function(){return o.onCollapseVisible()}},E.default.createElement(E3,{badgeContent:this.state.depth,color:"secondary"},E.default.createElement(Ey.default,null)))),this.props.objectStatesView&&E.default.createElement(Hr.default,{title:this.props.t("ra_Toggle the states view")},E.default.createElement(qt.default,{onClick:function(){return o.onStatesViewVisible()}},E.default.createElement(dme.default,{color:this.state.statesView?"primary":"inherit"}))),this.props.objectAddBoolean?E.default.createElement(Hr.default,{title:this.toolTipObjectCreating()},E.default.createElement("div",null,E.default.createElement(qt.default,{disabled:!a,onClick:function(){return o.setState({modalNewObj:!0})}},E.default.createElement(ume.default,null)))):null,this.props.objectImportExport&&E.default.createElement(Hr.default,{title:this.props.t("ra_Add objects tree from JSON file")},E.default.createElement(qt.default,{onClick:function(){var l=document.createElement("input");l.setAttribute("type","file"),l.setAttribute("id","files"),l.setAttribute("opacity",0),l.addEventListener("change",function(u){return o.handleJsonUpload(u)},!1),l.click()}},E.default.createElement(g3.default,null))),this.props.objectImportExport&&(!!this.state.selected.length||this.state.selectedNonObject)&&E.default.createElement(Hr.default,{title:this.props.t("ra_Save objects tree as JSON file")},E.default.createElement(qt.default,{onClick:function(){return o.setState({showExportDialog:o._getSelectedIdsForExport().length})}},E.default.createElement(g3.default,{style:{transform:"rotate(180deg)"}})))),!!this.props.objectBrowserEditObject&&E.default.createElement("div",{style:{display:"flex",whiteSpace:"nowrap"}},"".concat(this.props.t("ra_Objects"),": ").concat(Object.keys(this.info.objects).length,", ").concat(this.props.t("ra_States"),": ").concat(Object.keys(this.info.objects).filter(function(s){return o.info.objects[s].type==="state"}).length)),this.props.objectEditBoolean&&E.default.createElement(Hr.default,{title:this.props.t("ra_Edit custom config")},E.default.createElement(qt.default,{onClick:function(){var l=j3(o.root,"state",o.objects);l.length?(o.pauseSubscribe(!0),l.length===1&&(window.localStorage.setItem((o.props.dialogName||"App")+".objectSelected",o.state.selected[0]),o.props.router&&o.props.router.doNavigate(null,"custom",o.state.selected[0])),o.setState({customDialog:l})):o.setState({toast:o.props.t("ra_please select object")})}},E.default.createElement(lme.default,null))))}},{key:"toggleExpanded",value:function(o){var a=JSON.parse(JSON.stringify(this.state.expanded)),i=a.indexOf(o);i===-1?(a.push(o),a.sort()):a.splice(i,1),window.localStorage.setItem((this.props.dialogName||"App")+".objectExpanded",JSON.stringify(a)),this.setState({expanded:a})}},{key:"onCopy",value:function(o,a){o.stopPropagation(),o.preventDefault(),(0,Vpe.default)(a),a.length<50?this.setState({toast:this.props.t("ra_Copied %s",a)}):this.setState({toast:this.props.t("ra_Copied")})}},{key:"renderColumnButtons",value:function(o,a,i){var s=this,l,u;if(!a.data.obj)return this.props.onObjectDelete||this.props.objectEditOfAccessControl?E.default.createElement("div",{className:i.buttonDiv},this.props.expertMode&&this.props.objectEditOfAccessControl?E.default.createElement(qt.default,{className:Ke.default.clsx(i.cellButtonsButton,i.cellButtonsEmptyButton,i.cellButtonMinWidth),onClick:function(){return s.setState({modalEditOfAccess:!0,modalEmptyId:o,modalEditOfAccessObjData:a.data})}},"---"):null,this.props.onObjectDelete&&a.children&&a.children.length?E.default.createElement(qt.default,{className:Ke.default.clsx(i.cellButtonsButton,i.cellButtonsButtonAlone),size:"small","aria-label":"delete",title:this.texts.deleteObject,onClick:function(){return s.props.onObjectDelete(o,!!(a.children&&a.children.length),!1)}},E.default.createElement(h3.default,{className:i.cellButtonsButtonIcon})):null):null;a.data.aclTooltip=a.data.aclTooltip||this.renderTooltipAccessControl(a.data.obj.acl);var c=a.data.obj.acl?a.data.obj.type==="state"?a.data.obj.acl.state:a.data.obj.acl.object:0,d=a.data.obj.acl&&(a.data.obj.type==="state"?this.systemConfig.common.defaultNewAcl.state:this.systemConfig.common.defaultNewAcl.object);return[this.props.expertMode&&this.props.objectEditOfAccessControl?E.default.createElement(Hr.default,{key:"acl",title:a.data.aclTooltip},E.default.createElement(qt.default,{className:i.cellButtonMinWidth,onClick:function(){return s.setState({modalEditOfAccess:!0,modalEditOfAccessObjData:a.data})}},E.default.createElement("div",{className:i.aclText},isNaN(Number(c).toString(16))?Number(d).toString(16):Number(c).toString(16)))):E.default.createElement("div",{key:"aclEmpty",className:i.cellButtonMinWidth}),E.default.createElement(qt.default,{key:"edit",className:i.cellButtonsButton,size:"small","aria-label":"edit",title:this.texts.editObject,onClick:function(){window.localStorage.setItem("".concat(s.props.dialogName||"App",".objectSelected"),o),s.setState({editObjectDialog:o})}},E.default.createElement(Xpe.default,{className:i.cellButtonsButtonIcon})),this.props.onObjectDelete&&((l=a.children)!==null&&l!==void 0&&l.length||!((u=a.data.obj.common)!==null&&u!==void 0&&u.dontDelete))?E.default.createElement(qt.default,{key:"delete",className:i.cellButtonsButton,size:"small","aria-label":"delete",onClick:function(){var g,y;return s.props.onObjectDelete(o,!!((g=a.children)!==null&&g!==void 0&&g.length),!((y=a.data.obj.common)!==null&&y!==void 0&&y.dontDelete))},title:this.texts.deleteObject},E.default.createElement(h3.default,{className:i.cellButtonsButtonIcon})):null,this.props.objectCustomDialog&&this.info.hasSomeCustoms&&a.data.obj.type==="state"?E.default.createElement(qt.default,{className:Ke.default.clsx(i.cellButtonsButton,a.data.hasCustoms&&i.cellButtonsButtonWithCustoms),key:"custom",size:"small","aria-label":"config",title:this.texts.customConfig,onClick:function(){window.localStorage.setItem((s.props.dialogName||"App")+".objectSelected",o),s.pauseSubscribe(!0),s.props.router&&s.props.router.doNavigate(null,"customs",o),s.setState({customDialog:[o]})}},E.default.createElement(O3.default,{className:i.cellButtonsButtonIcon})):null]}},{key:"readHistory",value:function(o){var a=this;if(window.sparkline&&this.defaultHistory&&this.objects[o]&&this.objects[o].common&&this.objects[o].common.custom&&this.objects[o].common.custom[this.defaultHistory]){var i=new Date;i.setHours(i.getHours()-24),i.setMinutes(0),i.setSeconds(0),i.setMilliseconds(0);var s=i.getTime();this.props.socket.getHistory(o,{instance:this.defaultHistory,start:s,end:Date.now(),step:36e5,from:!1,ack:!1,q:!1,addID:!1,aggregate:"minmax"}).then(function(l){for(var u=window.document.getElementsByClassName("sparkline"),c=0;c1){var i=a.path,s;if(o[i[0]]&&(0,at.default)(o[i[0]])==="object")return i.length===2?s=o[i[0]][i[1]]:i.length===3?s=o[i[0]][i[1]]&&(0,at.default)(o[i[0]][i[1]])==="object"?o[i[0]][i[1]][i[2]]:null:i.length===4?s=o[i[0]][i[1]]&&(0,at.default)(o[i[0]][i[1]])==="object"&&o[i[0]][i[1]][i[2]]?o[i[0]][i[1]][i[2]][i[3]]:null:i.length===5?s=o[i[0]][i[1]]&&(0,at.default)(o[i[0]][i[1]])==="object"&&o[i[0]][i[1]][i[2]]&&o[i[0]][i[1]][i[2]][i[3]]?o[i[0]][i[1]][i[2]][i[3]][i[4]]:null:i.length===6&&(s=o[i[0]][i[1]]&&(0,at.default)(o[i[0]][i[1]])==="object"&&o[i[0]][i[1]][i[2]]&&o[i[0]][i[1]][i[2]][i[3]]&&o[i[0]][i[1]][i[2]][i[3]][i[4]]?o[i[0]][i[1]][i[2]][i[3]][i[4]][i[5]]:null),s==null?null:s}else return null}},{key:"setCustomValue",value:function(o,a,i){if(o&&o._id&&o._id.startsWith(a.adapter+".")&&a.path.length>1){var s=a.path;if(o[s[0]]&&(0,at.default)(o[s[0]])==="object"){if(s.length===2)return o[s[0]][s[1]]=i,!0;if(s.length===3){if(o[s[0]][s[1]]&&(0,at.default)(o[s[0]][s[1]])==="object")return o[s[0]][s[1]][s[2]]=i,!0}else if(s.length===4){if(o[s[0]][s[1]]&&(0,at.default)(o[s[0]][s[1]])==="object"&&o[s[0]][s[1]][s[2]]&&(0,at.default)(o[s[0]][s[1]][s[2]])==="object")return o[s[0]][s[1]][s[2]][s[3]]=i,!0}else if(s.length===5){if(o[s[0]][s[1]]&&(0,at.default)(o[s[0]][s[1]])==="object"&&o[s[0]][s[1]][s[2]]&&(0,at.default)(o[s[0]][s[1]][s[2]])==="object"&&o[s[0]][s[1]][s[2]][s[3]]&&(0,at.default)(o[s[0]][s[1]][s[2]][s[3]])==="object")return o[s[0]][s[1]][s[2]][s[3]][s[4]]=i,!0}else if(s.length===6&&o[s[0]][s[1]]&&(0,at.default)(o[s[0]][s[1]])==="object"&&o[s[0]][s[1]][s[2]]&&(0,at.default)(o[s[0]][s[1]][s[2]])==="object"&&o[s[0]][s[1]][s[2]][s[3]]&&(0,at.default)(o[s[0]][s[1]][s[2]][s[3]])==="object"&&o[s[0]][s[1]][s[2]][s[3]][s[4]]&&(0,at.default)(o[s[0]][s[1]][s[2]][s[3]][s[4]])==="object")return o[s[0]][s[1]][s[2]][s[3]][s[4]][s[5]]=i,!0}}return!1}},{key:"renderCustomValue",value:function(o,a,i){var s=this,l=this.getCustomValue(o,a);return l!=null?a.edit&&!this.props.notEditable&&(!a.objTypes||a.objTypes.includes(o.type))?E.default.createElement("div",{className:Ke.default.clsx(this.props.classes.columnCustom,this.props.classes.columnCustomEditable,this.props.classes["columnCustom_"+a.align]),onClick:function(){return s.setState({columnsEditCustomDialog:{item:i,it:a,obj:o},customColumnDialogValueChanged:!1})}},l):E.default.createElement("div",{className:Ke.default.clsx(this.props.classes.columnCustom,this.props.classes["columnCustom_"+a.align])},l):null}},{key:"renderLeaf",value:function(o,a,i,s){var l,u=this,c,d,m,g,y,h,f,p,v,b,S,x,T,k,D,R,I,U,A,V=o.data.id;s.count++,a=a===void 0?this.state.expanded.includes(V):a;var Z,Q=(l=o.data.obj)===null||l===void 0?void 0:l.type;o.children||Q==="folder"||Q==="device"||Q==="channel"||Q==="meta"?Z=a?E.default.createElement(tk.default,{className:i.cellIdIconFolder,onClick:function(){return u.toggleExpanded(V)}}):E.default.createElement(Ey.default,{className:i.cellIdIconFolder,onClick:function(){return u.toggleExpanded(V)}}):Z=E.default.createElement(yme.default,{className:i.cellIdIconDocument});var N=null;o.data.icon&&(typeof o.data.icon=="string"?o.data.icon.length<3?N=E.default.createElement("span",{className:Ke.default.clsx(i.cellIdIconOwn,"iconOwn")},o.data.icon):N=E.default.createElement("img",{className:Ke.default.clsx(i.cellIdIconOwn,"iconOwn"),src:o.data.icon,alt:""}):N=o.data.icon);var P=o.data.obj,q=P&&P.type&&x3[P.type]||E.default.createElement("div",{className:"itemIcon"}),L=this.levelPadding*o.data.level;if(o.data.lang!==this.state.lang){var $=I3(this.info,V,this.state.lang),K=$.rooms,ee=$.per;o.data.rooms=K.join(", "),o.data.per=ee;var ae=z3(this.info,V,this.state.lang),ce=ae.funcs,se=ae.pef;o.data.funcs=ce.join(", "),o.data.pef=se,o.data.lang=this.state.lang}var te=this.props.multiSelect&&this.objects[V]&&(!this.props.types||this.props.types.includes(this.objects[V].type))?E.default.createElement(Qf.default,{className:i.checkBox,checked:this.state.selected.includes(V)}):null,ge=!this.props.notEditable&&Q==="state"&&(this.props.expertMode||((c=o.data.obj)===null||c===void 0||(d=c.common)===null||d===void 0?void 0:d.write)!==!1),fe=!this.props.notEditable&&this.objects[V]&&(this.props.expertMode||Q==="state"||Q==="channel"||Q==="device"),ye=this.state.statesView&&(Q==="state"||Q==="channel"||Q==="device"),ke="",le=[];if(ye){var be;if(ke=(be=this.states[V])===null||be===void 0?void 0:be.from,ke===void 0?ke=" ":(ke=ke?ke.replace(/^system\.adapter\.|^system\./,""):"",le.push("".concat(this.texts.stateChangedFrom," ").concat(ke))),P.user){var qe=P.user.replace("system.user.","");ke+="/".concat(qe),le.push("".concat(this.texts.stateChangedBy," ").concat(qe))}}!((m=o.data.obj)===null||m===void 0)&&m.from&&le.push(this.texts.objectChangedFrom+" "+o.data.obj.from.replace(/^system\.adapter\.|^system\./,"")),!((g=o.data.obj)===null||g===void 0)&&g.user&&le.push(this.texts.objectChangedBy+" "+o.data.obj.user.replace(/^system\.user\./,"")),!((y=o.data.obj)===null||y===void 0)&&y.ts&&le.push(this.texts.objectChangedByUser+" "+Ke.default.formatDate(new Date(o.data.obj.ts),this.props.dateFormat));var Oe=(0,at.default)((h=o.data.obj)===null||h===void 0||(f=h.common)===null||f===void 0||(p=f.alias)===null||p===void 0?void 0:p.id)==="object",nt=V.startsWith("alias.")&&(v=o.data.obj)!==null&&v!==void 0&&(b=v.common)!==null&&b!==void 0&&(S=b.alias)!==null&&S!==void 0&&S.id?Oe?E.default.createElement("div",{className:i.cellIdAliasReadWriteDiv},o.data.obj.common.alias.id.read?E.default.createElement("div",{onClick:function(Pe){Pe.stopPropagation(),Pe.preventDefault(),u.onSelect(o.data.obj.common.alias.id.read),setTimeout(function(){u.expandAllSelected(function(){return u.scrollToItem(o.data.obj.common.alias.id.read)})},100)},className:Ke.default.clsx(i.cellIdAlias,i.cellIdAliasReadWrite)},"\u2190",o.data.obj.common.alias.id.read):null,o.data.obj.common.alias.id.write?E.default.createElement("div",{onClick:function(Pe){Pe.stopPropagation(),Pe.preventDefault(),u.onSelect(o.data.obj.common.alias.id.write),setTimeout(function(){u.expandAllSelected(function(){return u.scrollToItem(o.data.obj.common.alias.id.write)})},100)},className:Ke.default.clsx(i.cellIdAlias,i.cellIdAliasReadWrite)},"\u2192",o.data.obj.common.alias.id.write):null):E.default.createElement("div",{onClick:function(Pe){Pe.stopPropagation(),Pe.preventDefault(),u.onSelect(o.data.obj.common.alias.id),setTimeout(function(){u.expandAllSelected(function(){return u.scrollToItem(o.data.obj.common.alias.id)})},100)},className:Ke.default.clsx(i.cellIdAlias,i.cellIdAliasAlone)},"\u2192",o.data.obj.common.alias.id):null,ve=(x=o.data)===null||x===void 0||(T=x.obj)===null||T===void 0||(k=T.common)===null||k===void 0?void 0:k.color,Me="none";ve&&!this.state.selected.includes(V)&&(Me=Ke.default.invertColor(ve,!0)),(!ve||this.state.selected.includes(V))&&(ve="inherit");var Ce=ye?Ke.default.quality2text(((D=this.states[V])===null||D===void 0?void 0:D.q)||0).join(", "):null;return E.default.createElement(Yf.default,{container:!0,direction:"row",wrap:"nowrap",className:Ke.default.clsx(i.tableRow,this.state.linesEnabled&&i.tableRowLines,!this.props.dragEnabled&&i.tableRowNoDragging,nt&&i.tableRowAlias,Oe&&i.tableRowAliasReadWrite,!o.data.visible&&i.filteredOut,o.data.hasVisibleParent&&!o.data.visible&&!o.data.hasVisibleChildren&&i.filteredParentOut,this.state.selected.includes(V)&&i.itemSelected,this.state.selectedNonObject===V&&i.itemSelected),key:V,id:V,onClick:function(){return u.onSelect(V)},onDoubleClick:function(){o.children?u.toggleExpanded(V):u.onSelect(V,!0)}},E.default.createElement(Yf.default,{container:!0,wrap:"nowrap",direction:"row",className:i.cellId,style:{width:this.columnsVisibility.id,paddingLeft:L}},E.default.createElement(Yf.default,{item:!0,container:!0,alignItems:"center",style:{color:ve,background:Me}},te,Z),E.default.createElement(Yf.default,{item:!0,title:V,className:i.cellIdSpan,style:{background:Me,color:V==="system"?Nme:V==="system.adapter"?Pme:ve}},o.data.name,nt),E.default.createElement("div",{style:{color:ve,background:Me},className:i.grow}),E.default.createElement(Yf.default,{item:!0,container:!0,alignItems:"center"},N),E.default.createElement("div",{style:{color:ve}},E.default.createElement(y3.default,{className:Ke.default.clsx(i.cellCopyButton,"copyButton"),onClick:function(Pe){return u.onCopy(Pe,V)}}))),this.columnsVisibility.name?E.default.createElement("div",{className:i.cellName,style:{width:this.columnsVisibility.name}},((R=o.data)===null||R===void 0?void 0:R.title)||""):null,this.state.statesView?E.default.createElement(E.default.Fragment,null,this.columnsVisibility.changedFrom?E.default.createElement("div",{className:i.cellRole,style:{width:this.columnsVisibility.changedFrom},title:le.join(` -`)},ye&&(I=this.states[V])!==null&&I!==void 0&&I.from?ke:null):null,this.columnsVisibility.qualityCode?E.default.createElement("div",{className:i.cellRole,style:{width:this.columnsVisibility.qualityCode},title:Ce||""},Ce):null,this.columnsVisibility.timestamp?E.default.createElement("div",{className:i.cellRole,style:{width:this.columnsVisibility.timestamp}},ye&&(U=this.states[V])!==null&&U!==void 0&&U.ts?Ke.default.formatDate(new Date(this.states[V].ts),this.props.dateFormat):null):null,this.columnsVisibility.lastChange?E.default.createElement("div",{className:i.cellRole,style:{width:this.columnsVisibility.lastChange}},ye&&(A=this.states[V])!==null&&A!==void 0&&A.lc?Ke.default.formatDate(new Date(this.states[V].lc),this.props.dateFormat):null):null):E.default.createElement(E.default.Fragment,null,this.columnsVisibility.type?E.default.createElement("div",{className:i.cellType,style:{width:this.columnsVisibility.type}},q," ",P&&P.type):null,this.columnsVisibility.role?E.default.createElement("div",{className:i.cellRole,style:{width:this.columnsVisibility.role,cursor:this.props.expertMode&&fe&&this.props.objectBrowserEditRole?"text":"default"},onClick:this.props.expertMode&&fe&&this.props.objectBrowserEditRole?function(){return u.setState({roleDialog:o.data.id})}:void 0},P&&P.common&&P.common.role):null,this.columnsVisibility.room?E.default.createElement("div",{className:"".concat(i.cellRoom," ").concat(o.data.per?i.cellEnumParent:""),style:{width:this.columnsVisibility.room,cursor:fe?"text":"default"},onClick:fe?function(){var de=T3(u.info,o.data.id,"roomEnums");u.setState({enumDialogEnums:de,enumDialog:{item:o,type:"room",enumsOriginal:JSON.parse(JSON.stringify(de))}})}:void 0},o.data.rooms):null,this.columnsVisibility.func?E.default.createElement("div",{className:"".concat(i.cellFunc," ").concat(o.data.pef?i.cellEnumParent:""),style:{width:this.columnsVisibility.func,cursor:fe?"text":"default"},onClick:fe?function(){var de=T3(u.info,o.data.id,"funcEnums");u.setState({enumDialogEnums:de,enumDialog:{item:o,type:"func",enumsOriginal:JSON.parse(JSON.stringify(de))}})}:void 0},o.data.funcs):null),this.adapterColumns.map(function(de){return E.default.createElement("div",{className:i.cellAdapter,style:{width:u.columnsVisibility[de.id]},key:de.id,title:de.adapter+" => "+de.pathText},u.renderCustomValue(P,de,o))}),this.columnsVisibility.val?E.default.createElement("div",{className:i.cellValue,style:{width:this.columnsVisibility.val,cursor:ge?o.data.button?"grab":"text":"default"},onClick:ge?function(){if(!o.data.obj||!u.states)return null;if(!u.props.expertMode&&o.data.button)return u.props.socket.setState(V,!0).catch(function(de){return window.alert('Cannot write state "'.concat(V,'": ').concat(de))});u.edit={val:u.states[V]?u.states[V].val:"",q:u.states[V]&&u.states[V].q||0,ack:!1,id:V},u.setState({updateOpened:!0})}:void 0},this.renderColumnValue(V,o,i)):null,this.columnsVisibility.buttons?E.default.createElement("div",{className:i.cellButtons,style:{width:this.columnsVisibility.buttons}},this.renderColumnButtons(V,o,i)):null)}},{key:"renderItem",value:function(o,a,i,s){var l=this,u=[];s=s||{count:0};var c=this.renderLeaf(o,a,i,s),d=this.props.DragWrapper;return this.props.dragEnabled&&(o.data.sumVisibility?c=E.default.createElement(d,{key:o.data.id,item:o,className:i.draggable},c):c=E.default.createElement("div",{key:o.data.id,className:i.nonDraggable},c)),o.data.id&&u.push(c),a=a===void 0?ep(this.state.expanded,o.data.id):a,(!o.data.id||a)&&(this.state.foldersFirst?(o.children&&u.push(o.children.map(function(m){return m.children&&(!l.state.columnsSelectorShow||s.count<15)&&m.data.sumVisibility?l.renderItem(m,void 0,i,s):null})),o.children&&u.push(o.children.map(function(m){return!m.children&&(!l.state.columnsSelectorShow||s.count<15)&&m.data.sumVisibility?l.renderItem(m,void 0,i,s):null}))):o.children&&u.push(o.children.map(function(m){return(!l.state.columnsSelectorShow||s.count<15)&&m.data.sumVisibility?l.renderItem(m,void 0,i,s):null}))),u}},{key:"calculateColumnsVisibility",value:function(o,a,i,s){var l=this;s=s||this.state.columnsWidths,i=i||this.state.columnsForAdmin,a=a||this.state.columns||[],o=typeof o!="boolean"?this.state.columnsAuto:o,s=JSON.parse(JSON.stringify(s)),Object.keys(s).forEach(function(y){s[y]&&(s[y]=parseInt(s[y],10)||0)}),this.adapterColumns=[];var u=Gr[this.props.width].widths;if(o)if(this.columnsVisibility={id:Gr[this.props.width].idWidth,name:this.visibleCols.includes("name")&&u.name||0,type:this.visibleCols.includes("type")&&u.type||0,role:this.visibleCols.includes("role")&&u.role||0,room:this.visibleCols.includes("room")&&u.room||0,func:this.visibleCols.includes("func")&&u.func||0,changedFrom:this.visibleCols.includes("changedFrom")&&u.changedFrom||0,qualityCode:this.visibleCols.includes("qualityCode")&&u.qualityCode||0,timestamp:this.visibleCols.includes("timestamp")&&u.timestamp||0,lastChange:this.visibleCols.includes("lastChange")&&u.lastChange||0,val:this.visibleCols.includes("val")&&u.val||0,buttons:this.visibleCols.includes("buttons")&&u.buttons||0},this.columnsVisibility.name){var c=this.columnsVisibility.id;this.state.statesView?(c+=this.columnsVisibility.changedFrom,c+=this.columnsVisibility.qualityCode,c+=this.columnsVisibility.timestamp,c+=this.columnsVisibility.lastChange):(c+=this.columnsVisibility.type,c+=this.columnsVisibility.role,c+=this.columnsVisibility.room,c+=this.columnsVisibility.func),c+=this.columnsVisibility.val,c+=this.columnsVisibility.buttons,this.columnsVisibility.name="calc(100% - ".concat(c+5,"px)"),this.columnsVisibility.nameHeader="calc(100% - ".concat(c+5+this.state.scrollBarWidth,"px)")}else{var d=0;this.state.statesView?(d+=this.columnsVisibility.changedFrom,d+=this.columnsVisibility.qualityCode,d+=this.columnsVisibility.timestamp,d+=this.columnsVisibility.lastChange):(d+=this.columnsVisibility.type,d+=this.columnsVisibility.role,d+=this.columnsVisibility.room,d+=this.columnsVisibility.func),d+=this.columnsVisibility.val,d+=this.columnsVisibility.buttons,this.columnsVisibility.id="calc(100% - ".concat(d+5,"px)")}else{this.columnsVisibility={id:s.id||Gr[this.props.width].idWidth,name:a.includes("name")&&(s.name||u.name||Gr[this.props.width].widths.name)||0,type:a.includes("type")&&(s.type||u.type||Gr[this.props.width].widths.type)||0,role:a.includes("role")&&(s.role||u.role||Gr[this.props.width].widths.role)||0,room:a.includes("room")&&(s.room||u.room||Gr[this.props.width].widths.room)||0,func:a.includes("func")&&(s.func||u.func||Gr[this.props.width].widths.func)||0};var m=this.columnsVisibility.id;if(this.columnsVisibility.name&&(m+=this.columnsVisibility.type,m+=this.columnsVisibility.role,m+=this.columnsVisibility.room,m+=this.columnsVisibility.func),i&&a&&Object.keys(i).sort().forEach(function(y){return i[y].forEach(function(h){var f="_"+y+"_"+h.path;if(l.columnsVisibility[f]=a.includes(f),a.includes(f)){var p={adapter:y,id:"_"+y+"_"+h.path,name:h.name,path:h.path.split("."),pathText:h.path};h.edit&&(p.edit=!0,h.type&&(p.type=h.type),h.objTypes&&(p.objTypes=h.objTypes)),l.adapterColumns.push(p),l.columnsVisibility[f]=s[p.id]||h.width||Gr[l.props.width].widths.func||Gr.xl.widths.func,m+=l.columnsVisibility[f]}else l.columnsVisibility[f]=0})}),this.adapterColumns.sort(function(y,h){return y.id>h.id?-1:y.id=500&&this.state.expandAllVisible&&setTimeout(function(){return o.setState({expandAllVisible:!1})}),this.lastAppliedFilter=a}if(this.unsubscribeTimer=setTimeout(function(){o.unsubscribeTimer=null,o.checkUnsubscribes()},200),this.state.loaded){var s=this.props.classes,l=this.renderItem(this.root,void 0,s);return E.default.createElement(Sme.default,{key:this.props.dialogName},E.default.createElement(xme.default,null,this.getToolbar()),E.default.createElement(Tme.default,null,this.renderHeader(),E.default.createElement("div",{className:this.props.classes.tableDiv,ref:this.tableRef},l)),this.renderToast(),this.renderColumnsEditCustomDialog(),this.renderColumnsSelectorDialog(),this.renderCustomDialog(),this.renderEditValueDialog(),this.renderEditObjectDialog(),this.renderEditRoleDialog(),this.renderEnumDialog(),this.renderErrorDialog(),this.renderExportDialog(),this.state.modalNewObj&&this.props.modalNewObject&&this.props.modalNewObject(this),this.state.modalEditOfAccess&&this.props.modalEditOfAccessControl&&this.props.modalEditOfAccessControl(this,this.state.modalEditOfAccessObjData))}else return E.default.createElement(Upe.default,{key:this.props.dialogName+"_c"})}}],[{key:"getDerivedStateFromProps",value:function(o,a){var i={},s=!1;return o.expertMode!==void 0&&o.expertMode!==a.filter.expertMode&&(s=!0,i.filter=Object.assign({},a.filter),i.filter.expertMode=o.expertMode),s?i:null}}]),r}(E.Component);ok.defaultProps={objectAddBoolean:!1,objectEditBoolean:!1,objectStatesView:!1,objectImportExport:!1,objectEditOfAccessControl:!1,modalNewObject:function(){},modalEditOfAccessControl:function(){}};ok.propTypes={dialogName:Ae.default.string,classes:Ae.default.object,defaultFilters:Ae.default.object,selected:Ae.default.oneOfType([Ae.default.string,Ae.default.array]),onSelect:Ae.default.func,onFilterChanged:Ae.default.func,socket:Ae.default.object,showExpertButton:Ae.default.bool,expertMode:Ae.default.bool,imagePrefix:Ae.default.string,themeName:Ae.default.string,themeType:Ae.default.string,theme:Ae.default.object,t:Ae.default.func,lang:Ae.default.string.isRequired,multiSelect:Ae.default.bool,notEditable:Ae.default.bool,foldersFirst:Ae.default.bool,disableColumnSelector:Ae.default.bool,isFloatComma:Ae.default.bool,dateFormat:Ae.default.string,levelPadding:Ae.default.number,objectCustomDialog:Ae.default.oneOfType([Ae.default.object,Ae.default.func]),objectAddBoolean:Ae.default.bool,objectEditBoolean:Ae.default.bool,objectStatesView:Ae.default.bool,objectImportExport:Ae.default.bool,objectEditOfAccessControl:Ae.default.bool,modalNewObject:Ae.default.func,modalEditOfAccessControl:Ae.default.func,onObjectDelete:Ae.default.func,customFilter:Ae.default.object,objectBrowserValue:Ae.default.object,objectBrowserEditObject:Ae.default.object,objectBrowserEditRole:Ae.default.object,router:Ae.default.oneOfType([Ae.default.object,Ae.default.func]),types:Ae.default.array,columns:Ae.default.array,objectsWorker:Ae.default.object,filterFunc:Ae.default.func,dragSettings:Ae.default.object,DragWrapper:Ae.default.func,dragEnabled:Ae.default.bool,useDrag:Ae.default.func};var Mme=(0,$pe.default)()((0,C3.default)(Dme)(ok)),Ime=Mme;Cy.default=Ime});var V3=w(Oy=>{"use strict";var Ut=O();Object.defineProperty(Oy,"__esModule",{value:!0});Oy.default=void 0;var zme=Ut(yn()),Ame=Ut(An()),Fme=Ut(bn()),Lme=Ut(_s()),Wme=Ut(bs()),F3=Ut(ws()),Kr=Ut(j()),yt=Ut(ne()),Bme=Ut(ze()),L3=Ut(sf()),Vme=Ut(ng()),$me=Ut(tg()),Ume=Ut(eg()),Hme=Ut(Xv()),Gme=Ut(d5()),Kme=Ut(Gx()),W3=Ut($u()),_i=Ut(Kv()),Jme=Ut(A3());function Yme(t){var e=Qme();return function(){var n=(0,F3.default)(t),o;if(e){var a=(0,F3.default)(this).constructor;o=Reflect.construct(n,arguments,a)}else o=n.apply(this,arguments);return(0,Wme.default)(this,o)}}function Qme(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}var Zme=function(e){return{headerID:{fontWeight:"bold",fontStyle:"italic"},dialog:{height:"95%"},dialogMobile:{padding:4,width:"100%",maxWidth:"100%",maxHeight:"calc(100% - 16px)",height:"100%"},content:{height:"100%",overflow:"hidden"},contentMobile:{padding:"8px 4px"},titleRoot:{whiteSpace:"nowrap",width:"calc(100% - 72px)",overflow:"hidden",display:"inline-block",textOverflow:"ellipsis"}}},B3=function(t){(0,Lme.default)(r,t);var e=Yme(r);function r(n){var o;(0,Ame.default)(this,r),o=e.call(this,n),o.dialogName=o.props.dialogName||"default",o.dialogName="SelectID."+o.dialogName,o.filters=window.localStorage.getItem(o.dialogName)||"{}";try{o.filters=JSON.parse(o.filters)}catch(i){o.filters={}}var a=o.props.selected||[];return(0,zme.default)(a)!=="object"&&(a=[a]),a=a.filter(function(i){return i}),o.state={selected:a,name:"",isMobile:window.innerWidth<800},o}return(0,Fme.default)(r,[{key:"handleCancel",value:function(){this.props.onClose()}},{key:"handleOk",value:function(){this.props.onOk(this.props.multiSelect?this.state.selected:this.state.selected[0]||"",this.state.name),this.props.onClose()}},{key:"render",value:function(){var o=this,a;return this.state.name||this.state.selected.length?this.state.selected.length===1?a=[Kr.default.createElement("span",{key:"selected"},_i.default.t("ra_Selected")," "),Kr.default.createElement("span",{key:"id",className:this.props.classes.headerID},(this.state.name||this.state.selected)+(this.state.name?" ["+this.state.selected+"]":""))]:a=[Kr.default.createElement("span",{key:"selected"},_i.default.t("ra_Selected")," "),Kr.default.createElement("span",{key:"id",className:this.props.classes.headerID},_i.default.t("%s items",this.state.selected.length))]:a=this.props.title||_i.default.t("ra_Please select object ID..."),Kr.default.createElement(Hme.default,{onClose:function(){},maxWidth:!1,classes:{paper:W3.default.clsx(this.props.classes.dialog,this.props.classes.dialogMobile)},fullWidth:!0,open:!0,"aria-labelledby":"selectid-dialog-title"},Kr.default.createElement(Vme.default,{id:"selectid-dialog-title",classes:{root:this.props.classes.titleRoot}},a),Kr.default.createElement($me.default,{className:W3.default.clsx(this.props.classes.content,this.props.classes.contentMobile)},Kr.default.createElement(Jme.default,{foldersFirst:this.props.foldersFirst,imagePrefix:this.props.imagePrefix||this.props.prefix,defaultFilters:this.filters,dialogName:this.dialogName,showExpertButton:this.props.showExpertButton!==void 0?this.props.showExpertButton:!0,style:{width:"100%",height:"100%"},columns:this.props.columns||["name","type","role","room","func","val"],types:this.props.types||["state"],t:_i.default.t,lang:this.props.lang||_i.default.getLanguage(),socket:this.props.socket,selected:this.state.selected,multiSelect:this.props.multiSelect,notEditable:this.props.notEditable===void 0?!0:this.props.notEditable,name:this.state.name,themeName:this.props.themeName,themeType:this.props.themeType,customFilter:this.props.customFilter,onFilterChanged:function(s){o.filters=s,window.localStorage.setItem(o.dialogName,JSON.stringify(s))},onSelect:function(s,l,u){JSON.stringify(s)!==JSON.stringify(o.state.selected)?o.setState({selected:s,name:l},function(){return u&&o.handleOk()}):u&&o.handleOk()},filterFunc:this.props.filterFunc})),Kr.default.createElement(Ume.default,null,Kr.default.createElement(L3.default,{variant:"contained",onClick:function(){return o.handleOk()},startIcon:Kr.default.createElement(Kme.default,null),disabled:!this.state.selected.length,color:"primary"},this.props.ok||_i.default.t("ra_Ok")),Kr.default.createElement(L3.default,{variant:"contained",onClick:function(){return o.handleCancel()},startIcon:Kr.default.createElement(Gme.default,null)},this.props.cancel||_i.default.t("ra_Cancel"))))}}]),r}(Kr.default.Component);B3.propTypes={dialogName:yt.default.string,classes:yt.default.object,onClose:yt.default.func,notEditable:yt.default.bool,onOk:yt.default.func.isRequired,title:yt.default.string,lang:yt.default.string,foldersFirst:yt.default.bool,isFloatComma:yt.default.bool,dateFormat:yt.default.string,selected:yt.default.oneOfType([yt.default.string,yt.default.array]),customFilter:yt.default.object,statesOnly:yt.default.bool,socket:yt.default.object.isRequired,cancel:yt.default.string,imagePrefix:yt.default.string,ok:yt.default.string,themeName:yt.default.string,themeType:yt.default.string,showExpertButton:yt.default.bool,multiSelect:yt.default.bool,types:yt.default.array,columns:yt.default.array,filterFunc:yt.default.func};var Xme=(0,Bme.default)(Zme)(B3),ehe=Xme;Oy.default=ehe});var lk=w(qy=>{"use strict";Object.defineProperty(qy,"__esModule",{value:!0});qy.padStart=void 0;function rhe(t,e,r=" "){if(t!=null&&t.length>=e)return t;if(r==null||r.length<1)throw new Error("fill must be at least one char");let n=e-t.length,o=Math.ceil(n/r.length);return r.repeat(o).substr(0,n)+t}qy.padStart=rhe});var t6=w(My=>{"use strict";var ihe=O(),she=X();Object.defineProperty(My,"__esModule",{value:!0});My.default=void 0;var lhe=she(j()),uhe=ihe(ot()),che=(0,uhe.default)(lhe.createElement("path",{d:"M17 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V7l-4-4zm-5 16c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3zm3-10H5V5h10v4z"}),"Save");My.default=che});var mk=w(lc=>{"use strict";Object.defineProperty(lc,"__esModule",{value:!0});lc.isArray=lc.isObject=void 0;function whe(t){return Object.prototype.toString.call(t)==="[object Object]"}lc.isObject=whe;function She(t){return Array.isArray!=null?Array.isArray(t):Object.prototype.toString.call(t)==="[object Array]"}lc.isArray=She});var f6=w(rp=>{"use strict";np();var Ehe=j(),c6=60103;rp.Fragment=60107;typeof Symbol=="function"&&Symbol.for&&(hk=Symbol.for,c6=hk("react.element"),rp.Fragment=hk("react.fragment"));var hk,khe=Ehe.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,Che=Object.prototype.hasOwnProperty,Ohe={key:!0,ref:!0,__self:!0,__source:!0};function d6(t,e,r){var n,o={},a=null,i=null;r!==void 0&&(a=""+r),e.key!==void 0&&(a=""+e.key),e.ref!==void 0&&(i=e.ref);for(n in e)Che.call(e,n)&&!Ohe.hasOwnProperty(n)&&(o[n]=e[n]);if(t&&t.defaultProps)for(n in e=t.defaultProps,e)o[n]===void 0&&(o[n]=e[n]);return{$$typeof:c6,type:t,key:a,ref:i,props:o,_owner:khe.current}}rp.jsx=d6;rp.jsxs=d6});var Rhe=w((BDe,p6)=>{"use strict";p6.exports=f6()});var jhe=w((sqe,qhe)=>{qhe.exports={"- select endpoint -":"- select endpoint -","- select group -":"- select group -","- select node -":"- select node -","(recommended)":"(recommended)","(use only when necessary)":"(use only when necessary)","abort firmware update":"abort firmware update","adapter not ready":"The adapter is not running or not ready yet!","Added SmartStart device":"Added SmartStart device",alive:"alive","Already included":"Already included","Already provisioned":"Already provisioned",asleep:"asleep",Associations:"Associations","At least one must be granted or the key exchange will be canceled.":"At least one must be granted or the key exchange will be canceled.","At least one network key is not yet configured. This can cause problems during secure inclusion.":"At least one network key is not yet configured. This can cause problems during secure inclusion.","Auto-scroll to bottom":"Auto-scroll to bottom",awake:"awake","But read this first!":"But read this first!",Cancel:"Cancel","Cancel healing":"Cancel healing","clear cache procedure":"The adapter will restart and re-interview all nodes. This may take a long time and some nodes may not work as expected in the meantime.","Click here to select image with QR code":"Click here to select image with QR code",Close:"Close",collisions:"collisions","Communicating with the device, please be patient...":"Communicating with the device, please be patient...","config update disclaimer":"WARNING: This is experimental functionality. Make sure you have an ioBroker backup before updating the configuration DB.","Configuration DB is up to date":"Configuration DB is up to date","Configure the region and radio frequencies of the controller.":"Configure the region and radio frequencies of the controller.","Controller node":"Controller node",corrupt:"corrupt",dead:"dead","Default (secure)":"Default (secure)","Define here which SmartStart capable nodes should be part of the network by entering their DSK and granting security classes.":"Define here which SmartStart capable nodes should be part of the network by entering their DSK and granting security classes.","Delete association":"Delete association","Delete group":"Delete group",Devices:"Devices","Disable restarting the controller on startup":"Disable restarting the controller on startup","Do you really want to remove this node from the network?":"Do you really want to remove this node from the network?","Do you really want to remove this node from the provisioning list?":"Do you really want to remove this node from the provisioning list?","Do you really want to replace this node?":"Do you really want to replace this node?",done:"done","Done!":"Done!","Door locks, garage doors":"Door locks, garage doors","Download logs":"Download logs",dropped:"dropped",DSK:"DSK",Enabled:"Enabled",Endpoint:"Endpoint","Enter group name":"Enter group name",Error:"Error","Example:":"Example:","Exclude device":"Exclude device","Exclusion active":"Exclusion active","Factory reset":"Factory reset","factory reset procedure":"Wipes all configuration of the controller. All connected nodes will be orphaned and have to be reset and included into the new network before they can be used again.","Factory reset?":"Factory reset?",failed:"failed","Failed to scan QR code":"Failed to scan QR code","fast and secure":"fast and secure","firmware update failed":"The firmware update failed!","firmware update no wait time":"The device will now be re-interviewed.","firmware update successful":"The firmware update was successful!","firmware update wait time":"The device will be re-interviewed in {0} seconds.","firmware update wake up":"You might have to wake up the device again.","firmware update warning":"WARNING: Use at your own risk! We don't take any responsibility if your devices don't work after an update.","For devices without a DSK. Authentication of the inclusion happens on the device instead of in ioBroker.":"For devices without a DSK. Authentication of the inclusion happens on the device instead of in ioBroker.","Forget all information about all nodes and re-interview them. Battery-powered nodes might need to be woken up manually.":"Forget all information about all nodes and re-interview them. Battery-powered nodes might need to be woken up manually.","Forget all information about this node and re-interview it. Battery-powered nodes might need to be woken up manually.":"Forget all information about this node and re-interview it. Battery-powered nodes might need to be woken up manually.","Generate key":"Generate key",Group:"Group","Group name":"Group name",Groups:"Groups","Heal network":"Heal network","Heal network finished":"Heal network finished","Healing network":"Healing network...","Healing the network was successful!":"Healing the network was successful!","hosted port tip":"You can also connect to a hosted serialport using the form 'tcp://hostname:port'.","Include device":"Include device","Inclusion active":"Inclusion active","Installed version":"Installed version","Invalid network key":"Invalid network key: Must be 16 bytes (32 hexadecimal characters [0-9, a-f])","It will be included automatically when it announces itself.":"It will be included automatically when it announces itself.","Legacy door locks without S2 support":"Legacy door locks without S2 support","Legacy switch compatibility":"Improve compatibility with legacy switches","Lighting, sensors, security systems":"Lighting, sensors, security systems","Like S2 Authenticated, but without verification that the correct device is included":"Like S2 Authenticated, but without verification that the correct device is included",Name:"Name","network key confirm":"This will overwrite the existing key and the adapter won't be able to communicate with already-included secure devices. Do you want to continue?","network key tooltip":"16 bytes in hexadecimal form (32 characters 0-9, a-f). Without spaces, without commas, without leading '0x'.","Network keys for secure communication":"Network keys for secure communication","Network map":"Network map",no:"no","No devices present":"No devices present","No encryption":"No encryption","no file selected":"no file selected","no multicast explanation":"Sleeping nodes and nodes included with Security S0 cannot be used in multicast groups.",Node:"Node","Node %s was added successfully!":"Node %s was added successfully!","Node %s was removed from the network!":"Node %s was removed from the network!","Node is not ready":"Node is not ready","Node successfully added to provisioning list":"Node successfully added to provisioning list",Nodes:"Nodes","Non-secure":"Non-secure","none selected":"none selected","not requested":"not requested","Note: Applying a different region might take a few seconds.":"Note: Applying a different region might take a few seconds.",OK:"OK","Only use S0, even if S2 is available. Allows including devices that require security but don't behave correctly during S2 inclusion.":"Only use S0, even if S2 is available. Allows including devices that require security but don't behave correctly during S2 inclusion.","Open log in new window":"Open log in new window","opening camera...":"opening camera...","Or drag an image file here":"Or drag an image file here","Pause auto-scrolling":"Pause auto-scrolling","Pause logging":"Pause logging",pending:"pending","Please choose an inclusion strategy":"Please choose an inclusion strategy","Please choose which of the following security classes to grant to the new node.":"Please choose which of the following security classes to grant to the new node.","Please enter the 5-digit PIN for your device and verify that the rest of the device-specific key (DSK) matches the one on your device or the manual.":"Please enter the 5-digit PIN for your device and verify that the rest of the device-specific key (DSK) matches the one on your device or the manual.","Prefer S0 over no encryption":"Prefer S0 over no encryption","Preserve state names":"Don't overwrite state names","Provision node":"Provision node","Put your device into exclusion mode":"Put your device into exclusion mode","Put your device into inclusion mode":"Put your device into inclusion mode","Re-interview all":"Re-interview all","Re-interview all?":"Re-interview all?",received:"received","Refresh node info":"Refresh node info","Remove failed node":"Remove failed node","Remove node?":"Remove node?","Remove this node from the network.":"Remove this node from the network.","Removing or disabling an entry does not automatically exclude the node.":"Removing or disabling an entry does not automatically exclude the node.","Replace device":"Replace device","Replace failed node":"Replace failed node","Replace node?":"Replace node?","Replace this node with a different one, keeping the node ID.":"Replace this node with a different one, keeping the node ID.","Requires user interaction during the inclusion.":"Requires user interaction during the inclusion.","Restart the controller, e.g. when it hangs":"Restart the controller, e.g. when it hangs","Root device":"Root device","Root endpoint":"Root endpoint","Save association":"Save association","Save group":"Save group","Scan QR Code":"Scan QR Code",Secure:"Secure","secure, but slow due to a lot of overhead":"secure, but slow due to a lot of overhead",Security:"Security","Security class: %s":"Security class: %s","Security classes":"Security classes","Security S0":"Security S0","Security S2 when supported, Security S0 as a fallback, no encryption otherwise.":"Security S2 when supported, Security S0 as a fallback, no encryption otherwise.","Security S2 when supported, Security S0 only when necessary, no encryption otherwise.":"Security S2 when supported, Security S0 only when necessary, no encryption otherwise.","Select at least 2 nodes":"Select at least 2 nodes","Select QR code source":"Select QR code source","Select serial port":"Select serial port","Select the correct region for where you are. Using a different region may be illegal.":"Select the correct region for where you are. Using a different region may be illegal.",sent:"sent","Set RF Region":"Set RF Region",Settings:"Settings",SmartStart:"SmartStart","Soft reset":"Soft reset","Source endpoint":"Source endpoint","start firmware update":"start firmware update","Start logging":"Start logging",Statistics:"Statistics",Status:"Status","Subscribed to logs...":"Subscribed to logs...","Successfully added SmartStart device to provisioning list.":"Successfully added SmartStart device to provisioning list.","switch compat tooltip":"Overwrites the 'targetValue' state of binary and multilevel switches with 'currentValue' to keep them in sync","Target endpoint":"Target endpoint","Target node":"Target node","The association could not be deleted!":"The association could not be deleted!","The association could not be saved!":"The association could not be saved!","The controller does not support SmartStart!":"The controller does not support SmartStart!","The device is already included as Node %s":"The device is already included as Node %s","The device is now being interviewed. It might take a while to show up.":"The device is now being interviewed. It might take a while to show up.","The group could not be deleted!":"The group could not be deleted!","The group could not be saved!":"The group could not be saved!","This is not a failed node":"This is not a failed node","This is not a SmartStart QR code. Use the devices tab to include this node.":"This is not a SmartStart QR code. Use the devices tab to include this node.","This is not a valid Z-Wave QR code":"This is not a valid Z-Wave QR code","This node is already on the SmartStart provisioning list":"This node is already on the SmartStart provisioning list","This should only be set for debugging purposes.":"This should only be set for debugging purposes.",timeouts:"timeouts",Type:"Type","Undo changes":"Undo changes",unknown:"unknown",Unprovision:"Unprovision","Unprovision node?":"Unprovision node?","Unsubscribed logs...":"Unsubscribed logs...","Update configuration DB":"Update configuration DB","Update Firmware":"Update Firmware","Update for configuration DB available":"Update for configuration DB available","Updating configuration DB - please wait...":"Updating configuration DB - please wait...","Updating the configuration DB failed!":"Updating the configuration DB failed!","wake up device":"Please wake up the device!","WARNING: Make sure that the node is reset before attempting this.":"WARNING: Make sure that the node is reset before attempting this.","WARNING: Only do this if you no longer have physical access.":"WARNING: Only do this if you no longer have physical access.","When a node announces itself, it will automatically be included within 10 minutes.":"When a node announces itself, it will automatically be included within 10 minutes.","Wipes all configuration of the controller. All connected nodes will be orphaned and have to be reset and included into the new network before they can be used again.":"Wipes all configuration of the controller. All connected nodes will be orphaned and have to be reset and included into the new network before they can be used again.","Write a detailed logfile":"Write a detailed logfile",yes:"yes","You can try this if the adapter does not start after updating to 2.3 or higher.":"You can try this if the adapter does not start after updating to 2.3 or higher.","Z-Wave Logs":"Z-Wave Logs","Z-Wave supports the following security mechanisms:":"Z-Wave supports the following security mechanisms:"}});var Ihe=w((lqe,Mhe)=>{Mhe.exports={"- select endpoint -":"- Endpunkt ausw\xE4hlen -","- select group -":"- Gruppe ausw\xE4hlen -","- select node -":"- Ger\xE4t ausw\xE4hlen -","(recommended)":"(empfohlen)","(use only when necessary)":"(nur wenn n\xF6tig verwenden)","abort firmware update":"Firmware-Update abbrechen","adapter not ready":"Der Adapter l\xE4uft nicht oder ist noch nicht bereit!","Added SmartStart device":"SmartStart-Ger\xE4t hinzugef\xFCgt",alive:"erreichbar","Already included":"Bereits eingebunden","Already provisioned":"Bereits provisioniert",asleep:"schl\xE4ft",Associations:"Verkn\xFCpfungen","At least one must be granted or the key exchange will be canceled.":"Mindestens einer muss gew\xE4hrt werden, sonst wird der Schl\xFCsselaustausch abgebrochen.","At least one network key is not yet configured. This can cause problems during secure inclusion.":"Mindestens ein Netzwerkschl\xFCssel ist noch nicht konfiguriert. Dies kann zu Problemen bei der sicheren Inklusion f\xFChren.","Auto-scroll to bottom":"Automatisch scrollen",awake:"wach","But read this first!":"Zuerst hier lesen!",Cancel:"Abbrechen","Cancel healing":"Heilung abbrechen","clear cache procedure":"Der Adapter startet neu und interviewt alle Knoten erneut. Dies kann sehr lange dauern und einige Knoten funktionieren in der Zwischenzeit nicht wie erwartet.","Click here to select image with QR code":"Hier klicken, um eine Bilddatei mit QR-Code auszuw\xE4hlen",Close:"Schlie\xDFen",collisions:"Kollisionen","Communicating with the device, please be patient...":"Kommuniziere mit dem Ger\xE4t, bitte etwas Geduld...","config update disclaimer":"WARNUNG: Dies ist ein experimentelles Feature. Bitte vor der Nutzung ein ioBroker-Backup erstellen!","Configuration DB is up to date":"Konfigurations-DB ist aktuell","Configure the region and radio frequencies of the controller.":"Region und Funkfrequenzen des Controllers konfigurieren.","Controller node":"Controller",corrupt:"korrupt",dead:"tot","Default (secure)":"Standard (sicher)","Define here which SmartStart capable nodes should be part of the network by entering their DSK and granting security classes.":"Hier kann definiert werden, welche SmartStart-f\xE4higen Ger\xE4te Teil des Netzwerks sein sollen. Dazu deren DSK eingeben und Verschl\xFCsselungsklassen zuweisen.","Delete association":"Verkn\xFCpfung l\xF6schen","Delete group":"Gruppe l\xF6schen",Devices:"Ger\xE4te","Disable restarting the controller on startup":"Beim Adapterstart den Controller nicht neustarten","Do you really want to remove this node from the network?":"M\xF6chten Sie dieses Ger\xE4t wirklich aus dem Netz entfernen?","Do you really want to remove this node from the provisioning list?":"M\xF6chten Sie dieses Ger\xE4t wirklich von der Provisionierungs-Liste entfernen?","Do you really want to replace this node?":"M\xF6chten Sie dieses Ger\xE4t wirklich ersetzen?",done:"fertig","Done!":"Fertig!","Door locks, garage doors":"T\xFCrschl\xF6sser, Garagentore","Download logs":"Logs herunterladen",dropped:"verworfen",DSK:"DSK",Enabled:"Aktiv",Endpoint:"Endpunkt","Enter group name":"Gruppennamen eingeben",Error:"Fehler","Example:":"Beispiel:","Exclude device":"Ger\xE4t entfernen","Exclusion active":"Entfernen l\xE4uft","Factory reset":"Auf Werkseinstellungen zur\xFCcksetzen","factory reset procedure":"L\xF6scht die gesamte Konfiguration des Controllers. Alle verbundenen Ger\xE4te werden verwaist und m\xFCssen zur\xFCckgesetzt und in das neue Netzwerk aufgenommen werden, bevor sie wieder verwendet werden k\xF6nnen.","Factory reset?":"Auf Werkseinstellungen zur\xFCcksetzen?",failed:"fehlgeschlagen","Failed to scan QR code":"QR-Code konnte nicht gescannt werden","fast and secure":"performant und sicher","firmware update failed":"Das Firmwareupdate ist fehlgeschlagen!","firmware update no wait time":"Das Ger\xE4t wird jetzt neu interviewt.","firmware update successful":"Das Firmwareupdate war erfolgreich!","firmware update wait time":"Das Ger\xE4t wird in {0} Sekunden neu interviewt.","firmware update wake up":"Eventuell m\xFCssen Sie es erneut aufwecken.","firmware update warning":"WARNUNG: Benutzung auf eigene Gefahr! Wir \xFCbernehmen keine Verantwortung, wenn Ihre Ger\xE4te nach einem Update nicht funktionieren.","For devices without a DSK. Authentication of the inclusion happens on the device instead of in ioBroker.":"F\xFCr Ger\xE4te ohne DSK. Die Authentifizierung der Inklusion erfolgt auf dem Ger\xE4t und nicht in ioBroker.","Forget all information about all nodes and re-interview them. Battery-powered nodes might need to be woken up manually.":"Alle Informationen \xFCber alle Ger\xE4te vergessen und sie erneut interviewen. Batteriebetriebene Ger\xE4te m\xFCssen m\xF6glicherweise manuell aufgeweckt werden.","Forget all information about this node and re-interview it. Battery-powered nodes might need to be woken up manually.":"Alle Informationen \xFCber dieses Ger\xE4t vergessen und es erneut interviewen. Batteriebetriebene Ger\xE4te m\xFCssen m\xF6glicherweise manuell aufgeweckt werden.","Generate key":"Neu generieren",Group:"Gruppe","Group name":"Gruppenname",Groups:"Gruppen","Heal network":"Netzwerk heilen","Heal network finished":"Netzwerkheilung fertig","Healing network":"Netwerkheilung...","Healing the network was successful!":"Heilung des Netzwerks war erfolgreich!","hosted port tip":"Um einen gehosteten seriellen Port zu nutzen, einfach mittels 'tcp://hostname:port' verbinden.","Include device":"Ger\xE4t einbinden","Inclusion active":"Inklusion aktiv","Installed version":"Installierte Version","Invalid network key":"Ung\xFCltiger Netzwerkschl\xFCssel: Muss 16 Byte lang sein (32 hexadezimale Zeichen [0-9, a-f])","It will be included automatically when it announces itself.":"Es wird automatisch eingebunden, wenn es sich meldet.","Legacy door locks without S2 support":"\xC4ltere T\xFCrschl\xF6sser ohne S2-Unterst\xFCtzung","Legacy switch compatibility":"Kompatibilit\xE4t mit \xE4lteren Schaltern verbessern","Lighting, sensors, security systems":"Beleuchtung, Sensoren, Sicherheitssysteme","Like S2 Authenticated, but without verification that the correct device is included":"Wie S2 Authenticated, aber ohne \xDCberpr\xFCfung, ob das richtige Ger\xE4t eingebunden wird",Name:"Name","network key confirm":"Der vorhandene Schl\xFCssel wird \xFCberschrieben, weshalb der Adapter nicht mehr mit bereits eingebundenen sicheren Ger\xE4ten kommunizieren kann. M\xF6chten Sie fortfahren?","network key tooltip":"16 bytes in hexadezimaler Form (32 Zeichen 0-9, a-f). Ohne Leerzeichen, ohne Komma, ohne f\xFChrende '0x'.","Network keys for secure communication":"Netzwerkschl\xFCssel f\xFCr sichere Kommunikation","Network map":"Netzwerkkarte",no:"nein","No devices present":"Keine Ger\xE4te vorhanden","No encryption":"Ohne Verschl\xFCsselung","no file selected":"keine Datei ausgew\xE4hlt","no multicast explanation":"Schlafende Knoten und Knoten, die in Security S0 enthalten sind, k\xF6nnen nicht in Multicast-Gruppen verwendet werden.",Node:"Ger\xE4t","Node %s was added successfully!":"Node %s wurde erfolgreich hinzugef\xFCgt!","Node %s was removed from the network!":"Node %s wurde aus dem Netzwerk entfernt!","Node is not ready":"Ger\xE4t ist nicht bereit","Node successfully added to provisioning list":"Ger\xE4t erfolgreich zur Provisionierungs-Liste hinzugef\xFCgt",Nodes:"Ger\xE4te","Non-secure":"unverschl\xFCsselt","none selected":"nichts ausgew\xE4hlt","not requested":"nicht angefordert","Note: Applying a different region might take a few seconds.":"Hinweis: Das Wechseln zu einer anderen Region kann einige Sekunden dauern.",OK:"OK","Only use S0, even if S2 is available. Allows including devices that require security but don't behave correctly during S2 inclusion.":"Nur S0 verwenden, auch wenn S2 verf\xFCgbar ist. Erm\xF6glicht das Einbinden von Ger\xE4ten, die Verschl\xFCsselung erfordern, sich aber beim Einbinden mit S2 nicht korrekt verhalten.","Open log in new window":"Log in neuem Fenster \xF6ffnen","opening camera...":"\xF6ffne Kamera","Or drag an image file here":"Oder eine Bilddatei hierher ziehen","Pause auto-scrolling":"Automatisches Scrollen pausieren","Pause logging":"Log pausieren",pending:"warte...","Please choose an inclusion strategy":"Bitte eine Inklusions-Strategie ausw\xE4hlen","Please choose which of the following security classes to grant to the new node.":"Bitte ausw\xE4hlen, welche der folgenden Schl\xFCssel dem neuen Ger\xE4t gew\xE4hrt werden sollen.","Please enter the 5-digit PIN for your device and verify that the rest of the device-specific key (DSK) matches the one on your device or the manual.":"Bitte die 5-stellige PIN f\xFCr Ihr Ger\xE4t eingeben und vergewissern, dass der Rest des ger\xE4tespezifischen Schl\xFCssels (DSK) mit dem auf Ihrem Ger\xE4t oder im Handbuch \xFCbereinstimmt.","Prefer S0 over no encryption":"S0 gegen\xFCber keiner Verschl\xFCsselung bevorzugen","Preserve state names":"Datenpunkt-Namen nicht \xFCberschreiben","Provision node":"Ger\xE4t provisionieren","Put your device into exclusion mode":"Bitte das Ger\xE4t in den Exklusionsmodus versetzen","Put your device into inclusion mode":"Bitte das Ger\xE4t in den Inklusionsmodus versetzen","Re-interview all":"Alle neu interviewen","Re-interview all?":"Alle neu interviewen?",received:"empfangen","Refresh node info":"Erneut interviewen","Remove failed node":"Ausgefallenes Ger\xE4t entfernen","Remove node?":"Ger\xE4t entfernen?","Remove this node from the network.":"Dieses Ger\xE4t aus dem Netzwerk entfernen.","Removing or disabling an entry does not automatically exclude the node.":"Das Entfernen oder Deaktivieren eines Eintrags entfernt das Ger\xE4t nicht automatisch aus dem Netzwerk.","Replace device":"Ger\xE4t ersetzen","Replace failed node":"Ausgefallenes Ger\xE4t ersetzen","Replace node?":"Ger\xE4t ersetzen?","Replace this node with a different one, keeping the node ID.":"Dieses Ger\xE4t durch ein anderes ersetzen und dabei die Node ID beibehalten.","Requires user interaction during the inclusion.":"Erfordert Benutzerinteraktion bei der Inklusion.","Restart the controller, e.g. when it hangs":"Startet den Controller neu, z.B. wenn er h\xE4ngt.","Root device":"Root-Ger\xE4t","Root endpoint":"Root-Endpunkt","Save association":"Verkn\xFCpfung speichern","Save group":"Gruppe speichern","Scan QR Code":"QR-Code scannen",Secure:"mit Verschl\xFCsselung","secure, but slow due to a lot of overhead":"sicher, aber langsam wegen hohen Overheads",Security:"Verschl\xFCsselung","Security class: %s":"Verschl\xFCsselungsklasse: %s","Security classes":"Verschl\xFCsselungsklassen","Security S0":"Security S0","Security S2 when supported, Security S0 as a fallback, no encryption otherwise.":"Security S2, wenn unterst\xFCtzt, Security S0 als Fallback, sonst keine Verschl\xFCsselung.","Security S2 when supported, Security S0 only when necessary, no encryption otherwise.":"Security S2, wenn unterst\xFCtzt, Security S0 nur wenn n\xF6tig, sonst keine Verschl\xFCsselung.","Select at least 2 nodes":"mind. 2 Ger\xE4te ausw\xE4hlen","Select QR code source":"QR-Code-Quelle ausw\xE4hlen","Select serial port":"Serielle Schnittstelle ausw\xE4hlen","Select the correct region for where you are. Using a different region may be illegal.":"Bitte die richtige Region f\xFCr Ihren Aufenthaltsort ausw\xE4hlen. Die Verwendung einer anderen Region kann illegal sein.",sent:"gesendet","Set RF Region":"Region \xE4ndern",Settings:"Einstellungen",SmartStart:"SmartStart","Soft reset":"Neustarten","Source endpoint":"Quell-Endpunkt","start firmware update":"Firmware-Update starten","Start logging":"Log starten",Statistics:"Statistiken",Status:"Status","Subscribed to logs...":"Logs abonniert...","Successfully added SmartStart device to provisioning list.":"SmartStart-Ger\xE4t erfolgreich zur Provisionierungs-Liste hinzugef\xFCgt.","switch compat tooltip":"\xDCberschreibt den Status 'targetValue' von Binary und Multilevel Switches mit 'currentValue', um die Werte synchron zu halten","Target endpoint":"Ziel-Endpunkt","Target node":"Zielger\xE4t","The association could not be deleted!":"Verkn\xFCpfung konnte nicht gel\xF6scht werden!","The association could not be saved!":"Verkn\xFCpfung konnte nicht erstellt werden!","The controller does not support SmartStart!":"Der Controller unterst\xFCtzt kein SmartStart!","The device is already included as Node %s":"Das Ger\xE4t ist bereits als Node %s eingebunden","The device is now being interviewed. It might take a while to show up.":"Das Ger\xE4t wird jetzt interviewt. Es kann eine Weile dauern, bis es auftaucht.","The group could not be deleted!":"Die Gruppe konnte nicht gel\xF6scht werden!","The group could not be saved!":"Die Gruppe konnte nicht gespeichert werden!","This is not a failed node":"Dies ist kein ausgefallenes Ger\xE4t","This is not a SmartStart QR code. Use the devices tab to include this node.":"Das ist kein SmartStart-QR-Code. Nutzen Sie die Registerkarte Ger\xE4te zum Einbinden.","This is not a valid Z-Wave QR code":"Das ist kein g\xFCltiger Z-Wave QR-Code","This node is already on the SmartStart provisioning list":"Dieses Ger\xE4t ist bereits auf der SmartStart-Provisionierungsliste","This should only be set for debugging purposes.":"Dies sollte nur zu Debugging-Zwecken aktiviert werden.",timeouts:"Timeouts",Type:"Typ","Undo changes":"\xC4nderungen r\xFCckg\xE4ngig machen",unknown:"unbekannt",Unprovision:"Entprovisionieren","Unprovision node?":"Ger\xE4t entprovisionieren?","Unsubscribed logs...":"Logs nicht mehr abonniert...","Update configuration DB":"Konfigurations-DB aktualisieren","Update Firmware":"Firmware aktualisieren","Update for configuration DB available":"Update f\xFCr Konfigurations-DB verf\xFCgbar","Updating configuration DB - please wait...":"Konfigurations-DB aktualisieren - bitte warten...","Updating the configuration DB failed!":"Aktualisierung der Konfigurations-DB fehlgeschlagen!","wake up device":"Bitte das Ger\xE4t aufwecken!","WARNING: Make sure that the node is reset before attempting this.":"WARNUNG: Vergewissern Sie sich, dass das Ger\xE4t zur\xFCckgesetzt ist, bevor Sie dies versuchen.","WARNING: Only do this if you no longer have physical access.":"WARNUNG: Tun Sie dies nur, wenn Sie keinen physischen Zugriff auf das Ger\xE4t mehr haben.","When a node announces itself, it will automatically be included within 10 minutes.":"Wenn ein Ger\xE4t sich meldet, wird es automatisch innerhalb von 10 Minuten eingebunden.","Wipes all configuration of the controller. All connected nodes will be orphaned and have to be reset and included into the new network before they can be used again.":"L\xF6scht die gesamte Konfiguration des Controllers. Alle verbundenen Ger\xE4te werden verwaist und m\xFCssen zur\xFCckgesetzt und in das neue Netzwerk aufgenommen werden, bevor sie wieder verwendet werden k\xF6nnen.","Write a detailed logfile":"Detaillierte Logdatei schreiben",yes:"ja","You can try this if the adapter does not start after updating to 2.3 or higher.":"Einen Versuch wert, wenn der Adapter nach dem Update auf 2.3 oder h\xF6her nicht startet.","Z-Wave Logs":"Z-Wave Protokolle","Z-Wave supports the following security mechanisms:":"Z-Wave unterst\xFCtzt die folgenden Sicherheitsmechanismen:"}});var Ahe=w((uqe,zhe)=>{zhe.exports={"- select endpoint -":"- \u0432\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u043A\u043E\u043D\u0435\u0447\u043D\u0443\u044E \u0442\u043E\u0447\u043A\u0443 -","- select group -":"- \u0432\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0433\u0440\u0443\u043F\u043F\u0443 -","- select node -":"- \u0432\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0443\u0437\u0435\u043B -","(recommended)":"(\u0440\u0435\u043A\u043E\u043C\u0435\u043D\u0434\u0443\u0435\u043C\u044B\u0435)","(use only when necessary)":"(\u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435 \u0442\u043E\u043B\u044C\u043A\u043E \u043F\u0440\u0438 \u043D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C\u043E\u0441\u0442\u0438)","abort firmware update":"\u043F\u0440\u0435\u0440\u0432\u0430\u0442\u044C \u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u0435 \u043F\u0440\u043E\u0448\u0438\u0432\u043A\u0438","adapter not ready":"\u0410\u0434\u0430\u043F\u0442\u0435\u0440 \u043D\u0435 \u0440\u0430\u0431\u043E\u0442\u0430\u0435\u0442 \u0438\u043B\u0438 \u0435\u0449\u0435 \u043D\u0435 \u0433\u043E\u0442\u043E\u0432!","Added SmartStart device":"\u0414\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u043E \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u043E SmartStart",alive:"\u0432 \u0436\u0438\u0432\u044B\u0445","Already included":"\u0423\u0436\u0435 \u0432\u043A\u043B\u044E\u0447\u0435\u043D\u044B","Already provisioned":"\u0423\u0436\u0435 \u043F\u043E\u0434\u0433\u043E\u0442\u043E\u0432\u043B\u0435\u043D\u043E",asleep:"\u0441\u043F\u044F\u0449\u0438\u0439",Associations:"\u0430\u0441\u0441\u043E\u0446\u0438\u0430\u0446\u0438\u0438","At least one must be granted or the key exchange will be canceled.":"\u041F\u043E \u043A\u0440\u0430\u0439\u043D\u0435\u0439 \u043C\u0435\u0440\u0435, \u043E\u0434\u0438\u043D \u0434\u043E\u043B\u0436\u0435\u043D \u0431\u044B\u0442\u044C \u043F\u0440\u0435\u0434\u043E\u0441\u0442\u0430\u0432\u043B\u0435\u043D, \u0438\u043D\u0430\u0447\u0435 \u043E\u0431\u043C\u0435\u043D \u043A\u043B\u044E\u0447\u0430\u043C\u0438 \u0431\u0443\u0434\u0435\u0442 \u043E\u0442\u043C\u0435\u043D\u0435\u043D.","At least one network key is not yet configured. This can cause problems during secure inclusion.":"\u041F\u043E \u043A\u0440\u0430\u0439\u043D\u0435\u0439 \u043C\u0435\u0440\u0435, \u043E\u0434\u0438\u043D \u0441\u0435\u0442\u0435\u0432\u043E\u0439 \u043A\u043B\u044E\u0447 \u0435\u0449\u0435 \u043D\u0435 \u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043D. ","Auto-scroll to bottom":"\u0410\u0432\u0442\u043E\u043F\u0440\u043E\u043A\u0440\u0443\u0442\u043A\u0430 \u0432\u043D\u0438\u0437",awake:"\u0431\u043E\u0434\u0440\u0441\u0442\u0432\u0443\u044E\u0449\u0438\u0439","But read this first!":"\u041D\u043E \u0441\u043D\u0430\u0447\u0430\u043B\u0430 \u043F\u0440\u043E\u0447\u0442\u0438\u0442\u0435 \u044D\u0442\u043E!",Cancel:"\u041E\u0442\u043C\u0435\u043D\u0430","Cancel healing":"\u041E\u0442\u043C\u0435\u043D\u0438\u0442\u044C \u0438\u0441\u0446\u0435\u043B\u0435\u043D\u0438\u0435","clear cache procedure":"\u0410\u0434\u0430\u043F\u0442\u0435\u0440 \u043F\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u0441\u044F \u0438 \u0437\u0430\u043D\u043E\u0432\u043E \u043E\u043F\u0440\u043E\u0441\u0438\u0442\u044C \u0432\u0441\u0435\u0445 \u0443\u0437\u043B\u043E\u0432. \u042D\u0442\u043E \u043C\u043E\u0436\u0435\u0442 \u0437\u0430\u043D\u044F\u0442\u044C \u043C\u043D\u043E\u0433\u043E \u0432\u0440\u0435\u043C\u0435\u043D\u0438, \u0438 \u043D\u0435\u043A\u043E\u0442\u043E\u0440\u044B\u0435 \u0443\u0437\u043B\u044B \u043C\u043E\u0433\u0443\u0442 \u043D\u0435 \u0440\u0430\u0431\u043E\u0442\u0430\u0442\u044C, \u043A\u0430\u043A \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C \u0432 \u044D\u0442\u043E \u0432\u0440\u0435\u043C\u044F.","Click here to select image with QR code":"\u041D\u0430\u0436\u043C\u0438\u0442\u0435 \u0437\u0434\u0435\u0441\u044C, \u0447\u0442\u043E\u0431\u044B \u0432\u044B\u0431\u0440\u0430\u0442\u044C \u0438\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435 \u0441 QR-\u043A\u043E\u0434\u043E\u043C",Close:"\u0417\u0430\u043A\u0440\u044B\u0432\u0430\u0442\u044C",collisions:"\u0441\u0442\u043E\u043B\u043A\u043D\u043E\u0432\u0435\u043D\u0438\u044F","Communicating with the device, please be patient...":"\u041E\u0431\u0449\u0430\u044F\u0441\u044C \u0441 \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u043E\u043C, \u043D\u0430\u0431\u0435\u0440\u0438\u0442\u0435\u0441\u044C \u0442\u0435\u0440\u043F\u0435\u043D\u0438\u044F ...","config update disclaimer":"\u0412\u041D\u0418\u041C\u0410\u041D\u0418\u0415: \u044D\u0442\u043E \u044D\u043A\u0441\u043F\u0435\u0440\u0438\u043C\u0435\u043D\u0442\u0430\u043B\u044C\u043D\u0430\u044F \u0444\u0443\u043D\u043A\u0446\u0438\u044F. \u041F\u0435\u0440\u0435\u0434 \u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u0435\u043C \u0431\u0430\u0437\u044B \u0434\u0430\u043D\u043D\u044B\u0445 \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u0443\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044C, \u0447\u0442\u043E \u0443 \u0432\u0430\u0441 \u0435\u0441\u0442\u044C \u0440\u0435\u0437\u0435\u0440\u0432\u043D\u0430\u044F \u043A\u043E\u043F\u0438\u044F ioBroker.","Configuration DB is up to date":"\u0411\u0414 \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0430","Configure the region and radio frequencies of the controller.":"\u041D\u0430\u0441\u0442\u0440\u043E\u0438\u0442\u044C \u0440\u0435\u0433\u0438\u043E\u043D \u0438 \u0440\u0430\u0434\u0438\u043E\u0447\u0430\u0441\u0442\u043E\u0442\u044B \u043A\u043E\u043D\u0442\u0440\u043E\u043B\u043B\u0435\u0440\u0430.","Controller node":"\u0423\u0437\u0435\u043B \u043A\u043E\u043D\u0442\u0440\u043E\u043B\u043B\u0435\u0440\u0430",corrupt:"\u0438\u0441\u043F\u043E\u0440\u0447\u0435\u043D\u043D\u044B\u0439",dead:"\u043C\u0435\u0440\u0442\u0432\u044B\u0445","Default (secure)":"\u041F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E (\u0431\u0435\u0437\u043E\u043F\u0430\u0441\u043D\u044B\u0439)","Define here which SmartStart capable nodes should be part of the network by entering their DSK and granting security classes.":"\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u0438\u0442\u0435 \u0437\u0434\u0435\u0441\u044C, \u043A\u0430\u043A\u0438\u0435 \u0443\u0437\u043B\u044B \u0441 \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u043A\u043E\u0439 SmartStart \u0434\u043E\u043B\u0436\u043D\u044B \u0431\u044B\u0442\u044C \u0447\u0430\u0441\u0442\u044C\u044E \u0441\u0435\u0442\u0438, \u0432\u0432\u0435\u0434\u044F \u0438\u0445 DSK \u0438 \u043D\u0430\u0437\u043D\u0430\u0447\u0438\u0432 \u043A\u043B\u0430\u0441\u0441\u044B \u0431\u0435\u0437\u043E\u043F\u0430\u0441\u043D\u043E\u0441\u0442\u0438.","Delete association":"\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0430\u0441\u0441\u043E\u0446\u0438\u0430\u0446\u0438\u044E","Delete group":"\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0433\u0440\u0443\u043F\u043F\u0443",Devices:"\u0423\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u0430","Disable restarting the controller on startup":"\u041E\u0442\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u043F\u0435\u0440\u0435\u0437\u0430\u043F\u0443\u0441\u043A \u043A\u043E\u043D\u0442\u0440\u043E\u043B\u043B\u0435\u0440\u0430 \u043F\u0440\u0438 \u0437\u0430\u043F\u0443\u0441\u043A\u0435","Do you really want to remove this node from the network?":"\u0412\u044B \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043B\u044C\u043D\u043E \u0445\u043E\u0442\u0438\u0442\u0435 \u0443\u0434\u0430\u043B\u0438\u0442\u044C \u044D\u0442\u043E\u0442 \u0443\u0437\u0435\u043B \u0438\u0437 \u0441\u0435\u0442\u0438?","Do you really want to remove this node from the provisioning list?":"\u0412\u044B \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043B\u044C\u043D\u043E \u0445\u043E\u0442\u0438\u0442\u0435 \u0443\u0434\u0430\u043B\u0438\u0442\u044C \u044D\u0442\u043E\u0442 \u0443\u0437\u0435\u043B \u0438\u0437 \u0441\u043F\u0438\u0441\u043A\u0430 \u043F\u043E\u0434\u0433\u043E\u0442\u043E\u0432\u043A\u0438?","Do you really want to replace this node?":"\u0412\u044B \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043B\u044C\u043D\u043E \u0445\u043E\u0442\u0438\u0442\u0435 \u0437\u0430\u043C\u0435\u043D\u0438\u0442\u044C \u044D\u0442\u043E\u0442 \u0443\u0437\u0435\u043B?",done:"\u0441\u0434\u0435\u043B\u0430\u043D\u043D\u044B\u0439","Done!":"\u0412\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u043E!","Door locks, garage doors":"\u0414\u0432\u0435\u0440\u043D\u044B\u0435 \u0437\u0430\u043C\u043A\u0438, \u0433\u0430\u0440\u0430\u0436\u043D\u044B\u0435 \u0432\u043E\u0440\u043E\u0442\u0430","Download logs":"\u0421\u043A\u0430\u0447\u0430\u0442\u044C \u0436\u0443\u0440\u043D\u0430\u043B\u044B",dropped:"\u0443\u043F\u0430\u0432\u0448\u0438\u0439",DSK:"DSK",Enabled:"\u0412\u043A\u043B\u044E\u0447\u0435\u043D\u043E",Endpoint:"\u041A\u043E\u043D\u0435\u0447\u043D\u0430\u044F \u0442\u043E\u0447\u043A\u0430","Enter group name":"\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u0435 \u0433\u0440\u0443\u043F\u043F\u044B",Error:"\u043E\u0448\u0438\u0431\u043A\u0430","Example:":"\u041F\u0440\u0438\u043C\u0435\u0440:","Exclude device":"\u0418\u0441\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u043E","Exclusion active":"\u0418\u0441\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435 \u0430\u043A\u0442\u0438\u0432\u043D\u043E","Factory reset":"\u0421\u0431\u0440\u043E\u0441 \u043A \u0437\u0430\u0432\u043E\u0434\u0441\u043A\u0438\u043C \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430\u043C","factory reset procedure":"\u0421\u0442\u0438\u0440\u0430\u0435\u0442 \u0432\u0441\u044E \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044E \u043A\u043E\u043D\u0442\u0440\u043E\u043B\u043B\u0435\u0440\u0430. ","Factory reset?":"\u0421\u0431\u0440\u043E\u0441 \u043A \u0437\u0430\u0432\u043E\u0434\u0441\u043A\u0438\u043C \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430\u043C?",failed:"\u043D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C","Failed to scan QR code":"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043E\u0442\u0441\u043A\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u0442\u044C QR-\u043A\u043E\u0434","fast and secure":"\u0431\u044B\u0441\u0442\u0440\u043E \u0438 \u0431\u0435\u0437\u043E\u043F\u0430\u0441\u043D\u043E","firmware update failed":"\u041E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u0435 \u043F\u0440\u043E\u0448\u0438\u0432\u043A\u0438 \u043D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C!","firmware update no wait time":"\u0422\u0435\u043F\u0435\u0440\u044C \u044D\u0442\u043E \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u043E \u0431\u0443\u0434\u0435\u0442 \u043F\u043E\u0432\u0442\u043E\u0440\u043D\u043E \u0434\u043E\u043F\u0440\u043E\u0448\u0435\u043D.","firmware update successful":"\u041E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u044F \u043F\u0440\u043E\u0448\u0438\u0432\u043A\u0438 \u043F\u0440\u043E\u0448\u043B\u0430 \u0443\u0441\u043F\u0435\u0448\u043D\u043E!","firmware update wait time":"\u0423\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u043E \u0431\u0443\u0434\u0435\u0442 \u043F\u043E\u0432\u0442\u043E\u0440\u043D\u043E \u0434\u043E\u043F\u0440\u043E\u0448\u0435\u043D \u0432 {0} \u0441\u0435\u043A\u0443\u043D\u0434.","firmware update wake up":"\u0412\u043E\u0437\u043C\u043E\u0436\u043D\u043E, \u0432\u0430\u043C \u043F\u0440\u0438\u0434\u0435\u0442\u0441\u044F \u0441\u043D\u043E\u0432\u0430 \u043F\u0440\u043E\u0441\u043D\u0443\u0442\u044C\u0441\u044F \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u0430.","firmware update warning":"\u041F\u0440\u0435\u0434\u0443\u043F\u0440\u0435\u0436\u0434\u0435\u043D\u0438\u0435: \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435 \u043D\u0430 \u0441\u0432\u043E\u0439 \u0441\u0442\u0440\u0430\u0445 \u0438 \u0440\u0438\u0441\u043A! \u041C\u044B \u043D\u0435 \u043D\u0435\u0441\u0435\u043C \u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043D\u043D\u043E\u0441\u0442\u0438, \u0435\u0441\u043B\u0438 \u0432\u0430\u0448\u0438 \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u0430 \u043D\u0435 \u0440\u0430\u0431\u043E\u0442\u0430\u044E\u0442 \u043F\u043E\u0441\u043B\u0435 \u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u044F.","For devices without a DSK. Authentication of the inclusion happens on the device instead of in ioBroker.":"\u0414\u043B\u044F \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432 \u0431\u0435\u0437 DSK. ","Forget all information about all nodes and re-interview them. Battery-powered nodes might need to be woken up manually.":"\u0417\u0430\u0431\u0443\u0434\u044C\u0442\u0435 \u0432\u0441\u044E \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044E \u043E\u0431\u043E \u0432\u0441\u0435\u0445 \u0443\u0437\u043B\u0430\u0445 \u0438 \u043F\u0435\u0440\u0435\u043F\u0440\u043E\u0432\u0435\u0440\u044C\u0442\u0435 \u0438\u0445. ","Forget all information about this node and re-interview it. Battery-powered nodes might need to be woken up manually.":"\u0417\u0430\u0431\u0443\u0434\u044C\u0442\u0435 \u0432\u0441\u044E \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044E \u043E\u0431 \u044D\u0442\u043E\u043C \u0443\u0437\u043B\u0435 \u0438 \u043F\u0435\u0440\u0435\u043F\u0440\u043E\u0432\u0435\u0440\u044C\u0442\u0435 \u0435\u0433\u043E. ","Generate key":"\u0413\u0435\u043D\u0435\u0440\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u043A\u043B\u044E\u0447",Group:"\u0433\u0440\u0443\u043F\u043F\u0430","Group name":"\u0418\u043C\u044F \u0433\u0440\u0443\u043F\u043F\u044B",Groups:"\u0413\u0440\u0443\u043F\u043F\u044B","Heal network":"\u0418\u0441\u0446\u0435\u043B\u0438\u0442\u044C \u0441\u0435\u0442\u0438","Heal network finished":"\u0418\u0441\u0446\u0435\u043B\u0438\u0442\u044C \u0441\u0435\u0442\u044C","Healing network":"\u0426\u0435\u043B\u0438\u0442\u0435\u043B\u044C\u043D\u0430\u044F \u0441\u0435\u0442\u044C ...","Healing the network was successful!":"\u0418\u0441\u0446\u0435\u043B\u0435\u043D\u0438\u0435 \u0432 \u0441\u0435\u0442\u0438 \u043F\u0440\u043E\u0448\u043B\u043E \u0443\u0441\u043F\u0435\u0448\u043D\u043E!","hosted port tip":"\u0412\u044B \u0442\u0430\u043A\u0436\u0435 \u043C\u043E\u0436\u0435\u0442\u0435 \u043F\u043E\u0434\u043A\u043B\u044E\u0447\u0438\u0442\u044C\u0441\u044F \u043A \u0440\u0430\u0437\u043C\u0435\u0449\u0435\u043D\u043D\u043E\u043C\u0443 \u043F\u043E\u0441\u043B\u0435\u0434\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u043D\u043E\u043C\u0443 \u043F\u043E\u0440\u0442\u0443, \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u044F \u0444\u043E\u0440\u043C\u0443 'tcp://hostname:port'","Include device":"\u0412\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u043E","Inclusion active":"\u0412\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435 \u0430\u043A\u0442\u0438\u0432\u043D\u043E","Installed version":"\u0423\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D\u043D\u0430\u044F \u0432\u0435\u0440\u0441\u0438\u044F","Invalid network key":"\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0441\u0435\u0442\u0435\u0432\u043E\u0439 \u043A\u043B\u044E\u0447: \u0434\u043E\u043B\u0436\u0435\u043D \u0431\u044B\u0442\u044C 16 \u0431\u0430\u0439\u0442\u043E\u0432 (32 \u0448\u0435\u0441\u0442\u043D\u0430\u0434\u0446\u0430\u0442\u0435\u0440\u0438\u0447\u043D\u044B\u0445 \u0441\u0438\u043C\u0432\u043E\u043B\u0430 [0-9, a-f])","It will be included automatically when it announces itself.":"\u041E\u043D \u0431\u0443\u0434\u0435\u0442 \u0432\u043A\u043B\u044E\u0447\u0435\u043D \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438, \u043A\u043E\u0433\u0434\u0430 \u043E\u0431\u044A\u044F\u0432\u0438\u0442 \u043E \u0441\u0435\u0431\u0435.","Legacy door locks without S2 support":"\u0423\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0438\u0435 \u0434\u0432\u0435\u0440\u043D\u044B\u0435 \u0437\u0430\u043C\u043A\u0438 \u0431\u0435\u0437 \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u043A\u0438 S2","Legacy switch compatibility":"\u0423\u043B\u0443\u0447\u0448\u0435\u043D\u0438\u0435 \u0441\u043E\u0432\u043C\u0435\u0441\u0442\u0438\u043C\u043E\u0441\u0442\u0438 \u0441 \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0438\u043C\u0438 \u043A\u043E\u043C\u043C\u0443\u0442\u0430\u0442\u043E\u0440\u0430\u043C\u0438","Lighting, sensors, security systems":"\u041E\u0441\u0432\u0435\u0449\u0435\u043D\u0438\u0435, \u0434\u0430\u0442\u0447\u0438\u043A\u0438, \u0441\u0438\u0441\u0442\u0435\u043C\u044B \u0431\u0435\u0437\u043E\u043F\u0430\u0441\u043D\u043E\u0441\u0442\u0438","Like S2 Authenticated, but without verification that the correct device is included":"\u041A\u0430\u043A S2 Authenticated, \u043D\u043E \u0431\u0435\u0437 \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0438, \u0447\u0442\u043E \u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u043E\u0435 \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u043E \u0432\u043A\u043B\u044E\u0447\u0435\u043D\u043E",Name:"\u0418\u043C\u044F","network key confirm":"\u042D\u0442\u043E \u043F\u0440\u0438\u0432\u0435\u0434\u0435\u0442 \u043A \u043F\u0435\u0440\u0435\u0437\u0430\u043F\u0438\u0441\u0438 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044E\u0449\u0435\u0433\u043E \u043A\u043B\u044E\u0447\u0430 \u0438 \u0430\u0434\u0430\u043F\u0442\u0435\u0440 \u043D\u0435 \u0441\u043C\u043E\u0436\u0435\u0442 \u043E\u0431\u0449\u0430\u0442\u044C\u0441\u044F \u0441 \u0443\u0436\u0435 \u0432\u043A\u043B\u044E\u0447\u0435\u043D\u043D\u044B\u043C\u0438 \u0437\u0430\u0449\u0438\u0449\u0435\u043D\u043D\u044B\u0445 \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432. \u0412\u044B \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043B\u044C\u043D\u043E \u0445\u043E\u0442\u0438\u0442\u0435 \u043F\u0440\u043E\u0434\u043E\u043B\u0436\u0438\u0442\u044C?","network key tooltip":"16 \u0431\u0430\u0439\u0442 \u0432 \u0448\u0435\u0441\u0442\u043D\u0430\u0434\u0446\u0430\u0442\u0435\u0440\u0438\u0447\u043D\u043E\u043C \u0432\u0438\u0434\u0435 (32 \u0441\u0438\u043C\u0432\u043E\u043B\u0430 0-9, \u0430-F). \u0411\u0435\u0437 \u043F\u0440\u043E\u0431\u0435\u043B\u043E\u0432, \u0431\u0435\u0437 \u0437\u0430\u043F\u044F\u0442\u044B\u0445, \u0431\u0435\u0437 \u0432\u0435\u0434\u0443\u0449\u0438\u0445 '0\u0445'.","Network keys for secure communication":"\u0421\u0435\u0442\u0435\u0432\u043E\u0439 \u043A\u043B\u044E\u0447 \u0434\u043B\u044F \u0431\u0435\u0437\u043E\u043F\u0430\u0441\u043D\u043E\u0433\u043E \u043E\u0431\u0449\u0435\u043D\u0438\u044F","Network map":"\u041A\u0430\u0440\u0442\u0430 \u0441\u0435\u0442\u0438",no:"\u043D\u0435\u0442","No devices present":"\u0423\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u0430 \u043E\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044E\u0442","No encryption":"\u0411\u0435\u0437 \u0448\u0438\u0444\u0440\u043E\u0432\u0430\u043D\u0438\u044F","no file selected":"\u0444\u0430\u0439\u043B \u043D\u0435 \u0432\u044B\u0431\u0440\u0430\u043D","no multicast explanation":"\u0421\u043F\u044F\u0449\u0438\u0435 \u0443\u0437\u043B\u044B \u0438 \u0443\u0437\u043B\u044B, \u0432\u043A\u043B\u044E\u0447\u0435\u043D\u043D\u044B\u0435 \u0432 Security S0, \u043D\u0435 \u043C\u043E\u0433\u0443\u0442 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C\u0441\u044F \u0432 \u043C\u043D\u043E\u0433\u043E\u0430\u0434\u0440\u0435\u0441\u043D\u044B\u0445 \u0433\u0440\u0443\u043F\u043F\u0430\u0445.",Node:"\u0423\u0437\u0435\u043B","Node %s was added successfully!":"\u0423\u0437\u0435\u043B% s \u0443\u0441\u043F\u0435\u0448\u043D\u043E \u0434\u043E\u0431\u0430\u0432\u043B\u0435\u043D!","Node %s was removed from the network!":"\u0423\u0437\u0435\u043B% s \u0443\u0434\u0430\u043B\u0435\u043D \u0438\u0437 \u0441\u0435\u0442\u0438!","Node is not ready":"\u0423\u0437\u0435\u043B \u043D\u0435 \u0433\u043E\u0442\u043E\u0432","Node successfully added to provisioning list":"\u0423\u0437\u0435\u043B \u0443\u0441\u043F\u0435\u0448\u043D\u043E \u0434\u043E\u0431\u0430\u0432\u043B\u0435\u043D \u0432 \u0441\u043F\u0438\u0441\u043E\u043A \u043F\u043E\u0434\u0433\u043E\u0442\u043E\u0432\u043A\u0438",Nodes:"\u0423\u0437\u043B\u044B","Non-secure":"\u041D\u0435\u0431\u0435\u0437\u043E\u043F\u0430\u0441\u043D\u044B\u0439","none selected":"\u043D\u0435 \u0432\u044B\u0431\u0440\u0430\u043D\u043E, \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u0432\u044B\u0431\u0440\u0430\u043D\u043E","not requested":"\u043D\u0435 \u0437\u0430\u043F\u0440\u043E\u0448\u0435\u043D\u043E","Note: Applying a different region might take a few seconds.":"\u041F\u0440\u0438\u043C\u0435\u0447\u0430\u043D\u0438\u0435. \u041F\u0440\u0438\u043C\u0435\u043D\u0435\u043D\u0438\u0435 \u0434\u0440\u0443\u0433\u043E\u0433\u043E \u0440\u0435\u0433\u0438\u043E\u043D\u0430 \u043C\u043E\u0436\u0435\u0442 \u0437\u0430\u043D\u044F\u0442\u044C \u043D\u0435\u0441\u043A\u043E\u043B\u044C\u043A\u043E \u0441\u0435\u043A\u0443\u043D\u0434.",OK:"Ok","Only use S0, even if S2 is available. Allows including devices that require security but don't behave correctly during S2 inclusion.":"\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435 \u0442\u043E\u043B\u044C\u043A\u043E S0, \u0434\u0430\u0436\u0435 \u0435\u0441\u043B\u0438 \u0434\u043E\u0441\u0442\u0443\u043F\u0435\u043D S2. ","Open log in new window":"\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u0436\u0443\u0440\u043D\u0430\u043B \u0432 \u043D\u043E\u0432\u043E\u043C \u043E\u043A\u043D\u0435","opening camera...":"\u043E\u0442\u043A\u0440\u044B\u0442\u0438\u0435 \u043A\u0430\u043C\u0435\u0440\u044B ...","Or drag an image file here":"\u0418\u043B\u0438 \u043F\u0435\u0440\u0435\u0442\u0430\u0449\u0438\u0442\u0435 \u0441\u044E\u0434\u0430 \u0444\u0430\u0439\u043B \u0438\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F","Pause auto-scrolling":"\u041F\u0440\u0438\u043E\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C \u0430\u0432\u0442\u043E\u043F\u0440\u043E\u043A\u0440\u0443\u0442\u043A\u0443","Pause logging":"\u041F\u0440\u0438\u043E\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C \u0432\u0435\u0434\u0435\u043D\u0438\u0435 \u0436\u0443\u0440\u043D\u0430\u043B\u0430",pending:"\u0432 \u043E\u0436\u0438\u0434\u0430\u043D\u0438\u0438","Please choose an inclusion strategy":"\u041F\u043E\u0436\u0430\u043B\u0443\u0439\u0441\u0442\u0430, \u0432\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u044E \u0432\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u044F","Please choose which of the following security classes to grant to the new node.":"\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435, \u043A\u0430\u043A\u043E\u0439 \u0438\u0437 \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0438\u0445 \u043A\u043B\u0430\u0441\u0441\u043E\u0432 \u0431\u0435\u0437\u043E\u043F\u0430\u0441\u043D\u043E\u0441\u0442\u0438 \u043F\u0440\u0435\u0434\u043E\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u043D\u043E\u0432\u043E\u043C\u0443 \u0443\u0437\u043B\u0443.","Please enter the 5-digit PIN for your device and verify that the rest of the device-specific key (DSK) matches the one on your device or the manual.":"\u0412\u0432\u0435\u0434\u0438\u0442\u0435 5-\u0437\u043D\u0430\u0447\u043D\u044B\u0439 PIN-\u043A\u043E\u0434 \u0434\u043B\u044F \u0441\u0432\u043E\u0435\u0433\u043E \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u0430 \u0438 \u0443\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044C, \u0447\u0442\u043E \u043E\u0441\u0442\u0430\u043B\u044C\u043D\u0430\u044F \u0447\u0430\u0441\u0442\u044C \u043A\u043B\u044E\u0447\u0430 \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u0430 (DSK) \u0441\u043E\u0432\u043F\u0430\u0434\u0430\u0435\u0442 \u0441 \u043A\u043B\u044E\u0447\u043E\u043C \u043D\u0430 \u0432\u0430\u0448\u0435\u043C \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u0435 \u0438\u043B\u0438 \u0432 \u0440\u0443\u043A\u043E\u0432\u043E\u0434\u0441\u0442\u0432\u0435.","Prefer S0 over no encryption":"\u041F\u0440\u0435\u0434\u043F\u043E\u0447\u0438\u0442\u0430\u0439\u0442\u0435 S0 \u043E\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u044E \u0448\u0438\u0444\u0440\u043E\u0432\u0430\u043D\u0438\u044F","Preserve state names":"\u041D\u0435 \u043F\u0435\u0440\u0435\u0437\u0430\u043F\u0438\u0441\u044B\u0432\u0430\u0439\u0442\u0435 \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u044F \u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u0439","Provision node":"\u0423\u0437\u0435\u043B \u043F\u0440\u0435\u0434\u043E\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u044F","Put your device into exclusion mode":"\u041F\u0435\u0440\u0435\u0432\u0435\u0434\u0438\u0442\u0435 \u0432\u0430\u0448\u0435 \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u043E \u0432 \u0440\u0435\u0436\u0438\u043C \u0438\u0441\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u044F","Put your device into inclusion mode":"\u041F\u0435\u0440\u0435\u0432\u0435\u0434\u0438\u0442\u0435 \u0432\u0430\u0448\u0435 \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u043E \u0432 \u0440\u0435\u0436\u0438\u043C \u0432\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u044F","Re-interview all":"\u041F\u043E\u0432\u0442\u043E\u0440\u043D\u043E \u043F\u0440\u043E\u0438\u043D\u0442\u0435\u0440\u0432\u044C\u044E\u0438\u0440\u0443\u0439\u0442\u0435 \u0432\u0441\u0435\u0445","Re-interview all?":"\u041F\u0435\u0440\u0435\u043F\u0440\u043E\u0441\u0438\u0442\u044C \u0432\u0441\u0435\u0445?",received:"\u043F\u043E\u043B\u0443\u0447\u0435\u043D\u043D\u044B\u0439","Refresh node info":"\u041E\u0431\u043D\u043E\u0432\u0438\u0442\u044C \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044E \u043E\u0431 \u0443\u0437\u043B\u0435","Remove failed node":"\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u043D\u0435\u0438\u0441\u043F\u0440\u0430\u0432\u043D\u044B\u0439 \u0443\u0437\u0435\u043B","Remove node?":"\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0443\u0437\u0435\u043B?","Remove this node from the network.":"\u0423\u0434\u0430\u043B\u0438\u0442\u0435 \u044D\u0442\u043E\u0442 \u0443\u0437\u0435\u043B \u0438\u0437 \u0441\u0435\u0442\u0438.","Removing or disabling an entry does not automatically exclude the node.":"\u0423\u0434\u0430\u043B\u0435\u043D\u0438\u0435 \u0438\u043B\u0438 \u043E\u0442\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435 \u0437\u0430\u043F\u0438\u0441\u0438 \u043D\u0435 \u0438\u0441\u043A\u043B\u044E\u0447\u0430\u0435\u0442 \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438 \u0443\u0437\u0435\u043B.","Replace device":"\u0417\u0430\u043C\u0435\u043D\u0438\u0442\u044C \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u043E","Replace failed node":"\u0417\u0430\u043C\u0435\u043D\u0438\u0442\u044C \u0432\u044B\u0448\u0435\u0434\u0448\u0438\u0439 \u0438\u0437 \u0441\u0442\u0440\u043E\u044F \u0443\u0437\u0435\u043B","Replace node?":"\u0417\u0430\u043C\u0435\u043D\u0438\u0442\u044C \u0443\u0437\u0435\u043B?","Replace this node with a different one, keeping the node ID.":"\u0417\u0430\u043C\u0435\u043D\u0438\u0442\u0435 \u044D\u0442\u043E\u0442 \u0443\u0437\u0435\u043B \u0434\u0440\u0443\u0433\u0438\u043C, \u0441\u043E\u0445\u0440\u0430\u043D\u0438\u0432 \u0438\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440 \u0443\u0437\u043B\u0430.","Requires user interaction during the inclusion.":"\u0422\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044F \u0432\u0437\u0430\u0438\u043C\u043E\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u0441 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u0435\u043C \u0432\u043E \u0432\u0440\u0435\u043C\u044F \u0432\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u044F.","Restart the controller, e.g. when it hangs":"\u041F\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u0435 \u043A\u043E\u043D\u0442\u0440\u043E\u043B\u043B\u0435\u0440, \u043D\u0430\u043F\u0440\u0438\u043C\u0435\u0440 ","Root device":"\u041A\u043E\u0440\u043D\u0435\u0432\u043E\u0435 \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u043E","Root endpoint":"\u041A\u043E\u0440\u043D\u0435\u0432\u0430\u044F \u043A\u043E\u043D\u0435\u0447\u043D\u0430\u044F \u0442\u043E\u0447\u043A\u0430","Save association":"\u0421\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C \u0430\u0441\u0441\u043E\u0446\u0438\u0430\u0446\u0438\u044E","Save group":"\u0421\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C \u0433\u0440\u0443\u043F\u043F\u0443","Scan QR Code":"\u0421\u043A\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u0442\u044C QR-\u043A\u043E\u0434",Secure:"\u0411\u0435\u0437\u043E\u043F\u0430\u0441\u043D\u044B\u0439","secure, but slow due to a lot of overhead":"\u0431\u0435\u0437\u043E\u043F\u0430\u0441\u043D\u043E, \u043D\u043E \u043C\u0435\u0434\u043B\u0435\u043D\u043D\u043E \u0438\u0437-\u0437\u0430 \u0431\u043E\u043B\u044C\u0448\u043E\u0433\u043E \u043A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u043D\u0430\u043A\u043B\u0430\u0434\u043D\u044B\u0445 \u0440\u0430\u0441\u0445\u043E\u0434\u043E\u0432",Security:"\u0411\u0435\u0437\u043E\u043F\u0430\u0441\u043D\u043E\u0441\u0442\u044C","Security class: %s":"\u041A\u043B\u0430\u0441\u0441 \u0431\u0435\u0437\u043E\u043F\u0430\u0441\u043D\u043E\u0441\u0442\u0438:% s","Security classes":"\u041A\u043B\u0430\u0441\u0441\u044B \u0431\u0435\u0437\u043E\u043F\u0430\u0441\u043D\u043E\u0441\u0442\u0438","Security S0":"\u0411\u0435\u0437\u043E\u043F\u0430\u0441\u043D\u043E\u0441\u0442\u044C S0","Security S2 when supported, Security S0 as a fallback, no encryption otherwise.":"Security S2, \u0435\u0441\u043B\u0438 \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044F, Security S0 \u0432 \u043A\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0437\u0430\u043F\u0430\u0441\u043D\u043E\u0433\u043E \u0432\u0430\u0440\u0438\u0430\u043D\u0442\u0430, \u0432 \u043F\u0440\u043E\u0442\u0438\u0432\u043D\u043E\u043C \u0441\u043B\u0443\u0447\u0430\u0435 - \u0431\u0435\u0437 \u0448\u0438\u0444\u0440\u043E\u0432\u0430\u043D\u0438\u044F.","Security S2 when supported, Security S0 only when necessary, no encryption otherwise.":"Security S2, \u0435\u0441\u043B\u0438 \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044F, Security S0 - \u0442\u043E\u043B\u044C\u043A\u043E \u043F\u0440\u0438 \u043D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C\u043E\u0441\u0442\u0438, \u0432 \u043F\u0440\u043E\u0442\u0438\u0432\u043D\u043E\u043C \u0441\u043B\u0443\u0447\u0430\u0435 - \u0431\u0435\u0437 \u0448\u0438\u0444\u0440\u043E\u0432\u0430\u043D\u0438\u044F.","Select at least 2 nodes":"\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u043D\u0435 \u043C\u0435\u043D\u0435\u0435 2 \u0443\u0437\u043B\u043E\u0432","Select QR code source":"\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0438\u0441\u0442\u043E\u0447\u043D\u0438\u043A QR-\u043A\u043E\u0434\u0430","Select serial port":"\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u043F\u043E\u0441\u043B\u0435\u0434\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u043D\u044B\u0439 \u043F\u043E\u0440\u0442","Select the correct region for where you are. Using a different region may be illegal.":"\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u044B\u0439 \u0440\u0435\u0433\u0438\u043E\u043D, \u0432 \u043A\u043E\u0442\u043E\u0440\u043E\u043C \u0432\u044B \u043D\u0430\u0445\u043E\u0434\u0438\u0442\u0435\u0441\u044C. ",sent:"\u043F\u043E\u0441\u043B\u0430\u043B","Set RF Region":"\u0423\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C \u0440\u0435\u0433\u0438\u043E\u043D \u0420\u0424",Settings:"\u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438",SmartStart:"SmartStart","Soft reset":"\u041C\u044F\u0433\u043A\u0438\u0439 \u0441\u0431\u0440\u043E\u0441","Source endpoint":"\u0418\u0441\u0445\u043E\u0434\u043D\u0430\u044F \u043A\u043E\u043D\u0435\u0447\u043D\u0430\u044F \u0442\u043E\u0447\u043A\u0430","start firmware update":"\u043D\u0430\u0447\u0430\u0442\u044C \u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u0435 \u043F\u0440\u043E\u0448\u0438\u0432\u043A\u0438","Start logging":"\u041D\u0430\u0447\u0430\u0442\u044C \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044E",Statistics:"\u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043A\u0430",Status:"\u041F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u0434\u0435\u043B","Subscribed to logs...":"\u041F\u043E\u0434\u043F\u0438\u0441\u0430\u043D \u043D\u0430 \u043B\u043E\u0433\u0438 ...","Successfully added SmartStart device to provisioning list.":"\u0423\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u043E SmartStart \u0443\u0441\u043F\u0435\u0448\u043D\u043E \u0434\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u043E \u0432 \u0441\u043F\u0438\u0441\u043E\u043A \u0438\u043D\u0438\u0446\u0438\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u0438.","switch compat tooltip":"\u041F\u0435\u0440\u0435\u0437\u0430\u043F\u0438\u0441\u044B\u0432\u0430\u0435\u0442 \u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u0435 'targetValue' \u0434\u0432\u043E\u0438\u0447\u043D\u044B\u0445 \u0438 \u043C\u043D\u043E\u0433\u043E\u0443\u0440\u043E\u0432\u043D\u0435\u0432\u044B\u0445 \u043F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0430\u0442\u0435\u043B\u0435\u0439 \u043D\u0430 'currentValue', \u0447\u0442\u043E\u0431\u044B \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0442\u044C \u0438\u0445 \u0441\u0438\u043D\u0445\u0440\u043E\u043D\u0438\u0437\u0430\u0446\u0438\u044E","Target endpoint":"\u0426\u0435\u043B\u0435\u0432\u0430\u044F \u043A\u043E\u043D\u0435\u0447\u043D\u0430\u044F \u0442\u043E\u0447\u043A\u0430","Target node":"\u0426\u0435\u043B\u0435\u0432\u043E\u0439 \u0443\u0437\u0435\u043B","The association could not be deleted!":"\u0410\u0441\u0441\u043E\u0446\u0438\u0430\u0446\u0438\u044F \u043D\u0435 \u043C\u043E\u0436\u0435\u0442 \u0431\u044B\u0442\u044C \u0443\u0434\u0430\u043B\u0435\u043D\u0430!","The association could not be saved!":"\u0410\u0441\u0441\u043E\u0446\u0438\u0430\u0446\u0438\u044F \u043D\u0435 \u043C\u043E\u0436\u0435\u0442 \u0431\u044B\u0442\u044C \u0441\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u0430!","The controller does not support SmartStart!":"\u041A\u043E\u043D\u0442\u0440\u043E\u043B\u043B\u0435\u0440 \u043D\u0435 \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 SmartStart!","The device is already included as Node %s":"\u0423\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u043E \u0443\u0436\u0435 \u0432\u043A\u043B\u044E\u0447\u0435\u043D\u043E \u043A\u0430\u043A \u0443\u0437\u0435\u043B% s","The device is now being interviewed. It might take a while to show up.":"\u0423\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u043E \u0441\u0435\u0439\u0447\u0430\u0441 \u043F\u0440\u043E\u0445\u043E\u0434\u0438\u0442 \u0441\u043E\u0431\u0435\u0441\u0435\u0434\u043E\u0432\u0430\u043D\u0438\u0435. ","The group could not be deleted!":"\u0413\u0440\u0443\u043F\u043F\u0430 \u043D\u0435 \u043C\u043E\u0436\u0435\u0442 \u0431\u044B\u0442\u044C \u0443\u0434\u0430\u043B\u0435\u043D\u0430!","The group could not be saved!":"\u0413\u0440\u0443\u043F\u043F\u0443 \u043D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0441\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C!","This is not a failed node":"\u042D\u0442\u043E \u043D\u0435 \u043D\u0435\u0438\u0441\u043F\u0440\u0430\u0432\u043D\u044B\u0439 \u0443\u0437\u0435\u043B","This is not a SmartStart QR code. Use the devices tab to include this node.":"\u042D\u0442\u043E \u043D\u0435 QR-\u043A\u043E\u0434 SmartStart. ","This is not a valid Z-Wave QR code":"\u042D\u0442\u043E \u043D\u0435\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043B\u044C\u043D\u044B\u0439 QR-\u043A\u043E\u0434 Z-Wave.","This node is already on the SmartStart provisioning list":"\u042D\u0442\u043E\u0442 \u0443\u0437\u0435\u043B \u0443\u0436\u0435 \u043D\u0430\u0445\u043E\u0434\u0438\u0442\u0441\u044F \u0432 \u0441\u043F\u0438\u0441\u043A\u0435 \u0438\u043D\u0438\u0446\u0438\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u0438 SmartStart.","This should only be set for debugging purposes.":"\u042D\u0442\u043E \u0434\u043E\u043B\u0436\u043D\u043E \u0431\u044B\u0442\u044C \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D\u043E \u0442\u043E\u043B\u044C\u043A\u043E \u0434\u043B\u044F \u0446\u0435\u043B\u0435\u0439 \u043E\u0442\u043B\u0430\u0434\u043A\u0438.",timeouts:"\u0442\u0430\u0439\u043C\u0430\u0443\u0442\u044B",Type:"\u0422\u0438\u043F","Undo changes":"\u041E\u0442\u043C\u0435\u043D\u0438\u0442\u044C \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F",unknown:"\u043D\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043D\u044B\u0439",Unprovision:"\u041E\u0442\u043C\u0435\u043D\u0430 \u043E\u0431\u0435\u0441\u043F\u0435\u0447\u0435\u043D\u0438\u044F","Unprovision node?":"\u041E\u0442\u043C\u0435\u043D\u0438\u0442\u044C \u043E\u0431\u0435\u0441\u043F\u0435\u0447\u0435\u043D\u0438\u0435 \u0443\u0437\u043B\u0430?","Unsubscribed logs...":"\u041E\u0442\u043F\u0438\u0441\u0430\u0432\u0448\u0438\u0435\u0441\u044F \u0436\u0443\u0440\u043D\u0430\u043B\u044B ...","Update configuration DB":"\u041E\u0431\u043D\u043E\u0432\u0438\u0442\u044C \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043E\u043D\u043D\u0443\u044E \u0411\u0414","Update Firmware":"\u041E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u0435 \u043F\u0440\u043E\u0448\u0438\u0432\u043A\u0438","Update for configuration DB available":"\u0414\u043E\u0441\u0442\u0443\u043F\u043D\u043E \u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u0435 \u0434\u043B\u044F \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043E\u043D\u043D\u043E\u0439 \u0411\u0414","Updating configuration DB - please wait...":"\u041E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u0435 \u0411\u0414 \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 - \u043F\u043E\u0434\u043E\u0436\u0434\u0438\u0442\u0435 ...","Updating the configuration DB failed!":"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043E\u0431\u043D\u043E\u0432\u0438\u0442\u044C \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043E\u043D\u043D\u0443\u044E \u0431\u0430\u0437\u0443 \u0434\u0430\u043D\u043D\u044B\u0445!","wake up device":"\u041F\u043E\u0436\u0430\u043B\u0443\u0439\u0441\u0442\u0430, \u043F\u0440\u043E\u0441\u043D\u0443\u0442\u044C\u0441\u044F \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u043E!","WARNING: Make sure that the node is reset before attempting this.":"\u0412\u041D\u0418\u041C\u0410\u041D\u0418\u0415! \u041F\u0435\u0440\u0435\u0434 \u0442\u0435\u043C, \u043A\u0430\u043A \u043F\u044B\u0442\u0430\u0442\u044C\u0441\u044F \u044D\u0442\u043E \u0441\u0434\u0435\u043B\u0430\u0442\u044C, \u0443\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044C, \u0447\u0442\u043E \u0443\u0437\u0435\u043B \u0441\u0431\u0440\u043E\u0448\u0435\u043D.","WARNING: Only do this if you no longer have physical access.":"\u0412\u041D\u0418\u041C\u0410\u041D\u0418\u0415: \u0434\u0435\u043B\u0430\u0439\u0442\u0435 \u044D\u0442\u043E \u0442\u043E\u043B\u044C\u043A\u043E \u0432 \u0442\u043E\u043C \u0441\u043B\u0443\u0447\u0430\u0435, \u0435\u0441\u043B\u0438 \u0443 \u0432\u0430\u0441 \u0431\u043E\u043B\u044C\u0448\u0435 \u043D\u0435\u0442 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043A\u043E\u0433\u043E \u0434\u043E\u0441\u0442\u0443\u043F\u0430.","When a node announces itself, it will automatically be included within 10 minutes.":"\u041A\u043E\u0433\u0434\u0430 \u0443\u0437\u0435\u043B \u043E\u0431\u044A\u044F\u0432\u043B\u044F\u0435\u0442 \u043E \u0441\u0435\u0431\u0435, \u043E\u043D \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438 \u0432\u043A\u043B\u044E\u0447\u0430\u0435\u0442\u0441\u044F \u0432 \u0442\u0435\u0447\u0435\u043D\u0438\u0435 10 \u043C\u0438\u043D\u0443\u0442.","Wipes all configuration of the controller. All connected nodes will be orphaned and have to be reset and included into the new network before they can be used again.":"\u0421\u0442\u0438\u0440\u0430\u0435\u0442 \u0432\u0441\u044E \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044E \u043A\u043E\u043D\u0442\u0440\u043E\u043B\u043B\u0435\u0440\u0430. ","Write a detailed logfile":"\u041D\u0430\u043F\u0438\u0448\u0438\u0442\u0435 \u043F\u043E\u0434\u0440\u043E\u0431\u043D\u044B\u0439 \u043B\u043E\u0433-\u0444\u0430\u0439\u043B",yes:"\u0434\u0430","You can try this if the adapter does not start after updating to 2.3 or higher.":"\u0412\u044B \u043C\u043E\u0436\u0435\u0442\u0435 \u043F\u043E\u043F\u0440\u043E\u0431\u043E\u0432\u0430\u0442\u044C \u044D\u0442\u043E, \u0435\u0441\u043B\u0438 \u0430\u0434\u0430\u043F\u0442\u0435\u0440 \u043D\u0435 \u0437\u0430\u043F\u0443\u0441\u043A\u0430\u0435\u0442\u0441\u044F \u043F\u043E\u0441\u043B\u0435 \u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u044F \u0434\u043E \u0432\u0435\u0440\u0441\u0438\u0438 2.3 \u0438\u043B\u0438 \u0432\u044B\u0448\u0435.","Z-Wave Logs":"\u0416\u0443\u0440\u043D\u0430\u043B\u044B Z-Wave","Z-Wave supports the following security mechanisms:":"Z-Wave supports the following security mechanisms:"}});var Lhe=w((cqe,Fhe)=>{Fhe.exports={"- select endpoint -":"- selecione o ponto final -","- select group -":"- selecione o grupo -","- select node -":"- selecione o n\xF3 -","(recommended)":"(recomendado)","(use only when necessary)":"(use apenas quando necess\xE1rio)","abort firmware update":"abortar atualiza\xE7\xE3o de firmware","adapter not ready":"O adaptador n\xE3o est\xE1 em execu\xE7\xE3o ou ainda n\xE3o est\xE1 pronto!","Added SmartStart device":"Adicionado dispositivo SmartStart",alive:"vivo","Already included":"J\xE1 inclu\xEDdo","Already provisioned":"J\xE1 provisionado",asleep:"adormecido",Associations:"Associa\xE7\xF5es","At least one must be granted or the key exchange will be canceled.":"Pelo menos uma deve ser concedida ou a troca da chave ser\xE1 cancelada.","At least one network key is not yet configured. This can cause problems during secure inclusion.":"Pelo menos uma chave de rede ainda n\xE3o foi configurada. ","Auto-scroll to bottom":"Auto-scroll to bottom",awake:"acordado","But read this first!":"Mas leia isto primeiro!",Cancel:"Cancelar","Cancel healing":"Cancelar cura","clear cache procedure":"O adaptador ir\xE1 reiniciar e re-entrevista de todos n\xF3s. Isso pode levar um longo tempo e alguns de n\xF3s podem n\xE3o funcionar como esperado, entretanto.","Click here to select image with QR code":"Clique aqui para selecionar a imagem com o c\xF3digo QR",Close:"Fechar",collisions:"colis\xF5es","Communicating with the device, please be patient...":"Comunicando com o dispositivo, por favor, seja paciente ...","config update disclaimer":"AVISO: esta \xE9 uma funcionalidade experimental. Certifique-se de ter um backup do ioBroker antes de atualizar o banco de dados de configura\xE7\xE3o.","Configuration DB is up to date":"O banco de dados de configura\xE7\xE3o est\xE1 atualizado","Configure the region and radio frequencies of the controller.":"Configure a regi\xE3o e as frequ\xEAncias de r\xE1dio do controlador.","Controller node":"N\xF3 controlador",corrupt:"corrupto",dead:"morto","Default (secure)":"Padr\xE3o (seguro)","Define here which SmartStart capable nodes should be part of the network by entering their DSK and granting security classes.":"Defina aqui quais n\xF3s compat\xEDveis com SmartStart devem fazer parte da rede, inserindo seu DSK e concedendo classes de seguran\xE7a.","Delete association":"Excluir associa\xE7\xE3o","Delete group":"Excluir grupo",Devices:"Dispositivos","Disable restarting the controller on startup":"Desative o rein\xEDcio do controlador na inicializa\xE7\xE3o","Do you really want to remove this node from the network?":"Tem certeza de que deseja remover este n\xF3 da rede?","Do you really want to remove this node from the provisioning list?":"Voc\xEA realmente deseja remover este n\xF3 da lista de provisionamento?","Do you really want to replace this node?":"Voc\xEA realmente deseja substituir este n\xF3?",done:"feito","Done!":"Feito!","Door locks, garage doors":"Fechaduras de portas, portas de garagem","Download logs":"Baixar logs",dropped:"derrubado",DSK:"DSK",Enabled:"Habilitado",Endpoint:"Ponto final","Enter group name":"Digite o nome do grupo",Error:"Erro","Example:":"Exemplo:","Exclude device":"Excluir dispositivo","Exclusion active":"Exclus\xE3o ativa","Factory reset":"Restaura\xE7\xE3o de f\xE1brica","factory reset procedure":"Limpa toda a configura\xE7\xE3o do controlador. ","Factory reset?":"Restaura\xE7\xE3o de f\xE1brica?",failed:"falhou","Failed to scan QR code":"Falha ao ler o c\xF3digo QR","fast and secure":"r\xE1pido e seguro","firmware update failed":"A atualiza\xE7\xE3o de firmware falhou!","firmware update no wait time":"O dispositivo ir\xE1 agora ser re-entrevistados.","firmware update successful":"O firmware atualiza\xE7\xE3o foi bem-sucedida!","firmware update wait time":"O dispositivo vai ser re-entrevistados no {0} segundos.","firmware update wake up":"Voc\xEA pode ter para despertar novamente o dispositivo.","firmware update warning":"AVISO: Use a seu pr\xF3prio risco! N\xF3s n\xE3o tomamos qualquer responsabilidade caso seu dispositivo n\xE3o funcionar ap\xF3s uma actualiza\xE7\xE3o.","For devices without a DSK. Authentication of the inclusion happens on the device instead of in ioBroker.":"Para dispositivos sem DSK. ","Forget all information about all nodes and re-interview them. Battery-powered nodes might need to be woken up manually.":"Esque\xE7a todas as informa\xE7\xF5es sobre todos os n\xF3s e entreviste-os novamente. ","Forget all information about this node and re-interview it. Battery-powered nodes might need to be woken up manually.":"Esque\xE7a todas as informa\xE7\xF5es sobre este n\xF3 e entreviste-o novamente. ","Generate key":"Gerar a chave",Group:"Grupo","Group name":"Nome do grupo",Groups:"Grupos","Heal network":"Curar rede","Heal network finished":"Curar rede terminado","Healing network":"Rede de cura ...","Healing the network was successful!":"A cura da rede foi bem sucedida!","hosted port tip":"Voc\xEA tamb\xE9m pode se conectar a uma porta serial hospedada usando 'tcp://nome-do-host:porta'","Include device":"Incluir dispositivo","Inclusion active":"Inclus\xE3o ativa","Installed version":"Vers\xE3o instalada","Invalid network key":"Chave de rede inv\xE1lida: deve ter 16 bytes (32 caracteres hexadecimais [0-9, a-f])","It will be included automatically when it announces itself.":"Ele ser\xE1 inclu\xEDdo automaticamente quando se anunciar.","Legacy door locks without S2 support":"Fechaduras de porta legadas sem suporte S2","Legacy switch compatibility":"Melhorar a compatibilidade com switches legados","Lighting, sensors, security systems":"Ilumina\xE7\xE3o, sensores, sistemas de seguran\xE7a","Like S2 Authenticated, but without verification that the correct device is included":"Como S2 Authenticated, mas sem verifica\xE7\xE3o de que o dispositivo correto est\xE1 inclu\xEDdo",Name:"Nome","network key confirm":"Isto ir\xE1 substituir o existente chave e a placa de n\xE3o ser capaz de se comunicar com o j\xE1 inclu\xEDdo o seguro de dispositivos. Voc\xEA deseja continuar?","network key tooltip":"16 bytes no formato hexadecimal (32 caracteres de 0-9, a-f). Sem espa\xE7os, sem v\xEDrgulas, sem levar '0x'.","Network keys for secure communication":"Chave de rede para comunica\xE7\xE3o segura","Network map":"Mapa de rede",no:"nenhum","No devices present":"Nenhum dispositivo presente","No encryption":"Sem criptografia","no file selected":"nenhum arquivo selecionado","no multicast explanation":"N\xF3s adormecidos e n\xF3s inclu\xEDdos com Security S0 n\xE3o podem ser usados \u200B\u200Bem grupos multicast.",Node:"N\xF3","Node %s was added successfully!":"O n\xF3% s foi adicionado com sucesso!","Node %s was removed from the network!":"O n\xF3% s foi removido da rede!","Node is not ready":"O n\xF3 n\xE3o est\xE1 pronto","Node successfully added to provisioning list":"N\xF3 adicionado com sucesso \xE0 lista de provisionamento",Nodes:"N\xF3s","Non-secure":"N\xE3o seguro","none selected":"nenhum selecionado","not requested":"N\xE3o solicitado","Note: Applying a different region might take a few seconds.":"Nota: a aplica\xE7\xE3o de uma regi\xE3o diferente pode demorar alguns segundos.",OK:"OK","Only use S0, even if S2 is available. Allows including devices that require security but don't behave correctly during S2 inclusion.":"Use apenas S0, mesmo se S2 estiver dispon\xEDvel. ","Open log in new window":"Abra o log em uma nova janela","opening camera...":"abrindo c\xE2mera ...","Or drag an image file here":"Ou arraste um arquivo de imagem aqui","Pause auto-scrolling":"Pausar rolagem autom\xE1tica","Pause logging":"Pausar registro",pending:"pendente","Please choose an inclusion strategy":"Escolha uma estrat\xE9gia de inclus\xE3o","Please choose which of the following security classes to grant to the new node.":"Escolha qual das seguintes classes de seguran\xE7a conceder ao novo n\xF3.","Please enter the 5-digit PIN for your device and verify that the rest of the device-specific key (DSK) matches the one on your device or the manual.":"Insira o PIN de 5 d\xEDgitos do seu dispositivo e verifique se o resto da chave espec\xEDfica do dispositivo (DSK) corresponde ao do seu dispositivo ou manual.","Prefer S0 over no encryption":"Prefira S0 em vez de nenhuma criptografia","Preserve state names":"N\xE3o sobrescreva nomes de estado","Provision node":"N\xF3 de provis\xE3o","Put your device into exclusion mode":"Coloque seu dispositivo em modo de exclus\xE3o","Put your device into inclusion mode":"Coloque seu dispositivo em modo de inclus\xE3o","Re-interview all":"Entreviste novamente todos","Re-interview all?":"Entrevistar novamente todos?",received:"recebido","Refresh node info":"Atualizar informa\xE7\xF5es do n\xF3","Remove failed node":"Remover n\xF3 com falha","Remove node?":"Remover n\xF3?","Remove this node from the network.":"Remova este n\xF3 da rede.","Removing or disabling an entry does not automatically exclude the node.":"Remover ou desabilitar uma entrada n\xE3o exclui automaticamente o n\xF3.","Replace device":"Substitua o dispositivo","Replace failed node":"Substituir n\xF3 com falha","Replace node?":"Substituir o n\xF3?","Replace this node with a different one, keeping the node ID.":"Substitua este n\xF3 por um diferente, mantendo o ID do n\xF3.","Requires user interaction during the inclusion.":"Requer intera\xE7\xE3o do usu\xE1rio durante a inclus\xE3o.","Restart the controller, e.g. when it hangs":"Reinicie o controlador, por exemplo ","Root device":"Dispositivo raiz","Root endpoint":"Ponto final raiz","Save association":"Salvar associa\xE7\xE3o","Save group":"Salvar grupo","Scan QR Code":"Digitalize o c\xF3digo QR",Secure:"Seguro","secure, but slow due to a lot of overhead":"seguro, mas lento devido a muita sobrecarga",Security:"Seguran\xE7a","Security class: %s":"Classe de seguran\xE7a:% s","Security classes":"Aulas de seguran\xE7a","Security S0":"Seguran\xE7a S0","Security S2 when supported, Security S0 as a fallback, no encryption otherwise.":"Seguran\xE7a S2 quando suportada, Seguran\xE7a S0 como fallback, sem criptografia de outra forma.","Security S2 when supported, Security S0 only when necessary, no encryption otherwise.":"Seguran\xE7a S2 quando suportado, Seguran\xE7a S0 apenas quando necess\xE1rio, caso contr\xE1rio, nenhuma criptografia.","Select at least 2 nodes":"Selecione pelo menos 2 n\xF3s","Select QR code source":"Selecione a fonte do c\xF3digo QR","Select serial port":"Selecionar porta serial","Select the correct region for where you are. Using a different region may be illegal.":"Selecione a regi\xE3o correta para onde voc\xEA est\xE1. ",sent:"enviei","Set RF Region":"Definir regi\xE3o RF",Settings:"Configura\xE7\xF5es",SmartStart:"SmartStart","Soft reset":"Reinicializa\xE7\xE3o suave","Source endpoint":"Ponto final de origem","start firmware update":"iniciar atualiza\xE7\xE3o de firmware","Start logging":"Comece a registrar",Statistics:"Estatisticas",Status:"Status","Subscribed to logs...":"Inscrito em registros ...","Successfully added SmartStart device to provisioning list.":"Dispositivo SmartStart adicionado com sucesso \xE0 lista de provisionamento.","switch compat tooltip":"Substitui o estado 'targetValue' dos switches bin\xE1rios e multin\xEDvel por 'currentValue' para mant\xEA-los sincronizados","Target endpoint":"Ponto final de destino","Target node":"N\xF3 de destino","The association could not be deleted!":"N\xE3o foi poss\xEDvel excluir a associa\xE7\xE3o!","The association could not be saved!":"N\xE3o foi poss\xEDvel salvar a associa\xE7\xE3o!","The controller does not support SmartStart!":"O controlador n\xE3o \xE9 compat\xEDvel com SmartStart!","The device is already included as Node %s":"O dispositivo j\xE1 est\xE1 inclu\xEDdo como N\xF3% s","The device is now being interviewed. It might take a while to show up.":"O dispositivo agora est\xE1 sendo entrevistado. ","The group could not be deleted!":"O grupo n\xE3o p\xF4de ser exclu\xEDdo!","The group could not be saved!":"O grupo n\xE3o p\xF4de ser salvo!","This is not a failed node":"Este n\xE3o \xE9 um n\xF3 com falha","This is not a SmartStart QR code. Use the devices tab to include this node.":"Este n\xE3o \xE9 um c\xF3digo QR SmartStart. ","This is not a valid Z-Wave QR code":"Este n\xE3o \xE9 um c\xF3digo QR Z-Wave v\xE1lido","This node is already on the SmartStart provisioning list":"Este n\xF3 j\xE1 est\xE1 na lista de provisionamento SmartStart","This should only be set for debugging purposes.":"Isso deve ser definido apenas para fins de depura\xE7\xE3o.",timeouts:"tempos limite",Type:"Tipo","Undo changes":"Desfazer mudan\xE7as",unknown:"desconhecido",Unprovision:"Desprovisionamento","Unprovision node?":"N\xF3 de desprovis\xE3o?","Unsubscribed logs...":"Registros n\xE3o inscritos ...","Update configuration DB":"Atualizar banco de dados de configura\xE7\xE3o","Update Firmware":"Atualizar firmware","Update for configuration DB available":"Atualiza\xE7\xE3o para configura\xE7\xE3o do banco de dados dispon\xEDvel","Updating configuration DB - please wait...":"Atualizando o banco de dados de configura\xE7\xE3o - aguarde ...","Updating the configuration DB failed!":"Falha ao atualizar o banco de dados de configura\xE7\xE3o!","wake up device":"Por favor, despertar o dispositivo!","WARNING: Make sure that the node is reset before attempting this.":"AVISO: certifique-se de que o n\xF3 seja redefinido antes de tentar isso.","WARNING: Only do this if you no longer have physical access.":"AVISO: Fa\xE7a isso somente se voc\xEA n\xE3o tiver mais acesso f\xEDsico.","When a node announces itself, it will automatically be included within 10 minutes.":"Quando um n\xF3 se anuncia, ele ser\xE1 inclu\xEDdo automaticamente em 10 minutos.","Wipes all configuration of the controller. All connected nodes will be orphaned and have to be reset and included into the new network before they can be used again.":"Limpa toda a configura\xE7\xE3o do controlador. ","Write a detailed logfile":"Escreva um arquivo de log detalhado",yes:"sim","You can try this if the adapter does not start after updating to 2.3 or higher.":"Voc\xEA pode tentar isso se o adaptador n\xE3o iniciar ap\xF3s a atualiza\xE7\xE3o para 2.3 ou superior.","Z-Wave Logs":"Logs Z-Wave","Z-Wave supports the following security mechanisms:":"Z-Wave supports the following security mechanisms:"}});var Bhe=w((dqe,Whe)=>{Whe.exports={"- select endpoint -":"- selecteer eindpunt -","- select group -":"- selecteer groep -","- select node -":"- selecteer knooppunt -","(recommended)":"(aanbevolen)","(use only when necessary)":"(alleen gebruiken wanneer nodig)","abort firmware update":"firmware-update afbreken","adapter not ready":"De adapter draait niet of is nog niet klaar!","Added SmartStart device":"SmartStart-apparaat toegevoegd",alive:"levend","Already included":"Reeds inbegrepen","Already provisioned":"Reeds ingericht",asleep:"in slaap",Associations:"Verenigingen","At least one must be granted or the key exchange will be canceled.":"Er moet er minimaal \xE9\xE9n worden verleend, anders wordt de sleuteluitwisseling geannuleerd.","At least one network key is not yet configured. This can cause problems during secure inclusion.":"Er is nog geen netwerksleutel geconfigureerd. ","Auto-scroll to bottom":"Automatisch naar beneden scrollen",awake:"wakker","But read this first!":"Maar lees dit eerst!",Cancel:"Annuleren","Cancel healing":"Annuleer genezing","clear cache procedure":"De adapter zal opnieuw starten en alle knooppunten interviewen. Dit kan een lange tijd duren en sommige knooppunten werken niet zoals verwacht in de tussentijd.","Click here to select image with QR code":"Klik hier om een \u200B\u200Bafbeelding met QR-code te selecteren",Close:"Dichtbij",collisions:"botsingen","Communicating with the device, please be patient...":"Communiceren met het apparaat, even geduld...","config update disclaimer":"WAARSCHUWING: dit is een experimentele functionaliteit. Zorg ervoor dat u een ioBroker-back-up hebt voordat u de configuratie-database bijwerkt.","Configuration DB is up to date":"Configuratie-DB is up-to-date","Configure the region and radio frequencies of the controller.":"Configureer de regio en radiofrequenties van de controller.","Controller node":"Controller-knooppunt",corrupt:"corrupt",dead:"dood","Default (secure)":"Standaard (beveiligd)","Define here which SmartStart capable nodes should be part of the network by entering their DSK and granting security classes.":"Definieer hier welke SmartStart-compatibele nodes deel moeten uitmaken van het netwerk door hun DSK in te voeren en beveiligingsklassen toe te kennen.","Delete association":"Koppeling verwijderen","Delete group":"Groep verwijderen",Devices:"Apparaten","Disable restarting the controller on startup":"Schakel het herstarten van de controller bij het opstarten uit","Do you really want to remove this node from the network?":"Wil je deze node echt uit het netwerk verwijderen?","Do you really want to remove this node from the provisioning list?":"Wilt u dit knooppunt echt uit de inrichtingslijst verwijderen?","Do you really want to replace this node?":"Wil je dit knooppunt echt vervangen?",done:"Klaar","Done!":"Gedaan!","Door locks, garage doors":"Deursloten, garagedeuren","Download logs":"Logboeken downloaden",dropped:"liet vallen",DSK:"DSK",Enabled:"Ingeschakeld",Endpoint:"Eindpunt","Enter group name":"Voer groepsnaam in",Error:"Fout","Example:":"Voorbeeld:","Exclude device":"Apparaat uitsluiten","Exclusion active":"Uitsluiting actief","Factory reset":"Fabrieksinstellingen","factory reset procedure":"Wist alle configuratie van de controller. ","Factory reset?":"Fabrieksinstellingen?",failed:"mislukt","Failed to scan QR code":"Kan QR-code niet scannen","fast and secure":"snel en veilig","firmware update failed":"De firmware-update is mislukt!","firmware update no wait time":"Het apparaat zal nu opnieuw worden ge\xEFnterviewd.","firmware update successful":"Firmware-update successvol!","firmware update wait time":"Het apparaat wordt opnieuw bevraagd in {0} seconden.","firmware update wake up":"U moet het apparaat wellicht opnieuw aanspreken.","firmware update warning":"WAARSCHUWING: Gebruik op eigen risico! Wij nemen geen enkele verantwoordelijkheid indien uw apparaten niet werken na een update.","For devices without a DSK. Authentication of the inclusion happens on the device instead of in ioBroker.":"Voor apparaten zonder DSK. ","Forget all information about all nodes and re-interview them. Battery-powered nodes might need to be woken up manually.":"Vergeet alle informatie over alle knooppunten en ondervraag ze opnieuw. ","Forget all information about this node and re-interview it. Battery-powered nodes might need to be woken up manually.":"Vergeet alle informatie over dit knooppunt en ondervraag het opnieuw. ","Generate key":"Sleutel genereren",Group:"Groep","Group name":"Groepsnaam",Groups:"Groepen","Heal network":"Netwerk genezen","Heal network finished":"Netwerk genezen gereed","Healing network":"Netwerk genezen ...","Healing the network was successful!":"Genezen van het netwerk succesvol!","hosted port tip":"U kunt ook verbinding maken met een gehoste seri\xEBle poort met behulp van 'tcp://hostnaam:poort'","Include device":"Apparaat opnemen","Inclusion active":"Opname actief","Installed version":"Ge\xEFnstalleerde versie","Invalid network key":"Ongeldige netwerksleutel: moet 16 bytes zijn (32 hexadecimale tekens [0-9, a-f])","It will be included automatically when it announces itself.":"Het wordt automatisch opgenomen wanneer het zichzelf aankondigt.","Legacy door locks without S2 support":"Legacy deursloten zonder S2-ondersteuning","Legacy switch compatibility":"Verbeter de compatibiliteit met legacy-switches","Lighting, sensors, security systems":"Verlichting, sensoren, beveiligingssystemen","Like S2 Authenticated, but without verification that the correct device is included":"Zoals S2 Authenticated, maar zonder verificatie dat het juiste apparaat is meegeleverd",Name:"Naam","network key confirm":"Dit overschrijft de bestaande sleutel en de adapter niet in staat zijn om te communiceren met de reeds opgenomen veilige apparaten. Wilt u doorgaan?","network key tooltip":"16 bytes in hexadecimale vorm (32 tekens 0-9, a-f). Zonder spaties, zonder kommas, zonder dat dit leidt '0x'.","Network keys for secure communication":"Netwerksleutel voor veilige communicatie","Network map":"Netwerkkaart",no:"nee","No devices present":"Geen apparaten aanwezig","No encryption":"Geen codering","no file selected":"geen bestand geselecteerd","no multicast explanation":"Slaapknooppunten en knooppunten die bij Security S0 worden geleverd, kunnen niet worden gebruikt in multicast-groepen.",Node:"Knooppunt","Node %s was added successfully!":"Knooppunt %s is succesvol toegevoegd!","Node %s was removed from the network!":"Knooppunt %s is verwijderd uit het netwerk!","Node is not ready":"Knooppunt is niet gereed","Node successfully added to provisioning list":"Knooppunt succesvol toegevoegd aan inrichtingslijst",Nodes:"Knooppunten","Non-secure":"Onveilig","none selected":"geen geselecteerd","not requested":"niet aangevraagd","Note: Applying a different region might take a few seconds.":"Opmerking: het toepassen van een andere regio kan enkele seconden duren.",OK:"Oke","Only use S0, even if S2 is available. Allows including devices that require security but don't behave correctly during S2 inclusion.":"Gebruik alleen S0, ook als S2 beschikbaar is. ","Open log in new window":"Open log in nieuw venster","opening camera...":"camera openen...","Or drag an image file here":"Of sleep een afbeeldingsbestand hierheen","Pause auto-scrolling":"Automatisch scrollen pauzeren","Pause logging":"Logboekregistratie pauzeren",pending:"in afwachting","Please choose an inclusion strategy":"Kies een inclusiestrategie","Please choose which of the following security classes to grant to the new node.":"Kies welke van de volgende beveiligingsklassen u aan het nieuwe knooppunt wilt toekennen.","Please enter the 5-digit PIN for your device and verify that the rest of the device-specific key (DSK) matches the one on your device or the manual.":"Voer de 5-cijferige pincode voor uw apparaat in en controleer of de rest van de apparaatspecifieke sleutel (DSK) overeenkomt met die op uw apparaat of de handleiding.","Prefer S0 over no encryption":"Liever S0 dan geen codering","Preserve state names":"Overschrijf geen namen","Provision node":"Voorzieningsknooppunt","Put your device into exclusion mode":"Zet uw apparaat in de uitsluitingsmodus","Put your device into inclusion mode":"Zet uw apparaat in de opnamemodus","Re-interview all":"Allen opnieuw interviewen","Re-interview all?":"Allemaal opnieuw interviewen?",received:"ontvangen","Refresh node info":"Vernieuw knooppuntinfo","Remove failed node":"Verwijder mislukte knoop","Remove node?":"Knooppunt verwijderen?","Remove this node from the network.":"Verwijder dit knooppunt uit het netwerk.","Removing or disabling an entry does not automatically exclude the node.":"Het verwijderen of uitschakelen van een item sluit het knooppunt niet automatisch uit.","Replace device":"Apparaat vervangen","Replace failed node":"Vervang mislukt knooppunt","Replace node?":"Knooppunt vervangen?","Replace this node with a different one, keeping the node ID.":"Vervang dit knooppunt door een ander knooppunt, waarbij de knooppunt-ID behouden blijft.","Requires user interaction during the inclusion.":"Vereist gebruikersinteractie tijdens de opname.","Restart the controller, e.g. when it hangs":"Start de besturing opnieuw, b.v. ","Root device":"Root-apparaat","Root endpoint":"Root eindpunt","Save association":"Bewaar associatie","Save group":"Groep opslaan","Scan QR Code":"Scan QR-code",Secure:"Veilig","secure, but slow due to a lot of overhead":"veilig, maar traag door veel overhead",Security:"Veiligheid","Security class: %s":"Beveiligingsklasse: %s","Security classes":"Beveiligingsklassen","Security S0":"Beveiliging S0","Security S2 when supported, Security S0 as a fallback, no encryption otherwise.":"Security S2 indien ondersteund, Security S0 als fallback, verder geen encryptie.","Security S2 when supported, Security S0 only when necessary, no encryption otherwise.":"Security S2 indien ondersteund, Security S0 alleen indien nodig, anders geen codering.","Select at least 2 nodes":"Selecteer minimaal 2 knooppunten","Select QR code source":"Selecteer QR-codebron","Select serial port":"Selecteer seri\xEBle poort","Select the correct region for where you are. Using a different region may be illegal.":"Selecteer de juiste regio voor waar je bent. ",sent:"verstuurd","Set RF Region":"RF-regio instellen",Settings:"instellingen",SmartStart:"SmartStart","Soft reset":"Zachte reset","Source endpoint":"Bron-eindpunt","start firmware update":"start de firmware-update","Start logging":"Begin met loggen",Statistics:"Statistieken",Status:"Toestand","Subscribed to logs...":"Geabonneerd op logboeken...","Successfully added SmartStart device to provisioning list.":"SmartStart-apparaat is toegevoegd aan de inrichtingslijst.","switch compat tooltip":"Overschrijft de 'targetValue'-status van binaire en multilevel-switches met' currentValue 'om ze synchroon te houden","Target endpoint":"Doel eindpunt","Target node":"Doelknooppunt","The association could not be deleted!":"Koppeling kan niet worden verwijderd!","The association could not be saved!":"Vereniging kan niet worden opgeslagen!","The controller does not support SmartStart!":"De controller ondersteunt SmartStart niet!","The device is already included as Node %s":"Het apparaat is al opgenomen als Node %s","The device is now being interviewed. It might take a while to show up.":"Het apparaat wordt nu ge\xEFnterviewd. ","The group could not be deleted!":"De groep kan niet worden verwijderd!","The group could not be saved!":"De groep kon niet worden gered!","This is not a failed node":"Dit is geen mislukt knooppunt","This is not a SmartStart QR code. Use the devices tab to include this node.":"Dit is geen SmartStart QR-code. ","This is not a valid Z-Wave QR code":"Dit is geen geldige Z-Wave QR-code","This node is already on the SmartStart provisioning list":"Dit knooppunt staat al op de SmartStart-inrichtingslijst","This should only be set for debugging purposes.":"Dit mag alleen worden ingesteld voor foutopsporing.",timeouts:"time-outs",Type:"Type","Undo changes":"Veranderingen terugdraaien",unknown:"onbekend",Unprovision:"Opheffing van de registratie","Unprovision node?":"Knooppunt ongedaan maken?","Unsubscribed logs...":"Uitgeschreven logboeken...","Update configuration DB":"Update configuratie DB","Update Firmware":"Firmware bijwerken","Update for configuration DB available":"Update voor configuratie-database beschikbaar","Updating configuration DB - please wait...":"Update configuratie DB - een ogenblik geduld ...","Updating the configuration DB failed!":"Het bijwerken van de configuratie-database is mislukt!","wake up device":"Activeer alsjeblieft het apparaat!","WARNING: Make sure that the node is reset before attempting this.":"WAARSCHUWING: Zorg ervoor dat het knooppunt opnieuw is ingesteld voordat u dit probeert.","WARNING: Only do this if you no longer have physical access.":"WAARSCHUWING: Doe dit alleen als u geen fysieke toegang meer heeft.","When a node announces itself, it will automatically be included within 10 minutes.":"Wanneer een node zichzelf aankondigt, wordt deze automatisch binnen 10 minuten opgenomen.","Wipes all configuration of the controller. All connected nodes will be orphaned and have to be reset and included into the new network before they can be used again.":"Wist alle configuratie van de controller. ","Write a detailed logfile":"Schrijf een gedetailleerd logbestand",yes:"ja","You can try this if the adapter does not start after updating to 2.3 or higher.":"U kunt dit proberen als de adapter niet start na het updaten naar 2.3 of hoger.","Z-Wave Logs":"Z-Wave-logboeken","Z-Wave supports the following security mechanisms:":"Z-Wave supports the following security mechanisms:"}});var $he=w((fqe,Vhe)=>{Vhe.exports={"- select endpoint -":"- s\xE9lectionner le point final -","- select group -":"- s\xE9lectionner un groupe -","- select node -":"- s\xE9lectionner le noeud -","(recommended)":"(conseill\xE9)","(use only when necessary)":"(\xE0 n'utiliser que si n\xE9cessaire)","abort firmware update":"abandonner la mise \xE0 jour du firmware","adapter not ready":"L'adaptateur ne fonctionne pas ou n'est pas encore pr\xEAt!","Added SmartStart device":"Dispositif SmartStart ajout\xE9",alive:"vivant","Already included":"D\xE9j\xE0 inclus","Already provisioned":"D\xE9j\xE0 provisionn\xE9",asleep:"endormi",Associations:"Les associations","At least one must be granted or the key exchange will be canceled.":"Au moins un doit \xEAtre accord\xE9 ou l'\xE9change de cl\xE9 sera annul\xE9.","At least one network key is not yet configured. This can cause problems during secure inclusion.":"Au moins une cl\xE9 r\xE9seau n'est pas encore configur\xE9e. ","Auto-scroll to bottom":"D\xE9filement automatique vers le bas",awake:"\xE9veill\xE9","But read this first!":"Mais lisez ceci d'abord !",Cancel:"Annuler","Cancel healing":"Annuler la gu\xE9rison","clear cache procedure":"L'adaptateur red\xE9marre et re-interview de tous les n\u0153uds. Cela peut prendre un certain temps et certains n\u0153uds peuvent ne pas fonctionner comme pr\xE9vu dans l'intervalle.","Click here to select image with QR code":"Cliquez ici pour s\xE9lectionner l'image avec le code QR",Close:"proche",collisions:"collisions","Communicating with the device, please be patient...":"Communiquez avec l'appareil, soyez patient...","config update disclaimer":"AVERTISSEMENT: il s'agit d'une fonctionnalit\xE9 exp\xE9rimentale. Assurez-vous que vous disposez d'une sauvegarde ioBroker avant de mettre \xE0 jour la base de donn\xE9es de configuration.","Configuration DB is up to date":"La base de donn\xE9es de configuration est \xE0 jour","Configure the region and radio frequencies of the controller.":"Configurez la r\xE9gion et les fr\xE9quences radio du contr\xF4leur.","Controller node":"N\u0153ud de contr\xF4leur",corrupt:"corrompu",dead:"mort","Default (secure)":"Par d\xE9faut (s\xE9curis\xE9)","Define here which SmartStart capable nodes should be part of the network by entering their DSK and granting security classes.":"D\xE9finissez ici quels n\u0153uds compatibles SmartStart doivent faire partie du r\xE9seau en entrant leur DSK et en accordant des classes de s\xE9curit\xE9.","Delete association":"Supprimer l'association","Delete group":"Supprimer le groupe",Devices:"Dispositifs","Disable restarting the controller on startup":"D\xE9sactiver le red\xE9marrage du contr\xF4leur au d\xE9marrage","Do you really want to remove this node from the network?":"Voulez-vous vraiment supprimer ce n\u0153ud du r\xE9seau\xA0?","Do you really want to remove this node from the provisioning list?":"Voulez-vous vraiment supprimer ce n\u0153ud de la liste d'approvisionnement\xA0?","Do you really want to replace this node?":"Voulez-vous vraiment remplacer ce n\u0153ud\xA0?",done:"termin\xE9","Done!":"Termin\xE9!","Door locks, garage doors":"Serrures de porte, portes de garage","Download logs":"T\xE9l\xE9charger les journaux",dropped:"chut\xE9",DSK:"DSK",Enabled:"Activ\xE9",Endpoint:"Point de terminaison","Enter group name":"Entrez le nom du groupe",Error:"Erreur","Example:":"Exemple:","Exclude device":"Exclure un appareil","Exclusion active":"Exclusion active","Factory reset":"Retour aux param\xE8tres d'usine","factory reset procedure":"proc\xE9dure de r\xE9initialisation d'usine","Factory reset?":"Retour aux param\xE8tres d'usine?",failed:"\xE9chou\xE9","Failed to scan QR code":"\xC9chec de la num\xE9risation du code QR","fast and secure":"rapide et s\xE9curis\xE9","firmware update failed":"La mise \xE0 jour du firmware a \xE9chou\xE9!","firmware update no wait time":"Le dispositif va maintenant \xEAtre \xE0 nouveau interrog\xE9s.","firmware update successful":"La mise \xE0 jour du firmware a \xE9t\xE9 un succ\xE8s!","firmware update wait time":"L'appareil sera interrog\xE9 \xE0 nouveau en {0} secondes.","firmware update wake up":"Vous pourriez avoir \xE0 se r\xE9veiller de nouveau l'appareil.","firmware update warning":"AVERTISSEMENT: Utilisez \xE0 votre propre risque! Nous ne prenons aucune responsabilit\xE9 si vos appareils ne fonctionnent pas apr\xE8s une mise \xE0 jour.","For devices without a DSK. Authentication of the inclusion happens on the device instead of in ioBroker.":"Pour les appareils sans DSK. ","Forget all information about all nodes and re-interview them. Battery-powered nodes might need to be woken up manually.":"Oubliez toutes les informations sur tous les n\u0153uds et r\xE9interrogez-les. ","Forget all information about this node and re-interview it. Battery-powered nodes might need to be woken up manually.":"Oubliez toutes les informations sur ce n\u0153ud et r\xE9interviewez-le. ","Generate key":"G\xE9n\xE9rer la cl\xE9",Group:"Groupe","Group name":"Nom de groupe",Groups:"Groupes","Heal network":"Gu\xE9rir r\xE9seau","Heal network finished":"Gu\xE9rir r\xE9seau fini","Healing network":"R\xE9seau de gu\xE9rison ...","Healing the network was successful!":"La gu\xE9rison du r\xE9seau a r\xE9ussi!","hosted port tip":"Vous pouvez \xE9galement vous connecter \xE0 un port s\xE9rie h\xE9berg\xE9 avec 'tcp://hostname:port'","Include device":"Inclure l'appareil","Inclusion active":"Inclusion active","Installed version":"Version install\xE9e","Invalid network key":"Cl\xE9 r\xE9seau non valide: doit \xEAtre de 16 octets (32 caract\xE8res hexad\xE9cimaux [0-9, a-f])","It will be included automatically when it announces itself.":"Il sera inclus automatiquement lorsqu'il s'annoncera.","Legacy door locks without S2 support":"Serrures de porte h\xE9rit\xE9es sans prise en charge S2","Legacy switch compatibility":"Am\xE9liorez la compatibilit\xE9 avec les anciens commutateurs","Lighting, sensors, security systems":"\xC9clairage, capteurs, syst\xE8mes de s\xE9curit\xE9","Like S2 Authenticated, but without verification that the correct device is included":"Comme S2 Authentifi\xE9, mais sans v\xE9rification que le bon appareil est inclus",Name:"Nom","network key confirm":"Cela permettra de remplacer la cl\xE9 et la carte ne sera pas en mesure de communiquer avec d\xE9j\xE0 inclus dispositifs s\xE9curis\xE9s. Voulez-vous continuer?","network key tooltip":"De 16 octets en hexad\xE9cimal (32 caract\xE8res 0-9, a-f). Sans espaces, sans virgule, sans leader '0x'.","Network keys for secure communication":"Cl\xE9 r\xE9seau pour une communication s\xE9curis\xE9e","Network map":"Carte du r\xE9seau",no:"pas de","No devices present":"Aucun appareil pr\xE9sent","No encryption":"Pas de cryptage","no file selected":"aucun fichier s\xE9lectionn\xE9","no multicast explanation":"Les n\u0153uds endormis et les n\u0153uds inclus avec Security S0 ne peuvent pas \xEAtre utilis\xE9s dans des groupes de multidiffusion.",Node:"N\u0153ud","Node %s was added successfully!":"Le n\u0153ud %s a \xE9t\xE9 ajout\xE9 avec succ\xE8s\xA0!","Node %s was removed from the network!":"Le n\u0153ud %s a \xE9t\xE9 supprim\xE9 du r\xE9seau\xA0!","Node is not ready":"Le n\u0153ud n'est pas pr\xEAt","Node successfully added to provisioning list":"N\u0153ud ajout\xE9 avec succ\xE8s \xE0 la liste d'approvisionnement",Nodes:"N\u0153uds","Non-secure":"Non s\xE9curis\xE9","none selected":"aucune s\xE9lection","not requested":"non demand\xE9","Note: Applying a different region might take a few seconds.":"Remarque\xA0: L'application d'une r\xE9gion diff\xE9rente peut prendre quelques secondes.",OK:"d'accord","Only use S0, even if S2 is available. Allows including devices that require security but don't behave correctly during S2 inclusion.":"N'utilisez que S0, m\xEAme si S2 est disponible. ","Open log in new window":"Ouvrir la connexion dans une nouvelle fen\xEAtre","opening camera...":"ouverture de la cam\xE9ra...","Or drag an image file here":"Ou faites glisser un fichier image ici","Pause auto-scrolling":"Suspendre le d\xE9filement automatique","Pause logging":"Suspendre la journalisation",pending:"en attendant","Please choose an inclusion strategy":"Veuillez choisir une strat\xE9gie d'inclusion","Please choose which of the following security classes to grant to the new node.":"Veuillez choisir laquelle des classes de s\xE9curit\xE9 suivantes accorder au nouveau n\u0153ud.","Please enter the 5-digit PIN for your device and verify that the rest of the device-specific key (DSK) matches the one on your device or the manual.":"Veuillez saisir le code PIN \xE0 5 chiffres de votre appareil et v\xE9rifier que le reste de la cl\xE9 sp\xE9cifique \xE0 l'appareil (DSK) correspond \xE0 celle de votre appareil ou du manuel.","Prefer S0 over no encryption":"Pr\xE9f\xE9rez S0 \xE0 l'absence de cryptage","Preserve state names":"Ne pas \xE9craser les noms d'\xE9tat","Provision node":"Noeud de provisionnement","Put your device into exclusion mode":"Mettez votre appareil en mode d'exclusion","Put your device into inclusion mode":"Mettez votre appareil en mode inclusion","Re-interview all":"R\xE9interviewer tous","Re-interview all?":"R\xE9interviewer tous ?",received:"a re\xE7u","Refresh node info":"Actualiser les informations sur le n\u0153ud","Remove failed node":"Supprimer le n\u0153ud d\xE9faillant","Remove node?":"Supprimer le n\u0153ud\xA0?","Remove this node from the network.":"Supprimez ce n\u0153ud du r\xE9seau.","Removing or disabling an entry does not automatically exclude the node.":"La suppression ou la d\xE9sactivation d'une entr\xE9e n'exclut pas automatiquement le n\u0153ud.","Replace device":"Remplacer l'appareil","Replace failed node":"Remplacer le n\u0153ud d\xE9faillant","Replace node?":"Remplacer le n\u0153ud\xA0?","Replace this node with a different one, keeping the node ID.":"Remplacez ce n\u0153ud par un autre, en conservant l'ID du n\u0153ud.","Requires user interaction during the inclusion.":"N\xE9cessite une interaction de l'utilisateur lors de l'inclusion.","Restart the controller, e.g. when it hangs":"Red\xE9marrez le contr\xF4leur, par ex. ","Root device":"P\xE9riph\xE9rique racine","Root endpoint":"Point de terminaison racine","Save association":"Enregistrer l'association","Save group":"Enregistrer le groupe","Scan QR Code":"Scannez le code QR",Secure:"S\xE9curise","secure, but slow due to a lot of overhead":"s\xE9curis\xE9, mais lent en raison de beaucoup de frais g\xE9n\xE9raux",Security:"S\xE9curit\xE9","Security class: %s":"Classe de s\xE9curit\xE9\xA0: %s","Security classes":"Classes de s\xE9curit\xE9","Security S0":"S\xE9curit\xE9 S0","Security S2 when supported, Security S0 as a fallback, no encryption otherwise.":"Security S2 lorsqu'il est pris en charge, Security S0 comme solution de secours, pas de cryptage sinon.","Security S2 when supported, Security S0 only when necessary, no encryption otherwise.":"Security S2 lorsqu'il est pris en charge, Security S0 uniquement lorsque cela est n\xE9cessaire, aucun cryptage sinon.","Select at least 2 nodes":"S\xE9lectionnez au moins 2 n\u0153uds","Select QR code source":"S\xE9lectionnez la source du code QR","Select serial port":"S\xE9lectionnez le port s\xE9rie","Select the correct region for where you are. Using a different region may be illegal.":"S\xE9lectionnez la bonne r\xE9gion pour l'endroit o\xF9 vous vous trouvez. ",sent:"envoy\xE9","Set RF Region":"D\xE9finir la r\xE9gion RF",Settings:"Param\xE8tres",SmartStart:"SmartStart","Soft reset":"Red\xE9marrage en douceur","Source endpoint":"Point de terminaison source","start firmware update":"d\xE9marrer la mise \xE0 jour du firmware","Start logging":"Commencer \xE0 se connecter",Statistics:"Statistiques",Status:"Statut","Subscribed to logs...":"Abonn\xE9 aux journaux...","Successfully added SmartStart device to provisioning list.":"L'appareil SmartStart a \xE9t\xE9 ajout\xE9 avec succ\xE8s \xE0 la liste d'approvisionnement.","switch compat tooltip":"Remplace l'\xE9tat 'targetValue' des commutateurs binaires et multiniveaux par 'currentValue' pour les garder synchronis\xE9s","Target endpoint":"Point final cible","Target node":"Noeud cible","The association could not be deleted!":"L'association n'a pas pu \xEAtre supprim\xE9e!","The association could not be saved!":"L'association n'a pas pu \xEAtre enregistr\xE9e!","The controller does not support SmartStart!":"Le contr\xF4leur ne prend pas en charge SmartStart\xA0!","The device is already included as Node %s":"Le p\xE9riph\xE9rique est d\xE9j\xE0 inclus en tant que n\u0153ud %s","The device is now being interviewed. It might take a while to show up.":"L'appareil est maintenant interrog\xE9. ","The group could not be deleted!":"Le groupe n'a pas pu \xEAtre supprim\xE9\xA0!","The group could not be saved!":"Le groupe n'a pas pu \xEAtre enregistr\xE9\xA0!","This is not a failed node":"Ce n'est pas un n\u0153ud d\xE9faillant","This is not a SmartStart QR code. Use the devices tab to include this node.":"Ce n'est pas un code QR SmartStart. ","This is not a valid Z-Wave QR code":"Ceci n'est pas un code QR Z-Wave valide","This node is already on the SmartStart provisioning list":"Ce n\u0153ud est d\xE9j\xE0 sur la liste d'approvisionnement SmartStart","This should only be set for debugging purposes.":"Cela ne doit \xEAtre d\xE9fini qu'\xE0 des fins de d\xE9bogage.",timeouts:"d\xE9lais d'attente",Type:"Taper","Undo changes":"Annuler les changements",unknown:"inconnu",Unprovision:"Annuler la mise \xE0 disposition","Unprovision node?":"Annuler l'approvisionnement du n\u0153ud\xA0?","Unsubscribed logs...":"Journaux d\xE9sabonn\xE9s...","Update configuration DB":"Mettre \xE0 jour la base de donn\xE9es de configuration","Update Firmware":"Mise \xE0 jour du firmware","Update for configuration DB available":"Mise \xE0 jour de la base de donn\xE9es de configuration disponible","Updating configuration DB - please wait...":"Mise \xE0 jour de la base de donn\xE9es de configuration - veuillez patienter ...","Updating the configuration DB failed!":"La mise \xE0 jour du DB de configuration a \xE9chou\xE9!","wake up device":"Veuillez activer l'appareil!","WARNING: Make sure that the node is reset before attempting this.":"AVERTISSEMENT : assurez-vous que le n\u0153ud est r\xE9initialis\xE9 avant d'essayer.","WARNING: Only do this if you no longer have physical access.":"AVERTISSEMENT\xA0: Ne faites cela que si vous n'avez plus d'acc\xE8s physique.","When a node announces itself, it will automatically be included within 10 minutes.":"Lorsqu'un n\u0153ud s'annonce, il sera automatiquement inclus dans les 10 minutes.","Wipes all configuration of the controller. All connected nodes will be orphaned and have to be reset and included into the new network before they can be used again.":"Efface toute la configuration du contr\xF4leur. ","Write a detailed logfile":"R\xE9diger un fichier journal d\xE9taill\xE9",yes:"oui","You can try this if the adapter does not start after updating to 2.3 or higher.":"Vous pouvez essayer ceci si l'adaptateur ne d\xE9marre pas apr\xE8s la mise \xE0 jour vers 2.3 ou sup\xE9rieur.","Z-Wave Logs":"Journaux Z-Wave","Z-Wave supports the following security mechanisms:":"Z-Wave supports the following security mechanisms:"}});var Hhe=w((pqe,Uhe)=>{Uhe.exports={"- select endpoint -":"- seleziona endpoint -","- select group -":"- seleziona gruppo -","- select node -":"- seleziona nodo -","(recommended)":"(consigliato)","(use only when necessary)":"(usare solo quando necessario)","abort firmware update":"interrompere l'aggiornamento del firmware","adapter not ready":"L'adattatore non \xE8 in esecuzione o non \xE8 ancora pronto!","Added SmartStart device":"Aggiunto dispositivo SmartStart",alive:"vivo","Already included":"Gi\xE0 incluso","Already provisioned":"Gi\xE0 predisposto",asleep:"addormentato",Associations:"associazioni","At least one must be granted or the key exchange will be canceled.":"Almeno uno deve essere concesso o lo scambio di chiavi verr\xE0 annullato.","At least one network key is not yet configured. This can cause problems during secure inclusion.":"Almeno una chiave di rete non \xE8 ancora configurata. ","Auto-scroll to bottom":"Scorri automaticamente verso il basso",awake:"sveglio","But read this first!":"Ma prima leggi questo!",Cancel:"Annulla","Cancel healing":"Annulla la guarigione","clear cache procedure":"L'adattatore si riavvia e ri-intervista tutti i nodi. Questo pu\xF2 richiedere molto tempo e alcuni nodi potrebbero non funzionare come previsto, nel frattempo.","Click here to select image with QR code":"Clicca qui per selezionare l'immagine con il codice QR",Close:"Chiudere",collisions:"collisioni","Communicating with the device, please be patient...":"Comunicazione con il dispositivo, si prega di pazientare...","config update disclaimer":"ATTENZIONE: questa \xE8 una funzionalit\xE0 sperimentale. Assicurati di avere un backup ioBroker prima di aggiornare il DB di configurazione.","Configuration DB is up to date":"Il DB di configurazione \xE8 aggiornato","Configure the region and radio frequencies of the controller.":"Configurare la regione e le frequenze radio del controller.","Controller node":"Nodo controller",corrupt:"corrotto",dead:"morto","Default (secure)":"Predefinito (sicuro)","Define here which SmartStart capable nodes should be part of the network by entering their DSK and granting security classes.":"Definire qui quali nodi compatibili con SmartStart dovrebbero far parte della rete inserendo il loro DSK e concedendo classi di sicurezza.","Delete association":"Elimina associazione","Delete group":"Elimina gruppo",Devices:"dispositivi","Disable restarting the controller on startup":"Disabilita il riavvio del controller all'avvio","Do you really want to remove this node from the network?":"Vuoi davvero rimuovere questo nodo dalla rete?","Do you really want to remove this node from the provisioning list?":"Vuoi davvero rimuovere questo nodo dall'elenco di provisioning?","Do you really want to replace this node?":"Vuoi davvero sostituire questo nodo?",done:"fatto","Done!":"Fatto!","Door locks, garage doors":"Serrature per porte, porte da garage","Download logs":"Scarica i log",dropped:"caduto",DSK:"DSK",Enabled:"Abilitato",Endpoint:"Endpoint","Enter group name":"Inserisci il nome del gruppo",Error:"Errore","Example:":"Esempio:","Exclude device":"Escludi dispositivo","Exclusion active":"Esclusione attiva","Factory reset":"Ripristino delle impostazioni di fabbrica","factory reset procedure":"procedura di ripristino delle impostazioni di fabbrica","Factory reset?":"Ripristino delle impostazioni di fabbrica?",failed:"mancato","Failed to scan QR code":"Scansione del codice QR non riuscita","fast and secure":"veloce e sicuro","firmware update failed":"L'aggiornamento del firmware non riuscito!","firmware update no wait time":"Il dispositivo sar\xE0 ora nuovamente intervistati.","firmware update successful":"L'aggiornamento del firmware \xE8 stato un successo!","firmware update wait time":"Il dispositivo sar\xE0 nuovamente intervistati in {0} secondi.","firmware update wake up":"Si potrebbe avere a svegliarsi di nuovo il dispositivo.","firmware update warning":"AVVERTENZA: Usare a proprio rischio e pericolo! Non ci assumiamo alcuna responsabilit\xE0 se le periferiche non funzionano dopo l'aggiornamento.","For devices without a DSK. Authentication of the inclusion happens on the device instead of in ioBroker.":"Per dispositivi senza DSK. ","Forget all information about all nodes and re-interview them. Battery-powered nodes might need to be woken up manually.":"Dimentica tutte le informazioni su tutti i nodi e intervistali nuovamente. ","Forget all information about this node and re-interview it. Battery-powered nodes might need to be woken up manually.":"Dimentica tutte le informazioni su questo nodo e intervistalo nuovamente. ","Generate key":"Generare il tasto",Group:"Gruppo","Group name":"Nome del gruppo",Groups:"Gruppi","Heal network":"Guarire rete","Heal network finished":"Guarire rete finito","Healing network":"Rete di guarigione ...","Healing the network was successful!":"La guarigione della rete ha avuto successo!","hosted port tip":"Puoi anche connetterti a una porta seriale ospitata utilizzando il modulo 'tcp://hostname:port'","Include device":"Includi dispositivo","Inclusion active":"Inclusione attiva","Installed version":"Versione installata","Invalid network key":"Chiave di rete non valida: deve essere di 16 byte (32 caratteri esadecimali [0-9, a-f])","It will be included automatically when it announces itself.":"Sar\xE0 incluso automaticamente quando si annuncia.","Legacy door locks without S2 support":"Serrature legacy senza supporto S2","Legacy switch compatibility":"Migliora la compatibilit\xE0 con gli switch legacy","Lighting, sensors, security systems":"Illuminazione, sensori, sistemi di sicurezza","Like S2 Authenticated, but without verification that the correct device is included":"Come S2 Authenticated, ma senza verifica che sia incluso il dispositivo corretto",Name:"Nome","network key confirm":"Questo sovrascriver\xE0 la chiave esistente e l'adattatore non essere in grado di comunicare con gi\xE0 inclusi dispositivi sicuri. Vuoi continuare?","network key tooltip":"16 byte in esadecimale (32 caratteri 0-9, a-f). Senza spazi, senza virgole, senza leader '0x'.","Network keys for secure communication":"Chiave di rete per comunicazioni sicure","Network map":"Mappa di rete",no:"no","No devices present":"Nessun dispositivo presente","No encryption":"Nessuna crittografia","no file selected":"nessun file selezionato","no multicast explanation":"I nodi dormienti e i nodi inclusi con Security S0 non possono essere utilizzati nei gruppi multicast.",Node:"Nodo","Node %s was added successfully!":"Il nodo %s \xE8 stato aggiunto con successo!","Node %s was removed from the network!":"Il nodo %s \xE8 stato rimosso dalla rete!","Node is not ready":"Il nodo non \xE8 pronto","Node successfully added to provisioning list":"Nodo aggiunto con successo all'elenco di provisioning",Nodes:"nodi","Non-secure":"Non sicura","none selected":"Nessuno selezionato","not requested":"non richiesto","Note: Applying a different region might take a few seconds.":"Nota: l'applicazione di una regione diversa potrebbe richiedere alcuni secondi.",OK:"ok","Only use S0, even if S2 is available. Allows including devices that require security but don't behave correctly during S2 inclusion.":"Utilizzare solo S0, anche se S2 \xE8 disponibile. ","Open log in new window":"Apri il log in una nuova finestra","opening camera...":"apertura fotocamera...","Or drag an image file here":"Oppure trascina qui un file immagine","Pause auto-scrolling":"Metti in pausa lo scorrimento automatico","Pause logging":"Metti in pausa la registrazione",pending:"in attesa di","Please choose an inclusion strategy":"Scegli una strategia di inclusione","Please choose which of the following security classes to grant to the new node.":"Scegli quale delle seguenti classi di sicurezza concedere al nuovo nodo.","Please enter the 5-digit PIN for your device and verify that the rest of the device-specific key (DSK) matches the one on your device or the manual.":"Inserisci il PIN a 5 cifre per il tuo dispositivo e verifica che il resto della chiave specifica del dispositivo (DSK) corrisponda a quella sul tuo dispositivo o al manuale.","Prefer S0 over no encryption":"Preferisci S0 a nessuna crittografia","Preserve state names":"Non sovrascrivere i nomi degli stati","Provision node":"Nodo di fornitura","Put your device into exclusion mode":"Metti il \u200B\u200Btuo dispositivo in modalit\xE0 di esclusione","Put your device into inclusion mode":"Metti il \u200B\u200Btuo dispositivo in modalit\xE0 di inclusione","Re-interview all":"Ri-intervista tutti","Re-interview all?":"Ri-intervistare tutti?",received:"ricevuto","Refresh node info":"Aggiorna le informazioni sul nodo","Remove failed node":"Rimuovi nodo non riuscito","Remove node?":"Rimuovere il nodo?","Remove this node from the network.":"Rimuovere questo nodo dalla rete.","Removing or disabling an entry does not automatically exclude the node.":"La rimozione o la disabilitazione di una voce non esclude automaticamente il nodo.","Replace device":"Sostituisci dispositivo","Replace failed node":"Sostituisci nodo fallito","Replace node?":"Sostituire nodo?","Replace this node with a different one, keeping the node ID.":"Sostituisci questo nodo con uno diverso, mantenendo l'ID del nodo.","Requires user interaction during the inclusion.":"Richiede l'interazione dell'utente durante l'inclusione.","Restart the controller, e.g. when it hangs":"Riavviare il controller, ad es. ","Root device":"Dispositivo di root","Root endpoint":"Endpoint radice","Save association":"Salva associazione","Save group":"Salva gruppo","Scan QR Code":"Scansiona il codice QR",Secure:"Sicuro","secure, but slow due to a lot of overhead":"sicuro, ma lento a causa di molte spese generali",Security:"Sicurezza","Security class: %s":"Classe di sicurezza: %s","Security classes":"Classi di sicurezza","Security S0":"Sicurezza S0","Security S2 when supported, Security S0 as a fallback, no encryption otherwise.":"Security S2 se supportato, Security S0 come fallback, altrimenti nessuna crittografia.","Security S2 when supported, Security S0 only when necessary, no encryption otherwise.":"Security S2 quando supportato, Security S0 solo quando necessario, altrimenti nessuna crittografia.","Select at least 2 nodes":"Seleziona almeno 2 nodi","Select QR code source":"Seleziona la fonte del codice QR","Select serial port":"Seleziona la porta seriale","Select the correct region for where you are. Using a different region may be illegal.":"Seleziona la regione corretta per dove ti trovi. ",sent:"spedito","Set RF Region":"Imposta regione RF",Settings:"impostazioni",SmartStart:"SmartStart","Soft reset":"Ripristino software","Source endpoint":"Endpoint di origine","start firmware update":"avviare l'aggiornamento del firmware","Start logging":"Inizia la registrazione",Statistics:"Statistiche",Status:"Stato","Subscribed to logs...":"Iscritto ai log...","Successfully added SmartStart device to provisioning list.":"Dispositivo SmartStart aggiunto correttamente all'elenco di provisioning.","switch compat tooltip":'Sovrascrive lo stato "targetValue" degli switch binari e multilivello con "currentValue" per mantenerli sincronizzati',"Target endpoint":"Endpoint target","Target node":"Nodo di destinazione","The association could not be deleted!":"L'associazione non pu\xF2 essere cancellata!","The association could not be saved!":"L'associazione non pu\xF2 essere salvata!","The controller does not support SmartStart!":"Il controller non supporta SmartStart!","The device is already included as Node %s":"Il dispositivo \xE8 gi\xE0 incluso come Nodo %s","The device is now being interviewed. It might take a while to show up.":"Il dispositivo \xE8 ora in fase di intervista. ","The group could not be deleted!":"Impossibile eliminare il gruppo!","The group could not be saved!":"Impossibile salvare il gruppo!","This is not a failed node":"Questo non \xE8 un nodo fallito","This is not a SmartStart QR code. Use the devices tab to include this node.":"Questo non \xE8 un codice QR SmartStart. ","This is not a valid Z-Wave QR code":"Questo non \xE8 un codice QR Z-Wave valido","This node is already on the SmartStart provisioning list":"Questo nodo \xE8 gi\xE0 nell'elenco di provisioning di SmartStart","This should only be set for debugging purposes.":"Questo dovrebbe essere impostato solo per scopi di debug.",timeouts:"timeout",Type:"genere","Undo changes":"Cancella i cambiamenti",unknown:"sconosciuto",Unprovision:"Annullamento del provisioning","Unprovision node?":"Nodo di annullamento del provisioning?","Unsubscribed logs...":"Registri non iscritti...","Update configuration DB":"Aggiorna DB di configurazione","Update Firmware":"Aggiorna firmware","Update for configuration DB available":"Aggiornamento per DB di configurazione disponibile","Updating configuration DB - please wait...":"Aggiornamento DB di configurazione - attendere ...","Updating the configuration DB failed!":"Aggiornamento del DB di configurazione non riuscito!","wake up device":"Si prega di riattivare il dispositivo!","WARNING: Make sure that the node is reset before attempting this.":"ATTENZIONE: assicurarsi che il nodo sia ripristinato prima di tentare questa operazione.","WARNING: Only do this if you no longer have physical access.":"ATTENZIONE: fallo solo se non hai pi\xF9 accesso fisico.","When a node announces itself, it will automatically be included within 10 minutes.":"Quando un nodo si annuncia, verr\xE0 automaticamente incluso entro 10 minuti.","Wipes all configuration of the controller. All connected nodes will be orphaned and have to be reset and included into the new network before they can be used again.":"Cancella tutta la configurazione del controller. ","Write a detailed logfile":"Scrivi un file di registro dettagliato",yes:"s\xEC","You can try this if the adapter does not start after updating to 2.3 or higher.":"Puoi provare questo se l'adattatore non si avvia dopo l'aggiornamento alla versione 2.3 o successiva.","Z-Wave Logs":"Registri dell'onda Z","Z-Wave supports the following security mechanisms:":"Z-Wave supports the following security mechanisms:"}});var Khe=w((mqe,Ghe)=>{Ghe.exports={"- select endpoint -":"- seleccionar punto final -","- select group -":"- selecciona grupo -","- select node -":"- seleccionar nodo -","(recommended)":"(recomendado)","(use only when necessary)":"(usar solo cuando sea necesario)","abort firmware update":"abortar actualizaci\xF3n de firmware","adapter not ready":"\xA1El adaptador no est\xE1 funcionando o a\xFAn no est\xE1 listo!","Added SmartStart device":"Dispositivo SmartStart agregado",alive:"viva","Already included":"Ya incluido","Already provisioned":"Ya aprovisionado",asleep:"dormido",Associations:"Asociaciones","At least one must be granted or the key exchange will be canceled.":"Se debe otorgar al menos una o se cancelar\xE1 el intercambio de claves.","At least one network key is not yet configured. This can cause problems during secure inclusion.":"Al menos una clave de red a\xFAn no est\xE1 configurada. ","Auto-scroll to bottom":"Desplazamiento autom\xE1tico hasta la parte inferior",awake:"despierto","But read this first!":"\xA1Pero lee esto primero!",Cancel:"Cancelar","Cancel healing":"Cancelar la curaci\xF3n","clear cache procedure":"El adaptador se reinicie y vuelva a entrevistar a todos los nodos. Esto puede tomar mucho tiempo y algunos nodos pueden no funcionar como se espera en el \xEDnterin.","Click here to select image with QR code":"Haga clic aqu\xED para seleccionar la imagen con c\xF3digo QR",Close:"Cerrar",collisions:"colisiones","Communicating with the device, please be patient...":"Comunic\xE1ndose con el dispositivo, tenga paciencia ...","config update disclaimer":"ADVERTENCIA: esta es una funcionalidad experimental. Aseg\xFArese de tener una copia de seguridad de ioBroker antes de actualizar la base de datos de configuraci\xF3n.","Configuration DB is up to date":"La base de datos de configuraci\xF3n est\xE1 actualizada","Configure the region and radio frequencies of the controller.":"Configure la regi\xF3n y las frecuencias de radio del controlador.","Controller node":"Nodo controlador",corrupt:"corrupto",dead:"muerto","Default (secure)":"Predeterminado (seguro)","Define here which SmartStart capable nodes should be part of the network by entering their DSK and granting security classes.":"Defina aqu\xED qu\xE9 nodos con capacidad SmartStart deben formar parte de la red ingresando su DSK y otorgando clases de seguridad.","Delete association":"Eliminar asociaci\xF3n","Delete group":"Eliminar grupo",Devices:"Dispositivos","Disable restarting the controller on startup":"Deshabilitar el reinicio del controlador al inicio","Do you really want to remove this node from the network?":"\xBFRealmente desea eliminar este nodo de la red?","Do you really want to remove this node from the provisioning list?":"\xBFRealmente desea eliminar este nodo de la lista de aprovisionamiento?","Do you really want to replace this node?":"\xBFRealmente quieres reemplazar este nodo?",done:"hecho","Done!":"\xA1Hecho!","Door locks, garage doors":"Cerraduras de puertas, puertas de garaje","Download logs":"Descargar registros",dropped:"abandon\xF3",DSK:"DSK",Enabled:"Activado",Endpoint:"Punto final","Enter group name":"Ingrese el nombre del grupo",Error:"Error","Example:":"Ejemplo:","Exclude device":"Excluir dispositivo","Exclusion active":"Exclusi\xF3n activa","Factory reset":"Restablecimiento de f\xE1brica","factory reset procedure":"procedimiento de restablecimiento de f\xE1brica","Factory reset?":"\xBFRestablecimiento de f\xE1brica?",failed:"ha fallado","Failed to scan QR code":"No se pudo escanear el c\xF3digo QR","fast and secure":"rapido y seguro","firmware update failed":"La actualizaci\xF3n del firmware ha fallado!","firmware update no wait time":"El dispositivo ahora se re-entrevistados.","firmware update successful":"La actualizaci\xF3n del firmware fue un \xE9xito!","firmware update wait time":"El dispositivo ser\xE1 re-entrevistados en {0} segundos.","firmware update wake up":"Usted podr\xEDa tener que activar el dispositivo de nuevo.","firmware update warning":"ADVERTENCIA: Utilice a su propio riesgo! No tomamos ninguna responsabilidad si sus dispositivos no funcionan despu\xE9s de una actualizaci\xF3n.","For devices without a DSK. Authentication of the inclusion happens on the device instead of in ioBroker.":"Para dispositivos sin DSK. ","Forget all information about all nodes and re-interview them. Battery-powered nodes might need to be woken up manually.":"Olv\xEDdese de toda la informaci\xF3n sobre todos los nodos y vuelva a entrevistarlos. ","Forget all information about this node and re-interview it. Battery-powered nodes might need to be woken up manually.":"Olv\xEDdese de toda la informaci\xF3n sobre este nodo y vuelva a entrevistarlo. ","Generate key":"Generar clave",Group:"Grupo","Group name":"Nombre del grupo",Groups:"Grupos","Heal network":"Sanar la red","Heal network finished":"Sanar la red terminado","Healing network":"Red curativa ...","Healing the network was successful!":"\xA1La curaci\xF3n de la red fue exitosa!","hosted port tip":"Tambi\xE9n puede conectarse a un puerto serie alojado mediante 'tcp://nombre-de-host:puerto'","Include device":"Incluir dispositivo","Inclusion active":"Inclusi\xF3n activa","Installed version":"Versi\xF3n instalada","Invalid network key":"Clave de red no v\xE1lida: debe tener 16 bytes (32 caracteres hexadecimales [0-9, a-f])","It will be included automatically when it announces itself.":"Se incluir\xE1 autom\xE1ticamente cuando se anuncie.","Legacy door locks without S2 support":"Cerraduras de puerta heredadas sin soporte S2","Legacy switch compatibility":"Mejore la compatibilidad con conmutadores heredados","Lighting, sensors, security systems":"Iluminaci\xF3n, sensores, sistemas de seguridad","Like S2 Authenticated, but without verification that the correct device is included":"Como S2 Authenticated, pero sin verificaci\xF3n de que se incluye el dispositivo correcto",Name:"Nombre","network key confirm":"Esto sobrescribir\xE1 la clave existente y el adaptador de no ser capaz de comunicarse con ya-incluidos los dispositivos seguros. \xBFDesea continuar?","network key tooltip":"16 bytes en formato hexadecimal (32 caracteres 0-9, a-f). Sin espacios, sin comas, sin l\xEDder '0x'.","Network keys for secure communication":"Clave de red para una comunicaci\xF3n segura","Network map":"Mapa de red",no:"no","No devices present":"No hay dispositivos presentes","No encryption":"Sin cifrado","no file selected":"ning\xFAn archivo seleccionado","no multicast explanation":"Los nodos durmientes y los nodos incluidos con Security S0 no se pueden usar en grupos de multidifusi\xF3n.",Node:"Nodo","Node %s was added successfully!":"\xA1El nodo% s se agreg\xF3 correctamente!","Node %s was removed from the network!":"\xA1El nodo% s fue eliminado de la red!","Node is not ready":"Nodo no esta listo","Node successfully added to provisioning list":"Nodo agregado correctamente a la lista de aprovisionamiento",Nodes:"Nodos","Non-secure":"No seguro","none selected":"ninguna seleccionada","not requested":"no requerido","Note: Applying a different region might take a few seconds.":"Nota: La aplicaci\xF3n de una regi\xF3n diferente puede tardar unos segundos.",OK:"OK","Only use S0, even if S2 is available. Allows including devices that require security but don't behave correctly during S2 inclusion.":"Utilice solo S0, incluso si S2 est\xE1 disponible. ","Open log in new window":"Abrir registro en una nueva ventana","opening camera...":"c\xE1mara de apertura ...","Or drag an image file here":"O arrastre un archivo de imagen aqu\xED","Pause auto-scrolling":"Pausar el desplazamiento autom\xE1tico","Pause logging":"Pausar registro",pending:"pendiente","Please choose an inclusion strategy":"Elija una estrategia de inclusi\xF3n","Please choose which of the following security classes to grant to the new node.":"Elija cu\xE1l de las siguientes clases de seguridad conceder al nuevo nodo.","Please enter the 5-digit PIN for your device and verify that the rest of the device-specific key (DSK) matches the one on your device or the manual.":"Ingrese el PIN de 5 d\xEDgitos de su dispositivo y verifique que el resto de la clave espec\xEDfica del dispositivo (DSK) coincida con la de su dispositivo o el manual.","Prefer S0 over no encryption":"Prefiere S0 sobre ning\xFAn cifrado","Preserve state names":"No sobrescriba los nombres de los estados","Provision node":"Nodo de aprovisionamiento","Put your device into exclusion mode":"Pon tu dispositivo en modo de exclusi\xF3n","Put your device into inclusion mode":"Pon tu dispositivo en modo de inclusi\xF3n","Re-interview all":"Vuelva a entrevistar a todos","Re-interview all?":"\xBFVolver a entrevistar a todos?",received:"recibi\xF3","Refresh node info":"Actualizar informaci\xF3n del nodo","Remove failed node":"Eliminar nodo fallido","Remove node?":"\xBFEliminar nodo?","Remove this node from the network.":"Elimine este nodo de la red.","Removing or disabling an entry does not automatically exclude the node.":"Quitar o deshabilitar una entrada no excluye autom\xE1ticamente el nodo.","Replace device":"Reemplazar dispositivo","Replace failed node":"Reemplazar nodo fallido","Replace node?":"\xBFReemplazar nodo?","Replace this node with a different one, keeping the node ID.":"Reemplace este nodo por uno diferente, manteniendo el ID del nodo.","Requires user interaction during the inclusion.":"Requiere la interacci\xF3n del usuario durante la inclusi\xF3n.","Restart the controller, e.g. when it hangs":"Reinicie el controlador, p. Ej. ","Root device":"Dispositivo ra\xEDz","Root endpoint":"Punto final de la ra\xEDz","Save association":"Guardar asociaci\xF3n","Save group":"Guardar grupo","Scan QR Code":"Escanear c\xF3digo QR",Secure:"Seguro","secure, but slow due to a lot of overhead":"seguro, pero lento debido a una gran cantidad de gastos generales",Security:"Seguridad","Security class: %s":"Clase de seguridad:% s","Security classes":"Clases de seguridad","Security S0":"Seguridad S0","Security S2 when supported, Security S0 as a fallback, no encryption otherwise.":"Security S2 cuando se admite, Security S0 como respaldo, sin cifrado de lo contrario.","Security S2 when supported, Security S0 only when necessary, no encryption otherwise.":"Security S2 cuando se admite, Security S0 solo cuando es necesario, sin cifrado de lo contrario.","Select at least 2 nodes":"Seleccione al menos 2 nodos","Select QR code source":"Seleccione la fuente del c\xF3digo QR","Select serial port":"Seleccionar puerto serie","Select the correct region for where you are. Using a different region may be illegal.":"Seleccione la regi\xF3n correcta para su ubicaci\xF3n. ",sent:"enviado","Set RF Region":"Establecer regi\xF3n de RF",Settings:"Configuraciones",SmartStart:"Inicio inteligente","Soft reset":"Reinicio suave","Source endpoint":"Punto final de origen","start firmware update":"iniciar actualizaci\xF3n de firmware","Start logging":"Empezar a registrar",Statistics:"Estad\xEDsticas",Status:"Estado","Subscribed to logs...":"Suscrito a los registros ...","Successfully added SmartStart device to provisioning list.":"Se agreg\xF3 correctamente el dispositivo SmartStart a la lista de aprovisionamiento.","switch compat tooltip":"Sobrescribe el estado 'targetValue' de los conmutadores binarios y multinivel con 'currentValue' para mantenerlos sincronizados","Target endpoint":"Punto final objetivo","Target node":"Nodo objetivo","The association could not be deleted!":"\xA1La asociaci\xF3n no se pudo eliminar!","The association could not be saved!":"\xA1La asociaci\xF3n no se pudo salvar!","The controller does not support SmartStart!":"\xA1El controlador no es compatible con SmartStart!","The device is already included as Node %s":"El dispositivo ya est\xE1 incluido como Nodo% s","The device is now being interviewed. It might take a while to show up.":"El dispositivo ahora est\xE1 siendo entrevistado. ","The group could not be deleted!":"\xA1No se pudo eliminar el grupo!","The group could not be saved!":"\xA1El grupo no se pudo salvar!","This is not a failed node":"Este no es un nodo fallido","This is not a SmartStart QR code. Use the devices tab to include this node.":"Este no es un c\xF3digo QR SmartStart. ","This is not a valid Z-Wave QR code":"Este no es un c\xF3digo QR de Z-Wave v\xE1lido","This node is already on the SmartStart provisioning list":"Este nodo ya est\xE1 en la lista de aprovisionamiento de SmartStart","This should only be set for debugging purposes.":"Esto solo debe establecerse con fines de depuraci\xF3n.",timeouts:"tiempos muertos",Type:"Tipo","Undo changes":"Deshacer cambios",unknown:"desconocido",Unprovision:"Desaprovisionamiento","Unprovision node?":"\xBFNo aprovisionar el nodo?","Unsubscribed logs...":"Registros cancelados ...","Update configuration DB":"Actualizar la base de datos de configuraci\xF3n","Update Firmware":"Actualice el firmware","Update for configuration DB available":"Actualizaci\xF3n para DB de configuraci\xF3n disponible","Updating configuration DB - please wait...":"Actualizando la base de datos de configuraci\xF3n - espere ...","Updating the configuration DB failed!":"\xA1Error al actualizar la base de datos de configuraci\xF3n!","wake up device":"Por favor, despierta el dispositivo!","WARNING: Make sure that the node is reset before attempting this.":"ADVERTENCIA: aseg\xFArese de que el nodo se reinicie antes de intentar esto.","WARNING: Only do this if you no longer have physical access.":"ADVERTENCIA: solo haga esto si ya no tiene acceso f\xEDsico.","When a node announces itself, it will automatically be included within 10 minutes.":"Cuando un nodo se anuncia a s\xED mismo, se incluir\xE1 autom\xE1ticamente en 10 minutos.","Wipes all configuration of the controller. All connected nodes will be orphaned and have to be reset and included into the new network before they can be used again.":"Limpia toda la configuraci\xF3n del controlador. ","Write a detailed logfile":"Escribir un archivo de registro detallado",yes:"s\xED","You can try this if the adapter does not start after updating to 2.3 or higher.":"Puede probar esto si el adaptador no se inicia despu\xE9s de actualizar a 2.3 o superior.","Z-Wave Logs":"Registros Z-Wave","Z-Wave supports the following security mechanisms:":"Z-Wave supports the following security mechanisms:"}});var Yhe=w((hqe,Jhe)=>{Jhe.exports={"- select endpoint -":"- wybierz punkt ko\u0144cowy -","- select group -":"- wybierz grup\u0119 -","- select node -":"- wybierz w\u0119ze\u0142 -","(recommended)":"(Zalecana)","(use only when necessary)":"(u\u017Cywaj tylko w razie potrzeby)","abort firmware update":"przerwa\u0107 aktualizacj\u0119 oprogramowania","adapter not ready":"Adapter nie dzia\u0142a lub nie jest jeszcze gotowy!","Added SmartStart device":"Dodano urz\u0105dzenie SmartStart",alive:"\u017Cywy","Already included":"Ju\u017C w zestawie","Already provisioned":"Ju\u017C udost\u0119pniono",asleep:"we \u015Bnie",Associations:"Wspomnienia","At least one must be granted or the key exchange will be canceled.":"Przynajmniej jeden musi zosta\u0107 przyznany lub wymiana kluczy zostanie anulowana.","At least one network key is not yet configured. This can cause problems during secure inclusion.":"Co najmniej jeden klucz sieciowy nie zosta\u0142 jeszcze skonfigurowany. ","Auto-scroll to bottom":"Automatyczne przewijanie do do\u0142u",awake:"obudzi\u0107","But read this first!":"Ale przeczytaj to najpierw!",Cancel:"Anuluj","Cancel healing":"Anuluj leczenie","clear cache procedure":"Zasilacz uruchomi si\u0119 ponownie i ponownie przes\u0142ucha\u0107 wszystkich w\u0119z\u0142\xF3w. To mo\u017Ce zaj\u0105\u0107 du\u017Co czasu, a niekt\xF3re witryny mog\u0105 nie dzia\u0142a\u0107 zgodnie z oczekiwaniami w tym czasie.","Click here to select image with QR code":"Kliknij tutaj, aby wybra\u0107 obraz z kodem QR",Close:"Blisko",collisions:"kolizje","Communicating with the device, please be patient...":"Komunikuj\u0105c si\u0119 z urz\u0105dzeniem, prosimy o cierpliwo\u015B\u0107...","config update disclaimer":"OSTRZE\u017BENIE: to jest funkcjonalno\u015B\u0107 eksperymentalna. Upewnij si\u0119, \u017Ce masz kopi\u0119 zapasow\u0105 ioBroker przed aktualizacj\u0105 bazy danych konfiguracji.","Configuration DB is up to date":"Konfiguracja DB jest aktualna","Configure the region and radio frequencies of the controller.":"Skonfiguruj region i cz\u0119stotliwo\u015Bci radiowe kontrolera.","Controller node":"W\u0119ze\u0142 kontrolera",corrupt:"skorumpowany",dead:"nie \u017Cyje","Default (secure)":"Domy\u015Blny (bezpieczny)","Define here which SmartStart capable nodes should be part of the network by entering their DSK and granting security classes.":"Zdefiniuj tutaj, kt\xF3re w\u0119z\u0142y obs\u0142uguj\u0105ce SmartStart powinny by\u0107 cz\u0119\u015Bci\u0105 sieci, wprowadzaj\u0105c ich DSK i przyznaj\u0105c klasy bezpiecze\u0144stwa.","Delete association":"Usu\u0144 powi\u0105zanie","Delete group":"Usu\u0144 grup\u0119",Devices:"Urz\u0105dzenia","Disable restarting the controller on startup":"Wy\u0142\u0105cz ponowne uruchamianie kontrolera przy starcie","Do you really want to remove this node from the network?":"Czy na pewno chcesz usun\u0105\u0107 ten w\u0119ze\u0142 z sieci?","Do you really want to remove this node from the provisioning list?":"Czy na pewno chcesz usun\u0105\u0107 ten w\u0119ze\u0142 z listy aprowizacji?","Do you really want to replace this node?":"Czy na pewno chcesz zast\u0105pi\u0107 ten w\u0119ze\u0142?",done:"gotowy","Done!":"Gotowy!","Door locks, garage doors":"Zamki do drzwi, bramy gara\u017Cowe","Download logs":"Pobierz dzienniki",dropped:"porzucone",DSK:"DSK",Enabled:"W\u0142\u0105czony",Endpoint:"Punkt ko\u0144cowy","Enter group name":"Wpisz nazw\u0119 grupy",Error:"B\u0142\u0105d","Example:":"Przyk\u0142ad:","Exclude device":"Wyklucz urz\u0105dzenie","Exclusion active":"Wykluczenie aktywne","Factory reset":"Przywr\xF3cenie ustawie\u0144 fabrycznych","factory reset procedure":"Wymazuje ca\u0142\u0105 konfiguracj\u0119 kontrolera. ","Factory reset?":"Przywr\xF3cenie ustawie\u0144 fabrycznych?",failed:"nie powiod\u0142o si\u0119","Failed to scan QR code":"Nie uda\u0142o si\u0119 zeskanowa\u0107 kodu QR","fast and secure":"szybki i bezpieczny","firmware update failed":"Aktualizacja oprogramowania nie powiod\u0142a si\u0119!","firmware update no wait time":"Teraz to urz\u0105dzenie b\u0119dzie ponownie przes\u0142uchany.","firmware update successful":"Aktualizacje oprogramowania przebieg\u0142a pomy\u015Blnie!","firmware update wait time":"Urz\u0105dzenie b\u0119dzie ponownie przes\u0142uchany w {0} sekund.","firmware update wake up":"By\u0107 mo\u017Ce trzeba b\u0119dzie ponownie obudzi\u0107 urz\u0105dzenia.","firmware update warning":"Ostrze\u017Cenie: u\u017Cywaj na w\u0142asne ryzyko! Nie ponosimy odpowiedzialno\u015Bci, je\u015Bli twoje urz\u0105dzenie nie dzia\u0142a po aktualizacji.","For devices without a DSK. Authentication of the inclusion happens on the device instead of in ioBroker.":"Dla urz\u0105dze\u0144 bez DSK. ","Forget all information about all nodes and re-interview them. Battery-powered nodes might need to be woken up manually.":"Zapomnij o wszystkich informacjach o wszystkich w\u0119z\u0142ach i ponownie przeprowad\u017A z nimi wywiad. ","Forget all information about this node and re-interview it. Battery-powered nodes might need to be woken up manually.":"Zapomnij o wszystkich informacjach o tym w\u0119\u017Ale i ponownie przeprowad\u017A z nim wywiad. ","Generate key":"Wygenerowa\u0107 klucz",Group:"Grupa","Group name":"Nazwa grupy",Groups:"Grupy","Heal network":"Leczy\u0107 sieci","Heal network finished":"Leczy\u0107 sie\u0107","Healing network":"Sie\u0107 lecznicza ...","Healing the network was successful!":"Uzdrowienie sieci zako\u0144czy\u0142o si\u0119 sukcesem!","hosted port tip":"Mo\u017Cesz tak\u017Ce po\u0142\u0105czy\u0107 si\u0119 z hostowanym portem szeregowym za pomoc\u0105 formularza 'tcp://hosta:port'","Include device":"Uwzgl\u0119dnij urz\u0105dzenie","Inclusion active":"W\u0142\u0105czenie aktywne","Installed version":"Zainstalowana wersja","Invalid network key":"Nieprawid\u0142owy klucz sieciowy: musi mie\u0107 16 bajt\xF3w (32 znaki szesnastkowe [0-9, a-f])","It will be included automatically when it announces itself.":"Zostanie do\u0142\u0105czony automatycznie, gdy si\u0119 og\u0142osi.","Legacy door locks without S2 support":"Starsze zamki do drzwi bez wsparcia S2","Legacy switch compatibility":"Popraw zgodno\u015B\u0107 ze starszymi prze\u0142\u0105cznikami","Lighting, sensors, security systems":"O\u015Bwietlenie, czujniki, systemy bezpiecze\u0144stwa","Like S2 Authenticated, but without verification that the correct device is included":"Jak S2 Authenticated, ale bez weryfikacji, czy do\u0142\u0105czone jest w\u0142a\u015Bciwe urz\u0105dzenie",Name:"Imi\u0119","network key confirm":"Spowoduje to nadpisanie istniej\u0105cego klucza i zasilacz nie b\u0119dzie w stanie komunikowa\u0107 si\u0119 z w\u0142\u0105czonymi ju\u017C chronionych urz\u0105dze\u0144. Czy na pewno chcesz kontynuowa\u0107?","network key tooltip":"16 bajt\xF3w w formacie hex (32 znaki 0-9, a-F). Bez spacji, bez przecink\xF3w, bez wiod\u0105cych '0x'.","Network keys for secure communication":"Klucz sieciowy do bezpiecznej komunikacji","Network map":"Mapa sieci",no:"nie","No devices present":"Brak urz\u0105dze\u0144","No encryption":"Brak szyfrowania","no file selected":"nie wybrano \u017Cadnego pliku","no multicast explanation":"W\u0119z\u0142y u\u015Bpione i w\u0119z\u0142y zawarte w Security S0 nie mog\u0105 by\u0107 u\u017Cywane w grupach multiemisji.",Node:"W\u0119ze\u0142","Node %s was added successfully!":"W\u0119ze\u0142 %s zosta\u0142 pomy\u015Blnie dodany!","Node %s was removed from the network!":"W\u0119ze\u0142 %s zosta\u0142 usuni\u0119ty z sieci!","Node is not ready":"W\u0119ze\u0142 nie jest gotowy","Node successfully added to provisioning list":"W\u0119ze\u0142 pomy\u015Blnie dodany do listy udost\u0119pniania",Nodes:"W\u0119z\u0142y","Non-secure":"Niezabezpieczony","none selected":"nie wybrano","not requested":"nie proszony","Note: Applying a different region might take a few seconds.":"Uwaga: zastosowanie innego regionu mo\u017Ce zaj\u0105\u0107 kilka sekund.",OK:"ok","Only use S0, even if S2 is available. Allows including devices that require security but don't behave correctly during S2 inclusion.":"U\u017Cywaj tylko S0, nawet je\u015Bli S2 jest dost\u0119pny. ","Open log in new window":"Otw\xF3rz logowanie w nowym oknie","opening camera...":"otwieram kamer\u0119...","Or drag an image file here":"Lub przeci\u0105gnij plik obrazu tutaj","Pause auto-scrolling":"Wstrzymaj automatyczne przewijanie","Pause logging":"Wstrzymaj rejestrowanie",pending:"w oczekiwaniu","Please choose an inclusion strategy":"Wybierz strategi\u0119 w\u0142\u0105czenia","Please choose which of the following security classes to grant to the new node.":"Wybierz, kt\xF3r\u0105 z poni\u017Cszych klas zabezpiecze\u0144 chcesz nada\u0107 nowemu w\u0119z\u0142owi.","Please enter the 5-digit PIN for your device and verify that the rest of the device-specific key (DSK) matches the one on your device or the manual.":"Wprowad\u017A 5-cyfrowy kod PIN swojego urz\u0105dzenia i sprawd\u017A, czy reszta klucza specyficznego dla urz\u0105dzenia (DSK) jest zgodna z tym na urz\u0105dzeniu lub w instrukcji.","Prefer S0 over no encryption":"Preferuj S0 zamiast braku szyfrowania","Preserve state names":"Nie nadpisuj nazw stan\xF3w","Provision node":"W\u0119ze\u0142 udost\u0119pniania","Put your device into exclusion mode":"Prze\u0142\u0105cz urz\u0105dzenie w tryb wykluczania","Put your device into inclusion mode":"Prze\u0142\u0105cz urz\u0105dzenie w tryb w\u0142\u0105czenia","Re-interview all":"Przeprowad\u017A ponownie wywiad ze wszystkimi","Re-interview all?":"Ponownie przes\u0142ucha\u0107 wszystkich?",received:"Odebrane","Refresh node info":"Od\u015Bwie\u017C informacje o w\u0119\u017Ale","Remove failed node":"Usu\u0144 uszkodzony w\u0119ze\u0142","Remove node?":"Usun\u0105\u0107 w\u0119ze\u0142?","Remove this node from the network.":"Usu\u0144 ten w\u0119ze\u0142 z sieci.","Removing or disabling an entry does not automatically exclude the node.":"Usuni\u0119cie lub wy\u0142\u0105czenie wpisu nie wyklucza automatycznie w\u0119z\u0142a.","Replace device":"Wymie\u0144 urz\u0105dzenie","Replace failed node":"Zast\u0105p uszkodzony w\u0119ze\u0142","Replace node?":"Zamieni\u0107 w\u0119ze\u0142?","Replace this node with a different one, keeping the node ID.":"Zast\u0105p ten w\u0119ze\u0142 innym, zachowuj\u0105c identyfikator w\u0119z\u0142a.","Requires user interaction during the inclusion.":"Wymaga interakcji u\u017Cytkownika podczas w\u0142\u0105czania.","Restart the controller, e.g. when it hangs":"Zrestartuj kontroler, np. ","Root device":"Urz\u0105dzenie root","Root endpoint":"G\u0142\xF3wny punkt ko\u0144cowy","Save association":"Zapisz skojarzenie","Save group":"Zapisz grup\u0119","Scan QR Code":"Skanowania QR code",Secure:"Bezpieczne","secure, but slow due to a lot of overhead":"bezpieczny, ale powolny ze wzgl\u0119du na du\u017Ce obci\u0105\u017Cenie",Security:"Bezpiecze\u0144stwo","Security class: %s":"Klasa bezpiecze\u0144stwa: %s","Security classes":"Klasy bezpiecze\u0144stwa","Security S0":"Bezpiecze\u0144stwo S0","Security S2 when supported, Security S0 as a fallback, no encryption otherwise.":"Zabezpieczenia S2, gdy s\u0105 obs\u0142ugiwane, Zabezpieczenia S0 jako rezerwa, w przeciwnym razie brak szyfrowania.","Security S2 when supported, Security S0 only when necessary, no encryption otherwise.":"Bezpiecze\u0144stwo S2, gdy jest obs\u0142ugiwane, Bezpiecze\u0144stwo S0 tylko wtedy, gdy jest to konieczne, w przeciwnym razie brak szyfrowania.","Select at least 2 nodes":"Wybierz co najmniej 2 w\u0119z\u0142y","Select QR code source":"Wybierz \u017Ar\xF3d\u0142o kodu QR","Select serial port":"Wybierz port szeregowy","Select the correct region for where you are. Using a different region may be illegal.":"Wybierz odpowiedni region, w kt\xF3rym si\u0119 znajdujesz. ",sent:"wys\u0142ano","Set RF Region":"Ustaw region RF",Settings:"Ustawienia",SmartStart:"SmartStart","Soft reset":"Mi\u0119kki reset","Source endpoint":"\u0179r\xF3d\u0142owy punkt ko\u0144cowy","start firmware update":"rozpocznij aktualizacj\u0119 oprogramowania","Start logging":"Rozpocznij logowanie",Statistics:"Statystyka",Status:"Status","Subscribed to logs...":"Zasubskrybowano logi...","Successfully added SmartStart device to provisioning list.":"Pomy\u015Blnie dodano urz\u0105dzenie SmartStart do listy obs\u0142ugi administracyjnej.","switch compat tooltip":"Zast\u0119puje stan \u201EtargetValue\u201D prze\u0142\u0105cznik\xF3w binarnych i wielopoziomowych warto\u015Bci\u0105 \u201EcurrentValue\u201D, aby zapewni\u0107 ich synchronizacj\u0119","Target endpoint":"Docelowy punkt ko\u0144cowy","Target node":"W\u0119ze\u0142 docelowy","The association could not be deleted!":"Nie mo\u017Cna usun\u0105\u0107 powi\u0105zania!","The association could not be saved!":"Nie mo\u017Cna zapisa\u0107 stowarzyszenia!","The controller does not support SmartStart!":"Sterownik nie obs\u0142uguje SmartStart!","The device is already included as Node %s":"Urz\u0105dzenie jest ju\u017C uwzgl\u0119dnione jako w\u0119ze\u0142 %s","The device is now being interviewed. It might take a while to show up.":"Urz\u0105dzenie jest teraz przes\u0142uchiwane. ","The group could not be deleted!":"Nie uda\u0142o si\u0119 usun\u0105\u0107 grupy!","The group could not be saved!":"Nie uda\u0142o si\u0119 zapisa\u0107 grupy!","This is not a failed node":"To nie jest uszkodzony w\u0119ze\u0142","This is not a SmartStart QR code. Use the devices tab to include this node.":"To nie jest kod QR SmartStart. ","This is not a valid Z-Wave QR code":"To nie jest prawid\u0142owy kod QR Z-Wave","This node is already on the SmartStart provisioning list":"Ten w\u0119ze\u0142 znajduje si\u0119 ju\u017C na li\u015Bcie udost\u0119pniania SmartStart","This should only be set for debugging purposes.":"Nale\u017Cy to ustawi\u0107 tylko w celu debugowania.",timeouts:"limity czasu",Type:"Rodzaj","Undo changes":"Cofnij zmiany",unknown:"nieznany",Unprovision:"Anuluj udost\u0119pnienie","Unprovision node?":"Cofn\u0105\u0107 aprowizacj\u0119 w\u0119z\u0142a?","Unsubscribed logs...":"Niesubskrybowane dzienniki...","Update configuration DB":"Zaktualizuj baz\u0119 danych konfiguracji","Update Firmware":"Aktualizacja oprogramowania","Update for configuration DB available":"Dost\u0119pna aktualizacja konfiguracji bazy danych","Updating configuration DB - please wait...":"Aktualizowanie bazy danych konfiguracji - prosz\u0119 czeka\u0107 ...","Updating the configuration DB failed!":"Aktualizacja bazy danych konfiguracji nie powiod\u0142a si\u0119!","wake up device":"Prosz\u0119 si\u0119 obudzi\u0107 urz\u0105dzenie!","WARNING: Make sure that the node is reset before attempting this.":"OSTRZE\u017BENIE: Upewnij si\u0119, \u017Ce w\u0119ze\u0142 jest zresetowany przed pr\xF3b\u0105 tego.","WARNING: Only do this if you no longer have physical access.":"OSTRZE\u017BENIE: Zr\xF3b to tylko wtedy, gdy nie masz ju\u017C fizycznego dost\u0119pu.","When a node announces itself, it will automatically be included within 10 minutes.":"Gdy w\u0119ze\u0142 si\u0119 og\u0142osi, zostanie automatycznie uwzgl\u0119dniony w ci\u0105gu 10 minut.","Wipes all configuration of the controller. All connected nodes will be orphaned and have to be reset and included into the new network before they can be used again.":"Wymazuje ca\u0142\u0105 konfiguracj\u0119 kontrolera. ","Write a detailed logfile":"Napisz szczeg\xF3\u0142owy plik dziennika",yes:"tak","You can try this if the adapter does not start after updating to 2.3 or higher.":"Mo\u017Cesz spr\xF3bowa\u0107 tego, je\u015Bli adapter nie uruchamia si\u0119 po aktualizacji do wersji 2.3 lub nowszej.","Z-Wave Logs":"Dzienniki Z-Wave","Z-Wave supports the following security mechanisms:":"Z-Wave supports the following security mechanisms:"}});var Zhe=w((vqe,Qhe)=>{Qhe.exports={"- select endpoint -":"-\u9009\u62E9\u7AEF\u70B9-","- select group -":"-\u9009\u62E9\u7EC4-","- select node -":"-\u9009\u62E9\u8282\u70B9-","(recommended)":"\uFF08\u53D7\u5230\u63A8\u5D07\u7684\uFF09","(use only when necessary)":"\uFF08\u4EC5\u5728\u5FC5\u8981\u65F6\u4F7F\u7528\uFF09","abort firmware update":"\u4E2D\u6B62\u56FA\u4EF6\u66F4\u65B0","adapter not ready":"\u9002\u914D\u5668\u672A\u8FD0\u884C\u6216\u5C1A\u672A\u51C6\u5907\u597D\uFF01","Added SmartStart device":"\u6DFB\u52A0\u4E86 SmartStart \u8BBE\u5907",alive:"\u6D3B","Already included":"\u5DF2\u5305\u542B","Already provisioned":"\u5DF2\u914D\u7F6E",asleep:"\u7761\u7740\u4E86",Associations:"\u793E\u56E2\u534F\u4F1A","At least one must be granted or the key exchange will be canceled.":"\u5FC5\u987B\u81F3\u5C11\u6388\u4E88\u4E00\u9879\uFF0C\u5426\u5219\u5C06\u53D6\u6D88\u5BC6\u94A5\u4EA4\u6362\u3002","At least one network key is not yet configured. This can cause problems during secure inclusion.":"\u81F3\u5C11\u4E00\u4E2A\u7F51\u7EDC\u5BC6\u94A5\u5C1A\u672A\u914D\u7F6E\u3002","Auto-scroll to bottom":"\u81EA\u52A8\u6EDA\u52A8\u5230\u5E95\u90E8",awake:"\u82CF\u9192","But read this first!":"\u4F46\u8BF7\u5148\u9605\u8BFB\u6B64\u5185\u5BB9\uFF01",Cancel:"\u53D6\u6D88","Cancel healing":"\u53D6\u6D88\u6CBB\u7597","clear cache procedure":"\u9002\u914D\u5668\u5C06\u91CD\u65B0\u542F\u52A8\u548C\u91CD\u65B0\u9762\u8BD5\u7684\u6240\u6709\u8282\u70B9\u3002 \u8FD9\u53EF\u80FD\u9700\u8981\u5F88\u957F\u7684\u65F6\u95F4\u548C\u4E00\u4E9B\u8282\u70B9\u53EF\u80FD\u65E0\u6CD5\u6309\u9884\u671F\u7684\u65B9\u5F0F\u5DE5\u4F5C\u3002","Click here to select image with QR code":"\u70B9\u51FB\u8FD9\u91CC\u9009\u62E9\u5E26\u6709\u4E8C\u7EF4\u7801\u7684\u56FE\u7247",Close:"\u5173\u95ED",collisions:"\u78B0\u649E","Communicating with the device, please be patient...":"\u6B63\u5728\u4E0E\u8BBE\u5907\u901A\u4FE1\uFF0C\u8BF7\u8010\u5FC3\u7B49\u5F85...","config update disclaimer":"\u8B66\u544A\uFF1A\u8FD9\u662F\u5B9E\u9A8C\u6027\u529F\u80FD\u3002\u5728\u66F4\u65B0\u914D\u7F6E\u6570\u636E\u5E93\u4E4B\u524D\uFF0C\u8BF7\u786E\u4FDD\u60A8\u5177\u6709ioBroker\u5907\u4EFD\u3002","Configuration DB is up to date":"\u914D\u7F6E\u6570\u636E\u5E93\u662F\u6700\u65B0\u7684","Configure the region and radio frequencies of the controller.":"\u914D\u7F6E\u63A7\u5236\u5668\u7684\u533A\u57DF\u548C\u5C04\u9891\u3002","Controller node":"\u63A7\u5236\u5668\u8282\u70B9",corrupt:"\u8150\u8D25",dead:"\u6B7B","Default (secure)":"\u9ED8\u8BA4\uFF08\u5B89\u5168\uFF09","Define here which SmartStart capable nodes should be part of the network by entering their DSK and granting security classes.":"\u901A\u8FC7\u8F93\u5165\u5B83\u4EEC\u7684 DSK \u5E76\u6388\u4E88\u5B89\u5168\u7B49\u7EA7\uFF0C\u5728\u6B64\u5904\u5B9A\u4E49\u54EA\u4E9B\u652F\u6301 SmartStart \u7684\u8282\u70B9\u5E94\u6210\u4E3A\u7F51\u7EDC\u7684\u4E00\u90E8\u5206\u3002","Delete association":"\u5220\u9664\u5173\u8054","Delete group":"\u5220\u9664\u7FA4\u7EC4",Devices:"\u8BBE\u5907","Disable restarting the controller on startup":"\u7981\u6B62\u5728\u542F\u52A8\u65F6\u91CD\u65B0\u542F\u52A8\u63A7\u5236\u5668","Do you really want to remove this node from the network?":"\u60A8\u771F\u7684\u8981\u4ECE\u7F51\u7EDC\u4E2D\u5220\u9664\u6B64\u8282\u70B9\u5417\uFF1F","Do you really want to remove this node from the provisioning list?":"\u60A8\u771F\u7684\u8981\u4ECE\u4F9B\u5E94\u5217\u8868\u4E2D\u5220\u9664\u6B64\u8282\u70B9\u5417\uFF1F","Do you really want to replace this node?":"\u4F60\u771F\u7684\u8981\u66F4\u6362\u8FD9\u4E2A\u8282\u70B9\u5417\uFF1F",done:"\u5B8C\u6210","Done!":"\u505A\u5B8C\u4E86\uFF01","Door locks, garage doors":"\u95E8\u9501\u3001\u8F66\u5E93\u95E8","Download logs":"\u4E0B\u8F7D\u65E5\u5FD7",dropped:"\u6389\u7EBF",DSK:"DSK",Enabled:"\u542F\u7528",Endpoint:"\u7EC8\u70B9","Enter group name":"\u8F93\u5165\u7EC4\u540D",Error:"\u9519\u8BEF","Example:":"\u4F8B\u5B50\uFF1A","Exclude device":"\u6392\u9664\u88C5\u7F6E","Exclusion active":"\u6392\u9664\u6FC0\u6D3B","Factory reset":"\u6062\u590D\u51FA\u5382\u8BBE\u7F6E","factory reset procedure":"\u64E6\u9664\u63A7\u5236\u5668\u7684\u6240\u6709\u914D\u7F6E\u3002","Factory reset?":"\u6062\u590D\u51FA\u5382\u8BBE\u7F6E\uFF1F",failed:"\u5931\u8D25\u4E86","Failed to scan QR code":"\u65E0\u6CD5\u626B\u63CF\u4E8C\u7EF4\u7801","fast and secure":"\u5FEB\u901F\u5B89\u5168","firmware update failed":"\u5347\u7EA7\u5931\u8D25\u4E86\uFF01","firmware update no wait time":"\u8BE5\u8BBE\u5907\u73B0\u5728\u5C06\u91CD\u65B0\u8FDB\u884C\u4E86\u91C7\u8BBF\u3002","firmware update successful":"\u56FA\u4EF6\u7684\u66F4\u65B0\u662F\u6210\u529F\u7684\uFF01","firmware update wait time":"\u8BE5\u8BBE\u5907\u5C06\u91CD\u65B0\u91C7\u8BBF\u4E86{0}\u79D2\u949F\u3002","firmware update wake up":"\u4F60\u53EF\u80FD\u5DF2\u7ECF\u9192\u6765\u7684\u8BBE\u5907\u3002","firmware update warning":"\u8B66\u544A\uFF1A\u4F7F\u7528\u5728\u81EA\u5DF1\u7684\u98CE\u9669\uFF01 \u6211\u4EEC\u4E0D\u91C7\u53D6\u4EFB\u4F55\u8D23\u4EFB\uFF0C\u5982\u679C\u4F60\u7684\u8BBE\u5907\u4E0D\u5DE5\u4F5C\u4E4B\u540E\u66F4\u65B0\u3002","For devices without a DSK. Authentication of the inclusion happens on the device instead of in ioBroker.":"\u5BF9\u4E8E\u6CA1\u6709 DSK \u7684\u8BBE\u5907\u3002","Forget all information about all nodes and re-interview them. Battery-powered nodes might need to be woken up manually.":"\u5FD8\u8BB0\u6240\u6709\u8282\u70B9\u7684\u6240\u6709\u4FE1\u606F\u5E76\u91CD\u65B0\u91C7\u8BBF\u5B83\u4EEC\u3002","Forget all information about this node and re-interview it. Battery-powered nodes might need to be woken up manually.":"\u5FD8\u8BB0\u6709\u5173\u6B64\u8282\u70B9\u7684\u6240\u6709\u4FE1\u606F\u5E76\u91CD\u65B0\u8BBF\u95EE\u5B83\u3002","Generate key":"\u751F\u6210\u5BC6\u94A5",Group:"\u7EC4","Group name":"\u56E2\u961F\u540D\u5B57",Groups:"\u56E2\u4F53","Heal network":"\u533B\u6CBB\u7F51\u7EDC","Heal network finished":"\u6108\u5408\u7684\u7F51\u7EDC\u4E2D\u5B8C\u6210\u7684","Healing network":"\u4FEE\u590D\u7F51\u7EDC...","Healing the network was successful!":"\u7F51\u7EDC\u4FEE\u590D\u6210\u529F\uFF01","hosted port tip":"\u60A8\u8FD8\u53EF\u4EE5\u4F7F\u7528'tcp\uFF1A//hostname\uFF1Aport'\u683C\u5F0F\u8FDE\u63A5\u5230\u6258\u7BA1\u4E32\u884C\u7AEF\u53E3\u3002","Include device":"\u5305\u542B\u88C5\u7F6E","Inclusion active":"\u5305\u542B\u6D3B\u52A8","Installed version":"\u5B89\u88C5\u7248\u672C","Invalid network key":"\u65E0\u6548\u7684\u7F51\u7EDC\u5BC6\u94A5\uFF1A\u5FC5\u987B\u4E3A16\u4E2A\u5B57\u8282\uFF0832\u4E2A\u5341\u516D\u8FDB\u5236\u5B57\u7B26[0-9\uFF0Ca-f]\uFF09","It will be included automatically when it announces itself.":"\u5B83\u5C06\u5728\u5BA3\u5E03\u81EA\u5DF1\u65F6\u81EA\u52A8\u5305\u542B\u5728\u5185\u3002","Legacy door locks without S2 support":"\u4E0D\u652F\u6301 S2 \u7684\u4F20\u7EDF\u95E8\u9501","Legacy switch compatibility":"\u6539\u5584\u4E0E\u4F20\u7EDF\u4EA4\u6362\u673A\u7684\u517C\u5BB9\u6027","Lighting, sensors, security systems":"\u7167\u660E\u3001\u4F20\u611F\u5668\u3001\u5B89\u5168\u7CFB\u7EDF","Like S2 Authenticated, but without verification that the correct device is included":"\u7C7B\u4F3C\u4E8E S2 Authenticated\uFF0C\u4F46\u6CA1\u6709\u9A8C\u8BC1\u662F\u5426\u5305\u542B\u6B63\u786E\u7684\u8BBE\u5907",Name:"\u540D\u79F0","network key confirm":"\u8FD9\u5C06\u590D\u76D6\u73B0\u6709\u5173\u952E\u548C\u9002\u914D\u5668\u4E0D\u80FD\u591F\u4E0E\u5DF2\u5217\u5165\u5B89\u5168\u7684\u8BBE\u5907\u3002 \u4F60\u60F3\u7EE7\u7EED\u5417\uFF1F","network key tooltip":"16\u5B57\u8282\u8FDB\u5236\u5F62\u5F0F(32\u5B570-9\uFF0Ca-f)\u3002 \u6CA1\u6709\u7A7A\u95F4\uFF0C\u6CA1\u6709\u9017\u53F7\uFF0C\u800C\u4E0D\u5BFC\u81F4'0x'.","Network keys for secure communication":"\u7528\u4E8E\u5B89\u5168\u901A\u4FE1\u7684\u7F51\u7EDC\u5BC6\u94A5","Network map":"\u7F51\u7EDC\u56FE",no:"\u6CA1\u6709","No devices present":"\u6CA1\u6709\u8BBE\u5907","No encryption":"\u65E0\u52A0\u5BC6","no file selected":"\u672A\u9009\u62E9\u6587\u4EF6","no multicast explanation":"\u7761\u7720\u8282\u70B9\u548C Security S0 \u4E2D\u5305\u542B\u7684\u8282\u70B9\u4E0D\u80FD\u7528\u4E8E\u591A\u64AD\u7EC4\u3002",Node:"\u8282\u70B9","Node %s was added successfully!":"\u8282\u70B9 %s \u6DFB\u52A0\u6210\u529F\uFF01","Node %s was removed from the network!":"\u8282\u70B9 %s \u5DF2\u4ECE\u7F51\u7EDC\u4E2D\u5220\u9664\uFF01","Node is not ready":"\u8282\u70B9\u5C1A\u672A\u51C6\u5907\u597D","Node successfully added to provisioning list":"\u8282\u70B9\u5DF2\u6210\u529F\u6DFB\u52A0\u5230\u914D\u7F6E\u5217\u8868",Nodes:"\u8282\u70B9","Non-secure":"\u4E0D\u5B89\u5168","none selected":"\u672A\u9009\u62E9","not requested":"\u6CA1\u6709\u88AB\u8981\u6C42","Note: Applying a different region might take a few seconds.":"\u6CE8\u610F\uFF1A\u5E94\u7528\u4E0D\u540C\u7684\u533A\u57DF\u53EF\u80FD\u9700\u8981\u51E0\u79D2\u949F\u3002",OK:"\u597D\u7684","Only use S0, even if S2 is available. Allows including devices that require security but don't behave correctly during S2 inclusion.":"\u4EC5\u4F7F\u7528 S0\uFF0C\u5373\u4F7F S2 \u53EF\u7528\u3002","Open log in new window":"\u5728\u65B0\u7A97\u53E3\u6253\u5F00\u767B\u5F55","opening camera...":"\u6253\u5F00\u76F8\u673A...","Or drag an image file here":"\u6216\u5C06\u56FE\u50CF\u6587\u4EF6\u62D6\u5230\u6B64\u5904","Pause auto-scrolling":"\u6682\u505C\u81EA\u52A8\u6EDA\u52A8","Pause logging":"\u6682\u505C\u8BB0\u5F55",pending:"\u5F85\u5B9A","Please choose an inclusion strategy":"\u8BF7\u9009\u62E9\u5305\u542B\u7B56\u7565","Please choose which of the following security classes to grant to the new node.":"\u8BF7\u9009\u62E9\u4EE5\u4E0B\u54EA\u4E2A\u5B89\u5168\u7B49\u7EA7\u6388\u4E88\u65B0\u8282\u70B9\u3002","Please enter the 5-digit PIN for your device and verify that the rest of the device-specific key (DSK) matches the one on your device or the manual.":"\u8BF7\u8F93\u5165\u60A8\u8BBE\u5907\u7684 5 \u4F4D PIN \u7801\uFF0C\u5E76\u9A8C\u8BC1\u8BBE\u5907\u7279\u5B9A\u5BC6\u94A5 (DSK) \u7684\u5176\u4F59\u90E8\u5206\u662F\u5426\u4E0E\u60A8\u7684\u8BBE\u5907\u6216\u624B\u518C\u4E0A\u7684\u5339\u914D\u3002","Prefer S0 over no encryption":"\u6BD4\u4E0D\u52A0\u5BC6\u66F4\u559C\u6B22 S0","Preserve state names":"\u4E0D\u8981\u8986\u76D6\u72B6\u6001\u540D\u79F0","Provision node":"\u4F9B\u5E94\u8282\u70B9","Put your device into exclusion mode":"\u5C06\u60A8\u7684\u8BBE\u5907\u7F6E\u4E8E\u6392\u9664\u6A21\u5F0F","Put your device into inclusion mode":"\u5C06\u60A8\u7684\u8BBE\u5907\u7F6E\u4E8E\u5305\u542B\u6A21\u5F0F","Re-interview all":"\u91CD\u65B0\u9762\u8BD5\u6240\u6709","Re-interview all?":"\u5168\u90E8\u91CD\u65B0\u9762\u8BD5\uFF1F",received:"\u5DF2\u6536\u5230","Refresh node info":"\u5237\u65B0\u8282\u70B9\u4FE1\u606F","Remove failed node":"\u5220\u9664\u6545\u969C\u8282\u70B9","Remove node?":"\u5220\u9664\u8282\u70B9\uFF1F","Remove this node from the network.":"\u4ECE\u7F51\u7EDC\u4E2D\u5220\u9664\u6B64\u8282\u70B9\u3002","Removing or disabling an entry does not automatically exclude the node.":"\u5220\u9664\u6216\u7981\u7528\u6761\u76EE\u4E0D\u4F1A\u81EA\u52A8\u6392\u9664\u8BE5\u8282\u70B9\u3002","Replace device":"\u66F4\u6362\u8BBE\u5907","Replace failed node":"\u66F4\u6362\u6545\u969C\u8282\u70B9","Replace node?":"\u66F4\u6362\u8282\u70B9\uFF1F","Replace this node with a different one, keeping the node ID.":"\u7528\u53E6\u4E00\u4E2A\u8282\u70B9\u66FF\u6362\u8FD9\u4E2A\u8282\u70B9\uFF0C\u4FDD\u7559\u8282\u70B9 ID\u3002","Requires user interaction during the inclusion.":"\u5728\u5305\u542B\u671F\u95F4\u9700\u8981\u7528\u6237\u4EA4\u4E92\u3002","Restart the controller, e.g. when it hangs":"\u91CD\u65B0\u542F\u52A8\u63A7\u5236\u5668\uFF0C\u4F8B\u5982","Root device":"\u6839\u8BBE\u5907","Root endpoint":"\u6839\u7AEF\u70B9","Save association":"\u4FDD\u5B58\u5173\u8054","Save group":"\u4FDD\u5B58\u7EC4","Scan QR Code":"\u626B\u63CF\u4E8C\u7EF4\u7801",Secure:"\u5B89\u5168","secure, but slow due to a lot of overhead":"\u5B89\u5168\uFF0C\u4F46\u7531\u4E8E\u5927\u91CF\u5F00\u9500\u800C\u7F13\u6162",Security:"\u5B89\u5168","Security class: %s":"\u5B89\u5168\u7B49\u7EA7\uFF1A%s","Security classes":"\u5B89\u5168\u7C7B","Security S0":"\u5B89\u5168 S0","Security S2 when supported, Security S0 as a fallback, no encryption otherwise.":"\u652F\u6301\u5B89\u5168 S2\uFF0C\u5B89\u5168 S0 \u4F5C\u4E3A\u540E\u5907\uFF0C\u5426\u5219\u4E0D\u52A0\u5BC6\u3002","Security S2 when supported, Security S0 only when necessary, no encryption otherwise.":"\u652F\u6301\u5B89\u5168 S2\uFF0C\u4EC5\u5728\u5FC5\u8981\u65F6\u5B89\u5168 S0\uFF0C\u5426\u5219\u4E0D\u52A0\u5BC6\u3002","Select at least 2 nodes":"\u9009\u62E9\u81F3\u5C11 2 \u4E2A\u8282\u70B9","Select QR code source":"\u9009\u62E9\u4E8C\u7EF4\u7801\u6765\u6E90","Select serial port":"\u9009\u62E9\u4E32\u53E3","Select the correct region for where you are. Using a different region may be illegal.":"\u4E3A\u60A8\u6240\u5728\u7684\u4F4D\u7F6E\u9009\u62E9\u6B63\u786E\u7684\u533A\u57DF\u3002",sent:"\u53D1\u9001","Set RF Region":"\u8BBE\u7F6E\u5C04\u9891\u533A\u57DF",Settings:"\u8BBE\u7F6E",SmartStart:"\u667A\u80FD\u542F\u52A8","Soft reset":"\u8F6F\u590D\u4F4D","Source endpoint":"\u6E90\u7AEF\u70B9","start firmware update":"\u5F00\u59CB\u56FA\u4EF6\u66F4\u65B0","Start logging":"\u5F00\u59CB\u8BB0\u5F55",Statistics:"\u7EDF\u8BA1\u6570\u636E",Status:"\u72B6\u6001","Subscribed to logs...":"\u8BA2\u9605\u65E5\u5FD7...","Successfully added SmartStart device to provisioning list.":"\u5DF2\u6210\u529F\u5C06 SmartStart \u8BBE\u5907\u6DFB\u52A0\u5230\u914D\u7F6E\u5217\u8868\u3002","switch compat tooltip":"\u7528'currentValue'\u8986\u76D6\u4E8C\u8FDB\u5236\u548C\u591A\u7EA7\u5F00\u5173\u7684'targetValue'\u72B6\u6001\uFF0C\u4EE5\u4F7F\u5176\u4FDD\u6301\u540C\u6B65","Target endpoint":"\u76EE\u6807\u7EC8\u70B9","Target node":"\u76EE\u6807\u8282\u70B9","The association could not be deleted!":"\u8BE5\u5173\u8054\u65E0\u6CD5\u5220\u9664\uFF01","The association could not be saved!":"\u5173\u8054\u65E0\u6CD5\u4FDD\u5B58\uFF01","The controller does not support SmartStart!":"\u63A7\u5236\u5668\u4E0D\u652F\u6301 SmartStart\uFF01","The device is already included as Node %s":"\u8BE5\u8BBE\u5907\u5DF2\u4F5C\u4E3A\u8282\u70B9 %s \u5305\u542B\u5728\u5185","The device is now being interviewed. It might take a while to show up.":"\u8BE5\u8BBE\u5907\u73B0\u5728\u6B63\u5728\u63A5\u53D7\u91C7\u8BBF\u3002","The group could not be deleted!":"\u65E0\u6CD5\u5220\u9664\u8BE5\u7EC4\uFF01","The group could not be saved!":"\u65E0\u6CD5\u4FDD\u5B58\u8BE5\u7EC4\uFF01","This is not a failed node":"\u8FD9\u4E0D\u662F\u6545\u969C\u8282\u70B9","This is not a SmartStart QR code. Use the devices tab to include this node.":"\u8FD9\u4E0D\u662F SmartStart \u4E8C\u7EF4\u7801\u3002","This is not a valid Z-Wave QR code":"\u8FD9\u4E0D\u662F\u6709\u6548\u7684 Z-Wave \u4E8C\u7EF4\u7801","This node is already on the SmartStart provisioning list":"\u6B64\u8282\u70B9\u5DF2\u5728 SmartStart \u914D\u7F6E\u5217\u8868\u4E2D","This should only be set for debugging purposes.":"\u4EC5\u5E94\u5C06\u5176\u8BBE\u7F6E\u4E3A\u8C03\u8BD5\u76EE\u7684\u3002",timeouts:"\u8D85\u65F6",Type:"\u7C7B\u578B","Undo changes":"\u53D6\u6D88\u66F4\u6539",unknown:"\u672A\u77E5",Unprovision:"\u53D6\u6D88\u9884\u914D","Unprovision node?":"\u53D6\u6D88\u914D\u7F6E\u8282\u70B9\uFF1F","Unsubscribed logs...":"\u53D6\u6D88\u8BA2\u9605\u7684\u65E5\u5FD7...","Update configuration DB":"\u66F4\u65B0\u914D\u7F6E\u6570\u636E\u5E93","Update Firmware":"\u66F4\u65B0\u56FA\u4EF6","Update for configuration DB available":"\u6709\u53EF\u7528\u7684\u914D\u7F6E\u6570\u636E\u5E93\u66F4\u65B0","Updating configuration DB - please wait...":"\u6B63\u5728\u66F4\u65B0\u914D\u7F6E\u6570\u636E\u5E93-\u8BF7\u7A0D\u5019...","Updating the configuration DB failed!":"\u66F4\u65B0\u914D\u7F6E\u6570\u636E\u5E93\u5931\u8D25\uFF01","wake up device":"\u8BF7\u9192\u8FC7\u6765\u7684\u8BBE\u5907\uFF01","WARNING: Make sure that the node is reset before attempting this.":"\u8B66\u544A\uFF1A\u5728\u5C1D\u8BD5\u6B64\u64CD\u4F5C\u4E4B\u524D\uFF0C\u8BF7\u786E\u4FDD\u8282\u70B9\u5DF2\u91CD\u7F6E\u3002","WARNING: Only do this if you no longer have physical access.":"\u8B66\u544A\uFF1A\u4EC5\u5F53\u60A8\u4E0D\u518D\u5177\u6709\u7269\u7406\u8BBF\u95EE\u6743\u9650\u65F6\u624D\u6267\u884C\u6B64\u64CD\u4F5C\u3002","When a node announces itself, it will automatically be included within 10 minutes.":"\u5F53\u4E00\u4E2A\u8282\u70B9\u5BA3\u5E03\u81EA\u5DF1\u65F6\uFF0C\u5B83\u4F1A\u5728 10 \u5206\u949F\u5185\u81EA\u52A8\u52A0\u5165\u3002","Wipes all configuration of the controller. All connected nodes will be orphaned and have to be reset and included into the new network before they can be used again.":"\u64E6\u9664\u63A7\u5236\u5668\u7684\u6240\u6709\u914D\u7F6E\u3002","Write a detailed logfile":"\u7F16\u5199\u8BE6\u7EC6\u7684\u65E5\u5FD7\u6587\u4EF6",yes:"\u662F\u7684","You can try this if the adapter does not start after updating to 2.3 or higher.":"\u5982\u679C\u66F4\u65B0\u5230 2.3 \u6216\u66F4\u9AD8\u7248\u672C\u540E\u9002\u914D\u5668\u6CA1\u6709\u542F\u52A8\uFF0C\u60A8\u53EF\u4EE5\u5C1D\u8BD5\u6B64\u64CD\u4F5C\u3002","Z-Wave Logs":"Z-Wave \u65E5\u5FD7","Z-Wave supports the following security mechanisms:":"Z-Wave supports the following security mechanisms:"}});var ove=w(Ly=>{"use strict";var Xhe=O(),eve=X();Object.defineProperty(Ly,"__esModule",{value:!0});Ly.default=void 0;var tve=eve(j()),rve=Xhe(ot()),nve=(0,rve.default)(tve.createElement("path",{d:"M19 9h-4V3H9v6H5l7 7 7-7zM5 18v2h14v-2H5z"}),"GetApp");Ly.default=nve});var Vj=J(jr());function eu(t){return(0,Vj.createStyles)(t)}function ue(){return ue=Object.assign||function(t){for(var e=1;e=0)&&(r[o]=t[o]);return r}function De(t,e){if(t==null)return{};var r=yT(t,e),n,o;if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);for(o=0;o=0)&&(!Object.prototype.propertyIsEnumerable.call(t,n)||(r[n]=t[n]))}return r}var OT=J(Ie());var Aa=["xs","sm","md","lg","xl"];function _T(t){var e=t.values,r=e===void 0?{xs:0,sm:600,md:960,lg:1280,xl:1920}:e,n=t.unit,o=n===void 0?"px":n,a=t.step,i=a===void 0?5:a,s=De(t,["values","unit","step"]);function l(y){var h=typeof r[y]=="number"?r[y]:y;return"@media (min-width:".concat(h).concat(o,")")}function u(y){var h=Aa.indexOf(y)+1,f=r[Aa[h]];if(h===Aa.length)return l("xs");var p=typeof f=="number"&&h>0?f:y;return"@media (max-width:".concat(p-i/100).concat(o,")")}function c(y,h){var f=Aa.indexOf(h);return f===Aa.length-1?l(y):"@media (min-width:".concat(typeof r[y]=="number"?r[y]:y).concat(o,") and ")+"(max-width:".concat((f!==-1&&typeof r[Aa[f+1]]=="number"?r[Aa[f+1]]:h)-i/100).concat(o,")")}function d(y){return c(y,y)}var m=!1;function g(y){return r[y]}return ue({keys:Aa,values:r,up:l,down:u,between:c,only:d,width:g},s)}function bT(t,e,r){var n;return ue({gutters:function(){var a=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return console.warn(["Material-UI: theme.mixins.gutters() is deprecated.","You can use the source of the mixin directly:",` +`)},ye&&(I=this.states[V])!==null&&I!==void 0&&I.from?ke:null):null,this.columnsVisibility.qualityCode?E.default.createElement("div",{className:i.cellRole,style:{width:this.columnsVisibility.qualityCode},title:Ce||""},Ce):null,this.columnsVisibility.timestamp?E.default.createElement("div",{className:i.cellRole,style:{width:this.columnsVisibility.timestamp}},ye&&(U=this.states[V])!==null&&U!==void 0&&U.ts?Ke.default.formatDate(new Date(this.states[V].ts),this.props.dateFormat):null):null,this.columnsVisibility.lastChange?E.default.createElement("div",{className:i.cellRole,style:{width:this.columnsVisibility.lastChange}},ye&&(A=this.states[V])!==null&&A!==void 0&&A.lc?Ke.default.formatDate(new Date(this.states[V].lc),this.props.dateFormat):null):null):E.default.createElement(E.default.Fragment,null,this.columnsVisibility.type?E.default.createElement("div",{className:i.cellType,style:{width:this.columnsVisibility.type}},q," ",P&&P.type):null,this.columnsVisibility.role?E.default.createElement("div",{className:i.cellRole,style:{width:this.columnsVisibility.role,cursor:this.props.expertMode&&fe&&this.props.objectBrowserEditRole?"text":"default"},onClick:this.props.expertMode&&fe&&this.props.objectBrowserEditRole?function(){return u.setState({roleDialog:o.data.id})}:void 0},P&&P.common&&P.common.role):null,this.columnsVisibility.room?E.default.createElement("div",{className:"".concat(i.cellRoom," ").concat(o.data.per?i.cellEnumParent:""),style:{width:this.columnsVisibility.room,cursor:fe?"text":"default"},onClick:fe?function(){var de=T3(u.info,o.data.id,"roomEnums");u.setState({enumDialogEnums:de,enumDialog:{item:o,type:"room",enumsOriginal:JSON.parse(JSON.stringify(de))}})}:void 0},o.data.rooms):null,this.columnsVisibility.func?E.default.createElement("div",{className:"".concat(i.cellFunc," ").concat(o.data.pef?i.cellEnumParent:""),style:{width:this.columnsVisibility.func,cursor:fe?"text":"default"},onClick:fe?function(){var de=T3(u.info,o.data.id,"funcEnums");u.setState({enumDialogEnums:de,enumDialog:{item:o,type:"func",enumsOriginal:JSON.parse(JSON.stringify(de))}})}:void 0},o.data.funcs):null),this.adapterColumns.map(function(de){return E.default.createElement("div",{className:i.cellAdapter,style:{width:u.columnsVisibility[de.id]},key:de.id,title:de.adapter+" => "+de.pathText},u.renderCustomValue(P,de,o))}),this.columnsVisibility.val?E.default.createElement("div",{className:i.cellValue,style:{width:this.columnsVisibility.val,cursor:ge?o.data.button?"grab":"text":"default"},onClick:ge?function(){if(!o.data.obj||!u.states)return null;if(!u.props.expertMode&&o.data.button)return u.props.socket.setState(V,!0).catch(function(de){return window.alert('Cannot write state "'.concat(V,'": ').concat(de))});u.edit={val:u.states[V]?u.states[V].val:"",q:u.states[V]&&u.states[V].q||0,ack:!1,id:V},u.setState({updateOpened:!0})}:void 0},this.renderColumnValue(V,o,i)):null,this.columnsVisibility.buttons?E.default.createElement("div",{className:i.cellButtons,style:{width:this.columnsVisibility.buttons}},this.renderColumnButtons(V,o,i)):null)}},{key:"renderItem",value:function(o,a,i,s){var l=this,u=[];s=s||{count:0};var c=this.renderLeaf(o,a,i,s),d=this.props.DragWrapper;return this.props.dragEnabled&&(o.data.sumVisibility?c=E.default.createElement(d,{key:o.data.id,item:o,className:i.draggable},c):c=E.default.createElement("div",{key:o.data.id,className:i.nonDraggable},c)),o.data.id&&u.push(c),a=a===void 0?ep(this.state.expanded,o.data.id):a,(!o.data.id||a)&&(this.state.foldersFirst?(o.children&&u.push(o.children.map(function(m){return m.children&&(!l.state.columnsSelectorShow||s.count<15)&&m.data.sumVisibility?l.renderItem(m,void 0,i,s):null})),o.children&&u.push(o.children.map(function(m){return!m.children&&(!l.state.columnsSelectorShow||s.count<15)&&m.data.sumVisibility?l.renderItem(m,void 0,i,s):null}))):o.children&&u.push(o.children.map(function(m){return(!l.state.columnsSelectorShow||s.count<15)&&m.data.sumVisibility?l.renderItem(m,void 0,i,s):null}))),u}},{key:"calculateColumnsVisibility",value:function(o,a,i,s){var l=this;s=s||this.state.columnsWidths,i=i||this.state.columnsForAdmin,a=a||this.state.columns||[],o=typeof o!="boolean"?this.state.columnsAuto:o,s=JSON.parse(JSON.stringify(s)),Object.keys(s).forEach(function(y){s[y]&&(s[y]=parseInt(s[y],10)||0)}),this.adapterColumns=[];var u=Gr[this.props.width].widths;if(o)if(this.columnsVisibility={id:Gr[this.props.width].idWidth,name:this.visibleCols.includes("name")&&u.name||0,type:this.visibleCols.includes("type")&&u.type||0,role:this.visibleCols.includes("role")&&u.role||0,room:this.visibleCols.includes("room")&&u.room||0,func:this.visibleCols.includes("func")&&u.func||0,changedFrom:this.visibleCols.includes("changedFrom")&&u.changedFrom||0,qualityCode:this.visibleCols.includes("qualityCode")&&u.qualityCode||0,timestamp:this.visibleCols.includes("timestamp")&&u.timestamp||0,lastChange:this.visibleCols.includes("lastChange")&&u.lastChange||0,val:this.visibleCols.includes("val")&&u.val||0,buttons:this.visibleCols.includes("buttons")&&u.buttons||0},this.columnsVisibility.name){var c=this.columnsVisibility.id;this.state.statesView?(c+=this.columnsVisibility.changedFrom,c+=this.columnsVisibility.qualityCode,c+=this.columnsVisibility.timestamp,c+=this.columnsVisibility.lastChange):(c+=this.columnsVisibility.type,c+=this.columnsVisibility.role,c+=this.columnsVisibility.room,c+=this.columnsVisibility.func),c+=this.columnsVisibility.val,c+=this.columnsVisibility.buttons,this.columnsVisibility.name="calc(100% - ".concat(c+5,"px)"),this.columnsVisibility.nameHeader="calc(100% - ".concat(c+5+this.state.scrollBarWidth,"px)")}else{var d=0;this.state.statesView?(d+=this.columnsVisibility.changedFrom,d+=this.columnsVisibility.qualityCode,d+=this.columnsVisibility.timestamp,d+=this.columnsVisibility.lastChange):(d+=this.columnsVisibility.type,d+=this.columnsVisibility.role,d+=this.columnsVisibility.room,d+=this.columnsVisibility.func),d+=this.columnsVisibility.val,d+=this.columnsVisibility.buttons,this.columnsVisibility.id="calc(100% - ".concat(d+5,"px)")}else{this.columnsVisibility={id:s.id||Gr[this.props.width].idWidth,name:a.includes("name")&&(s.name||u.name||Gr[this.props.width].widths.name)||0,type:a.includes("type")&&(s.type||u.type||Gr[this.props.width].widths.type)||0,role:a.includes("role")&&(s.role||u.role||Gr[this.props.width].widths.role)||0,room:a.includes("room")&&(s.room||u.room||Gr[this.props.width].widths.room)||0,func:a.includes("func")&&(s.func||u.func||Gr[this.props.width].widths.func)||0};var m=this.columnsVisibility.id;if(this.columnsVisibility.name&&(m+=this.columnsVisibility.type,m+=this.columnsVisibility.role,m+=this.columnsVisibility.room,m+=this.columnsVisibility.func),i&&a&&Object.keys(i).sort().forEach(function(y){return i[y].forEach(function(h){var f="_"+y+"_"+h.path;if(l.columnsVisibility[f]=a.includes(f),a.includes(f)){var p={adapter:y,id:"_"+y+"_"+h.path,name:h.name,path:h.path.split("."),pathText:h.path};h.edit&&(p.edit=!0,h.type&&(p.type=h.type),h.objTypes&&(p.objTypes=h.objTypes)),l.adapterColumns.push(p),l.columnsVisibility[f]=s[p.id]||h.width||Gr[l.props.width].widths.func||Gr.xl.widths.func,m+=l.columnsVisibility[f]}else l.columnsVisibility[f]=0})}),this.adapterColumns.sort(function(y,h){return y.id>h.id?-1:y.id=500&&this.state.expandAllVisible&&setTimeout(function(){return o.setState({expandAllVisible:!1})}),this.lastAppliedFilter=a}if(this.unsubscribeTimer=setTimeout(function(){o.unsubscribeTimer=null,o.checkUnsubscribes()},200),this.state.loaded){var s=this.props.classes,l=this.renderItem(this.root,void 0,s);return E.default.createElement(Sme.default,{key:this.props.dialogName},E.default.createElement(xme.default,null,this.getToolbar()),E.default.createElement(Tme.default,null,this.renderHeader(),E.default.createElement("div",{className:this.props.classes.tableDiv,ref:this.tableRef},l)),this.renderToast(),this.renderColumnsEditCustomDialog(),this.renderColumnsSelectorDialog(),this.renderCustomDialog(),this.renderEditValueDialog(),this.renderEditObjectDialog(),this.renderEditRoleDialog(),this.renderEnumDialog(),this.renderErrorDialog(),this.renderExportDialog(),this.state.modalNewObj&&this.props.modalNewObject&&this.props.modalNewObject(this),this.state.modalEditOfAccess&&this.props.modalEditOfAccessControl&&this.props.modalEditOfAccessControl(this,this.state.modalEditOfAccessObjData))}else return E.default.createElement(Upe.default,{key:this.props.dialogName+"_c"})}}],[{key:"getDerivedStateFromProps",value:function(o,a){var i={},s=!1;return o.expertMode!==void 0&&o.expertMode!==a.filter.expertMode&&(s=!0,i.filter=Object.assign({},a.filter),i.filter.expertMode=o.expertMode),s?i:null}}]),r}(E.Component);ok.defaultProps={objectAddBoolean:!1,objectEditBoolean:!1,objectStatesView:!1,objectImportExport:!1,objectEditOfAccessControl:!1,modalNewObject:function(){},modalEditOfAccessControl:function(){}};ok.propTypes={dialogName:Ae.default.string,classes:Ae.default.object,defaultFilters:Ae.default.object,selected:Ae.default.oneOfType([Ae.default.string,Ae.default.array]),onSelect:Ae.default.func,onFilterChanged:Ae.default.func,socket:Ae.default.object,showExpertButton:Ae.default.bool,expertMode:Ae.default.bool,imagePrefix:Ae.default.string,themeName:Ae.default.string,themeType:Ae.default.string,theme:Ae.default.object,t:Ae.default.func,lang:Ae.default.string.isRequired,multiSelect:Ae.default.bool,notEditable:Ae.default.bool,foldersFirst:Ae.default.bool,disableColumnSelector:Ae.default.bool,isFloatComma:Ae.default.bool,dateFormat:Ae.default.string,levelPadding:Ae.default.number,objectCustomDialog:Ae.default.oneOfType([Ae.default.object,Ae.default.func]),objectAddBoolean:Ae.default.bool,objectEditBoolean:Ae.default.bool,objectStatesView:Ae.default.bool,objectImportExport:Ae.default.bool,objectEditOfAccessControl:Ae.default.bool,modalNewObject:Ae.default.func,modalEditOfAccessControl:Ae.default.func,onObjectDelete:Ae.default.func,customFilter:Ae.default.object,objectBrowserValue:Ae.default.object,objectBrowserEditObject:Ae.default.object,objectBrowserEditRole:Ae.default.object,router:Ae.default.oneOfType([Ae.default.object,Ae.default.func]),types:Ae.default.array,columns:Ae.default.array,objectsWorker:Ae.default.object,filterFunc:Ae.default.func,dragSettings:Ae.default.object,DragWrapper:Ae.default.func,dragEnabled:Ae.default.bool,useDrag:Ae.default.func};var Mme=(0,$pe.default)()((0,C3.default)(Dme)(ok)),Ime=Mme;Cy.default=Ime});var V3=w(Oy=>{"use strict";var Ut=O();Object.defineProperty(Oy,"__esModule",{value:!0});Oy.default=void 0;var zme=Ut(yn()),Ame=Ut(An()),Fme=Ut(bn()),Lme=Ut(_s()),Wme=Ut(bs()),F3=Ut(ws()),Kr=Ut(j()),yt=Ut(ne()),Bme=Ut(ze()),L3=Ut(sf()),Vme=Ut(ng()),$me=Ut(tg()),Ume=Ut(eg()),Hme=Ut(Xv()),Gme=Ut(d5()),Kme=Ut(Gx()),W3=Ut($u()),_i=Ut(Kv()),Jme=Ut(A3());function Yme(t){var e=Qme();return function(){var n=(0,F3.default)(t),o;if(e){var a=(0,F3.default)(this).constructor;o=Reflect.construct(n,arguments,a)}else o=n.apply(this,arguments);return(0,Wme.default)(this,o)}}function Qme(){if(typeof Reflect=="undefined"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(t){return!1}}var Zme=function(e){return{headerID:{fontWeight:"bold",fontStyle:"italic"},dialog:{height:"95%"},dialogMobile:{padding:4,width:"100%",maxWidth:"100%",maxHeight:"calc(100% - 16px)",height:"100%"},content:{height:"100%",overflow:"hidden"},contentMobile:{padding:"8px 4px"},titleRoot:{whiteSpace:"nowrap",width:"calc(100% - 72px)",overflow:"hidden",display:"inline-block",textOverflow:"ellipsis"}}},B3=function(t){(0,Lme.default)(r,t);var e=Yme(r);function r(n){var o;(0,Ame.default)(this,r),o=e.call(this,n),o.dialogName=o.props.dialogName||"default",o.dialogName="SelectID."+o.dialogName,o.filters=window.localStorage.getItem(o.dialogName)||"{}";try{o.filters=JSON.parse(o.filters)}catch(i){o.filters={}}var a=o.props.selected||[];return(0,zme.default)(a)!=="object"&&(a=[a]),a=a.filter(function(i){return i}),o.state={selected:a,name:"",isMobile:window.innerWidth<800},o}return(0,Fme.default)(r,[{key:"handleCancel",value:function(){this.props.onClose()}},{key:"handleOk",value:function(){this.props.onOk(this.props.multiSelect?this.state.selected:this.state.selected[0]||"",this.state.name),this.props.onClose()}},{key:"render",value:function(){var o=this,a;return this.state.name||this.state.selected.length?this.state.selected.length===1?a=[Kr.default.createElement("span",{key:"selected"},_i.default.t("ra_Selected")," "),Kr.default.createElement("span",{key:"id",className:this.props.classes.headerID},(this.state.name||this.state.selected)+(this.state.name?" ["+this.state.selected+"]":""))]:a=[Kr.default.createElement("span",{key:"selected"},_i.default.t("ra_Selected")," "),Kr.default.createElement("span",{key:"id",className:this.props.classes.headerID},_i.default.t("%s items",this.state.selected.length))]:a=this.props.title||_i.default.t("ra_Please select object ID..."),Kr.default.createElement(Hme.default,{onClose:function(){},maxWidth:!1,classes:{paper:W3.default.clsx(this.props.classes.dialog,this.props.classes.dialogMobile)},fullWidth:!0,open:!0,"aria-labelledby":"selectid-dialog-title"},Kr.default.createElement(Vme.default,{id:"selectid-dialog-title",classes:{root:this.props.classes.titleRoot}},a),Kr.default.createElement($me.default,{className:W3.default.clsx(this.props.classes.content,this.props.classes.contentMobile)},Kr.default.createElement(Jme.default,{foldersFirst:this.props.foldersFirst,imagePrefix:this.props.imagePrefix||this.props.prefix,defaultFilters:this.filters,dialogName:this.dialogName,showExpertButton:this.props.showExpertButton!==void 0?this.props.showExpertButton:!0,style:{width:"100%",height:"100%"},columns:this.props.columns||["name","type","role","room","func","val"],types:this.props.types||["state"],t:_i.default.t,lang:this.props.lang||_i.default.getLanguage(),socket:this.props.socket,selected:this.state.selected,multiSelect:this.props.multiSelect,notEditable:this.props.notEditable===void 0?!0:this.props.notEditable,name:this.state.name,themeName:this.props.themeName,themeType:this.props.themeType,customFilter:this.props.customFilter,onFilterChanged:function(s){o.filters=s,window.localStorage.setItem(o.dialogName,JSON.stringify(s))},onSelect:function(s,l,u){JSON.stringify(s)!==JSON.stringify(o.state.selected)?o.setState({selected:s,name:l},function(){return u&&o.handleOk()}):u&&o.handleOk()},filterFunc:this.props.filterFunc})),Kr.default.createElement(Ume.default,null,Kr.default.createElement(L3.default,{variant:"contained",onClick:function(){return o.handleOk()},startIcon:Kr.default.createElement(Kme.default,null),disabled:!this.state.selected.length,color:"primary"},this.props.ok||_i.default.t("ra_Ok")),Kr.default.createElement(L3.default,{variant:"contained",onClick:function(){return o.handleCancel()},startIcon:Kr.default.createElement(Gme.default,null)},this.props.cancel||_i.default.t("ra_Cancel"))))}}]),r}(Kr.default.Component);B3.propTypes={dialogName:yt.default.string,classes:yt.default.object,onClose:yt.default.func,notEditable:yt.default.bool,onOk:yt.default.func.isRequired,title:yt.default.string,lang:yt.default.string,foldersFirst:yt.default.bool,isFloatComma:yt.default.bool,dateFormat:yt.default.string,selected:yt.default.oneOfType([yt.default.string,yt.default.array]),customFilter:yt.default.object,statesOnly:yt.default.bool,socket:yt.default.object.isRequired,cancel:yt.default.string,imagePrefix:yt.default.string,ok:yt.default.string,themeName:yt.default.string,themeType:yt.default.string,showExpertButton:yt.default.bool,multiSelect:yt.default.bool,types:yt.default.array,columns:yt.default.array,filterFunc:yt.default.func};var Xme=(0,Bme.default)(Zme)(B3),ehe=Xme;Oy.default=ehe});var lk=w(qy=>{"use strict";Object.defineProperty(qy,"__esModule",{value:!0});qy.padStart=void 0;function rhe(t,e,r=" "){if(t!=null&&t.length>=e)return t;if(r==null||r.length<1)throw new Error("fill must be at least one char");let n=e-t.length,o=Math.ceil(n/r.length);return r.repeat(o).substr(0,n)+t}qy.padStart=rhe});var t6=w(My=>{"use strict";var ihe=O(),she=X();Object.defineProperty(My,"__esModule",{value:!0});My.default=void 0;var lhe=she(j()),uhe=ihe(ot()),che=(0,uhe.default)(lhe.createElement("path",{d:"M17 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V7l-4-4zm-5 16c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3zm3-10H5V5h10v4z"}),"Save");My.default=che});var mk=w(lc=>{"use strict";Object.defineProperty(lc,"__esModule",{value:!0});lc.isArray=lc.isObject=void 0;function whe(t){return Object.prototype.toString.call(t)==="[object Object]"}lc.isObject=whe;function She(t){return Array.isArray!=null?Array.isArray(t):Object.prototype.toString.call(t)==="[object Array]"}lc.isArray=She});var f6=w(rp=>{"use strict";np();var Ehe=j(),c6=60103;rp.Fragment=60107;typeof Symbol=="function"&&Symbol.for&&(hk=Symbol.for,c6=hk("react.element"),rp.Fragment=hk("react.fragment"));var hk,khe=Ehe.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,Che=Object.prototype.hasOwnProperty,Ohe={key:!0,ref:!0,__self:!0,__source:!0};function d6(t,e,r){var n,o={},a=null,i=null;r!==void 0&&(a=""+r),e.key!==void 0&&(a=""+e.key),e.ref!==void 0&&(i=e.ref);for(n in e)Che.call(e,n)&&!Ohe.hasOwnProperty(n)&&(o[n]=e[n]);if(t&&t.defaultProps)for(n in e=t.defaultProps,e)o[n]===void 0&&(o[n]=e[n]);return{$$typeof:c6,type:t,key:a,ref:i,props:o,_owner:khe.current}}rp.jsx=d6;rp.jsxs=d6});var Rhe=w((BDe,p6)=>{"use strict";p6.exports=f6()});var jhe=w((sqe,qhe)=>{qhe.exports={"- select endpoint -":"- select endpoint -","- select group -":"- select group -","- select node -":"- select node -","(recommended)":"(recommended)","(use only when necessary)":"(use only when necessary)","abort firmware update":"abort firmware update","adapter not ready":"The adapter is not running or not ready yet!","Added SmartStart device":"Added SmartStart device",alive:"alive","Already included":"Already included","Already provisioned":"Already provisioned",asleep:"asleep",Associations:"Associations","At least one must be granted or the key exchange will be canceled.":"At least one must be granted or the key exchange will be canceled.","At least one network key is not yet configured. This can cause problems during secure inclusion.":"At least one network key is not yet configured. This can cause problems during secure inclusion.","Auto-scroll to bottom":"Auto-scroll to bottom",awake:"awake","But read this first!":"But read this first!",Cancel:"Cancel","Cancel healing":"Cancel healing","clear cache procedure":"The adapter will restart and re-interview all nodes. This may take a long time and some nodes may not work as expected in the meantime.","Click here to select image with QR code":"Click here to select image with QR code",Close:"Close",collisions:"collisions","Communicating with the device, please be patient...":"Communicating with the device, please be patient...","config update disclaimer":"WARNING: This is experimental functionality. Make sure you have an ioBroker backup before updating the configuration DB.","Configuration DB is up to date":"Configuration DB is up to date","Configure the region and radio frequencies of the controller.":"Configure the region and radio frequencies of the controller.","Controller node":"Controller node",corrupt:"corrupt",dead:"dead","Default (secure)":"Default (secure)","Define here which SmartStart capable nodes should be part of the network by entering their DSK and granting security classes.":"Define here which SmartStart capable nodes should be part of the network by entering their DSK and granting security classes.","Delete association":"Delete association","Delete group":"Delete group",Devices:"Devices","Disable restarting the controller on startup":"Disable restarting the controller on startup","Do you really want to remove this node from the network?":"Do you really want to remove this node from the network?","Do you really want to remove this node from the provisioning list?":"Do you really want to remove this node from the provisioning list?","Do you really want to replace this node?":"Do you really want to replace this node?",done:"done","Done!":"Done!","Door locks, garage doors":"Door locks, garage doors","Download logs":"Download logs",dropped:"dropped",DSK:"DSK",Enabled:"Enabled",Endpoint:"Endpoint","Enter group name":"Enter group name",Error:"Error","Example:":"Example:","Exclude device":"Exclude device","Exclusion active":"Exclusion active","Factory reset":"Factory reset","factory reset procedure":"Wipes all configuration of the controller. All connected nodes will be orphaned and have to be reset and included into the new network before they can be used again.","Factory reset?":"Factory reset?",failed:"failed","Failed to scan QR code":"Failed to scan QR code","fast and secure":"fast and secure","firmware update failed":"The firmware update failed!","firmware update no wait time":"The device will now be re-interviewed.","firmware update successful":"The firmware update was successful!","firmware update wait time":"The device will be re-interviewed in {0} seconds.","firmware update wake up":"You might have to wake up the device again.","firmware update warning":"WARNING: Use at your own risk! We don't take any responsibility if your devices don't work after an update.","For devices without a DSK. Authentication of the inclusion happens on the device instead of in ioBroker.":"For devices without a DSK. Authentication of the inclusion happens on the device instead of in ioBroker.","Forget all information about all nodes and re-interview them. Battery-powered nodes might need to be woken up manually.":"Forget all information about all nodes and re-interview them. Battery-powered nodes might need to be woken up manually.","Forget all information about this node and re-interview it. Battery-powered nodes might need to be woken up manually.":"Forget all information about this node and re-interview it. Battery-powered nodes might need to be woken up manually.","Generate key":"Generate key",Group:"Group","Group name":"Group name",Groups:"Groups","Heal network":"Heal network","Heal network finished":"Heal network finished","Healing network":"Healing network...","Healing the network was successful!":"Healing the network was successful!","hosted port tip":"You can also connect to a hosted serialport using the form 'tcp://hostname:port'.","Include device":"Include device","Inclusion active":"Inclusion active","Installed version":"Installed version","Invalid network key":"Invalid network key: Must be 16 bytes (32 hexadecimal characters [0-9, a-f])","It will be included automatically when it announces itself.":"It will be included automatically when it announces itself.","Legacy door locks without S2 support":"Legacy door locks without S2 support","Legacy switch compatibility":"Improve compatibility with legacy switches","Lighting, sensors, security systems":"Lighting, sensors, security systems","Like S2 Authenticated, but without verification that the correct device is included":"Like S2 Authenticated, but without verification that the correct device is included",Name:"Name","network key confirm":"This will overwrite the existing key and the adapter won't be able to communicate with already-included secure devices. Do you want to continue?","network key tooltip":"16 bytes in hexadecimal form (32 characters 0-9, a-f). Without spaces, without commas, without leading '0x'.","Network keys for secure communication":"Network keys for secure communication","Network map":"Network map",no:"no","No devices present":"No devices present","No encryption":"No encryption","no file selected":"no file selected","no multicast explanation":"Sleeping nodes and nodes included with Security S0 cannot be used in multicast groups.",Node:"Node","Node %s was added successfully!":"Node %s was added successfully!","Node %s was removed from the network!":"Node %s was removed from the network!","Node is not ready":"Node is not ready","Node successfully added to provisioning list":"Node successfully added to provisioning list",Nodes:"Nodes","Non-secure":"Non-secure","none selected":"none selected","not requested":"not requested","Note: Applying a different region might take a few seconds.":"Note: Applying a different region might take a few seconds.",OK:"OK","Only use S0, even if S2 is available. Allows including devices that require security but don't behave correctly during S2 inclusion.":"Only use S0, even if S2 is available. Allows including devices that require security but don't behave correctly during S2 inclusion.","Open log in new window":"Open log in new window","opening camera...":"opening camera...","Or drag an image file here":"Or drag an image file here","Pause auto-scrolling":"Pause auto-scrolling","Pause logging":"Pause logging",pending:"pending","Please choose an inclusion strategy":"Please choose an inclusion strategy","Please choose which of the following security classes to grant to the new node.":"Please choose which of the following security classes to grant to the new node.","Please enter the 5-digit PIN for your device and verify that the rest of the device-specific key (DSK) matches the one on your device or the manual.":"Please enter the 5-digit PIN for your device and verify that the rest of the device-specific key (DSK) matches the one on your device or the manual.","Prefer S0 over no encryption":"Prefer S0 over no encryption","Preserve state names":"Don't overwrite state names","Provision node":"Provision node","Put your device into exclusion mode":"Put your device into exclusion mode","Put your device into inclusion mode":"Put your device into inclusion mode","Re-interview all":"Re-interview all","Re-interview all?":"Re-interview all?",received:"received","Refresh node info":"Refresh node info","Remove failed node":"Remove failed node","Remove node?":"Remove node?","Remove this node from the network.":"Remove this node from the network.","Removing or disabling an entry does not automatically exclude the node.":"Removing or disabling an entry does not automatically exclude the node.","Replace device":"Replace device","Replace failed node":"Replace failed node","Replace node?":"Replace node?","Replace this node with a different one, keeping the node ID.":"Replace this node with a different one, keeping the node ID.","Requires user interaction during the inclusion.":"Requires user interaction during the inclusion.","Restart the controller, e.g. when it hangs":"Restart the controller, e.g. when it hangs","Root device":"Root device","Root endpoint":"Root endpoint","Save association":"Save association","Save group":"Save group","Scan QR Code":"Scan QR Code",Secure:"Secure","secure, but slow due to a lot of overhead":"secure, but slow due to a lot of overhead",Security:"Security","Security class: %s":"Security class: %s","Security classes":"Security classes","Security S0":"Security S0","Security S2 when supported, Security S0 as a fallback, no encryption otherwise.":"Security S2 when supported, Security S0 as a fallback, no encryption otherwise.","Security S2 when supported, Security S0 only when necessary, no encryption otherwise.":"Security S2 when supported, Security S0 only when necessary, no encryption otherwise.","Select at least 2 nodes":"Select at least 2 nodes","Select QR code source":"Select QR code source","Select serial port":"Select serial port","Select the correct region for where you are. Using a different region may be illegal.":"Select the correct region for where you are. Using a different region may be illegal.",sent:"sent","Set RF Region":"Set RF Region",Settings:"Settings",SmartStart:"SmartStart","Soft reset":"Soft reset","Source endpoint":"Source endpoint","start firmware update":"start firmware update","Start logging":"Start logging",Statistics:"Statistics",Status:"Status","Subscribed to logs...":"Subscribed to logs...","Successfully added SmartStart device to provisioning list.":"Successfully added SmartStart device to provisioning list.","switch compat tooltip":"Overwrites the 'targetValue' state of binary and multilevel switches with 'currentValue' to keep them in sync","Target endpoint":"Target endpoint","Target node":"Target node","The association could not be deleted!":"The association could not be deleted!","The association could not be saved!":"The association could not be saved!","The controller does not support SmartStart!":"The controller does not support SmartStart!","The device is already included as Node %s":"The device is already included as Node %s","The device is now being interviewed. It might take a while to show up.":"The device is now being interviewed. It might take a while to show up.","The group could not be deleted!":"The group could not be deleted!","The group could not be saved!":"The group could not be saved!","This is not a failed node":"This is not a failed node","This is not a SmartStart QR code. Use the devices tab to include this node.":"This is not a SmartStart QR code. Use the devices tab to include this node.","This is not a valid Z-Wave QR code":"This is not a valid Z-Wave QR code","This node is already on the SmartStart provisioning list":"This node is already on the SmartStart provisioning list","This should only be set for debugging purposes.":"This should only be set for debugging purposes.",timeouts:"timeouts",Type:"Type","Undo changes":"Undo changes",unknown:"unknown",Unprovision:"Unprovision","Unprovision node?":"Unprovision node?","Unsubscribed logs...":"Unsubscribed logs...","Update configuration DB":"Update configuration DB","Update Firmware":"Update Firmware","Update for configuration DB available":"Update for configuration DB available","Updating configuration DB - please wait...":"Updating configuration DB - please wait...","Updating the configuration DB failed!":"Updating the configuration DB failed!","wake up device":"Please wake up the device!","WARNING: Make sure that the node is reset before attempting this.":"WARNING: Make sure that the node is reset before attempting this.","WARNING: Only do this if you no longer have physical access.":"WARNING: Only do this if you no longer have physical access.","When a node announces itself, it will automatically be included within 10 minutes.":"When a node announces itself, it will automatically be included within 10 minutes.","Wipes all configuration of the controller. All connected nodes will be orphaned and have to be reset and included into the new network before they can be used again.":"Wipes all configuration of the controller. All connected nodes will be orphaned and have to be reset and included into the new network before they can be used again.","Write a detailed logfile":"Write a detailed logfile",yes:"yes","You can try this if the adapter does not start after updating to 2.3 or higher.":"You can try this if the adapter does not start after updating to 2.3 or higher.","Z-Wave Logs":"Z-Wave Logs","Z-Wave supports the following security mechanisms:":"Z-Wave supports the following security mechanisms:"}});var Ihe=w((lqe,Mhe)=>{Mhe.exports={"- select endpoint -":"- Endpunkt ausw\xE4hlen -","- select group -":"- Gruppe ausw\xE4hlen -","- select node -":"- Ger\xE4t ausw\xE4hlen -","(recommended)":"(empfohlen)","(use only when necessary)":"(nur wenn n\xF6tig verwenden)","abort firmware update":"Firmware-Update abbrechen","adapter not ready":"Der Adapter l\xE4uft nicht oder ist noch nicht bereit!","Added SmartStart device":"SmartStart-Ger\xE4t hinzugef\xFCgt",alive:"erreichbar","Already included":"Bereits eingebunden","Already provisioned":"Bereits provisioniert",asleep:"schl\xE4ft",Associations:"Verkn\xFCpfungen","At least one must be granted or the key exchange will be canceled.":"Mindestens einer muss gew\xE4hrt werden, sonst wird der Schl\xFCsselaustausch abgebrochen.","At least one network key is not yet configured. This can cause problems during secure inclusion.":"Mindestens ein Netzwerkschl\xFCssel ist noch nicht konfiguriert. Dies kann zu Problemen bei der sicheren Inklusion f\xFChren.","Auto-scroll to bottom":"Automatisch scrollen",awake:"wach","But read this first!":"Zuerst hier lesen!",Cancel:"Abbrechen","Cancel healing":"Heilung abbrechen","clear cache procedure":"Der Adapter startet neu und interviewt alle Knoten erneut. Dies kann sehr lange dauern und einige Knoten funktionieren in der Zwischenzeit nicht wie erwartet.","Click here to select image with QR code":"Hier klicken, um eine Bilddatei mit QR-Code auszuw\xE4hlen",Close:"Schlie\xDFen",collisions:"Kollisionen","Communicating with the device, please be patient...":"Kommuniziere mit dem Ger\xE4t, bitte etwas Geduld...","config update disclaimer":"WARNUNG: Dies ist ein experimentelles Feature. Bitte vor der Nutzung ein ioBroker-Backup erstellen!","Configuration DB is up to date":"Konfigurations-DB ist aktuell","Configure the region and radio frequencies of the controller.":"Region und Funkfrequenzen des Controllers konfigurieren.","Controller node":"Controller",corrupt:"korrupt",dead:"tot","Default (secure)":"Standard (sicher)","Define here which SmartStart capable nodes should be part of the network by entering their DSK and granting security classes.":"Hier kann definiert werden, welche SmartStart-f\xE4higen Ger\xE4te Teil des Netzwerks sein sollen. Dazu deren DSK eingeben und Verschl\xFCsselungsklassen zuweisen.","Delete association":"Verkn\xFCpfung l\xF6schen","Delete group":"Gruppe l\xF6schen",Devices:"Ger\xE4te","Disable restarting the controller on startup":"Beim Adapterstart den Controller nicht neustarten","Do you really want to remove this node from the network?":"M\xF6chten Sie dieses Ger\xE4t wirklich aus dem Netz entfernen?","Do you really want to remove this node from the provisioning list?":"M\xF6chten Sie dieses Ger\xE4t wirklich von der Provisionierungs-Liste entfernen?","Do you really want to replace this node?":"M\xF6chten Sie dieses Ger\xE4t wirklich ersetzen?",done:"fertig","Done!":"Fertig!","Door locks, garage doors":"T\xFCrschl\xF6sser, Garagentore","Download logs":"Logs herunterladen",dropped:"verworfen",DSK:"DSK",Enabled:"Aktiviert",Endpoint:"Endpunkt","Enter group name":"Gruppennamen eingeben",Error:"Fehler","Example:":"Beispiel:","Exclude device":"Ger\xE4t entfernen","Exclusion active":"Entfernen l\xE4uft","Factory reset":"Auf Werkseinstellungen zur\xFCcksetzen","factory reset procedure":"L\xF6scht die gesamte Konfiguration des Controllers. Alle verbundenen Ger\xE4te werden verwaist und m\xFCssen zur\xFCckgesetzt und in das neue Netzwerk aufgenommen werden, bevor sie wieder verwendet werden k\xF6nnen.","Factory reset?":"Auf Werkseinstellungen zur\xFCcksetzen?",failed:"fehlgeschlagen","Failed to scan QR code":"QR-Code konnte nicht gescannt werden","fast and secure":"performant und sicher","firmware update failed":"Das Firmwareupdate ist fehlgeschlagen!","firmware update no wait time":"Das Ger\xE4t wird jetzt neu interviewt.","firmware update successful":"Das Firmwareupdate war erfolgreich!","firmware update wait time":"Das Ger\xE4t wird in {0} Sekunden neu interviewt.","firmware update wake up":"Eventuell m\xFCssen Sie es erneut aufwecken.","firmware update warning":"WARNUNG: Benutzung auf eigene Gefahr! Wir \xFCbernehmen keine Verantwortung, wenn Ihre Ger\xE4te nach einem Update nicht funktionieren.","For devices without a DSK. Authentication of the inclusion happens on the device instead of in ioBroker.":"F\xFCr Ger\xE4te ohne DSK. Die Authentifizierung der Inklusion erfolgt auf dem Ger\xE4t und nicht in ioBroker.","Forget all information about all nodes and re-interview them. Battery-powered nodes might need to be woken up manually.":"Alle Informationen \xFCber alle Ger\xE4te vergessen und sie erneut interviewen. Batteriebetriebene Ger\xE4te m\xFCssen m\xF6glicherweise manuell aufgeweckt werden.","Forget all information about this node and re-interview it. Battery-powered nodes might need to be woken up manually.":"Alle Informationen \xFCber dieses Ger\xE4t vergessen und es erneut interviewen. Batteriebetriebene Ger\xE4te m\xFCssen m\xF6glicherweise manuell aufgeweckt werden.","Generate key":"Neu generieren",Group:"Gruppe","Group name":"Gruppenname",Groups:"Gruppen","Heal network":"Netzwerk heilen","Heal network finished":"Netzwerkheilung fertig","Healing network":"Netwerkheilung...","Healing the network was successful!":"Heilung des Netzwerks war erfolgreich!","hosted port tip":"Um einen gehosteten seriellen Port zu nutzen, einfach mittels 'tcp://hostname:port' verbinden.","Include device":"Ger\xE4t einbinden","Inclusion active":"Inklusion aktiv","Installed version":"Installierte Version","Invalid network key":"Ung\xFCltiger Netzwerkschl\xFCssel: Muss 16 Byte lang sein (32 hexadezimale Zeichen [0-9, a-f])","It will be included automatically when it announces itself.":"Es wird automatisch eingebunden, wenn es sich meldet.","Legacy door locks without S2 support":"\xC4ltere T\xFCrschl\xF6sser ohne S2-Unterst\xFCtzung","Legacy switch compatibility":"Kompatibilit\xE4t mit \xE4lteren Schaltern verbessern","Lighting, sensors, security systems":"Beleuchtung, Sensoren, Sicherheitssysteme","Like S2 Authenticated, but without verification that the correct device is included":"Wie S2 Authenticated, aber ohne \xDCberpr\xFCfung, ob das richtige Ger\xE4t eingebunden wird",Name:"Name","network key confirm":"Der vorhandene Schl\xFCssel wird \xFCberschrieben, weshalb der Adapter nicht mehr mit bereits eingebundenen sicheren Ger\xE4ten kommunizieren kann. M\xF6chten Sie fortfahren?","network key tooltip":"16 bytes in hexadezimaler Form (32 Zeichen 0-9, a-f). Ohne Leerzeichen, ohne Komma, ohne f\xFChrende '0x'.","Network keys for secure communication":"Netzwerkschl\xFCssel f\xFCr sichere Kommunikation","Network map":"Netzwerkkarte",no:"nein","No devices present":"Keine Ger\xE4te vorhanden","No encryption":"Ohne Verschl\xFCsselung","no file selected":"keine Datei ausgew\xE4hlt","no multicast explanation":"Schlafende Knoten und Knoten, die in Security S0 enthalten sind, k\xF6nnen nicht in Multicast-Gruppen verwendet werden.",Node:"Ger\xE4t","Node %s was added successfully!":"Node %s wurde erfolgreich hinzugef\xFCgt!","Node %s was removed from the network!":"Node %s wurde aus dem Netzwerk entfernt!","Node is not ready":"Ger\xE4t ist nicht bereit","Node successfully added to provisioning list":"Ger\xE4t erfolgreich zur Provisionierungs-Liste hinzugef\xFCgt",Nodes:"Ger\xE4te","Non-secure":"unverschl\xFCsselt","none selected":"nichts ausgew\xE4hlt","not requested":"nicht angefordert","Note: Applying a different region might take a few seconds.":"Hinweis: Das Wechseln zu einer anderen Region kann einige Sekunden dauern.",OK:"OK","Only use S0, even if S2 is available. Allows including devices that require security but don't behave correctly during S2 inclusion.":"Nur S0 verwenden, auch wenn S2 verf\xFCgbar ist. Erm\xF6glicht das Einbinden von Ger\xE4ten, die Verschl\xFCsselung erfordern, sich aber beim Einbinden mit S2 nicht korrekt verhalten.","Open log in new window":"Log in neuem Fenster \xF6ffnen","opening camera...":"\xF6ffne Kamera","Or drag an image file here":"Oder eine Bilddatei hierher ziehen","Pause auto-scrolling":"Automatisches Scrollen pausieren","Pause logging":"Log pausieren",pending:"warte...","Please choose an inclusion strategy":"Bitte eine Inklusions-Strategie ausw\xE4hlen","Please choose which of the following security classes to grant to the new node.":"Bitte ausw\xE4hlen, welche der folgenden Schl\xFCssel dem neuen Ger\xE4t gew\xE4hrt werden sollen.","Please enter the 5-digit PIN for your device and verify that the rest of the device-specific key (DSK) matches the one on your device or the manual.":"Bitte die 5-stellige PIN f\xFCr Ihr Ger\xE4t eingeben und vergewissern, dass der Rest des ger\xE4tespezifischen Schl\xFCssels (DSK) mit dem auf Ihrem Ger\xE4t oder im Handbuch \xFCbereinstimmt.","Prefer S0 over no encryption":"S0 gegen\xFCber keiner Verschl\xFCsselung bevorzugen","Preserve state names":"Namen der Zust\xE4nde nicht \xFCberschreiben","Provision node":"Ger\xE4t provisionieren","Put your device into exclusion mode":"Bitte das Ger\xE4t in den Exklusionsmodus versetzen","Put your device into inclusion mode":"Bitte das Ger\xE4t in den Inklusionsmodus versetzen","Re-interview all":"Alle neu interviewen","Re-interview all?":"Alle neu interviewen?",received:"empfangen","Refresh node info":"Erneut interviewen","Remove failed node":"Ausgefallenes Ger\xE4t entfernen","Remove node?":"Ger\xE4t entfernen?","Remove this node from the network.":"Dieses Ger\xE4t aus dem Netzwerk entfernen.","Removing or disabling an entry does not automatically exclude the node.":"Das Entfernen oder Deaktivieren eines Eintrags entfernt das Ger\xE4t nicht automatisch aus dem Netzwerk.","Replace device":"Ger\xE4t ersetzen","Replace failed node":"Ausgefallenes Ger\xE4t ersetzen","Replace node?":"Ger\xE4t ersetzen?","Replace this node with a different one, keeping the node ID.":"Dieses Ger\xE4t durch ein anderes ersetzen und dabei die Node ID beibehalten.","Requires user interaction during the inclusion.":"Erfordert Benutzerinteraktion bei der Inklusion.","Restart the controller, e.g. when it hangs":"Startet den Controller neu, z.B. wenn er h\xE4ngt.","Root device":"Root-Ger\xE4t","Root endpoint":"Root-Endpunkt","Save association":"Verkn\xFCpfung speichern","Save group":"Gruppe speichern","Scan QR Code":"QR-Code scannen",Secure:"mit Verschl\xFCsselung","secure, but slow due to a lot of overhead":"sicher, aber langsam wegen hohen Overheads",Security:"Verschl\xFCsselung","Security class: %s":"Verschl\xFCsselungsklasse: %s","Security classes":"Verschl\xFCsselungsklassen","Security S0":"Security S0","Security S2 when supported, Security S0 as a fallback, no encryption otherwise.":"Security S2, wenn unterst\xFCtzt, Security S0 als Fallback, sonst keine Verschl\xFCsselung.","Security S2 when supported, Security S0 only when necessary, no encryption otherwise.":"Security S2, wenn unterst\xFCtzt, Security S0 nur wenn n\xF6tig, sonst keine Verschl\xFCsselung.","Select at least 2 nodes":"mind. 2 Ger\xE4te ausw\xE4hlen","Select QR code source":"QR-Code-Quelle ausw\xE4hlen","Select serial port":"Serielle Schnittstelle ausw\xE4hlen","Select the correct region for where you are. Using a different region may be illegal.":"Bitte die richtige Region f\xFCr Ihren Aufenthaltsort ausw\xE4hlen. Die Verwendung einer anderen Region kann illegal sein.",sent:"gesendet","Set RF Region":"Region \xE4ndern",Settings:"Einstellungen",SmartStart:"SmartStart","Soft reset":"Neustarten","Source endpoint":"Quell-Endpunkt","start firmware update":"Firmware-Update starten","Start logging":"Log starten",Statistics:"Statistiken",Status:"Status","Subscribed to logs...":"Logs abonniert...","Successfully added SmartStart device to provisioning list.":"SmartStart-Ger\xE4t erfolgreich zur Provisionierungs-Liste hinzugef\xFCgt.","switch compat tooltip":"\xDCberschreibt den Status 'targetValue' von Binary und Multilevel Switches mit 'currentValue', um die Werte synchron zu halten","Target endpoint":"Ziel-Endpunkt","Target node":"Zielger\xE4t","The association could not be deleted!":"Verkn\xFCpfung konnte nicht gel\xF6scht werden!","The association could not be saved!":"Verkn\xFCpfung konnte nicht erstellt werden!","The controller does not support SmartStart!":"Der Controller unterst\xFCtzt kein SmartStart!","The device is already included as Node %s":"Das Ger\xE4t ist bereits als Node %s eingebunden","The device is now being interviewed. It might take a while to show up.":"Das Ger\xE4t wird jetzt interviewt. Es kann eine Weile dauern, bis es auftaucht.","The group could not be deleted!":"Die Gruppe konnte nicht gel\xF6scht werden!","The group could not be saved!":"Die Gruppe konnte nicht gespeichert werden!","This is not a failed node":"Dies ist kein ausgefallenes Ger\xE4t","This is not a SmartStart QR code. Use the devices tab to include this node.":"Das ist kein SmartStart-QR-Code. Nutzen Sie die Registerkarte Ger\xE4te zum Einbinden.","This is not a valid Z-Wave QR code":"Das ist kein g\xFCltiger Z-Wave QR-Code","This node is already on the SmartStart provisioning list":"Dieses Ger\xE4t ist bereits auf der SmartStart-Provisionierungsliste","This should only be set for debugging purposes.":"Dies sollte nur zu Debugging-Zwecken aktiviert werden.",timeouts:"Timeouts",Type:"Typ","Undo changes":"\xC4nderungen r\xFCckg\xE4ngig machen",unknown:"unbekannt",Unprovision:"Entprovisionieren","Unprovision node?":"Ger\xE4t entprovisionieren?","Unsubscribed logs...":"Logs nicht mehr abonniert...","Update configuration DB":"Konfigurations-DB aktualisieren","Update Firmware":"Firmware aktualisieren","Update for configuration DB available":"Update f\xFCr Konfigurations-DB verf\xFCgbar","Updating configuration DB - please wait...":"Konfigurations-DB aktualisieren - bitte warten...","Updating the configuration DB failed!":"Aktualisierung der Konfigurations-DB fehlgeschlagen!","wake up device":"Bitte das Ger\xE4t aufwecken!","WARNING: Make sure that the node is reset before attempting this.":"WARNUNG: Vergewissern Sie sich, dass das Ger\xE4t zur\xFCckgesetzt ist, bevor Sie dies versuchen.","WARNING: Only do this if you no longer have physical access.":"WARNUNG: Tun Sie dies nur, wenn Sie keinen physischen Zugriff auf das Ger\xE4t mehr haben.","When a node announces itself, it will automatically be included within 10 minutes.":"Wenn ein Ger\xE4t sich meldet, wird es automatisch innerhalb von 10 Minuten eingebunden.","Wipes all configuration of the controller. All connected nodes will be orphaned and have to be reset and included into the new network before they can be used again.":"L\xF6scht die gesamte Konfiguration des Controllers. Alle verbundenen Ger\xE4te werden verwaist und m\xFCssen zur\xFCckgesetzt und in das neue Netzwerk aufgenommen werden, bevor sie wieder verwendet werden k\xF6nnen.","Write a detailed logfile":"Detaillierte Logdatei schreiben",yes:"ja","You can try this if the adapter does not start after updating to 2.3 or higher.":"Einen Versuch wert, wenn der Adapter nach dem Update auf 2.3 oder h\xF6her nicht startet.","Z-Wave Logs":"Z-Wave Protokolle","Z-Wave supports the following security mechanisms:":"Z-Wave unterst\xFCtzt die folgenden Sicherheitsmechanismen:"}});var Ahe=w((uqe,zhe)=>{zhe.exports={"- select endpoint -":"- \u0432\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u043A\u043E\u043D\u0435\u0447\u043D\u0443\u044E \u0442\u043E\u0447\u043A\u0443 -","- select group -":"- \u0432\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0433\u0440\u0443\u043F\u043F\u0443 -","- select node -":"- \u0432\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0443\u0437\u0435\u043B -","(recommended)":"(\u0440\u0435\u043A\u043E\u043C\u0435\u043D\u0434\u0443\u0435\u043C\u044B\u0435)","(use only when necessary)":"(\u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435 \u0442\u043E\u043B\u044C\u043A\u043E \u043F\u0440\u0438 \u043D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C\u043E\u0441\u0442\u0438)","abort firmware update":"\u043F\u0440\u0435\u0440\u0432\u0430\u0442\u044C \u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u0435 \u043F\u0440\u043E\u0448\u0438\u0432\u043A\u0438","adapter not ready":"\u0410\u0434\u0430\u043F\u0442\u0435\u0440 \u043D\u0435 \u0440\u0430\u0431\u043E\u0442\u0430\u0435\u0442 \u0438\u043B\u0438 \u0435\u0449\u0435 \u043D\u0435 \u0433\u043E\u0442\u043E\u0432!","Added SmartStart device":"\u0414\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u043E \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u043E SmartStart",alive:"\u0432 \u0436\u0438\u0432\u044B\u0445","Already included":"\u0423\u0436\u0435 \u0432\u043A\u043B\u044E\u0447\u0435\u043D\u044B","Already provisioned":"\u0423\u0436\u0435 \u043F\u043E\u0434\u0433\u043E\u0442\u043E\u0432\u043B\u0435\u043D\u043E",asleep:"\u0441\u043F\u044F\u0449\u0438\u0439",Associations:"\u0430\u0441\u0441\u043E\u0446\u0438\u0430\u0446\u0438\u0438","At least one must be granted or the key exchange will be canceled.":"\u041F\u043E \u043A\u0440\u0430\u0439\u043D\u0435\u0439 \u043C\u0435\u0440\u0435, \u043E\u0434\u0438\u043D \u0434\u043E\u043B\u0436\u0435\u043D \u0431\u044B\u0442\u044C \u043F\u0440\u0435\u0434\u043E\u0441\u0442\u0430\u0432\u043B\u0435\u043D, \u0438\u043D\u0430\u0447\u0435 \u043E\u0431\u043C\u0435\u043D \u043A\u043B\u044E\u0447\u0430\u043C\u0438 \u0431\u0443\u0434\u0435\u0442 \u043E\u0442\u043C\u0435\u043D\u0435\u043D.","At least one network key is not yet configured. This can cause problems during secure inclusion.":"\u041F\u043E \u043A\u0440\u0430\u0439\u043D\u0435\u0439 \u043C\u0435\u0440\u0435, \u043E\u0434\u0438\u043D \u0441\u0435\u0442\u0435\u0432\u043E\u0439 \u043A\u043B\u044E\u0447 \u0435\u0449\u0435 \u043D\u0435 \u043D\u0430\u0441\u0442\u0440\u043E\u0435\u043D. ","Auto-scroll to bottom":"\u0410\u0432\u0442\u043E\u043F\u0440\u043E\u043A\u0440\u0443\u0442\u043A\u0430 \u0432\u043D\u0438\u0437",awake:"\u0431\u043E\u0434\u0440\u0441\u0442\u0432\u0443\u044E\u0449\u0438\u0439","But read this first!":"\u041D\u043E \u0441\u043D\u0430\u0447\u0430\u043B\u0430 \u043F\u0440\u043E\u0447\u0442\u0438\u0442\u0435 \u044D\u0442\u043E!",Cancel:"\u041E\u0442\u043C\u0435\u043D\u0430","Cancel healing":"\u041E\u0442\u043C\u0435\u043D\u0438\u0442\u044C \u0438\u0441\u0446\u0435\u043B\u0435\u043D\u0438\u0435","clear cache procedure":"\u0410\u0434\u0430\u043F\u0442\u0435\u0440 \u043F\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u0441\u044F \u0438 \u0437\u0430\u043D\u043E\u0432\u043E \u043E\u043F\u0440\u043E\u0441\u0438\u0442\u044C \u0432\u0441\u0435\u0445 \u0443\u0437\u043B\u043E\u0432. \u042D\u0442\u043E \u043C\u043E\u0436\u0435\u0442 \u0437\u0430\u043D\u044F\u0442\u044C \u043C\u043D\u043E\u0433\u043E \u0432\u0440\u0435\u043C\u0435\u043D\u0438, \u0438 \u043D\u0435\u043A\u043E\u0442\u043E\u0440\u044B\u0435 \u0443\u0437\u043B\u044B \u043C\u043E\u0433\u0443\u0442 \u043D\u0435 \u0440\u0430\u0431\u043E\u0442\u0430\u0442\u044C, \u043A\u0430\u043A \u043E\u0436\u0438\u0434\u0430\u043B\u043E\u0441\u044C \u0432 \u044D\u0442\u043E \u0432\u0440\u0435\u043C\u044F.","Click here to select image with QR code":"\u041D\u0430\u0436\u043C\u0438\u0442\u0435 \u0437\u0434\u0435\u0441\u044C, \u0447\u0442\u043E\u0431\u044B \u0432\u044B\u0431\u0440\u0430\u0442\u044C \u0438\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u0435 \u0441 QR-\u043A\u043E\u0434\u043E\u043C",Close:"\u0417\u0430\u043A\u0440\u044B\u0432\u0430\u0442\u044C",collisions:"\u0441\u0442\u043E\u043B\u043A\u043D\u043E\u0432\u0435\u043D\u0438\u044F","Communicating with the device, please be patient...":"\u041E\u0431\u0449\u0430\u044F\u0441\u044C \u0441 \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u043E\u043C, \u043D\u0430\u0431\u0435\u0440\u0438\u0442\u0435\u0441\u044C \u0442\u0435\u0440\u043F\u0435\u043D\u0438\u044F ...","config update disclaimer":"\u0412\u041D\u0418\u041C\u0410\u041D\u0418\u0415: \u044D\u0442\u043E \u044D\u043A\u0441\u043F\u0435\u0440\u0438\u043C\u0435\u043D\u0442\u0430\u043B\u044C\u043D\u0430\u044F \u0444\u0443\u043D\u043A\u0446\u0438\u044F. \u041F\u0435\u0440\u0435\u0434 \u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u0435\u043C \u0431\u0430\u0437\u044B \u0434\u0430\u043D\u043D\u044B\u0445 \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u0443\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044C, \u0447\u0442\u043E \u0443 \u0432\u0430\u0441 \u0435\u0441\u0442\u044C \u0440\u0435\u0437\u0435\u0440\u0432\u043D\u0430\u044F \u043A\u043E\u043F\u0438\u044F ioBroker.","Configuration DB is up to date":"\u0411\u0414 \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 \u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0430","Configure the region and radio frequencies of the controller.":"\u041D\u0430\u0441\u0442\u0440\u043E\u0438\u0442\u044C \u0440\u0435\u0433\u0438\u043E\u043D \u0438 \u0440\u0430\u0434\u0438\u043E\u0447\u0430\u0441\u0442\u043E\u0442\u044B \u043A\u043E\u043D\u0442\u0440\u043E\u043B\u043B\u0435\u0440\u0430.","Controller node":"\u0423\u0437\u0435\u043B \u043A\u043E\u043D\u0442\u0440\u043E\u043B\u043B\u0435\u0440\u0430",corrupt:"\u0438\u0441\u043F\u043E\u0440\u0447\u0435\u043D\u043D\u044B\u0439",dead:"\u043C\u0435\u0440\u0442\u0432\u044B\u0445","Default (secure)":"\u041F\u043E \u0443\u043C\u043E\u043B\u0447\u0430\u043D\u0438\u044E (\u0431\u0435\u0437\u043E\u043F\u0430\u0441\u043D\u044B\u0439)","Define here which SmartStart capable nodes should be part of the network by entering their DSK and granting security classes.":"\u041E\u043F\u0440\u0435\u0434\u0435\u043B\u0438\u0442\u0435 \u0437\u0434\u0435\u0441\u044C, \u043A\u0430\u043A\u0438\u0435 \u0443\u0437\u043B\u044B \u0441 \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u043A\u043E\u0439 SmartStart \u0434\u043E\u043B\u0436\u043D\u044B \u0431\u044B\u0442\u044C \u0447\u0430\u0441\u0442\u044C\u044E \u0441\u0435\u0442\u0438, \u0432\u0432\u0435\u0434\u044F \u0438\u0445 DSK \u0438 \u043D\u0430\u0437\u043D\u0430\u0447\u0438\u0432 \u043A\u043B\u0430\u0441\u0441\u044B \u0431\u0435\u0437\u043E\u043F\u0430\u0441\u043D\u043E\u0441\u0442\u0438.","Delete association":"\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0430\u0441\u0441\u043E\u0446\u0438\u0430\u0446\u0438\u044E","Delete group":"\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0433\u0440\u0443\u043F\u043F\u0443",Devices:"\u0423\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u0430","Disable restarting the controller on startup":"\u041E\u0442\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u043F\u0435\u0440\u0435\u0437\u0430\u043F\u0443\u0441\u043A \u043A\u043E\u043D\u0442\u0440\u043E\u043B\u043B\u0435\u0440\u0430 \u043F\u0440\u0438 \u0437\u0430\u043F\u0443\u0441\u043A\u0435","Do you really want to remove this node from the network?":"\u0412\u044B \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043B\u044C\u043D\u043E \u0445\u043E\u0442\u0438\u0442\u0435 \u0443\u0434\u0430\u043B\u0438\u0442\u044C \u044D\u0442\u043E\u0442 \u0443\u0437\u0435\u043B \u0438\u0437 \u0441\u0435\u0442\u0438?","Do you really want to remove this node from the provisioning list?":"\u0412\u044B \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043B\u044C\u043D\u043E \u0445\u043E\u0442\u0438\u0442\u0435 \u0443\u0434\u0430\u043B\u0438\u0442\u044C \u044D\u0442\u043E\u0442 \u0443\u0437\u0435\u043B \u0438\u0437 \u0441\u043F\u0438\u0441\u043A\u0430 \u043F\u043E\u0434\u0433\u043E\u0442\u043E\u0432\u043A\u0438?","Do you really want to replace this node?":"\u0412\u044B \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043B\u044C\u043D\u043E \u0445\u043E\u0442\u0438\u0442\u0435 \u0437\u0430\u043C\u0435\u043D\u0438\u0442\u044C \u044D\u0442\u043E\u0442 \u0443\u0437\u0435\u043B?",done:"\u0441\u0434\u0435\u043B\u0430\u043D\u043D\u044B\u0439","Done!":"\u0412\u044B\u043F\u043E\u043B\u043D\u0435\u043D\u043E!","Door locks, garage doors":"\u0414\u0432\u0435\u0440\u043D\u044B\u0435 \u0437\u0430\u043C\u043A\u0438, \u0433\u0430\u0440\u0430\u0436\u043D\u044B\u0435 \u0432\u043E\u0440\u043E\u0442\u0430","Download logs":"\u0421\u043A\u0430\u0447\u0430\u0442\u044C \u0436\u0443\u0440\u043D\u0430\u043B\u044B",dropped:"\u0443\u043F\u0430\u0432\u0448\u0438\u0439",DSK:"DSK",Enabled:"\u0412\u043A\u043B\u044E\u0447\u0435\u043D\u043E",Endpoint:"\u041A\u043E\u043D\u0435\u0447\u043D\u0430\u044F \u0442\u043E\u0447\u043A\u0430","Enter group name":"\u0412\u0432\u0435\u0434\u0438\u0442\u0435 \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u0435 \u0433\u0440\u0443\u043F\u043F\u044B",Error:"\u043E\u0448\u0438\u0431\u043A\u0430","Example:":"\u041F\u0440\u0438\u043C\u0435\u0440:","Exclude device":"\u0418\u0441\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u043E","Exclusion active":"\u0418\u0441\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435 \u0430\u043A\u0442\u0438\u0432\u043D\u043E","Factory reset":"\u0421\u0431\u0440\u043E\u0441 \u043A \u0437\u0430\u0432\u043E\u0434\u0441\u043A\u0438\u043C \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430\u043C","factory reset procedure":"\u0421\u0442\u0438\u0440\u0430\u0435\u0442 \u0432\u0441\u044E \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044E \u043A\u043E\u043D\u0442\u0440\u043E\u043B\u043B\u0435\u0440\u0430. ","Factory reset?":"\u0421\u0431\u0440\u043E\u0441 \u043A \u0437\u0430\u0432\u043E\u0434\u0441\u043A\u0438\u043C \u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0430\u043C?",failed:"\u043D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C","Failed to scan QR code":"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043E\u0442\u0441\u043A\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u0442\u044C QR-\u043A\u043E\u0434","fast and secure":"\u0431\u044B\u0441\u0442\u0440\u043E \u0438 \u0431\u0435\u0437\u043E\u043F\u0430\u0441\u043D\u043E","firmware update failed":"\u041E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u0435 \u043F\u0440\u043E\u0448\u0438\u0432\u043A\u0438 \u043D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C!","firmware update no wait time":"\u0422\u0435\u043F\u0435\u0440\u044C \u044D\u0442\u043E \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u043E \u0431\u0443\u0434\u0435\u0442 \u043F\u043E\u0432\u0442\u043E\u0440\u043D\u043E \u0434\u043E\u043F\u0440\u043E\u0448\u0435\u043D.","firmware update successful":"\u041E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u044F \u043F\u0440\u043E\u0448\u0438\u0432\u043A\u0438 \u043F\u0440\u043E\u0448\u043B\u0430 \u0443\u0441\u043F\u0435\u0448\u043D\u043E!","firmware update wait time":"\u0423\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u043E \u0431\u0443\u0434\u0435\u0442 \u043F\u043E\u0432\u0442\u043E\u0440\u043D\u043E \u0434\u043E\u043F\u0440\u043E\u0448\u0435\u043D \u0432 {0} \u0441\u0435\u043A\u0443\u043D\u0434.","firmware update wake up":"\u0412\u043E\u0437\u043C\u043E\u0436\u043D\u043E, \u0432\u0430\u043C \u043F\u0440\u0438\u0434\u0435\u0442\u0441\u044F \u0441\u043D\u043E\u0432\u0430 \u043F\u0440\u043E\u0441\u043D\u0443\u0442\u044C\u0441\u044F \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u0430.","firmware update warning":"\u041F\u0440\u0435\u0434\u0443\u043F\u0440\u0435\u0436\u0434\u0435\u043D\u0438\u0435: \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435 \u043D\u0430 \u0441\u0432\u043E\u0439 \u0441\u0442\u0440\u0430\u0445 \u0438 \u0440\u0438\u0441\u043A! \u041C\u044B \u043D\u0435 \u043D\u0435\u0441\u0435\u043C \u043E\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043D\u043D\u043E\u0441\u0442\u0438, \u0435\u0441\u043B\u0438 \u0432\u0430\u0448\u0438 \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u0430 \u043D\u0435 \u0440\u0430\u0431\u043E\u0442\u0430\u044E\u0442 \u043F\u043E\u0441\u043B\u0435 \u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u044F.","For devices without a DSK. Authentication of the inclusion happens on the device instead of in ioBroker.":"\u0414\u043B\u044F \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432 \u0431\u0435\u0437 DSK. ","Forget all information about all nodes and re-interview them. Battery-powered nodes might need to be woken up manually.":"\u0417\u0430\u0431\u0443\u0434\u044C\u0442\u0435 \u0432\u0441\u044E \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044E \u043E\u0431\u043E \u0432\u0441\u0435\u0445 \u0443\u0437\u043B\u0430\u0445 \u0438 \u043F\u0435\u0440\u0435\u043F\u0440\u043E\u0432\u0435\u0440\u044C\u0442\u0435 \u0438\u0445. ","Forget all information about this node and re-interview it. Battery-powered nodes might need to be woken up manually.":"\u0417\u0430\u0431\u0443\u0434\u044C\u0442\u0435 \u0432\u0441\u044E \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044E \u043E\u0431 \u044D\u0442\u043E\u043C \u0443\u0437\u043B\u0435 \u0438 \u043F\u0435\u0440\u0435\u043F\u0440\u043E\u0432\u0435\u0440\u044C\u0442\u0435 \u0435\u0433\u043E. ","Generate key":"\u0413\u0435\u043D\u0435\u0440\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u043A\u043B\u044E\u0447",Group:"\u0433\u0440\u0443\u043F\u043F\u0430","Group name":"\u0418\u043C\u044F \u0433\u0440\u0443\u043F\u043F\u044B",Groups:"\u0413\u0440\u0443\u043F\u043F\u044B","Heal network":"\u0418\u0441\u0446\u0435\u043B\u0438\u0442\u044C \u0441\u0435\u0442\u0438","Heal network finished":"\u0418\u0441\u0446\u0435\u043B\u0438\u0442\u044C \u0441\u0435\u0442\u044C","Healing network":"\u0426\u0435\u043B\u0438\u0442\u0435\u043B\u044C\u043D\u0430\u044F \u0441\u0435\u0442\u044C ...","Healing the network was successful!":"\u0418\u0441\u0446\u0435\u043B\u0435\u043D\u0438\u0435 \u0432 \u0441\u0435\u0442\u0438 \u043F\u0440\u043E\u0448\u043B\u043E \u0443\u0441\u043F\u0435\u0448\u043D\u043E!","hosted port tip":"\u0412\u044B \u0442\u0430\u043A\u0436\u0435 \u043C\u043E\u0436\u0435\u0442\u0435 \u043F\u043E\u0434\u043A\u043B\u044E\u0447\u0438\u0442\u044C\u0441\u044F \u043A \u0440\u0430\u0437\u043C\u0435\u0449\u0435\u043D\u043D\u043E\u043C\u0443 \u043F\u043E\u0441\u043B\u0435\u0434\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u043D\u043E\u043C\u0443 \u043F\u043E\u0440\u0442\u0443, \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u044F \u0444\u043E\u0440\u043C\u0443 'tcp://hostname:port'","Include device":"\u0412\u043A\u043B\u044E\u0447\u0438\u0442\u044C \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u043E","Inclusion active":"\u0412\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435 \u0430\u043A\u0442\u0438\u0432\u043D\u043E","Installed version":"\u0423\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D\u043D\u0430\u044F \u0432\u0435\u0440\u0441\u0438\u044F","Invalid network key":"\u041D\u0435\u0432\u0435\u0440\u043D\u044B\u0439 \u0441\u0435\u0442\u0435\u0432\u043E\u0439 \u043A\u043B\u044E\u0447: \u0434\u043E\u043B\u0436\u0435\u043D \u0431\u044B\u0442\u044C 16 \u0431\u0430\u0439\u0442\u043E\u0432 (32 \u0448\u0435\u0441\u0442\u043D\u0430\u0434\u0446\u0430\u0442\u0435\u0440\u0438\u0447\u043D\u044B\u0445 \u0441\u0438\u043C\u0432\u043E\u043B\u0430 [0-9, a-f])","It will be included automatically when it announces itself.":"\u041E\u043D \u0431\u0443\u0434\u0435\u0442 \u0432\u043A\u043B\u044E\u0447\u0435\u043D \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438, \u043A\u043E\u0433\u0434\u0430 \u043E\u0431\u044A\u044F\u0432\u0438\u0442 \u043E \u0441\u0435\u0431\u0435.","Legacy door locks without S2 support":"\u0423\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0438\u0435 \u0434\u0432\u0435\u0440\u043D\u044B\u0435 \u0437\u0430\u043C\u043A\u0438 \u0431\u0435\u0437 \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u043A\u0438 S2","Legacy switch compatibility":"\u0423\u043B\u0443\u0447\u0448\u0435\u043D\u0438\u0435 \u0441\u043E\u0432\u043C\u0435\u0441\u0442\u0438\u043C\u043E\u0441\u0442\u0438 \u0441 \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0438\u043C\u0438 \u043A\u043E\u043C\u043C\u0443\u0442\u0430\u0442\u043E\u0440\u0430\u043C\u0438","Lighting, sensors, security systems":"\u041E\u0441\u0432\u0435\u0449\u0435\u043D\u0438\u0435, \u0434\u0430\u0442\u0447\u0438\u043A\u0438, \u0441\u0438\u0441\u0442\u0435\u043C\u044B \u0431\u0435\u0437\u043E\u043F\u0430\u0441\u043D\u043E\u0441\u0442\u0438","Like S2 Authenticated, but without verification that the correct device is included":"\u041A\u0430\u043A S2 Authenticated, \u043D\u043E \u0431\u0435\u0437 \u043F\u0440\u043E\u0432\u0435\u0440\u043A\u0438, \u0447\u0442\u043E \u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u043E\u0435 \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u043E \u0432\u043A\u043B\u044E\u0447\u0435\u043D\u043E",Name:"\u0418\u043C\u044F","network key confirm":"\u042D\u0442\u043E \u043F\u0440\u0438\u0432\u0435\u0434\u0435\u0442 \u043A \u043F\u0435\u0440\u0435\u0437\u0430\u043F\u0438\u0441\u0438 \u0441\u0443\u0449\u0435\u0441\u0442\u0432\u0443\u044E\u0449\u0435\u0433\u043E \u043A\u043B\u044E\u0447\u0430 \u0438 \u0430\u0434\u0430\u043F\u0442\u0435\u0440 \u043D\u0435 \u0441\u043C\u043E\u0436\u0435\u0442 \u043E\u0431\u0449\u0430\u0442\u044C\u0441\u044F \u0441 \u0443\u0436\u0435 \u0432\u043A\u043B\u044E\u0447\u0435\u043D\u043D\u044B\u043C\u0438 \u0437\u0430\u0449\u0438\u0449\u0435\u043D\u043D\u044B\u0445 \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432. \u0412\u044B \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043B\u044C\u043D\u043E \u0445\u043E\u0442\u0438\u0442\u0435 \u043F\u0440\u043E\u0434\u043E\u043B\u0436\u0438\u0442\u044C?","network key tooltip":"16 \u0431\u0430\u0439\u0442 \u0432 \u0448\u0435\u0441\u0442\u043D\u0430\u0434\u0446\u0430\u0442\u0435\u0440\u0438\u0447\u043D\u043E\u043C \u0432\u0438\u0434\u0435 (32 \u0441\u0438\u043C\u0432\u043E\u043B\u0430 0-9, \u0430-F). \u0411\u0435\u0437 \u043F\u0440\u043E\u0431\u0435\u043B\u043E\u0432, \u0431\u0435\u0437 \u0437\u0430\u043F\u044F\u0442\u044B\u0445, \u0431\u0435\u0437 \u0432\u0435\u0434\u0443\u0449\u0438\u0445 '0\u0445'.","Network keys for secure communication":"\u0421\u0435\u0442\u0435\u0432\u043E\u0439 \u043A\u043B\u044E\u0447 \u0434\u043B\u044F \u0431\u0435\u0437\u043E\u043F\u0430\u0441\u043D\u043E\u0433\u043E \u043E\u0431\u0449\u0435\u043D\u0438\u044F","Network map":"\u041A\u0430\u0440\u0442\u0430 \u0441\u0435\u0442\u0438",no:"\u043D\u0435\u0442","No devices present":"\u0423\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u0430 \u043E\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0443\u044E\u0442","No encryption":"\u0411\u0435\u0437 \u0448\u0438\u0444\u0440\u043E\u0432\u0430\u043D\u0438\u044F","no file selected":"\u0444\u0430\u0439\u043B \u043D\u0435 \u0432\u044B\u0431\u0440\u0430\u043D","no multicast explanation":"\u0421\u043F\u044F\u0449\u0438\u0435 \u0443\u0437\u043B\u044B \u0438 \u0443\u0437\u043B\u044B, \u0432\u043A\u043B\u044E\u0447\u0435\u043D\u043D\u044B\u0435 \u0432 Security S0, \u043D\u0435 \u043C\u043E\u0433\u0443\u0442 \u0438\u0441\u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u044C\u0441\u044F \u0432 \u043C\u043D\u043E\u0433\u043E\u0430\u0434\u0440\u0435\u0441\u043D\u044B\u0445 \u0433\u0440\u0443\u043F\u043F\u0430\u0445.",Node:"\u0423\u0437\u0435\u043B","Node %s was added successfully!":"\u0423\u0437\u0435\u043B% s \u0443\u0441\u043F\u0435\u0448\u043D\u043E \u0434\u043E\u0431\u0430\u0432\u043B\u0435\u043D!","Node %s was removed from the network!":"\u0423\u0437\u0435\u043B% s \u0443\u0434\u0430\u043B\u0435\u043D \u0438\u0437 \u0441\u0435\u0442\u0438!","Node is not ready":"\u0423\u0437\u0435\u043B \u043D\u0435 \u0433\u043E\u0442\u043E\u0432","Node successfully added to provisioning list":"\u0423\u0437\u0435\u043B \u0443\u0441\u043F\u0435\u0448\u043D\u043E \u0434\u043E\u0431\u0430\u0432\u043B\u0435\u043D \u0432 \u0441\u043F\u0438\u0441\u043E\u043A \u043F\u043E\u0434\u0433\u043E\u0442\u043E\u0432\u043A\u0438",Nodes:"\u0423\u0437\u043B\u044B","Non-secure":"\u041D\u0435\u0431\u0435\u0437\u043E\u043F\u0430\u0441\u043D\u044B\u0439","none selected":"\u043D\u0435 \u0432\u044B\u0431\u0440\u0430\u043D\u043E, \u043D\u0438\u0447\u0435\u0433\u043E \u043D\u0435 \u0432\u044B\u0431\u0440\u0430\u043D\u043E","not requested":"\u043D\u0435 \u0437\u0430\u043F\u0440\u043E\u0448\u0435\u043D\u043E","Note: Applying a different region might take a few seconds.":"\u041F\u0440\u0438\u043C\u0435\u0447\u0430\u043D\u0438\u0435. \u041F\u0440\u0438\u043C\u0435\u043D\u0435\u043D\u0438\u0435 \u0434\u0440\u0443\u0433\u043E\u0433\u043E \u0440\u0435\u0433\u0438\u043E\u043D\u0430 \u043C\u043E\u0436\u0435\u0442 \u0437\u0430\u043D\u044F\u0442\u044C \u043D\u0435\u0441\u043A\u043E\u043B\u044C\u043A\u043E \u0441\u0435\u043A\u0443\u043D\u0434.",OK:"Ok","Only use S0, even if S2 is available. Allows including devices that require security but don't behave correctly during S2 inclusion.":"\u0418\u0441\u043F\u043E\u043B\u044C\u0437\u0443\u0439\u0442\u0435 \u0442\u043E\u043B\u044C\u043A\u043E S0, \u0434\u0430\u0436\u0435 \u0435\u0441\u043B\u0438 \u0434\u043E\u0441\u0442\u0443\u043F\u0435\u043D S2. ","Open log in new window":"\u041E\u0442\u043A\u0440\u044B\u0442\u044C \u0436\u0443\u0440\u043D\u0430\u043B \u0432 \u043D\u043E\u0432\u043E\u043C \u043E\u043A\u043D\u0435","opening camera...":"\u043E\u0442\u043A\u0440\u044B\u0442\u0438\u0435 \u043A\u0430\u043C\u0435\u0440\u044B ...","Or drag an image file here":"\u0418\u043B\u0438 \u043F\u0435\u0440\u0435\u0442\u0430\u0449\u0438\u0442\u0435 \u0441\u044E\u0434\u0430 \u0444\u0430\u0439\u043B \u0438\u0437\u043E\u0431\u0440\u0430\u0436\u0435\u043D\u0438\u044F","Pause auto-scrolling":"\u041F\u0440\u0438\u043E\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C \u0430\u0432\u0442\u043E\u043F\u0440\u043E\u043A\u0440\u0443\u0442\u043A\u0443","Pause logging":"\u041F\u0440\u0438\u043E\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C \u0432\u0435\u0434\u0435\u043D\u0438\u0435 \u0436\u0443\u0440\u043D\u0430\u043B\u0430",pending:"\u0432 \u043E\u0436\u0438\u0434\u0430\u043D\u0438\u0438","Please choose an inclusion strategy":"\u041F\u043E\u0436\u0430\u043B\u0443\u0439\u0441\u0442\u0430, \u0432\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0441\u0442\u0440\u0430\u0442\u0435\u0433\u0438\u044E \u0432\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u044F","Please choose which of the following security classes to grant to the new node.":"\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435, \u043A\u0430\u043A\u043E\u0439 \u0438\u0437 \u0441\u043B\u0435\u0434\u0443\u044E\u0449\u0438\u0445 \u043A\u043B\u0430\u0441\u0441\u043E\u0432 \u0431\u0435\u0437\u043E\u043F\u0430\u0441\u043D\u043E\u0441\u0442\u0438 \u043F\u0440\u0435\u0434\u043E\u0441\u0442\u0430\u0432\u0438\u0442\u044C \u043D\u043E\u0432\u043E\u043C\u0443 \u0443\u0437\u043B\u0443.","Please enter the 5-digit PIN for your device and verify that the rest of the device-specific key (DSK) matches the one on your device or the manual.":"\u0412\u0432\u0435\u0434\u0438\u0442\u0435 5-\u0437\u043D\u0430\u0447\u043D\u044B\u0439 PIN-\u043A\u043E\u0434 \u0434\u043B\u044F \u0441\u0432\u043E\u0435\u0433\u043E \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u0430 \u0438 \u0443\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044C, \u0447\u0442\u043E \u043E\u0441\u0442\u0430\u043B\u044C\u043D\u0430\u044F \u0447\u0430\u0441\u0442\u044C \u043A\u043B\u044E\u0447\u0430 \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u0430 (DSK) \u0441\u043E\u0432\u043F\u0430\u0434\u0430\u0435\u0442 \u0441 \u043A\u043B\u044E\u0447\u043E\u043C \u043D\u0430 \u0432\u0430\u0448\u0435\u043C \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u0435 \u0438\u043B\u0438 \u0432 \u0440\u0443\u043A\u043E\u0432\u043E\u0434\u0441\u0442\u0432\u0435.","Prefer S0 over no encryption":"\u041F\u0440\u0435\u0434\u043F\u043E\u0447\u0438\u0442\u0430\u0439\u0442\u0435 S0 \u043E\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u044E \u0448\u0438\u0444\u0440\u043E\u0432\u0430\u043D\u0438\u044F","Preserve state names":"\u041D\u0435 \u043F\u0435\u0440\u0435\u0437\u0430\u043F\u0438\u0441\u044B\u0432\u0430\u0439\u0442\u0435 \u043D\u0430\u0437\u0432\u0430\u043D\u0438\u044F \u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u0439","Provision node":"\u0423\u0437\u0435\u043B \u043F\u0440\u0435\u0434\u043E\u0441\u0442\u0430\u0432\u043B\u0435\u043D\u0438\u044F","Put your device into exclusion mode":"\u041F\u0435\u0440\u0435\u0432\u0435\u0434\u0438\u0442\u0435 \u0432\u0430\u0448\u0435 \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u043E \u0432 \u0440\u0435\u0436\u0438\u043C \u0438\u0441\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u044F","Put your device into inclusion mode":"\u041F\u0435\u0440\u0435\u0432\u0435\u0434\u0438\u0442\u0435 \u0432\u0430\u0448\u0435 \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u043E \u0432 \u0440\u0435\u0436\u0438\u043C \u0432\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u044F","Re-interview all":"\u041F\u043E\u0432\u0442\u043E\u0440\u043D\u043E \u043F\u0440\u043E\u0438\u043D\u0442\u0435\u0440\u0432\u044C\u044E\u0438\u0440\u0443\u0439\u0442\u0435 \u0432\u0441\u0435\u0445","Re-interview all?":"\u041F\u0435\u0440\u0435\u043F\u0440\u043E\u0441\u0438\u0442\u044C \u0432\u0441\u0435\u0445?",received:"\u043F\u043E\u043B\u0443\u0447\u0435\u043D\u043D\u044B\u0439","Refresh node info":"\u041E\u0431\u043D\u043E\u0432\u0438\u0442\u044C \u0438\u043D\u0444\u043E\u0440\u043C\u0430\u0446\u0438\u044E \u043E\u0431 \u0443\u0437\u043B\u0435","Remove failed node":"\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u043D\u0435\u0438\u0441\u043F\u0440\u0430\u0432\u043D\u044B\u0439 \u0443\u0437\u0435\u043B","Remove node?":"\u0423\u0434\u0430\u043B\u0438\u0442\u044C \u0443\u0437\u0435\u043B?","Remove this node from the network.":"\u0423\u0434\u0430\u043B\u0438\u0442\u0435 \u044D\u0442\u043E\u0442 \u0443\u0437\u0435\u043B \u0438\u0437 \u0441\u0435\u0442\u0438.","Removing or disabling an entry does not automatically exclude the node.":"\u0423\u0434\u0430\u043B\u0435\u043D\u0438\u0435 \u0438\u043B\u0438 \u043E\u0442\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u0435 \u0437\u0430\u043F\u0438\u0441\u0438 \u043D\u0435 \u0438\u0441\u043A\u043B\u044E\u0447\u0430\u0435\u0442 \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438 \u0443\u0437\u0435\u043B.","Replace device":"\u0417\u0430\u043C\u0435\u043D\u0438\u0442\u044C \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u043E","Replace failed node":"\u0417\u0430\u043C\u0435\u043D\u0438\u0442\u044C \u0432\u044B\u0448\u0435\u0434\u0448\u0438\u0439 \u0438\u0437 \u0441\u0442\u0440\u043E\u044F \u0443\u0437\u0435\u043B","Replace node?":"\u0417\u0430\u043C\u0435\u043D\u0438\u0442\u044C \u0443\u0437\u0435\u043B?","Replace this node with a different one, keeping the node ID.":"\u0417\u0430\u043C\u0435\u043D\u0438\u0442\u0435 \u044D\u0442\u043E\u0442 \u0443\u0437\u0435\u043B \u0434\u0440\u0443\u0433\u0438\u043C, \u0441\u043E\u0445\u0440\u0430\u043D\u0438\u0432 \u0438\u0434\u0435\u043D\u0442\u0438\u0444\u0438\u043A\u0430\u0442\u043E\u0440 \u0443\u0437\u043B\u0430.","Requires user interaction during the inclusion.":"\u0422\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044F \u0432\u0437\u0430\u0438\u043C\u043E\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0435 \u0441 \u043F\u043E\u043B\u044C\u0437\u043E\u0432\u0430\u0442\u0435\u043B\u0435\u043C \u0432\u043E \u0432\u0440\u0435\u043C\u044F \u0432\u043A\u043B\u044E\u0447\u0435\u043D\u0438\u044F.","Restart the controller, e.g. when it hangs":"\u041F\u0435\u0440\u0435\u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u0435 \u043A\u043E\u043D\u0442\u0440\u043E\u043B\u043B\u0435\u0440, \u043D\u0430\u043F\u0440\u0438\u043C\u0435\u0440 ","Root device":"\u041A\u043E\u0440\u043D\u0435\u0432\u043E\u0435 \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u043E","Root endpoint":"\u041A\u043E\u0440\u043D\u0435\u0432\u0430\u044F \u043A\u043E\u043D\u0435\u0447\u043D\u0430\u044F \u0442\u043E\u0447\u043A\u0430","Save association":"\u0421\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C \u0430\u0441\u0441\u043E\u0446\u0438\u0430\u0446\u0438\u044E","Save group":"\u0421\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C \u0433\u0440\u0443\u043F\u043F\u0443","Scan QR Code":"\u0421\u043A\u0430\u043D\u0438\u0440\u043E\u0432\u0430\u0442\u044C QR-\u043A\u043E\u0434",Secure:"\u0411\u0435\u0437\u043E\u043F\u0430\u0441\u043D\u044B\u0439","secure, but slow due to a lot of overhead":"\u0431\u0435\u0437\u043E\u043F\u0430\u0441\u043D\u043E, \u043D\u043E \u043C\u0435\u0434\u043B\u0435\u043D\u043D\u043E \u0438\u0437-\u0437\u0430 \u0431\u043E\u043B\u044C\u0448\u043E\u0433\u043E \u043A\u043E\u043B\u0438\u0447\u0435\u0441\u0442\u0432\u0430 \u043D\u0430\u043A\u043B\u0430\u0434\u043D\u044B\u0445 \u0440\u0430\u0441\u0445\u043E\u0434\u043E\u0432",Security:"\u0411\u0435\u0437\u043E\u043F\u0430\u0441\u043D\u043E\u0441\u0442\u044C","Security class: %s":"\u041A\u043B\u0430\u0441\u0441 \u0431\u0435\u0437\u043E\u043F\u0430\u0441\u043D\u043E\u0441\u0442\u0438:% s","Security classes":"\u041A\u043B\u0430\u0441\u0441\u044B \u0431\u0435\u0437\u043E\u043F\u0430\u0441\u043D\u043E\u0441\u0442\u0438","Security S0":"\u0411\u0435\u0437\u043E\u043F\u0430\u0441\u043D\u043E\u0441\u0442\u044C S0","Security S2 when supported, Security S0 as a fallback, no encryption otherwise.":"Security S2, \u0435\u0441\u043B\u0438 \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044F, Security S0 \u0432 \u043A\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0437\u0430\u043F\u0430\u0441\u043D\u043E\u0433\u043E \u0432\u0430\u0440\u0438\u0430\u043D\u0442\u0430, \u0432 \u043F\u0440\u043E\u0442\u0438\u0432\u043D\u043E\u043C \u0441\u043B\u0443\u0447\u0430\u0435 - \u0431\u0435\u0437 \u0448\u0438\u0444\u0440\u043E\u0432\u0430\u043D\u0438\u044F.","Security S2 when supported, Security S0 only when necessary, no encryption otherwise.":"Security S2, \u0435\u0441\u043B\u0438 \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044F, Security S0 - \u0442\u043E\u043B\u044C\u043A\u043E \u043F\u0440\u0438 \u043D\u0435\u043E\u0431\u0445\u043E\u0434\u0438\u043C\u043E\u0441\u0442\u0438, \u0432 \u043F\u0440\u043E\u0442\u0438\u0432\u043D\u043E\u043C \u0441\u043B\u0443\u0447\u0430\u0435 - \u0431\u0435\u0437 \u0448\u0438\u0444\u0440\u043E\u0432\u0430\u043D\u0438\u044F.","Select at least 2 nodes":"\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u043D\u0435 \u043C\u0435\u043D\u0435\u0435 2 \u0443\u0437\u043B\u043E\u0432","Select QR code source":"\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u0438\u0441\u0442\u043E\u0447\u043D\u0438\u043A QR-\u043A\u043E\u0434\u0430","Select serial port":"\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u043F\u043E\u0441\u043B\u0435\u0434\u043E\u0432\u0430\u0442\u0435\u043B\u044C\u043D\u044B\u0439 \u043F\u043E\u0440\u0442","Select the correct region for where you are. Using a different region may be illegal.":"\u0412\u044B\u0431\u0435\u0440\u0438\u0442\u0435 \u043F\u0440\u0430\u0432\u0438\u043B\u044C\u043D\u044B\u0439 \u0440\u0435\u0433\u0438\u043E\u043D, \u0432 \u043A\u043E\u0442\u043E\u0440\u043E\u043C \u0432\u044B \u043D\u0430\u0445\u043E\u0434\u0438\u0442\u0435\u0441\u044C. ",sent:"\u043F\u043E\u0441\u043B\u0430\u043B","Set RF Region":"\u0423\u0441\u0442\u0430\u043D\u043E\u0432\u0438\u0442\u044C \u0440\u0435\u0433\u0438\u043E\u043D \u0420\u0424",Settings:"\u043D\u0430\u0441\u0442\u0440\u043E\u0439\u043A\u0438",SmartStart:"SmartStart","Soft reset":"\u041C\u044F\u0433\u043A\u0438\u0439 \u0441\u0431\u0440\u043E\u0441","Source endpoint":"\u0418\u0441\u0445\u043E\u0434\u043D\u0430\u044F \u043A\u043E\u043D\u0435\u0447\u043D\u0430\u044F \u0442\u043E\u0447\u043A\u0430","start firmware update":"\u043D\u0430\u0447\u0430\u0442\u044C \u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u0435 \u043F\u0440\u043E\u0448\u0438\u0432\u043A\u0438","Start logging":"\u041D\u0430\u0447\u0430\u0442\u044C \u0440\u0435\u0433\u0438\u0441\u0442\u0440\u0430\u0446\u0438\u044E",Statistics:"\u0421\u0442\u0430\u0442\u0438\u0441\u0442\u0438\u043A\u0430",Status:"\u041F\u043E\u043B\u043E\u0436\u0435\u043D\u0438\u0435 \u0434\u0435\u043B","Subscribed to logs...":"\u041F\u043E\u0434\u043F\u0438\u0441\u0430\u043D \u043D\u0430 \u043B\u043E\u0433\u0438 ...","Successfully added SmartStart device to provisioning list.":"\u0423\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u043E SmartStart \u0443\u0441\u043F\u0435\u0448\u043D\u043E \u0434\u043E\u0431\u0430\u0432\u043B\u0435\u043D\u043E \u0432 \u0441\u043F\u0438\u0441\u043E\u043A \u0438\u043D\u0438\u0446\u0438\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u0438.","switch compat tooltip":"\u041F\u0435\u0440\u0435\u0437\u0430\u043F\u0438\u0441\u044B\u0432\u0430\u0435\u0442 \u0441\u043E\u0441\u0442\u043E\u044F\u043D\u0438\u0435 'targetValue' \u0434\u0432\u043E\u0438\u0447\u043D\u044B\u0445 \u0438 \u043C\u043D\u043E\u0433\u043E\u0443\u0440\u043E\u0432\u043D\u0435\u0432\u044B\u0445 \u043F\u0435\u0440\u0435\u043A\u043B\u044E\u0447\u0430\u0442\u0435\u043B\u0435\u0439 \u043D\u0430 'currentValue', \u0447\u0442\u043E\u0431\u044B \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0442\u044C \u0438\u0445 \u0441\u0438\u043D\u0445\u0440\u043E\u043D\u0438\u0437\u0430\u0446\u0438\u044E","Target endpoint":"\u0426\u0435\u043B\u0435\u0432\u0430\u044F \u043A\u043E\u043D\u0435\u0447\u043D\u0430\u044F \u0442\u043E\u0447\u043A\u0430","Target node":"\u0426\u0435\u043B\u0435\u0432\u043E\u0439 \u0443\u0437\u0435\u043B","The association could not be deleted!":"\u0410\u0441\u0441\u043E\u0446\u0438\u0430\u0446\u0438\u044F \u043D\u0435 \u043C\u043E\u0436\u0435\u0442 \u0431\u044B\u0442\u044C \u0443\u0434\u0430\u043B\u0435\u043D\u0430!","The association could not be saved!":"\u0410\u0441\u0441\u043E\u0446\u0438\u0430\u0446\u0438\u044F \u043D\u0435 \u043C\u043E\u0436\u0435\u0442 \u0431\u044B\u0442\u044C \u0441\u043E\u0445\u0440\u0430\u043D\u0435\u043D\u0430!","The controller does not support SmartStart!":"\u041A\u043E\u043D\u0442\u0440\u043E\u043B\u043B\u0435\u0440 \u043D\u0435 \u043F\u043E\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442 SmartStart!","The device is already included as Node %s":"\u0423\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u043E \u0443\u0436\u0435 \u0432\u043A\u043B\u044E\u0447\u0435\u043D\u043E \u043A\u0430\u043A \u0443\u0437\u0435\u043B% s","The device is now being interviewed. It might take a while to show up.":"\u0423\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u043E \u0441\u0435\u0439\u0447\u0430\u0441 \u043F\u0440\u043E\u0445\u043E\u0434\u0438\u0442 \u0441\u043E\u0431\u0435\u0441\u0435\u0434\u043E\u0432\u0430\u043D\u0438\u0435. ","The group could not be deleted!":"\u0413\u0440\u0443\u043F\u043F\u0430 \u043D\u0435 \u043C\u043E\u0436\u0435\u0442 \u0431\u044B\u0442\u044C \u0443\u0434\u0430\u043B\u0435\u043D\u0430!","The group could not be saved!":"\u0413\u0440\u0443\u043F\u043F\u0443 \u043D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0441\u043E\u0445\u0440\u0430\u043D\u0438\u0442\u044C!","This is not a failed node":"\u042D\u0442\u043E \u043D\u0435 \u043D\u0435\u0438\u0441\u043F\u0440\u0430\u0432\u043D\u044B\u0439 \u0443\u0437\u0435\u043B","This is not a SmartStart QR code. Use the devices tab to include this node.":"\u042D\u0442\u043E \u043D\u0435 QR-\u043A\u043E\u0434 SmartStart. ","This is not a valid Z-Wave QR code":"\u042D\u0442\u043E \u043D\u0435\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043B\u044C\u043D\u044B\u0439 QR-\u043A\u043E\u0434 Z-Wave.","This node is already on the SmartStart provisioning list":"\u042D\u0442\u043E\u0442 \u0443\u0437\u0435\u043B \u0443\u0436\u0435 \u043D\u0430\u0445\u043E\u0434\u0438\u0442\u0441\u044F \u0432 \u0441\u043F\u0438\u0441\u043A\u0435 \u0438\u043D\u0438\u0446\u0438\u0430\u043B\u0438\u0437\u0430\u0446\u0438\u0438 SmartStart.","This should only be set for debugging purposes.":"\u042D\u0442\u043E \u0434\u043E\u043B\u0436\u043D\u043E \u0431\u044B\u0442\u044C \u0443\u0441\u0442\u0430\u043D\u043E\u0432\u043B\u0435\u043D\u043E \u0442\u043E\u043B\u044C\u043A\u043E \u0434\u043B\u044F \u0446\u0435\u043B\u0435\u0439 \u043E\u0442\u043B\u0430\u0434\u043A\u0438.",timeouts:"\u0442\u0430\u0439\u043C\u0430\u0443\u0442\u044B",Type:"\u0422\u0438\u043F","Undo changes":"\u041E\u0442\u043C\u0435\u043D\u0438\u0442\u044C \u0438\u0437\u043C\u0435\u043D\u0435\u043D\u0438\u044F",unknown:"\u043D\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043D\u044B\u0439",Unprovision:"\u041E\u0442\u043C\u0435\u043D\u0430 \u043E\u0431\u0435\u0441\u043F\u0435\u0447\u0435\u043D\u0438\u044F","Unprovision node?":"\u041E\u0442\u043C\u0435\u043D\u0438\u0442\u044C \u043E\u0431\u0435\u0441\u043F\u0435\u0447\u0435\u043D\u0438\u0435 \u0443\u0437\u043B\u0430?","Unsubscribed logs...":"\u041E\u0442\u043F\u0438\u0441\u0430\u0432\u0448\u0438\u0435\u0441\u044F \u0436\u0443\u0440\u043D\u0430\u043B\u044B ...","Update configuration DB":"\u041E\u0431\u043D\u043E\u0432\u0438\u0442\u044C \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043E\u043D\u043D\u0443\u044E \u0411\u0414","Update Firmware":"\u041E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u0435 \u043F\u0440\u043E\u0448\u0438\u0432\u043A\u0438","Update for configuration DB available":"\u0414\u043E\u0441\u0442\u0443\u043F\u043D\u043E \u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u0435 \u0434\u043B\u044F \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043E\u043D\u043D\u043E\u0439 \u0411\u0414","Updating configuration DB - please wait...":"\u041E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u0435 \u0411\u0414 \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u0438 - \u043F\u043E\u0434\u043E\u0436\u0434\u0438\u0442\u0435 ...","Updating the configuration DB failed!":"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u043E\u0431\u043D\u043E\u0432\u0438\u0442\u044C \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u043E\u043D\u043D\u0443\u044E \u0431\u0430\u0437\u0443 \u0434\u0430\u043D\u043D\u044B\u0445!","wake up device":"\u041F\u043E\u0436\u0430\u043B\u0443\u0439\u0441\u0442\u0430, \u043F\u0440\u043E\u0441\u043D\u0443\u0442\u044C\u0441\u044F \u0443\u0441\u0442\u0440\u043E\u0439\u0441\u0442\u0432\u043E!","WARNING: Make sure that the node is reset before attempting this.":"\u0412\u041D\u0418\u041C\u0410\u041D\u0418\u0415! \u041F\u0435\u0440\u0435\u0434 \u0442\u0435\u043C, \u043A\u0430\u043A \u043F\u044B\u0442\u0430\u0442\u044C\u0441\u044F \u044D\u0442\u043E \u0441\u0434\u0435\u043B\u0430\u0442\u044C, \u0443\u0431\u0435\u0434\u0438\u0442\u0435\u0441\u044C, \u0447\u0442\u043E \u0443\u0437\u0435\u043B \u0441\u0431\u0440\u043E\u0448\u0435\u043D.","WARNING: Only do this if you no longer have physical access.":"\u0412\u041D\u0418\u041C\u0410\u041D\u0418\u0415: \u0434\u0435\u043B\u0430\u0439\u0442\u0435 \u044D\u0442\u043E \u0442\u043E\u043B\u044C\u043A\u043E \u0432 \u0442\u043E\u043C \u0441\u043B\u0443\u0447\u0430\u0435, \u0435\u0441\u043B\u0438 \u0443 \u0432\u0430\u0441 \u0431\u043E\u043B\u044C\u0448\u0435 \u043D\u0435\u0442 \u0444\u0438\u0437\u0438\u0447\u0435\u0441\u043A\u043E\u0433\u043E \u0434\u043E\u0441\u0442\u0443\u043F\u0430.","When a node announces itself, it will automatically be included within 10 minutes.":"\u041A\u043E\u0433\u0434\u0430 \u0443\u0437\u0435\u043B \u043E\u0431\u044A\u044F\u0432\u043B\u044F\u0435\u0442 \u043E \u0441\u0435\u0431\u0435, \u043E\u043D \u0430\u0432\u0442\u043E\u043C\u0430\u0442\u0438\u0447\u0435\u0441\u043A\u0438 \u0432\u043A\u043B\u044E\u0447\u0430\u0435\u0442\u0441\u044F \u0432 \u0442\u0435\u0447\u0435\u043D\u0438\u0435 10 \u043C\u0438\u043D\u0443\u0442.","Wipes all configuration of the controller. All connected nodes will be orphaned and have to be reset and included into the new network before they can be used again.":"\u0421\u0442\u0438\u0440\u0430\u0435\u0442 \u0432\u0441\u044E \u043A\u043E\u043D\u0444\u0438\u0433\u0443\u0440\u0430\u0446\u0438\u044E \u043A\u043E\u043D\u0442\u0440\u043E\u043B\u043B\u0435\u0440\u0430. ","Write a detailed logfile":"\u041D\u0430\u043F\u0438\u0448\u0438\u0442\u0435 \u043F\u043E\u0434\u0440\u043E\u0431\u043D\u044B\u0439 \u043B\u043E\u0433-\u0444\u0430\u0439\u043B",yes:"\u0434\u0430","You can try this if the adapter does not start after updating to 2.3 or higher.":"\u0412\u044B \u043C\u043E\u0436\u0435\u0442\u0435 \u043F\u043E\u043F\u0440\u043E\u0431\u043E\u0432\u0430\u0442\u044C \u044D\u0442\u043E, \u0435\u0441\u043B\u0438 \u0430\u0434\u0430\u043F\u0442\u0435\u0440 \u043D\u0435 \u0437\u0430\u043F\u0443\u0441\u043A\u0430\u0435\u0442\u0441\u044F \u043F\u043E\u0441\u043B\u0435 \u043E\u0431\u043D\u043E\u0432\u043B\u0435\u043D\u0438\u044F \u0434\u043E \u0432\u0435\u0440\u0441\u0438\u0438 2.3 \u0438\u043B\u0438 \u0432\u044B\u0448\u0435.","Z-Wave Logs":"\u0416\u0443\u0440\u043D\u0430\u043B\u044B Z-Wave","Z-Wave supports the following security mechanisms:":"Z-Wave supports the following security mechanisms:"}});var Lhe=w((cqe,Fhe)=>{Fhe.exports={"- select endpoint -":"- selecione o ponto final -","- select group -":"- selecione o grupo -","- select node -":"- selecione o n\xF3 -","(recommended)":"(recomendado)","(use only when necessary)":"(use apenas quando necess\xE1rio)","abort firmware update":"abortar atualiza\xE7\xE3o de firmware","adapter not ready":"O adaptador n\xE3o est\xE1 em execu\xE7\xE3o ou ainda n\xE3o est\xE1 pronto!","Added SmartStart device":"Adicionado dispositivo SmartStart",alive:"vivo","Already included":"J\xE1 inclu\xEDdo","Already provisioned":"J\xE1 provisionado",asleep:"adormecido",Associations:"Associa\xE7\xF5es","At least one must be granted or the key exchange will be canceled.":"Pelo menos uma deve ser concedida ou a troca da chave ser\xE1 cancelada.","At least one network key is not yet configured. This can cause problems during secure inclusion.":"Pelo menos uma chave de rede ainda n\xE3o foi configurada. ","Auto-scroll to bottom":"Auto-scroll to bottom",awake:"acordado","But read this first!":"Mas leia isto primeiro!",Cancel:"Cancelar","Cancel healing":"Cancelar cura","clear cache procedure":"O adaptador ir\xE1 reiniciar e re-entrevista de todos n\xF3s. Isso pode levar um longo tempo e alguns de n\xF3s podem n\xE3o funcionar como esperado, entretanto.","Click here to select image with QR code":"Clique aqui para selecionar a imagem com o c\xF3digo QR",Close:"Fechar",collisions:"colis\xF5es","Communicating with the device, please be patient...":"Comunicando com o dispositivo, por favor, seja paciente ...","config update disclaimer":"AVISO: esta \xE9 uma funcionalidade experimental. Certifique-se de ter um backup do ioBroker antes de atualizar o banco de dados de configura\xE7\xE3o.","Configuration DB is up to date":"O banco de dados de configura\xE7\xE3o est\xE1 atualizado","Configure the region and radio frequencies of the controller.":"Configure a regi\xE3o e as frequ\xEAncias de r\xE1dio do controlador.","Controller node":"N\xF3 controlador",corrupt:"corrupto",dead:"morto","Default (secure)":"Padr\xE3o (seguro)","Define here which SmartStart capable nodes should be part of the network by entering their DSK and granting security classes.":"Defina aqui quais n\xF3s compat\xEDveis com SmartStart devem fazer parte da rede, inserindo seu DSK e concedendo classes de seguran\xE7a.","Delete association":"Excluir associa\xE7\xE3o","Delete group":"Excluir grupo",Devices:"Dispositivos","Disable restarting the controller on startup":"Desative o rein\xEDcio do controlador na inicializa\xE7\xE3o","Do you really want to remove this node from the network?":"Tem certeza de que deseja remover este n\xF3 da rede?","Do you really want to remove this node from the provisioning list?":"Voc\xEA realmente deseja remover este n\xF3 da lista de provisionamento?","Do you really want to replace this node?":"Voc\xEA realmente deseja substituir este n\xF3?",done:"feito","Done!":"Feito!","Door locks, garage doors":"Fechaduras de portas, portas de garagem","Download logs":"Baixar logs",dropped:"derrubado",DSK:"DSK",Enabled:"Habilitado",Endpoint:"Ponto final","Enter group name":"Digite o nome do grupo",Error:"Erro","Example:":"Exemplo:","Exclude device":"Excluir dispositivo","Exclusion active":"Exclus\xE3o ativa","Factory reset":"Restaura\xE7\xE3o de f\xE1brica","factory reset procedure":"Limpa toda a configura\xE7\xE3o do controlador. ","Factory reset?":"Restaura\xE7\xE3o de f\xE1brica?",failed:"falhou","Failed to scan QR code":"Falha ao ler o c\xF3digo QR","fast and secure":"r\xE1pido e seguro","firmware update failed":"A atualiza\xE7\xE3o de firmware falhou!","firmware update no wait time":"O dispositivo ir\xE1 agora ser re-entrevistados.","firmware update successful":"O firmware atualiza\xE7\xE3o foi bem-sucedida!","firmware update wait time":"O dispositivo vai ser re-entrevistados no {0} segundos.","firmware update wake up":"Voc\xEA pode ter para despertar novamente o dispositivo.","firmware update warning":"AVISO: Use a seu pr\xF3prio risco! N\xF3s n\xE3o tomamos qualquer responsabilidade caso seu dispositivo n\xE3o funcionar ap\xF3s uma actualiza\xE7\xE3o.","For devices without a DSK. Authentication of the inclusion happens on the device instead of in ioBroker.":"Para dispositivos sem DSK. ","Forget all information about all nodes and re-interview them. Battery-powered nodes might need to be woken up manually.":"Esque\xE7a todas as informa\xE7\xF5es sobre todos os n\xF3s e entreviste-os novamente. ","Forget all information about this node and re-interview it. Battery-powered nodes might need to be woken up manually.":"Esque\xE7a todas as informa\xE7\xF5es sobre este n\xF3 e entreviste-o novamente. ","Generate key":"Gerar a chave",Group:"Grupo","Group name":"Nome do grupo",Groups:"Grupos","Heal network":"Curar rede","Heal network finished":"Curar rede terminado","Healing network":"Rede de cura ...","Healing the network was successful!":"A cura da rede foi bem sucedida!","hosted port tip":"Voc\xEA tamb\xE9m pode se conectar a uma porta serial hospedada usando 'tcp://nome-do-host:porta'","Include device":"Incluir dispositivo","Inclusion active":"Inclus\xE3o ativa","Installed version":"Vers\xE3o instalada","Invalid network key":"Chave de rede inv\xE1lida: deve ter 16 bytes (32 caracteres hexadecimais [0-9, a-f])","It will be included automatically when it announces itself.":"Ele ser\xE1 inclu\xEDdo automaticamente quando se anunciar.","Legacy door locks without S2 support":"Fechaduras de porta legadas sem suporte S2","Legacy switch compatibility":"Melhorar a compatibilidade com switches legados","Lighting, sensors, security systems":"Ilumina\xE7\xE3o, sensores, sistemas de seguran\xE7a","Like S2 Authenticated, but without verification that the correct device is included":"Como S2 Authenticated, mas sem verifica\xE7\xE3o de que o dispositivo correto est\xE1 inclu\xEDdo",Name:"Nome","network key confirm":"Isto ir\xE1 substituir o existente chave e a placa de n\xE3o ser capaz de se comunicar com o j\xE1 inclu\xEDdo o seguro de dispositivos. Voc\xEA deseja continuar?","network key tooltip":"16 bytes no formato hexadecimal (32 caracteres de 0-9, a-f). Sem espa\xE7os, sem v\xEDrgulas, sem levar '0x'.","Network keys for secure communication":"Chave de rede para comunica\xE7\xE3o segura","Network map":"Mapa de rede",no:"nenhum","No devices present":"Nenhum dispositivo presente","No encryption":"Sem criptografia","no file selected":"nenhum arquivo selecionado","no multicast explanation":"N\xF3s adormecidos e n\xF3s inclu\xEDdos com Security S0 n\xE3o podem ser usados \u200B\u200Bem grupos multicast.",Node:"N\xF3","Node %s was added successfully!":"O n\xF3% s foi adicionado com sucesso!","Node %s was removed from the network!":"O n\xF3% s foi removido da rede!","Node is not ready":"O n\xF3 n\xE3o est\xE1 pronto","Node successfully added to provisioning list":"N\xF3 adicionado com sucesso \xE0 lista de provisionamento",Nodes:"N\xF3s","Non-secure":"N\xE3o seguro","none selected":"nenhum selecionado","not requested":"N\xE3o solicitado","Note: Applying a different region might take a few seconds.":"Nota: a aplica\xE7\xE3o de uma regi\xE3o diferente pode demorar alguns segundos.",OK:"OK","Only use S0, even if S2 is available. Allows including devices that require security but don't behave correctly during S2 inclusion.":"Use apenas S0, mesmo se S2 estiver dispon\xEDvel. ","Open log in new window":"Abra o log em uma nova janela","opening camera...":"abrindo c\xE2mera ...","Or drag an image file here":"Ou arraste um arquivo de imagem aqui","Pause auto-scrolling":"Pausar rolagem autom\xE1tica","Pause logging":"Pausar registro",pending:"pendente","Please choose an inclusion strategy":"Escolha uma estrat\xE9gia de inclus\xE3o","Please choose which of the following security classes to grant to the new node.":"Escolha qual das seguintes classes de seguran\xE7a conceder ao novo n\xF3.","Please enter the 5-digit PIN for your device and verify that the rest of the device-specific key (DSK) matches the one on your device or the manual.":"Insira o PIN de 5 d\xEDgitos do seu dispositivo e verifique se o resto da chave espec\xEDfica do dispositivo (DSK) corresponde ao do seu dispositivo ou manual.","Prefer S0 over no encryption":"Prefira S0 em vez de nenhuma criptografia","Preserve state names":"N\xE3o sobrescreva nomes de estado","Provision node":"N\xF3 de provis\xE3o","Put your device into exclusion mode":"Coloque seu dispositivo em modo de exclus\xE3o","Put your device into inclusion mode":"Coloque seu dispositivo em modo de inclus\xE3o","Re-interview all":"Entreviste novamente todos","Re-interview all?":"Entrevistar novamente todos?",received:"recebido","Refresh node info":"Atualizar informa\xE7\xF5es do n\xF3","Remove failed node":"Remover n\xF3 com falha","Remove node?":"Remover n\xF3?","Remove this node from the network.":"Remova este n\xF3 da rede.","Removing or disabling an entry does not automatically exclude the node.":"Remover ou desabilitar uma entrada n\xE3o exclui automaticamente o n\xF3.","Replace device":"Substitua o dispositivo","Replace failed node":"Substituir n\xF3 com falha","Replace node?":"Substituir o n\xF3?","Replace this node with a different one, keeping the node ID.":"Substitua este n\xF3 por um diferente, mantendo o ID do n\xF3.","Requires user interaction during the inclusion.":"Requer intera\xE7\xE3o do usu\xE1rio durante a inclus\xE3o.","Restart the controller, e.g. when it hangs":"Reinicie o controlador, por exemplo ","Root device":"Dispositivo raiz","Root endpoint":"Ponto final raiz","Save association":"Salvar associa\xE7\xE3o","Save group":"Salvar grupo","Scan QR Code":"Digitalize o c\xF3digo QR",Secure:"Seguro","secure, but slow due to a lot of overhead":"seguro, mas lento devido a muita sobrecarga",Security:"Seguran\xE7a","Security class: %s":"Classe de seguran\xE7a:% s","Security classes":"Aulas de seguran\xE7a","Security S0":"Seguran\xE7a S0","Security S2 when supported, Security S0 as a fallback, no encryption otherwise.":"Seguran\xE7a S2 quando suportada, Seguran\xE7a S0 como fallback, sem criptografia de outra forma.","Security S2 when supported, Security S0 only when necessary, no encryption otherwise.":"Seguran\xE7a S2 quando suportado, Seguran\xE7a S0 apenas quando necess\xE1rio, caso contr\xE1rio, nenhuma criptografia.","Select at least 2 nodes":"Selecione pelo menos 2 n\xF3s","Select QR code source":"Selecione a fonte do c\xF3digo QR","Select serial port":"Selecionar porta serial","Select the correct region for where you are. Using a different region may be illegal.":"Selecione a regi\xE3o correta para onde voc\xEA est\xE1. ",sent:"enviei","Set RF Region":"Definir regi\xE3o RF",Settings:"Configura\xE7\xF5es",SmartStart:"SmartStart","Soft reset":"Reinicializa\xE7\xE3o suave","Source endpoint":"Ponto final de origem","start firmware update":"iniciar atualiza\xE7\xE3o de firmware","Start logging":"Comece a registrar",Statistics:"Estatisticas",Status:"Status","Subscribed to logs...":"Inscrito em registros ...","Successfully added SmartStart device to provisioning list.":"Dispositivo SmartStart adicionado com sucesso \xE0 lista de provisionamento.","switch compat tooltip":"Substitui o estado 'targetValue' dos switches bin\xE1rios e multin\xEDvel por 'currentValue' para mant\xEA-los sincronizados","Target endpoint":"Ponto final de destino","Target node":"N\xF3 de destino","The association could not be deleted!":"N\xE3o foi poss\xEDvel excluir a associa\xE7\xE3o!","The association could not be saved!":"N\xE3o foi poss\xEDvel salvar a associa\xE7\xE3o!","The controller does not support SmartStart!":"O controlador n\xE3o \xE9 compat\xEDvel com SmartStart!","The device is already included as Node %s":"O dispositivo j\xE1 est\xE1 inclu\xEDdo como N\xF3% s","The device is now being interviewed. It might take a while to show up.":"O dispositivo agora est\xE1 sendo entrevistado. ","The group could not be deleted!":"O grupo n\xE3o p\xF4de ser exclu\xEDdo!","The group could not be saved!":"O grupo n\xE3o p\xF4de ser salvo!","This is not a failed node":"Este n\xE3o \xE9 um n\xF3 com falha","This is not a SmartStart QR code. Use the devices tab to include this node.":"Este n\xE3o \xE9 um c\xF3digo QR SmartStart. ","This is not a valid Z-Wave QR code":"Este n\xE3o \xE9 um c\xF3digo QR Z-Wave v\xE1lido","This node is already on the SmartStart provisioning list":"Este n\xF3 j\xE1 est\xE1 na lista de provisionamento SmartStart","This should only be set for debugging purposes.":"Isso deve ser definido apenas para fins de depura\xE7\xE3o.",timeouts:"tempos limite",Type:"Tipo","Undo changes":"Desfazer mudan\xE7as",unknown:"desconhecido",Unprovision:"Desprovisionamento","Unprovision node?":"N\xF3 de desprovis\xE3o?","Unsubscribed logs...":"Registros n\xE3o inscritos ...","Update configuration DB":"Atualizar banco de dados de configura\xE7\xE3o","Update Firmware":"Atualizar firmware","Update for configuration DB available":"Atualiza\xE7\xE3o para configura\xE7\xE3o do banco de dados dispon\xEDvel","Updating configuration DB - please wait...":"Atualizando o banco de dados de configura\xE7\xE3o - aguarde ...","Updating the configuration DB failed!":"Falha ao atualizar o banco de dados de configura\xE7\xE3o!","wake up device":"Por favor, despertar o dispositivo!","WARNING: Make sure that the node is reset before attempting this.":"AVISO: certifique-se de que o n\xF3 seja redefinido antes de tentar isso.","WARNING: Only do this if you no longer have physical access.":"AVISO: Fa\xE7a isso somente se voc\xEA n\xE3o tiver mais acesso f\xEDsico.","When a node announces itself, it will automatically be included within 10 minutes.":"Quando um n\xF3 se anuncia, ele ser\xE1 inclu\xEDdo automaticamente em 10 minutos.","Wipes all configuration of the controller. All connected nodes will be orphaned and have to be reset and included into the new network before they can be used again.":"Limpa toda a configura\xE7\xE3o do controlador. ","Write a detailed logfile":"Escreva um arquivo de log detalhado",yes:"sim","You can try this if the adapter does not start after updating to 2.3 or higher.":"Voc\xEA pode tentar isso se o adaptador n\xE3o iniciar ap\xF3s a atualiza\xE7\xE3o para 2.3 ou superior.","Z-Wave Logs":"Logs Z-Wave","Z-Wave supports the following security mechanisms:":"Z-Wave supports the following security mechanisms:"}});var Bhe=w((dqe,Whe)=>{Whe.exports={"- select endpoint -":"- selecteer eindpunt -","- select group -":"- selecteer groep -","- select node -":"- selecteer knooppunt -","(recommended)":"(aanbevolen)","(use only when necessary)":"(alleen gebruiken wanneer nodig)","abort firmware update":"firmware-update afbreken","adapter not ready":"De adapter draait niet of is nog niet klaar!","Added SmartStart device":"SmartStart-apparaat toegevoegd",alive:"levend","Already included":"Reeds inbegrepen","Already provisioned":"Reeds ingericht",asleep:"in slaap",Associations:"Verenigingen","At least one must be granted or the key exchange will be canceled.":"Er moet er minimaal \xE9\xE9n worden verleend, anders wordt de sleuteluitwisseling geannuleerd.","At least one network key is not yet configured. This can cause problems during secure inclusion.":"Er is nog geen netwerksleutel geconfigureerd. ","Auto-scroll to bottom":"Automatisch naar beneden scrollen",awake:"wakker","But read this first!":"Maar lees dit eerst!",Cancel:"Annuleren","Cancel healing":"Annuleer genezing","clear cache procedure":"De adapter zal opnieuw starten en alle knooppunten interviewen. Dit kan een lange tijd duren en sommige knooppunten werken niet zoals verwacht in de tussentijd.","Click here to select image with QR code":"Klik hier om een \u200B\u200Bafbeelding met QR-code te selecteren",Close:"Dichtbij",collisions:"botsingen","Communicating with the device, please be patient...":"Communiceren met het apparaat, even geduld...","config update disclaimer":"WAARSCHUWING: dit is een experimentele functionaliteit. Zorg ervoor dat u een ioBroker-back-up hebt voordat u de configuratie-database bijwerkt.","Configuration DB is up to date":"Configuratie-DB is up-to-date","Configure the region and radio frequencies of the controller.":"Configureer de regio en radiofrequenties van de controller.","Controller node":"Controller-knooppunt",corrupt:"corrupt",dead:"dood","Default (secure)":"Standaard (beveiligd)","Define here which SmartStart capable nodes should be part of the network by entering their DSK and granting security classes.":"Definieer hier welke SmartStart-compatibele nodes deel moeten uitmaken van het netwerk door hun DSK in te voeren en beveiligingsklassen toe te kennen.","Delete association":"Koppeling verwijderen","Delete group":"Groep verwijderen",Devices:"Apparaten","Disable restarting the controller on startup":"Schakel het herstarten van de controller bij het opstarten uit","Do you really want to remove this node from the network?":"Wil je deze node echt uit het netwerk verwijderen?","Do you really want to remove this node from the provisioning list?":"Wilt u dit knooppunt echt uit de inrichtingslijst verwijderen?","Do you really want to replace this node?":"Wil je dit knooppunt echt vervangen?",done:"Klaar","Done!":"Gedaan!","Door locks, garage doors":"Deursloten, garagedeuren","Download logs":"Logboeken downloaden",dropped:"liet vallen",DSK:"DSK",Enabled:"Ingeschakeld",Endpoint:"Eindpunt","Enter group name":"Voer groepsnaam in",Error:"Fout","Example:":"Voorbeeld:","Exclude device":"Apparaat uitsluiten","Exclusion active":"Uitsluiting actief","Factory reset":"Fabrieksinstellingen","factory reset procedure":"Wist alle configuratie van de controller. ","Factory reset?":"Fabrieksinstellingen?",failed:"mislukt","Failed to scan QR code":"Kan QR-code niet scannen","fast and secure":"snel en veilig","firmware update failed":"De firmware-update is mislukt!","firmware update no wait time":"Het apparaat zal nu opnieuw worden ge\xEFnterviewd.","firmware update successful":"Firmware-update successvol!","firmware update wait time":"Het apparaat wordt opnieuw bevraagd in {0} seconden.","firmware update wake up":"U moet het apparaat wellicht opnieuw aanspreken.","firmware update warning":"WAARSCHUWING: Gebruik op eigen risico! Wij nemen geen enkele verantwoordelijkheid indien uw apparaten niet werken na een update.","For devices without a DSK. Authentication of the inclusion happens on the device instead of in ioBroker.":"Voor apparaten zonder DSK. ","Forget all information about all nodes and re-interview them. Battery-powered nodes might need to be woken up manually.":"Vergeet alle informatie over alle knooppunten en ondervraag ze opnieuw. ","Forget all information about this node and re-interview it. Battery-powered nodes might need to be woken up manually.":"Vergeet alle informatie over dit knooppunt en ondervraag het opnieuw. ","Generate key":"Sleutel genereren",Group:"Groep","Group name":"Groepsnaam",Groups:"Groepen","Heal network":"Netwerk genezen","Heal network finished":"Netwerk genezen gereed","Healing network":"Netwerk genezen ...","Healing the network was successful!":"Genezen van het netwerk succesvol!","hosted port tip":"U kunt ook verbinding maken met een gehoste seri\xEBle poort met behulp van 'tcp://hostnaam:poort'","Include device":"Apparaat opnemen","Inclusion active":"Opname actief","Installed version":"Ge\xEFnstalleerde versie","Invalid network key":"Ongeldige netwerksleutel: moet 16 bytes zijn (32 hexadecimale tekens [0-9, a-f])","It will be included automatically when it announces itself.":"Het wordt automatisch opgenomen wanneer het zichzelf aankondigt.","Legacy door locks without S2 support":"Legacy deursloten zonder S2-ondersteuning","Legacy switch compatibility":"Verbeter de compatibiliteit met legacy-switches","Lighting, sensors, security systems":"Verlichting, sensoren, beveiligingssystemen","Like S2 Authenticated, but without verification that the correct device is included":"Zoals S2 Authenticated, maar zonder verificatie dat het juiste apparaat is meegeleverd",Name:"Naam","network key confirm":"Dit overschrijft de bestaande sleutel en de adapter niet in staat zijn om te communiceren met de reeds opgenomen veilige apparaten. Wilt u doorgaan?","network key tooltip":"16 bytes in hexadecimale vorm (32 tekens 0-9, a-f). Zonder spaties, zonder kommas, zonder dat dit leidt '0x'.","Network keys for secure communication":"Netwerksleutel voor veilige communicatie","Network map":"Netwerkkaart",no:"nee","No devices present":"Geen apparaten aanwezig","No encryption":"Geen codering","no file selected":"geen bestand geselecteerd","no multicast explanation":"Slaapknooppunten en knooppunten die bij Security S0 worden geleverd, kunnen niet worden gebruikt in multicast-groepen.",Node:"Knooppunt","Node %s was added successfully!":"Knooppunt %s is succesvol toegevoegd!","Node %s was removed from the network!":"Knooppunt %s is verwijderd uit het netwerk!","Node is not ready":"Knooppunt is niet gereed","Node successfully added to provisioning list":"Knooppunt succesvol toegevoegd aan inrichtingslijst",Nodes:"Knooppunten","Non-secure":"Onveilig","none selected":"geen geselecteerd","not requested":"niet aangevraagd","Note: Applying a different region might take a few seconds.":"Opmerking: het toepassen van een andere regio kan enkele seconden duren.",OK:"Oke","Only use S0, even if S2 is available. Allows including devices that require security but don't behave correctly during S2 inclusion.":"Gebruik alleen S0, ook als S2 beschikbaar is. ","Open log in new window":"Open log in nieuw venster","opening camera...":"camera openen...","Or drag an image file here":"Of sleep een afbeeldingsbestand hierheen","Pause auto-scrolling":"Automatisch scrollen pauzeren","Pause logging":"Logboekregistratie pauzeren",pending:"in afwachting","Please choose an inclusion strategy":"Kies een inclusiestrategie","Please choose which of the following security classes to grant to the new node.":"Kies welke van de volgende beveiligingsklassen u aan het nieuwe knooppunt wilt toekennen.","Please enter the 5-digit PIN for your device and verify that the rest of the device-specific key (DSK) matches the one on your device or the manual.":"Voer de 5-cijferige pincode voor uw apparaat in en controleer of de rest van de apparaatspecifieke sleutel (DSK) overeenkomt met die op uw apparaat of de handleiding.","Prefer S0 over no encryption":"Liever S0 dan geen codering","Preserve state names":"Overschrijf geen namen","Provision node":"Voorzieningsknooppunt","Put your device into exclusion mode":"Zet uw apparaat in de uitsluitingsmodus","Put your device into inclusion mode":"Zet uw apparaat in de opnamemodus","Re-interview all":"Allen opnieuw interviewen","Re-interview all?":"Allemaal opnieuw interviewen?",received:"ontvangen","Refresh node info":"Vernieuw knooppuntinfo","Remove failed node":"Verwijder mislukte knoop","Remove node?":"Knooppunt verwijderen?","Remove this node from the network.":"Verwijder dit knooppunt uit het netwerk.","Removing or disabling an entry does not automatically exclude the node.":"Het verwijderen of uitschakelen van een item sluit het knooppunt niet automatisch uit.","Replace device":"Apparaat vervangen","Replace failed node":"Vervang mislukt knooppunt","Replace node?":"Knooppunt vervangen?","Replace this node with a different one, keeping the node ID.":"Vervang dit knooppunt door een ander knooppunt, waarbij de knooppunt-ID behouden blijft.","Requires user interaction during the inclusion.":"Vereist gebruikersinteractie tijdens de opname.","Restart the controller, e.g. when it hangs":"Start de besturing opnieuw, b.v. ","Root device":"Root-apparaat","Root endpoint":"Root eindpunt","Save association":"Bewaar associatie","Save group":"Groep opslaan","Scan QR Code":"Scan QR-code",Secure:"Veilig","secure, but slow due to a lot of overhead":"veilig, maar traag door veel overhead",Security:"Veiligheid","Security class: %s":"Beveiligingsklasse: %s","Security classes":"Beveiligingsklassen","Security S0":"Beveiliging S0","Security S2 when supported, Security S0 as a fallback, no encryption otherwise.":"Security S2 indien ondersteund, Security S0 als fallback, verder geen encryptie.","Security S2 when supported, Security S0 only when necessary, no encryption otherwise.":"Security S2 indien ondersteund, Security S0 alleen indien nodig, anders geen codering.","Select at least 2 nodes":"Selecteer minimaal 2 knooppunten","Select QR code source":"Selecteer QR-codebron","Select serial port":"Selecteer seri\xEBle poort","Select the correct region for where you are. Using a different region may be illegal.":"Selecteer de juiste regio voor waar je bent. ",sent:"verstuurd","Set RF Region":"RF-regio instellen",Settings:"instellingen",SmartStart:"SmartStart","Soft reset":"Zachte reset","Source endpoint":"Bron-eindpunt","start firmware update":"start de firmware-update","Start logging":"Begin met loggen",Statistics:"Statistieken",Status:"Toestand","Subscribed to logs...":"Geabonneerd op logboeken...","Successfully added SmartStart device to provisioning list.":"SmartStart-apparaat is toegevoegd aan de inrichtingslijst.","switch compat tooltip":"Overschrijft de 'targetValue'-status van binaire en multilevel-switches met' currentValue 'om ze synchroon te houden","Target endpoint":"Doel eindpunt","Target node":"Doelknooppunt","The association could not be deleted!":"Koppeling kan niet worden verwijderd!","The association could not be saved!":"Vereniging kan niet worden opgeslagen!","The controller does not support SmartStart!":"De controller ondersteunt SmartStart niet!","The device is already included as Node %s":"Het apparaat is al opgenomen als Node %s","The device is now being interviewed. It might take a while to show up.":"Het apparaat wordt nu ge\xEFnterviewd. ","The group could not be deleted!":"De groep kan niet worden verwijderd!","The group could not be saved!":"De groep kon niet worden gered!","This is not a failed node":"Dit is geen mislukt knooppunt","This is not a SmartStart QR code. Use the devices tab to include this node.":"Dit is geen SmartStart QR-code. ","This is not a valid Z-Wave QR code":"Dit is geen geldige Z-Wave QR-code","This node is already on the SmartStart provisioning list":"Dit knooppunt staat al op de SmartStart-inrichtingslijst","This should only be set for debugging purposes.":"Dit mag alleen worden ingesteld voor foutopsporing.",timeouts:"time-outs",Type:"Type","Undo changes":"Veranderingen terugdraaien",unknown:"onbekend",Unprovision:"Opheffing van de registratie","Unprovision node?":"Knooppunt ongedaan maken?","Unsubscribed logs...":"Uitgeschreven logboeken...","Update configuration DB":"Update configuratie DB","Update Firmware":"Firmware bijwerken","Update for configuration DB available":"Update voor configuratie-database beschikbaar","Updating configuration DB - please wait...":"Update configuratie DB - een ogenblik geduld ...","Updating the configuration DB failed!":"Het bijwerken van de configuratie-database is mislukt!","wake up device":"Activeer alsjeblieft het apparaat!","WARNING: Make sure that the node is reset before attempting this.":"WAARSCHUWING: Zorg ervoor dat het knooppunt opnieuw is ingesteld voordat u dit probeert.","WARNING: Only do this if you no longer have physical access.":"WAARSCHUWING: Doe dit alleen als u geen fysieke toegang meer heeft.","When a node announces itself, it will automatically be included within 10 minutes.":"Wanneer een node zichzelf aankondigt, wordt deze automatisch binnen 10 minuten opgenomen.","Wipes all configuration of the controller. All connected nodes will be orphaned and have to be reset and included into the new network before they can be used again.":"Wist alle configuratie van de controller. ","Write a detailed logfile":"Schrijf een gedetailleerd logbestand",yes:"ja","You can try this if the adapter does not start after updating to 2.3 or higher.":"U kunt dit proberen als de adapter niet start na het updaten naar 2.3 of hoger.","Z-Wave Logs":"Z-Wave-logboeken","Z-Wave supports the following security mechanisms:":"Z-Wave supports the following security mechanisms:"}});var $he=w((fqe,Vhe)=>{Vhe.exports={"- select endpoint -":"- s\xE9lectionner le point final -","- select group -":"- s\xE9lectionner un groupe -","- select node -":"- s\xE9lectionner le noeud -","(recommended)":"(conseill\xE9)","(use only when necessary)":"(\xE0 n'utiliser que si n\xE9cessaire)","abort firmware update":"abandonner la mise \xE0 jour du firmware","adapter not ready":"L'adaptateur ne fonctionne pas ou n'est pas encore pr\xEAt!","Added SmartStart device":"Dispositif SmartStart ajout\xE9",alive:"vivant","Already included":"D\xE9j\xE0 inclus","Already provisioned":"D\xE9j\xE0 provisionn\xE9",asleep:"endormi",Associations:"Les associations","At least one must be granted or the key exchange will be canceled.":"Au moins un doit \xEAtre accord\xE9 ou l'\xE9change de cl\xE9 sera annul\xE9.","At least one network key is not yet configured. This can cause problems during secure inclusion.":"Au moins une cl\xE9 r\xE9seau n'est pas encore configur\xE9e. ","Auto-scroll to bottom":"D\xE9filement automatique vers le bas",awake:"\xE9veill\xE9","But read this first!":"Mais lisez ceci d'abord !",Cancel:"Annuler","Cancel healing":"Annuler la gu\xE9rison","clear cache procedure":"L'adaptateur red\xE9marre et re-interview de tous les n\u0153uds. Cela peut prendre un certain temps et certains n\u0153uds peuvent ne pas fonctionner comme pr\xE9vu dans l'intervalle.","Click here to select image with QR code":"Cliquez ici pour s\xE9lectionner l'image avec le code QR",Close:"proche",collisions:"collisions","Communicating with the device, please be patient...":"Communiquez avec l'appareil, soyez patient...","config update disclaimer":"AVERTISSEMENT: il s'agit d'une fonctionnalit\xE9 exp\xE9rimentale. Assurez-vous que vous disposez d'une sauvegarde ioBroker avant de mettre \xE0 jour la base de donn\xE9es de configuration.","Configuration DB is up to date":"La base de donn\xE9es de configuration est \xE0 jour","Configure the region and radio frequencies of the controller.":"Configurez la r\xE9gion et les fr\xE9quences radio du contr\xF4leur.","Controller node":"N\u0153ud de contr\xF4leur",corrupt:"corrompu",dead:"mort","Default (secure)":"Par d\xE9faut (s\xE9curis\xE9)","Define here which SmartStart capable nodes should be part of the network by entering their DSK and granting security classes.":"D\xE9finissez ici quels n\u0153uds compatibles SmartStart doivent faire partie du r\xE9seau en entrant leur DSK et en accordant des classes de s\xE9curit\xE9.","Delete association":"Supprimer l'association","Delete group":"Supprimer le groupe",Devices:"Dispositifs","Disable restarting the controller on startup":"D\xE9sactiver le red\xE9marrage du contr\xF4leur au d\xE9marrage","Do you really want to remove this node from the network?":"Voulez-vous vraiment supprimer ce n\u0153ud du r\xE9seau\xA0?","Do you really want to remove this node from the provisioning list?":"Voulez-vous vraiment supprimer ce n\u0153ud de la liste d'approvisionnement\xA0?","Do you really want to replace this node?":"Voulez-vous vraiment remplacer ce n\u0153ud\xA0?",done:"termin\xE9","Done!":"Termin\xE9!","Door locks, garage doors":"Serrures de porte, portes de garage","Download logs":"T\xE9l\xE9charger les journaux",dropped:"chut\xE9",DSK:"DSK",Enabled:"Activ\xE9",Endpoint:"Point de terminaison","Enter group name":"Entrez le nom du groupe",Error:"Erreur","Example:":"Exemple:","Exclude device":"Exclure un appareil","Exclusion active":"Exclusion active","Factory reset":"Retour aux param\xE8tres d'usine","factory reset procedure":"proc\xE9dure de r\xE9initialisation d'usine","Factory reset?":"Retour aux param\xE8tres d'usine?",failed:"\xE9chou\xE9","Failed to scan QR code":"\xC9chec de la num\xE9risation du code QR","fast and secure":"rapide et s\xE9curis\xE9","firmware update failed":"La mise \xE0 jour du firmware a \xE9chou\xE9!","firmware update no wait time":"Le dispositif va maintenant \xEAtre \xE0 nouveau interrog\xE9s.","firmware update successful":"La mise \xE0 jour du firmware a \xE9t\xE9 un succ\xE8s!","firmware update wait time":"L'appareil sera interrog\xE9 \xE0 nouveau en {0} secondes.","firmware update wake up":"Vous pourriez avoir \xE0 se r\xE9veiller de nouveau l'appareil.","firmware update warning":"AVERTISSEMENT: Utilisez \xE0 votre propre risque! Nous ne prenons aucune responsabilit\xE9 si vos appareils ne fonctionnent pas apr\xE8s une mise \xE0 jour.","For devices without a DSK. Authentication of the inclusion happens on the device instead of in ioBroker.":"Pour les appareils sans DSK. ","Forget all information about all nodes and re-interview them. Battery-powered nodes might need to be woken up manually.":"Oubliez toutes les informations sur tous les n\u0153uds et r\xE9interrogez-les. ","Forget all information about this node and re-interview it. Battery-powered nodes might need to be woken up manually.":"Oubliez toutes les informations sur ce n\u0153ud et r\xE9interviewez-le. ","Generate key":"G\xE9n\xE9rer la cl\xE9",Group:"Groupe","Group name":"Nom de groupe",Groups:"Groupes","Heal network":"Gu\xE9rir r\xE9seau","Heal network finished":"Gu\xE9rir r\xE9seau fini","Healing network":"R\xE9seau de gu\xE9rison ...","Healing the network was successful!":"La gu\xE9rison du r\xE9seau a r\xE9ussi!","hosted port tip":"Vous pouvez \xE9galement vous connecter \xE0 un port s\xE9rie h\xE9berg\xE9 avec 'tcp://hostname:port'","Include device":"Inclure l'appareil","Inclusion active":"Inclusion active","Installed version":"Version install\xE9e","Invalid network key":"Cl\xE9 r\xE9seau non valide: doit \xEAtre de 16 octets (32 caract\xE8res hexad\xE9cimaux [0-9, a-f])","It will be included automatically when it announces itself.":"Il sera inclus automatiquement lorsqu'il s'annoncera.","Legacy door locks without S2 support":"Serrures de porte h\xE9rit\xE9es sans prise en charge S2","Legacy switch compatibility":"Am\xE9liorez la compatibilit\xE9 avec les anciens commutateurs","Lighting, sensors, security systems":"\xC9clairage, capteurs, syst\xE8mes de s\xE9curit\xE9","Like S2 Authenticated, but without verification that the correct device is included":"Comme S2 Authentifi\xE9, mais sans v\xE9rification que le bon appareil est inclus",Name:"Nom","network key confirm":"Cela permettra de remplacer la cl\xE9 et la carte ne sera pas en mesure de communiquer avec d\xE9j\xE0 inclus dispositifs s\xE9curis\xE9s. Voulez-vous continuer?","network key tooltip":"De 16 octets en hexad\xE9cimal (32 caract\xE8res 0-9, a-f). Sans espaces, sans virgule, sans leader '0x'.","Network keys for secure communication":"Cl\xE9 r\xE9seau pour une communication s\xE9curis\xE9e","Network map":"Carte du r\xE9seau",no:"pas de","No devices present":"Aucun appareil pr\xE9sent","No encryption":"Pas de cryptage","no file selected":"aucun fichier s\xE9lectionn\xE9","no multicast explanation":"Les n\u0153uds endormis et les n\u0153uds inclus avec Security S0 ne peuvent pas \xEAtre utilis\xE9s dans des groupes de multidiffusion.",Node:"N\u0153ud","Node %s was added successfully!":"Le n\u0153ud %s a \xE9t\xE9 ajout\xE9 avec succ\xE8s\xA0!","Node %s was removed from the network!":"Le n\u0153ud %s a \xE9t\xE9 supprim\xE9 du r\xE9seau\xA0!","Node is not ready":"Le n\u0153ud n'est pas pr\xEAt","Node successfully added to provisioning list":"N\u0153ud ajout\xE9 avec succ\xE8s \xE0 la liste d'approvisionnement",Nodes:"N\u0153uds","Non-secure":"Non s\xE9curis\xE9","none selected":"aucune s\xE9lection","not requested":"non demand\xE9","Note: Applying a different region might take a few seconds.":"Remarque\xA0: L'application d'une r\xE9gion diff\xE9rente peut prendre quelques secondes.",OK:"d'accord","Only use S0, even if S2 is available. Allows including devices that require security but don't behave correctly during S2 inclusion.":"N'utilisez que S0, m\xEAme si S2 est disponible. ","Open log in new window":"Ouvrir la connexion dans une nouvelle fen\xEAtre","opening camera...":"ouverture de la cam\xE9ra...","Or drag an image file here":"Ou faites glisser un fichier image ici","Pause auto-scrolling":"Suspendre le d\xE9filement automatique","Pause logging":"Suspendre la journalisation",pending:"en attendant","Please choose an inclusion strategy":"Veuillez choisir une strat\xE9gie d'inclusion","Please choose which of the following security classes to grant to the new node.":"Veuillez choisir laquelle des classes de s\xE9curit\xE9 suivantes accorder au nouveau n\u0153ud.","Please enter the 5-digit PIN for your device and verify that the rest of the device-specific key (DSK) matches the one on your device or the manual.":"Veuillez saisir le code PIN \xE0 5 chiffres de votre appareil et v\xE9rifier que le reste de la cl\xE9 sp\xE9cifique \xE0 l'appareil (DSK) correspond \xE0 celle de votre appareil ou du manuel.","Prefer S0 over no encryption":"Pr\xE9f\xE9rez S0 \xE0 l'absence de cryptage","Preserve state names":"Ne pas \xE9craser les noms d'\xE9tat","Provision node":"Noeud de provisionnement","Put your device into exclusion mode":"Mettez votre appareil en mode d'exclusion","Put your device into inclusion mode":"Mettez votre appareil en mode inclusion","Re-interview all":"R\xE9interviewer tous","Re-interview all?":"R\xE9interviewer tous ?",received:"a re\xE7u","Refresh node info":"Actualiser les informations sur le n\u0153ud","Remove failed node":"Supprimer le n\u0153ud d\xE9faillant","Remove node?":"Supprimer le n\u0153ud\xA0?","Remove this node from the network.":"Supprimez ce n\u0153ud du r\xE9seau.","Removing or disabling an entry does not automatically exclude the node.":"La suppression ou la d\xE9sactivation d'une entr\xE9e n'exclut pas automatiquement le n\u0153ud.","Replace device":"Remplacer l'appareil","Replace failed node":"Remplacer le n\u0153ud d\xE9faillant","Replace node?":"Remplacer le n\u0153ud\xA0?","Replace this node with a different one, keeping the node ID.":"Remplacez ce n\u0153ud par un autre, en conservant l'ID du n\u0153ud.","Requires user interaction during the inclusion.":"N\xE9cessite une interaction de l'utilisateur lors de l'inclusion.","Restart the controller, e.g. when it hangs":"Red\xE9marrez le contr\xF4leur, par ex. ","Root device":"P\xE9riph\xE9rique racine","Root endpoint":"Point de terminaison racine","Save association":"Enregistrer l'association","Save group":"Enregistrer le groupe","Scan QR Code":"Scannez le code QR",Secure:"S\xE9curise","secure, but slow due to a lot of overhead":"s\xE9curis\xE9, mais lent en raison de beaucoup de frais g\xE9n\xE9raux",Security:"S\xE9curit\xE9","Security class: %s":"Classe de s\xE9curit\xE9\xA0: %s","Security classes":"Classes de s\xE9curit\xE9","Security S0":"S\xE9curit\xE9 S0","Security S2 when supported, Security S0 as a fallback, no encryption otherwise.":"Security S2 lorsqu'il est pris en charge, Security S0 comme solution de secours, pas de cryptage sinon.","Security S2 when supported, Security S0 only when necessary, no encryption otherwise.":"Security S2 lorsqu'il est pris en charge, Security S0 uniquement lorsque cela est n\xE9cessaire, aucun cryptage sinon.","Select at least 2 nodes":"S\xE9lectionnez au moins 2 n\u0153uds","Select QR code source":"S\xE9lectionnez la source du code QR","Select serial port":"S\xE9lectionnez le port s\xE9rie","Select the correct region for where you are. Using a different region may be illegal.":"S\xE9lectionnez la bonne r\xE9gion pour l'endroit o\xF9 vous vous trouvez. ",sent:"envoy\xE9","Set RF Region":"D\xE9finir la r\xE9gion RF",Settings:"Param\xE8tres",SmartStart:"SmartStart","Soft reset":"Red\xE9marrage en douceur","Source endpoint":"Point de terminaison source","start firmware update":"d\xE9marrer la mise \xE0 jour du firmware","Start logging":"Commencer \xE0 se connecter",Statistics:"Statistiques",Status:"Statut","Subscribed to logs...":"Abonn\xE9 aux journaux...","Successfully added SmartStart device to provisioning list.":"L'appareil SmartStart a \xE9t\xE9 ajout\xE9 avec succ\xE8s \xE0 la liste d'approvisionnement.","switch compat tooltip":"Remplace l'\xE9tat 'targetValue' des commutateurs binaires et multiniveaux par 'currentValue' pour les garder synchronis\xE9s","Target endpoint":"Point final cible","Target node":"Noeud cible","The association could not be deleted!":"L'association n'a pas pu \xEAtre supprim\xE9e!","The association could not be saved!":"L'association n'a pas pu \xEAtre enregistr\xE9e!","The controller does not support SmartStart!":"Le contr\xF4leur ne prend pas en charge SmartStart\xA0!","The device is already included as Node %s":"Le p\xE9riph\xE9rique est d\xE9j\xE0 inclus en tant que n\u0153ud %s","The device is now being interviewed. It might take a while to show up.":"L'appareil est maintenant interrog\xE9. ","The group could not be deleted!":"Le groupe n'a pas pu \xEAtre supprim\xE9\xA0!","The group could not be saved!":"Le groupe n'a pas pu \xEAtre enregistr\xE9\xA0!","This is not a failed node":"Ce n'est pas un n\u0153ud d\xE9faillant","This is not a SmartStart QR code. Use the devices tab to include this node.":"Ce n'est pas un code QR SmartStart. ","This is not a valid Z-Wave QR code":"Ceci n'est pas un code QR Z-Wave valide","This node is already on the SmartStart provisioning list":"Ce n\u0153ud est d\xE9j\xE0 sur la liste d'approvisionnement SmartStart","This should only be set for debugging purposes.":"Cela ne doit \xEAtre d\xE9fini qu'\xE0 des fins de d\xE9bogage.",timeouts:"d\xE9lais d'attente",Type:"Taper","Undo changes":"Annuler les changements",unknown:"inconnu",Unprovision:"Annuler la mise \xE0 disposition","Unprovision node?":"Annuler l'approvisionnement du n\u0153ud\xA0?","Unsubscribed logs...":"Journaux d\xE9sabonn\xE9s...","Update configuration DB":"Mettre \xE0 jour la base de donn\xE9es de configuration","Update Firmware":"Mise \xE0 jour du firmware","Update for configuration DB available":"Mise \xE0 jour de la base de donn\xE9es de configuration disponible","Updating configuration DB - please wait...":"Mise \xE0 jour de la base de donn\xE9es de configuration - veuillez patienter ...","Updating the configuration DB failed!":"La mise \xE0 jour du DB de configuration a \xE9chou\xE9!","wake up device":"Veuillez activer l'appareil!","WARNING: Make sure that the node is reset before attempting this.":"AVERTISSEMENT : assurez-vous que le n\u0153ud est r\xE9initialis\xE9 avant d'essayer.","WARNING: Only do this if you no longer have physical access.":"AVERTISSEMENT\xA0: Ne faites cela que si vous n'avez plus d'acc\xE8s physique.","When a node announces itself, it will automatically be included within 10 minutes.":"Lorsqu'un n\u0153ud s'annonce, il sera automatiquement inclus dans les 10 minutes.","Wipes all configuration of the controller. All connected nodes will be orphaned and have to be reset and included into the new network before they can be used again.":"Efface toute la configuration du contr\xF4leur. ","Write a detailed logfile":"R\xE9diger un fichier journal d\xE9taill\xE9",yes:"oui","You can try this if the adapter does not start after updating to 2.3 or higher.":"Vous pouvez essayer ceci si l'adaptateur ne d\xE9marre pas apr\xE8s la mise \xE0 jour vers 2.3 ou sup\xE9rieur.","Z-Wave Logs":"Journaux Z-Wave","Z-Wave supports the following security mechanisms:":"Z-Wave supports the following security mechanisms:"}});var Hhe=w((pqe,Uhe)=>{Uhe.exports={"- select endpoint -":"- seleziona endpoint -","- select group -":"- seleziona gruppo -","- select node -":"- seleziona nodo -","(recommended)":"(consigliato)","(use only when necessary)":"(usare solo quando necessario)","abort firmware update":"interrompere l'aggiornamento del firmware","adapter not ready":"L'adattatore non \xE8 in esecuzione o non \xE8 ancora pronto!","Added SmartStart device":"Aggiunto dispositivo SmartStart",alive:"vivo","Already included":"Gi\xE0 incluso","Already provisioned":"Gi\xE0 predisposto",asleep:"addormentato",Associations:"associazioni","At least one must be granted or the key exchange will be canceled.":"Almeno uno deve essere concesso o lo scambio di chiavi verr\xE0 annullato.","At least one network key is not yet configured. This can cause problems during secure inclusion.":"Almeno una chiave di rete non \xE8 ancora configurata. ","Auto-scroll to bottom":"Scorri automaticamente verso il basso",awake:"sveglio","But read this first!":"Ma prima leggi questo!",Cancel:"Annulla","Cancel healing":"Annulla la guarigione","clear cache procedure":"L'adattatore si riavvia e ri-intervista tutti i nodi. Questo pu\xF2 richiedere molto tempo e alcuni nodi potrebbero non funzionare come previsto, nel frattempo.","Click here to select image with QR code":"Clicca qui per selezionare l'immagine con il codice QR",Close:"Chiudere",collisions:"collisioni","Communicating with the device, please be patient...":"Comunicazione con il dispositivo, si prega di pazientare...","config update disclaimer":"ATTENZIONE: questa \xE8 una funzionalit\xE0 sperimentale. Assicurati di avere un backup ioBroker prima di aggiornare il DB di configurazione.","Configuration DB is up to date":"Il DB di configurazione \xE8 aggiornato","Configure the region and radio frequencies of the controller.":"Configurare la regione e le frequenze radio del controller.","Controller node":"Nodo controller",corrupt:"corrotto",dead:"morto","Default (secure)":"Predefinito (sicuro)","Define here which SmartStart capable nodes should be part of the network by entering their DSK and granting security classes.":"Definire qui quali nodi compatibili con SmartStart dovrebbero far parte della rete inserendo il loro DSK e concedendo classi di sicurezza.","Delete association":"Elimina associazione","Delete group":"Elimina gruppo",Devices:"dispositivi","Disable restarting the controller on startup":"Disabilita il riavvio del controller all'avvio","Do you really want to remove this node from the network?":"Vuoi davvero rimuovere questo nodo dalla rete?","Do you really want to remove this node from the provisioning list?":"Vuoi davvero rimuovere questo nodo dall'elenco di provisioning?","Do you really want to replace this node?":"Vuoi davvero sostituire questo nodo?",done:"fatto","Done!":"Fatto!","Door locks, garage doors":"Serrature per porte, porte da garage","Download logs":"Scarica i log",dropped:"caduto",DSK:"DSK",Enabled:"Abilitato",Endpoint:"Endpoint","Enter group name":"Inserisci il nome del gruppo",Error:"Errore","Example:":"Esempio:","Exclude device":"Escludi dispositivo","Exclusion active":"Esclusione attiva","Factory reset":"Ripristino delle impostazioni di fabbrica","factory reset procedure":"procedura di ripristino delle impostazioni di fabbrica","Factory reset?":"Ripristino delle impostazioni di fabbrica?",failed:"mancato","Failed to scan QR code":"Scansione del codice QR non riuscita","fast and secure":"veloce e sicuro","firmware update failed":"L'aggiornamento del firmware non riuscito!","firmware update no wait time":"Il dispositivo sar\xE0 ora nuovamente intervistati.","firmware update successful":"L'aggiornamento del firmware \xE8 stato un successo!","firmware update wait time":"Il dispositivo sar\xE0 nuovamente intervistati in {0} secondi.","firmware update wake up":"Si potrebbe avere a svegliarsi di nuovo il dispositivo.","firmware update warning":"AVVERTENZA: Usare a proprio rischio e pericolo! Non ci assumiamo alcuna responsabilit\xE0 se le periferiche non funzionano dopo l'aggiornamento.","For devices without a DSK. Authentication of the inclusion happens on the device instead of in ioBroker.":"Per dispositivi senza DSK. ","Forget all information about all nodes and re-interview them. Battery-powered nodes might need to be woken up manually.":"Dimentica tutte le informazioni su tutti i nodi e intervistali nuovamente. ","Forget all information about this node and re-interview it. Battery-powered nodes might need to be woken up manually.":"Dimentica tutte le informazioni su questo nodo e intervistalo nuovamente. ","Generate key":"Generare il tasto",Group:"Gruppo","Group name":"Nome del gruppo",Groups:"Gruppi","Heal network":"Guarire rete","Heal network finished":"Guarire rete finito","Healing network":"Rete di guarigione ...","Healing the network was successful!":"La guarigione della rete ha avuto successo!","hosted port tip":"Puoi anche connetterti a una porta seriale ospitata utilizzando il modulo 'tcp://hostname:port'","Include device":"Includi dispositivo","Inclusion active":"Inclusione attiva","Installed version":"Versione installata","Invalid network key":"Chiave di rete non valida: deve essere di 16 byte (32 caratteri esadecimali [0-9, a-f])","It will be included automatically when it announces itself.":"Sar\xE0 incluso automaticamente quando si annuncia.","Legacy door locks without S2 support":"Serrature legacy senza supporto S2","Legacy switch compatibility":"Migliora la compatibilit\xE0 con gli switch legacy","Lighting, sensors, security systems":"Illuminazione, sensori, sistemi di sicurezza","Like S2 Authenticated, but without verification that the correct device is included":"Come S2 Authenticated, ma senza verifica che sia incluso il dispositivo corretto",Name:"Nome","network key confirm":"Questo sovrascriver\xE0 la chiave esistente e l'adattatore non essere in grado di comunicare con gi\xE0 inclusi dispositivi sicuri. Vuoi continuare?","network key tooltip":"16 byte in esadecimale (32 caratteri 0-9, a-f). Senza spazi, senza virgole, senza leader '0x'.","Network keys for secure communication":"Chiave di rete per comunicazioni sicure","Network map":"Mappa di rete",no:"no","No devices present":"Nessun dispositivo presente","No encryption":"Nessuna crittografia","no file selected":"nessun file selezionato","no multicast explanation":"I nodi dormienti e i nodi inclusi con Security S0 non possono essere utilizzati nei gruppi multicast.",Node:"Nodo","Node %s was added successfully!":"Il nodo %s \xE8 stato aggiunto con successo!","Node %s was removed from the network!":"Il nodo %s \xE8 stato rimosso dalla rete!","Node is not ready":"Il nodo non \xE8 pronto","Node successfully added to provisioning list":"Nodo aggiunto con successo all'elenco di provisioning",Nodes:"nodi","Non-secure":"Non sicura","none selected":"Nessuno selezionato","not requested":"non richiesto","Note: Applying a different region might take a few seconds.":"Nota: l'applicazione di una regione diversa potrebbe richiedere alcuni secondi.",OK:"ok","Only use S0, even if S2 is available. Allows including devices that require security but don't behave correctly during S2 inclusion.":"Utilizzare solo S0, anche se S2 \xE8 disponibile. ","Open log in new window":"Apri il log in una nuova finestra","opening camera...":"apertura fotocamera...","Or drag an image file here":"Oppure trascina qui un file immagine","Pause auto-scrolling":"Metti in pausa lo scorrimento automatico","Pause logging":"Metti in pausa la registrazione",pending:"in attesa di","Please choose an inclusion strategy":"Scegli una strategia di inclusione","Please choose which of the following security classes to grant to the new node.":"Scegli quale delle seguenti classi di sicurezza concedere al nuovo nodo.","Please enter the 5-digit PIN for your device and verify that the rest of the device-specific key (DSK) matches the one on your device or the manual.":"Inserisci il PIN a 5 cifre per il tuo dispositivo e verifica che il resto della chiave specifica del dispositivo (DSK) corrisponda a quella sul tuo dispositivo o al manuale.","Prefer S0 over no encryption":"Preferisci S0 a nessuna crittografia","Preserve state names":"Non sovrascrivere i nomi degli stati","Provision node":"Nodo di fornitura","Put your device into exclusion mode":"Metti il \u200B\u200Btuo dispositivo in modalit\xE0 di esclusione","Put your device into inclusion mode":"Metti il \u200B\u200Btuo dispositivo in modalit\xE0 di inclusione","Re-interview all":"Ri-intervista tutti","Re-interview all?":"Ri-intervistare tutti?",received:"ricevuto","Refresh node info":"Aggiorna le informazioni sul nodo","Remove failed node":"Rimuovi nodo non riuscito","Remove node?":"Rimuovere il nodo?","Remove this node from the network.":"Rimuovere questo nodo dalla rete.","Removing or disabling an entry does not automatically exclude the node.":"La rimozione o la disabilitazione di una voce non esclude automaticamente il nodo.","Replace device":"Sostituisci dispositivo","Replace failed node":"Sostituisci nodo fallito","Replace node?":"Sostituire nodo?","Replace this node with a different one, keeping the node ID.":"Sostituisci questo nodo con uno diverso, mantenendo l'ID del nodo.","Requires user interaction during the inclusion.":"Richiede l'interazione dell'utente durante l'inclusione.","Restart the controller, e.g. when it hangs":"Riavviare il controller, ad es. ","Root device":"Dispositivo di root","Root endpoint":"Endpoint radice","Save association":"Salva associazione","Save group":"Salva gruppo","Scan QR Code":"Scansiona il codice QR",Secure:"Sicuro","secure, but slow due to a lot of overhead":"sicuro, ma lento a causa di molte spese generali",Security:"Sicurezza","Security class: %s":"Classe di sicurezza: %s","Security classes":"Classi di sicurezza","Security S0":"Sicurezza S0","Security S2 when supported, Security S0 as a fallback, no encryption otherwise.":"Security S2 se supportato, Security S0 come fallback, altrimenti nessuna crittografia.","Security S2 when supported, Security S0 only when necessary, no encryption otherwise.":"Security S2 quando supportato, Security S0 solo quando necessario, altrimenti nessuna crittografia.","Select at least 2 nodes":"Seleziona almeno 2 nodi","Select QR code source":"Seleziona la fonte del codice QR","Select serial port":"Seleziona la porta seriale","Select the correct region for where you are. Using a different region may be illegal.":"Seleziona la regione corretta per dove ti trovi. ",sent:"spedito","Set RF Region":"Imposta regione RF",Settings:"impostazioni",SmartStart:"SmartStart","Soft reset":"Ripristino software","Source endpoint":"Endpoint di origine","start firmware update":"avviare l'aggiornamento del firmware","Start logging":"Inizia la registrazione",Statistics:"Statistiche",Status:"Stato","Subscribed to logs...":"Iscritto ai log...","Successfully added SmartStart device to provisioning list.":"Dispositivo SmartStart aggiunto correttamente all'elenco di provisioning.","switch compat tooltip":'Sovrascrive lo stato "targetValue" degli switch binari e multilivello con "currentValue" per mantenerli sincronizzati',"Target endpoint":"Endpoint target","Target node":"Nodo di destinazione","The association could not be deleted!":"L'associazione non pu\xF2 essere cancellata!","The association could not be saved!":"L'associazione non pu\xF2 essere salvata!","The controller does not support SmartStart!":"Il controller non supporta SmartStart!","The device is already included as Node %s":"Il dispositivo \xE8 gi\xE0 incluso come Nodo %s","The device is now being interviewed. It might take a while to show up.":"Il dispositivo \xE8 ora in fase di intervista. ","The group could not be deleted!":"Impossibile eliminare il gruppo!","The group could not be saved!":"Impossibile salvare il gruppo!","This is not a failed node":"Questo non \xE8 un nodo fallito","This is not a SmartStart QR code. Use the devices tab to include this node.":"Questo non \xE8 un codice QR SmartStart. ","This is not a valid Z-Wave QR code":"Questo non \xE8 un codice QR Z-Wave valido","This node is already on the SmartStart provisioning list":"Questo nodo \xE8 gi\xE0 nell'elenco di provisioning di SmartStart","This should only be set for debugging purposes.":"Questo dovrebbe essere impostato solo per scopi di debug.",timeouts:"timeout",Type:"genere","Undo changes":"Cancella i cambiamenti",unknown:"sconosciuto",Unprovision:"Annullamento del provisioning","Unprovision node?":"Nodo di annullamento del provisioning?","Unsubscribed logs...":"Registri non iscritti...","Update configuration DB":"Aggiorna DB di configurazione","Update Firmware":"Aggiorna firmware","Update for configuration DB available":"Aggiornamento per DB di configurazione disponibile","Updating configuration DB - please wait...":"Aggiornamento DB di configurazione - attendere ...","Updating the configuration DB failed!":"Aggiornamento del DB di configurazione non riuscito!","wake up device":"Si prega di riattivare il dispositivo!","WARNING: Make sure that the node is reset before attempting this.":"ATTENZIONE: assicurarsi che il nodo sia ripristinato prima di tentare questa operazione.","WARNING: Only do this if you no longer have physical access.":"ATTENZIONE: fallo solo se non hai pi\xF9 accesso fisico.","When a node announces itself, it will automatically be included within 10 minutes.":"Quando un nodo si annuncia, verr\xE0 automaticamente incluso entro 10 minuti.","Wipes all configuration of the controller. All connected nodes will be orphaned and have to be reset and included into the new network before they can be used again.":"Cancella tutta la configurazione del controller. ","Write a detailed logfile":"Scrivi un file di registro dettagliato",yes:"s\xEC","You can try this if the adapter does not start after updating to 2.3 or higher.":"Puoi provare questo se l'adattatore non si avvia dopo l'aggiornamento alla versione 2.3 o successiva.","Z-Wave Logs":"Registri dell'onda Z","Z-Wave supports the following security mechanisms:":"Z-Wave supports the following security mechanisms:"}});var Khe=w((mqe,Ghe)=>{Ghe.exports={"- select endpoint -":"- seleccionar punto final -","- select group -":"- selecciona grupo -","- select node -":"- seleccionar nodo -","(recommended)":"(recomendado)","(use only when necessary)":"(usar solo cuando sea necesario)","abort firmware update":"abortar actualizaci\xF3n de firmware","adapter not ready":"\xA1El adaptador no est\xE1 funcionando o a\xFAn no est\xE1 listo!","Added SmartStart device":"Dispositivo SmartStart agregado",alive:"viva","Already included":"Ya incluido","Already provisioned":"Ya aprovisionado",asleep:"dormido",Associations:"Asociaciones","At least one must be granted or the key exchange will be canceled.":"Se debe otorgar al menos una o se cancelar\xE1 el intercambio de claves.","At least one network key is not yet configured. This can cause problems during secure inclusion.":"Al menos una clave de red a\xFAn no est\xE1 configurada. ","Auto-scroll to bottom":"Desplazamiento autom\xE1tico hasta la parte inferior",awake:"despierto","But read this first!":"\xA1Pero lee esto primero!",Cancel:"Cancelar","Cancel healing":"Cancelar la curaci\xF3n","clear cache procedure":"El adaptador se reinicie y vuelva a entrevistar a todos los nodos. Esto puede tomar mucho tiempo y algunos nodos pueden no funcionar como se espera en el \xEDnterin.","Click here to select image with QR code":"Haga clic aqu\xED para seleccionar la imagen con c\xF3digo QR",Close:"Cerrar",collisions:"colisiones","Communicating with the device, please be patient...":"Comunic\xE1ndose con el dispositivo, tenga paciencia ...","config update disclaimer":"ADVERTENCIA: esta es una funcionalidad experimental. Aseg\xFArese de tener una copia de seguridad de ioBroker antes de actualizar la base de datos de configuraci\xF3n.","Configuration DB is up to date":"La base de datos de configuraci\xF3n est\xE1 actualizada","Configure the region and radio frequencies of the controller.":"Configure la regi\xF3n y las frecuencias de radio del controlador.","Controller node":"Nodo controlador",corrupt:"corrupto",dead:"muerto","Default (secure)":"Predeterminado (seguro)","Define here which SmartStart capable nodes should be part of the network by entering their DSK and granting security classes.":"Defina aqu\xED qu\xE9 nodos con capacidad SmartStart deben formar parte de la red ingresando su DSK y otorgando clases de seguridad.","Delete association":"Eliminar asociaci\xF3n","Delete group":"Eliminar grupo",Devices:"Dispositivos","Disable restarting the controller on startup":"Deshabilitar el reinicio del controlador al inicio","Do you really want to remove this node from the network?":"\xBFRealmente desea eliminar este nodo de la red?","Do you really want to remove this node from the provisioning list?":"\xBFRealmente desea eliminar este nodo de la lista de aprovisionamiento?","Do you really want to replace this node?":"\xBFRealmente quieres reemplazar este nodo?",done:"hecho","Done!":"\xA1Hecho!","Door locks, garage doors":"Cerraduras de puertas, puertas de garaje","Download logs":"Descargar registros",dropped:"abandon\xF3",DSK:"DSK",Enabled:"Activado",Endpoint:"Punto final","Enter group name":"Ingrese el nombre del grupo",Error:"Error","Example:":"Ejemplo:","Exclude device":"Excluir dispositivo","Exclusion active":"Exclusi\xF3n activa","Factory reset":"Restablecimiento de f\xE1brica","factory reset procedure":"procedimiento de restablecimiento de f\xE1brica","Factory reset?":"\xBFRestablecimiento de f\xE1brica?",failed:"ha fallado","Failed to scan QR code":"No se pudo escanear el c\xF3digo QR","fast and secure":"rapido y seguro","firmware update failed":"La actualizaci\xF3n del firmware ha fallado!","firmware update no wait time":"El dispositivo ahora se re-entrevistados.","firmware update successful":"La actualizaci\xF3n del firmware fue un \xE9xito!","firmware update wait time":"El dispositivo ser\xE1 re-entrevistados en {0} segundos.","firmware update wake up":"Usted podr\xEDa tener que activar el dispositivo de nuevo.","firmware update warning":"ADVERTENCIA: Utilice a su propio riesgo! No tomamos ninguna responsabilidad si sus dispositivos no funcionan despu\xE9s de una actualizaci\xF3n.","For devices without a DSK. Authentication of the inclusion happens on the device instead of in ioBroker.":"Para dispositivos sin DSK. ","Forget all information about all nodes and re-interview them. Battery-powered nodes might need to be woken up manually.":"Olv\xEDdese de toda la informaci\xF3n sobre todos los nodos y vuelva a entrevistarlos. ","Forget all information about this node and re-interview it. Battery-powered nodes might need to be woken up manually.":"Olv\xEDdese de toda la informaci\xF3n sobre este nodo y vuelva a entrevistarlo. ","Generate key":"Generar clave",Group:"Grupo","Group name":"Nombre del grupo",Groups:"Grupos","Heal network":"Sanar la red","Heal network finished":"Sanar la red terminado","Healing network":"Red curativa ...","Healing the network was successful!":"\xA1La curaci\xF3n de la red fue exitosa!","hosted port tip":"Tambi\xE9n puede conectarse a un puerto serie alojado mediante 'tcp://nombre-de-host:puerto'","Include device":"Incluir dispositivo","Inclusion active":"Inclusi\xF3n activa","Installed version":"Versi\xF3n instalada","Invalid network key":"Clave de red no v\xE1lida: debe tener 16 bytes (32 caracteres hexadecimales [0-9, a-f])","It will be included automatically when it announces itself.":"Se incluir\xE1 autom\xE1ticamente cuando se anuncie.","Legacy door locks without S2 support":"Cerraduras de puerta heredadas sin soporte S2","Legacy switch compatibility":"Mejore la compatibilidad con conmutadores heredados","Lighting, sensors, security systems":"Iluminaci\xF3n, sensores, sistemas de seguridad","Like S2 Authenticated, but without verification that the correct device is included":"Como S2 Authenticated, pero sin verificaci\xF3n de que se incluye el dispositivo correcto",Name:"Nombre","network key confirm":"Esto sobrescribir\xE1 la clave existente y el adaptador de no ser capaz de comunicarse con ya-incluidos los dispositivos seguros. \xBFDesea continuar?","network key tooltip":"16 bytes en formato hexadecimal (32 caracteres 0-9, a-f). Sin espacios, sin comas, sin l\xEDder '0x'.","Network keys for secure communication":"Clave de red para una comunicaci\xF3n segura","Network map":"Mapa de red",no:"no","No devices present":"No hay dispositivos presentes","No encryption":"Sin cifrado","no file selected":"ning\xFAn archivo seleccionado","no multicast explanation":"Los nodos durmientes y los nodos incluidos con Security S0 no se pueden usar en grupos de multidifusi\xF3n.",Node:"Nodo","Node %s was added successfully!":"\xA1El nodo% s se agreg\xF3 correctamente!","Node %s was removed from the network!":"\xA1El nodo% s fue eliminado de la red!","Node is not ready":"Nodo no esta listo","Node successfully added to provisioning list":"Nodo agregado correctamente a la lista de aprovisionamiento",Nodes:"Nodos","Non-secure":"No seguro","none selected":"ninguna seleccionada","not requested":"no requerido","Note: Applying a different region might take a few seconds.":"Nota: La aplicaci\xF3n de una regi\xF3n diferente puede tardar unos segundos.",OK:"OK","Only use S0, even if S2 is available. Allows including devices that require security but don't behave correctly during S2 inclusion.":"Utilice solo S0, incluso si S2 est\xE1 disponible. ","Open log in new window":"Abrir registro en una nueva ventana","opening camera...":"c\xE1mara de apertura ...","Or drag an image file here":"O arrastre un archivo de imagen aqu\xED","Pause auto-scrolling":"Pausar el desplazamiento autom\xE1tico","Pause logging":"Pausar registro",pending:"pendiente","Please choose an inclusion strategy":"Elija una estrategia de inclusi\xF3n","Please choose which of the following security classes to grant to the new node.":"Elija cu\xE1l de las siguientes clases de seguridad conceder al nuevo nodo.","Please enter the 5-digit PIN for your device and verify that the rest of the device-specific key (DSK) matches the one on your device or the manual.":"Ingrese el PIN de 5 d\xEDgitos de su dispositivo y verifique que el resto de la clave espec\xEDfica del dispositivo (DSK) coincida con la de su dispositivo o el manual.","Prefer S0 over no encryption":"Prefiere S0 sobre ning\xFAn cifrado","Preserve state names":"No sobrescriba los nombres de los estados","Provision node":"Nodo de aprovisionamiento","Put your device into exclusion mode":"Pon tu dispositivo en modo de exclusi\xF3n","Put your device into inclusion mode":"Pon tu dispositivo en modo de inclusi\xF3n","Re-interview all":"Vuelva a entrevistar a todos","Re-interview all?":"\xBFVolver a entrevistar a todos?",received:"recibi\xF3","Refresh node info":"Actualizar informaci\xF3n del nodo","Remove failed node":"Eliminar nodo fallido","Remove node?":"\xBFEliminar nodo?","Remove this node from the network.":"Elimine este nodo de la red.","Removing or disabling an entry does not automatically exclude the node.":"Quitar o deshabilitar una entrada no excluye autom\xE1ticamente el nodo.","Replace device":"Reemplazar dispositivo","Replace failed node":"Reemplazar nodo fallido","Replace node?":"\xBFReemplazar nodo?","Replace this node with a different one, keeping the node ID.":"Reemplace este nodo por uno diferente, manteniendo el ID del nodo.","Requires user interaction during the inclusion.":"Requiere la interacci\xF3n del usuario durante la inclusi\xF3n.","Restart the controller, e.g. when it hangs":"Reinicie el controlador, p. Ej. ","Root device":"Dispositivo ra\xEDz","Root endpoint":"Punto final de la ra\xEDz","Save association":"Guardar asociaci\xF3n","Save group":"Guardar grupo","Scan QR Code":"Escanear c\xF3digo QR",Secure:"Seguro","secure, but slow due to a lot of overhead":"seguro, pero lento debido a una gran cantidad de gastos generales",Security:"Seguridad","Security class: %s":"Clase de seguridad:% s","Security classes":"Clases de seguridad","Security S0":"Seguridad S0","Security S2 when supported, Security S0 as a fallback, no encryption otherwise.":"Security S2 cuando se admite, Security S0 como respaldo, sin cifrado de lo contrario.","Security S2 when supported, Security S0 only when necessary, no encryption otherwise.":"Security S2 cuando se admite, Security S0 solo cuando es necesario, sin cifrado de lo contrario.","Select at least 2 nodes":"Seleccione al menos 2 nodos","Select QR code source":"Seleccione la fuente del c\xF3digo QR","Select serial port":"Seleccionar puerto serie","Select the correct region for where you are. Using a different region may be illegal.":"Seleccione la regi\xF3n correcta para su ubicaci\xF3n. ",sent:"enviado","Set RF Region":"Establecer regi\xF3n de RF",Settings:"Configuraciones",SmartStart:"Inicio inteligente","Soft reset":"Reinicio suave","Source endpoint":"Punto final de origen","start firmware update":"iniciar actualizaci\xF3n de firmware","Start logging":"Empezar a registrar",Statistics:"Estad\xEDsticas",Status:"Estado","Subscribed to logs...":"Suscrito a los registros ...","Successfully added SmartStart device to provisioning list.":"Se agreg\xF3 correctamente el dispositivo SmartStart a la lista de aprovisionamiento.","switch compat tooltip":"Sobrescribe el estado 'targetValue' de los conmutadores binarios y multinivel con 'currentValue' para mantenerlos sincronizados","Target endpoint":"Punto final objetivo","Target node":"Nodo objetivo","The association could not be deleted!":"\xA1La asociaci\xF3n no se pudo eliminar!","The association could not be saved!":"\xA1La asociaci\xF3n no se pudo salvar!","The controller does not support SmartStart!":"\xA1El controlador no es compatible con SmartStart!","The device is already included as Node %s":"El dispositivo ya est\xE1 incluido como Nodo% s","The device is now being interviewed. It might take a while to show up.":"El dispositivo ahora est\xE1 siendo entrevistado. ","The group could not be deleted!":"\xA1No se pudo eliminar el grupo!","The group could not be saved!":"\xA1El grupo no se pudo salvar!","This is not a failed node":"Este no es un nodo fallido","This is not a SmartStart QR code. Use the devices tab to include this node.":"Este no es un c\xF3digo QR SmartStart. ","This is not a valid Z-Wave QR code":"Este no es un c\xF3digo QR de Z-Wave v\xE1lido","This node is already on the SmartStart provisioning list":"Este nodo ya est\xE1 en la lista de aprovisionamiento de SmartStart","This should only be set for debugging purposes.":"Esto solo debe establecerse con fines de depuraci\xF3n.",timeouts:"tiempos muertos",Type:"Tipo","Undo changes":"Deshacer cambios",unknown:"desconocido",Unprovision:"Desaprovisionamiento","Unprovision node?":"\xBFNo aprovisionar el nodo?","Unsubscribed logs...":"Registros cancelados ...","Update configuration DB":"Actualizar la base de datos de configuraci\xF3n","Update Firmware":"Actualice el firmware","Update for configuration DB available":"Actualizaci\xF3n para DB de configuraci\xF3n disponible","Updating configuration DB - please wait...":"Actualizando la base de datos de configuraci\xF3n - espere ...","Updating the configuration DB failed!":"\xA1Error al actualizar la base de datos de configuraci\xF3n!","wake up device":"Por favor, despierta el dispositivo!","WARNING: Make sure that the node is reset before attempting this.":"ADVERTENCIA: aseg\xFArese de que el nodo se reinicie antes de intentar esto.","WARNING: Only do this if you no longer have physical access.":"ADVERTENCIA: solo haga esto si ya no tiene acceso f\xEDsico.","When a node announces itself, it will automatically be included within 10 minutes.":"Cuando un nodo se anuncia a s\xED mismo, se incluir\xE1 autom\xE1ticamente en 10 minutos.","Wipes all configuration of the controller. All connected nodes will be orphaned and have to be reset and included into the new network before they can be used again.":"Limpia toda la configuraci\xF3n del controlador. ","Write a detailed logfile":"Escribir un archivo de registro detallado",yes:"s\xED","You can try this if the adapter does not start after updating to 2.3 or higher.":"Puede probar esto si el adaptador no se inicia despu\xE9s de actualizar a 2.3 o superior.","Z-Wave Logs":"Registros Z-Wave","Z-Wave supports the following security mechanisms:":"Z-Wave supports the following security mechanisms:"}});var Yhe=w((hqe,Jhe)=>{Jhe.exports={"- select endpoint -":"- wybierz punkt ko\u0144cowy -","- select group -":"- wybierz grup\u0119 -","- select node -":"- wybierz w\u0119ze\u0142 -","(recommended)":"(Zalecana)","(use only when necessary)":"(u\u017Cywaj tylko w razie potrzeby)","abort firmware update":"przerwa\u0107 aktualizacj\u0119 oprogramowania","adapter not ready":"Adapter nie dzia\u0142a lub nie jest jeszcze gotowy!","Added SmartStart device":"Dodano urz\u0105dzenie SmartStart",alive:"\u017Cywy","Already included":"Ju\u017C w zestawie","Already provisioned":"Ju\u017C udost\u0119pniono",asleep:"we \u015Bnie",Associations:"Wspomnienia","At least one must be granted or the key exchange will be canceled.":"Przynajmniej jeden musi zosta\u0107 przyznany lub wymiana kluczy zostanie anulowana.","At least one network key is not yet configured. This can cause problems during secure inclusion.":"Co najmniej jeden klucz sieciowy nie zosta\u0142 jeszcze skonfigurowany. ","Auto-scroll to bottom":"Automatyczne przewijanie do do\u0142u",awake:"obudzi\u0107","But read this first!":"Ale przeczytaj to najpierw!",Cancel:"Pomi\u0144","Cancel healing":"Anuluj leczenie","clear cache procedure":"Zasilacz uruchomi si\u0119 ponownie i ponownie przes\u0142ucha\u0107 wszystkich w\u0119z\u0142\xF3w. To mo\u017Ce zaj\u0105\u0107 du\u017Co czasu, a niekt\xF3re witryny mog\u0105 nie dzia\u0142a\u0107 zgodnie z oczekiwaniami w tym czasie.","Click here to select image with QR code":"Kliknij tutaj, aby wybra\u0107 obraz z kodem QR",Close:"Blisko",collisions:"kolizje","Communicating with the device, please be patient...":"Komunikuj\u0105c si\u0119 z urz\u0105dzeniem, prosimy o cierpliwo\u015B\u0107...","config update disclaimer":"OSTRZE\u017BENIE: to jest funkcjonalno\u015B\u0107 eksperymentalna. Upewnij si\u0119, \u017Ce masz kopi\u0119 zapasow\u0105 ioBroker przed aktualizacj\u0105 bazy danych konfiguracji.","Configuration DB is up to date":"Konfiguracja DB jest aktualna","Configure the region and radio frequencies of the controller.":"Skonfiguruj region i cz\u0119stotliwo\u015Bci radiowe kontrolera.","Controller node":"W\u0119ze\u0142 kontrolera",corrupt:"skorumpowany",dead:"nie \u017Cyje","Default (secure)":"Domy\u015Blny (bezpieczny)","Define here which SmartStart capable nodes should be part of the network by entering their DSK and granting security classes.":"Zdefiniuj tutaj, kt\xF3re w\u0119z\u0142y obs\u0142uguj\u0105ce SmartStart powinny by\u0107 cz\u0119\u015Bci\u0105 sieci, wprowadzaj\u0105c ich DSK i przyznaj\u0105c klasy bezpiecze\u0144stwa.","Delete association":"Usu\u0144 powi\u0105zanie","Delete group":"Usu\u0144 grup\u0119",Devices:"Urz\u0105dzenia","Disable restarting the controller on startup":"Wy\u0142\u0105cz ponowne uruchamianie kontrolera przy starcie","Do you really want to remove this node from the network?":"Czy na pewno chcesz usun\u0105\u0107 ten w\u0119ze\u0142 z sieci?","Do you really want to remove this node from the provisioning list?":"Czy na pewno chcesz usun\u0105\u0107 ten w\u0119ze\u0142 z listy aprowizacji?","Do you really want to replace this node?":"Czy na pewno chcesz zast\u0105pi\u0107 ten w\u0119ze\u0142?",done:"gotowy","Done!":"Gotowy!","Door locks, garage doors":"Zamki do drzwi, bramy gara\u017Cowe","Download logs":"Pobierz dzienniki",dropped:"porzucone",DSK:"DSK",Enabled:"W\u0142\u0105czony",Endpoint:"Punkt ko\u0144cowy","Enter group name":"Wpisz nazw\u0119 grupy",Error:"B\u0142\u0105d","Example:":"Przyk\u0142ad:","Exclude device":"Wyklucz urz\u0105dzenie","Exclusion active":"Wykluczenie aktywne","Factory reset":"Przywr\xF3cenie ustawie\u0144 fabrycznych","factory reset procedure":"Wymazuje ca\u0142\u0105 konfiguracj\u0119 kontrolera. ","Factory reset?":"Przywr\xF3cenie ustawie\u0144 fabrycznych?",failed:"nie powiod\u0142o si\u0119","Failed to scan QR code":"Nie uda\u0142o si\u0119 zeskanowa\u0107 kodu QR","fast and secure":"szybki i bezpieczny","firmware update failed":"Aktualizacja oprogramowania nie powiod\u0142a si\u0119!","firmware update no wait time":"Teraz to urz\u0105dzenie b\u0119dzie ponownie przes\u0142uchany.","firmware update successful":"Aktualizacje oprogramowania przebieg\u0142a pomy\u015Blnie!","firmware update wait time":"Urz\u0105dzenie b\u0119dzie ponownie przes\u0142uchany w {0} sekund.","firmware update wake up":"By\u0107 mo\u017Ce trzeba b\u0119dzie ponownie obudzi\u0107 urz\u0105dzenia.","firmware update warning":"Ostrze\u017Cenie: u\u017Cywaj na w\u0142asne ryzyko! Nie ponosimy odpowiedzialno\u015Bci, je\u015Bli twoje urz\u0105dzenie nie dzia\u0142a po aktualizacji.","For devices without a DSK. Authentication of the inclusion happens on the device instead of in ioBroker.":"Dla urz\u0105dze\u0144 bez DSK. ","Forget all information about all nodes and re-interview them. Battery-powered nodes might need to be woken up manually.":"Zapomnij o wszystkich informacjach o wszystkich w\u0119z\u0142ach i ponownie przeprowad\u017A z nimi wywiad. ","Forget all information about this node and re-interview it. Battery-powered nodes might need to be woken up manually.":"Zapomnij o wszystkich informacjach o tym w\u0119\u017Ale i ponownie przeprowad\u017A z nim wywiad. ","Generate key":"Wygenerowa\u0107 klucz",Group:"Grupa","Group name":"Nazwa grupy",Groups:"Grupy","Heal network":"Leczy\u0107 sieci","Heal network finished":"Leczy\u0107 sie\u0107","Healing network":"Sie\u0107 lecznicza ...","Healing the network was successful!":"Uzdrowienie sieci zako\u0144czy\u0142o si\u0119 sukcesem!","hosted port tip":"Mo\u017Cesz tak\u017Ce po\u0142\u0105czy\u0107 si\u0119 z hostowanym portem szeregowym za pomoc\u0105 formularza 'tcp://hosta:port'","Include device":"Uwzgl\u0119dnij urz\u0105dzenie","Inclusion active":"W\u0142\u0105czenie aktywne","Installed version":"Zainstalowana wersja","Invalid network key":"Nieprawid\u0142owy klucz sieciowy: musi mie\u0107 16 bajt\xF3w (32 znaki szesnastkowe [0-9, a-f])","It will be included automatically when it announces itself.":"Zostanie do\u0142\u0105czony automatycznie, gdy si\u0119 og\u0142osi.","Legacy door locks without S2 support":"Starsze zamki do drzwi bez wsparcia S2","Legacy switch compatibility":"Popraw zgodno\u015B\u0107 ze starszymi prze\u0142\u0105cznikami","Lighting, sensors, security systems":"O\u015Bwietlenie, czujniki, systemy bezpiecze\u0144stwa","Like S2 Authenticated, but without verification that the correct device is included":"Jak S2 Authenticated, ale bez weryfikacji, czy do\u0142\u0105czone jest w\u0142a\u015Bciwe urz\u0105dzenie",Name:"Nazwa","network key confirm":"Spowoduje to nadpisanie istniej\u0105cego klucza i zasilacz nie b\u0119dzie w stanie komunikowa\u0107 si\u0119 z w\u0142\u0105czonymi ju\u017C chronionych urz\u0105dze\u0144. Czy na pewno chcesz kontynuowa\u0107?","network key tooltip":"16 bajt\xF3w w formacie hex (32 znaki 0-9, a-F). Bez spacji, bez przecink\xF3w, bez wiod\u0105cych '0x'.","Network keys for secure communication":"Klucz sieciowy do bezpiecznej komunikacji","Network map":"Mapa sieci",no:"nie","No devices present":"Brak urz\u0105dze\u0144","No encryption":"Brak szyfrowania","no file selected":"nie wybrano \u017Cadnego pliku","no multicast explanation":"W\u0119z\u0142y u\u015Bpione i w\u0119z\u0142y zawarte w Security S0 nie mog\u0105 by\u0107 u\u017Cywane w grupach multiemisji.",Node:"W\u0119ze\u0142","Node %s was added successfully!":"W\u0119ze\u0142 %s zosta\u0142 pomy\u015Blnie dodany!","Node %s was removed from the network!":"W\u0119ze\u0142 %s zosta\u0142 usuni\u0119ty z sieci!","Node is not ready":"W\u0119ze\u0142 nie jest gotowy","Node successfully added to provisioning list":"W\u0119ze\u0142 pomy\u015Blnie dodany do listy udost\u0119pniania",Nodes:"W\u0119z\u0142y","Non-secure":"Niezabezpieczony","none selected":"nie wybrano","not requested":"nie proszony","Note: Applying a different region might take a few seconds.":"Uwaga: zastosowanie innego regionu mo\u017Ce zaj\u0105\u0107 kilka sekund.",OK:"ok","Only use S0, even if S2 is available. Allows including devices that require security but don't behave correctly during S2 inclusion.":"U\u017Cywaj tylko S0, nawet je\u015Bli S2 jest dost\u0119pny. ","Open log in new window":"Otw\xF3rz logowanie w nowym oknie","opening camera...":"otwieram kamer\u0119...","Or drag an image file here":"Lub przeci\u0105gnij plik obrazu tutaj","Pause auto-scrolling":"Wstrzymaj automatyczne przewijanie","Pause logging":"Wstrzymaj rejestrowanie",pending:"w oczekiwaniu","Please choose an inclusion strategy":"Wybierz strategi\u0119 w\u0142\u0105czenia","Please choose which of the following security classes to grant to the new node.":"Wybierz, kt\xF3r\u0105 z poni\u017Cszych klas zabezpiecze\u0144 chcesz nada\u0107 nowemu w\u0119z\u0142owi.","Please enter the 5-digit PIN for your device and verify that the rest of the device-specific key (DSK) matches the one on your device or the manual.":"Wprowad\u017A 5-cyfrowy kod PIN swojego urz\u0105dzenia i sprawd\u017A, czy reszta klucza specyficznego dla urz\u0105dzenia (DSK) jest zgodna z tym na urz\u0105dzeniu lub w instrukcji.","Prefer S0 over no encryption":"Preferuj S0 zamiast braku szyfrowania","Preserve state names":"Nie nadpisuj nazw stan\xF3w","Provision node":"W\u0119ze\u0142 udost\u0119pniania","Put your device into exclusion mode":"Prze\u0142\u0105cz urz\u0105dzenie w tryb wykluczania","Put your device into inclusion mode":"Prze\u0142\u0105cz urz\u0105dzenie w tryb w\u0142\u0105czenia","Re-interview all":"Przeprowad\u017A ponownie wywiad ze wszystkimi","Re-interview all?":"Ponownie przes\u0142ucha\u0107 wszystkich?",received:"Odebrane","Refresh node info":"Od\u015Bwie\u017C informacje o w\u0119\u017Ale","Remove failed node":"Usu\u0144 uszkodzony w\u0119ze\u0142","Remove node?":"Usun\u0105\u0107 w\u0119ze\u0142?","Remove this node from the network.":"Usu\u0144 ten w\u0119ze\u0142 z sieci.","Removing or disabling an entry does not automatically exclude the node.":"Usuni\u0119cie lub wy\u0142\u0105czenie wpisu nie wyklucza automatycznie w\u0119z\u0142a.","Replace device":"Wymie\u0144 urz\u0105dzenie","Replace failed node":"Zast\u0105p uszkodzony w\u0119ze\u0142","Replace node?":"Zamieni\u0107 w\u0119ze\u0142?","Replace this node with a different one, keeping the node ID.":"Zast\u0105p ten w\u0119ze\u0142 innym, zachowuj\u0105c identyfikator w\u0119z\u0142a.","Requires user interaction during the inclusion.":"Wymaga interakcji u\u017Cytkownika podczas w\u0142\u0105czania.","Restart the controller, e.g. when it hangs":"Zrestartuj kontroler, np. ","Root device":"Urz\u0105dzenie root","Root endpoint":"G\u0142\xF3wny punkt ko\u0144cowy","Save association":"Zapisz skojarzenie","Save group":"Zapisz grup\u0119","Scan QR Code":"Skanowania QR code",Secure:"Bezpieczne","secure, but slow due to a lot of overhead":"bezpieczny, ale powolny ze wzgl\u0119du na du\u017Ce obci\u0105\u017Cenie",Security:"Bezpiecze\u0144stwo","Security class: %s":"Klasa bezpiecze\u0144stwa: %s","Security classes":"Klasy bezpiecze\u0144stwa","Security S0":"Bezpiecze\u0144stwo S0","Security S2 when supported, Security S0 as a fallback, no encryption otherwise.":"Zabezpieczenia S2, gdy s\u0105 obs\u0142ugiwane, Zabezpieczenia S0 jako rezerwa, w przeciwnym razie brak szyfrowania.","Security S2 when supported, Security S0 only when necessary, no encryption otherwise.":"Bezpiecze\u0144stwo S2, gdy jest obs\u0142ugiwane, Bezpiecze\u0144stwo S0 tylko wtedy, gdy jest to konieczne, w przeciwnym razie brak szyfrowania.","Select at least 2 nodes":"Wybierz co najmniej 2 w\u0119z\u0142y","Select QR code source":"Wybierz \u017Ar\xF3d\u0142o kodu QR","Select serial port":"Wybierz port szeregowy","Select the correct region for where you are. Using a different region may be illegal.":"Wybierz odpowiedni region, w kt\xF3rym si\u0119 znajdujesz. ",sent:"wys\u0142ano","Set RF Region":"Ustaw region RF",Settings:"Ustawienia",SmartStart:"SmartStart","Soft reset":"Mi\u0119kki reset","Source endpoint":"\u0179r\xF3d\u0142owy punkt ko\u0144cowy","start firmware update":"rozpocznij aktualizacj\u0119 oprogramowania","Start logging":"Rozpocznij logowanie",Statistics:"Statystyka",Status:"Status","Subscribed to logs...":"Zasubskrybowano logi...","Successfully added SmartStart device to provisioning list.":"Pomy\u015Blnie dodano urz\u0105dzenie SmartStart do listy obs\u0142ugi administracyjnej.","switch compat tooltip":"Zast\u0119puje stan \u201EtargetValue\u201D prze\u0142\u0105cznik\xF3w binarnych i wielopoziomowych warto\u015Bci\u0105 \u201EcurrentValue\u201D, aby zapewni\u0107 ich synchronizacj\u0119","Target endpoint":"Docelowy punkt ko\u0144cowy","Target node":"W\u0119ze\u0142 docelowy","The association could not be deleted!":"Nie mo\u017Cna usun\u0105\u0107 powi\u0105zania!","The association could not be saved!":"Nie mo\u017Cna zapisa\u0107 stowarzyszenia!","The controller does not support SmartStart!":"Sterownik nie obs\u0142uguje SmartStart!","The device is already included as Node %s":"Urz\u0105dzenie jest ju\u017C uwzgl\u0119dnione jako w\u0119ze\u0142 %s","The device is now being interviewed. It might take a while to show up.":"Urz\u0105dzenie jest teraz przes\u0142uchiwane. ","The group could not be deleted!":"Nie uda\u0142o si\u0119 usun\u0105\u0107 grupy!","The group could not be saved!":"Nie uda\u0142o si\u0119 zapisa\u0107 grupy!","This is not a failed node":"To nie jest uszkodzony w\u0119ze\u0142","This is not a SmartStart QR code. Use the devices tab to include this node.":"To nie jest kod QR SmartStart. ","This is not a valid Z-Wave QR code":"To nie jest prawid\u0142owy kod QR Z-Wave","This node is already on the SmartStart provisioning list":"Ten w\u0119ze\u0142 znajduje si\u0119 ju\u017C na li\u015Bcie udost\u0119pniania SmartStart","This should only be set for debugging purposes.":"Nale\u017Cy to ustawi\u0107 tylko w celu debugowania.",timeouts:"limity czasu",Type:"Typ","Undo changes":"Cofnij zmiany",unknown:"nieznany",Unprovision:"Anuluj udost\u0119pnienie","Unprovision node?":"Cofn\u0105\u0107 aprowizacj\u0119 w\u0119z\u0142a?","Unsubscribed logs...":"Niesubskrybowane dzienniki...","Update configuration DB":"Zaktualizuj baz\u0119 danych konfiguracji","Update Firmware":"Aktualizacja oprogramowania","Update for configuration DB available":"Dost\u0119pna aktualizacja konfiguracji bazy danych","Updating configuration DB - please wait...":"Aktualizowanie bazy danych konfiguracji - prosz\u0119 czeka\u0107 ...","Updating the configuration DB failed!":"Aktualizacja bazy danych konfiguracji nie powiod\u0142a si\u0119!","wake up device":"Prosz\u0119 si\u0119 obudzi\u0107 urz\u0105dzenie!","WARNING: Make sure that the node is reset before attempting this.":"OSTRZE\u017BENIE: Upewnij si\u0119, \u017Ce w\u0119ze\u0142 jest zresetowany przed pr\xF3b\u0105 tego.","WARNING: Only do this if you no longer have physical access.":"OSTRZE\u017BENIE: Zr\xF3b to tylko wtedy, gdy nie masz ju\u017C fizycznego dost\u0119pu.","When a node announces itself, it will automatically be included within 10 minutes.":"Gdy w\u0119ze\u0142 si\u0119 og\u0142osi, zostanie automatycznie uwzgl\u0119dniony w ci\u0105gu 10 minut.","Wipes all configuration of the controller. All connected nodes will be orphaned and have to be reset and included into the new network before they can be used again.":"Wymazuje ca\u0142\u0105 konfiguracj\u0119 kontrolera. ","Write a detailed logfile":"Napisz szczeg\xF3\u0142owy plik dziennika",yes:"tak","You can try this if the adapter does not start after updating to 2.3 or higher.":"Mo\u017Cesz spr\xF3bowa\u0107 tego, je\u015Bli adapter nie uruchamia si\u0119 po aktualizacji do wersji 2.3 lub nowszej.","Z-Wave Logs":"Dzienniki Z-Wave","Z-Wave supports the following security mechanisms:":"Z-Wave supports the following security mechanisms:"}});var Zhe=w((vqe,Qhe)=>{Qhe.exports={"- select endpoint -":"-\u9009\u62E9\u7AEF\u70B9-","- select group -":"-\u9009\u62E9\u7EC4-","- select node -":"-\u9009\u62E9\u8282\u70B9-","(recommended)":"\uFF08\u53D7\u5230\u63A8\u5D07\u7684\uFF09","(use only when necessary)":"\uFF08\u4EC5\u5728\u5FC5\u8981\u65F6\u4F7F\u7528\uFF09","abort firmware update":"\u4E2D\u6B62\u56FA\u4EF6\u66F4\u65B0","adapter not ready":"\u9002\u914D\u5668\u672A\u8FD0\u884C\u6216\u5C1A\u672A\u51C6\u5907\u597D\uFF01","Added SmartStart device":"\u6DFB\u52A0\u4E86 SmartStart \u8BBE\u5907",alive:"\u6D3B","Already included":"\u5DF2\u5305\u542B","Already provisioned":"\u5DF2\u914D\u7F6E",asleep:"\u7761\u7740\u4E86",Associations:"\u793E\u56E2\u534F\u4F1A","At least one must be granted or the key exchange will be canceled.":"\u5FC5\u987B\u81F3\u5C11\u6388\u4E88\u4E00\u9879\uFF0C\u5426\u5219\u5C06\u53D6\u6D88\u5BC6\u94A5\u4EA4\u6362\u3002","At least one network key is not yet configured. This can cause problems during secure inclusion.":"\u81F3\u5C11\u4E00\u4E2A\u7F51\u7EDC\u5BC6\u94A5\u5C1A\u672A\u914D\u7F6E\u3002","Auto-scroll to bottom":"\u81EA\u52A8\u6EDA\u52A8\u5230\u5E95\u90E8",awake:"\u82CF\u9192","But read this first!":"\u4F46\u8BF7\u5148\u9605\u8BFB\u6B64\u5185\u5BB9\uFF01",Cancel:"\u53D6\u6D88","Cancel healing":"\u53D6\u6D88\u6CBB\u7597","clear cache procedure":"\u9002\u914D\u5668\u5C06\u91CD\u65B0\u542F\u52A8\u548C\u91CD\u65B0\u9762\u8BD5\u7684\u6240\u6709\u8282\u70B9\u3002 \u8FD9\u53EF\u80FD\u9700\u8981\u5F88\u957F\u7684\u65F6\u95F4\u548C\u4E00\u4E9B\u8282\u70B9\u53EF\u80FD\u65E0\u6CD5\u6309\u9884\u671F\u7684\u65B9\u5F0F\u5DE5\u4F5C\u3002","Click here to select image with QR code":"\u70B9\u51FB\u8FD9\u91CC\u9009\u62E9\u5E26\u6709\u4E8C\u7EF4\u7801\u7684\u56FE\u7247",Close:"\u5173\u95ED",collisions:"\u78B0\u649E","Communicating with the device, please be patient...":"\u6B63\u5728\u4E0E\u8BBE\u5907\u901A\u4FE1\uFF0C\u8BF7\u8010\u5FC3\u7B49\u5F85...","config update disclaimer":"\u8B66\u544A\uFF1A\u8FD9\u662F\u5B9E\u9A8C\u6027\u529F\u80FD\u3002\u5728\u66F4\u65B0\u914D\u7F6E\u6570\u636E\u5E93\u4E4B\u524D\uFF0C\u8BF7\u786E\u4FDD\u60A8\u5177\u6709ioBroker\u5907\u4EFD\u3002","Configuration DB is up to date":"\u914D\u7F6E\u6570\u636E\u5E93\u662F\u6700\u65B0\u7684","Configure the region and radio frequencies of the controller.":"\u914D\u7F6E\u63A7\u5236\u5668\u7684\u533A\u57DF\u548C\u5C04\u9891\u3002","Controller node":"\u63A7\u5236\u5668\u8282\u70B9",corrupt:"\u8150\u8D25",dead:"\u6B7B","Default (secure)":"\u9ED8\u8BA4\uFF08\u5B89\u5168\uFF09","Define here which SmartStart capable nodes should be part of the network by entering their DSK and granting security classes.":"\u901A\u8FC7\u8F93\u5165\u5B83\u4EEC\u7684 DSK \u5E76\u6388\u4E88\u5B89\u5168\u7B49\u7EA7\uFF0C\u5728\u6B64\u5904\u5B9A\u4E49\u54EA\u4E9B\u652F\u6301 SmartStart \u7684\u8282\u70B9\u5E94\u6210\u4E3A\u7F51\u7EDC\u7684\u4E00\u90E8\u5206\u3002","Delete association":"\u5220\u9664\u5173\u8054","Delete group":"\u5220\u9664\u7FA4\u7EC4",Devices:"\u8BBE\u5907","Disable restarting the controller on startup":"\u7981\u6B62\u5728\u542F\u52A8\u65F6\u91CD\u65B0\u542F\u52A8\u63A7\u5236\u5668","Do you really want to remove this node from the network?":"\u60A8\u771F\u7684\u8981\u4ECE\u7F51\u7EDC\u4E2D\u5220\u9664\u6B64\u8282\u70B9\u5417\uFF1F","Do you really want to remove this node from the provisioning list?":"\u60A8\u771F\u7684\u8981\u4ECE\u4F9B\u5E94\u5217\u8868\u4E2D\u5220\u9664\u6B64\u8282\u70B9\u5417\uFF1F","Do you really want to replace this node?":"\u4F60\u771F\u7684\u8981\u66F4\u6362\u8FD9\u4E2A\u8282\u70B9\u5417\uFF1F",done:"\u5B8C\u6210","Done!":"\u505A\u5B8C\u4E86\uFF01","Door locks, garage doors":"\u95E8\u9501\u3001\u8F66\u5E93\u95E8","Download logs":"\u4E0B\u8F7D\u65E5\u5FD7",dropped:"\u6389\u7EBF",DSK:"DSK",Enabled:"\u542F\u7528",Endpoint:"\u7EC8\u70B9","Enter group name":"\u8F93\u5165\u7EC4\u540D",Error:"\u9519\u8BEF","Example:":"\u4F8B\u5B50\uFF1A","Exclude device":"\u6392\u9664\u88C5\u7F6E","Exclusion active":"\u6392\u9664\u6FC0\u6D3B","Factory reset":"\u6062\u590D\u51FA\u5382\u8BBE\u7F6E","factory reset procedure":"\u64E6\u9664\u63A7\u5236\u5668\u7684\u6240\u6709\u914D\u7F6E\u3002","Factory reset?":"\u6062\u590D\u51FA\u5382\u8BBE\u7F6E\uFF1F",failed:"\u5931\u8D25\u4E86","Failed to scan QR code":"\u65E0\u6CD5\u626B\u63CF\u4E8C\u7EF4\u7801","fast and secure":"\u5FEB\u901F\u5B89\u5168","firmware update failed":"\u5347\u7EA7\u5931\u8D25\u4E86\uFF01","firmware update no wait time":"\u8BE5\u8BBE\u5907\u73B0\u5728\u5C06\u91CD\u65B0\u8FDB\u884C\u4E86\u91C7\u8BBF\u3002","firmware update successful":"\u56FA\u4EF6\u7684\u66F4\u65B0\u662F\u6210\u529F\u7684\uFF01","firmware update wait time":"\u8BE5\u8BBE\u5907\u5C06\u91CD\u65B0\u91C7\u8BBF\u4E86{0}\u79D2\u949F\u3002","firmware update wake up":"\u4F60\u53EF\u80FD\u5DF2\u7ECF\u9192\u6765\u7684\u8BBE\u5907\u3002","firmware update warning":"\u8B66\u544A\uFF1A\u4F7F\u7528\u5728\u81EA\u5DF1\u7684\u98CE\u9669\uFF01 \u6211\u4EEC\u4E0D\u91C7\u53D6\u4EFB\u4F55\u8D23\u4EFB\uFF0C\u5982\u679C\u4F60\u7684\u8BBE\u5907\u4E0D\u5DE5\u4F5C\u4E4B\u540E\u66F4\u65B0\u3002","For devices without a DSK. Authentication of the inclusion happens on the device instead of in ioBroker.":"\u5BF9\u4E8E\u6CA1\u6709 DSK \u7684\u8BBE\u5907\u3002","Forget all information about all nodes and re-interview them. Battery-powered nodes might need to be woken up manually.":"\u5FD8\u8BB0\u6240\u6709\u8282\u70B9\u7684\u6240\u6709\u4FE1\u606F\u5E76\u91CD\u65B0\u91C7\u8BBF\u5B83\u4EEC\u3002","Forget all information about this node and re-interview it. Battery-powered nodes might need to be woken up manually.":"\u5FD8\u8BB0\u6709\u5173\u6B64\u8282\u70B9\u7684\u6240\u6709\u4FE1\u606F\u5E76\u91CD\u65B0\u8BBF\u95EE\u5B83\u3002","Generate key":"\u751F\u6210\u5BC6\u94A5",Group:"\u7EC4","Group name":"\u56E2\u961F\u540D\u5B57",Groups:"\u56E2\u4F53","Heal network":"\u533B\u6CBB\u7F51\u7EDC","Heal network finished":"\u6108\u5408\u7684\u7F51\u7EDC\u4E2D\u5B8C\u6210\u7684","Healing network":"\u4FEE\u590D\u7F51\u7EDC...","Healing the network was successful!":"\u7F51\u7EDC\u4FEE\u590D\u6210\u529F\uFF01","hosted port tip":"\u60A8\u8FD8\u53EF\u4EE5\u4F7F\u7528'tcp\uFF1A//hostname\uFF1Aport'\u683C\u5F0F\u8FDE\u63A5\u5230\u6258\u7BA1\u4E32\u884C\u7AEF\u53E3\u3002","Include device":"\u5305\u542B\u88C5\u7F6E","Inclusion active":"\u5305\u542B\u6D3B\u52A8","Installed version":"\u5B89\u88C5\u7248\u672C","Invalid network key":"\u65E0\u6548\u7684\u7F51\u7EDC\u5BC6\u94A5\uFF1A\u5FC5\u987B\u4E3A16\u4E2A\u5B57\u8282\uFF0832\u4E2A\u5341\u516D\u8FDB\u5236\u5B57\u7B26[0-9\uFF0Ca-f]\uFF09","It will be included automatically when it announces itself.":"\u5B83\u5C06\u5728\u5BA3\u5E03\u81EA\u5DF1\u65F6\u81EA\u52A8\u5305\u542B\u5728\u5185\u3002","Legacy door locks without S2 support":"\u4E0D\u652F\u6301 S2 \u7684\u4F20\u7EDF\u95E8\u9501","Legacy switch compatibility":"\u6539\u5584\u4E0E\u4F20\u7EDF\u4EA4\u6362\u673A\u7684\u517C\u5BB9\u6027","Lighting, sensors, security systems":"\u7167\u660E\u3001\u4F20\u611F\u5668\u3001\u5B89\u5168\u7CFB\u7EDF","Like S2 Authenticated, but without verification that the correct device is included":"\u7C7B\u4F3C\u4E8E S2 Authenticated\uFF0C\u4F46\u6CA1\u6709\u9A8C\u8BC1\u662F\u5426\u5305\u542B\u6B63\u786E\u7684\u8BBE\u5907",Name:"\u540D\u79F0","network key confirm":"\u8FD9\u5C06\u590D\u76D6\u73B0\u6709\u5173\u952E\u548C\u9002\u914D\u5668\u4E0D\u80FD\u591F\u4E0E\u5DF2\u5217\u5165\u5B89\u5168\u7684\u8BBE\u5907\u3002 \u4F60\u60F3\u7EE7\u7EED\u5417\uFF1F","network key tooltip":"16\u5B57\u8282\u8FDB\u5236\u5F62\u5F0F(32\u5B570-9\uFF0Ca-f)\u3002 \u6CA1\u6709\u7A7A\u95F4\uFF0C\u6CA1\u6709\u9017\u53F7\uFF0C\u800C\u4E0D\u5BFC\u81F4'0x'.","Network keys for secure communication":"\u7528\u4E8E\u5B89\u5168\u901A\u4FE1\u7684\u7F51\u7EDC\u5BC6\u94A5","Network map":"\u7F51\u7EDC\u56FE",no:"\u6CA1\u6709","No devices present":"\u6CA1\u6709\u8BBE\u5907","No encryption":"\u65E0\u52A0\u5BC6","no file selected":"\u672A\u9009\u62E9\u6587\u4EF6","no multicast explanation":"\u7761\u7720\u8282\u70B9\u548C Security S0 \u4E2D\u5305\u542B\u7684\u8282\u70B9\u4E0D\u80FD\u7528\u4E8E\u591A\u64AD\u7EC4\u3002",Node:"\u8282\u70B9","Node %s was added successfully!":"\u8282\u70B9 %s \u6DFB\u52A0\u6210\u529F\uFF01","Node %s was removed from the network!":"\u8282\u70B9 %s \u5DF2\u4ECE\u7F51\u7EDC\u4E2D\u5220\u9664\uFF01","Node is not ready":"\u8282\u70B9\u5C1A\u672A\u51C6\u5907\u597D","Node successfully added to provisioning list":"\u8282\u70B9\u5DF2\u6210\u529F\u6DFB\u52A0\u5230\u914D\u7F6E\u5217\u8868",Nodes:"\u8282\u70B9","Non-secure":"\u4E0D\u5B89\u5168","none selected":"\u672A\u9009\u62E9","not requested":"\u6CA1\u6709\u88AB\u8981\u6C42","Note: Applying a different region might take a few seconds.":"\u6CE8\u610F\uFF1A\u5E94\u7528\u4E0D\u540C\u7684\u533A\u57DF\u53EF\u80FD\u9700\u8981\u51E0\u79D2\u949F\u3002",OK:"\u597D\u7684","Only use S0, even if S2 is available. Allows including devices that require security but don't behave correctly during S2 inclusion.":"\u4EC5\u4F7F\u7528 S0\uFF0C\u5373\u4F7F S2 \u53EF\u7528\u3002","Open log in new window":"\u5728\u65B0\u7A97\u53E3\u6253\u5F00\u767B\u5F55","opening camera...":"\u6253\u5F00\u76F8\u673A...","Or drag an image file here":"\u6216\u5C06\u56FE\u50CF\u6587\u4EF6\u62D6\u5230\u6B64\u5904","Pause auto-scrolling":"\u6682\u505C\u81EA\u52A8\u6EDA\u52A8","Pause logging":"\u6682\u505C\u8BB0\u5F55",pending:"\u5F85\u5B9A","Please choose an inclusion strategy":"\u8BF7\u9009\u62E9\u5305\u542B\u7B56\u7565","Please choose which of the following security classes to grant to the new node.":"\u8BF7\u9009\u62E9\u4EE5\u4E0B\u54EA\u4E2A\u5B89\u5168\u7B49\u7EA7\u6388\u4E88\u65B0\u8282\u70B9\u3002","Please enter the 5-digit PIN for your device and verify that the rest of the device-specific key (DSK) matches the one on your device or the manual.":"\u8BF7\u8F93\u5165\u60A8\u8BBE\u5907\u7684 5 \u4F4D PIN \u7801\uFF0C\u5E76\u9A8C\u8BC1\u8BBE\u5907\u7279\u5B9A\u5BC6\u94A5 (DSK) \u7684\u5176\u4F59\u90E8\u5206\u662F\u5426\u4E0E\u60A8\u7684\u8BBE\u5907\u6216\u624B\u518C\u4E0A\u7684\u5339\u914D\u3002","Prefer S0 over no encryption":"\u6BD4\u4E0D\u52A0\u5BC6\u66F4\u559C\u6B22 S0","Preserve state names":"\u4E0D\u8981\u8986\u76D6\u72B6\u6001\u540D\u79F0","Provision node":"\u4F9B\u5E94\u8282\u70B9","Put your device into exclusion mode":"\u5C06\u60A8\u7684\u8BBE\u5907\u7F6E\u4E8E\u6392\u9664\u6A21\u5F0F","Put your device into inclusion mode":"\u5C06\u60A8\u7684\u8BBE\u5907\u7F6E\u4E8E\u5305\u542B\u6A21\u5F0F","Re-interview all":"\u91CD\u65B0\u9762\u8BD5\u6240\u6709","Re-interview all?":"\u5168\u90E8\u91CD\u65B0\u9762\u8BD5\uFF1F",received:"\u5DF2\u6536\u5230","Refresh node info":"\u5237\u65B0\u8282\u70B9\u4FE1\u606F","Remove failed node":"\u5220\u9664\u6545\u969C\u8282\u70B9","Remove node?":"\u5220\u9664\u8282\u70B9\uFF1F","Remove this node from the network.":"\u4ECE\u7F51\u7EDC\u4E2D\u5220\u9664\u6B64\u8282\u70B9\u3002","Removing or disabling an entry does not automatically exclude the node.":"\u5220\u9664\u6216\u7981\u7528\u6761\u76EE\u4E0D\u4F1A\u81EA\u52A8\u6392\u9664\u8BE5\u8282\u70B9\u3002","Replace device":"\u66F4\u6362\u8BBE\u5907","Replace failed node":"\u66F4\u6362\u6545\u969C\u8282\u70B9","Replace node?":"\u66F4\u6362\u8282\u70B9\uFF1F","Replace this node with a different one, keeping the node ID.":"\u7528\u53E6\u4E00\u4E2A\u8282\u70B9\u66FF\u6362\u8FD9\u4E2A\u8282\u70B9\uFF0C\u4FDD\u7559\u8282\u70B9 ID\u3002","Requires user interaction during the inclusion.":"\u5728\u5305\u542B\u671F\u95F4\u9700\u8981\u7528\u6237\u4EA4\u4E92\u3002","Restart the controller, e.g. when it hangs":"\u91CD\u65B0\u542F\u52A8\u63A7\u5236\u5668\uFF0C\u4F8B\u5982","Root device":"\u6839\u8BBE\u5907","Root endpoint":"\u6839\u7AEF\u70B9","Save association":"\u4FDD\u5B58\u5173\u8054","Save group":"\u4FDD\u5B58\u7EC4","Scan QR Code":"\u626B\u63CF\u4E8C\u7EF4\u7801",Secure:"\u5B89\u5168","secure, but slow due to a lot of overhead":"\u5B89\u5168\uFF0C\u4F46\u7531\u4E8E\u5927\u91CF\u5F00\u9500\u800C\u7F13\u6162",Security:"\u5B89\u5168","Security class: %s":"\u5B89\u5168\u7B49\u7EA7\uFF1A%s","Security classes":"\u5B89\u5168\u7C7B","Security S0":"\u5B89\u5168 S0","Security S2 when supported, Security S0 as a fallback, no encryption otherwise.":"\u652F\u6301\u5B89\u5168 S2\uFF0C\u5B89\u5168 S0 \u4F5C\u4E3A\u540E\u5907\uFF0C\u5426\u5219\u4E0D\u52A0\u5BC6\u3002","Security S2 when supported, Security S0 only when necessary, no encryption otherwise.":"\u652F\u6301\u5B89\u5168 S2\uFF0C\u4EC5\u5728\u5FC5\u8981\u65F6\u5B89\u5168 S0\uFF0C\u5426\u5219\u4E0D\u52A0\u5BC6\u3002","Select at least 2 nodes":"\u9009\u62E9\u81F3\u5C11 2 \u4E2A\u8282\u70B9","Select QR code source":"\u9009\u62E9\u4E8C\u7EF4\u7801\u6765\u6E90","Select serial port":"\u9009\u62E9\u4E32\u53E3","Select the correct region for where you are. Using a different region may be illegal.":"\u4E3A\u60A8\u6240\u5728\u7684\u4F4D\u7F6E\u9009\u62E9\u6B63\u786E\u7684\u533A\u57DF\u3002",sent:"\u53D1\u9001","Set RF Region":"\u8BBE\u7F6E\u5C04\u9891\u533A\u57DF",Settings:"\u8BBE\u7F6E",SmartStart:"\u667A\u80FD\u542F\u52A8","Soft reset":"\u8F6F\u590D\u4F4D","Source endpoint":"\u6E90\u7AEF\u70B9","start firmware update":"\u5F00\u59CB\u56FA\u4EF6\u66F4\u65B0","Start logging":"\u5F00\u59CB\u8BB0\u5F55",Statistics:"\u7EDF\u8BA1\u6570\u636E",Status:"\u72B6\u6001","Subscribed to logs...":"\u8BA2\u9605\u65E5\u5FD7...","Successfully added SmartStart device to provisioning list.":"\u5DF2\u6210\u529F\u5C06 SmartStart \u8BBE\u5907\u6DFB\u52A0\u5230\u914D\u7F6E\u5217\u8868\u3002","switch compat tooltip":"\u7528'currentValue'\u8986\u76D6\u4E8C\u8FDB\u5236\u548C\u591A\u7EA7\u5F00\u5173\u7684'targetValue'\u72B6\u6001\uFF0C\u4EE5\u4F7F\u5176\u4FDD\u6301\u540C\u6B65","Target endpoint":"\u76EE\u6807\u7EC8\u70B9","Target node":"\u76EE\u6807\u8282\u70B9","The association could not be deleted!":"\u8BE5\u5173\u8054\u65E0\u6CD5\u5220\u9664\uFF01","The association could not be saved!":"\u5173\u8054\u65E0\u6CD5\u4FDD\u5B58\uFF01","The controller does not support SmartStart!":"\u63A7\u5236\u5668\u4E0D\u652F\u6301 SmartStart\uFF01","The device is already included as Node %s":"\u8BE5\u8BBE\u5907\u5DF2\u4F5C\u4E3A\u8282\u70B9 %s \u5305\u542B\u5728\u5185","The device is now being interviewed. It might take a while to show up.":"\u8BE5\u8BBE\u5907\u73B0\u5728\u6B63\u5728\u63A5\u53D7\u91C7\u8BBF\u3002","The group could not be deleted!":"\u65E0\u6CD5\u5220\u9664\u8BE5\u7EC4\uFF01","The group could not be saved!":"\u65E0\u6CD5\u4FDD\u5B58\u8BE5\u7EC4\uFF01","This is not a failed node":"\u8FD9\u4E0D\u662F\u6545\u969C\u8282\u70B9","This is not a SmartStart QR code. Use the devices tab to include this node.":"\u8FD9\u4E0D\u662F SmartStart \u4E8C\u7EF4\u7801\u3002","This is not a valid Z-Wave QR code":"\u8FD9\u4E0D\u662F\u6709\u6548\u7684 Z-Wave \u4E8C\u7EF4\u7801","This node is already on the SmartStart provisioning list":"\u6B64\u8282\u70B9\u5DF2\u5728 SmartStart \u914D\u7F6E\u5217\u8868\u4E2D","This should only be set for debugging purposes.":"\u4EC5\u5E94\u5C06\u5176\u8BBE\u7F6E\u4E3A\u8C03\u8BD5\u76EE\u7684\u3002",timeouts:"\u8D85\u65F6",Type:"\u7C7B\u578B","Undo changes":"\u53D6\u6D88\u66F4\u6539",unknown:"\u672A\u77E5",Unprovision:"\u53D6\u6D88\u9884\u914D","Unprovision node?":"\u53D6\u6D88\u914D\u7F6E\u8282\u70B9\uFF1F","Unsubscribed logs...":"\u53D6\u6D88\u8BA2\u9605\u7684\u65E5\u5FD7...","Update configuration DB":"\u66F4\u65B0\u914D\u7F6E\u6570\u636E\u5E93","Update Firmware":"\u66F4\u65B0\u56FA\u4EF6","Update for configuration DB available":"\u6709\u53EF\u7528\u7684\u914D\u7F6E\u6570\u636E\u5E93\u66F4\u65B0","Updating configuration DB - please wait...":"\u6B63\u5728\u66F4\u65B0\u914D\u7F6E\u6570\u636E\u5E93-\u8BF7\u7A0D\u5019...","Updating the configuration DB failed!":"\u66F4\u65B0\u914D\u7F6E\u6570\u636E\u5E93\u5931\u8D25\uFF01","wake up device":"\u8BF7\u9192\u8FC7\u6765\u7684\u8BBE\u5907\uFF01","WARNING: Make sure that the node is reset before attempting this.":"\u8B66\u544A\uFF1A\u5728\u5C1D\u8BD5\u6B64\u64CD\u4F5C\u4E4B\u524D\uFF0C\u8BF7\u786E\u4FDD\u8282\u70B9\u5DF2\u91CD\u7F6E\u3002","WARNING: Only do this if you no longer have physical access.":"\u8B66\u544A\uFF1A\u4EC5\u5F53\u60A8\u4E0D\u518D\u5177\u6709\u7269\u7406\u8BBF\u95EE\u6743\u9650\u65F6\u624D\u6267\u884C\u6B64\u64CD\u4F5C\u3002","When a node announces itself, it will automatically be included within 10 minutes.":"\u5F53\u4E00\u4E2A\u8282\u70B9\u5BA3\u5E03\u81EA\u5DF1\u65F6\uFF0C\u5B83\u4F1A\u5728 10 \u5206\u949F\u5185\u81EA\u52A8\u52A0\u5165\u3002","Wipes all configuration of the controller. All connected nodes will be orphaned and have to be reset and included into the new network before they can be used again.":"\u64E6\u9664\u63A7\u5236\u5668\u7684\u6240\u6709\u914D\u7F6E\u3002","Write a detailed logfile":"\u7F16\u5199\u8BE6\u7EC6\u7684\u65E5\u5FD7\u6587\u4EF6",yes:"\u662F\u7684","You can try this if the adapter does not start after updating to 2.3 or higher.":"\u5982\u679C\u66F4\u65B0\u5230 2.3 \u6216\u66F4\u9AD8\u7248\u672C\u540E\u9002\u914D\u5668\u6CA1\u6709\u542F\u52A8\uFF0C\u60A8\u53EF\u4EE5\u5C1D\u8BD5\u6B64\u64CD\u4F5C\u3002","Z-Wave Logs":"Z-Wave \u65E5\u5FD7","Z-Wave supports the following security mechanisms:":"Z-Wave supports the following security mechanisms:"}});var ove=w(Ly=>{"use strict";var Xhe=O(),eve=X();Object.defineProperty(Ly,"__esModule",{value:!0});Ly.default=void 0;var tve=eve(j()),rve=Xhe(ot()),nve=(0,rve.default)(tve.createElement("path",{d:"M19 9h-4V3H9v6H5l7 7 7-7zM5 18v2h14v-2H5z"}),"GetApp");Ly.default=nve});var Vj=J(jr());function eu(t){return(0,Vj.createStyles)(t)}function ue(){return ue=Object.assign||function(t){for(var e=1;e=0)&&(r[o]=t[o]);return r}function De(t,e){if(t==null)return{};var r=yT(t,e),n,o;if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);for(o=0;o=0)&&(!Object.prototype.propertyIsEnumerable.call(t,n)||(r[n]=t[n]))}return r}var OT=J(Ie());var Aa=["xs","sm","md","lg","xl"];function _T(t){var e=t.values,r=e===void 0?{xs:0,sm:600,md:960,lg:1280,xl:1920}:e,n=t.unit,o=n===void 0?"px":n,a=t.step,i=a===void 0?5:a,s=De(t,["values","unit","step"]);function l(y){var h=typeof r[y]=="number"?r[y]:y;return"@media (min-width:".concat(h).concat(o,")")}function u(y){var h=Aa.indexOf(y)+1,f=r[Aa[h]];if(h===Aa.length)return l("xs");var p=typeof f=="number"&&h>0?f:y;return"@media (max-width:".concat(p-i/100).concat(o,")")}function c(y,h){var f=Aa.indexOf(h);return f===Aa.length-1?l(y):"@media (min-width:".concat(typeof r[y]=="number"?r[y]:y).concat(o,") and ")+"(max-width:".concat((f!==-1&&typeof r[Aa[f+1]]=="number"?r[Aa[f+1]]:h)-i/100).concat(o,")")}function d(y){return c(y,y)}var m=!1;function g(y){return r[y]}return ue({keys:Aa,values:r,up:l,down:u,between:c,only:d,width:g},s)}function bT(t,e,r){var n;return ue({gutters:function(){var a=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return console.warn(["Material-UI: theme.mixins.gutters() is deprecated.","You can use the source of the mixin directly:",` paddingLeft: theme.spacing(2), paddingRight: theme.spacing(2), [theme.breakpoints.up('sm')]: { @@ -140,4 +140,4 @@ object-assign * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. */ -//# sourceMappingURL=chunk-5K7AELRB.js.map +//# sourceMappingURL=chunk-QC74SDCH.js.map diff --git a/admin/build/chunk-5K7AELRB.js.map b/admin/build/chunk-QC74SDCH.js.map similarity index 99% rename from admin/build/chunk-5K7AELRB.js.map rename to admin/build/chunk-QC74SDCH.js.map index a58d3754..238d090d 100644 --- a/admin/build/chunk-5K7AELRB.js.map +++ b/admin/build/chunk-QC74SDCH.js.map @@ -2,6 +2,6 @@ "version": 3, "sources": ["../../node_modules/object-assign/index.js", "../../node_modules/react/cjs/react.production.min.js", "../../node_modules/react/index.js", "../../node_modules/scheduler/cjs/scheduler.production.min.js", "../../node_modules/scheduler/index.js", "../../node_modules/react-dom/cjs/react-dom.production.min.js", "../../node_modules/react-dom/index.js", "../../node_modules/@babel/runtime/helpers/interopRequireDefault.js", "../../node_modules/@babel/runtime/helpers/typeof.js", "../../node_modules/@babel/runtime/helpers/interopRequireWildcard.js", "../../node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js", "../../node_modules/@babel/runtime/helpers/objectWithoutProperties.js", "../../node_modules/@babel/runtime/helpers/extends.js", "../../node_modules/prop-types/lib/ReactPropTypesSecret.js", "../../node_modules/prop-types/factoryWithThrowingShims.js", "../../node_modules/prop-types/index.js", "../../node_modules/clsx/dist/clsx.js", "../../node_modules/@material-ui/utils/chainPropTypes.js", "../../node_modules/@material-ui/utils/deepmerge.js", "../../node_modules/@material-ui/utils/elementAcceptingRef.js", "../../node_modules/@material-ui/utils/elementTypeAcceptingRef.js", "../../node_modules/@babel/runtime/helpers/defineProperty.js", "../../node_modules/@material-ui/utils/exactProp.js", "../../node_modules/@material-ui/utils/formatMuiErrorMessage.js", "../../node_modules/react-is/cjs/react-is.production.min.js", "../../node_modules/react-is/index.js", "../../node_modules/@material-ui/utils/getDisplayName.js", "../../node_modules/@material-ui/utils/HTMLElementType.js", "../../node_modules/@material-ui/utils/ponyfillGlobal.js", "../../node_modules/@material-ui/utils/refType.js", "../../node_modules/@material-ui/utils/index.js", "../../node_modules/@material-ui/styles/ThemeProvider/nested.js", "../../node_modules/@material-ui/styles/createGenerateClassName/createGenerateClassName.js", "../../node_modules/@material-ui/styles/createGenerateClassName/index.js", "../../node_modules/@material-ui/styles/createStyles/createStyles.js", "../../node_modules/@material-ui/styles/createStyles/index.js", "../../node_modules/@material-ui/styles/getThemeProps/getThemeProps.js", "../../node_modules/@material-ui/styles/getThemeProps/index.js", "../../node_modules/tiny-warning/dist/tiny-warning.cjs.js", "../../node_modules/is-in-browser/dist/index.js", "../../node_modules/@babel/runtime/helpers/createClass.js", "../../node_modules/@babel/runtime/helpers/setPrototypeOf.js", "../../node_modules/@babel/runtime/helpers/inheritsLoose.js", "../../node_modules/@babel/runtime/helpers/assertThisInitialized.js", "../../node_modules/jss/dist/jss.cjs.js", "../../node_modules/jss-plugin-rule-value-function/dist/jss-plugin-rule-value-function.cjs.js", "../../node_modules/jss-plugin-global/dist/jss-plugin-global.cjs.js", "../../node_modules/jss-plugin-nested/dist/jss-plugin-nested.cjs.js", "../../node_modules/hyphenate-style-name/index.cjs.js", "../../node_modules/jss-plugin-camel-case/dist/jss-plugin-camel-case.cjs.js", "../../node_modules/jss-plugin-default-unit/dist/jss-plugin-default-unit.cjs.js", "../../node_modules/@babel/runtime/helpers/arrayLikeToArray.js", "../../node_modules/@babel/runtime/helpers/arrayWithoutHoles.js", "../../node_modules/@babel/runtime/helpers/iterableToArray.js", "../../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js", "../../node_modules/@babel/runtime/helpers/nonIterableSpread.js", "../../node_modules/@babel/runtime/helpers/toConsumableArray.js", "../../node_modules/css-vendor/dist/css-vendor.cjs.js", "../../node_modules/jss-plugin-vendor-prefixer/dist/jss-plugin-vendor-prefixer.cjs.js", "../../node_modules/jss-plugin-props-sort/dist/jss-plugin-props-sort.cjs.js", "../../node_modules/@material-ui/styles/jssPreset/jssPreset.js", "../../node_modules/@material-ui/styles/jssPreset/index.js", "../../node_modules/@material-ui/styles/mergeClasses/mergeClasses.js", "../../node_modules/@material-ui/styles/mergeClasses/index.js", "../../node_modules/@material-ui/styles/makeStyles/multiKeyStore.js", "../../node_modules/@material-ui/styles/useTheme/ThemeContext.js", "../../node_modules/@material-ui/styles/useTheme/useTheme.js", "../../node_modules/@material-ui/styles/useTheme/index.js", "../../node_modules/@material-ui/styles/StylesProvider/StylesProvider.js", "../../node_modules/@material-ui/styles/StylesProvider/index.js", "../../node_modules/@material-ui/styles/makeStyles/indexCounter.js", "../../node_modules/@material-ui/styles/getStylesCreator/noopTheme.js", "../../node_modules/@material-ui/styles/getStylesCreator/getStylesCreator.js", "../../node_modules/@material-ui/styles/getStylesCreator/index.js", "../../node_modules/@material-ui/styles/makeStyles/makeStyles.js", "../../node_modules/@material-ui/styles/makeStyles/index.js", "../../node_modules/@babel/runtime/helpers/classCallCheck.js", "../../node_modules/@material-ui/styles/ServerStyleSheets/ServerStyleSheets.js", "../../node_modules/@material-ui/styles/ServerStyleSheets/index.js", "../../node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js", "../../node_modules/@material-ui/styles/styled/styled.js", "../../node_modules/@material-ui/styles/styled/index.js", "../../node_modules/@material-ui/styles/ThemeProvider/ThemeProvider.js", "../../node_modules/@material-ui/styles/ThemeProvider/index.js", "../../node_modules/@material-ui/styles/withStyles/withStyles.js", "../../node_modules/@material-ui/styles/withStyles/index.js", "../../node_modules/@material-ui/styles/withTheme/withTheme.js", "../../node_modules/@material-ui/styles/withTheme/index.js", "../../node_modules/@material-ui/styles/index.js", "../../node_modules/@material-ui/core/styles/createBreakpoints.js", "../../node_modules/@material-ui/core/styles/createMixins.js", "../../node_modules/@material-ui/core/colors/common.js", "../../node_modules/@material-ui/core/colors/grey.js", "../../node_modules/@material-ui/core/colors/indigo.js", "../../node_modules/@material-ui/core/colors/pink.js", "../../node_modules/@material-ui/core/colors/red.js", "../../node_modules/@material-ui/core/colors/orange.js", "../../node_modules/@material-ui/core/colors/blue.js", "../../node_modules/@material-ui/core/colors/green.js", "../../node_modules/@material-ui/core/styles/colorManipulator.js", "../../node_modules/@material-ui/core/styles/createPalette.js", "../../node_modules/@material-ui/core/styles/createTypography.js", "../../node_modules/@material-ui/core/styles/shadows.js", "../../node_modules/@material-ui/core/styles/shape.js", "../../node_modules/@material-ui/system/responsivePropType.js", "../../node_modules/@material-ui/system/merge.js", "../../node_modules/@material-ui/system/breakpoints.js", "../../node_modules/@material-ui/system/style.js", "../../node_modules/@material-ui/system/compose.js", "../../node_modules/@material-ui/system/borders.js", "../../node_modules/@material-ui/system/styleFunctionSx.js", "../../node_modules/@material-ui/system/display.js", "../../node_modules/@material-ui/system/flexbox.js", "../../node_modules/@material-ui/system/grid.js", "../../node_modules/@material-ui/system/palette.js", "../../node_modules/@material-ui/system/positions.js", "../../node_modules/@material-ui/system/shadows.js", "../../node_modules/@material-ui/system/sizing.js", "../../node_modules/@babel/runtime/helpers/arrayWithHoles.js", "../../node_modules/@babel/runtime/helpers/iterableToArrayLimit.js", "../../node_modules/@babel/runtime/helpers/nonIterableRest.js", "../../node_modules/@babel/runtime/helpers/slicedToArray.js", "../../node_modules/@material-ui/system/memoize.js", "../../node_modules/@material-ui/system/spacing.js", "../../node_modules/@material-ui/system/typography.js", "../../node_modules/@material-ui/system/index.js", "../../node_modules/@material-ui/core/styles/createSpacing.js", "../../node_modules/@material-ui/core/styles/transitions.js", "../../node_modules/@material-ui/core/styles/zIndex.js", "../../node_modules/@material-ui/core/styles/createTheme.js", "../../node_modules/@material-ui/core/styles/defaultTheme.js", "../../node_modules/@material-ui/core/styles/withStyles.js", "../../node_modules/@material-ui/core/utils/setRef.js", "../../node_modules/@material-ui/core/utils/useForkRef.js", "../../node_modules/@material-ui/core/utils/useEventCallback.js", "../../node_modules/@material-ui/core/utils/deprecatedPropType.js", "../../node_modules/@material-ui/core/utils/useIsFocusVisible.js", "../../node_modules/dom-helpers/cjs/hasClass.js", "../../node_modules/dom-helpers/cjs/addClass.js", "../../node_modules/dom-helpers/cjs/removeClass.js", "../../node_modules/react-transition-group/cjs/config.js", "../../node_modules/react-transition-group/cjs/utils/PropTypes.js", "../../node_modules/react-transition-group/cjs/TransitionGroupContext.js", "../../node_modules/react-transition-group/cjs/Transition.js", "../../node_modules/react-transition-group/cjs/CSSTransition.js", "../../node_modules/react-transition-group/cjs/utils/ChildMapping.js", "../../node_modules/react-transition-group/cjs/TransitionGroup.js", "../../node_modules/react-transition-group/cjs/ReplaceTransition.js", "../../node_modules/react-transition-group/cjs/SwitchTransition.js", "../../node_modules/react-transition-group/cjs/index.js", "../../node_modules/@material-ui/core/ButtonBase/Ripple.js", "../../node_modules/@material-ui/core/ButtonBase/TouchRipple.js", "../../node_modules/@material-ui/core/ButtonBase/ButtonBase.js", "../../node_modules/@material-ui/core/ButtonBase/index.js", "../../node_modules/@material-ui/core/utils/capitalize.js", "../../node_modules/@material-ui/core/Button/Button.js", "../../node_modules/@material-ui/core/Button/index.js", "../../node_modules/@material-ui/core/utils/useControlled.js", "../../node_modules/@material-ui/core/FormControl/FormControlContext.js", "../../node_modules/@material-ui/core/FormControl/useFormControl.js", "../../node_modules/@material-ui/core/IconButton/IconButton.js", "../../node_modules/@material-ui/core/IconButton/index.js", "../../node_modules/@material-ui/core/internal/SwitchBase.js", "../../node_modules/@material-ui/core/SvgIcon/SvgIcon.js", "../../node_modules/@material-ui/core/SvgIcon/index.js", "../../node_modules/@material-ui/core/utils/createSvgIcon.js", "../../node_modules/@material-ui/core/internal/svg-icons/CheckBoxOutlineBlank.js", "../../node_modules/@material-ui/core/internal/svg-icons/CheckBox.js", "../../node_modules/@material-ui/core/internal/svg-icons/IndeterminateCheckBox.js", "../../node_modules/@material-ui/core/Checkbox/Checkbox.js", "../../node_modules/@material-ui/core/Checkbox/index.js", "../../node_modules/@material-ui/core/Typography/Typography.js", "../../node_modules/@material-ui/core/Typography/index.js", "../../node_modules/@material-ui/core/InputBase/utils.js", "../../node_modules/@material-ui/core/utils/isMuiElement.js", "../../node_modules/@material-ui/core/FormControl/FormControl.js", "../../node_modules/@material-ui/core/FormControl/index.js", "../../node_modules/@material-ui/core/FormControlLabel/FormControlLabel.js", "../../node_modules/@material-ui/core/FormControlLabel/index.js", "../../node_modules/@material-ui/core/utils/requirePropFactory.js", "../../node_modules/@material-ui/core/Grid/Grid.js", "../../node_modules/@material-ui/core/Grid/index.js", "../../node_modules/@material-ui/core/FormControl/formControlState.js", "../../node_modules/@material-ui/core/utils/debounce.js", "../../node_modules/@material-ui/core/TextareaAutosize/TextareaAutosize.js", "../../node_modules/@material-ui/core/TextareaAutosize/index.js", "../../node_modules/@material-ui/core/InputBase/InputBase.js", "../../node_modules/@material-ui/core/InputBase/index.js", "../../node_modules/@material-ui/core/Input/Input.js", "../../node_modules/@material-ui/core/Input/index.js", "../../node_modules/@material-ui/core/FilledInput/FilledInput.js", "../../node_modules/@material-ui/core/FilledInput/index.js", "../../node_modules/@material-ui/core/styles/useTheme.js", "../../node_modules/@material-ui/core/OutlinedInput/NotchedOutline.js", "../../node_modules/@material-ui/core/OutlinedInput/OutlinedInput.js", "../../node_modules/@material-ui/core/OutlinedInput/index.js", "../../node_modules/@material-ui/core/FormLabel/FormLabel.js", "../../node_modules/@material-ui/core/FormLabel/index.js", "../../node_modules/@material-ui/core/InputLabel/InputLabel.js", "../../node_modules/@material-ui/core/InputLabel/index.js", "../../node_modules/@material-ui/core/FormHelperText/FormHelperText.js", "../../node_modules/@material-ui/core/FormHelperText/index.js", "../../node_modules/@material-ui/core/utils/ownerDocument.js", "../../node_modules/@material-ui/core/utils/ownerWindow.js", "../../node_modules/@material-ui/core/utils/createChainedFunction.js", "../../node_modules/@material-ui/core/Portal/Portal.js", "../../node_modules/@material-ui/core/Portal/index.js", "../../node_modules/@material-ui/core/utils/getScrollbarSize.js", "../../node_modules/@material-ui/core/Modal/ModalManager.js", "../../node_modules/@material-ui/core/Unstable_TrapFocus/Unstable_TrapFocus.js", "../../node_modules/@material-ui/core/Unstable_TrapFocus/index.js", "../../node_modules/@material-ui/core/Modal/SimpleBackdrop.js", "../../node_modules/@material-ui/core/Modal/Modal.js", "../../node_modules/@material-ui/core/Modal/index.js", "../../node_modules/@material-ui/core/transitions/utils.js", "../../node_modules/@material-ui/core/Grow/Grow.js", "../../node_modules/@material-ui/core/Grow/index.js", "../../node_modules/@material-ui/core/Paper/Paper.js", "../../node_modules/@material-ui/core/Paper/index.js", "../../node_modules/@material-ui/core/Popover/Popover.js", "../../node_modules/@material-ui/core/Popover/index.js", "../../node_modules/@material-ui/core/List/ListContext.js", "../../node_modules/@material-ui/core/List/List.js", "../../node_modules/@material-ui/core/List/index.js", "../../node_modules/@material-ui/core/MenuList/MenuList.js", "../../node_modules/@material-ui/core/MenuList/index.js", "../../node_modules/@material-ui/core/Menu/Menu.js", "../../node_modules/@material-ui/core/Select/SelectInput.js", "../../node_modules/@material-ui/core/internal/svg-icons/ArrowDropDown.js", "../../node_modules/@material-ui/core/NativeSelect/NativeSelectInput.js", "../../node_modules/@material-ui/core/NativeSelect/NativeSelect.js", "../../node_modules/@material-ui/core/Select/Select.js", "../../node_modules/@material-ui/core/Select/index.js", "../../node_modules/@material-ui/core/TextField/TextField.js", "../../node_modules/@material-ui/core/TextField/index.js", "../../node_modules/popper.js/src/utils/isBrowser.js", "../../node_modules/popper.js/src/utils/debounce.js", "../../node_modules/popper.js/src/utils/isFunction.js", "../../node_modules/popper.js/src/utils/getStyleComputedProperty.js", "../../node_modules/popper.js/src/utils/getParentNode.js", "../../node_modules/popper.js/src/utils/getScrollParent.js", "../../node_modules/popper.js/src/utils/getReferenceNode.js", "../../node_modules/popper.js/src/utils/isIE.js", "../../node_modules/popper.js/src/utils/getOffsetParent.js", "../../node_modules/popper.js/src/utils/isOffsetContainer.js", "../../node_modules/popper.js/src/utils/getRoot.js", "../../node_modules/popper.js/src/utils/findCommonOffsetParent.js", "../../node_modules/popper.js/src/utils/getScroll.js", "../../node_modules/popper.js/src/utils/includeScroll.js", "../../node_modules/popper.js/src/utils/getBordersSize.js", "../../node_modules/popper.js/src/utils/getWindowSizes.js", "../../node_modules/popper.js/src/utils/getClientRect.js", "../../node_modules/popper.js/src/utils/getBoundingClientRect.js", "../../node_modules/popper.js/src/utils/getOffsetRectRelativeToArbitraryNode.js", "../../node_modules/popper.js/src/utils/getViewportOffsetRectRelativeToArtbitraryNode.js", "../../node_modules/popper.js/src/utils/isFixed.js", "../../node_modules/popper.js/src/utils/getFixedPositionOffsetParent.js", "../../node_modules/popper.js/src/utils/getBoundaries.js", "../../node_modules/popper.js/src/utils/computeAutoPlacement.js", "../../node_modules/popper.js/src/utils/getReferenceOffsets.js", "../../node_modules/popper.js/src/utils/getOuterSizes.js", "../../node_modules/popper.js/src/utils/getOppositePlacement.js", "../../node_modules/popper.js/src/utils/getPopperOffsets.js", "../../node_modules/popper.js/src/utils/find.js", "../../node_modules/popper.js/src/utils/findIndex.js", "../../node_modules/popper.js/src/utils/runModifiers.js", "../../node_modules/popper.js/src/methods/update.js", "../../node_modules/popper.js/src/utils/isModifierEnabled.js", "../../node_modules/popper.js/src/utils/getSupportedPropertyName.js", "../../node_modules/popper.js/src/methods/destroy.js", "../../node_modules/popper.js/src/utils/getWindow.js", "../../node_modules/popper.js/src/utils/setupEventListeners.js", "../../node_modules/popper.js/src/methods/enableEventListeners.js", "../../node_modules/popper.js/src/utils/removeEventListeners.js", "../../node_modules/popper.js/src/methods/disableEventListeners.js", "../../node_modules/popper.js/src/utils/isNumeric.js", "../../node_modules/popper.js/src/utils/setStyles.js", "../../node_modules/popper.js/src/utils/setAttributes.js", "../../node_modules/popper.js/src/modifiers/applyStyle.js", "../../node_modules/popper.js/src/utils/getRoundedOffsets.js", "../../node_modules/popper.js/src/modifiers/computeStyle.js", "../../node_modules/popper.js/src/utils/isModifierRequired.js", "../../node_modules/popper.js/src/modifiers/arrow.js", "../../node_modules/popper.js/src/utils/getOppositeVariation.js", "../../node_modules/popper.js/src/methods/placements.js", "../../node_modules/popper.js/src/utils/clockwise.js", "../../node_modules/popper.js/src/modifiers/flip.js", "../../node_modules/popper.js/src/modifiers/keepTogether.js", "../../node_modules/popper.js/src/modifiers/offset.js", "../../node_modules/popper.js/src/modifiers/preventOverflow.js", "../../node_modules/popper.js/src/modifiers/shift.js", "../../node_modules/popper.js/src/modifiers/hide.js", "../../node_modules/popper.js/src/modifiers/inner.js", "../../node_modules/popper.js/src/modifiers/index.js", "../../node_modules/popper.js/src/methods/defaults.js", "../../node_modules/popper.js/src/index.js", "../../node_modules/@iobroker/adapter-react/i18n.js", "../../node_modules/alcalzone-shared/objects/index.js", "../../node_modules/@material-ui/core/Fade/Fade.js", "../../node_modules/@material-ui/core/Fade/index.js", "../../node_modules/@material-ui/core/Backdrop/Backdrop.js", "../../node_modules/@material-ui/core/Backdrop/index.js", "../../node_modules/@material-ui/core/Dialog/Dialog.js", "../../node_modules/@material-ui/core/Dialog/index.js", "../../node_modules/@material-ui/core/DialogActions/DialogActions.js", "../../node_modules/@material-ui/core/DialogActions/index.js", "../../node_modules/@material-ui/core/DialogContent/DialogContent.js", "../../node_modules/@material-ui/core/DialogContent/index.js", "../../node_modules/@material-ui/core/DialogContentText/DialogContentText.js", "../../node_modules/@material-ui/core/DialogContentText/index.js", "../../node_modules/@material-ui/core/DialogTitle/DialogTitle.js", "../../node_modules/@material-ui/core/DialogTitle/index.js", "../../node_modules/@material-ui/core/ClickAwayListener/ClickAwayListener.js", "../../node_modules/@material-ui/core/ClickAwayListener/index.js", "../../node_modules/@material-ui/core/SnackbarContent/SnackbarContent.js", "../../node_modules/@material-ui/core/SnackbarContent/index.js", "../../node_modules/@material-ui/core/Snackbar/Snackbar.js", "../../node_modules/@material-ui/core/Snackbar/index.js", "../../node_modules/@material-ui/core/utils/unsupportedProp.js", "../../node_modules/@material-ui/core/utils/unstable_useId.js", "../../node_modules/@material-ui/core/utils/index.js", "../../node_modules/@material-ui/icons/utils/createSvgIcon.js", "../../node_modules/@material-ui/icons/CheckCircle.js", "../../node_modules/@material-ui/icons/Close.js", "../../node_modules/@material-ui/icons/Error.js", "../../node_modules/@material-ui/icons/Info.js", "../../node_modules/@material-ui/icons/Warning.js", "../../node_modules/@babel/runtime/helpers/inherits.js", "../../node_modules/@babel/runtime/helpers/possibleConstructorReturn.js", "../../node_modules/@babel/runtime/helpers/getPrototypeOf.js", "../../node_modules/@material-ui/icons/Cancel.js", "../../node_modules/@material-ui/icons/Check.js", "../../node_modules/@iobroker/adapter-react/Components/Utils.js", "../../node_modules/regenerator-runtime/runtime.js", "../../node_modules/@babel/runtime/regenerator/index.js", "../../node_modules/@babel/runtime/helpers/asyncToGenerator.js", "../../node_modules/@iobroker/adapter-react/Components/copy-to-clipboard.js", "../../node_modules/react-from-dom/src/helpers.ts", "../../node_modules/react-from-dom/src/index.ts", "../../node_modules/exenv/index.js", "../../node_modules/react-inlinesvg/src/helpers.ts", "../../node_modules/react-inlinesvg/lib/types.js", "../../node_modules/react-inlinesvg/src/index.tsx", "../../node_modules/@material-ui/core/useMediaQuery/useMediaQuery.js", "../../node_modules/@material-ui/core/useMediaQuery/index.js", "../../node_modules/@material-ui/core/withWidth/withWidth.js", "../../node_modules/@material-ui/core/withWidth/index.js", "../../node_modules/@material-ui/core/CircularProgress/CircularProgress.js", "../../node_modules/@material-ui/core/CircularProgress/index.js", "../../node_modules/@material-ui/core/ListItem/ListItem.js", "../../node_modules/@material-ui/core/ListItem/index.js", "../../node_modules/@material-ui/core/MenuItem/MenuItem.js", "../../node_modules/@material-ui/core/MenuItem/index.js", "../../node_modules/@material-ui/core/Badge/Badge.js", "../../node_modules/@material-ui/core/Badge/index.js", "../../node_modules/@material-ui/core/Popper/Popper.js", "../../node_modules/@material-ui/core/Popper/index.js", "../../node_modules/@material-ui/core/Tooltip/Tooltip.js", "../../node_modules/@material-ui/core/Tooltip/index.js", "../../node_modules/@material-ui/core/ListItemIcon/ListItemIcon.js", "../../node_modules/@material-ui/core/ListItemIcon/index.js", "../../node_modules/@material-ui/core/ListItemSecondaryAction/ListItemSecondaryAction.js", "../../node_modules/@material-ui/core/ListItemSecondaryAction/index.js", "../../node_modules/@material-ui/core/ListItemText/ListItemText.js", "../../node_modules/@material-ui/core/ListItemText/index.js", "../../node_modules/@material-ui/core/Fab/Fab.js", "../../node_modules/@material-ui/core/Fab/index.js", "../../node_modules/@material-ui/core/Switch/Switch.js", "../../node_modules/@material-ui/core/Switch/index.js", "../../node_modules/@material-ui/core/Slider/ValueLabel.js", "../../node_modules/@material-ui/core/Slider/Slider.js", "../../node_modules/@material-ui/core/Slider/index.js", "../../node_modules/@material-ui/icons/Edit.js", "../../node_modules/@material-ui/icons/Delete.js", "../../node_modules/@material-ui/icons/Settings.js", "../../node_modules/@material-ui/icons/SettingsApplications.js", "../../node_modules/@material-ui/icons/Photo.js", "../../node_modules/@material-ui/icons/SupervisedUserCircle.js", "../../node_modules/@material-ui/icons/CalendarToday.js", "../../node_modules/@material-ui/icons/PersonOutlined.js", "../../node_modules/@material-ui/icons/Router.js", "../../node_modules/@material-ui/icons/Wifi.js", "../../node_modules/@material-ui/icons/Description.js", "../../node_modules/@material-ui/icons/Code.js", "../../node_modules/@material-ui/icons/ShowChart.js", "../../node_modules/@material-ui/icons/ListAlt.js", "../../node_modules/@material-ui/icons/ViewColumn.js", "../../node_modules/@material-ui/icons/Build.js", "../../node_modules/@material-ui/icons/Publish.js", "../../node_modules/@material-ui/icons/Add.js", "../../node_modules/@material-ui/icons/Refresh.js", "../../node_modules/@material-ui/icons/LooksOne.js", "../../node_modules/@material-ui/icons/RoomService.js", "../../node_modules/@iobroker/adapter-react/icons/IconExpert.js", "../../node_modules/@iobroker/adapter-react/icons/IconAdapter.js", "../../node_modules/@iobroker/adapter-react/icons/IconAlias.js", "../../node_modules/@iobroker/adapter-react/icons/IconChannel.js", "../../node_modules/@iobroker/adapter-react/icons/IconCopy.js", "../../node_modules/@iobroker/adapter-react/icons/IconDevice.js", "../../node_modules/@iobroker/adapter-react/icons/IconDocument.js", "../../node_modules/@iobroker/adapter-react/icons/IconInstance.js", "../../node_modules/@iobroker/adapter-react/icons/IconState.js", "../../node_modules/@iobroker/adapter-react/icons/IconClosed.js", "../../node_modules/@iobroker/adapter-react/icons/IconOpen.js", "../../node_modules/@iobroker/adapter-react/icons/IconClearFilter.js", "../../node_modules/@iobroker/adapter-react/Components/Icon.js", "../../node_modules/@iobroker/adapter-react/Components/TabContainer.js", "../../node_modules/@iobroker/adapter-react/Components/TabContent.js", "../../node_modules/@iobroker/adapter-react/Components/TabHeader.js", "../../node_modules/@iobroker/adapter-react/Components/ObjectBrowser.js", "../../node_modules/@iobroker/adapter-react/Dialogs/SelectID.js", "../../node_modules/alcalzone-shared/strings/index.js", "../../node_modules/@material-ui/icons/Save.js", "../../node_modules/alcalzone-shared/typeguards/index.js", "../../node_modules/react/cjs/react-jsx-runtime.production.min.js", "../../node_modules/react/jsx-runtime.js", "../../node_modules/@material-ui/icons/GetApp.js", "../../node_modules/@material-ui/core/esm/styles/createStyles.js", "../../node_modules/@babel/runtime/helpers/esm/extends.js", "../../node_modules/@material-ui/core/esm/styles/makeStyles.js", "../../node_modules/@babel/runtime/helpers/esm/defineProperty.js", "../../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js", "../../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js", "../../node_modules/@material-ui/core/esm/styles/createTheme.js", "../../node_modules/@material-ui/core/esm/styles/createBreakpoints.js", "../../node_modules/@material-ui/core/esm/styles/createMixins.js", "../../node_modules/@material-ui/core/esm/styles/createPalette.js", "../../node_modules/@material-ui/core/esm/colors/common.js", "../../node_modules/@material-ui/core/esm/colors/grey.js", "../../node_modules/@material-ui/core/esm/colors/indigo.js", "../../node_modules/@material-ui/core/esm/colors/pink.js", "../../node_modules/@material-ui/core/esm/colors/red.js", "../../node_modules/@material-ui/core/esm/colors/orange.js", "../../node_modules/@material-ui/core/esm/colors/blue.js", "../../node_modules/@material-ui/core/esm/colors/green.js", "../../node_modules/@material-ui/core/esm/styles/colorManipulator.js", "../../node_modules/@material-ui/core/esm/styles/createTypography.js", "../../node_modules/@material-ui/core/esm/styles/shadows.js", "../../node_modules/@material-ui/core/esm/styles/shape.js", "../../node_modules/@material-ui/core/esm/styles/createSpacing.js", "../../node_modules/@material-ui/core/esm/styles/transitions.js", "../../node_modules/@material-ui/core/esm/styles/zIndex.js", "../../node_modules/@material-ui/core/esm/styles/defaultTheme.js", "../../node_modules/@material-ui/core/esm/styles/styled.js", "../../node_modules/@material-ui/core/esm/styles/useTheme.js", "../../node_modules/@material-ui/core/esm/styles/withStyles.js", "../../node_modules/@material-ui/core/esm/styles/index.js", "../../node_modules/@material-ui/core/esm/AppBar/AppBar.js", "../../node_modules/@material-ui/core/esm/utils/capitalize.js", "../../node_modules/@material-ui/core/esm/Paper/Paper.js", "../../node_modules/@material-ui/core/esm/Tab/Tab.js", "../../node_modules/@material-ui/core/esm/ButtonBase/ButtonBase.js", "../../node_modules/@material-ui/core/esm/utils/useForkRef.js", "../../node_modules/@material-ui/core/esm/utils/setRef.js", "../../node_modules/@material-ui/core/esm/utils/useEventCallback.js", "../../node_modules/@material-ui/core/esm/utils/useIsFocusVisible.js", "../../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js", "../../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js", "../../node_modules/@babel/runtime/helpers/esm/iterableToArray.js", "../../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js", "../../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js", "../../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js", "../../node_modules/@material-ui/core/esm/ButtonBase/TouchRipple.js", "../../node_modules/@material-ui/core/esm/ButtonBase/Ripple.js", "../../node_modules/@material-ui/core/esm/Tabs/Tabs.js", "../../node_modules/@material-ui/core/esm/utils/debounce.js", "../../node_modules/@material-ui/core/esm/utils/ownerDocument.js", "../../node_modules/@material-ui/core/esm/utils/ownerWindow.js", "../../node_modules/@material-ui/core/esm/utils/scrollLeft.js", "../../node_modules/@material-ui/core/esm/internal/animate.js", "../../node_modules/@material-ui/core/esm/Tabs/ScrollbarSize.js", "../../node_modules/@material-ui/core/esm/Tabs/TabIndicator.js", "../../node_modules/@material-ui/core/esm/TabScrollButton/TabScrollButton.js", "../../node_modules/@material-ui/core/esm/internal/svg-icons/KeyboardArrowLeft.js", "../../node_modules/@material-ui/core/esm/utils/createSvgIcon.js", "../../node_modules/@material-ui/core/esm/SvgIcon/SvgIcon.js", "../../node_modules/@material-ui/core/esm/internal/svg-icons/KeyboardArrowRight.js", "../../node_modules/@material-ui/core/esm/colors/deepPurple.js", "../../node_modules/@material-ui/core/esm/colors/lightBlue.js", "../../node_modules/@material-ui/core/esm/colors/yellow.js", "../../node_modules/@material-ui/core/esm/colors/amber.js", "../../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js", "../../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js", "../../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js", "../../node_modules/@babel/runtime/helpers/esm/slicedToArray.js", "../../node_modules/@material-ui/core/esm/Collapse/Collapse.js", "../../node_modules/@material-ui/core/esm/transitions/utils.js", "../../node_modules/@material-ui/core/esm/Box/Box.js", "../../node_modules/@material-ui/core/esm/Typography/Typography.js", "../../node_modules/@material-ui/core/esm/Button/Button.js", "../../node_modules/@material-ui/core/esm/ButtonGroup/ButtonGroup.js", "../../node_modules/@material-ui/core/esm/Chip/Chip.js", "../../node_modules/@material-ui/core/esm/internal/svg-icons/Cancel.js", "../../node_modules/@material-ui/core/esm/CssBaseline/CssBaseline.js", "../../node_modules/@material-ui/core/esm/LinearProgress/LinearProgress.js", "../../node_modules/@material-ui/core/esm/ListSubheader/ListSubheader.js", "../../node_modules/@material-ui/core/esm/Table/Table.js", "../../node_modules/@material-ui/core/esm/Table/TableContext.js", "../../node_modules/@material-ui/core/esm/TableBody/TableBody.js", "../../node_modules/@material-ui/core/esm/Table/Tablelvl2Context.js", "../../node_modules/@material-ui/core/esm/TableCell/TableCell.js", "../../node_modules/@material-ui/core/esm/TableContainer/TableContainer.js", "../../node_modules/@material-ui/core/esm/TableHead/TableHead.js", "../../node_modules/@material-ui/core/esm/TableRow/TableRow.js", "../../node_modules/iobroker-react/src/lib/i18n.ts", "../../node_modules/iobroker-react/src/lib/app/IoBrokerApp.tsx", "../../node_modules/@iobroker/socket-client/src/DeferredPromise.ts", "../../node_modules/@iobroker/socket-client/src/tools.ts", "../../node_modules/@iobroker/socket-client/src/Connection.ts", "../../node_modules/iobroker-react/src/lib/components/Loader.tsx", "../../node_modules/iobroker-react/src/lib/components/ModalDialog.tsx", "../../node_modules/iobroker-react/src/lib/components/Notification.tsx", "../../node_modules/iobroker-react/src/lib/components/SelectIdDialog.tsx", "../../node_modules/iobroker-react/src/lib/hooks/useConnection.ts", "../../node_modules/iobroker-react/src/lib/hooks/useDialogs.ts", "../../node_modules/iobroker-react/src/lib/hooks/useExpertMode.ts", "../../node_modules/iobroker-react/src/lib/hooks/useGlobals.ts", "../../node_modules/iobroker-react/src/lib/hooks/useIoBrokerTheme.ts", "../../node_modules/iobroker-react/src/lib/hooks/useWindowEvent.ts", "../../node_modules/iobroker-react/src/lib/shared/theme.ts", "../../node_modules/iobroker-react/src/lib/app/SettingsApp.tsx", "../../node_modules/iobroker-react/src/lib/components/SaveCloseButtons.tsx", "../../node_modules/iobroker-react/src/lib/hooks/useIoBrokerObject.ts", "../../node_modules/iobroker-react/src/lib/shared/misc.ts", "../../node_modules/iobroker-react/src/lib/shared/tools.ts", "../../node_modules/iobroker-react/src/lib/hooks/useAdapter.ts", "../../node_modules/iobroker-react/src/lib/hooks/useIoBrokerState.ts", "../src/lib/useAPI.ts", "../../node_modules/uuid/dist/esm-browser/rng.js", "../../node_modules/uuid/dist/esm-browser/stringify.js", "../../node_modules/uuid/dist/esm-browser/native.js", "../../node_modules/uuid/dist/esm-browser/v4.js", "../../src/lib/shared.ts"], "sourcesContent": ["/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n", "/** @license React v17.0.2\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=require(\"object-assign\"),n=60103,p=60106;exports.Fragment=60107;exports.StrictMode=60108;exports.Profiler=60114;var q=60109,r=60110,t=60112;exports.Suspense=60113;var u=60115,v=60116;\nif(\"function\"===typeof Symbol&&Symbol.for){var w=Symbol.for;n=w(\"react.element\");p=w(\"react.portal\");exports.Fragment=w(\"react.fragment\");exports.StrictMode=w(\"react.strict_mode\");exports.Profiler=w(\"react.profiler\");q=w(\"react.provider\");r=w(\"react.context\");t=w(\"react.forward_ref\");exports.Suspense=w(\"react.suspense\");u=w(\"react.memo\");v=w(\"react.lazy\")}var x=\"function\"===typeof Symbol&&Symbol.iterator;\nfunction y(a){if(null===a||\"object\"!==typeof a)return null;a=x&&a[x]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}function z(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c=\nE};k=function(){};exports.unstable_forceFrameRate=function(a){0>a||125>>1,e=a[d];if(void 0!==e&&0I(n,c))void 0!==r&&0>I(r,n)?(a[d]=r,a[v]=c,d=v):(a[d]=n,a[m]=c,d=m);else if(void 0!==r&&0>I(r,c))a[d]=r,a[v]=c,d=v;else break a}}return b}return null}function I(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}var L=[],M=[],N=1,O=null,P=3,Q=!1,R=!1,S=!1;\nfunction T(a){for(var b=J(M);null!==b;){if(null===b.callback)K(M);else if(b.startTime<=a)K(M),b.sortIndex=b.expirationTime,H(L,b);else break;b=J(M)}}function U(a){S=!1;T(a);if(!R)if(null!==J(L))R=!0,f(V);else{var b=J(M);null!==b&&g(U,b.startTime-a)}}\nfunction V(a,b){R=!1;S&&(S=!1,h());Q=!0;var c=P;try{T(b);for(O=J(L);null!==O&&(!(O.expirationTime>b)||a&&!exports.unstable_shouldYield());){var d=O.callback;if(\"function\"===typeof d){O.callback=null;P=O.priorityLevel;var e=d(O.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?O.callback=e:O===J(L)&&K(L);T(b)}else K(L);O=J(L)}if(null!==O)var m=!0;else{var n=J(M);null!==n&&g(U,n.startTime-b);m=!1}return m}finally{O=null,P=c,Q=!1}}var W=k;exports.unstable_IdlePriority=5;\nexports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){R||Q||(R=!0,f(V))};exports.unstable_getCurrentPriorityLevel=function(){return P};exports.unstable_getFirstCallbackNode=function(){return J(L)};\nexports.unstable_next=function(a){switch(P){case 1:case 2:case 3:var b=3;break;default:b=P}var c=P;P=b;try{return a()}finally{P=c}};exports.unstable_pauseExecution=function(){};exports.unstable_requestPaint=W;exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=P;P=a;try{return b()}finally{P=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();\"object\"===typeof c&&null!==c?(c=c.delay,c=\"number\"===typeof c&&0d?(a.sortIndex=c,H(M,a),null===J(L)&&a===J(M)&&(S?h():S=!0,g(U,c-d))):(a.sortIndex=e,H(L,a),R||Q||(R=!0,f(V)));return a};\nexports.unstable_wrapCallback=function(a){var b=P;return function(){var c=P;P=b;try{return a.apply(this,arguments)}finally{P=c}}};\n", "'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n", "/** @license React v17.0.2\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),m=require(\"object-assign\"),r=require(\"scheduler\");function y(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;cb}return!1}function B(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var D={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){D[a]=new B(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];D[b]=new B(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){D[a]=new B(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){D[a]=new B(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){D[a]=new B(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){D[a]=new B(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){D[a]=new B(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){D[a]=new B(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){D[a]=new B(a,5,!1,a.toLowerCase(),null,!1,!1)});var oa=/[\\-:]([a-z])/g;function pa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(oa,\npa);D[b]=new B(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(oa,pa);D[b]=new B(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(oa,pa);D[b]=new B(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!1,!1)});\nD.xlinkHref=new B(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){D[a]=new B(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction qa(a,b,c,d){var e=D.hasOwnProperty(b)?D[b]:null;var f=null!==e?0===e.type:d?!1:!(2h||e[g]!==f[h])return\"\\n\"+e[g].replace(\" at new \",\" at \");while(1<=g&&0<=h)}break}}}finally{Oa=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Na(a):\"\"}\nfunction Qa(a){switch(a.tag){case 5:return Na(a.type);case 16:return Na(\"Lazy\");case 13:return Na(\"Suspense\");case 19:return Na(\"SuspenseList\");case 0:case 2:case 15:return a=Pa(a.type,!1),a;case 11:return a=Pa(a.type.render,!1),a;case 22:return a=Pa(a.type._render,!1),a;case 1:return a=Pa(a.type,!0),a;default:return\"\"}}\nfunction Ra(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ua:return\"Fragment\";case ta:return\"Portal\";case xa:return\"Profiler\";case wa:return\"StrictMode\";case Ba:return\"Suspense\";case Ca:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case za:return(a.displayName||\"Context\")+\".Consumer\";case ya:return(a._context.displayName||\"Context\")+\".Provider\";case Aa:var b=a.render;b=b.displayName||b.name||\"\";\nreturn a.displayName||(\"\"!==b?\"ForwardRef(\"+b+\")\":\"ForwardRef\");case Da:return Ra(a.type);case Fa:return Ra(a._render);case Ea:b=a._payload;a=a._init;try{return Ra(a(b))}catch(c){}}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"object\":case \"string\":case \"undefined\":return a;default:return\"\"}}function Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return m({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function $a(a,b){b=b.checked;null!=b&&qa(a,\"checked\",b,!1)}\nfunction ab(a,b){$a(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?bb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&bb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction cb(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction bb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}function db(a){var b=\"\";aa.Children.forEach(a,function(a){null!=a&&(b+=a)});return b}function eb(a,b){a=m({children:void 0},b);if(b=db(b.children))a.children=b;return a}\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e=c.length))throw Error(y(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:Sa(c)}}\nfunction ib(a,b){var c=Sa(b.value),d=Sa(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function jb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}var kb={html:\"http://www.w3.org/1999/xhtml\",mathml:\"http://www.w3.org/1998/Math/MathML\",svg:\"http://www.w3.org/2000/svg\"};\nfunction lb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}function mb(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?lb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar nb,ob=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(a.namespaceURI!==kb.svg||\"innerHTML\"in a)a.innerHTML=b;else{nb=nb||document.createElement(\"div\");nb.innerHTML=\"\"+b.valueOf().toString()+\"\";for(b=nb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction pb(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar qb={animationIterationCount:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,\nfloodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},rb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(qb).forEach(function(a){rb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);qb[b]=qb[a]})});function sb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||qb.hasOwnProperty(a)&&qb[a]?(\"\"+b).trim():b+\"px\"}\nfunction tb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=sb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var ub=m({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction vb(a,b){if(b){if(ub[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(y(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(y(60));if(!(\"object\"===typeof b.dangerouslySetInnerHTML&&\"__html\"in b.dangerouslySetInnerHTML))throw Error(y(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(y(62));}}\nfunction wb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(y(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;ad?0:1<c;c++)b.push(a);return b}\nfunction $c(a,b,c){a.pendingLanes|=b;var d=b-1;a.suspendedLanes&=d;a.pingedLanes&=d;a=a.eventTimes;b=31-Vc(b);a[b]=c}var Vc=Math.clz32?Math.clz32:ad,bd=Math.log,cd=Math.LN2;function ad(a){return 0===a?32:31-(bd(a)/cd|0)|0}var dd=r.unstable_UserBlockingPriority,ed=r.unstable_runWithPriority,fd=!0;function gd(a,b,c,d){Kb||Ib();var e=hd,f=Kb;Kb=!0;try{Hb(e,a,b,c,d)}finally{(Kb=f)||Mb()}}function id(a,b,c,d){ed(dd,hd.bind(null,a,b,c,d))}\nfunction hd(a,b,c,d){if(fd){var e;if((e=0===(b&4))&&0=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Ke(c)}}function Me(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Me(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Ne(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Oe(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nvar Pe=fa&&\"documentMode\"in document&&11>=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Oe(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Je(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0Af||(a.current=zf[Af],zf[Af]=null,Af--)}function I(a,b){Af++;zf[Af]=a.current;a.current=b}var Cf={},M=Bf(Cf),N=Bf(!1),Df=Cf;\nfunction Ef(a,b){var c=a.type.contextTypes;if(!c)return Cf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}function Ff(a){a=a.childContextTypes;return null!==a&&void 0!==a}function Gf(){H(N);H(M)}function Hf(a,b,c){if(M.current!==Cf)throw Error(y(168));I(M,b);I(N,c)}\nfunction If(a,b,c){var d=a.stateNode;a=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in a))throw Error(y(108,Ra(b)||\"Unknown\",e));return m({},c,d)}function Jf(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Cf;Df=M.current;I(M,a);I(N,N.current);return!0}function Kf(a,b,c){var d=a.stateNode;if(!d)throw Error(y(169));c?(a=If(a,b,Df),d.__reactInternalMemoizedMergedChildContext=a,H(N),H(M),I(M,a)):H(N);I(N,c)}\nvar Lf=null,Mf=null,Nf=r.unstable_runWithPriority,Of=r.unstable_scheduleCallback,Pf=r.unstable_cancelCallback,Qf=r.unstable_shouldYield,Rf=r.unstable_requestPaint,Sf=r.unstable_now,Tf=r.unstable_getCurrentPriorityLevel,Uf=r.unstable_ImmediatePriority,Vf=r.unstable_UserBlockingPriority,Wf=r.unstable_NormalPriority,Xf=r.unstable_LowPriority,Yf=r.unstable_IdlePriority,Zf={},$f=void 0!==Rf?Rf:function(){},ag=null,bg=null,cg=!1,dg=Sf(),O=1E4>dg?Sf:function(){return Sf()-dg};\nfunction eg(){switch(Tf()){case Uf:return 99;case Vf:return 98;case Wf:return 97;case Xf:return 96;case Yf:return 95;default:throw Error(y(332));}}function fg(a){switch(a){case 99:return Uf;case 98:return Vf;case 97:return Wf;case 96:return Xf;case 95:return Yf;default:throw Error(y(332));}}function gg(a,b){a=fg(a);return Nf(a,b)}function hg(a,b,c){a=fg(a);return Of(a,b,c)}function ig(){if(null!==bg){var a=bg;bg=null;Pf(a)}jg()}\nfunction jg(){if(!cg&&null!==ag){cg=!0;var a=0;try{var b=ag;gg(99,function(){for(;az?(q=u,u=null):q=u.sibling;var n=p(e,u,h[z],k);if(null===n){null===u&&(u=q);break}a&&u&&null===\nn.alternate&&b(e,u);g=f(n,g,z);null===t?l=n:t.sibling=n;t=n;u=q}if(z===h.length)return c(e,u),l;if(null===u){for(;zz?(q=u,u=null):q=u.sibling;var w=p(e,u,n.value,k);if(null===w){null===u&&(u=q);break}a&&u&&null===w.alternate&&b(e,u);g=f(w,g,z);null===t?l=w:t.sibling=w;t=w;u=q}if(n.done)return c(e,u),l;if(null===u){for(;!n.done;z++,n=h.next())n=A(e,n.value,k),null!==n&&(g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);return l}for(u=d(e,u);!n.done;z++,n=h.next())n=C(u,e,z,n.value,k),null!==n&&(a&&null!==n.alternate&&\nu.delete(null===n.key?z:n.key),g=f(n,g,z),null===t?l=n:t.sibling=n,t=n);a&&u.forEach(function(a){return b(e,a)});return l}return function(a,d,f,h){var k=\"object\"===typeof f&&null!==f&&f.type===ua&&null===f.key;k&&(f=f.props.children);var l=\"object\"===typeof f&&null!==f;if(l)switch(f.$$typeof){case sa:a:{l=f.key;for(k=d;null!==k;){if(k.key===l){switch(k.tag){case 7:if(f.type===ua){c(a,k.sibling);d=e(k,f.props.children);d.return=a;a=d;break a}break;default:if(k.elementType===f.type){c(a,k.sibling);\nd=e(k,f.props);d.ref=Qg(a,k,f);d.return=a;a=d;break a}}c(a,k);break}else b(a,k);k=k.sibling}f.type===ua?(d=Xg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Vg(f.type,f.key,f.props,null,a.mode,h),h.ref=Qg(a,d,f),h.return=a,a=h)}return g(a);case ta:a:{for(k=f.key;null!==d;){if(d.key===k)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=\nWg(f,a.mode,h);d.return=a;a=d}return g(a)}if(\"string\"===typeof f||\"number\"===typeof f)return f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):(c(a,d),d=Ug(f,a.mode,h),d.return=a,a=d),g(a);if(Pg(f))return x(a,d,f,h);if(La(f))return w(a,d,f,h);l&&Rg(a,f);if(\"undefined\"===typeof f&&!k)switch(a.tag){case 1:case 22:case 0:case 11:case 15:throw Error(y(152,Ra(a.type)||\"Component\"));}return c(a,d)}}var Yg=Sg(!0),Zg=Sg(!1),$g={},ah=Bf($g),bh=Bf($g),ch=Bf($g);\nfunction dh(a){if(a===$g)throw Error(y(174));return a}function eh(a,b){I(ch,b);I(bh,a);I(ah,$g);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:mb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=mb(b,a)}H(ah);I(ah,b)}function fh(){H(ah);H(bh);H(ch)}function gh(a){dh(ch.current);var b=dh(ah.current);var c=mb(b,a.type);b!==c&&(I(bh,a),I(ah,c))}function hh(a){bh.current===a&&(H(ah),H(bh))}var P=Bf(0);\nfunction ih(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&64))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var jh=null,kh=null,lh=!1;\nfunction mh(a,b){var c=nh(5,null,null,0);c.elementType=\"DELETED\";c.type=\"DELETED\";c.stateNode=b;c.return=a;c.flags=8;null!==a.lastEffect?(a.lastEffect.nextEffect=c,a.lastEffect=c):a.firstEffect=a.lastEffect=c}function oh(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,!0):!1;case 6:return b=\"\"===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,!0):!1;case 13:return!1;default:return!1}}\nfunction ph(a){if(lh){var b=kh;if(b){var c=b;if(!oh(a,b)){b=rf(c.nextSibling);if(!b||!oh(a,b)){a.flags=a.flags&-1025|2;lh=!1;jh=a;return}mh(jh,c)}jh=a;kh=rf(b.firstChild)}else a.flags=a.flags&-1025|2,lh=!1,jh=a}}function qh(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;jh=a}\nfunction rh(a){if(a!==jh)return!1;if(!lh)return qh(a),lh=!0,!1;var b=a.type;if(5!==a.tag||\"head\"!==b&&\"body\"!==b&&!nf(b,a.memoizedProps))for(b=kh;b;)mh(a,b),b=rf(b.nextSibling);qh(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(y(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if(\"/$\"===c){if(0===b){kh=rf(a.nextSibling);break a}b--}else\"$\"!==c&&\"$!\"!==c&&\"$?\"!==c||b++}a=a.nextSibling}kh=null}}else kh=jh?rf(a.stateNode.nextSibling):null;return!0}\nfunction sh(){kh=jh=null;lh=!1}var th=[];function uh(){for(var a=0;af))throw Error(y(301));f+=1;T=S=null;b.updateQueue=null;vh.current=Fh;a=c(d,e)}while(zh)}vh.current=Gh;b=null!==S&&null!==S.next;xh=0;T=S=R=null;yh=!1;if(b)throw Error(y(300));return a}function Hh(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===T?R.memoizedState=T=a:T=T.next=a;return T}\nfunction Ih(){if(null===S){var a=R.alternate;a=null!==a?a.memoizedState:null}else a=S.next;var b=null===T?R.memoizedState:T.next;if(null!==b)T=b,S=a;else{if(null===a)throw Error(y(310));S=a;a={memoizedState:S.memoizedState,baseState:S.baseState,baseQueue:S.baseQueue,queue:S.queue,next:null};null===T?R.memoizedState=T=a:T=T.next=a}return T}function Jh(a,b){return\"function\"===typeof b?b(a):b}\nfunction Kh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(311));c.lastRenderedReducer=a;var d=S,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){e=e.next;d=d.baseState;var h=g=f=null,k=e;do{var l=k.lane;if((xh&l)===l)null!==h&&(h=h.next={lane:0,action:k.action,eagerReducer:k.eagerReducer,eagerState:k.eagerState,next:null}),d=k.eagerReducer===a?k.eagerState:a(d,k.action);else{var n={lane:l,action:k.action,eagerReducer:k.eagerReducer,\neagerState:k.eagerState,next:null};null===h?(g=h=n,f=d):h=h.next=n;R.lanes|=l;Dg|=l}k=k.next}while(null!==k&&k!==e);null===h?f=d:h.next=g;He(d,b.memoizedState)||(ug=!0);b.memoizedState=d;b.baseState=f;b.baseQueue=h;c.lastRenderedState=d}return[b.memoizedState,c.dispatch]}\nfunction Lh(a){var b=Ih(),c=b.queue;if(null===c)throw Error(y(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);He(f,b.memoizedState)||(ug=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}\nfunction Mh(a,b,c){var d=b._getVersion;d=d(b._source);var e=b._workInProgressVersionPrimary;if(null!==e)a=e===d;else if(a=a.mutableReadLanes,a=(xh&a)===a)b._workInProgressVersionPrimary=d,th.push(b);if(a)return c(b._source);th.push(b);throw Error(y(350));}\nfunction Nh(a,b,c,d){var e=U;if(null===e)throw Error(y(349));var f=b._getVersion,g=f(b._source),h=vh.current,k=h.useState(function(){return Mh(e,b,c)}),l=k[1],n=k[0];k=T;var A=a.memoizedState,p=A.refs,C=p.getSnapshot,x=A.source;A=A.subscribe;var w=R;a.memoizedState={refs:p,source:b,subscribe:d};h.useEffect(function(){p.getSnapshot=c;p.setSnapshot=l;var a=f(b._source);if(!He(g,a)){a=c(b._source);He(n,a)||(l(a),a=Ig(w),e.mutableReadLanes|=a&e.pendingLanes);a=e.mutableReadLanes;e.entangledLanes|=a;for(var d=\ne.entanglements,h=a;0c?98:c,function(){a(!0)});gg(97\\x3c/script>\",a=a.removeChild(a.firstChild)):\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[wf]=b;a[xf]=d;Bi(a,b,!1,!1);b.stateNode=a;g=wb(c,d);switch(c){case \"dialog\":G(\"cancel\",a);G(\"close\",a);\ne=d;break;case \"iframe\":case \"object\":case \"embed\":G(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;eJi&&(b.flags|=64,f=!0,Fi(d,!1),b.lanes=33554432)}else{if(!f)if(a=ih(g),null!==a){if(b.flags|=64,f=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Fi(d,!0),null===d.tail&&\"hidden\"===d.tailMode&&!g.alternate&&!lh)return b=b.lastEffect=d.lastEffect,null!==b&&(b.nextEffect=null),null}else 2*O()-d.renderingStartTime>Ji&&1073741824!==c&&(b.flags|=\n64,f=!0,Fi(d,!1),b.lanes=33554432);d.isBackwards?(g.sibling=b.child,b.child=g):(c=d.last,null!==c?c.sibling=g:b.child=g,d.last=g)}return null!==d.tail?(c=d.tail,d.rendering=c,d.tail=c.sibling,d.lastEffect=b.lastEffect,d.renderingStartTime=O(),c.sibling=null,b=P.current,I(P,f?b&1|2:b&1),c):null;case 23:case 24:return Ki(),null!==a&&null!==a.memoizedState!==(null!==b.memoizedState)&&\"unstable-defer-without-hiding\"!==d.mode&&(b.flags|=4),null}throw Error(y(156,b.tag));}\nfunction Li(a){switch(a.tag){case 1:Ff(a.type)&&Gf();var b=a.flags;return b&4096?(a.flags=b&-4097|64,a):null;case 3:fh();H(N);H(M);uh();b=a.flags;if(0!==(b&64))throw Error(y(285));a.flags=b&-4097|64;return a;case 5:return hh(a),null;case 13:return H(P),b=a.flags,b&4096?(a.flags=b&-4097|64,a):null;case 19:return H(P),null;case 4:return fh(),null;case 10:return rg(a),null;case 23:case 24:return Ki(),null;default:return null}}\nfunction Mi(a,b){try{var c=\"\",d=b;do c+=Qa(d),d=d.return;while(d);var e=c}catch(f){e=\"\\nError generating stack: \"+f.message+\"\\n\"+f.stack}return{value:a,source:b,stack:e}}function Ni(a,b){try{console.error(b.value)}catch(c){setTimeout(function(){throw c;})}}var Oi=\"function\"===typeof WeakMap?WeakMap:Map;function Pi(a,b,c){c=zg(-1,c);c.tag=3;c.payload={element:null};var d=b.value;c.callback=function(){Qi||(Qi=!0,Ri=d);Ni(a,b)};return c}\nfunction Si(a,b,c){c=zg(-1,c);c.tag=3;var d=a.type.getDerivedStateFromError;if(\"function\"===typeof d){var e=b.value;c.payload=function(){Ni(a,b);return d(e)}}var f=a.stateNode;null!==f&&\"function\"===typeof f.componentDidCatch&&(c.callback=function(){\"function\"!==typeof d&&(null===Ti?Ti=new Set([this]):Ti.add(this),Ni(a,b));var c=b.stack;this.componentDidCatch(b.value,{componentStack:null!==c?c:\"\"})});return c}var Ui=\"function\"===typeof WeakSet?WeakSet:Set;\nfunction Vi(a){var b=a.ref;if(null!==b)if(\"function\"===typeof b)try{b(null)}catch(c){Wi(a,c)}else b.current=null}function Xi(a,b){switch(b.tag){case 0:case 11:case 15:case 22:return;case 1:if(b.flags&256&&null!==a){var c=a.memoizedProps,d=a.memoizedState;a=b.stateNode;b=a.getSnapshotBeforeUpdate(b.elementType===b.type?c:lg(b.type,c),d);a.__reactInternalSnapshotBeforeUpdate=b}return;case 3:b.flags&256&&qf(b.stateNode.containerInfo);return;case 5:case 6:case 4:case 17:return}throw Error(y(163));}\nfunction Yi(a,b,c){switch(c.tag){case 0:case 11:case 15:case 22:b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{if(3===(a.tag&3)){var d=a.create;a.destroy=d()}a=a.next}while(a!==b)}b=c.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){a=b=b.next;do{var e=a;d=e.next;e=e.tag;0!==(e&4)&&0!==(e&1)&&(Zi(c,a),$i(c,a));a=d}while(a!==b)}return;case 1:a=c.stateNode;c.flags&4&&(null===b?a.componentDidMount():(d=c.elementType===c.type?b.memoizedProps:lg(c.type,b.memoizedProps),a.componentDidUpdate(d,\nb.memoizedState,a.__reactInternalSnapshotBeforeUpdate)));b=c.updateQueue;null!==b&&Eg(c,b,a);return;case 3:b=c.updateQueue;if(null!==b){a=null;if(null!==c.child)switch(c.child.tag){case 5:a=c.child.stateNode;break;case 1:a=c.child.stateNode}Eg(c,b,a)}return;case 5:a=c.stateNode;null===b&&c.flags&4&&mf(c.type,c.memoizedProps)&&a.focus();return;case 6:return;case 4:return;case 12:return;case 13:null===c.memoizedState&&(c=c.alternate,null!==c&&(c=c.memoizedState,null!==c&&(c=c.dehydrated,null!==c&&Cc(c))));\nreturn;case 19:case 17:case 20:case 21:case 23:case 24:return}throw Error(y(163));}\nfunction aj(a,b){for(var c=a;;){if(5===c.tag){var d=c.stateNode;if(b)d=d.style,\"function\"===typeof d.setProperty?d.setProperty(\"display\",\"none\",\"important\"):d.display=\"none\";else{d=c.stateNode;var e=c.memoizedProps.style;e=void 0!==e&&null!==e&&e.hasOwnProperty(\"display\")?e.display:null;d.style.display=sb(\"display\",e)}}else if(6===c.tag)c.stateNode.nodeValue=b?\"\":c.memoizedProps;else if((23!==c.tag&&24!==c.tag||null===c.memoizedState||c===a)&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===\na)break;for(;null===c.sibling;){if(null===c.return||c.return===a)return;c=c.return}c.sibling.return=c.return;c=c.sibling}}\nfunction bj(a,b){if(Mf&&\"function\"===typeof Mf.onCommitFiberUnmount)try{Mf.onCommitFiberUnmount(Lf,b)}catch(f){}switch(b.tag){case 0:case 11:case 14:case 15:case 22:a=b.updateQueue;if(null!==a&&(a=a.lastEffect,null!==a)){var c=a=a.next;do{var d=c,e=d.destroy;d=d.tag;if(void 0!==e)if(0!==(d&4))Zi(b,c);else{d=b;try{e()}catch(f){Wi(d,f)}}c=c.next}while(c!==a)}break;case 1:Vi(b);a=b.stateNode;if(\"function\"===typeof a.componentWillUnmount)try{a.props=b.memoizedProps,a.state=b.memoizedState,a.componentWillUnmount()}catch(f){Wi(b,\nf)}break;case 5:Vi(b);break;case 4:cj(a,b)}}function dj(a){a.alternate=null;a.child=null;a.dependencies=null;a.firstEffect=null;a.lastEffect=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.return=null;a.updateQueue=null}function ej(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction fj(a){a:{for(var b=a.return;null!==b;){if(ej(b))break a;b=b.return}throw Error(y(160));}var c=b;b=c.stateNode;switch(c.tag){case 5:var d=!1;break;case 3:b=b.containerInfo;d=!0;break;case 4:b=b.containerInfo;d=!0;break;default:throw Error(y(161));}c.flags&16&&(pb(b,\"\"),c.flags&=-17);a:b:for(c=a;;){for(;null===c.sibling;){if(null===c.return||ej(c.return)){c=null;break a}c=c.return}c.sibling.return=c.return;for(c=c.sibling;5!==c.tag&&6!==c.tag&&18!==c.tag;){if(c.flags&2)continue b;if(null===\nc.child||4===c.tag)continue b;else c.child.return=c,c=c.child}if(!(c.flags&2)){c=c.stateNode;break a}}d?gj(a,c,b):hj(a,c,b)}\nfunction gj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=jf));else if(4!==d&&(a=a.child,null!==a))for(gj(a,b,c),a=a.sibling;null!==a;)gj(a,b,c),a=a.sibling}\nfunction hj(a,b,c){var d=a.tag,e=5===d||6===d;if(e)a=e?a.stateNode:a.stateNode.instance,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(hj(a,b,c),a=a.sibling;null!==a;)hj(a,b,c),a=a.sibling}\nfunction cj(a,b){for(var c=b,d=!1,e,f;;){if(!d){d=c.return;a:for(;;){if(null===d)throw Error(y(160));e=d.stateNode;switch(d.tag){case 5:f=!1;break a;case 3:e=e.containerInfo;f=!0;break a;case 4:e=e.containerInfo;f=!0;break a}d=d.return}d=!0}if(5===c.tag||6===c.tag){a:for(var g=a,h=c,k=h;;)if(bj(g,k),null!==k.child&&4!==k.tag)k.child.return=k,k=k.child;else{if(k===h)break a;for(;null===k.sibling;){if(null===k.return||k.return===h)break a;k=k.return}k.sibling.return=k.return;k=k.sibling}f?(g=e,h=c.stateNode,\n8===g.nodeType?g.parentNode.removeChild(h):g.removeChild(h)):e.removeChild(c.stateNode)}else if(4===c.tag){if(null!==c.child){e=c.stateNode.containerInfo;f=!0;c.child.return=c;c=c.child;continue}}else if(bj(a,c),null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return;4===c.tag&&(d=!1)}c.sibling.return=c.return;c=c.sibling}}\nfunction ij(a,b){switch(b.tag){case 0:case 11:case 14:case 15:case 22:var c=b.updateQueue;c=null!==c?c.lastEffect:null;if(null!==c){var d=c=c.next;do 3===(d.tag&3)&&(a=d.destroy,d.destroy=void 0,void 0!==a&&a()),d=d.next;while(d!==c)}return;case 1:return;case 5:c=b.stateNode;if(null!=c){d=b.memoizedProps;var e=null!==a?a.memoizedProps:d;a=b.type;var f=b.updateQueue;b.updateQueue=null;if(null!==f){c[xf]=d;\"input\"===a&&\"radio\"===d.type&&null!=d.name&&$a(c,d);wb(a,e);b=wb(a,d);for(e=0;ee&&(e=g);c&=~f}c=e;c=O()-c;c=(120>c?120:480>c?480:1080>c?1080:1920>c?1920:3E3>c?3E3:4320>\nc?4320:1960*nj(c/1960))-c;if(10 component higher in the tree to provide a loading indicator or placeholder to display.\")}5!==V&&(V=2);k=Mi(k,h);p=\ng;do{switch(p.tag){case 3:f=k;p.flags|=4096;b&=-b;p.lanes|=b;var J=Pi(p,f,b);Bg(p,J);break a;case 1:f=k;var K=p.type,Q=p.stateNode;if(0===(p.flags&64)&&(\"function\"===typeof K.getDerivedStateFromError||null!==Q&&\"function\"===typeof Q.componentDidCatch&&(null===Ti||!Ti.has(Q)))){p.flags|=4096;b&=-b;p.lanes|=b;var L=Si(p,f,b);Bg(p,L);break a}}p=p.return}while(null!==p)}Zj(c)}catch(va){b=va;Y===c&&null!==c&&(Y=c=c.return);continue}break}while(1)}\nfunction Pj(){var a=oj.current;oj.current=Gh;return null===a?Gh:a}function Tj(a,b){var c=X;X|=16;var d=Pj();U===a&&W===b||Qj(a,b);do try{ak();break}catch(e){Sj(a,e)}while(1);qg();X=c;oj.current=d;if(null!==Y)throw Error(y(261));U=null;W=0;return V}function ak(){for(;null!==Y;)bk(Y)}function Rj(){for(;null!==Y&&!Qf();)bk(Y)}function bk(a){var b=ck(a.alternate,a,qj);a.memoizedProps=a.pendingProps;null===b?Zj(a):Y=b;pj.current=null}\nfunction Zj(a){var b=a;do{var c=b.alternate;a=b.return;if(0===(b.flags&2048)){c=Gi(c,b,qj);if(null!==c){Y=c;return}c=b;if(24!==c.tag&&23!==c.tag||null===c.memoizedState||0!==(qj&1073741824)||0===(c.mode&4)){for(var d=0,e=c.child;null!==e;)d|=e.lanes|e.childLanes,e=e.sibling;c.childLanes=d}null!==a&&0===(a.flags&2048)&&(null===a.firstEffect&&(a.firstEffect=b.firstEffect),null!==b.lastEffect&&(null!==a.lastEffect&&(a.lastEffect.nextEffect=b.firstEffect),a.lastEffect=b.lastEffect),1g&&(h=g,g=J,J=h),h=Le(t,J),f=Le(t,g),h&&f&&(1!==v.rangeCount||v.anchorNode!==h.node||v.anchorOffset!==h.offset||v.focusNode!==f.node||v.focusOffset!==f.offset)&&(q=q.createRange(),q.setStart(h.node,h.offset),v.removeAllRanges(),J>g?(v.addRange(q),v.extend(f.node,f.offset)):(q.setEnd(f.node,f.offset),v.addRange(q))))));q=[];for(v=t;v=v.parentNode;)1===v.nodeType&&q.push({element:v,left:v.scrollLeft,top:v.scrollTop});\"function\"===typeof t.focus&&t.focus();for(t=\n0;tO()-jj?Qj(a,0):uj|=c);Mj(a,b)}function lj(a,b){var c=a.stateNode;null!==c&&c.delete(b);b=0;0===b&&(b=a.mode,0===(b&2)?b=1:0===(b&4)?b=99===eg()?1:2:(0===Gj&&(Gj=tj),b=Yc(62914560&~Gj),0===b&&(b=4194304)));c=Hg();a=Kj(a,b);null!==a&&($c(a,b,c),Mj(a,c))}var ck;\nck=function(a,b,c){var d=b.lanes;if(null!==a)if(a.memoizedProps!==b.pendingProps||N.current)ug=!0;else if(0!==(c&d))ug=0!==(a.flags&16384)?!0:!1;else{ug=!1;switch(b.tag){case 3:ri(b);sh();break;case 5:gh(b);break;case 1:Ff(b.type)&&Jf(b);break;case 4:eh(b,b.stateNode.containerInfo);break;case 10:d=b.memoizedProps.value;var e=b.type._context;I(mg,e._currentValue);e._currentValue=d;break;case 13:if(null!==b.memoizedState){if(0!==(c&b.child.childLanes))return ti(a,b,c);I(P,P.current&1);b=hi(a,b,c);return null!==\nb?b.sibling:null}I(P,P.current&1);break;case 19:d=0!==(c&b.childLanes);if(0!==(a.flags&64)){if(d)return Ai(a,b,c);b.flags|=64}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null,e.lastEffect=null);I(P,P.current);if(d)break;else return null;case 23:case 24:return b.lanes=0,mi(a,b,c)}return hi(a,b,c)}else ug=!1;b.lanes=0;switch(b.tag){case 2:d=b.type;null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);a=b.pendingProps;e=Ef(b,M.current);tg(b,c);e=Ch(null,b,d,a,e,c);b.flags|=1;if(\"object\"===\ntypeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof){b.tag=1;b.memoizedState=null;b.updateQueue=null;if(Ff(d)){var f=!0;Jf(b)}else f=!1;b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null;xg(b);var g=d.getDerivedStateFromProps;\"function\"===typeof g&&Gg(b,d,g,a);e.updater=Kg;b.stateNode=e;e._reactInternals=b;Og(b,d,a,c);b=qi(null,b,d,!0,f,c)}else b.tag=0,fi(null,b,e,c),b=b.child;return b;case 16:e=b.elementType;a:{null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2);\na=b.pendingProps;f=e._init;e=f(e._payload);b.type=e;f=b.tag=hk(e);a=lg(e,a);switch(f){case 0:b=li(null,b,e,a,c);break a;case 1:b=pi(null,b,e,a,c);break a;case 11:b=gi(null,b,e,a,c);break a;case 14:b=ii(null,b,e,lg(e.type,a),d,c);break a}throw Error(y(306,e,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),li(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:lg(d,e),pi(a,b,d,e,c);case 3:ri(b);d=b.updateQueue;if(null===a||null===d)throw Error(y(282));\nd=b.pendingProps;e=b.memoizedState;e=null!==e?e.element:null;yg(a,b);Cg(b,d,null,c);d=b.memoizedState.element;if(d===e)sh(),b=hi(a,b,c);else{e=b.stateNode;if(f=e.hydrate)kh=rf(b.stateNode.containerInfo.firstChild),jh=b,f=lh=!0;if(f){a=e.mutableSourceEagerHydrationData;if(null!=a)for(e=0;e= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nmodule.exports = _objectWithoutPropertiesLoose, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;", "var objectWithoutPropertiesLoose = require(\"./objectWithoutPropertiesLoose.js\");\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nmodule.exports = _objectWithoutProperties, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;", "function _extends() {\n module.exports = _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _extends.apply(this, arguments);\n}\n\nmodule.exports = _extends, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;", "/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n", "/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n", "/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n", "function e(r){var o,t,f=\"\";if(\"string\"==typeof r||\"number\"==typeof r)f+=r;else if(\"object\"==typeof r)if(Array.isArray(r))for(o=0;o 2 && arguments[2] !== undefined ? arguments[2] : {\n clone: true\n };\n var output = options.clone ? (0, _extends2.default)({}, target) : target;\n\n if (isPlainObject(target) && isPlainObject(source)) {\n Object.keys(source).forEach(function (key) {\n // Avoid prototype pollution\n if (key === '__proto__') {\n return;\n }\n\n if (isPlainObject(source[key]) && key in target) {\n output[key] = deepmerge(target[key], source[key], options);\n } else {\n output[key] = source[key];\n }\n });\n }\n\n return output;\n}", "\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _chainPropTypes = _interopRequireDefault(require(\"./chainPropTypes\"));\n\nfunction isClassComponent(elementType) {\n // elementType.prototype?.isReactComponent\n var _elementType$prototyp = elementType.prototype,\n prototype = _elementType$prototyp === void 0 ? {} : _elementType$prototyp;\n return Boolean(prototype.isReactComponent);\n}\n\nfunction acceptingRef(props, propName, componentName, location, propFullName) {\n var element = props[propName];\n var safePropName = propFullName || propName;\n\n if (element == null) {\n return null;\n }\n\n var warningHint;\n var elementType = element.type;\n /**\n * Blacklisting instead of whitelisting\n *\n * Blacklisting will miss some components, such as React.Fragment. Those will at least\n * trigger a warning in React.\n * We can't whitelist because there is no safe way to detect React.forwardRef\n * or class components. \"Safe\" means there's no public API.\n *\n */\n\n if (typeof elementType === 'function' && !isClassComponent(elementType)) {\n warningHint = 'Did you accidentally use a plain function component for an element instead?';\n }\n\n if (warningHint !== undefined) {\n return new Error(\"Invalid \".concat(location, \" `\").concat(safePropName, \"` supplied to `\").concat(componentName, \"`. \") + \"Expected an element that can hold a ref. \".concat(warningHint, \" \") + 'For more information see https://mui.com/r/caveat-with-refs-guide');\n }\n\n return null;\n}\n\nvar elementAcceptingRef = (0, _chainPropTypes.default)(_propTypes.default.element, acceptingRef);\nelementAcceptingRef.isRequired = (0, _chainPropTypes.default)(_propTypes.default.element.isRequired, acceptingRef);\nvar _default = elementAcceptingRef;\nexports.default = _default;", "\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar PropTypes = _interopRequireWildcard(require(\"prop-types\"));\n\nvar _chainPropTypes = _interopRequireDefault(require(\"./chainPropTypes\"));\n\nfunction isClassComponent(elementType) {\n // elementType.prototype?.isReactComponent\n var _elementType$prototyp = elementType.prototype,\n prototype = _elementType$prototyp === void 0 ? {} : _elementType$prototyp;\n return Boolean(prototype.isReactComponent);\n}\n\nfunction elementTypeAcceptingRef(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var safePropName = propFullName || propName;\n\n if (propValue == null) {\n return null;\n }\n\n var warningHint;\n /**\n * Blacklisting instead of whitelisting\n *\n * Blacklisting will miss some components, such as React.Fragment. Those will at least\n * trigger a warning in React.\n * We can't whitelist because there is no safe way to detect React.forwardRef\n * or class components. \"Safe\" means there's no public API.\n *\n */\n\n if (typeof propValue === 'function' && !isClassComponent(propValue)) {\n warningHint = 'Did you accidentally provide a plain function component instead?';\n }\n\n if (warningHint !== undefined) {\n return new Error(\"Invalid \".concat(location, \" `\").concat(safePropName, \"` supplied to `\").concat(componentName, \"`. \") + \"Expected an element type that can hold a ref. \".concat(warningHint, \" \") + 'For more information see https://mui.com/r/caveat-with-refs-guide');\n }\n\n return null;\n}\n\nvar _default = (0, _chainPropTypes.default)(PropTypes.elementType, elementTypeAcceptingRef);\n\nexports.default = _default;", "function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;", "\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exactProp;\nexports.specialProperty = void 0;\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _extends3 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\n// This module is based on https://github.com/airbnb/prop-types-exact repository.\n// However, in order to reduce the number of dependencies and to remove some extra safe checks\n// the module was forked.\n// Only exported for test purposes.\nvar specialProperty = \"exact-prop: \\u200B\";\nexports.specialProperty = specialProperty;\n\nfunction exactProp(propTypes) {\n if (process.env.NODE_ENV === 'production') {\n return propTypes;\n }\n\n return (0, _extends3.default)({}, propTypes, (0, _defineProperty2.default)({}, specialProperty, function (props) {\n var unsupportedProps = Object.keys(props).filter(function (prop) {\n return !propTypes.hasOwnProperty(prop);\n });\n\n if (unsupportedProps.length > 0) {\n return new Error(\"The following props are not supported: \".concat(unsupportedProps.map(function (prop) {\n return \"`\".concat(prop, \"`\");\n }).join(', '), \". Please remove them.\"));\n }\n\n return null;\n }));\n}", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = formatMuiErrorMessage;\n\n/**\n * WARNING: Don't import this directly.\n * Use `MuiError` from `@material-ui/utils/macros/MuiError.macro` instead.\n * @param {number} code\n */\nfunction formatMuiErrorMessage(code) {\n // Apply babel-plugin-transform-template-literals in loose mode\n // loose mode is safe iff we're concatenating primitives\n // see https://babeljs.io/docs/en/babel-plugin-transform-template-literals#loose\n\n /* eslint-disable prefer-template */\n var url = 'https://mui.com/production-error/?code=' + code;\n\n for (var i = 1; i < arguments.length; i += 1) {\n // rest params over-transpile for this case\n // eslint-disable-next-line prefer-rest-params\n url += '&args[]=' + encodeURIComponent(arguments[i]);\n }\n\n return 'Minified Material-UI error #' + code + '; visit ' + url + ' for the full message.';\n /* eslint-enable prefer-template */\n}", "/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n", "'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n", "\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.getFunctionName = getFunctionName;\nexports.default = getDisplayName;\n\nvar _typeof2 = _interopRequireDefault(require(\"@babel/runtime/helpers/typeof\"));\n\nvar _reactIs = require(\"react-is\");\n\n// Simplified polyfill for IE 11 support\n// https://github.com/JamesMGreene/Function.name/blob/58b314d4a983110c3682f1228f845d39ccca1817/Function.name.js#L3\nvar fnNameMatchRegex = /^\\s*function(?:\\s|\\s*\\/\\*.*\\*\\/\\s*)+([^(\\s/]*)\\s*/;\n\nfunction getFunctionName(fn) {\n var match = \"\".concat(fn).match(fnNameMatchRegex);\n var name = match && match[1];\n return name || '';\n}\n/**\n * @param {function} Component\n * @param {string} fallback\n * @returns {string | undefined}\n */\n\n\nfunction getFunctionComponentName(Component) {\n var fallback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n return Component.displayName || Component.name || getFunctionName(Component) || fallback;\n}\n\nfunction getWrappedName(outerType, innerType, wrapperName) {\n var functionName = getFunctionComponentName(innerType);\n return outerType.displayName || (functionName !== '' ? \"\".concat(wrapperName, \"(\").concat(functionName, \")\") : wrapperName);\n}\n/**\n * cherry-pick from\n * https://github.com/facebook/react/blob/769b1f270e1251d9dbdce0fcbd9e92e502d059b8/packages/shared/getComponentName.js\n * originally forked from recompose/getDisplayName with added IE 11 support\n *\n * @param {React.ReactType} Component\n * @returns {string | undefined}\n */\n\n\nfunction getDisplayName(Component) {\n if (Component == null) {\n return undefined;\n }\n\n if (typeof Component === 'string') {\n return Component;\n }\n\n if (typeof Component === 'function') {\n return getFunctionComponentName(Component, 'Component');\n }\n\n if ((0, _typeof2.default)(Component) === 'object') {\n switch (Component.$$typeof) {\n case _reactIs.ForwardRef:\n return getWrappedName(Component, Component.render, 'ForwardRef');\n\n case _reactIs.Memo:\n return getWrappedName(Component, Component.type, 'memo');\n\n default:\n return undefined;\n }\n }\n\n return undefined;\n}", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = HTMLElementType;\n\nfunction HTMLElementType(props, propName, componentName, location, propFullName) {\n if (process.env.NODE_ENV === 'production') {\n return null;\n }\n\n var propValue = props[propName];\n var safePropName = propFullName || propName;\n\n if (propValue == null) {\n return null;\n }\n\n if (propValue && propValue.nodeType !== 1) {\n return new Error(\"Invalid \".concat(location, \" `\").concat(safePropName, \"` supplied to `\").concat(componentName, \"`. \") + \"Expected an HTMLElement.\");\n }\n\n return null;\n}", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\n/* eslint-disable */\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar _default = typeof window != 'undefined' && window.Math == Math ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();\n\nexports.default = _default;", "\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar refType = _propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object]);\n\nvar _default = refType;\nexports.default = _default;", "/** @license Material-UI v4.11.3\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"chainPropTypes\", {\n enumerable: true,\n get: function get() {\n return _chainPropTypes.default;\n }\n});\nObject.defineProperty(exports, \"deepmerge\", {\n enumerable: true,\n get: function get() {\n return _deepmerge.default;\n }\n});\nObject.defineProperty(exports, \"elementAcceptingRef\", {\n enumerable: true,\n get: function get() {\n return _elementAcceptingRef.default;\n }\n});\nObject.defineProperty(exports, \"elementTypeAcceptingRef\", {\n enumerable: true,\n get: function get() {\n return _elementTypeAcceptingRef.default;\n }\n});\nObject.defineProperty(exports, \"exactProp\", {\n enumerable: true,\n get: function get() {\n return _exactProp.default;\n }\n});\nObject.defineProperty(exports, \"formatMuiErrorMessage\", {\n enumerable: true,\n get: function get() {\n return _formatMuiErrorMessage.default;\n }\n});\nObject.defineProperty(exports, \"getDisplayName\", {\n enumerable: true,\n get: function get() {\n return _getDisplayName.default;\n }\n});\nObject.defineProperty(exports, \"HTMLElementType\", {\n enumerable: true,\n get: function get() {\n return _HTMLElementType.default;\n }\n});\nObject.defineProperty(exports, \"ponyfillGlobal\", {\n enumerable: true,\n get: function get() {\n return _ponyfillGlobal.default;\n }\n});\nObject.defineProperty(exports, \"refType\", {\n enumerable: true,\n get: function get() {\n return _refType.default;\n }\n});\n\nvar _chainPropTypes = _interopRequireDefault(require(\"./chainPropTypes\"));\n\nvar _deepmerge = _interopRequireDefault(require(\"./deepmerge\"));\n\nvar _elementAcceptingRef = _interopRequireDefault(require(\"./elementAcceptingRef\"));\n\nvar _elementTypeAcceptingRef = _interopRequireDefault(require(\"./elementTypeAcceptingRef\"));\n\nvar _exactProp = _interopRequireDefault(require(\"./exactProp\"));\n\nvar _formatMuiErrorMessage = _interopRequireDefault(require(\"./formatMuiErrorMessage\"));\n\nvar _getDisplayName = _interopRequireDefault(require(\"./getDisplayName\"));\n\nvar _HTMLElementType = _interopRequireDefault(require(\"./HTMLElementType\"));\n\nvar _ponyfillGlobal = _interopRequireDefault(require(\"./ponyfillGlobal\"));\n\nvar _refType = _interopRequireDefault(require(\"./refType\"));", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\n\nvar _default = hasSymbol ? Symbol.for('mui.nested') : '__THEME_NESTED__';\n\nexports.default = _default;", "\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = createGenerateClassName;\n\nvar _nested = _interopRequireDefault(require(\"../ThemeProvider/nested\"));\n\n/**\n * This is the list of the style rule name we use as drop in replacement for the built-in\n * pseudo classes (:checked, :disabled, :focused, etc.).\n *\n * Why do they exist in the first place?\n * These classes are used at a specificity of 2.\n * It allows them to override previously definied styles as well as\n * being untouched by simple user overrides.\n */\nvar pseudoClasses = ['checked', 'disabled', 'error', 'focused', 'focusVisible', 'required', 'expanded', 'selected']; // Returns a function which generates unique class names based on counters.\n// When new generator function is created, rule counter is reset.\n// We need to reset the rule counter for SSR for each request.\n//\n// It's inspired by\n// https://github.com/cssinjs/jss/blob/4e6a05dd3f7b6572fdd3ab216861d9e446c20331/src/utils/createGenerateClassName.js\n\nfunction createGenerateClassName() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _options$disableGloba = options.disableGlobal,\n disableGlobal = _options$disableGloba === void 0 ? false : _options$disableGloba,\n _options$productionPr = options.productionPrefix,\n productionPrefix = _options$productionPr === void 0 ? 'jss' : _options$productionPr,\n _options$seed = options.seed,\n seed = _options$seed === void 0 ? '' : _options$seed;\n var seedPrefix = seed === '' ? '' : \"\".concat(seed, \"-\");\n var ruleCounter = 0;\n\n var getNextCounterId = function getNextCounterId() {\n ruleCounter += 1;\n\n if (process.env.NODE_ENV !== 'production') {\n if (ruleCounter >= 1e10) {\n console.warn(['Material-UI: You might have a memory leak.', 'The ruleCounter is not supposed to grow that much.'].join(''));\n }\n }\n\n return ruleCounter;\n };\n\n return function (rule, styleSheet) {\n var name = styleSheet.options.name; // Is a global static MUI style?\n\n if (name && name.indexOf('Mui') === 0 && !styleSheet.options.link && !disableGlobal) {\n // We can use a shorthand class name, we never use the keys to style the components.\n if (pseudoClasses.indexOf(rule.key) !== -1) {\n return \"Mui-\".concat(rule.key);\n }\n\n var prefix = \"\".concat(seedPrefix).concat(name, \"-\").concat(rule.key);\n\n if (!styleSheet.options.theme[_nested.default] || seed !== '') {\n return prefix;\n }\n\n return \"\".concat(prefix, \"-\").concat(getNextCounterId());\n }\n\n if (process.env.NODE_ENV === 'production') {\n return \"\".concat(seedPrefix).concat(productionPrefix).concat(getNextCounterId());\n }\n\n var suffix = \"\".concat(rule.key, \"-\").concat(getNextCounterId()); // Help with debuggability.\n\n if (styleSheet.options.classNamePrefix) {\n return \"\".concat(seedPrefix).concat(styleSheet.options.classNamePrefix, \"-\").concat(suffix);\n }\n\n return \"\".concat(seedPrefix).concat(suffix);\n };\n}", "\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function get() {\n return _createGenerateClassName.default;\n }\n});\n\nvar _createGenerateClassName = _interopRequireDefault(require(\"./createGenerateClassName\"));", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = createStyles;\n\nfunction createStyles(styles) {\n return styles;\n}", "\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function get() {\n return _createStyles.default;\n }\n});\n\nvar _createStyles = _interopRequireDefault(require(\"./createStyles\"));", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = getThemeProps;\n\n/* eslint-disable no-restricted-syntax */\nfunction getThemeProps(params) {\n var theme = params.theme,\n name = params.name,\n props = params.props;\n\n if (!theme || !theme.props || !theme.props[name]) {\n return props;\n } // Resolve default props, code borrow from React source.\n // https://github.com/facebook/react/blob/15a8f031838a553e41c0b66eb1bcf1da8448104d/packages/react/src/ReactElement.js#L221\n\n\n var defaultProps = theme.props[name];\n var propName;\n\n for (propName in defaultProps) {\n if (props[propName] === undefined) {\n props[propName] = defaultProps[propName];\n }\n }\n\n return props;\n}", "\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function get() {\n return _getThemeProps.default;\n }\n});\n\nvar _getThemeProps = _interopRequireDefault(require(\"./getThemeProps\"));", "'use strict';\n\nvar isProduction = process.env.NODE_ENV === 'production';\nfunction warning(condition, message) {\n if (!isProduction) {\n if (condition) {\n return;\n }\n\n var text = \"Warning: \" + message;\n\n if (typeof console !== 'undefined') {\n console.warn(text);\n }\n\n try {\n throw Error(text);\n } catch (x) {}\n }\n}\n\nmodule.exports = warning;\n", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar isBrowser = exports.isBrowser = (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) === \"object\" && (typeof document === \"undefined\" ? \"undefined\" : _typeof(document)) === 'object' && document.nodeType === 9;\n\nexports.default = isBrowser;", "function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}\n\nmodule.exports = _createClass, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;", "function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;", "var setPrototypeOf = require(\"./setPrototypeOf.js\");\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inheritsLoose, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;", "function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nmodule.exports = _assertThisInitialized, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;", "'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar _extends = require('@babel/runtime/helpers/extends');\nvar isInBrowser = require('is-in-browser');\nvar warning = require('tiny-warning');\nvar _createClass = require('@babel/runtime/helpers/createClass');\nvar _inheritsLoose = require('@babel/runtime/helpers/inheritsLoose');\nvar _assertThisInitialized = require('@babel/runtime/helpers/assertThisInitialized');\nvar _objectWithoutPropertiesLoose = require('@babel/runtime/helpers/objectWithoutPropertiesLoose');\n\nfunction _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\nvar _extends__default = /*#__PURE__*/_interopDefaultLegacy(_extends);\nvar isInBrowser__default = /*#__PURE__*/_interopDefaultLegacy(isInBrowser);\nvar warning__default = /*#__PURE__*/_interopDefaultLegacy(warning);\nvar _createClass__default = /*#__PURE__*/_interopDefaultLegacy(_createClass);\nvar _inheritsLoose__default = /*#__PURE__*/_interopDefaultLegacy(_inheritsLoose);\nvar _assertThisInitialized__default = /*#__PURE__*/_interopDefaultLegacy(_assertThisInitialized);\nvar _objectWithoutPropertiesLoose__default = /*#__PURE__*/_interopDefaultLegacy(_objectWithoutPropertiesLoose);\n\nvar plainObjectConstrurctor = {}.constructor;\nfunction cloneStyle(style) {\n if (style == null || typeof style !== 'object') return style;\n if (Array.isArray(style)) return style.map(cloneStyle);\n if (style.constructor !== plainObjectConstrurctor) return style;\n var newStyle = {};\n\n for (var name in style) {\n newStyle[name] = cloneStyle(style[name]);\n }\n\n return newStyle;\n}\n\n/**\n * Create a rule instance.\n */\n\nfunction createRule(name, decl, options) {\n if (name === void 0) {\n name = 'unnamed';\n }\n\n var jss = options.jss;\n var declCopy = cloneStyle(decl);\n var rule = jss.plugins.onCreateRule(name, declCopy, options);\n if (rule) return rule; // It is an at-rule and it has no instance.\n\n if (name[0] === '@') {\n process.env.NODE_ENV !== \"production\" ? warning__default['default'](false, \"[JSS] Unknown rule \" + name) : void 0;\n }\n\n return null;\n}\n\nvar join = function join(value, by) {\n var result = '';\n\n for (var i = 0; i < value.length; i++) {\n // Remove !important from the value, it will be readded later.\n if (value[i] === '!important') break;\n if (result) result += by;\n result += value[i];\n }\n\n return result;\n};\n/**\n * Converts JSS array value to a CSS string.\n *\n * `margin: [['5px', '10px']]` > `margin: 5px 10px;`\n * `border: ['1px', '2px']` > `border: 1px, 2px;`\n * `margin: [['5px', '10px'], '!important']` > `margin: 5px 10px !important;`\n * `color: ['red', !important]` > `color: red !important;`\n */\n\n\nvar toCssValue = function toCssValue(value, ignoreImportant) {\n if (ignoreImportant === void 0) {\n ignoreImportant = false;\n }\n\n if (!Array.isArray(value)) return value;\n var cssValue = ''; // Support space separated values via `[['5px', '10px']]`.\n\n if (Array.isArray(value[0])) {\n for (var i = 0; i < value.length; i++) {\n if (value[i] === '!important') break;\n if (cssValue) cssValue += ', ';\n cssValue += join(value[i], ' ');\n }\n } else cssValue = join(value, ', '); // Add !important, because it was ignored.\n\n\n if (!ignoreImportant && value[value.length - 1] === '!important') {\n cssValue += ' !important';\n }\n\n return cssValue;\n};\n\nfunction getWhitespaceSymbols(options) {\n if (options && options.format === false) {\n return {\n linebreak: '',\n space: ''\n };\n }\n\n return {\n linebreak: '\\n',\n space: ' '\n };\n}\n\n/**\n * Indent a string.\n * http://jsperf.com/array-join-vs-for\n */\n\nfunction indentStr(str, indent) {\n var result = '';\n\n for (var index = 0; index < indent; index++) {\n result += ' ';\n }\n\n return result + str;\n}\n/**\n * Converts a Rule to CSS string.\n */\n\n\nfunction toCss(selector, style, options) {\n if (options === void 0) {\n options = {};\n }\n\n var result = '';\n if (!style) return result;\n var _options = options,\n _options$indent = _options.indent,\n indent = _options$indent === void 0 ? 0 : _options$indent;\n var fallbacks = style.fallbacks;\n\n if (options.format === false) {\n indent = -Infinity;\n }\n\n var _getWhitespaceSymbols = getWhitespaceSymbols(options),\n linebreak = _getWhitespaceSymbols.linebreak,\n space = _getWhitespaceSymbols.space;\n\n if (selector) indent++; // Apply fallbacks first.\n\n if (fallbacks) {\n // Array syntax {fallbacks: [{prop: value}]}\n if (Array.isArray(fallbacks)) {\n for (var index = 0; index < fallbacks.length; index++) {\n var fallback = fallbacks[index];\n\n for (var prop in fallback) {\n var value = fallback[prop];\n\n if (value != null) {\n if (result) result += linebreak;\n result += indentStr(prop + \":\" + space + toCssValue(value) + \";\", indent);\n }\n }\n }\n } else {\n // Object syntax {fallbacks: {prop: value}}\n for (var _prop in fallbacks) {\n var _value = fallbacks[_prop];\n\n if (_value != null) {\n if (result) result += linebreak;\n result += indentStr(_prop + \":\" + space + toCssValue(_value) + \";\", indent);\n }\n }\n }\n }\n\n for (var _prop2 in style) {\n var _value2 = style[_prop2];\n\n if (_value2 != null && _prop2 !== 'fallbacks') {\n if (result) result += linebreak;\n result += indentStr(_prop2 + \":\" + space + toCssValue(_value2) + \";\", indent);\n }\n } // Allow empty style in this case, because properties will be added dynamically.\n\n\n if (!result && !options.allowEmpty) return result; // When rule is being stringified before selector was defined.\n\n if (!selector) return result;\n indent--;\n if (result) result = \"\" + linebreak + result + linebreak;\n return indentStr(\"\" + selector + space + \"{\" + result, indent) + indentStr('}', indent);\n}\n\nvar escapeRegex = /([[\\].#*$><+~=|^:(),\"'`\\s])/g;\nvar nativeEscape = typeof CSS !== 'undefined' && CSS.escape;\nvar escape = (function (str) {\n return nativeEscape ? nativeEscape(str) : str.replace(escapeRegex, '\\\\$1');\n});\n\nvar BaseStyleRule =\n/*#__PURE__*/\nfunction () {\n function BaseStyleRule(key, style, options) {\n this.type = 'style';\n this.isProcessed = false;\n var sheet = options.sheet,\n Renderer = options.Renderer;\n this.key = key;\n this.options = options;\n this.style = style;\n if (sheet) this.renderer = sheet.renderer;else if (Renderer) this.renderer = new Renderer();\n }\n /**\n * Get or set a style property.\n */\n\n\n var _proto = BaseStyleRule.prototype;\n\n _proto.prop = function prop(name, value, options) {\n // It's a getter.\n if (value === undefined) return this.style[name]; // Don't do anything if the value has not changed.\n\n var force = options ? options.force : false;\n if (!force && this.style[name] === value) return this;\n var newValue = value;\n\n if (!options || options.process !== false) {\n newValue = this.options.jss.plugins.onChangeValue(value, name, this);\n }\n\n var isEmpty = newValue == null || newValue === false;\n var isDefined = name in this.style; // Value is empty and wasn't defined before.\n\n if (isEmpty && !isDefined && !force) return this; // We are going to remove this value.\n\n var remove = isEmpty && isDefined;\n if (remove) delete this.style[name];else this.style[name] = newValue; // Renderable is defined if StyleSheet option `link` is true.\n\n if (this.renderable && this.renderer) {\n if (remove) this.renderer.removeProperty(this.renderable, name);else this.renderer.setProperty(this.renderable, name, newValue);\n return this;\n }\n\n var sheet = this.options.sheet;\n\n if (sheet && sheet.attached) {\n process.env.NODE_ENV !== \"production\" ? warning__default['default'](false, '[JSS] Rule is not linked. Missing sheet option \"link: true\".') : void 0;\n }\n\n return this;\n };\n\n return BaseStyleRule;\n}();\nvar StyleRule =\n/*#__PURE__*/\nfunction (_BaseStyleRule) {\n _inheritsLoose__default['default'](StyleRule, _BaseStyleRule);\n\n function StyleRule(key, style, options) {\n var _this;\n\n _this = _BaseStyleRule.call(this, key, style, options) || this;\n var selector = options.selector,\n scoped = options.scoped,\n sheet = options.sheet,\n generateId = options.generateId;\n\n if (selector) {\n _this.selectorText = selector;\n } else if (scoped !== false) {\n _this.id = generateId(_assertThisInitialized__default['default'](_assertThisInitialized__default['default'](_this)), sheet);\n _this.selectorText = \".\" + escape(_this.id);\n }\n\n return _this;\n }\n /**\n * Set selector string.\n * Attention: use this with caution. Most browsers didn't implement\n * selectorText setter, so this may result in rerendering of entire Style Sheet.\n */\n\n\n var _proto2 = StyleRule.prototype;\n\n /**\n * Apply rule to an element inline.\n */\n _proto2.applyTo = function applyTo(renderable) {\n var renderer = this.renderer;\n\n if (renderer) {\n var json = this.toJSON();\n\n for (var prop in json) {\n renderer.setProperty(renderable, prop, json[prop]);\n }\n }\n\n return this;\n }\n /**\n * Returns JSON representation of the rule.\n * Fallbacks are not supported.\n * Useful for inline styles.\n */\n ;\n\n _proto2.toJSON = function toJSON() {\n var json = {};\n\n for (var prop in this.style) {\n var value = this.style[prop];\n if (typeof value !== 'object') json[prop] = value;else if (Array.isArray(value)) json[prop] = toCssValue(value);\n }\n\n return json;\n }\n /**\n * Generates a CSS string.\n */\n ;\n\n _proto2.toString = function toString(options) {\n var sheet = this.options.sheet;\n var link = sheet ? sheet.options.link : false;\n var opts = link ? _extends__default['default']({}, options, {\n allowEmpty: true\n }) : options;\n return toCss(this.selectorText, this.style, opts);\n };\n\n _createClass__default['default'](StyleRule, [{\n key: \"selector\",\n set: function set(selector) {\n if (selector === this.selectorText) return;\n this.selectorText = selector;\n var renderer = this.renderer,\n renderable = this.renderable;\n if (!renderable || !renderer) return;\n var hasChanged = renderer.setSelector(renderable, selector); // If selector setter is not implemented, rerender the rule.\n\n if (!hasChanged) {\n renderer.replaceRule(renderable, this);\n }\n }\n /**\n * Get selector string.\n */\n ,\n get: function get() {\n return this.selectorText;\n }\n }]);\n\n return StyleRule;\n}(BaseStyleRule);\nvar pluginStyleRule = {\n onCreateRule: function onCreateRule(key, style, options) {\n if (key[0] === '@' || options.parent && options.parent.type === 'keyframes') {\n return null;\n }\n\n return new StyleRule(key, style, options);\n }\n};\n\nvar defaultToStringOptions = {\n indent: 1,\n children: true\n};\nvar atRegExp = /@([\\w-]+)/;\n/**\n * Conditional rule for @media, @supports\n */\n\nvar ConditionalRule =\n/*#__PURE__*/\nfunction () {\n function ConditionalRule(key, styles, options) {\n this.type = 'conditional';\n this.isProcessed = false;\n this.key = key;\n var atMatch = key.match(atRegExp);\n this.at = atMatch ? atMatch[1] : 'unknown'; // Key might contain a unique suffix in case the `name` passed by user was duplicate.\n\n this.query = options.name || \"@\" + this.at;\n this.options = options;\n this.rules = new RuleList(_extends__default['default']({}, options, {\n parent: this\n }));\n\n for (var name in styles) {\n this.rules.add(name, styles[name]);\n }\n\n this.rules.process();\n }\n /**\n * Get a rule.\n */\n\n\n var _proto = ConditionalRule.prototype;\n\n _proto.getRule = function getRule(name) {\n return this.rules.get(name);\n }\n /**\n * Get index of a rule.\n */\n ;\n\n _proto.indexOf = function indexOf(rule) {\n return this.rules.indexOf(rule);\n }\n /**\n * Create and register rule, run plugins.\n */\n ;\n\n _proto.addRule = function addRule(name, style, options) {\n var rule = this.rules.add(name, style, options);\n if (!rule) return null;\n this.options.jss.plugins.onProcessRule(rule);\n return rule;\n }\n /**\n * Replace rule, run plugins.\n */\n ;\n\n _proto.replaceRule = function replaceRule(name, style, options) {\n var newRule = this.rules.replace(name, style, options);\n if (newRule) this.options.jss.plugins.onProcessRule(newRule);\n return newRule;\n }\n /**\n * Generates a CSS string.\n */\n ;\n\n _proto.toString = function toString(options) {\n if (options === void 0) {\n options = defaultToStringOptions;\n }\n\n var _getWhitespaceSymbols = getWhitespaceSymbols(options),\n linebreak = _getWhitespaceSymbols.linebreak;\n\n if (options.indent == null) options.indent = defaultToStringOptions.indent;\n if (options.children == null) options.children = defaultToStringOptions.children;\n\n if (options.children === false) {\n return this.query + \" {}\";\n }\n\n var children = this.rules.toString(options);\n return children ? this.query + \" {\" + linebreak + children + linebreak + \"}\" : '';\n };\n\n return ConditionalRule;\n}();\nvar keyRegExp = /@media|@supports\\s+/;\nvar pluginConditionalRule = {\n onCreateRule: function onCreateRule(key, styles, options) {\n return keyRegExp.test(key) ? new ConditionalRule(key, styles, options) : null;\n }\n};\n\nvar defaultToStringOptions$1 = {\n indent: 1,\n children: true\n};\nvar nameRegExp = /@keyframes\\s+([\\w-]+)/;\n/**\n * Rule for @keyframes\n */\n\nvar KeyframesRule =\n/*#__PURE__*/\nfunction () {\n function KeyframesRule(key, frames, options) {\n this.type = 'keyframes';\n this.at = '@keyframes';\n this.isProcessed = false;\n var nameMatch = key.match(nameRegExp);\n\n if (nameMatch && nameMatch[1]) {\n this.name = nameMatch[1];\n } else {\n this.name = 'noname';\n process.env.NODE_ENV !== \"production\" ? warning__default['default'](false, \"[JSS] Bad keyframes name \" + key) : void 0;\n }\n\n this.key = this.type + \"-\" + this.name;\n this.options = options;\n var scoped = options.scoped,\n sheet = options.sheet,\n generateId = options.generateId;\n this.id = scoped === false ? this.name : escape(generateId(this, sheet));\n this.rules = new RuleList(_extends__default['default']({}, options, {\n parent: this\n }));\n\n for (var name in frames) {\n this.rules.add(name, frames[name], _extends__default['default']({}, options, {\n parent: this\n }));\n }\n\n this.rules.process();\n }\n /**\n * Generates a CSS string.\n */\n\n\n var _proto = KeyframesRule.prototype;\n\n _proto.toString = function toString(options) {\n if (options === void 0) {\n options = defaultToStringOptions$1;\n }\n\n var _getWhitespaceSymbols = getWhitespaceSymbols(options),\n linebreak = _getWhitespaceSymbols.linebreak;\n\n if (options.indent == null) options.indent = defaultToStringOptions$1.indent;\n if (options.children == null) options.children = defaultToStringOptions$1.children;\n\n if (options.children === false) {\n return this.at + \" \" + this.id + \" {}\";\n }\n\n var children = this.rules.toString(options);\n if (children) children = \"\" + linebreak + children + linebreak;\n return this.at + \" \" + this.id + \" {\" + children + \"}\";\n };\n\n return KeyframesRule;\n}();\nvar keyRegExp$1 = /@keyframes\\s+/;\nvar refRegExp = /\\$([\\w-]+)/g;\n\nvar findReferencedKeyframe = function findReferencedKeyframe(val, keyframes) {\n if (typeof val === 'string') {\n return val.replace(refRegExp, function (match, name) {\n if (name in keyframes) {\n return keyframes[name];\n }\n\n process.env.NODE_ENV !== \"production\" ? warning__default['default'](false, \"[JSS] Referenced keyframes rule \\\"\" + name + \"\\\" is not defined.\") : void 0;\n return match;\n });\n }\n\n return val;\n};\n/**\n * Replace the reference for a animation name.\n */\n\n\nvar replaceRef = function replaceRef(style, prop, keyframes) {\n var value = style[prop];\n var refKeyframe = findReferencedKeyframe(value, keyframes);\n\n if (refKeyframe !== value) {\n style[prop] = refKeyframe;\n }\n};\n\nvar pluginKeyframesRule = {\n onCreateRule: function onCreateRule(key, frames, options) {\n return typeof key === 'string' && keyRegExp$1.test(key) ? new KeyframesRule(key, frames, options) : null;\n },\n // Animation name ref replacer.\n onProcessStyle: function onProcessStyle(style, rule, sheet) {\n if (rule.type !== 'style' || !sheet) return style;\n if ('animation-name' in style) replaceRef(style, 'animation-name', sheet.keyframes);\n if ('animation' in style) replaceRef(style, 'animation', sheet.keyframes);\n return style;\n },\n onChangeValue: function onChangeValue(val, prop, rule) {\n var sheet = rule.options.sheet;\n\n if (!sheet) {\n return val;\n }\n\n switch (prop) {\n case 'animation':\n return findReferencedKeyframe(val, sheet.keyframes);\n\n case 'animation-name':\n return findReferencedKeyframe(val, sheet.keyframes);\n\n default:\n return val;\n }\n }\n};\n\nvar KeyframeRule =\n/*#__PURE__*/\nfunction (_BaseStyleRule) {\n _inheritsLoose__default['default'](KeyframeRule, _BaseStyleRule);\n\n function KeyframeRule() {\n return _BaseStyleRule.apply(this, arguments) || this;\n }\n\n var _proto = KeyframeRule.prototype;\n\n /**\n * Generates a CSS string.\n */\n _proto.toString = function toString(options) {\n var sheet = this.options.sheet;\n var link = sheet ? sheet.options.link : false;\n var opts = link ? _extends__default['default']({}, options, {\n allowEmpty: true\n }) : options;\n return toCss(this.key, this.style, opts);\n };\n\n return KeyframeRule;\n}(BaseStyleRule);\nvar pluginKeyframeRule = {\n onCreateRule: function onCreateRule(key, style, options) {\n if (options.parent && options.parent.type === 'keyframes') {\n return new KeyframeRule(key, style, options);\n }\n\n return null;\n }\n};\n\nvar FontFaceRule =\n/*#__PURE__*/\nfunction () {\n function FontFaceRule(key, style, options) {\n this.type = 'font-face';\n this.at = '@font-face';\n this.isProcessed = false;\n this.key = key;\n this.style = style;\n this.options = options;\n }\n /**\n * Generates a CSS string.\n */\n\n\n var _proto = FontFaceRule.prototype;\n\n _proto.toString = function toString(options) {\n var _getWhitespaceSymbols = getWhitespaceSymbols(options),\n linebreak = _getWhitespaceSymbols.linebreak;\n\n if (Array.isArray(this.style)) {\n var str = '';\n\n for (var index = 0; index < this.style.length; index++) {\n str += toCss(this.at, this.style[index]);\n if (this.style[index + 1]) str += linebreak;\n }\n\n return str;\n }\n\n return toCss(this.at, this.style, options);\n };\n\n return FontFaceRule;\n}();\nvar keyRegExp$2 = /@font-face/;\nvar pluginFontFaceRule = {\n onCreateRule: function onCreateRule(key, style, options) {\n return keyRegExp$2.test(key) ? new FontFaceRule(key, style, options) : null;\n }\n};\n\nvar ViewportRule =\n/*#__PURE__*/\nfunction () {\n function ViewportRule(key, style, options) {\n this.type = 'viewport';\n this.at = '@viewport';\n this.isProcessed = false;\n this.key = key;\n this.style = style;\n this.options = options;\n }\n /**\n * Generates a CSS string.\n */\n\n\n var _proto = ViewportRule.prototype;\n\n _proto.toString = function toString(options) {\n return toCss(this.key, this.style, options);\n };\n\n return ViewportRule;\n}();\nvar pluginViewportRule = {\n onCreateRule: function onCreateRule(key, style, options) {\n return key === '@viewport' || key === '@-ms-viewport' ? new ViewportRule(key, style, options) : null;\n }\n};\n\nvar SimpleRule =\n/*#__PURE__*/\nfunction () {\n function SimpleRule(key, value, options) {\n this.type = 'simple';\n this.isProcessed = false;\n this.key = key;\n this.value = value;\n this.options = options;\n }\n /**\n * Generates a CSS string.\n */\n // eslint-disable-next-line no-unused-vars\n\n\n var _proto = SimpleRule.prototype;\n\n _proto.toString = function toString(options) {\n if (Array.isArray(this.value)) {\n var str = '';\n\n for (var index = 0; index < this.value.length; index++) {\n str += this.key + \" \" + this.value[index] + \";\";\n if (this.value[index + 1]) str += '\\n';\n }\n\n return str;\n }\n\n return this.key + \" \" + this.value + \";\";\n };\n\n return SimpleRule;\n}();\nvar keysMap = {\n '@charset': true,\n '@import': true,\n '@namespace': true\n};\nvar pluginSimpleRule = {\n onCreateRule: function onCreateRule(key, value, options) {\n return key in keysMap ? new SimpleRule(key, value, options) : null;\n }\n};\n\nvar plugins = [pluginStyleRule, pluginConditionalRule, pluginKeyframesRule, pluginKeyframeRule, pluginFontFaceRule, pluginViewportRule, pluginSimpleRule];\n\nvar defaultUpdateOptions = {\n process: true\n};\nvar forceUpdateOptions = {\n force: true,\n process: true\n /**\n * Contains rules objects and allows adding/removing etc.\n * Is used for e.g. by `StyleSheet` or `ConditionalRule`.\n */\n\n};\n\nvar RuleList =\n/*#__PURE__*/\nfunction () {\n // Rules registry for access by .get() method.\n // It contains the same rule registered by name and by selector.\n // Original styles object.\n // Used to ensure correct rules order.\n function RuleList(options) {\n this.map = {};\n this.raw = {};\n this.index = [];\n this.counter = 0;\n this.options = options;\n this.classes = options.classes;\n this.keyframes = options.keyframes;\n }\n /**\n * Create and register rule.\n *\n * Will not render after Style Sheet was rendered the first time.\n */\n\n\n var _proto = RuleList.prototype;\n\n _proto.add = function add(name, decl, ruleOptions) {\n var _this$options = this.options,\n parent = _this$options.parent,\n sheet = _this$options.sheet,\n jss = _this$options.jss,\n Renderer = _this$options.Renderer,\n generateId = _this$options.generateId,\n scoped = _this$options.scoped;\n\n var options = _extends__default['default']({\n classes: this.classes,\n parent: parent,\n sheet: sheet,\n jss: jss,\n Renderer: Renderer,\n generateId: generateId,\n scoped: scoped,\n name: name,\n keyframes: this.keyframes,\n selector: undefined\n }, ruleOptions); // When user uses .createStyleSheet(), duplicate names are not possible, but\n // `sheet.addRule()` opens the door for any duplicate rule name. When this happens\n // we need to make the key unique within this RuleList instance scope.\n\n\n var key = name;\n\n if (name in this.raw) {\n key = name + \"-d\" + this.counter++;\n } // We need to save the original decl before creating the rule\n // because cache plugin needs to use it as a key to return a cached rule.\n\n\n this.raw[key] = decl;\n\n if (key in this.classes) {\n // E.g. rules inside of @media container\n options.selector = \".\" + escape(this.classes[key]);\n }\n\n var rule = createRule(key, decl, options);\n if (!rule) return null;\n this.register(rule);\n var index = options.index === undefined ? this.index.length : options.index;\n this.index.splice(index, 0, rule);\n return rule;\n }\n /**\n * Replace rule.\n * Create a new rule and remove old one instead of overwriting\n * because we want to invoke onCreateRule hook to make plugins work.\n */\n ;\n\n _proto.replace = function replace(name, decl, ruleOptions) {\n var oldRule = this.get(name);\n var oldIndex = this.index.indexOf(oldRule);\n\n if (oldRule) {\n this.remove(oldRule);\n }\n\n var options = ruleOptions;\n if (oldIndex !== -1) options = _extends__default['default']({}, ruleOptions, {\n index: oldIndex\n });\n return this.add(name, decl, options);\n }\n /**\n * Get a rule by name or selector.\n */\n ;\n\n _proto.get = function get(nameOrSelector) {\n return this.map[nameOrSelector];\n }\n /**\n * Delete a rule.\n */\n ;\n\n _proto.remove = function remove(rule) {\n this.unregister(rule);\n delete this.raw[rule.key];\n this.index.splice(this.index.indexOf(rule), 1);\n }\n /**\n * Get index of a rule.\n */\n ;\n\n _proto.indexOf = function indexOf(rule) {\n return this.index.indexOf(rule);\n }\n /**\n * Run `onProcessRule()` plugins on every rule.\n */\n ;\n\n _proto.process = function process() {\n var plugins = this.options.jss.plugins; // We need to clone array because if we modify the index somewhere else during a loop\n // we end up with very hard-to-track-down side effects.\n\n this.index.slice(0).forEach(plugins.onProcessRule, plugins);\n }\n /**\n * Register a rule in `.map`, `.classes` and `.keyframes` maps.\n */\n ;\n\n _proto.register = function register(rule) {\n this.map[rule.key] = rule;\n\n if (rule instanceof StyleRule) {\n this.map[rule.selector] = rule;\n if (rule.id) this.classes[rule.key] = rule.id;\n } else if (rule instanceof KeyframesRule && this.keyframes) {\n this.keyframes[rule.name] = rule.id;\n }\n }\n /**\n * Unregister a rule.\n */\n ;\n\n _proto.unregister = function unregister(rule) {\n delete this.map[rule.key];\n\n if (rule instanceof StyleRule) {\n delete this.map[rule.selector];\n delete this.classes[rule.key];\n } else if (rule instanceof KeyframesRule) {\n delete this.keyframes[rule.name];\n }\n }\n /**\n * Update the function values with a new data.\n */\n ;\n\n _proto.update = function update() {\n var name;\n var data;\n var options;\n\n if (typeof (arguments.length <= 0 ? undefined : arguments[0]) === 'string') {\n name = arguments.length <= 0 ? undefined : arguments[0];\n data = arguments.length <= 1 ? undefined : arguments[1];\n options = arguments.length <= 2 ? undefined : arguments[2];\n } else {\n data = arguments.length <= 0 ? undefined : arguments[0];\n options = arguments.length <= 1 ? undefined : arguments[1];\n name = null;\n }\n\n if (name) {\n this.updateOne(this.get(name), data, options);\n } else {\n for (var index = 0; index < this.index.length; index++) {\n this.updateOne(this.index[index], data, options);\n }\n }\n }\n /**\n * Execute plugins, update rule props.\n */\n ;\n\n _proto.updateOne = function updateOne(rule, data, options) {\n if (options === void 0) {\n options = defaultUpdateOptions;\n }\n\n var _this$options2 = this.options,\n plugins = _this$options2.jss.plugins,\n sheet = _this$options2.sheet; // It is a rules container like for e.g. ConditionalRule.\n\n if (rule.rules instanceof RuleList) {\n rule.rules.update(data, options);\n return;\n }\n\n var style = rule.style;\n plugins.onUpdate(data, rule, sheet, options); // We rely on a new `style` ref in case it was mutated during onUpdate hook.\n\n if (options.process && style && style !== rule.style) {\n // We need to run the plugins in case new `style` relies on syntax plugins.\n plugins.onProcessStyle(rule.style, rule, sheet); // Update and add props.\n\n for (var prop in rule.style) {\n var nextValue = rule.style[prop];\n var prevValue = style[prop]; // We need to use `force: true` because `rule.style` has been updated during onUpdate hook, so `rule.prop()` will not update the CSSOM rule.\n // We do this comparison to avoid unneeded `rule.prop()` calls, since we have the old `style` object here.\n\n if (nextValue !== prevValue) {\n rule.prop(prop, nextValue, forceUpdateOptions);\n }\n } // Remove props.\n\n\n for (var _prop in style) {\n var _nextValue = rule.style[_prop];\n var _prevValue = style[_prop]; // We need to use `force: true` because `rule.style` has been updated during onUpdate hook, so `rule.prop()` will not update the CSSOM rule.\n // We do this comparison to avoid unneeded `rule.prop()` calls, since we have the old `style` object here.\n\n if (_nextValue == null && _nextValue !== _prevValue) {\n rule.prop(_prop, null, forceUpdateOptions);\n }\n }\n }\n }\n /**\n * Convert rules to a CSS string.\n */\n ;\n\n _proto.toString = function toString(options) {\n var str = '';\n var sheet = this.options.sheet;\n var link = sheet ? sheet.options.link : false;\n\n var _getWhitespaceSymbols = getWhitespaceSymbols(options),\n linebreak = _getWhitespaceSymbols.linebreak;\n\n for (var index = 0; index < this.index.length; index++) {\n var rule = this.index[index];\n var css = rule.toString(options); // No need to render an empty rule.\n\n if (!css && !link) continue;\n if (str) str += linebreak;\n str += css;\n }\n\n return str;\n };\n\n return RuleList;\n}();\n\nvar StyleSheet =\n/*#__PURE__*/\nfunction () {\n function StyleSheet(styles, options) {\n this.attached = false;\n this.deployed = false;\n this.classes = {};\n this.keyframes = {};\n this.options = _extends__default['default']({}, options, {\n sheet: this,\n parent: this,\n classes: this.classes,\n keyframes: this.keyframes\n });\n\n if (options.Renderer) {\n this.renderer = new options.Renderer(this);\n }\n\n this.rules = new RuleList(this.options);\n\n for (var name in styles) {\n this.rules.add(name, styles[name]);\n }\n\n this.rules.process();\n }\n /**\n * Attach renderable to the render tree.\n */\n\n\n var _proto = StyleSheet.prototype;\n\n _proto.attach = function attach() {\n if (this.attached) return this;\n if (this.renderer) this.renderer.attach();\n this.attached = true; // Order is important, because we can't use insertRule API if style element is not attached.\n\n if (!this.deployed) this.deploy();\n return this;\n }\n /**\n * Remove renderable from render tree.\n */\n ;\n\n _proto.detach = function detach() {\n if (!this.attached) return this;\n if (this.renderer) this.renderer.detach();\n this.attached = false;\n return this;\n }\n /**\n * Add a rule to the current stylesheet.\n * Will insert a rule also after the stylesheet has been rendered first time.\n */\n ;\n\n _proto.addRule = function addRule(name, decl, options) {\n var queue = this.queue; // Plugins can create rules.\n // In order to preserve the right order, we need to queue all `.addRule` calls,\n // which happen after the first `rules.add()` call.\n\n if (this.attached && !queue) this.queue = [];\n var rule = this.rules.add(name, decl, options);\n if (!rule) return null;\n this.options.jss.plugins.onProcessRule(rule);\n\n if (this.attached) {\n if (!this.deployed) return rule; // Don't insert rule directly if there is no stringified version yet.\n // It will be inserted all together when .attach is called.\n\n if (queue) queue.push(rule);else {\n this.insertRule(rule);\n\n if (this.queue) {\n this.queue.forEach(this.insertRule, this);\n this.queue = undefined;\n }\n }\n return rule;\n } // We can't add rules to a detached style node.\n // We will redeploy the sheet once user will attach it.\n\n\n this.deployed = false;\n return rule;\n }\n /**\n * Replace a rule in the current stylesheet.\n */\n ;\n\n _proto.replaceRule = function replaceRule(nameOrSelector, decl, options) {\n var oldRule = this.rules.get(nameOrSelector);\n if (!oldRule) return this.addRule(nameOrSelector, decl, options);\n var newRule = this.rules.replace(nameOrSelector, decl, options);\n\n if (newRule) {\n this.options.jss.plugins.onProcessRule(newRule);\n }\n\n if (this.attached) {\n if (!this.deployed) return newRule; // Don't replace / delete rule directly if there is no stringified version yet.\n // It will be inserted all together when .attach is called.\n\n if (this.renderer) {\n if (!newRule) {\n this.renderer.deleteRule(oldRule);\n } else if (oldRule.renderable) {\n this.renderer.replaceRule(oldRule.renderable, newRule);\n }\n }\n\n return newRule;\n } // We can't replace rules to a detached style node.\n // We will redeploy the sheet once user will attach it.\n\n\n this.deployed = false;\n return newRule;\n }\n /**\n * Insert rule into the StyleSheet\n */\n ;\n\n _proto.insertRule = function insertRule(rule) {\n if (this.renderer) {\n this.renderer.insertRule(rule);\n }\n }\n /**\n * Create and add rules.\n * Will render also after Style Sheet was rendered the first time.\n */\n ;\n\n _proto.addRules = function addRules(styles, options) {\n var added = [];\n\n for (var name in styles) {\n var rule = this.addRule(name, styles[name], options);\n if (rule) added.push(rule);\n }\n\n return added;\n }\n /**\n * Get a rule by name or selector.\n */\n ;\n\n _proto.getRule = function getRule(nameOrSelector) {\n return this.rules.get(nameOrSelector);\n }\n /**\n * Delete a rule by name.\n * Returns `true`: if rule has been deleted from the DOM.\n */\n ;\n\n _proto.deleteRule = function deleteRule(name) {\n var rule = typeof name === 'object' ? name : this.rules.get(name);\n\n if (!rule || // Style sheet was created without link: true and attached, in this case we\n // won't be able to remove the CSS rule from the DOM.\n this.attached && !rule.renderable) {\n return false;\n }\n\n this.rules.remove(rule);\n\n if (this.attached && rule.renderable && this.renderer) {\n return this.renderer.deleteRule(rule.renderable);\n }\n\n return true;\n }\n /**\n * Get index of a rule.\n */\n ;\n\n _proto.indexOf = function indexOf(rule) {\n return this.rules.indexOf(rule);\n }\n /**\n * Deploy pure CSS string to a renderable.\n */\n ;\n\n _proto.deploy = function deploy() {\n if (this.renderer) this.renderer.deploy();\n this.deployed = true;\n return this;\n }\n /**\n * Update the function values with a new data.\n */\n ;\n\n _proto.update = function update() {\n var _this$rules;\n\n (_this$rules = this.rules).update.apply(_this$rules, arguments);\n\n return this;\n }\n /**\n * Updates a single rule.\n */\n ;\n\n _proto.updateOne = function updateOne(rule, data, options) {\n this.rules.updateOne(rule, data, options);\n return this;\n }\n /**\n * Convert rules to a CSS string.\n */\n ;\n\n _proto.toString = function toString(options) {\n return this.rules.toString(options);\n };\n\n return StyleSheet;\n}();\n\nvar PluginsRegistry =\n/*#__PURE__*/\nfunction () {\n function PluginsRegistry() {\n this.plugins = {\n internal: [],\n external: []\n };\n this.registry = {};\n }\n\n var _proto = PluginsRegistry.prototype;\n\n /**\n * Call `onCreateRule` hooks and return an object if returned by a hook.\n */\n _proto.onCreateRule = function onCreateRule(name, decl, options) {\n for (var i = 0; i < this.registry.onCreateRule.length; i++) {\n var rule = this.registry.onCreateRule[i](name, decl, options);\n if (rule) return rule;\n }\n\n return null;\n }\n /**\n * Call `onProcessRule` hooks.\n */\n ;\n\n _proto.onProcessRule = function onProcessRule(rule) {\n if (rule.isProcessed) return;\n var sheet = rule.options.sheet;\n\n for (var i = 0; i < this.registry.onProcessRule.length; i++) {\n this.registry.onProcessRule[i](rule, sheet);\n }\n\n if (rule.style) this.onProcessStyle(rule.style, rule, sheet);\n rule.isProcessed = true;\n }\n /**\n * Call `onProcessStyle` hooks.\n */\n ;\n\n _proto.onProcessStyle = function onProcessStyle(style, rule, sheet) {\n for (var i = 0; i < this.registry.onProcessStyle.length; i++) {\n rule.style = this.registry.onProcessStyle[i](rule.style, rule, sheet);\n }\n }\n /**\n * Call `onProcessSheet` hooks.\n */\n ;\n\n _proto.onProcessSheet = function onProcessSheet(sheet) {\n for (var i = 0; i < this.registry.onProcessSheet.length; i++) {\n this.registry.onProcessSheet[i](sheet);\n }\n }\n /**\n * Call `onUpdate` hooks.\n */\n ;\n\n _proto.onUpdate = function onUpdate(data, rule, sheet, options) {\n for (var i = 0; i < this.registry.onUpdate.length; i++) {\n this.registry.onUpdate[i](data, rule, sheet, options);\n }\n }\n /**\n * Call `onChangeValue` hooks.\n */\n ;\n\n _proto.onChangeValue = function onChangeValue(value, prop, rule) {\n var processedValue = value;\n\n for (var i = 0; i < this.registry.onChangeValue.length; i++) {\n processedValue = this.registry.onChangeValue[i](processedValue, prop, rule);\n }\n\n return processedValue;\n }\n /**\n * Register a plugin.\n */\n ;\n\n _proto.use = function use(newPlugin, options) {\n if (options === void 0) {\n options = {\n queue: 'external'\n };\n }\n\n var plugins = this.plugins[options.queue]; // Avoids applying same plugin twice, at least based on ref.\n\n if (plugins.indexOf(newPlugin) !== -1) {\n return;\n }\n\n plugins.push(newPlugin);\n this.registry = [].concat(this.plugins.external, this.plugins.internal).reduce(function (registry, plugin) {\n for (var name in plugin) {\n if (name in registry) {\n registry[name].push(plugin[name]);\n } else {\n process.env.NODE_ENV !== \"production\" ? warning__default['default'](false, \"[JSS] Unknown hook \\\"\" + name + \"\\\".\") : void 0;\n }\n }\n\n return registry;\n }, {\n onCreateRule: [],\n onProcessRule: [],\n onProcessStyle: [],\n onProcessSheet: [],\n onChangeValue: [],\n onUpdate: []\n });\n };\n\n return PluginsRegistry;\n}();\n\n/**\n * Sheets registry to access all instances in one place.\n */\n\nvar SheetsRegistry =\n/*#__PURE__*/\nfunction () {\n function SheetsRegistry() {\n this.registry = [];\n }\n\n var _proto = SheetsRegistry.prototype;\n\n /**\n * Register a Style Sheet.\n */\n _proto.add = function add(sheet) {\n var registry = this.registry;\n var index = sheet.options.index;\n if (registry.indexOf(sheet) !== -1) return;\n\n if (registry.length === 0 || index >= this.index) {\n registry.push(sheet);\n return;\n } // Find a position.\n\n\n for (var i = 0; i < registry.length; i++) {\n if (registry[i].options.index > index) {\n registry.splice(i, 0, sheet);\n return;\n }\n }\n }\n /**\n * Reset the registry.\n */\n ;\n\n _proto.reset = function reset() {\n this.registry = [];\n }\n /**\n * Remove a Style Sheet.\n */\n ;\n\n _proto.remove = function remove(sheet) {\n var index = this.registry.indexOf(sheet);\n this.registry.splice(index, 1);\n }\n /**\n * Convert all attached sheets to a CSS string.\n */\n ;\n\n _proto.toString = function toString(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n attached = _ref.attached,\n options = _objectWithoutPropertiesLoose__default['default'](_ref, [\"attached\"]);\n\n var _getWhitespaceSymbols = getWhitespaceSymbols(options),\n linebreak = _getWhitespaceSymbols.linebreak;\n\n var css = '';\n\n for (var i = 0; i < this.registry.length; i++) {\n var sheet = this.registry[i];\n\n if (attached != null && sheet.attached !== attached) {\n continue;\n }\n\n if (css) css += linebreak;\n css += sheet.toString(options);\n }\n\n return css;\n };\n\n _createClass__default['default'](SheetsRegistry, [{\n key: \"index\",\n\n /**\n * Current highest index number.\n */\n get: function get() {\n return this.registry.length === 0 ? 0 : this.registry[this.registry.length - 1].options.index;\n }\n }]);\n\n return SheetsRegistry;\n}();\n\n/**\n * This is a global sheets registry. Only DomRenderer will add sheets to it.\n * On the server one should use an own SheetsRegistry instance and add the\n * sheets to it, because you need to make sure to create a new registry for\n * each request in order to not leak sheets across requests.\n */\n\nvar sheets = new SheetsRegistry();\n\n/* eslint-disable */\n\n/**\n * Now that `globalThis` is available on most platforms\n * (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/globalThis#browser_compatibility)\n * we check for `globalThis` first. `globalThis` is necessary for jss\n * to run in Agoric's secure version of JavaScript (SES). Under SES,\n * `globalThis` exists, but `window`, `self`, and `Function('return\n * this')()` are all undefined for security reasons.\n *\n * https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\n */\nvar globalThis$1 = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' && window.Math === Math ? window : typeof self !== 'undefined' && self.Math === Math ? self : Function('return this')();\n\nvar ns = '2f1acc6c3a606b082e5eef5e54414ffb';\nif (globalThis$1[ns] == null) globalThis$1[ns] = 0; // Bundle may contain multiple JSS versions at the same time. In order to identify\n// the current version with just one short number and use it for classes generation\n// we use a counter. Also it is more accurate, because user can manually reevaluate\n// the module.\n\nvar moduleId = globalThis$1[ns]++;\n\nvar maxRules = 1e10;\n/**\n * Returns a function which generates unique class names based on counters.\n * When new generator function is created, rule counter is reseted.\n * We need to reset the rule counter for SSR for each request.\n */\n\nvar createGenerateId = function createGenerateId(options) {\n if (options === void 0) {\n options = {};\n }\n\n var ruleCounter = 0;\n\n var generateId = function generateId(rule, sheet) {\n ruleCounter += 1;\n\n if (ruleCounter > maxRules) {\n process.env.NODE_ENV !== \"production\" ? warning__default['default'](false, \"[JSS] You might have a memory leak. Rule counter is at \" + ruleCounter + \".\") : void 0;\n }\n\n var jssId = '';\n var prefix = '';\n\n if (sheet) {\n if (sheet.options.classNamePrefix) {\n prefix = sheet.options.classNamePrefix;\n }\n\n if (sheet.options.jss.id != null) {\n jssId = String(sheet.options.jss.id);\n }\n }\n\n if (options.minify) {\n // Using \"c\" because a number can't be the first char in a class name.\n return \"\" + (prefix || 'c') + moduleId + jssId + ruleCounter;\n }\n\n return prefix + rule.key + \"-\" + moduleId + (jssId ? \"-\" + jssId : '') + \"-\" + ruleCounter;\n };\n\n return generateId;\n};\n\n/**\n * Cache the value from the first time a function is called.\n */\n\nvar memoize = function memoize(fn) {\n var value;\n return function () {\n if (!value) value = fn();\n return value;\n };\n};\n/**\n * Get a style property value.\n */\n\n\nvar getPropertyValue = function getPropertyValue(cssRule, prop) {\n try {\n // Support CSSTOM.\n if (cssRule.attributeStyleMap) {\n return cssRule.attributeStyleMap.get(prop);\n }\n\n return cssRule.style.getPropertyValue(prop);\n } catch (err) {\n // IE may throw if property is unknown.\n return '';\n }\n};\n/**\n * Set a style property.\n */\n\n\nvar setProperty = function setProperty(cssRule, prop, value) {\n try {\n var cssValue = value;\n\n if (Array.isArray(value)) {\n cssValue = toCssValue(value, true);\n\n if (value[value.length - 1] === '!important') {\n cssRule.style.setProperty(prop, cssValue, 'important');\n return true;\n }\n } // Support CSSTOM.\n\n\n if (cssRule.attributeStyleMap) {\n cssRule.attributeStyleMap.set(prop, cssValue);\n } else {\n cssRule.style.setProperty(prop, cssValue);\n }\n } catch (err) {\n // IE may throw if property is unknown.\n return false;\n }\n\n return true;\n};\n/**\n * Remove a style property.\n */\n\n\nvar removeProperty = function removeProperty(cssRule, prop) {\n try {\n // Support CSSTOM.\n if (cssRule.attributeStyleMap) {\n cssRule.attributeStyleMap.delete(prop);\n } else {\n cssRule.style.removeProperty(prop);\n }\n } catch (err) {\n process.env.NODE_ENV !== \"production\" ? warning__default['default'](false, \"[JSS] DOMException \\\"\" + err.message + \"\\\" was thrown. Tried to remove property \\\"\" + prop + \"\\\".\") : void 0;\n }\n};\n/**\n * Set the selector.\n */\n\n\nvar setSelector = function setSelector(cssRule, selectorText) {\n cssRule.selectorText = selectorText; // Return false if setter was not successful.\n // Currently works in chrome only.\n\n return cssRule.selectorText === selectorText;\n};\n/**\n * Gets the `head` element upon the first call and caches it.\n * We assume it can't be null.\n */\n\n\nvar getHead = memoize(function () {\n return document.querySelector('head');\n});\n/**\n * Find attached sheet with an index higher than the passed one.\n */\n\nfunction findHigherSheet(registry, options) {\n for (var i = 0; i < registry.length; i++) {\n var sheet = registry[i];\n\n if (sheet.attached && sheet.options.index > options.index && sheet.options.insertionPoint === options.insertionPoint) {\n return sheet;\n }\n }\n\n return null;\n}\n/**\n * Find attached sheet with the highest index.\n */\n\n\nfunction findHighestSheet(registry, options) {\n for (var i = registry.length - 1; i >= 0; i--) {\n var sheet = registry[i];\n\n if (sheet.attached && sheet.options.insertionPoint === options.insertionPoint) {\n return sheet;\n }\n }\n\n return null;\n}\n/**\n * Find a comment with \"jss\" inside.\n */\n\n\nfunction findCommentNode(text) {\n var head = getHead();\n\n for (var i = 0; i < head.childNodes.length; i++) {\n var node = head.childNodes[i];\n\n if (node.nodeType === 8 && node.nodeValue.trim() === text) {\n return node;\n }\n }\n\n return null;\n}\n/**\n * Find a node before which we can insert the sheet.\n */\n\n\nfunction findPrevNode(options) {\n var registry = sheets.registry;\n\n if (registry.length > 0) {\n // Try to insert before the next higher sheet.\n var sheet = findHigherSheet(registry, options);\n\n if (sheet && sheet.renderer) {\n return {\n parent: sheet.renderer.element.parentNode,\n node: sheet.renderer.element\n };\n } // Otherwise insert after the last attached.\n\n\n sheet = findHighestSheet(registry, options);\n\n if (sheet && sheet.renderer) {\n return {\n parent: sheet.renderer.element.parentNode,\n node: sheet.renderer.element.nextSibling\n };\n }\n } // Try to find a comment placeholder if registry is empty.\n\n\n var insertionPoint = options.insertionPoint;\n\n if (insertionPoint && typeof insertionPoint === 'string') {\n var comment = findCommentNode(insertionPoint);\n\n if (comment) {\n return {\n parent: comment.parentNode,\n node: comment.nextSibling\n };\n } // If user specifies an insertion point and it can't be found in the document -\n // bad specificity issues may appear.\n\n\n process.env.NODE_ENV !== \"production\" ? warning__default['default'](false, \"[JSS] Insertion point \\\"\" + insertionPoint + \"\\\" not found.\") : void 0;\n }\n\n return false;\n}\n/**\n * Insert style element into the DOM.\n */\n\n\nfunction insertStyle(style, options) {\n var insertionPoint = options.insertionPoint;\n var nextNode = findPrevNode(options);\n\n if (nextNode !== false && nextNode.parent) {\n nextNode.parent.insertBefore(style, nextNode.node);\n return;\n } // Works with iframes and any node types.\n\n\n if (insertionPoint && typeof insertionPoint.nodeType === 'number') {\n var insertionPointElement = insertionPoint;\n var parentNode = insertionPointElement.parentNode;\n if (parentNode) parentNode.insertBefore(style, insertionPointElement.nextSibling);else process.env.NODE_ENV !== \"production\" ? warning__default['default'](false, '[JSS] Insertion point is not in the DOM.') : void 0;\n return;\n }\n\n getHead().appendChild(style);\n}\n/**\n * Read jss nonce setting from the page if the user has set it.\n */\n\n\nvar getNonce = memoize(function () {\n var node = document.querySelector('meta[property=\"csp-nonce\"]');\n return node ? node.getAttribute('content') : null;\n});\n\nvar _insertRule = function insertRule(container, rule, index) {\n try {\n if ('insertRule' in container) {\n container.insertRule(rule, index);\n } // Keyframes rule.\n else if ('appendRule' in container) {\n container.appendRule(rule);\n }\n } catch (err) {\n process.env.NODE_ENV !== \"production\" ? warning__default['default'](false, \"[JSS] \" + err.message) : void 0;\n return false;\n }\n\n return container.cssRules[index];\n};\n\nvar getValidRuleInsertionIndex = function getValidRuleInsertionIndex(container, index) {\n var maxIndex = container.cssRules.length; // In case previous insertion fails, passed index might be wrong\n\n if (index === undefined || index > maxIndex) {\n // eslint-disable-next-line no-param-reassign\n return maxIndex;\n }\n\n return index;\n};\n\nvar createStyle = function createStyle() {\n var el = document.createElement('style'); // Without it, IE will have a broken source order specificity if we\n // insert rules after we insert the style tag.\n // It seems to kick-off the source order specificity algorithm.\n\n el.textContent = '\\n';\n return el;\n};\n\nvar DomRenderer =\n/*#__PURE__*/\nfunction () {\n // Will be empty if link: true option is not set, because\n // it is only for use together with insertRule API.\n function DomRenderer(sheet) {\n this.getPropertyValue = getPropertyValue;\n this.setProperty = setProperty;\n this.removeProperty = removeProperty;\n this.setSelector = setSelector;\n this.hasInsertedRules = false;\n this.cssRules = [];\n // There is no sheet when the renderer is used from a standalone StyleRule.\n if (sheet) sheets.add(sheet);\n this.sheet = sheet;\n\n var _ref = this.sheet ? this.sheet.options : {},\n media = _ref.media,\n meta = _ref.meta,\n element = _ref.element;\n\n this.element = element || createStyle();\n this.element.setAttribute('data-jss', '');\n if (media) this.element.setAttribute('media', media);\n if (meta) this.element.setAttribute('data-meta', meta);\n var nonce = getNonce();\n if (nonce) this.element.setAttribute('nonce', nonce);\n }\n /**\n * Insert style element into render tree.\n */\n\n\n var _proto = DomRenderer.prototype;\n\n _proto.attach = function attach() {\n // In the case the element node is external and it is already in the DOM.\n if (this.element.parentNode || !this.sheet) return;\n insertStyle(this.element, this.sheet.options); // When rules are inserted using `insertRule` API, after `sheet.detach().attach()`\n // most browsers create a new CSSStyleSheet, except of all IEs.\n\n var deployed = Boolean(this.sheet && this.sheet.deployed);\n\n if (this.hasInsertedRules && deployed) {\n this.hasInsertedRules = false;\n this.deploy();\n }\n }\n /**\n * Remove style element from render tree.\n */\n ;\n\n _proto.detach = function detach() {\n if (!this.sheet) return;\n var parentNode = this.element.parentNode;\n if (parentNode) parentNode.removeChild(this.element); // In the most browsers, rules inserted using insertRule() API will be lost when style element is removed.\n // Though IE will keep them and we need a consistent behavior.\n\n if (this.sheet.options.link) {\n this.cssRules = [];\n this.element.textContent = '\\n';\n }\n }\n /**\n * Inject CSS string into element.\n */\n ;\n\n _proto.deploy = function deploy() {\n var sheet = this.sheet;\n if (!sheet) return;\n\n if (sheet.options.link) {\n this.insertRules(sheet.rules);\n return;\n }\n\n this.element.textContent = \"\\n\" + sheet.toString() + \"\\n\";\n }\n /**\n * Insert RuleList into an element.\n */\n ;\n\n _proto.insertRules = function insertRules(rules, nativeParent) {\n for (var i = 0; i < rules.index.length; i++) {\n this.insertRule(rules.index[i], i, nativeParent);\n }\n }\n /**\n * Insert a rule into element.\n */\n ;\n\n _proto.insertRule = function insertRule(rule, index, nativeParent) {\n if (nativeParent === void 0) {\n nativeParent = this.element.sheet;\n }\n\n if (rule.rules) {\n var parent = rule;\n var latestNativeParent = nativeParent;\n\n if (rule.type === 'conditional' || rule.type === 'keyframes') {\n var _insertionIndex = getValidRuleInsertionIndex(nativeParent, index); // We need to render the container without children first.\n\n\n latestNativeParent = _insertRule(nativeParent, parent.toString({\n children: false\n }), _insertionIndex);\n\n if (latestNativeParent === false) {\n return false;\n }\n\n this.refCssRule(rule, _insertionIndex, latestNativeParent);\n }\n\n this.insertRules(parent.rules, latestNativeParent);\n return latestNativeParent;\n }\n\n var ruleStr = rule.toString();\n if (!ruleStr) return false;\n var insertionIndex = getValidRuleInsertionIndex(nativeParent, index);\n\n var nativeRule = _insertRule(nativeParent, ruleStr, insertionIndex);\n\n if (nativeRule === false) {\n return false;\n }\n\n this.hasInsertedRules = true;\n this.refCssRule(rule, insertionIndex, nativeRule);\n return nativeRule;\n };\n\n _proto.refCssRule = function refCssRule(rule, index, cssRule) {\n rule.renderable = cssRule; // We only want to reference the top level rules, deleteRule API doesn't support removing nested rules\n // like rules inside media queries or keyframes\n\n if (rule.options.parent instanceof StyleSheet) {\n this.cssRules.splice(index, 0, cssRule);\n }\n }\n /**\n * Delete a rule.\n */\n ;\n\n _proto.deleteRule = function deleteRule(cssRule) {\n var sheet = this.element.sheet;\n var index = this.indexOf(cssRule);\n if (index === -1) return false;\n sheet.deleteRule(index);\n this.cssRules.splice(index, 1);\n return true;\n }\n /**\n * Get index of a CSS Rule.\n */\n ;\n\n _proto.indexOf = function indexOf(cssRule) {\n return this.cssRules.indexOf(cssRule);\n }\n /**\n * Generate a new CSS rule and replace the existing one.\n */\n ;\n\n _proto.replaceRule = function replaceRule(cssRule, rule) {\n var index = this.indexOf(cssRule);\n if (index === -1) return false;\n this.element.sheet.deleteRule(index);\n this.cssRules.splice(index, 1);\n return this.insertRule(rule, index);\n }\n /**\n * Get all rules elements.\n */\n ;\n\n _proto.getRules = function getRules() {\n return this.element.sheet.cssRules;\n };\n\n return DomRenderer;\n}();\n\nvar instanceCounter = 0;\n\nvar Jss =\n/*#__PURE__*/\nfunction () {\n function Jss(options) {\n this.id = instanceCounter++;\n this.version = \"10.9.0\";\n this.plugins = new PluginsRegistry();\n this.options = {\n id: {\n minify: false\n },\n createGenerateId: createGenerateId,\n Renderer: isInBrowser__default['default'] ? DomRenderer : null,\n plugins: []\n };\n this.generateId = createGenerateId({\n minify: false\n });\n\n for (var i = 0; i < plugins.length; i++) {\n this.plugins.use(plugins[i], {\n queue: 'internal'\n });\n }\n\n this.setup(options);\n }\n /**\n * Prepares various options, applies plugins.\n * Should not be used twice on the same instance, because there is no plugins\n * deduplication logic.\n */\n\n\n var _proto = Jss.prototype;\n\n _proto.setup = function setup(options) {\n if (options === void 0) {\n options = {};\n }\n\n if (options.createGenerateId) {\n this.options.createGenerateId = options.createGenerateId;\n }\n\n if (options.id) {\n this.options.id = _extends__default['default']({}, this.options.id, options.id);\n }\n\n if (options.createGenerateId || options.id) {\n this.generateId = this.options.createGenerateId(this.options.id);\n }\n\n if (options.insertionPoint != null) this.options.insertionPoint = options.insertionPoint;\n\n if ('Renderer' in options) {\n this.options.Renderer = options.Renderer;\n } // eslint-disable-next-line prefer-spread\n\n\n if (options.plugins) this.use.apply(this, options.plugins);\n return this;\n }\n /**\n * Create a Style Sheet.\n */\n ;\n\n _proto.createStyleSheet = function createStyleSheet(styles, options) {\n if (options === void 0) {\n options = {};\n }\n\n var _options = options,\n index = _options.index;\n\n if (typeof index !== 'number') {\n index = sheets.index === 0 ? 0 : sheets.index + 1;\n }\n\n var sheet = new StyleSheet(styles, _extends__default['default']({}, options, {\n jss: this,\n generateId: options.generateId || this.generateId,\n insertionPoint: this.options.insertionPoint,\n Renderer: this.options.Renderer,\n index: index\n }));\n this.plugins.onProcessSheet(sheet);\n return sheet;\n }\n /**\n * Detach the Style Sheet and remove it from the registry.\n */\n ;\n\n _proto.removeStyleSheet = function removeStyleSheet(sheet) {\n sheet.detach();\n sheets.remove(sheet);\n return this;\n }\n /**\n * Create a rule without a Style Sheet.\n * [Deprecated] will be removed in the next major version.\n */\n ;\n\n _proto.createRule = function createRule$1(name, style, options) {\n if (style === void 0) {\n style = {};\n }\n\n if (options === void 0) {\n options = {};\n }\n\n // Enable rule without name for inline styles.\n if (typeof name === 'object') {\n return this.createRule(undefined, name, style);\n }\n\n var ruleOptions = _extends__default['default']({}, options, {\n name: name,\n jss: this,\n Renderer: this.options.Renderer\n });\n\n if (!ruleOptions.generateId) ruleOptions.generateId = this.generateId;\n if (!ruleOptions.classes) ruleOptions.classes = {};\n if (!ruleOptions.keyframes) ruleOptions.keyframes = {};\n\n var rule = createRule(name, style, ruleOptions);\n\n if (rule) this.plugins.onProcessRule(rule);\n return rule;\n }\n /**\n * Register plugin. Passed function will be invoked with a rule instance.\n */\n ;\n\n _proto.use = function use() {\n var _this = this;\n\n for (var _len = arguments.length, plugins = new Array(_len), _key = 0; _key < _len; _key++) {\n plugins[_key] = arguments[_key];\n }\n\n plugins.forEach(function (plugin) {\n _this.plugins.use(plugin);\n });\n return this;\n };\n\n return Jss;\n}();\n\nvar createJss = function createJss(options) {\n return new Jss(options);\n};\n\n/**\n * SheetsManager is like a WeakMap which is designed to count StyleSheet\n * instances and attach/detach automatically.\n * Used in react-jss.\n */\n\nvar SheetsManager =\n/*#__PURE__*/\nfunction () {\n function SheetsManager() {\n this.length = 0;\n this.sheets = new WeakMap();\n }\n\n var _proto = SheetsManager.prototype;\n\n _proto.get = function get(key) {\n var entry = this.sheets.get(key);\n return entry && entry.sheet;\n };\n\n _proto.add = function add(key, sheet) {\n if (this.sheets.has(key)) return;\n this.length++;\n this.sheets.set(key, {\n sheet: sheet,\n refs: 0\n });\n };\n\n _proto.manage = function manage(key) {\n var entry = this.sheets.get(key);\n\n if (entry) {\n if (entry.refs === 0) {\n entry.sheet.attach();\n }\n\n entry.refs++;\n return entry.sheet;\n }\n\n warning__default['default'](false, \"[JSS] SheetsManager: can't find sheet to manage\");\n return undefined;\n };\n\n _proto.unmanage = function unmanage(key) {\n var entry = this.sheets.get(key);\n\n if (entry) {\n if (entry.refs > 0) {\n entry.refs--;\n if (entry.refs === 0) entry.sheet.detach();\n }\n } else {\n warning__default['default'](false, \"SheetsManager: can't find sheet to unmanage\");\n }\n };\n\n _createClass__default['default'](SheetsManager, [{\n key: \"size\",\n get: function get() {\n return this.length;\n }\n }]);\n\n return SheetsManager;\n}();\n\n/**\n* Export a constant indicating if this browser has CSSTOM support.\n* https://developers.google.com/web/updates/2018/03/cssom\n*/\nvar hasCSSTOMSupport = typeof CSS === 'object' && CSS != null && 'number' in CSS;\n\n/**\n * Extracts a styles object with only props that contain function values.\n */\nfunction getDynamicStyles(styles) {\n var to = null;\n\n for (var key in styles) {\n var value = styles[key];\n var type = typeof value;\n\n if (type === 'function') {\n if (!to) to = {};\n to[key] = value;\n } else if (type === 'object' && value !== null && !Array.isArray(value)) {\n var extracted = getDynamicStyles(value);\n\n if (extracted) {\n if (!to) to = {};\n to[key] = extracted;\n }\n }\n }\n\n return to;\n}\n\n/**\n * A better abstraction over CSS.\n *\n * @copyright Oleg Isonen (Slobodskoi) / Isonen 2014-present\n * @website https://github.com/cssinjs/jss\n * @license MIT\n */\nvar index = createJss();\n\nexports.RuleList = RuleList;\nexports.SheetsManager = SheetsManager;\nexports.SheetsRegistry = SheetsRegistry;\nexports.create = createJss;\nexports.createGenerateId = createGenerateId;\nexports.createRule = createRule;\nexports.default = index;\nexports.getDynamicStyles = getDynamicStyles;\nexports.hasCSSTOMSupport = hasCSSTOMSupport;\nexports.sheets = sheets;\nexports.toCssValue = toCssValue;\n", "'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar warning = require('tiny-warning');\nvar jss = require('jss');\n\nfunction _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\nvar warning__default = /*#__PURE__*/_interopDefaultLegacy(warning);\n\nvar now = Date.now();\nvar fnValuesNs = \"fnValues\" + now;\nvar fnRuleNs = \"fnStyle\" + ++now;\n\nvar functionPlugin = function functionPlugin() {\n return {\n onCreateRule: function onCreateRule(name, decl, options) {\n if (typeof decl !== 'function') return null;\n var rule = jss.createRule(name, {}, options);\n rule[fnRuleNs] = decl;\n return rule;\n },\n onProcessStyle: function onProcessStyle(style, rule) {\n // We need to extract function values from the declaration, so that we can keep core unaware of them.\n // We need to do that only once.\n // We don't need to extract functions on each style update, since this can happen only once.\n // We don't support function values inside of function rules.\n if (fnValuesNs in rule || fnRuleNs in rule) return style;\n var fnValues = {};\n\n for (var prop in style) {\n var value = style[prop];\n if (typeof value !== 'function') continue;\n delete style[prop];\n fnValues[prop] = value;\n }\n\n rule[fnValuesNs] = fnValues;\n return style;\n },\n onUpdate: function onUpdate(data, rule, sheet, options) {\n var styleRule = rule;\n var fnRule = styleRule[fnRuleNs]; // If we have a style function, the entire rule is dynamic and style object\n // will be returned from that function.\n\n if (fnRule) {\n // Empty object will remove all currently defined props\n // in case function rule returns a falsy value.\n styleRule.style = fnRule(data) || {};\n\n if (process.env.NODE_ENV === 'development') {\n for (var prop in styleRule.style) {\n if (typeof styleRule.style[prop] === 'function') {\n process.env.NODE_ENV !== \"production\" ? warning__default['default'](false, '[JSS] Function values inside function rules are not supported.') : void 0;\n break;\n }\n }\n }\n }\n\n var fnValues = styleRule[fnValuesNs]; // If we have a fn values map, it is a rule with function values.\n\n if (fnValues) {\n for (var _prop in fnValues) {\n styleRule.prop(_prop, fnValues[_prop](data), options);\n }\n }\n }\n };\n};\n\nexports.default = functionPlugin;\n", "'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar _extends = require('@babel/runtime/helpers/extends');\nvar jss = require('jss');\n\nfunction _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\nvar _extends__default = /*#__PURE__*/_interopDefaultLegacy(_extends);\n\nvar at = '@global';\nvar atPrefix = '@global ';\n\nvar GlobalContainerRule =\n/*#__PURE__*/\nfunction () {\n function GlobalContainerRule(key, styles, options) {\n this.type = 'global';\n this.at = at;\n this.isProcessed = false;\n this.key = key;\n this.options = options;\n this.rules = new jss.RuleList(_extends__default['default']({}, options, {\n parent: this\n }));\n\n for (var selector in styles) {\n this.rules.add(selector, styles[selector]);\n }\n\n this.rules.process();\n }\n /**\n * Get a rule.\n */\n\n\n var _proto = GlobalContainerRule.prototype;\n\n _proto.getRule = function getRule(name) {\n return this.rules.get(name);\n }\n /**\n * Create and register rule, run plugins.\n */\n ;\n\n _proto.addRule = function addRule(name, style, options) {\n var rule = this.rules.add(name, style, options);\n if (rule) this.options.jss.plugins.onProcessRule(rule);\n return rule;\n }\n /**\n * Replace rule, run plugins.\n */\n ;\n\n _proto.replaceRule = function replaceRule(name, style, options) {\n var newRule = this.rules.replace(name, style, options);\n if (newRule) this.options.jss.plugins.onProcessRule(newRule);\n return newRule;\n }\n /**\n * Get index of a rule.\n */\n ;\n\n _proto.indexOf = function indexOf(rule) {\n return this.rules.indexOf(rule);\n }\n /**\n * Generates a CSS string.\n */\n ;\n\n _proto.toString = function toString(options) {\n return this.rules.toString(options);\n };\n\n return GlobalContainerRule;\n}();\n\nvar GlobalPrefixedRule =\n/*#__PURE__*/\nfunction () {\n function GlobalPrefixedRule(key, style, options) {\n this.type = 'global';\n this.at = at;\n this.isProcessed = false;\n this.key = key;\n this.options = options;\n var selector = key.substr(atPrefix.length);\n this.rule = options.jss.createRule(selector, style, _extends__default['default']({}, options, {\n parent: this\n }));\n }\n\n var _proto2 = GlobalPrefixedRule.prototype;\n\n _proto2.toString = function toString(options) {\n return this.rule ? this.rule.toString(options) : '';\n };\n\n return GlobalPrefixedRule;\n}();\n\nvar separatorRegExp = /\\s*,\\s*/g;\n\nfunction addScope(selector, scope) {\n var parts = selector.split(separatorRegExp);\n var scoped = '';\n\n for (var i = 0; i < parts.length; i++) {\n scoped += scope + \" \" + parts[i].trim();\n if (parts[i + 1]) scoped += ', ';\n }\n\n return scoped;\n}\n\nfunction handleNestedGlobalContainerRule(rule, sheet) {\n var options = rule.options,\n style = rule.style;\n var rules = style ? style[at] : null;\n if (!rules) return;\n\n for (var name in rules) {\n sheet.addRule(name, rules[name], _extends__default['default']({}, options, {\n selector: addScope(name, rule.selector)\n }));\n }\n\n delete style[at];\n}\n\nfunction handlePrefixedGlobalRule(rule, sheet) {\n var options = rule.options,\n style = rule.style;\n\n for (var prop in style) {\n if (prop[0] !== '@' || prop.substr(0, at.length) !== at) continue;\n var selector = addScope(prop.substr(at.length), rule.selector);\n sheet.addRule(selector, style[prop], _extends__default['default']({}, options, {\n selector: selector\n }));\n delete style[prop];\n }\n}\n/**\n * Convert nested rules to separate, remove them from original styles.\n */\n\n\nfunction jssGlobal() {\n function onCreateRule(name, styles, options) {\n if (!name) return null;\n\n if (name === at) {\n return new GlobalContainerRule(name, styles, options);\n }\n\n if (name[0] === '@' && name.substr(0, atPrefix.length) === atPrefix) {\n return new GlobalPrefixedRule(name, styles, options);\n }\n\n var parent = options.parent;\n\n if (parent) {\n if (parent.type === 'global' || parent.options.parent && parent.options.parent.type === 'global') {\n options.scoped = false;\n }\n }\n\n if (!options.selector && options.scoped === false) {\n options.selector = name;\n }\n\n return null;\n }\n\n function onProcessRule(rule, sheet) {\n if (rule.type !== 'style' || !sheet) return;\n handleNestedGlobalContainerRule(rule, sheet);\n handlePrefixedGlobalRule(rule, sheet);\n }\n\n return {\n onCreateRule: onCreateRule,\n onProcessRule: onProcessRule\n };\n}\n\nexports.default = jssGlobal;\n", "'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar _extends = require('@babel/runtime/helpers/extends');\nvar warning = require('tiny-warning');\n\nfunction _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\nvar _extends__default = /*#__PURE__*/_interopDefaultLegacy(_extends);\nvar warning__default = /*#__PURE__*/_interopDefaultLegacy(warning);\n\nvar separatorRegExp = /\\s*,\\s*/g;\nvar parentRegExp = /&/g;\nvar refRegExp = /\\$([\\w-]+)/g;\n/**\n * Convert nested rules to separate, remove them from original styles.\n */\n\nfunction jssNested() {\n // Get a function to be used for $ref replacement.\n function getReplaceRef(container, sheet) {\n return function (match, key) {\n var rule = container.getRule(key) || sheet && sheet.getRule(key);\n\n if (rule) {\n return rule.selector;\n }\n\n process.env.NODE_ENV !== \"production\" ? warning__default['default'](false, \"[JSS] Could not find the referenced rule \\\"\" + key + \"\\\" in \\\"\" + (container.options.meta || container.toString()) + \"\\\".\") : void 0;\n return key;\n };\n }\n\n function replaceParentRefs(nestedProp, parentProp) {\n var parentSelectors = parentProp.split(separatorRegExp);\n var nestedSelectors = nestedProp.split(separatorRegExp);\n var result = '';\n\n for (var i = 0; i < parentSelectors.length; i++) {\n var parent = parentSelectors[i];\n\n for (var j = 0; j < nestedSelectors.length; j++) {\n var nested = nestedSelectors[j];\n if (result) result += ', '; // Replace all & by the parent or prefix & with the parent.\n\n result += nested.indexOf('&') !== -1 ? nested.replace(parentRegExp, parent) : parent + \" \" + nested;\n }\n }\n\n return result;\n }\n\n function getOptions(rule, container, prevOptions) {\n // Options has been already created, now we only increase index.\n if (prevOptions) return _extends__default['default']({}, prevOptions, {\n index: prevOptions.index + 1\n });\n var nestingLevel = rule.options.nestingLevel;\n nestingLevel = nestingLevel === undefined ? 1 : nestingLevel + 1;\n\n var options = _extends__default['default']({}, rule.options, {\n nestingLevel: nestingLevel,\n index: container.indexOf(rule) + 1 // We don't need the parent name to be set options for chlid.\n\n });\n\n delete options.name;\n return options;\n }\n\n function onProcessStyle(style, rule, sheet) {\n if (rule.type !== 'style') return style;\n var styleRule = rule;\n var container = styleRule.options.parent;\n var options;\n var replaceRef;\n\n for (var prop in style) {\n var isNested = prop.indexOf('&') !== -1;\n var isNestedConditional = prop[0] === '@';\n if (!isNested && !isNestedConditional) continue;\n options = getOptions(styleRule, container, options);\n\n if (isNested) {\n var selector = replaceParentRefs(prop, styleRule.selector); // Lazily create the ref replacer function just once for\n // all nested rules within the sheet.\n\n if (!replaceRef) replaceRef = getReplaceRef(container, sheet); // Replace all $refs.\n\n selector = selector.replace(refRegExp, replaceRef);\n var name = styleRule.key + \"-\" + prop;\n\n if ('replaceRule' in container) {\n // for backward compatibility\n container.replaceRule(name, style[prop], _extends__default['default']({}, options, {\n selector: selector\n }));\n } else {\n container.addRule(name, style[prop], _extends__default['default']({}, options, {\n selector: selector\n }));\n }\n } else if (isNestedConditional) {\n // Place conditional right after the parent rule to ensure right ordering.\n container.addRule(prop, {}, options).addRule(styleRule.key, style[prop], {\n selector: styleRule.selector\n });\n }\n\n delete style[prop];\n }\n\n return style;\n }\n\n return {\n onProcessStyle: onProcessStyle\n };\n}\n\nexports.default = jssNested;\n", "'use strict';\n\n/* eslint-disable no-var, prefer-template */\nvar uppercasePattern = /[A-Z]/g;\nvar msPattern = /^ms-/;\nvar cache = {};\n\nfunction toHyphenLower(match) {\n return '-' + match.toLowerCase()\n}\n\nfunction hyphenateStyleName(name) {\n if (cache.hasOwnProperty(name)) {\n return cache[name]\n }\n\n var hName = name.replace(uppercasePattern, toHyphenLower);\n return (cache[name] = msPattern.test(hName) ? '-' + hName : hName)\n}\n\nmodule.exports = hyphenateStyleName;\n", "'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar hyphenate = require('hyphenate-style-name');\n\nfunction _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\nvar hyphenate__default = /*#__PURE__*/_interopDefaultLegacy(hyphenate);\n\n/**\n * Convert camel cased property names to dash separated.\n */\n\nfunction convertCase(style) {\n var converted = {};\n\n for (var prop in style) {\n var key = prop.indexOf('--') === 0 ? prop : hyphenate__default['default'](prop);\n converted[key] = style[prop];\n }\n\n if (style.fallbacks) {\n if (Array.isArray(style.fallbacks)) converted.fallbacks = style.fallbacks.map(convertCase);else converted.fallbacks = convertCase(style.fallbacks);\n }\n\n return converted;\n}\n/**\n * Allow camel cased property names by converting them back to dasherized.\n */\n\n\nfunction camelCase() {\n function onProcessStyle(style) {\n if (Array.isArray(style)) {\n // Handle rules like @font-face, which can have multiple styles in an array\n for (var index = 0; index < style.length; index++) {\n style[index] = convertCase(style[index]);\n }\n\n return style;\n }\n\n return convertCase(style);\n }\n\n function onChangeValue(value, prop, rule) {\n if (prop.indexOf('--') === 0) {\n return value;\n }\n\n var hyphenatedProp = hyphenate__default['default'](prop); // There was no camel case in place\n\n if (prop === hyphenatedProp) return value;\n rule.prop(hyphenatedProp, value); // Core will ignore that property value we set the proper one above.\n\n return null;\n }\n\n return {\n onProcessStyle: onProcessStyle,\n onChangeValue: onChangeValue\n };\n}\n\nexports.default = camelCase;\n", "'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar jss = require('jss');\n\nvar px = jss.hasCSSTOMSupport && CSS ? CSS.px : 'px';\nvar ms = jss.hasCSSTOMSupport && CSS ? CSS.ms : 'ms';\nvar percent = jss.hasCSSTOMSupport && CSS ? CSS.percent : '%';\n/**\n * Generated jss-plugin-default-unit CSS property units\n */\n\nvar defaultUnits = {\n // Animation properties\n 'animation-delay': ms,\n 'animation-duration': ms,\n // Background properties\n 'background-position': px,\n 'background-position-x': px,\n 'background-position-y': px,\n 'background-size': px,\n // Border Properties\n border: px,\n 'border-bottom': px,\n 'border-bottom-left-radius': px,\n 'border-bottom-right-radius': px,\n 'border-bottom-width': px,\n 'border-left': px,\n 'border-left-width': px,\n 'border-radius': px,\n 'border-right': px,\n 'border-right-width': px,\n 'border-top': px,\n 'border-top-left-radius': px,\n 'border-top-right-radius': px,\n 'border-top-width': px,\n 'border-width': px,\n 'border-block': px,\n 'border-block-end': px,\n 'border-block-end-width': px,\n 'border-block-start': px,\n 'border-block-start-width': px,\n 'border-block-width': px,\n 'border-inline': px,\n 'border-inline-end': px,\n 'border-inline-end-width': px,\n 'border-inline-start': px,\n 'border-inline-start-width': px,\n 'border-inline-width': px,\n 'border-start-start-radius': px,\n 'border-start-end-radius': px,\n 'border-end-start-radius': px,\n 'border-end-end-radius': px,\n // Margin properties\n margin: px,\n 'margin-bottom': px,\n 'margin-left': px,\n 'margin-right': px,\n 'margin-top': px,\n 'margin-block': px,\n 'margin-block-end': px,\n 'margin-block-start': px,\n 'margin-inline': px,\n 'margin-inline-end': px,\n 'margin-inline-start': px,\n // Padding properties\n padding: px,\n 'padding-bottom': px,\n 'padding-left': px,\n 'padding-right': px,\n 'padding-top': px,\n 'padding-block': px,\n 'padding-block-end': px,\n 'padding-block-start': px,\n 'padding-inline': px,\n 'padding-inline-end': px,\n 'padding-inline-start': px,\n // Mask properties\n 'mask-position-x': px,\n 'mask-position-y': px,\n 'mask-size': px,\n // Width and height properties\n height: px,\n width: px,\n 'min-height': px,\n 'max-height': px,\n 'min-width': px,\n 'max-width': px,\n // Position properties\n bottom: px,\n left: px,\n top: px,\n right: px,\n inset: px,\n 'inset-block': px,\n 'inset-block-end': px,\n 'inset-block-start': px,\n 'inset-inline': px,\n 'inset-inline-end': px,\n 'inset-inline-start': px,\n // Shadow properties\n 'box-shadow': px,\n 'text-shadow': px,\n // Column properties\n 'column-gap': px,\n 'column-rule': px,\n 'column-rule-width': px,\n 'column-width': px,\n // Font and text properties\n 'font-size': px,\n 'font-size-delta': px,\n 'letter-spacing': px,\n 'text-decoration-thickness': px,\n 'text-indent': px,\n 'text-stroke': px,\n 'text-stroke-width': px,\n 'word-spacing': px,\n // Motion properties\n motion: px,\n 'motion-offset': px,\n // Outline properties\n outline: px,\n 'outline-offset': px,\n 'outline-width': px,\n // Perspective properties\n perspective: px,\n 'perspective-origin-x': percent,\n 'perspective-origin-y': percent,\n // Transform properties\n 'transform-origin': percent,\n 'transform-origin-x': percent,\n 'transform-origin-y': percent,\n 'transform-origin-z': percent,\n // Transition properties\n 'transition-delay': ms,\n 'transition-duration': ms,\n // Alignment properties\n 'vertical-align': px,\n 'flex-basis': px,\n // Some random properties\n 'shape-margin': px,\n size: px,\n gap: px,\n // Grid properties\n grid: px,\n 'grid-gap': px,\n 'row-gap': px,\n 'grid-row-gap': px,\n 'grid-column-gap': px,\n 'grid-template-rows': px,\n 'grid-template-columns': px,\n 'grid-auto-rows': px,\n 'grid-auto-columns': px,\n // Not existing properties.\n // Used to avoid issues with jss-plugin-expand integration.\n 'box-shadow-x': px,\n 'box-shadow-y': px,\n 'box-shadow-blur': px,\n 'box-shadow-spread': px,\n 'font-line-height': px,\n 'text-shadow-x': px,\n 'text-shadow-y': px,\n 'text-shadow-blur': px\n};\n\n/**\n * Clones the object and adds a camel cased property version.\n */\n\nfunction addCamelCasedVersion(obj) {\n var regExp = /(-[a-z])/g;\n\n var replace = function replace(str) {\n return str[1].toUpperCase();\n };\n\n var newObj = {};\n\n for (var key in obj) {\n newObj[key] = obj[key];\n newObj[key.replace(regExp, replace)] = obj[key];\n }\n\n return newObj;\n}\n\nvar units = addCamelCasedVersion(defaultUnits);\n/**\n * Recursive deep style passing function\n */\n\nfunction iterate(prop, value, options) {\n if (value == null) return value;\n\n if (Array.isArray(value)) {\n for (var i = 0; i < value.length; i++) {\n value[i] = iterate(prop, value[i], options);\n }\n } else if (typeof value === 'object') {\n if (prop === 'fallbacks') {\n for (var innerProp in value) {\n value[innerProp] = iterate(innerProp, value[innerProp], options);\n }\n } else {\n for (var _innerProp in value) {\n value[_innerProp] = iterate(prop + \"-\" + _innerProp, value[_innerProp], options);\n }\n } // eslint-disable-next-line no-restricted-globals\n\n } else if (typeof value === 'number' && isNaN(value) === false) {\n var unit = options[prop] || units[prop]; // Add the unit if available, except for the special case of 0px.\n\n if (unit && !(value === 0 && unit === px)) {\n return typeof unit === 'function' ? unit(value).toString() : \"\" + value + unit;\n }\n\n return value.toString();\n }\n\n return value;\n}\n/**\n * Add unit to numeric values.\n */\n\n\nfunction defaultUnit(options) {\n if (options === void 0) {\n options = {};\n }\n\n var camelCasedOptions = addCamelCasedVersion(options);\n\n function onProcessStyle(style, rule) {\n if (rule.type !== 'style') return style;\n\n for (var prop in style) {\n style[prop] = iterate(prop, style[prop], camelCasedOptions);\n }\n\n return style;\n }\n\n function onChangeValue(value, prop) {\n return iterate(prop, value, camelCasedOptions);\n }\n\n return {\n onProcessStyle: onProcessStyle,\n onChangeValue: onChangeValue\n };\n}\n\nexports.default = defaultUnit;\n", "function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nmodule.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;", "var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}\n\nmodule.exports = _arrayWithoutHoles, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;", "function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nmodule.exports = _iterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;", "var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}\n\nmodule.exports = _unsupportedIterableToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;", "function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nmodule.exports = _nonIterableSpread, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;", "var arrayWithoutHoles = require(\"./arrayWithoutHoles.js\");\n\nvar iterableToArray = require(\"./iterableToArray.js\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\n\nvar nonIterableSpread = require(\"./nonIterableSpread.js\");\n\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}\n\nmodule.exports = _toConsumableArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;", "'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nfunction _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }\n\nvar isInBrowser = _interopDefault(require('is-in-browser'));\nvar _toConsumableArray = _interopDefault(require('@babel/runtime/helpers/toConsumableArray'));\n\n// Export javascript style and css style vendor prefixes.\nvar js = '';\nvar css = '';\nvar vendor = '';\nvar browser = '';\nvar isTouch = isInBrowser && 'ontouchstart' in document.documentElement; // We should not do anything if required serverside.\n\nif (isInBrowser) {\n // Order matters. We need to check Webkit the last one because\n // other vendors use to add Webkit prefixes to some properties\n var jsCssMap = {\n Moz: '-moz-',\n ms: '-ms-',\n O: '-o-',\n Webkit: '-webkit-'\n };\n\n var _document$createEleme = document.createElement('p'),\n style = _document$createEleme.style;\n\n var testProp = 'Transform';\n\n for (var key in jsCssMap) {\n if (key + testProp in style) {\n js = key;\n css = jsCssMap[key];\n break;\n }\n } // Correctly detect the Edge browser.\n\n\n if (js === 'Webkit' && 'msHyphens' in style) {\n js = 'ms';\n css = jsCssMap.ms;\n browser = 'edge';\n } // Correctly detect the Safari browser.\n\n\n if (js === 'Webkit' && '-apple-trailing-word' in style) {\n vendor = 'apple';\n }\n}\n/**\n * Vendor prefix string for the current browser.\n *\n * @type {{js: String, css: String, vendor: String, browser: String}}\n * @api public\n */\n\n\nvar prefix = {\n js: js,\n css: css,\n vendor: vendor,\n browser: browser,\n isTouch: isTouch\n};\n\n/**\n * Test if a keyframe at-rule should be prefixed or not\n *\n * @param {String} vendor prefix string for the current browser.\n * @return {String}\n * @api public\n */\n\nfunction supportedKeyframes(key) {\n // Keyframes is already prefixed. e.g. key = '@-webkit-keyframes a'\n if (key[1] === '-') return key; // No need to prefix IE/Edge. Older browsers will ignore unsupported rules.\n // https://caniuse.com/#search=keyframes\n\n if (prefix.js === 'ms') return key;\n return \"@\" + prefix.css + \"keyframes\" + key.substr(10);\n}\n\n// https://caniuse.com/#search=appearance\n\nvar appearence = {\n noPrefill: ['appearance'],\n supportedProperty: function supportedProperty(prop) {\n if (prop !== 'appearance') return false;\n if (prefix.js === 'ms') return \"-webkit-\" + prop;\n return prefix.css + prop;\n }\n};\n\n// https://caniuse.com/#search=color-adjust\n\nvar colorAdjust = {\n noPrefill: ['color-adjust'],\n supportedProperty: function supportedProperty(prop) {\n if (prop !== 'color-adjust') return false;\n if (prefix.js === 'Webkit') return prefix.css + \"print-\" + prop;\n return prop;\n }\n};\n\nvar regExp = /[-\\s]+(.)?/g;\n/**\n * Replaces the letter with the capital letter\n *\n * @param {String} match\n * @param {String} c\n * @return {String}\n * @api private\n */\n\nfunction toUpper(match, c) {\n return c ? c.toUpperCase() : '';\n}\n/**\n * Convert dash separated strings to camel-cased.\n *\n * @param {String} str\n * @return {String}\n * @api private\n */\n\n\nfunction camelize(str) {\n return str.replace(regExp, toUpper);\n}\n\n/**\n * Convert dash separated strings to pascal cased.\n *\n * @param {String} str\n * @return {String}\n * @api private\n */\n\nfunction pascalize(str) {\n return camelize(\"-\" + str);\n}\n\n// but we can use a longhand property instead.\n// https://caniuse.com/#search=mask\n\nvar mask = {\n noPrefill: ['mask'],\n supportedProperty: function supportedProperty(prop, style) {\n if (!/^mask/.test(prop)) return false;\n\n if (prefix.js === 'Webkit') {\n var longhand = 'mask-image';\n\n if (camelize(longhand) in style) {\n return prop;\n }\n\n if (prefix.js + pascalize(longhand) in style) {\n return prefix.css + prop;\n }\n }\n\n return prop;\n }\n};\n\n// https://caniuse.com/#search=text-orientation\n\nvar textOrientation = {\n noPrefill: ['text-orientation'],\n supportedProperty: function supportedProperty(prop) {\n if (prop !== 'text-orientation') return false;\n\n if (prefix.vendor === 'apple' && !prefix.isTouch) {\n return prefix.css + prop;\n }\n\n return prop;\n }\n};\n\n// https://caniuse.com/#search=transform\n\nvar transform = {\n noPrefill: ['transform'],\n supportedProperty: function supportedProperty(prop, style, options) {\n if (prop !== 'transform') return false;\n\n if (options.transform) {\n return prop;\n }\n\n return prefix.css + prop;\n }\n};\n\n// https://caniuse.com/#search=transition\n\nvar transition = {\n noPrefill: ['transition'],\n supportedProperty: function supportedProperty(prop, style, options) {\n if (prop !== 'transition') return false;\n\n if (options.transition) {\n return prop;\n }\n\n return prefix.css + prop;\n }\n};\n\n// https://caniuse.com/#search=writing-mode\n\nvar writingMode = {\n noPrefill: ['writing-mode'],\n supportedProperty: function supportedProperty(prop) {\n if (prop !== 'writing-mode') return false;\n\n if (prefix.js === 'Webkit' || prefix.js === 'ms' && prefix.browser !== 'edge') {\n return prefix.css + prop;\n }\n\n return prop;\n }\n};\n\n// https://caniuse.com/#search=user-select\n\nvar userSelect = {\n noPrefill: ['user-select'],\n supportedProperty: function supportedProperty(prop) {\n if (prop !== 'user-select') return false;\n\n if (prefix.js === 'Moz' || prefix.js === 'ms' || prefix.vendor === 'apple') {\n return prefix.css + prop;\n }\n\n return prop;\n }\n};\n\n// https://caniuse.com/#search=multicolumn\n// https://github.com/postcss/autoprefixer/issues/491\n// https://github.com/postcss/autoprefixer/issues/177\n\nvar breakPropsOld = {\n supportedProperty: function supportedProperty(prop, style) {\n if (!/^break-/.test(prop)) return false;\n\n if (prefix.js === 'Webkit') {\n var jsProp = \"WebkitColumn\" + pascalize(prop);\n return jsProp in style ? prefix.css + \"column-\" + prop : false;\n }\n\n if (prefix.js === 'Moz') {\n var _jsProp = \"page\" + pascalize(prop);\n\n return _jsProp in style ? \"page-\" + prop : false;\n }\n\n return false;\n }\n};\n\n// See https://github.com/postcss/autoprefixer/issues/324.\n\nvar inlineLogicalOld = {\n supportedProperty: function supportedProperty(prop, style) {\n if (!/^(border|margin|padding)-inline/.test(prop)) return false;\n if (prefix.js === 'Moz') return prop;\n var newProp = prop.replace('-inline', '');\n return prefix.js + pascalize(newProp) in style ? prefix.css + newProp : false;\n }\n};\n\n// Camelization is required because we can't test using.\n// CSS syntax for e.g. in FF.\n\nvar unprefixed = {\n supportedProperty: function supportedProperty(prop, style) {\n return camelize(prop) in style ? prop : false;\n }\n};\n\nvar prefixed = {\n supportedProperty: function supportedProperty(prop, style) {\n var pascalized = pascalize(prop); // Return custom CSS variable without prefixing.\n\n if (prop[0] === '-') return prop; // Return already prefixed value without prefixing.\n\n if (prop[0] === '-' && prop[1] === '-') return prop;\n if (prefix.js + pascalized in style) return prefix.css + prop; // Try webkit fallback.\n\n if (prefix.js !== 'Webkit' && \"Webkit\" + pascalized in style) return \"-webkit-\" + prop;\n return false;\n }\n};\n\n// https://caniuse.com/#search=scroll-snap\n\nvar scrollSnap = {\n supportedProperty: function supportedProperty(prop) {\n if (prop.substring(0, 11) !== 'scroll-snap') return false;\n\n if (prefix.js === 'ms') {\n return \"\" + prefix.css + prop;\n }\n\n return prop;\n }\n};\n\n// https://caniuse.com/#search=overscroll-behavior\n\nvar overscrollBehavior = {\n supportedProperty: function supportedProperty(prop) {\n if (prop !== 'overscroll-behavior') return false;\n\n if (prefix.js === 'ms') {\n return prefix.css + \"scroll-chaining\";\n }\n\n return prop;\n }\n};\n\nvar propMap = {\n 'flex-grow': 'flex-positive',\n 'flex-shrink': 'flex-negative',\n 'flex-basis': 'flex-preferred-size',\n 'justify-content': 'flex-pack',\n order: 'flex-order',\n 'align-items': 'flex-align',\n 'align-content': 'flex-line-pack' // 'align-self' is handled by 'align-self' plugin.\n\n}; // Support old flex spec from 2012.\n\nvar flex2012 = {\n supportedProperty: function supportedProperty(prop, style) {\n var newProp = propMap[prop];\n if (!newProp) return false;\n return prefix.js + pascalize(newProp) in style ? prefix.css + newProp : false;\n }\n};\n\nvar propMap$1 = {\n flex: 'box-flex',\n 'flex-grow': 'box-flex',\n 'flex-direction': ['box-orient', 'box-direction'],\n order: 'box-ordinal-group',\n 'align-items': 'box-align',\n 'flex-flow': ['box-orient', 'box-direction'],\n 'justify-content': 'box-pack'\n};\nvar propKeys = Object.keys(propMap$1);\n\nvar prefixCss = function prefixCss(p) {\n return prefix.css + p;\n}; // Support old flex spec from 2009.\n\n\nvar flex2009 = {\n supportedProperty: function supportedProperty(prop, style, _ref) {\n var multiple = _ref.multiple;\n\n if (propKeys.indexOf(prop) > -1) {\n var newProp = propMap$1[prop];\n\n if (!Array.isArray(newProp)) {\n return prefix.js + pascalize(newProp) in style ? prefix.css + newProp : false;\n }\n\n if (!multiple) return false;\n\n for (var i = 0; i < newProp.length; i++) {\n if (!(prefix.js + pascalize(newProp[0]) in style)) {\n return false;\n }\n }\n\n return newProp.map(prefixCss);\n }\n\n return false;\n }\n};\n\n// plugins = [\n// ...plugins,\n// breakPropsOld,\n// inlineLogicalOld,\n// unprefixed,\n// prefixed,\n// scrollSnap,\n// flex2012,\n// flex2009\n// ]\n// Plugins without 'noPrefill' value, going last.\n// 'flex-*' plugins should be at the bottom.\n// 'flex2009' going after 'flex2012'.\n// 'prefixed' going after 'unprefixed'\n\nvar plugins = [appearence, colorAdjust, mask, textOrientation, transform, transition, writingMode, userSelect, breakPropsOld, inlineLogicalOld, unprefixed, prefixed, scrollSnap, overscrollBehavior, flex2012, flex2009];\nvar propertyDetectors = plugins.filter(function (p) {\n return p.supportedProperty;\n}).map(function (p) {\n return p.supportedProperty;\n});\nvar noPrefill = plugins.filter(function (p) {\n return p.noPrefill;\n}).reduce(function (a, p) {\n a.push.apply(a, _toConsumableArray(p.noPrefill));\n return a;\n}, []);\n\nvar el;\nvar cache = {};\n\nif (isInBrowser) {\n el = document.createElement('p'); // We test every property on vendor prefix requirement.\n // Once tested, result is cached. It gives us up to 70% perf boost.\n // http://jsperf.com/element-style-object-access-vs-plain-object\n //\n // Prefill cache with known css properties to reduce amount of\n // properties we need to feature test at runtime.\n // http://davidwalsh.name/vendor-prefix\n\n var computed = window.getComputedStyle(document.documentElement, '');\n\n for (var key$1 in computed) {\n // eslint-disable-next-line no-restricted-globals\n if (!isNaN(key$1)) cache[computed[key$1]] = computed[key$1];\n } // Properties that cannot be correctly detected using the\n // cache prefill method.\n\n\n noPrefill.forEach(function (x) {\n return delete cache[x];\n });\n}\n/**\n * Test if a property is supported, returns supported property with vendor\n * prefix if required. Returns `false` if not supported.\n *\n * @param {String} prop dash separated\n * @param {Object} [options]\n * @return {String|Boolean}\n * @api public\n */\n\n\nfunction supportedProperty(prop, options) {\n if (options === void 0) {\n options = {};\n }\n\n // For server-side rendering.\n if (!el) return prop; // Remove cache for benchmark tests or return property from the cache.\n\n if (process.env.NODE_ENV !== 'benchmark' && cache[prop] != null) {\n return cache[prop];\n } // Check if 'transition' or 'transform' natively supported in browser.\n\n\n if (prop === 'transition' || prop === 'transform') {\n options[prop] = prop in el.style;\n } // Find a plugin for current prefix property.\n\n\n for (var i = 0; i < propertyDetectors.length; i++) {\n cache[prop] = propertyDetectors[i](prop, el.style, options); // Break loop, if value found.\n\n if (cache[prop]) break;\n } // Reset styles for current property.\n // Firefox can even throw an error for invalid properties, e.g., \"0\".\n\n\n try {\n el.style[prop] = '';\n } catch (err) {\n return false;\n }\n\n return cache[prop];\n}\n\nvar cache$1 = {};\nvar transitionProperties = {\n transition: 1,\n 'transition-property': 1,\n '-webkit-transition': 1,\n '-webkit-transition-property': 1\n};\nvar transPropsRegExp = /(^\\s*[\\w-]+)|, (\\s*[\\w-]+)(?![^()]*\\))/g;\nvar el$1;\n/**\n * Returns prefixed value transition/transform if needed.\n *\n * @param {String} match\n * @param {String} p1\n * @param {String} p2\n * @return {String}\n * @api private\n */\n\nfunction prefixTransitionCallback(match, p1, p2) {\n if (p1 === 'var') return 'var';\n if (p1 === 'all') return 'all';\n if (p2 === 'all') return ', all';\n var prefixedValue = p1 ? supportedProperty(p1) : \", \" + supportedProperty(p2);\n if (!prefixedValue) return p1 || p2;\n return prefixedValue;\n}\n\nif (isInBrowser) el$1 = document.createElement('p');\n/**\n * Returns prefixed value if needed. Returns `false` if value is not supported.\n *\n * @param {String} property\n * @param {String} value\n * @return {String|Boolean}\n * @api public\n */\n\nfunction supportedValue(property, value) {\n // For server-side rendering.\n var prefixedValue = value;\n if (!el$1 || property === 'content') return value; // It is a string or a number as a string like '1'.\n // We want only prefixable values here.\n // eslint-disable-next-line no-restricted-globals\n\n if (typeof prefixedValue !== 'string' || !isNaN(parseInt(prefixedValue, 10))) {\n return prefixedValue;\n } // Create cache key for current value.\n\n\n var cacheKey = property + prefixedValue; // Remove cache for benchmark tests or return value from cache.\n\n if (process.env.NODE_ENV !== 'benchmark' && cache$1[cacheKey] != null) {\n return cache$1[cacheKey];\n } // IE can even throw an error in some cases, for e.g. style.content = 'bar'.\n\n\n try {\n // Test value as it is.\n el$1.style[property] = prefixedValue;\n } catch (err) {\n // Return false if value not supported.\n cache$1[cacheKey] = false;\n return false;\n } // If 'transition' or 'transition-property' property.\n\n\n if (transitionProperties[property]) {\n prefixedValue = prefixedValue.replace(transPropsRegExp, prefixTransitionCallback);\n } else if (el$1.style[property] === '') {\n // Value with a vendor prefix.\n prefixedValue = prefix.css + prefixedValue; // Hardcode test to convert \"flex\" to \"-ms-flexbox\" for IE10.\n\n if (prefixedValue === '-ms-flex') el$1.style[property] = '-ms-flexbox'; // Test prefixed value.\n\n el$1.style[property] = prefixedValue; // Return false if value not supported.\n\n if (el$1.style[property] === '') {\n cache$1[cacheKey] = false;\n return false;\n }\n } // Reset styles for current property.\n\n\n el$1.style[property] = ''; // Write current value to cache.\n\n cache$1[cacheKey] = prefixedValue;\n return cache$1[cacheKey];\n}\n\nexports.prefix = prefix;\nexports.supportedKeyframes = supportedKeyframes;\nexports.supportedProperty = supportedProperty;\nexports.supportedValue = supportedValue;\n", "'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\nvar vendor = require('css-vendor');\nvar jss = require('jss');\n\n/**\n * Add vendor prefix to a property name when needed.\n */\n\nfunction jssVendorPrefixer() {\n function onProcessRule(rule) {\n if (rule.type === 'keyframes') {\n var atRule = rule;\n atRule.at = vendor.supportedKeyframes(atRule.at);\n }\n }\n\n function prefixStyle(style) {\n for (var prop in style) {\n var value = style[prop];\n\n if (prop === 'fallbacks' && Array.isArray(value)) {\n style[prop] = value.map(prefixStyle);\n continue;\n }\n\n var changeProp = false;\n var supportedProp = vendor.supportedProperty(prop);\n if (supportedProp && supportedProp !== prop) changeProp = true;\n var changeValue = false;\n var supportedValue = vendor.supportedValue(supportedProp, jss.toCssValue(value));\n if (supportedValue && supportedValue !== value) changeValue = true;\n\n if (changeProp || changeValue) {\n if (changeProp) delete style[prop];\n style[supportedProp || prop] = supportedValue || value;\n }\n }\n\n return style;\n }\n\n function onProcessStyle(style, rule) {\n if (rule.type !== 'style') return style;\n return prefixStyle(style);\n }\n\n function onChangeValue(value, prop) {\n return vendor.supportedValue(prop, jss.toCssValue(value)) || value;\n }\n\n return {\n onProcessRule: onProcessRule,\n onProcessStyle: onProcessStyle,\n onChangeValue: onChangeValue\n };\n}\n\nexports.default = jssVendorPrefixer;\n", "'use strict';\n\nObject.defineProperty(exports, '__esModule', { value: true });\n\n/**\n * Sort props by length.\n */\nfunction jssPropsSort() {\n var sort = function sort(prop0, prop1) {\n if (prop0.length === prop1.length) {\n return prop0 > prop1 ? 1 : -1;\n }\n\n return prop0.length - prop1.length;\n };\n\n return {\n onProcessStyle: function onProcessStyle(style, rule) {\n if (rule.type !== 'style') return style;\n var newStyle = {};\n var props = Object.keys(style).sort(sort);\n\n for (var i = 0; i < props.length; i++) {\n newStyle[props[i]] = style[props[i]];\n }\n\n return newStyle;\n }\n };\n}\n\nexports.default = jssPropsSort;\n", "\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = jssPreset;\n\nvar _jssPluginRuleValueFunction = _interopRequireDefault(require(\"jss-plugin-rule-value-function\"));\n\nvar _jssPluginGlobal = _interopRequireDefault(require(\"jss-plugin-global\"));\n\nvar _jssPluginNested = _interopRequireDefault(require(\"jss-plugin-nested\"));\n\nvar _jssPluginCamelCase = _interopRequireDefault(require(\"jss-plugin-camel-case\"));\n\nvar _jssPluginDefaultUnit = _interopRequireDefault(require(\"jss-plugin-default-unit\"));\n\nvar _jssPluginVendorPrefixer = _interopRequireDefault(require(\"jss-plugin-vendor-prefixer\"));\n\nvar _jssPluginPropsSort = _interopRequireDefault(require(\"jss-plugin-props-sort\"));\n\n// Subset of jss-preset-default with only the plugins the Material-UI components are using.\nfunction jssPreset() {\n return {\n plugins: [(0, _jssPluginRuleValueFunction.default)(), (0, _jssPluginGlobal.default)(), (0, _jssPluginNested.default)(), (0, _jssPluginCamelCase.default)(), (0, _jssPluginDefaultUnit.default)(), // Disable the vendor prefixer server-side, it does nothing.\n // This way, we can get a performance boost.\n // In the documentation, we are using `autoprefixer` to solve this problem.\n typeof window === 'undefined' ? null : (0, _jssPluginVendorPrefixer.default)(), (0, _jssPluginPropsSort.default)()]\n };\n}", "\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function get() {\n return _jssPreset.default;\n }\n});\n\nvar _jssPreset = _interopRequireDefault(require(\"./jssPreset\"));", "\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = mergeClasses;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _utils = require(\"@material-ui/utils\");\n\nfunction mergeClasses() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var baseClasses = options.baseClasses,\n newClasses = options.newClasses,\n Component = options.Component;\n\n if (!newClasses) {\n return baseClasses;\n }\n\n var nextClasses = (0, _extends2.default)({}, baseClasses);\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof newClasses === 'string') {\n console.error([\"Material-UI: The value `\".concat(newClasses, \"` \") + \"provided to the classes prop of \".concat((0, _utils.getDisplayName)(Component), \" is incorrect.\"), 'You might want to use the className prop instead.'].join('\\n'));\n return baseClasses;\n }\n }\n\n Object.keys(newClasses).forEach(function (key) {\n if (process.env.NODE_ENV !== 'production') {\n if (!baseClasses[key] && newClasses[key]) {\n console.error([\"Material-UI: The key `\".concat(key, \"` \") + \"provided to the classes prop is not implemented in \".concat((0, _utils.getDisplayName)(Component), \".\"), \"You can only override one of the following: \".concat(Object.keys(baseClasses).join(','), \".\")].join('\\n'));\n }\n\n if (newClasses[key] && typeof newClasses[key] !== 'string') {\n console.error([\"Material-UI: The key `\".concat(key, \"` \") + \"provided to the classes prop is not valid for \".concat((0, _utils.getDisplayName)(Component), \".\"), \"You need to provide a non empty string instead of: \".concat(newClasses[key], \".\")].join('\\n'));\n }\n }\n\n if (newClasses[key]) {\n nextClasses[key] = \"\".concat(baseClasses[key], \" \").concat(newClasses[key]);\n }\n });\n return nextClasses;\n}", "\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function get() {\n return _mergeClasses.default;\n }\n});\n\nvar _mergeClasses = _interopRequireDefault(require(\"./mergeClasses\"));", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n// Used https://github.com/thinkloop/multi-key-cache as inspiration\nvar multiKeyStore = {\n set: function set(cache, key1, key2, value) {\n var subCache = cache.get(key1);\n\n if (!subCache) {\n subCache = new Map();\n cache.set(key1, subCache);\n }\n\n subCache.set(key2, value);\n },\n get: function get(cache, key1, key2) {\n var subCache = cache.get(key1);\n return subCache ? subCache.get(key2) : undefined;\n },\n delete: function _delete(cache, key1, key2) {\n var subCache = cache.get(key1);\n subCache.delete(key2);\n }\n};\nvar _default = multiKeyStore;\nexports.default = _default;", "\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar ThemeContext = _react.default.createContext(null);\n\nif (process.env.NODE_ENV !== 'production') {\n ThemeContext.displayName = 'ThemeContext';\n}\n\nvar _default = ThemeContext;\nexports.default = _default;", "\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = useTheme;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _ThemeContext = _interopRequireDefault(require(\"./ThemeContext\"));\n\nfunction useTheme() {\n var theme = _react.default.useContext(_ThemeContext.default);\n\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n _react.default.useDebugValue(theme);\n }\n\n return theme;\n}", "\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function get() {\n return _useTheme.default;\n }\n});\n\nvar _useTheme = _interopRequireDefault(require(\"./useTheme\"));", "\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = StylesProvider;\nexports.StylesContext = exports.sheetsManager = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _utils = require(\"@material-ui/utils\");\n\nvar _createGenerateClassName = _interopRequireDefault(require(\"../createGenerateClassName\"));\n\nvar _jss = require(\"jss\");\n\nvar _jssPreset = _interopRequireDefault(require(\"../jssPreset\"));\n\n// Default JSS instance.\nvar jss = (0, _jss.create)((0, _jssPreset.default)()); // Use a singleton or the provided one by the context.\n//\n// The counter-based approach doesn't tolerate any mistake.\n// It's much safer to use the same counter everywhere.\n\nvar generateClassName = (0, _createGenerateClassName.default)(); // Exported for test purposes\n\nvar sheetsManager = new Map();\nexports.sheetsManager = sheetsManager;\nvar defaultOptions = {\n disableGeneration: false,\n generateClassName: generateClassName,\n jss: jss,\n sheetsCache: null,\n sheetsManager: sheetsManager,\n sheetsRegistry: null\n};\n\nvar StylesContext = _react.default.createContext(defaultOptions);\n\nexports.StylesContext = StylesContext;\n\nif (process.env.NODE_ENV !== 'production') {\n StylesContext.displayName = 'StylesContext';\n}\n\nvar injectFirstNode;\n\nfunction StylesProvider(props) {\n var children = props.children,\n _props$injectFirst = props.injectFirst,\n injectFirst = _props$injectFirst === void 0 ? false : _props$injectFirst,\n _props$disableGenerat = props.disableGeneration,\n disableGeneration = _props$disableGenerat === void 0 ? false : _props$disableGenerat,\n localOptions = (0, _objectWithoutProperties2.default)(props, [\"children\", \"injectFirst\", \"disableGeneration\"]);\n\n var outerOptions = _react.default.useContext(StylesContext);\n\n var context = (0, _extends2.default)({}, outerOptions, {\n disableGeneration: disableGeneration\n }, localOptions);\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof window === 'undefined' && !context.sheetsManager) {\n console.error('Material-UI: You need to use the ServerStyleSheets API when rendering on the server.');\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (context.jss.options.insertionPoint && injectFirst) {\n console.error('Material-UI: You cannot use a custom insertionPoint and at the same time.');\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (injectFirst && localOptions.jss) {\n console.error('Material-UI: You cannot use the jss and injectFirst props at the same time.');\n }\n }\n\n if (!context.jss.options.insertionPoint && injectFirst && typeof window !== 'undefined') {\n if (!injectFirstNode) {\n var head = document.head;\n injectFirstNode = document.createComment('mui-inject-first');\n head.insertBefore(injectFirstNode, head.firstChild);\n }\n\n context.jss = (0, _jss.create)({\n plugins: (0, _jssPreset.default)().plugins,\n insertionPoint: injectFirstNode\n });\n }\n\n return /*#__PURE__*/_react.default.createElement(StylesContext.Provider, {\n value: context\n }, children);\n}\n\nprocess.env.NODE_ENV !== \"production\" ? StylesProvider.propTypes = {\n /**\n * Your component tree.\n */\n children: _propTypes.default.node.isRequired,\n\n /**\n * You can disable the generation of the styles with this option.\n * It can be useful when traversing the React tree outside of the HTML\n * rendering step on the server.\n * Let's say you are using react-apollo to extract all\n * the queries made by the interface server-side - you can significantly speed up the traversal with this prop.\n */\n disableGeneration: _propTypes.default.bool,\n\n /**\n * JSS's class name generator.\n */\n generateClassName: _propTypes.default.func,\n\n /**\n * By default, the styles are injected last in the element of the page.\n * As a result, they gain more specificity than any other style sheet.\n * If you want to override Material-UI's styles, set this prop.\n */\n injectFirst: _propTypes.default.bool,\n\n /**\n * JSS's instance.\n */\n jss: _propTypes.default.object,\n\n /**\n * @ignore\n */\n serverGenerateClassName: _propTypes.default.func,\n\n /**\n * @ignore\n *\n * Beta feature.\n *\n * Cache for the sheets.\n */\n sheetsCache: _propTypes.default.object,\n\n /**\n * @ignore\n *\n * The sheetsManager is used to deduplicate style sheet injection in the page.\n * It's deduplicating using the (theme, styles) couple.\n * On the server, you should provide a new instance for each request.\n */\n sheetsManager: _propTypes.default.object,\n\n /**\n * @ignore\n *\n * Collect the sheets.\n */\n sheetsRegistry: _propTypes.default.object\n} : void 0;\n\nif (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? StylesProvider.propTypes = (0, _utils.exactProp)(StylesProvider.propTypes) : void 0;\n}", "\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar _exportNames = {};\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function get() {\n return _StylesProvider.default;\n }\n});\n\nvar _StylesProvider = _interopRequireWildcard(require(\"./StylesProvider\"));\n\nObject.keys(_StylesProvider).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _StylesProvider[key];\n }\n });\n});", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.increment = increment;\n\n/* eslint-disable import/prefer-default-export */\n// Global index counter to preserve source order.\n// We create the style sheet during the creation of the component,\n// children are handled after the parents, so the order of style elements would be parent->child.\n// It is a problem though when a parent passes a className\n// which needs to override any child's styles.\n// StyleSheet of the child has a higher specificity, because of the source order.\n// So our solution is to render sheets them in the reverse order child->sheet, so\n// that parent has a higher specificity.\nvar indexCounter = -1e9;\n\nfunction increment() {\n indexCounter += 1;\n\n if (process.env.NODE_ENV !== 'production') {\n if (indexCounter >= 0) {\n console.warn(['Material-UI: You might have a memory leak.', 'The indexCounter is not supposed to grow that much.'].join('\\n'));\n }\n }\n\n return indexCounter;\n}", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n// We use the same empty object to ref count the styles that don't need a theme object.\nvar noopTheme = {};\nvar _default = noopTheme;\nexports.default = _default;", "\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = getStylesCreator;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _typeof2 = _interopRequireDefault(require(\"@babel/runtime/helpers/typeof\"));\n\nvar _utils = require(\"@material-ui/utils\");\n\nvar _noopTheme = _interopRequireDefault(require(\"./noopTheme\"));\n\nfunction getStylesCreator(stylesOrCreator) {\n var themingEnabled = typeof stylesOrCreator === 'function';\n\n if (process.env.NODE_ENV !== 'production') {\n if ((0, _typeof2.default)(stylesOrCreator) !== 'object' && !themingEnabled) {\n console.error(['Material-UI: The `styles` argument provided is invalid.', 'You need to provide a function generating the styles or a styles object.'].join('\\n'));\n }\n }\n\n return {\n create: function create(theme, name) {\n var styles;\n\n try {\n styles = themingEnabled ? stylesOrCreator(theme) : stylesOrCreator;\n } catch (err) {\n if (process.env.NODE_ENV !== 'production') {\n if (themingEnabled === true && theme === _noopTheme.default) {\n // TODO: prepend error message/name instead\n console.error(['Material-UI: The `styles` argument provided is invalid.', 'You are providing a function without a theme in the context.', 'One of the parent elements needs to use a ThemeProvider.'].join('\\n'));\n }\n }\n\n throw err;\n }\n\n if (!name || !theme.overrides || !theme.overrides[name]) {\n return styles;\n }\n\n var overrides = theme.overrides[name];\n var stylesWithOverrides = (0, _extends2.default)({}, styles);\n Object.keys(overrides).forEach(function (key) {\n if (process.env.NODE_ENV !== 'production') {\n if (!stylesWithOverrides[key]) {\n console.warn(['Material-UI: You are trying to override a style that does not exist.', \"Fix the `\".concat(key, \"` key of `theme.overrides.\").concat(name, \"`.\")].join('\\n'));\n }\n }\n\n stylesWithOverrides[key] = (0, _utils.deepmerge)(stylesWithOverrides[key], overrides[key]);\n });\n return stylesWithOverrides;\n },\n options: {}\n };\n}", "\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function get() {\n return _getStylesCreator.default;\n }\n});\n\nvar _getStylesCreator = _interopRequireDefault(require(\"./getStylesCreator\"));", "\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = makeStyles;\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _jss = require(\"jss\");\n\nvar _mergeClasses = _interopRequireDefault(require(\"../mergeClasses\"));\n\nvar _multiKeyStore = _interopRequireDefault(require(\"./multiKeyStore\"));\n\nvar _useTheme = _interopRequireDefault(require(\"../useTheme\"));\n\nvar _StylesProvider = require(\"../StylesProvider\");\n\nvar _indexCounter = require(\"./indexCounter\");\n\nvar _getStylesCreator = _interopRequireDefault(require(\"../getStylesCreator\"));\n\nvar _noopTheme = _interopRequireDefault(require(\"../getStylesCreator/noopTheme\"));\n\nfunction getClasses(_ref, classes, Component) {\n var state = _ref.state,\n stylesOptions = _ref.stylesOptions;\n\n if (stylesOptions.disableGeneration) {\n return classes || {};\n }\n\n if (!state.cacheClasses) {\n state.cacheClasses = {\n // Cache for the finalized classes value.\n value: null,\n // Cache for the last used classes prop pointer.\n lastProp: null,\n // Cache for the last used rendered classes pointer.\n lastJSS: {}\n };\n } // Tracks if either the rendered classes or classes prop has changed,\n // requiring the generation of a new finalized classes object.\n\n\n var generate = false;\n\n if (state.classes !== state.cacheClasses.lastJSS) {\n state.cacheClasses.lastJSS = state.classes;\n generate = true;\n }\n\n if (classes !== state.cacheClasses.lastProp) {\n state.cacheClasses.lastProp = classes;\n generate = true;\n }\n\n if (generate) {\n state.cacheClasses.value = (0, _mergeClasses.default)({\n baseClasses: state.cacheClasses.lastJSS,\n newClasses: classes,\n Component: Component\n });\n }\n\n return state.cacheClasses.value;\n}\n\nfunction attach(_ref2, props) {\n var state = _ref2.state,\n theme = _ref2.theme,\n stylesOptions = _ref2.stylesOptions,\n stylesCreator = _ref2.stylesCreator,\n name = _ref2.name;\n\n if (stylesOptions.disableGeneration) {\n return;\n }\n\n var sheetManager = _multiKeyStore.default.get(stylesOptions.sheetsManager, stylesCreator, theme);\n\n if (!sheetManager) {\n sheetManager = {\n refs: 0,\n staticSheet: null,\n dynamicStyles: null\n };\n\n _multiKeyStore.default.set(stylesOptions.sheetsManager, stylesCreator, theme, sheetManager);\n }\n\n var options = (0, _extends2.default)({}, stylesCreator.options, stylesOptions, {\n theme: theme,\n flip: typeof stylesOptions.flip === 'boolean' ? stylesOptions.flip : theme.direction === 'rtl'\n });\n options.generateId = options.serverGenerateClassName || options.generateClassName;\n var sheetsRegistry = stylesOptions.sheetsRegistry;\n\n if (sheetManager.refs === 0) {\n var staticSheet;\n\n if (stylesOptions.sheetsCache) {\n staticSheet = _multiKeyStore.default.get(stylesOptions.sheetsCache, stylesCreator, theme);\n }\n\n var styles = stylesCreator.create(theme, name);\n\n if (!staticSheet) {\n staticSheet = stylesOptions.jss.createStyleSheet(styles, (0, _extends2.default)({\n link: false\n }, options));\n staticSheet.attach();\n\n if (stylesOptions.sheetsCache) {\n _multiKeyStore.default.set(stylesOptions.sheetsCache, stylesCreator, theme, staticSheet);\n }\n }\n\n if (sheetsRegistry) {\n sheetsRegistry.add(staticSheet);\n }\n\n sheetManager.staticSheet = staticSheet;\n sheetManager.dynamicStyles = (0, _jss.getDynamicStyles)(styles);\n }\n\n if (sheetManager.dynamicStyles) {\n var dynamicSheet = stylesOptions.jss.createStyleSheet(sheetManager.dynamicStyles, (0, _extends2.default)({\n link: true\n }, options));\n dynamicSheet.update(props);\n dynamicSheet.attach();\n state.dynamicSheet = dynamicSheet;\n state.classes = (0, _mergeClasses.default)({\n baseClasses: sheetManager.staticSheet.classes,\n newClasses: dynamicSheet.classes\n });\n\n if (sheetsRegistry) {\n sheetsRegistry.add(dynamicSheet);\n }\n } else {\n state.classes = sheetManager.staticSheet.classes;\n }\n\n sheetManager.refs += 1;\n}\n\nfunction update(_ref3, props) {\n var state = _ref3.state;\n\n if (state.dynamicSheet) {\n state.dynamicSheet.update(props);\n }\n}\n\nfunction detach(_ref4) {\n var state = _ref4.state,\n theme = _ref4.theme,\n stylesOptions = _ref4.stylesOptions,\n stylesCreator = _ref4.stylesCreator;\n\n if (stylesOptions.disableGeneration) {\n return;\n }\n\n var sheetManager = _multiKeyStore.default.get(stylesOptions.sheetsManager, stylesCreator, theme);\n\n sheetManager.refs -= 1;\n var sheetsRegistry = stylesOptions.sheetsRegistry;\n\n if (sheetManager.refs === 0) {\n _multiKeyStore.default.delete(stylesOptions.sheetsManager, stylesCreator, theme);\n\n stylesOptions.jss.removeStyleSheet(sheetManager.staticSheet);\n\n if (sheetsRegistry) {\n sheetsRegistry.remove(sheetManager.staticSheet);\n }\n }\n\n if (state.dynamicSheet) {\n stylesOptions.jss.removeStyleSheet(state.dynamicSheet);\n\n if (sheetsRegistry) {\n sheetsRegistry.remove(state.dynamicSheet);\n }\n }\n}\n\nfunction useSynchronousEffect(func, values) {\n var key = _react.default.useRef([]);\n\n var output; // Store \"generation\" key. Just returns a new object every time\n\n var currentKey = _react.default.useMemo(function () {\n return {};\n }, values); // eslint-disable-line react-hooks/exhaustive-deps\n // \"the first render\", or \"memo dropped the value\"\n\n\n if (key.current !== currentKey) {\n key.current = currentKey;\n output = func();\n }\n\n _react.default.useEffect(function () {\n return function () {\n if (output) {\n output();\n }\n };\n }, [currentKey] // eslint-disable-line react-hooks/exhaustive-deps\n );\n}\n\nfunction makeStyles(stylesOrCreator) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var name = options.name,\n classNamePrefixOption = options.classNamePrefix,\n Component = options.Component,\n _options$defaultTheme = options.defaultTheme,\n defaultTheme = _options$defaultTheme === void 0 ? _noopTheme.default : _options$defaultTheme,\n stylesOptions2 = (0, _objectWithoutProperties2.default)(options, [\"name\", \"classNamePrefix\", \"Component\", \"defaultTheme\"]);\n var stylesCreator = (0, _getStylesCreator.default)(stylesOrCreator);\n var classNamePrefix = name || classNamePrefixOption || 'makeStyles';\n stylesCreator.options = {\n index: (0, _indexCounter.increment)(),\n name: name,\n meta: classNamePrefix,\n classNamePrefix: classNamePrefix\n };\n\n var useStyles = function useStyles() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var theme = (0, _useTheme.default)() || defaultTheme;\n var stylesOptions = (0, _extends2.default)({}, _react.default.useContext(_StylesProvider.StylesContext), stylesOptions2);\n\n var instance = _react.default.useRef();\n\n var shouldUpdate = _react.default.useRef();\n\n useSynchronousEffect(function () {\n var current = {\n name: name,\n state: {},\n stylesCreator: stylesCreator,\n stylesOptions: stylesOptions,\n theme: theme\n };\n attach(current, props);\n shouldUpdate.current = false;\n instance.current = current;\n return function () {\n detach(current);\n };\n }, [theme, stylesCreator]);\n\n _react.default.useEffect(function () {\n if (shouldUpdate.current) {\n update(instance.current, props);\n }\n\n shouldUpdate.current = true;\n });\n\n var classes = getClasses(instance.current, props.classes, Component);\n\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n _react.default.useDebugValue(classes);\n }\n\n return classes;\n };\n\n return useStyles;\n}", "\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function get() {\n return _makeStyles.default;\n }\n});\n\nvar _makeStyles = _interopRequireDefault(require(\"./makeStyles\"));", "function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nmodule.exports = _classCallCheck, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;", "\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _classCallCheck2 = _interopRequireDefault(require(\"@babel/runtime/helpers/classCallCheck\"));\n\nvar _createClass2 = _interopRequireDefault(require(\"@babel/runtime/helpers/createClass\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _jss = require(\"jss\");\n\nvar _StylesProvider = _interopRequireDefault(require(\"../StylesProvider\"));\n\nvar _createGenerateClassName = _interopRequireDefault(require(\"../createGenerateClassName\"));\n\nvar ServerStyleSheets = /*#__PURE__*/function () {\n function ServerStyleSheets() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n (0, _classCallCheck2.default)(this, ServerStyleSheets);\n this.options = options;\n }\n\n (0, _createClass2.default)(ServerStyleSheets, [{\n key: \"collect\",\n value: function collect(children) {\n // This is needed in order to deduplicate the injection of CSS in the page.\n var sheetsManager = new Map(); // This is needed in order to inject the critical CSS.\n\n this.sheetsRegistry = new _jss.SheetsRegistry(); // A new class name generator\n\n var generateClassName = (0, _createGenerateClassName.default)();\n return /*#__PURE__*/_react.default.createElement(_StylesProvider.default, (0, _extends2.default)({\n sheetsManager: sheetsManager,\n serverGenerateClassName: generateClassName,\n sheetsRegistry: this.sheetsRegistry\n }, this.options), children);\n }\n }, {\n key: \"toString\",\n value: function toString() {\n return this.sheetsRegistry ? this.sheetsRegistry.toString() : '';\n }\n }, {\n key: \"getStyleElement\",\n value: function getStyleElement(props) {\n return /*#__PURE__*/_react.default.createElement('style', (0, _extends2.default)({\n id: 'jss-server-side',\n key: 'jss-server-side',\n dangerouslySetInnerHTML: {\n __html: this.toString()\n }\n }, props));\n }\n }]);\n return ServerStyleSheets;\n}();\n\nexports.default = ServerStyleSheets;", "\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function get() {\n return _ServerStyleSheets.default;\n }\n});\n\nvar _ServerStyleSheets = _interopRequireDefault(require(\"./ServerStyleSheets\"));", "'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n", "\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = styled;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _clsx = _interopRequireDefault(require(\"clsx\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _utils = require(\"@material-ui/utils\");\n\nvar _hoistNonReactStatics = _interopRequireDefault(require(\"hoist-non-react-statics\"));\n\nvar _makeStyles = _interopRequireDefault(require(\"../makeStyles\"));\n\nfunction omit(input, fields) {\n var output = {};\n Object.keys(input).forEach(function (prop) {\n if (fields.indexOf(prop) === -1) {\n output[prop] = input[prop];\n }\n });\n return output;\n} // styled-components's API removes the mapping between components and styles.\n// Using components as a low-level styling construct can be simpler.\n\n\nfunction styled(Component) {\n var componentCreator = function componentCreator(style) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var name = options.name,\n stylesOptions = (0, _objectWithoutProperties2.default)(options, [\"name\"]);\n\n if (process.env.NODE_ENV !== 'production' && Component === undefined) {\n throw new Error(['You are calling styled(Component)(style) with an undefined component.', 'You may have forgotten to import it.'].join('\\n'));\n }\n\n var classNamePrefix = name;\n\n if (process.env.NODE_ENV !== 'production') {\n if (!name) {\n // Provide a better DX outside production.\n var displayName = (0, _utils.getDisplayName)(Component);\n\n if (displayName !== undefined) {\n classNamePrefix = displayName;\n }\n }\n }\n\n var stylesOrCreator = typeof style === 'function' ? function (theme) {\n return {\n root: function root(props) {\n return style((0, _extends2.default)({\n theme: theme\n }, props));\n }\n };\n } : {\n root: style\n };\n var useStyles = (0, _makeStyles.default)(stylesOrCreator, (0, _extends2.default)({\n Component: Component,\n name: name || Component.displayName,\n classNamePrefix: classNamePrefix\n }, stylesOptions));\n var filterProps;\n var propTypes = {};\n\n if (style.filterProps) {\n filterProps = style.filterProps;\n delete style.filterProps;\n }\n /* eslint-disable react/forbid-foreign-prop-types */\n\n\n if (style.propTypes) {\n propTypes = style.propTypes;\n delete style.propTypes;\n }\n /* eslint-enable react/forbid-foreign-prop-types */\n\n\n var StyledComponent = /*#__PURE__*/_react.default.forwardRef(function StyledComponent(props, ref) {\n var children = props.children,\n classNameProp = props.className,\n clone = props.clone,\n ComponentProp = props.component,\n other = (0, _objectWithoutProperties2.default)(props, [\"children\", \"className\", \"clone\", \"component\"]);\n var classes = useStyles(props);\n var className = (0, _clsx.default)(classes.root, classNameProp);\n var spread = other;\n\n if (filterProps) {\n spread = omit(spread, filterProps);\n }\n\n if (clone) {\n return /*#__PURE__*/_react.default.cloneElement(children, (0, _extends2.default)({\n className: (0, _clsx.default)(children.props.className, className)\n }, spread));\n }\n\n if (typeof children === 'function') {\n return children((0, _extends2.default)({\n className: className\n }, spread));\n }\n\n var FinalComponent = ComponentProp || Component;\n return /*#__PURE__*/_react.default.createElement(FinalComponent, (0, _extends2.default)({\n ref: ref,\n className: className\n }, spread), children);\n });\n\n process.env.NODE_ENV !== \"production\" ? StyledComponent.propTypes = (0, _extends2.default)({\n /**\n * A render function or node.\n */\n children: _propTypes.default.oneOfType([_propTypes.default.node, _propTypes.default.func]),\n\n /**\n * @ignore\n */\n className: _propTypes.default.string,\n\n /**\n * If `true`, the component will recycle it's children HTML element.\n * It's using `React.cloneElement` internally.\n *\n * This prop will be deprecated and removed in v5\n */\n clone: (0, _utils.chainPropTypes)(_propTypes.default.bool, function (props) {\n if (props.clone && props.component) {\n return new Error('You can not use the clone and component prop at the same time.');\n }\n\n return null;\n }),\n\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: _propTypes.default\n /* @typescript-to-proptypes-ignore */\n .elementType\n }, propTypes) : void 0;\n\n if (process.env.NODE_ENV !== 'production') {\n StyledComponent.displayName = \"Styled(\".concat(classNamePrefix, \")\");\n }\n\n (0, _hoistNonReactStatics.default)(StyledComponent, Component);\n return StyledComponent;\n };\n\n return componentCreator;\n}", "\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function get() {\n return _styled.default;\n }\n});\n\nvar _styled = _interopRequireDefault(require(\"./styled\"));", "\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _utils = require(\"@material-ui/utils\");\n\nvar _ThemeContext = _interopRequireDefault(require(\"../useTheme/ThemeContext\"));\n\nvar _useTheme = _interopRequireDefault(require(\"../useTheme\"));\n\nvar _nested = _interopRequireDefault(require(\"./nested\"));\n\n// To support composition of theme.\nfunction mergeOuterLocalTheme(outerTheme, localTheme) {\n if (typeof localTheme === 'function') {\n var mergedTheme = localTheme(outerTheme);\n\n if (process.env.NODE_ENV !== 'production') {\n if (!mergedTheme) {\n console.error(['Material-UI: You should return an object from your theme function, i.e.', ' ({})} />'].join('\\n'));\n }\n }\n\n return mergedTheme;\n }\n\n return (0, _extends2.default)({}, outerTheme, localTheme);\n}\n/**\n * This component takes a `theme` prop.\n * It makes the `theme` available down the React tree thanks to React context.\n * This component should preferably be used at **the root of your component tree**.\n */\n\n\nfunction ThemeProvider(props) {\n var children = props.children,\n localTheme = props.theme;\n var outerTheme = (0, _useTheme.default)();\n\n if (process.env.NODE_ENV !== 'production') {\n if (outerTheme === null && typeof localTheme === 'function') {\n console.error(['Material-UI: You are providing a theme function prop to the ThemeProvider component:', ' outerTheme} />', '', 'However, no outer theme is present.', 'Make sure a theme is already injected higher in the React tree ' + 'or provide a theme object.'].join('\\n'));\n }\n }\n\n var theme = _react.default.useMemo(function () {\n var output = outerTheme === null ? localTheme : mergeOuterLocalTheme(outerTheme, localTheme);\n\n if (output != null) {\n output[_nested.default] = outerTheme !== null;\n }\n\n return output;\n }, [localTheme, outerTheme]);\n\n return /*#__PURE__*/_react.default.createElement(_ThemeContext.default.Provider, {\n value: theme\n }, children);\n}\n\nprocess.env.NODE_ENV !== \"production\" ? ThemeProvider.propTypes = {\n /**\n * Your component tree.\n */\n children: _propTypes.default.node.isRequired,\n\n /**\n * A theme object. You can provide a function to extend the outer theme.\n */\n theme: _propTypes.default.oneOfType([_propTypes.default.object, _propTypes.default.func]).isRequired\n} : void 0;\n\nif (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== \"production\" ? ThemeProvider.propTypes = (0, _utils.exactProp)(ThemeProvider.propTypes) : void 0;\n}\n\nvar _default = ThemeProvider;\nexports.default = _default;", "\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function get() {\n return _ThemeProvider.default;\n }\n});\n\nvar _ThemeProvider = _interopRequireDefault(require(\"./ThemeProvider\"));", "\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _hoistNonReactStatics = _interopRequireDefault(require(\"hoist-non-react-statics\"));\n\nvar _utils = require(\"@material-ui/utils\");\n\nvar _makeStyles = _interopRequireDefault(require(\"../makeStyles\"));\n\nvar _getThemeProps = _interopRequireDefault(require(\"../getThemeProps\"));\n\nvar _useTheme = _interopRequireDefault(require(\"../useTheme\"));\n\n// Link a style sheet with a component.\n// It does not modify the component passed to it;\n// instead, it returns a new component, with a `classes` property.\nvar withStyles = function withStyles(stylesOrCreator) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return function (Component) {\n var defaultTheme = options.defaultTheme,\n _options$withTheme = options.withTheme,\n withTheme = _options$withTheme === void 0 ? false : _options$withTheme,\n name = options.name,\n stylesOptions = (0, _objectWithoutProperties2.default)(options, [\"defaultTheme\", \"withTheme\", \"name\"]);\n\n if (process.env.NODE_ENV !== 'production') {\n if (Component === undefined) {\n throw new Error(['You are calling withStyles(styles)(Component) with an undefined component.', 'You may have forgotten to import it.'].join('\\n'));\n }\n }\n\n var classNamePrefix = name;\n\n if (process.env.NODE_ENV !== 'production') {\n if (!name) {\n // Provide a better DX outside production.\n var displayName = (0, _utils.getDisplayName)(Component);\n\n if (displayName !== undefined) {\n classNamePrefix = displayName;\n }\n }\n }\n\n var useStyles = (0, _makeStyles.default)(stylesOrCreator, (0, _extends2.default)({\n defaultTheme: defaultTheme,\n Component: Component,\n name: name || Component.displayName,\n classNamePrefix: classNamePrefix\n }, stylesOptions));\n\n var WithStyles = /*#__PURE__*/_react.default.forwardRef(function WithStyles(props, ref) {\n var classesProp = props.classes,\n innerRef = props.innerRef,\n other = (0, _objectWithoutProperties2.default)(props, [\"classes\", \"innerRef\"]); // The wrapper receives only user supplied props, which could be a subset of\n // the actual props Component might receive due to merging with defaultProps.\n // So copying it here would give us the same result in the wrapper as well.\n\n var classes = useStyles((0, _extends2.default)({}, Component.defaultProps, props));\n var theme;\n var more = other;\n\n if (typeof name === 'string' || withTheme) {\n // name and withTheme are invariant in the outer scope\n // eslint-disable-next-line react-hooks/rules-of-hooks\n theme = (0, _useTheme.default)() || defaultTheme;\n\n if (name) {\n more = (0, _getThemeProps.default)({\n theme: theme,\n name: name,\n props: other\n });\n } // Provide the theme to the wrapped component.\n // So we don't have to use the `withTheme()` Higher-order Component.\n\n\n if (withTheme && !more.theme) {\n more.theme = theme;\n }\n }\n\n return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({\n ref: innerRef || ref,\n classes: classes\n }, more));\n });\n\n process.env.NODE_ENV !== \"production\" ? WithStyles.propTypes = {\n /**\n * Override or extend the styles applied to the component.\n */\n classes: _propTypes.default.object,\n\n /**\n * Use that prop to pass a ref to the decorated component.\n * @deprecated\n */\n innerRef: (0, _utils.chainPropTypes)(_propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object]), function (props) {\n if (props.innerRef == null) {\n return null;\n }\n\n return null; // return new Error(\n // 'Material-UI: The `innerRef` prop is deprecated and will be removed in v5. ' +\n // 'Refs are now automatically forwarded to the inner component.',\n // );\n })\n } : void 0;\n\n if (process.env.NODE_ENV !== 'production') {\n WithStyles.displayName = \"WithStyles(\".concat((0, _utils.getDisplayName)(Component), \")\");\n }\n\n (0, _hoistNonReactStatics.default)(WithStyles, Component);\n\n if (process.env.NODE_ENV !== 'production') {\n // Exposed for test purposes.\n WithStyles.Naked = Component;\n WithStyles.options = options;\n WithStyles.useStyles = useStyles;\n }\n\n return WithStyles;\n };\n};\n\nvar _default = withStyles;\nexports.default = _default;", "\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function get() {\n return _withStyles.default;\n }\n});\n\nvar _withStyles = _interopRequireDefault(require(\"./withStyles\"));", "\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.withThemeCreator = withThemeCreator;\nexports.default = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _hoistNonReactStatics = _interopRequireDefault(require(\"hoist-non-react-statics\"));\n\nvar _utils = require(\"@material-ui/utils\");\n\nvar _useTheme = _interopRequireDefault(require(\"../useTheme\"));\n\nfunction withThemeCreator() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var defaultTheme = options.defaultTheme;\n\n var withTheme = function withTheme(Component) {\n if (process.env.NODE_ENV !== 'production') {\n if (Component === undefined) {\n throw new Error(['You are calling withTheme(Component) with an undefined component.', 'You may have forgotten to import it.'].join('\\n'));\n }\n }\n\n var WithTheme = /*#__PURE__*/_react.default.forwardRef(function WithTheme(props, ref) {\n var innerRef = props.innerRef,\n other = (0, _objectWithoutProperties2.default)(props, [\"innerRef\"]);\n var theme = (0, _useTheme.default)() || defaultTheme;\n return /*#__PURE__*/_react.default.createElement(Component, (0, _extends2.default)({\n theme: theme,\n ref: innerRef || ref\n }, other));\n });\n\n process.env.NODE_ENV !== \"production\" ? WithTheme.propTypes = {\n /**\n * Use that prop to pass a ref to the decorated component.\n * @deprecated\n */\n innerRef: (0, _utils.chainPropTypes)(_propTypes.default.oneOfType([_propTypes.default.func, _propTypes.default.object]), function (props) {\n if (props.innerRef == null) {\n return null;\n }\n\n return new Error('Material-UI: The `innerRef` prop is deprecated and will be removed in v5. ' + 'Refs are now automatically forwarded to the inner component.');\n })\n } : void 0;\n\n if (process.env.NODE_ENV !== 'production') {\n WithTheme.displayName = \"WithTheme(\".concat((0, _utils.getDisplayName)(Component), \")\");\n }\n\n (0, _hoistNonReactStatics.default)(WithTheme, Component);\n\n if (process.env.NODE_ENV !== 'production') {\n // Exposed for test purposes.\n WithTheme.Naked = Component;\n }\n\n return WithTheme;\n };\n\n return withTheme;\n} // Provide the theme object as a prop to the input component.\n// It's an alternative API to useTheme().\n// We encourage the usage of useTheme() where possible.\n\n\nvar withTheme = withThemeCreator();\nvar _default = withTheme;\nexports.default = _default;", "\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar _exportNames = {};\nObject.defineProperty(exports, \"default\", {\n enumerable: true,\n get: function get() {\n return _withTheme.default;\n }\n});\n\nvar _withTheme = _interopRequireWildcard(require(\"./withTheme\"));\n\nObject.keys(_withTheme).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _withTheme[key];\n }\n });\n});", "/** @license Material-UI v4.11.5\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar _exportNames = {\n createGenerateClassName: true,\n createStyles: true,\n getThemeProps: true,\n jssPreset: true,\n makeStyles: true,\n mergeClasses: true,\n ServerStyleSheets: true,\n styled: true,\n StylesProvider: true,\n ThemeProvider: true,\n useTheme: true,\n withStyles: true,\n withTheme: true\n};\nObject.defineProperty(exports, \"createGenerateClassName\", {\n enumerable: true,\n get: function get() {\n return _createGenerateClassName.default;\n }\n});\nObject.defineProperty(exports, \"createStyles\", {\n enumerable: true,\n get: function get() {\n return _createStyles.default;\n }\n});\nObject.defineProperty(exports, \"getThemeProps\", {\n enumerable: true,\n get: function get() {\n return _getThemeProps.default;\n }\n});\nObject.defineProperty(exports, \"jssPreset\", {\n enumerable: true,\n get: function get() {\n return _jssPreset.default;\n }\n});\nObject.defineProperty(exports, \"makeStyles\", {\n enumerable: true,\n get: function get() {\n return _makeStyles.default;\n }\n});\nObject.defineProperty(exports, \"mergeClasses\", {\n enumerable: true,\n get: function get() {\n return _mergeClasses.default;\n }\n});\nObject.defineProperty(exports, \"ServerStyleSheets\", {\n enumerable: true,\n get: function get() {\n return _ServerStyleSheets.default;\n }\n});\nObject.defineProperty(exports, \"styled\", {\n enumerable: true,\n get: function get() {\n return _styled.default;\n }\n});\nObject.defineProperty(exports, \"StylesProvider\", {\n enumerable: true,\n get: function get() {\n return _StylesProvider.default;\n }\n});\nObject.defineProperty(exports, \"ThemeProvider\", {\n enumerable: true,\n get: function get() {\n return _ThemeProvider.default;\n }\n});\nObject.defineProperty(exports, \"useTheme\", {\n enumerable: true,\n get: function get() {\n return _useTheme.default;\n }\n});\nObject.defineProperty(exports, \"withStyles\", {\n enumerable: true,\n get: function get() {\n return _withStyles.default;\n }\n});\nObject.defineProperty(exports, \"withTheme\", {\n enumerable: true,\n get: function get() {\n return _withTheme.default;\n }\n});\n\nvar _utils = require(\"@material-ui/utils\");\n\nvar _createGenerateClassName = _interopRequireWildcard(require(\"./createGenerateClassName\"));\n\nObject.keys(_createGenerateClassName).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _createGenerateClassName[key];\n }\n });\n});\n\nvar _createStyles = _interopRequireWildcard(require(\"./createStyles\"));\n\nObject.keys(_createStyles).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _createStyles[key];\n }\n });\n});\n\nvar _getThemeProps = _interopRequireWildcard(require(\"./getThemeProps\"));\n\nObject.keys(_getThemeProps).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _getThemeProps[key];\n }\n });\n});\n\nvar _jssPreset = _interopRequireWildcard(require(\"./jssPreset\"));\n\nObject.keys(_jssPreset).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _jssPreset[key];\n }\n });\n});\n\nvar _makeStyles = _interopRequireWildcard(require(\"./makeStyles\"));\n\nObject.keys(_makeStyles).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _makeStyles[key];\n }\n });\n});\n\nvar _mergeClasses = _interopRequireWildcard(require(\"./mergeClasses\"));\n\nObject.keys(_mergeClasses).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _mergeClasses[key];\n }\n });\n});\n\nvar _ServerStyleSheets = _interopRequireWildcard(require(\"./ServerStyleSheets\"));\n\nObject.keys(_ServerStyleSheets).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _ServerStyleSheets[key];\n }\n });\n});\n\nvar _styled = _interopRequireWildcard(require(\"./styled\"));\n\nObject.keys(_styled).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _styled[key];\n }\n });\n});\n\nvar _StylesProvider = _interopRequireWildcard(require(\"./StylesProvider\"));\n\nObject.keys(_StylesProvider).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _StylesProvider[key];\n }\n });\n});\n\nvar _ThemeProvider = _interopRequireWildcard(require(\"./ThemeProvider\"));\n\nObject.keys(_ThemeProvider).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _ThemeProvider[key];\n }\n });\n});\n\nvar _useTheme = _interopRequireWildcard(require(\"./useTheme\"));\n\nObject.keys(_useTheme).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _useTheme[key];\n }\n });\n});\n\nvar _withStyles = _interopRequireWildcard(require(\"./withStyles\"));\n\nObject.keys(_withStyles).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _withStyles[key];\n }\n });\n});\n\nvar _withTheme = _interopRequireWildcard(require(\"./withTheme\"));\n\nObject.keys(_withTheme).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _withTheme[key];\n }\n });\n});\n\n/* eslint-disable import/export */\n\n/* Warning if there are several instances of @material-ui/styles */\nif (process.env.NODE_ENV !== 'production' && process.env.NODE_ENV !== 'test' && typeof window !== 'undefined') {\n _utils.ponyfillGlobal['__@material-ui/styles-init__'] = _utils.ponyfillGlobal['__@material-ui/styles-init__'] || 0;\n\n if (_utils.ponyfillGlobal['__@material-ui/styles-init__'] === 1) {\n console.warn(['It looks like there are several instances of `@material-ui/styles` initialized in this application.', 'This may cause theme propagation issues, broken class names, ' + 'specificity issues, and makes your application bigger without a good reason.', '', 'See https://mui.com/r/styles-instance-warning for more info.'].join('\\n'));\n }\n\n _utils.ponyfillGlobal['__@material-ui/styles-init__'] += 1;\n}", "\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = createBreakpoints;\nexports.keys = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\n// Sorted ASC by size. That's important.\n// It can't be configured as it's used statically for propTypes.\nvar keys = ['xs', 'sm', 'md', 'lg', 'xl']; // Keep in mind that @media is inclusive by the CSS specification.\n\nexports.keys = keys;\n\nfunction createBreakpoints(breakpoints) {\n var _breakpoints$values = breakpoints.values,\n values = _breakpoints$values === void 0 ? {\n xs: 0,\n sm: 600,\n md: 960,\n lg: 1280,\n xl: 1920\n } : _breakpoints$values,\n _breakpoints$unit = breakpoints.unit,\n unit = _breakpoints$unit === void 0 ? 'px' : _breakpoints$unit,\n _breakpoints$step = breakpoints.step,\n step = _breakpoints$step === void 0 ? 5 : _breakpoints$step,\n other = (0, _objectWithoutProperties2.default)(breakpoints, [\"values\", \"unit\", \"step\"]);\n\n function up(key) {\n var value = typeof values[key] === 'number' ? values[key] : key;\n return \"@media (min-width:\".concat(value).concat(unit, \")\");\n }\n\n function down(key) {\n var endIndex = keys.indexOf(key) + 1;\n var upperbound = values[keys[endIndex]];\n\n if (endIndex === keys.length) {\n // xl down applies to all sizes\n return up('xs');\n }\n\n var value = typeof upperbound === 'number' && endIndex > 0 ? upperbound : key;\n return \"@media (max-width:\".concat(value - step / 100).concat(unit, \")\");\n }\n\n function between(start, end) {\n var endIndex = keys.indexOf(end);\n\n if (endIndex === keys.length - 1) {\n return up(start);\n }\n\n return \"@media (min-width:\".concat(typeof values[start] === 'number' ? values[start] : start).concat(unit, \") and \") + \"(max-width:\".concat((endIndex !== -1 && typeof values[keys[endIndex + 1]] === 'number' ? values[keys[endIndex + 1]] : end) - step / 100).concat(unit, \")\");\n }\n\n function only(key) {\n return between(key, key);\n }\n\n var warnedOnce = false;\n\n function width(key) {\n if (process.env.NODE_ENV !== 'production') {\n if (!warnedOnce) {\n warnedOnce = true;\n console.warn([\"Material-UI: The `theme.breakpoints.width` utility is deprecated because it's redundant.\", 'Use the `theme.breakpoints.values` instead.'].join('\\n'));\n }\n }\n\n return values[key];\n }\n\n return (0, _extends2.default)({\n keys: keys,\n values: values,\n up: up,\n down: down,\n between: between,\n only: only,\n width: width\n }, other);\n}", "\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = createMixins;\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _extends3 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nfunction createMixins(breakpoints, spacing, mixins) {\n var _toolbar;\n\n return (0, _extends3.default)({\n gutters: function gutters() {\n var styles = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n console.warn(['Material-UI: theme.mixins.gutters() is deprecated.', 'You can use the source of the mixin directly:', \"\\n paddingLeft: theme.spacing(2),\\n paddingRight: theme.spacing(2),\\n [theme.breakpoints.up('sm')]: {\\n paddingLeft: theme.spacing(3),\\n paddingRight: theme.spacing(3),\\n },\\n \"].join('\\n'));\n return (0, _extends3.default)({\n paddingLeft: spacing(2),\n paddingRight: spacing(2)\n }, styles, (0, _defineProperty2.default)({}, breakpoints.up('sm'), (0, _extends3.default)({\n paddingLeft: spacing(3),\n paddingRight: spacing(3)\n }, styles[breakpoints.up('sm')])));\n },\n toolbar: (_toolbar = {\n minHeight: 56\n }, (0, _defineProperty2.default)(_toolbar, \"\".concat(breakpoints.up('xs'), \" and (orientation: landscape)\"), {\n minHeight: 48\n }), (0, _defineProperty2.default)(_toolbar, breakpoints.up('sm'), {\n minHeight: 64\n }), _toolbar)\n }, mixins);\n}", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar common = {\n black: '#000',\n white: '#fff'\n};\nvar _default = common;\nexports.default = _default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar grey = {\n 50: '#fafafa',\n 100: '#f5f5f5',\n 200: '#eeeeee',\n 300: '#e0e0e0',\n 400: '#bdbdbd',\n 500: '#9e9e9e',\n 600: '#757575',\n 700: '#616161',\n 800: '#424242',\n 900: '#212121',\n A100: '#d5d5d5',\n A200: '#aaaaaa',\n A400: '#303030',\n A700: '#616161'\n};\nvar _default = grey;\nexports.default = _default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar indigo = {\n 50: '#e8eaf6',\n 100: '#c5cae9',\n 200: '#9fa8da',\n 300: '#7986cb',\n 400: '#5c6bc0',\n 500: '#3f51b5',\n 600: '#3949ab',\n 700: '#303f9f',\n 800: '#283593',\n 900: '#1a237e',\n A100: '#8c9eff',\n A200: '#536dfe',\n A400: '#3d5afe',\n A700: '#304ffe'\n};\nvar _default = indigo;\nexports.default = _default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar pink = {\n 50: '#fce4ec',\n 100: '#f8bbd0',\n 200: '#f48fb1',\n 300: '#f06292',\n 400: '#ec407a',\n 500: '#e91e63',\n 600: '#d81b60',\n 700: '#c2185b',\n 800: '#ad1457',\n 900: '#880e4f',\n A100: '#ff80ab',\n A200: '#ff4081',\n A400: '#f50057',\n A700: '#c51162'\n};\nvar _default = pink;\nexports.default = _default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar red = {\n 50: '#ffebee',\n 100: '#ffcdd2',\n 200: '#ef9a9a',\n 300: '#e57373',\n 400: '#ef5350',\n 500: '#f44336',\n 600: '#e53935',\n 700: '#d32f2f',\n 800: '#c62828',\n 900: '#b71c1c',\n A100: '#ff8a80',\n A200: '#ff5252',\n A400: '#ff1744',\n A700: '#d50000'\n};\nvar _default = red;\nexports.default = _default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar orange = {\n 50: '#fff3e0',\n 100: '#ffe0b2',\n 200: '#ffcc80',\n 300: '#ffb74d',\n 400: '#ffa726',\n 500: '#ff9800',\n 600: '#fb8c00',\n 700: '#f57c00',\n 800: '#ef6c00',\n 900: '#e65100',\n A100: '#ffd180',\n A200: '#ffab40',\n A400: '#ff9100',\n A700: '#ff6d00'\n};\nvar _default = orange;\nexports.default = _default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar blue = {\n 50: '#e3f2fd',\n 100: '#bbdefb',\n 200: '#90caf9',\n 300: '#64b5f6',\n 400: '#42a5f5',\n 500: '#2196f3',\n 600: '#1e88e5',\n 700: '#1976d2',\n 800: '#1565c0',\n 900: '#0d47a1',\n A100: '#82b1ff',\n A200: '#448aff',\n A400: '#2979ff',\n A700: '#2962ff'\n};\nvar _default = blue;\nexports.default = _default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar green = {\n 50: '#e8f5e9',\n 100: '#c8e6c9',\n 200: '#a5d6a7',\n 300: '#81c784',\n 400: '#66bb6a',\n 500: '#4caf50',\n 600: '#43a047',\n 700: '#388e3c',\n 800: '#2e7d32',\n 900: '#1b5e20',\n A100: '#b9f6ca',\n A200: '#69f0ae',\n A400: '#00e676',\n A700: '#00c853'\n};\nvar _default = green;\nexports.default = _default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.hexToRgb = hexToRgb;\nexports.rgbToHex = rgbToHex;\nexports.hslToRgb = hslToRgb;\nexports.decomposeColor = decomposeColor;\nexports.recomposeColor = recomposeColor;\nexports.getContrastRatio = getContrastRatio;\nexports.getLuminance = getLuminance;\nexports.emphasize = emphasize;\nexports.fade = fade;\nexports.alpha = alpha;\nexports.darken = darken;\nexports.lighten = lighten;\n\nvar _utils = require(\"@material-ui/utils\");\n\n/* eslint-disable no-use-before-define */\n\n/**\n * Returns a number whose value is limited to the given range.\n *\n * @param {number} value The value to be clamped\n * @param {number} min The lower boundary of the output range\n * @param {number} max The upper boundary of the output range\n * @returns {number} A number in the range [min, max]\n */\nfunction clamp(value) {\n var min = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var max = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n\n if (process.env.NODE_ENV !== 'production') {\n if (value < min || value > max) {\n console.error(\"Material-UI: The value provided \".concat(value, \" is out of range [\").concat(min, \", \").concat(max, \"].\"));\n }\n }\n\n return Math.min(Math.max(min, value), max);\n}\n/**\n * Converts a color from CSS hex format to CSS rgb format.\n *\n * @param {string} color - Hex color, i.e. #nnn or #nnnnnn\n * @returns {string} A CSS rgb color string\n */\n\n\nfunction hexToRgb(color) {\n color = color.substr(1);\n var re = new RegExp(\".{1,\".concat(color.length >= 6 ? 2 : 1, \"}\"), 'g');\n var colors = color.match(re);\n\n if (colors && colors[0].length === 1) {\n colors = colors.map(function (n) {\n return n + n;\n });\n }\n\n return colors ? \"rgb\".concat(colors.length === 4 ? 'a' : '', \"(\").concat(colors.map(function (n, index) {\n return index < 3 ? parseInt(n, 16) : Math.round(parseInt(n, 16) / 255 * 1000) / 1000;\n }).join(', '), \")\") : '';\n}\n\nfunction intToHex(int) {\n var hex = int.toString(16);\n return hex.length === 1 ? \"0\".concat(hex) : hex;\n}\n/**\n * Converts a color from CSS rgb format to CSS hex format.\n *\n * @param {string} color - RGB color, i.e. rgb(n, n, n)\n * @returns {string} A CSS rgb color string, i.e. #nnnnnn\n */\n\n\nfunction rgbToHex(color) {\n // Idempotent\n if (color.indexOf('#') === 0) {\n return color;\n }\n\n var _decomposeColor = decomposeColor(color),\n values = _decomposeColor.values;\n\n return \"#\".concat(values.map(function (n) {\n return intToHex(n);\n }).join(''));\n}\n/**\n * Converts a color from hsl format to rgb format.\n *\n * @param {string} color - HSL color values\n * @returns {string} rgb color values\n */\n\n\nfunction hslToRgb(color) {\n color = decomposeColor(color);\n var _color = color,\n values = _color.values;\n var h = values[0];\n var s = values[1] / 100;\n var l = values[2] / 100;\n var a = s * Math.min(l, 1 - l);\n\n var f = function f(n) {\n var k = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : (n + h / 30) % 12;\n return l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);\n };\n\n var type = 'rgb';\n var rgb = [Math.round(f(0) * 255), Math.round(f(8) * 255), Math.round(f(4) * 255)];\n\n if (color.type === 'hsla') {\n type += 'a';\n rgb.push(values[3]);\n }\n\n return recomposeColor({\n type: type,\n values: rgb\n });\n}\n/**\n * Returns an object with the type and values of a color.\n *\n * Note: Does not support rgb % values.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @returns {object} - A MUI color object: {type: string, values: number[]}\n */\n\n\nfunction decomposeColor(color) {\n // Idempotent\n if (color.type) {\n return color;\n }\n\n if (color.charAt(0) === '#') {\n return decomposeColor(hexToRgb(color));\n }\n\n var marker = color.indexOf('(');\n var type = color.substring(0, marker);\n\n if (['rgb', 'rgba', 'hsl', 'hsla'].indexOf(type) === -1) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? \"Material-UI: Unsupported `\".concat(color, \"` color.\\nWe support the following formats: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla().\") : (0, _utils.formatMuiErrorMessage)(3, color));\n }\n\n var values = color.substring(marker + 1, color.length - 1).split(',');\n values = values.map(function (value) {\n return parseFloat(value);\n });\n return {\n type: type,\n values: values\n };\n}\n/**\n * Converts a color object with type and values to a string.\n *\n * @param {object} color - Decomposed color\n * @param {string} color.type - One of: 'rgb', 'rgba', 'hsl', 'hsla'\n * @param {array} color.values - [n,n,n] or [n,n,n,n]\n * @returns {string} A CSS color string\n */\n\n\nfunction recomposeColor(color) {\n var type = color.type;\n var values = color.values;\n\n if (type.indexOf('rgb') !== -1) {\n // Only convert the first 3 values to int (i.e. not alpha)\n values = values.map(function (n, i) {\n return i < 3 ? parseInt(n, 10) : n;\n });\n } else if (type.indexOf('hsl') !== -1) {\n values[1] = \"\".concat(values[1], \"%\");\n values[2] = \"\".concat(values[2], \"%\");\n }\n\n return \"\".concat(type, \"(\").concat(values.join(', '), \")\");\n}\n/**\n * Calculates the contrast ratio between two colors.\n *\n * Formula: https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests\n *\n * @param {string} foreground - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {string} background - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @returns {number} A contrast ratio value in the range 0 - 21.\n */\n\n\nfunction getContrastRatio(foreground, background) {\n var lumA = getLuminance(foreground);\n var lumB = getLuminance(background);\n return (Math.max(lumA, lumB) + 0.05) / (Math.min(lumA, lumB) + 0.05);\n}\n/**\n * The relative brightness of any point in a color space,\n * normalized to 0 for darkest black and 1 for lightest white.\n *\n * Formula: https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @returns {number} The relative brightness of the color in the range 0 - 1\n */\n\n\nfunction getLuminance(color) {\n color = decomposeColor(color);\n var rgb = color.type === 'hsl' ? decomposeColor(hslToRgb(color)).values : color.values;\n rgb = rgb.map(function (val) {\n val /= 255; // normalized\n\n return val <= 0.03928 ? val / 12.92 : Math.pow((val + 0.055) / 1.055, 2.4);\n }); // Truncate at 3 digits\n\n return Number((0.2126 * rgb[0] + 0.7152 * rgb[1] + 0.0722 * rgb[2]).toFixed(3));\n}\n/**\n * Darken or lighten a color, depending on its luminance.\n * Light colors are darkened, dark colors are lightened.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {number} coefficient=0.15 - multiplier in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\n\n\nfunction emphasize(color) {\n var coefficient = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0.15;\n return getLuminance(color) > 0.5 ? darken(color, coefficient) : lighten(color, coefficient);\n}\n\nvar warnedOnce = false;\n/**\n * Set the absolute transparency of a color.\n * Any existing alpha values are overwritten.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {number} value - value to set the alpha channel to in the range 0 -1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n *\n * @deprecated\n * Use `import { alpha } from '@material-ui/core/styles'` instead.\n */\n\nfunction fade(color, value) {\n if (process.env.NODE_ENV !== 'production') {\n if (!warnedOnce) {\n warnedOnce = true;\n console.error(['Material-UI: The `fade` color utility was renamed to `alpha` to better describe its functionality.', '', \"You should use `import { alpha } from '@material-ui/core/styles'`\"].join('\\n'));\n }\n }\n\n return alpha(color, value);\n}\n/**\n * Set the absolute transparency of a color.\n * Any existing alpha value is overwritten.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {number} value - value to set the alpha channel to in the range 0-1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\n\n\nfunction alpha(color, value) {\n color = decomposeColor(color);\n value = clamp(value);\n\n if (color.type === 'rgb' || color.type === 'hsl') {\n color.type += 'a';\n }\n\n color.values[3] = value;\n return recomposeColor(color);\n}\n/**\n * Darkens a color.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {number} coefficient - multiplier in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\n\n\nfunction darken(color, coefficient) {\n color = decomposeColor(color);\n coefficient = clamp(coefficient);\n\n if (color.type.indexOf('hsl') !== -1) {\n color.values[2] *= 1 - coefficient;\n } else if (color.type.indexOf('rgb') !== -1) {\n for (var i = 0; i < 3; i += 1) {\n color.values[i] *= 1 - coefficient;\n }\n }\n\n return recomposeColor(color);\n}\n/**\n * Lightens a color.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {number} coefficient - multiplier in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\n\n\nfunction lighten(color, coefficient) {\n color = decomposeColor(color);\n coefficient = clamp(coefficient);\n\n if (color.type.indexOf('hsl') !== -1) {\n color.values[2] += (100 - color.values[2]) * coefficient;\n } else if (color.type.indexOf('rgb') !== -1) {\n for (var i = 0; i < 3; i += 1) {\n color.values[i] += (255 - color.values[i]) * coefficient;\n }\n }\n\n return recomposeColor(color);\n}", "\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = createPalette;\nexports.dark = exports.light = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _utils = require(\"@material-ui/utils\");\n\nvar _common = _interopRequireDefault(require(\"../colors/common\"));\n\nvar _grey = _interopRequireDefault(require(\"../colors/grey\"));\n\nvar _indigo = _interopRequireDefault(require(\"../colors/indigo\"));\n\nvar _pink = _interopRequireDefault(require(\"../colors/pink\"));\n\nvar _red = _interopRequireDefault(require(\"../colors/red\"));\n\nvar _orange = _interopRequireDefault(require(\"../colors/orange\"));\n\nvar _blue = _interopRequireDefault(require(\"../colors/blue\"));\n\nvar _green = _interopRequireDefault(require(\"../colors/green\"));\n\nvar _colorManipulator = require(\"./colorManipulator\");\n\nvar light = {\n // The colors used to style the text.\n text: {\n // The most important text.\n primary: 'rgba(0, 0, 0, 0.87)',\n // Secondary text.\n secondary: 'rgba(0, 0, 0, 0.54)',\n // Disabled text have even lower visual prominence.\n disabled: 'rgba(0, 0, 0, 0.38)',\n // Text hints.\n hint: 'rgba(0, 0, 0, 0.38)'\n },\n // The color used to divide different elements.\n divider: 'rgba(0, 0, 0, 0.12)',\n // The background colors used to style the surfaces.\n // Consistency between these values is important.\n background: {\n paper: _common.default.white,\n default: _grey.default[50]\n },\n // The colors used to style the action elements.\n action: {\n // The color of an active action like an icon button.\n active: 'rgba(0, 0, 0, 0.54)',\n // The color of an hovered action.\n hover: 'rgba(0, 0, 0, 0.04)',\n hoverOpacity: 0.04,\n // The color of a selected action.\n selected: 'rgba(0, 0, 0, 0.08)',\n selectedOpacity: 0.08,\n // The color of a disabled action.\n disabled: 'rgba(0, 0, 0, 0.26)',\n // The background color of a disabled action.\n disabledBackground: 'rgba(0, 0, 0, 0.12)',\n disabledOpacity: 0.38,\n focus: 'rgba(0, 0, 0, 0.12)',\n focusOpacity: 0.12,\n activatedOpacity: 0.12\n }\n};\nexports.light = light;\nvar dark = {\n text: {\n primary: _common.default.white,\n secondary: 'rgba(255, 255, 255, 0.7)',\n disabled: 'rgba(255, 255, 255, 0.5)',\n hint: 'rgba(255, 255, 255, 0.5)',\n icon: 'rgba(255, 255, 255, 0.5)'\n },\n divider: 'rgba(255, 255, 255, 0.12)',\n background: {\n paper: _grey.default[800],\n default: '#303030'\n },\n action: {\n active: _common.default.white,\n hover: 'rgba(255, 255, 255, 0.08)',\n hoverOpacity: 0.08,\n selected: 'rgba(255, 255, 255, 0.16)',\n selectedOpacity: 0.16,\n disabled: 'rgba(255, 255, 255, 0.3)',\n disabledBackground: 'rgba(255, 255, 255, 0.12)',\n disabledOpacity: 0.38,\n focus: 'rgba(255, 255, 255, 0.12)',\n focusOpacity: 0.12,\n activatedOpacity: 0.24\n }\n};\nexports.dark = dark;\n\nfunction addLightOrDark(intent, direction, shade, tonalOffset) {\n var tonalOffsetLight = tonalOffset.light || tonalOffset;\n var tonalOffsetDark = tonalOffset.dark || tonalOffset * 1.5;\n\n if (!intent[direction]) {\n if (intent.hasOwnProperty(shade)) {\n intent[direction] = intent[shade];\n } else if (direction === 'light') {\n intent.light = (0, _colorManipulator.lighten)(intent.main, tonalOffsetLight);\n } else if (direction === 'dark') {\n intent.dark = (0, _colorManipulator.darken)(intent.main, tonalOffsetDark);\n }\n }\n}\n\nfunction createPalette(palette) {\n var _palette$primary = palette.primary,\n primary = _palette$primary === void 0 ? {\n light: _indigo.default[300],\n main: _indigo.default[500],\n dark: _indigo.default[700]\n } : _palette$primary,\n _palette$secondary = palette.secondary,\n secondary = _palette$secondary === void 0 ? {\n light: _pink.default.A200,\n main: _pink.default.A400,\n dark: _pink.default.A700\n } : _palette$secondary,\n _palette$error = palette.error,\n error = _palette$error === void 0 ? {\n light: _red.default[300],\n main: _red.default[500],\n dark: _red.default[700]\n } : _palette$error,\n _palette$warning = palette.warning,\n warning = _palette$warning === void 0 ? {\n light: _orange.default[300],\n main: _orange.default[500],\n dark: _orange.default[700]\n } : _palette$warning,\n _palette$info = palette.info,\n info = _palette$info === void 0 ? {\n light: _blue.default[300],\n main: _blue.default[500],\n dark: _blue.default[700]\n } : _palette$info,\n _palette$success = palette.success,\n success = _palette$success === void 0 ? {\n light: _green.default[300],\n main: _green.default[500],\n dark: _green.default[700]\n } : _palette$success,\n _palette$type = palette.type,\n type = _palette$type === void 0 ? 'light' : _palette$type,\n _palette$contrastThre = palette.contrastThreshold,\n contrastThreshold = _palette$contrastThre === void 0 ? 3 : _palette$contrastThre,\n _palette$tonalOffset = palette.tonalOffset,\n tonalOffset = _palette$tonalOffset === void 0 ? 0.2 : _palette$tonalOffset,\n other = (0, _objectWithoutProperties2.default)(palette, [\"primary\", \"secondary\", \"error\", \"warning\", \"info\", \"success\", \"type\", \"contrastThreshold\", \"tonalOffset\"]); // Use the same logic as\n // Bootstrap: https://github.com/twbs/bootstrap/blob/1d6e3710dd447de1a200f29e8fa521f8a0908f70/scss/_functions.scss#L59\n // and material-components-web https://github.com/material-components/material-components-web/blob/ac46b8863c4dab9fc22c4c662dc6bd1b65dd652f/packages/mdc-theme/_functions.scss#L54\n\n function getContrastText(background) {\n var contrastText = (0, _colorManipulator.getContrastRatio)(background, dark.text.primary) >= contrastThreshold ? dark.text.primary : light.text.primary;\n\n if (process.env.NODE_ENV !== 'production') {\n var contrast = (0, _colorManipulator.getContrastRatio)(background, contrastText);\n\n if (contrast < 3) {\n console.error([\"Material-UI: The contrast ratio of \".concat(contrast, \":1 for \").concat(contrastText, \" on \").concat(background), 'falls below the WCAG recommended absolute minimum contrast ratio of 3:1.', 'https://www.w3.org/TR/2008/REC-WCAG20-20081211/#visual-audio-contrast-contrast'].join('\\n'));\n }\n }\n\n return contrastText;\n }\n\n var augmentColor = function augmentColor(color) {\n var mainShade = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 500;\n var lightShade = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 300;\n var darkShade = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 700;\n color = (0, _extends2.default)({}, color);\n\n if (!color.main && color[mainShade]) {\n color.main = color[mainShade];\n }\n\n if (!color.main) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? \"Material-UI: The color provided to augmentColor(color) is invalid.\\nThe color object needs to have a `main` property or a `\".concat(mainShade, \"` property.\") : (0, _utils.formatMuiErrorMessage)(4, mainShade));\n }\n\n if (typeof color.main !== 'string') {\n throw new Error(process.env.NODE_ENV !== \"production\" ? \"Material-UI: The color provided to augmentColor(color) is invalid.\\n`color.main` should be a string, but `\".concat(JSON.stringify(color.main), \"` was provided instead.\\n\\nDid you intend to use one of the following approaches?\\n\\nimport {\\xA0green } from \\\"@material-ui/core/colors\\\";\\n\\nconst theme1 = createTheme({ palette: {\\n primary: green,\\n} });\\n\\nconst theme2 = createTheme({ palette: {\\n primary: { main: green[500] },\\n} });\") : _formatMuiErrorMessage(5, JSON.stringify(color.main)));\n }\n\n addLightOrDark(color, 'light', lightShade, tonalOffset);\n addLightOrDark(color, 'dark', darkShade, tonalOffset);\n\n if (!color.contrastText) {\n color.contrastText = getContrastText(color.main);\n }\n\n return color;\n };\n\n var types = {\n dark: dark,\n light: light\n };\n\n if (process.env.NODE_ENV !== 'production') {\n if (!types[type]) {\n console.error(\"Material-UI: The palette type `\".concat(type, \"` is not supported.\"));\n }\n }\n\n var paletteOutput = (0, _utils.deepmerge)((0, _extends2.default)({\n // A collection of common colors.\n common: _common.default,\n // The palette type, can be light or dark.\n type: type,\n // The colors used to represent primary interface elements for a user.\n primary: augmentColor(primary),\n // The colors used to represent secondary interface elements for a user.\n secondary: augmentColor(secondary, 'A400', 'A200', 'A700'),\n // The colors used to represent interface elements that the user should be made aware of.\n error: augmentColor(error),\n // The colors used to represent potentially dangerous actions or important messages.\n warning: augmentColor(warning),\n // The colors used to present information to the user that is neutral and not necessarily important.\n info: augmentColor(info),\n // The colors used to indicate the successful completion of an action that user triggered.\n success: augmentColor(success),\n // The grey colors.\n grey: _grey.default,\n // Used by `getContrastText()` to maximize the contrast between\n // the background and the text.\n contrastThreshold: contrastThreshold,\n // Takes a background color and returns the text color that maximizes the contrast.\n getContrastText: getContrastText,\n // Generate a rich color object.\n augmentColor: augmentColor,\n // Used by the functions below to shift a color's luminance by approximately\n // two indexes within its tonal palette.\n // E.g., shift from Red 500 to Red 300 or Red 700.\n tonalOffset: tonalOffset\n }, types[type]), other);\n return paletteOutput;\n}", "\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = createTypography;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _utils = require(\"@material-ui/utils\");\n\nfunction round(value) {\n return Math.round(value * 1e5) / 1e5;\n}\n\nvar warnedOnce = false;\n\nfunction roundWithDeprecationWarning(value) {\n if (process.env.NODE_ENV !== 'production') {\n if (!warnedOnce) {\n console.warn(['Material-UI: The `theme.typography.round` helper is deprecated.', 'Head to https://mui.com/r/migration-v4/#theme for a migration path.'].join('\\n'));\n warnedOnce = true;\n }\n }\n\n return round(value);\n}\n\nvar caseAllCaps = {\n textTransform: 'uppercase'\n};\nvar defaultFontFamily = '\"Roboto\", \"Helvetica\", \"Arial\", sans-serif';\n/**\n * @see @link{https://material.io/design/typography/the-type-system.html}\n * @see @link{https://material.io/design/typography/understanding-typography.html}\n */\n\nfunction createTypography(palette, typography) {\n var _ref = typeof typography === 'function' ? typography(palette) : typography,\n _ref$fontFamily = _ref.fontFamily,\n fontFamily = _ref$fontFamily === void 0 ? defaultFontFamily : _ref$fontFamily,\n _ref$fontSize = _ref.fontSize,\n fontSize = _ref$fontSize === void 0 ? 14 : _ref$fontSize,\n _ref$fontWeightLight = _ref.fontWeightLight,\n fontWeightLight = _ref$fontWeightLight === void 0 ? 300 : _ref$fontWeightLight,\n _ref$fontWeightRegula = _ref.fontWeightRegular,\n fontWeightRegular = _ref$fontWeightRegula === void 0 ? 400 : _ref$fontWeightRegula,\n _ref$fontWeightMedium = _ref.fontWeightMedium,\n fontWeightMedium = _ref$fontWeightMedium === void 0 ? 500 : _ref$fontWeightMedium,\n _ref$fontWeightBold = _ref.fontWeightBold,\n fontWeightBold = _ref$fontWeightBold === void 0 ? 700 : _ref$fontWeightBold,\n _ref$htmlFontSize = _ref.htmlFontSize,\n htmlFontSize = _ref$htmlFontSize === void 0 ? 16 : _ref$htmlFontSize,\n allVariants = _ref.allVariants,\n pxToRem2 = _ref.pxToRem,\n other = (0, _objectWithoutProperties2.default)(_ref, [\"fontFamily\", \"fontSize\", \"fontWeightLight\", \"fontWeightRegular\", \"fontWeightMedium\", \"fontWeightBold\", \"htmlFontSize\", \"allVariants\", \"pxToRem\"]);\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof fontSize !== 'number') {\n console.error('Material-UI: `fontSize` is required to be a number.');\n }\n\n if (typeof htmlFontSize !== 'number') {\n console.error('Material-UI: `htmlFontSize` is required to be a number.');\n }\n }\n\n var coef = fontSize / 14;\n\n var pxToRem = pxToRem2 || function (size) {\n return \"\".concat(size / htmlFontSize * coef, \"rem\");\n };\n\n var buildVariant = function buildVariant(fontWeight, size, lineHeight, letterSpacing, casing) {\n return (0, _extends2.default)({\n fontFamily: fontFamily,\n fontWeight: fontWeight,\n fontSize: pxToRem(size),\n // Unitless following https://meyerweb.com/eric/thoughts/2006/02/08/unitless-line-heights/\n lineHeight: lineHeight\n }, fontFamily === defaultFontFamily ? {\n letterSpacing: \"\".concat(round(letterSpacing / size), \"em\")\n } : {}, casing, allVariants);\n };\n\n var variants = {\n h1: buildVariant(fontWeightLight, 96, 1.167, -1.5),\n h2: buildVariant(fontWeightLight, 60, 1.2, -0.5),\n h3: buildVariant(fontWeightRegular, 48, 1.167, 0),\n h4: buildVariant(fontWeightRegular, 34, 1.235, 0.25),\n h5: buildVariant(fontWeightRegular, 24, 1.334, 0),\n h6: buildVariant(fontWeightMedium, 20, 1.6, 0.15),\n subtitle1: buildVariant(fontWeightRegular, 16, 1.75, 0.15),\n subtitle2: buildVariant(fontWeightMedium, 14, 1.57, 0.1),\n body1: buildVariant(fontWeightRegular, 16, 1.5, 0.15),\n body2: buildVariant(fontWeightRegular, 14, 1.43, 0.15),\n button: buildVariant(fontWeightMedium, 14, 1.75, 0.4, caseAllCaps),\n caption: buildVariant(fontWeightRegular, 12, 1.66, 0.4),\n overline: buildVariant(fontWeightRegular, 12, 2.66, 1, caseAllCaps)\n };\n return (0, _utils.deepmerge)((0, _extends2.default)({\n htmlFontSize: htmlFontSize,\n pxToRem: pxToRem,\n round: roundWithDeprecationWarning,\n // TODO v5: remove\n fontFamily: fontFamily,\n fontSize: fontSize,\n fontWeightLight: fontWeightLight,\n fontWeightRegular: fontWeightRegular,\n fontWeightMedium: fontWeightMedium,\n fontWeightBold: fontWeightBold\n }, variants), other, {\n clone: false // No need to clone deep\n\n });\n}", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar shadowKeyUmbraOpacity = 0.2;\nvar shadowKeyPenumbraOpacity = 0.14;\nvar shadowAmbientShadowOpacity = 0.12;\n\nfunction createShadow() {\n return [\"\".concat(arguments.length <= 0 ? undefined : arguments[0], \"px \").concat(arguments.length <= 1 ? undefined : arguments[1], \"px \").concat(arguments.length <= 2 ? undefined : arguments[2], \"px \").concat(arguments.length <= 3 ? undefined : arguments[3], \"px rgba(0,0,0,\").concat(shadowKeyUmbraOpacity, \")\"), \"\".concat(arguments.length <= 4 ? undefined : arguments[4], \"px \").concat(arguments.length <= 5 ? undefined : arguments[5], \"px \").concat(arguments.length <= 6 ? undefined : arguments[6], \"px \").concat(arguments.length <= 7 ? undefined : arguments[7], \"px rgba(0,0,0,\").concat(shadowKeyPenumbraOpacity, \")\"), \"\".concat(arguments.length <= 8 ? undefined : arguments[8], \"px \").concat(arguments.length <= 9 ? undefined : arguments[9], \"px \").concat(arguments.length <= 10 ? undefined : arguments[10], \"px \").concat(arguments.length <= 11 ? undefined : arguments[11], \"px rgba(0,0,0,\").concat(shadowAmbientShadowOpacity, \")\")].join(',');\n} // Values from https://github.com/material-components/material-components-web/blob/be8747f94574669cb5e7add1a7c54fa41a89cec7/packages/mdc-elevation/_variables.scss\n\n\nvar shadows = ['none', createShadow(0, 2, 1, -1, 0, 1, 1, 0, 0, 1, 3, 0), createShadow(0, 3, 1, -2, 0, 2, 2, 0, 0, 1, 5, 0), createShadow(0, 3, 3, -2, 0, 3, 4, 0, 0, 1, 8, 0), createShadow(0, 2, 4, -1, 0, 4, 5, 0, 0, 1, 10, 0), createShadow(0, 3, 5, -1, 0, 5, 8, 0, 0, 1, 14, 0), createShadow(0, 3, 5, -1, 0, 6, 10, 0, 0, 1, 18, 0), createShadow(0, 4, 5, -2, 0, 7, 10, 1, 0, 2, 16, 1), createShadow(0, 5, 5, -3, 0, 8, 10, 1, 0, 3, 14, 2), createShadow(0, 5, 6, -3, 0, 9, 12, 1, 0, 3, 16, 2), createShadow(0, 6, 6, -3, 0, 10, 14, 1, 0, 4, 18, 3), createShadow(0, 6, 7, -4, 0, 11, 15, 1, 0, 4, 20, 3), createShadow(0, 7, 8, -4, 0, 12, 17, 2, 0, 5, 22, 4), createShadow(0, 7, 8, -4, 0, 13, 19, 2, 0, 5, 24, 4), createShadow(0, 7, 9, -4, 0, 14, 21, 2, 0, 5, 26, 4), createShadow(0, 8, 9, -5, 0, 15, 22, 2, 0, 6, 28, 5), createShadow(0, 8, 10, -5, 0, 16, 24, 2, 0, 6, 30, 5), createShadow(0, 8, 11, -5, 0, 17, 26, 2, 0, 6, 32, 5), createShadow(0, 9, 11, -5, 0, 18, 28, 2, 0, 7, 34, 6), createShadow(0, 9, 12, -6, 0, 19, 29, 2, 0, 7, 36, 6), createShadow(0, 10, 13, -6, 0, 20, 31, 3, 0, 8, 38, 7), createShadow(0, 10, 13, -6, 0, 21, 33, 3, 0, 8, 40, 7), createShadow(0, 10, 14, -6, 0, 22, 35, 3, 0, 8, 42, 7), createShadow(0, 11, 14, -7, 0, 23, 36, 3, 0, 9, 44, 8), createShadow(0, 11, 15, -7, 0, 24, 38, 3, 0, 9, 46, 8)];\nvar _default = shadows;\nexports.default = _default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar shape = {\n borderRadius: 4\n};\nvar _default = shape;\nexports.default = _default;", "\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar responsivePropType = process.env.NODE_ENV !== 'production' ? _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string, _propTypes.default.object, _propTypes.default.array]) : {};\nvar _default = responsivePropType;\nexports.default = _default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _utils = require(\"@material-ui/utils\");\n\nfunction merge(acc, item) {\n if (!item) {\n return acc;\n }\n\n return (0, _utils.deepmerge)(acc, item, {\n clone: false // No need to clone deep, it's way faster.\n\n });\n}\n\nvar _default = merge;\nexports.default = _default;", "\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.handleBreakpoints = handleBreakpoints;\nexports.default = void 0;\n\nvar _toConsumableArray2 = _interopRequireDefault(require(\"@babel/runtime/helpers/toConsumableArray\"));\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _typeof2 = _interopRequireDefault(require(\"@babel/runtime/helpers/typeof\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _merge = _interopRequireDefault(require(\"./merge\"));\n\n// The breakpoint **start** at this value.\n// For instance with the first breakpoint xs: [xs, sm[.\nvar values = {\n xs: 0,\n sm: 600,\n md: 960,\n lg: 1280,\n xl: 1920\n};\nvar defaultBreakpoints = {\n // Sorted ASC by size. That's important.\n // It can't be configured as it's used statically for propTypes.\n keys: ['xs', 'sm', 'md', 'lg', 'xl'],\n up: function up(key) {\n return \"@media (min-width:\".concat(values[key], \"px)\");\n }\n};\n\nfunction handleBreakpoints(props, propValue, styleFromPropValue) {\n if (process.env.NODE_ENV !== 'production') {\n if (!props.theme) {\n console.error('Material-UI: You are calling a style function without a theme value.');\n }\n }\n\n if (Array.isArray(propValue)) {\n var themeBreakpoints = props.theme.breakpoints || defaultBreakpoints;\n return propValue.reduce(function (acc, item, index) {\n acc[themeBreakpoints.up(themeBreakpoints.keys[index])] = styleFromPropValue(propValue[index]);\n return acc;\n }, {});\n }\n\n if ((0, _typeof2.default)(propValue) === 'object') {\n var _themeBreakpoints = props.theme.breakpoints || defaultBreakpoints;\n\n return Object.keys(propValue).reduce(function (acc, breakpoint) {\n acc[_themeBreakpoints.up(breakpoint)] = styleFromPropValue(propValue[breakpoint]);\n return acc;\n }, {});\n }\n\n var output = styleFromPropValue(propValue);\n return output;\n}\n\nfunction breakpoints(styleFunction) {\n var newStyleFunction = function newStyleFunction(props) {\n var base = styleFunction(props);\n var themeBreakpoints = props.theme.breakpoints || defaultBreakpoints;\n var extended = themeBreakpoints.keys.reduce(function (acc, key) {\n if (props[key]) {\n acc = acc || {};\n acc[themeBreakpoints.up(key)] = styleFunction((0, _extends2.default)({\n theme: props.theme\n }, props[key]));\n }\n\n return acc;\n }, null);\n return (0, _merge.default)(base, extended);\n };\n\n newStyleFunction.propTypes = process.env.NODE_ENV !== 'production' ? (0, _extends2.default)({}, styleFunction.propTypes, {\n xs: _propTypes.default.object,\n sm: _propTypes.default.object,\n md: _propTypes.default.object,\n lg: _propTypes.default.object,\n xl: _propTypes.default.object\n }) : {};\n newStyleFunction.filterProps = ['xs', 'sm', 'md', 'lg', 'xl'].concat((0, _toConsumableArray2.default)(styleFunction.filterProps));\n return newStyleFunction;\n}\n\nvar _default = breakpoints;\nexports.default = _default;", "\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _responsivePropType = _interopRequireDefault(require(\"./responsivePropType\"));\n\nvar _breakpoints = require(\"./breakpoints\");\n\nfunction getPath(obj, path) {\n if (!path || typeof path !== 'string') {\n return null;\n }\n\n return path.split('.').reduce(function (acc, item) {\n return acc && acc[item] ? acc[item] : null;\n }, obj);\n}\n\nfunction style(options) {\n var prop = options.prop,\n _options$cssProperty = options.cssProperty,\n cssProperty = _options$cssProperty === void 0 ? options.prop : _options$cssProperty,\n themeKey = options.themeKey,\n transform = options.transform;\n\n var fn = function fn(props) {\n if (props[prop] == null) {\n return null;\n }\n\n var propValue = props[prop];\n var theme = props.theme;\n var themeMapping = getPath(theme, themeKey) || {};\n\n var styleFromPropValue = function styleFromPropValue(propValueFinal) {\n var value;\n\n if (typeof themeMapping === 'function') {\n value = themeMapping(propValueFinal);\n } else if (Array.isArray(themeMapping)) {\n value = themeMapping[propValueFinal] || propValueFinal;\n } else {\n value = getPath(themeMapping, propValueFinal) || propValueFinal;\n\n if (transform) {\n value = transform(value);\n }\n }\n\n if (cssProperty === false) {\n return value;\n }\n\n return (0, _defineProperty2.default)({}, cssProperty, value);\n };\n\n return (0, _breakpoints.handleBreakpoints)(props, propValue, styleFromPropValue);\n };\n\n fn.propTypes = process.env.NODE_ENV !== 'production' ? (0, _defineProperty2.default)({}, prop, _responsivePropType.default) : {};\n fn.filterProps = [prop];\n return fn;\n}\n\nvar _default = style;\nexports.default = _default;", "\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _merge = _interopRequireDefault(require(\"./merge\"));\n\nfunction compose() {\n for (var _len = arguments.length, styles = new Array(_len), _key = 0; _key < _len; _key++) {\n styles[_key] = arguments[_key];\n }\n\n var fn = function fn(props) {\n return styles.reduce(function (acc, style) {\n var output = style(props);\n\n if (output) {\n return (0, _merge.default)(acc, output);\n }\n\n return acc;\n }, {});\n }; // Alternative approach that doesn't yield any performance gain.\n // const handlers = styles.reduce((acc, style) => {\n // style.filterProps.forEach(prop => {\n // acc[prop] = style;\n // });\n // return acc;\n // }, {});\n // const fn = props => {\n // return Object.keys(props).reduce((acc, prop) => {\n // if (handlers[prop]) {\n // return merge(acc, handlers[prop](props));\n // }\n // return acc;\n // }, {});\n // };\n\n\n fn.propTypes = process.env.NODE_ENV !== 'production' ? styles.reduce(function (acc, style) {\n return (0, _extends2.default)(acc, style.propTypes);\n }, {}) : {};\n fn.filterProps = styles.reduce(function (acc, style) {\n return acc.concat(style.filterProps);\n }, []);\n return fn;\n}\n\nvar _default = compose;\nexports.default = _default;", "\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.borderRadius = exports.borderColor = exports.borderLeft = exports.borderBottom = exports.borderRight = exports.borderTop = exports.border = void 0;\n\nvar _style = _interopRequireDefault(require(\"./style\"));\n\nvar _compose = _interopRequireDefault(require(\"./compose\"));\n\nfunction getBorder(value) {\n if (typeof value !== 'number') {\n return value;\n }\n\n return \"\".concat(value, \"px solid\");\n}\n\nvar border = (0, _style.default)({\n prop: 'border',\n themeKey: 'borders',\n transform: getBorder\n});\nexports.border = border;\nvar borderTop = (0, _style.default)({\n prop: 'borderTop',\n themeKey: 'borders',\n transform: getBorder\n});\nexports.borderTop = borderTop;\nvar borderRight = (0, _style.default)({\n prop: 'borderRight',\n themeKey: 'borders',\n transform: getBorder\n});\nexports.borderRight = borderRight;\nvar borderBottom = (0, _style.default)({\n prop: 'borderBottom',\n themeKey: 'borders',\n transform: getBorder\n});\nexports.borderBottom = borderBottom;\nvar borderLeft = (0, _style.default)({\n prop: 'borderLeft',\n themeKey: 'borders',\n transform: getBorder\n});\nexports.borderLeft = borderLeft;\nvar borderColor = (0, _style.default)({\n prop: 'borderColor',\n themeKey: 'palette'\n});\nexports.borderColor = borderColor;\nvar borderRadius = (0, _style.default)({\n prop: 'borderRadius',\n themeKey: 'shape'\n});\nexports.borderRadius = borderRadius;\nvar borders = (0, _compose.default)(border, borderTop, borderRight, borderBottom, borderLeft, borderColor, borderRadius);\nvar _default = borders;\nexports.default = _default;", "\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.css = css;\nexports.default = void 0;\n\nvar _toConsumableArray2 = _interopRequireDefault(require(\"@babel/runtime/helpers/toConsumableArray\"));\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _utils = require(\"@material-ui/utils\");\n\nvar _merge = _interopRequireDefault(require(\"./merge\"));\n\nfunction omit(input, fields) {\n var output = {};\n Object.keys(input).forEach(function (prop) {\n if (fields.indexOf(prop) === -1) {\n output[prop] = input[prop];\n }\n });\n return output;\n}\n\nvar warnedOnce = false;\n\nfunction styleFunctionSx(styleFunction) {\n var newStyleFunction = function newStyleFunction(props) {\n var output = styleFunction(props);\n\n if (props.css) {\n return (0, _extends2.default)({}, (0, _merge.default)(output, styleFunction((0, _extends2.default)({\n theme: props.theme\n }, props.css))), omit(props.css, [styleFunction.filterProps]));\n }\n\n if (props.sx) {\n return (0, _extends2.default)({}, (0, _merge.default)(output, styleFunction((0, _extends2.default)({\n theme: props.theme\n }, props.sx))), omit(props.sx, [styleFunction.filterProps]));\n }\n\n return output;\n };\n\n newStyleFunction.propTypes = process.env.NODE_ENV !== 'production' ? (0, _extends2.default)({}, styleFunction.propTypes, {\n css: (0, _utils.chainPropTypes)(_propTypes.default.object, function (props) {\n if (!warnedOnce && props.css !== undefined) {\n warnedOnce = true;\n return new Error('Material-UI: The `css` prop is deprecated, please use the `sx` prop instead.');\n }\n\n return null;\n }),\n sx: _propTypes.default.object\n }) : {};\n newStyleFunction.filterProps = ['css', 'sx'].concat((0, _toConsumableArray2.default)(styleFunction.filterProps));\n return newStyleFunction;\n}\n/**\n *\n * @deprecated\n * The css style function is deprecated. Use the `styleFunctionSx` instead.\n */\n\n\nfunction css(styleFunction) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn('Material-UI: The `css` function is deprecated. Use the `styleFunctionSx` instead.');\n }\n\n return styleFunctionSx(styleFunction);\n}\n\nvar _default = styleFunctionSx;\nexports.default = _default;", "\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.whiteSpace = exports.visibility = exports.textOverflow = exports.overflow = exports.displayRaw = exports.displayPrint = void 0;\n\nvar _style = _interopRequireDefault(require(\"./style\"));\n\nvar _compose = _interopRequireDefault(require(\"./compose\"));\n\nvar displayPrint = (0, _style.default)({\n prop: 'displayPrint',\n cssProperty: false,\n transform: function transform(value) {\n return {\n '@media print': {\n display: value\n }\n };\n }\n});\nexports.displayPrint = displayPrint;\nvar displayRaw = (0, _style.default)({\n prop: 'display'\n});\nexports.displayRaw = displayRaw;\nvar overflow = (0, _style.default)({\n prop: 'overflow'\n});\nexports.overflow = overflow;\nvar textOverflow = (0, _style.default)({\n prop: 'textOverflow'\n});\nexports.textOverflow = textOverflow;\nvar visibility = (0, _style.default)({\n prop: 'visibility'\n});\nexports.visibility = visibility;\nvar whiteSpace = (0, _style.default)({\n prop: 'whiteSpace'\n});\nexports.whiteSpace = whiteSpace;\n\nvar _default = (0, _compose.default)(displayPrint, displayRaw, overflow, textOverflow, visibility, whiteSpace);\n\nexports.default = _default;", "\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.justifySelf = exports.justifyItems = exports.alignSelf = exports.flexShrink = exports.flexGrow = exports.flex = exports.order = exports.alignContent = exports.alignItems = exports.justifyContent = exports.flexWrap = exports.flexDirection = exports.flexBasis = void 0;\n\nvar _style = _interopRequireDefault(require(\"./style\"));\n\nvar _compose = _interopRequireDefault(require(\"./compose\"));\n\nvar flexBasis = (0, _style.default)({\n prop: 'flexBasis'\n});\nexports.flexBasis = flexBasis;\nvar flexDirection = (0, _style.default)({\n prop: 'flexDirection'\n});\nexports.flexDirection = flexDirection;\nvar flexWrap = (0, _style.default)({\n prop: 'flexWrap'\n});\nexports.flexWrap = flexWrap;\nvar justifyContent = (0, _style.default)({\n prop: 'justifyContent'\n});\nexports.justifyContent = justifyContent;\nvar alignItems = (0, _style.default)({\n prop: 'alignItems'\n});\nexports.alignItems = alignItems;\nvar alignContent = (0, _style.default)({\n prop: 'alignContent'\n});\nexports.alignContent = alignContent;\nvar order = (0, _style.default)({\n prop: 'order'\n});\nexports.order = order;\nvar flex = (0, _style.default)({\n prop: 'flex'\n});\nexports.flex = flex;\nvar flexGrow = (0, _style.default)({\n prop: 'flexGrow'\n});\nexports.flexGrow = flexGrow;\nvar flexShrink = (0, _style.default)({\n prop: 'flexShrink'\n});\nexports.flexShrink = flexShrink;\nvar alignSelf = (0, _style.default)({\n prop: 'alignSelf'\n});\nexports.alignSelf = alignSelf;\nvar justifyItems = (0, _style.default)({\n prop: 'justifyItems'\n});\nexports.justifyItems = justifyItems;\nvar justifySelf = (0, _style.default)({\n prop: 'justifySelf'\n});\nexports.justifySelf = justifySelf;\nvar flexbox = (0, _compose.default)(flexBasis, flexDirection, flexWrap, justifyContent, alignItems, alignContent, order, flex, flexGrow, flexShrink, alignSelf, justifyItems, justifySelf);\nvar _default = flexbox;\nexports.default = _default;", "\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.gridArea = exports.gridTemplateAreas = exports.gridTemplateRows = exports.gridTemplateColumns = exports.gridAutoRows = exports.gridAutoColumns = exports.gridAutoFlow = exports.gridRow = exports.gridColumn = exports.gridRowGap = exports.gridColumnGap = exports.gridGap = void 0;\n\nvar _style = _interopRequireDefault(require(\"./style\"));\n\nvar _compose = _interopRequireDefault(require(\"./compose\"));\n\nvar gridGap = (0, _style.default)({\n prop: 'gridGap'\n});\nexports.gridGap = gridGap;\nvar gridColumnGap = (0, _style.default)({\n prop: 'gridColumnGap'\n});\nexports.gridColumnGap = gridColumnGap;\nvar gridRowGap = (0, _style.default)({\n prop: 'gridRowGap'\n});\nexports.gridRowGap = gridRowGap;\nvar gridColumn = (0, _style.default)({\n prop: 'gridColumn'\n});\nexports.gridColumn = gridColumn;\nvar gridRow = (0, _style.default)({\n prop: 'gridRow'\n});\nexports.gridRow = gridRow;\nvar gridAutoFlow = (0, _style.default)({\n prop: 'gridAutoFlow'\n});\nexports.gridAutoFlow = gridAutoFlow;\nvar gridAutoColumns = (0, _style.default)({\n prop: 'gridAutoColumns'\n});\nexports.gridAutoColumns = gridAutoColumns;\nvar gridAutoRows = (0, _style.default)({\n prop: 'gridAutoRows'\n});\nexports.gridAutoRows = gridAutoRows;\nvar gridTemplateColumns = (0, _style.default)({\n prop: 'gridTemplateColumns'\n});\nexports.gridTemplateColumns = gridTemplateColumns;\nvar gridTemplateRows = (0, _style.default)({\n prop: 'gridTemplateRows'\n});\nexports.gridTemplateRows = gridTemplateRows;\nvar gridTemplateAreas = (0, _style.default)({\n prop: 'gridTemplateAreas'\n});\nexports.gridTemplateAreas = gridTemplateAreas;\nvar gridArea = (0, _style.default)({\n prop: 'gridArea'\n});\nexports.gridArea = gridArea;\nvar grid = (0, _compose.default)(gridGap, gridColumnGap, gridRowGap, gridColumn, gridRow, gridAutoFlow, gridAutoColumns, gridAutoRows, gridTemplateColumns, gridTemplateRows, gridTemplateAreas, gridArea);\nvar _default = grid;\nexports.default = _default;", "\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.bgcolor = exports.color = void 0;\n\nvar _style = _interopRequireDefault(require(\"./style\"));\n\nvar _compose = _interopRequireDefault(require(\"./compose\"));\n\nvar color = (0, _style.default)({\n prop: 'color',\n themeKey: 'palette'\n});\nexports.color = color;\nvar bgcolor = (0, _style.default)({\n prop: 'bgcolor',\n cssProperty: 'backgroundColor',\n themeKey: 'palette'\n});\nexports.bgcolor = bgcolor;\nvar palette = (0, _compose.default)(color, bgcolor);\nvar _default = palette;\nexports.default = _default;", "\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.left = exports.bottom = exports.right = exports.top = exports.zIndex = exports.position = void 0;\n\nvar _style = _interopRequireDefault(require(\"./style\"));\n\nvar _compose = _interopRequireDefault(require(\"./compose\"));\n\nvar position = (0, _style.default)({\n prop: 'position'\n});\nexports.position = position;\nvar zIndex = (0, _style.default)({\n prop: 'zIndex',\n themeKey: 'zIndex'\n});\nexports.zIndex = zIndex;\nvar top = (0, _style.default)({\n prop: 'top'\n});\nexports.top = top;\nvar right = (0, _style.default)({\n prop: 'right'\n});\nexports.right = right;\nvar bottom = (0, _style.default)({\n prop: 'bottom'\n});\nexports.bottom = bottom;\nvar left = (0, _style.default)({\n prop: 'left'\n});\nexports.left = left;\n\nvar _default = (0, _compose.default)(position, zIndex, top, right, bottom, left);\n\nexports.default = _default;", "\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _style = _interopRequireDefault(require(\"./style\"));\n\nvar boxShadow = (0, _style.default)({\n prop: 'boxShadow',\n themeKey: 'shadows'\n});\nvar _default = boxShadow;\nexports.default = _default;", "\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.boxSizing = exports.sizeHeight = exports.sizeWidth = exports.minHeight = exports.maxHeight = exports.height = exports.minWidth = exports.maxWidth = exports.width = void 0;\n\nvar _style = _interopRequireDefault(require(\"./style\"));\n\nvar _compose = _interopRequireDefault(require(\"./compose\"));\n\nfunction transform(value) {\n return value <= 1 ? \"\".concat(value * 100, \"%\") : value;\n}\n\nvar width = (0, _style.default)({\n prop: 'width',\n transform: transform\n});\nexports.width = width;\nvar maxWidth = (0, _style.default)({\n prop: 'maxWidth',\n transform: transform\n});\nexports.maxWidth = maxWidth;\nvar minWidth = (0, _style.default)({\n prop: 'minWidth',\n transform: transform\n});\nexports.minWidth = minWidth;\nvar height = (0, _style.default)({\n prop: 'height',\n transform: transform\n});\nexports.height = height;\nvar maxHeight = (0, _style.default)({\n prop: 'maxHeight',\n transform: transform\n});\nexports.maxHeight = maxHeight;\nvar minHeight = (0, _style.default)({\n prop: 'minHeight',\n transform: transform\n});\nexports.minHeight = minHeight;\nvar sizeWidth = (0, _style.default)({\n prop: 'size',\n cssProperty: 'width',\n transform: transform\n});\nexports.sizeWidth = sizeWidth;\nvar sizeHeight = (0, _style.default)({\n prop: 'size',\n cssProperty: 'height',\n transform: transform\n});\nexports.sizeHeight = sizeHeight;\nvar boxSizing = (0, _style.default)({\n prop: 'boxSizing'\n});\nexports.boxSizing = boxSizing;\nvar sizing = (0, _compose.default)(width, maxWidth, minWidth, height, maxHeight, minHeight, boxSizing);\nvar _default = sizing;\nexports.default = _default;", "function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nmodule.exports = _arrayWithHoles, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;", "function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nmodule.exports = _iterableToArrayLimit, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;", "function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nmodule.exports = _nonIterableRest, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;", "var arrayWithHoles = require(\"./arrayWithHoles.js\");\n\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit.js\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\n\nvar nonIterableRest = require(\"./nonIterableRest.js\");\n\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}\n\nmodule.exports = _slicedToArray, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = memoize;\n\nfunction memoize(fn) {\n var cache = {};\n return function (arg) {\n if (cache[arg] === undefined) {\n cache[arg] = fn(arg);\n }\n\n return cache[arg];\n };\n}", "\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.createUnarySpacing = createUnarySpacing;\nexports.default = void 0;\n\nvar _slicedToArray2 = _interopRequireDefault(require(\"@babel/runtime/helpers/slicedToArray\"));\n\nvar _responsivePropType = _interopRequireDefault(require(\"./responsivePropType\"));\n\nvar _breakpoints = require(\"./breakpoints\");\n\nvar _merge = _interopRequireDefault(require(\"./merge\"));\n\nvar _memoize = _interopRequireDefault(require(\"./memoize\"));\n\nvar properties = {\n m: 'margin',\n p: 'padding'\n};\nvar directions = {\n t: 'Top',\n r: 'Right',\n b: 'Bottom',\n l: 'Left',\n x: ['Left', 'Right'],\n y: ['Top', 'Bottom']\n};\nvar aliases = {\n marginX: 'mx',\n marginY: 'my',\n paddingX: 'px',\n paddingY: 'py'\n}; // memoize() impact:\n// From 300,000 ops/sec\n// To 350,000 ops/sec\n\nvar getCssProperties = (0, _memoize.default)(function (prop) {\n // It's not a shorthand notation.\n if (prop.length > 2) {\n if (aliases[prop]) {\n prop = aliases[prop];\n } else {\n return [prop];\n }\n }\n\n var _prop$split = prop.split(''),\n _prop$split2 = (0, _slicedToArray2.default)(_prop$split, 2),\n a = _prop$split2[0],\n b = _prop$split2[1];\n\n var property = properties[a];\n var direction = directions[b] || '';\n return Array.isArray(direction) ? direction.map(function (dir) {\n return property + dir;\n }) : [property + direction];\n});\nvar spacingKeys = ['m', 'mt', 'mr', 'mb', 'ml', 'mx', 'my', 'p', 'pt', 'pr', 'pb', 'pl', 'px', 'py', 'margin', 'marginTop', 'marginRight', 'marginBottom', 'marginLeft', 'marginX', 'marginY', 'padding', 'paddingTop', 'paddingRight', 'paddingBottom', 'paddingLeft', 'paddingX', 'paddingY'];\n\nfunction createUnarySpacing(theme) {\n var themeSpacing = theme.spacing || 8;\n\n if (typeof themeSpacing === 'number') {\n return function (abs) {\n if (process.env.NODE_ENV !== 'production') {\n if (typeof abs !== 'number') {\n console.error(\"Material-UI: Expected spacing argument to be a number, got \".concat(abs, \".\"));\n }\n }\n\n return themeSpacing * abs;\n };\n }\n\n if (Array.isArray(themeSpacing)) {\n return function (abs) {\n if (process.env.NODE_ENV !== 'production') {\n if (abs > themeSpacing.length - 1) {\n console.error([\"Material-UI: The value provided (\".concat(abs, \") overflows.\"), \"The supported values are: \".concat(JSON.stringify(themeSpacing), \".\"), \"\".concat(abs, \" > \").concat(themeSpacing.length - 1, \", you need to add the missing values.\")].join('\\n'));\n }\n }\n\n return themeSpacing[abs];\n };\n }\n\n if (typeof themeSpacing === 'function') {\n return themeSpacing;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n console.error([\"Material-UI: The `theme.spacing` value (\".concat(themeSpacing, \") is invalid.\"), 'It should be a number, an array or a function.'].join('\\n'));\n }\n\n return function () {\n return undefined;\n };\n}\n\nfunction getValue(transformer, propValue) {\n if (typeof propValue === 'string' || propValue == null) {\n return propValue;\n }\n\n var abs = Math.abs(propValue);\n var transformed = transformer(abs);\n\n if (propValue >= 0) {\n return transformed;\n }\n\n if (typeof transformed === 'number') {\n return -transformed;\n }\n\n return \"-\".concat(transformed);\n}\n\nfunction getStyleFromPropValue(cssProperties, transformer) {\n return function (propValue) {\n return cssProperties.reduce(function (acc, cssProperty) {\n acc[cssProperty] = getValue(transformer, propValue);\n return acc;\n }, {});\n };\n}\n\nfunction spacing(props) {\n var theme = props.theme;\n var transformer = createUnarySpacing(theme);\n return Object.keys(props).map(function (prop) {\n // Using a hash computation over an array iteration could be faster, but with only 28 items,\n // it's doesn't worth the bundle size.\n if (spacingKeys.indexOf(prop) === -1) {\n return null;\n }\n\n var cssProperties = getCssProperties(prop);\n var styleFromPropValue = getStyleFromPropValue(cssProperties, transformer);\n var propValue = props[prop];\n return (0, _breakpoints.handleBreakpoints)(props, propValue, styleFromPropValue);\n }).reduce(_merge.default, {});\n}\n\nspacing.propTypes = process.env.NODE_ENV !== 'production' ? spacingKeys.reduce(function (obj, key) {\n obj[key] = _responsivePropType.default;\n return obj;\n}, {}) : {};\nspacing.filterProps = spacingKeys;\nvar _default = spacing;\nexports.default = _default;", "\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.textAlign = exports.lineHeight = exports.letterSpacing = exports.fontWeight = exports.fontStyle = exports.fontSize = exports.fontFamily = void 0;\n\nvar _style = _interopRequireDefault(require(\"./style\"));\n\nvar _compose = _interopRequireDefault(require(\"./compose\"));\n\nvar fontFamily = (0, _style.default)({\n prop: 'fontFamily',\n themeKey: 'typography'\n});\nexports.fontFamily = fontFamily;\nvar fontSize = (0, _style.default)({\n prop: 'fontSize',\n themeKey: 'typography'\n});\nexports.fontSize = fontSize;\nvar fontStyle = (0, _style.default)({\n prop: 'fontStyle',\n themeKey: 'typography'\n});\nexports.fontStyle = fontStyle;\nvar fontWeight = (0, _style.default)({\n prop: 'fontWeight',\n themeKey: 'typography'\n});\nexports.fontWeight = fontWeight;\nvar letterSpacing = (0, _style.default)({\n prop: 'letterSpacing'\n});\nexports.letterSpacing = letterSpacing;\nvar lineHeight = (0, _style.default)({\n prop: 'lineHeight'\n});\nexports.lineHeight = lineHeight;\nvar textAlign = (0, _style.default)({\n prop: 'textAlign'\n});\nexports.textAlign = textAlign;\nvar typography = (0, _compose.default)(fontFamily, fontSize, fontStyle, fontWeight, letterSpacing, lineHeight, textAlign);\nvar _default = typography;\nexports.default = _default;", "/** @license Material-UI v4.12.2\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nvar _exportNames = {\n borders: true,\n breakpoints: true,\n compose: true,\n styleFunctionSx: true,\n display: true,\n flexbox: true,\n grid: true,\n palette: true,\n positions: true,\n shadows: true,\n sizing: true,\n spacing: true,\n style: true,\n typography: true\n};\nObject.defineProperty(exports, \"borders\", {\n enumerable: true,\n get: function get() {\n return _borders.default;\n }\n});\nObject.defineProperty(exports, \"breakpoints\", {\n enumerable: true,\n get: function get() {\n return _breakpoints.default;\n }\n});\nObject.defineProperty(exports, \"compose\", {\n enumerable: true,\n get: function get() {\n return _compose.default;\n }\n});\nObject.defineProperty(exports, \"styleFunctionSx\", {\n enumerable: true,\n get: function get() {\n return _styleFunctionSx.default;\n }\n});\nObject.defineProperty(exports, \"display\", {\n enumerable: true,\n get: function get() {\n return _display.default;\n }\n});\nObject.defineProperty(exports, \"flexbox\", {\n enumerable: true,\n get: function get() {\n return _flexbox.default;\n }\n});\nObject.defineProperty(exports, \"grid\", {\n enumerable: true,\n get: function get() {\n return _grid.default;\n }\n});\nObject.defineProperty(exports, \"palette\", {\n enumerable: true,\n get: function get() {\n return _palette.default;\n }\n});\nObject.defineProperty(exports, \"positions\", {\n enumerable: true,\n get: function get() {\n return _positions.default;\n }\n});\nObject.defineProperty(exports, \"shadows\", {\n enumerable: true,\n get: function get() {\n return _shadows.default;\n }\n});\nObject.defineProperty(exports, \"sizing\", {\n enumerable: true,\n get: function get() {\n return _sizing.default;\n }\n});\nObject.defineProperty(exports, \"spacing\", {\n enumerable: true,\n get: function get() {\n return _spacing.default;\n }\n});\nObject.defineProperty(exports, \"style\", {\n enumerable: true,\n get: function get() {\n return _style.default;\n }\n});\nObject.defineProperty(exports, \"typography\", {\n enumerable: true,\n get: function get() {\n return _typography.default;\n }\n});\n\nvar _borders = _interopRequireWildcard(require(\"./borders\"));\n\nObject.keys(_borders).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _borders[key];\n }\n });\n});\n\nvar _breakpoints = _interopRequireDefault(require(\"./breakpoints\"));\n\nvar _compose = _interopRequireDefault(require(\"./compose\"));\n\nvar _styleFunctionSx = _interopRequireWildcard(require(\"./styleFunctionSx\"));\n\nObject.keys(_styleFunctionSx).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _styleFunctionSx[key];\n }\n });\n});\n\nvar _display = _interopRequireDefault(require(\"./display\"));\n\nvar _flexbox = _interopRequireWildcard(require(\"./flexbox\"));\n\nObject.keys(_flexbox).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _flexbox[key];\n }\n });\n});\n\nvar _grid = _interopRequireWildcard(require(\"./grid\"));\n\nObject.keys(_grid).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _grid[key];\n }\n });\n});\n\nvar _palette = _interopRequireWildcard(require(\"./palette\"));\n\nObject.keys(_palette).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _palette[key];\n }\n });\n});\n\nvar _positions = _interopRequireWildcard(require(\"./positions\"));\n\nObject.keys(_positions).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _positions[key];\n }\n });\n});\n\nvar _shadows = _interopRequireDefault(require(\"./shadows\"));\n\nvar _sizing = _interopRequireWildcard(require(\"./sizing\"));\n\nObject.keys(_sizing).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _sizing[key];\n }\n });\n});\n\nvar _spacing = _interopRequireWildcard(require(\"./spacing\"));\n\nObject.keys(_spacing).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _spacing[key];\n }\n });\n});\n\nvar _style = _interopRequireDefault(require(\"./style\"));\n\nvar _typography = _interopRequireWildcard(require(\"./typography\"));\n\nObject.keys(_typography).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _typography[key];\n }\n });\n});", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = createSpacing;\n\nvar _system = require(\"@material-ui/system\");\n\nvar warnOnce;\n\nfunction createSpacing() {\n var spacingInput = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 8;\n\n // Already transformed.\n if (spacingInput.mui) {\n return spacingInput;\n } // Material Design layouts are visually balanced. Most measurements align to an 8dp grid applied, which aligns both spacing and the overall layout.\n // Smaller components, such as icons and type, can align to a 4dp grid.\n // https://material.io/design/layout/understanding-layout.html#usage\n\n\n var transform = (0, _system.createUnarySpacing)({\n spacing: spacingInput\n });\n\n var spacing = function spacing() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (!(args.length <= 4)) {\n console.error(\"Material-UI: Too many arguments provided, expected between 0 and 4, got \".concat(args.length));\n }\n }\n\n if (args.length === 0) {\n return transform(1);\n }\n\n if (args.length === 1) {\n return transform(args[0]);\n }\n\n return args.map(function (argument) {\n if (typeof argument === 'string') {\n return argument;\n }\n\n var output = transform(argument);\n return typeof output === 'number' ? \"\".concat(output, \"px\") : output;\n }).join(' ');\n }; // Backward compatibility, to remove in v5.\n\n\n Object.defineProperty(spacing, 'unit', {\n get: function get() {\n if (process.env.NODE_ENV !== 'production') {\n if (!warnOnce || process.env.NODE_ENV === 'test') {\n console.error(['Material-UI: theme.spacing.unit usage has been deprecated.', 'It will be removed in v5.', 'You can replace `theme.spacing.unit * y` with `theme.spacing(y)`.', '', 'You can use the `https://github.com/mui-org/material-ui/tree/master/packages/material-ui-codemod/README.md#theme-spacing-api` migration helper to make the process smoother.'].join('\\n'));\n }\n\n warnOnce = true;\n }\n\n return spacingInput;\n }\n });\n spacing.mui = true;\n return spacing;\n}", "\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.duration = exports.easing = void 0;\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\n// Follow https://material.google.com/motion/duration-easing.html#duration-easing-natural-easing-curves\n// to learn the context in which each easing should be used.\nvar easing = {\n // This is the most common easing curve.\n easeInOut: 'cubic-bezier(0.4, 0, 0.2, 1)',\n // Objects enter the screen at full velocity from off-screen and\n // slowly decelerate to a resting point.\n easeOut: 'cubic-bezier(0.0, 0, 0.2, 1)',\n // Objects leave the screen at full velocity. They do not decelerate when off-screen.\n easeIn: 'cubic-bezier(0.4, 0, 1, 1)',\n // The sharp curve is used by objects that may return to the screen at any time.\n sharp: 'cubic-bezier(0.4, 0, 0.6, 1)'\n}; // Follow https://material.io/guidelines/motion/duration-easing.html#duration-easing-common-durations\n// to learn when use what timing\n\nexports.easing = easing;\nvar duration = {\n shortest: 150,\n shorter: 200,\n short: 250,\n // most basic recommended timing\n standard: 300,\n // this is to be used in complex animations\n complex: 375,\n // recommended when something is entering screen\n enteringScreen: 225,\n // recommended when something is leaving screen\n leavingScreen: 195\n};\nexports.duration = duration;\n\nfunction formatMs(milliseconds) {\n return \"\".concat(Math.round(milliseconds), \"ms\");\n}\n/**\n * @param {string|Array} props\n * @param {object} param\n * @param {string} param.prop\n * @param {number} param.duration\n * @param {string} param.easing\n * @param {number} param.delay\n */\n\n\nvar _default = {\n easing: easing,\n duration: duration,\n create: function create() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['all'];\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _options$duration = options.duration,\n durationOption = _options$duration === void 0 ? duration.standard : _options$duration,\n _options$easing = options.easing,\n easingOption = _options$easing === void 0 ? easing.easeInOut : _options$easing,\n _options$delay = options.delay,\n delay = _options$delay === void 0 ? 0 : _options$delay,\n other = (0, _objectWithoutProperties2.default)(options, [\"duration\", \"easing\", \"delay\"]);\n\n if (process.env.NODE_ENV !== 'production') {\n var isString = function isString(value) {\n return typeof value === 'string';\n };\n\n var isNumber = function isNumber(value) {\n return !isNaN(parseFloat(value));\n };\n\n if (!isString(props) && !Array.isArray(props)) {\n console.error('Material-UI: Argument \"props\" must be a string or Array.');\n }\n\n if (!isNumber(durationOption) && !isString(durationOption)) {\n console.error(\"Material-UI: Argument \\\"duration\\\" must be a number or a string but found \".concat(durationOption, \".\"));\n }\n\n if (!isString(easingOption)) {\n console.error('Material-UI: Argument \"easing\" must be a string.');\n }\n\n if (!isNumber(delay) && !isString(delay)) {\n console.error('Material-UI: Argument \"delay\" must be a number or a string.');\n }\n\n if (Object.keys(other).length !== 0) {\n console.error(\"Material-UI: Unrecognized argument(s) [\".concat(Object.keys(other).join(','), \"].\"));\n }\n }\n\n return (Array.isArray(props) ? props : [props]).map(function (animatedProp) {\n return \"\".concat(animatedProp, \" \").concat(typeof durationOption === 'string' ? durationOption : formatMs(durationOption), \" \").concat(easingOption, \" \").concat(typeof delay === 'string' ? delay : formatMs(delay));\n }).join(',');\n },\n getAutoHeightDuration: function getAutoHeightDuration(height) {\n if (!height) {\n return 0;\n }\n\n var constant = height / 36; // https://www.wolframalpha.com/input/?i=(4+%2B+15+*+(x+%2F+36+)+**+0.25+%2B+(x+%2F+36)+%2F+5)+*+10\n\n return Math.round((4 + 15 * Math.pow(constant, 0.25) + constant / 5) * 10);\n }\n};\nexports.default = _default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n// We need to centralize the zIndex definitions as they work\n// like global values in the browser.\nvar zIndex = {\n mobileStepper: 1000,\n speedDial: 1050,\n appBar: 1100,\n drawer: 1200,\n modal: 1300,\n snackbar: 1400,\n tooltip: 1500\n};\nvar _default = zIndex;\nexports.default = _default;", "\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.createMuiTheme = createMuiTheme;\nexports.default = void 0;\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar _utils = require(\"@material-ui/utils\");\n\nvar _createBreakpoints = _interopRequireDefault(require(\"./createBreakpoints\"));\n\nvar _createMixins = _interopRequireDefault(require(\"./createMixins\"));\n\nvar _createPalette = _interopRequireDefault(require(\"./createPalette\"));\n\nvar _createTypography = _interopRequireDefault(require(\"./createTypography\"));\n\nvar _shadows = _interopRequireDefault(require(\"./shadows\"));\n\nvar _shape = _interopRequireDefault(require(\"./shape\"));\n\nvar _createSpacing = _interopRequireDefault(require(\"./createSpacing\"));\n\nvar _transitions = _interopRequireDefault(require(\"./transitions\"));\n\nvar _zIndex = _interopRequireDefault(require(\"./zIndex\"));\n\nfunction createTheme() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _options$breakpoints = options.breakpoints,\n breakpointsInput = _options$breakpoints === void 0 ? {} : _options$breakpoints,\n _options$mixins = options.mixins,\n mixinsInput = _options$mixins === void 0 ? {} : _options$mixins,\n _options$palette = options.palette,\n paletteInput = _options$palette === void 0 ? {} : _options$palette,\n spacingInput = options.spacing,\n _options$typography = options.typography,\n typographyInput = _options$typography === void 0 ? {} : _options$typography,\n other = (0, _objectWithoutProperties2.default)(options, [\"breakpoints\", \"mixins\", \"palette\", \"spacing\", \"typography\"]);\n var palette = (0, _createPalette.default)(paletteInput);\n var breakpoints = (0, _createBreakpoints.default)(breakpointsInput);\n var spacing = (0, _createSpacing.default)(spacingInput);\n var muiTheme = (0, _utils.deepmerge)({\n breakpoints: breakpoints,\n direction: 'ltr',\n mixins: (0, _createMixins.default)(breakpoints, spacing, mixinsInput),\n overrides: {},\n // Inject custom styles\n palette: palette,\n props: {},\n // Provide default props\n shadows: _shadows.default,\n typography: (0, _createTypography.default)(palette, typographyInput),\n spacing: spacing,\n shape: _shape.default,\n transitions: _transitions.default,\n zIndex: _zIndex.default\n }, other);\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n muiTheme = args.reduce(function (acc, argument) {\n return (0, _utils.deepmerge)(acc, argument);\n }, muiTheme);\n\n if (process.env.NODE_ENV !== 'production') {\n var pseudoClasses = ['checked', 'disabled', 'error', 'focused', 'focusVisible', 'required', 'expanded', 'selected'];\n\n var traverse = function traverse(node, parentKey) {\n var depth = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n var key; // eslint-disable-next-line guard-for-in, no-restricted-syntax\n\n for (key in node) {\n var child = node[key];\n\n if (depth === 1) {\n if (key.indexOf('Mui') === 0 && child) {\n traverse(child, key, depth + 1);\n }\n } else if (pseudoClasses.indexOf(key) !== -1 && Object.keys(child).length > 0) {\n if (process.env.NODE_ENV !== 'production') {\n console.error([\"Material-UI: The `\".concat(parentKey, \"` component increases \") + \"the CSS specificity of the `\".concat(key, \"` internal state.\"), 'You can not override it like this: ', JSON.stringify(node, null, 2), '', 'Instead, you need to use the $ruleName syntax:', JSON.stringify({\n root: (0, _defineProperty2.default)({}, \"&$\".concat(key), child)\n }, null, 2), '', 'https://mui.com/r/pseudo-classes-guide'].join('\\n'));\n } // Remove the style to prevent global conflicts.\n\n\n node[key] = {};\n }\n }\n };\n\n traverse(muiTheme.overrides);\n }\n\n return muiTheme;\n}\n\nvar warnedOnce = false;\n\nfunction createMuiTheme() {\n if (process.env.NODE_ENV !== 'production') {\n if (!warnedOnce) {\n warnedOnce = true;\n console.error(['Material-UI: the createMuiTheme function was renamed to createTheme.', '', \"You should use `import { createTheme } from '@material-ui/core/styles'`\"].join('\\n'));\n }\n }\n\n return createTheme.apply(void 0, arguments);\n}\n\nvar _default = createTheme;\nexports.default = _default;", "\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createTheme = _interopRequireDefault(require(\"./createTheme\"));\n\nvar defaultTheme = (0, _createTheme.default)();\nvar _default = defaultTheme;\nexports.default = _default;", "\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _styles = require(\"@material-ui/styles\");\n\nvar _defaultTheme = _interopRequireDefault(require(\"./defaultTheme\"));\n\nfunction withStyles(stylesOrCreator, options) {\n return (0, _styles.withStyles)(stylesOrCreator, (0, _extends2.default)({\n defaultTheme: _defaultTheme.default\n }, options));\n}\n\nvar _default = withStyles;\nexports.default = _default;", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = setRef;\n\n// TODO v5: consider to make it private\nfunction setRef(ref, value) {\n if (typeof ref === 'function') {\n ref(value);\n } else if (ref) {\n ref.current = value;\n }\n}", "\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = useForkRef;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _setRef = _interopRequireDefault(require(\"./setRef\"));\n\nfunction useForkRef(refA, refB) {\n /**\n * This will create a new function if the ref props change and are defined.\n * This means react will call the old forkRef with `null` and the new forkRef\n * with the ref. Cleanup naturally emerges from this behavior\n */\n return React.useMemo(function () {\n if (refA == null && refB == null) {\n return null;\n }\n\n return function (refValue) {\n (0, _setRef.default)(refA, refValue);\n (0, _setRef.default)(refB, refValue);\n };\n }, [refA, refB]);\n}", "\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = useEventCallback;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar useEnhancedEffect = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;\n/**\n * https://github.com/facebook/react/issues/14099#issuecomment-440013892\n *\n * @param {function} fn\n */\n\nfunction useEventCallback(fn) {\n var ref = React.useRef(fn);\n useEnhancedEffect(function () {\n ref.current = fn;\n });\n return React.useCallback(function () {\n return (0, ref.current).apply(void 0, arguments);\n }, []);\n}", "\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = deprecatedPropType;\n\nfunction deprecatedPropType(validator, reason) {\n if (process.env.NODE_ENV === 'production') {\n return function () {\n return null;\n };\n }\n\n return function (props, propName, componentName, location, propFullName) {\n var componentNameSafe = componentName || '<>';\n var propFullNameSafe = propFullName || propName;\n\n if (typeof props[propName] !== 'undefined') {\n return new Error(\"The \".concat(location, \" `\").concat(propFullNameSafe, \"` of \") + \"`\".concat(componentNameSafe, \"` is deprecated. \").concat(reason));\n }\n\n return null;\n };\n}", "\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.teardown = teardown;\nexports.default = useIsFocusVisible;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar ReactDOM = _interopRequireWildcard(require(\"react-dom\"));\n\n// based on https://github.com/WICG/focus-visible/blob/v4.1.5/src/focus-visible.js\nvar hadKeyboardEvent = true;\nvar hadFocusVisibleRecently = false;\nvar hadFocusVisibleRecentlyTimeout = null;\nvar inputTypesWhitelist = {\n text: true,\n search: true,\n url: true,\n tel: true,\n email: true,\n password: true,\n number: true,\n date: true,\n month: true,\n week: true,\n time: true,\n datetime: true,\n 'datetime-local': true\n};\n/**\n * Computes whether the given element should automatically trigger the\n * `focus-visible` class being added, i.e. whether it should always match\n * `:focus-visible` when focused.\n * @param {Element} node\n * @return {boolean}\n */\n\nfunction focusTriggersKeyboardModality(node) {\n var type = node.type,\n tagName = node.tagName;\n\n if (tagName === 'INPUT' && inputTypesWhitelist[type] && !node.readOnly) {\n return true;\n }\n\n if (tagName === 'TEXTAREA' && !node.readOnly) {\n return true;\n }\n\n if (node.isContentEditable) {\n return true;\n }\n\n return false;\n}\n/**\n * Keep track of our keyboard modality state with `hadKeyboardEvent`.\n * If the most recent user interaction was via the keyboard;\n * and the key press did not include a meta, alt/option, or control key;\n * then the modality is keyboard. Otherwise, the modality is not keyboard.\n * @param {KeyboardEvent} event\n */\n\n\nfunction handleKeyDown(event) {\n if (event.metaKey || event.altKey || event.ctrlKey) {\n return;\n }\n\n hadKeyboardEvent = true;\n}\n/**\n * If at any point a user clicks with a pointing device, ensure that we change\n * the modality away from keyboard.\n * This avoids the situation where a user presses a key on an already focused\n * element, and then clicks on a different element, focusing it with a\n * pointing device, while we still think we're in keyboard modality.\n */\n\n\nfunction handlePointerDown() {\n hadKeyboardEvent = false;\n}\n\nfunction handleVisibilityChange() {\n if (this.visibilityState === 'hidden') {\n // If the tab becomes active again, the browser will handle calling focus\n // on the element (Safari actually calls it twice).\n // If this tab change caused a blur on an element with focus-visible,\n // re-apply the class when the user switches back to the tab.\n if (hadFocusVisibleRecently) {\n hadKeyboardEvent = true;\n }\n }\n}\n\nfunction prepare(doc) {\n doc.addEventListener('keydown', handleKeyDown, true);\n doc.addEventListener('mousedown', handlePointerDown, true);\n doc.addEventListener('pointerdown', handlePointerDown, true);\n doc.addEventListener('touchstart', handlePointerDown, true);\n doc.addEventListener('visibilitychange', handleVisibilityChange, true);\n}\n\nfunction teardown(doc) {\n doc.removeEventListener('keydown', handleKeyDown, true);\n doc.removeEventListener('mousedown', handlePointerDown, true);\n doc.removeEventListener('pointerdown', handlePointerDown, true);\n doc.removeEventListener('touchstart', handlePointerDown, true);\n doc.removeEventListener('visibilitychange', handleVisibilityChange, true);\n}\n\nfunction isFocusVisible(event) {\n var target = event.target;\n\n try {\n return target.matches(':focus-visible');\n } catch (error) {} // browsers not implementing :focus-visible will throw a SyntaxError\n // we use our own heuristic for those browsers\n // rethrow might be better if it's not the expected error but do we really\n // want to crash if focus-visible malfunctioned?\n // no need for validFocusTarget check. the user does that by attaching it to\n // focusable events only\n\n\n return hadKeyboardEvent || focusTriggersKeyboardModality(target);\n}\n/**\n * Should be called if a blur event is fired on a focus-visible element\n */\n\n\nfunction handleBlurVisible() {\n // To detect a tab/window switch, we look for a blur event followed\n // rapidly by a visibility change.\n // If we don't see a visibility change within 100ms, it's probably a\n // regular focus change.\n hadFocusVisibleRecently = true;\n window.clearTimeout(hadFocusVisibleRecentlyTimeout);\n hadFocusVisibleRecentlyTimeout = window.setTimeout(function () {\n hadFocusVisibleRecently = false;\n }, 100);\n}\n\nfunction useIsFocusVisible() {\n var ref = React.useCallback(function (instance) {\n var node = ReactDOM.findDOMNode(instance);\n\n if (node != null) {\n prepare(node.ownerDocument);\n }\n }, []);\n\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useDebugValue(isFocusVisible);\n }\n\n return {\n isFocusVisible: isFocusVisible,\n onBlurVisible: handleBlurVisible,\n ref: ref\n };\n}", "\"use strict\";\n\nexports.__esModule = true;\nexports.default = hasClass;\n\n/**\n * Checks if a given element has a CSS class.\n * \n * @param element the element\n * @param className the CSS class name\n */\nfunction hasClass(element, className) {\n if (element.classList) return !!className && element.classList.contains(className);\n return (\" \" + (element.className.baseVal || element.className) + \" \").indexOf(\" \" + className + \" \") !== -1;\n}\n\nmodule.exports = exports[\"default\"];", "\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = addClass;\n\nvar _hasClass = _interopRequireDefault(require(\"./hasClass\"));\n\n/**\n * Adds a CSS class to a given element.\n * \n * @param element the element\n * @param className the CSS class name\n */\nfunction addClass(element, className) {\n if (element.classList) element.classList.add(className);else if (!(0, _hasClass.default)(element, className)) if (typeof element.className === 'string') element.className = element.className + \" \" + className;else element.setAttribute('class', (element.className && element.className.baseVal || '') + \" \" + className);\n}\n\nmodule.exports = exports[\"default\"];", "\"use strict\";\n\nexports.__esModule = true;\nexports.default = removeClass;\n\nfunction replaceClassName(origClass, classToRemove) {\n return origClass.replace(new RegExp(\"(^|\\\\s)\" + classToRemove + \"(?:\\\\s|$)\", 'g'), '$1').replace(/\\s+/g, ' ').replace(/^\\s*|\\s*$/g, '');\n}\n/**\n * Removes a CSS class from a given element.\n * \n * @param element the element\n * @param className the CSS class name\n */\n\n\nfunction removeClass(element, className) {\n if (element.classList) {\n element.classList.remove(className);\n } else if (typeof element.className === 'string') {\n element.className = replaceClassName(element.className, className);\n } else {\n element.setAttribute('class', replaceClassName(element.className && element.className.baseVal || '', className));\n }\n}\n\nmodule.exports = exports[\"default\"];", "\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\nvar _default = {\n disabled: false\n};\nexports.default = _default;\nmodule.exports = exports.default;", "\"use strict\";\n\nexports.__esModule = true;\nexports.classNamesShape = exports.timeoutsShape = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar timeoutsShape = process.env.NODE_ENV !== 'production' ? _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.shape({\n enter: _propTypes.default.number,\n exit: _propTypes.default.number,\n appear: _propTypes.default.number\n}).isRequired]) : null;\nexports.timeoutsShape = timeoutsShape;\nvar classNamesShape = process.env.NODE_ENV !== 'production' ? _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.shape({\n enter: _propTypes.default.string,\n exit: _propTypes.default.string,\n active: _propTypes.default.string\n}), _propTypes.default.shape({\n enter: _propTypes.default.string,\n enterDone: _propTypes.default.string,\n enterActive: _propTypes.default.string,\n exit: _propTypes.default.string,\n exitDone: _propTypes.default.string,\n exitActive: _propTypes.default.string\n})]) : null;\nexports.classNamesShape = classNamesShape;", "\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar _default = _react.default.createContext(null);\n\nexports.default = _default;\nmodule.exports = exports.default;", "\"use strict\";\n\nexports.__esModule = true;\nexports.default = exports.EXITING = exports.ENTERED = exports.ENTERING = exports.EXITED = exports.UNMOUNTED = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\n\nvar _config = _interopRequireDefault(require(\"./config\"));\n\nvar _PropTypes = require(\"./utils/PropTypes\");\n\nvar _TransitionGroupContext = _interopRequireDefault(require(\"./TransitionGroupContext\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar UNMOUNTED = 'unmounted';\nexports.UNMOUNTED = UNMOUNTED;\nvar EXITED = 'exited';\nexports.EXITED = EXITED;\nvar ENTERING = 'entering';\nexports.ENTERING = ENTERING;\nvar ENTERED = 'entered';\nexports.ENTERED = ENTERED;\nvar EXITING = 'exiting';\n/**\n * The Transition component lets you describe a transition from one component\n * state to another _over time_ with a simple declarative API. Most commonly\n * it's used to animate the mounting and unmounting of a component, but can also\n * be used to describe in-place transition states as well.\n *\n * ---\n *\n * **Note**: `Transition` is a platform-agnostic base component. If you're using\n * transitions in CSS, you'll probably want to use\n * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)\n * instead. It inherits all the features of `Transition`, but contains\n * additional features necessary to play nice with CSS transitions (hence the\n * name of the component).\n *\n * ---\n *\n * By default the `Transition` component does not alter the behavior of the\n * component it renders, it only tracks \"enter\" and \"exit\" states for the\n * components. It's up to you to give meaning and effect to those states. For\n * example we can add styles to a component when it enters or exits:\n *\n * ```jsx\n * import { Transition } from 'react-transition-group';\n *\n * const duration = 300;\n *\n * const defaultStyle = {\n * transition: `opacity ${duration}ms ease-in-out`,\n * opacity: 0,\n * }\n *\n * const transitionStyles = {\n * entering: { opacity: 1 },\n * entered: { opacity: 1 },\n * exiting: { opacity: 0 },\n * exited: { opacity: 0 },\n * };\n *\n * const Fade = ({ in: inProp }) => (\n * \n * {state => (\n *
\n * I'm a fade Transition!\n *
\n * )}\n *
\n * );\n * ```\n *\n * There are 4 main states a Transition can be in:\n * - `'entering'`\n * - `'entered'`\n * - `'exiting'`\n * - `'exited'`\n *\n * Transition state is toggled via the `in` prop. When `true` the component\n * begins the \"Enter\" stage. During this stage, the component will shift from\n * its current transition state, to `'entering'` for the duration of the\n * transition and then to the `'entered'` stage once it's complete. Let's take\n * the following example (we'll use the\n * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n *
\n * \n * {state => (\n * // ...\n * )}\n * \n * \n *
\n * );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nexports.EXITING = EXITING;\n\nvar Transition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Transition, _React$Component);\n\n function Transition(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n var parentGroup = context; // In the context of a TransitionGroup all enters are really appears\n\n var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n var initialStatus;\n _this.appearStatus = null;\n\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n _this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else {\n if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n }\n\n _this.state = {\n status: initialStatus\n };\n _this.nextCallback = null;\n return _this;\n }\n\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var nextIn = _ref.in;\n\n if (nextIn && prevState.status === UNMOUNTED) {\n return {\n status: EXITED\n };\n }\n\n return null;\n } // getSnapshotBeforeUpdate(prevProps) {\n // let nextStatus = null\n // if (prevProps !== this.props) {\n // const { status } = this.state\n // if (this.props.in) {\n // if (status !== ENTERING && status !== ENTERED) {\n // nextStatus = ENTERING\n // }\n // } else {\n // if (status === ENTERING || status === ENTERED) {\n // nextStatus = EXITING\n // }\n // }\n // }\n // return { nextStatus }\n // }\n ;\n\n var _proto = Transition.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var nextStatus = null;\n\n if (prevProps !== this.props) {\n var status = this.state.status;\n\n if (this.props.in) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else {\n if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n }\n\n this.updateStatus(false, nextStatus);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n\n _proto.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n var exit, enter, appear;\n exit = enter = appear = timeout;\n\n if (timeout != null && typeof timeout !== 'number') {\n exit = timeout.exit;\n enter = timeout.enter; // TODO: remove fallback for next major\n\n appear = timeout.appear !== undefined ? timeout.appear : enter;\n }\n\n return {\n exit: exit,\n enter: enter,\n appear: appear\n };\n };\n\n _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n if (mounting === void 0) {\n mounting = false;\n }\n\n if (nextStatus !== null) {\n // nextStatus will always be ENTERING or EXITING.\n this.cancelNextCallback();\n\n if (nextStatus === ENTERING) {\n this.performEnter(mounting);\n } else {\n this.performExit();\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({\n status: UNMOUNTED\n });\n }\n };\n\n _proto.performEnter = function performEnter(mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var appearing = this.context ? this.context.isMounting : mounting;\n\n var _ref2 = this.props.nodeRef ? [appearing] : [_reactDom.default.findDOMNode(this), appearing],\n maybeNode = _ref2[0],\n maybeAppearing = _ref2[1];\n\n var timeouts = this.getTimeouts();\n var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n // if we are mounting and running this it means appear _must_ be set\n\n if (!mounting && !enter || _config.default.disabled) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode);\n });\n return;\n }\n\n this.props.onEnter(maybeNode, maybeAppearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(maybeNode, maybeAppearing);\n\n _this2.onTransitionEnd(enterTimeout, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(maybeNode, maybeAppearing);\n });\n });\n });\n };\n\n _proto.performExit = function performExit() {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts();\n var maybeNode = this.props.nodeRef ? undefined : _reactDom.default.findDOMNode(this); // no exit animation skip right to EXITED\n\n if (!exit || _config.default.disabled) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n return;\n }\n\n this.props.onExit(maybeNode);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(maybeNode);\n\n _this3.onTransitionEnd(timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(maybeNode);\n });\n });\n });\n };\n\n _proto.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n // This shouldn't be necessary, but there are weird race conditions with\n // setState callbacks and unmounting in testing, so always make sure that\n // we can cancel any pending setState callbacks after we unmount.\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n };\n\n _proto.setNextCallback = function setNextCallback(callback) {\n var _this4 = this;\n\n var active = true;\n\n this.nextCallback = function (event) {\n if (active) {\n active = false;\n _this4.nextCallback = null;\n callback(event);\n }\n };\n\n this.nextCallback.cancel = function () {\n active = false;\n };\n\n return this.nextCallback;\n };\n\n _proto.onTransitionEnd = function onTransitionEnd(timeout, handler) {\n this.setNextCallback(handler);\n var node = this.props.nodeRef ? this.props.nodeRef.current : _reactDom.default.findDOMNode(this);\n var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n if (!node || doesNotHaveTimeoutOrListener) {\n setTimeout(this.nextCallback, 0);\n return;\n }\n\n if (this.props.addEndListener) {\n var _ref3 = this.props.nodeRef ? [this.nextCallback] : [node, this.nextCallback],\n maybeNode = _ref3[0],\n maybeNextCallback = _ref3[1];\n\n this.props.addEndListener(maybeNode, maybeNextCallback);\n }\n\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n };\n\n _proto.render = function render() {\n var status = this.state.status;\n\n if (status === UNMOUNTED) {\n return null;\n }\n\n var _this$props = this.props,\n children = _this$props.children,\n _in = _this$props.in,\n _mountOnEnter = _this$props.mountOnEnter,\n _unmountOnExit = _this$props.unmountOnExit,\n _appear = _this$props.appear,\n _enter = _this$props.enter,\n _exit = _this$props.exit,\n _timeout = _this$props.timeout,\n _addEndListener = _this$props.addEndListener,\n _onEnter = _this$props.onEnter,\n _onEntering = _this$props.onEntering,\n _onEntered = _this$props.onEntered,\n _onExit = _this$props.onExit,\n _onExiting = _this$props.onExiting,\n _onExited = _this$props.onExited,\n _nodeRef = _this$props.nodeRef,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"in\", \"mountOnEnter\", \"unmountOnExit\", \"appear\", \"enter\", \"exit\", \"timeout\", \"addEndListener\", \"onEnter\", \"onEntering\", \"onEntered\", \"onExit\", \"onExiting\", \"onExited\", \"nodeRef\"]);\n\n return (\n /*#__PURE__*/\n // allows for nested Transitions\n _react.default.createElement(_TransitionGroupContext.default.Provider, {\n value: null\n }, typeof children === 'function' ? children(status, childProps) : _react.default.cloneElement(_react.default.Children.only(children), childProps))\n );\n };\n\n return Transition;\n}(_react.default.Component);\n\nTransition.contextType = _TransitionGroupContext.default;\nTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * A React reference to DOM element that need to transition:\n * https://stackoverflow.com/a/51127130/4671932\n *\n * - When `nodeRef` prop is used, `node` is not passed to callback functions\n * (e.g. `onEnter`) because user already has direct access to the node.\n * - When changing `key` prop of `Transition` in a `TransitionGroup` a new\n * `nodeRef` need to be provided to `Transition` with changed `key` prop\n * (see\n * [test/CSSTransition-test.js](https://github.com/reactjs/react-transition-group/blob/13435f897b3ab71f6e19d724f145596f5910581c/test/CSSTransition-test.js#L362-L437)).\n */\n nodeRef: _propTypes.default.shape({\n current: typeof Element === 'undefined' ? _propTypes.default.any : function (propValue, key, componentName, location, propFullName, secret) {\n var value = propValue[key];\n return _propTypes.default.instanceOf(value && 'ownerDocument' in value ? value.ownerDocument.defaultView.Element : Element)(propValue, key, componentName, location, propFullName, secret);\n }\n }),\n\n /**\n * A `function` child can be used instead of a React element. This function is\n * called with the current transition status (`'entering'`, `'entered'`,\n * `'exiting'`, `'exited'`), which can be used to apply context\n * specific props to a component.\n *\n * ```jsx\n * \n * {state => (\n * \n * )}\n * \n * ```\n */\n children: _propTypes.default.oneOfType([_propTypes.default.func.isRequired, _propTypes.default.element.isRequired]).isRequired,\n\n /**\n * Show the component; triggers the enter or exit states\n */\n in: _propTypes.default.bool,\n\n /**\n * By default the child component is mounted immediately along with\n * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n */\n mountOnEnter: _propTypes.default.bool,\n\n /**\n * By default the child component stays mounted after it reaches the `'exited'` state.\n * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n */\n unmountOnExit: _propTypes.default.bool,\n\n /**\n * By default the child component does not perform the enter transition when\n * it first mounts, regardless of the value of `in`. If you want this\n * behavior, set both `appear` and `in` to `true`.\n *\n * > **Note**: there are no special appear states like `appearing`/`appeared`, this prop\n * > only adds an additional enter transition. However, in the\n * > `` component that first enter transition does result in\n * > additional `.appear-*` classes, that way you can choose to style it\n * > differently.\n */\n appear: _propTypes.default.bool,\n\n /**\n * Enable or disable enter transitions.\n */\n enter: _propTypes.default.bool,\n\n /**\n * Enable or disable exit transitions.\n */\n exit: _propTypes.default.bool,\n\n /**\n * The duration of the transition, in milliseconds.\n * Required unless `addEndListener` is provided.\n *\n * You may specify a single timeout for all transitions:\n *\n * ```jsx\n * timeout={500}\n * ```\n *\n * or individually:\n *\n * ```jsx\n * timeout={{\n * appear: 500,\n * enter: 300,\n * exit: 500,\n * }}\n * ```\n *\n * - `appear` defaults to the value of `enter`\n * - `enter` defaults to `0`\n * - `exit` defaults to `0`\n *\n * @type {number | { enter?: number, exit?: number, appear?: number }}\n */\n timeout: function timeout(props) {\n var pt = _PropTypes.timeoutsShape;\n if (!props.addEndListener) pt = pt.isRequired;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return pt.apply(void 0, [props].concat(args));\n },\n\n /**\n * Add a custom transition end trigger. Called with the transitioning\n * DOM node and a `done` callback. Allows for more fine grained transition end\n * logic. Timeouts are still used as a fallback if provided.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * ```jsx\n * addEndListener={(node, done) => {\n * // use the css transitionend event to mark the finish of a transition\n * node.addEventListener('transitionend', done, false);\n * }}\n * ```\n */\n addEndListener: _propTypes.default.func,\n\n /**\n * Callback fired before the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEnter: _propTypes.default.func,\n\n /**\n * Callback fired after the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: _propTypes.default.func,\n\n /**\n * Callback fired after the \"entered\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEntered: _propTypes.default.func,\n\n /**\n * Callback fired before the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExit: _propTypes.default.func,\n\n /**\n * Callback fired after the \"exiting\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExiting: _propTypes.default.func,\n\n /**\n * Callback fired after the \"exited\" status is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExited: _propTypes.default.func\n} : {}; // Name the function so it is clearer in the documentation\n\nfunction noop() {}\n\nTransition.defaultProps = {\n in: false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop\n};\nTransition.UNMOUNTED = UNMOUNTED;\nTransition.EXITED = EXITED;\nTransition.ENTERING = ENTERING;\nTransition.ENTERED = ENTERED;\nTransition.EXITING = EXITING;\nvar _default = Transition;\nexports.default = _default;", "\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _addClass2 = _interopRequireDefault(require(\"dom-helpers/addClass\"));\n\nvar _removeClass = _interopRequireDefault(require(\"dom-helpers/removeClass\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _Transition = _interopRequireDefault(require(\"./Transition\"));\n\nvar _PropTypes = require(\"./utils/PropTypes\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar _addClass = function addClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return (0, _addClass2.default)(node, c);\n });\n};\n\nvar removeClass = function removeClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return (0, _removeClass.default)(node, c);\n });\n};\n/**\n * A transition component inspired by the excellent\n * [ng-animate](https://docs.angularjs.org/api/ngAnimate) library, you should\n * use it if you're using CSS transitions or animations. It's built upon the\n * [`Transition`](https://reactcommunity.org/react-transition-group/transition)\n * component, so it inherits all of its props.\n *\n * `CSSTransition` applies a pair of class names during the `appear`, `enter`,\n * and `exit` states of the transition. The first class is applied and then a\n * second `*-active` class in order to activate the CSS transition. After the\n * transition, matching `*-done` class names are applied to persist the\n * transition state.\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n *
\n * \n *
\n * {\"I'll receive my-node-* classes\"}\n *
\n *
\n * \n *
\n * );\n * }\n * ```\n *\n * When the `in` prop is set to `true`, the child component will first receive\n * the class `example-enter`, then the `example-enter-active` will be added in\n * the next tick. `CSSTransition` [forces a\n * reflow](https://github.com/reactjs/react-transition-group/blob/5007303e729a74be66a21c3e2205e4916821524b/src/CSSTransition.js#L208-L215)\n * between before adding the `example-enter-active`. This is an important trick\n * because it allows us to transition between `example-enter` and\n * `example-enter-active` even though they were added immediately one after\n * another. Most notably, this is what makes it possible for us to animate\n * _appearance_.\n *\n * ```css\n * .my-node-enter {\n * opacity: 0;\n * }\n * .my-node-enter-active {\n * opacity: 1;\n * transition: opacity 200ms;\n * }\n * .my-node-exit {\n * opacity: 1;\n * }\n * .my-node-exit-active {\n * opacity: 0;\n * transition: opacity 200ms;\n * }\n * ```\n *\n * `*-active` classes represent which styles you want to animate **to**, so it's\n * important to add `transition` declaration only to them, otherwise transitions\n * might not behave as intended! This might not be obvious when the transitions\n * are symmetrical, i.e. when `*-enter-active` is the same as `*-exit`, like in\n * the example above (minus `transition`), but it becomes apparent in more\n * complex transitions.\n *\n * **Note**: If you're using the\n * [`appear`](http://reactcommunity.org/react-transition-group/transition#Transition-prop-appear)\n * prop, make sure to define styles for `.appear-*` classes as well.\n */\n\n\nvar CSSTransition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(CSSTransition, _React$Component);\n\n function CSSTransition() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.appliedClasses = {\n appear: {},\n enter: {},\n exit: {}\n };\n\n _this.onEnter = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument[0],\n appearing = _this$resolveArgument[1];\n\n _this.removeClasses(node, 'exit');\n\n _this.addClass(node, appearing ? 'appear' : 'enter', 'base');\n\n if (_this.props.onEnter) {\n _this.props.onEnter(maybeNode, maybeAppearing);\n }\n };\n\n _this.onEntering = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument2 = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument2[0],\n appearing = _this$resolveArgument2[1];\n\n var type = appearing ? 'appear' : 'enter';\n\n _this.addClass(node, type, 'active');\n\n if (_this.props.onEntering) {\n _this.props.onEntering(maybeNode, maybeAppearing);\n }\n };\n\n _this.onEntered = function (maybeNode, maybeAppearing) {\n var _this$resolveArgument3 = _this.resolveArguments(maybeNode, maybeAppearing),\n node = _this$resolveArgument3[0],\n appearing = _this$resolveArgument3[1];\n\n var type = appearing ? 'appear' : 'enter';\n\n _this.removeClasses(node, type);\n\n _this.addClass(node, type, 'done');\n\n if (_this.props.onEntered) {\n _this.props.onEntered(maybeNode, maybeAppearing);\n }\n };\n\n _this.onExit = function (maybeNode) {\n var _this$resolveArgument4 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument4[0];\n\n _this.removeClasses(node, 'appear');\n\n _this.removeClasses(node, 'enter');\n\n _this.addClass(node, 'exit', 'base');\n\n if (_this.props.onExit) {\n _this.props.onExit(maybeNode);\n }\n };\n\n _this.onExiting = function (maybeNode) {\n var _this$resolveArgument5 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument5[0];\n\n _this.addClass(node, 'exit', 'active');\n\n if (_this.props.onExiting) {\n _this.props.onExiting(maybeNode);\n }\n };\n\n _this.onExited = function (maybeNode) {\n var _this$resolveArgument6 = _this.resolveArguments(maybeNode),\n node = _this$resolveArgument6[0];\n\n _this.removeClasses(node, 'exit');\n\n _this.addClass(node, 'exit', 'done');\n\n if (_this.props.onExited) {\n _this.props.onExited(maybeNode);\n }\n };\n\n _this.resolveArguments = function (maybeNode, maybeAppearing) {\n return _this.props.nodeRef ? [_this.props.nodeRef.current, maybeNode] // here `maybeNode` is actually `appearing`\n : [maybeNode, maybeAppearing];\n };\n\n _this.getClassNames = function (type) {\n var classNames = _this.props.classNames;\n var isStringClassNames = typeof classNames === 'string';\n var prefix = isStringClassNames && classNames ? classNames + \"-\" : '';\n var baseClassName = isStringClassNames ? \"\" + prefix + type : classNames[type];\n var activeClassName = isStringClassNames ? baseClassName + \"-active\" : classNames[type + \"Active\"];\n var doneClassName = isStringClassNames ? baseClassName + \"-done\" : classNames[type + \"Done\"];\n return {\n baseClassName: baseClassName,\n activeClassName: activeClassName,\n doneClassName: doneClassName\n };\n };\n\n return _this;\n }\n\n var _proto = CSSTransition.prototype;\n\n _proto.addClass = function addClass(node, type, phase) {\n var className = this.getClassNames(type)[phase + \"ClassName\"];\n\n var _this$getClassNames = this.getClassNames('enter'),\n doneClassName = _this$getClassNames.doneClassName;\n\n if (type === 'appear' && phase === 'done' && doneClassName) {\n className += \" \" + doneClassName;\n } // This is to force a repaint,\n // which is necessary in order to transition styles when adding a class name.\n\n\n if (phase === 'active') {\n /* eslint-disable no-unused-expressions */\n node && node.scrollTop;\n }\n\n if (className) {\n this.appliedClasses[type][phase] = className;\n\n _addClass(node, className);\n }\n };\n\n _proto.removeClasses = function removeClasses(node, type) {\n var _this$appliedClasses$ = this.appliedClasses[type],\n baseClassName = _this$appliedClasses$.base,\n activeClassName = _this$appliedClasses$.active,\n doneClassName = _this$appliedClasses$.done;\n this.appliedClasses[type] = {};\n\n if (baseClassName) {\n removeClass(node, baseClassName);\n }\n\n if (activeClassName) {\n removeClass(node, activeClassName);\n }\n\n if (doneClassName) {\n removeClass(node, doneClassName);\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n _ = _this$props.classNames,\n props = _objectWithoutPropertiesLoose(_this$props, [\"classNames\"]);\n\n return /*#__PURE__*/_react.default.createElement(_Transition.default, _extends({}, props, {\n onEnter: this.onEnter,\n onEntered: this.onEntered,\n onEntering: this.onEntering,\n onExit: this.onExit,\n onExiting: this.onExiting,\n onExited: this.onExited\n }));\n };\n\n return CSSTransition;\n}(_react.default.Component);\n\nCSSTransition.defaultProps = {\n classNames: ''\n};\nCSSTransition.propTypes = process.env.NODE_ENV !== \"production\" ? _extends({}, _Transition.default.propTypes, {\n /**\n * The animation classNames applied to the component as it appears, enters,\n * exits or has finished the transition. A single name can be provided, which\n * will be suffixed for each stage, e.g. `classNames=\"fade\"` applies:\n *\n * - `fade-appear`, `fade-appear-active`, `fade-appear-done`\n * - `fade-enter`, `fade-enter-active`, `fade-enter-done`\n * - `fade-exit`, `fade-exit-active`, `fade-exit-done`\n *\n * A few details to note about how these classes are applied:\n *\n * 1. They are _joined_ with the ones that are already defined on the child\n * component, so if you want to add some base styles, you can use\n * `className` without worrying that it will be overridden.\n *\n * 2. If the transition component mounts with `in={false}`, no classes are\n * applied yet. You might be expecting `*-exit-done`, but if you think\n * about it, a component cannot finish exiting if it hasn't entered yet.\n *\n * 2. `fade-appear-done` and `fade-enter-done` will _both_ be applied. This\n * allows you to define different behavior for when appearing is done and\n * when regular entering is done, using selectors like\n * `.fade-enter-done:not(.fade-appear-done)`. For example, you could apply\n * an epic entrance animation when element first appears in the DOM using\n * [Animate.css](https://daneden.github.io/animate.css/). Otherwise you can\n * simply use `fade-enter-done` for defining both cases.\n *\n * Each individual classNames can also be specified independently like:\n *\n * ```js\n * classNames={{\n * appear: 'my-appear',\n * appearActive: 'my-active-appear',\n * appearDone: 'my-done-appear',\n * enter: 'my-enter',\n * enterActive: 'my-active-enter',\n * enterDone: 'my-done-enter',\n * exit: 'my-exit',\n * exitActive: 'my-active-exit',\n * exitDone: 'my-done-exit',\n * }}\n * ```\n *\n * If you want to set these classes using CSS Modules:\n *\n * ```js\n * import styles from './styles.css';\n * ```\n *\n * you might want to use camelCase in your CSS file, that way could simply\n * spread them instead of listing them one by one:\n *\n * ```js\n * classNames={{ ...styles }}\n * ```\n *\n * @type {string | {\n * appear?: string,\n * appearActive?: string,\n * appearDone?: string,\n * enter?: string,\n * enterActive?: string,\n * enterDone?: string,\n * exit?: string,\n * exitActive?: string,\n * exitDone?: string,\n * }}\n */\n classNames: _PropTypes.classNamesShape,\n\n /**\n * A `` callback fired immediately after the 'enter' or 'appear' class is\n * applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEnter: _propTypes.default.func,\n\n /**\n * A `` callback fired immediately after the 'enter-active' or\n * 'appear-active' class is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: _propTypes.default.func,\n\n /**\n * A `` callback fired immediately after the 'enter' or\n * 'appear' classes are **removed** and the `done` class is added to the DOM node.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntered: _propTypes.default.func,\n\n /**\n * A `` callback fired immediately after the 'exit' class is\n * applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExit: _propTypes.default.func,\n\n /**\n * A `` callback fired immediately after the 'exit-active' is applied.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExiting: _propTypes.default.func,\n\n /**\n * A `` callback fired immediately after the 'exit' classes\n * are **removed** and the `exit-done` class is added to the DOM node.\n *\n * **Note**: when `nodeRef` prop is passed, `node` is not passed\n *\n * @type Function(node: HtmlElement)\n */\n onExited: _propTypes.default.func\n}) : {};\nvar _default = CSSTransition;\nexports.default = _default;\nmodule.exports = exports.default;", "\"use strict\";\n\nexports.__esModule = true;\nexports.getChildMapping = getChildMapping;\nexports.mergeChildMappings = mergeChildMappings;\nexports.getInitialChildMapping = getInitialChildMapping;\nexports.getNextChildMapping = getNextChildMapping;\n\nvar _react = require(\"react\");\n\n/**\n * Given `this.props.children`, return an object mapping key to child.\n *\n * @param {*} children `this.props.children`\n * @return {object} Mapping of key to child\n */\nfunction getChildMapping(children, mapFn) {\n var mapper = function mapper(child) {\n return mapFn && (0, _react.isValidElement)(child) ? mapFn(child) : child;\n };\n\n var result = Object.create(null);\n if (children) _react.Children.map(children, function (c) {\n return c;\n }).forEach(function (child) {\n // run the map function here instead so that the key is the computed one\n result[child.key] = mapper(child);\n });\n return result;\n}\n/**\n * When you're adding or removing children some may be added or removed in the\n * same render pass. We want to show *both* since we want to simultaneously\n * animate elements in and out. This function takes a previous set of keys\n * and a new set of keys and merges them with its best guess of the correct\n * ordering. In the future we may expose some of the utilities in\n * ReactMultiChild to make this easy, but for now React itself does not\n * directly have this concept of the union of prevChildren and nextChildren\n * so we implement it here.\n *\n * @param {object} prev prev children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @param {object} next next children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @return {object} a key set that contains all keys in `prev` and all keys\n * in `next` in a reasonable order.\n */\n\n\nfunction mergeChildMappings(prev, next) {\n prev = prev || {};\n next = next || {};\n\n function getValueForKey(key) {\n return key in next ? next[key] : prev[key];\n } // For each key of `next`, the list of keys to insert before that key in\n // the combined list\n\n\n var nextKeysPending = Object.create(null);\n var pendingKeys = [];\n\n for (var prevKey in prev) {\n if (prevKey in next) {\n if (pendingKeys.length) {\n nextKeysPending[prevKey] = pendingKeys;\n pendingKeys = [];\n }\n } else {\n pendingKeys.push(prevKey);\n }\n }\n\n var i;\n var childMapping = {};\n\n for (var nextKey in next) {\n if (nextKeysPending[nextKey]) {\n for (i = 0; i < nextKeysPending[nextKey].length; i++) {\n var pendingNextKey = nextKeysPending[nextKey][i];\n childMapping[nextKeysPending[nextKey][i]] = getValueForKey(pendingNextKey);\n }\n }\n\n childMapping[nextKey] = getValueForKey(nextKey);\n } // Finally, add the keys which didn't appear before any key in `next`\n\n\n for (i = 0; i < pendingKeys.length; i++) {\n childMapping[pendingKeys[i]] = getValueForKey(pendingKeys[i]);\n }\n\n return childMapping;\n}\n\nfunction getProp(child, prop, props) {\n return props[prop] != null ? props[prop] : child.props[prop];\n}\n\nfunction getInitialChildMapping(props, onExited) {\n return getChildMapping(props.children, function (child) {\n return (0, _react.cloneElement)(child, {\n onExited: onExited.bind(null, child),\n in: true,\n appear: getProp(child, 'appear', props),\n enter: getProp(child, 'enter', props),\n exit: getProp(child, 'exit', props)\n });\n });\n}\n\nfunction getNextChildMapping(nextProps, prevChildMapping, onExited) {\n var nextChildMapping = getChildMapping(nextProps.children);\n var children = mergeChildMappings(prevChildMapping, nextChildMapping);\n Object.keys(children).forEach(function (key) {\n var child = children[key];\n if (!(0, _react.isValidElement)(child)) return;\n var hasPrev = (key in prevChildMapping);\n var hasNext = (key in nextChildMapping);\n var prevChild = prevChildMapping[key];\n var isLeaving = (0, _react.isValidElement)(prevChild) && !prevChild.props.in; // item is new (entering)\n\n if (hasNext && (!hasPrev || isLeaving)) {\n // console.log('entering', key)\n children[key] = (0, _react.cloneElement)(child, {\n onExited: onExited.bind(null, child),\n in: true,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n } else if (!hasNext && hasPrev && !isLeaving) {\n // item is old (exiting)\n // console.log('leaving', key)\n children[key] = (0, _react.cloneElement)(child, {\n in: false\n });\n } else if (hasNext && hasPrev && (0, _react.isValidElement)(prevChild)) {\n // item hasn't changed transition states\n // copy over the last transition props;\n // console.log('unchanged', key)\n children[key] = (0, _react.cloneElement)(child, {\n onExited: onExited.bind(null, child),\n in: prevChild.props.in,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n }\n });\n return children;\n}", "\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _TransitionGroupContext = _interopRequireDefault(require(\"./TransitionGroupContext\"));\n\nvar _ChildMapping = require(\"./utils/ChildMapping\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar values = Object.values || function (obj) {\n return Object.keys(obj).map(function (k) {\n return obj[k];\n });\n};\n\nvar defaultProps = {\n component: 'div',\n childFactory: function childFactory(child) {\n return child;\n }\n};\n/**\n * The `` component manages a set of transition components\n * (`` and ``) in a list. Like with the transition\n * components, `` is a state machine for managing the mounting\n * and unmounting of components over time.\n *\n * Consider the example below. As items are removed or added to the TodoList the\n * `in` prop is toggled automatically by the ``.\n *\n * Note that `` does not define any animation behavior!\n * Exactly _how_ a list item animates is up to the individual transition\n * component. This means you can mix and match animations across different list\n * items.\n */\n\nvar TransitionGroup = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(TransitionGroup, _React$Component);\n\n function TransitionGroup(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n\n var handleExited = _this.handleExited.bind(_assertThisInitialized(_this)); // Initial children should all be entering, dependent on appear\n\n\n _this.state = {\n contextValue: {\n isMounting: true\n },\n handleExited: handleExited,\n firstRender: true\n };\n return _this;\n }\n\n var _proto = TransitionGroup.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.mounted = true;\n this.setState({\n contextValue: {\n isMounting: false\n }\n });\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.mounted = false;\n };\n\n TransitionGroup.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, _ref) {\n var prevChildMapping = _ref.children,\n handleExited = _ref.handleExited,\n firstRender = _ref.firstRender;\n return {\n children: firstRender ? (0, _ChildMapping.getInitialChildMapping)(nextProps, handleExited) : (0, _ChildMapping.getNextChildMapping)(nextProps, prevChildMapping, handleExited),\n firstRender: false\n };\n } // node is `undefined` when user provided `nodeRef` prop\n ;\n\n _proto.handleExited = function handleExited(child, node) {\n var currentChildMapping = (0, _ChildMapping.getChildMapping)(this.props.children);\n if (child.key in currentChildMapping) return;\n\n if (child.props.onExited) {\n child.props.onExited(node);\n }\n\n if (this.mounted) {\n this.setState(function (state) {\n var children = _extends({}, state.children);\n\n delete children[child.key];\n return {\n children: children\n };\n });\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n Component = _this$props.component,\n childFactory = _this$props.childFactory,\n props = _objectWithoutPropertiesLoose(_this$props, [\"component\", \"childFactory\"]);\n\n var contextValue = this.state.contextValue;\n var children = values(this.state.children).map(childFactory);\n delete props.appear;\n delete props.enter;\n delete props.exit;\n\n if (Component === null) {\n return /*#__PURE__*/_react.default.createElement(_TransitionGroupContext.default.Provider, {\n value: contextValue\n }, children);\n }\n\n return /*#__PURE__*/_react.default.createElement(_TransitionGroupContext.default.Provider, {\n value: contextValue\n }, /*#__PURE__*/_react.default.createElement(Component, props, children));\n };\n\n return TransitionGroup;\n}(_react.default.Component);\n\nTransitionGroup.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * `` renders a `
` by default. You can change this\n * behavior by providing a `component` prop.\n * If you use React v16+ and would like to avoid a wrapping `
` element\n * you can pass in `component={null}`. This is useful if the wrapping div\n * borks your css styles.\n */\n component: _propTypes.default.any,\n\n /**\n * A set of `` components, that are toggled `in` and out as they\n * leave. the `` will inject specific transition props, so\n * remember to spread them through if you are wrapping the `` as\n * with our `` example.\n *\n * While this component is meant for multiple `Transition` or `CSSTransition`\n * children, sometimes you may want to have a single transition child with\n * content that you want to be transitioned out and in when you change it\n * (e.g. routes, images etc.) In that case you can change the `key` prop of\n * the transition child as you change its content, this will cause\n * `TransitionGroup` to transition the child out and back in.\n */\n children: _propTypes.default.node,\n\n /**\n * A convenience prop that enables or disables appear animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n appear: _propTypes.default.bool,\n\n /**\n * A convenience prop that enables or disables enter animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n enter: _propTypes.default.bool,\n\n /**\n * A convenience prop that enables or disables exit animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n exit: _propTypes.default.bool,\n\n /**\n * You may need to apply reactive updates to a child as it is exiting.\n * This is generally done by using `cloneElement` however in the case of an exiting\n * child the element has already been removed and not accessible to the consumer.\n *\n * If you do need to update a child as it leaves you can provide a `childFactory`\n * to wrap every child, even the ones that are leaving.\n *\n * @type Function(child: ReactElement) -> ReactElement\n */\n childFactory: _propTypes.default.func\n} : {};\nTransitionGroup.defaultProps = defaultProps;\nvar _default = TransitionGroup;\nexports.default = _default;\nmodule.exports = exports.default;", "\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\n\nvar _TransitionGroup = _interopRequireDefault(require(\"./TransitionGroup\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\n/**\n * The `` component is a specialized `Transition` component\n * that animates between two children.\n *\n * ```jsx\n * \n *
I appear first
\n *
I replace the above
\n *
\n * ```\n */\nvar ReplaceTransition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(ReplaceTransition, _React$Component);\n\n function ReplaceTransition() {\n var _this;\n\n for (var _len = arguments.length, _args = new Array(_len), _key = 0; _key < _len; _key++) {\n _args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(_args)) || this;\n\n _this.handleEnter = function () {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return _this.handleLifecycle('onEnter', 0, args);\n };\n\n _this.handleEntering = function () {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n return _this.handleLifecycle('onEntering', 0, args);\n };\n\n _this.handleEntered = function () {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n return _this.handleLifecycle('onEntered', 0, args);\n };\n\n _this.handleExit = function () {\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n\n return _this.handleLifecycle('onExit', 1, args);\n };\n\n _this.handleExiting = function () {\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n args[_key6] = arguments[_key6];\n }\n\n return _this.handleLifecycle('onExiting', 1, args);\n };\n\n _this.handleExited = function () {\n for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n args[_key7] = arguments[_key7];\n }\n\n return _this.handleLifecycle('onExited', 1, args);\n };\n\n return _this;\n }\n\n var _proto = ReplaceTransition.prototype;\n\n _proto.handleLifecycle = function handleLifecycle(handler, idx, originalArgs) {\n var _child$props;\n\n var children = this.props.children;\n\n var child = _react.default.Children.toArray(children)[idx];\n\n if (child.props[handler]) (_child$props = child.props)[handler].apply(_child$props, originalArgs);\n\n if (this.props[handler]) {\n var maybeNode = child.props.nodeRef ? undefined : _reactDom.default.findDOMNode(this);\n this.props[handler](maybeNode);\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n children = _this$props.children,\n inProp = _this$props.in,\n props = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"in\"]);\n\n var _React$Children$toArr = _react.default.Children.toArray(children),\n first = _React$Children$toArr[0],\n second = _React$Children$toArr[1];\n\n delete props.onEnter;\n delete props.onEntering;\n delete props.onEntered;\n delete props.onExit;\n delete props.onExiting;\n delete props.onExited;\n return /*#__PURE__*/_react.default.createElement(_TransitionGroup.default, props, inProp ? _react.default.cloneElement(first, {\n key: 'first',\n onEnter: this.handleEnter,\n onEntering: this.handleEntering,\n onEntered: this.handleEntered\n }) : _react.default.cloneElement(second, {\n key: 'second',\n onEnter: this.handleExit,\n onEntering: this.handleExiting,\n onEntered: this.handleExited\n }));\n };\n\n return ReplaceTransition;\n}(_react.default.Component);\n\nReplaceTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n in: _propTypes.default.bool.isRequired,\n children: function children(props, propName) {\n if (_react.default.Children.count(props[propName]) !== 2) return new Error(\"\\\"\" + propName + \"\\\" must be exactly two transition components.\");\n return null;\n }\n} : {};\nvar _default = ReplaceTransition;\nexports.default = _default;\nmodule.exports = exports.default;", "\"use strict\";\n\nexports.__esModule = true;\nexports.default = exports.modes = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _Transition = require(\"./Transition\");\n\nvar _TransitionGroupContext = _interopRequireDefault(require(\"./TransitionGroupContext\"));\n\nvar _leaveRenders, _enterRenders;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nfunction areChildrenDifferent(oldChildren, newChildren) {\n if (oldChildren === newChildren) return false;\n\n if (_react.default.isValidElement(oldChildren) && _react.default.isValidElement(newChildren) && oldChildren.key != null && oldChildren.key === newChildren.key) {\n return false;\n }\n\n return true;\n}\n/**\n * Enum of modes for SwitchTransition component\n * @enum { string }\n */\n\n\nvar modes = {\n out: 'out-in',\n in: 'in-out'\n};\nexports.modes = modes;\n\nvar callHook = function callHook(element, name, cb) {\n return function () {\n var _element$props;\n\n element.props[name] && (_element$props = element.props)[name].apply(_element$props, arguments);\n cb();\n };\n};\n\nvar leaveRenders = (_leaveRenders = {}, _leaveRenders[modes.out] = function (_ref) {\n var current = _ref.current,\n changeState = _ref.changeState;\n return _react.default.cloneElement(current, {\n in: false,\n onExited: callHook(current, 'onExited', function () {\n changeState(_Transition.ENTERING, null);\n })\n });\n}, _leaveRenders[modes.in] = function (_ref2) {\n var current = _ref2.current,\n changeState = _ref2.changeState,\n children = _ref2.children;\n return [current, _react.default.cloneElement(children, {\n in: true,\n onEntered: callHook(children, 'onEntered', function () {\n changeState(_Transition.ENTERING);\n })\n })];\n}, _leaveRenders);\nvar enterRenders = (_enterRenders = {}, _enterRenders[modes.out] = function (_ref3) {\n var children = _ref3.children,\n changeState = _ref3.changeState;\n return _react.default.cloneElement(children, {\n in: true,\n onEntered: callHook(children, 'onEntered', function () {\n changeState(_Transition.ENTERED, _react.default.cloneElement(children, {\n in: true\n }));\n })\n });\n}, _enterRenders[modes.in] = function (_ref4) {\n var current = _ref4.current,\n children = _ref4.children,\n changeState = _ref4.changeState;\n return [_react.default.cloneElement(current, {\n in: false,\n onExited: callHook(current, 'onExited', function () {\n changeState(_Transition.ENTERED, _react.default.cloneElement(children, {\n in: true\n }));\n })\n }), _react.default.cloneElement(children, {\n in: true\n })];\n}, _enterRenders);\n/**\n * A transition component inspired by the [vue transition modes](https://vuejs.org/v2/guide/transitions.html#Transition-Modes).\n * You can use it when you want to control the render between state transitions.\n * Based on the selected mode and the child's key which is the `Transition` or `CSSTransition` component, the `SwitchTransition` makes a consistent transition between them.\n *\n * If the `out-in` mode is selected, the `SwitchTransition` waits until the old child leaves and then inserts a new child.\n * If the `in-out` mode is selected, the `SwitchTransition` inserts a new child first, waits for the new child to enter and then removes the old child.\n *\n * **Note**: If you want the animation to happen simultaneously\n * (that is, to have the old child removed and a new child inserted **at the same time**),\n * you should use\n * [`TransitionGroup`](https://reactcommunity.org/react-transition-group/transition-group)\n * instead.\n *\n * ```jsx\n * function App() {\n * const [state, setState] = useState(false);\n * return (\n * \n * node.addEventListener(\"transitionend\", done, false)}\n * classNames='fade'\n * >\n * \n * \n * \n * );\n * }\n * ```\n *\n * ```css\n * .fade-enter{\n * opacity: 0;\n * }\n * .fade-exit{\n * opacity: 1;\n * }\n * .fade-enter-active{\n * opacity: 1;\n * }\n * .fade-exit-active{\n * opacity: 0;\n * }\n * .fade-enter-active,\n * .fade-exit-active{\n * transition: opacity 500ms;\n * }\n * ```\n */\n\nvar SwitchTransition = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(SwitchTransition, _React$Component);\n\n function SwitchTransition() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.state = {\n status: _Transition.ENTERED,\n current: null\n };\n _this.appeared = false;\n\n _this.changeState = function (status, current) {\n if (current === void 0) {\n current = _this.state.current;\n }\n\n _this.setState({\n status: status,\n current: current\n });\n };\n\n return _this;\n }\n\n var _proto = SwitchTransition.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.appeared = true;\n };\n\n SwitchTransition.getDerivedStateFromProps = function getDerivedStateFromProps(props, state) {\n if (props.children == null) {\n return {\n current: null\n };\n }\n\n if (state.status === _Transition.ENTERING && props.mode === modes.in) {\n return {\n status: _Transition.ENTERING\n };\n }\n\n if (state.current && areChildrenDifferent(state.current, props.children)) {\n return {\n status: _Transition.EXITING\n };\n }\n\n return {\n current: _react.default.cloneElement(props.children, {\n in: true\n })\n };\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n children = _this$props.children,\n mode = _this$props.mode,\n _this$state = this.state,\n status = _this$state.status,\n current = _this$state.current;\n var data = {\n children: children,\n current: current,\n changeState: this.changeState,\n status: status\n };\n var component;\n\n switch (status) {\n case _Transition.ENTERING:\n component = enterRenders[mode](data);\n break;\n\n case _Transition.EXITING:\n component = leaveRenders[mode](data);\n break;\n\n case _Transition.ENTERED:\n component = current;\n }\n\n return /*#__PURE__*/_react.default.createElement(_TransitionGroupContext.default.Provider, {\n value: {\n isMounting: !this.appeared\n }\n }, component);\n };\n\n return SwitchTransition;\n}(_react.default.Component);\n\nSwitchTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * Transition modes.\n * `out-in`: Current element transitions out first, then when complete, the new element transitions in.\n * `in-out`: New element transitions in first, then when complete, the current element transitions out.\n *\n * @type {'out-in'|'in-out'}\n */\n mode: _propTypes.default.oneOf([modes.in, modes.out]),\n\n /**\n * Any `Transition` or `CSSTransition` component.\n */\n children: _propTypes.default.oneOfType([_propTypes.default.element.isRequired])\n} : {};\nSwitchTransition.defaultProps = {\n mode: modes.out\n};\nvar _default = SwitchTransition;\nexports.default = _default;", "\"use strict\";\n\nexports.__esModule = true;\nexports.config = exports.Transition = exports.TransitionGroup = exports.SwitchTransition = exports.ReplaceTransition = exports.CSSTransition = void 0;\n\nvar _CSSTransition = _interopRequireDefault(require(\"./CSSTransition\"));\n\nexports.CSSTransition = _CSSTransition.default;\n\nvar _ReplaceTransition = _interopRequireDefault(require(\"./ReplaceTransition\"));\n\nexports.ReplaceTransition = _ReplaceTransition.default;\n\nvar _SwitchTransition = _interopRequireDefault(require(\"./SwitchTransition\"));\n\nexports.SwitchTransition = _SwitchTransition.default;\n\nvar _TransitionGroup = _interopRequireDefault(require(\"./TransitionGroup\"));\n\nexports.TransitionGroup = _TransitionGroup.default;\n\nvar _Transition = _interopRequireDefault(require(\"./Transition\"));\n\nexports.Transition = _Transition.default;\n\nvar _config = _interopRequireDefault(require(\"./config\"));\n\nexports.config = _config.default;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }", "\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _clsx = _interopRequireDefault(require(\"clsx\"));\n\nvar _useEventCallback = _interopRequireDefault(require(\"../utils/useEventCallback\"));\n\nvar useEnhancedEffect = typeof window === 'undefined' ? React.useEffect : React.useLayoutEffect;\n/**\n * @ignore - internal component.\n */\n\nfunction Ripple(props) {\n var classes = props.classes,\n _props$pulsate = props.pulsate,\n pulsate = _props$pulsate === void 0 ? false : _props$pulsate,\n rippleX = props.rippleX,\n rippleY = props.rippleY,\n rippleSize = props.rippleSize,\n inProp = props.in,\n _props$onExited = props.onExited,\n onExited = _props$onExited === void 0 ? function () {} : _props$onExited,\n timeout = props.timeout;\n\n var _React$useState = React.useState(false),\n leaving = _React$useState[0],\n setLeaving = _React$useState[1];\n\n var rippleClassName = (0, _clsx.default)(classes.ripple, classes.rippleVisible, pulsate && classes.ripplePulsate);\n var rippleStyles = {\n width: rippleSize,\n height: rippleSize,\n top: -(rippleSize / 2) + rippleY,\n left: -(rippleSize / 2) + rippleX\n };\n var childClassName = (0, _clsx.default)(classes.child, leaving && classes.childLeaving, pulsate && classes.childPulsate);\n var handleExited = (0, _useEventCallback.default)(onExited); // Ripple is used for user feedback (e.g. click or press) so we want to apply styles with the highest priority\n\n useEnhancedEffect(function () {\n if (!inProp) {\n // react-transition-group#onExit\n setLeaving(true); // react-transition-group#onExited\n\n var timeoutId = setTimeout(handleExited, timeout);\n return function () {\n clearTimeout(timeoutId);\n };\n }\n\n return undefined;\n }, [handleExited, inProp, timeout]);\n return /*#__PURE__*/React.createElement(\"span\", {\n className: rippleClassName,\n style: rippleStyles\n }, /*#__PURE__*/React.createElement(\"span\", {\n className: childClassName\n }));\n}\n\nprocess.env.NODE_ENV !== \"production\" ? Ripple.propTypes = {\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: _propTypes.default.object.isRequired,\n\n /**\n * @ignore - injected from TransitionGroup\n */\n in: _propTypes.default.bool,\n\n /**\n * @ignore - injected from TransitionGroup\n */\n onExited: _propTypes.default.func,\n\n /**\n * If `true`, the ripple pulsates, typically indicating the keyboard focus state of an element.\n */\n pulsate: _propTypes.default.bool,\n\n /**\n * Diameter of the ripple.\n */\n rippleSize: _propTypes.default.number,\n\n /**\n * Horizontal position of the ripple center.\n */\n rippleX: _propTypes.default.number,\n\n /**\n * Vertical position of the ripple center.\n */\n rippleY: _propTypes.default.number,\n\n /**\n * exit delay\n */\n timeout: _propTypes.default.number.isRequired\n} : void 0;\nvar _default = Ripple;\nexports.default = _default;", "\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.styles = exports.DELAY_RIPPLE = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _toConsumableArray2 = _interopRequireDefault(require(\"@babel/runtime/helpers/toConsumableArray\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _reactTransitionGroup = require(\"react-transition-group\");\n\nvar _clsx = _interopRequireDefault(require(\"clsx\"));\n\nvar _withStyles = _interopRequireDefault(require(\"../styles/withStyles\"));\n\nvar _Ripple = _interopRequireDefault(require(\"./Ripple\"));\n\nvar DURATION = 550;\nvar DELAY_RIPPLE = 80;\nexports.DELAY_RIPPLE = DELAY_RIPPLE;\n\nvar styles = function styles(theme) {\n return {\n /* Styles applied to the root element. */\n root: {\n overflow: 'hidden',\n pointerEvents: 'none',\n position: 'absolute',\n zIndex: 0,\n top: 0,\n right: 0,\n bottom: 0,\n left: 0,\n borderRadius: 'inherit'\n },\n\n /* Styles applied to the internal `Ripple` components `ripple` class. */\n ripple: {\n opacity: 0,\n position: 'absolute'\n },\n\n /* Styles applied to the internal `Ripple` components `rippleVisible` class. */\n rippleVisible: {\n opacity: 0.3,\n transform: 'scale(1)',\n animation: \"$enter \".concat(DURATION, \"ms \").concat(theme.transitions.easing.easeInOut)\n },\n\n /* Styles applied to the internal `Ripple` components `ripplePulsate` class. */\n ripplePulsate: {\n animationDuration: \"\".concat(theme.transitions.duration.shorter, \"ms\")\n },\n\n /* Styles applied to the internal `Ripple` components `child` class. */\n child: {\n opacity: 1,\n display: 'block',\n width: '100%',\n height: '100%',\n borderRadius: '50%',\n backgroundColor: 'currentColor'\n },\n\n /* Styles applied to the internal `Ripple` components `childLeaving` class. */\n childLeaving: {\n opacity: 0,\n animation: \"$exit \".concat(DURATION, \"ms \").concat(theme.transitions.easing.easeInOut)\n },\n\n /* Styles applied to the internal `Ripple` components `childPulsate` class. */\n childPulsate: {\n position: 'absolute',\n left: 0,\n top: 0,\n animation: \"$pulsate 2500ms \".concat(theme.transitions.easing.easeInOut, \" 200ms infinite\")\n },\n '@keyframes enter': {\n '0%': {\n transform: 'scale(0)',\n opacity: 0.1\n },\n '100%': {\n transform: 'scale(1)',\n opacity: 0.3\n }\n },\n '@keyframes exit': {\n '0%': {\n opacity: 1\n },\n '100%': {\n opacity: 0\n }\n },\n '@keyframes pulsate': {\n '0%': {\n transform: 'scale(1)'\n },\n '50%': {\n transform: 'scale(0.92)'\n },\n '100%': {\n transform: 'scale(1)'\n }\n }\n };\n};\n/**\n * @ignore - internal component.\n *\n * TODO v5: Make private\n */\n\n\nexports.styles = styles;\nvar TouchRipple = /*#__PURE__*/React.forwardRef(function TouchRipple(props, ref) {\n var _props$center = props.center,\n centerProp = _props$center === void 0 ? false : _props$center,\n classes = props.classes,\n className = props.className,\n other = (0, _objectWithoutProperties2.default)(props, [\"center\", \"classes\", \"className\"]);\n\n var _React$useState = React.useState([]),\n ripples = _React$useState[0],\n setRipples = _React$useState[1];\n\n var nextKey = React.useRef(0);\n var rippleCallback = React.useRef(null);\n React.useEffect(function () {\n if (rippleCallback.current) {\n rippleCallback.current();\n rippleCallback.current = null;\n }\n }, [ripples]); // Used to filter out mouse emulated events on mobile.\n\n var ignoringMouseDown = React.useRef(false); // We use a timer in order to only show the ripples for touch \"click\" like events.\n // We don't want to display the ripple for touch scroll events.\n\n var startTimer = React.useRef(null); // This is the hook called once the previous timeout is ready.\n\n var startTimerCommit = React.useRef(null);\n var container = React.useRef(null);\n React.useEffect(function () {\n return function () {\n clearTimeout(startTimer.current);\n };\n }, []);\n var startCommit = React.useCallback(function (params) {\n var pulsate = params.pulsate,\n rippleX = params.rippleX,\n rippleY = params.rippleY,\n rippleSize = params.rippleSize,\n cb = params.cb;\n setRipples(function (oldRipples) {\n return [].concat((0, _toConsumableArray2.default)(oldRipples), [/*#__PURE__*/React.createElement(_Ripple.default, {\n key: nextKey.current,\n classes: classes,\n timeout: DURATION,\n pulsate: pulsate,\n rippleX: rippleX,\n rippleY: rippleY,\n rippleSize: rippleSize\n })]);\n });\n nextKey.current += 1;\n rippleCallback.current = cb;\n }, [classes]);\n var start = React.useCallback(function () {\n var event = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var cb = arguments.length > 2 ? arguments[2] : undefined;\n var _options$pulsate = options.pulsate,\n pulsate = _options$pulsate === void 0 ? false : _options$pulsate,\n _options$center = options.center,\n center = _options$center === void 0 ? centerProp || options.pulsate : _options$center,\n _options$fakeElement = options.fakeElement,\n fakeElement = _options$fakeElement === void 0 ? false : _options$fakeElement;\n\n if (event.type === 'mousedown' && ignoringMouseDown.current) {\n ignoringMouseDown.current = false;\n return;\n }\n\n if (event.type === 'touchstart') {\n ignoringMouseDown.current = true;\n }\n\n var element = fakeElement ? null : container.current;\n var rect = element ? element.getBoundingClientRect() : {\n width: 0,\n height: 0,\n left: 0,\n top: 0\n }; // Get the size of the ripple\n\n var rippleX;\n var rippleY;\n var rippleSize;\n\n if (center || event.clientX === 0 && event.clientY === 0 || !event.clientX && !event.touches) {\n rippleX = Math.round(rect.width / 2);\n rippleY = Math.round(rect.height / 2);\n } else {\n var _ref = event.touches ? event.touches[0] : event,\n clientX = _ref.clientX,\n clientY = _ref.clientY;\n\n rippleX = Math.round(clientX - rect.left);\n rippleY = Math.round(clientY - rect.top);\n }\n\n if (center) {\n rippleSize = Math.sqrt((2 * Math.pow(rect.width, 2) + Math.pow(rect.height, 2)) / 3); // For some reason the animation is broken on Mobile Chrome if the size if even.\n\n if (rippleSize % 2 === 0) {\n rippleSize += 1;\n }\n } else {\n var sizeX = Math.max(Math.abs((element ? element.clientWidth : 0) - rippleX), rippleX) * 2 + 2;\n var sizeY = Math.max(Math.abs((element ? element.clientHeight : 0) - rippleY), rippleY) * 2 + 2;\n rippleSize = Math.sqrt(Math.pow(sizeX, 2) + Math.pow(sizeY, 2));\n } // Touche devices\n\n\n if (event.touches) {\n // check that this isn't another touchstart due to multitouch\n // otherwise we will only clear a single timer when unmounting while two\n // are running\n if (startTimerCommit.current === null) {\n // Prepare the ripple effect.\n startTimerCommit.current = function () {\n startCommit({\n pulsate: pulsate,\n rippleX: rippleX,\n rippleY: rippleY,\n rippleSize: rippleSize,\n cb: cb\n });\n }; // Delay the execution of the ripple effect.\n\n\n startTimer.current = setTimeout(function () {\n if (startTimerCommit.current) {\n startTimerCommit.current();\n startTimerCommit.current = null;\n }\n }, DELAY_RIPPLE); // We have to make a tradeoff with this value.\n }\n } else {\n startCommit({\n pulsate: pulsate,\n rippleX: rippleX,\n rippleY: rippleY,\n rippleSize: rippleSize,\n cb: cb\n });\n }\n }, [centerProp, startCommit]);\n var pulsate = React.useCallback(function () {\n start({}, {\n pulsate: true\n });\n }, [start]);\n var stop = React.useCallback(function (event, cb) {\n clearTimeout(startTimer.current); // The touch interaction occurs too quickly.\n // We still want to show ripple effect.\n\n if (event.type === 'touchend' && startTimerCommit.current) {\n event.persist();\n startTimerCommit.current();\n startTimerCommit.current = null;\n startTimer.current = setTimeout(function () {\n stop(event, cb);\n });\n return;\n }\n\n startTimerCommit.current = null;\n setRipples(function (oldRipples) {\n if (oldRipples.length > 0) {\n return oldRipples.slice(1);\n }\n\n return oldRipples;\n });\n rippleCallback.current = cb;\n }, []);\n React.useImperativeHandle(ref, function () {\n return {\n pulsate: pulsate,\n start: start,\n stop: stop\n };\n }, [pulsate, start, stop]);\n return /*#__PURE__*/React.createElement(\"span\", (0, _extends2.default)({\n className: (0, _clsx.default)(classes.root, className),\n ref: container\n }, other), /*#__PURE__*/React.createElement(_reactTransitionGroup.TransitionGroup, {\n component: null,\n exit: true\n }, ripples));\n});\nprocess.env.NODE_ENV !== \"production\" ? TouchRipple.propTypes = {\n /**\n * If `true`, the ripple starts at the center of the component\n * rather than at the point of interaction.\n */\n center: _propTypes.default.bool,\n\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: _propTypes.default.object.isRequired,\n\n /**\n * @ignore\n */\n className: _propTypes.default.string\n} : void 0;\n\nvar _default = (0, _withStyles.default)(styles, {\n flip: false,\n name: 'MuiTouchRipple'\n})( /*#__PURE__*/React.memo(TouchRipple));\n\nexports.default = _default;", "\"use strict\";\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = exports.styles = void 0;\n\nvar _extends2 = _interopRequireDefault(require(\"@babel/runtime/helpers/extends\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar ReactDOM = _interopRequireWildcard(require(\"react-dom\"));\n\nvar _clsx = _interopRequireDefault(require(\"clsx\"));\n\nvar _utils = require(\"@material-ui/utils\");\n\nvar _useForkRef = _interopRequireDefault(require(\"../utils/useForkRef\"));\n\nvar _useEventCallback = _interopRequireDefault(require(\"../utils/useEventCallback\"));\n\nvar _deprecatedPropType = _interopRequireDefault(require(\"../utils/deprecatedPropType\"));\n\nvar _withStyles = _interopRequireDefault(require(\"../styles/withStyles\"));\n\nvar _useIsFocusVisible2 = _interopRequireDefault(require(\"../utils/useIsFocusVisible\"));\n\nvar _TouchRipple = _interopRequireDefault(require(\"./TouchRipple\"));\n\nvar styles = {\n /* Styles applied to the root element. */\n root: {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n position: 'relative',\n WebkitTapHighlightColor: 'transparent',\n backgroundColor: 'transparent',\n // Reset default value\n // We disable the focus ring for mouse, touch and keyboard users.\n outline: 0,\n border: 0,\n margin: 0,\n // Remove the margin in Safari\n borderRadius: 0,\n padding: 0,\n // Remove the padding in Firefox\n cursor: 'pointer',\n userSelect: 'none',\n verticalAlign: 'middle',\n '-moz-appearance': 'none',\n // Reset\n '-webkit-appearance': 'none',\n // Reset\n textDecoration: 'none',\n // So we take precedent over the style of a native element.\n color: 'inherit',\n '&::-moz-focus-inner': {\n borderStyle: 'none' // Remove Firefox dotted outline.\n\n },\n '&$disabled': {\n pointerEvents: 'none',\n // Disable link interactions\n cursor: 'default'\n },\n '@media print': {\n colorAdjust: 'exact'\n }\n },\n\n /* Pseudo-class applied to the root element if `disabled={true}`. */\n disabled: {},\n\n /* Pseudo-class applied to the root element if keyboard focused. */\n focusVisible: {}\n};\n/**\n * `ButtonBase` contains as few styles as possible.\n * It aims to be a simple building block for creating a button.\n * It contains a load of style reset and some focus/ripple logic.\n */\n\nexports.styles = styles;\nvar ButtonBase = /*#__PURE__*/React.forwardRef(function ButtonBase(props, ref) {\n var action = props.action,\n buttonRefProp = props.buttonRef,\n _props$centerRipple = props.centerRipple,\n centerRipple = _props$centerRipple === void 0 ? false : _props$centerRipple,\n children = props.children,\n classes = props.classes,\n className = props.className,\n _props$component = props.component,\n component = _props$component === void 0 ? 'button' : _props$component,\n _props$disabled = props.disabled,\n disabled = _props$disabled === void 0 ? false : _props$disabled,\n _props$disableRipple = props.disableRipple,\n disableRipple = _props$disableRipple === void 0 ? false : _props$disableRipple,\n _props$disableTouchRi = props.disableTouchRipple,\n disableTouchRipple = _props$disableTouchRi === void 0 ? false : _props$disableTouchRi,\n _props$focusRipple = props.focusRipple,\n focusRipple = _props$focusRipple === void 0 ? false : _props$focusRipple,\n focusVisibleClassName = props.focusVisibleClassName,\n onBlur = props.onBlur,\n onClick = props.onClick,\n onFocus = props.onFocus,\n onFocusVisible = props.onFocusVisible,\n onKeyDown = props.onKeyDown,\n onKeyUp = props.onKeyUp,\n onMouseDown = props.onMouseDown,\n onMouseLeave = props.onMouseLeave,\n onMouseUp = props.onMouseUp,\n onTouchEnd = props.onTouchEnd,\n onTouchMove = props.onTouchMove,\n onTouchStart = props.onTouchStart,\n onDragLeave = props.onDragLeave,\n _props$tabIndex = props.tabIndex,\n tabIndex = _props$tabIndex === void 0 ? 0 : _props$tabIndex,\n TouchRippleProps = props.TouchRippleProps,\n _props$type = props.type,\n type = _props$type === void 0 ? 'button' : _props$type,\n other = (0, _objectWithoutProperties2.default)(props, [\"action\", \"buttonRef\", \"centerRipple\", \"children\", \"classes\", \"className\", \"component\", \"disabled\", \"disableRipple\", \"disableTouchRipple\", \"focusRipple\", \"focusVisibleClassName\", \"onBlur\", \"onClick\", \"onFocus\", \"onFocusVisible\", \"onKeyDown\", \"onKeyUp\", \"onMouseDown\", \"onMouseLeave\", \"onMouseUp\", \"onTouchEnd\", \"onTouchMove\", \"onTouchStart\", \"onDragLeave\", \"tabIndex\", \"TouchRippleProps\", \"type\"]);\n var buttonRef = React.useRef(null);\n\n function getButtonNode() {\n // #StrictMode ready\n return ReactDOM.findDOMNode(buttonRef.current);\n }\n\n var rippleRef = React.useRef(null);\n\n var _React$useState = React.useState(false),\n focusVisible = _React$useState[0],\n setFocusVisible = _React$useState[1];\n\n if (disabled && focusVisible) {\n setFocusVisible(false);\n }\n\n var _useIsFocusVisible = (0, _useIsFocusVisible2.default)(),\n isFocusVisible = _useIsFocusVisible.isFocusVisible,\n onBlurVisible = _useIsFocusVisible.onBlurVisible,\n focusVisibleRef = _useIsFocusVisible.ref;\n\n React.useImperativeHandle(action, function () {\n return {\n focusVisible: function focusVisible() {\n setFocusVisible(true);\n buttonRef.current.focus();\n }\n };\n }, []);\n React.useEffect(function () {\n if (focusVisible && focusRipple && !disableRipple) {\n rippleRef.current.pulsate();\n }\n }, [disableRipple, focusRipple, focusVisible]);\n\n function useRippleHandler(rippleAction, eventCallback) {\n var skipRippleAction = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : disableTouchRipple;\n return (0, _useEventCallback.default)(function (event) {\n if (eventCallback) {\n eventCallback(event);\n }\n\n var ignore = skipRippleAction;\n\n if (!ignore && rippleRef.current) {\n rippleRef.current[rippleAction](event);\n }\n\n return true;\n });\n }\n\n var handleMouseDown = useRippleHandler('start', onMouseDown);\n var handleDragLeave = useRippleHandler('stop', onDragLeave);\n var handleMouseUp = useRippleHandler('stop', onMouseUp);\n var handleMouseLeave = useRippleHandler('stop', function (event) {\n if (focusVisible) {\n event.preventDefault();\n }\n\n if (onMouseLeave) {\n onMouseLeave(event);\n }\n });\n var handleTouchStart = useRippleHandler('start', onTouchStart);\n var handleTouchEnd = useRippleHandler('stop', onTouchEnd);\n var handleTouchMove = useRippleHandler('stop', onTouchMove);\n var handleBlur = useRippleHandler('stop', function (event) {\n if (focusVisible) {\n onBlurVisible(event);\n setFocusVisible(false);\n }\n\n if (onBlur) {\n onBlur(event);\n }\n }, false);\n var handleFocus = (0, _useEventCallback.default)(function (event) {\n // Fix for https://github.com/facebook/react/issues/7769\n if (!buttonRef.current) {\n buttonRef.current = event.currentTarget;\n }\n\n if (isFocusVisible(event)) {\n setFocusVisible(true);\n\n if (onFocusVisible) {\n onFocusVisible(event);\n }\n }\n\n if (onFocus) {\n onFocus(event);\n }\n });\n\n var isNonNativeButton = function isNonNativeButton() {\n var button = getButtonNode();\n return component && component !== 'button' && !(button.tagName === 'A' && button.href);\n };\n /**\n * IE 11 shim for https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/repeat\n */\n\n\n var keydownRef = React.useRef(false);\n var handleKeyDown = (0, _useEventCallback.default)(function (event) {\n // Check if key is already down to avoid repeats being counted as multiple activations\n if (focusRipple && !keydownRef.current && focusVisible && rippleRef.current && event.key === ' ') {\n keydownRef.current = true;\n event.persist();\n rippleRef.current.stop(event, function () {\n rippleRef.current.start(event);\n });\n }\n\n if (event.target === event.currentTarget && isNonNativeButton() && event.key === ' ') {\n event.preventDefault();\n }\n\n if (onKeyDown) {\n onKeyDown(event);\n } // Keyboard accessibility for non interactive elements\n\n\n if (event.target === event.currentTarget && isNonNativeButton() && event.key === 'Enter' && !disabled) {\n event.preventDefault();\n\n if (onClick) {\n onClick(event);\n }\n }\n });\n var handleKeyUp = (0, _useEventCallback.default)(function (event) {\n // calling preventDefault in keyUp on a
;\n }\n\n /**\n * @private\n */\n getFilterSelectRole() {\n return this.getFilterSelect('role', this.info.roles);\n }\n\n /**\n * @private\n */\n getFilterSelectRoom() {\n const rooms = this.info.roomEnums.map(id => ({\n name: getName(this.objects[id]?.common?.name || id.split('.').pop()),\n value: id,\n icon: \n }));\n\n return this.getFilterSelect('room', rooms);\n }\n\n /**\n * @private\n */\n getFilterSelectFunction() {\n const func = this.info.funcEnums.map(id => ({\n name: getName((this.objects[id] && this.objects[id].common && this.objects[id].common.name) || id.split('.').pop()),\n value: id,\n icon: \n }));\n\n return this.getFilterSelect('func', func);\n }\n\n /**\n * @private\n */\n getFilterSelectType() {\n const types = this.info.types.map(type => ({\n name: type,\n value: type,\n icon: ITEM_IMAGES[type]\n }));\n\n return this.getFilterSelect('type', types);\n }\n\n /**\n * @private\n */\n getFilterSelectCustoms() {\n if (this.info.customs.length) {\n const customs = this.info.customs.map(id => ({\n name: id,\n value: id,\n icon: \n }));\n return this.getFilterSelect('custom', customs);\n } else {\n return null;\n }\n }\n\n /**\n * @private\n * @param {any} [root]\n * @param {any[]} [expanded]\n */\n onExpandAll(root, expanded) {\n root = root || this.root;\n expanded = expanded || [];\n\n root.children && root.children.forEach(item => {\n if (item.data.sumVisibility) {\n expanded.push(item.data.id);\n this.onExpandAll(item, expanded);\n }\n });\n\n if (root === this.root) {\n expanded.sort();\n window.localStorage.setItem((this.props.dialogName || 'App') + '.objectExpanded', JSON.stringify(expanded));\n\n this.setState({ expanded });\n }\n }\n\n /**\n * @private\n */\n onCollapseAll() {\n window.localStorage.setItem((this.props.dialogName || 'App') + '.objectExpanded', JSON.stringify([]));\n this.setState({ expanded: [], depth: 0 });\n }\n\n /**\n * @private\n * @param {any} root\n * @param {number} depth\n * @param {any[]} expanded\n */\n expandDepth(root, depth, expanded) {\n root = root || this.root;\n if (depth > 0) {\n if (root.children) {\n root.children.forEach(item => {\n if (item.data.sumVisibility) {\n if (!binarySearch(expanded, item.data.id)) {\n expanded.push(item.data.id);\n expanded.sort();\n }\n if (depth - 1 > 0) {\n this.expandDepth(item, depth - 1, expanded);\n }\n }\n });\n }\n }\n }\n\n /**\n * @private\n * @param {number} depth\n * @param {any[]} expanded\n */\n collapseDepth(depth, expanded) {\n return expanded.filter(id => id.split('.').length <= depth);\n }\n\n /**\n * @private\n */\n onExpandVisible() {\n if (this.state.depth < 9) {\n const depth = this.state.depth + 1;\n const expanded = [...this.state.expanded];\n this.expandDepth(this.root, depth, expanded);\n window.localStorage.setItem((this.props.dialogName || 'App') + '.objectExpanded', JSON.stringify(expanded));\n this.setState({ depth, expanded });\n }\n }\n\n /**\n * @private\n */\n onStatesViewVisible() {\n const statesView = !this.state.statesView;\n window.localStorage.setItem((this.props.dialogName || 'App') + '.objectStatesView', JSON.stringify(statesView));\n this.setState({ statesView });\n }\n\n /**\n * @private\n */\n onCollapseVisible() {\n if (this.state.depth > 0) {\n const depth = this.state.depth - 1;\n const expanded = this.collapseDepth(depth, this.state.expanded);\n window.localStorage.setItem((this.props.dialogName || 'App') + '.objectExpanded', JSON.stringify(expanded));\n this.setState({ depth, expanded });\n }\n }\n\n /**\n * @private\n * @param {string} id\n */\n getEnumsForId = id => {\n let result = [];\n this.info.enums.forEach(_id => {\n if (this.objects[_id]?.common?.members?.includes(id)) {\n const en = {\n _id: this.objects[_id]._id,\n common: JSON.parse(JSON.stringify(this.objects[_id].common)),\n native: this.objects[_id].native,\n type: 'enum',\n };\n if (en.common) {\n delete en.common.members;\n delete en.common.custom;\n delete en.common.mobile;\n }\n result.push(en);\n }\n });\n\n return result.length ? result : undefined;\n };\n\n /**\n * @private\n * @param {array} enums\n * @param {string} objId\n */\n _createAllEnums = async (enums, objId) => {\n for (let e = 0; e < enums.length; e++) {\n let id = enums[e];\n let _enObj;\n if (typeof id === 'object') {\n _enObj = id;\n id = id._id;\n }\n let enObj = this.objects[id];\n if (!enObj) {\n enObj = _enObj || {\n _id: id,\n common: {\n name: id.split('.').pop(),\n members: [],\n },\n native: {}\n };\n\n enObj.common = enObj.common || {};\n enObj.common.members = [objId];\n\n await this.props.socket.setObject(id, enObj);\n } else if (!enObj.common?.members?.includes(objId)) {\n enObj.common = enObj.common || {};\n enObj.common.members = enObj.common.members || [];\n // add missing object\n enObj.common.members.push(objId);\n enObj.common.members.sort();\n await this.props.socket.setObject(id, enObj);\n }\n }\n }\n\n /**\n * @private\n * @param {any} callback\n */\n loadObjects = async objs => {\n if (objs) {\n for (let id in objs) {\n if (!objs.hasOwnProperty(id) || !objs[id]) {\n continue;\n }\n const obj = objs[id];\n let enums = null;\n if (obj && obj.common && obj.common.enums) {\n enums = obj.common.enums;\n delete obj.common.enums;\n } else {\n enums = null;\n }\n try {\n await this.props.socket.setObject(id, obj);\n enums && await this._createAllEnums(enums, obj._id);\n if (obj.type === 'state') {\n try {\n const state = await this.props.socket.getState(obj._id);\n if (!state || state.val === null) {\n try {\n await this.props.socket.setState(obj._id, !obj.common || obj.common.def === undefined ? null : obj.common.def, true);\n } catch (e) {\n window.alert(`Cannot set state \"${obj._id}\": ${e}`);\n }\n }\n } catch (e) {\n window.alert(`Cannot read state \"${obj._id}\": ${e}`);\n }\n }\n } catch (error) {\n window.alert(error);\n }\n }\n }\n }\n\n _getSelectedIdsForExport() {\n if (this.state.selected.length || this.state.selectedNonObject) {\n const result = [];\n const keys = Object.keys(this.objects);\n keys.sort();\n const id = this.state.selected[0] || this.state.selectedNonObject;\n const idDot = id + '.';\n const idLen = idDot.length;\n for (let k = 0; k < keys.length; k++) {\n const key = keys[k];\n if (id === key || key.startsWith(idDot)) {\n result.push(key);\n }\n if (key.substring(0, idLen) > idDot) {\n break;\n }\n }\n\n return result;\n } else {\n return [];\n }\n }\n\n _exportObjects(isAll) {\n if (isAll) {\n generateFile('allObjects.json', this.objects);\n } else\n if (this.state.selected.length || this.state.selectedNonObject) {\n const result = {};\n const id = this.state.selected[0] || this.state.selectedNonObject;\n\n this._getSelectedIdsForExport().forEach(key => {\n result[key] = JSON.parse(JSON.stringify(this.objects[key]));\n // add enum information\n if (result[key].common) {\n const enums = this.getEnumsForId(key);\n if (enums) {\n result[key].common.enums = enums;\n }\n }\n });\n\n generateFile(id + '.json', result);\n } else {\n window.alert(this.props.t('ra_Save of objects-tree is not possible'));\n }\n }\n\n renderExportDialog() {\n if (this.state.showExportDialog === false) {\n return null;\n } else {\n return \n {this.props.t('Select type of export')}\n \n \n {this.props.t('You can export all objects or just the selected branch.')}\n
\n {this.props.t('Selected %s object(s)', this.state.showExportDialog)}\n
\n
\n \n \n \n \n \n
;\n }\n }\n\n /**\n * @private\n * @param {object} evt\n */\n handleJsonUpload = evt => {\n let f = evt.target.files[0];\n if (f) {\n let r = new FileReader();\n r.onload = async e => {\n let contents = e.target.result;\n try {\n let json = JSON.parse(contents);\n let len = Object.keys(json).length;\n let id = json._id;\n if (id === undefined && len) {\n await this.loadObjects(json);\n window.alert(this.props.t('ra_%s object(s) processed', len));\n } else {\n // it is only one object in form\n // {\n // \"_id\": \"xxx\",\n // \"common\": \"yyy\",\n // \"native\": \"zzz\"\n // }\n if (!id) {\n return window.alert(this.props.t('ra_Invalid structure'));\n }\n try {\n let enums;\n if (json.common.enums) {\n enums = json.common.enums;\n delete json.common.enums;\n }\n await this.props.socket.setObject(json._id, json);\n if (json.type === 'state') {\n const state = await this.props.socket.getState(json._id);\n if (!state || state.val === null || state.val === undefined) {\n await this.props.socket.getState(json._id, json.common.def === undefined ? null : json.common.def, true);\n }\n }\n if (enums) {\n await this._createAllEnums(enums, json._id);\n }\n\n window.alert(this.props.t('ra_%s was imported', json._id));\n } catch (err) {\n window.alert(err);\n }\n }\n } catch (err) {\n window.alert(err);\n }\n };\n r.readAsText(f);\n } else {\n window.alert(this.props.t('ra_Failed to open JSON File'));\n }\n }\n\n toolTipObjectCreating = () => {\n const { t } = this.props;\n\n let value = [\n
{t('ra_Only following structures of objects are available:')}
,\n
{t('ra_Folder → State')}
,\n
{t('ra_Folder → Channel → State')}
,\n
{t('ra_Folder → Device → Channel → State')}
,\n
{t('ra_Device → Channel → State')}
,\n
{t('ra_Channel → State')}
,\n
,\n
{t('ra_Non-experts may create new objects only in \"0_userdata.0\" or \"alias.0\".')}
,\n
{t('ra_The experts may create objects everywhere but from second level (e.g. \"vis.0\" or \"javascript.0\").')}
,\n ];\n\n if (this.state.selected.length || this.state.selectedNonObject) {\n const id = this.state.selected[0] || this.state.selectedNonObject;\n if (id.split('.').length < 2 || (this.objects[id] && this.objects[id]?.type === 'state')) {\n } else {\n if (this.props.expertMode) {\n switch (this.objects[id]?.type) {\n case 'device':\n value = [\n
{t('ra_Only following structures of objects are available:')}
,\n
{t('ra_Device → Channel → State')}
,\n ];\n break\n case 'folder':\n value = [\n
{t('ra_Only following structures of objects are available:')}
,\n
{t('ra_Folder → State')}
,\n
{t('ra_Folder → Channel → State')}
,\n
{t('ra_Folder → Device → Channel → State')}
,\n ];\n break\n case 'channel':\n value = [\n
{t('ra_Only following structures of objects are available:')}
,\n
{t('ra_Channel → State')}
,\n ];\n break\n default:\n break\n }\n } else if (id.startsWith('alias.0') || id.startsWith('0_userdata')) {\n value = [\n
{t('ra_Only following structures of objects are available:')}
,\n
{t('ra_Non-experts may create new objects only in \"0_userdata.0\" or \"alias.0\".')}
,\n
{t('ra_The experts may create objects everywhere but from second level (e.g. \"vis.0\" or \"javascript.0\").')}
,\n ]\n }\n }\n }\n return value.length ? value : t('ra_Add new child object to selected parent');\n }\n\n /**\n * Renders the toolbar.\n * @returns {JSX.Element}\n */\n getToolbar() {\n let allowObjectCreation = false;\n if (this.state.selected.length || this.state.selectedNonObject) {\n const id = this.state.selected[0] || this.state.selectedNonObject;\n\n if (id.split('.').length < 2 || (this.objects[id] && this.objects[id].type === 'state')) {\n allowObjectCreation = false;\n } else {\n if (this.props.expertMode) {\n allowObjectCreation = true;\n } else if (id.startsWith('alias.0') || id.startsWith('0_userdata')) {\n allowObjectCreation = true;\n }\n }\n }\n\n return
\n
\n\n \n
\n this.refreshComponent()} disabled={this.state.updating}>\n \n \n
\n
\n {this.props.showExpertButton &&\n \n this.onFilter('expertMode', !this.state.filter.expertMode)}\n >\n \n \n \n }\n {!this.props.disableColumnSelector &&\n \n this.setState({ columnsSelectorShow: true })}\n >\n \n \n \n }\n {this.state.expandAllVisible &&\n \n this.onExpandAll()}\n >\n \n \n \n }\n \n this.onCollapseAll()}\n >\n \n \n \n \n this.onExpandVisible()}\n >\n \n \n \n \n \n \n this.onCollapseVisible()}\n >\n \n \n \n \n \n {this.props.objectStatesView && \n this.onStatesViewVisible()}>\n \n \n }\n\n {this.props.objectAddBoolean ?\n \n
\n \n this.setState({ modalNewObj: true })}\n >\n \n \n
\n
\n : null\n }\n\n {this.props.objectImportExport &&\n \n {\n const input = document.createElement('input');\n input.setAttribute('type', 'file');\n input.setAttribute('id', 'files');\n input.setAttribute('opacity', 0);\n input.addEventListener('change', e => this.handleJsonUpload(e), false);\n input.click();\n }}>\n \n \n \n }\n {this.props.objectImportExport && (!!this.state.selected.length || this.state.selectedNonObject) &&\n \n this.setState({showExportDialog: this._getSelectedIdsForExport().length})}>\n \n \n \n }\n
\n {!!this.props.objectBrowserEditObject &&
\n {`${this.props.t('ra_Objects')}: ${Object.keys(this.info.objects).length}, ${this.props.t('ra_States')}: ${Object.keys(this.info.objects).filter(el => this.info.objects[el].type === 'state').length}`}\n
}\n {this.props.objectEditBoolean &&\n \n {\n // get all visible states\n const ids = getVisibleItems(this.root, 'state', this.objects);\n\n if (ids.length) {\n this.pauseSubscribe(true);\n\n if (ids.length === 1) {\n window.localStorage.setItem((this.props.dialogName || 'App') + '.objectSelected', this.state.selected[0]);\n this.props.router && this.props.router.doNavigate(null, 'custom', this.state.selected[0]);\n }\n this.setState({ customDialog: ids });\n } else {\n this.setState({ toast: this.props.t('ra_please select object') });\n }\n }}>\n \n \n \n }\n
;\n }\n\n /**\n * @private\n * @param {string} id\n */\n toggleExpanded(id) {\n const expanded = JSON.parse(JSON.stringify(this.state.expanded));\n const pos = expanded.indexOf(id);\n if (pos === -1) {\n expanded.push(id);\n expanded.sort();\n } else {\n expanded.splice(pos, 1);\n }\n\n window.localStorage.setItem((this.props.dialogName || 'App') + '.objectExpanded', JSON.stringify(expanded));\n\n this.setState({ expanded });\n }\n\n /**\n * @private\n * @param {Event} e\n * @param {string} text\n */\n onCopy(e, text) {\n e.stopPropagation();\n e.preventDefault();\n copy(text);\n if (text.length < 50) {\n this.setState({ toast: this.props.t('ra_Copied %s', text) });\n } else {\n this.setState({ toast: this.props.t('ra_Copied') });\n }\n }\n\n renderTooltipAccessControl = acl => {\n // acl ={object,state,owner,ownerGroup}\n if (!acl) {\n return null;\n }\n const check = [\n { value: '0x400', valueNum: 0x400, title: 'read', group: 'Owner' },\n { value: '0x200', valueNum: 0x200, title: 'write', group: 'Owner' },\n { value: '0x40', valueNum: 0x40, title: 'read', group: 'Group' },\n { value: '0x20', valueNum: 0x20, title: 'write', group: 'Group' },\n { value: '0x4', valueNum: 0x4, title: 'read', group: 'Everyone' },\n { value: '0x2', valueNum: 0x2, title: 'write', group: 'Everyone' }\n ];\n const arrayTooltipText = [];\n const funcRenderStateObject = (value = 'object') => {\n let rights = acl[value];\n check.forEach((el, i) => {\n if (rights & el.valueNum) {\n arrayTooltipText.push({this.texts['acl' + el.group + '_' + el.title + '_' + value]},\n \n {el.value}\n \n );\n }\n });\n }\n arrayTooltipText.push({this.texts.ownerGroup + ': ' + (acl.ownerGroup || '').replace('system.group.', '')});\n arrayTooltipText.push({this.texts.ownerUser + ': ' + (acl.owner || '').replace('system.user.', '')});\n funcRenderStateObject();\n if (acl.state) {\n funcRenderStateObject('state');\n }\n return arrayTooltipText.length ? {arrayTooltipText.map(el => el)} : '';\n }\n\n /**\n * @param {string} id\n * @param {{ data: { obj: { type: string; }; hasCustoms: any; }; }} item\n * @param {{ cellButtonsButton: string | undefined; cellButtonsButtonAlone: any; cellButtonsButtonIcon: string | undefined; cellButtonsButtonWithCustoms: any; }} classes\n */\n renderColumnButtons(id, item, classes) {\n if (!item.data.obj) {\n return this.props.onObjectDelete || this.props.objectEditOfAccessControl ?
\n {this.props.expertMode && this.props.objectEditOfAccessControl ? \n this.setState({ modalEditOfAccess: true, modalEmptyId: id, modalEditOfAccessObjData: item.data })}\n >--- : null}\n {this.props.onObjectDelete && item.children && item.children.length ? this.props.onObjectDelete(id, !!(item.children && item.children.length), false)}\n >\n \n : null}\n
: null;\n }\n\n item.data.aclTooltip = item.data.aclTooltip || this.renderTooltipAccessControl(item.data.obj.acl);\n\n const acl = item.data.obj.acl ? (item.data.obj.type === 'state' ? item.data.obj.acl.state : item.data.obj.acl.object) : 0;\n const aclSystemConfig = item.data.obj.acl && (item.data.obj.type === 'state' ? this.systemConfig.common.defaultNewAcl.state : this.systemConfig.common.defaultNewAcl.object);\n\n return [\n this.props.expertMode && this.props.objectEditOfAccessControl ? \n this.setState({ modalEditOfAccess: true, modalEditOfAccessObjData: item.data })}\n >\n
{isNaN(Number(acl).toString(16)) ? Number(aclSystemConfig).toString(16) : Number(acl).toString(16)}
\n
:
,\n {\n window.localStorage.setItem(`${this.props.dialogName || 'App'}.objectSelected`, id);\n this.setState({ editObjectDialog: id });\n }}\n >\n \n ,\n this.props.onObjectDelete && (item.children?.length || !item.data.obj.common?.dontDelete) ? this.props.onObjectDelete(id, !!item.children?.length, !item.data.obj.common?.dontDelete)}\n title={this.texts.deleteObject}\n >\n \n : null,\n this.props.objectCustomDialog && this.info.hasSomeCustoms && item.data.obj.type === 'state' ? {\n window.localStorage.setItem((this.props.dialogName || 'App') + '.objectSelected', id);\n\n this.pauseSubscribe(true);\n this.props.router && this.props.router.doNavigate(null, 'customs', id);\n this.setState({ customDialog: [id] });\n }}\n >\n \n : null,\n ];\n }\n\n /**\n * @private\n * @param {string} id\n */\n readHistory(id) {\n /*interface GetHistoryOptions {\n instance?: string;\n start?: number;\n end?: number;\n step?: number;\n count?: number;\n from?: boolean;\n ack?: boolean;\n q?: boolean;\n addID?: boolean;\n limit?: number;\n ignoreNull?: boolean;\n sessionId?: any;\n aggregate?: 'minmax' | 'min' | 'max' | 'average' | 'total' | 'count' | 'none';\n }*/\n if (window.sparkline &&\n this.defaultHistory &&\n this.objects[id] &&\n this.objects[id].common &&\n this.objects[id].common.custom &&\n this.objects[id].common.custom[this.defaultHistory]) {\n\n const now = new Date();\n now.setHours(now.getHours() - 24);\n now.setMinutes(0);\n now.setSeconds(0);\n now.setMilliseconds(0);\n let nowMs = now.getTime();\n\n this.props.socket.getHistory(id, {\n instance: this.defaultHistory,\n start: nowMs,\n end: Date.now(),\n step: 3600000,\n from: false,\n ack: false,\n q: false,\n addID: false,\n aggregate: 'minmax'\n })\n .then(values => {\n const sparks = window.document.getElementsByClassName('sparkline');\n\n for (let s = 0; s < sparks.length; s++) {\n if (sparks[s].dataset.id === id) {\n const v = prepareSparkData(values, nowMs);\n\n window.sparkline.sparkline(sparks[s], v);\n break;\n }\n }\n })\n .catch(e => this.showError(e));\n }\n }\n\n /**\n * @private\n * @param {string} id\n * @param {any} item\n * @param {Record} classes\n * @returns {JSX.Element | null}\n */\n renderColumnValue(id, item, classes) {\n if (!item.data.obj || !this.states) {\n return null;\n }\n\n if (!this.states[id]) {\n if (item.data.obj.type === 'state') {\n this.recordStates.push(id);\n this.states[id] = { val: null };\n this.subscribe(id);\n }\n return null;\n } else {\n this.recordStates.push(id);\n }\n\n const state = this.states[id];\n let info = item.data.state;\n if (!info) {\n info = item.data.state = item.data.state || formatValue(id, state, item.data.obj, this.texts, this.props.dateFormat, this.props.isFloatComma);\n\n info.valFull = info.valFull.map(item => {\n if (item.t === this.texts.quality && state.q) {\n return [\n
{item.t}: {item.v}
,\n //
{item.v}
,\n !item.nbr ?
: null\n ];\n } else {\n return [\n
{item.t}:
,\n
{item.v}
,\n !item.nbr ?
: null\n ];\n }\n });\n\n if (this.defaultHistory && this.objects[id] && this.objects[id].common && this.objects[id].common.custom && this.objects[id].common.custom[this.defaultHistory]) {\n info.valFull.push();\n }\n\n const copyText = info.valText.v || '';\n info.val = copyText;\n info.valText = [\n {info.valText.v.toString()},\n info.valText.u ? {info.valText.u} : null,\n info.valText.s !== undefined ? ({info.valText.s}) : null,\n this.onCopy(e, copyText)} key=\"cc\" />,\n //\n ];\n }\n\n let val = info.valText;\n if (!this.props.expertMode && item.data.button) {\n val = ;\n }\n return this.readHistory(id)}\n >\n
\n {val}\n
\n ;\n }\n\n /**\n * @private\n * @returns {undefined}\n */\n _syncEnum(id, enumIds, newArray, cb) {\n if (!enumIds || !enumIds.length) {\n return cb && cb();\n } else {\n const enumId = enumIds.pop();\n const promises = [];\n if (this.info.objects[enumId]?.common) {\n if (this.info.objects[enumId].common.members?.length) {\n const pos = this.info.objects[enumId].common.members.indexOf(id);\n if (pos !== -1 && !newArray.includes(enumId)) {\n // delete from members\n const obj = JSON.parse(JSON.stringify(this.info.objects[enumId]));\n obj.common.members.splice(pos, 1);\n promises.push(this.props.socket.setObject(enumId, obj)\n .then(() => this.info.objects[enumId] = obj)\n .catch(e => this.showError(e))\n );\n }\n }\n\n // add to it\n if (newArray.includes(enumId) && !this.info.objects[enumId].common.members?.includes(id)) {\n // add to object\n const obj = JSON.parse(JSON.stringify(this.info.objects[enumId]));\n obj.common.members = obj.common.members || [];\n obj.common.members.push(id);\n obj.common.members.sort();\n promises.push(this.props.socket.setObject(enumId, obj)\n .then(() => this.info.objects[enumId] = obj)\n .catch(e => this.showError(e))\n );\n }\n }\n\n Promise.all(promises)\n .then(() => setTimeout(() =>\n this._syncEnum(id, enumIds, newArray, cb), 0));\n }\n }\n\n /**\n * @private\n * @returns {Promise}\n */\n syncEnum(id, enumName, newArray) {\n const toCheck = [...this.info[enumName === 'func' ? 'funcEnums' : 'roomEnums']];\n\n return new Promise(resolve => this._syncEnum(id, toCheck, newArray, error => {\n error && this.showError(error);\n // force update of object\n resolve();\n }));\n }\n\n /**\n * @private\n * @returns {JSX.Element | null}\n */\n renderEnumDialog() {\n if (this.state.enumDialog) {\n const type = this.state.enumDialog.type;\n const item = this.state.enumDialog.item;\n const itemEnums = this.state.enumDialogEnums;\n const enumsOriginal = this.state.enumDialog.enumsOriginal;\n\n const enums = (type === 'room' ? this.info.roomEnums : this.info.funcEnums).map(id => ({\n name: getName((this.objects[id] && this.objects[id].common && this.objects[id].common.name) || id.split('.').pop(), this.props.lang),\n value: id,\n icon: getSelectIdIcon(this.objects, id, this.imagePrefix)\n }));\n\n enums.forEach(item => {\n if (item.icon && typeof item.icon == 'string') {\n item.icon =
\n {item.name}\n
;\n }\n });\n\n // const hasIcons = !!enums.find(item => item.icon);\n\n return this.setState({ enumDialog: null })} aria-labelledby=\"enum-dialog-title\" open={true}>\n \n {type === 'func' ? this.props.t('ra_Define functions') : this.props.t('ra_Define rooms')}\n \n this.syncEnum(item.data.id, type, itemEnums)\n .then(() => this.setState({ enumDialog: null, enumDialogEnums: null }))}\n >\n \n \n \n \n {\n enums.map(item => {\n let id;\n let name;\n let icon;\n\n if (typeof item === 'object') {\n id = item.value;\n name = item.name;\n icon = item.icon;\n } else {\n id = item;\n name = item;\n }\n const labelId = `checkbox-list-label-${id}`;\n\n return {\n const pos = itemEnums.indexOf(id);\n const enumDialogEnums = JSON.parse(JSON.stringify(this.state.enumDialogEnums));\n if (pos === -1) {\n enumDialogEnums.push(id);\n enumDialogEnums.sort();\n } else {\n enumDialogEnums.splice(pos, 1);\n }\n this.setState({ enumDialogEnums });\n }}\n >\n \n \n \n {name}\n {icon ? {icon} : null}\n ;\n })\n }\n \n ;\n } else {\n return null;\n }\n }\n\n /**\n * @private\n * @returns {JSX.Element | null}\n */\n renderEditRoleDialog() {\n if (this.state.roleDialog && this.props.objectBrowserEditRole) {\n const ObjectBrowserEditRole = this.props.objectBrowserEditRole;\n return {\n if (obj) {\n this.info.objects[this.state.roleDialog] = obj;\n }\n this.setState({ roleDialog: false });\n }}\n />;\n } else {\n return null;\n }\n }\n\n /**\n * @private\n * @param {boolean} [isSave]\n */\n onColumnsEditCustomDialogClose(isSave) {\n if (isSave) {\n let value = this.customColumnDialog.value;\n if (this.customColumnDialog.type === 'boolean') {\n value = value === 'true' || value === true;\n } else if (this.customColumnDialog.type === 'number') {\n value = parseFloat(value);\n }\n this.customColumnDialog = null;\n this.props.socket.getObject(this.state.columnsEditCustomDialog.obj._id)\n .then(obj => {\n if (this.setCustomValue(obj, this.state.columnsEditCustomDialog.it, value)) {\n return this.props.socket.setObject(obj._id, obj);\n } else {\n throw new Error(this.props.t('ra_Cannot update attribute, because not found in the object'))\n }\n })\n .then(() => this.setState({ columnsEditCustomDialog: null }))\n .catch(e => this.showError(e));\n } else {\n this.customColumnDialog = null;\n this.setState({ columnsEditCustomDialog: null });\n }\n }\n\n /**\n * @private\n */\n renderColumnsEditCustomDialog() {\n if (this.state.columnsEditCustomDialog) {\n if (!this.customColumnDialog) {\n const value = this.getCustomValue(this.state.columnsEditCustomDialog.obj, this.state.columnsEditCustomDialog.it);\n this.customColumnDialog = {\n type: this.state.columnsEditCustomDialog.it.type || typeof value,\n initValue: (value === null || value === undefined ? '' : value).toString(),\n value: (value === null || value === undefined ? '' : value).toString()\n };\n }\n\n return this.setState({ columnsEditCustomDialog: null })}\n maxWidth=\"md\"\n aria-labelledby=\"custom-dialog-title\" open={true}>\n {this.props.t('ra_Edit object field') + ': ' + this.state.columnsEditCustomDialog.obj._id}\n \n \n {this.customColumnDialog.type === 'boolean' ?\n e.keyCode === 13 && this.onColumnsEditCustomDialogClose(true)}\n defaultChecked={this.customColumnDialog.value === 'true'}\n onChange={e => {\n this.customColumnDialog.value = e.target.checked.toString();\n const changed = this.customColumnDialog.value !== this.customColumnDialog.initValue;\n if (changed === !this.state.customColumnDialogValueChanged) {\n this.setState({ customColumnDialogValueChanged: changed });\n }\n }}\n />}\n label={this.state.columnsEditCustomDialog.it.name + ' (' + this.state.columnsEditCustomDialog.it.pathText + ')'}\n />\n :\n e.keyCode === 13 && this.onColumnsEditCustomDialogClose(true)}\n label={this.state.columnsEditCustomDialog.it.name + ' (' + this.state.columnsEditCustomDialog.it.pathText + ')'}\n onChange={e => {\n this.customColumnDialog.value = e.target.value;\n const changed = this.customColumnDialog.value !== this.customColumnDialog.initValue;\n if (changed === !this.state.customColumnDialogValueChanged) {\n this.setState({ customColumnDialogValueChanged: changed });\n }\n }}\n autoFocus\n />\n }\n\n \n \n \n this.onColumnsEditCustomDialogClose(true)}\n disabled={!this.state.customColumnDialogValueChanged}\n color=\"primary\"\n startIcon={ }\n >\n {this.props.t('ra_Update')}\n \n this.onColumnsEditCustomDialogClose()}\n startIcon={}\n >{this.props.t('Cancel')}\n \n ;\n } else {\n return null;\n }\n }\n\n /**\n * @private\n * @param {any} obj\n * @param {any} it\n */\n getCustomValue(obj, it) {\n if (obj && obj._id && obj._id.startsWith(it.adapter + '.') && it.path.length > 1) {\n const p = it.path;\n let value;\n if (obj[p[0]] && typeof obj[p[0]] === 'object') {\n if (p.length === 2) { // most common case\n value = obj[p[0]][p[1]];\n } else if (p.length === 3) {\n value = obj[p[0]][p[1]] && typeof obj[p[0]][p[1]] === 'object' ? obj[p[0]][p[1]][p[2]] : null;\n } else if (p.length === 4) {\n value = obj[p[0]][p[1]] && typeof obj[p[0]][p[1]] === 'object' && obj[p[0]][p[1]][p[2]] ? obj[p[0]][p[1]][p[2]][p[3]] : null;\n } else if (p.length === 5) {\n value = obj[p[0]][p[1]] && typeof obj[p[0]][p[1]] === 'object' && obj[p[0]][p[1]][p[2]] && obj[p[0]][p[1]][p[2]][p[3]] ? obj[p[0]][p[1]][p[2]][p[3]][p[4]] : null;\n } else if (p.length === 6) {\n value = obj[p[0]][p[1]] && typeof obj[p[0]][p[1]] === 'object' && obj[p[0]][p[1]][p[2]] && obj[p[0]][p[1]][p[2]][p[3]] && obj[p[0]][p[1]][p[2]][p[3]][p[4]] ? obj[p[0]][p[1]][p[2]][p[3]][p[4]][p[5]] : null;\n }\n if (value === undefined || value === null) {\n return null;\n } else {\n return value;\n }\n }\n } else {\n return null;\n }\n }\n\n /**\n * @private\n * @param {any} obj\n * @param {any} it\n * @param {any} value\n */\n setCustomValue(obj, it, value) {\n if (obj && obj._id && obj._id.startsWith(it.adapter + '.') && it.path.length > 1) {\n const p = it.path;\n if (obj[p[0]] && typeof obj[p[0]] === 'object') {\n if (p.length === 2) { // most common case\n obj[p[0]][p[1]] = value;\n return true;\n } else if (p.length === 3) {\n if (obj[p[0]][p[1]] && typeof obj[p[0]][p[1]] === 'object') {\n obj[p[0]][p[1]][p[2]] = value;\n return true;\n }\n } else if (p.length === 4) {\n if (obj[p[0]][p[1]] && typeof obj[p[0]][p[1]] === 'object' && obj[p[0]][p[1]][p[2]] && typeof obj[p[0]][p[1]][p[2]] === 'object') {\n obj[p[0]][p[1]][p[2]][p[3]] = value;\n return true;\n }\n } else if (p.length === 5) {\n if (obj[p[0]][p[1]] && typeof obj[p[0]][p[1]] === 'object' && obj[p[0]][p[1]][p[2]] && typeof obj[p[0]][p[1]][p[2]] === 'object' && obj[p[0]][p[1]][p[2]][p[3]] && typeof obj[p[0]][p[1]][p[2]][p[3]] === 'object') {\n obj[p[0]][p[1]][p[2]][p[3]][p[4]] = value;\n return true;\n }\n } else if (p.length === 6) {\n if (obj[p[0]][p[1]] && typeof obj[p[0]][p[1]] === 'object' && obj[p[0]][p[1]][p[2]] && typeof obj[p[0]][p[1]][p[2]] === 'object' && obj[p[0]][p[1]][p[2]][p[3]] && typeof obj[p[0]][p[1]][p[2]][p[3]] === 'object' && obj[p[0]][p[1]][p[2]][p[3]][p[4]] && typeof obj[p[0]][p[1]][p[2]][p[3]][p[4]] === 'object') {\n obj[p[0]][p[1]][p[2]][p[3]][p[4]][p[5]] = value;\n return true;\n }\n }\n }\n }\n return false;\n }\n\n /**\n * Renders a custom value.\n * @param {any} obj\n * @param {any} it\n * @param {any} item\n * @returns {JSX.Element | null}\n */\n renderCustomValue(obj, it, item) {\n let text = this.getCustomValue(obj, it);\n if (text !== null && text !== undefined) {\n if (it.edit && !this.props.notEditable && (!it.objTypes || it.objTypes.includes(obj.type))) {\n return this.setState({ columnsEditCustomDialog: { item, it, obj }, customColumnDialogValueChanged: false })}>{text}
;\n } else {\n return {text}
;\n }\n } else {\n return null;\n }\n }\n\n /**\n * Renders a leaf.\n * @param {any} item\n * @param {boolean} isExpanded\n * @param {Record} classes\n * @param {{ count: number; }} counter\n * @returns {JSX.Element}\n */\n renderLeaf(item, isExpanded, classes, counter) {\n const id = item.data.id;\n counter.count++;\n isExpanded = isExpanded === undefined ? this.state.expanded.includes(id) : isExpanded;\n\n // icon\n let iconFolder;\n let itemType = item.data.obj?.type;\n\n if (item.children || itemType === 'folder' || itemType === 'device' || itemType === 'channel' || itemType === 'meta') {\n iconFolder = isExpanded ? this.toggleExpanded(id)}\n /> : this.toggleExpanded(id)}\n />;\n } else {\n iconFolder = ;\n }\n\n let iconItem = null;\n if (item.data.icon) {\n if (typeof item.data.icon === 'string') {\n if (item.data.icon.length < 3) {\n iconItem = {item.data.icon}; // utf-8 char\n } else {\n iconItem = \"\";\n }\n } else {\n iconItem = item.data.icon;\n }\n }\n\n const obj = item.data.obj;\n\n const typeImg = (obj && obj.type && ITEM_IMAGES[obj.type]) ||
;\n\n const paddingLeft = this.levelPadding * item.data.level;\n\n if (item.data.lang !== this.state.lang) {\n const { rooms, per } = findRoomsForObject(this.info, id, this.state.lang);\n item.data.rooms = rooms.join(', ');\n item.data.per = per;\n const { funcs, pef } = findFunctionsForObject(this.info, id, this.state.lang);\n item.data.funcs = funcs.join(', ');\n item.data.pef = pef;\n item.data.lang = this.state.lang;\n }\n\n const checkbox =\n this.props.multiSelect &&\n this.objects[id] && (!this.props.types || this.props.types.includes(this.objects[id].type)) ?\n :\n null;\n\n const valueEditable = !this.props.notEditable && itemType === 'state' && (this.props.expertMode || item.data.obj?.common?.write !== false);\n const enumEditable = !this.props.notEditable && this.objects[id] && (this.props.expertMode || itemType === 'state' || itemType === 'channel' || itemType === 'device');\n const checkVisibleObjectType = this.state.statesView && (itemType === 'state' || itemType === 'channel' || itemType === 'device');\n let newValue = '';\n let newValueTitle = [];\n if (checkVisibleObjectType) {\n newValue = this.states[id]?.from;\n if (newValue === undefined) {\n newValue = ' ';\n } else {\n newValue = newValue ? newValue.replace(/^system\\.adapter\\.|^system\\./, '') : '';\n newValueTitle.push(`${this.texts.stateChangedFrom} ${newValue}`);\n }\n if (obj.user) {\n const user = obj.user.replace('system.user.', '');\n newValue += `/${user}`;\n newValueTitle.push(`${this.texts.stateChangedBy} ${user}`);\n }\n }\n item.data.obj?.from && newValueTitle.push(this.texts.objectChangedFrom + ' ' + item.data.obj.from.replace(/^system\\.adapter\\.|^system\\./, ''));\n item.data.obj?.user && newValueTitle.push(this.texts.objectChangedBy + ' ' + item.data.obj.user.replace(/^system\\.user\\./, ''));\n item.data.obj?.ts && newValueTitle.push(this.texts.objectChangedByUser + ' ' + Utils.formatDate(new Date(item.data.obj.ts), this.props.dateFormat));\n\n const readWriteAlias = typeof item.data.obj?.common?.alias?.id === 'object';\n\n const alias = id.startsWith('alias.') && item.data.obj?.common?.alias?.id ?\n (readWriteAlias ?\n
\n {item.data.obj.common.alias.id.read ? {\n e.stopPropagation();\n e.preventDefault();\n this.onSelect(item.data.obj.common.alias.id.read);\n setTimeout(() => {\n this.expandAllSelected(() =>\n this.scrollToItem(item.data.obj.common.alias.id.read));\n }, 100);\n }}\n className={Utils.clsx(classes.cellIdAlias, classes.cellIdAliasReadWrite)}\n >←{item.data.obj.common.alias.id.read}
: null}\n {item.data.obj.common.alias.id.write ? {\n e.stopPropagation();\n e.preventDefault();\n this.onSelect(item.data.obj.common.alias.id.write);\n setTimeout(() => {\n this.expandAllSelected(() =>\n this.scrollToItem(item.data.obj.common.alias.id.write));\n }, 100);\n }}\n className={Utils.clsx(classes.cellIdAlias, classes.cellIdAliasReadWrite)}\n >→{item.data.obj.common.alias.id.write}
: null}\n
\n :\n {\n e.stopPropagation();\n e.preventDefault();\n this.onSelect(item.data.obj.common.alias.id);\n setTimeout(() => {\n this.expandAllSelected(() =>\n this.scrollToItem(item.data.obj.common.alias.id));\n }, 100);\n }}\n className={Utils.clsx(classes.cellIdAlias, classes.cellIdAliasAlone)}\n >→{item.data.obj.common.alias.id}\n ) : null;\n\n let checkColor = item.data?.obj?.common?.color;\n let invertBackground = 'none';\n if (checkColor && !this.state.selected.includes(id)) {\n invertBackground = Utils.invertColor(checkColor, true);\n }\n if (!checkColor || this.state.selected.includes(id)) {\n checkColor = 'inherit';\n }\n const q = checkVisibleObjectType ? Utils.quality2text(this.states[id]?.q || 0).join(', ') : null;\n\n return this.onSelect(id)}\n onDoubleClick={() => {\n if (!item.children) {\n this.onSelect(id, true);\n } else {\n this.toggleExpanded(id);\n }\n }}\n >\n \n \n {checkbox}\n {iconFolder}\n \n \n {item.data.name}\n {alias}\n \n \n \n {iconItem}\n \n
\n this.onCopy(e, id)} />\n
\n \n\n {this.columnsVisibility.name ?
{(item.data?.title) || ''}
: null}\n\n {!this.state.statesView ?\n <>\n {this.columnsVisibility.type ?
{typeImg} {obj && obj.type}
: null}\n {this.columnsVisibility.role ?
this.setState({ roleDialog: item.data.id }) : undefined}>{obj && obj.common && obj.common.role}
: null}\n {this.columnsVisibility.room ?
{ const enums = findEnumsForObjectAsIds(this.info, item.data.id, 'roomEnums'); this.setState({ enumDialogEnums: enums, enumDialog: { item, type: 'room', enumsOriginal: JSON.parse(JSON.stringify(enums)) } }); } : undefined}>{item.data.rooms}
: null}\n {this.columnsVisibility.func ?
{ const enums = findEnumsForObjectAsIds(this.info, item.data.id, 'funcEnums'); this.setState({ enumDialogEnums: enums, enumDialog: { item, type: 'func', enumsOriginal: JSON.parse(JSON.stringify(enums)) } }); } : undefined}>{item.data.funcs}
: null}\n \n :\n <>\n {this.columnsVisibility.changedFrom ?
{checkVisibleObjectType && this.states[id]?.from ? newValue : null}
: null}\n {this.columnsVisibility.qualityCode ?
{q}
: null}\n {this.columnsVisibility.timestamp ?
{checkVisibleObjectType && this.states[id]?.ts ? Utils.formatDate(new Date(this.states[id].ts), this.props.dateFormat) : null}
: null}\n {this.columnsVisibility.lastChange ?
{checkVisibleObjectType && this.states[id]?.lc ? Utils.formatDate(new Date(this.states[id].lc), this.props.dateFormat) : null}
: null}\n \n }\n {this.adapterColumns.map(it =>
' + it.pathText}>{this.renderCustomValue(obj, it, item)}
)}\n {this.columnsVisibility.val ?
{\n if (!item.data.obj || !this.states) {\n return null;\n }\n\n // in non expert mode control button directly\n if (!this.props.expertMode && item.data.button) {\n return this.props.socket.setState(id, true)\n .catch(e => window.alert(`Cannot write state \"${id}\": ${e}`));\n }\n\n this.edit = {\n val: this.states[id] ? this.states[id].val : '',\n q: this.states[id] ? this.states[id].q || 0 : 0,\n ack: false,\n id,\n };\n this.setState({ updateOpened: true });\n } : undefined}>{this.renderColumnValue(id, item, classes)}
: null}\n {this.columnsVisibility.buttons ?
{this.renderColumnButtons(id, item, classes)}
: null}\n ;\n }\n\n /**\n * Renders an item.\n * @param {any} root\n * @param {boolean} isExpanded\n * @param {Record} classes\n * @param {{ count: any; }} [counter]\n * @returns {JSX.Element[]}\n */\n renderItem(root, isExpanded, classes, counter) {\n const items = [];\n counter = counter || { count: 0 };\n let leaf = this.renderLeaf(root, isExpanded, classes, counter);\n let DragWrapper = this.props.DragWrapper;\n if (this.props.dragEnabled) {\n if (root.data.sumVisibility) {\n leaf = {leaf};\n } else {\n // change cursor\n leaf =
{leaf}
\n }\n }\n root.data.id && items.push(leaf);\n\n isExpanded = isExpanded === undefined ? binarySearch(this.state.expanded, root.data.id) : isExpanded;\n\n if (!root.data.id || isExpanded) {\n if (!this.state.foldersFirst) {\n root.children && items.push(root.children.map(item => {\n // do not render too many items in column editor mode\n if (!this.state.columnsSelectorShow || counter.count < 15) {\n if (item.data.sumVisibility) {\n return this.renderItem(item, undefined, classes, counter);\n }\n }\n return null;\n }));\n } else {\n // first only folder\n root.children && items.push(root.children.map(item => {\n if (item.children) {\n // do not render too many items in column editor mode\n if (!this.state.columnsSelectorShow || counter.count < 15) {\n if (item.data.sumVisibility) {\n return this.renderItem(item, undefined, classes, counter);\n }\n }\n }\n\n return null;\n }));\n // then items\n root.children && items.push(root.children.map(item => {\n if (!item.children) {\n // do not render too many items in column editor mode\n if (!this.state.columnsSelectorShow || counter.count < 15) {\n if (item.data.sumVisibility) {\n return this.renderItem(item, undefined, classes, counter);\n }\n }\n }\n return null;\n }));\n }\n }\n\n return items;\n }\n\n /**\n * @private\n * @param {boolean} [columnsAuto]\n * @param {string[]} [columns]\n * @param {any} [columnsForAdmin]\n * @param {Record} [columnsWidths]\n */\n calculateColumnsVisibility(columnsAuto, columns, columnsForAdmin, columnsWidths) {\n columnsWidths = columnsWidths || this.state.columnsWidths;\n columnsForAdmin = columnsForAdmin || this.state.columnsForAdmin;\n columns = columns || this.state.columns || [];\n columnsAuto = typeof columnsAuto !== 'boolean' ? this.state.columnsAuto : columnsAuto;\n\n columnsWidths = JSON.parse(JSON.stringify(columnsWidths));\n Object.keys(columnsWidths).forEach(name => {\n if (columnsWidths[name]) {\n columnsWidths[name] = parseInt(columnsWidths[name], 10) || 0;\n }\n });\n\n this.adapterColumns = [];\n const WIDTHS = SCREEN_WIDTHS[this.props.width].widths;\n\n if (columnsAuto) {\n this.columnsVisibility = {\n id: SCREEN_WIDTHS[this.props.width].idWidth,\n name: this.visibleCols.includes('name') ? WIDTHS.name || 0 : 0,\n type: this.visibleCols.includes('type') ? WIDTHS.type || 0 : 0,\n role: this.visibleCols.includes('role') ? WIDTHS.role || 0 : 0,\n room: this.visibleCols.includes('room') ? WIDTHS.room || 0 : 0,\n func: this.visibleCols.includes('func') ? WIDTHS.func || 0 : 0,\n changedFrom: this.visibleCols.includes('changedFrom') ? WIDTHS.changedFrom || 0 : 0,\n qualityCode: this.visibleCols.includes('qualityCode') ? WIDTHS.qualityCode || 0 : 0,\n timestamp: this.visibleCols.includes('timestamp') ? WIDTHS.timestamp || 0 : 0,\n lastChange: this.visibleCols.includes('lastChange') ? WIDTHS.lastChange || 0 : 0,\n val: this.visibleCols.includes('val') ? WIDTHS.val || 0 : 0,\n buttons: this.visibleCols.includes('buttons') ? WIDTHS.buttons || 0 : 0,\n };\n\n if (this.columnsVisibility.name) {\n let widthSum = this.columnsVisibility.id; // id is always visible\n if (this.state.statesView) {\n widthSum += this.columnsVisibility.changedFrom;\n widthSum += this.columnsVisibility.qualityCode;\n widthSum += this.columnsVisibility.timestamp;\n widthSum += this.columnsVisibility.lastChange;\n } else {\n widthSum += this.columnsVisibility.type;\n widthSum += this.columnsVisibility.role;\n widthSum += this.columnsVisibility.room;\n widthSum += this.columnsVisibility.func;\n }\n widthSum += this.columnsVisibility.val;\n widthSum += this.columnsVisibility.buttons;\n this.columnsVisibility.name = `calc(100% - ${widthSum + 5}px)`;\n this.columnsVisibility.nameHeader = `calc(100% - ${widthSum + 5 + this.state.scrollBarWidth}px)`;\n } else {\n // Calculate the with of ID\n let widthSum = 0; // id is always visible\n if (this.state.statesView) {\n widthSum += this.columnsVisibility.changedFrom;\n widthSum += this.columnsVisibility.qualityCode;\n widthSum += this.columnsVisibility.timestamp;\n widthSum += this.columnsVisibility.lastChange;\n } else {\n widthSum += this.columnsVisibility.type;\n widthSum += this.columnsVisibility.role;\n widthSum += this.columnsVisibility.room;\n widthSum += this.columnsVisibility.func;\n }\n widthSum += this.columnsVisibility.val;\n widthSum += this.columnsVisibility.buttons;\n this.columnsVisibility.id = `calc(100% - ${widthSum + 5}px)`;\n }\n } else {\n this.columnsVisibility = {\n id: columnsWidths.id || SCREEN_WIDTHS[this.props.width].idWidth,\n name: columns.includes('name') ? columnsWidths.name || WIDTHS.name || SCREEN_WIDTHS[this.props.width].widths.name || 0 : 0,\n type: columns.includes('type') ? columnsWidths.type || WIDTHS.type || SCREEN_WIDTHS[this.props.width].widths.type || 0 : 0,\n role: columns.includes('role') ? columnsWidths.role || WIDTHS.role || SCREEN_WIDTHS[this.props.width].widths.role || 0 : 0,\n room: columns.includes('room') ? columnsWidths.room || WIDTHS.room || SCREEN_WIDTHS[this.props.width].widths.room || 0 : 0,\n func: columns.includes('func') ? columnsWidths.func || WIDTHS.func || SCREEN_WIDTHS[this.props.width].widths.func || 0 : 0\n };\n let widthSum = this.columnsVisibility.id; // id is always visible\n if (this.columnsVisibility.name) {\n widthSum += this.columnsVisibility.type;\n widthSum += this.columnsVisibility.role;\n widthSum += this.columnsVisibility.room;\n widthSum += this.columnsVisibility.func;\n }\n\n if (columnsForAdmin && columns) {\n Object.keys(columnsForAdmin).sort().forEach(adapter =>\n columnsForAdmin[adapter].forEach(column => {\n const id = '_' + adapter + '_' + column.path;\n this.columnsVisibility[id] = columns.includes(id);\n if (columns.includes(id)) {\n const item = {\n adapter,\n id: '_' + adapter + '_' + column.path,\n name: column.name,\n path: column.path.split('.'),\n pathText: column.path\n };\n if (column.edit) {\n item.edit = true;\n if (column.type) {\n item.type = column.type;\n }\n if (column.objTypes) {\n item.objTypes = column.objTypes;\n }\n }\n\n this.adapterColumns.push(item);\n this.columnsVisibility[id] = columnsWidths[item.id] || column.width || SCREEN_WIDTHS[this.props.width].widths.func || SCREEN_WIDTHS.xl.widths.func;\n widthSum += this.columnsVisibility[id];\n } else {\n this.columnsVisibility[id] = 0;\n }\n }));\n }\n this.adapterColumns.sort((a, b) => a.id > b.id ? -1 : (a.id < b.id ? 1 : 0));\n this.columnsVisibility.val = columns.includes('val') ? columnsWidths.val || WIDTHS.val || SCREEN_WIDTHS.xl.widths.val : 0;\n\n // do not show buttons if not desired\n if (!this.props.columns || this.props.columns.includes('buttons')) {\n this.columnsVisibility.buttons = columns.includes('buttons') ? columnsWidths.buttons || WIDTHS.buttons || SCREEN_WIDTHS.xl.widths.buttons : 0;\n widthSum += this.columnsVisibility.buttons;\n }\n\n if (this.columnsVisibility.name && !columnsWidths.name) {\n widthSum += this.columnsVisibility.val;\n this.columnsVisibility.name = `calc(100% - ${widthSum}px)`;\n this.columnsVisibility.nameHeader = `calc(100% - ${widthSum + 5 + this.state.scrollBarWidth}px)`;\n } else {\n const newWidth = Object.keys(this.columnsVisibility).reduce((accumulator, name) => {\n if (name === 'id' || typeof this.columnsVisibility[name] === 'string' || !this.columnsVisibility[name]) {\n return accumulator;\n } else {\n return accumulator + this.columnsVisibility[name];\n }},\n 0);\n this.columnsVisibility.id = `calc(100% - ${newWidth}px)`;\n }\n }\n }\n\n /**\n * @private\n * @returns {JSX.Element}\n */\n renderHeader() {\n const classes = this.props.classes;\n\n let filterClearInValue = null;\n if (!this.columnsVisibility.buttons && !this.isFilterEmpty()) {\n filterClearInValue = this.clearFilter()} className={classes.buttonClearFilter} title={this.props.t('ra_Clear filter')}>\n \n \n ;\n }\n\n return
\n
{this.getFilterInput('id')}
\n {this.columnsVisibility.name ?
{this.getFilterInput('name')}
: null}\n {!this.state.statesView && <>\n {this.columnsVisibility.type ?
{this.getFilterSelectType()}
: null}\n {this.columnsVisibility.role ?
{this.getFilterSelectRole()}
: null}\n {this.columnsVisibility.room ?
{this.getFilterSelectRoom()}
: null}\n {this.columnsVisibility.func ?
{this.getFilterSelectFunction()}
: null}\n }\n {this.state.statesView && <>\n
{this.props.t('ra_Changed from')}
\n
{this.props.t('ra_Quality code')}
\n
{this.props.t('ra_Timestamp')}
\n
{this.props.t('ra_Last change')}
\n }\n {this.adapterColumns.map(item =>
{item.name}
)}\n {this.columnsVisibility.val ?
{this.props.t('ra_Value')}{filterClearInValue}
: null}\n {this.columnsVisibility.buttons ?
{this.getFilterSelectCustoms()}
: null}\n
;\n }\n\n /**\n * @private\n * @returns {JSX.Element}\n */\n renderToast() {\n return this.setState({ toast: '' })}\n onClose={() => this.setState({ toast: '' })}\n message={this.state.toast}\n action={\n \n this.setState({ toast: '' })}>\n \n \n \n }\n />;\n }\n\n /**\n * Called when component is updated.\n */\n componentDidUpdate() {\n if (this.tableRef.current) {\n const scrollBarWidth = this.tableRef.current.offsetWidth - this.tableRef.current.clientWidth;\n if (this.state.scrollBarWidth !== scrollBarWidth) {\n setTimeout(() => this.setState({ scrollBarWidth }), 100);\n } else {\n if (!this.selectedFound && ((this.state.selected && this.state.selected[0]) || this.lastSelectedItems)) {\n this.scrollToItem((this.state.selected && this.state.selected[0]) || this.lastSelectedItems);\n }\n }\n }\n }\n\n scrollToItem(id) {\n const node = window.document.getElementById(id);\n node && node.scrollIntoView({\n behavior: 'auto',\n block: 'center',\n inline: 'center'\n });\n this.selectedFound = true;\n }\n\n /**\n * @private\n * @returns {JSX.Element | null}\n */\n renderCustomDialog() {\n if (this.state.customDialog && this.props.objectCustomDialog) {\n const ObjectCustomDialog = this.props.objectCustomDialog;\n\n return this.changedIds = [...changedIds]}\n objectIDs={this.state.customDialog}\n expertMode={this.state.filter.expertMode}\n isFloatComma={this.props.isFloatComma}\n t={this.props.t}\n lang={this.props.lang}\n socket={this.props.socket}\n themeName={this.props.themeName}\n themeType={this.props.themeType}\n theme={this.props.theme}\n objects={this.objects}\n customsInstances={this.info.customs}\n onClose={() => {\n this.pauseSubscribe(false);\n this.setState({ customDialog: null });\n if (this.changedIds) {\n this.changedIds = null;\n // update all changed IDs\n this.forceUpdate();\n }\n\n this.props.router && this.props.router.doNavigate('tab-objects');\n }}\n />;\n } else {\n return null;\n }\n }\n\n /**\n * @private\n * @param {Partial} valAck\n */\n onUpdate(valAck) {\n this.props.socket.setState(this.edit.id, { val: valAck.val, ack: valAck.ack, q: valAck.q || 0, expire: valAck.expire || undefined })\n .catch(e => this.showError('Cannot write value: ' + e));\n }\n\n /**\n * @private\n * @returns {JSX.Element | null}\n */\n renderEditObjectDialog() {\n if (!this.state.editObjectDialog || !this.props.objectBrowserEditObject) {\n return null;\n }\n const ObjectBrowserEditObject = this.props.objectBrowserEditObject;\n\n return \n this.props.socket.setObject(obj._id, obj)\n .then(() => this.setState({ editObjectDialog: obj._id }, () => this.onSelect(obj._id)))\n .catch(e => this.showError('Cannot write object: ' + e))}\n onClose={obj => {\n this.setState({ editObjectDialog: '' });\n if (obj) {\n this.props.socket.setObject(obj._id, obj)\n .catch(e => this.showError('Cannot write object: ' + e));\n }\n }}\n />\n }\n\n /**\n * @private\n * @returns {JSX.Element | null}\n */\n renderEditValueDialog() {\n if (!this.state.updateOpened || !this.props.objectBrowserValue) {\n return null;\n }\n\n const type = this.objects[this.edit.id].common?.type ?\n this.objects[this.edit.id].common.type : typeof this.edit.val;\n\n const ObjectBrowserValue = this.props.objectBrowserValue;\n\n return {\n this.setState({ updateOpened: false });\n res && this.onUpdate(res);\n }}\n />;\n }\n\n extendObject = (id, data) =>\n this.props.socket.extendObject(id, data)\n .catch(error => window.alert(error));\n\n setObject = (id, data) =>\n this.props.socket.setObject(id, data)\n .catch(error => window.alert(error));\n\n /**\n * The rendering method of this component.\n * @returns {JSX.Element}\n */\n render() {\n this.recordStates = [];\n this.unsubscribeTimer && clearTimeout(this.unsubscribeTimer);\n\n // apply filter if changed\n const jsonFilter = JSON.stringify(this.state.filter);\n if (this.lastAppliedFilter !== jsonFilter && this.objects && this.root) {\n const counter = { count: 0 };\n\n applyFilter(this.root, this.state.filter, this.state.lang, this.objects, null, counter, this.props.customFilter, this.props.types);\n\n if (counter.count < 500 && !this.state.expandAllVisible) {\n setTimeout(() => this.setState({ expandAllVisible: true }));\n } else if (counter.count >= 500 && this.state.expandAllVisible) {\n setTimeout(() => this.setState({ expandAllVisible: false }));\n }\n\n this.lastAppliedFilter = jsonFilter;\n }\n\n this.unsubscribeTimer = setTimeout(() => {\n this.unsubscribeTimer = null;\n this.checkUnsubscribes();\n }, 200);\n\n if (!this.state.loaded) {\n return ;\n } else {\n const classes = this.props.classes;\n const items = this.renderItem(this.root, undefined, classes);\n\n return \n \n {this.getToolbar()}\n \n \n {this.renderHeader()}\n
\n {items}\n
\n
\n {this.renderToast()}\n {this.renderColumnsEditCustomDialog()}\n {this.renderColumnsSelectorDialog()}\n {this.renderCustomDialog()}\n {this.renderEditValueDialog()}\n {this.renderEditObjectDialog()}\n {this.renderEditRoleDialog()}\n {this.renderEnumDialog()}\n {this.renderErrorDialog()}\n {this.renderExportDialog()}\n {this.state.modalNewObj && this.props.modalNewObject && this.props.modalNewObject(this)}\n {this.state.modalEditOfAccess && this.props.modalEditOfAccessControl && this.props.modalEditOfAccessControl(this, this.state.modalEditOfAccessObjData)}\n
;\n }\n }\n}\n\nObjectBrowser.defaultProps = {\n objectAddBoolean: false,\n objectEditBoolean: false,\n objectStatesView: false,\n objectImportExport: false,\n objectEditOfAccessControl: false,\n modalNewObject: () => { },\n modalEditOfAccessControl: () => { },\n};\n\nObjectBrowser.propTypes = {\n dialogName: PropTypes.string, // where to store settings in localStorage\n classes: PropTypes.object,\n defaultFilters: PropTypes.object,\n selected: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.array\n ]),\n onSelect: PropTypes.func,\n onFilterChanged: PropTypes.func,\n socket: PropTypes.object,\n showExpertButton: PropTypes.bool,\n expertMode: PropTypes.bool,\n imagePrefix: PropTypes.string,\n themeName: PropTypes.string,\n themeType: PropTypes.string,\n theme: PropTypes.object,\n t: PropTypes.func,\n lang: PropTypes.string.isRequired,\n multiSelect: PropTypes.bool,\n notEditable: PropTypes.bool,\n foldersFirst: PropTypes.bool,\n disableColumnSelector: PropTypes.bool,\n isFloatComma: PropTypes.bool,\n dateFormat: PropTypes.string,\n levelPadding: PropTypes.number,\n\n // components\n objectCustomDialog: PropTypes.oneOfType([\n PropTypes.object,\n PropTypes.func\n ]),\n objectAddBoolean: PropTypes.bool, // optional toolbar button\n objectEditBoolean: PropTypes.bool, // optional toolbar button\n objectStatesView: PropTypes.bool, // optional toolbar button\n objectImportExport: PropTypes.bool, // optional toolbar button\n objectEditOfAccessControl: PropTypes.bool, //Access Control\n modalNewObject: PropTypes.func, // modal add object\n modalEditOfAccessControl: PropTypes.func, //modal Edit Of Access Control\n onObjectDelete: PropTypes.func, // optional function (id, hasChildren, objectExists) { }\n customFilter: PropTypes.object, // optional {common: {custom: true}} or {common: {custom: 'sql.0'}}\n objectBrowserValue: PropTypes.object,\n objectBrowserEditObject: PropTypes.object,\n objectBrowserEditRole: PropTypes.object, // on Edit role\n router: PropTypes.oneOfType([\n PropTypes.object,\n PropTypes.func\n ]),\n types: PropTypes.array, // optional ['state', 'instance', 'channel']\n columns: PropTypes.array, // optional ['name', 'type', 'role', 'room', 'func', 'val', 'buttons']\n\n objectsWorker: PropTypes.object, // optional cache of objects\n filterFunc: PropTypes.func, // function to filter out all unneccessary objects. It cannot be used together with \"types\"\n // Example for function: `obj => obj.common && obj.common.type === 'boolean'` to show only boolean states\n\n dragSettings: PropTypes.object,\n DragWrapper: PropTypes.func,\n dragEnabled: PropTypes.bool,\n useDrag: PropTypes.func,\n};\n\n/** @type {typeof ObjectBrowser} */\nconst _export = withWidth()(withStyles(styles)(ObjectBrowser));\nexport default _export;", "/**\n * Copyright 2018-2021 bluefox \n *\n * MIT License\n *\n **/\n// please do not delete React, as without it other projects could not be compiled: ReferenceError: React is not defined\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport withStyles from '@material-ui/core/styles/withStyles';\n\nimport Button from '@material-ui/core/Button';\nimport DialogTitle from '@material-ui/core/DialogTitle';\nimport DialogContent from '@material-ui/core/DialogContent';\nimport DialogActions from '@material-ui/core/DialogActions';\nimport Dialog from '@material-ui/core/Dialog';\n\nimport IconCancel from '@material-ui/icons/Cancel';\nimport IconOk from '@material-ui/icons/Check';\n\nimport Utils from '../Components/Utils';\nimport I18n from '../i18n';\nimport ObjectBrowser from '../Components/ObjectBrowser';\n\nconst styles = theme => ({\n headerID: {\n fontWeight: 'bold',\n fontStyle: 'italic'\n },\n dialog: {\n height: '95%'\n },\n dialogMobile: {\n padding: 4,\n width: '100%',\n maxWidth: '100%',\n maxHeight: 'calc(100% - 16px)',\n height: '100%'\n },\n content: {\n height: '100%',\n overflow: 'hidden'\n },\n contentMobile: {\n padding: '8px 4px'\n },\n titleRoot: {\n whiteSpace: 'nowrap',\n width: 'calc(100% - 72px)',\n overflow: 'hidden',\n display: 'inline-block',\n textOverflow: 'ellipsis',\n }\n});\n\n/**\n * @typedef {object} SelectIDProps\n * @property {string} [key] The key to identify this component.\n * @property {string} [dialogName] The internal name of the dialog; default: \"default\"\n * @property {string} [title] The dialog title; default: Please select object ID... (translated)\n * @property {boolean} [multiSelect] Set to true to allow the selection of multiple IDs.\n * @property {boolean} [foldersFirst] Show folders before any leaves.\n * @property {string} [imagePrefix] Prefix (default: '.')\n * @property {boolean} [showExpertButton] Show the expert button?\n * @property {import('../Components/types').ObjectBrowserColumn[]} [columns] Columns to display; default: 'name', 'type', 'role', 'room', 'func', 'val'\n * @property {import('../Components/types').ObjectBrowserType[]} [types] Object types to show; default: 'state' only\n * @property {ioBroker.Languages} [lang] The language.\n * @property {import('../Connection').default} socket The socket connection.\n * @property {boolean} [notEditable] Can't objects be edited? (default: true)\n * @property {string} [themeName] Theme name.\n * @property {string} [themeType] Theme type.\n * @property {import('../Components/types').ObjectBrowserCustomFilter} [customFilter] Custom filter.\n * @property {string | string[]} [selected] The selected IDs.\n * @property {string} [ok] The ok button text; default: OK (translated)\n * @property {string} [cancel] The cancel button text; default: Cancel (translated)\n * @property {() => void} onClose Close handler that is always called when the dialog is closed.\n * @property {(selected: string | string[] | undefined, name: string) => void} onOk Handler that is called when the user presses OK.\n * @property {{headerID: string; dialog: string; content: string}} [classes] The styling class names.\n *\n * @extends {React.Component}\n */\nclass SelectID extends React.Component {\n /**\n * @param {SelectIDProps} props\n */\n constructor(props) {\n super(props);\n this.dialogName = this.props.dialogName || 'default';\n this.dialogName = 'SelectID.' + this.dialogName;\n\n this.filters = window.localStorage.getItem(this.dialogName) || '{}';\n\n try {\n this.filters = JSON.parse(this.filters);\n } catch (e) {\n this.filters = {};\n }\n\n let selected = this.props.selected || [];\n if (typeof selected !== 'object') {\n selected = [selected];\n }\n selected = selected.filter(id => id);\n\n this.state = {\n selected,\n name: '',\n isMobile: window.innerWidth < 800\n };\n }\n\n handleCancel() {\n this.props.onClose();\n };\n\n handleOk() {\n this.props.onOk(this.props.multiSelect ? this.state.selected : this.state.selected[0] || '', this.state.name);\n this.props.onClose();\n };\n\n render() {\n let title;\n if (this.state.name || this.state.selected.length) {\n if (this.state.selected.length === 1) {\n title = [\n { I18n.t('ra_Selected') } ,\n {\n (this.state.name || this.state.selected) + (this.state.name ? ' [' + this.state.selected + ']' : '')\n }\n ];\n } else {\n title = [\n { I18n.t('ra_Selected') } ,\n {\n I18n.t('%s items', this.state.selected.length)\n }\n ];\n }\n } else {\n title = this.props.title || I18n.t('ra_Please select object ID...');\n }\n\n return {}}\n maxWidth={false}\n classes={{paper: Utils.clsx(this.props.classes.dialog, this.props.classes.dialogMobile)}}\n fullWidth={true}\n open={true}\n aria-labelledby=\"selectid-dialog-title\"\n >\n { title }\n \n {\n this.filters = filterConfig;\n window.localStorage.setItem(this.dialogName, JSON.stringify(filterConfig));\n } }\n onSelect={ (selected, name, isDouble) => {\n if (JSON.stringify(selected) !== JSON.stringify(this.state.selected)) {\n this.setState({selected, name}, () =>\n isDouble && this.handleOk());\n } else if (isDouble) {\n this.handleOk();\n }\n } }\n filterFunc={this.props.filterFunc}\n />\n \n \n \n \n \n ;\n }\n}\n\nSelectID.propTypes = {\n dialogName: PropTypes.string, // where to store settings in localStorage\n classes: PropTypes.object,\n onClose: PropTypes.func,\n notEditable: PropTypes.bool,\n onOk: PropTypes.func.isRequired,\n title: PropTypes.string,\n lang: PropTypes.string,\n foldersFirst: PropTypes.bool,\n isFloatComma: PropTypes.bool,\n dateFormat: PropTypes.string,\n selected: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.array\n ]),\n customFilter: PropTypes.object, // optional {common: {custom: true}} or {common: {custom: 'sql.0'}}\n statesOnly: PropTypes.bool,\n socket: PropTypes.object.isRequired,\n cancel: PropTypes.string,\n imagePrefix: PropTypes.string,\n ok: PropTypes.string,\n themeName: PropTypes.string,\n themeType: PropTypes.string,\n showExpertButton: PropTypes.bool,\n multiSelect: PropTypes.bool,\n types: PropTypes.array, // optional ['state', 'instance', 'channel']\n columns: PropTypes.array, // optional ['name', 'type', 'role', 'room', 'func', 'val', 'buttons']\n\n filterFunc: PropTypes.func, // function to filter out all unneccessary objects. It cannot be used together with \"types\"\n // Example for function: `obj => obj.common && obj.common.type === 'boolean'` to show only boolean states\n};\n\n/** @type {typeof SelectID} */\nconst _export = withStyles(styles)(SelectID);\nexport default _export;\n", "\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.padStart = void 0;\n/**\n * Pads a string to the given length by repeatedly prepending the filler at the beginning of the string.\n * @param str The string to pad\n * @param targetLen The target length\n * @param fill The filler string to prepend. Depending on the lenght requirements, this might get truncated.\n */\nfunction padStart(str, targetLen, fill = \" \") {\n // simply return strings that are long enough to not be padded\n if (str != null && str.length >= targetLen)\n return str;\n // make sure that isn't empty\n if (fill == null || fill.length < 1)\n throw new Error(\"fill must be at least one char\");\n // figure out how often we need to repeat \n const missingLength = targetLen - str.length;\n const repeats = Math.ceil(missingLength / fill.length);\n return fill.repeat(repeats).substr(0, missingLength) + str;\n}\nexports.padStart = padStart;\n", "\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M17 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V7l-4-4zm-5 16c-1.66 0-3-1.34-3-3s1.34-3 3-3 3 1.34 3 3-1.34 3-3 3zm3-10H5V5h10v4z\"\n}), 'Save');\n\nexports.default = _default;", "\"use strict\";\n/**\n * Tests whether the given variable is a real object and not an Array\n * @param it The variable to test\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.isArray = exports.isObject = void 0;\n// We need an extensive conditional type here because TS stopped simplifying/narrowing\n// correctly in 4.8 (https://github.com/microsoft/TypeScript/issues/50671)\nfunction isObject(it) {\n // This is necessary because:\n // typeof null === 'object'\n // typeof [] === 'object'\n // [] instanceof Object === true\n return Object.prototype.toString.call(it) === \"[object Object]\";\n}\nexports.isObject = isObject;\n/**\n * Tests whether the given variable is really an Array\n * @param it The variable to test\n */\n// We need an extensive conditional type here because TS stopped simplifying/narrowing\n// correctly in 4.8 (https://github.com/microsoft/TypeScript/issues/50671)\nfunction isArray(it) {\n if (Array.isArray != null)\n return Array.isArray(it);\n return Object.prototype.toString.call(it) === \"[object Array]\";\n}\nexports.isArray = isArray;\n", "/** @license React v17.0.2\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';require(\"object-assign\");var f=require(\"react\"),g=60103;exports.Fragment=60107;if(\"function\"===typeof Symbol&&Symbol.for){var h=Symbol.for;g=h(\"react.element\");exports.Fragment=h(\"react.fragment\")}var m=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,n=Object.prototype.hasOwnProperty,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,k){var b,d={},e=null,l=null;void 0!==k&&(e=\"\"+k);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(l=a.ref);for(b in a)n.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:g,type:c,key:e,ref:l,props:d,_owner:m.current}}exports.jsx=q;exports.jsxs=q;\n", "'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n", "\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19 9h-4V3H9v6H5l7 7 7-7zM5 18v2h14v-2H5z\"\n}), 'GetApp');\n\nexports.default = _default;", "import { createStyles as createStylesOriginal } from '@material-ui/styles'; // let warnOnce = false;\n// To remove in v5\n\nexport default function createStyles(styles) {\n // warning(\n // warnOnce,\n // [\n // 'Material-UI: createStyles from @material-ui/core/styles is deprecated.',\n // 'Please use @material-ui/styles/createStyles',\n // ].join('\\n'),\n // );\n // warnOnce = true;\n return createStylesOriginal(styles);\n}", "export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}", "import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { makeStyles as makeStylesWithoutDefault } from '@material-ui/styles';\nimport defaultTheme from './defaultTheme';\n\nfunction makeStyles(stylesOrCreator) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return makeStylesWithoutDefault(stylesOrCreator, _extends({\n defaultTheme: defaultTheme\n }, options));\n}\n\nexport default makeStyles;", "export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}", "export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}", "import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}", "import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport { deepmerge } from '@material-ui/utils';\nimport createBreakpoints from './createBreakpoints';\nimport createMixins from './createMixins';\nimport createPalette from './createPalette';\nimport createTypography from './createTypography';\nimport shadows from './shadows';\nimport shape from './shape';\nimport createSpacing from './createSpacing';\nimport transitions from './transitions';\nimport zIndex from './zIndex';\n\nfunction createTheme() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var _options$breakpoints = options.breakpoints,\n breakpointsInput = _options$breakpoints === void 0 ? {} : _options$breakpoints,\n _options$mixins = options.mixins,\n mixinsInput = _options$mixins === void 0 ? {} : _options$mixins,\n _options$palette = options.palette,\n paletteInput = _options$palette === void 0 ? {} : _options$palette,\n spacingInput = options.spacing,\n _options$typography = options.typography,\n typographyInput = _options$typography === void 0 ? {} : _options$typography,\n other = _objectWithoutProperties(options, [\"breakpoints\", \"mixins\", \"palette\", \"spacing\", \"typography\"]);\n\n var palette = createPalette(paletteInput);\n var breakpoints = createBreakpoints(breakpointsInput);\n var spacing = createSpacing(spacingInput);\n var muiTheme = deepmerge({\n breakpoints: breakpoints,\n direction: 'ltr',\n mixins: createMixins(breakpoints, spacing, mixinsInput),\n overrides: {},\n // Inject custom styles\n palette: palette,\n props: {},\n // Provide default props\n shadows: shadows,\n typography: createTypography(palette, typographyInput),\n spacing: spacing,\n shape: shape,\n transitions: transitions,\n zIndex: zIndex\n }, other);\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n muiTheme = args.reduce(function (acc, argument) {\n return deepmerge(acc, argument);\n }, muiTheme);\n\n if (process.env.NODE_ENV !== 'production') {\n var pseudoClasses = ['checked', 'disabled', 'error', 'focused', 'focusVisible', 'required', 'expanded', 'selected'];\n\n var traverse = function traverse(node, parentKey) {\n var depth = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n var key; // eslint-disable-next-line guard-for-in, no-restricted-syntax\n\n for (key in node) {\n var child = node[key];\n\n if (depth === 1) {\n if (key.indexOf('Mui') === 0 && child) {\n traverse(child, key, depth + 1);\n }\n } else if (pseudoClasses.indexOf(key) !== -1 && Object.keys(child).length > 0) {\n if (process.env.NODE_ENV !== 'production') {\n console.error([\"Material-UI: The `\".concat(parentKey, \"` component increases \") + \"the CSS specificity of the `\".concat(key, \"` internal state.\"), 'You can not override it like this: ', JSON.stringify(node, null, 2), '', 'Instead, you need to use the $ruleName syntax:', JSON.stringify({\n root: _defineProperty({}, \"&$\".concat(key), child)\n }, null, 2), '', 'https://mui.com/r/pseudo-classes-guide'].join('\\n'));\n } // Remove the style to prevent global conflicts.\n\n\n node[key] = {};\n }\n }\n };\n\n traverse(muiTheme.overrides);\n }\n\n return muiTheme;\n}\n\nvar warnedOnce = false;\nexport function createMuiTheme() {\n if (process.env.NODE_ENV !== 'production') {\n if (!warnedOnce) {\n warnedOnce = true;\n console.error(['Material-UI: the createMuiTheme function was renamed to createTheme.', '', \"You should use `import { createTheme } from '@material-ui/core/styles'`\"].join('\\n'));\n }\n }\n\n return createTheme.apply(void 0, arguments);\n}\nexport default createTheme;", "import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\n// Sorted ASC by size. That's important.\n// It can't be configured as it's used statically for propTypes.\nexport var keys = ['xs', 'sm', 'md', 'lg', 'xl']; // Keep in mind that @media is inclusive by the CSS specification.\n\nexport default function createBreakpoints(breakpoints) {\n var _breakpoints$values = breakpoints.values,\n values = _breakpoints$values === void 0 ? {\n xs: 0,\n sm: 600,\n md: 960,\n lg: 1280,\n xl: 1920\n } : _breakpoints$values,\n _breakpoints$unit = breakpoints.unit,\n unit = _breakpoints$unit === void 0 ? 'px' : _breakpoints$unit,\n _breakpoints$step = breakpoints.step,\n step = _breakpoints$step === void 0 ? 5 : _breakpoints$step,\n other = _objectWithoutProperties(breakpoints, [\"values\", \"unit\", \"step\"]);\n\n function up(key) {\n var value = typeof values[key] === 'number' ? values[key] : key;\n return \"@media (min-width:\".concat(value).concat(unit, \")\");\n }\n\n function down(key) {\n var endIndex = keys.indexOf(key) + 1;\n var upperbound = values[keys[endIndex]];\n\n if (endIndex === keys.length) {\n // xl down applies to all sizes\n return up('xs');\n }\n\n var value = typeof upperbound === 'number' && endIndex > 0 ? upperbound : key;\n return \"@media (max-width:\".concat(value - step / 100).concat(unit, \")\");\n }\n\n function between(start, end) {\n var endIndex = keys.indexOf(end);\n\n if (endIndex === keys.length - 1) {\n return up(start);\n }\n\n return \"@media (min-width:\".concat(typeof values[start] === 'number' ? values[start] : start).concat(unit, \") and \") + \"(max-width:\".concat((endIndex !== -1 && typeof values[keys[endIndex + 1]] === 'number' ? values[keys[endIndex + 1]] : end) - step / 100).concat(unit, \")\");\n }\n\n function only(key) {\n return between(key, key);\n }\n\n var warnedOnce = false;\n\n function width(key) {\n if (process.env.NODE_ENV !== 'production') {\n if (!warnedOnce) {\n warnedOnce = true;\n console.warn([\"Material-UI: The `theme.breakpoints.width` utility is deprecated because it's redundant.\", 'Use the `theme.breakpoints.values` instead.'].join('\\n'));\n }\n }\n\n return values[key];\n }\n\n return _extends({\n keys: keys,\n values: values,\n up: up,\n down: down,\n between: between,\n only: only,\n width: width\n }, other);\n}", "import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nexport default function createMixins(breakpoints, spacing, mixins) {\n var _toolbar;\n\n return _extends({\n gutters: function gutters() {\n var styles = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n console.warn(['Material-UI: theme.mixins.gutters() is deprecated.', 'You can use the source of the mixin directly:', \"\\n paddingLeft: theme.spacing(2),\\n paddingRight: theme.spacing(2),\\n [theme.breakpoints.up('sm')]: {\\n paddingLeft: theme.spacing(3),\\n paddingRight: theme.spacing(3),\\n },\\n \"].join('\\n'));\n return _extends({\n paddingLeft: spacing(2),\n paddingRight: spacing(2)\n }, styles, _defineProperty({}, breakpoints.up('sm'), _extends({\n paddingLeft: spacing(3),\n paddingRight: spacing(3)\n }, styles[breakpoints.up('sm')])));\n },\n toolbar: (_toolbar = {\n minHeight: 56\n }, _defineProperty(_toolbar, \"\".concat(breakpoints.up('xs'), \" and (orientation: landscape)\"), {\n minHeight: 48\n }), _defineProperty(_toolbar, breakpoints.up('sm'), {\n minHeight: 64\n }), _toolbar)\n }, mixins);\n}", "import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport { formatMuiErrorMessage as _formatMuiErrorMessage } from \"@material-ui/utils\";\nimport { deepmerge } from '@material-ui/utils';\nimport common from '../colors/common';\nimport grey from '../colors/grey';\nimport indigo from '../colors/indigo';\nimport pink from '../colors/pink';\nimport red from '../colors/red';\nimport orange from '../colors/orange';\nimport blue from '../colors/blue';\nimport green from '../colors/green';\nimport { darken, getContrastRatio, lighten } from './colorManipulator';\nexport var light = {\n // The colors used to style the text.\n text: {\n // The most important text.\n primary: 'rgba(0, 0, 0, 0.87)',\n // Secondary text.\n secondary: 'rgba(0, 0, 0, 0.54)',\n // Disabled text have even lower visual prominence.\n disabled: 'rgba(0, 0, 0, 0.38)',\n // Text hints.\n hint: 'rgba(0, 0, 0, 0.38)'\n },\n // The color used to divide different elements.\n divider: 'rgba(0, 0, 0, 0.12)',\n // The background colors used to style the surfaces.\n // Consistency between these values is important.\n background: {\n paper: common.white,\n default: grey[50]\n },\n // The colors used to style the action elements.\n action: {\n // The color of an active action like an icon button.\n active: 'rgba(0, 0, 0, 0.54)',\n // The color of an hovered action.\n hover: 'rgba(0, 0, 0, 0.04)',\n hoverOpacity: 0.04,\n // The color of a selected action.\n selected: 'rgba(0, 0, 0, 0.08)',\n selectedOpacity: 0.08,\n // The color of a disabled action.\n disabled: 'rgba(0, 0, 0, 0.26)',\n // The background color of a disabled action.\n disabledBackground: 'rgba(0, 0, 0, 0.12)',\n disabledOpacity: 0.38,\n focus: 'rgba(0, 0, 0, 0.12)',\n focusOpacity: 0.12,\n activatedOpacity: 0.12\n }\n};\nexport var dark = {\n text: {\n primary: common.white,\n secondary: 'rgba(255, 255, 255, 0.7)',\n disabled: 'rgba(255, 255, 255, 0.5)',\n hint: 'rgba(255, 255, 255, 0.5)',\n icon: 'rgba(255, 255, 255, 0.5)'\n },\n divider: 'rgba(255, 255, 255, 0.12)',\n background: {\n paper: grey[800],\n default: '#303030'\n },\n action: {\n active: common.white,\n hover: 'rgba(255, 255, 255, 0.08)',\n hoverOpacity: 0.08,\n selected: 'rgba(255, 255, 255, 0.16)',\n selectedOpacity: 0.16,\n disabled: 'rgba(255, 255, 255, 0.3)',\n disabledBackground: 'rgba(255, 255, 255, 0.12)',\n disabledOpacity: 0.38,\n focus: 'rgba(255, 255, 255, 0.12)',\n focusOpacity: 0.12,\n activatedOpacity: 0.24\n }\n};\n\nfunction addLightOrDark(intent, direction, shade, tonalOffset) {\n var tonalOffsetLight = tonalOffset.light || tonalOffset;\n var tonalOffsetDark = tonalOffset.dark || tonalOffset * 1.5;\n\n if (!intent[direction]) {\n if (intent.hasOwnProperty(shade)) {\n intent[direction] = intent[shade];\n } else if (direction === 'light') {\n intent.light = lighten(intent.main, tonalOffsetLight);\n } else if (direction === 'dark') {\n intent.dark = darken(intent.main, tonalOffsetDark);\n }\n }\n}\n\nexport default function createPalette(palette) {\n var _palette$primary = palette.primary,\n primary = _palette$primary === void 0 ? {\n light: indigo[300],\n main: indigo[500],\n dark: indigo[700]\n } : _palette$primary,\n _palette$secondary = palette.secondary,\n secondary = _palette$secondary === void 0 ? {\n light: pink.A200,\n main: pink.A400,\n dark: pink.A700\n } : _palette$secondary,\n _palette$error = palette.error,\n error = _palette$error === void 0 ? {\n light: red[300],\n main: red[500],\n dark: red[700]\n } : _palette$error,\n _palette$warning = palette.warning,\n warning = _palette$warning === void 0 ? {\n light: orange[300],\n main: orange[500],\n dark: orange[700]\n } : _palette$warning,\n _palette$info = palette.info,\n info = _palette$info === void 0 ? {\n light: blue[300],\n main: blue[500],\n dark: blue[700]\n } : _palette$info,\n _palette$success = palette.success,\n success = _palette$success === void 0 ? {\n light: green[300],\n main: green[500],\n dark: green[700]\n } : _palette$success,\n _palette$type = palette.type,\n type = _palette$type === void 0 ? 'light' : _palette$type,\n _palette$contrastThre = palette.contrastThreshold,\n contrastThreshold = _palette$contrastThre === void 0 ? 3 : _palette$contrastThre,\n _palette$tonalOffset = palette.tonalOffset,\n tonalOffset = _palette$tonalOffset === void 0 ? 0.2 : _palette$tonalOffset,\n other = _objectWithoutProperties(palette, [\"primary\", \"secondary\", \"error\", \"warning\", \"info\", \"success\", \"type\", \"contrastThreshold\", \"tonalOffset\"]); // Use the same logic as\n // Bootstrap: https://github.com/twbs/bootstrap/blob/1d6e3710dd447de1a200f29e8fa521f8a0908f70/scss/_functions.scss#L59\n // and material-components-web https://github.com/material-components/material-components-web/blob/ac46b8863c4dab9fc22c4c662dc6bd1b65dd652f/packages/mdc-theme/_functions.scss#L54\n\n\n function getContrastText(background) {\n var contrastText = getContrastRatio(background, dark.text.primary) >= contrastThreshold ? dark.text.primary : light.text.primary;\n\n if (process.env.NODE_ENV !== 'production') {\n var contrast = getContrastRatio(background, contrastText);\n\n if (contrast < 3) {\n console.error([\"Material-UI: The contrast ratio of \".concat(contrast, \":1 for \").concat(contrastText, \" on \").concat(background), 'falls below the WCAG recommended absolute minimum contrast ratio of 3:1.', 'https://www.w3.org/TR/2008/REC-WCAG20-20081211/#visual-audio-contrast-contrast'].join('\\n'));\n }\n }\n\n return contrastText;\n }\n\n var augmentColor = function augmentColor(color) {\n var mainShade = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 500;\n var lightShade = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 300;\n var darkShade = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 700;\n color = _extends({}, color);\n\n if (!color.main && color[mainShade]) {\n color.main = color[mainShade];\n }\n\n if (!color.main) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? \"Material-UI: The color provided to augmentColor(color) is invalid.\\nThe color object needs to have a `main` property or a `\".concat(mainShade, \"` property.\") : _formatMuiErrorMessage(4, mainShade));\n }\n\n if (typeof color.main !== 'string') {\n throw new Error(process.env.NODE_ENV !== \"production\" ? \"Material-UI: The color provided to augmentColor(color) is invalid.\\n`color.main` should be a string, but `\".concat(JSON.stringify(color.main), \"` was provided instead.\\n\\nDid you intend to use one of the following approaches?\\n\\nimport {\\xA0green } from \\\"@material-ui/core/colors\\\";\\n\\nconst theme1 = createTheme({ palette: {\\n primary: green,\\n} });\\n\\nconst theme2 = createTheme({ palette: {\\n primary: { main: green[500] },\\n} });\") : _formatMuiErrorMessage(5, JSON.stringify(color.main)));\n }\n\n addLightOrDark(color, 'light', lightShade, tonalOffset);\n addLightOrDark(color, 'dark', darkShade, tonalOffset);\n\n if (!color.contrastText) {\n color.contrastText = getContrastText(color.main);\n }\n\n return color;\n };\n\n var types = {\n dark: dark,\n light: light\n };\n\n if (process.env.NODE_ENV !== 'production') {\n if (!types[type]) {\n console.error(\"Material-UI: The palette type `\".concat(type, \"` is not supported.\"));\n }\n }\n\n var paletteOutput = deepmerge(_extends({\n // A collection of common colors.\n common: common,\n // The palette type, can be light or dark.\n type: type,\n // The colors used to represent primary interface elements for a user.\n primary: augmentColor(primary),\n // The colors used to represent secondary interface elements for a user.\n secondary: augmentColor(secondary, 'A400', 'A200', 'A700'),\n // The colors used to represent interface elements that the user should be made aware of.\n error: augmentColor(error),\n // The colors used to represent potentially dangerous actions or important messages.\n warning: augmentColor(warning),\n // The colors used to present information to the user that is neutral and not necessarily important.\n info: augmentColor(info),\n // The colors used to indicate the successful completion of an action that user triggered.\n success: augmentColor(success),\n // The grey colors.\n grey: grey,\n // Used by `getContrastText()` to maximize the contrast between\n // the background and the text.\n contrastThreshold: contrastThreshold,\n // Takes a background color and returns the text color that maximizes the contrast.\n getContrastText: getContrastText,\n // Generate a rich color object.\n augmentColor: augmentColor,\n // Used by the functions below to shift a color's luminance by approximately\n // two indexes within its tonal palette.\n // E.g., shift from Red 500 to Red 300 or Red 700.\n tonalOffset: tonalOffset\n }, types[type]), other);\n return paletteOutput;\n}", "var common = {\n black: '#000',\n white: '#fff'\n};\nexport default common;", "var grey = {\n 50: '#fafafa',\n 100: '#f5f5f5',\n 200: '#eeeeee',\n 300: '#e0e0e0',\n 400: '#bdbdbd',\n 500: '#9e9e9e',\n 600: '#757575',\n 700: '#616161',\n 800: '#424242',\n 900: '#212121',\n A100: '#d5d5d5',\n A200: '#aaaaaa',\n A400: '#303030',\n A700: '#616161'\n};\nexport default grey;", "var indigo = {\n 50: '#e8eaf6',\n 100: '#c5cae9',\n 200: '#9fa8da',\n 300: '#7986cb',\n 400: '#5c6bc0',\n 500: '#3f51b5',\n 600: '#3949ab',\n 700: '#303f9f',\n 800: '#283593',\n 900: '#1a237e',\n A100: '#8c9eff',\n A200: '#536dfe',\n A400: '#3d5afe',\n A700: '#304ffe'\n};\nexport default indigo;", "var pink = {\n 50: '#fce4ec',\n 100: '#f8bbd0',\n 200: '#f48fb1',\n 300: '#f06292',\n 400: '#ec407a',\n 500: '#e91e63',\n 600: '#d81b60',\n 700: '#c2185b',\n 800: '#ad1457',\n 900: '#880e4f',\n A100: '#ff80ab',\n A200: '#ff4081',\n A400: '#f50057',\n A700: '#c51162'\n};\nexport default pink;", "var red = {\n 50: '#ffebee',\n 100: '#ffcdd2',\n 200: '#ef9a9a',\n 300: '#e57373',\n 400: '#ef5350',\n 500: '#f44336',\n 600: '#e53935',\n 700: '#d32f2f',\n 800: '#c62828',\n 900: '#b71c1c',\n A100: '#ff8a80',\n A200: '#ff5252',\n A400: '#ff1744',\n A700: '#d50000'\n};\nexport default red;", "var orange = {\n 50: '#fff3e0',\n 100: '#ffe0b2',\n 200: '#ffcc80',\n 300: '#ffb74d',\n 400: '#ffa726',\n 500: '#ff9800',\n 600: '#fb8c00',\n 700: '#f57c00',\n 800: '#ef6c00',\n 900: '#e65100',\n A100: '#ffd180',\n A200: '#ffab40',\n A400: '#ff9100',\n A700: '#ff6d00'\n};\nexport default orange;", "var blue = {\n 50: '#e3f2fd',\n 100: '#bbdefb',\n 200: '#90caf9',\n 300: '#64b5f6',\n 400: '#42a5f5',\n 500: '#2196f3',\n 600: '#1e88e5',\n 700: '#1976d2',\n 800: '#1565c0',\n 900: '#0d47a1',\n A100: '#82b1ff',\n A200: '#448aff',\n A400: '#2979ff',\n A700: '#2962ff'\n};\nexport default blue;", "var green = {\n 50: '#e8f5e9',\n 100: '#c8e6c9',\n 200: '#a5d6a7',\n 300: '#81c784',\n 400: '#66bb6a',\n 500: '#4caf50',\n 600: '#43a047',\n 700: '#388e3c',\n 800: '#2e7d32',\n 900: '#1b5e20',\n A100: '#b9f6ca',\n A200: '#69f0ae',\n A400: '#00e676',\n A700: '#00c853'\n};\nexport default green;", "import { formatMuiErrorMessage as _formatMuiErrorMessage } from \"@material-ui/utils\";\n\n/* eslint-disable no-use-before-define */\n\n/**\n * Returns a number whose value is limited to the given range.\n *\n * @param {number} value The value to be clamped\n * @param {number} min The lower boundary of the output range\n * @param {number} max The upper boundary of the output range\n * @returns {number} A number in the range [min, max]\n */\nfunction clamp(value) {\n var min = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n var max = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1;\n\n if (process.env.NODE_ENV !== 'production') {\n if (value < min || value > max) {\n console.error(\"Material-UI: The value provided \".concat(value, \" is out of range [\").concat(min, \", \").concat(max, \"].\"));\n }\n }\n\n return Math.min(Math.max(min, value), max);\n}\n/**\n * Converts a color from CSS hex format to CSS rgb format.\n *\n * @param {string} color - Hex color, i.e. #nnn or #nnnnnn\n * @returns {string} A CSS rgb color string\n */\n\n\nexport function hexToRgb(color) {\n color = color.substr(1);\n var re = new RegExp(\".{1,\".concat(color.length >= 6 ? 2 : 1, \"}\"), 'g');\n var colors = color.match(re);\n\n if (colors && colors[0].length === 1) {\n colors = colors.map(function (n) {\n return n + n;\n });\n }\n\n return colors ? \"rgb\".concat(colors.length === 4 ? 'a' : '', \"(\").concat(colors.map(function (n, index) {\n return index < 3 ? parseInt(n, 16) : Math.round(parseInt(n, 16) / 255 * 1000) / 1000;\n }).join(', '), \")\") : '';\n}\n\nfunction intToHex(int) {\n var hex = int.toString(16);\n return hex.length === 1 ? \"0\".concat(hex) : hex;\n}\n/**\n * Converts a color from CSS rgb format to CSS hex format.\n *\n * @param {string} color - RGB color, i.e. rgb(n, n, n)\n * @returns {string} A CSS rgb color string, i.e. #nnnnnn\n */\n\n\nexport function rgbToHex(color) {\n // Idempotent\n if (color.indexOf('#') === 0) {\n return color;\n }\n\n var _decomposeColor = decomposeColor(color),\n values = _decomposeColor.values;\n\n return \"#\".concat(values.map(function (n) {\n return intToHex(n);\n }).join(''));\n}\n/**\n * Converts a color from hsl format to rgb format.\n *\n * @param {string} color - HSL color values\n * @returns {string} rgb color values\n */\n\nexport function hslToRgb(color) {\n color = decomposeColor(color);\n var _color = color,\n values = _color.values;\n var h = values[0];\n var s = values[1] / 100;\n var l = values[2] / 100;\n var a = s * Math.min(l, 1 - l);\n\n var f = function f(n) {\n var k = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : (n + h / 30) % 12;\n return l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);\n };\n\n var type = 'rgb';\n var rgb = [Math.round(f(0) * 255), Math.round(f(8) * 255), Math.round(f(4) * 255)];\n\n if (color.type === 'hsla') {\n type += 'a';\n rgb.push(values[3]);\n }\n\n return recomposeColor({\n type: type,\n values: rgb\n });\n}\n/**\n * Returns an object with the type and values of a color.\n *\n * Note: Does not support rgb % values.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @returns {object} - A MUI color object: {type: string, values: number[]}\n */\n\nexport function decomposeColor(color) {\n // Idempotent\n if (color.type) {\n return color;\n }\n\n if (color.charAt(0) === '#') {\n return decomposeColor(hexToRgb(color));\n }\n\n var marker = color.indexOf('(');\n var type = color.substring(0, marker);\n\n if (['rgb', 'rgba', 'hsl', 'hsla'].indexOf(type) === -1) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? \"Material-UI: Unsupported `\".concat(color, \"` color.\\nWe support the following formats: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla().\") : _formatMuiErrorMessage(3, color));\n }\n\n var values = color.substring(marker + 1, color.length - 1).split(',');\n values = values.map(function (value) {\n return parseFloat(value);\n });\n return {\n type: type,\n values: values\n };\n}\n/**\n * Converts a color object with type and values to a string.\n *\n * @param {object} color - Decomposed color\n * @param {string} color.type - One of: 'rgb', 'rgba', 'hsl', 'hsla'\n * @param {array} color.values - [n,n,n] or [n,n,n,n]\n * @returns {string} A CSS color string\n */\n\nexport function recomposeColor(color) {\n var type = color.type;\n var values = color.values;\n\n if (type.indexOf('rgb') !== -1) {\n // Only convert the first 3 values to int (i.e. not alpha)\n values = values.map(function (n, i) {\n return i < 3 ? parseInt(n, 10) : n;\n });\n } else if (type.indexOf('hsl') !== -1) {\n values[1] = \"\".concat(values[1], \"%\");\n values[2] = \"\".concat(values[2], \"%\");\n }\n\n return \"\".concat(type, \"(\").concat(values.join(', '), \")\");\n}\n/**\n * Calculates the contrast ratio between two colors.\n *\n * Formula: https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests\n *\n * @param {string} foreground - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {string} background - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @returns {number} A contrast ratio value in the range 0 - 21.\n */\n\nexport function getContrastRatio(foreground, background) {\n var lumA = getLuminance(foreground);\n var lumB = getLuminance(background);\n return (Math.max(lumA, lumB) + 0.05) / (Math.min(lumA, lumB) + 0.05);\n}\n/**\n * The relative brightness of any point in a color space,\n * normalized to 0 for darkest black and 1 for lightest white.\n *\n * Formula: https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @returns {number} The relative brightness of the color in the range 0 - 1\n */\n\nexport function getLuminance(color) {\n color = decomposeColor(color);\n var rgb = color.type === 'hsl' ? decomposeColor(hslToRgb(color)).values : color.values;\n rgb = rgb.map(function (val) {\n val /= 255; // normalized\n\n return val <= 0.03928 ? val / 12.92 : Math.pow((val + 0.055) / 1.055, 2.4);\n }); // Truncate at 3 digits\n\n return Number((0.2126 * rgb[0] + 0.7152 * rgb[1] + 0.0722 * rgb[2]).toFixed(3));\n}\n/**\n * Darken or lighten a color, depending on its luminance.\n * Light colors are darkened, dark colors are lightened.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {number} coefficient=0.15 - multiplier in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\n\nexport function emphasize(color) {\n var coefficient = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0.15;\n return getLuminance(color) > 0.5 ? darken(color, coefficient) : lighten(color, coefficient);\n}\nvar warnedOnce = false;\n/**\n * Set the absolute transparency of a color.\n * Any existing alpha values are overwritten.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {number} value - value to set the alpha channel to in the range 0 -1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n *\n * @deprecated\n * Use `import { alpha } from '@material-ui/core/styles'` instead.\n */\n\nexport function fade(color, value) {\n if (process.env.NODE_ENV !== 'production') {\n if (!warnedOnce) {\n warnedOnce = true;\n console.error(['Material-UI: The `fade` color utility was renamed to `alpha` to better describe its functionality.', '', \"You should use `import { alpha } from '@material-ui/core/styles'`\"].join('\\n'));\n }\n }\n\n return alpha(color, value);\n}\n/**\n * Set the absolute transparency of a color.\n * Any existing alpha value is overwritten.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {number} value - value to set the alpha channel to in the range 0-1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\n\nexport function alpha(color, value) {\n color = decomposeColor(color);\n value = clamp(value);\n\n if (color.type === 'rgb' || color.type === 'hsl') {\n color.type += 'a';\n }\n\n color.values[3] = value;\n return recomposeColor(color);\n}\n/**\n * Darkens a color.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {number} coefficient - multiplier in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\n\nexport function darken(color, coefficient) {\n color = decomposeColor(color);\n coefficient = clamp(coefficient);\n\n if (color.type.indexOf('hsl') !== -1) {\n color.values[2] *= 1 - coefficient;\n } else if (color.type.indexOf('rgb') !== -1) {\n for (var i = 0; i < 3; i += 1) {\n color.values[i] *= 1 - coefficient;\n }\n }\n\n return recomposeColor(color);\n}\n/**\n * Lightens a color.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {number} coefficient - multiplier in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\n\nexport function lighten(color, coefficient) {\n color = decomposeColor(color);\n coefficient = clamp(coefficient);\n\n if (color.type.indexOf('hsl') !== -1) {\n color.values[2] += (100 - color.values[2]) * coefficient;\n } else if (color.type.indexOf('rgb') !== -1) {\n for (var i = 0; i < 3; i += 1) {\n color.values[i] += (255 - color.values[i]) * coefficient;\n }\n }\n\n return recomposeColor(color);\n}", "import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport { deepmerge } from '@material-ui/utils';\n\nfunction round(value) {\n return Math.round(value * 1e5) / 1e5;\n}\n\nvar warnedOnce = false;\n\nfunction roundWithDeprecationWarning(value) {\n if (process.env.NODE_ENV !== 'production') {\n if (!warnedOnce) {\n console.warn(['Material-UI: The `theme.typography.round` helper is deprecated.', 'Head to https://mui.com/r/migration-v4/#theme for a migration path.'].join('\\n'));\n warnedOnce = true;\n }\n }\n\n return round(value);\n}\n\nvar caseAllCaps = {\n textTransform: 'uppercase'\n};\nvar defaultFontFamily = '\"Roboto\", \"Helvetica\", \"Arial\", sans-serif';\n/**\n * @see @link{https://material.io/design/typography/the-type-system.html}\n * @see @link{https://material.io/design/typography/understanding-typography.html}\n */\n\nexport default function createTypography(palette, typography) {\n var _ref = typeof typography === 'function' ? typography(palette) : typography,\n _ref$fontFamily = _ref.fontFamily,\n fontFamily = _ref$fontFamily === void 0 ? defaultFontFamily : _ref$fontFamily,\n _ref$fontSize = _ref.fontSize,\n fontSize = _ref$fontSize === void 0 ? 14 : _ref$fontSize,\n _ref$fontWeightLight = _ref.fontWeightLight,\n fontWeightLight = _ref$fontWeightLight === void 0 ? 300 : _ref$fontWeightLight,\n _ref$fontWeightRegula = _ref.fontWeightRegular,\n fontWeightRegular = _ref$fontWeightRegula === void 0 ? 400 : _ref$fontWeightRegula,\n _ref$fontWeightMedium = _ref.fontWeightMedium,\n fontWeightMedium = _ref$fontWeightMedium === void 0 ? 500 : _ref$fontWeightMedium,\n _ref$fontWeightBold = _ref.fontWeightBold,\n fontWeightBold = _ref$fontWeightBold === void 0 ? 700 : _ref$fontWeightBold,\n _ref$htmlFontSize = _ref.htmlFontSize,\n htmlFontSize = _ref$htmlFontSize === void 0 ? 16 : _ref$htmlFontSize,\n allVariants = _ref.allVariants,\n pxToRem2 = _ref.pxToRem,\n other = _objectWithoutProperties(_ref, [\"fontFamily\", \"fontSize\", \"fontWeightLight\", \"fontWeightRegular\", \"fontWeightMedium\", \"fontWeightBold\", \"htmlFontSize\", \"allVariants\", \"pxToRem\"]);\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof fontSize !== 'number') {\n console.error('Material-UI: `fontSize` is required to be a number.');\n }\n\n if (typeof htmlFontSize !== 'number') {\n console.error('Material-UI: `htmlFontSize` is required to be a number.');\n }\n }\n\n var coef = fontSize / 14;\n\n var pxToRem = pxToRem2 || function (size) {\n return \"\".concat(size / htmlFontSize * coef, \"rem\");\n };\n\n var buildVariant = function buildVariant(fontWeight, size, lineHeight, letterSpacing, casing) {\n return _extends({\n fontFamily: fontFamily,\n fontWeight: fontWeight,\n fontSize: pxToRem(size),\n // Unitless following https://meyerweb.com/eric/thoughts/2006/02/08/unitless-line-heights/\n lineHeight: lineHeight\n }, fontFamily === defaultFontFamily ? {\n letterSpacing: \"\".concat(round(letterSpacing / size), \"em\")\n } : {}, casing, allVariants);\n };\n\n var variants = {\n h1: buildVariant(fontWeightLight, 96, 1.167, -1.5),\n h2: buildVariant(fontWeightLight, 60, 1.2, -0.5),\n h3: buildVariant(fontWeightRegular, 48, 1.167, 0),\n h4: buildVariant(fontWeightRegular, 34, 1.235, 0.25),\n h5: buildVariant(fontWeightRegular, 24, 1.334, 0),\n h6: buildVariant(fontWeightMedium, 20, 1.6, 0.15),\n subtitle1: buildVariant(fontWeightRegular, 16, 1.75, 0.15),\n subtitle2: buildVariant(fontWeightMedium, 14, 1.57, 0.1),\n body1: buildVariant(fontWeightRegular, 16, 1.5, 0.15),\n body2: buildVariant(fontWeightRegular, 14, 1.43, 0.15),\n button: buildVariant(fontWeightMedium, 14, 1.75, 0.4, caseAllCaps),\n caption: buildVariant(fontWeightRegular, 12, 1.66, 0.4),\n overline: buildVariant(fontWeightRegular, 12, 2.66, 1, caseAllCaps)\n };\n return deepmerge(_extends({\n htmlFontSize: htmlFontSize,\n pxToRem: pxToRem,\n round: roundWithDeprecationWarning,\n // TODO v5: remove\n fontFamily: fontFamily,\n fontSize: fontSize,\n fontWeightLight: fontWeightLight,\n fontWeightRegular: fontWeightRegular,\n fontWeightMedium: fontWeightMedium,\n fontWeightBold: fontWeightBold\n }, variants), other, {\n clone: false // No need to clone deep\n\n });\n}", "var shadowKeyUmbraOpacity = 0.2;\nvar shadowKeyPenumbraOpacity = 0.14;\nvar shadowAmbientShadowOpacity = 0.12;\n\nfunction createShadow() {\n return [\"\".concat(arguments.length <= 0 ? undefined : arguments[0], \"px \").concat(arguments.length <= 1 ? undefined : arguments[1], \"px \").concat(arguments.length <= 2 ? undefined : arguments[2], \"px \").concat(arguments.length <= 3 ? undefined : arguments[3], \"px rgba(0,0,0,\").concat(shadowKeyUmbraOpacity, \")\"), \"\".concat(arguments.length <= 4 ? undefined : arguments[4], \"px \").concat(arguments.length <= 5 ? undefined : arguments[5], \"px \").concat(arguments.length <= 6 ? undefined : arguments[6], \"px \").concat(arguments.length <= 7 ? undefined : arguments[7], \"px rgba(0,0,0,\").concat(shadowKeyPenumbraOpacity, \")\"), \"\".concat(arguments.length <= 8 ? undefined : arguments[8], \"px \").concat(arguments.length <= 9 ? undefined : arguments[9], \"px \").concat(arguments.length <= 10 ? undefined : arguments[10], \"px \").concat(arguments.length <= 11 ? undefined : arguments[11], \"px rgba(0,0,0,\").concat(shadowAmbientShadowOpacity, \")\")].join(',');\n} // Values from https://github.com/material-components/material-components-web/blob/be8747f94574669cb5e7add1a7c54fa41a89cec7/packages/mdc-elevation/_variables.scss\n\n\nvar shadows = ['none', createShadow(0, 2, 1, -1, 0, 1, 1, 0, 0, 1, 3, 0), createShadow(0, 3, 1, -2, 0, 2, 2, 0, 0, 1, 5, 0), createShadow(0, 3, 3, -2, 0, 3, 4, 0, 0, 1, 8, 0), createShadow(0, 2, 4, -1, 0, 4, 5, 0, 0, 1, 10, 0), createShadow(0, 3, 5, -1, 0, 5, 8, 0, 0, 1, 14, 0), createShadow(0, 3, 5, -1, 0, 6, 10, 0, 0, 1, 18, 0), createShadow(0, 4, 5, -2, 0, 7, 10, 1, 0, 2, 16, 1), createShadow(0, 5, 5, -3, 0, 8, 10, 1, 0, 3, 14, 2), createShadow(0, 5, 6, -3, 0, 9, 12, 1, 0, 3, 16, 2), createShadow(0, 6, 6, -3, 0, 10, 14, 1, 0, 4, 18, 3), createShadow(0, 6, 7, -4, 0, 11, 15, 1, 0, 4, 20, 3), createShadow(0, 7, 8, -4, 0, 12, 17, 2, 0, 5, 22, 4), createShadow(0, 7, 8, -4, 0, 13, 19, 2, 0, 5, 24, 4), createShadow(0, 7, 9, -4, 0, 14, 21, 2, 0, 5, 26, 4), createShadow(0, 8, 9, -5, 0, 15, 22, 2, 0, 6, 28, 5), createShadow(0, 8, 10, -5, 0, 16, 24, 2, 0, 6, 30, 5), createShadow(0, 8, 11, -5, 0, 17, 26, 2, 0, 6, 32, 5), createShadow(0, 9, 11, -5, 0, 18, 28, 2, 0, 7, 34, 6), createShadow(0, 9, 12, -6, 0, 19, 29, 2, 0, 7, 36, 6), createShadow(0, 10, 13, -6, 0, 20, 31, 3, 0, 8, 38, 7), createShadow(0, 10, 13, -6, 0, 21, 33, 3, 0, 8, 40, 7), createShadow(0, 10, 14, -6, 0, 22, 35, 3, 0, 8, 42, 7), createShadow(0, 11, 14, -7, 0, 23, 36, 3, 0, 9, 44, 8), createShadow(0, 11, 15, -7, 0, 24, 38, 3, 0, 9, 46, 8)];\nexport default shadows;", "var shape = {\n borderRadius: 4\n};\nexport default shape;", "import { createUnarySpacing } from '@material-ui/system';\nvar warnOnce;\nexport default function createSpacing() {\n var spacingInput = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 8;\n\n // Already transformed.\n if (spacingInput.mui) {\n return spacingInput;\n } // Material Design layouts are visually balanced. Most measurements align to an 8dp grid applied, which aligns both spacing and the overall layout.\n // Smaller components, such as icons and type, can align to a 4dp grid.\n // https://material.io/design/layout/understanding-layout.html#usage\n\n\n var transform = createUnarySpacing({\n spacing: spacingInput\n });\n\n var spacing = function spacing() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (!(args.length <= 4)) {\n console.error(\"Material-UI: Too many arguments provided, expected between 0 and 4, got \".concat(args.length));\n }\n }\n\n if (args.length === 0) {\n return transform(1);\n }\n\n if (args.length === 1) {\n return transform(args[0]);\n }\n\n return args.map(function (argument) {\n if (typeof argument === 'string') {\n return argument;\n }\n\n var output = transform(argument);\n return typeof output === 'number' ? \"\".concat(output, \"px\") : output;\n }).join(' ');\n }; // Backward compatibility, to remove in v5.\n\n\n Object.defineProperty(spacing, 'unit', {\n get: function get() {\n if (process.env.NODE_ENV !== 'production') {\n if (!warnOnce || process.env.NODE_ENV === 'test') {\n console.error(['Material-UI: theme.spacing.unit usage has been deprecated.', 'It will be removed in v5.', 'You can replace `theme.spacing.unit * y` with `theme.spacing(y)`.', '', 'You can use the `https://github.com/mui-org/material-ui/tree/master/packages/material-ui-codemod/README.md#theme-spacing-api` migration helper to make the process smoother.'].join('\\n'));\n }\n\n warnOnce = true;\n }\n\n return spacingInput;\n }\n });\n spacing.mui = true;\n return spacing;\n}", "import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\n// Follow https://material.google.com/motion/duration-easing.html#duration-easing-natural-easing-curves\n// to learn the context in which each easing should be used.\nexport var easing = {\n // This is the most common easing curve.\n easeInOut: 'cubic-bezier(0.4, 0, 0.2, 1)',\n // Objects enter the screen at full velocity from off-screen and\n // slowly decelerate to a resting point.\n easeOut: 'cubic-bezier(0.0, 0, 0.2, 1)',\n // Objects leave the screen at full velocity. They do not decelerate when off-screen.\n easeIn: 'cubic-bezier(0.4, 0, 1, 1)',\n // The sharp curve is used by objects that may return to the screen at any time.\n sharp: 'cubic-bezier(0.4, 0, 0.6, 1)'\n}; // Follow https://material.io/guidelines/motion/duration-easing.html#duration-easing-common-durations\n// to learn when use what timing\n\nexport var duration = {\n shortest: 150,\n shorter: 200,\n short: 250,\n // most basic recommended timing\n standard: 300,\n // this is to be used in complex animations\n complex: 375,\n // recommended when something is entering screen\n enteringScreen: 225,\n // recommended when something is leaving screen\n leavingScreen: 195\n};\n\nfunction formatMs(milliseconds) {\n return \"\".concat(Math.round(milliseconds), \"ms\");\n}\n/**\n * @param {string|Array} props\n * @param {object} param\n * @param {string} param.prop\n * @param {number} param.duration\n * @param {string} param.easing\n * @param {number} param.delay\n */\n\n\nexport default {\n easing: easing,\n duration: duration,\n create: function create() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : ['all'];\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var _options$duration = options.duration,\n durationOption = _options$duration === void 0 ? duration.standard : _options$duration,\n _options$easing = options.easing,\n easingOption = _options$easing === void 0 ? easing.easeInOut : _options$easing,\n _options$delay = options.delay,\n delay = _options$delay === void 0 ? 0 : _options$delay,\n other = _objectWithoutProperties(options, [\"duration\", \"easing\", \"delay\"]);\n\n if (process.env.NODE_ENV !== 'production') {\n var isString = function isString(value) {\n return typeof value === 'string';\n };\n\n var isNumber = function isNumber(value) {\n return !isNaN(parseFloat(value));\n };\n\n if (!isString(props) && !Array.isArray(props)) {\n console.error('Material-UI: Argument \"props\" must be a string or Array.');\n }\n\n if (!isNumber(durationOption) && !isString(durationOption)) {\n console.error(\"Material-UI: Argument \\\"duration\\\" must be a number or a string but found \".concat(durationOption, \".\"));\n }\n\n if (!isString(easingOption)) {\n console.error('Material-UI: Argument \"easing\" must be a string.');\n }\n\n if (!isNumber(delay) && !isString(delay)) {\n console.error('Material-UI: Argument \"delay\" must be a number or a string.');\n }\n\n if (Object.keys(other).length !== 0) {\n console.error(\"Material-UI: Unrecognized argument(s) [\".concat(Object.keys(other).join(','), \"].\"));\n }\n }\n\n return (Array.isArray(props) ? props : [props]).map(function (animatedProp) {\n return \"\".concat(animatedProp, \" \").concat(typeof durationOption === 'string' ? durationOption : formatMs(durationOption), \" \").concat(easingOption, \" \").concat(typeof delay === 'string' ? delay : formatMs(delay));\n }).join(',');\n },\n getAutoHeightDuration: function getAutoHeightDuration(height) {\n if (!height) {\n return 0;\n }\n\n var constant = height / 36; // https://www.wolframalpha.com/input/?i=(4+%2B+15+*+(x+%2F+36+)+**+0.25+%2B+(x+%2F+36)+%2F+5)+*+10\n\n return Math.round((4 + 15 * Math.pow(constant, 0.25) + constant / 5) * 10);\n }\n};", "// We need to centralize the zIndex definitions as they work\n// like global values in the browser.\nvar zIndex = {\n mobileStepper: 1000,\n speedDial: 1050,\n appBar: 1100,\n drawer: 1200,\n modal: 1300,\n snackbar: 1400,\n tooltip: 1500\n};\nexport default zIndex;", "import createTheme from './createTheme';\nvar defaultTheme = createTheme();\nexport default defaultTheme;", "import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { styled as styledWithoutDefault } from '@material-ui/styles';\nimport defaultTheme from './defaultTheme';\n\nvar styled = function styled(Component) {\n var componentCreator = styledWithoutDefault(Component);\n return function (style, options) {\n return componentCreator(style, _extends({\n defaultTheme: defaultTheme\n }, options));\n };\n};\n\nexport default styled;", "import { useTheme as useThemeWithoutDefault } from '@material-ui/styles';\nimport React from 'react';\nimport defaultTheme from './defaultTheme';\nexport default function useTheme() {\n var theme = useThemeWithoutDefault() || defaultTheme;\n\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useDebugValue(theme);\n }\n\n return theme;\n}", "import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport { withStyles as withStylesWithoutDefault } from '@material-ui/styles';\nimport defaultTheme from './defaultTheme';\n\nfunction withStyles(stylesOrCreator, options) {\n return withStylesWithoutDefault(stylesOrCreator, _extends({\n defaultTheme: defaultTheme\n }, options));\n}\n\nexport default withStyles;", "export * from './colorManipulator';\nexport { default as createTheme, createMuiTheme } from './createTheme'; // eslint-disable-next-line camelcase\n\nexport { default as unstable_createMuiStrictModeTheme } from './createMuiStrictModeTheme';\nexport { default as createStyles } from './createStyles';\nexport { default as makeStyles } from './makeStyles';\nexport { default as responsiveFontSizes } from './responsiveFontSizes';\nexport { default as styled } from './styled';\nexport * from './transitions';\nexport { default as useTheme } from './useTheme';\nexport { default as withStyles } from './withStyles';\nexport { default as withTheme } from './withTheme';\nexport { createGenerateClassName, jssPreset, ServerStyleSheets, StylesProvider, ThemeProvider as MuiThemeProvider, ThemeProvider } from '@material-ui/styles';", "import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport withStyles from '../styles/withStyles';\nimport capitalize from '../utils/capitalize';\nimport Paper from '../Paper';\nexport var styles = function styles(theme) {\n var backgroundColorDefault = theme.palette.type === 'light' ? theme.palette.grey[100] : theme.palette.grey[900];\n return {\n /* Styles applied to the root element. */\n root: {\n display: 'flex',\n flexDirection: 'column',\n width: '100%',\n boxSizing: 'border-box',\n // Prevent padding issue with the Modal and fixed positioned AppBar.\n zIndex: theme.zIndex.appBar,\n flexShrink: 0\n },\n\n /* Styles applied to the root element if `position=\"fixed\"`. */\n positionFixed: {\n position: 'fixed',\n top: 0,\n left: 'auto',\n right: 0,\n '@media print': {\n // Prevent the app bar to be visible on each printed page.\n position: 'absolute'\n }\n },\n\n /* Styles applied to the root element if `position=\"absolute\"`. */\n positionAbsolute: {\n position: 'absolute',\n top: 0,\n left: 'auto',\n right: 0\n },\n\n /* Styles applied to the root element if `position=\"sticky\"`. */\n positionSticky: {\n // \u26A0\uFE0F sticky is not supported by IE 11.\n position: 'sticky',\n top: 0,\n left: 'auto',\n right: 0\n },\n\n /* Styles applied to the root element if `position=\"static\"`. */\n positionStatic: {\n position: 'static'\n },\n\n /* Styles applied to the root element if `position=\"relative\"`. */\n positionRelative: {\n position: 'relative'\n },\n\n /* Styles applied to the root element if `color=\"default\"`. */\n colorDefault: {\n backgroundColor: backgroundColorDefault,\n color: theme.palette.getContrastText(backgroundColorDefault)\n },\n\n /* Styles applied to the root element if `color=\"primary\"`. */\n colorPrimary: {\n backgroundColor: theme.palette.primary.main,\n color: theme.palette.primary.contrastText\n },\n\n /* Styles applied to the root element if `color=\"secondary\"`. */\n colorSecondary: {\n backgroundColor: theme.palette.secondary.main,\n color: theme.palette.secondary.contrastText\n },\n\n /* Styles applied to the root element if `color=\"inherit\"`. */\n colorInherit: {\n color: 'inherit'\n },\n\n /* Styles applied to the root element if `color=\"transparent\"`. */\n colorTransparent: {\n backgroundColor: 'transparent',\n color: 'inherit'\n }\n };\n};\nvar AppBar = /*#__PURE__*/React.forwardRef(function AppBar(props, ref) {\n var classes = props.classes,\n className = props.className,\n _props$color = props.color,\n color = _props$color === void 0 ? 'primary' : _props$color,\n _props$position = props.position,\n position = _props$position === void 0 ? 'fixed' : _props$position,\n other = _objectWithoutProperties(props, [\"classes\", \"className\", \"color\", \"position\"]);\n\n return /*#__PURE__*/React.createElement(Paper, _extends({\n square: true,\n component: \"header\",\n elevation: 4,\n className: clsx(classes.root, classes[\"position\".concat(capitalize(position))], classes[\"color\".concat(capitalize(color))], className, position === 'fixed' && 'mui-fixed'),\n ref: ref\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? AppBar.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The color of the component. It supports those theme colors that make sense for this component.\n */\n color: PropTypes.oneOf(['default', 'inherit', 'primary', 'secondary', 'transparent']),\n\n /**\n * The positioning type. The behavior of the different options is described\n * [in the MDN web docs](https://developer.mozilla.org/en-US/docs/Learn/CSS/CSS_layout/Positioning).\n * Note: `sticky` is not universally supported and will fall back to `static` when unavailable.\n */\n position: PropTypes.oneOf(['absolute', 'fixed', 'relative', 'static', 'sticky'])\n} : void 0;\nexport default withStyles(styles, {\n name: 'MuiAppBar'\n})(AppBar);", "import { formatMuiErrorMessage as _formatMuiErrorMessage } from \"@material-ui/utils\";\n// It should to be noted that this function isn't equivalent to `text-transform: capitalize`.\n//\n// A strict capitalization should uppercase the first letter of each word a the sentence.\n// We only handle the first word.\nexport default function capitalize(string) {\n if (typeof string !== 'string') {\n throw new Error(process.env.NODE_ENV !== \"production\" ? \"Material-UI: capitalize(string) expects a string argument.\" : _formatMuiErrorMessage(7));\n }\n\n return string.charAt(0).toUpperCase() + string.slice(1);\n}", "import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { chainPropTypes } from '@material-ui/utils';\nimport withStyles from '../styles/withStyles';\nexport var styles = function styles(theme) {\n var elevations = {};\n theme.shadows.forEach(function (shadow, index) {\n elevations[\"elevation\".concat(index)] = {\n boxShadow: shadow\n };\n });\n return _extends({\n /* Styles applied to the root element. */\n root: {\n backgroundColor: theme.palette.background.paper,\n color: theme.palette.text.primary,\n transition: theme.transitions.create('box-shadow')\n },\n\n /* Styles applied to the root element if `square={false}`. */\n rounded: {\n borderRadius: theme.shape.borderRadius\n },\n\n /* Styles applied to the root element if `variant=\"outlined\"`. */\n outlined: {\n border: \"1px solid \".concat(theme.palette.divider)\n }\n }, elevations);\n};\nvar Paper = /*#__PURE__*/React.forwardRef(function Paper(props, ref) {\n var classes = props.classes,\n className = props.className,\n _props$component = props.component,\n Component = _props$component === void 0 ? 'div' : _props$component,\n _props$square = props.square,\n square = _props$square === void 0 ? false : _props$square,\n _props$elevation = props.elevation,\n elevation = _props$elevation === void 0 ? 1 : _props$elevation,\n _props$variant = props.variant,\n variant = _props$variant === void 0 ? 'elevation' : _props$variant,\n other = _objectWithoutProperties(props, [\"classes\", \"className\", \"component\", \"square\", \"elevation\", \"variant\"]);\n\n return /*#__PURE__*/React.createElement(Component, _extends({\n className: clsx(classes.root, className, variant === 'outlined' ? classes.outlined : classes[\"elevation\".concat(elevation)], !square && classes.rounded),\n ref: ref\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? Paper.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes\n /* @typescript-to-proptypes-ignore */\n .elementType,\n\n /**\n * Shadow depth, corresponds to `dp` in the spec.\n * It accepts values between 0 and 24 inclusive.\n */\n elevation: chainPropTypes(PropTypes.number, function (props) {\n var classes = props.classes,\n elevation = props.elevation; // in case `withStyles` fails to inject we don't need this warning\n\n if (classes === undefined) {\n return null;\n }\n\n if (elevation != null && classes[\"elevation\".concat(elevation)] === undefined) {\n return new Error(\"Material-UI: This elevation `\".concat(elevation, \"` is not implemented.\"));\n }\n\n return null;\n }),\n\n /**\n * If `true`, rounded corners are disabled.\n */\n square: PropTypes.bool,\n\n /**\n * The variant to use.\n */\n variant: PropTypes.oneOf(['elevation', 'outlined'])\n} : void 0;\nexport default withStyles(styles, {\n name: 'MuiPaper'\n})(Paper);", "import _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport withStyles from '../styles/withStyles';\nimport ButtonBase from '../ButtonBase';\nimport capitalize from '../utils/capitalize';\nimport unsupportedProp from '../utils/unsupportedProp';\nexport var styles = function styles(theme) {\n var _extends2;\n\n return {\n /* Styles applied to the root element. */\n root: _extends({}, theme.typography.button, (_extends2 = {\n maxWidth: 264,\n minWidth: 72,\n position: 'relative',\n boxSizing: 'border-box',\n minHeight: 48,\n flexShrink: 0,\n padding: '6px 12px'\n }, _defineProperty(_extends2, theme.breakpoints.up('sm'), {\n padding: '6px 24px'\n }), _defineProperty(_extends2, \"overflow\", 'hidden'), _defineProperty(_extends2, \"whiteSpace\", 'normal'), _defineProperty(_extends2, \"textAlign\", 'center'), _defineProperty(_extends2, theme.breakpoints.up('sm'), {\n minWidth: 160\n }), _extends2)),\n\n /* Styles applied to the root element if both `icon` and `label` are provided. */\n labelIcon: {\n minHeight: 72,\n paddingTop: 9,\n '& $wrapper > *:first-child': {\n marginBottom: 6\n }\n },\n\n /* Styles applied to the root element if the parent [`Tabs`](/api/tabs/) has `textColor=\"inherit\"`. */\n textColorInherit: {\n color: 'inherit',\n opacity: 0.7,\n '&$selected': {\n opacity: 1\n },\n '&$disabled': {\n opacity: 0.5\n }\n },\n\n /* Styles applied to the root element if the parent [`Tabs`](/api/tabs/) has `textColor=\"primary\"`. */\n textColorPrimary: {\n color: theme.palette.text.secondary,\n '&$selected': {\n color: theme.palette.primary.main\n },\n '&$disabled': {\n color: theme.palette.text.disabled\n }\n },\n\n /* Styles applied to the root element if the parent [`Tabs`](/api/tabs/) has `textColor=\"secondary\"`. */\n textColorSecondary: {\n color: theme.palette.text.secondary,\n '&$selected': {\n color: theme.palette.secondary.main\n },\n '&$disabled': {\n color: theme.palette.text.disabled\n }\n },\n\n /* Pseudo-class applied to the root element if `selected={true}` (controlled by the Tabs component). */\n selected: {},\n\n /* Pseudo-class applied to the root element if `disabled={true}` (controlled by the Tabs component). */\n disabled: {},\n\n /* Styles applied to the root element if `fullWidth={true}` (controlled by the Tabs component). */\n fullWidth: {\n flexShrink: 1,\n flexGrow: 1,\n flexBasis: 0,\n maxWidth: 'none'\n },\n\n /* Styles applied to the root element if `wrapped={true}`. */\n wrapped: {\n fontSize: theme.typography.pxToRem(12),\n lineHeight: 1.5\n },\n\n /* Styles applied to the `icon` and `label`'s wrapper element. */\n wrapper: {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '100%',\n flexDirection: 'column'\n }\n };\n};\nvar Tab = /*#__PURE__*/React.forwardRef(function Tab(props, ref) {\n var classes = props.classes,\n className = props.className,\n _props$disabled = props.disabled,\n disabled = _props$disabled === void 0 ? false : _props$disabled,\n _props$disableFocusRi = props.disableFocusRipple,\n disableFocusRipple = _props$disableFocusRi === void 0 ? false : _props$disableFocusRi,\n fullWidth = props.fullWidth,\n icon = props.icon,\n indicator = props.indicator,\n label = props.label,\n onChange = props.onChange,\n onClick = props.onClick,\n onFocus = props.onFocus,\n selected = props.selected,\n selectionFollowsFocus = props.selectionFollowsFocus,\n _props$textColor = props.textColor,\n textColor = _props$textColor === void 0 ? 'inherit' : _props$textColor,\n value = props.value,\n _props$wrapped = props.wrapped,\n wrapped = _props$wrapped === void 0 ? false : _props$wrapped,\n other = _objectWithoutProperties(props, [\"classes\", \"className\", \"disabled\", \"disableFocusRipple\", \"fullWidth\", \"icon\", \"indicator\", \"label\", \"onChange\", \"onClick\", \"onFocus\", \"selected\", \"selectionFollowsFocus\", \"textColor\", \"value\", \"wrapped\"]);\n\n var handleClick = function handleClick(event) {\n if (onChange) {\n onChange(event, value);\n }\n\n if (onClick) {\n onClick(event);\n }\n };\n\n var handleFocus = function handleFocus(event) {\n if (selectionFollowsFocus && !selected && onChange) {\n onChange(event, value);\n }\n\n if (onFocus) {\n onFocus(event);\n }\n };\n\n return /*#__PURE__*/React.createElement(ButtonBase, _extends({\n focusRipple: !disableFocusRipple,\n className: clsx(classes.root, classes[\"textColor\".concat(capitalize(textColor))], className, disabled && classes.disabled, selected && classes.selected, label && icon && classes.labelIcon, fullWidth && classes.fullWidth, wrapped && classes.wrapped),\n ref: ref,\n role: \"tab\",\n \"aria-selected\": selected,\n disabled: disabled,\n onClick: handleClick,\n onFocus: handleFocus,\n tabIndex: selected ? 0 : -1\n }, other), /*#__PURE__*/React.createElement(\"span\", {\n className: classes.wrapper\n }, icon, label), indicator);\n});\nprocess.env.NODE_ENV !== \"production\" ? Tab.propTypes = {\n /**\n * This prop isn't supported.\n * Use the `component` prop if you need to change the children structure.\n */\n children: unsupportedProp,\n\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: PropTypes.object.isRequired,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * If `true`, the tab will be disabled.\n */\n disabled: PropTypes.bool,\n\n /**\n * If `true`, the keyboard focus ripple will be disabled.\n */\n disableFocusRipple: PropTypes.bool,\n\n /**\n * If `true`, the ripple effect will be disabled.\n */\n disableRipple: PropTypes.bool,\n\n /**\n * @ignore\n */\n fullWidth: PropTypes.bool,\n\n /**\n * The icon element.\n */\n icon: PropTypes.node,\n\n /**\n * @ignore\n * For server-side rendering consideration, we let the selected tab\n * render the indicator.\n */\n indicator: PropTypes.node,\n\n /**\n * The label element.\n */\n label: PropTypes.node,\n\n /**\n * @ignore\n */\n onChange: PropTypes.func,\n\n /**\n * @ignore\n */\n onClick: PropTypes.func,\n\n /**\n * @ignore\n */\n onFocus: PropTypes.func,\n\n /**\n * @ignore\n */\n selected: PropTypes.bool,\n\n /**\n * @ignore\n */\n selectionFollowsFocus: PropTypes.bool,\n\n /**\n * @ignore\n */\n textColor: PropTypes.oneOf(['secondary', 'primary', 'inherit']),\n\n /**\n * You can provide your own value. Otherwise, we fallback to the child position index.\n */\n value: PropTypes.any,\n\n /**\n * Tab labels appear in a single row.\n * They can use a second line if needed.\n */\n wrapped: PropTypes.bool\n} : void 0;\nexport default withStyles(styles, {\n name: 'MuiTab'\n})(Tab);", "import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport * as ReactDOM from 'react-dom';\nimport clsx from 'clsx';\nimport { elementTypeAcceptingRef, refType } from '@material-ui/utils';\nimport useForkRef from '../utils/useForkRef';\nimport useEventCallback from '../utils/useEventCallback';\nimport deprecatedPropType from '../utils/deprecatedPropType';\nimport withStyles from '../styles/withStyles';\nimport useIsFocusVisible from '../utils/useIsFocusVisible';\nimport TouchRipple from './TouchRipple';\nexport var styles = {\n /* Styles applied to the root element. */\n root: {\n display: 'inline-flex',\n alignItems: 'center',\n justifyContent: 'center',\n position: 'relative',\n WebkitTapHighlightColor: 'transparent',\n backgroundColor: 'transparent',\n // Reset default value\n // We disable the focus ring for mouse, touch and keyboard users.\n outline: 0,\n border: 0,\n margin: 0,\n // Remove the margin in Safari\n borderRadius: 0,\n padding: 0,\n // Remove the padding in Firefox\n cursor: 'pointer',\n userSelect: 'none',\n verticalAlign: 'middle',\n '-moz-appearance': 'none',\n // Reset\n '-webkit-appearance': 'none',\n // Reset\n textDecoration: 'none',\n // So we take precedent over the style of a native
element.\n color: 'inherit',\n '&::-moz-focus-inner': {\n borderStyle: 'none' // Remove Firefox dotted outline.\n\n },\n '&$disabled': {\n pointerEvents: 'none',\n // Disable link interactions\n cursor: 'default'\n },\n '@media print': {\n colorAdjust: 'exact'\n }\n },\n\n /* Pseudo-class applied to the root element if `disabled={true}`. */\n disabled: {},\n\n /* Pseudo-class applied to the root element if keyboard focused. */\n focusVisible: {}\n};\n/**\n * `ButtonBase` contains as few styles as possible.\n * It aims to be a simple building block for creating a button.\n * It contains a load of style reset and some focus/ripple logic.\n */\n\nvar ButtonBase = /*#__PURE__*/React.forwardRef(function ButtonBase(props, ref) {\n var action = props.action,\n buttonRefProp = props.buttonRef,\n _props$centerRipple = props.centerRipple,\n centerRipple = _props$centerRipple === void 0 ? false : _props$centerRipple,\n children = props.children,\n classes = props.classes,\n className = props.className,\n _props$component = props.component,\n component = _props$component === void 0 ? 'button' : _props$component,\n _props$disabled = props.disabled,\n disabled = _props$disabled === void 0 ? false : _props$disabled,\n _props$disableRipple = props.disableRipple,\n disableRipple = _props$disableRipple === void 0 ? false : _props$disableRipple,\n _props$disableTouchRi = props.disableTouchRipple,\n disableTouchRipple = _props$disableTouchRi === void 0 ? false : _props$disableTouchRi,\n _props$focusRipple = props.focusRipple,\n focusRipple = _props$focusRipple === void 0 ? false : _props$focusRipple,\n focusVisibleClassName = props.focusVisibleClassName,\n onBlur = props.onBlur,\n onClick = props.onClick,\n onFocus = props.onFocus,\n onFocusVisible = props.onFocusVisible,\n onKeyDown = props.onKeyDown,\n onKeyUp = props.onKeyUp,\n onMouseDown = props.onMouseDown,\n onMouseLeave = props.onMouseLeave,\n onMouseUp = props.onMouseUp,\n onTouchEnd = props.onTouchEnd,\n onTouchMove = props.onTouchMove,\n onTouchStart = props.onTouchStart,\n onDragLeave = props.onDragLeave,\n _props$tabIndex = props.tabIndex,\n tabIndex = _props$tabIndex === void 0 ? 0 : _props$tabIndex,\n TouchRippleProps = props.TouchRippleProps,\n _props$type = props.type,\n type = _props$type === void 0 ? 'button' : _props$type,\n other = _objectWithoutProperties(props, [\"action\", \"buttonRef\", \"centerRipple\", \"children\", \"classes\", \"className\", \"component\", \"disabled\", \"disableRipple\", \"disableTouchRipple\", \"focusRipple\", \"focusVisibleClassName\", \"onBlur\", \"onClick\", \"onFocus\", \"onFocusVisible\", \"onKeyDown\", \"onKeyUp\", \"onMouseDown\", \"onMouseLeave\", \"onMouseUp\", \"onTouchEnd\", \"onTouchMove\", \"onTouchStart\", \"onDragLeave\", \"tabIndex\", \"TouchRippleProps\", \"type\"]);\n\n var buttonRef = React.useRef(null);\n\n function getButtonNode() {\n // #StrictMode ready\n return ReactDOM.findDOMNode(buttonRef.current);\n }\n\n var rippleRef = React.useRef(null);\n\n var _React$useState = React.useState(false),\n focusVisible = _React$useState[0],\n setFocusVisible = _React$useState[1];\n\n if (disabled && focusVisible) {\n setFocusVisible(false);\n }\n\n var _useIsFocusVisible = useIsFocusVisible(),\n isFocusVisible = _useIsFocusVisible.isFocusVisible,\n onBlurVisible = _useIsFocusVisible.onBlurVisible,\n focusVisibleRef = _useIsFocusVisible.ref;\n\n React.useImperativeHandle(action, function () {\n return {\n focusVisible: function focusVisible() {\n setFocusVisible(true);\n buttonRef.current.focus();\n }\n };\n }, []);\n React.useEffect(function () {\n if (focusVisible && focusRipple && !disableRipple) {\n rippleRef.current.pulsate();\n }\n }, [disableRipple, focusRipple, focusVisible]);\n\n function useRippleHandler(rippleAction, eventCallback) {\n var skipRippleAction = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : disableTouchRipple;\n return useEventCallback(function (event) {\n if (eventCallback) {\n eventCallback(event);\n }\n\n var ignore = skipRippleAction;\n\n if (!ignore && rippleRef.current) {\n rippleRef.current[rippleAction](event);\n }\n\n return true;\n });\n }\n\n var handleMouseDown = useRippleHandler('start', onMouseDown);\n var handleDragLeave = useRippleHandler('stop', onDragLeave);\n var handleMouseUp = useRippleHandler('stop', onMouseUp);\n var handleMouseLeave = useRippleHandler('stop', function (event) {\n if (focusVisible) {\n event.preventDefault();\n }\n\n if (onMouseLeave) {\n onMouseLeave(event);\n }\n });\n var handleTouchStart = useRippleHandler('start', onTouchStart);\n var handleTouchEnd = useRippleHandler('stop', onTouchEnd);\n var handleTouchMove = useRippleHandler('stop', onTouchMove);\n var handleBlur = useRippleHandler('stop', function (event) {\n if (focusVisible) {\n onBlurVisible(event);\n setFocusVisible(false);\n }\n\n if (onBlur) {\n onBlur(event);\n }\n }, false);\n var handleFocus = useEventCallback(function (event) {\n // Fix for https://github.com/facebook/react/issues/7769\n if (!buttonRef.current) {\n buttonRef.current = event.currentTarget;\n }\n\n if (isFocusVisible(event)) {\n setFocusVisible(true);\n\n if (onFocusVisible) {\n onFocusVisible(event);\n }\n }\n\n if (onFocus) {\n onFocus(event);\n }\n });\n\n var isNonNativeButton = function isNonNativeButton() {\n var button = getButtonNode();\n return component && component !== 'button' && !(button.tagName === 'A' && button.href);\n };\n /**\n * IE 11 shim for https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/repeat\n */\n\n\n var keydownRef = React.useRef(false);\n var handleKeyDown = useEventCallback(function (event) {\n // Check if key is already down to avoid repeats being counted as multiple activations\n if (focusRipple && !keydownRef.current && focusVisible && rippleRef.current && event.key === ' ') {\n keydownRef.current = true;\n event.persist();\n rippleRef.current.stop(event, function () {\n rippleRef.current.start(event);\n });\n }\n\n if (event.target === event.currentTarget && isNonNativeButton() && event.key === ' ') {\n event.preventDefault();\n }\n\n if (onKeyDown) {\n onKeyDown(event);\n } // Keyboard accessibility for non interactive elements\n\n\n if (event.target === event.currentTarget && isNonNativeButton() && event.key === 'Enter' && !disabled) {\n event.preventDefault();\n\n if (onClick) {\n onClick(event);\n }\n }\n });\n var handleKeyUp = useEventCallback(function (event) {\n // calling preventDefault in keyUp on a