zigbee2mqtt-frontend 0.6.155 → 0.6.156

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1055,7 +1055,7 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
1055
1055
  `&&(i.left++,u--),m=u,m===0&&n.right.push({startLine:i.right,endLine:i.right}),c===`
1056
1056
  `&&(m-=1),n.left.push({startLine:i.left,endLine:i.left+m}),i.left+=u;break;case a.DIFF_INSERT:d===`
1057
1057
  `&&(i.right++,u--),m=u,m===0&&n.left.push({startLine:i.left,endLine:i.left}),c===`
1058
- `&&(m-=1),n.right.push({startLine:i.right,endLine:i.right+m}),i.right+=u;break;default:throw new Error("Diff type was not defined.")}}}),n},t.prototype.setCodeMarkers=function(r){r===void 0&&(r={left:[],right:[]});for(var a=[],n={left:[],right:[]},i=0;i<r.left.length;i++){var o={startRow:r.left[i].startLine-1,endRow:r.left[i].endLine,type:"text",className:"codeMarker"};n.left.push(o)}for(var i=0;i<r.right.length;i++){var o={startRow:r.right[i].startLine-1,endRow:r.right[i].endLine,type:"text",className:"codeMarker"};n.right.push(o)}return a[0]=n.left,a[1]=n.right,a},t.prototype.render=function(){var r=this.diff();return o6.createElement(k1t.default,{name:this.props.name,className:this.props.className,focus:this.props.focus,orientation:this.props.orientation,splits:this.props.splits,mode:this.props.mode,theme:this.props.theme,height:this.props.height,width:this.props.width,fontSize:this.props.fontSize,showGutter:this.props.showGutter,onChange:this.onChange,onPaste:this.props.onPaste,onLoad:this.props.onLoad,onScroll:this.props.onScroll,minLines:this.props.minLines,maxLines:this.props.maxLines,readOnly:this.props.readOnly,highlightActiveLine:this.props.highlightActiveLine,showPrintMargin:this.props.showPrintMargin,tabSize:this.props.tabSize,cursorStart:this.props.cursorStart,editorProps:this.props.editorProps,style:this.props.style,scrollMargin:this.props.scrollMargin,setOptions:this.props.setOptions,wrapEnabled:this.props.wrapEnabled,enableBasicAutocompletion:this.props.enableBasicAutocompletion,enableLiveAutocompletion:this.props.enableLiveAutocompletion,value:this.state.value,markers:r})},t.propTypes={cursorStart:er.number,editorProps:er.object,enableBasicAutocompletion:er.bool,enableLiveAutocompletion:er.bool,focus:er.bool,fontSize:er.number,height:er.string,highlightActiveLine:er.bool,maxLines:er.number,minLines:er.number,mode:er.string,name:er.string,className:er.string,onLoad:er.func,onPaste:er.func,onScroll:er.func,onChange:er.func,orientation:er.string,readOnly:er.bool,scrollMargin:er.array,setOptions:er.object,showGutter:er.bool,showPrintMargin:er.bool,splits:er.number,style:er.object,tabSize:er.number,theme:er.string,value:er.array,width:er.string,wrapEnabled:er.bool},t.defaultProps={cursorStart:1,editorProps:{},enableBasicAutocompletion:!1,enableLiveAutocompletion:!1,focus:!1,fontSize:12,height:"500px",highlightActiveLine:!0,maxLines:null,minLines:null,mode:"",name:"ace-editor",onLoad:null,onScroll:null,onPaste:null,onChange:null,orientation:"beside",readOnly:!1,scrollMargin:[0,0,0,0],setOptions:{},showGutter:!0,showPrintMargin:!0,splits:2,style:{},tabSize:4,theme:"github",value:["",""],width:"500px",wrapEnabled:!0},t}(o6.Component);TO.default=A1t;Object.defineProperty(Mc,"__esModule",{value:!0});Mc.diff=Mc.split=void 0;var T1t=AO,C1t=TO;Mc.diff=C1t.default;var E1t=F0;Mc.split=E1t.default;var Dee=Mc.default=T1t.default;class I1t extends q.Component{constructor(){super(...arguments),this.onGenerateExternalDefinitionClick=()=>{const{generateExternalDefinition:t,device:r}=this.props;t(r.ieee_address)}}render(){const{t,generatedExternalDefinitions:r,device:a,theme:n}=this.props,i=r[a.ieee_address];if(i){const o=n==="light"?"github":"dracula";return C.jsxs(C.Fragment,{children:[t("generated_external_definition")," (",C.jsx("a",{href:TD,target:"_blank",rel:"noreferrer",children:t("documentation")}),")",C.jsx(Dee,{setOptions:{useWorker:!1},mode:"javascript",readOnly:!0,name:"UNIQUE_ID_OF_DIV",editorProps:{$blockScrolling:!0},value:i,width:"100%",maxLines:1/0,theme:o,showPrintMargin:!1})]})}else return C.jsx(lt,{className:"btn btn-primary",onClick:this.onGenerateExternalDefinitionClick,children:t("generate_external_definition")})}}const x1t=Ur(["devConsole","common"])(I1t);function D1t(e){const{value:t,onChange:r,attribute:a,definition:n,...i}=e,s={[iH.charStr]:"string",[iH.longCharStr]:"string"}[n.type]??"number",l=u=>{const d=s==="number"?u.target.valueAsNumber:u.target.value;r(a,d)};return C.jsx("input",{className:"form-control",type:s,value:t,onChange:l,...i})}const M1t=["Read result of","Publish 'set' 'read' to","Publish 'set' 'write' to","Wrote "];class O1t extends q.Component{constructor(t){super(t),this.canRead=()=>{const{cluster:n,attributes:i,endpoint:o}=this.state;return!!o&&i.length>0&&!!n},this.onEndpointChange=n=>{this.setState({attributes:[],cluster:"",endpoint:n})},this.onClusterChange=n=>{this.setState({attributes:[],cluster:n})},this.onAttributeSelect=(n,i)=>{const{attributes:o}=this.state;if(!o.find(s=>s.attribute===n)){const s=o.concat([{attribute:n,definition:i}]);this.setState({attributes:s})}},this.onAttributeDelete=n=>{const{attributes:i}=this.state,o=i.filter(s=>s.attribute!==n);this.setState({attributes:o})},this.onReadClick=()=>{const{readDeviceAttributes:n,device:i}=this.props,{cluster:o,attributes:s,endpoint:l}=this.state;n(i.friendly_name,l,o,s.map(u=>u.attribute),{})},this.onWriteClick=()=>{const{writeDeviceAttributes:n,device:i}=this.props,{cluster:o,attributes:s,endpoint:l}=this.state;n(i.friendly_name,l,o,s,{})},this.onAttributeValueChange=(n,i)=>{const{attributes:o}=this.state,s=[...o],l=s.find(u=>u.attribute===n);l&&(l.value=i),this.setState({attributes:s})};const{device:r}=t,a=Object.keys(r.endpoints)[0];this.state={endpoint:a,cluster:"",attributes:[]}}renderSelectedAttribute(){const{attributes:t}=this.state;return t.map(({attribute:r,value:a="",definition:n})=>C.jsx("div",{className:"row mb-1",children:C.jsx("div",{className:"col-3",children:C.jsxs("div",{className:"row",children:[C.jsx("div",{className:"col-6",children:r}),C.jsx("div",{className:"col-3",children:C.jsx(D1t,{value:a,attribute:r,definition:n,onChange:this.onAttributeValueChange,"data-testid":"attribute-value-input"})}),C.jsx("div",{className:"col-2",children:C.jsx(lt,{className:"btn btn-danger btn-sm",item:r,"data-testid":"remove-attribute",onClick:this.onAttributeDelete,children:C.jsx("i",{className:"fas fa-trash"})})})]})})},r))}render(){const{cluster:t,attributes:r,endpoint:a}=this.state,n=r.length===0,i=t==="",{t:o,device:s}=this.props,l=Yl(s),u=d=>M1t.some(c=>d.message.startsWith(c));return C.jsxs(C.Fragment,{children:[C.jsxs("div",{className:"mb-3 row",children:[C.jsx("div",{className:"col-6 col-sm-3",children:C.jsx(Cp,{"data-testid":"endpoint-picker",label:o("zigbee:endpoint"),values:l,value:a,onChange:this.onEndpointChange})}),C.jsx("div",{className:"col-6 col-sm-3",children:C.jsx(yM,{"data-testid":"cluster-picker",label:o("cluster"),pickerType:o0.SINGLE,clusters:Object.keys(H_),value:t,onChange:this.onClusterChange})}),C.jsx("div",{className:"col-6 col-sm-3",children:C.jsx(UZ,{"data-testid":"attribute-picker",label:o("attribute"),value:"",cluster:t,onChange:this.onAttributeSelect})})]}),C.jsx("div",{className:"mb-3 row","data-testid":"selected-attribute",children:this.renderSelectedAttribute()}),C.jsx("div",{className:"mb-3 row",children:C.jsxs("div",{className:"btn-group col col-3",role:"group",children:[C.jsx(lt,{disabled:n||i,className:"btn btn-success me-2","data-testid":"read-attribute",onClick:this.onReadClick,children:o("read")}),C.jsx(lt,{disabled:n||i,className:"btn btn-danger","data-testid":"write-attribute",onClick:this.onWriteClick,children:o("write")})]})}),C.jsx(vee,{logs:this.props.logs,filterFn:u})]})}}const L1t=Ur(["devConsole","common"])(O1t);class R1t extends X.Component{render(){return C.jsxs("div",{children:[C.jsx("div",{className:"card",children:C.jsx("div",{className:"card-body",children:C.jsx(x1t,{theme:this.props.theme,device:this.props.device,generateExternalDefinition:this.props.generateExternalDefinition,generatedExternalDefinitions:this.props.generatedExternalDefinitions})})}),C.jsx("div",{className:"card",children:C.jsx("div",{className:"card-body",children:C.jsx(L1t,{theme:this.props.theme,device:this.props.device,logs:this.props.logs,i18n:this.props.i18n,readDeviceAttributes:this.props.readDeviceAttributes,writeDeviceAttributes:this.props.writeDeviceAttributes})})}),C.jsx("div",{className:"card",children:C.jsx("div",{className:"card-body",children:C.jsx(dkt,{device:this.props.device,logs:this.props.logs,executeCommand:this.props.executeCommand})})})]})}}const P1t=Ur(["devConsole","common"])(R1t);function z1t(e){var o,s;const{device:t,bridgeInfo:{config:r},setDeviceOptions:a}=e,{t:n}=Ot(["exposes"]),i=r.devices[t.ieee_address]??{};return(s=(o=t.definition)==null?void 0:o.options)!=null&&s.length?C.jsx(uo,{showEndpointLabels:!0,feature:{features:t.definition.options},type:"composite",device:t,deviceState:i,onChange:async(l,u)=>{await a(t.ieee_address,u)},featureWrapperClass:MM}):n("empty_exposes_definition")}const $1t=["bridgeInfo"],N1t=Qr($1t,na)(z1t),F1t=N1t,Mee=!!(typeof window<"u"&&window.document&&window.document.createElement);var dI=!1,cI=!1;try{var RA={get passive(){return dI=!0},get once(){return cI=dI=!0}};Mee&&(window.addEventListener("test",RA,RA),window.removeEventListener("test",RA,!0))}catch{}function Oee(e,t,r,a){if(a&&typeof a!="boolean"&&!cI){var n=a.once,i=a.capture,o=r;!cI&&n&&(o=r.__once||function s(l){this.removeEventListener(t,s,i),r.call(this,l)},r.__once=o),e.addEventListener(t,o,dI?a:i)}e.addEventListener(t,r,a)}function j1t(e,t,r){const a=X.useRef(e!==void 0),[n,i]=X.useState(t),o=e!==void 0,s=a.current;return a.current=o,!o&&s&&n!==t&&i(t),[o?e:n,X.useCallback((...l)=>{const[u,...d]=l;let c=r==null?void 0:r(u,...d);return i(u),c},[r])]}function H1t(e){const t=X.useRef(null);return X.useEffect(()=>{t.current=e}),t.current}function B1t(e,t,r,a=!1){const n=Ei(r);X.useEffect(()=>{const i=typeof e=="function"?e():e;return i.addEventListener(t,n,a),()=>i.removeEventListener(t,n,a)},[e])}const W1t=X.createContext(null),B0=W1t;function U1t(){return X.useState(null)}var s6=Object.prototype.hasOwnProperty;function l6(e,t,r){for(r of e.keys())if(Bh(r,t))return r}function Bh(e,t){var r,a,n;if(e===t)return!0;if(e&&t&&(r=e.constructor)===t.constructor){if(r===Date)return e.getTime()===t.getTime();if(r===RegExp)return e.toString()===t.toString();if(r===Array){if((a=e.length)===t.length)for(;a--&&Bh(e[a],t[a]););return a===-1}if(r===Set){if(e.size!==t.size)return!1;for(a of e)if(n=a,n&&typeof n=="object"&&(n=l6(t,n),!n)||!t.has(n))return!1;return!0}if(r===Map){if(e.size!==t.size)return!1;for(a of e)if(n=a[0],n&&typeof n=="object"&&(n=l6(t,n),!n)||!Bh(a[1],t.get(n)))return!1;return!0}if(r===ArrayBuffer)e=new Uint8Array(e),t=new Uint8Array(t);else if(r===DataView){if((a=e.byteLength)===t.byteLength)for(;a--&&e.getInt8(a)===t.getInt8(a););return a===-1}if(ArrayBuffer.isView(e)){if((a=e.byteLength)===t.byteLength)for(;a--&&e[a]===t[a];);return a===-1}if(!r||typeof e=="object"){a=0;for(r in e)if(s6.call(e,r)&&++a&&!s6.call(t,r)||!(r in t)||!Bh(e[r],t[r]))return!1;return Object.keys(t).length===a}}return e!==e&&t!==t}function V1t(){const e=X.useRef(!0),t=X.useRef(()=>e.current);return X.useEffect(()=>(e.current=!0,()=>{e.current=!1}),[]),t.current}function G1t(e){const t=V1t();return[e[0],X.useCallback(r=>{if(t())return e[1](r)},[t,e[1]])]}var on="top",Jn="bottom",ei="right",sn="left",DO="auto",Xf=[on,Jn,ei,sn],Oc="start",$p="end",q1t="clippingParents",Lee="viewport",th="popper",K1t="reference",u6=Xf.reduce(function(e,t){return e.concat([t+"-"+Oc,t+"-"+$p])},[]),Ree=[].concat(Xf,[DO]).reduce(function(e,t){return e.concat([t,t+"-"+Oc,t+"-"+$p])},[]),Z1t="beforeRead",Q1t="read",Y1t="afterRead",X1t="beforeMain",J1t="main",eSt="afterMain",tSt="beforeWrite",rSt="write",aSt="afterWrite",nSt=[Z1t,Q1t,Y1t,X1t,J1t,eSt,tSt,rSt,aSt];function Ji(e){return e.split("-")[0]}function kn(e){if(e==null)return window;if(e.toString()!=="[object Window]"){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function gu(e){var t=kn(e).Element;return e instanceof t||e instanceof Element}function eo(e){var t=kn(e).HTMLElement;return e instanceof t||e instanceof HTMLElement}function MO(e){if(typeof ShadowRoot>"u")return!1;var t=kn(e).ShadowRoot;return e instanceof t||e instanceof ShadowRoot}var tu=Math.max,ob=Math.min,Lc=Math.round;function mI(){var e=navigator.userAgentData;return e!=null&&e.brands&&Array.isArray(e.brands)?e.brands.map(function(t){return t.brand+"/"+t.version}).join(" "):navigator.userAgent}function Pee(){return!/^((?!chrome|android).)*safari/i.test(mI())}function Rc(e,t,r){t===void 0&&(t=!1),r===void 0&&(r=!1);var a=e.getBoundingClientRect(),n=1,i=1;t&&eo(e)&&(n=e.offsetWidth>0&&Lc(a.width)/e.offsetWidth||1,i=e.offsetHeight>0&&Lc(a.height)/e.offsetHeight||1);var o=gu(e)?kn(e):window,s=o.visualViewport,l=!Pee()&&r,u=(a.left+(l&&s?s.offsetLeft:0))/n,d=(a.top+(l&&s?s.offsetTop:0))/i,c=a.width/n,m=a.height/i;return{width:c,height:m,top:d,right:u+c,bottom:d+m,left:u,x:u,y:d}}function OO(e){var t=Rc(e),r=e.offsetWidth,a=e.offsetHeight;return Math.abs(t.width-r)<=1&&(r=t.width),Math.abs(t.height-a)<=1&&(a=t.height),{x:e.offsetLeft,y:e.offsetTop,width:r,height:a}}function zee(e,t){var r=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(r&&MO(r)){var a=t;do{if(a&&e.isSameNode(a))return!0;a=a.parentNode||a.host}while(a)}return!1}function Xs(e){return e?(e.nodeName||"").toLowerCase():null}function Vo(e){return kn(e).getComputedStyle(e)}function iSt(e){return["table","td","th"].indexOf(Xs(e))>=0}function fl(e){return((gu(e)?e.ownerDocument:e.document)||window.document).documentElement}function W0(e){return Xs(e)==="html"?e:e.assignedSlot||e.parentNode||(MO(e)?e.host:null)||fl(e)}function d6(e){return!eo(e)||Vo(e).position==="fixed"?null:e.offsetParent}function oSt(e){var t=/firefox/i.test(mI()),r=/Trident/i.test(mI());if(r&&eo(e)){var a=Vo(e);if(a.position==="fixed")return null}var n=W0(e);for(MO(n)&&(n=n.host);eo(n)&&["html","body"].indexOf(Xs(n))<0;){var i=Vo(n);if(i.transform!=="none"||i.perspective!=="none"||i.contain==="paint"||["transform","perspective"].indexOf(i.willChange)!==-1||t&&i.willChange==="filter"||t&&i.filter&&i.filter!=="none")return n;n=n.parentNode}return null}function Jf(e){for(var t=kn(e),r=d6(e);r&&iSt(r)&&Vo(r).position==="static";)r=d6(r);return r&&(Xs(r)==="html"||Xs(r)==="body"&&Vo(r).position==="static")?t:r||oSt(e)||t}function LO(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function Wh(e,t,r){return tu(e,ob(t,r))}function sSt(e,t,r){var a=Wh(e,t,r);return a>r?r:a}function $ee(){return{top:0,right:0,bottom:0,left:0}}function Nee(e){return Object.assign({},$ee(),e)}function Fee(e,t){return t.reduce(function(r,a){return r[a]=e,r},{})}var lSt=function(t,r){return t=typeof t=="function"?t(Object.assign({},r.rects,{placement:r.placement})):t,Nee(typeof t!="number"?t:Fee(t,Xf))};function uSt(e){var t,r=e.state,a=e.name,n=e.options,i=r.elements.arrow,o=r.modifiersData.popperOffsets,s=Ji(r.placement),l=LO(s),u=[sn,ei].indexOf(s)>=0,d=u?"height":"width";if(!(!i||!o)){var c=lSt(n.padding,r),m=OO(i),h=l==="y"?on:sn,p=l==="y"?Jn:ei,f=r.rects.reference[d]+r.rects.reference[l]-o[l]-r.rects.popper[d],v=o[l]-r.rects.reference[l],y=Jf(i),_=y?l==="y"?y.clientHeight||0:y.clientWidth||0:0,w=f/2-v/2,k=c[h],S=_-m[d]-c[p],A=_/2-m[d]/2+w,T=Wh(k,A,S),E=l;r.modifiersData[a]=(t={},t[E]=T,t.centerOffset=T-A,t)}}function dSt(e){var t=e.state,r=e.options,a=r.element,n=a===void 0?"[data-popper-arrow]":a;n!=null&&(typeof n=="string"&&(n=t.elements.popper.querySelector(n),!n)||zee(t.elements.popper,n)&&(t.elements.arrow=n))}const cSt={name:"arrow",enabled:!0,phase:"main",fn:uSt,effect:dSt,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Pc(e){return e.split("-")[1]}var mSt={top:"auto",right:"auto",bottom:"auto",left:"auto"};function hSt(e,t){var r=e.x,a=e.y,n=t.devicePixelRatio||1;return{x:Lc(r*n)/n||0,y:Lc(a*n)/n||0}}function c6(e){var t,r=e.popper,a=e.popperRect,n=e.placement,i=e.variation,o=e.offsets,s=e.position,l=e.gpuAcceleration,u=e.adaptive,d=e.roundOffsets,c=e.isFixed,m=o.x,h=m===void 0?0:m,p=o.y,f=p===void 0?0:p,v=typeof d=="function"?d({x:h,y:f}):{x:h,y:f};h=v.x,f=v.y;var y=o.hasOwnProperty("x"),_=o.hasOwnProperty("y"),w=sn,k=on,S=window;if(u){var A=Jf(r),T="clientHeight",E="clientWidth";if(A===kn(r)&&(A=fl(r),Vo(A).position!=="static"&&s==="absolute"&&(T="scrollHeight",E="scrollWidth")),A=A,n===on||(n===sn||n===ei)&&i===$p){k=Jn;var D=c&&A===S&&S.visualViewport?S.visualViewport.height:A[T];f-=D-a.height,f*=l?1:-1}if(n===sn||(n===on||n===Jn)&&i===$p){w=ei;var I=c&&A===S&&S.visualViewport?S.visualViewport.width:A[E];h-=I-a.width,h*=l?1:-1}}var x=Object.assign({position:s},u&&mSt),O=d===!0?hSt({x:h,y:f},kn(r)):{x:h,y:f};if(h=O.x,f=O.y,l){var M;return Object.assign({},x,(M={},M[k]=_?"0":"",M[w]=y?"0":"",M.transform=(S.devicePixelRatio||1)<=1?"translate("+h+"px, "+f+"px)":"translate3d("+h+"px, "+f+"px, 0)",M))}return Object.assign({},x,(t={},t[k]=_?f+"px":"",t[w]=y?h+"px":"",t.transform="",t))}function pSt(e){var t=e.state,r=e.options,a=r.gpuAcceleration,n=a===void 0?!0:a,i=r.adaptive,o=i===void 0?!0:i,s=r.roundOffsets,l=s===void 0?!0:s,u={placement:Ji(t.placement),variation:Pc(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:n,isFixed:t.options.strategy==="fixed"};t.modifiersData.popperOffsets!=null&&(t.styles.popper=Object.assign({},t.styles.popper,c6(Object.assign({},u,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:o,roundOffsets:l})))),t.modifiersData.arrow!=null&&(t.styles.arrow=Object.assign({},t.styles.arrow,c6(Object.assign({},u,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})}const fSt={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:pSt,data:{}};var Nv={passive:!0};function gSt(e){var t=e.state,r=e.instance,a=e.options,n=a.scroll,i=n===void 0?!0:n,o=a.resize,s=o===void 0?!0:o,l=kn(t.elements.popper),u=[].concat(t.scrollParents.reference,t.scrollParents.popper);return i&&u.forEach(function(d){d.addEventListener("scroll",r.update,Nv)}),s&&l.addEventListener("resize",r.update,Nv),function(){i&&u.forEach(function(d){d.removeEventListener("scroll",r.update,Nv)}),s&&l.removeEventListener("resize",r.update,Nv)}}const vSt={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:gSt,data:{}};var ySt={left:"right",right:"left",bottom:"top",top:"bottom"};function Ty(e){return e.replace(/left|right|bottom|top/g,function(t){return ySt[t]})}var _St={start:"end",end:"start"};function m6(e){return e.replace(/start|end/g,function(t){return _St[t]})}function RO(e){var t=kn(e),r=t.pageXOffset,a=t.pageYOffset;return{scrollLeft:r,scrollTop:a}}function PO(e){return Rc(fl(e)).left+RO(e).scrollLeft}function bSt(e,t){var r=kn(e),a=fl(e),n=r.visualViewport,i=a.clientWidth,o=a.clientHeight,s=0,l=0;if(n){i=n.width,o=n.height;var u=Pee();(u||!u&&t==="fixed")&&(s=n.offsetLeft,l=n.offsetTop)}return{width:i,height:o,x:s+PO(e),y:l}}function wSt(e){var t,r=fl(e),a=RO(e),n=(t=e.ownerDocument)==null?void 0:t.body,i=tu(r.scrollWidth,r.clientWidth,n?n.scrollWidth:0,n?n.clientWidth:0),o=tu(r.scrollHeight,r.clientHeight,n?n.scrollHeight:0,n?n.clientHeight:0),s=-a.scrollLeft+PO(e),l=-a.scrollTop;return Vo(n||r).direction==="rtl"&&(s+=tu(r.clientWidth,n?n.clientWidth:0)-i),{width:i,height:o,x:s,y:l}}function zO(e){var t=Vo(e),r=t.overflow,a=t.overflowX,n=t.overflowY;return/auto|scroll|overlay|hidden/.test(r+n+a)}function jee(e){return["html","body","#document"].indexOf(Xs(e))>=0?e.ownerDocument.body:eo(e)&&zO(e)?e:jee(W0(e))}function Uh(e,t){var r;t===void 0&&(t=[]);var a=jee(e),n=a===((r=e.ownerDocument)==null?void 0:r.body),i=kn(a),o=n?[i].concat(i.visualViewport||[],zO(a)?a:[]):a,s=t.concat(o);return n?s:s.concat(Uh(W0(o)))}function hI(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function kSt(e,t){var r=Rc(e,!1,t==="fixed");return r.top=r.top+e.clientTop,r.left=r.left+e.clientLeft,r.bottom=r.top+e.clientHeight,r.right=r.left+e.clientWidth,r.width=e.clientWidth,r.height=e.clientHeight,r.x=r.left,r.y=r.top,r}function h6(e,t,r){return t===Lee?hI(bSt(e,r)):gu(t)?kSt(t,r):hI(wSt(fl(e)))}function SSt(e){var t=Uh(W0(e)),r=["absolute","fixed"].indexOf(Vo(e).position)>=0,a=r&&eo(e)?Jf(e):e;return gu(a)?t.filter(function(n){return gu(n)&&zee(n,a)&&Xs(n)!=="body"}):[]}function ASt(e,t,r,a){var n=t==="clippingParents"?SSt(e):[].concat(t),i=[].concat(n,[r]),o=i[0],s=i.reduce(function(l,u){var d=h6(e,u,a);return l.top=tu(d.top,l.top),l.right=ob(d.right,l.right),l.bottom=ob(d.bottom,l.bottom),l.left=tu(d.left,l.left),l},h6(e,o,a));return s.width=s.right-s.left,s.height=s.bottom-s.top,s.x=s.left,s.y=s.top,s}function Hee(e){var t=e.reference,r=e.element,a=e.placement,n=a?Ji(a):null,i=a?Pc(a):null,o=t.x+t.width/2-r.width/2,s=t.y+t.height/2-r.height/2,l;switch(n){case on:l={x:o,y:t.y-r.height};break;case Jn:l={x:o,y:t.y+t.height};break;case ei:l={x:t.x+t.width,y:s};break;case sn:l={x:t.x-r.width,y:s};break;default:l={x:t.x,y:t.y}}var u=n?LO(n):null;if(u!=null){var d=u==="y"?"height":"width";switch(i){case Oc:l[u]=l[u]-(t[d]/2-r[d]/2);break;case $p:l[u]=l[u]+(t[d]/2-r[d]/2);break}}return l}function Np(e,t){t===void 0&&(t={});var r=t,a=r.placement,n=a===void 0?e.placement:a,i=r.strategy,o=i===void 0?e.strategy:i,s=r.boundary,l=s===void 0?q1t:s,u=r.rootBoundary,d=u===void 0?Lee:u,c=r.elementContext,m=c===void 0?th:c,h=r.altBoundary,p=h===void 0?!1:h,f=r.padding,v=f===void 0?0:f,y=Nee(typeof v!="number"?v:Fee(v,Xf)),_=m===th?K1t:th,w=e.rects.popper,k=e.elements[p?_:m],S=ASt(gu(k)?k:k.contextElement||fl(e.elements.popper),l,d,o),A=Rc(e.elements.reference),T=Hee({reference:A,element:w,strategy:"absolute",placement:n}),E=hI(Object.assign({},w,T)),D=m===th?E:A,I={top:S.top-D.top+y.top,bottom:D.bottom-S.bottom+y.bottom,left:S.left-D.left+y.left,right:D.right-S.right+y.right},x=e.modifiersData.offset;if(m===th&&x){var O=x[n];Object.keys(I).forEach(function(M){var b=[ei,Jn].indexOf(M)>=0?1:-1,L=[on,Jn].indexOf(M)>=0?"y":"x";I[M]+=O[L]*b})}return I}function TSt(e,t){t===void 0&&(t={});var r=t,a=r.placement,n=r.boundary,i=r.rootBoundary,o=r.padding,s=r.flipVariations,l=r.allowedAutoPlacements,u=l===void 0?Ree:l,d=Pc(a),c=d?s?u6:u6.filter(function(p){return Pc(p)===d}):Xf,m=c.filter(function(p){return u.indexOf(p)>=0});m.length===0&&(m=c);var h=m.reduce(function(p,f){return p[f]=Np(e,{placement:f,boundary:n,rootBoundary:i,padding:o})[Ji(f)],p},{});return Object.keys(h).sort(function(p,f){return h[p]-h[f]})}function CSt(e){if(Ji(e)===DO)return[];var t=Ty(e);return[m6(e),t,m6(t)]}function ESt(e){var t=e.state,r=e.options,a=e.name;if(!t.modifiersData[a]._skip){for(var n=r.mainAxis,i=n===void 0?!0:n,o=r.altAxis,s=o===void 0?!0:o,l=r.fallbackPlacements,u=r.padding,d=r.boundary,c=r.rootBoundary,m=r.altBoundary,h=r.flipVariations,p=h===void 0?!0:h,f=r.allowedAutoPlacements,v=t.options.placement,y=Ji(v),_=y===v,w=l||(_||!p?[Ty(v)]:CSt(v)),k=[v].concat(w).reduce(function(U,Y){return U.concat(Ji(Y)===DO?TSt(t,{placement:Y,boundary:d,rootBoundary:c,padding:u,flipVariations:p,allowedAutoPlacements:f}):Y)},[]),S=t.rects.reference,A=t.rects.popper,T=new Map,E=!0,D=k[0],I=0;I<k.length;I++){var x=k[I],O=Ji(x),M=Pc(x)===Oc,b=[on,Jn].indexOf(O)>=0,L=b?"width":"height",R=Np(t,{placement:x,boundary:d,rootBoundary:c,altBoundary:m,padding:u}),N=b?M?ei:sn:M?Jn:on;S[L]>A[L]&&(N=Ty(N));var H=Ty(N),z=[];if(i&&z.push(R[O]<=0),s&&z.push(R[N]<=0,R[H]<=0),z.every(function(U){return U})){D=x,E=!1;break}T.set(x,z)}if(E)for(var F=p?3:1,j=function(Y){var le=k.find(function(fe){var he=T.get(fe);if(he)return he.slice(0,Y).every(function(Te){return Te})});if(le)return D=le,"break"},B=F;B>0;B--){var G=j(B);if(G==="break")break}t.placement!==D&&(t.modifiersData[a]._skip=!0,t.placement=D,t.reset=!0)}}const ISt={name:"flip",enabled:!0,phase:"main",fn:ESt,requiresIfExists:["offset"],data:{_skip:!1}};function p6(e,t,r){return r===void 0&&(r={x:0,y:0}),{top:e.top-t.height-r.y,right:e.right-t.width+r.x,bottom:e.bottom-t.height+r.y,left:e.left-t.width-r.x}}function f6(e){return[on,ei,Jn,sn].some(function(t){return e[t]>=0})}function xSt(e){var t=e.state,r=e.name,a=t.rects.reference,n=t.rects.popper,i=t.modifiersData.preventOverflow,o=Np(t,{elementContext:"reference"}),s=Np(t,{altBoundary:!0}),l=p6(o,a),u=p6(s,n,i),d=f6(l),c=f6(u);t.modifiersData[r]={referenceClippingOffsets:l,popperEscapeOffsets:u,isReferenceHidden:d,hasPopperEscaped:c},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":d,"data-popper-escaped":c})}const DSt={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:xSt};function MSt(e,t,r){var a=Ji(e),n=[sn,on].indexOf(a)>=0?-1:1,i=typeof r=="function"?r(Object.assign({},t,{placement:e})):r,o=i[0],s=i[1];return o=o||0,s=(s||0)*n,[sn,ei].indexOf(a)>=0?{x:s,y:o}:{x:o,y:s}}function OSt(e){var t=e.state,r=e.options,a=e.name,n=r.offset,i=n===void 0?[0,0]:n,o=Ree.reduce(function(d,c){return d[c]=MSt(c,t.rects,i),d},{}),s=o[t.placement],l=s.x,u=s.y;t.modifiersData.popperOffsets!=null&&(t.modifiersData.popperOffsets.x+=l,t.modifiersData.popperOffsets.y+=u),t.modifiersData[a]=o}const LSt={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:OSt};function RSt(e){var t=e.state,r=e.name;t.modifiersData[r]=Hee({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})}const PSt={name:"popperOffsets",enabled:!0,phase:"read",fn:RSt,data:{}};function zSt(e){return e==="x"?"y":"x"}function $St(e){var t=e.state,r=e.options,a=e.name,n=r.mainAxis,i=n===void 0?!0:n,o=r.altAxis,s=o===void 0?!1:o,l=r.boundary,u=r.rootBoundary,d=r.altBoundary,c=r.padding,m=r.tether,h=m===void 0?!0:m,p=r.tetherOffset,f=p===void 0?0:p,v=Np(t,{boundary:l,rootBoundary:u,padding:c,altBoundary:d}),y=Ji(t.placement),_=Pc(t.placement),w=!_,k=LO(y),S=zSt(k),A=t.modifiersData.popperOffsets,T=t.rects.reference,E=t.rects.popper,D=typeof f=="function"?f(Object.assign({},t.rects,{placement:t.placement})):f,I=typeof D=="number"?{mainAxis:D,altAxis:D}:Object.assign({mainAxis:0,altAxis:0},D),x=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,O={x:0,y:0};if(A){if(i){var M,b=k==="y"?on:sn,L=k==="y"?Jn:ei,R=k==="y"?"height":"width",N=A[k],H=N+v[b],z=N-v[L],F=h?-E[R]/2:0,j=_===Oc?T[R]:E[R],B=_===Oc?-E[R]:-T[R],G=t.elements.arrow,U=h&&G?OO(G):{width:0,height:0},Y=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:$ee(),le=Y[b],fe=Y[L],he=Wh(0,T[R],U[R]),Te=w?T[R]/2-F-he-le-I.mainAxis:j-he-le-I.mainAxis,Le=w?-T[R]/2+F+he+fe+I.mainAxis:B+he+fe+I.mainAxis,ue=t.elements.arrow&&Jf(t.elements.arrow),ye=ue?k==="y"?ue.clientTop||0:ue.clientLeft||0:0,Ie=(M=x==null?void 0:x[k])!=null?M:0,$=N+Te-Ie-ye,ge=N+Le-Ie,ae=Wh(h?ob(H,$):H,N,h?tu(z,ge):z);A[k]=ae,O[k]=ae-N}if(s){var K,Z=k==="x"?on:sn,re=k==="x"?Jn:ei,_e=A[S],Ae=S==="y"?"height":"width",de=_e+v[Z],be=_e-v[re],Me=[on,sn].indexOf(y)!==-1,xe=(K=x==null?void 0:x[S])!=null?K:0,me=Me?de:_e-T[Ae]-E[Ae]-xe+I.altAxis,De=Me?_e+T[Ae]+E[Ae]-xe-I.altAxis:be,Re=h&&Me?sSt(me,_e,De):Wh(h?me:de,_e,h?De:be);A[S]=Re,O[S]=Re-_e}t.modifiersData[a]=O}}const NSt={name:"preventOverflow",enabled:!0,phase:"main",fn:$St,requiresIfExists:["offset"]};function FSt(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}function jSt(e){return e===kn(e)||!eo(e)?RO(e):FSt(e)}function HSt(e){var t=e.getBoundingClientRect(),r=Lc(t.width)/e.offsetWidth||1,a=Lc(t.height)/e.offsetHeight||1;return r!==1||a!==1}function BSt(e,t,r){r===void 0&&(r=!1);var a=eo(t),n=eo(t)&&HSt(t),i=fl(t),o=Rc(e,n,r),s={scrollLeft:0,scrollTop:0},l={x:0,y:0};return(a||!a&&!r)&&((Xs(t)!=="body"||zO(i))&&(s=jSt(t)),eo(t)?(l=Rc(t,!0),l.x+=t.clientLeft,l.y+=t.clientTop):i&&(l.x=PO(i))),{x:o.left+s.scrollLeft-l.x,y:o.top+s.scrollTop-l.y,width:o.width,height:o.height}}function WSt(e){var t=new Map,r=new Set,a=[];e.forEach(function(i){t.set(i.name,i)});function n(i){r.add(i.name);var o=[].concat(i.requires||[],i.requiresIfExists||[]);o.forEach(function(s){if(!r.has(s)){var l=t.get(s);l&&n(l)}}),a.push(i)}return e.forEach(function(i){r.has(i.name)||n(i)}),a}function USt(e){var t=WSt(e);return nSt.reduce(function(r,a){return r.concat(t.filter(function(n){return n.phase===a}))},[])}function VSt(e){var t;return function(){return t||(t=new Promise(function(r){Promise.resolve().then(function(){t=void 0,r(e())})})),t}}function GSt(e){var t=e.reduce(function(r,a){var n=r[a.name];return r[a.name]=n?Object.assign({},n,a,{options:Object.assign({},n.options,a.options),data:Object.assign({},n.data,a.data)}):a,r},{});return Object.keys(t).map(function(r){return t[r]})}var g6={placement:"bottom",modifiers:[],strategy:"absolute"};function v6(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return!t.some(function(a){return!(a&&typeof a.getBoundingClientRect=="function")})}function qSt(e){e===void 0&&(e={});var t=e,r=t.defaultModifiers,a=r===void 0?[]:r,n=t.defaultOptions,i=n===void 0?g6:n;return function(s,l,u){u===void 0&&(u=i);var d={placement:"bottom",orderedModifiers:[],options:Object.assign({},g6,i),modifiersData:{},elements:{reference:s,popper:l},attributes:{},styles:{}},c=[],m=!1,h={state:d,setOptions:function(y){var _=typeof y=="function"?y(d.options):y;f(),d.options=Object.assign({},i,d.options,_),d.scrollParents={reference:gu(s)?Uh(s):s.contextElement?Uh(s.contextElement):[],popper:Uh(l)};var w=USt(GSt([].concat(a,d.options.modifiers)));return d.orderedModifiers=w.filter(function(k){return k.enabled}),p(),h.update()},forceUpdate:function(){if(!m){var y=d.elements,_=y.reference,w=y.popper;if(v6(_,w)){d.rects={reference:BSt(_,Jf(w),d.options.strategy==="fixed"),popper:OO(w)},d.reset=!1,d.placement=d.options.placement,d.orderedModifiers.forEach(function(I){return d.modifiersData[I.name]=Object.assign({},I.data)});for(var k=0;k<d.orderedModifiers.length;k++){if(d.reset===!0){d.reset=!1,k=-1;continue}var S=d.orderedModifiers[k],A=S.fn,T=S.options,E=T===void 0?{}:T,D=S.name;typeof A=="function"&&(d=A({state:d,options:E,name:D,instance:h})||d)}}}},update:VSt(function(){return new Promise(function(v){h.forceUpdate(),v(d)})}),destroy:function(){f(),m=!0}};if(!v6(s,l))return h;h.setOptions(u).then(function(v){!m&&u.onFirstUpdate&&u.onFirstUpdate(v)});function p(){d.orderedModifiers.forEach(function(v){var y=v.name,_=v.options,w=_===void 0?{}:_,k=v.effect;if(typeof k=="function"){var S=k({state:d,name:y,instance:h,options:w}),A=function(){};c.push(S||A)}})}function f(){c.forEach(function(v){return v()}),c=[]}return h}}const KSt=qSt({defaultModifiers:[DSt,PSt,fSt,vSt,LSt,ISt,NSt,cSt]}),ZSt=["enabled","placement","strategy","modifiers"];function QSt(e,t){if(e==null)return{};var r={},a=Object.keys(e),n,i;for(i=0;i<a.length;i++)n=a[i],!(t.indexOf(n)>=0)&&(r[n]=e[n]);return r}const YSt={name:"applyStyles",enabled:!1,phase:"afterWrite",fn:()=>{}},XSt={name:"ariaDescribedBy",enabled:!0,phase:"afterWrite",effect:({state:e})=>()=>{const{reference:t,popper:r}=e.elements;if("removeAttribute"in t){const a=(t.getAttribute("aria-describedby")||"").split(",").filter(n=>n.trim()!==r.id);a.length?t.setAttribute("aria-describedby",a.join(",")):t.removeAttribute("aria-describedby")}},fn:({state:e})=>{var t;const{popper:r,reference:a}=e.elements,n=(t=r.getAttribute("role"))==null?void 0:t.toLowerCase();if(r.id&&n==="tooltip"&&"setAttribute"in a){const i=a.getAttribute("aria-describedby");if(i&&i.split(",").indexOf(r.id)!==-1)return;a.setAttribute("aria-describedby",i?`${i},${r.id}`:r.id)}}},JSt=[];function eAt(e,t,r={}){let{enabled:a=!0,placement:n="bottom",strategy:i="absolute",modifiers:o=JSt}=r,s=QSt(r,ZSt);const l=X.useRef(o),u=X.useRef(),d=X.useCallback(()=>{var v;(v=u.current)==null||v.update()},[]),c=X.useCallback(()=>{var v;(v=u.current)==null||v.forceUpdate()},[]),[m,h]=G1t(X.useState({placement:n,update:d,forceUpdate:c,attributes:{},styles:{popper:{},arrow:{}}})),p=X.useMemo(()=>({name:"updateStateModifier",enabled:!0,phase:"write",requires:["computeStyles"],fn:({state:v})=>{const y={},_={};Object.keys(v.elements).forEach(w=>{y[w]=v.styles[w],_[w]=v.attributes[w]}),h({state:v,styles:y,attributes:_,update:d,forceUpdate:c,placement:v.placement})}}),[d,c,h]),f=X.useMemo(()=>(Bh(l.current,o)||(l.current=o),l.current),[o]);return X.useEffect(()=>{!u.current||!a||u.current.setOptions({placement:n,strategy:i,modifiers:[...f,p,YSt]})},[i,n,p,a,f]),X.useEffect(()=>{if(!(!a||e==null||t==null))return u.current=KSt(e,t,Object.assign({},s,{placement:n,strategy:i,modifiers:[...f,XSt,p]})),()=>{u.current!=null&&(u.current.destroy(),u.current=void 0,h(v=>Object.assign({},v,{attributes:{},styles:{popper:{}}})))}},[a,e,t]),m}function y6(e,t){if(e.contains)return e.contains(t);if(e.compareDocumentPosition)return e===t||!!(e.compareDocumentPosition(t)&16)}function tAt(e,t,r,a){var n=a&&typeof a!="boolean"?a.capture:a;e.removeEventListener(t,r,n),r.__once&&e.removeEventListener(t,r.__once,n)}function Fv(e,t,r,a){return Oee(e,t,r,a),function(){tAt(e,t,r,a)}}function rAt(e){return e&&e.ownerDocument||document}const _6=()=>{};function aAt(e){return e.button===0}function nAt(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}const PA=e=>e&&("current"in e?e.current:e),b6={click:"mousedown",mouseup:"mousedown",pointerup:"pointerdown"};function iAt(e,t=_6,{disabled:r,clickTrigger:a="click"}={}){const n=X.useRef(!1),i=X.useRef(!1),o=X.useCallback(u=>{const d=PA(e);Zyt(!!d,"ClickOutside captured a close event but does not have a ref to compare it to. useClickOutside(), should be passed a ref that resolves to a DOM node"),n.current=!d||nAt(u)||!aAt(u)||!!y6(d,u.target)||i.current,i.current=!1},[e]),s=Ei(u=>{const d=PA(e);d&&y6(d,u.target)&&(i.current=!0)}),l=Ei(u=>{n.current||t(u)});X.useEffect(()=>{var u,d;if(r||e==null)return;const c=rAt(PA(e)),m=c.defaultView||window;let h=(u=m.event)!=null?u:(d=m.parent)==null?void 0:d.event,p=null;b6[a]&&(p=Fv(c,b6[a],s,!0));const f=Fv(c,a,o,!0),v=Fv(c,a,_=>{if(_===h){h=void 0;return}l(_)});let y=[];return"ontouchstart"in c.documentElement&&(y=[].slice.call(c.body.children).map(_=>Fv(_,"mousemove",_6))),()=>{p==null||p(),f(),v(),y.forEach(_=>_())}},[e,r,a,o,s,l])}function oAt(e){const t={};return Array.isArray(e)?(e==null||e.forEach(r=>{t[r.name]=r}),t):e||t}function sAt(e={}){return Array.isArray(e)?e:Object.keys(e).map(t=>(e[t].name=t,e[t]))}function lAt({enabled:e,enableEvents:t,placement:r,flip:a,offset:n,fixed:i,containerPadding:o,arrowElement:s,popperConfig:l={}}){var u,d,c,m,h;const p=oAt(l.modifiers);return Object.assign({},l,{placement:r,enabled:e,strategy:i?"fixed":l.strategy,modifiers:sAt(Object.assign({},p,{eventListeners:{enabled:t,options:(u=p.eventListeners)==null?void 0:u.options},preventOverflow:Object.assign({},p.preventOverflow,{options:o?Object.assign({padding:o},(d=p.preventOverflow)==null?void 0:d.options):(c=p.preventOverflow)==null?void 0:c.options}),offset:{options:Object.assign({offset:n},(m=p.offset)==null?void 0:m.options)},arrow:Object.assign({},p.arrow,{enabled:!!s,options:Object.assign({},(h=p.arrow)==null?void 0:h.options,{element:s})}),flip:Object.assign({enabled:!!a},p.flip)}))})}const uAt=["children"];function dAt(e,t){if(e==null)return{};var r={},a=Object.keys(e),n,i;for(i=0;i<a.length;i++)n=a[i],!(t.indexOf(n)>=0)&&(r[n]=e[n]);return r}const cAt=()=>{};function Bee(e={}){const t=X.useContext(B0),[r,a]=U1t(),n=X.useRef(!1),{flip:i,offset:o,rootCloseEvent:s,fixed:l=!1,placement:u,popperConfig:d={},enableEventListeners:c=!0,usePopper:m=!!t}=e,h=(t==null?void 0:t.show)==null?!!e.show:t.show;h&&!n.current&&(n.current=!0);const p=A=>{t==null||t.toggle(!1,A)},{placement:f,setMenu:v,menuElement:y,toggleElement:_}=t||{},w=eAt(_,y,lAt({placement:u||f||"bottom-start",enabled:m,enableEvents:c??h,offset:o,flip:i,fixed:l,arrowElement:r,popperConfig:d})),k=Object.assign({ref:v||cAt,"aria-labelledby":_==null?void 0:_.id},w.attributes.popper,{style:w.styles.popper}),S={show:h,placement:f,hasShown:n.current,toggle:t==null?void 0:t.toggle,popper:m?w:null,arrowProps:m?Object.assign({ref:a},w.attributes.arrow,{style:w.styles.arrow}):{}};return iAt(y,p,{clickTrigger:s,disabled:!h}),[k,S]}const mAt={usePopper:!0};function $O(e){let{children:t}=e,r=dAt(e,uAt);const[a,n]=Bee(r);return C.jsx(C.Fragment,{children:t(a,n)})}$O.displayName="DropdownMenu";$O.defaultProps=mAt;const sb={prefix:String(Math.round(Math.random()*1e10)),current:0},Wee=q.createContext(sb),hAt=q.createContext(!1);let pAt=!!(typeof window<"u"&&window.document&&window.document.createElement),zA=new WeakMap;function fAt(e=!1){let t=X.useContext(Wee),r=X.useRef(null);if(r.current===null&&!e){var a,n;let i=(a=q.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED)===null||a===void 0||(n=a.ReactCurrentOwner)===null||n===void 0?void 0:n.current;if(i){let o=zA.get(i);o==null?zA.set(i,{id:t.current,state:i.memoizedState}):i.memoizedState!==o.state&&(t.current=o.id,zA.delete(i))}r.current=++t.current}return r.current}function gAt(e){let t=X.useContext(Wee);t===sb&&!pAt&&console.warn("When server rendering, you must wrap your application in an <SSRProvider> to ensure consistent ids are generated between the client and server.");let r=fAt(!!e),a=`react-aria${t.prefix}`;return e||`${a}-${r}`}function vAt(e){let t=q.useId(),[r]=X.useState(kAt()),a=r?"react-aria":`react-aria${sb.prefix}`;return e||`${a}-${t}`}const yAt=typeof q.useId=="function"?vAt:gAt;function _At(){return!1}function bAt(){return!0}function wAt(e){return()=>{}}function kAt(){return typeof q.useSyncExternalStore=="function"?q.useSyncExternalStore(wAt,_At,bAt):X.useContext(hAt)}const Uee=e=>{var t;return((t=e.getAttribute("role"))==null?void 0:t.toLowerCase())==="menu"},w6=()=>{};function Vee(){const e=yAt(),{show:t=!1,toggle:r=w6,setToggle:a,menuElement:n}=X.useContext(B0)||{},i=X.useCallback(s=>{r(!t,s)},[t,r]),o={id:e,ref:a||w6,onClick:i,"aria-expanded":!!t};return n&&Uee(n)&&(o["aria-haspopup"]=!0),[o,{show:t,toggle:r}]}function Gee({children:e}){const[t,r]=Vee();return C.jsx(C.Fragment,{children:e(t,r)})}Gee.displayName="DropdownToggle";const SAt=["eventKey","disabled","onClick","active","as"];function AAt(e,t){if(e==null)return{};var r={},a=Object.keys(e),n,i;for(i=0;i<a.length;i++)n=a[i],!(t.indexOf(n)>=0)&&(r[n]=e[n]);return r}function qee({key:e,href:t,active:r,disabled:a,onClick:n}){const i=X.useContext(Dc),o=X.useContext(fO),{activeKey:s}=o||{},l=Lp(e,t),u=r==null&&e!=null?Lp(s)===l:r;return[{onClick:Ei(c=>{a||(n==null||n(c),i&&!c.isPropagationStopped()&&i(l,c))}),"aria-disabled":a||void 0,"aria-selected":u,[Yf("dropdown-item")]:""},{isActive:u}]}const Kee=X.forwardRef((e,t)=>{let{eventKey:r,disabled:a,onClick:n,active:i,as:o=hO}=e,s=AAt(e,SAt);const[l]=qee({key:r,href:s.href,disabled:a,onClick:n,active:i});return C.jsx(o,Object.assign({},s,{ref:t},l))});Kee.displayName="DropdownItem";const Zee=X.createContext(Mee?window:void 0);Zee.Provider;function TAt(){return X.useContext(Zee)}function k6(){const e=hJ(),t=X.useRef(null),r=X.useCallback(a=>{t.current=a,e()},[e]);return[t,r]}function eg({defaultShow:e,show:t,onSelect:r,onToggle:a,itemSelector:n=`* [${Yf("dropdown-item")}]`,focusFirstItemOnShow:i,placement:o="bottom-start",children:s}){const l=TAt(),[u,d]=j1t(t,e,a),[c,m]=k6(),h=c.current,[p,f]=k6(),v=p.current,y=H1t(u),_=X.useRef(null),w=X.useRef(!1),k=X.useContext(Dc),S=X.useCallback((x,O,M=O==null?void 0:O.type)=>{d(x,{originalEvent:O,source:M})},[d]),A=Ei((x,O)=>{r==null||r(x,O),S(!1,O,"select"),O.isPropagationStopped()||k==null||k(x,O)}),T=X.useMemo(()=>({toggle:S,placement:o,show:u,menuElement:h,toggleElement:v,setMenu:m,setToggle:f}),[S,o,u,h,v,m,f]);h&&y&&!u&&(w.current=h.contains(h.ownerDocument.activeElement));const E=Ei(()=>{v&&v.focus&&v.focus()}),D=Ei(()=>{const x=_.current;let O=i;if(O==null&&(O=c.current&&Uee(c.current)?"keyboard":!1),O===!1||O==="keyboard"&&!/^key.+$/.test(x))return;const M=nI(c.current,n)[0];M&&M.focus&&M.focus()});X.useEffect(()=>{u?D():w.current&&(w.current=!1,E())},[u,w,E,D]),X.useEffect(()=>{_.current=null});const I=(x,O)=>{if(!c.current)return null;const M=nI(c.current,n);let b=M.indexOf(x)+O;return b=Math.max(0,Math.min(b,M.length)),M[b]};return B1t(X.useCallback(()=>l.document,[l]),"keydown",x=>{var O,M;const{key:b}=x,L=x.target,R=(O=c.current)==null?void 0:O.contains(L),N=(M=p.current)==null?void 0:M.contains(L);if(/input|textarea/i.test(L.tagName)&&(b===" "||b!=="Escape"&&R||b==="Escape"&&L.type==="search")||!R&&!N||b==="Tab"&&(!c.current||!u))return;_.current=x.type;const z={originalEvent:x,source:x.type};switch(b){case"ArrowUp":{const F=I(L,-1);F&&F.focus&&F.focus(),x.preventDefault();return}case"ArrowDown":if(x.preventDefault(),!u)d(!0,z);else{const F=I(L,1);F&&F.focus&&F.focus()}return;case"Tab":Oee(L.ownerDocument,"keyup",F=>{var j;(F.key==="Tab"&&!F.target||!((j=c.current)!=null&&j.contains(F.target)))&&d(!1,z)},{once:!0});break;case"Escape":b==="Escape"&&(x.preventDefault(),x.stopPropagation()),d(!1,z);break}}),C.jsx(Dc.Provider,{value:A,children:C.jsx(B0.Provider,{value:T,children:s})})}eg.displayName="Dropdown";eg.Menu=$O;eg.Toggle=Gee;eg.Item=Kee;const Qee=X.createContext({});Qee.displayName="DropdownContext";const Yee=Qee,Xee=X.forwardRef(({className:e,bsPrefix:t,as:r="hr",role:a="separator",...n},i)=>(t=Ft(t,"dropdown-divider"),C.jsx(r,{ref:i,className:Ue(e,t),role:a,...n})));Xee.displayName="DropdownDivider";const CAt=Xee,Jee=X.forwardRef(({className:e,bsPrefix:t,as:r="div",role:a="heading",...n},i)=>(t=Ft(t,"dropdown-header"),C.jsx(r,{ref:i,className:Ue(e,t),role:a,...n})));Jee.displayName="DropdownHeader";const EAt=Jee,IAt=typeof global<"u"&&global.navigator&&global.navigator.product==="ReactNative",xAt=typeof document<"u",DAt=xAt||IAt?X.useLayoutEffect:X.useEffect,MAt=["onKeyDown"];function OAt(e,t){if(e==null)return{};var r={},a=Object.keys(e),n,i;for(i=0;i<a.length;i++)n=a[i],!(t.indexOf(n)>=0)&&(r[n]=e[n]);return r}function LAt(e){return!e||e.trim()==="#"}const ete=X.forwardRef((e,t)=>{let{onKeyDown:r}=e,a=OAt(e,MAt);const[n]=mO(Object.assign({tagName:"a"},a)),i=Ei(o=>{n.onKeyDown(o),r==null||r(o)});return LAt(a.href)||a.role==="button"?C.jsx("a",Object.assign({ref:t},a,n,{onKeyDown:i})):C.jsx("a",Object.assign({ref:t},a,{onKeyDown:r}))});ete.displayName="Anchor";const RAt=ete,tte=X.forwardRef(({bsPrefix:e,className:t,eventKey:r,disabled:a=!1,onClick:n,active:i,as:o=RAt,...s},l)=>{const u=Ft(e,"dropdown-item"),[d,c]=qee({key:r,href:s.href,disabled:a,onClick:n,active:i});return C.jsx(o,{...s,...d,ref:l,className:Ue(t,u,c.isActive&&"active",a&&"disabled")})});tte.displayName="DropdownItem";const PAt=tte,rte=X.forwardRef(({className:e,bsPrefix:t,as:r="span",...a},n)=>(t=Ft(t,"dropdown-item-text"),C.jsx(r,{ref:n,className:Ue(e,t),...a})));rte.displayName="DropdownItemText";const zAt=rte,ate=X.createContext(null);ate.displayName="NavbarContext";const $At=ate;function nte(e,t){return e}function ite(e,t,r){const a=r?"top-end":"top-start",n=r?"top-start":"top-end",i=r?"bottom-end":"bottom-start",o=r?"bottom-start":"bottom-end",s=r?"right-start":"left-start",l=r?"right-end":"left-end",u=r?"left-start":"right-start",d=r?"left-end":"right-end";let c=e?o:i;return t==="up"?c=e?n:a:t==="end"?c=e?d:u:t==="start"?c=e?l:s:t==="down-centered"?c="bottom":t==="up-centered"&&(c="top"),c}const ote=X.forwardRef(({bsPrefix:e,className:t,align:r,rootCloseEvent:a,flip:n=!0,show:i,renderOnMount:o,as:s="div",popperConfig:l,variant:u,...d},c)=>{let m=!1;const h=X.useContext($At),p=Ft(e,"dropdown-menu"),{align:f,drop:v,isRTL:y}=X.useContext(Yee);r=r||f;const _=X.useContext(yO),w=[];if(r)if(typeof r=="object"){const x=Object.keys(r);if(x.length){const O=x[0],M=r[O];m=M==="start",w.push(`${p}-${O}-${M}`)}}else r==="end"&&(m=!0);const k=ite(m,v,y),[S,{hasShown:A,popper:T,show:E,toggle:D}]=Bee({flip:n,rootCloseEvent:a,show:i,usePopper:!h&&w.length===0,offset:[0,2],popperConfig:l,placement:k});if(S.ref=pO(nte(c),S.ref),DAt(()=>{E&&(T==null||T.update())},[E]),!A&&!o&&!_)return null;typeof s!="string"&&(S.show=E,S.close=()=>D==null?void 0:D(!1),S.align=r);let I=d.style;return T!=null&&T.placement&&(I={...d.style,...S.style},d["x-placement"]=T.placement),C.jsx(s,{...d,...S,style:I,...(w.length||h)&&{"data-bs-popper":"static"},className:Ue(t,p,E&&"show",m&&`${p}-end`,u&&`${p}-${u}`,...w)})});ote.displayName="DropdownMenu";const NAt=ote,ste=X.forwardRef(({bsPrefix:e,split:t,className:r,childBsPrefix:a,as:n=$0,...i},o)=>{const s=Ft(e,"dropdown-toggle"),l=X.useContext(B0);a!==void 0&&(i.bsPrefix=a);const[u]=Vee();return u.ref=pO(u.ref,nte(o)),C.jsx(n,{className:Ue(r,s,t&&`${s}-split`,(l==null?void 0:l.show)&&"show"),...u,...i})});ste.displayName="DropdownToggle";const FAt=ste,lte=X.forwardRef((e,t)=>{const{bsPrefix:r,drop:a="down",show:n,className:i,align:o="start",onSelect:s,onToggle:l,focusFirstItemOnShow:u,as:d="div",navbar:c,autoClose:m=!0,...h}=mJ(e,{show:"onToggle"}),p=X.useContext(yO),f=Ft(r,"dropdown"),v=Ayt(),y=T=>m===!1?T==="click":m==="inside"?T!=="rootClose":m==="outside"?T!=="select":!0,_=Ei((T,E)=>{var D,I;!((D=E.originalEvent)==null||(I=D.target)==null)&&I.classList.contains("dropdown-toggle")&&E.source==="mousedown"||(E.originalEvent.currentTarget===document&&(E.source!=="keydown"||E.originalEvent.key==="Escape")&&(E.source="rootClose"),y(E.source)&&(l==null||l(T,E)))}),k=ite(o==="end",a,v),S=X.useMemo(()=>({align:o,drop:a,isRTL:v}),[o,a,v]),A={down:f,"down-centered":`${f}-center`,up:"dropup","up-centered":"dropup-center dropup",end:"dropend",start:"dropstart"};return C.jsx(Yee.Provider,{value:S,children:C.jsx(eg,{placement:k,show:n,onSelect:s,onToggle:_,focusFirstItemOnShow:u,itemSelector:`.${f}-item:not(.disabled):not(:disabled)`,children:p?h.children:C.jsx(d,{...h,ref:t,className:Ue(i,n&&"show",A[a])})})})});lte.displayName="Dropdown";const Cy=Object.assign(lte,{Toggle:FAt,Menu:NAt,Item:PAt,ItemText:zAt,Divider:CAt,Header:EAt});function jAt(e){const{allDevices:t,currentDevice:r,tab:a="info",t:n}=e,[i,o]=X.useState(""),s=Object.values(t).filter(l=>l.friendly_name.includes(i));return C.jsx("h1",{className:"h3",children:C.jsxs(Cy,{children:[C.jsxs(Cy.Toggle,{"aria-label":n("select_a_device"),variant:"",size:"lg",children:[r.friendly_name," "]}),C.jsxs(Cy.Menu,{children:[C.jsx(Zt.Control,{autoFocus:!0,className:"mx-3 my-2 w-auto",placeholder:n("type_to_filter"),onChange:l=>o(l.target.value),value:i}),C.jsx(BAt,{devices:s,currentDevice:r,tab:a,setSearchTerm:o})]})]})})}const HAt=Ur("devicePage")(jAt);function BAt({devices:e,currentDevice:t,tab:r,setSearchTerm:a}){return C.jsx(C.Fragment,{children:Object.values(e).map(n=>C.jsx(Cy.Item,{active:t.ieee_address===n.ieee_address,href:`#/device/${n.ieee_address}/${r}`,onClick:()=>a(""),children:n.friendly_name},n.ieee_address))})}const WAt=e=>[{translationKey:"about",url:`/device/${e}/info`},{translationKey:"exposes",url:`/device/${e}/exposes`},{translationKey:"bind",url:`/device/${e}/bind`},{translationKey:"reporting",url:`/device/${e}/reporting`},{translationKey:"settings",url:`/device/${e}/settings`},{translationKey:"settings_specific",url:`/device/${e}/settings-specific`},{translationKey:"state",url:`/device/${e}/state`},{translationKey:"clusters",url:`/device/${e}/clusters`},{translationKey:"scene",url:`/device/${e}/scene`},{translationKey:"dev_console",url:`/device/${e}/dev-console`}];function UAt(e){const{match:t,devices:r,logs:a}=e,{readDeviceAttributes:n,writeDeviceAttributes:i,setDeviceOptions:o,executeCommand:s,generateExternalDefinition:l,bridgeInfo:u,deviceStates:d,generatedExternalDefinitions:c,theme:m}=e,{tab:h,dev:p}=t.params,f=r[p],v=d[f.friendly_name]??{};switch(h){case"info":return C.jsx(tJe,{device:f});case"bind":return C.jsx(mJe,{device:f});case"state":return C.jsx(itt,{device:f});case"exposes":return C.jsx(Crt,{device:f});case"clusters":return C.jsx(xrt,{device:f});case"reporting":return C.jsx(ttt,{device:f});case"settings":return C.jsx(kbt,{device:f,setDeviceOptions:o,bridgeInfo:u});case"settings-specific":return C.jsx(F1t,{device:f,setDeviceOptions:o,bridgeInfo:u});case"dev-console":return C.jsx(P1t,{device:f,logs:a,readDeviceAttributes:n,writeDeviceAttributes:i,generateExternalDefinition:l,generatedExternalDefinitions:c,executeCommand:s,theme:m});case"scene":return C.jsx(H0t,{device:f,deviceState:v});default:return C.jsx(CZ,{to:`/device/${p}/info`})}}function VAt(e){const{devices:t,match:r,t:a}=e,{dev:n,tab:i}=r.params,o=t[n];if(!o)return C.jsx("div",{className:"h-100 d-flex justify-content-center align-items-center",children:a("unknown_device")});const s=WAt(n);return C.jsxs(C.Fragment,{children:[C.jsx(HAt,{allDevices:t,currentDevice:o,tab:i}),C.jsxs("div",{className:"tab",children:[C.jsx("ul",{className:"nav nav-tabs",children:s.map(l=>C.jsx("li",{className:"nav-item",children:C.jsx(hM,{activeClassName:"active",className:`nav-link ${xZ["small-nav"]}`,to:l.url,children:a(l.translationKey)})},l.translationKey))}),C.jsx("div",{className:"tab-content",children:C.jsx("div",{className:"tab-pane fade show active",children:C.jsx(UAt,{...e})})})]})]})}const GAt=cM(VAt),qAt=["devices","deviceStates","logs","bridgeInfo","generatedExternalDefinitions","theme"],KAt=Ur("devicePage")(Qr(qAt,na)(GAt)),ZAt=KAt;var ute={exports:{}},pI={exports:{}};(function(e,t){(function(r,a){a(t,X)})(wt,function(r,a){function n(P,W,V,Q,ne,J,ie){try{var ke=P[J](ie),Ce=ke.value}catch(Ee){return void V(Ee)}ke.done?W(Ce):Promise.resolve(Ce).then(Q,ne)}function i(P){return function(){var W=this,V=arguments;return new Promise(function(Q,ne){var J=P.apply(W,V);function ie(Ce){n(J,Q,ne,ie,ke,"next",Ce)}function ke(Ce){n(J,Q,ne,ie,ke,"throw",Ce)}ie(void 0)})}}function o(){return(o=Object.assign||function(P){for(var W=1;W<arguments.length;W++){var V=arguments[W];for(var Q in V)Object.prototype.hasOwnProperty.call(V,Q)&&(P[Q]=V[Q])}return P}).apply(this,arguments)}function s(P,W){if(P==null)return{};var V,Q,ne={},J=Object.keys(P);for(Q=0;Q<J.length;Q++)V=J[Q],W.indexOf(V)>=0||(ne[V]=P[V]);return ne}function l(P){var W=function(V,Q){if(typeof V!="object"||V===null)return V;var ne=V[Symbol.toPrimitive];if(ne!==void 0){var J=ne.call(V,Q||"default");if(typeof J!="object")return J;throw new TypeError("@@toPrimitive must return a primitive value.")}return(Q==="string"?String:Number)(V)}(P,"string");return typeof W=="symbol"?W:String(W)}a=a&&Object.prototype.hasOwnProperty.call(a,"default")?a.default:a;var u={init:"init"},d=function(P){var W=P.value;return W===void 0?"":W},c=function(){return a.createElement(a.Fragment,null," ")},m={Cell:d,width:150,minWidth:0,maxWidth:Number.MAX_SAFE_INTEGER};function h(){for(var P=arguments.length,W=new Array(P),V=0;V<P;V++)W[V]=arguments[V];return W.reduce(function(Q,ne){var J=ne.style,ie=ne.className;return Q=o({},Q,{},s(ne,["style","className"])),J&&(Q.style=Q.style?o({},Q.style||{},{},J||{}):J),ie&&(Q.className=Q.className?Q.className+" "+ie:ie),Q.className===""&&delete Q.className,Q},{})}var p=function(P,W){return W===void 0&&(W={}),function(V){return V===void 0&&(V={}),[].concat(P,[V]).reduce(function(Q,ne){return function J(ie,ke,Ce){return typeof ke=="function"?J({},ke(ie,Ce)):Array.isArray(ke)?h.apply(void 0,[ie].concat(ke)):h(ie,ke)}(Q,ne,o({},W,{userProps:V}))},{})}},f=function(P,W,V,Q){return V===void 0&&(V={}),P.reduce(function(ne,J){return J(ne,V)},W)},v=function(P,W,V){return V===void 0&&(V={}),P.forEach(function(Q){Q(W,V)})};function y(P,W,V,Q){P.findIndex(function(ne){return ne.pluginName===V}),W.forEach(function(ne){P.findIndex(function(J){return J.pluginName===ne})})}function _(P,W){return typeof P=="function"?P(W):P}function w(P){var W=a.useRef();return W.current=P,a.useCallback(function(){return W.current},[])}var k=typeof document<"u"?a.useLayoutEffect:a.useEffect;function S(P,W){var V=a.useRef(!1);k(function(){V.current&&P(),V.current=!0},W)}function A(P,W,V){return V===void 0&&(V={}),function(Q,ne){ne===void 0&&(ne={});var J=typeof Q=="string"?W[Q]:Q;if(J===void 0)throw console.info(W),new Error("Renderer Error ☝️");return T(J,o({},P,{column:W},V,{},ne))}}function T(P,W){return function(Q){return typeof Q=="function"&&(ne=Object.getPrototypeOf(Q)).prototype&&ne.prototype.isReactComponent;var ne}(V=P)||typeof V=="function"||function(Q){return typeof Q=="object"&&typeof Q.$$typeof=="symbol"&&["react.memo","react.forward_ref"].includes(Q.$$typeof.description)}(V)?a.createElement(P,W):P;var V}function E(P,W,V){return V===void 0&&(V=0),P.map(function(Q){return I(Q=o({},Q,{parent:W,depth:V})),Q.columns&&(Q.columns=E(Q.columns,Q,V+1)),Q})}function D(P){return R(P,"columns")}function I(P){var W=P.id,V=P.accessor,Q=P.Header;if(typeof V=="string"){W=W||V;var ne=V.split(".");V=function(J){return function(ie,ke,Ce){if(!ke)return ie;var Ee,ze=typeof ke=="function"?ke:JSON.stringify(ke),$e=M.get(ze)||function(){var Ne=function(Oe){return function He(Ve,qe){if(qe===void 0&&(qe=[]),Array.isArray(Ve))for(var nt=0;nt<Ve.length;nt+=1)He(Ve[nt],qe);else qe.push(Ve);return qe}(Oe).map(function(He){return String(He).replace(".","_")}).join(".").replace(B,".").replace(G,"").split(".")}(ke);return M.set(ze,Ne),Ne}();try{Ee=$e.reduce(function(Ne,Oe){return Ne[Oe]},ie)}catch{}return Ee!==void 0?Ee:Ce}(J,ne)}}if(!W&&typeof Q=="string"&&Q&&(W=Q),!W&&P.columns)throw console.error(P),new Error('A column ID (or unique "Header" value) is required!');if(!W)throw console.error(P),new Error("A column ID (or string accessor) is required!");return Object.assign(P,{id:W,accessor:V}),P}function x(P,W){if(!W)throw new Error;return Object.assign(P,o({Header:c,Footer:c},m,{},W,{},P)),Object.assign(P,{originalWidth:P.width}),P}function O(P,W,V){V===void 0&&(V=function(){return{}});for(var Q=[],ne=P,J=0,ie=function(){return J++},ke=function(){var Ce={headers:[]},Ee=[],ze=ne.some(function($e){return $e.parent});ne.forEach(function($e){var Ne,Oe=[].concat(Ee).reverse()[0];ze&&($e.parent?Ne=o({},$e.parent,{originalId:$e.parent.id,id:$e.parent.id+"_"+ie(),headers:[$e]},V($e)):Ne=x(o({originalId:$e.id+"_placeholder",id:$e.id+"_placeholder_"+ie(),placeholderOf:$e,headers:[$e]},V($e)),W),Oe&&Oe.originalId===Ne.originalId?Oe.headers.push($e):Ee.push(Ne)),Ce.headers.push($e)}),Q.push(Ce),ne=Ee};ne.length;)ke();return Q.reverse()}var M=new Map;function b(){for(var P=arguments.length,W=new Array(P),V=0;V<P;V++)W[V]=arguments[V];for(var Q=0;Q<W.length;Q+=1)if(W[Q]!==void 0)return W[Q]}function L(P){if(typeof P=="function")return P}function R(P,W){var V=[];return function Q(ne){ne.forEach(function(J){J[W]?Q(J[W]):V.push(J)})}(P),V}function N(P,W){var V=W.manualExpandedKey,Q=W.expanded,ne=W.expandSubRows,J=ne===void 0||ne,ie=[];return P.forEach(function(ke){return function Ce(Ee,ze){ze===void 0&&(ze=!0),Ee.isExpanded=Ee.original&&Ee.original[V]||Q[Ee.id],Ee.canExpand=Ee.subRows&&!!Ee.subRows.length,ze&&ie.push(Ee),Ee.subRows&&Ee.subRows.length&&Ee.isExpanded&&Ee.subRows.forEach(function($e){return Ce($e,J)})}(ke)}),ie}function H(P,W,V){return L(P)||W[P]||V[P]||V.text}function z(P,W,V){return P?P(W,V):W===void 0}function F(){throw new Error("React-Table: You have not called prepareRow(row) one or more rows you are attempting to render.")}var j=null,B=/\[/g,G=/\]/g,U=function(P){return o({role:"table"},P)},Y=function(P){return o({role:"rowgroup"},P)},le=function(P,W){var V=W.column;return o({key:"header_"+V.id,colSpan:V.totalVisibleHeaderCount,role:"columnheader"},P)},fe=function(P,W){var V=W.column;return o({key:"footer_"+V.id,colSpan:V.totalVisibleHeaderCount},P)},he=function(P,W){return o({key:"headerGroup_"+W.index,role:"row"},P)},Te=function(P,W){return o({key:"footerGroup_"+W.index},P)},Le=function(P,W){return o({key:"row_"+W.row.id,role:"row"},P)},ue=function(P,W){var V=W.cell;return o({key:"cell_"+V.row.id+"_"+V.column.id,role:"cell"},P)};function ye(){return{useOptions:[],stateReducers:[],useControlledState:[],columns:[],columnsDeps:[],allColumns:[],allColumnsDeps:[],accessValue:[],materializedColumns:[],materializedColumnsDeps:[],useInstanceAfterData:[],visibleColumns:[],visibleColumnsDeps:[],headerGroups:[],headerGroupsDeps:[],useInstanceBeforeDimensions:[],useInstance:[],prepareRow:[],getTableProps:[U],getTableBodyProps:[Y],getHeaderGroupProps:[he],getFooterGroupProps:[Te],getHeaderProps:[le],getFooterProps:[fe],getRowProps:[Le],getCellProps:[ue],useFinalInstance:[]}}u.resetHiddenColumns="resetHiddenColumns",u.toggleHideColumn="toggleHideColumn",u.setHiddenColumns="setHiddenColumns",u.toggleHideAllColumns="toggleHideAllColumns";var Ie=function(P){P.getToggleHiddenProps=[$],P.getToggleHideAllColumnsProps=[ge],P.stateReducers.push(ae),P.useInstanceBeforeDimensions.push(K),P.headerGroupsDeps.push(function(W,V){var Q=V.instance;return[].concat(W,[Q.state.hiddenColumns])}),P.useInstance.push(Z)};Ie.pluginName="useColumnVisibility";var $=function(P,W){var V=W.column;return[P,{onChange:function(Q){V.toggleHidden(!Q.target.checked)},style:{cursor:"pointer"},checked:V.isVisible,title:"Toggle Column Visible"}]},ge=function(P,W){var V=W.instance;return[P,{onChange:function(Q){V.toggleHideAllColumns(!Q.target.checked)},style:{cursor:"pointer"},checked:!V.allColumnsHidden&&!V.state.hiddenColumns.length,title:"Toggle All Columns Hidden",indeterminate:!V.allColumnsHidden&&V.state.hiddenColumns.length}]};function ae(P,W,V,Q){if(W.type===u.init)return o({hiddenColumns:[]},P);if(W.type===u.resetHiddenColumns)return o({},P,{hiddenColumns:Q.initialState.hiddenColumns||[]});if(W.type===u.toggleHideColumn){var ne=(W.value!==void 0?W.value:!P.hiddenColumns.includes(W.columnId))?[].concat(P.hiddenColumns,[W.columnId]):P.hiddenColumns.filter(function(J){return J!==W.columnId});return o({},P,{hiddenColumns:ne})}return W.type===u.setHiddenColumns?o({},P,{hiddenColumns:_(W.value,P.hiddenColumns)}):W.type===u.toggleHideAllColumns?o({},P,{hiddenColumns:(W.value!==void 0?W.value:!P.hiddenColumns.length)?Q.allColumns.map(function(J){return J.id}):[]}):void 0}function K(P){var W=P.headers,V=P.state.hiddenColumns;a.useRef(!1).current;var Q=0;W.forEach(function(ne){return Q+=function J(ie,ke){ie.isVisible=ke&&!V.includes(ie.id);var Ce=0;return ie.headers&&ie.headers.length?ie.headers.forEach(function(Ee){return Ce+=J(Ee,ie.isVisible)}):Ce=ie.isVisible?1:0,ie.totalVisibleHeaderCount=Ce,Ce}(ne,!0)})}function Z(P){var W=P.columns,V=P.flatHeaders,Q=P.dispatch,ne=P.allColumns,J=P.getHooks,ie=P.state.hiddenColumns,ke=P.autoResetHiddenColumns,Ce=ke===void 0||ke,Ee=w(P),ze=ne.length===ie.length,$e=a.useCallback(function(qe,nt){return Q({type:u.toggleHideColumn,columnId:qe,value:nt})},[Q]),Ne=a.useCallback(function(qe){return Q({type:u.setHiddenColumns,value:qe})},[Q]),Oe=a.useCallback(function(qe){return Q({type:u.toggleHideAllColumns,value:qe})},[Q]),He=p(J().getToggleHideAllColumnsProps,{instance:Ee()});V.forEach(function(qe){qe.toggleHidden=function(nt){Q({type:u.toggleHideColumn,columnId:qe.id,value:nt})},qe.getToggleHiddenProps=p(J().getToggleHiddenProps,{instance:Ee(),column:qe})});var Ve=w(Ce);S(function(){Ve()&&Q({type:u.resetHiddenColumns})},[Q,W]),Object.assign(P,{allColumnsHidden:ze,toggleHideColumn:$e,setHiddenColumns:Ne,toggleHideAllColumns:Oe,getToggleHideAllColumnsProps:He})}var re={},_e={},Ae=function(P,W,V){return P},de=function(P,W){return P.subRows||[]},be=function(P,W,V){return""+(V?[V.id,W].join("."):W)},Me=function(P){return P};function xe(P){var W=P.initialState,V=W===void 0?re:W,Q=P.defaultColumn,ne=Q===void 0?_e:Q,J=P.getSubRows,ie=J===void 0?de:J,ke=P.getRowId,Ce=ke===void 0?be:ke,Ee=P.stateReducer,ze=Ee===void 0?Ae:Ee,$e=P.useControlledState,Ne=$e===void 0?Me:$e;return o({},s(P,["initialState","defaultColumn","getSubRows","getRowId","stateReducer","useControlledState"]),{initialState:V,defaultColumn:ne,getSubRows:ie,getRowId:Ce,stateReducer:ze,useControlledState:Ne})}function me(P,W){W===void 0&&(W=0);var V=0,Q=0,ne=0,J=0;return P.forEach(function(ie){var ke=ie.headers;if(ie.totalLeft=W,ke&&ke.length){var Ce=me(ke,W),Ee=Ce[0],ze=Ce[1],$e=Ce[2],Ne=Ce[3];ie.totalMinWidth=Ee,ie.totalWidth=ze,ie.totalMaxWidth=$e,ie.totalFlexWidth=Ne}else ie.totalMinWidth=ie.minWidth,ie.totalWidth=Math.min(Math.max(ie.minWidth,ie.width),ie.maxWidth),ie.totalMaxWidth=ie.maxWidth,ie.totalFlexWidth=ie.canResize?ie.totalWidth:0;ie.isVisible&&(W+=ie.totalWidth,V+=ie.totalMinWidth,Q+=ie.totalWidth,ne+=ie.totalMaxWidth,J+=ie.totalFlexWidth)}),[V,Q,ne,J]}function De(P){var W=P.data,V=P.rows,Q=P.flatRows,ne=P.rowsById,J=P.column,ie=P.getRowId,ke=P.getSubRows,Ce=P.accessValueHooks,Ee=P.getInstance;W.forEach(function(ze,$e){return function Ne(Oe,He,Ve,qe,nt){Ve===void 0&&(Ve=0);var Tt=Oe,at=ie(Oe,He,qe),Be=ne[at];if(Be)Be.subRows&&Be.originalSubRows.forEach(function(Qe,vt){return Ne(Qe,vt,Ve+1,Be)});else if((Be={id:at,original:Tt,index:He,depth:Ve,cells:[{}]}).cells.map=F,Be.cells.filter=F,Be.cells.forEach=F,Be.cells[0].getCellProps=F,Be.values={},nt.push(Be),Q.push(Be),ne[at]=Be,Be.originalSubRows=ke(Oe,He),Be.originalSubRows){var bt=[];Be.originalSubRows.forEach(function(Qe,vt){return Ne(Qe,vt,Ve+1,Be,bt)}),Be.subRows=bt}J.accessor&&(Be.values[J.id]=J.accessor(Oe,He,Be,nt,W)),Be.values[J.id]=f(Ce,Be.values[J.id],{row:Be,column:J,instance:Ee()})}(ze,$e,0,void 0,V)})}u.resetExpanded="resetExpanded",u.toggleRowExpanded="toggleRowExpanded",u.toggleAllRowsExpanded="toggleAllRowsExpanded";var Re=function(P){P.getToggleAllRowsExpandedProps=[Ge],P.getToggleRowExpandedProps=[Je],P.stateReducers.push(ft),P.useInstance.push(Et),P.prepareRow.push(Ze)};Re.pluginName="useExpanded";var Ge=function(P,W){var V=W.instance;return[P,{onClick:function(Q){V.toggleAllRowsExpanded()},style:{cursor:"pointer"},title:"Toggle All Rows Expanded"}]},Je=function(P,W){var V=W.row;return[P,{onClick:function(){V.toggleRowExpanded()},style:{cursor:"pointer"},title:"Toggle Row Expanded"}]};function ft(P,W,V,Q){if(W.type===u.init)return o({expanded:{}},P);if(W.type===u.resetExpanded)return o({},P,{expanded:Q.initialState.expanded||{}});if(W.type===u.toggleAllRowsExpanded){var ne=W.value,J=Q.rowsById,ie=Object.keys(J).length===Object.keys(P.expanded).length;if(ne!==void 0?ne:!ie){var ke={};return Object.keys(J).forEach(function(He){ke[He]=!0}),o({},P,{expanded:ke})}return o({},P,{expanded:{}})}if(W.type===u.toggleRowExpanded){var Ce,Ee=W.id,ze=W.value,$e=P.expanded[Ee],Ne=ze!==void 0?ze:!$e;if(!$e&&Ne)return o({},P,{expanded:o({},P.expanded,(Ce={},Ce[Ee]=!0,Ce))});if($e&&!Ne){var Oe=P.expanded;return Oe[Ee],o({},P,{expanded:s(Oe,[Ee].map(l))})}return P}}function Et(P){var W=P.data,V=P.rows,Q=P.rowsById,ne=P.manualExpandedKey,J=ne===void 0?"expanded":ne,ie=P.paginateExpandedRows,ke=ie===void 0||ie,Ce=P.expandSubRows,Ee=Ce===void 0||Ce,ze=P.autoResetExpanded,$e=ze===void 0||ze,Ne=P.getHooks,Oe=P.plugins,He=P.state.expanded,Ve=P.dispatch;y(Oe,["useSortBy","useGroupBy","usePivotColumns","useGlobalFilter"],"useExpanded");var qe=w($e),nt=!!(Object.keys(Q).length&&Object.keys(He).length);nt&&Object.keys(Q).some(function(Pt){return!He[Pt]})&&(nt=!1),S(function(){qe()&&Ve({type:u.resetExpanded})},[Ve,W]);var Tt=a.useCallback(function(Pt,ct){Ve({type:u.toggleRowExpanded,id:Pt,value:ct})},[Ve]),at=a.useCallback(function(Pt){return Ve({type:u.toggleAllRowsExpanded,value:Pt})},[Ve]),Be=a.useMemo(function(){return ke?N(V,{manualExpandedKey:J,expanded:He,expandSubRows:Ee}):V},[ke,V,J,He,Ee]),bt=a.useMemo(function(){return function(Pt){var ct=0;return Object.keys(Pt).forEach(function(pt){var Kt=pt.split(".");ct=Math.max(ct,Kt.length)}),ct}(He)},[He]),Qe=w(P),vt=p(Ne().getToggleAllRowsExpandedProps,{instance:Qe()});Object.assign(P,{preExpandedRows:V,expandedRows:Be,rows:Be,expandedDepth:bt,isAllRowsExpanded:nt,toggleRowExpanded:Tt,toggleAllRowsExpanded:at,getToggleAllRowsExpandedProps:vt})}function Ze(P,W){var V=W.instance.getHooks,Q=W.instance;P.toggleRowExpanded=function(ne){return Q.toggleRowExpanded(P.id,ne)},P.getToggleRowExpandedProps=p(V().getToggleRowExpandedProps,{instance:Q,row:P})}var ut=function(P,W,V){return P=P.filter(function(Q){return W.some(function(ne){var J=Q.values[ne];return String(J).toLowerCase().includes(String(V).toLowerCase())})})};ut.autoRemove=function(P){return!P};var st=function(P,W,V){return P.filter(function(Q){return W.some(function(ne){var J=Q.values[ne];return J===void 0||String(J).toLowerCase()===String(V).toLowerCase()})})};st.autoRemove=function(P){return!P};var gt=function(P,W,V){return P.filter(function(Q){return W.some(function(ne){var J=Q.values[ne];return J===void 0||String(J)===String(V)})})};gt.autoRemove=function(P){return!P};var Jt=function(P,W,V){return P.filter(function(Q){return W.some(function(ne){return Q.values[ne].includes(V)})})};Jt.autoRemove=function(P){return!P||!P.length};var _a=function(P,W,V){return P.filter(function(Q){return W.some(function(ne){var J=Q.values[ne];return J&&J.length&&V.every(function(ie){return J.includes(ie)})})})};_a.autoRemove=function(P){return!P||!P.length};var cr=function(P,W,V){return P.filter(function(Q){return W.some(function(ne){var J=Q.values[ne];return J&&J.length&&V.some(function(ie){return J.includes(ie)})})})};cr.autoRemove=function(P){return!P||!P.length};var Fr=function(P,W,V){return P.filter(function(Q){return W.some(function(ne){var J=Q.values[ne];return V.includes(J)})})};Fr.autoRemove=function(P){return!P||!P.length};var Ea=function(P,W,V){return P.filter(function(Q){return W.some(function(ne){return Q.values[ne]===V})})};Ea.autoRemove=function(P){return P===void 0};var ia=function(P,W,V){return P.filter(function(Q){return W.some(function(ne){return Q.values[ne]==V})})};ia.autoRemove=function(P){return P==null};var Ia=function(P,W,V){var Q=V||[],ne=Q[0],J=Q[1];if((ne=typeof ne=="number"?ne:-1/0)>(J=typeof J=="number"?J:1/0)){var ie=ne;ne=J,J=ie}return P.filter(function(ke){return W.some(function(Ce){var Ee=ke.values[Ce];return Ee>=ne&&Ee<=J})})};Ia.autoRemove=function(P){return!P||typeof P[0]!="number"&&typeof P[1]!="number"};var Vr=Object.freeze({__proto__:null,text:ut,exactText:st,exactTextCase:gt,includes:Jt,includesAll:_a,includesSome:cr,includesValue:Fr,exact:Ea,equals:ia,between:Ia});u.resetFilters="resetFilters",u.setFilter="setFilter",u.setAllFilters="setAllFilters";var is=function(P){P.stateReducers.push(os),P.useInstance.push(gl)};function os(P,W,V,Q){if(W.type===u.init)return o({filters:[]},P);if(W.type===u.resetFilters)return o({},P,{filters:Q.initialState.filters||[]});if(W.type===u.setFilter){var ne=W.columnId,J=W.filterValue,ie=Q.allColumns,ke=Q.filterTypes,Ce=ie.find(function(Ve){return Ve.id===ne});if(!Ce)throw new Error("React-Table: Could not find a column with id: "+ne);var Ee=H(Ce.filter,ke||{},Vr),ze=P.filters.find(function(Ve){return Ve.id===ne}),$e=_(J,ze&&ze.value);return z(Ee.autoRemove,$e,Ce)?o({},P,{filters:P.filters.filter(function(Ve){return Ve.id!==ne})}):o({},P,ze?{filters:P.filters.map(function(Ve){return Ve.id===ne?{id:ne,value:$e}:Ve})}:{filters:[].concat(P.filters,[{id:ne,value:$e}])})}if(W.type===u.setAllFilters){var Ne=W.filters,Oe=Q.allColumns,He=Q.filterTypes;return o({},P,{filters:_(Ne,P.filters).filter(function(Ve){var qe=Oe.find(function(nt){return nt.id===Ve.id});return!z(H(qe.filter,He||{},Vr).autoRemove,Ve.value,qe)})})}}function gl(P){var W=P.data,V=P.rows,Q=P.flatRows,ne=P.rowsById,J=P.allColumns,ie=P.filterTypes,ke=P.manualFilters,Ce=P.defaultCanFilter,Ee=Ce!==void 0&&Ce,ze=P.disableFilters,$e=P.state.filters,Ne=P.dispatch,Oe=P.autoResetFilters,He=Oe===void 0||Oe,Ve=a.useCallback(function(Qe,vt){Ne({type:u.setFilter,columnId:Qe,filterValue:vt})},[Ne]),qe=a.useCallback(function(Qe){Ne({type:u.setAllFilters,filters:Qe})},[Ne]);J.forEach(function(Qe){var vt=Qe.id,Pt=Qe.accessor,ct=Qe.defaultCanFilter,pt=Qe.disableFilters;Qe.canFilter=Pt?b(pt!==!0&&void 0,ze!==!0&&void 0,!0):b(ct,Ee,!1),Qe.setFilter=function(_t){return Ve(Qe.id,_t)};var Kt=$e.find(function(_t){return _t.id===vt});Qe.filterValue=Kt&&Kt.value});var nt=a.useMemo(function(){if(ke||!$e.length)return[V,Q,ne];var Qe=[],vt={};return[function Pt(ct,pt){pt===void 0&&(pt=0);var Kt=ct;return(Kt=$e.reduce(function(_t,qt){var Nt=qt.id,ur=qt.value,ot=J.find(function(Rr){return Rr.id===Nt});if(!ot)return _t;pt===0&&(ot.preFilteredRows=_t);var zt=H(ot.filter,ie||{},Vr);return zt?(ot.filteredRows=zt(_t,[Nt],ur),ot.filteredRows):(console.warn("Could not find a valid 'column.filter' for column with the ID: "+ot.id+"."),_t)},ct)).forEach(function(_t){Qe.push(_t),vt[_t.id]=_t,_t.subRows&&(_t.subRows=_t.subRows&&_t.subRows.length>0?Pt(_t.subRows,pt+1):_t.subRows)}),Kt}(V),Qe,vt]},[ke,$e,V,Q,ne,J,ie]),Tt=nt[0],at=nt[1],Be=nt[2];a.useMemo(function(){J.filter(function(Qe){return!$e.find(function(vt){return vt.id===Qe.id})}).forEach(function(Qe){Qe.preFilteredRows=Tt,Qe.filteredRows=Tt})},[Tt,$e,J]);var bt=w(He);S(function(){bt()&&Ne({type:u.resetFilters})},[Ne,ke?null:W]),Object.assign(P,{preFilteredRows:V,preFilteredFlatRows:Q,preFilteredRowsById:ne,filteredRows:Tt,filteredFlatRows:at,filteredRowsById:Be,rows:Tt,flatRows:at,rowsById:Be,setFilter:Ve,setAllFilters:qe})}is.pluginName="useFilters",u.resetGlobalFilter="resetGlobalFilter",u.setGlobalFilter="setGlobalFilter";var Ln=function(P){P.stateReducers.push(zu),P.useInstance.push(ym)};function zu(P,W,V,Q){if(W.type===u.resetGlobalFilter)return o({},P,{globalFilter:Q.initialState.globalFilter||void 0});if(W.type===u.setGlobalFilter){var ne=W.filterValue,J=Q.userFilterTypes,ie=H(Q.globalFilter,J||{},Vr),ke=_(ne,P.globalFilter);return z(ie.autoRemove,ke)?(P.globalFilter,s(P,["globalFilter"])):o({},P,{globalFilter:ke})}}function ym(P){var W=P.data,V=P.rows,Q=P.flatRows,ne=P.rowsById,J=P.allColumns,ie=P.filterTypes,ke=P.globalFilter,Ce=P.manualGlobalFilter,Ee=P.state.globalFilter,ze=P.dispatch,$e=P.autoResetGlobalFilter,Ne=$e===void 0||$e,Oe=P.disableGlobalFilter,He=a.useCallback(function(Be){ze({type:u.setGlobalFilter,filterValue:Be})},[ze]),Ve=a.useMemo(function(){if(Ce||Ee===void 0)return[V,Q,ne];var Be=[],bt={},Qe=H(ke,ie||{},Vr);if(!Qe)return console.warn("Could not find a valid 'globalFilter' option."),V;J.forEach(function(Pt){var ct=Pt.disableGlobalFilter;Pt.canFilter=b(ct!==!0&&void 0,Oe!==!0&&void 0,!0)});var vt=J.filter(function(Pt){return Pt.canFilter===!0});return[function Pt(ct){return(ct=Qe(ct,vt.map(function(pt){return pt.id}),Ee)).forEach(function(pt){Be.push(pt),bt[pt.id]=pt,pt.subRows=pt.subRows&&pt.subRows.length?Pt(pt.subRows):pt.subRows}),ct}(V),Be,bt]},[Ce,Ee,ke,ie,J,V,Q,ne,Oe]),qe=Ve[0],nt=Ve[1],Tt=Ve[2],at=w(Ne);S(function(){at()&&ze({type:u.resetGlobalFilter})},[ze,Ce?null:W]),Object.assign(P,{preGlobalFilteredRows:V,preGlobalFilteredFlatRows:Q,preGlobalFilteredRowsById:ne,globalFilteredRows:qe,globalFilteredFlatRows:nt,globalFilteredRowsById:Tt,rows:qe,flatRows:nt,rowsById:Tt,setGlobalFilter:He,disableGlobalFilter:Oe})}function vl(P,W){return W.reduce(function(V,Q){return V+(typeof Q=="number"?Q:0)},0)}Ln.pluginName="useGlobalFilter";var $u=Object.freeze({__proto__:null,sum:vl,min:function(P){var W=P[0]||0;return P.forEach(function(V){typeof V=="number"&&(W=Math.min(W,V))}),W},max:function(P){var W=P[0]||0;return P.forEach(function(V){typeof V=="number"&&(W=Math.max(W,V))}),W},minMax:function(P){var W=P[0]||0,V=P[0]||0;return P.forEach(function(Q){typeof Q=="number"&&(W=Math.min(W,Q),V=Math.max(V,Q))}),W+".."+V},average:function(P){return vl(0,P)/P.length},median:function(P){if(!P.length)return null;var W=Math.floor(P.length/2),V=[].concat(P).sort(function(Q,ne){return Q-ne});return P.length%2!=0?V[W]:(V[W-1]+V[W])/2},unique:function(P){return Array.from(new Set(P).values())},uniqueCount:function(P){return new Set(P).size},count:function(P){return P.length}}),Nu=[],se={};u.resetGroupBy="resetGroupBy",u.setGroupBy="setGroupBy",u.toggleGroupBy="toggleGroupBy";var ee=function(P){P.getGroupByToggleProps=[ce],P.stateReducers.push(Se),P.visibleColumnsDeps.push(function(W,V){var Q=V.instance;return[].concat(W,[Q.state.groupBy])}),P.visibleColumns.push(we),P.useInstance.push(it),P.prepareRow.push(Lt)};ee.pluginName="useGroupBy";var ce=function(P,W){var V=W.header;return[P,{onClick:V.canGroupBy?function(Q){Q.persist(),V.toggleGroupBy()}:void 0,style:{cursor:V.canGroupBy?"pointer":void 0},title:"Toggle GroupBy"}]};function Se(P,W,V,Q){if(W.type===u.init)return o({groupBy:[]},P);if(W.type===u.resetGroupBy)return o({},P,{groupBy:Q.initialState.groupBy||[]});if(W.type===u.setGroupBy)return o({},P,{groupBy:W.value});if(W.type===u.toggleGroupBy){var ne=W.columnId,J=W.value,ie=J!==void 0?J:!P.groupBy.includes(ne);return o({},P,ie?{groupBy:[].concat(P.groupBy,[ne])}:{groupBy:P.groupBy.filter(function(ke){return ke!==ne})})}}function we(P,W){var V=W.instance.state.groupBy,Q=V.map(function(J){return P.find(function(ie){return ie.id===J})}).filter(Boolean),ne=P.filter(function(J){return!V.includes(J.id)});return(P=[].concat(Q,ne)).forEach(function(J){J.isGrouped=V.includes(J.id),J.groupedIndex=V.indexOf(J.id)}),P}var rt={};function it(P){var W=P.data,V=P.rows,Q=P.flatRows,ne=P.rowsById,J=P.allColumns,ie=P.flatHeaders,ke=P.groupByFn,Ce=ke===void 0?Rt:ke,Ee=P.manualGroupBy,ze=P.aggregations,$e=ze===void 0?rt:ze,Ne=P.plugins,Oe=P.state.groupBy,He=P.dispatch,Ve=P.autoResetGroupBy,qe=Ve===void 0||Ve,nt=P.disableGroupBy,Tt=P.defaultCanGroupBy,at=P.getHooks;y(Ne,["useColumnOrder","useFilters"],"useGroupBy");var Be=w(P);J.forEach(function(ot){var zt=ot.accessor,Rr=ot.defaultGroupBy,Ma=ot.disableGroupBy;ot.canGroupBy=zt?b(ot.canGroupBy,Ma!==!0&&void 0,nt!==!0&&void 0,!0):b(ot.canGroupBy,Rr,Tt,!1),ot.canGroupBy&&(ot.toggleGroupBy=function(){return P.toggleGroupBy(ot.id)}),ot.Aggregated=ot.Aggregated||ot.Cell});var bt=a.useCallback(function(ot,zt){He({type:u.toggleGroupBy,columnId:ot,value:zt})},[He]),Qe=a.useCallback(function(ot){He({type:u.setGroupBy,value:ot})},[He]);ie.forEach(function(ot){ot.getGroupByToggleProps=p(at().getGroupByToggleProps,{instance:Be(),header:ot})});var vt=a.useMemo(function(){if(Ee||!Oe.length)return[V,Q,ne,Nu,se,Q,ne];var ot=Oe.filter(function(oa){return J.find(function(ds){return ds.id===oa})}),zt=[],Rr={},Ma=[],mt={},Sr=[],Gr={},Oa=function oa(ds,po,jO){if(po===void 0&&(po=0),po===ot.length)return ds.map(function(sg){return o({},sg,{depth:po})});var ik=ot[po],Wte=Ce(ds,ik);return Object.entries(Wte).map(function(sg,Ute){var HO=sg[0],lg=sg[1],ug=ik+":"+HO,BO=oa(lg,po+1,ug=jO?jO+">"+ug:ug),WO=po?R(lg,"leafRows"):lg,Vte=function(Pn,ok,qte){var dg={};return J.forEach(function(qr){if(ot.includes(qr.id))dg[qr.id]=ok[0]?ok[0].values[qr.id]:null;else{var UO=typeof qr.aggregate=="function"?qr.aggregate:$e[qr.aggregate]||$u[qr.aggregate];if(UO){var Kte=ok.map(function(cg){return cg.values[qr.id]}),Zte=Pn.map(function(cg){var sk=cg.values[qr.id];if(!qte&&qr.aggregateValue){var VO=typeof qr.aggregateValue=="function"?qr.aggregateValue:$e[qr.aggregateValue]||$u[qr.aggregateValue];if(!VO)throw console.info({column:qr}),new Error("React Table: Invalid column.aggregateValue option for column listed above");sk=VO(sk,cg,qr)}return sk});dg[qr.id]=UO(Zte,Kte)}else{if(qr.aggregate)throw console.info({column:qr}),new Error("React Table: Invalid column.aggregate option for column listed above");dg[qr.id]=null}}}),dg}(WO,lg,po),Gte={id:ug,isGrouped:!0,groupByID:ik,groupByVal:HO,values:Vte,subRows:BO,leafRows:WO,depth:po,index:Ute};return BO.forEach(function(Pn){zt.push(Pn),Rr[Pn.id]=Pn,Pn.isGrouped?(Ma.push(Pn),mt[Pn.id]=Pn):(Sr.push(Pn),Gr[Pn.id]=Pn)}),Gte})}(V);return Oa.forEach(function(oa){zt.push(oa),Rr[oa.id]=oa,oa.isGrouped?(Ma.push(oa),mt[oa.id]=oa):(Sr.push(oa),Gr[oa.id]=oa)}),[Oa,zt,Rr,Ma,mt,Sr,Gr]},[Ee,Oe,V,Q,ne,J,$e,Ce]),Pt=vt[0],ct=vt[1],pt=vt[2],Kt=vt[3],_t=vt[4],qt=vt[5],Nt=vt[6],ur=w(qe);S(function(){ur()&&He({type:u.resetGroupBy})},[He,Ee?null:W]),Object.assign(P,{preGroupedRows:V,preGroupedFlatRow:Q,preGroupedRowsById:ne,groupedRows:Pt,groupedFlatRows:ct,groupedRowsById:pt,onlyGroupedFlatRows:Kt,onlyGroupedRowsById:_t,nonGroupedFlatRows:qt,nonGroupedRowsById:Nt,rows:Pt,flatRows:ct,rowsById:pt,toggleGroupBy:bt,setGroupBy:Qe})}function Lt(P){P.allCells.forEach(function(W){var V;W.isGrouped=W.column.isGrouped&&W.column.id===P.groupByID,W.isPlaceholder=!W.isGrouped&&W.column.isGrouped,W.isAggregated=!W.isGrouped&&!W.isPlaceholder&&((V=P.subRows)==null?void 0:V.length)})}function Rt(P,W){return P.reduce(function(V,Q,ne){var J=""+Q.values[W];return V[J]=Array.isArray(V[J])?V[J]:[],V[J].push(Q),V},{})}var hr=/([0-9]+)/gm;function Ct(P,W){return P===W?0:P>W?1:-1}function Gt(P,W,V){return[P.values[V],W.values[V]]}function pr(P){return typeof P=="number"?isNaN(P)||P===1/0||P===-1/0?"":String(P):typeof P=="string"?P:""}var yt=Object.freeze({__proto__:null,alphanumeric:function(P,W,V){var Q=Gt(P,W,V),ne=Q[0],J=Q[1];for(ne=pr(ne),J=pr(J),ne=ne.split(hr).filter(Boolean),J=J.split(hr).filter(Boolean);ne.length&&J.length;){var ie=ne.shift(),ke=J.shift(),Ce=parseInt(ie,10),Ee=parseInt(ke,10),ze=[Ce,Ee].sort();if(isNaN(ze[0])){if(ie>ke)return 1;if(ke>ie)return-1}else{if(isNaN(ze[1]))return isNaN(Ce)?-1:1;if(Ce>Ee)return 1;if(Ee>Ce)return-1}}return ne.length-J.length},datetime:function(P,W,V){var Q=Gt(P,W,V),ne=Q[0],J=Q[1];return Ct(ne=ne.getTime(),J=J.getTime())},basic:function(P,W,V){var Q=Gt(P,W,V);return Ct(Q[0],Q[1])},string:function(P,W,V){var Q=Gt(P,W,V),ne=Q[0],J=Q[1];for(ne=ne.split("").filter(Boolean),J=J.split("").filter(Boolean);ne.length&&J.length;){var ie=ne.shift(),ke=J.shift(),Ce=ie.toLowerCase(),Ee=ke.toLowerCase();if(Ce>Ee)return 1;if(Ee>Ce)return-1;if(ie>ke)return 1;if(ke>ie)return-1}return ne.length-J.length},number:function(P,W,V){var Q=Gt(P,W,V),ne=Q[0],J=Q[1],ie=/[^0-9.]/gi;return Ct(ne=Number(String(ne).replace(ie,"")),J=Number(String(J).replace(ie,"")))}});u.resetSortBy="resetSortBy",u.setSortBy="setSortBy",u.toggleSortBy="toggleSortBy",u.clearSortBy="clearSortBy",m.sortType="alphanumeric",m.sortDescFirst=!1;var Bt=function(P){P.getSortByToggleProps=[kr],P.stateReducers.push(lr),P.useInstance.push(Rn)};Bt.pluginName="useSortBy";var kr=function(P,W){var V=W.instance,Q=W.column,ne=V.isMultiSortEvent,J=ne===void 0?function(ie){return ie.shiftKey}:ne;return[P,{onClick:Q.canSort?function(ie){ie.persist(),Q.toggleSortBy(void 0,!V.disableMultiSort&&J(ie))}:void 0,style:{cursor:Q.canSort?"pointer":void 0},title:Q.canSort?"Toggle SortBy":void 0}]};function lr(P,W,V,Q){if(W.type===u.init)return o({sortBy:[]},P);if(W.type===u.resetSortBy)return o({},P,{sortBy:Q.initialState.sortBy||[]});if(W.type===u.clearSortBy)return o({},P,{sortBy:P.sortBy.filter(function(Be){return Be.id!==W.columnId})});if(W.type===u.setSortBy)return o({},P,{sortBy:W.sortBy});if(W.type===u.toggleSortBy){var ne,J=W.columnId,ie=W.desc,ke=W.multi,Ce=Q.allColumns,Ee=Q.disableMultiSort,ze=Q.disableSortRemove,$e=Q.disableMultiRemove,Ne=Q.maxMultiSortColCount,Oe=Ne===void 0?Number.MAX_SAFE_INTEGER:Ne,He=P.sortBy,Ve=Ce.find(function(Be){return Be.id===J}).sortDescFirst,qe=He.find(function(Be){return Be.id===J}),nt=He.findIndex(function(Be){return Be.id===J}),Tt=ie!=null,at=[];return(ne=!Ee&&ke?qe?"toggle":"add":nt!==He.length-1||He.length!==1?"replace":qe?"toggle":"replace")!="toggle"||ze||Tt||ke&&$e||!(qe&&qe.desc&&!Ve||!qe.desc&&Ve)||(ne="remove"),ne==="replace"?at=[{id:J,desc:Tt?ie:Ve}]:ne==="add"?(at=[].concat(He,[{id:J,desc:Tt?ie:Ve}])).splice(0,at.length-Oe):ne==="toggle"?at=He.map(function(Be){return Be.id===J?o({},Be,{desc:Tt?ie:!qe.desc}):Be}):ne==="remove"&&(at=He.filter(function(Be){return Be.id!==J})),o({},P,{sortBy:at})}}function Rn(P){var W=P.data,V=P.rows,Q=P.flatRows,ne=P.allColumns,J=P.orderByFn,ie=J===void 0?xa:J,ke=P.sortTypes,Ce=P.manualSortBy,Ee=P.defaultCanSort,ze=P.disableSortBy,$e=P.flatHeaders,Ne=P.state.sortBy,Oe=P.dispatch,He=P.plugins,Ve=P.getHooks,qe=P.autoResetSortBy,nt=qe===void 0||qe;y(He,["useFilters","useGlobalFilter","useGroupBy","usePivotColumns"],"useSortBy");var Tt=a.useCallback(function(ct){Oe({type:u.setSortBy,sortBy:ct})},[Oe]),at=a.useCallback(function(ct,pt,Kt){Oe({type:u.toggleSortBy,columnId:ct,desc:pt,multi:Kt})},[Oe]),Be=w(P);$e.forEach(function(ct){var pt=ct.accessor,Kt=ct.canSort,_t=ct.disableSortBy,qt=ct.id,Nt=pt?b(_t!==!0&&void 0,ze!==!0&&void 0,!0):b(Ee,Kt,!1);ct.canSort=Nt,ct.canSort&&(ct.toggleSortBy=function(ot,zt){return at(ct.id,ot,zt)},ct.clearSortBy=function(){Oe({type:u.clearSortBy,columnId:ct.id})}),ct.getSortByToggleProps=p(Ve().getSortByToggleProps,{instance:Be(),column:ct});var ur=Ne.find(function(ot){return ot.id===qt});ct.isSorted=!!ur,ct.sortedIndex=Ne.findIndex(function(ot){return ot.id===qt}),ct.isSortedDesc=ct.isSorted?ur.desc:void 0});var bt=a.useMemo(function(){if(Ce||!Ne.length)return[V,Q];var ct=[],pt=Ne.filter(function(Kt){return ne.find(function(_t){return _t.id===Kt.id})});return[function Kt(_t){var qt=ie(_t,pt.map(function(Nt){var ur=ne.find(function(Rr){return Rr.id===Nt.id});if(!ur)throw new Error("React-Table: Could not find a column with id: "+Nt.id+" while sorting");var ot=ur.sortType,zt=L(ot)||(ke||{})[ot]||yt[ot];if(!zt)throw new Error("React-Table: Could not find a valid sortType of '"+ot+"' for column '"+Nt.id+"'.");return function(Rr,Ma){return zt(Rr,Ma,Nt.id,Nt.desc)}}),pt.map(function(Nt){var ur=ne.find(function(ot){return ot.id===Nt.id});return ur&&ur.sortInverted?Nt.desc:!Nt.desc}));return qt.forEach(function(Nt){ct.push(Nt),Nt.subRows&&Nt.subRows.length!==0&&(Nt.subRows=Kt(Nt.subRows))}),qt}(V),ct]},[Ce,Ne,V,Q,ne,ie,ke]),Qe=bt[0],vt=bt[1],Pt=w(nt);S(function(){Pt()&&Oe({type:u.resetSortBy})},[Ce?null:W]),Object.assign(P,{preSortedRows:V,preSortedFlatRows:Q,sortedRows:Qe,sortedFlatRows:vt,rows:Qe,flatRows:vt,setSortBy:Tt,toggleSortBy:at})}function xa(P,W,V){return[].concat(P).sort(function(Q,ne){for(var J=0;J<W.length;J+=1){var ie=W[J],ke=V[J]===!1||V[J]==="desc",Ce=ie(Q,ne);if(Ce!==0)return ke?-Ce:Ce}return V[0]?Q.index-ne.index:ne.index-Q.index})}u.resetPage="resetPage",u.gotoPage="gotoPage",u.setPageSize="setPageSize";var Da=function(P){P.stateReducers.push(cn),P.useInstance.push(oi)};function cn(P,W,V,Q){if(W.type===u.init)return o({pageSize:10,pageIndex:0},P);if(W.type===u.resetPage)return o({},P,{pageIndex:Q.initialState.pageIndex||0});if(W.type===u.gotoPage){var ne=Q.pageCount,J=Q.page,ie=_(W.pageIndex,P.pageIndex),ke=!1;return ie>P.pageIndex?ke=ne===-1?J.length>=P.pageSize:ie<ne:ie<P.pageIndex&&(ke=ie>-1),ke?o({},P,{pageIndex:ie}):P}if(W.type===u.setPageSize){var Ce=W.pageSize,Ee=P.pageSize*P.pageIndex;return o({},P,{pageIndex:Math.floor(Ee/Ce),pageSize:Ce})}}function oi(P){var W=P.rows,V=P.autoResetPage,Q=V===void 0||V,ne=P.manualExpandedKey,J=ne===void 0?"expanded":ne,ie=P.plugins,ke=P.pageCount,Ce=P.paginateExpandedRows,Ee=Ce===void 0||Ce,ze=P.expandSubRows,$e=ze===void 0||ze,Ne=P.state,Oe=Ne.pageSize,He=Ne.pageIndex,Ve=Ne.expanded,qe=Ne.globalFilter,nt=Ne.filters,Tt=Ne.groupBy,at=Ne.sortBy,Be=P.dispatch,bt=P.data,Qe=P.manualPagination;y(ie,["useGlobalFilter","useFilters","useGroupBy","useSortBy","useExpanded"],"usePagination");var vt=w(Q);S(function(){vt()&&Be({type:u.resetPage})},[Be,Qe?null:bt,qe,nt,Tt,at]);var Pt=Qe?ke:Math.ceil(W.length/Oe),ct=a.useMemo(function(){return Pt>0?[].concat(new Array(Pt)).fill(null).map(function(zt,Rr){return Rr}):[]},[Pt]),pt=a.useMemo(function(){var zt;if(Qe)zt=W;else{var Rr=Oe*He,Ma=Rr+Oe;zt=W.slice(Rr,Ma)}return Ee?zt:N(zt,{manualExpandedKey:J,expanded:Ve,expandSubRows:$e})},[$e,Ve,J,Qe,He,Oe,Ee,W]),Kt=He>0,_t=Pt===-1?pt.length>=Oe:He<Pt-1,qt=a.useCallback(function(zt){Be({type:u.gotoPage,pageIndex:zt})},[Be]),Nt=a.useCallback(function(){return qt(function(zt){return zt-1})},[qt]),ur=a.useCallback(function(){return qt(function(zt){return zt+1})},[qt]),ot=a.useCallback(function(zt){Be({type:u.setPageSize,pageSize:zt})},[Be]);Object.assign(P,{pageOptions:ct,pageCount:Pt,page:pt,canPreviousPage:Kt,canNextPage:_t,gotoPage:qt,previousPage:Nt,nextPage:ur,setPageSize:ot})}Da.pluginName="usePagination",u.resetPivot="resetPivot",u.togglePivot="togglePivot";var ma=function(P){P.getPivotToggleProps=[si],P.stateReducers.push(mn),P.useInstanceAfterData.push(co),P.allColumns.push(Fu),P.accessValue.push(ju),P.materializedColumns.push(ss),P.materializedColumnsDeps.push(li),P.visibleColumns.push(ls),P.visibleColumnsDeps.push($i),P.useInstance.push(yl),P.prepareRow.push(Ni)};ma.pluginName="usePivotColumns";var Lr=[],si=function(P,W){var V=W.header;return[P,{onClick:V.canPivot?function(Q){Q.persist(),V.togglePivot()}:void 0,style:{cursor:V.canPivot?"pointer":void 0},title:"Toggle Pivot"}]};function mn(P,W,V,Q){if(W.type===u.init)return o({pivotColumns:Lr},P);if(W.type===u.resetPivot)return o({},P,{pivotColumns:Q.initialState.pivotColumns||Lr});if(W.type===u.togglePivot){var ne=W.columnId,J=W.value,ie=J!==void 0?J:!P.pivotColumns.includes(ne);return o({},P,ie?{pivotColumns:[].concat(P.pivotColumns,[ne])}:{pivotColumns:P.pivotColumns.filter(function(ke){return ke!==ne})})}}function co(P){P.allColumns.forEach(function(W){W.isPivotSource=P.state.pivotColumns.includes(W.id)})}function Fu(P,W){var V=W.instance;return P.forEach(function(Q){Q.isPivotSource=V.state.pivotColumns.includes(Q.id),Q.uniqueValues=new Set}),P}function ju(P,W){var V=W.column;return V.uniqueValues&&P!==void 0&&V.uniqueValues.add(P),P}function ss(P,W){var V=W.instance,Q=V.allColumns,ne=V.state;if(!ne.pivotColumns.length||!ne.groupBy||!ne.groupBy.length)return P;var J=ne.pivotColumns.map(function(Ce){return Q.find(function(Ee){return Ee.id===Ce})}).filter(Boolean),ie=Q.filter(function(Ce){return!Ce.isPivotSource&&!ne.groupBy.includes(Ce.id)&&!ne.pivotColumns.includes(Ce.id)}),ke=D(function Ce(Ee,ze,$e){Ee===void 0&&(Ee=0),$e===void 0&&($e=[]);var Ne=J[Ee];return Ne?Array.from(Ne.uniqueValues).sort().map(function(Oe){var He=o({},Ne,{Header:Ne.PivotHeader||typeof Ne.header=="string"?Ne.Header+": "+Oe:Oe,isPivotGroup:!0,parent:ze,depth:Ee,id:ze?ze.id+"."+Ne.id+"."+Oe:Ne.id+"."+Oe,pivotValue:Oe});return He.columns=Ce(Ee+1,He,[].concat($e,[function(Ve){return Ve.values[Ne.id]===Oe}])),He}):ie.map(function(Oe){return o({},Oe,{canPivot:!1,isPivoted:!0,parent:ze,depth:Ee,id:""+(ze?ze.id+"."+Oe.id:Oe.id),accessor:function(He,Ve,qe){if($e.every(function(nt){return nt(qe)}))return qe.values[Oe.id]}})})}());return[].concat(P,ke)}function li(P,W){var V=W.instance.state,Q=V.pivotColumns,ne=V.groupBy;return[].concat(P,[Q,ne])}function ls(P,W){var V=W.instance.state;return P=P.filter(function(Q){return!Q.isPivotSource}),V.pivotColumns.length&&V.groupBy&&V.groupBy.length&&(P=P.filter(function(Q){return Q.isGrouped||Q.isPivoted})),P}function $i(P,W){var V=W.instance;return[].concat(P,[V.state.pivotColumns,V.state.groupBy])}function yl(P){var W=P.columns,V=P.allColumns,Q=P.flatHeaders,ne=P.getHooks,J=P.plugins,ie=P.dispatch,ke=P.autoResetPivot,Ce=ke===void 0||ke,Ee=P.manaulPivot,ze=P.disablePivot,$e=P.defaultCanPivot;y(J,["useGroupBy"],"usePivotColumns");var Ne=w(P);V.forEach(function(He){var Ve=He.accessor,qe=He.defaultPivot,nt=He.disablePivot;He.canPivot=Ve?b(He.canPivot,nt!==!0&&void 0,ze!==!0&&void 0,!0):b(He.canPivot,qe,$e,!1),He.canPivot&&(He.togglePivot=function(){return P.togglePivot(He.id)}),He.Aggregated=He.Aggregated||He.Cell}),Q.forEach(function(He){He.getPivotToggleProps=p(ne().getPivotToggleProps,{instance:Ne(),header:He})});var Oe=w(Ce);S(function(){Oe()&&ie({type:u.resetPivot})},[ie,Ee?null:W]),Object.assign(P,{togglePivot:function(He,Ve){ie({type:u.togglePivot,columnId:He,value:Ve})}})}function Ni(P){P.allCells.forEach(function(W){W.isPivoted=W.column.isPivoted})}u.resetSelectedRows="resetSelectedRows",u.toggleAllRowsSelected="toggleAllRowsSelected",u.toggleRowSelected="toggleRowSelected",u.toggleAllPageRowsSelected="toggleAllPageRowsSelected";var tg=function(P){P.getToggleRowSelectedProps=[G0],P.getToggleAllRowsSelectedProps=[q0],P.getToggleAllPageRowsSelectedProps=[K0],P.stateReducers.push(rg),P.useInstance.push(Z0),P.prepareRow.push(Q0)};tg.pluginName="useRowSelect";var G0=function(P,W){var V=W.instance,Q=W.row,ne=V.manualRowSelectedKey,J=ne===void 0?"isSelected":ne;return[P,{onChange:function(ie){Q.toggleRowSelected(ie.target.checked)},style:{cursor:"pointer"},checked:!(!Q.original||!Q.original[J])||Q.isSelected,title:"Toggle Row Selected",indeterminate:Q.isSomeSelected}]},q0=function(P,W){var V=W.instance;return[P,{onChange:function(Q){V.toggleAllRowsSelected(Q.target.checked)},style:{cursor:"pointer"},checked:V.isAllRowsSelected,title:"Toggle All Rows Selected",indeterminate:!!(!V.isAllRowsSelected&&Object.keys(V.state.selectedRowIds).length)}]},K0=function(P,W){var V=W.instance;return[P,{onChange:function(Q){V.toggleAllPageRowsSelected(Q.target.checked)},style:{cursor:"pointer"},checked:V.isAllPageRowsSelected,title:"Toggle All Current Page Rows Selected",indeterminate:!!(!V.isAllPageRowsSelected&&V.page.some(function(Q){var ne=Q.id;return V.state.selectedRowIds[ne]}))}]};function rg(P,W,V,Q){if(W.type===u.init)return o({selectedRowIds:{}},P);if(W.type===u.resetSelectedRows)return o({},P,{selectedRowIds:Q.initialState.selectedRowIds||{}});if(W.type===u.toggleAllRowsSelected){var ne=W.value,J=Q.isAllRowsSelected,ie=Q.rowsById,ke=Q.nonGroupedRowsById,Ce=ke===void 0?ie:ke,Ee=ne!==void 0?ne:!J,ze=Object.assign({},P.selectedRowIds);return Ee?Object.keys(Ce).forEach(function(qt){ze[qt]=!0}):Object.keys(Ce).forEach(function(qt){delete ze[qt]}),o({},P,{selectedRowIds:ze})}if(W.type===u.toggleRowSelected){var $e=W.id,Ne=W.value,Oe=Q.rowsById,He=Q.selectSubRows,Ve=He===void 0||He,qe=Q.getSubRows,nt=P.selectedRowIds[$e],Tt=Ne!==void 0?Ne:!nt;if(nt===Tt)return P;var at=o({},P.selectedRowIds);return function qt(Nt){var ur=Oe[Nt];if(ur&&(ur.isGrouped||(Tt?at[Nt]=!0:delete at[Nt]),Ve&&qe(ur)))return qe(ur).forEach(function(ot){return qt(ot.id)})}($e),o({},P,{selectedRowIds:at})}if(W.type===u.toggleAllPageRowsSelected){var Be=W.value,bt=Q.page,Qe=Q.rowsById,vt=Q.selectSubRows,Pt=vt===void 0||vt,ct=Q.isAllPageRowsSelected,pt=Q.getSubRows,Kt=Be!==void 0?Be:!ct,_t=o({},P.selectedRowIds);return bt.forEach(function(qt){return function Nt(ur){var ot=Qe[ur];if(ot.isGrouped||(Kt?_t[ur]=!0:delete _t[ur]),Pt&&pt(ot))return pt(ot).forEach(function(zt){return Nt(zt.id)})}(qt.id)}),o({},P,{selectedRowIds:_t})}return P}function Z0(P){var W=P.data,V=P.rows,Q=P.getHooks,ne=P.plugins,J=P.rowsById,ie=P.nonGroupedRowsById,ke=ie===void 0?J:ie,Ce=P.autoResetSelectedRows,Ee=Ce===void 0||Ce,ze=P.state.selectedRowIds,$e=P.selectSubRows,Ne=$e===void 0||$e,Oe=P.dispatch,He=P.page,Ve=P.getSubRows;y(ne,["useFilters","useGroupBy","useSortBy","useExpanded","usePagination"],"useRowSelect");var qe=a.useMemo(function(){var pt=[];return V.forEach(function(Kt){var _t=Ne?function qt(Nt,ur,ot){if(ur[Nt.id])return!0;var zt=ot(Nt);if(zt&&zt.length){var Rr=!0,Ma=!1;return zt.forEach(function(mt){Ma&&!Rr||(qt(mt,ur,ot)?Ma=!0:Rr=!1)}),!!Rr||!!Ma&&null}return!1}(Kt,ze,Ve):!!ze[Kt.id];Kt.isSelected=!!_t,Kt.isSomeSelected=_t===null,_t&&pt.push(Kt)}),pt},[V,Ne,ze,Ve]),nt=!!(Object.keys(ke).length&&Object.keys(ze).length),Tt=nt;nt&&Object.keys(ke).some(function(pt){return!ze[pt]})&&(nt=!1),nt||He&&He.length&&He.some(function(pt){var Kt=pt.id;return!ze[Kt]})&&(Tt=!1);var at=w(Ee);S(function(){at()&&Oe({type:u.resetSelectedRows})},[Oe,W]);var Be=a.useCallback(function(pt){return Oe({type:u.toggleAllRowsSelected,value:pt})},[Oe]),bt=a.useCallback(function(pt){return Oe({type:u.toggleAllPageRowsSelected,value:pt})},[Oe]),Qe=a.useCallback(function(pt,Kt){return Oe({type:u.toggleRowSelected,id:pt,value:Kt})},[Oe]),vt=w(P),Pt=p(Q().getToggleAllRowsSelectedProps,{instance:vt()}),ct=p(Q().getToggleAllPageRowsSelectedProps,{instance:vt()});Object.assign(P,{selectedFlatRows:qe,isAllRowsSelected:nt,isAllPageRowsSelected:Tt,toggleRowSelected:Qe,toggleAllRowsSelected:Be,getToggleAllRowsSelectedProps:Pt,getToggleAllPageRowsSelectedProps:ct,toggleAllPageRowsSelected:bt})}function Q0(P,W){var V=W.instance;P.toggleRowSelected=function(Q){return V.toggleRowSelected(P.id,Q)},P.getToggleRowSelectedProps=p(V.getHooks().getToggleRowSelectedProps,{instance:V,row:P})}var _m=function(P){return{}},_l=function(P){return{}};u.setRowState="setRowState",u.setCellState="setCellState",u.resetRowState="resetRowState";var mo=function(P){P.stateReducers.push(Y0),P.useInstance.push(X0),P.prepareRow.push(Fi)};function Y0(P,W,V,Q){var ne=Q.initialRowStateAccessor,J=ne===void 0?_m:ne,ie=Q.initialCellStateAccessor,ke=ie===void 0?_l:ie,Ce=Q.rowsById;if(W.type===u.init)return o({rowState:{}},P);if(W.type===u.resetRowState)return o({},P,{rowState:Q.initialState.rowState||{}});if(W.type===u.setRowState){var Ee,ze=W.rowId,$e=W.value,Ne=P.rowState[ze]!==void 0?P.rowState[ze]:J(Ce[ze]);return o({},P,{rowState:o({},P.rowState,(Ee={},Ee[ze]=_($e,Ne),Ee))})}if(W.type===u.setCellState){var Oe,He,Ve,qe,nt,Tt=W.rowId,at=W.columnId,Be=W.value,bt=P.rowState[Tt]!==void 0?P.rowState[Tt]:J(Ce[Tt]),Qe=(bt==null||(Oe=bt.cellState)==null?void 0:Oe[at])!==void 0?bt.cellState[at]:ke((He=Ce[Tt])==null||(Ve=He.cells)==null?void 0:Ve.find(function(vt){return vt.column.id===at}));return o({},P,{rowState:o({},P.rowState,(nt={},nt[Tt]=o({},bt,{cellState:o({},bt.cellState||{},(qe={},qe[at]=_(Be,Qe),qe))}),nt))})}}function X0(P){var W=P.autoResetRowState,V=W===void 0||W,Q=P.data,ne=P.dispatch,J=a.useCallback(function(Ce,Ee){return ne({type:u.setRowState,rowId:Ce,value:Ee})},[ne]),ie=a.useCallback(function(Ce,Ee,ze){return ne({type:u.setCellState,rowId:Ce,columnId:Ee,value:ze})},[ne]),ke=w(V);S(function(){ke()&&ne({type:u.resetRowState})},[Q]),Object.assign(P,{setRowState:J,setCellState:ie})}function Fi(P,W){var V=W.instance,Q=V.initialRowStateAccessor,ne=Q===void 0?_m:Q,J=V.initialCellStateAccessor,ie=J===void 0?_l:J,ke=V.state.rowState;P&&(P.state=ke[P.id]!==void 0?ke[P.id]:ne(P),P.setState=function(Ce){return V.setRowState(P.id,Ce)},P.cells.forEach(function(Ce){P.state.cellState||(P.state.cellState={}),Ce.state=P.state.cellState[Ce.column.id]!==void 0?P.state.cellState[Ce.column.id]:ie(Ce),Ce.setState=function(Ee){return V.setCellState(P.id,Ce.column.id,Ee)}}))}mo.pluginName="useRowState",u.resetColumnOrder="resetColumnOrder",u.setColumnOrder="setColumnOrder";var ag=function(P){P.stateReducers.push(J0),P.visibleColumnsDeps.push(function(W,V){var Q=V.instance;return[].concat(W,[Q.state.columnOrder])}),P.visibleColumns.push(ek),P.useInstance.push(tk)};function J0(P,W,V,Q){return W.type===u.init?o({columnOrder:[]},P):W.type===u.resetColumnOrder?o({},P,{columnOrder:Q.initialState.columnOrder||[]}):W.type===u.setColumnOrder?o({},P,{columnOrder:_(W.columnOrder,P.columnOrder)}):void 0}function ek(P,W){var V=W.instance.state.columnOrder;if(!V||!V.length)return P;for(var Q=[].concat(V),ne=[].concat(P),J=[],ie=function(){var ke=Q.shift(),Ce=ne.findIndex(function(Ee){return Ee.id===ke});Ce>-1&&J.push(ne.splice(Ce,1)[0])};ne.length&&Q.length;)ie();return[].concat(J,ne)}function tk(P){var W=P.dispatch;P.setColumnOrder=a.useCallback(function(V){return W({type:u.setColumnOrder,columnOrder:V})},[W])}ag.pluginName="useColumnOrder",m.canResize=!0,u.columnStartResizing="columnStartResizing",u.columnResizing="columnResizing",u.columnDoneResizing="columnDoneResizing",u.resetResize="resetResize";var ng=function(P){P.getResizerProps=[ho],P.getHeaderProps.push({style:{position:"relative"}}),P.stateReducers.push(ig),P.useInstance.push(Hu),P.useInstanceBeforeDimensions.push(rk)},ho=function(P,W){var V=W.instance,Q=W.header,ne=V.dispatch,J=function(ie,ke){var Ce=!1;if(ie.type==="touchstart"){if(ie.touches&&ie.touches.length>1)return;Ce=!0}var Ee,ze,$e=function(at){var Be=[];return function bt(Qe){Qe.columns&&Qe.columns.length&&Qe.columns.map(bt),Be.push(Qe)}(at),Be}(ke).map(function(at){return[at.id,at.totalWidth]}),Ne=Ce?Math.round(ie.touches[0].clientX):ie.clientX,Oe=function(){window.cancelAnimationFrame(Ee),Ee=null,ne({type:u.columnDoneResizing})},He=function(){window.cancelAnimationFrame(Ee),Ee=null,ne({type:u.columnResizing,clientX:ze})},Ve=function(at){ze=at,Ee||(Ee=window.requestAnimationFrame(He))},qe={mouse:{moveEvent:"mousemove",moveHandler:function(at){return Ve(at.clientX)},upEvent:"mouseup",upHandler:function(at){document.removeEventListener("mousemove",qe.mouse.moveHandler),document.removeEventListener("mouseup",qe.mouse.upHandler),Oe()}},touch:{moveEvent:"touchmove",moveHandler:function(at){return at.cancelable&&(at.preventDefault(),at.stopPropagation()),Ve(at.touches[0].clientX),!1},upEvent:"touchend",upHandler:function(at){document.removeEventListener(qe.touch.moveEvent,qe.touch.moveHandler),document.removeEventListener(qe.touch.upEvent,qe.touch.moveHandler),Oe()}}},nt=Ce?qe.touch:qe.mouse,Tt=!!function(){if(typeof j=="boolean")return j;var at=!1;try{var Be={get passive(){return at=!0,!1}};window.addEventListener("test",null,Be),window.removeEventListener("test",null,Be)}catch{at=!1}return j=at}()&&{passive:!1};document.addEventListener(nt.moveEvent,nt.moveHandler,Tt),document.addEventListener(nt.upEvent,nt.upHandler,Tt),ne({type:u.columnStartResizing,columnId:ke.id,columnWidth:ke.totalWidth,headerIdWidths:$e,clientX:Ne})};return[P,{onMouseDown:function(ie){return ie.persist()||J(ie,Q)},onTouchStart:function(ie){return ie.persist()||J(ie,Q)},style:{cursor:"col-resize"},draggable:!1,role:"separator"}]};function ig(P,W){if(W.type===u.init)return o({columnResizing:{columnWidths:{}}},P);if(W.type===u.resetResize)return o({},P,{columnResizing:{columnWidths:{}}});if(W.type===u.columnStartResizing){var V=W.clientX,Q=W.columnId,ne=W.columnWidth,J=W.headerIdWidths;return o({},P,{columnResizing:o({},P.columnResizing,{startX:V,headerIdWidths:J,columnWidth:ne,isResizingColumn:Q})})}if(W.type===u.columnResizing){var ie=W.clientX,ke=P.columnResizing,Ce=ke.startX,Ee=ke.columnWidth,ze=ke.headerIdWidths,$e=(ie-Ce)/Ee,Ne={};return(ze===void 0?[]:ze).forEach(function(Oe){var He=Oe[0],Ve=Oe[1];Ne[He]=Math.max(Ve+Ve*$e,0)}),o({},P,{columnResizing:o({},P.columnResizing,{columnWidths:o({},P.columnResizing.columnWidths,{},Ne)})})}return W.type===u.columnDoneResizing?o({},P,{columnResizing:o({},P.columnResizing,{startX:null,isResizingColumn:null})}):void 0}ng.pluginName="useResizeColumns";var rk=function(P){var W=P.flatHeaders,V=P.disableResizing,Q=P.getHooks,ne=P.state.columnResizing,J=w(P);W.forEach(function(ie){var ke=b(ie.disableResizing!==!0&&void 0,V!==!0&&void 0,!0);ie.canResize=ke,ie.width=ne.columnWidths[ie.id]||ie.originalWidth||ie.width,ie.isResizing=ne.isResizingColumn===ie.id,ke&&(ie.getResizerProps=p(Q().getResizerProps,{instance:J(),header:ie}))})};function Hu(P){var W=P.plugins,V=P.dispatch,Q=P.autoResetResize,ne=Q===void 0||Q,J=P.columns;y(W,["useAbsoluteLayout"],"useResizeColumns");var ie=w(ne);S(function(){ie()&&V({type:u.resetResize})},[J]);var ke=a.useCallback(function(){return V({type:u.resetResize})},[V]);Object.assign(P,{resetResizing:ke})}var bm={position:"absolute",top:0},Bu=function(P){P.getTableBodyProps.push(Wu),P.getRowProps.push(Wu),P.getHeaderGroupProps.push(Wu),P.getFooterGroupProps.push(Wu),P.getHeaderProps.push(function(W,V){var Q=V.column;return[W,{style:o({},bm,{left:Q.totalLeft+"px",width:Q.totalWidth+"px"})}]}),P.getCellProps.push(function(W,V){var Q=V.cell;return[W,{style:o({},bm,{left:Q.column.totalLeft+"px",width:Q.column.totalWidth+"px"})}]}),P.getFooterProps.push(function(W,V){var Q=V.column;return[W,{style:o({},bm,{left:Q.totalLeft+"px",width:Q.totalWidth+"px"})}]})};Bu.pluginName="useAbsoluteLayout";var Wu=function(P,W){return[P,{style:{position:"relative",width:W.instance.totalColumnsWidth+"px"}}]},Uu={display:"inline-block",boxSizing:"border-box"},Vu=function(P,W){return[P,{style:{display:"flex",width:W.instance.totalColumnsWidth+"px"}}]},wm=function(P){P.getRowProps.push(Vu),P.getHeaderGroupProps.push(Vu),P.getFooterGroupProps.push(Vu),P.getHeaderProps.push(function(W,V){var Q=V.column;return[W,{style:o({},Uu,{width:Q.totalWidth+"px"})}]}),P.getCellProps.push(function(W,V){var Q=V.cell;return[W,{style:o({},Uu,{width:Q.column.totalWidth+"px"})}]}),P.getFooterProps.push(function(W,V){var Q=V.column;return[W,{style:o({},Uu,{width:Q.totalWidth+"px"})}]})};function us(P){P.getTableProps.push(og),P.getRowProps.push(km),P.getHeaderGroupProps.push(km),P.getFooterGroupProps.push(km),P.getHeaderProps.push(ak),P.getCellProps.push(nk),P.getFooterProps.push(te)}wm.pluginName="useBlockLayout",us.pluginName="useFlexLayout";var og=function(P,W){return[P,{style:{minWidth:W.instance.totalColumnsMinWidth+"px"}}]},km=function(P,W){return[P,{style:{display:"flex",flex:"1 0 auto",minWidth:W.instance.totalColumnsMinWidth+"px"}}]},ak=function(P,W){var V=W.column;return[P,{style:{boxSizing:"border-box",flex:V.totalFlexWidth?V.totalFlexWidth+" 0 auto":void 0,minWidth:V.totalMinWidth+"px",width:V.totalWidth+"px"}}]},nk=function(P,W){var V=W.cell;return[P,{style:{boxSizing:"border-box",flex:V.column.totalFlexWidth+" 0 auto",minWidth:V.column.totalMinWidth+"px",width:V.column.totalWidth+"px"}}]},te=function(P,W){var V=W.column;return[P,{style:{boxSizing:"border-box",flex:V.totalFlexWidth?V.totalFlexWidth+" 0 auto":void 0,minWidth:V.totalMinWidth+"px",width:V.totalWidth+"px"}}]};function ve(P){P.stateReducers.push(At),P.getTableProps.push(Pe),P.getHeaderProps.push(Ke),P.getRowProps.push(mr)}u.columnStartResizing="columnStartResizing",u.columnResizing="columnResizing",u.columnDoneResizing="columnDoneResizing",u.resetResize="resetResize",ve.pluginName="useGridLayout";var Pe=function(P,W){var V=W.instance;return[P,{style:{display:"grid",gridTemplateColumns:V.visibleColumns.map(function(Q){var ne;return V.state.gridLayout.columnWidths[Q.id]?V.state.gridLayout.columnWidths[Q.id]+"px":(ne=V.state.columnResizing)!=null&&ne.isResizingColumn?V.state.gridLayout.startWidths[Q.id]+"px":typeof Q.width=="number"?Q.width+"px":Q.width}).join(" ")}}]},Ke=function(P,W){var V=W.column;return[P,{id:"header-cell-"+V.id,style:{position:"sticky",gridColumn:"span "+V.totalVisibleHeaderCount}}]},mr=function(P,W){var V=W.row;return V.isExpanded?[P,{style:{gridColumn:"1 / "+(V.cells.length+1)}}]:[P,{}]};function At(P,W,V,Q){if(W.type===u.init)return o({gridLayout:{columnWidths:{}}},P);if(W.type===u.resetResize)return o({},P,{gridLayout:{columnWidths:{}}});if(W.type===u.columnStartResizing){var ne=W.columnId,J=W.headerIdWidths,ie=fr(ne);if(ie!==void 0){var ke=Q.visibleColumns.reduce(function(Be,bt){var Qe;return o({},Be,((Qe={})[bt.id]=fr(bt.id),Qe))},{}),Ce=Q.visibleColumns.reduce(function(Be,bt){var Qe;return o({},Be,((Qe={})[bt.id]=bt.minWidth,Qe))},{}),Ee=Q.visibleColumns.reduce(function(Be,bt){var Qe;return o({},Be,((Qe={})[bt.id]=bt.maxWidth,Qe))},{}),ze=J.map(function(Be){var bt=Be[0];return[bt,fr(bt)]});return o({},P,{gridLayout:o({},P.gridLayout,{startWidths:ke,minWidths:Ce,maxWidths:Ee,headerIdGridWidths:ze,columnWidth:ie})})}return P}if(W.type===u.columnResizing){var $e=W.clientX,Ne=P.columnResizing.startX,Oe=P.gridLayout,He=Oe.columnWidth,Ve=Oe.minWidths,qe=Oe.maxWidths,nt=Oe.headerIdGridWidths,Tt=($e-Ne)/He,at={};return(nt===void 0?[]:nt).forEach(function(Be){var bt=Be[0],Qe=Be[1];at[bt]=Math.min(Math.max(Ve[bt],Qe+Qe*Tt),qe[bt])}),o({},P,{gridLayout:o({},P.gridLayout,{columnWidths:o({},P.gridLayout.columnWidths,{},at)})})}return W.type===u.columnDoneResizing?o({},P,{gridLayout:o({},P.gridLayout,{startWidths:{},minWidths:{},maxWidths:{}})}):void 0}function fr(P){var W,V=(W=document.getElementById("header-cell-"+P))==null?void 0:W.offsetWidth;if(V!==void 0)return V}r._UNSTABLE_usePivotColumns=ma,r.actions=u,r.defaultColumn=m,r.defaultGroupByFn=Rt,r.defaultOrderByFn=xa,r.defaultRenderer=d,r.emptyRenderer=c,r.ensurePluginOrder=y,r.flexRender=T,r.functionalUpdate=_,r.loopHooks=v,r.makePropGetter=p,r.makeRenderer=A,r.reduceHooks=f,r.safeUseLayoutEffect=k,r.useAbsoluteLayout=Bu,r.useAsyncDebounce=function(P,W){W===void 0&&(W=0);var V=a.useRef({}),Q=w(P),ne=w(W);return a.useCallback(function(){var J=i(regeneratorRuntime.mark(function ie(){var ke,Ce,Ee,ze=arguments;return regeneratorRuntime.wrap(function($e){for(;;)switch($e.prev=$e.next){case 0:for(ke=ze.length,Ce=new Array(ke),Ee=0;Ee<ke;Ee++)Ce[Ee]=ze[Ee];return V.current.promise||(V.current.promise=new Promise(function(Ne,Oe){V.current.resolve=Ne,V.current.reject=Oe})),V.current.timeout&&clearTimeout(V.current.timeout),V.current.timeout=setTimeout(i(regeneratorRuntime.mark(function Ne(){return regeneratorRuntime.wrap(function(Oe){for(;;)switch(Oe.prev=Oe.next){case 0:return delete V.current.timeout,Oe.prev=1,Oe.t0=V.current,Oe.next=5,Q().apply(void 0,Ce);case 5:Oe.t1=Oe.sent,Oe.t0.resolve.call(Oe.t0,Oe.t1),Oe.next=12;break;case 9:Oe.prev=9,Oe.t2=Oe.catch(1),V.current.reject(Oe.t2);case 12:return Oe.prev=12,delete V.current.promise,Oe.finish(12);case 15:case"end":return Oe.stop()}},Ne,null,[[1,9,12,15]])})),ne()),$e.abrupt("return",V.current.promise);case 5:case"end":return $e.stop()}},ie)}));return function(){return J.apply(this,arguments)}}(),[Q,ne])},r.useBlockLayout=wm,r.useColumnOrder=ag,r.useExpanded=Re,r.useFilters=is,r.useFlexLayout=us,r.useGetLatest=w,r.useGlobalFilter=Ln,r.useGridLayout=ve,r.useGroupBy=ee,r.useMountedLayoutEffect=S,r.usePagination=Da,r.useResizeColumns=ng,r.useRowSelect=tg,r.useRowState=mo,r.useSortBy=Bt,r.useTable=function(P){for(var W=arguments.length,V=new Array(W>1?W-1:0),Q=1;Q<W;Q++)V[Q-1]=arguments[Q];P=xe(P),V=[Ie].concat(V);var ne=a.useRef({}),J=w(ne.current);Object.assign(J(),o({},P,{plugins:V,hooks:ye()})),V.filter(Boolean).forEach(function(mt){mt(J().hooks)});var ie=w(J().hooks);J().getHooks=ie,delete J().hooks,Object.assign(J(),f(ie().useOptions,xe(P)));var ke=J(),Ce=ke.data,Ee=ke.columns,ze=ke.initialState,$e=ke.defaultColumn,Ne=ke.getSubRows,Oe=ke.getRowId,He=ke.stateReducer,Ve=ke.useControlledState,qe=w(He),nt=a.useCallback(function(mt,Sr){if(!Sr.type)throw console.info({action:Sr}),new Error("Unknown Action 👆");return[].concat(ie().stateReducers,Array.isArray(qe())?qe():[qe()]).reduce(function(Gr,Oa){return Oa(Gr,Sr,mt,J())||Gr},mt)},[ie,qe,J]),Tt=a.useReducer(nt,void 0,function(){return nt(ze,{type:u.init})}),at=Tt[0],Be=Tt[1],bt=f([].concat(ie().useControlledState,[Ve]),at,{instance:J()});Object.assign(J(),{state:bt,dispatch:Be});var Qe=a.useMemo(function(){return E(f(ie().columns,Ee,{instance:J()}))},[ie,J,Ee].concat(f(ie().columnsDeps,[],{instance:J()})));J().columns=Qe;var vt=a.useMemo(function(){return f(ie().allColumns,D(Qe),{instance:J()}).map(I)},[Qe,ie,J].concat(f(ie().allColumnsDeps,[],{instance:J()})));J().allColumns=vt;var Pt=a.useMemo(function(){for(var mt=[],Sr=[],Gr={},Oa=[].concat(vt);Oa.length;){var oa=Oa.shift();De({data:Ce,rows:mt,flatRows:Sr,rowsById:Gr,column:oa,getRowId:Oe,getSubRows:Ne,accessValueHooks:ie().accessValue,getInstance:J})}return[mt,Sr,Gr]},[vt,Ce,Oe,Ne,ie,J]),ct=Pt[0],pt=Pt[1],Kt=Pt[2];Object.assign(J(),{rows:ct,initialRows:[].concat(ct),flatRows:pt,rowsById:Kt}),v(ie().useInstanceAfterData,J());var _t=a.useMemo(function(){return f(ie().visibleColumns,vt,{instance:J()}).map(function(mt){return x(mt,$e)})},[ie,vt,J,$e].concat(f(ie().visibleColumnsDeps,[],{instance:J()})));vt=a.useMemo(function(){var mt=[].concat(_t);return vt.forEach(function(Sr){mt.find(function(Gr){return Gr.id===Sr.id})||mt.push(Sr)}),mt},[vt,_t]),J().allColumns=vt;var qt=a.useMemo(function(){return f(ie().headerGroups,O(_t,$e),J())},[ie,_t,$e,J].concat(f(ie().headerGroupsDeps,[],{instance:J()})));J().headerGroups=qt;var Nt=a.useMemo(function(){return qt.length?qt[0].headers:[]},[qt]);J().headers=Nt,J().flatHeaders=qt.reduce(function(mt,Sr){return[].concat(mt,Sr.headers)},[]),v(ie().useInstanceBeforeDimensions,J());var ur=_t.filter(function(mt){return mt.isVisible}).map(function(mt){return mt.id}).sort().join("_");_t=a.useMemo(function(){return _t.filter(function(mt){return mt.isVisible})},[_t,ur]),J().visibleColumns=_t;var ot=me(Nt),zt=ot[0],Rr=ot[1],Ma=ot[2];return J().totalColumnsMinWidth=zt,J().totalColumnsWidth=Rr,J().totalColumnsMaxWidth=Ma,v(ie().useInstance,J()),[].concat(J().flatHeaders,J().allColumns).forEach(function(mt){mt.render=A(J(),mt),mt.getHeaderProps=p(ie().getHeaderProps,{instance:J(),column:mt}),mt.getFooterProps=p(ie().getFooterProps,{instance:J(),column:mt})}),J().headerGroups=a.useMemo(function(){return qt.filter(function(mt,Sr){return mt.headers=mt.headers.filter(function(Gr){return Gr.headers?function Oa(oa){return oa.filter(function(ds){return ds.headers?Oa(ds.headers):ds.isVisible}).length}(Gr.headers):Gr.isVisible}),!!mt.headers.length&&(mt.getHeaderGroupProps=p(ie().getHeaderGroupProps,{instance:J(),headerGroup:mt,index:Sr}),mt.getFooterGroupProps=p(ie().getFooterGroupProps,{instance:J(),headerGroup:mt,index:Sr}),!0)})},[qt,J,ie]),J().footerGroups=[].concat(J().headerGroups).reverse(),J().prepareRow=a.useCallback(function(mt){mt.getRowProps=p(ie().getRowProps,{instance:J(),row:mt}),mt.allCells=vt.map(function(Sr){var Gr=mt.values[Sr.id],Oa={column:Sr,row:mt,value:Gr};return Oa.getCellProps=p(ie().getCellProps,{instance:J(),cell:Oa}),Oa.render=A(J(),Sr,{row:mt,cell:Oa,value:Gr}),Oa}),mt.cells=_t.map(function(Sr){return mt.allCells.find(function(Gr){return Gr.column.id===Sr.id})}),v(ie().prepareRow,mt,{instance:J()})},[ie,J,vt,_t]),J().getTableProps=p(ie().getTableProps,{instance:J()}),J().getTableBodyProps=p(ie().getTableBodyProps,{instance:J()}),v(ie().useFinalInstance,J()),J()},Object.defineProperty(r,"__esModule",{value:!0})})})(pI,pI.exports);var QAt=pI.exports;ute.exports=QAt;var Ey=ute.exports;function dte({globalFilter:e,setGlobalFilter:t}){const[r,a]=q.useState(e),n=Ey.useAsyncDebounce(s=>{t(s)},200),{t:i}=Ot(["common"]),o=()=>{a(""),t("")};return C.jsxs("div",{className:"input-group",children:[C.jsx("input",{type:"text",className:"form-control",value:r||"",onChange:s=>{a(s.target.value),n(s.target.value)},placeholder:i("common:enter_search_criteria")}),C.jsx("button",{className:"btn btn-outline-secondary",type:"button",onClick:o,children:C.jsx("i",{className:"fa fa-times"})})]})}const YAt="z2m-",NO=e=>`${YAt}${e}`,cte=(e,t)=>{Mw.set(NO(e),t)},XAt=e=>Mw.get(e),JAt=(e,t,r,a)=>{if(a){const{instanceId:n}=a,{sortBy:i,globalFilter:o}=e;cte(n,{sortBy:i,globalFilter:o})}return e},U0=({columns:e,data:t,id:r,initialState:a={}})=>{const n=Mw.get(NO(r))||a,{getTableProps:i,getTableBodyProps:o,headerGroups:s,rows:l,prepareRow:u,state:d,visibleColumns:c,setGlobalFilter:m}=Ey.useTable({instanceId:r,stateReducer:JAt,columns:e,data:t,autoResetSortBy:!1,autoResetFilters:!1,initialState:n},Ey.useGlobalFilter,Ey.useSortBy);return C.jsxs("table",{...i(),className:"table responsive",children:[C.jsxs("thead",{children:[C.jsx("tr",{children:C.jsx("th",{colSpan:c.length+1,children:C.jsx(dte,{globalFilter:d.globalFilter,setGlobalFilter:m})})}),s.map((h,p)=>X.createElement("tr",{...h.getHeaderGroupProps(),key:p},C.jsx("th",{className:"text-nowrap",children:"#"}),h.headers.map(f=>X.createElement("th",{className:"text-nowrap",...f.getHeaderProps(f.getSortByToggleProps()),key:f.id},C.jsx("span",{className:Ue({"btn-link me-1":f.canSort}),children:f.render("Header")}),C.jsx("span",{children:C.jsx("i",{className:Ue("fa",{"fa-sort-amount-down invisible":!f.isSorted,"fa-sort-amount-down-alt":f.isSorted&&!f.isSortedDesc,"fa-sort-amount-down":f.isSorted&&f.isSortedDesc})})})))))]}),C.jsx("tbody",{...o(),children:l.map((h,p)=>(u(h),X.createElement("tr",{...h.getRowProps(),key:h.id},C.jsx("td",{children:C.jsx("div",{className:"font-weight-bold",children:p+1})}),h.cells.map(f=>X.createElement("td",{...f.getCellProps(),key:f.column.id},f.render("Cell"))))))})]})};class eTt extends X.Component{constructor(){super(...arguments),this.onIdentifyClick=t=>{const{touchlinkIdentify:r}=this.props;r(t)},this.onResetClick=t=>{const{touchlinkReset:r}=this.props;r(t)}}renderTouchlinkDevices(){const{touchlinkDevices:t,devices:r,touchlinkIdentifyInProgress:a,touchlinkResetInProgress:n,t:i}=this.props,o=a||n,s=[{Header:i("zigbee:ieee_address"),accessor:l=>l.ieee_address,Cell:({row:{original:l}})=>r[l.ieee_address]?C.jsx(Qs,{to:Ow(l.ieee_address),children:l.ieee_address}):l.ieee_address},{Header:i("zigbee:friendly_name"),accessor:l=>{var u;return(u=r[l.ieee_address])==null?void 0:u.friendly_name}},{id:"channel",Header:i("zigbee:channel"),accessor:"channel"},{id:"actions",Header:"",Cell:({row:{original:l}})=>C.jsxs("div",{className:"btn-group float-right",role:"group","aria-label":"Basic example",children:[C.jsx(lt,{disabled:o,item:l,title:i("identify"),className:"btn btn-primary",onClick:this.onIdentifyClick,children:C.jsx("i",{className:Ue("fa",{"fa-exclamation-triangle":!a,"fas fa-circle-notch fa-spin":a})})}),C.jsx(lt,{disabled:o,item:l,title:i("factory_reset"),className:"btn btn-danger",onClick:this.onResetClick,children:C.jsx("i",{className:Ue("fa",{"fa-broom":!n,"fas fa-circle-notch fa-spin":n})})})]})}];return C.jsx("div",{className:"table-responsive",children:C.jsx(U0,{id:"touchlinkDevices",columns:s,data:t})})}renderNoDevices(){const{touchlinkScan:t,t:r}=this.props;return C.jsx(lt,{className:"btn btn-primary mx-auto d-block",onClick:t,children:r("scan")})}render(){const{touchlinkDevices:t,touchlinkScanInProgress:r,touchlinkScan:a,t:n}=this.props;return C.jsxs("div",{className:"card",children:[C.jsxs("div",{className:"card-header allign-middle",children:[n("detected_devices_message",{count:t.length}),C.jsx(lt,{title:n("rescan"),className:"btn btn-primary btn-sm float-right",onClick:a,children:C.jsx("i",{className:"fa fa-sync"})})]}),C.jsx("div",{className:"card-body",children:r?C.jsx("div",{className:"d-flex justify-content-center",children:C.jsx("div",{className:"spinner-border",role:"status",children:C.jsx("span",{className:"sr-only",children:n("common:loading")})})}):t.length===0?this.renderNoDevices():this.renderTouchlinkDevices()})]})}}const tTt=["touchlinkDevices","devices","touchlinkScanInProgress","touchlinkIdentifyInProgress","touchlinkResetInProgress"],rTt=Ur(["touchlink","zigbee","common"])(Qr(tTt,na)(eTt)),aTt={"ui:order":["base_topic","server","user","password","client_id","version","ca","key","cert","reject_unauthorized","*"]},nTt={"ui:order":["port","adapter","disable_led","*"]},iTt={"ui:order":["port","host","*"]},oTt={mqtt:aTt,serial:nTt,frontend:iTt};var sTt=sY,S6=Ta;function lTt(e,t,r,a){return e==null?[]:(S6(t)||(t=t==null?[]:[t]),r=a?void 0:r,S6(r)||(r=r==null?[]:[r]),sTt(e,t,r))}var uTt=lTt;const dTt=dr(uTt);function cTt(e){const{devices:t}=e,{t:r}=Ot(["stats","zigbee"]),a=Object.values(t).filter(s=>s.type!=="Coordinator"),n=a.length,i={byType:{},byPowerSource:{},byVendor:{},byModel:{}};a.forEach(s=>{i.byModel[s.model_id]=(i.byModel[s.model_id]||0)+1,i.byVendor[s.manufacturer]=(i.byVendor[s.manufacturer]||0)+1,i.byType[r(s.type)]=(i.byType[r(s.type)]||0)+1;const l=r("zigbee:"+kE(s.power_source));i.byPowerSource[l]=(i.byPowerSource[l]||0)+1});const o=Object.entries(i).map(([s,l])=>C.jsx("li",{className:"list-group-item d-flex justify-content-between align-items-start",children:C.jsxs("div",{className:"ms-2 me-auto",children:[C.jsx("div",{className:"fw-bold",children:r(s)}),dTt(Object.entries(l),[([u,d])=>d],["desc"]).map(([u,d])=>C.jsxs("div",{children:[u,": ",d]},u))]})},s));return C.jsxs("ol",{className:"list-group list-group-numbered",children:[C.jsx("li",{className:"list-group-item d-flex justify-content-between align-items-start",children:C.jsx("div",{className:"ms-2 me-auto",children:C.jsxs("div",{className:"fw-bold",children:[r("total")," ",n]})})}),o]})}const mTt={access:"public",cache:""},hTt=["*.css"],pTt="zigbee2mqtt-frontend",fTt="0.6.155",gTt="GPL-3.0",vTt={build:"vite build",preview:"vite preview",start:"vite dev",postversion:"git push && git push --tags",version:"conventional-changelog -p angular -i CHANGELOG.md -s && git add CHANGELOG.md",pretty:'prettier --write "./**/*.{js,jsx,tsx}"',postinstall:"husky install",prepublishOnly:"pinst --disable",postpublish:"pinst --enable","test:unit":"vitest","test:coverage":"vitest run --coverage","test:eslint":'eslint "./src/**/*.{js,jsx,tsx}"',"test:pretty":'prettier --check "./**/*.{js,jsx,tsx}"'},yTt=["dist/*"],_Tt={node:">=18"},bTt={"@commitlint/cli":"~17.7.2","@commitlint/config-conventional":"~17.7.0","@ebay/nice-modal-react":"~1.2.13","@fortawesome/fontawesome-free":"~6.4.2","@rjsf/bootstrap-5":"https://github.com/nurikk/fileshare/blob/main/rjsf-bootstrap-5-4.2.0.tgz?raw=true","@rjsf/core":"~4.2.3","@testing-library/jest-dom":"^6.3.0","@testing-library/react":"^14.1.2","@testing-library/user-event":"^14.5.2","@types/color-convert":"~2.0.1","@types/d3-drag":"~3.0.4","@types/d3-force":"~3.0.6","@types/d3-selection":"~3.0.7","@types/d3-zoom":"~3.0.5","@types/events":"~3.0.1","@types/file-saver":"~2.0.5","@types/json-schema":"~7.0.13","@types/lodash":"~4.14.199","@types/react":"~18.2.24","@types/react-dom":"~18.2.8","@types/react-router-dom":"~5.3.3","@types/react-table":"~7.7.16","@types/react-transition-group":"~4.4.7","@types/reconnectingwebsocket":"~1.0.8","@types/ws":"~8.5.6","@typescript-eslint/eslint-plugin":"~6.7.4","@typescript-eslint/parser":"~6.7.4","@vitejs/plugin-react":"~4.1.0","@vitest/coverage-v8":"^1.2.2","ace-builds":"~1.28.0",bootstrap:"~5.3.2",classnames:"~2.3.2","color-convert":"~2.0.1","conventional-changelog-cli":"~4.1.0","d3-drag":"~3.0.0","d3-force":"~3.0.0","d3-force-reuse":"~1.0.1","d3-selection":"~3.0.0","d3-zoom":"~3.0.0","deep-diff":"~1.0.2",eslint:"~8.50.0","eslint-config-prettier":"~9.0.0","eslint-config-react":"~1.1.7","eslint-plugin-prettier":"~5.0.0","eslint-plugin-react":"~7.33.2",events:"~3.3.0","file-saver":"~2.0.5",husky:"~8.0.3",i18next:"~23.5.1","i18next-browser-languagedetector":"~7.1.0",jsdom:"^24.0.0",jszip:"~3.10.1",lodash:"~4.17.21",notyf:"~3.10.0",pinst:"~3.0.0",prettier:"~3.0.3",react:"~18.2.0","react-ace":"~10.1.0","react-app-polyfill":"~3.0.0","react-bootstrap":"~2.10.0","react-css-theme-switcher":"~0.3.0","react-dom":"~18.2.0","react-i18next":"~13.2.2","react-image":"~4.1.0","react-notifications-component":"^4.0.1","react-router-dom":"~5.3.4","react-table":"~7.8.0","react-transition-group":"~4.4.5","reconnecting-websocket":"~4.4.0",sass:"~1.68.0",store2:"^2.14.2","timeago.js":"~4.0.2",typescript:"~5.2.2",unistore:"~3.5.2",vite:"~4.4.10","vite-plugin-compression":"~0.5.1","vite-plugin-html":"~3.2.0","vite-plugin-sass-dts":"~1.3.11",vitest:"^1.2.1",ws:"~8.14.2","zigbee-herdsman":"~0.19.0","zigbee-herdsman-converters":"~15.87.0"},wTt="index.js",kTt={hooks:{"commit-msg":"commitlint -E HUSKY_GIT_PARAMS"}},STt={type:"git",url:"git+https://github.com/nurikk/zigbee2mqtt-frontend.git"},ATt={url:"https://github.com/nurikk/zigbee2mqtt-frontend/issues"},TTt={private:!1,publishConfig:mTt,sideEffects:hTt,name:pTt,version:fTt,license:gTt,scripts:vTt,eslintIgnore:yTt,engines:_Tt,devDependencies:bTt,main:wTt,husky:kTt,repository:STt,bugs:ATt};function CTt(e){return new Promise((t,r)=>{const a=new FileReader;a.onloadend=()=>t(a.result),a.onerror=n=>r(n),a.readAsDataURL(e)})}async function ETt(e){const t=await fetch(e);if(t.ok){const r=await t.blob();return CTt(r)}else return Promise.reject(t.status)}async function ITt(e,t){for(const r of e)try{if(await t(r))return!0}catch{}return!1}function xTt(e){const[t,r]=X.useState("none"),{setDeviceOptions:a,t:n,devices:i}=e,[o,s]=X.useState({});async function l(u){if(s(c=>({...c,[u.ieee_address]:"init"})),!await ITt([lK,sK],async c=>{const m=c(u),h=await ETt(m);return await a(u.ieee_address,{icon:h}),s(p=>({...p,[u.ieee_address]:"done"})),!0}))throw new Error("Failed to localise image")}switch(X.useEffect(()=>{if(t=="start"){for(const u of Object.values(i).filter(d=>d.type!=="Coordinator"))l(u).catch(d=>{console.log("Error localising image",d),s(c=>({...c,[u.ieee_address]:"error"}))}).then();r("inprogress")}},[t]),t){case"none":return C.jsx(lt,{className:"btn btn-primary d-block mt-2",onClick:()=>r("start"),children:n("localise_images")});case"inprogress":return C.jsx("div",{children:Object.values(i).map(u=>C.jsxs("div",{children:[u.friendly_name," ",o[u.ieee_address]]},u.ieee_address))});case"done":return C.jsx("div",{children:"done"})}return C.jsx("div",{children:"Unknown"})}const DTt=Ur(["settings"])(xTt),MTt=P0(wO),jv="main",mte=["groups","devices","device_options","ban","whitelist","map_options"],OTt=["object","array"],A6=(e,t={},r={})=>{t.required&&(t.required=t.required.filter(a=>e.includes(a)));for(const a of e)t.properties&&delete t.properties[a],delete r[a];return{schema:t,config:r}},LTt=[{translationKey:"settings",url:"/settings/settings"},{translationKey:"tools",url:"/settings/tools"},{translationKey:"about",url:"/settings/about"},{translationKey:"raw",url:"/settings/bridge"},{translationKey:"translate",url:"/settings/translate"},{translationKey:"donate",url:"/settings/donate"}],RTt=[C.jsx("div",{className:"row pb-2",children:C.jsx("div",{className:"col",children:C.jsx("a",{target:"_blank",rel:"noopener noreferrer",href:"https://www.buymeacoffee.com/nurikk",children:C.jsx("img",{crossOrigin:"anonymous",src:"https://img.buymeacoffee.com/button-api/?text=Thanks for frontend&emoji=🍺&slug=nurikk&button_colour=FFDD00&font_colour=000000&font_family=Arial&outline_colour=000000&coffee_colour=ffffff"})})})},"nurikk"),C.jsx("div",{className:"row pb-2",children:C.jsx("div",{className:"col",children:C.jsx("a",{target:"_blank",rel:"noopener noreferrer",href:"https://www.buymeacoffee.com/koenkk",children:C.jsx("img",{crossOrigin:"anonymous",src:"https://img.buymeacoffee.com/button-api/?text=Thanks for zigbee2mqtt&emoji=☕&slug=koenkk&button_colour=FFDD00&font_colour=000000&font_family=Arial&outline_colour=000000&coffee_colour=ffffff"})})})},"koenkk")].sort(()=>Math.random()-.5),PTt=(e,t)=>OTt.includes(t.type)&&!mte.includes(e)||(t&&t.oneOf?t.oneOf.length>0:!1);class zTt extends X.Component{constructor(){super(...arguments),this.state={keyName:jv},this.downloadBackup=()=>{const{backup:t,bridgeInfo:r}=this.props,a=Yq(new Date).replace(/[\s_:]/g,"-"),n=`z2m-backup.${r.version}.${a}.zip`;Vq.saveAs(`data:application/zip;base64,${t}`,n)},this.addInstallCode=()=>{const{t,addInstallCode:r}=this.props,a=prompt(t("enter_install_code"));a&&r(a)},this.onSettingsSave=t=>{const{formData:r}=t,{updateBridgeConfig:a}=this.props,{keyName:n}=this.state;a(n===jv?r:{[n]:r})}}renderCategoriesTabs(){const{t}=this.props;return C.jsx("ul",{className:"nav nav-tabs",children:LTt.map(r=>C.jsx("li",{className:"nav-item",children:C.jsx(hM,{className:"nav-link",activeClassName:"active",to:r.url,children:t(r.translationKey)})},r.url))})}render(){return C.jsxs("div",{className:"tab",children:[this.renderCategoriesTabs(),C.jsx("div",{className:"tab-content h-100 p-0 p-sm-3",children:C.jsx("div",{className:"tab-pane fade show active",children:this.renderSwitcher()})})]})}renderSwitcher(){const{match:t}=this.props,{tab:r}=t.params;switch(r){case"tools":return this.renderTools();case"bridge":return this.renderBridgeInfo();case"about":return this.renderAbout();case"settings":return this.renderSettings();case"donate":return this.renderDonate();case"translate":return this.renderTranslate();default:return C.jsx(CZ,{to:"/settings/settings"})}}renderTranslate(){return C.jsx("div",{className:"p-3",children:C.jsxs("p",{children:["You can help with the translation at"," ",C.jsx("a",{target:"_blank",rel:"noopener noreferrer",href:"https://poeditor.com/join/project?hash=Az88waAhPd",children:"POEditor"})]})})}renderAbout(){var l,u,d,c,m,h,p;const{bridgeInfo:t,devices:r,t:a}=this.props,i=((l=t.version)==null?void 0:l.match(/^\d+\.\d+\.\d+$/))===null?t.version:C.jsx("a",{target:"_blank",rel:"noopener noreferrer",href:`https://github.com/Koenkk/zigbee2mqtt/releases/tag/${t.version}`,children:t.version}),o=t.commit?C.jsxs(C.Fragment,{children:["commit:"," ",C.jsx("a",{target:"_blank",rel:"noopener noreferrer",href:`https://github.com/Koenkk/zigbee2mqtt/commit/${t.commit}`,children:t.commit})]}):null,s=[{translationKey:"zigbee2mqtt_version",content:C.jsxs(C.Fragment,{children:[i," ",o]})},{translationKey:"coordinator_type",content:C.jsx(C.Fragment,{children:((u=t.coordinator)==null?void 0:u.type)??a("common:unknown")})},{translationKey:"coordinator_revision",content:C.jsx(C.Fragment,{children:((c=(d=t.coordinator)==null?void 0:d.meta)==null?void 0:c.revision)??a("common:unknown")})},{translationKey:"coordinator_ieee_address",content:C.jsx(C.Fragment,{children:((m=t.coordinator)==null?void 0:m.ieee_address)??a("common:unknown")})},{translationKey:"frontend_version",content:TTt.version},{translationKey:"zigbee_herdsman_converters_version",content:((h=t.zigbee_herdsman_converters)==null?void 0:h.version)??a("common:unknown")},{translationKey:"zigbee_herdsman_version",content:((p=t.zigbee_herdsman)==null?void 0:p.version)??a("common:unknown")},{translationKey:"stats",content:C.jsx(cTt,{devices:r})}];return C.jsx("div",{className:"p-3",children:s.map(f=>C.jsxs("dl",{className:"row",children:[C.jsx("dt",{className:"col-sm-3",children:a(f.translationKey)}),C.jsx("dd",{className:"col-sm-9",children:f.content})]},f.translationKey))})}renderBridgeInfo(){const{bridgeInfo:t}=this.props;return C.jsx("div",{className:"p-3",children:C.jsx("pre",{children:JSON.stringify(t,null,4)})})}renderBackupControls(){const{backup:t,preparingBackup:r,requestBackup:a,t:n}=this.props;return r?C.jsx(lt,{className:"btn btn-primary d-block mt-2 disabled",children:C.jsx(iZ,{})}):t?C.jsx(lt,{className:"btn btn-primary d-block mt-2",onClick:this.downloadBackup,children:n("download_z2m_backup")}):C.jsx(lt,{className:"btn btn-primary d-block mt-2",onClick:a,children:n("request_z2m_backup")})}renderTools(){const{exportState:t,restartBridge:r,setDeviceOptions:a,devices:n,t:i}=this.props;return C.jsxs("div",{className:"p-3",children:[C.jsx(lt,{className:"btn btn-primary d-block mt-2",onClick:t,children:i("download_state")}),C.jsx(lt,{className:"btn btn-danger d-block mt-2",onClick:r,prompt:!0,children:i("restart_zigbee2mqtt")}),this.renderBackupControls(),C.jsx(lt,{className:"btn btn-primary d-block mt-2",onClick:this.addInstallCode,children:i("add_install_code")}),C.jsx(DTt,{setDeviceOptions:a,devices:n})]})}getSettingsTabs(){const{bridgeInfo:{config_schema:t={properties:{}}},t:r}=this.props,a=Object.entries(t.properties).filter(([n,i])=>PTt(n,i)).map(([n,i])=>({name:n,title:r(n,{defaultValue:i.title})}));return a.unshift({name:jv,title:r("main",{defaultValue:"Main"})}),a}getSettingsInfo(){const{keyName:t}=this.state,{bridgeInfo:{config_schema:r,config:a}}=this.props;let n=A6(mte,rB(r),rB(a)),i=n.schema,o;if(t===jv){const s=this.getSettingsTabs().map(l=>l.name);n=A6(s,n.schema,n.config),i=n.schema,o=n.config}else o=n.config[t],n.schema.properties&&(i=n.schema.properties[t]);return{currentSchema:i,currentConfig:o}}renderSettingsTabs(){const{t}=this.props,r=this.getSettingsTabs(),{keyName:a}=this.state;return C.jsx("div",{className:"nav nav-pills",children:r.map(n=>C.jsx("li",{className:"nav-item",children:C.jsx("a",{className:Ue("nav-link",{"bg-primary active":a===n.name}),"aria-current":"page",href:"#",onClick:i=>{this.setState({keyName:n.name}),i.preventDefault()},children:t(n.name,{defaultValue:n.title})})},n.name))})}renderSettings(){const{keyName:t}=this.state,{currentSchema:r,currentConfig:a}=this.getSettingsInfo();return C.jsxs("div",{className:"tab",children:[this.renderSettingsTabs(),C.jsx("div",{className:"tab-content",children:C.jsx("div",{className:"tab-pane active",children:C.jsx(MTt,{idPrefix:t,schema:r,formData:a,onSubmit:this.onSettingsSave,uiSchema:oTt[t],fields:BJ})})})]})}renderDonate(){const{t}=this.props,r=t("donation_text",{returnObjects:!0,defaultValue:[]});return C.jsxs("div",{className:"container-fluid",children:[r.map(a=>C.jsx("p",{children:a},a)),RTt]})}}const $Tt=cM(zTt),NTt=["bridgeInfo","missingTranslations","devices","backup","preparingBackup"],FTt=Ur(["settings","common"])(Qr(NTt,na)($Tt)),jTt=FTt;function HTt(e,t){X.useEffect(()=>{const r=a=>{!e.current||e.current.contains(a.target)||t(a)};return document.addEventListener("mousedown",r),document.addEventListener("touchstart",r),()=>{document.removeEventListener("mousedown",r),document.removeEventListener("touchstart",r)}},[e,t])}function BTt(e,t){if(e==null)return{};var r={},a=Object.keys(e),n,i;for(i=0;i<a.length;i++)n=a[i],!(t.indexOf(n)>=0)&&(r[n]=e[n]);return r}function WTt(e){for(var t=document.head,r=0;r<t.childNodes.length;r++){var a,n=t.childNodes[r];if(n.nodeType===8&&(n==null||(a=n.nodeValue)==null?void 0:a.trim())===e)return n}return null}function UTt(e){return typeof HTMLElement=="object"?e instanceof HTMLElement:e&&typeof e=="object"&&e!==null&&e.nodeType===1&&typeof e.nodeName=="string"}function VTt(e){var t={};return e.forEach(function(r){return t[r]=r}),t}function GTt(e){for(var t=document.createElement("link"),r=0,a=Object.entries(e);r<a.length;r++){var n=a[r],i=n[0],o=n[1];if(i==="onload"){t.onload=e.onload;continue}t[i]=o}return t}var Vh;(function(e){e.idle="idle",e.loading="loading",e.loaded="loaded"})(Vh||(Vh={}));var hte=X.createContext(void 0);function qTt(e){var t=e.themeMap,r=e.insertionPoint,a=e.defaultTheme,n=e.id,i=n===void 0?"current-theme-style":n,o=e.attr,s=o===void 0?"data-theme":o,l=BTt(e,["themeMap","insertionPoint","defaultTheme","id","attr"]),u=X.useState(Vh.idle),d=u[0],c=u[1],m=X.useState(),h=m[0],p=m[1],f=X.useCallback(function(_){if(r||r===null){var w=UTt(r)?r:WTt(r);if(!w)return console.warn("Insertion point '"+r+"' does not exist. Be sure to add comment on head and that it matches the insertionPoint"),document.head.appendChild(_);var k=w.parentNode;if(k)return k.insertBefore(_,w.nextSibling)}else return document.head.appendChild(_)},[r]),v=X.useCallback(function(_){var w=_.theme;if(w!==h){if(t[w]){c(Vh.loading);var k=GTt({type:"text/css",rel:"stylesheet",id:i+"_temp",href:t[w],onload:function(){var A=document.getElementById(i);A&&A.remove();var T=document.getElementById(i+"_temp");T&&T.setAttribute("id",i),c(Vh.loaded)}});f(k),p(w)}else return console.warn("Could not find specified theme");document.body.setAttribute(s,w)}},[t,f,s,i,h]);X.useEffect(function(){a&&v({theme:a})},[a]),X.useEffect(function(){var _=Object.keys(t);_.map(function(w){var k="theme-prefetch-"+w;if(!document.getElementById(k)){var S=document.createElement("link");S.rel="prefetch",S.type="text/css",S.id=k,S.href=t[w],f(S)}return""})},[t,f]);var y=X.useMemo(function(){return{switcher:v,status:d,currentTheme:h,themes:VTt(Object.keys(t))}},[v,d,h,t]);return X.createElement(hte.Provider,Object.assign({value:y},l))}function KTt(){var e=X.useContext(hte);if(!e)throw new Error("To use `useThemeSwitcher`, component must be within a ThemeSwitcherProvider");return e}const ZTt=e=>{const{saveCurrentTheme:t}=e,{switcher:r,themes:a,status:n,currentTheme:i}=KTt(),o=i==="dark";if(n==="loading")return C.jsx("div",{children:"Loading styles..."});const s=l=>{const u=l?a.light:a.dark;t(u),r({theme:u})};return C.jsx(lt,{item:o,className:"btn btn-info",onClick:s,children:o?"🌑":"🌞"})};function pte(e){const[t,r]=X.useState(e),a=X.useRef(null),n=o=>{o.key==="Escape"&&r(!1)},i=o=>{a.current&&!a.current.contains(o.target)&&r(!1)};return X.useEffect(()=>(document.addEventListener("keydown",n,!0),document.addEventListener("click",i,!0),()=>{document.removeEventListener("keydown",n,!0),document.removeEventListener("click",i,!0)})),{ref:a,isComponentVisible:t,setIsComponentVisible:r}}const QTt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABDCAYAAABqS6DaAAABg2lDQ1BJQ0MgcHJvZmlsZQAAKJF9kT1Iw0AcxV9TpSIVBzuIOASsThbEijhqFYpQIdQKrTqYXPoFTRqSFBdHwbXg4Mdi1cHFWVcHV0EQ/ABxdHJSdJES/5cUWsR4cNyPd/ced+8AoVFhmtU1AWi6baaTCTGbWxVDrxAwiAhGEJeZZcxJUgq+4+seAb7exXiW/7k/R5+atxgQEIlnmWHaxBvE05u2wXmfOMJKskp8Tjxu0gWJH7muePzGueiywDMjZiY9TxwhFosdrHQwK5ka8RRxVNV0yheyHquctzhrlRpr3ZO/MJzXV5a5TnMYSSxiCRJEKKihjApsxGjVSbGQpv2Ej3/I9UvkUshVBiPHAqrQILt+8D/43a1ViE96SeEE0P3iOB+jQGgXaNYd5/vYcZonQPAZuNLb/moDmPkkvd7WokdA/zZwcd3WlD3gcgcYfDJkU3alIE2hUADez+ibcsDALdC75vXW2sfpA5ChrlI3wMEhMFak7HWfd/d09vbvmVZ/P7jXcsNND5Q3AAAABmJLR0QAAAAAAAD5Q7t/AAAACXBIWXMAAA3XAAAN1wFCKJt4AAAAB3RJTUUH5gIYFCQtTLzIUAAAAPpJREFUeNrt2s0JwkAUReGMBkXBjUEEKxBLsAlrsAibsh9FlIA7124E/xibSOBhvlPCPXC5b5j0rseHAmEoU5FXYohDTwSEgBBCQMifrKz7fiiFQKTzdJHFoLJACCEghBA0PXtTXwihZu+nHpm9KguEEAJCCAEh/z57b9vK7I0kxPO7ygIhhIAQQtAC5WD5lUKk2ev5XWWBEEJACCEgpAOz97qem72RDsPXyccslQVCCAEhhKD5lTXZPKUQ6Q7x/K6yQAghIIQQENKB2XuZ+Wwd6jDMvmWpLBBCCAghBC2srGr3kEKkO8Tzu8oCIYSAEELQxuzNRTqKIQ4/168l3OOMpgUAAAAASUVORK5CYII=",YTt=""+new URL("uk-9b7898ef.png",import.meta.url).href,XTt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABDBAMAAACYZb3pAAAAHlBMVEXtKTn3qa/84OK2q80pQqIAI5Wrt9ztKTn5t7z///9ckyEgAAAABXRSTlPU7Pj6/i021ewAAAA8SURBVEjHY3BBA85KaECAAR2EooGwmWigvRwNjGoZ1TKqZVTLqJZRLaNaRrWMahnVMqplVMuQ0UJ6LwkAaPHwH750UDMAAAAASUVORK5CYII=",JTt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABDCAMAAABdlVDoAAADAFBMVEUAAAAAADMAAGYAAJkAAMwAAP8AMwAAMzMAM2YAM5kAM8wAM/8AZgAAZjMAZmYAZpkAZswAZv8AmQAAmTMAmWYAmZkAmcwAmf8AzAAAzDMAzGYAzJkAzMwAzP8A/wAA/zMA/2YA/5kA/8wA//8zAAAzADMzAGYzAJkzAMwzAP8zMwAzMzMzM2YzM5kzM8wzM/8zZgAzZjMzZmYzZpkzZswzZv8zmQAzmTMzmWYzmZkzmcwzmf8zzAAzzDMzzGYzzJkzzMwzzP8z/wAz/zMz/2Yz/5kz/8wz//9mAABmADNmAGZmAJlmAMxmAP9mMwBmMzNmM2ZmM5lmM8xmM/9mZgBmZjNmZmZmZplmZsxmZv9mmQBmmTNmmWZmmZlmmcxmmf9mzABmzDNmzGZmzJlmzMxmzP9m/wBm/zNm/2Zm/5lm/8xm//+ZAACZADOZAGaZAJmZAMyZAP+ZMwCZMzOZM2aZM5mZM8yZM/+ZZgCZZjOZZmaZZpmZZsyZZv+ZmQCZmTOZmWaZmZmZmcyZmf+ZzACZzDOZzGaZzJmZzMyZzP+Z/wCZ/zOZ/2aZ/5mZ/8yZ///MAADMADPMAGbMAJnMAMzMAP/MMwDMMzPMM2bMM5nMM8zMM//MZgDMZjPMZmbMZpnMZszMZv/MmQDMmTPMmWbMmZnMmczMmf/MzADMzDPMzGbMzJnMzMzMzP/M/wDM/zPM/2bM/5nM/8zM////AAD/ADP/AGb/AJn/AMz/AP//MwD/MzP/M2b/M5n/M8z/M///ZgD/ZjP/Zmb/Zpn/Zsz/Zv//mQD/mTP/mWb/mZn/mcz/mf//zAD/zDP/zGb/zJn/zMz/zP///wD//zP//2b//5n//8z///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABlenwdAAABAHRSTlP///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG8mZagAAAAlwSFlzAAAOxAAADsQBlSsOGwAAADdJREFUWIXtzQENAAAIAyD7FzCadWzxuQkFqAkoiUQikUgkEolEIrmSdIBEIpFIJBKJRCKRvEoWJNiqA2rbaEoAAAAASUVORK5CYII=",eCt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAAA8AgMAAADtUfddAAAACVBMVEUAAADdAAD/zgDGIigcAAAAHUlEQVQ4y2NgGAWjAAhCcYFRmRElswoXGJUZSTIAQ83yHB4q//IAAAAASUVORK5CYII=",tCt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABDBAMAAACYZb3pAAAAFVBMVEXVKx7///8AOaZUNHFkh8nVKx7///90yNRsAAAAAnRSTlPU1BJ52+4AAAA3SURBVEjH7csxAQAgEMSws4AFLGABC1jAv4TX0PmaPVlYPmaxWErLxbIxi8VSWg6Wh1ksltLCDf2spTBQVKLHAAAAAElFTkSuQmCC",rCt="data:image/png;base64,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",aCt=""+new URL("es-2fe6a1a7.png",import.meta.url).href,nCt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABDBAMAAACYZb3pAAAAD1BMVEUAW7rawxsAW7t/mF7/1QCzxg4pAAAAAnRSTlPU+CChtw0AAAAxSURBVEjH7csxEQAgDASwt4AFLNQC/jUhofd7sifp3ZqiKIqi7GVqeTVFURRF2cupfb6QiufYvy3hAAAAAElFTkSuQmCC",iCt="data:image/png;base64,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",oCt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAAA1CAYAAAC3ME4GAAABcWlDQ1BpY2MAACiRdZE9S8NQFIbftkqrtnTQQcQhQxWHFoqCOGoduhQptYJVl+Q2aYUkDTcpUlwFF4eCg+ji1+A/0FVwVRAERRBx8Q/4tUiJ5zaFFmlPuDkP7z3v4d5zAX9GZ4bdlwQM0+G5dEpaLaxJwXeEMAAfIkjIzLYWstkMesbPI1VSPCREr951XWOoqNoM8IWIZ5nFHeJ54syWYwneIx5hZblIfEIc53RA4luhKx6/CS55/CWY53OLgF/0lEodrHQwK3ODeIo4ZuhV1jqPuElYNVeWKY/RGoeNHNJIQYKCKjahw0GCskkz6+5LNn1LqJCH0d9CDZwcJZTJGye1Sl1VyhrpKn06amLu/+dpazPTXvdwCuh/dd3PCSC4DzTqrvt76rqNMyDwAlybbX+F5jT3TXq9rcWOgegOcHnT1pQD4GoXGH22ZC43pQAtv6YBHxdApAAM3wOD696sWvs4fwLy2/REd8DhETBJ9dGNP69cZ+Ub+qnAAAAACXBIWXMAAA9hAAAPYQGoP6dpAAABBklEQVR4Ae3VQY1CMQAG4fc2Jbsa8IAObqjAxzriAAZwgRUu5EFQ8SWdKpjO9E/X2/6wLR3GwA9DEsjXQEGwh1CQgmAGMJwWUhDMAIbTQgqCGcBwWkhBMAMYTgspCGYAw2khBcEMYDgtBAsyXs8nhjQ3ztifjnMbwG6/bp+DMU2NM7blNbUA7fJ96liRghQEM4DhtJCCYAYwnBZSEMwAhtNCCoIZwHBaSEEwAxhOCykIZgDDaSFYkLEuNZGajPP/ReKZnmVc74/pJUgCxt/vTuKZnqUPBHsCBSkIZgDDaSEFwQxgOC2kIJgBDKeFFAQzgOG0kIJgBjCcFlIQzACG00IKghnAcN7ZXA/1YVkO6AAAAABJRU5ErkJggg==",sCt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEAEAYAAAAM4nQlAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAADYUlEQVR42u3WoQ2DUBRA0deqSgboAnWYJpWI9s+BxTMJC3SULtAEgaioYwYkyUehsV+cM8JVNwIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACOnSKGIaWcpaBk78/z0c8RbXO7v356UKZl+l7HS8R/bauu1oOynSUAAAMAABgAAMAAAAAGAAAwAACAAQAADAAAYAAAAAMAABgAAMAAAAAGAAAwAACAAQAADAAAYAAAAAMAAAYAADAAAIABAAAMAABgAAAAAwAAGAAAwAAAAAYAADAAAIABAAAMAABgAAAAAwAAGAAAwAAAAAYAAAwAAGAAAAADAAAYAADAAAAABgAAMAAAgAEAAAwAAGAAAAADAAAYAADAAAAABgAAMAAAgAEAAAwAABgAAMAAAAAGAAAwAACAAQAADAAAYAAAAAMAABgAAMAAAAAGAAAwAACAAQAADAAAYAAAAAMAABgAADAAAIABAAAMAABgAAAAAwAAGAAAwAAAAAYAADAAAIABAAAMAABgAAAAAwAAGAAAwAAAAAYAADAAAGAAJAAAAwAAGAAAwAAAAAYAADAAAIABAAAMAABgAAAAAwAAGAAAwAAAAAYAADAAAIABAAAMAABgAAAAAwAABgAAMAAAgAEAAAwAAGAAAAADAAAYAADAAAAABgAAMAAAgAEAAAwAAGAAAAADAAAYAADAAAAABgAADAAAYAAAAAMAABgAAMAAAAAGAAAwAACAAQAADAAAYAAAAAMAABgAAMAAAAAGAAAwAACAAQAADAAAGAAAwAAAAAYAADAAAIABAAAMAABgAAAAAwAAGAAAwAAAAAYAADAAAIABAAAMAABgAAAAAwAAGAAAMAAAgAEAAAwAAGAAAAADAAAYAADAAAAABgAAMAAAgAEAAAwAAGAAAAADAAAYAADAAAAABgAAMAAAYAAkAAADAAAYAADAAAAABgAAMAAAgAEAAAwAAGAAAAADAAAYAADAAAAABgAAMAAAgAEAAAwAAGAAAAADAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdhtsThDegrKepAAAAABJRU5ErkJggg==",lCt="data:image/png;base64,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",uCt="data:image/png;base64,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",dCt=""+new URL("cz-aa47f7b6.png",import.meta.url).href,cCt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABDBAMAAACYZb3pAAAAFVBMVEXVKx7///8AOaZUNHFkh8nVKx7///90yNRsAAAAAWJLR0QAiAUdSAAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB+ULGAs7NQ50qgoAAAA0SURBVEjH7dShEQAgDACxrlA2oPsPieNqEOjmfexHtlbddj4LBEFmkvoOQZChxGARBJlHDliGRdp7bzpsAAAAAElFTkSuQmCC",mCt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAAA+CAIAAABSlSmSAAABWWlDQ1BEaXNwbGF5IFAzAAAokZ2OPyiEYRzHP88dvXUocm4wPeVPBsQZzmJwlIg6Mtyd6b33/qlznt57i5vUWYxKBmVisDJeBgaDZCCRQWQ1upJCj+HoXAbls3y/ffrW7weudlOpTA2wkHXsmbGgDEei0njEwKABH9K0cmo4FJoE+M5qXm4QAFc9plKZs9bNQsdK49TgVvP15VNL4fe+Ck88kbOAdyBhKdsBEQfalhzlgFgDvHY4EgWxDXhT5b4PeGPlfgJ47dmZERC3gLTSZhzEK9Ad++FTP/rXXYC60fmcyph5GRr449t/4CSWHYCRRZW351NpRw4rlUnI8azV2y39ff0BCEeisrwuTSMA4TuvuNUHGDrSWh9W3MQRHATAU6y4rkFoqoPTojJtEwA34Eom4XkPGiLQfAGeuVxywA+AqA9C7b3WpU4wNuBjXeu3Ha0/dsF9B8fZTxUhZe6KC5V+AAAACXBIWXMAAAsTAAALEwEAmpwYAAAE7mlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDggNzkuMTY0MDM2LCAyMDE5LzA4LzEzLTAxOjA2OjU3ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0ZURhdGU9IjIwMjEtMTEtMzBUMDk6NDE6MjQrMDE6MDAiIHhtcDpNb2RpZnlEYXRlPSIyMDIxLTExLTMwVDA5OjQ1OjU3KzAxOjAwIiB4bXA6TWV0YWRhdGFEYXRlPSIyMDIxLTExLTMwVDA5OjQ1OjU3KzAxOjAwIiBkYzpmb3JtYXQ9ImltYWdlL3BuZyIgcGhvdG9zaG9wOkNvbG9yTW9kZT0iMyIgcGhvdG9zaG9wOklDQ1Byb2ZpbGU9IkRpc3BsYXkgUDMiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NmQ3NDRiMzctYjEzNi0yYTQ4LTlmNTQtMzVlNWE0ZDY3NWYwIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjZkNzQ0YjM3LWIxMzYtMmE0OC05ZjU0LTM1ZTVhNGQ2NzVmMCIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjZkNzQ0YjM3LWIxMzYtMmE0OC05ZjU0LTM1ZTVhNGQ2NzVmMCI+IDx4bXBNTTpIaXN0b3J5PiA8cmRmOlNlcT4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjZkNzQ0YjM3LWIxMzYtMmE0OC05ZjU0LTM1ZTVhNGQ2NzVmMCIgc3RFdnQ6d2hlbj0iMjAyMS0xMS0zMFQwOTo0NTo1NyswMTowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIDIxLjAgKFdpbmRvd3MpIiBzdEV2dDpjaGFuZ2VkPSIvIi8+IDwvcmRmOlNlcT4gPC94bXBNTTpIaXN0b3J5PiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PtsNxjAAAAG/SURBVHic7ZxLboMwFEXftbKFbq4b6aTDTrqELqv7iXgZGAhR+R0haIjuGZlgY+fk4diyZcX7T2xAuqczRzJcPz5ny0dkXL6/trThMC4by48KIuU31n8o5b8bcCYsC2BZAMsCWBbAsgCWBbAsgGUBLAtgWYD9ZelU079ZHFkAywJYFmB3WVKzdxWH4cgCHCBLy1lOgiMLYFkAywLw1Z0c9EFrRuf5On0WlqVyHwrkM4lQZHbLmDvNsHT9fdvnyV0FSuQ0ow3G+oUVoen4bTMr2/jVQ031bnZphTLr2yDVAmK/9tZF1kVo9EkpZX3B27LTT1BklIxU1Hh/zKmIKI36dGQ/jLm36u/Dq96xSneXhamxsFax2gicyt99nsPMSw2YuuN/Q4BlASwLYFkAywJYFsCyAJYFeL5B6SJ1hF0aKaM09VJNaSc3TYnU3Ji2n0rVxHCS0M+rJoprywZcrZiyLmzAjYg4zQbcTa/h6yyfrsN9FsCyAJYFsCyAZQEsC2BZAMsCWBbAsgCWBbAsgGUBLAtgWQDLAlgWwLIAlgWwLIBlASwLcJpFVmn83JvhyUHqFk7r5cw5ORpu1119os4NHzhrTvSbX80AAAAASUVORK5CYII=",hCt="data:image/png;base64,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",pCt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAYAAADimHc4AAAACXBIWXMAAA7EAAAOxAGVKw4bAAADaklEQVR42u2dz2sTQRiG39lss5sE2koraD158iAiilA8SfUmeBAFD/5AERWxLdpL/Qt6s6IX6blWvAiKeNebtwpFPOnNUrBiKybpjkk/D7vbbEs2ZtvsGJP3OX2TzO5sdnaebzOZJQAhhBBCCCGEEEIIIYR0AwoAfhw8dEZEJpRSAAARQb04Wo6rExerob3offUSKpeDiMDTFRw9N4VPn5cAESBsIxKPXx7B9OR5ZDIWRATV+Xn8un4DonXTbSc9ToPx9K6PC6/t4MUhACdEZNOJrhdHy83UD2PlacB1N8pO1kaprP0THp742kb+NkrBslRtfxkbonXitpPUNRg/BwA7/KBBz6iggtSLo+W4Og22rf+6Uo2G3KZt/ENVSNJ20uM0GW90APl32FuGqkSv9HpxtNxM/TBWcXVqCqo7Xre0LUmOdTvHaTqmgqggKogKooKoIEIFUUFUEBVEBVFBVBAVRKggKogKooKoICqICqKCCBVEBVFBqSvIsoBqlT4wiWXVOsC5dhXieQCwabjHxNFyM/V9BRUKO1aQNTgo2UsXkbTthHWNxMpxgIl7fge4Y6NAJpOqgmL3mUBB1r4hlb8/2REKkkql1gHIZFJPwmhBEt5u3JZJODjnxpJwK0bAtq60/yEJv3m7gIH+gvE85OlKw/eXvq3i/YcvHZmDv68UEd6eo3Bk/Fax5D3hrYk5CnnndnH+8YwNAMWyv+IYaa5Pb2afacRtuj49POecimiHqYi/3Ym05AGBZveZRtymDwjUOsC/E6GCTMdUEBVEBQFAf18eK6slKshg3N+bw0rYAS8e3UTezRoffmfHZrC0/DP2/Qunj+HulZMdqZ7Smsap4w/9DhgZPpBkJq9ls4xO1m6ovz27+zB8eH8rZiDbbjbU+A8ynAtqMBckWgM9PbwlMUj4vLMNAOUH0+HT6an+IOOO3tnRdPT610VZm53tDAUFH8sGAD33LHUFqYEByY2N7khB68vLSj+d47IU0uIvYlyWwmUpXBlHqCAqiAqigrp0OpowBzAHMAcwB1BBVBAVRAURKogKooKoICqICqKCqCBCBVFBVBAV1A0KWgTwLtV/0HCykHIZcF0AwJr3G/lcNv4fNIJRWa2uw7KCC6Za8Vfwad0Jq9MXefkRQgghhBBCCCGEEEK6hz+wscfL6qRkugAAAABJRU5ErkJggg==",fCt="data:image/png;base64,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",gCt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAABgAgMAAADnSZEKAAAACVBMVEUAlm7WJhL////BTf+eAAAAKUlEQVRIx+3KIQEAAAgDMEpSkpQUQOC/6dU8lSiKYlgE4NZPoiiKYXEBfXL7PZ61X/UAAAAASUVORK5CYII=",T6=""+new URL("missing-locale-4d6286c0.png",import.meta.url).href,vCt="Deutsch",yCt="English",_Ct="Español",bCt="Français",wCt="Nederlands",kCt="Polski",SCt="Brazilian Portuguese",ACt="Русский",TCt="Українська",CCt="Italiano",ECt="繁體中文",ICt="한국어",xCt="Česky",DCt="Suomi",MCt="Svenska",OCt="Català",LCt="Türkçe",RCt="Norsk",PCt="Dansk",zCt="Български",$A={de:vCt,en:yCt,es:_Ct,fr:bCt,nl:wCt,pl:kCt,ptbr:SCt,ru:ACt,ua:TCt,"zh-CN":"简体中文",it:CCt,zh:ECt,ko:ICt,cs:xCt,fi:DCt,sv:MCt,ca:OCt,tr:LCt,no:RCt,da:PCt,bg:zCt},NA={ca:QTt,en:YTt,fr:XTt,pl:JTt,de:eCt,ru:tCt,ptbr:rCt,es:aCt,ua:nCt,"zh-CN":iCt,nl:oCt,it:sCt,zh:lCt,ko:uCt,cs:dCt,fi:cCt,sv:mCt,tr:hCt,no:pCt,da:fCt,bg:gCt};function $Ct(){const{i18n:e}=Ot("localeNames"),{ref:t,isComponentVisible:r,setIsComponentVisible:a}=pte(!1),n=s=>{e.changeLanguage(s),a(!1)},i=Object.keys(e.options.resources).map(s=>C.jsxs("a",{className:"dropdown-item",href:"#",onClick:l=>{n(s),l.preventDefault()},children:[C.jsx("img",{src:NA[s]??T6,alt:$A[s],width:"20",className:"align-middle me-1"}),C.jsx("span",{className:"align-middle",children:$A[s]})]},s)),o=NA[e.language]?e.language:e.language.split("-")[0];return C.jsxs("li",{className:"nav-item dropdown",children:[C.jsx("a",{className:Ue("nav-flag dropdown-toggle",{show:r}),href:"#",onClick:s=>{a(!r),s.preventDefault()},children:C.jsx("img",{src:NA[o]??T6,alt:$A[o]})}),C.jsx("div",{ref:t,className:Ue("dropdown-menu dropdown-menu-end",{show:r}),children:i})]})}function NCt({devices:e,setPermitJoin:t,bridgeInfo:r}){const{t:a}=Ot(["navbar"]),{ref:n,isComponentVisible:i,setIsComponentVisible:o}=pte(!1),[s,l]=X.useState({}),{permit_join:u,permit_join_timeout:d}=r,c=_=>{l(_),o(!1)},m=(_,w)=>_.friendly_name.localeCompare(w.friendly_name),h=(_,w)=>_.type==="Coordinator"?-1:w.type==="Coordinator"?1:0,p=Object.values(e).filter(_=>_.type==="Router"||_.type==="Coordinator").sort(m).sort(h).map(_=>C.jsx("li",{children:C.jsx(lt,{item:_,className:"dropdown-item",onClick:c,children:_.friendly_name})},_.friendly_name)),f=()=>{t(!u,s)},v=C.jsx(C.Fragment,{children:d?C.jsx("div",{className:"d-inline-block mx-1",style:{width:"30px",maxWidth:"30px"},children:Zq(d)}):null}),y=C.jsxs(C.Fragment,{children:[a(u?"disable_join":"permit_join")," (",(s==null?void 0:s.friendly_name)??a("all"),")",v]});return C.jsxs("div",{className:"btn-group text-nowrap me-1",children:[C.jsx("button",{onClick:f,type:"button",className:"btn btn-outline-secondary",children:y}),p.length?C.jsxs(C.Fragment,{children:[C.jsx(lt,{type:"button",className:"btn btn-outline-secondary dropdown-toggle dropdown-toggle-split",onClick:o,item:!i,children:C.jsx("span",{className:"visually-hidden",children:a("toggle_dropdown")})}),C.jsxs("ul",{ref:n,className:Ue("dropdown-menu",{show:i}),children:[C.jsx("li",{children:C.jsx(lt,{className:"dropdown-item",onClick:c,children:a("all")})},"all"),p]})]}):null]})}const FCt=[{href:"/",key:"devices",exact:!0},{href:"/dashboard",key:"dashboard"},{href:"/map",key:"map"},{href:"/settings",key:"settings"},{href:"/groups",key:"groups"},{href:"/ota",key:"ota"},{href:"/touchlink",key:"touchlink"},{href:"/logs",key:"logs"},{href:"/extensions",key:"extensions"}],jCt=e=>{const{devices:t,setPermitJoin:r,bridgeInfo:a,restartBridge:n,setTheme:i,t:o}=e,s=X.useRef(),[l,u]=X.useState(!1);return HTt(s,()=>{u(!1)}),C.jsx("nav",{className:"navbar navbar-expand-md navbar-light",children:C.jsxs("div",{ref:s,className:"container-fluid",children:[C.jsx(Qs,{onClick:()=>u(!1),to:"/",children:xBe()?`Z2M@${document.location.hostname}`:"Zigbee2MQTT"}),C.jsx("button",{onClick:()=>{u(!l)},className:"navbar-toggler",type:"button",children:C.jsx("span",{className:"navbar-toggler-icon"})}),C.jsxs("div",{className:Ue("navbar-collapse collapse",{show:l}),children:[C.jsxs("ul",{className:"navbar-nav",children:[FCt.map(d=>C.jsx("li",{className:"nav-item",children:C.jsx(hM,{onClick:()=>u(!1),exact:d.exact,className:"nav-link",to:d.href,activeClassName:"active",children:o(d.key)})},d.href)),C.jsx($Ct,{})]}),C.jsx(NCt,{devices:t,setPermitJoin:r,bridgeInfo:a}),C.jsx(ZTt,{saveCurrentTheme:i})]}),a.restart_required?C.jsx(lt,{onClick:n,prompt:!0,className:"btn btn-danger me-1",children:o("restart")}):null]})})},HCt=["bridgeInfo","devices"],BCt=Ur("navbar")(Qr(HCt,na)(jCt)),WCt=BCt,UCt=e=>{const[t,r]=X.useState(e);return[t,n=>r({...t,[n.currentTarget.name]:n.currentTarget.value})]},VCt=Ii.create(e=>{const{name:t,onRename:r}=e,a=Su(),[n,i]=UCt({friendlyName:t}),o=async()=>{await r(t,n.friendlyName),a.remove()};return C.jsxs($f,{isOpen:a.visible,children:[C.jsxs(Rf,{children:[C.jsx("h3",{children:"Rename group"}),C.jsx("small",{children:t})]}),C.jsx(Pf,{children:C.jsxs("div",{className:"mb-3",children:[C.jsx("label",{className:"form-label",children:"Friendly name"}),C.jsx("input",{name:"friendlyName",onChange:i,type:"text",className:"form-control",value:n.friendlyName})]})}),C.jsxs(zf,{children:[C.jsx("button",{type:"button",className:"btn btn-secondary",onClick:a.remove,children:"Close"}),C.jsx("button",{type:"button",className:"btn btn-primary",onClick:o,children:"Save changes"})]})]})});function GCt(e){const{t}=Ot(["groups"]),{groups:r,removeGroup:a,renameGroup:n}=e,i=[{id:"group_id",Header:t("group_id"),accessor:o=>o.id,Cell:({row:{original:o}})=>C.jsx(Qs,{to:`/group/${o.id}`,children:o.id})},{id:"friendly_name",Header:t("group_name"),accessor:o=>o.friendly_name,Cell:({row:{original:o}})=>C.jsx(Qs,{to:`/group/${o.id}`,children:o.friendly_name})},{id:"members",Header:t("group_members"),accessor:o=>o.members.length??0},{id:"scenes",Header:t("group_scenes"),accessor:o=>{var s;return((s=o.scenes)==null?void 0:s.length)??0}},{Header:"",id:"actions",Cell:({row:{original:o}})=>C.jsxs("div",{className:"btn-group float-right btn-group-sm",role:"group",children:[C.jsx(lt,{className:"btn btn-primary",onClick:()=>Ii.show(VCt,{name:o.friendly_name,onRename:n}),title:t("rename_group"),children:C.jsx("i",{className:"fa fa-edit"})}),C.jsx(lt,{prompt:!0,title:t("remove_group"),item:o.friendly_name,onClick:a,className:"btn btn-danger",children:C.jsx("i",{className:"fa fa-trash"})})]})}];return C.jsx("div",{className:"card",children:C.jsx(U0,{id:"groups",columns:i,data:r})})}class qCt extends X.Component{constructor(){super(...arguments),this.state={newGroupName:"",newGroupId:void 0},this.changeHandler=t=>{const{name:r,value:a}=t.target;this.setState({[r]:a})},this.onGroupCreateSubmit=()=>{const{newGroupName:t,newGroupId:r}=this.state,{createGroup:a}=this.props;a(t,r)},this.renameGroup=(t,r)=>{const{renameGroup:a}=this.props;a(t,r)}}renderGroupCreationForm(){const{t}=this.props,{newGroupName:r,newGroupId:a}=this.state;return C.jsx("div",{className:"card",children:C.jsx("div",{className:"card-body",children:C.jsxs("div",{className:"input-group",children:[C.jsx("label",{htmlFor:"newGroupName",className:"sr-only",children:t("new_group_name")}),C.jsx("input",{onChange:this.changeHandler,value:r,required:!0,type:"text",name:"newGroupName",className:"form-control",id:"newGroupName",placeholder:t("new_group_name_placeholder")}),C.jsx("label",{htmlFor:"newGroupName",className:"sr-only",children:t("new_group_id")}),C.jsx("input",{onChange:this.changeHandler,value:a===void 0?"":a,type:"number",name:"newGroupId",className:"form-control",id:"newGroupId",placeholder:t("new_group_id_placeholder")}),C.jsx(lt,{onClick:this.onGroupCreateSubmit,className:"btn btn-primary form-control",children:t("create_group")})]})})})}render(){const{groups:t,removeGroup:r,renameGroup:a}=this.props;return C.jsxs(C.Fragment,{children:[this.renderGroupCreationForm(),C.jsx(GCt,{groups:t,removeGroup:r,renameGroup:a})]})}}const KCt=["groups","devices","deviceStates","bridgeInfo"],ZCt=Ur("groups")(Qr(KCt,na)(qCt)),QCt=ZCt,YCt={"action-column":"_action-column_1729o_1","device-pic":"_device-pic_1729o_8","device-image":"_device-image_1729o_14"},fI="zigbee";function XCt(e){const{data:t,lastSeenType:r,availabilityFeatureEnabled:a,homeassistantEnabled:n,setDeviceDescription:i}=e,{renameDevice:o,removeDevice:s,configureDevice:l}=e,{t:u}=Ot(["zigbee","common","avaliability"]),d=r!=="disable"?[{id:"last_seen",Header:u("last_seen"),accessor:({state:h})=>{var p;return(p=Qq(h,r))==null?void 0:p.getTime()},Cell:({row:{original:{state:h}}})=>C.jsx(vM,{state:h,lastSeenType:r})}]:[],c=a?[{id:"availability",Header:u("avaliability:avaliability"),accessor:({availabilityState:h})=>DZ(h)?h:h.state,Cell:({row:{original:{availabilityState:h,availabilityEnabledForDevice:p,disabled:f}}})=>C.jsx(MZ,{disabled:f,availability:h,availabilityEnabledForDevice:p})}]:[],m=X.useMemo(()=>[{id:"pic",Header:u("pic"),Cell:({row:{original:{device:h,state:p,disabled:f}}})=>C.jsx(If,{className:YCt["device-image"],device:h,deviceStatus:p,disabled:f}),accessor:h=>h,disableSortBy:!0},{id:"friendly_name",Header:u("friendly_name"),accessor:({device:h})=>[h.friendly_name,h.description].join(" "),Cell:({row:{original:{device:h}}})=>C.jsxs(C.Fragment,{children:[C.jsx(Qs,{to:Ow(h.ieee_address),children:h.friendly_name}),C.jsx("small",{className:"d-block",children:h.description})]})},{id:"ieee_address",Header:u("ieee_address"),accessor:({device:h})=>[h.ieee_address,tE(h.network_address,4)].join(" "),Cell:({row:{original:{device:h}}})=>C.jsxs(C.Fragment,{children:[C.jsx("div",{children:h.ieee_address}),C.jsxs("div",{children:["(",tE(h.network_address,4),")"]})]})},{id:"manufacturer",Header:u("manufacturer"),accessor:({device:h})=>{var p;return[(p=h.definition)==null?void 0:p.vendor,h.manufacturer].join(" ")},Cell:({row:{original:{device:h}}})=>C.jsx(pM,{device:h})},{id:"model",Header:u("model"),accessor:({device:h})=>{var p;return[(p=h.definition)==null?void 0:p.model,h.model_id].join(" ")},Cell:({row:{original:{device:h}}})=>C.jsx(fM,{device:h})},{id:"lqi",Header:u("lqi"),accessor:({state:h})=>h.linkquality,Cell:({row:{original:{state:h}}})=>C.jsx(Tc,{value:h.linkquality,name:"linkquality"})},...d,...c,{id:"power",Header:u("power"),accessor:({state:h,device:p})=>{var f;return[h.battery,(f=p.definition)==null?void 0:f.power].join(" ")},Cell:({row:{original:{state:h,device:p}}})=>C.jsx(gM,{device:p,deviceState:h})},{id:"controls",Header:"",Cell:({row:{original:{device:h,state:p}}})=>C.jsx(IZ,{device:h,state:p,homeassistantEnabled:n,renameDevice:o,removeDevice:s,configureDevice:l,setDeviceDescription:i}),disableSortBy:!0}],[d,c,u,n,o,s,l]);return C.jsx("div",{className:"card",children:C.jsx("div",{className:"table-responsive",children:C.jsx(U0,{id:fI,columns:m,data:t})})})}function JCt(e){const{devices:t,deviceStates:r,bridgeInfo:{config:a},availability:n}=e,{renameDevice:i,removeDevice:o,configureDevice:s,setDeviceDescription:l}=e,u=!!a.availability,d=!!(a!=null&&a.homeassistant),c=()=>Object.values(t).filter(h=>h.type!=="Coordinator").map(h=>{var f;const p=r[h.friendly_name]??{};return{id:h.friendly_name,disabled:Ef(h,a),device:h,state:p,availabilityState:n[h.friendly_name]??"offline",availabilityEnabledForDevice:((f=a.devices[h.ieee_address])==null?void 0:f.availability)!==!1}}),m=q.useMemo(()=>c(),[t,r]);return C.jsx(XCt,{data:m,lastSeenType:a.advanced.last_seen,availabilityFeatureEnabled:u,homeassistantEnabled:d,renameDevice:i,removeDevice:o,configureDevice:s,setDeviceDescription:l})}const eEt=["devices","deviceStates","bridgeInfo","availability"],tEt=Ur(["zigbee","common"])(Qr(eEt,na)(JCt)),rEt=tEt,aEt={"device-image":"_device-image_29lej_1"},nEt=e=>{const{t}=Ot("ota"),{device:r,state:a,checkOTA:n,updateOTA:i}=e,o=(a==null?void 0:a.update)??{};switch(o.state){case"updating":return C.jsxs(C.Fragment,{children:[C.jsx("div",{className:"progress",children:C.jsxs("div",{className:"progress-bar progress-bar-striped progress-bar-animated",style:{width:`${o.progress}%`},children:[o.progress,"%"]})}),C.jsx("div",{children:t("remaining_time",{remaining:Zq(o.remaining)})})]});case"available":return C.jsx(lt,{className:"btn btn-danger btn-sm",onClick:i,item:r.friendly_name,prompt:!0,children:t("update")});default:return C.jsx(lt,{className:"btn btn-primary btn-sm",onClick:n,item:r.friendly_name,children:t("check")})}};class iEt extends X.Component{constructor(){super(...arguments),this.checkAllOTA=()=>{const{checkOTA:t}=this.props;this.getAllOtaDevices().forEach(({device:a})=>t(a.friendly_name))}}getAllOtaDevices(){const{devices:t,deviceStates:r,bridgeInfo:{config:a}}=this.props;return Object.values(t).filter(n=>{var i;return((i=n==null?void 0:n.definition)==null?void 0:i.supports_ota)&&!Ef(n,a)}).map(n=>{const i=r[n.friendly_name]??{};return{id:n.friendly_name,device:n,state:i}})}render(){const{checkOTA:t,updateOTA:r,t:a}=this.props,n={checkOTA:t,updateOTA:r},i=this.getAllOtaDevices(),o=[{Header:a("zigbee:pic"),Cell:({row:{original:{device:s,state:l}}})=>C.jsx(If,{className:aEt["device-image"],device:s,deviceStatus:l,disabled:!1}),disableSortBy:!0},{Header:a("zigbee:friendly_name"),accessor:({device:s})=>s.friendly_name,Cell:({row:{original:{device:s}}})=>C.jsx(Qs,{to:Ow(s.ieee_address),children:s.friendly_name})},{Header:a("zigbee:manufacturer"),accessor:({device:s})=>{var l;return[s.manufacturer,(l=s.definition)==null?void 0:l.vendor].join(" ")},Cell:({row:{original:{device:s}}})=>C.jsx(pM,{device:s})},{Header:a("zigbee:model"),accessor:({device:s})=>{var l;return[s.model_id,(l=s.definition)==null?void 0:l.model].join(" ")},Cell:({row:{original:{device:s}}})=>C.jsx(fM,{device:s})},{Header:a("zigbee:firmware_build_date"),accessor:({device:s})=>s.date_code},{Header:a("zigbee:firmware_version"),accessor:({device:s})=>s.software_build_id,Cell:({row:{original:{device:s}}})=>C.jsx(MXe,{device:s})},{Header:()=>C.jsx(lt,{className:"btn btn-danger btn-sm",onClick:this.checkAllOTA,prompt:!0,children:a("check_all")}),accessor:({state:s})=>((s==null?void 0:s.update)??{}).state+"",id:"check_all",Cell:({row:{original:{device:s,state:l}}})=>C.jsx(nEt,{device:s,state:l,...n})}];return C.jsx("div",{className:"card",children:C.jsx("div",{className:"table-responsive",children:C.jsx(U0,{id:"otaDevices",columns:o,data:i,initialState:{sortBy:[{id:"check_all",desc:!1}]}})})})}}const oEt=["devices","deviceStates","bridgeInfo"],sEt=Ur(["ota","zigbee","common"])(Qr(oEt,na)(iEt));class hi extends q.Component{constructor(){super(...arguments),this.state={},this.downloadState=t=>{Xq(tr.getState(),"initialState.json"),t.preventDefault()}}static getDerivedStateFromError(t){return{error:t}}render(){const{error:t}=this.state;if(t){const r={template:"bug_report.yaml",stacktracke:[`**Current url**: ${window.location.toString()}`,`**Previous url**: ${document.referrer}`,`
1058
+ `&&(m-=1),n.right.push({startLine:i.right,endLine:i.right+m}),i.right+=u;break;default:throw new Error("Diff type was not defined.")}}}),n},t.prototype.setCodeMarkers=function(r){r===void 0&&(r={left:[],right:[]});for(var a=[],n={left:[],right:[]},i=0;i<r.left.length;i++){var o={startRow:r.left[i].startLine-1,endRow:r.left[i].endLine,type:"text",className:"codeMarker"};n.left.push(o)}for(var i=0;i<r.right.length;i++){var o={startRow:r.right[i].startLine-1,endRow:r.right[i].endLine,type:"text",className:"codeMarker"};n.right.push(o)}return a[0]=n.left,a[1]=n.right,a},t.prototype.render=function(){var r=this.diff();return o6.createElement(k1t.default,{name:this.props.name,className:this.props.className,focus:this.props.focus,orientation:this.props.orientation,splits:this.props.splits,mode:this.props.mode,theme:this.props.theme,height:this.props.height,width:this.props.width,fontSize:this.props.fontSize,showGutter:this.props.showGutter,onChange:this.onChange,onPaste:this.props.onPaste,onLoad:this.props.onLoad,onScroll:this.props.onScroll,minLines:this.props.minLines,maxLines:this.props.maxLines,readOnly:this.props.readOnly,highlightActiveLine:this.props.highlightActiveLine,showPrintMargin:this.props.showPrintMargin,tabSize:this.props.tabSize,cursorStart:this.props.cursorStart,editorProps:this.props.editorProps,style:this.props.style,scrollMargin:this.props.scrollMargin,setOptions:this.props.setOptions,wrapEnabled:this.props.wrapEnabled,enableBasicAutocompletion:this.props.enableBasicAutocompletion,enableLiveAutocompletion:this.props.enableLiveAutocompletion,value:this.state.value,markers:r})},t.propTypes={cursorStart:er.number,editorProps:er.object,enableBasicAutocompletion:er.bool,enableLiveAutocompletion:er.bool,focus:er.bool,fontSize:er.number,height:er.string,highlightActiveLine:er.bool,maxLines:er.number,minLines:er.number,mode:er.string,name:er.string,className:er.string,onLoad:er.func,onPaste:er.func,onScroll:er.func,onChange:er.func,orientation:er.string,readOnly:er.bool,scrollMargin:er.array,setOptions:er.object,showGutter:er.bool,showPrintMargin:er.bool,splits:er.number,style:er.object,tabSize:er.number,theme:er.string,value:er.array,width:er.string,wrapEnabled:er.bool},t.defaultProps={cursorStart:1,editorProps:{},enableBasicAutocompletion:!1,enableLiveAutocompletion:!1,focus:!1,fontSize:12,height:"500px",highlightActiveLine:!0,maxLines:null,minLines:null,mode:"",name:"ace-editor",onLoad:null,onScroll:null,onPaste:null,onChange:null,orientation:"beside",readOnly:!1,scrollMargin:[0,0,0,0],setOptions:{},showGutter:!0,showPrintMargin:!0,splits:2,style:{},tabSize:4,theme:"github",value:["",""],width:"500px",wrapEnabled:!0},t}(o6.Component);TO.default=A1t;Object.defineProperty(Mc,"__esModule",{value:!0});Mc.diff=Mc.split=void 0;var T1t=AO,C1t=TO;Mc.diff=C1t.default;var E1t=F0;Mc.split=E1t.default;var Dee=Mc.default=T1t.default;class I1t extends q.Component{constructor(){super(...arguments),this.onGenerateExternalDefinitionClick=()=>{const{generateExternalDefinition:t,device:r}=this.props;t(r.ieee_address)}}render(){const{t,generatedExternalDefinitions:r,device:a,theme:n}=this.props,i=r[a.ieee_address];if(i){const o=n==="light"?"github":"dracula";return C.jsxs(C.Fragment,{children:[t("generated_external_definition")," (",C.jsx("a",{href:TD,target:"_blank",rel:"noreferrer",children:t("documentation")}),")",C.jsx(Dee,{setOptions:{useWorker:!1},mode:"javascript",readOnly:!0,name:"UNIQUE_ID_OF_DIV",editorProps:{$blockScrolling:!0},value:i,width:"100%",maxLines:1/0,theme:o,showPrintMargin:!1})]})}else return C.jsx(lt,{className:"btn btn-primary",onClick:this.onGenerateExternalDefinitionClick,children:t("generate_external_definition")})}}const x1t=Ur(["devConsole","common"])(I1t);function D1t(e){const{value:t,onChange:r,attribute:a,definition:n,...i}=e,s={[iH.charStr]:"string",[iH.longCharStr]:"string"}[n.type]??"number",l=u=>{const d=s==="number"?u.target.valueAsNumber:u.target.value;r(a,d)};return C.jsx("input",{className:"form-control",type:s,value:t,onChange:l,...i})}const M1t=["Read result of","Publish 'set' 'read' to","Publish 'set' 'write' to","Wrote "];class O1t extends q.Component{constructor(t){super(t),this.canRead=()=>{const{cluster:n,attributes:i,endpoint:o}=this.state;return!!o&&i.length>0&&!!n},this.onEndpointChange=n=>{this.setState({attributes:[],cluster:"",endpoint:n})},this.onClusterChange=n=>{this.setState({attributes:[],cluster:n})},this.onAttributeSelect=(n,i)=>{const{attributes:o}=this.state;if(!o.find(s=>s.attribute===n)){const s=o.concat([{attribute:n,definition:i}]);this.setState({attributes:s})}},this.onAttributeDelete=n=>{const{attributes:i}=this.state,o=i.filter(s=>s.attribute!==n);this.setState({attributes:o})},this.onReadClick=()=>{const{readDeviceAttributes:n,device:i}=this.props,{cluster:o,attributes:s,endpoint:l}=this.state;n(i.friendly_name,l,o,s.map(u=>u.attribute),{})},this.onWriteClick=()=>{const{writeDeviceAttributes:n,device:i}=this.props,{cluster:o,attributes:s,endpoint:l}=this.state;n(i.friendly_name,l,o,s,{})},this.onAttributeValueChange=(n,i)=>{const{attributes:o}=this.state,s=[...o],l=s.find(u=>u.attribute===n);l&&(l.value=i),this.setState({attributes:s})};const{device:r}=t,a=Object.keys(r.endpoints)[0];this.state={endpoint:a,cluster:"",attributes:[]}}renderSelectedAttribute(){const{attributes:t}=this.state;return t.map(({attribute:r,value:a="",definition:n})=>C.jsx("div",{className:"row mb-1",children:C.jsx("div",{className:"col-3",children:C.jsxs("div",{className:"row",children:[C.jsx("div",{className:"col-6",children:r}),C.jsx("div",{className:"col-3",children:C.jsx(D1t,{value:a,attribute:r,definition:n,onChange:this.onAttributeValueChange,"data-testid":"attribute-value-input"})}),C.jsx("div",{className:"col-2",children:C.jsx(lt,{className:"btn btn-danger btn-sm",item:r,"data-testid":"remove-attribute",onClick:this.onAttributeDelete,children:C.jsx("i",{className:"fas fa-trash"})})})]})})},r))}render(){const{cluster:t,attributes:r,endpoint:a}=this.state,n=r.length===0,i=t==="",{t:o,device:s}=this.props,l=Yl(s),u=d=>M1t.some(c=>d.message.startsWith(c));return C.jsxs(C.Fragment,{children:[C.jsxs("div",{className:"mb-3 row",children:[C.jsx("div",{className:"col-6 col-sm-3",children:C.jsx(Cp,{"data-testid":"endpoint-picker",label:o("zigbee:endpoint"),values:l,value:a,onChange:this.onEndpointChange})}),C.jsx("div",{className:"col-6 col-sm-3",children:C.jsx(yM,{"data-testid":"cluster-picker",label:o("cluster"),pickerType:o0.SINGLE,clusters:Object.keys(H_),value:t,onChange:this.onClusterChange})}),C.jsx("div",{className:"col-6 col-sm-3",children:C.jsx(UZ,{"data-testid":"attribute-picker",label:o("attribute"),value:"",cluster:t,onChange:this.onAttributeSelect})})]}),C.jsx("div",{className:"mb-3 row","data-testid":"selected-attribute",children:this.renderSelectedAttribute()}),C.jsx("div",{className:"mb-3 row",children:C.jsxs("div",{className:"btn-group col col-3",role:"group",children:[C.jsx(lt,{disabled:n||i,className:"btn btn-success me-2","data-testid":"read-attribute",onClick:this.onReadClick,children:o("read")}),C.jsx(lt,{disabled:n||i,className:"btn btn-danger","data-testid":"write-attribute",onClick:this.onWriteClick,children:o("write")})]})}),C.jsx(vee,{logs:this.props.logs,filterFn:u})]})}}const L1t=Ur(["devConsole","common"])(O1t);class R1t extends X.Component{render(){return C.jsxs("div",{children:[C.jsx("div",{className:"card",children:C.jsx("div",{className:"card-body",children:C.jsx(x1t,{theme:this.props.theme,device:this.props.device,generateExternalDefinition:this.props.generateExternalDefinition,generatedExternalDefinitions:this.props.generatedExternalDefinitions})})}),C.jsx("div",{className:"card",children:C.jsx("div",{className:"card-body",children:C.jsx(L1t,{theme:this.props.theme,device:this.props.device,logs:this.props.logs,i18n:this.props.i18n,readDeviceAttributes:this.props.readDeviceAttributes,writeDeviceAttributes:this.props.writeDeviceAttributes})})}),C.jsx("div",{className:"card",children:C.jsx("div",{className:"card-body",children:C.jsx(dkt,{device:this.props.device,logs:this.props.logs,executeCommand:this.props.executeCommand})})})]})}}const P1t=Ur(["devConsole","common"])(R1t);function z1t(e){var o,s;const{device:t,bridgeInfo:{config:r},setDeviceOptions:a}=e,{t:n}=Ot(["exposes"]),i=r.devices[t.ieee_address]??{};return(s=(o=t.definition)==null?void 0:o.options)!=null&&s.length?C.jsx(uo,{showEndpointLabels:!0,feature:{features:t.definition.options},type:"composite",device:t,deviceState:i,onChange:async(l,u)=>{await a(t.ieee_address,u)},featureWrapperClass:MM}):n("empty_exposes_definition")}const $1t=["bridgeInfo"],N1t=Qr($1t,na)(z1t),F1t=N1t,Mee=!!(typeof window<"u"&&window.document&&window.document.createElement);var dI=!1,cI=!1;try{var RA={get passive(){return dI=!0},get once(){return cI=dI=!0}};Mee&&(window.addEventListener("test",RA,RA),window.removeEventListener("test",RA,!0))}catch{}function Oee(e,t,r,a){if(a&&typeof a!="boolean"&&!cI){var n=a.once,i=a.capture,o=r;!cI&&n&&(o=r.__once||function s(l){this.removeEventListener(t,s,i),r.call(this,l)},r.__once=o),e.addEventListener(t,o,dI?a:i)}e.addEventListener(t,r,a)}function j1t(e,t,r){const a=X.useRef(e!==void 0),[n,i]=X.useState(t),o=e!==void 0,s=a.current;return a.current=o,!o&&s&&n!==t&&i(t),[o?e:n,X.useCallback((...l)=>{const[u,...d]=l;let c=r==null?void 0:r(u,...d);return i(u),c},[r])]}function H1t(e){const t=X.useRef(null);return X.useEffect(()=>{t.current=e}),t.current}function B1t(e,t,r,a=!1){const n=Ei(r);X.useEffect(()=>{const i=typeof e=="function"?e():e;return i.addEventListener(t,n,a),()=>i.removeEventListener(t,n,a)},[e])}const W1t=X.createContext(null),B0=W1t;function U1t(){return X.useState(null)}var s6=Object.prototype.hasOwnProperty;function l6(e,t,r){for(r of e.keys())if(Bh(r,t))return r}function Bh(e,t){var r,a,n;if(e===t)return!0;if(e&&t&&(r=e.constructor)===t.constructor){if(r===Date)return e.getTime()===t.getTime();if(r===RegExp)return e.toString()===t.toString();if(r===Array){if((a=e.length)===t.length)for(;a--&&Bh(e[a],t[a]););return a===-1}if(r===Set){if(e.size!==t.size)return!1;for(a of e)if(n=a,n&&typeof n=="object"&&(n=l6(t,n),!n)||!t.has(n))return!1;return!0}if(r===Map){if(e.size!==t.size)return!1;for(a of e)if(n=a[0],n&&typeof n=="object"&&(n=l6(t,n),!n)||!Bh(a[1],t.get(n)))return!1;return!0}if(r===ArrayBuffer)e=new Uint8Array(e),t=new Uint8Array(t);else if(r===DataView){if((a=e.byteLength)===t.byteLength)for(;a--&&e.getInt8(a)===t.getInt8(a););return a===-1}if(ArrayBuffer.isView(e)){if((a=e.byteLength)===t.byteLength)for(;a--&&e[a]===t[a];);return a===-1}if(!r||typeof e=="object"){a=0;for(r in e)if(s6.call(e,r)&&++a&&!s6.call(t,r)||!(r in t)||!Bh(e[r],t[r]))return!1;return Object.keys(t).length===a}}return e!==e&&t!==t}function V1t(){const e=X.useRef(!0),t=X.useRef(()=>e.current);return X.useEffect(()=>(e.current=!0,()=>{e.current=!1}),[]),t.current}function G1t(e){const t=V1t();return[e[0],X.useCallback(r=>{if(t())return e[1](r)},[t,e[1]])]}var on="top",Jn="bottom",ei="right",sn="left",DO="auto",Xf=[on,Jn,ei,sn],Oc="start",$p="end",q1t="clippingParents",Lee="viewport",th="popper",K1t="reference",u6=Xf.reduce(function(e,t){return e.concat([t+"-"+Oc,t+"-"+$p])},[]),Ree=[].concat(Xf,[DO]).reduce(function(e,t){return e.concat([t,t+"-"+Oc,t+"-"+$p])},[]),Z1t="beforeRead",Q1t="read",Y1t="afterRead",X1t="beforeMain",J1t="main",eSt="afterMain",tSt="beforeWrite",rSt="write",aSt="afterWrite",nSt=[Z1t,Q1t,Y1t,X1t,J1t,eSt,tSt,rSt,aSt];function Ji(e){return e.split("-")[0]}function kn(e){if(e==null)return window;if(e.toString()!=="[object Window]"){var t=e.ownerDocument;return t&&t.defaultView||window}return e}function gu(e){var t=kn(e).Element;return e instanceof t||e instanceof Element}function eo(e){var t=kn(e).HTMLElement;return e instanceof t||e instanceof HTMLElement}function MO(e){if(typeof ShadowRoot>"u")return!1;var t=kn(e).ShadowRoot;return e instanceof t||e instanceof ShadowRoot}var tu=Math.max,ob=Math.min,Lc=Math.round;function mI(){var e=navigator.userAgentData;return e!=null&&e.brands&&Array.isArray(e.brands)?e.brands.map(function(t){return t.brand+"/"+t.version}).join(" "):navigator.userAgent}function Pee(){return!/^((?!chrome|android).)*safari/i.test(mI())}function Rc(e,t,r){t===void 0&&(t=!1),r===void 0&&(r=!1);var a=e.getBoundingClientRect(),n=1,i=1;t&&eo(e)&&(n=e.offsetWidth>0&&Lc(a.width)/e.offsetWidth||1,i=e.offsetHeight>0&&Lc(a.height)/e.offsetHeight||1);var o=gu(e)?kn(e):window,s=o.visualViewport,l=!Pee()&&r,u=(a.left+(l&&s?s.offsetLeft:0))/n,d=(a.top+(l&&s?s.offsetTop:0))/i,c=a.width/n,m=a.height/i;return{width:c,height:m,top:d,right:u+c,bottom:d+m,left:u,x:u,y:d}}function OO(e){var t=Rc(e),r=e.offsetWidth,a=e.offsetHeight;return Math.abs(t.width-r)<=1&&(r=t.width),Math.abs(t.height-a)<=1&&(a=t.height),{x:e.offsetLeft,y:e.offsetTop,width:r,height:a}}function zee(e,t){var r=t.getRootNode&&t.getRootNode();if(e.contains(t))return!0;if(r&&MO(r)){var a=t;do{if(a&&e.isSameNode(a))return!0;a=a.parentNode||a.host}while(a)}return!1}function Xs(e){return e?(e.nodeName||"").toLowerCase():null}function Vo(e){return kn(e).getComputedStyle(e)}function iSt(e){return["table","td","th"].indexOf(Xs(e))>=0}function fl(e){return((gu(e)?e.ownerDocument:e.document)||window.document).documentElement}function W0(e){return Xs(e)==="html"?e:e.assignedSlot||e.parentNode||(MO(e)?e.host:null)||fl(e)}function d6(e){return!eo(e)||Vo(e).position==="fixed"?null:e.offsetParent}function oSt(e){var t=/firefox/i.test(mI()),r=/Trident/i.test(mI());if(r&&eo(e)){var a=Vo(e);if(a.position==="fixed")return null}var n=W0(e);for(MO(n)&&(n=n.host);eo(n)&&["html","body"].indexOf(Xs(n))<0;){var i=Vo(n);if(i.transform!=="none"||i.perspective!=="none"||i.contain==="paint"||["transform","perspective"].indexOf(i.willChange)!==-1||t&&i.willChange==="filter"||t&&i.filter&&i.filter!=="none")return n;n=n.parentNode}return null}function Jf(e){for(var t=kn(e),r=d6(e);r&&iSt(r)&&Vo(r).position==="static";)r=d6(r);return r&&(Xs(r)==="html"||Xs(r)==="body"&&Vo(r).position==="static")?t:r||oSt(e)||t}function LO(e){return["top","bottom"].indexOf(e)>=0?"x":"y"}function Wh(e,t,r){return tu(e,ob(t,r))}function sSt(e,t,r){var a=Wh(e,t,r);return a>r?r:a}function $ee(){return{top:0,right:0,bottom:0,left:0}}function Nee(e){return Object.assign({},$ee(),e)}function Fee(e,t){return t.reduce(function(r,a){return r[a]=e,r},{})}var lSt=function(t,r){return t=typeof t=="function"?t(Object.assign({},r.rects,{placement:r.placement})):t,Nee(typeof t!="number"?t:Fee(t,Xf))};function uSt(e){var t,r=e.state,a=e.name,n=e.options,i=r.elements.arrow,o=r.modifiersData.popperOffsets,s=Ji(r.placement),l=LO(s),u=[sn,ei].indexOf(s)>=0,d=u?"height":"width";if(!(!i||!o)){var c=lSt(n.padding,r),m=OO(i),h=l==="y"?on:sn,p=l==="y"?Jn:ei,f=r.rects.reference[d]+r.rects.reference[l]-o[l]-r.rects.popper[d],v=o[l]-r.rects.reference[l],y=Jf(i),_=y?l==="y"?y.clientHeight||0:y.clientWidth||0:0,w=f/2-v/2,k=c[h],S=_-m[d]-c[p],A=_/2-m[d]/2+w,T=Wh(k,A,S),E=l;r.modifiersData[a]=(t={},t[E]=T,t.centerOffset=T-A,t)}}function dSt(e){var t=e.state,r=e.options,a=r.element,n=a===void 0?"[data-popper-arrow]":a;n!=null&&(typeof n=="string"&&(n=t.elements.popper.querySelector(n),!n)||zee(t.elements.popper,n)&&(t.elements.arrow=n))}const cSt={name:"arrow",enabled:!0,phase:"main",fn:uSt,effect:dSt,requires:["popperOffsets"],requiresIfExists:["preventOverflow"]};function Pc(e){return e.split("-")[1]}var mSt={top:"auto",right:"auto",bottom:"auto",left:"auto"};function hSt(e,t){var r=e.x,a=e.y,n=t.devicePixelRatio||1;return{x:Lc(r*n)/n||0,y:Lc(a*n)/n||0}}function c6(e){var t,r=e.popper,a=e.popperRect,n=e.placement,i=e.variation,o=e.offsets,s=e.position,l=e.gpuAcceleration,u=e.adaptive,d=e.roundOffsets,c=e.isFixed,m=o.x,h=m===void 0?0:m,p=o.y,f=p===void 0?0:p,v=typeof d=="function"?d({x:h,y:f}):{x:h,y:f};h=v.x,f=v.y;var y=o.hasOwnProperty("x"),_=o.hasOwnProperty("y"),w=sn,k=on,S=window;if(u){var A=Jf(r),T="clientHeight",E="clientWidth";if(A===kn(r)&&(A=fl(r),Vo(A).position!=="static"&&s==="absolute"&&(T="scrollHeight",E="scrollWidth")),A=A,n===on||(n===sn||n===ei)&&i===$p){k=Jn;var D=c&&A===S&&S.visualViewport?S.visualViewport.height:A[T];f-=D-a.height,f*=l?1:-1}if(n===sn||(n===on||n===Jn)&&i===$p){w=ei;var I=c&&A===S&&S.visualViewport?S.visualViewport.width:A[E];h-=I-a.width,h*=l?1:-1}}var x=Object.assign({position:s},u&&mSt),O=d===!0?hSt({x:h,y:f},kn(r)):{x:h,y:f};if(h=O.x,f=O.y,l){var M;return Object.assign({},x,(M={},M[k]=_?"0":"",M[w]=y?"0":"",M.transform=(S.devicePixelRatio||1)<=1?"translate("+h+"px, "+f+"px)":"translate3d("+h+"px, "+f+"px, 0)",M))}return Object.assign({},x,(t={},t[k]=_?f+"px":"",t[w]=y?h+"px":"",t.transform="",t))}function pSt(e){var t=e.state,r=e.options,a=r.gpuAcceleration,n=a===void 0?!0:a,i=r.adaptive,o=i===void 0?!0:i,s=r.roundOffsets,l=s===void 0?!0:s,u={placement:Ji(t.placement),variation:Pc(t.placement),popper:t.elements.popper,popperRect:t.rects.popper,gpuAcceleration:n,isFixed:t.options.strategy==="fixed"};t.modifiersData.popperOffsets!=null&&(t.styles.popper=Object.assign({},t.styles.popper,c6(Object.assign({},u,{offsets:t.modifiersData.popperOffsets,position:t.options.strategy,adaptive:o,roundOffsets:l})))),t.modifiersData.arrow!=null&&(t.styles.arrow=Object.assign({},t.styles.arrow,c6(Object.assign({},u,{offsets:t.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:l})))),t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-placement":t.placement})}const fSt={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:pSt,data:{}};var Nv={passive:!0};function gSt(e){var t=e.state,r=e.instance,a=e.options,n=a.scroll,i=n===void 0?!0:n,o=a.resize,s=o===void 0?!0:o,l=kn(t.elements.popper),u=[].concat(t.scrollParents.reference,t.scrollParents.popper);return i&&u.forEach(function(d){d.addEventListener("scroll",r.update,Nv)}),s&&l.addEventListener("resize",r.update,Nv),function(){i&&u.forEach(function(d){d.removeEventListener("scroll",r.update,Nv)}),s&&l.removeEventListener("resize",r.update,Nv)}}const vSt={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:gSt,data:{}};var ySt={left:"right",right:"left",bottom:"top",top:"bottom"};function Ty(e){return e.replace(/left|right|bottom|top/g,function(t){return ySt[t]})}var _St={start:"end",end:"start"};function m6(e){return e.replace(/start|end/g,function(t){return _St[t]})}function RO(e){var t=kn(e),r=t.pageXOffset,a=t.pageYOffset;return{scrollLeft:r,scrollTop:a}}function PO(e){return Rc(fl(e)).left+RO(e).scrollLeft}function bSt(e,t){var r=kn(e),a=fl(e),n=r.visualViewport,i=a.clientWidth,o=a.clientHeight,s=0,l=0;if(n){i=n.width,o=n.height;var u=Pee();(u||!u&&t==="fixed")&&(s=n.offsetLeft,l=n.offsetTop)}return{width:i,height:o,x:s+PO(e),y:l}}function wSt(e){var t,r=fl(e),a=RO(e),n=(t=e.ownerDocument)==null?void 0:t.body,i=tu(r.scrollWidth,r.clientWidth,n?n.scrollWidth:0,n?n.clientWidth:0),o=tu(r.scrollHeight,r.clientHeight,n?n.scrollHeight:0,n?n.clientHeight:0),s=-a.scrollLeft+PO(e),l=-a.scrollTop;return Vo(n||r).direction==="rtl"&&(s+=tu(r.clientWidth,n?n.clientWidth:0)-i),{width:i,height:o,x:s,y:l}}function zO(e){var t=Vo(e),r=t.overflow,a=t.overflowX,n=t.overflowY;return/auto|scroll|overlay|hidden/.test(r+n+a)}function jee(e){return["html","body","#document"].indexOf(Xs(e))>=0?e.ownerDocument.body:eo(e)&&zO(e)?e:jee(W0(e))}function Uh(e,t){var r;t===void 0&&(t=[]);var a=jee(e),n=a===((r=e.ownerDocument)==null?void 0:r.body),i=kn(a),o=n?[i].concat(i.visualViewport||[],zO(a)?a:[]):a,s=t.concat(o);return n?s:s.concat(Uh(W0(o)))}function hI(e){return Object.assign({},e,{left:e.x,top:e.y,right:e.x+e.width,bottom:e.y+e.height})}function kSt(e,t){var r=Rc(e,!1,t==="fixed");return r.top=r.top+e.clientTop,r.left=r.left+e.clientLeft,r.bottom=r.top+e.clientHeight,r.right=r.left+e.clientWidth,r.width=e.clientWidth,r.height=e.clientHeight,r.x=r.left,r.y=r.top,r}function h6(e,t,r){return t===Lee?hI(bSt(e,r)):gu(t)?kSt(t,r):hI(wSt(fl(e)))}function SSt(e){var t=Uh(W0(e)),r=["absolute","fixed"].indexOf(Vo(e).position)>=0,a=r&&eo(e)?Jf(e):e;return gu(a)?t.filter(function(n){return gu(n)&&zee(n,a)&&Xs(n)!=="body"}):[]}function ASt(e,t,r,a){var n=t==="clippingParents"?SSt(e):[].concat(t),i=[].concat(n,[r]),o=i[0],s=i.reduce(function(l,u){var d=h6(e,u,a);return l.top=tu(d.top,l.top),l.right=ob(d.right,l.right),l.bottom=ob(d.bottom,l.bottom),l.left=tu(d.left,l.left),l},h6(e,o,a));return s.width=s.right-s.left,s.height=s.bottom-s.top,s.x=s.left,s.y=s.top,s}function Hee(e){var t=e.reference,r=e.element,a=e.placement,n=a?Ji(a):null,i=a?Pc(a):null,o=t.x+t.width/2-r.width/2,s=t.y+t.height/2-r.height/2,l;switch(n){case on:l={x:o,y:t.y-r.height};break;case Jn:l={x:o,y:t.y+t.height};break;case ei:l={x:t.x+t.width,y:s};break;case sn:l={x:t.x-r.width,y:s};break;default:l={x:t.x,y:t.y}}var u=n?LO(n):null;if(u!=null){var d=u==="y"?"height":"width";switch(i){case Oc:l[u]=l[u]-(t[d]/2-r[d]/2);break;case $p:l[u]=l[u]+(t[d]/2-r[d]/2);break}}return l}function Np(e,t){t===void 0&&(t={});var r=t,a=r.placement,n=a===void 0?e.placement:a,i=r.strategy,o=i===void 0?e.strategy:i,s=r.boundary,l=s===void 0?q1t:s,u=r.rootBoundary,d=u===void 0?Lee:u,c=r.elementContext,m=c===void 0?th:c,h=r.altBoundary,p=h===void 0?!1:h,f=r.padding,v=f===void 0?0:f,y=Nee(typeof v!="number"?v:Fee(v,Xf)),_=m===th?K1t:th,w=e.rects.popper,k=e.elements[p?_:m],S=ASt(gu(k)?k:k.contextElement||fl(e.elements.popper),l,d,o),A=Rc(e.elements.reference),T=Hee({reference:A,element:w,strategy:"absolute",placement:n}),E=hI(Object.assign({},w,T)),D=m===th?E:A,I={top:S.top-D.top+y.top,bottom:D.bottom-S.bottom+y.bottom,left:S.left-D.left+y.left,right:D.right-S.right+y.right},x=e.modifiersData.offset;if(m===th&&x){var O=x[n];Object.keys(I).forEach(function(M){var b=[ei,Jn].indexOf(M)>=0?1:-1,L=[on,Jn].indexOf(M)>=0?"y":"x";I[M]+=O[L]*b})}return I}function TSt(e,t){t===void 0&&(t={});var r=t,a=r.placement,n=r.boundary,i=r.rootBoundary,o=r.padding,s=r.flipVariations,l=r.allowedAutoPlacements,u=l===void 0?Ree:l,d=Pc(a),c=d?s?u6:u6.filter(function(p){return Pc(p)===d}):Xf,m=c.filter(function(p){return u.indexOf(p)>=0});m.length===0&&(m=c);var h=m.reduce(function(p,f){return p[f]=Np(e,{placement:f,boundary:n,rootBoundary:i,padding:o})[Ji(f)],p},{});return Object.keys(h).sort(function(p,f){return h[p]-h[f]})}function CSt(e){if(Ji(e)===DO)return[];var t=Ty(e);return[m6(e),t,m6(t)]}function ESt(e){var t=e.state,r=e.options,a=e.name;if(!t.modifiersData[a]._skip){for(var n=r.mainAxis,i=n===void 0?!0:n,o=r.altAxis,s=o===void 0?!0:o,l=r.fallbackPlacements,u=r.padding,d=r.boundary,c=r.rootBoundary,m=r.altBoundary,h=r.flipVariations,p=h===void 0?!0:h,f=r.allowedAutoPlacements,v=t.options.placement,y=Ji(v),_=y===v,w=l||(_||!p?[Ty(v)]:CSt(v)),k=[v].concat(w).reduce(function(U,Y){return U.concat(Ji(Y)===DO?TSt(t,{placement:Y,boundary:d,rootBoundary:c,padding:u,flipVariations:p,allowedAutoPlacements:f}):Y)},[]),S=t.rects.reference,A=t.rects.popper,T=new Map,E=!0,D=k[0],I=0;I<k.length;I++){var x=k[I],O=Ji(x),M=Pc(x)===Oc,b=[on,Jn].indexOf(O)>=0,L=b?"width":"height",R=Np(t,{placement:x,boundary:d,rootBoundary:c,altBoundary:m,padding:u}),N=b?M?ei:sn:M?Jn:on;S[L]>A[L]&&(N=Ty(N));var H=Ty(N),z=[];if(i&&z.push(R[O]<=0),s&&z.push(R[N]<=0,R[H]<=0),z.every(function(U){return U})){D=x,E=!1;break}T.set(x,z)}if(E)for(var F=p?3:1,j=function(Y){var le=k.find(function(fe){var he=T.get(fe);if(he)return he.slice(0,Y).every(function(Te){return Te})});if(le)return D=le,"break"},B=F;B>0;B--){var G=j(B);if(G==="break")break}t.placement!==D&&(t.modifiersData[a]._skip=!0,t.placement=D,t.reset=!0)}}const ISt={name:"flip",enabled:!0,phase:"main",fn:ESt,requiresIfExists:["offset"],data:{_skip:!1}};function p6(e,t,r){return r===void 0&&(r={x:0,y:0}),{top:e.top-t.height-r.y,right:e.right-t.width+r.x,bottom:e.bottom-t.height+r.y,left:e.left-t.width-r.x}}function f6(e){return[on,ei,Jn,sn].some(function(t){return e[t]>=0})}function xSt(e){var t=e.state,r=e.name,a=t.rects.reference,n=t.rects.popper,i=t.modifiersData.preventOverflow,o=Np(t,{elementContext:"reference"}),s=Np(t,{altBoundary:!0}),l=p6(o,a),u=p6(s,n,i),d=f6(l),c=f6(u);t.modifiersData[r]={referenceClippingOffsets:l,popperEscapeOffsets:u,isReferenceHidden:d,hasPopperEscaped:c},t.attributes.popper=Object.assign({},t.attributes.popper,{"data-popper-reference-hidden":d,"data-popper-escaped":c})}const DSt={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:xSt};function MSt(e,t,r){var a=Ji(e),n=[sn,on].indexOf(a)>=0?-1:1,i=typeof r=="function"?r(Object.assign({},t,{placement:e})):r,o=i[0],s=i[1];return o=o||0,s=(s||0)*n,[sn,ei].indexOf(a)>=0?{x:s,y:o}:{x:o,y:s}}function OSt(e){var t=e.state,r=e.options,a=e.name,n=r.offset,i=n===void 0?[0,0]:n,o=Ree.reduce(function(d,c){return d[c]=MSt(c,t.rects,i),d},{}),s=o[t.placement],l=s.x,u=s.y;t.modifiersData.popperOffsets!=null&&(t.modifiersData.popperOffsets.x+=l,t.modifiersData.popperOffsets.y+=u),t.modifiersData[a]=o}const LSt={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:OSt};function RSt(e){var t=e.state,r=e.name;t.modifiersData[r]=Hee({reference:t.rects.reference,element:t.rects.popper,strategy:"absolute",placement:t.placement})}const PSt={name:"popperOffsets",enabled:!0,phase:"read",fn:RSt,data:{}};function zSt(e){return e==="x"?"y":"x"}function $St(e){var t=e.state,r=e.options,a=e.name,n=r.mainAxis,i=n===void 0?!0:n,o=r.altAxis,s=o===void 0?!1:o,l=r.boundary,u=r.rootBoundary,d=r.altBoundary,c=r.padding,m=r.tether,h=m===void 0?!0:m,p=r.tetherOffset,f=p===void 0?0:p,v=Np(t,{boundary:l,rootBoundary:u,padding:c,altBoundary:d}),y=Ji(t.placement),_=Pc(t.placement),w=!_,k=LO(y),S=zSt(k),A=t.modifiersData.popperOffsets,T=t.rects.reference,E=t.rects.popper,D=typeof f=="function"?f(Object.assign({},t.rects,{placement:t.placement})):f,I=typeof D=="number"?{mainAxis:D,altAxis:D}:Object.assign({mainAxis:0,altAxis:0},D),x=t.modifiersData.offset?t.modifiersData.offset[t.placement]:null,O={x:0,y:0};if(A){if(i){var M,b=k==="y"?on:sn,L=k==="y"?Jn:ei,R=k==="y"?"height":"width",N=A[k],H=N+v[b],z=N-v[L],F=h?-E[R]/2:0,j=_===Oc?T[R]:E[R],B=_===Oc?-E[R]:-T[R],G=t.elements.arrow,U=h&&G?OO(G):{width:0,height:0},Y=t.modifiersData["arrow#persistent"]?t.modifiersData["arrow#persistent"].padding:$ee(),le=Y[b],fe=Y[L],he=Wh(0,T[R],U[R]),Te=w?T[R]/2-F-he-le-I.mainAxis:j-he-le-I.mainAxis,Le=w?-T[R]/2+F+he+fe+I.mainAxis:B+he+fe+I.mainAxis,ue=t.elements.arrow&&Jf(t.elements.arrow),ye=ue?k==="y"?ue.clientTop||0:ue.clientLeft||0:0,Ie=(M=x==null?void 0:x[k])!=null?M:0,$=N+Te-Ie-ye,ge=N+Le-Ie,ae=Wh(h?ob(H,$):H,N,h?tu(z,ge):z);A[k]=ae,O[k]=ae-N}if(s){var K,Z=k==="x"?on:sn,re=k==="x"?Jn:ei,_e=A[S],Ae=S==="y"?"height":"width",de=_e+v[Z],be=_e-v[re],Me=[on,sn].indexOf(y)!==-1,xe=(K=x==null?void 0:x[S])!=null?K:0,me=Me?de:_e-T[Ae]-E[Ae]-xe+I.altAxis,De=Me?_e+T[Ae]+E[Ae]-xe-I.altAxis:be,Re=h&&Me?sSt(me,_e,De):Wh(h?me:de,_e,h?De:be);A[S]=Re,O[S]=Re-_e}t.modifiersData[a]=O}}const NSt={name:"preventOverflow",enabled:!0,phase:"main",fn:$St,requiresIfExists:["offset"]};function FSt(e){return{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}}function jSt(e){return e===kn(e)||!eo(e)?RO(e):FSt(e)}function HSt(e){var t=e.getBoundingClientRect(),r=Lc(t.width)/e.offsetWidth||1,a=Lc(t.height)/e.offsetHeight||1;return r!==1||a!==1}function BSt(e,t,r){r===void 0&&(r=!1);var a=eo(t),n=eo(t)&&HSt(t),i=fl(t),o=Rc(e,n,r),s={scrollLeft:0,scrollTop:0},l={x:0,y:0};return(a||!a&&!r)&&((Xs(t)!=="body"||zO(i))&&(s=jSt(t)),eo(t)?(l=Rc(t,!0),l.x+=t.clientLeft,l.y+=t.clientTop):i&&(l.x=PO(i))),{x:o.left+s.scrollLeft-l.x,y:o.top+s.scrollTop-l.y,width:o.width,height:o.height}}function WSt(e){var t=new Map,r=new Set,a=[];e.forEach(function(i){t.set(i.name,i)});function n(i){r.add(i.name);var o=[].concat(i.requires||[],i.requiresIfExists||[]);o.forEach(function(s){if(!r.has(s)){var l=t.get(s);l&&n(l)}}),a.push(i)}return e.forEach(function(i){r.has(i.name)||n(i)}),a}function USt(e){var t=WSt(e);return nSt.reduce(function(r,a){return r.concat(t.filter(function(n){return n.phase===a}))},[])}function VSt(e){var t;return function(){return t||(t=new Promise(function(r){Promise.resolve().then(function(){t=void 0,r(e())})})),t}}function GSt(e){var t=e.reduce(function(r,a){var n=r[a.name];return r[a.name]=n?Object.assign({},n,a,{options:Object.assign({},n.options,a.options),data:Object.assign({},n.data,a.data)}):a,r},{});return Object.keys(t).map(function(r){return t[r]})}var g6={placement:"bottom",modifiers:[],strategy:"absolute"};function v6(){for(var e=arguments.length,t=new Array(e),r=0;r<e;r++)t[r]=arguments[r];return!t.some(function(a){return!(a&&typeof a.getBoundingClientRect=="function")})}function qSt(e){e===void 0&&(e={});var t=e,r=t.defaultModifiers,a=r===void 0?[]:r,n=t.defaultOptions,i=n===void 0?g6:n;return function(s,l,u){u===void 0&&(u=i);var d={placement:"bottom",orderedModifiers:[],options:Object.assign({},g6,i),modifiersData:{},elements:{reference:s,popper:l},attributes:{},styles:{}},c=[],m=!1,h={state:d,setOptions:function(y){var _=typeof y=="function"?y(d.options):y;f(),d.options=Object.assign({},i,d.options,_),d.scrollParents={reference:gu(s)?Uh(s):s.contextElement?Uh(s.contextElement):[],popper:Uh(l)};var w=USt(GSt([].concat(a,d.options.modifiers)));return d.orderedModifiers=w.filter(function(k){return k.enabled}),p(),h.update()},forceUpdate:function(){if(!m){var y=d.elements,_=y.reference,w=y.popper;if(v6(_,w)){d.rects={reference:BSt(_,Jf(w),d.options.strategy==="fixed"),popper:OO(w)},d.reset=!1,d.placement=d.options.placement,d.orderedModifiers.forEach(function(I){return d.modifiersData[I.name]=Object.assign({},I.data)});for(var k=0;k<d.orderedModifiers.length;k++){if(d.reset===!0){d.reset=!1,k=-1;continue}var S=d.orderedModifiers[k],A=S.fn,T=S.options,E=T===void 0?{}:T,D=S.name;typeof A=="function"&&(d=A({state:d,options:E,name:D,instance:h})||d)}}}},update:VSt(function(){return new Promise(function(v){h.forceUpdate(),v(d)})}),destroy:function(){f(),m=!0}};if(!v6(s,l))return h;h.setOptions(u).then(function(v){!m&&u.onFirstUpdate&&u.onFirstUpdate(v)});function p(){d.orderedModifiers.forEach(function(v){var y=v.name,_=v.options,w=_===void 0?{}:_,k=v.effect;if(typeof k=="function"){var S=k({state:d,name:y,instance:h,options:w}),A=function(){};c.push(S||A)}})}function f(){c.forEach(function(v){return v()}),c=[]}return h}}const KSt=qSt({defaultModifiers:[DSt,PSt,fSt,vSt,LSt,ISt,NSt,cSt]}),ZSt=["enabled","placement","strategy","modifiers"];function QSt(e,t){if(e==null)return{};var r={},a=Object.keys(e),n,i;for(i=0;i<a.length;i++)n=a[i],!(t.indexOf(n)>=0)&&(r[n]=e[n]);return r}const YSt={name:"applyStyles",enabled:!1,phase:"afterWrite",fn:()=>{}},XSt={name:"ariaDescribedBy",enabled:!0,phase:"afterWrite",effect:({state:e})=>()=>{const{reference:t,popper:r}=e.elements;if("removeAttribute"in t){const a=(t.getAttribute("aria-describedby")||"").split(",").filter(n=>n.trim()!==r.id);a.length?t.setAttribute("aria-describedby",a.join(",")):t.removeAttribute("aria-describedby")}},fn:({state:e})=>{var t;const{popper:r,reference:a}=e.elements,n=(t=r.getAttribute("role"))==null?void 0:t.toLowerCase();if(r.id&&n==="tooltip"&&"setAttribute"in a){const i=a.getAttribute("aria-describedby");if(i&&i.split(",").indexOf(r.id)!==-1)return;a.setAttribute("aria-describedby",i?`${i},${r.id}`:r.id)}}},JSt=[];function eAt(e,t,r={}){let{enabled:a=!0,placement:n="bottom",strategy:i="absolute",modifiers:o=JSt}=r,s=QSt(r,ZSt);const l=X.useRef(o),u=X.useRef(),d=X.useCallback(()=>{var v;(v=u.current)==null||v.update()},[]),c=X.useCallback(()=>{var v;(v=u.current)==null||v.forceUpdate()},[]),[m,h]=G1t(X.useState({placement:n,update:d,forceUpdate:c,attributes:{},styles:{popper:{},arrow:{}}})),p=X.useMemo(()=>({name:"updateStateModifier",enabled:!0,phase:"write",requires:["computeStyles"],fn:({state:v})=>{const y={},_={};Object.keys(v.elements).forEach(w=>{y[w]=v.styles[w],_[w]=v.attributes[w]}),h({state:v,styles:y,attributes:_,update:d,forceUpdate:c,placement:v.placement})}}),[d,c,h]),f=X.useMemo(()=>(Bh(l.current,o)||(l.current=o),l.current),[o]);return X.useEffect(()=>{!u.current||!a||u.current.setOptions({placement:n,strategy:i,modifiers:[...f,p,YSt]})},[i,n,p,a,f]),X.useEffect(()=>{if(!(!a||e==null||t==null))return u.current=KSt(e,t,Object.assign({},s,{placement:n,strategy:i,modifiers:[...f,XSt,p]})),()=>{u.current!=null&&(u.current.destroy(),u.current=void 0,h(v=>Object.assign({},v,{attributes:{},styles:{popper:{}}})))}},[a,e,t]),m}function y6(e,t){if(e.contains)return e.contains(t);if(e.compareDocumentPosition)return e===t||!!(e.compareDocumentPosition(t)&16)}function tAt(e,t,r,a){var n=a&&typeof a!="boolean"?a.capture:a;e.removeEventListener(t,r,n),r.__once&&e.removeEventListener(t,r.__once,n)}function Fv(e,t,r,a){return Oee(e,t,r,a),function(){tAt(e,t,r,a)}}function rAt(e){return e&&e.ownerDocument||document}const _6=()=>{};function aAt(e){return e.button===0}function nAt(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}const PA=e=>e&&("current"in e?e.current:e),b6={click:"mousedown",mouseup:"mousedown",pointerup:"pointerdown"};function iAt(e,t=_6,{disabled:r,clickTrigger:a="click"}={}){const n=X.useRef(!1),i=X.useRef(!1),o=X.useCallback(u=>{const d=PA(e);Zyt(!!d,"ClickOutside captured a close event but does not have a ref to compare it to. useClickOutside(), should be passed a ref that resolves to a DOM node"),n.current=!d||nAt(u)||!aAt(u)||!!y6(d,u.target)||i.current,i.current=!1},[e]),s=Ei(u=>{const d=PA(e);d&&y6(d,u.target)&&(i.current=!0)}),l=Ei(u=>{n.current||t(u)});X.useEffect(()=>{var u,d;if(r||e==null)return;const c=rAt(PA(e)),m=c.defaultView||window;let h=(u=m.event)!=null?u:(d=m.parent)==null?void 0:d.event,p=null;b6[a]&&(p=Fv(c,b6[a],s,!0));const f=Fv(c,a,o,!0),v=Fv(c,a,_=>{if(_===h){h=void 0;return}l(_)});let y=[];return"ontouchstart"in c.documentElement&&(y=[].slice.call(c.body.children).map(_=>Fv(_,"mousemove",_6))),()=>{p==null||p(),f(),v(),y.forEach(_=>_())}},[e,r,a,o,s,l])}function oAt(e){const t={};return Array.isArray(e)?(e==null||e.forEach(r=>{t[r.name]=r}),t):e||t}function sAt(e={}){return Array.isArray(e)?e:Object.keys(e).map(t=>(e[t].name=t,e[t]))}function lAt({enabled:e,enableEvents:t,placement:r,flip:a,offset:n,fixed:i,containerPadding:o,arrowElement:s,popperConfig:l={}}){var u,d,c,m,h;const p=oAt(l.modifiers);return Object.assign({},l,{placement:r,enabled:e,strategy:i?"fixed":l.strategy,modifiers:sAt(Object.assign({},p,{eventListeners:{enabled:t,options:(u=p.eventListeners)==null?void 0:u.options},preventOverflow:Object.assign({},p.preventOverflow,{options:o?Object.assign({padding:o},(d=p.preventOverflow)==null?void 0:d.options):(c=p.preventOverflow)==null?void 0:c.options}),offset:{options:Object.assign({offset:n},(m=p.offset)==null?void 0:m.options)},arrow:Object.assign({},p.arrow,{enabled:!!s,options:Object.assign({},(h=p.arrow)==null?void 0:h.options,{element:s})}),flip:Object.assign({enabled:!!a},p.flip)}))})}const uAt=["children"];function dAt(e,t){if(e==null)return{};var r={},a=Object.keys(e),n,i;for(i=0;i<a.length;i++)n=a[i],!(t.indexOf(n)>=0)&&(r[n]=e[n]);return r}const cAt=()=>{};function Bee(e={}){const t=X.useContext(B0),[r,a]=U1t(),n=X.useRef(!1),{flip:i,offset:o,rootCloseEvent:s,fixed:l=!1,placement:u,popperConfig:d={},enableEventListeners:c=!0,usePopper:m=!!t}=e,h=(t==null?void 0:t.show)==null?!!e.show:t.show;h&&!n.current&&(n.current=!0);const p=A=>{t==null||t.toggle(!1,A)},{placement:f,setMenu:v,menuElement:y,toggleElement:_}=t||{},w=eAt(_,y,lAt({placement:u||f||"bottom-start",enabled:m,enableEvents:c??h,offset:o,flip:i,fixed:l,arrowElement:r,popperConfig:d})),k=Object.assign({ref:v||cAt,"aria-labelledby":_==null?void 0:_.id},w.attributes.popper,{style:w.styles.popper}),S={show:h,placement:f,hasShown:n.current,toggle:t==null?void 0:t.toggle,popper:m?w:null,arrowProps:m?Object.assign({ref:a},w.attributes.arrow,{style:w.styles.arrow}):{}};return iAt(y,p,{clickTrigger:s,disabled:!h}),[k,S]}const mAt={usePopper:!0};function $O(e){let{children:t}=e,r=dAt(e,uAt);const[a,n]=Bee(r);return C.jsx(C.Fragment,{children:t(a,n)})}$O.displayName="DropdownMenu";$O.defaultProps=mAt;const sb={prefix:String(Math.round(Math.random()*1e10)),current:0},Wee=q.createContext(sb),hAt=q.createContext(!1);let pAt=!!(typeof window<"u"&&window.document&&window.document.createElement),zA=new WeakMap;function fAt(e=!1){let t=X.useContext(Wee),r=X.useRef(null);if(r.current===null&&!e){var a,n;let i=(a=q.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED)===null||a===void 0||(n=a.ReactCurrentOwner)===null||n===void 0?void 0:n.current;if(i){let o=zA.get(i);o==null?zA.set(i,{id:t.current,state:i.memoizedState}):i.memoizedState!==o.state&&(t.current=o.id,zA.delete(i))}r.current=++t.current}return r.current}function gAt(e){let t=X.useContext(Wee);t===sb&&!pAt&&console.warn("When server rendering, you must wrap your application in an <SSRProvider> to ensure consistent ids are generated between the client and server.");let r=fAt(!!e),a=`react-aria${t.prefix}`;return e||`${a}-${r}`}function vAt(e){let t=q.useId(),[r]=X.useState(kAt()),a=r?"react-aria":`react-aria${sb.prefix}`;return e||`${a}-${t}`}const yAt=typeof q.useId=="function"?vAt:gAt;function _At(){return!1}function bAt(){return!0}function wAt(e){return()=>{}}function kAt(){return typeof q.useSyncExternalStore=="function"?q.useSyncExternalStore(wAt,_At,bAt):X.useContext(hAt)}const Uee=e=>{var t;return((t=e.getAttribute("role"))==null?void 0:t.toLowerCase())==="menu"},w6=()=>{};function Vee(){const e=yAt(),{show:t=!1,toggle:r=w6,setToggle:a,menuElement:n}=X.useContext(B0)||{},i=X.useCallback(s=>{r(!t,s)},[t,r]),o={id:e,ref:a||w6,onClick:i,"aria-expanded":!!t};return n&&Uee(n)&&(o["aria-haspopup"]=!0),[o,{show:t,toggle:r}]}function Gee({children:e}){const[t,r]=Vee();return C.jsx(C.Fragment,{children:e(t,r)})}Gee.displayName="DropdownToggle";const SAt=["eventKey","disabled","onClick","active","as"];function AAt(e,t){if(e==null)return{};var r={},a=Object.keys(e),n,i;for(i=0;i<a.length;i++)n=a[i],!(t.indexOf(n)>=0)&&(r[n]=e[n]);return r}function qee({key:e,href:t,active:r,disabled:a,onClick:n}){const i=X.useContext(Dc),o=X.useContext(fO),{activeKey:s}=o||{},l=Lp(e,t),u=r==null&&e!=null?Lp(s)===l:r;return[{onClick:Ei(c=>{a||(n==null||n(c),i&&!c.isPropagationStopped()&&i(l,c))}),"aria-disabled":a||void 0,"aria-selected":u,[Yf("dropdown-item")]:""},{isActive:u}]}const Kee=X.forwardRef((e,t)=>{let{eventKey:r,disabled:a,onClick:n,active:i,as:o=hO}=e,s=AAt(e,SAt);const[l]=qee({key:r,href:s.href,disabled:a,onClick:n,active:i});return C.jsx(o,Object.assign({},s,{ref:t},l))});Kee.displayName="DropdownItem";const Zee=X.createContext(Mee?window:void 0);Zee.Provider;function TAt(){return X.useContext(Zee)}function k6(){const e=hJ(),t=X.useRef(null),r=X.useCallback(a=>{t.current=a,e()},[e]);return[t,r]}function eg({defaultShow:e,show:t,onSelect:r,onToggle:a,itemSelector:n=`* [${Yf("dropdown-item")}]`,focusFirstItemOnShow:i,placement:o="bottom-start",children:s}){const l=TAt(),[u,d]=j1t(t,e,a),[c,m]=k6(),h=c.current,[p,f]=k6(),v=p.current,y=H1t(u),_=X.useRef(null),w=X.useRef(!1),k=X.useContext(Dc),S=X.useCallback((x,O,M=O==null?void 0:O.type)=>{d(x,{originalEvent:O,source:M})},[d]),A=Ei((x,O)=>{r==null||r(x,O),S(!1,O,"select"),O.isPropagationStopped()||k==null||k(x,O)}),T=X.useMemo(()=>({toggle:S,placement:o,show:u,menuElement:h,toggleElement:v,setMenu:m,setToggle:f}),[S,o,u,h,v,m,f]);h&&y&&!u&&(w.current=h.contains(h.ownerDocument.activeElement));const E=Ei(()=>{v&&v.focus&&v.focus()}),D=Ei(()=>{const x=_.current;let O=i;if(O==null&&(O=c.current&&Uee(c.current)?"keyboard":!1),O===!1||O==="keyboard"&&!/^key.+$/.test(x))return;const M=nI(c.current,n)[0];M&&M.focus&&M.focus()});X.useEffect(()=>{u?D():w.current&&(w.current=!1,E())},[u,w,E,D]),X.useEffect(()=>{_.current=null});const I=(x,O)=>{if(!c.current)return null;const M=nI(c.current,n);let b=M.indexOf(x)+O;return b=Math.max(0,Math.min(b,M.length)),M[b]};return B1t(X.useCallback(()=>l.document,[l]),"keydown",x=>{var O,M;const{key:b}=x,L=x.target,R=(O=c.current)==null?void 0:O.contains(L),N=(M=p.current)==null?void 0:M.contains(L);if(/input|textarea/i.test(L.tagName)&&(b===" "||b!=="Escape"&&R||b==="Escape"&&L.type==="search")||!R&&!N||b==="Tab"&&(!c.current||!u))return;_.current=x.type;const z={originalEvent:x,source:x.type};switch(b){case"ArrowUp":{const F=I(L,-1);F&&F.focus&&F.focus(),x.preventDefault();return}case"ArrowDown":if(x.preventDefault(),!u)d(!0,z);else{const F=I(L,1);F&&F.focus&&F.focus()}return;case"Tab":Oee(L.ownerDocument,"keyup",F=>{var j;(F.key==="Tab"&&!F.target||!((j=c.current)!=null&&j.contains(F.target)))&&d(!1,z)},{once:!0});break;case"Escape":b==="Escape"&&(x.preventDefault(),x.stopPropagation()),d(!1,z);break}}),C.jsx(Dc.Provider,{value:A,children:C.jsx(B0.Provider,{value:T,children:s})})}eg.displayName="Dropdown";eg.Menu=$O;eg.Toggle=Gee;eg.Item=Kee;const Qee=X.createContext({});Qee.displayName="DropdownContext";const Yee=Qee,Xee=X.forwardRef(({className:e,bsPrefix:t,as:r="hr",role:a="separator",...n},i)=>(t=Ft(t,"dropdown-divider"),C.jsx(r,{ref:i,className:Ue(e,t),role:a,...n})));Xee.displayName="DropdownDivider";const CAt=Xee,Jee=X.forwardRef(({className:e,bsPrefix:t,as:r="div",role:a="heading",...n},i)=>(t=Ft(t,"dropdown-header"),C.jsx(r,{ref:i,className:Ue(e,t),role:a,...n})));Jee.displayName="DropdownHeader";const EAt=Jee,IAt=typeof global<"u"&&global.navigator&&global.navigator.product==="ReactNative",xAt=typeof document<"u",DAt=xAt||IAt?X.useLayoutEffect:X.useEffect,MAt=["onKeyDown"];function OAt(e,t){if(e==null)return{};var r={},a=Object.keys(e),n,i;for(i=0;i<a.length;i++)n=a[i],!(t.indexOf(n)>=0)&&(r[n]=e[n]);return r}function LAt(e){return!e||e.trim()==="#"}const ete=X.forwardRef((e,t)=>{let{onKeyDown:r}=e,a=OAt(e,MAt);const[n]=mO(Object.assign({tagName:"a"},a)),i=Ei(o=>{n.onKeyDown(o),r==null||r(o)});return LAt(a.href)||a.role==="button"?C.jsx("a",Object.assign({ref:t},a,n,{onKeyDown:i})):C.jsx("a",Object.assign({ref:t},a,{onKeyDown:r}))});ete.displayName="Anchor";const RAt=ete,tte=X.forwardRef(({bsPrefix:e,className:t,eventKey:r,disabled:a=!1,onClick:n,active:i,as:o=RAt,...s},l)=>{const u=Ft(e,"dropdown-item"),[d,c]=qee({key:r,href:s.href,disabled:a,onClick:n,active:i});return C.jsx(o,{...s,...d,ref:l,className:Ue(t,u,c.isActive&&"active",a&&"disabled")})});tte.displayName="DropdownItem";const PAt=tte,rte=X.forwardRef(({className:e,bsPrefix:t,as:r="span",...a},n)=>(t=Ft(t,"dropdown-item-text"),C.jsx(r,{ref:n,className:Ue(e,t),...a})));rte.displayName="DropdownItemText";const zAt=rte,ate=X.createContext(null);ate.displayName="NavbarContext";const $At=ate;function nte(e,t){return e}function ite(e,t,r){const a=r?"top-end":"top-start",n=r?"top-start":"top-end",i=r?"bottom-end":"bottom-start",o=r?"bottom-start":"bottom-end",s=r?"right-start":"left-start",l=r?"right-end":"left-end",u=r?"left-start":"right-start",d=r?"left-end":"right-end";let c=e?o:i;return t==="up"?c=e?n:a:t==="end"?c=e?d:u:t==="start"?c=e?l:s:t==="down-centered"?c="bottom":t==="up-centered"&&(c="top"),c}const ote=X.forwardRef(({bsPrefix:e,className:t,align:r,rootCloseEvent:a,flip:n=!0,show:i,renderOnMount:o,as:s="div",popperConfig:l,variant:u,...d},c)=>{let m=!1;const h=X.useContext($At),p=Ft(e,"dropdown-menu"),{align:f,drop:v,isRTL:y}=X.useContext(Yee);r=r||f;const _=X.useContext(yO),w=[];if(r)if(typeof r=="object"){const x=Object.keys(r);if(x.length){const O=x[0],M=r[O];m=M==="start",w.push(`${p}-${O}-${M}`)}}else r==="end"&&(m=!0);const k=ite(m,v,y),[S,{hasShown:A,popper:T,show:E,toggle:D}]=Bee({flip:n,rootCloseEvent:a,show:i,usePopper:!h&&w.length===0,offset:[0,2],popperConfig:l,placement:k});if(S.ref=pO(nte(c),S.ref),DAt(()=>{E&&(T==null||T.update())},[E]),!A&&!o&&!_)return null;typeof s!="string"&&(S.show=E,S.close=()=>D==null?void 0:D(!1),S.align=r);let I=d.style;return T!=null&&T.placement&&(I={...d.style,...S.style},d["x-placement"]=T.placement),C.jsx(s,{...d,...S,style:I,...(w.length||h)&&{"data-bs-popper":"static"},className:Ue(t,p,E&&"show",m&&`${p}-end`,u&&`${p}-${u}`,...w)})});ote.displayName="DropdownMenu";const NAt=ote,ste=X.forwardRef(({bsPrefix:e,split:t,className:r,childBsPrefix:a,as:n=$0,...i},o)=>{const s=Ft(e,"dropdown-toggle"),l=X.useContext(B0);a!==void 0&&(i.bsPrefix=a);const[u]=Vee();return u.ref=pO(u.ref,nte(o)),C.jsx(n,{className:Ue(r,s,t&&`${s}-split`,(l==null?void 0:l.show)&&"show"),...u,...i})});ste.displayName="DropdownToggle";const FAt=ste,lte=X.forwardRef((e,t)=>{const{bsPrefix:r,drop:a="down",show:n,className:i,align:o="start",onSelect:s,onToggle:l,focusFirstItemOnShow:u,as:d="div",navbar:c,autoClose:m=!0,...h}=mJ(e,{show:"onToggle"}),p=X.useContext(yO),f=Ft(r,"dropdown"),v=Ayt(),y=T=>m===!1?T==="click":m==="inside"?T!=="rootClose":m==="outside"?T!=="select":!0,_=Ei((T,E)=>{var D,I;!((D=E.originalEvent)==null||(I=D.target)==null)&&I.classList.contains("dropdown-toggle")&&E.source==="mousedown"||(E.originalEvent.currentTarget===document&&(E.source!=="keydown"||E.originalEvent.key==="Escape")&&(E.source="rootClose"),y(E.source)&&(l==null||l(T,E)))}),k=ite(o==="end",a,v),S=X.useMemo(()=>({align:o,drop:a,isRTL:v}),[o,a,v]),A={down:f,"down-centered":`${f}-center`,up:"dropup","up-centered":"dropup-center dropup",end:"dropend",start:"dropstart"};return C.jsx(Yee.Provider,{value:S,children:C.jsx(eg,{placement:k,show:n,onSelect:s,onToggle:_,focusFirstItemOnShow:u,itemSelector:`.${f}-item:not(.disabled):not(:disabled)`,children:p?h.children:C.jsx(d,{...h,ref:t,className:Ue(i,n&&"show",A[a])})})})});lte.displayName="Dropdown";const Cy=Object.assign(lte,{Toggle:FAt,Menu:NAt,Item:PAt,ItemText:zAt,Divider:CAt,Header:EAt});function jAt(e){const{allDevices:t,currentDevice:r,tab:a="info",t:n}=e,[i,o]=X.useState(""),s=Object.values(t).filter(l=>l.friendly_name.includes(i));return C.jsx("h1",{className:"h3",children:C.jsxs(Cy,{children:[C.jsxs(Cy.Toggle,{"aria-label":n("select_a_device"),variant:"",size:"lg",children:[r.friendly_name," "]}),C.jsxs(Cy.Menu,{children:[C.jsx(Zt.Control,{autoFocus:!0,className:"mx-3 my-2 w-auto",placeholder:n("type_to_filter"),onChange:l=>o(l.target.value),value:i}),C.jsx(BAt,{devices:s,currentDevice:r,tab:a,setSearchTerm:o})]})]})})}const HAt=Ur("devicePage")(jAt);function BAt({devices:e,currentDevice:t,tab:r,setSearchTerm:a}){return C.jsx(C.Fragment,{children:Object.values(e).map(n=>C.jsx(Cy.Item,{active:t.ieee_address===n.ieee_address,href:`#/device/${n.ieee_address}/${r}`,onClick:()=>a(""),children:n.friendly_name},n.ieee_address))})}const WAt=e=>[{translationKey:"about",url:`/device/${e}/info`},{translationKey:"exposes",url:`/device/${e}/exposes`},{translationKey:"bind",url:`/device/${e}/bind`},{translationKey:"reporting",url:`/device/${e}/reporting`},{translationKey:"settings",url:`/device/${e}/settings`},{translationKey:"settings_specific",url:`/device/${e}/settings-specific`},{translationKey:"state",url:`/device/${e}/state`},{translationKey:"clusters",url:`/device/${e}/clusters`},{translationKey:"scene",url:`/device/${e}/scene`},{translationKey:"dev_console",url:`/device/${e}/dev-console`}];function UAt(e){const{match:t,devices:r,logs:a}=e,{readDeviceAttributes:n,writeDeviceAttributes:i,setDeviceOptions:o,executeCommand:s,generateExternalDefinition:l,bridgeInfo:u,deviceStates:d,generatedExternalDefinitions:c,theme:m}=e,{tab:h,dev:p}=t.params,f=r[p],v=d[f.friendly_name]??{};switch(h){case"info":return C.jsx(tJe,{device:f});case"bind":return C.jsx(mJe,{device:f});case"state":return C.jsx(itt,{device:f});case"exposes":return C.jsx(Crt,{device:f});case"clusters":return C.jsx(xrt,{device:f});case"reporting":return C.jsx(ttt,{device:f});case"settings":return C.jsx(kbt,{device:f,setDeviceOptions:o,bridgeInfo:u});case"settings-specific":return C.jsx(F1t,{device:f,setDeviceOptions:o,bridgeInfo:u});case"dev-console":return C.jsx(P1t,{device:f,logs:a,readDeviceAttributes:n,writeDeviceAttributes:i,generateExternalDefinition:l,generatedExternalDefinitions:c,executeCommand:s,theme:m});case"scene":return C.jsx(H0t,{device:f,deviceState:v});default:return C.jsx(CZ,{to:`/device/${p}/info`})}}function VAt(e){const{devices:t,match:r,t:a}=e,{dev:n,tab:i}=r.params,o=t[n];if(!o)return C.jsx("div",{className:"h-100 d-flex justify-content-center align-items-center",children:a("unknown_device")});const s=WAt(n);return C.jsxs(C.Fragment,{children:[C.jsx(HAt,{allDevices:t,currentDevice:o,tab:i}),C.jsxs("div",{className:"tab",children:[C.jsx("ul",{className:"nav nav-tabs",children:s.map(l=>C.jsx("li",{className:"nav-item",children:C.jsx(hM,{activeClassName:"active",className:`nav-link ${xZ["small-nav"]}`,to:l.url,children:a(l.translationKey)})},l.translationKey))}),C.jsx("div",{className:"tab-content",children:C.jsx("div",{className:"tab-pane fade show active",children:C.jsx(UAt,{...e})})})]})]})}const GAt=cM(VAt),qAt=["devices","deviceStates","logs","bridgeInfo","generatedExternalDefinitions","theme"],KAt=Ur("devicePage")(Qr(qAt,na)(GAt)),ZAt=KAt;var ute={exports:{}},pI={exports:{}};(function(e,t){(function(r,a){a(t,X)})(wt,function(r,a){function n(P,W,V,Q,ne,J,ie){try{var ke=P[J](ie),Ce=ke.value}catch(Ee){return void V(Ee)}ke.done?W(Ce):Promise.resolve(Ce).then(Q,ne)}function i(P){return function(){var W=this,V=arguments;return new Promise(function(Q,ne){var J=P.apply(W,V);function ie(Ce){n(J,Q,ne,ie,ke,"next",Ce)}function ke(Ce){n(J,Q,ne,ie,ke,"throw",Ce)}ie(void 0)})}}function o(){return(o=Object.assign||function(P){for(var W=1;W<arguments.length;W++){var V=arguments[W];for(var Q in V)Object.prototype.hasOwnProperty.call(V,Q)&&(P[Q]=V[Q])}return P}).apply(this,arguments)}function s(P,W){if(P==null)return{};var V,Q,ne={},J=Object.keys(P);for(Q=0;Q<J.length;Q++)V=J[Q],W.indexOf(V)>=0||(ne[V]=P[V]);return ne}function l(P){var W=function(V,Q){if(typeof V!="object"||V===null)return V;var ne=V[Symbol.toPrimitive];if(ne!==void 0){var J=ne.call(V,Q||"default");if(typeof J!="object")return J;throw new TypeError("@@toPrimitive must return a primitive value.")}return(Q==="string"?String:Number)(V)}(P,"string");return typeof W=="symbol"?W:String(W)}a=a&&Object.prototype.hasOwnProperty.call(a,"default")?a.default:a;var u={init:"init"},d=function(P){var W=P.value;return W===void 0?"":W},c=function(){return a.createElement(a.Fragment,null," ")},m={Cell:d,width:150,minWidth:0,maxWidth:Number.MAX_SAFE_INTEGER};function h(){for(var P=arguments.length,W=new Array(P),V=0;V<P;V++)W[V]=arguments[V];return W.reduce(function(Q,ne){var J=ne.style,ie=ne.className;return Q=o({},Q,{},s(ne,["style","className"])),J&&(Q.style=Q.style?o({},Q.style||{},{},J||{}):J),ie&&(Q.className=Q.className?Q.className+" "+ie:ie),Q.className===""&&delete Q.className,Q},{})}var p=function(P,W){return W===void 0&&(W={}),function(V){return V===void 0&&(V={}),[].concat(P,[V]).reduce(function(Q,ne){return function J(ie,ke,Ce){return typeof ke=="function"?J({},ke(ie,Ce)):Array.isArray(ke)?h.apply(void 0,[ie].concat(ke)):h(ie,ke)}(Q,ne,o({},W,{userProps:V}))},{})}},f=function(P,W,V,Q){return V===void 0&&(V={}),P.reduce(function(ne,J){return J(ne,V)},W)},v=function(P,W,V){return V===void 0&&(V={}),P.forEach(function(Q){Q(W,V)})};function y(P,W,V,Q){P.findIndex(function(ne){return ne.pluginName===V}),W.forEach(function(ne){P.findIndex(function(J){return J.pluginName===ne})})}function _(P,W){return typeof P=="function"?P(W):P}function w(P){var W=a.useRef();return W.current=P,a.useCallback(function(){return W.current},[])}var k=typeof document<"u"?a.useLayoutEffect:a.useEffect;function S(P,W){var V=a.useRef(!1);k(function(){V.current&&P(),V.current=!0},W)}function A(P,W,V){return V===void 0&&(V={}),function(Q,ne){ne===void 0&&(ne={});var J=typeof Q=="string"?W[Q]:Q;if(J===void 0)throw console.info(W),new Error("Renderer Error ☝️");return T(J,o({},P,{column:W},V,{},ne))}}function T(P,W){return function(Q){return typeof Q=="function"&&(ne=Object.getPrototypeOf(Q)).prototype&&ne.prototype.isReactComponent;var ne}(V=P)||typeof V=="function"||function(Q){return typeof Q=="object"&&typeof Q.$$typeof=="symbol"&&["react.memo","react.forward_ref"].includes(Q.$$typeof.description)}(V)?a.createElement(P,W):P;var V}function E(P,W,V){return V===void 0&&(V=0),P.map(function(Q){return I(Q=o({},Q,{parent:W,depth:V})),Q.columns&&(Q.columns=E(Q.columns,Q,V+1)),Q})}function D(P){return R(P,"columns")}function I(P){var W=P.id,V=P.accessor,Q=P.Header;if(typeof V=="string"){W=W||V;var ne=V.split(".");V=function(J){return function(ie,ke,Ce){if(!ke)return ie;var Ee,ze=typeof ke=="function"?ke:JSON.stringify(ke),$e=M.get(ze)||function(){var Ne=function(Oe){return function He(Ve,qe){if(qe===void 0&&(qe=[]),Array.isArray(Ve))for(var nt=0;nt<Ve.length;nt+=1)He(Ve[nt],qe);else qe.push(Ve);return qe}(Oe).map(function(He){return String(He).replace(".","_")}).join(".").replace(B,".").replace(G,"").split(".")}(ke);return M.set(ze,Ne),Ne}();try{Ee=$e.reduce(function(Ne,Oe){return Ne[Oe]},ie)}catch{}return Ee!==void 0?Ee:Ce}(J,ne)}}if(!W&&typeof Q=="string"&&Q&&(W=Q),!W&&P.columns)throw console.error(P),new Error('A column ID (or unique "Header" value) is required!');if(!W)throw console.error(P),new Error("A column ID (or string accessor) is required!");return Object.assign(P,{id:W,accessor:V}),P}function x(P,W){if(!W)throw new Error;return Object.assign(P,o({Header:c,Footer:c},m,{},W,{},P)),Object.assign(P,{originalWidth:P.width}),P}function O(P,W,V){V===void 0&&(V=function(){return{}});for(var Q=[],ne=P,J=0,ie=function(){return J++},ke=function(){var Ce={headers:[]},Ee=[],ze=ne.some(function($e){return $e.parent});ne.forEach(function($e){var Ne,Oe=[].concat(Ee).reverse()[0];ze&&($e.parent?Ne=o({},$e.parent,{originalId:$e.parent.id,id:$e.parent.id+"_"+ie(),headers:[$e]},V($e)):Ne=x(o({originalId:$e.id+"_placeholder",id:$e.id+"_placeholder_"+ie(),placeholderOf:$e,headers:[$e]},V($e)),W),Oe&&Oe.originalId===Ne.originalId?Oe.headers.push($e):Ee.push(Ne)),Ce.headers.push($e)}),Q.push(Ce),ne=Ee};ne.length;)ke();return Q.reverse()}var M=new Map;function b(){for(var P=arguments.length,W=new Array(P),V=0;V<P;V++)W[V]=arguments[V];for(var Q=0;Q<W.length;Q+=1)if(W[Q]!==void 0)return W[Q]}function L(P){if(typeof P=="function")return P}function R(P,W){var V=[];return function Q(ne){ne.forEach(function(J){J[W]?Q(J[W]):V.push(J)})}(P),V}function N(P,W){var V=W.manualExpandedKey,Q=W.expanded,ne=W.expandSubRows,J=ne===void 0||ne,ie=[];return P.forEach(function(ke){return function Ce(Ee,ze){ze===void 0&&(ze=!0),Ee.isExpanded=Ee.original&&Ee.original[V]||Q[Ee.id],Ee.canExpand=Ee.subRows&&!!Ee.subRows.length,ze&&ie.push(Ee),Ee.subRows&&Ee.subRows.length&&Ee.isExpanded&&Ee.subRows.forEach(function($e){return Ce($e,J)})}(ke)}),ie}function H(P,W,V){return L(P)||W[P]||V[P]||V.text}function z(P,W,V){return P?P(W,V):W===void 0}function F(){throw new Error("React-Table: You have not called prepareRow(row) one or more rows you are attempting to render.")}var j=null,B=/\[/g,G=/\]/g,U=function(P){return o({role:"table"},P)},Y=function(P){return o({role:"rowgroup"},P)},le=function(P,W){var V=W.column;return o({key:"header_"+V.id,colSpan:V.totalVisibleHeaderCount,role:"columnheader"},P)},fe=function(P,W){var V=W.column;return o({key:"footer_"+V.id,colSpan:V.totalVisibleHeaderCount},P)},he=function(P,W){return o({key:"headerGroup_"+W.index,role:"row"},P)},Te=function(P,W){return o({key:"footerGroup_"+W.index},P)},Le=function(P,W){return o({key:"row_"+W.row.id,role:"row"},P)},ue=function(P,W){var V=W.cell;return o({key:"cell_"+V.row.id+"_"+V.column.id,role:"cell"},P)};function ye(){return{useOptions:[],stateReducers:[],useControlledState:[],columns:[],columnsDeps:[],allColumns:[],allColumnsDeps:[],accessValue:[],materializedColumns:[],materializedColumnsDeps:[],useInstanceAfterData:[],visibleColumns:[],visibleColumnsDeps:[],headerGroups:[],headerGroupsDeps:[],useInstanceBeforeDimensions:[],useInstance:[],prepareRow:[],getTableProps:[U],getTableBodyProps:[Y],getHeaderGroupProps:[he],getFooterGroupProps:[Te],getHeaderProps:[le],getFooterProps:[fe],getRowProps:[Le],getCellProps:[ue],useFinalInstance:[]}}u.resetHiddenColumns="resetHiddenColumns",u.toggleHideColumn="toggleHideColumn",u.setHiddenColumns="setHiddenColumns",u.toggleHideAllColumns="toggleHideAllColumns";var Ie=function(P){P.getToggleHiddenProps=[$],P.getToggleHideAllColumnsProps=[ge],P.stateReducers.push(ae),P.useInstanceBeforeDimensions.push(K),P.headerGroupsDeps.push(function(W,V){var Q=V.instance;return[].concat(W,[Q.state.hiddenColumns])}),P.useInstance.push(Z)};Ie.pluginName="useColumnVisibility";var $=function(P,W){var V=W.column;return[P,{onChange:function(Q){V.toggleHidden(!Q.target.checked)},style:{cursor:"pointer"},checked:V.isVisible,title:"Toggle Column Visible"}]},ge=function(P,W){var V=W.instance;return[P,{onChange:function(Q){V.toggleHideAllColumns(!Q.target.checked)},style:{cursor:"pointer"},checked:!V.allColumnsHidden&&!V.state.hiddenColumns.length,title:"Toggle All Columns Hidden",indeterminate:!V.allColumnsHidden&&V.state.hiddenColumns.length}]};function ae(P,W,V,Q){if(W.type===u.init)return o({hiddenColumns:[]},P);if(W.type===u.resetHiddenColumns)return o({},P,{hiddenColumns:Q.initialState.hiddenColumns||[]});if(W.type===u.toggleHideColumn){var ne=(W.value!==void 0?W.value:!P.hiddenColumns.includes(W.columnId))?[].concat(P.hiddenColumns,[W.columnId]):P.hiddenColumns.filter(function(J){return J!==W.columnId});return o({},P,{hiddenColumns:ne})}return W.type===u.setHiddenColumns?o({},P,{hiddenColumns:_(W.value,P.hiddenColumns)}):W.type===u.toggleHideAllColumns?o({},P,{hiddenColumns:(W.value!==void 0?W.value:!P.hiddenColumns.length)?Q.allColumns.map(function(J){return J.id}):[]}):void 0}function K(P){var W=P.headers,V=P.state.hiddenColumns;a.useRef(!1).current;var Q=0;W.forEach(function(ne){return Q+=function J(ie,ke){ie.isVisible=ke&&!V.includes(ie.id);var Ce=0;return ie.headers&&ie.headers.length?ie.headers.forEach(function(Ee){return Ce+=J(Ee,ie.isVisible)}):Ce=ie.isVisible?1:0,ie.totalVisibleHeaderCount=Ce,Ce}(ne,!0)})}function Z(P){var W=P.columns,V=P.flatHeaders,Q=P.dispatch,ne=P.allColumns,J=P.getHooks,ie=P.state.hiddenColumns,ke=P.autoResetHiddenColumns,Ce=ke===void 0||ke,Ee=w(P),ze=ne.length===ie.length,$e=a.useCallback(function(qe,nt){return Q({type:u.toggleHideColumn,columnId:qe,value:nt})},[Q]),Ne=a.useCallback(function(qe){return Q({type:u.setHiddenColumns,value:qe})},[Q]),Oe=a.useCallback(function(qe){return Q({type:u.toggleHideAllColumns,value:qe})},[Q]),He=p(J().getToggleHideAllColumnsProps,{instance:Ee()});V.forEach(function(qe){qe.toggleHidden=function(nt){Q({type:u.toggleHideColumn,columnId:qe.id,value:nt})},qe.getToggleHiddenProps=p(J().getToggleHiddenProps,{instance:Ee(),column:qe})});var Ve=w(Ce);S(function(){Ve()&&Q({type:u.resetHiddenColumns})},[Q,W]),Object.assign(P,{allColumnsHidden:ze,toggleHideColumn:$e,setHiddenColumns:Ne,toggleHideAllColumns:Oe,getToggleHideAllColumnsProps:He})}var re={},_e={},Ae=function(P,W,V){return P},de=function(P,W){return P.subRows||[]},be=function(P,W,V){return""+(V?[V.id,W].join("."):W)},Me=function(P){return P};function xe(P){var W=P.initialState,V=W===void 0?re:W,Q=P.defaultColumn,ne=Q===void 0?_e:Q,J=P.getSubRows,ie=J===void 0?de:J,ke=P.getRowId,Ce=ke===void 0?be:ke,Ee=P.stateReducer,ze=Ee===void 0?Ae:Ee,$e=P.useControlledState,Ne=$e===void 0?Me:$e;return o({},s(P,["initialState","defaultColumn","getSubRows","getRowId","stateReducer","useControlledState"]),{initialState:V,defaultColumn:ne,getSubRows:ie,getRowId:Ce,stateReducer:ze,useControlledState:Ne})}function me(P,W){W===void 0&&(W=0);var V=0,Q=0,ne=0,J=0;return P.forEach(function(ie){var ke=ie.headers;if(ie.totalLeft=W,ke&&ke.length){var Ce=me(ke,W),Ee=Ce[0],ze=Ce[1],$e=Ce[2],Ne=Ce[3];ie.totalMinWidth=Ee,ie.totalWidth=ze,ie.totalMaxWidth=$e,ie.totalFlexWidth=Ne}else ie.totalMinWidth=ie.minWidth,ie.totalWidth=Math.min(Math.max(ie.minWidth,ie.width),ie.maxWidth),ie.totalMaxWidth=ie.maxWidth,ie.totalFlexWidth=ie.canResize?ie.totalWidth:0;ie.isVisible&&(W+=ie.totalWidth,V+=ie.totalMinWidth,Q+=ie.totalWidth,ne+=ie.totalMaxWidth,J+=ie.totalFlexWidth)}),[V,Q,ne,J]}function De(P){var W=P.data,V=P.rows,Q=P.flatRows,ne=P.rowsById,J=P.column,ie=P.getRowId,ke=P.getSubRows,Ce=P.accessValueHooks,Ee=P.getInstance;W.forEach(function(ze,$e){return function Ne(Oe,He,Ve,qe,nt){Ve===void 0&&(Ve=0);var Tt=Oe,at=ie(Oe,He,qe),Be=ne[at];if(Be)Be.subRows&&Be.originalSubRows.forEach(function(Qe,vt){return Ne(Qe,vt,Ve+1,Be)});else if((Be={id:at,original:Tt,index:He,depth:Ve,cells:[{}]}).cells.map=F,Be.cells.filter=F,Be.cells.forEach=F,Be.cells[0].getCellProps=F,Be.values={},nt.push(Be),Q.push(Be),ne[at]=Be,Be.originalSubRows=ke(Oe,He),Be.originalSubRows){var bt=[];Be.originalSubRows.forEach(function(Qe,vt){return Ne(Qe,vt,Ve+1,Be,bt)}),Be.subRows=bt}J.accessor&&(Be.values[J.id]=J.accessor(Oe,He,Be,nt,W)),Be.values[J.id]=f(Ce,Be.values[J.id],{row:Be,column:J,instance:Ee()})}(ze,$e,0,void 0,V)})}u.resetExpanded="resetExpanded",u.toggleRowExpanded="toggleRowExpanded",u.toggleAllRowsExpanded="toggleAllRowsExpanded";var Re=function(P){P.getToggleAllRowsExpandedProps=[Ge],P.getToggleRowExpandedProps=[Je],P.stateReducers.push(ft),P.useInstance.push(Et),P.prepareRow.push(Ze)};Re.pluginName="useExpanded";var Ge=function(P,W){var V=W.instance;return[P,{onClick:function(Q){V.toggleAllRowsExpanded()},style:{cursor:"pointer"},title:"Toggle All Rows Expanded"}]},Je=function(P,W){var V=W.row;return[P,{onClick:function(){V.toggleRowExpanded()},style:{cursor:"pointer"},title:"Toggle Row Expanded"}]};function ft(P,W,V,Q){if(W.type===u.init)return o({expanded:{}},P);if(W.type===u.resetExpanded)return o({},P,{expanded:Q.initialState.expanded||{}});if(W.type===u.toggleAllRowsExpanded){var ne=W.value,J=Q.rowsById,ie=Object.keys(J).length===Object.keys(P.expanded).length;if(ne!==void 0?ne:!ie){var ke={};return Object.keys(J).forEach(function(He){ke[He]=!0}),o({},P,{expanded:ke})}return o({},P,{expanded:{}})}if(W.type===u.toggleRowExpanded){var Ce,Ee=W.id,ze=W.value,$e=P.expanded[Ee],Ne=ze!==void 0?ze:!$e;if(!$e&&Ne)return o({},P,{expanded:o({},P.expanded,(Ce={},Ce[Ee]=!0,Ce))});if($e&&!Ne){var Oe=P.expanded;return Oe[Ee],o({},P,{expanded:s(Oe,[Ee].map(l))})}return P}}function Et(P){var W=P.data,V=P.rows,Q=P.rowsById,ne=P.manualExpandedKey,J=ne===void 0?"expanded":ne,ie=P.paginateExpandedRows,ke=ie===void 0||ie,Ce=P.expandSubRows,Ee=Ce===void 0||Ce,ze=P.autoResetExpanded,$e=ze===void 0||ze,Ne=P.getHooks,Oe=P.plugins,He=P.state.expanded,Ve=P.dispatch;y(Oe,["useSortBy","useGroupBy","usePivotColumns","useGlobalFilter"],"useExpanded");var qe=w($e),nt=!!(Object.keys(Q).length&&Object.keys(He).length);nt&&Object.keys(Q).some(function(Pt){return!He[Pt]})&&(nt=!1),S(function(){qe()&&Ve({type:u.resetExpanded})},[Ve,W]);var Tt=a.useCallback(function(Pt,ct){Ve({type:u.toggleRowExpanded,id:Pt,value:ct})},[Ve]),at=a.useCallback(function(Pt){return Ve({type:u.toggleAllRowsExpanded,value:Pt})},[Ve]),Be=a.useMemo(function(){return ke?N(V,{manualExpandedKey:J,expanded:He,expandSubRows:Ee}):V},[ke,V,J,He,Ee]),bt=a.useMemo(function(){return function(Pt){var ct=0;return Object.keys(Pt).forEach(function(pt){var Kt=pt.split(".");ct=Math.max(ct,Kt.length)}),ct}(He)},[He]),Qe=w(P),vt=p(Ne().getToggleAllRowsExpandedProps,{instance:Qe()});Object.assign(P,{preExpandedRows:V,expandedRows:Be,rows:Be,expandedDepth:bt,isAllRowsExpanded:nt,toggleRowExpanded:Tt,toggleAllRowsExpanded:at,getToggleAllRowsExpandedProps:vt})}function Ze(P,W){var V=W.instance.getHooks,Q=W.instance;P.toggleRowExpanded=function(ne){return Q.toggleRowExpanded(P.id,ne)},P.getToggleRowExpandedProps=p(V().getToggleRowExpandedProps,{instance:Q,row:P})}var ut=function(P,W,V){return P=P.filter(function(Q){return W.some(function(ne){var J=Q.values[ne];return String(J).toLowerCase().includes(String(V).toLowerCase())})})};ut.autoRemove=function(P){return!P};var st=function(P,W,V){return P.filter(function(Q){return W.some(function(ne){var J=Q.values[ne];return J===void 0||String(J).toLowerCase()===String(V).toLowerCase()})})};st.autoRemove=function(P){return!P};var gt=function(P,W,V){return P.filter(function(Q){return W.some(function(ne){var J=Q.values[ne];return J===void 0||String(J)===String(V)})})};gt.autoRemove=function(P){return!P};var Jt=function(P,W,V){return P.filter(function(Q){return W.some(function(ne){return Q.values[ne].includes(V)})})};Jt.autoRemove=function(P){return!P||!P.length};var _a=function(P,W,V){return P.filter(function(Q){return W.some(function(ne){var J=Q.values[ne];return J&&J.length&&V.every(function(ie){return J.includes(ie)})})})};_a.autoRemove=function(P){return!P||!P.length};var cr=function(P,W,V){return P.filter(function(Q){return W.some(function(ne){var J=Q.values[ne];return J&&J.length&&V.some(function(ie){return J.includes(ie)})})})};cr.autoRemove=function(P){return!P||!P.length};var Fr=function(P,W,V){return P.filter(function(Q){return W.some(function(ne){var J=Q.values[ne];return V.includes(J)})})};Fr.autoRemove=function(P){return!P||!P.length};var Ea=function(P,W,V){return P.filter(function(Q){return W.some(function(ne){return Q.values[ne]===V})})};Ea.autoRemove=function(P){return P===void 0};var ia=function(P,W,V){return P.filter(function(Q){return W.some(function(ne){return Q.values[ne]==V})})};ia.autoRemove=function(P){return P==null};var Ia=function(P,W,V){var Q=V||[],ne=Q[0],J=Q[1];if((ne=typeof ne=="number"?ne:-1/0)>(J=typeof J=="number"?J:1/0)){var ie=ne;ne=J,J=ie}return P.filter(function(ke){return W.some(function(Ce){var Ee=ke.values[Ce];return Ee>=ne&&Ee<=J})})};Ia.autoRemove=function(P){return!P||typeof P[0]!="number"&&typeof P[1]!="number"};var Vr=Object.freeze({__proto__:null,text:ut,exactText:st,exactTextCase:gt,includes:Jt,includesAll:_a,includesSome:cr,includesValue:Fr,exact:Ea,equals:ia,between:Ia});u.resetFilters="resetFilters",u.setFilter="setFilter",u.setAllFilters="setAllFilters";var is=function(P){P.stateReducers.push(os),P.useInstance.push(gl)};function os(P,W,V,Q){if(W.type===u.init)return o({filters:[]},P);if(W.type===u.resetFilters)return o({},P,{filters:Q.initialState.filters||[]});if(W.type===u.setFilter){var ne=W.columnId,J=W.filterValue,ie=Q.allColumns,ke=Q.filterTypes,Ce=ie.find(function(Ve){return Ve.id===ne});if(!Ce)throw new Error("React-Table: Could not find a column with id: "+ne);var Ee=H(Ce.filter,ke||{},Vr),ze=P.filters.find(function(Ve){return Ve.id===ne}),$e=_(J,ze&&ze.value);return z(Ee.autoRemove,$e,Ce)?o({},P,{filters:P.filters.filter(function(Ve){return Ve.id!==ne})}):o({},P,ze?{filters:P.filters.map(function(Ve){return Ve.id===ne?{id:ne,value:$e}:Ve})}:{filters:[].concat(P.filters,[{id:ne,value:$e}])})}if(W.type===u.setAllFilters){var Ne=W.filters,Oe=Q.allColumns,He=Q.filterTypes;return o({},P,{filters:_(Ne,P.filters).filter(function(Ve){var qe=Oe.find(function(nt){return nt.id===Ve.id});return!z(H(qe.filter,He||{},Vr).autoRemove,Ve.value,qe)})})}}function gl(P){var W=P.data,V=P.rows,Q=P.flatRows,ne=P.rowsById,J=P.allColumns,ie=P.filterTypes,ke=P.manualFilters,Ce=P.defaultCanFilter,Ee=Ce!==void 0&&Ce,ze=P.disableFilters,$e=P.state.filters,Ne=P.dispatch,Oe=P.autoResetFilters,He=Oe===void 0||Oe,Ve=a.useCallback(function(Qe,vt){Ne({type:u.setFilter,columnId:Qe,filterValue:vt})},[Ne]),qe=a.useCallback(function(Qe){Ne({type:u.setAllFilters,filters:Qe})},[Ne]);J.forEach(function(Qe){var vt=Qe.id,Pt=Qe.accessor,ct=Qe.defaultCanFilter,pt=Qe.disableFilters;Qe.canFilter=Pt?b(pt!==!0&&void 0,ze!==!0&&void 0,!0):b(ct,Ee,!1),Qe.setFilter=function(_t){return Ve(Qe.id,_t)};var Kt=$e.find(function(_t){return _t.id===vt});Qe.filterValue=Kt&&Kt.value});var nt=a.useMemo(function(){if(ke||!$e.length)return[V,Q,ne];var Qe=[],vt={};return[function Pt(ct,pt){pt===void 0&&(pt=0);var Kt=ct;return(Kt=$e.reduce(function(_t,qt){var Nt=qt.id,ur=qt.value,ot=J.find(function(Rr){return Rr.id===Nt});if(!ot)return _t;pt===0&&(ot.preFilteredRows=_t);var zt=H(ot.filter,ie||{},Vr);return zt?(ot.filteredRows=zt(_t,[Nt],ur),ot.filteredRows):(console.warn("Could not find a valid 'column.filter' for column with the ID: "+ot.id+"."),_t)},ct)).forEach(function(_t){Qe.push(_t),vt[_t.id]=_t,_t.subRows&&(_t.subRows=_t.subRows&&_t.subRows.length>0?Pt(_t.subRows,pt+1):_t.subRows)}),Kt}(V),Qe,vt]},[ke,$e,V,Q,ne,J,ie]),Tt=nt[0],at=nt[1],Be=nt[2];a.useMemo(function(){J.filter(function(Qe){return!$e.find(function(vt){return vt.id===Qe.id})}).forEach(function(Qe){Qe.preFilteredRows=Tt,Qe.filteredRows=Tt})},[Tt,$e,J]);var bt=w(He);S(function(){bt()&&Ne({type:u.resetFilters})},[Ne,ke?null:W]),Object.assign(P,{preFilteredRows:V,preFilteredFlatRows:Q,preFilteredRowsById:ne,filteredRows:Tt,filteredFlatRows:at,filteredRowsById:Be,rows:Tt,flatRows:at,rowsById:Be,setFilter:Ve,setAllFilters:qe})}is.pluginName="useFilters",u.resetGlobalFilter="resetGlobalFilter",u.setGlobalFilter="setGlobalFilter";var Ln=function(P){P.stateReducers.push(zu),P.useInstance.push(ym)};function zu(P,W,V,Q){if(W.type===u.resetGlobalFilter)return o({},P,{globalFilter:Q.initialState.globalFilter||void 0});if(W.type===u.setGlobalFilter){var ne=W.filterValue,J=Q.userFilterTypes,ie=H(Q.globalFilter,J||{},Vr),ke=_(ne,P.globalFilter);return z(ie.autoRemove,ke)?(P.globalFilter,s(P,["globalFilter"])):o({},P,{globalFilter:ke})}}function ym(P){var W=P.data,V=P.rows,Q=P.flatRows,ne=P.rowsById,J=P.allColumns,ie=P.filterTypes,ke=P.globalFilter,Ce=P.manualGlobalFilter,Ee=P.state.globalFilter,ze=P.dispatch,$e=P.autoResetGlobalFilter,Ne=$e===void 0||$e,Oe=P.disableGlobalFilter,He=a.useCallback(function(Be){ze({type:u.setGlobalFilter,filterValue:Be})},[ze]),Ve=a.useMemo(function(){if(Ce||Ee===void 0)return[V,Q,ne];var Be=[],bt={},Qe=H(ke,ie||{},Vr);if(!Qe)return console.warn("Could not find a valid 'globalFilter' option."),V;J.forEach(function(Pt){var ct=Pt.disableGlobalFilter;Pt.canFilter=b(ct!==!0&&void 0,Oe!==!0&&void 0,!0)});var vt=J.filter(function(Pt){return Pt.canFilter===!0});return[function Pt(ct){return(ct=Qe(ct,vt.map(function(pt){return pt.id}),Ee)).forEach(function(pt){Be.push(pt),bt[pt.id]=pt,pt.subRows=pt.subRows&&pt.subRows.length?Pt(pt.subRows):pt.subRows}),ct}(V),Be,bt]},[Ce,Ee,ke,ie,J,V,Q,ne,Oe]),qe=Ve[0],nt=Ve[1],Tt=Ve[2],at=w(Ne);S(function(){at()&&ze({type:u.resetGlobalFilter})},[ze,Ce?null:W]),Object.assign(P,{preGlobalFilteredRows:V,preGlobalFilteredFlatRows:Q,preGlobalFilteredRowsById:ne,globalFilteredRows:qe,globalFilteredFlatRows:nt,globalFilteredRowsById:Tt,rows:qe,flatRows:nt,rowsById:Tt,setGlobalFilter:He,disableGlobalFilter:Oe})}function vl(P,W){return W.reduce(function(V,Q){return V+(typeof Q=="number"?Q:0)},0)}Ln.pluginName="useGlobalFilter";var $u=Object.freeze({__proto__:null,sum:vl,min:function(P){var W=P[0]||0;return P.forEach(function(V){typeof V=="number"&&(W=Math.min(W,V))}),W},max:function(P){var W=P[0]||0;return P.forEach(function(V){typeof V=="number"&&(W=Math.max(W,V))}),W},minMax:function(P){var W=P[0]||0,V=P[0]||0;return P.forEach(function(Q){typeof Q=="number"&&(W=Math.min(W,Q),V=Math.max(V,Q))}),W+".."+V},average:function(P){return vl(0,P)/P.length},median:function(P){if(!P.length)return null;var W=Math.floor(P.length/2),V=[].concat(P).sort(function(Q,ne){return Q-ne});return P.length%2!=0?V[W]:(V[W-1]+V[W])/2},unique:function(P){return Array.from(new Set(P).values())},uniqueCount:function(P){return new Set(P).size},count:function(P){return P.length}}),Nu=[],se={};u.resetGroupBy="resetGroupBy",u.setGroupBy="setGroupBy",u.toggleGroupBy="toggleGroupBy";var ee=function(P){P.getGroupByToggleProps=[ce],P.stateReducers.push(Se),P.visibleColumnsDeps.push(function(W,V){var Q=V.instance;return[].concat(W,[Q.state.groupBy])}),P.visibleColumns.push(we),P.useInstance.push(it),P.prepareRow.push(Lt)};ee.pluginName="useGroupBy";var ce=function(P,W){var V=W.header;return[P,{onClick:V.canGroupBy?function(Q){Q.persist(),V.toggleGroupBy()}:void 0,style:{cursor:V.canGroupBy?"pointer":void 0},title:"Toggle GroupBy"}]};function Se(P,W,V,Q){if(W.type===u.init)return o({groupBy:[]},P);if(W.type===u.resetGroupBy)return o({},P,{groupBy:Q.initialState.groupBy||[]});if(W.type===u.setGroupBy)return o({},P,{groupBy:W.value});if(W.type===u.toggleGroupBy){var ne=W.columnId,J=W.value,ie=J!==void 0?J:!P.groupBy.includes(ne);return o({},P,ie?{groupBy:[].concat(P.groupBy,[ne])}:{groupBy:P.groupBy.filter(function(ke){return ke!==ne})})}}function we(P,W){var V=W.instance.state.groupBy,Q=V.map(function(J){return P.find(function(ie){return ie.id===J})}).filter(Boolean),ne=P.filter(function(J){return!V.includes(J.id)});return(P=[].concat(Q,ne)).forEach(function(J){J.isGrouped=V.includes(J.id),J.groupedIndex=V.indexOf(J.id)}),P}var rt={};function it(P){var W=P.data,V=P.rows,Q=P.flatRows,ne=P.rowsById,J=P.allColumns,ie=P.flatHeaders,ke=P.groupByFn,Ce=ke===void 0?Rt:ke,Ee=P.manualGroupBy,ze=P.aggregations,$e=ze===void 0?rt:ze,Ne=P.plugins,Oe=P.state.groupBy,He=P.dispatch,Ve=P.autoResetGroupBy,qe=Ve===void 0||Ve,nt=P.disableGroupBy,Tt=P.defaultCanGroupBy,at=P.getHooks;y(Ne,["useColumnOrder","useFilters"],"useGroupBy");var Be=w(P);J.forEach(function(ot){var zt=ot.accessor,Rr=ot.defaultGroupBy,Ma=ot.disableGroupBy;ot.canGroupBy=zt?b(ot.canGroupBy,Ma!==!0&&void 0,nt!==!0&&void 0,!0):b(ot.canGroupBy,Rr,Tt,!1),ot.canGroupBy&&(ot.toggleGroupBy=function(){return P.toggleGroupBy(ot.id)}),ot.Aggregated=ot.Aggregated||ot.Cell});var bt=a.useCallback(function(ot,zt){He({type:u.toggleGroupBy,columnId:ot,value:zt})},[He]),Qe=a.useCallback(function(ot){He({type:u.setGroupBy,value:ot})},[He]);ie.forEach(function(ot){ot.getGroupByToggleProps=p(at().getGroupByToggleProps,{instance:Be(),header:ot})});var vt=a.useMemo(function(){if(Ee||!Oe.length)return[V,Q,ne,Nu,se,Q,ne];var ot=Oe.filter(function(oa){return J.find(function(ds){return ds.id===oa})}),zt=[],Rr={},Ma=[],mt={},Sr=[],Gr={},Oa=function oa(ds,po,jO){if(po===void 0&&(po=0),po===ot.length)return ds.map(function(sg){return o({},sg,{depth:po})});var ik=ot[po],Wte=Ce(ds,ik);return Object.entries(Wte).map(function(sg,Ute){var HO=sg[0],lg=sg[1],ug=ik+":"+HO,BO=oa(lg,po+1,ug=jO?jO+">"+ug:ug),WO=po?R(lg,"leafRows"):lg,Vte=function(Pn,ok,qte){var dg={};return J.forEach(function(qr){if(ot.includes(qr.id))dg[qr.id]=ok[0]?ok[0].values[qr.id]:null;else{var UO=typeof qr.aggregate=="function"?qr.aggregate:$e[qr.aggregate]||$u[qr.aggregate];if(UO){var Kte=ok.map(function(cg){return cg.values[qr.id]}),Zte=Pn.map(function(cg){var sk=cg.values[qr.id];if(!qte&&qr.aggregateValue){var VO=typeof qr.aggregateValue=="function"?qr.aggregateValue:$e[qr.aggregateValue]||$u[qr.aggregateValue];if(!VO)throw console.info({column:qr}),new Error("React Table: Invalid column.aggregateValue option for column listed above");sk=VO(sk,cg,qr)}return sk});dg[qr.id]=UO(Zte,Kte)}else{if(qr.aggregate)throw console.info({column:qr}),new Error("React Table: Invalid column.aggregate option for column listed above");dg[qr.id]=null}}}),dg}(WO,lg,po),Gte={id:ug,isGrouped:!0,groupByID:ik,groupByVal:HO,values:Vte,subRows:BO,leafRows:WO,depth:po,index:Ute};return BO.forEach(function(Pn){zt.push(Pn),Rr[Pn.id]=Pn,Pn.isGrouped?(Ma.push(Pn),mt[Pn.id]=Pn):(Sr.push(Pn),Gr[Pn.id]=Pn)}),Gte})}(V);return Oa.forEach(function(oa){zt.push(oa),Rr[oa.id]=oa,oa.isGrouped?(Ma.push(oa),mt[oa.id]=oa):(Sr.push(oa),Gr[oa.id]=oa)}),[Oa,zt,Rr,Ma,mt,Sr,Gr]},[Ee,Oe,V,Q,ne,J,$e,Ce]),Pt=vt[0],ct=vt[1],pt=vt[2],Kt=vt[3],_t=vt[4],qt=vt[5],Nt=vt[6],ur=w(qe);S(function(){ur()&&He({type:u.resetGroupBy})},[He,Ee?null:W]),Object.assign(P,{preGroupedRows:V,preGroupedFlatRow:Q,preGroupedRowsById:ne,groupedRows:Pt,groupedFlatRows:ct,groupedRowsById:pt,onlyGroupedFlatRows:Kt,onlyGroupedRowsById:_t,nonGroupedFlatRows:qt,nonGroupedRowsById:Nt,rows:Pt,flatRows:ct,rowsById:pt,toggleGroupBy:bt,setGroupBy:Qe})}function Lt(P){P.allCells.forEach(function(W){var V;W.isGrouped=W.column.isGrouped&&W.column.id===P.groupByID,W.isPlaceholder=!W.isGrouped&&W.column.isGrouped,W.isAggregated=!W.isGrouped&&!W.isPlaceholder&&((V=P.subRows)==null?void 0:V.length)})}function Rt(P,W){return P.reduce(function(V,Q,ne){var J=""+Q.values[W];return V[J]=Array.isArray(V[J])?V[J]:[],V[J].push(Q),V},{})}var hr=/([0-9]+)/gm;function Ct(P,W){return P===W?0:P>W?1:-1}function Gt(P,W,V){return[P.values[V],W.values[V]]}function pr(P){return typeof P=="number"?isNaN(P)||P===1/0||P===-1/0?"":String(P):typeof P=="string"?P:""}var yt=Object.freeze({__proto__:null,alphanumeric:function(P,W,V){var Q=Gt(P,W,V),ne=Q[0],J=Q[1];for(ne=pr(ne),J=pr(J),ne=ne.split(hr).filter(Boolean),J=J.split(hr).filter(Boolean);ne.length&&J.length;){var ie=ne.shift(),ke=J.shift(),Ce=parseInt(ie,10),Ee=parseInt(ke,10),ze=[Ce,Ee].sort();if(isNaN(ze[0])){if(ie>ke)return 1;if(ke>ie)return-1}else{if(isNaN(ze[1]))return isNaN(Ce)?-1:1;if(Ce>Ee)return 1;if(Ee>Ce)return-1}}return ne.length-J.length},datetime:function(P,W,V){var Q=Gt(P,W,V),ne=Q[0],J=Q[1];return Ct(ne=ne.getTime(),J=J.getTime())},basic:function(P,W,V){var Q=Gt(P,W,V);return Ct(Q[0],Q[1])},string:function(P,W,V){var Q=Gt(P,W,V),ne=Q[0],J=Q[1];for(ne=ne.split("").filter(Boolean),J=J.split("").filter(Boolean);ne.length&&J.length;){var ie=ne.shift(),ke=J.shift(),Ce=ie.toLowerCase(),Ee=ke.toLowerCase();if(Ce>Ee)return 1;if(Ee>Ce)return-1;if(ie>ke)return 1;if(ke>ie)return-1}return ne.length-J.length},number:function(P,W,V){var Q=Gt(P,W,V),ne=Q[0],J=Q[1],ie=/[^0-9.]/gi;return Ct(ne=Number(String(ne).replace(ie,"")),J=Number(String(J).replace(ie,"")))}});u.resetSortBy="resetSortBy",u.setSortBy="setSortBy",u.toggleSortBy="toggleSortBy",u.clearSortBy="clearSortBy",m.sortType="alphanumeric",m.sortDescFirst=!1;var Bt=function(P){P.getSortByToggleProps=[kr],P.stateReducers.push(lr),P.useInstance.push(Rn)};Bt.pluginName="useSortBy";var kr=function(P,W){var V=W.instance,Q=W.column,ne=V.isMultiSortEvent,J=ne===void 0?function(ie){return ie.shiftKey}:ne;return[P,{onClick:Q.canSort?function(ie){ie.persist(),Q.toggleSortBy(void 0,!V.disableMultiSort&&J(ie))}:void 0,style:{cursor:Q.canSort?"pointer":void 0},title:Q.canSort?"Toggle SortBy":void 0}]};function lr(P,W,V,Q){if(W.type===u.init)return o({sortBy:[]},P);if(W.type===u.resetSortBy)return o({},P,{sortBy:Q.initialState.sortBy||[]});if(W.type===u.clearSortBy)return o({},P,{sortBy:P.sortBy.filter(function(Be){return Be.id!==W.columnId})});if(W.type===u.setSortBy)return o({},P,{sortBy:W.sortBy});if(W.type===u.toggleSortBy){var ne,J=W.columnId,ie=W.desc,ke=W.multi,Ce=Q.allColumns,Ee=Q.disableMultiSort,ze=Q.disableSortRemove,$e=Q.disableMultiRemove,Ne=Q.maxMultiSortColCount,Oe=Ne===void 0?Number.MAX_SAFE_INTEGER:Ne,He=P.sortBy,Ve=Ce.find(function(Be){return Be.id===J}).sortDescFirst,qe=He.find(function(Be){return Be.id===J}),nt=He.findIndex(function(Be){return Be.id===J}),Tt=ie!=null,at=[];return(ne=!Ee&&ke?qe?"toggle":"add":nt!==He.length-1||He.length!==1?"replace":qe?"toggle":"replace")!="toggle"||ze||Tt||ke&&$e||!(qe&&qe.desc&&!Ve||!qe.desc&&Ve)||(ne="remove"),ne==="replace"?at=[{id:J,desc:Tt?ie:Ve}]:ne==="add"?(at=[].concat(He,[{id:J,desc:Tt?ie:Ve}])).splice(0,at.length-Oe):ne==="toggle"?at=He.map(function(Be){return Be.id===J?o({},Be,{desc:Tt?ie:!qe.desc}):Be}):ne==="remove"&&(at=He.filter(function(Be){return Be.id!==J})),o({},P,{sortBy:at})}}function Rn(P){var W=P.data,V=P.rows,Q=P.flatRows,ne=P.allColumns,J=P.orderByFn,ie=J===void 0?xa:J,ke=P.sortTypes,Ce=P.manualSortBy,Ee=P.defaultCanSort,ze=P.disableSortBy,$e=P.flatHeaders,Ne=P.state.sortBy,Oe=P.dispatch,He=P.plugins,Ve=P.getHooks,qe=P.autoResetSortBy,nt=qe===void 0||qe;y(He,["useFilters","useGlobalFilter","useGroupBy","usePivotColumns"],"useSortBy");var Tt=a.useCallback(function(ct){Oe({type:u.setSortBy,sortBy:ct})},[Oe]),at=a.useCallback(function(ct,pt,Kt){Oe({type:u.toggleSortBy,columnId:ct,desc:pt,multi:Kt})},[Oe]),Be=w(P);$e.forEach(function(ct){var pt=ct.accessor,Kt=ct.canSort,_t=ct.disableSortBy,qt=ct.id,Nt=pt?b(_t!==!0&&void 0,ze!==!0&&void 0,!0):b(Ee,Kt,!1);ct.canSort=Nt,ct.canSort&&(ct.toggleSortBy=function(ot,zt){return at(ct.id,ot,zt)},ct.clearSortBy=function(){Oe({type:u.clearSortBy,columnId:ct.id})}),ct.getSortByToggleProps=p(Ve().getSortByToggleProps,{instance:Be(),column:ct});var ur=Ne.find(function(ot){return ot.id===qt});ct.isSorted=!!ur,ct.sortedIndex=Ne.findIndex(function(ot){return ot.id===qt}),ct.isSortedDesc=ct.isSorted?ur.desc:void 0});var bt=a.useMemo(function(){if(Ce||!Ne.length)return[V,Q];var ct=[],pt=Ne.filter(function(Kt){return ne.find(function(_t){return _t.id===Kt.id})});return[function Kt(_t){var qt=ie(_t,pt.map(function(Nt){var ur=ne.find(function(Rr){return Rr.id===Nt.id});if(!ur)throw new Error("React-Table: Could not find a column with id: "+Nt.id+" while sorting");var ot=ur.sortType,zt=L(ot)||(ke||{})[ot]||yt[ot];if(!zt)throw new Error("React-Table: Could not find a valid sortType of '"+ot+"' for column '"+Nt.id+"'.");return function(Rr,Ma){return zt(Rr,Ma,Nt.id,Nt.desc)}}),pt.map(function(Nt){var ur=ne.find(function(ot){return ot.id===Nt.id});return ur&&ur.sortInverted?Nt.desc:!Nt.desc}));return qt.forEach(function(Nt){ct.push(Nt),Nt.subRows&&Nt.subRows.length!==0&&(Nt.subRows=Kt(Nt.subRows))}),qt}(V),ct]},[Ce,Ne,V,Q,ne,ie,ke]),Qe=bt[0],vt=bt[1],Pt=w(nt);S(function(){Pt()&&Oe({type:u.resetSortBy})},[Ce?null:W]),Object.assign(P,{preSortedRows:V,preSortedFlatRows:Q,sortedRows:Qe,sortedFlatRows:vt,rows:Qe,flatRows:vt,setSortBy:Tt,toggleSortBy:at})}function xa(P,W,V){return[].concat(P).sort(function(Q,ne){for(var J=0;J<W.length;J+=1){var ie=W[J],ke=V[J]===!1||V[J]==="desc",Ce=ie(Q,ne);if(Ce!==0)return ke?-Ce:Ce}return V[0]?Q.index-ne.index:ne.index-Q.index})}u.resetPage="resetPage",u.gotoPage="gotoPage",u.setPageSize="setPageSize";var Da=function(P){P.stateReducers.push(cn),P.useInstance.push(oi)};function cn(P,W,V,Q){if(W.type===u.init)return o({pageSize:10,pageIndex:0},P);if(W.type===u.resetPage)return o({},P,{pageIndex:Q.initialState.pageIndex||0});if(W.type===u.gotoPage){var ne=Q.pageCount,J=Q.page,ie=_(W.pageIndex,P.pageIndex),ke=!1;return ie>P.pageIndex?ke=ne===-1?J.length>=P.pageSize:ie<ne:ie<P.pageIndex&&(ke=ie>-1),ke?o({},P,{pageIndex:ie}):P}if(W.type===u.setPageSize){var Ce=W.pageSize,Ee=P.pageSize*P.pageIndex;return o({},P,{pageIndex:Math.floor(Ee/Ce),pageSize:Ce})}}function oi(P){var W=P.rows,V=P.autoResetPage,Q=V===void 0||V,ne=P.manualExpandedKey,J=ne===void 0?"expanded":ne,ie=P.plugins,ke=P.pageCount,Ce=P.paginateExpandedRows,Ee=Ce===void 0||Ce,ze=P.expandSubRows,$e=ze===void 0||ze,Ne=P.state,Oe=Ne.pageSize,He=Ne.pageIndex,Ve=Ne.expanded,qe=Ne.globalFilter,nt=Ne.filters,Tt=Ne.groupBy,at=Ne.sortBy,Be=P.dispatch,bt=P.data,Qe=P.manualPagination;y(ie,["useGlobalFilter","useFilters","useGroupBy","useSortBy","useExpanded"],"usePagination");var vt=w(Q);S(function(){vt()&&Be({type:u.resetPage})},[Be,Qe?null:bt,qe,nt,Tt,at]);var Pt=Qe?ke:Math.ceil(W.length/Oe),ct=a.useMemo(function(){return Pt>0?[].concat(new Array(Pt)).fill(null).map(function(zt,Rr){return Rr}):[]},[Pt]),pt=a.useMemo(function(){var zt;if(Qe)zt=W;else{var Rr=Oe*He,Ma=Rr+Oe;zt=W.slice(Rr,Ma)}return Ee?zt:N(zt,{manualExpandedKey:J,expanded:Ve,expandSubRows:$e})},[$e,Ve,J,Qe,He,Oe,Ee,W]),Kt=He>0,_t=Pt===-1?pt.length>=Oe:He<Pt-1,qt=a.useCallback(function(zt){Be({type:u.gotoPage,pageIndex:zt})},[Be]),Nt=a.useCallback(function(){return qt(function(zt){return zt-1})},[qt]),ur=a.useCallback(function(){return qt(function(zt){return zt+1})},[qt]),ot=a.useCallback(function(zt){Be({type:u.setPageSize,pageSize:zt})},[Be]);Object.assign(P,{pageOptions:ct,pageCount:Pt,page:pt,canPreviousPage:Kt,canNextPage:_t,gotoPage:qt,previousPage:Nt,nextPage:ur,setPageSize:ot})}Da.pluginName="usePagination",u.resetPivot="resetPivot",u.togglePivot="togglePivot";var ma=function(P){P.getPivotToggleProps=[si],P.stateReducers.push(mn),P.useInstanceAfterData.push(co),P.allColumns.push(Fu),P.accessValue.push(ju),P.materializedColumns.push(ss),P.materializedColumnsDeps.push(li),P.visibleColumns.push(ls),P.visibleColumnsDeps.push($i),P.useInstance.push(yl),P.prepareRow.push(Ni)};ma.pluginName="usePivotColumns";var Lr=[],si=function(P,W){var V=W.header;return[P,{onClick:V.canPivot?function(Q){Q.persist(),V.togglePivot()}:void 0,style:{cursor:V.canPivot?"pointer":void 0},title:"Toggle Pivot"}]};function mn(P,W,V,Q){if(W.type===u.init)return o({pivotColumns:Lr},P);if(W.type===u.resetPivot)return o({},P,{pivotColumns:Q.initialState.pivotColumns||Lr});if(W.type===u.togglePivot){var ne=W.columnId,J=W.value,ie=J!==void 0?J:!P.pivotColumns.includes(ne);return o({},P,ie?{pivotColumns:[].concat(P.pivotColumns,[ne])}:{pivotColumns:P.pivotColumns.filter(function(ke){return ke!==ne})})}}function co(P){P.allColumns.forEach(function(W){W.isPivotSource=P.state.pivotColumns.includes(W.id)})}function Fu(P,W){var V=W.instance;return P.forEach(function(Q){Q.isPivotSource=V.state.pivotColumns.includes(Q.id),Q.uniqueValues=new Set}),P}function ju(P,W){var V=W.column;return V.uniqueValues&&P!==void 0&&V.uniqueValues.add(P),P}function ss(P,W){var V=W.instance,Q=V.allColumns,ne=V.state;if(!ne.pivotColumns.length||!ne.groupBy||!ne.groupBy.length)return P;var J=ne.pivotColumns.map(function(Ce){return Q.find(function(Ee){return Ee.id===Ce})}).filter(Boolean),ie=Q.filter(function(Ce){return!Ce.isPivotSource&&!ne.groupBy.includes(Ce.id)&&!ne.pivotColumns.includes(Ce.id)}),ke=D(function Ce(Ee,ze,$e){Ee===void 0&&(Ee=0),$e===void 0&&($e=[]);var Ne=J[Ee];return Ne?Array.from(Ne.uniqueValues).sort().map(function(Oe){var He=o({},Ne,{Header:Ne.PivotHeader||typeof Ne.header=="string"?Ne.Header+": "+Oe:Oe,isPivotGroup:!0,parent:ze,depth:Ee,id:ze?ze.id+"."+Ne.id+"."+Oe:Ne.id+"."+Oe,pivotValue:Oe});return He.columns=Ce(Ee+1,He,[].concat($e,[function(Ve){return Ve.values[Ne.id]===Oe}])),He}):ie.map(function(Oe){return o({},Oe,{canPivot:!1,isPivoted:!0,parent:ze,depth:Ee,id:""+(ze?ze.id+"."+Oe.id:Oe.id),accessor:function(He,Ve,qe){if($e.every(function(nt){return nt(qe)}))return qe.values[Oe.id]}})})}());return[].concat(P,ke)}function li(P,W){var V=W.instance.state,Q=V.pivotColumns,ne=V.groupBy;return[].concat(P,[Q,ne])}function ls(P,W){var V=W.instance.state;return P=P.filter(function(Q){return!Q.isPivotSource}),V.pivotColumns.length&&V.groupBy&&V.groupBy.length&&(P=P.filter(function(Q){return Q.isGrouped||Q.isPivoted})),P}function $i(P,W){var V=W.instance;return[].concat(P,[V.state.pivotColumns,V.state.groupBy])}function yl(P){var W=P.columns,V=P.allColumns,Q=P.flatHeaders,ne=P.getHooks,J=P.plugins,ie=P.dispatch,ke=P.autoResetPivot,Ce=ke===void 0||ke,Ee=P.manaulPivot,ze=P.disablePivot,$e=P.defaultCanPivot;y(J,["useGroupBy"],"usePivotColumns");var Ne=w(P);V.forEach(function(He){var Ve=He.accessor,qe=He.defaultPivot,nt=He.disablePivot;He.canPivot=Ve?b(He.canPivot,nt!==!0&&void 0,ze!==!0&&void 0,!0):b(He.canPivot,qe,$e,!1),He.canPivot&&(He.togglePivot=function(){return P.togglePivot(He.id)}),He.Aggregated=He.Aggregated||He.Cell}),Q.forEach(function(He){He.getPivotToggleProps=p(ne().getPivotToggleProps,{instance:Ne(),header:He})});var Oe=w(Ce);S(function(){Oe()&&ie({type:u.resetPivot})},[ie,Ee?null:W]),Object.assign(P,{togglePivot:function(He,Ve){ie({type:u.togglePivot,columnId:He,value:Ve})}})}function Ni(P){P.allCells.forEach(function(W){W.isPivoted=W.column.isPivoted})}u.resetSelectedRows="resetSelectedRows",u.toggleAllRowsSelected="toggleAllRowsSelected",u.toggleRowSelected="toggleRowSelected",u.toggleAllPageRowsSelected="toggleAllPageRowsSelected";var tg=function(P){P.getToggleRowSelectedProps=[G0],P.getToggleAllRowsSelectedProps=[q0],P.getToggleAllPageRowsSelectedProps=[K0],P.stateReducers.push(rg),P.useInstance.push(Z0),P.prepareRow.push(Q0)};tg.pluginName="useRowSelect";var G0=function(P,W){var V=W.instance,Q=W.row,ne=V.manualRowSelectedKey,J=ne===void 0?"isSelected":ne;return[P,{onChange:function(ie){Q.toggleRowSelected(ie.target.checked)},style:{cursor:"pointer"},checked:!(!Q.original||!Q.original[J])||Q.isSelected,title:"Toggle Row Selected",indeterminate:Q.isSomeSelected}]},q0=function(P,W){var V=W.instance;return[P,{onChange:function(Q){V.toggleAllRowsSelected(Q.target.checked)},style:{cursor:"pointer"},checked:V.isAllRowsSelected,title:"Toggle All Rows Selected",indeterminate:!!(!V.isAllRowsSelected&&Object.keys(V.state.selectedRowIds).length)}]},K0=function(P,W){var V=W.instance;return[P,{onChange:function(Q){V.toggleAllPageRowsSelected(Q.target.checked)},style:{cursor:"pointer"},checked:V.isAllPageRowsSelected,title:"Toggle All Current Page Rows Selected",indeterminate:!!(!V.isAllPageRowsSelected&&V.page.some(function(Q){var ne=Q.id;return V.state.selectedRowIds[ne]}))}]};function rg(P,W,V,Q){if(W.type===u.init)return o({selectedRowIds:{}},P);if(W.type===u.resetSelectedRows)return o({},P,{selectedRowIds:Q.initialState.selectedRowIds||{}});if(W.type===u.toggleAllRowsSelected){var ne=W.value,J=Q.isAllRowsSelected,ie=Q.rowsById,ke=Q.nonGroupedRowsById,Ce=ke===void 0?ie:ke,Ee=ne!==void 0?ne:!J,ze=Object.assign({},P.selectedRowIds);return Ee?Object.keys(Ce).forEach(function(qt){ze[qt]=!0}):Object.keys(Ce).forEach(function(qt){delete ze[qt]}),o({},P,{selectedRowIds:ze})}if(W.type===u.toggleRowSelected){var $e=W.id,Ne=W.value,Oe=Q.rowsById,He=Q.selectSubRows,Ve=He===void 0||He,qe=Q.getSubRows,nt=P.selectedRowIds[$e],Tt=Ne!==void 0?Ne:!nt;if(nt===Tt)return P;var at=o({},P.selectedRowIds);return function qt(Nt){var ur=Oe[Nt];if(ur&&(ur.isGrouped||(Tt?at[Nt]=!0:delete at[Nt]),Ve&&qe(ur)))return qe(ur).forEach(function(ot){return qt(ot.id)})}($e),o({},P,{selectedRowIds:at})}if(W.type===u.toggleAllPageRowsSelected){var Be=W.value,bt=Q.page,Qe=Q.rowsById,vt=Q.selectSubRows,Pt=vt===void 0||vt,ct=Q.isAllPageRowsSelected,pt=Q.getSubRows,Kt=Be!==void 0?Be:!ct,_t=o({},P.selectedRowIds);return bt.forEach(function(qt){return function Nt(ur){var ot=Qe[ur];if(ot.isGrouped||(Kt?_t[ur]=!0:delete _t[ur]),Pt&&pt(ot))return pt(ot).forEach(function(zt){return Nt(zt.id)})}(qt.id)}),o({},P,{selectedRowIds:_t})}return P}function Z0(P){var W=P.data,V=P.rows,Q=P.getHooks,ne=P.plugins,J=P.rowsById,ie=P.nonGroupedRowsById,ke=ie===void 0?J:ie,Ce=P.autoResetSelectedRows,Ee=Ce===void 0||Ce,ze=P.state.selectedRowIds,$e=P.selectSubRows,Ne=$e===void 0||$e,Oe=P.dispatch,He=P.page,Ve=P.getSubRows;y(ne,["useFilters","useGroupBy","useSortBy","useExpanded","usePagination"],"useRowSelect");var qe=a.useMemo(function(){var pt=[];return V.forEach(function(Kt){var _t=Ne?function qt(Nt,ur,ot){if(ur[Nt.id])return!0;var zt=ot(Nt);if(zt&&zt.length){var Rr=!0,Ma=!1;return zt.forEach(function(mt){Ma&&!Rr||(qt(mt,ur,ot)?Ma=!0:Rr=!1)}),!!Rr||!!Ma&&null}return!1}(Kt,ze,Ve):!!ze[Kt.id];Kt.isSelected=!!_t,Kt.isSomeSelected=_t===null,_t&&pt.push(Kt)}),pt},[V,Ne,ze,Ve]),nt=!!(Object.keys(ke).length&&Object.keys(ze).length),Tt=nt;nt&&Object.keys(ke).some(function(pt){return!ze[pt]})&&(nt=!1),nt||He&&He.length&&He.some(function(pt){var Kt=pt.id;return!ze[Kt]})&&(Tt=!1);var at=w(Ee);S(function(){at()&&Oe({type:u.resetSelectedRows})},[Oe,W]);var Be=a.useCallback(function(pt){return Oe({type:u.toggleAllRowsSelected,value:pt})},[Oe]),bt=a.useCallback(function(pt){return Oe({type:u.toggleAllPageRowsSelected,value:pt})},[Oe]),Qe=a.useCallback(function(pt,Kt){return Oe({type:u.toggleRowSelected,id:pt,value:Kt})},[Oe]),vt=w(P),Pt=p(Q().getToggleAllRowsSelectedProps,{instance:vt()}),ct=p(Q().getToggleAllPageRowsSelectedProps,{instance:vt()});Object.assign(P,{selectedFlatRows:qe,isAllRowsSelected:nt,isAllPageRowsSelected:Tt,toggleRowSelected:Qe,toggleAllRowsSelected:Be,getToggleAllRowsSelectedProps:Pt,getToggleAllPageRowsSelectedProps:ct,toggleAllPageRowsSelected:bt})}function Q0(P,W){var V=W.instance;P.toggleRowSelected=function(Q){return V.toggleRowSelected(P.id,Q)},P.getToggleRowSelectedProps=p(V.getHooks().getToggleRowSelectedProps,{instance:V,row:P})}var _m=function(P){return{}},_l=function(P){return{}};u.setRowState="setRowState",u.setCellState="setCellState",u.resetRowState="resetRowState";var mo=function(P){P.stateReducers.push(Y0),P.useInstance.push(X0),P.prepareRow.push(Fi)};function Y0(P,W,V,Q){var ne=Q.initialRowStateAccessor,J=ne===void 0?_m:ne,ie=Q.initialCellStateAccessor,ke=ie===void 0?_l:ie,Ce=Q.rowsById;if(W.type===u.init)return o({rowState:{}},P);if(W.type===u.resetRowState)return o({},P,{rowState:Q.initialState.rowState||{}});if(W.type===u.setRowState){var Ee,ze=W.rowId,$e=W.value,Ne=P.rowState[ze]!==void 0?P.rowState[ze]:J(Ce[ze]);return o({},P,{rowState:o({},P.rowState,(Ee={},Ee[ze]=_($e,Ne),Ee))})}if(W.type===u.setCellState){var Oe,He,Ve,qe,nt,Tt=W.rowId,at=W.columnId,Be=W.value,bt=P.rowState[Tt]!==void 0?P.rowState[Tt]:J(Ce[Tt]),Qe=(bt==null||(Oe=bt.cellState)==null?void 0:Oe[at])!==void 0?bt.cellState[at]:ke((He=Ce[Tt])==null||(Ve=He.cells)==null?void 0:Ve.find(function(vt){return vt.column.id===at}));return o({},P,{rowState:o({},P.rowState,(nt={},nt[Tt]=o({},bt,{cellState:o({},bt.cellState||{},(qe={},qe[at]=_(Be,Qe),qe))}),nt))})}}function X0(P){var W=P.autoResetRowState,V=W===void 0||W,Q=P.data,ne=P.dispatch,J=a.useCallback(function(Ce,Ee){return ne({type:u.setRowState,rowId:Ce,value:Ee})},[ne]),ie=a.useCallback(function(Ce,Ee,ze){return ne({type:u.setCellState,rowId:Ce,columnId:Ee,value:ze})},[ne]),ke=w(V);S(function(){ke()&&ne({type:u.resetRowState})},[Q]),Object.assign(P,{setRowState:J,setCellState:ie})}function Fi(P,W){var V=W.instance,Q=V.initialRowStateAccessor,ne=Q===void 0?_m:Q,J=V.initialCellStateAccessor,ie=J===void 0?_l:J,ke=V.state.rowState;P&&(P.state=ke[P.id]!==void 0?ke[P.id]:ne(P),P.setState=function(Ce){return V.setRowState(P.id,Ce)},P.cells.forEach(function(Ce){P.state.cellState||(P.state.cellState={}),Ce.state=P.state.cellState[Ce.column.id]!==void 0?P.state.cellState[Ce.column.id]:ie(Ce),Ce.setState=function(Ee){return V.setCellState(P.id,Ce.column.id,Ee)}}))}mo.pluginName="useRowState",u.resetColumnOrder="resetColumnOrder",u.setColumnOrder="setColumnOrder";var ag=function(P){P.stateReducers.push(J0),P.visibleColumnsDeps.push(function(W,V){var Q=V.instance;return[].concat(W,[Q.state.columnOrder])}),P.visibleColumns.push(ek),P.useInstance.push(tk)};function J0(P,W,V,Q){return W.type===u.init?o({columnOrder:[]},P):W.type===u.resetColumnOrder?o({},P,{columnOrder:Q.initialState.columnOrder||[]}):W.type===u.setColumnOrder?o({},P,{columnOrder:_(W.columnOrder,P.columnOrder)}):void 0}function ek(P,W){var V=W.instance.state.columnOrder;if(!V||!V.length)return P;for(var Q=[].concat(V),ne=[].concat(P),J=[],ie=function(){var ke=Q.shift(),Ce=ne.findIndex(function(Ee){return Ee.id===ke});Ce>-1&&J.push(ne.splice(Ce,1)[0])};ne.length&&Q.length;)ie();return[].concat(J,ne)}function tk(P){var W=P.dispatch;P.setColumnOrder=a.useCallback(function(V){return W({type:u.setColumnOrder,columnOrder:V})},[W])}ag.pluginName="useColumnOrder",m.canResize=!0,u.columnStartResizing="columnStartResizing",u.columnResizing="columnResizing",u.columnDoneResizing="columnDoneResizing",u.resetResize="resetResize";var ng=function(P){P.getResizerProps=[ho],P.getHeaderProps.push({style:{position:"relative"}}),P.stateReducers.push(ig),P.useInstance.push(Hu),P.useInstanceBeforeDimensions.push(rk)},ho=function(P,W){var V=W.instance,Q=W.header,ne=V.dispatch,J=function(ie,ke){var Ce=!1;if(ie.type==="touchstart"){if(ie.touches&&ie.touches.length>1)return;Ce=!0}var Ee,ze,$e=function(at){var Be=[];return function bt(Qe){Qe.columns&&Qe.columns.length&&Qe.columns.map(bt),Be.push(Qe)}(at),Be}(ke).map(function(at){return[at.id,at.totalWidth]}),Ne=Ce?Math.round(ie.touches[0].clientX):ie.clientX,Oe=function(){window.cancelAnimationFrame(Ee),Ee=null,ne({type:u.columnDoneResizing})},He=function(){window.cancelAnimationFrame(Ee),Ee=null,ne({type:u.columnResizing,clientX:ze})},Ve=function(at){ze=at,Ee||(Ee=window.requestAnimationFrame(He))},qe={mouse:{moveEvent:"mousemove",moveHandler:function(at){return Ve(at.clientX)},upEvent:"mouseup",upHandler:function(at){document.removeEventListener("mousemove",qe.mouse.moveHandler),document.removeEventListener("mouseup",qe.mouse.upHandler),Oe()}},touch:{moveEvent:"touchmove",moveHandler:function(at){return at.cancelable&&(at.preventDefault(),at.stopPropagation()),Ve(at.touches[0].clientX),!1},upEvent:"touchend",upHandler:function(at){document.removeEventListener(qe.touch.moveEvent,qe.touch.moveHandler),document.removeEventListener(qe.touch.upEvent,qe.touch.moveHandler),Oe()}}},nt=Ce?qe.touch:qe.mouse,Tt=!!function(){if(typeof j=="boolean")return j;var at=!1;try{var Be={get passive(){return at=!0,!1}};window.addEventListener("test",null,Be),window.removeEventListener("test",null,Be)}catch{at=!1}return j=at}()&&{passive:!1};document.addEventListener(nt.moveEvent,nt.moveHandler,Tt),document.addEventListener(nt.upEvent,nt.upHandler,Tt),ne({type:u.columnStartResizing,columnId:ke.id,columnWidth:ke.totalWidth,headerIdWidths:$e,clientX:Ne})};return[P,{onMouseDown:function(ie){return ie.persist()||J(ie,Q)},onTouchStart:function(ie){return ie.persist()||J(ie,Q)},style:{cursor:"col-resize"},draggable:!1,role:"separator"}]};function ig(P,W){if(W.type===u.init)return o({columnResizing:{columnWidths:{}}},P);if(W.type===u.resetResize)return o({},P,{columnResizing:{columnWidths:{}}});if(W.type===u.columnStartResizing){var V=W.clientX,Q=W.columnId,ne=W.columnWidth,J=W.headerIdWidths;return o({},P,{columnResizing:o({},P.columnResizing,{startX:V,headerIdWidths:J,columnWidth:ne,isResizingColumn:Q})})}if(W.type===u.columnResizing){var ie=W.clientX,ke=P.columnResizing,Ce=ke.startX,Ee=ke.columnWidth,ze=ke.headerIdWidths,$e=(ie-Ce)/Ee,Ne={};return(ze===void 0?[]:ze).forEach(function(Oe){var He=Oe[0],Ve=Oe[1];Ne[He]=Math.max(Ve+Ve*$e,0)}),o({},P,{columnResizing:o({},P.columnResizing,{columnWidths:o({},P.columnResizing.columnWidths,{},Ne)})})}return W.type===u.columnDoneResizing?o({},P,{columnResizing:o({},P.columnResizing,{startX:null,isResizingColumn:null})}):void 0}ng.pluginName="useResizeColumns";var rk=function(P){var W=P.flatHeaders,V=P.disableResizing,Q=P.getHooks,ne=P.state.columnResizing,J=w(P);W.forEach(function(ie){var ke=b(ie.disableResizing!==!0&&void 0,V!==!0&&void 0,!0);ie.canResize=ke,ie.width=ne.columnWidths[ie.id]||ie.originalWidth||ie.width,ie.isResizing=ne.isResizingColumn===ie.id,ke&&(ie.getResizerProps=p(Q().getResizerProps,{instance:J(),header:ie}))})};function Hu(P){var W=P.plugins,V=P.dispatch,Q=P.autoResetResize,ne=Q===void 0||Q,J=P.columns;y(W,["useAbsoluteLayout"],"useResizeColumns");var ie=w(ne);S(function(){ie()&&V({type:u.resetResize})},[J]);var ke=a.useCallback(function(){return V({type:u.resetResize})},[V]);Object.assign(P,{resetResizing:ke})}var bm={position:"absolute",top:0},Bu=function(P){P.getTableBodyProps.push(Wu),P.getRowProps.push(Wu),P.getHeaderGroupProps.push(Wu),P.getFooterGroupProps.push(Wu),P.getHeaderProps.push(function(W,V){var Q=V.column;return[W,{style:o({},bm,{left:Q.totalLeft+"px",width:Q.totalWidth+"px"})}]}),P.getCellProps.push(function(W,V){var Q=V.cell;return[W,{style:o({},bm,{left:Q.column.totalLeft+"px",width:Q.column.totalWidth+"px"})}]}),P.getFooterProps.push(function(W,V){var Q=V.column;return[W,{style:o({},bm,{left:Q.totalLeft+"px",width:Q.totalWidth+"px"})}]})};Bu.pluginName="useAbsoluteLayout";var Wu=function(P,W){return[P,{style:{position:"relative",width:W.instance.totalColumnsWidth+"px"}}]},Uu={display:"inline-block",boxSizing:"border-box"},Vu=function(P,W){return[P,{style:{display:"flex",width:W.instance.totalColumnsWidth+"px"}}]},wm=function(P){P.getRowProps.push(Vu),P.getHeaderGroupProps.push(Vu),P.getFooterGroupProps.push(Vu),P.getHeaderProps.push(function(W,V){var Q=V.column;return[W,{style:o({},Uu,{width:Q.totalWidth+"px"})}]}),P.getCellProps.push(function(W,V){var Q=V.cell;return[W,{style:o({},Uu,{width:Q.column.totalWidth+"px"})}]}),P.getFooterProps.push(function(W,V){var Q=V.column;return[W,{style:o({},Uu,{width:Q.totalWidth+"px"})}]})};function us(P){P.getTableProps.push(og),P.getRowProps.push(km),P.getHeaderGroupProps.push(km),P.getFooterGroupProps.push(km),P.getHeaderProps.push(ak),P.getCellProps.push(nk),P.getFooterProps.push(te)}wm.pluginName="useBlockLayout",us.pluginName="useFlexLayout";var og=function(P,W){return[P,{style:{minWidth:W.instance.totalColumnsMinWidth+"px"}}]},km=function(P,W){return[P,{style:{display:"flex",flex:"1 0 auto",minWidth:W.instance.totalColumnsMinWidth+"px"}}]},ak=function(P,W){var V=W.column;return[P,{style:{boxSizing:"border-box",flex:V.totalFlexWidth?V.totalFlexWidth+" 0 auto":void 0,minWidth:V.totalMinWidth+"px",width:V.totalWidth+"px"}}]},nk=function(P,W){var V=W.cell;return[P,{style:{boxSizing:"border-box",flex:V.column.totalFlexWidth+" 0 auto",minWidth:V.column.totalMinWidth+"px",width:V.column.totalWidth+"px"}}]},te=function(P,W){var V=W.column;return[P,{style:{boxSizing:"border-box",flex:V.totalFlexWidth?V.totalFlexWidth+" 0 auto":void 0,minWidth:V.totalMinWidth+"px",width:V.totalWidth+"px"}}]};function ve(P){P.stateReducers.push(At),P.getTableProps.push(Pe),P.getHeaderProps.push(Ke),P.getRowProps.push(mr)}u.columnStartResizing="columnStartResizing",u.columnResizing="columnResizing",u.columnDoneResizing="columnDoneResizing",u.resetResize="resetResize",ve.pluginName="useGridLayout";var Pe=function(P,W){var V=W.instance;return[P,{style:{display:"grid",gridTemplateColumns:V.visibleColumns.map(function(Q){var ne;return V.state.gridLayout.columnWidths[Q.id]?V.state.gridLayout.columnWidths[Q.id]+"px":(ne=V.state.columnResizing)!=null&&ne.isResizingColumn?V.state.gridLayout.startWidths[Q.id]+"px":typeof Q.width=="number"?Q.width+"px":Q.width}).join(" ")}}]},Ke=function(P,W){var V=W.column;return[P,{id:"header-cell-"+V.id,style:{position:"sticky",gridColumn:"span "+V.totalVisibleHeaderCount}}]},mr=function(P,W){var V=W.row;return V.isExpanded?[P,{style:{gridColumn:"1 / "+(V.cells.length+1)}}]:[P,{}]};function At(P,W,V,Q){if(W.type===u.init)return o({gridLayout:{columnWidths:{}}},P);if(W.type===u.resetResize)return o({},P,{gridLayout:{columnWidths:{}}});if(W.type===u.columnStartResizing){var ne=W.columnId,J=W.headerIdWidths,ie=fr(ne);if(ie!==void 0){var ke=Q.visibleColumns.reduce(function(Be,bt){var Qe;return o({},Be,((Qe={})[bt.id]=fr(bt.id),Qe))},{}),Ce=Q.visibleColumns.reduce(function(Be,bt){var Qe;return o({},Be,((Qe={})[bt.id]=bt.minWidth,Qe))},{}),Ee=Q.visibleColumns.reduce(function(Be,bt){var Qe;return o({},Be,((Qe={})[bt.id]=bt.maxWidth,Qe))},{}),ze=J.map(function(Be){var bt=Be[0];return[bt,fr(bt)]});return o({},P,{gridLayout:o({},P.gridLayout,{startWidths:ke,minWidths:Ce,maxWidths:Ee,headerIdGridWidths:ze,columnWidth:ie})})}return P}if(W.type===u.columnResizing){var $e=W.clientX,Ne=P.columnResizing.startX,Oe=P.gridLayout,He=Oe.columnWidth,Ve=Oe.minWidths,qe=Oe.maxWidths,nt=Oe.headerIdGridWidths,Tt=($e-Ne)/He,at={};return(nt===void 0?[]:nt).forEach(function(Be){var bt=Be[0],Qe=Be[1];at[bt]=Math.min(Math.max(Ve[bt],Qe+Qe*Tt),qe[bt])}),o({},P,{gridLayout:o({},P.gridLayout,{columnWidths:o({},P.gridLayout.columnWidths,{},at)})})}return W.type===u.columnDoneResizing?o({},P,{gridLayout:o({},P.gridLayout,{startWidths:{},minWidths:{},maxWidths:{}})}):void 0}function fr(P){var W,V=(W=document.getElementById("header-cell-"+P))==null?void 0:W.offsetWidth;if(V!==void 0)return V}r._UNSTABLE_usePivotColumns=ma,r.actions=u,r.defaultColumn=m,r.defaultGroupByFn=Rt,r.defaultOrderByFn=xa,r.defaultRenderer=d,r.emptyRenderer=c,r.ensurePluginOrder=y,r.flexRender=T,r.functionalUpdate=_,r.loopHooks=v,r.makePropGetter=p,r.makeRenderer=A,r.reduceHooks=f,r.safeUseLayoutEffect=k,r.useAbsoluteLayout=Bu,r.useAsyncDebounce=function(P,W){W===void 0&&(W=0);var V=a.useRef({}),Q=w(P),ne=w(W);return a.useCallback(function(){var J=i(regeneratorRuntime.mark(function ie(){var ke,Ce,Ee,ze=arguments;return regeneratorRuntime.wrap(function($e){for(;;)switch($e.prev=$e.next){case 0:for(ke=ze.length,Ce=new Array(ke),Ee=0;Ee<ke;Ee++)Ce[Ee]=ze[Ee];return V.current.promise||(V.current.promise=new Promise(function(Ne,Oe){V.current.resolve=Ne,V.current.reject=Oe})),V.current.timeout&&clearTimeout(V.current.timeout),V.current.timeout=setTimeout(i(regeneratorRuntime.mark(function Ne(){return regeneratorRuntime.wrap(function(Oe){for(;;)switch(Oe.prev=Oe.next){case 0:return delete V.current.timeout,Oe.prev=1,Oe.t0=V.current,Oe.next=5,Q().apply(void 0,Ce);case 5:Oe.t1=Oe.sent,Oe.t0.resolve.call(Oe.t0,Oe.t1),Oe.next=12;break;case 9:Oe.prev=9,Oe.t2=Oe.catch(1),V.current.reject(Oe.t2);case 12:return Oe.prev=12,delete V.current.promise,Oe.finish(12);case 15:case"end":return Oe.stop()}},Ne,null,[[1,9,12,15]])})),ne()),$e.abrupt("return",V.current.promise);case 5:case"end":return $e.stop()}},ie)}));return function(){return J.apply(this,arguments)}}(),[Q,ne])},r.useBlockLayout=wm,r.useColumnOrder=ag,r.useExpanded=Re,r.useFilters=is,r.useFlexLayout=us,r.useGetLatest=w,r.useGlobalFilter=Ln,r.useGridLayout=ve,r.useGroupBy=ee,r.useMountedLayoutEffect=S,r.usePagination=Da,r.useResizeColumns=ng,r.useRowSelect=tg,r.useRowState=mo,r.useSortBy=Bt,r.useTable=function(P){for(var W=arguments.length,V=new Array(W>1?W-1:0),Q=1;Q<W;Q++)V[Q-1]=arguments[Q];P=xe(P),V=[Ie].concat(V);var ne=a.useRef({}),J=w(ne.current);Object.assign(J(),o({},P,{plugins:V,hooks:ye()})),V.filter(Boolean).forEach(function(mt){mt(J().hooks)});var ie=w(J().hooks);J().getHooks=ie,delete J().hooks,Object.assign(J(),f(ie().useOptions,xe(P)));var ke=J(),Ce=ke.data,Ee=ke.columns,ze=ke.initialState,$e=ke.defaultColumn,Ne=ke.getSubRows,Oe=ke.getRowId,He=ke.stateReducer,Ve=ke.useControlledState,qe=w(He),nt=a.useCallback(function(mt,Sr){if(!Sr.type)throw console.info({action:Sr}),new Error("Unknown Action 👆");return[].concat(ie().stateReducers,Array.isArray(qe())?qe():[qe()]).reduce(function(Gr,Oa){return Oa(Gr,Sr,mt,J())||Gr},mt)},[ie,qe,J]),Tt=a.useReducer(nt,void 0,function(){return nt(ze,{type:u.init})}),at=Tt[0],Be=Tt[1],bt=f([].concat(ie().useControlledState,[Ve]),at,{instance:J()});Object.assign(J(),{state:bt,dispatch:Be});var Qe=a.useMemo(function(){return E(f(ie().columns,Ee,{instance:J()}))},[ie,J,Ee].concat(f(ie().columnsDeps,[],{instance:J()})));J().columns=Qe;var vt=a.useMemo(function(){return f(ie().allColumns,D(Qe),{instance:J()}).map(I)},[Qe,ie,J].concat(f(ie().allColumnsDeps,[],{instance:J()})));J().allColumns=vt;var Pt=a.useMemo(function(){for(var mt=[],Sr=[],Gr={},Oa=[].concat(vt);Oa.length;){var oa=Oa.shift();De({data:Ce,rows:mt,flatRows:Sr,rowsById:Gr,column:oa,getRowId:Oe,getSubRows:Ne,accessValueHooks:ie().accessValue,getInstance:J})}return[mt,Sr,Gr]},[vt,Ce,Oe,Ne,ie,J]),ct=Pt[0],pt=Pt[1],Kt=Pt[2];Object.assign(J(),{rows:ct,initialRows:[].concat(ct),flatRows:pt,rowsById:Kt}),v(ie().useInstanceAfterData,J());var _t=a.useMemo(function(){return f(ie().visibleColumns,vt,{instance:J()}).map(function(mt){return x(mt,$e)})},[ie,vt,J,$e].concat(f(ie().visibleColumnsDeps,[],{instance:J()})));vt=a.useMemo(function(){var mt=[].concat(_t);return vt.forEach(function(Sr){mt.find(function(Gr){return Gr.id===Sr.id})||mt.push(Sr)}),mt},[vt,_t]),J().allColumns=vt;var qt=a.useMemo(function(){return f(ie().headerGroups,O(_t,$e),J())},[ie,_t,$e,J].concat(f(ie().headerGroupsDeps,[],{instance:J()})));J().headerGroups=qt;var Nt=a.useMemo(function(){return qt.length?qt[0].headers:[]},[qt]);J().headers=Nt,J().flatHeaders=qt.reduce(function(mt,Sr){return[].concat(mt,Sr.headers)},[]),v(ie().useInstanceBeforeDimensions,J());var ur=_t.filter(function(mt){return mt.isVisible}).map(function(mt){return mt.id}).sort().join("_");_t=a.useMemo(function(){return _t.filter(function(mt){return mt.isVisible})},[_t,ur]),J().visibleColumns=_t;var ot=me(Nt),zt=ot[0],Rr=ot[1],Ma=ot[2];return J().totalColumnsMinWidth=zt,J().totalColumnsWidth=Rr,J().totalColumnsMaxWidth=Ma,v(ie().useInstance,J()),[].concat(J().flatHeaders,J().allColumns).forEach(function(mt){mt.render=A(J(),mt),mt.getHeaderProps=p(ie().getHeaderProps,{instance:J(),column:mt}),mt.getFooterProps=p(ie().getFooterProps,{instance:J(),column:mt})}),J().headerGroups=a.useMemo(function(){return qt.filter(function(mt,Sr){return mt.headers=mt.headers.filter(function(Gr){return Gr.headers?function Oa(oa){return oa.filter(function(ds){return ds.headers?Oa(ds.headers):ds.isVisible}).length}(Gr.headers):Gr.isVisible}),!!mt.headers.length&&(mt.getHeaderGroupProps=p(ie().getHeaderGroupProps,{instance:J(),headerGroup:mt,index:Sr}),mt.getFooterGroupProps=p(ie().getFooterGroupProps,{instance:J(),headerGroup:mt,index:Sr}),!0)})},[qt,J,ie]),J().footerGroups=[].concat(J().headerGroups).reverse(),J().prepareRow=a.useCallback(function(mt){mt.getRowProps=p(ie().getRowProps,{instance:J(),row:mt}),mt.allCells=vt.map(function(Sr){var Gr=mt.values[Sr.id],Oa={column:Sr,row:mt,value:Gr};return Oa.getCellProps=p(ie().getCellProps,{instance:J(),cell:Oa}),Oa.render=A(J(),Sr,{row:mt,cell:Oa,value:Gr}),Oa}),mt.cells=_t.map(function(Sr){return mt.allCells.find(function(Gr){return Gr.column.id===Sr.id})}),v(ie().prepareRow,mt,{instance:J()})},[ie,J,vt,_t]),J().getTableProps=p(ie().getTableProps,{instance:J()}),J().getTableBodyProps=p(ie().getTableBodyProps,{instance:J()}),v(ie().useFinalInstance,J()),J()},Object.defineProperty(r,"__esModule",{value:!0})})})(pI,pI.exports);var QAt=pI.exports;ute.exports=QAt;var Ey=ute.exports;function dte({globalFilter:e,setGlobalFilter:t}){const[r,a]=q.useState(e),n=Ey.useAsyncDebounce(s=>{t(s)},200),{t:i}=Ot(["common"]),o=()=>{a(""),t("")};return C.jsxs("div",{className:"input-group",children:[C.jsx("input",{type:"text",className:"form-control",value:r||"",onChange:s=>{a(s.target.value),n(s.target.value)},placeholder:i("common:enter_search_criteria")}),C.jsx("button",{className:"btn btn-outline-secondary",type:"button",onClick:o,children:C.jsx("i",{className:"fa fa-times"})})]})}const YAt="z2m-",NO=e=>`${YAt}${e}`,cte=(e,t)=>{Mw.set(NO(e),t)},XAt=e=>Mw.get(e),JAt=(e,t,r,a)=>{if(a){const{instanceId:n}=a,{sortBy:i,globalFilter:o}=e;cte(n,{sortBy:i,globalFilter:o})}return e},U0=({columns:e,data:t,id:r,initialState:a={}})=>{const n=Mw.get(NO(r))||a,{getTableProps:i,getTableBodyProps:o,headerGroups:s,rows:l,prepareRow:u,state:d,visibleColumns:c,setGlobalFilter:m}=Ey.useTable({instanceId:r,stateReducer:JAt,columns:e,data:t,autoResetSortBy:!1,autoResetFilters:!1,initialState:n},Ey.useGlobalFilter,Ey.useSortBy);return C.jsxs("table",{...i(),className:"table responsive",children:[C.jsxs("thead",{children:[C.jsx("tr",{children:C.jsx("th",{colSpan:c.length+1,children:C.jsx(dte,{globalFilter:d.globalFilter,setGlobalFilter:m})})}),s.map((h,p)=>X.createElement("tr",{...h.getHeaderGroupProps(),key:p},C.jsx("th",{className:"text-nowrap",children:"#"}),h.headers.map(f=>X.createElement("th",{className:"text-nowrap",...f.getHeaderProps(f.getSortByToggleProps()),key:f.id},C.jsx("span",{className:Ue({"btn-link me-1":f.canSort}),children:f.render("Header")}),C.jsx("span",{children:C.jsx("i",{className:Ue("fa",{"fa-sort-amount-down invisible":!f.isSorted,"fa-sort-amount-down-alt":f.isSorted&&!f.isSortedDesc,"fa-sort-amount-down":f.isSorted&&f.isSortedDesc})})})))))]}),C.jsx("tbody",{...o(),children:l.map((h,p)=>(u(h),X.createElement("tr",{...h.getRowProps(),key:h.id},C.jsx("td",{children:C.jsx("div",{className:"font-weight-bold",children:p+1})}),h.cells.map(f=>X.createElement("td",{...f.getCellProps(),key:f.column.id},f.render("Cell"))))))})]})};class eTt extends X.Component{constructor(){super(...arguments),this.onIdentifyClick=t=>{const{touchlinkIdentify:r}=this.props;r(t)},this.onResetClick=t=>{const{touchlinkReset:r}=this.props;r(t)}}renderTouchlinkDevices(){const{touchlinkDevices:t,devices:r,touchlinkIdentifyInProgress:a,touchlinkResetInProgress:n,t:i}=this.props,o=a||n,s=[{Header:i("zigbee:ieee_address"),accessor:l=>l.ieee_address,Cell:({row:{original:l}})=>r[l.ieee_address]?C.jsx(Qs,{to:Ow(l.ieee_address),children:l.ieee_address}):l.ieee_address},{Header:i("zigbee:friendly_name"),accessor:l=>{var u;return(u=r[l.ieee_address])==null?void 0:u.friendly_name}},{id:"channel",Header:i("zigbee:channel"),accessor:"channel"},{id:"actions",Header:"",Cell:({row:{original:l}})=>C.jsxs("div",{className:"btn-group float-right",role:"group","aria-label":"Basic example",children:[C.jsx(lt,{disabled:o,item:l,title:i("identify"),className:"btn btn-primary",onClick:this.onIdentifyClick,children:C.jsx("i",{className:Ue("fa",{"fa-exclamation-triangle":!a,"fas fa-circle-notch fa-spin":a})})}),C.jsx(lt,{disabled:o,item:l,title:i("factory_reset"),className:"btn btn-danger",onClick:this.onResetClick,children:C.jsx("i",{className:Ue("fa",{"fa-broom":!n,"fas fa-circle-notch fa-spin":n})})})]})}];return C.jsx("div",{className:"table-responsive",children:C.jsx(U0,{id:"touchlinkDevices",columns:s,data:t})})}renderNoDevices(){const{touchlinkScan:t,t:r}=this.props;return C.jsx(lt,{className:"btn btn-primary mx-auto d-block",onClick:t,children:r("scan")})}render(){const{touchlinkDevices:t,touchlinkScanInProgress:r,touchlinkScan:a,t:n}=this.props;return C.jsxs("div",{className:"card",children:[C.jsxs("div",{className:"card-header allign-middle",children:[n("detected_devices_message",{count:t.length}),C.jsx(lt,{title:n("rescan"),className:"btn btn-primary btn-sm float-right",onClick:a,children:C.jsx("i",{className:"fa fa-sync"})})]}),C.jsx("div",{className:"card-body",children:r?C.jsx("div",{className:"d-flex justify-content-center",children:C.jsx("div",{className:"spinner-border",role:"status",children:C.jsx("span",{className:"sr-only",children:n("common:loading")})})}):t.length===0?this.renderNoDevices():this.renderTouchlinkDevices()})]})}}const tTt=["touchlinkDevices","devices","touchlinkScanInProgress","touchlinkIdentifyInProgress","touchlinkResetInProgress"],rTt=Ur(["touchlink","zigbee","common"])(Qr(tTt,na)(eTt)),aTt={"ui:order":["base_topic","server","user","password","client_id","version","ca","key","cert","reject_unauthorized","*"]},nTt={"ui:order":["port","adapter","disable_led","*"]},iTt={"ui:order":["port","host","*"]},oTt={mqtt:aTt,serial:nTt,frontend:iTt};var sTt=sY,S6=Ta;function lTt(e,t,r,a){return e==null?[]:(S6(t)||(t=t==null?[]:[t]),r=a?void 0:r,S6(r)||(r=r==null?[]:[r]),sTt(e,t,r))}var uTt=lTt;const dTt=dr(uTt);function cTt(e){const{devices:t}=e,{t:r}=Ot(["stats","zigbee"]),a=Object.values(t).filter(s=>s.type!=="Coordinator"),n=a.length,i={byType:{},byPowerSource:{},byVendor:{},byModel:{}};a.forEach(s=>{i.byModel[s.model_id]=(i.byModel[s.model_id]||0)+1,i.byVendor[s.manufacturer]=(i.byVendor[s.manufacturer]||0)+1,i.byType[r(s.type)]=(i.byType[r(s.type)]||0)+1;const l=r("zigbee:"+kE(s.power_source));i.byPowerSource[l]=(i.byPowerSource[l]||0)+1});const o=Object.entries(i).map(([s,l])=>C.jsx("li",{className:"list-group-item d-flex justify-content-between align-items-start",children:C.jsxs("div",{className:"ms-2 me-auto",children:[C.jsx("div",{className:"fw-bold",children:r(s)}),dTt(Object.entries(l),[([u,d])=>d],["desc"]).map(([u,d])=>C.jsxs("div",{children:[u,": ",d]},u))]})},s));return C.jsxs("ol",{className:"list-group list-group-numbered",children:[C.jsx("li",{className:"list-group-item d-flex justify-content-between align-items-start",children:C.jsx("div",{className:"ms-2 me-auto",children:C.jsxs("div",{className:"fw-bold",children:[r("total")," ",n]})})}),o]})}const mTt={access:"public",cache:""},hTt=["*.css"],pTt="zigbee2mqtt-frontend",fTt="0.6.156",gTt="GPL-3.0",vTt={build:"vite build",preview:"vite preview",start:"vite dev",postversion:"git push && git push --tags",version:"conventional-changelog -p angular -i CHANGELOG.md -s && git add CHANGELOG.md",pretty:'prettier --write "./**/*.{js,jsx,tsx}"',postinstall:"husky install",prepublishOnly:"pinst --disable",postpublish:"pinst --enable","test:unit":"vitest","test:coverage":"vitest run --coverage","test:eslint":'eslint "./src/**/*.{js,jsx,tsx}"',"test:pretty":'prettier --check "./**/*.{js,jsx,tsx}"'},yTt=["dist/*"],_Tt={node:">=18"},bTt={"@commitlint/cli":"~17.7.2","@commitlint/config-conventional":"~17.7.0","@ebay/nice-modal-react":"~1.2.13","@fortawesome/fontawesome-free":"~6.4.2","@rjsf/bootstrap-5":"https://github.com/nurikk/fileshare/blob/main/rjsf-bootstrap-5-4.2.0.tgz?raw=true","@rjsf/core":"~4.2.3","@testing-library/jest-dom":"^6.3.0","@testing-library/react":"^14.1.2","@testing-library/user-event":"^14.5.2","@types/color-convert":"~2.0.1","@types/d3-drag":"~3.0.4","@types/d3-force":"~3.0.6","@types/d3-selection":"~3.0.7","@types/d3-zoom":"~3.0.5","@types/events":"~3.0.1","@types/file-saver":"~2.0.5","@types/json-schema":"~7.0.13","@types/lodash":"~4.14.199","@types/react":"~18.2.24","@types/react-dom":"~18.2.8","@types/react-router-dom":"~5.3.3","@types/react-table":"~7.7.16","@types/react-transition-group":"~4.4.7","@types/reconnectingwebsocket":"~1.0.8","@types/ws":"~8.5.6","@typescript-eslint/eslint-plugin":"~6.7.4","@typescript-eslint/parser":"~6.7.4","@vitejs/plugin-react":"~4.1.0","@vitest/coverage-v8":"^1.2.2","ace-builds":"~1.28.0",bootstrap:"~5.3.2",classnames:"~2.3.2","color-convert":"~2.0.1","conventional-changelog-cli":"~4.1.0","d3-drag":"~3.0.0","d3-force":"~3.0.0","d3-force-reuse":"~1.0.1","d3-selection":"~3.0.0","d3-zoom":"~3.0.0","deep-diff":"~1.0.2",eslint:"~8.50.0","eslint-config-prettier":"~9.0.0","eslint-config-react":"~1.1.7","eslint-plugin-prettier":"~5.0.0","eslint-plugin-react":"~7.33.2",events:"~3.3.0","file-saver":"~2.0.5",husky:"~8.0.3",i18next:"~23.5.1","i18next-browser-languagedetector":"~7.1.0",jsdom:"^24.0.0",jszip:"~3.10.1",lodash:"~4.17.21",notyf:"~3.10.0",pinst:"~3.0.0",prettier:"~3.0.3",react:"~18.2.0","react-ace":"~10.1.0","react-app-polyfill":"~3.0.0","react-bootstrap":"~2.10.0","react-css-theme-switcher":"~0.3.0","react-dom":"~18.2.0","react-i18next":"~13.2.2","react-image":"~4.1.0","react-notifications-component":"^4.0.1","react-router-dom":"~5.3.4","react-table":"~7.8.0","react-transition-group":"~4.4.5","reconnecting-websocket":"~4.4.0",sass:"~1.68.0",store2:"^2.14.2","timeago.js":"~4.0.2",typescript:"~5.2.2",unistore:"~3.5.2",vite:"~4.4.10","vite-plugin-compression":"~0.5.1","vite-plugin-html":"~3.2.0","vite-plugin-sass-dts":"~1.3.11",vitest:"^1.2.1",ws:"~8.14.2","zigbee-herdsman":"~0.19.0","zigbee-herdsman-converters":"~15.87.0"},wTt="index.js",kTt={hooks:{"commit-msg":"commitlint -E HUSKY_GIT_PARAMS"}},STt={type:"git",url:"git+https://github.com/nurikk/zigbee2mqtt-frontend.git"},ATt={url:"https://github.com/nurikk/zigbee2mqtt-frontend/issues"},TTt={private:!1,publishConfig:mTt,sideEffects:hTt,name:pTt,version:fTt,license:gTt,scripts:vTt,eslintIgnore:yTt,engines:_Tt,devDependencies:bTt,main:wTt,husky:kTt,repository:STt,bugs:ATt};function CTt(e){return new Promise((t,r)=>{const a=new FileReader;a.onloadend=()=>t(a.result),a.onerror=n=>r(n),a.readAsDataURL(e)})}async function ETt(e){const t=await fetch(e);if(t.ok){const r=await t.blob();return CTt(r)}else return Promise.reject(t.status)}async function ITt(e,t){for(const r of e)try{if(await t(r))return!0}catch{}return!1}function xTt(e){const[t,r]=X.useState("none"),{setDeviceOptions:a,t:n,devices:i}=e,[o,s]=X.useState({});async function l(u){if(s(c=>({...c,[u.ieee_address]:"init"})),!await ITt([lK,sK],async c=>{const m=c(u),h=await ETt(m);return await a(u.ieee_address,{icon:h}),s(p=>({...p,[u.ieee_address]:"done"})),!0}))throw new Error("Failed to localise image")}switch(X.useEffect(()=>{if(t=="start"){for(const u of Object.values(i).filter(d=>d.type!=="Coordinator"))l(u).catch(d=>{console.log("Error localising image",d),s(c=>({...c,[u.ieee_address]:"error"}))}).then();r("inprogress")}},[t]),t){case"none":return C.jsx(lt,{className:"btn btn-primary d-block mt-2",onClick:()=>r("start"),children:n("localise_images")});case"inprogress":return C.jsx("div",{children:Object.values(i).map(u=>C.jsxs("div",{children:[u.friendly_name," ",o[u.ieee_address]]},u.ieee_address))});case"done":return C.jsx("div",{children:"done"})}return C.jsx("div",{children:"Unknown"})}const DTt=Ur(["settings"])(xTt),MTt=P0(wO),jv="main",mte=["groups","devices","device_options","ban","whitelist","map_options"],OTt=["object","array"],A6=(e,t={},r={})=>{t.required&&(t.required=t.required.filter(a=>e.includes(a)));for(const a of e)t.properties&&delete t.properties[a],delete r[a];return{schema:t,config:r}},LTt=[{translationKey:"settings",url:"/settings/settings"},{translationKey:"tools",url:"/settings/tools"},{translationKey:"about",url:"/settings/about"},{translationKey:"raw",url:"/settings/bridge"},{translationKey:"translate",url:"/settings/translate"},{translationKey:"donate",url:"/settings/donate"}],RTt=[C.jsx("div",{className:"row pb-2",children:C.jsx("div",{className:"col",children:C.jsx("a",{target:"_blank",rel:"noopener noreferrer",href:"https://www.buymeacoffee.com/nurikk",children:C.jsx("img",{crossOrigin:"anonymous",src:"https://img.buymeacoffee.com/button-api/?text=Thanks for frontend&emoji=🍺&slug=nurikk&button_colour=FFDD00&font_colour=000000&font_family=Arial&outline_colour=000000&coffee_colour=ffffff"})})})},"nurikk"),C.jsx("div",{className:"row pb-2",children:C.jsx("div",{className:"col",children:C.jsx("a",{target:"_blank",rel:"noopener noreferrer",href:"https://www.buymeacoffee.com/koenkk",children:C.jsx("img",{crossOrigin:"anonymous",src:"https://img.buymeacoffee.com/button-api/?text=Thanks for zigbee2mqtt&emoji=☕&slug=koenkk&button_colour=FFDD00&font_colour=000000&font_family=Arial&outline_colour=000000&coffee_colour=ffffff"})})})},"koenkk")].sort(()=>Math.random()-.5),PTt=(e,t)=>OTt.includes(t.type)&&!mte.includes(e)||(t&&t.oneOf?t.oneOf.length>0:!1);class zTt extends X.Component{constructor(){super(...arguments),this.state={keyName:jv},this.downloadBackup=()=>{const{backup:t,bridgeInfo:r}=this.props,a=Yq(new Date).replace(/[\s_:]/g,"-"),n=`z2m-backup.${r.version}.${a}.zip`;Vq.saveAs(`data:application/zip;base64,${t}`,n)},this.addInstallCode=()=>{const{t,addInstallCode:r}=this.props,a=prompt(t("enter_install_code"));a&&r(a)},this.onSettingsSave=t=>{const{formData:r}=t,{updateBridgeConfig:a}=this.props,{keyName:n}=this.state;a(n===jv?r:{[n]:r})}}renderCategoriesTabs(){const{t}=this.props;return C.jsx("ul",{className:"nav nav-tabs",children:LTt.map(r=>C.jsx("li",{className:"nav-item",children:C.jsx(hM,{className:"nav-link",activeClassName:"active",to:r.url,children:t(r.translationKey)})},r.url))})}render(){return C.jsxs("div",{className:"tab",children:[this.renderCategoriesTabs(),C.jsx("div",{className:"tab-content h-100 p-0 p-sm-3",children:C.jsx("div",{className:"tab-pane fade show active",children:this.renderSwitcher()})})]})}renderSwitcher(){const{match:t}=this.props,{tab:r}=t.params;switch(r){case"tools":return this.renderTools();case"bridge":return this.renderBridgeInfo();case"about":return this.renderAbout();case"settings":return this.renderSettings();case"donate":return this.renderDonate();case"translate":return this.renderTranslate();default:return C.jsx(CZ,{to:"/settings/settings"})}}renderTranslate(){return C.jsx("div",{className:"p-3",children:C.jsxs("p",{children:["You can help with the translation at"," ",C.jsx("a",{target:"_blank",rel:"noopener noreferrer",href:"https://poeditor.com/join/project?hash=Az88waAhPd",children:"POEditor"})]})})}renderAbout(){var l,u,d,c,m,h,p;const{bridgeInfo:t,devices:r,t:a}=this.props,i=((l=t.version)==null?void 0:l.match(/^\d+\.\d+\.\d+$/))===null?t.version:C.jsx("a",{target:"_blank",rel:"noopener noreferrer",href:`https://github.com/Koenkk/zigbee2mqtt/releases/tag/${t.version}`,children:t.version}),o=t.commit?C.jsxs(C.Fragment,{children:["commit:"," ",C.jsx("a",{target:"_blank",rel:"noopener noreferrer",href:`https://github.com/Koenkk/zigbee2mqtt/commit/${t.commit}`,children:t.commit})]}):null,s=[{translationKey:"zigbee2mqtt_version",content:C.jsxs(C.Fragment,{children:[i," ",o]})},{translationKey:"coordinator_type",content:C.jsx(C.Fragment,{children:((u=t.coordinator)==null?void 0:u.type)??a("common:unknown")})},{translationKey:"coordinator_revision",content:C.jsx(C.Fragment,{children:((c=(d=t.coordinator)==null?void 0:d.meta)==null?void 0:c.revision)??a("common:unknown")})},{translationKey:"coordinator_ieee_address",content:C.jsx(C.Fragment,{children:((m=t.coordinator)==null?void 0:m.ieee_address)??a("common:unknown")})},{translationKey:"frontend_version",content:TTt.version},{translationKey:"zigbee_herdsman_converters_version",content:((h=t.zigbee_herdsman_converters)==null?void 0:h.version)??a("common:unknown")},{translationKey:"zigbee_herdsman_version",content:((p=t.zigbee_herdsman)==null?void 0:p.version)??a("common:unknown")},{translationKey:"stats",content:C.jsx(cTt,{devices:r})}];return C.jsx("div",{className:"p-3",children:s.map(f=>C.jsxs("dl",{className:"row",children:[C.jsx("dt",{className:"col-sm-3",children:a(f.translationKey)}),C.jsx("dd",{className:"col-sm-9",children:f.content})]},f.translationKey))})}renderBridgeInfo(){const{bridgeInfo:t}=this.props;return C.jsx("div",{className:"p-3",children:C.jsx("pre",{children:JSON.stringify(t,null,4)})})}renderBackupControls(){const{backup:t,preparingBackup:r,requestBackup:a,t:n}=this.props;return r?C.jsx(lt,{className:"btn btn-primary d-block mt-2 disabled",children:C.jsx(iZ,{})}):t?C.jsx(lt,{className:"btn btn-primary d-block mt-2",onClick:this.downloadBackup,children:n("download_z2m_backup")}):C.jsx(lt,{className:"btn btn-primary d-block mt-2",onClick:a,children:n("request_z2m_backup")})}renderTools(){const{exportState:t,restartBridge:r,setDeviceOptions:a,devices:n,t:i}=this.props;return C.jsxs("div",{className:"p-3",children:[C.jsx(lt,{className:"btn btn-primary d-block mt-2",onClick:t,children:i("download_state")}),C.jsx(lt,{className:"btn btn-danger d-block mt-2",onClick:r,prompt:!0,children:i("restart_zigbee2mqtt")}),this.renderBackupControls(),C.jsx(lt,{className:"btn btn-primary d-block mt-2",onClick:this.addInstallCode,children:i("add_install_code")}),C.jsx(DTt,{setDeviceOptions:a,devices:n})]})}getSettingsTabs(){const{bridgeInfo:{config_schema:t={properties:{}}},t:r}=this.props,a=Object.entries(t.properties).filter(([n,i])=>PTt(n,i)).map(([n,i])=>({name:n,title:r(n,{defaultValue:i.title})}));return a.unshift({name:jv,title:r("main",{defaultValue:"Main"})}),a}getSettingsInfo(){const{keyName:t}=this.state,{bridgeInfo:{config_schema:r,config:a}}=this.props;let n=A6(mte,rB(r),rB(a)),i=n.schema,o;if(t===jv){const s=this.getSettingsTabs().map(l=>l.name);n=A6(s,n.schema,n.config),i=n.schema,o=n.config}else o=n.config[t],n.schema.properties&&(i=n.schema.properties[t]);return{currentSchema:i,currentConfig:o}}renderSettingsTabs(){const{t}=this.props,r=this.getSettingsTabs(),{keyName:a}=this.state;return C.jsx("div",{className:"nav nav-pills",children:r.map(n=>C.jsx("li",{className:"nav-item",children:C.jsx("a",{className:Ue("nav-link",{"bg-primary active":a===n.name}),"aria-current":"page",href:"#",onClick:i=>{this.setState({keyName:n.name}),i.preventDefault()},children:t(n.name,{defaultValue:n.title})})},n.name))})}renderSettings(){const{keyName:t}=this.state,{currentSchema:r,currentConfig:a}=this.getSettingsInfo();return C.jsxs("div",{className:"tab",children:[this.renderSettingsTabs(),C.jsx("div",{className:"tab-content",children:C.jsx("div",{className:"tab-pane active",children:C.jsx(MTt,{idPrefix:t,schema:r,formData:a,onSubmit:this.onSettingsSave,uiSchema:oTt[t],fields:BJ})})})]})}renderDonate(){const{t}=this.props,r=t("donation_text",{returnObjects:!0,defaultValue:[]});return C.jsxs("div",{className:"container-fluid",children:[r.map(a=>C.jsx("p",{children:a},a)),RTt]})}}const $Tt=cM(zTt),NTt=["bridgeInfo","missingTranslations","devices","backup","preparingBackup"],FTt=Ur(["settings","common"])(Qr(NTt,na)($Tt)),jTt=FTt;function HTt(e,t){X.useEffect(()=>{const r=a=>{!e.current||e.current.contains(a.target)||t(a)};return document.addEventListener("mousedown",r),document.addEventListener("touchstart",r),()=>{document.removeEventListener("mousedown",r),document.removeEventListener("touchstart",r)}},[e,t])}function BTt(e,t){if(e==null)return{};var r={},a=Object.keys(e),n,i;for(i=0;i<a.length;i++)n=a[i],!(t.indexOf(n)>=0)&&(r[n]=e[n]);return r}function WTt(e){for(var t=document.head,r=0;r<t.childNodes.length;r++){var a,n=t.childNodes[r];if(n.nodeType===8&&(n==null||(a=n.nodeValue)==null?void 0:a.trim())===e)return n}return null}function UTt(e){return typeof HTMLElement=="object"?e instanceof HTMLElement:e&&typeof e=="object"&&e!==null&&e.nodeType===1&&typeof e.nodeName=="string"}function VTt(e){var t={};return e.forEach(function(r){return t[r]=r}),t}function GTt(e){for(var t=document.createElement("link"),r=0,a=Object.entries(e);r<a.length;r++){var n=a[r],i=n[0],o=n[1];if(i==="onload"){t.onload=e.onload;continue}t[i]=o}return t}var Vh;(function(e){e.idle="idle",e.loading="loading",e.loaded="loaded"})(Vh||(Vh={}));var hte=X.createContext(void 0);function qTt(e){var t=e.themeMap,r=e.insertionPoint,a=e.defaultTheme,n=e.id,i=n===void 0?"current-theme-style":n,o=e.attr,s=o===void 0?"data-theme":o,l=BTt(e,["themeMap","insertionPoint","defaultTheme","id","attr"]),u=X.useState(Vh.idle),d=u[0],c=u[1],m=X.useState(),h=m[0],p=m[1],f=X.useCallback(function(_){if(r||r===null){var w=UTt(r)?r:WTt(r);if(!w)return console.warn("Insertion point '"+r+"' does not exist. Be sure to add comment on head and that it matches the insertionPoint"),document.head.appendChild(_);var k=w.parentNode;if(k)return k.insertBefore(_,w.nextSibling)}else return document.head.appendChild(_)},[r]),v=X.useCallback(function(_){var w=_.theme;if(w!==h){if(t[w]){c(Vh.loading);var k=GTt({type:"text/css",rel:"stylesheet",id:i+"_temp",href:t[w],onload:function(){var A=document.getElementById(i);A&&A.remove();var T=document.getElementById(i+"_temp");T&&T.setAttribute("id",i),c(Vh.loaded)}});f(k),p(w)}else return console.warn("Could not find specified theme");document.body.setAttribute(s,w)}},[t,f,s,i,h]);X.useEffect(function(){a&&v({theme:a})},[a]),X.useEffect(function(){var _=Object.keys(t);_.map(function(w){var k="theme-prefetch-"+w;if(!document.getElementById(k)){var S=document.createElement("link");S.rel="prefetch",S.type="text/css",S.id=k,S.href=t[w],f(S)}return""})},[t,f]);var y=X.useMemo(function(){return{switcher:v,status:d,currentTheme:h,themes:VTt(Object.keys(t))}},[v,d,h,t]);return X.createElement(hte.Provider,Object.assign({value:y},l))}function KTt(){var e=X.useContext(hte);if(!e)throw new Error("To use `useThemeSwitcher`, component must be within a ThemeSwitcherProvider");return e}const ZTt=e=>{const{saveCurrentTheme:t}=e,{switcher:r,themes:a,status:n,currentTheme:i}=KTt(),o=i==="dark";if(n==="loading")return C.jsx("div",{children:"Loading styles..."});const s=l=>{const u=l?a.light:a.dark;t(u),r({theme:u})};return C.jsx(lt,{item:o,className:"btn btn-info",onClick:s,children:o?"🌑":"🌞"})};function pte(e){const[t,r]=X.useState(e),a=X.useRef(null),n=o=>{o.key==="Escape"&&r(!1)},i=o=>{a.current&&!a.current.contains(o.target)&&r(!1)};return X.useEffect(()=>(document.addEventListener("keydown",n,!0),document.addEventListener("click",i,!0),()=>{document.removeEventListener("keydown",n,!0),document.removeEventListener("click",i,!0)})),{ref:a,isComponentVisible:t,setIsComponentVisible:r}}const QTt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABDCAYAAABqS6DaAAABg2lDQ1BJQ0MgcHJvZmlsZQAAKJF9kT1Iw0AcxV9TpSIVBzuIOASsThbEijhqFYpQIdQKrTqYXPoFTRqSFBdHwbXg4Mdi1cHFWVcHV0EQ/ABxdHJSdJES/5cUWsR4cNyPd/ced+8AoVFhmtU1AWi6baaTCTGbWxVDrxAwiAhGEJeZZcxJUgq+4+seAb7exXiW/7k/R5+atxgQEIlnmWHaxBvE05u2wXmfOMJKskp8Tjxu0gWJH7muePzGueiywDMjZiY9TxwhFosdrHQwK5ka8RRxVNV0yheyHquctzhrlRpr3ZO/MJzXV5a5TnMYSSxiCRJEKKihjApsxGjVSbGQpv2Ej3/I9UvkUshVBiPHAqrQILt+8D/43a1ViE96SeEE0P3iOB+jQGgXaNYd5/vYcZonQPAZuNLb/moDmPkkvd7WokdA/zZwcd3WlD3gcgcYfDJkU3alIE2hUADez+ibcsDALdC75vXW2sfpA5ChrlI3wMEhMFak7HWfd/d09vbvmVZ/P7jXcsNND5Q3AAAABmJLR0QAAAAAAAD5Q7t/AAAACXBIWXMAAA3XAAAN1wFCKJt4AAAAB3RJTUUH5gIYFCQtTLzIUAAAAPpJREFUeNrt2s0JwkAUReGMBkXBjUEEKxBLsAlrsAibsh9FlIA7124E/xibSOBhvlPCPXC5b5j0rseHAmEoU5FXYohDTwSEgBBCQMifrKz7fiiFQKTzdJHFoLJACCEghBA0PXtTXwihZu+nHpm9KguEEAJCCAEh/z57b9vK7I0kxPO7ygIhhIAQQtAC5WD5lUKk2ev5XWWBEEJACCEgpAOz97qem72RDsPXyccslQVCCAEhhKD5lTXZPKUQ6Q7x/K6yQAghIIQQENKB2XuZ+Wwd6jDMvmWpLBBCCAghBC2srGr3kEKkO8Tzu8oCIYSAEELQxuzNRTqKIQ4/168l3OOMpgUAAAAASUVORK5CYII=",YTt=""+new URL("uk-9b7898ef.png",import.meta.url).href,XTt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABDBAMAAACYZb3pAAAAHlBMVEXtKTn3qa/84OK2q80pQqIAI5Wrt9ztKTn5t7z///9ckyEgAAAABXRSTlPU7Pj6/i021ewAAAA8SURBVEjHY3BBA85KaECAAR2EooGwmWigvRwNjGoZ1TKqZVTLqJZRLaNaRrWMahnVMqplVMuQ0UJ6LwkAaPHwH750UDMAAAAASUVORK5CYII=",JTt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABDCAMAAABdlVDoAAADAFBMVEUAAAAAADMAAGYAAJkAAMwAAP8AMwAAMzMAM2YAM5kAM8wAM/8AZgAAZjMAZmYAZpkAZswAZv8AmQAAmTMAmWYAmZkAmcwAmf8AzAAAzDMAzGYAzJkAzMwAzP8A/wAA/zMA/2YA/5kA/8wA//8zAAAzADMzAGYzAJkzAMwzAP8zMwAzMzMzM2YzM5kzM8wzM/8zZgAzZjMzZmYzZpkzZswzZv8zmQAzmTMzmWYzmZkzmcwzmf8zzAAzzDMzzGYzzJkzzMwzzP8z/wAz/zMz/2Yz/5kz/8wz//9mAABmADNmAGZmAJlmAMxmAP9mMwBmMzNmM2ZmM5lmM8xmM/9mZgBmZjNmZmZmZplmZsxmZv9mmQBmmTNmmWZmmZlmmcxmmf9mzABmzDNmzGZmzJlmzMxmzP9m/wBm/zNm/2Zm/5lm/8xm//+ZAACZADOZAGaZAJmZAMyZAP+ZMwCZMzOZM2aZM5mZM8yZM/+ZZgCZZjOZZmaZZpmZZsyZZv+ZmQCZmTOZmWaZmZmZmcyZmf+ZzACZzDOZzGaZzJmZzMyZzP+Z/wCZ/zOZ/2aZ/5mZ/8yZ///MAADMADPMAGbMAJnMAMzMAP/MMwDMMzPMM2bMM5nMM8zMM//MZgDMZjPMZmbMZpnMZszMZv/MmQDMmTPMmWbMmZnMmczMmf/MzADMzDPMzGbMzJnMzMzMzP/M/wDM/zPM/2bM/5nM/8zM////AAD/ADP/AGb/AJn/AMz/AP//MwD/MzP/M2b/M5n/M8z/M///ZgD/ZjP/Zmb/Zpn/Zsz/Zv//mQD/mTP/mWb/mZn/mcz/mf//zAD/zDP/zGb/zJn/zMz/zP///wD//zP//2b//5n//8z///8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABlenwdAAABAHRSTlP///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG8mZagAAAAlwSFlzAAAOxAAADsQBlSsOGwAAADdJREFUWIXtzQENAAAIAyD7FzCadWzxuQkFqAkoiUQikUgkEolEIrmSdIBEIpFIJBKJRCKRvEoWJNiqA2rbaEoAAAAASUVORK5CYII=",eCt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAAA8AgMAAADtUfddAAAACVBMVEUAAADdAAD/zgDGIigcAAAAHUlEQVQ4y2NgGAWjAAhCcYFRmRElswoXGJUZSTIAQ83yHB4q//IAAAAASUVORK5CYII=",tCt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABDBAMAAACYZb3pAAAAFVBMVEXVKx7///8AOaZUNHFkh8nVKx7///90yNRsAAAAAnRSTlPU1BJ52+4AAAA3SURBVEjH7csxAQAgEMSws4AFLGABC1jAv4TX0PmaPVlYPmaxWErLxbIxi8VSWg6Wh1ksltLCDf2spTBQVKLHAAAAAElFTkSuQmCC",rCt="data:image/png;base64,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",aCt=""+new URL("es-2fe6a1a7.png",import.meta.url).href,nCt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABDBAMAAACYZb3pAAAAD1BMVEUAW7rawxsAW7t/mF7/1QCzxg4pAAAAAnRSTlPU+CChtw0AAAAxSURBVEjH7csxEQAgDASwt4AFLNQC/jUhofd7sifp3ZqiKIqi7GVqeTVFURRF2cupfb6QiufYvy3hAAAAAElFTkSuQmCC",iCt="data:image/png;base64,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",oCt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAAA1CAYAAAC3ME4GAAABcWlDQ1BpY2MAACiRdZE9S8NQFIbftkqrtnTQQcQhQxWHFoqCOGoduhQptYJVl+Q2aYUkDTcpUlwFF4eCg+ji1+A/0FVwVRAERRBx8Q/4tUiJ5zaFFmlPuDkP7z3v4d5zAX9GZ4bdlwQM0+G5dEpaLaxJwXeEMAAfIkjIzLYWstkMesbPI1VSPCREr951XWOoqNoM8IWIZ5nFHeJ54syWYwneIx5hZblIfEIc53RA4luhKx6/CS55/CWY53OLgF/0lEodrHQwK3ODeIo4ZuhV1jqPuElYNVeWKY/RGoeNHNJIQYKCKjahw0GCskkz6+5LNn1LqJCH0d9CDZwcJZTJGye1Sl1VyhrpKn06amLu/+dpazPTXvdwCuh/dd3PCSC4DzTqrvt76rqNMyDwAlybbX+F5jT3TXq9rcWOgegOcHnT1pQD4GoXGH22ZC43pQAtv6YBHxdApAAM3wOD696sWvs4fwLy2/REd8DhETBJ9dGNP69cZ+Ub+qnAAAAACXBIWXMAAA9hAAAPYQGoP6dpAAABBklEQVR4Ae3VQY1CMQAG4fc2Jbsa8IAObqjAxzriAAZwgRUu5EFQ8SWdKpjO9E/X2/6wLR3GwA9DEsjXQEGwh1CQgmAGMJwWUhDMAIbTQgqCGcBwWkhBMAMYTgspCGYAw2khBcEMYDgtBAsyXs8nhjQ3ztifjnMbwG6/bp+DMU2NM7blNbUA7fJ96liRghQEM4DhtJCCYAYwnBZSEMwAhtNCCoIZwHBaSEEwAxhOCykIZgDDaSFYkLEuNZGajPP/ReKZnmVc74/pJUgCxt/vTuKZnqUPBHsCBSkIZgDDaSEFwQxgOC2kIJgBDKeFFAQzgOG0kIJgBjCcFlIQzACG00IKghnAcN7ZXA/1YVkO6AAAAABJRU5ErkJggg==",sCt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEAEAYAAAAM4nQlAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAADYUlEQVR42u3WoQ2DUBRA0deqSgboAnWYJpWI9s+BxTMJC3SULtAEgaioYwYkyUehsV+cM8JVNwIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACOnSKGIaWcpaBk78/z0c8RbXO7v356UKZl+l7HS8R/bauu1oOynSUAAAMAABgAAMAAAAAGAAAwAACAAQAADAAAYAAAAAMAABgAAMAAAAAGAAAwAACAAQAADAAAYAAAAAMAAAYAADAAAIABAAAMAABgAAAAAwAAGAAAwAAAAAYAADAAAIABAAAMAABgAAAAAwAAGAAAwAAAAAYAAAwAAGAAAAADAAAYAADAAAAABgAAMAAAgAEAAAwAAGAAAAADAAAYAADAAAAABgAAMAAAgAEAAAwAABgAAMAAAAAGAAAwAACAAQAADAAAYAAAAAMAABgAAMAAAAAGAAAwAACAAQAADAAAYAAAAAMAABgAADAAAIABAAAMAABgAAAAAwAAGAAAwAAAAAYAADAAAIABAAAMAABgAAAAAwAAGAAAwAAAAAYAADAAAGAAJAAAAwAAGAAAwAAAAAYAADAAAIABAAAMAABgAAAAAwAAGAAAwAAAAAYAADAAAIABAAAMAABgAAAAAwAABgAAMAAAgAEAAAwAAGAAAAADAAAYAADAAAAABgAAMAAAgAEAAAwAAGAAAAADAAAYAADAAAAABgAADAAAYAAAAAMAABgAAMAAAAAGAAAwAACAAQAADAAAYAAAAAMAABgAAMAAAAAGAAAwAACAAQAADAAAGAAAwAAAAAYAADAAAIABAAAMAABgAAAAAwAAGAAAwAAAAAYAADAAAIABAAAMAABgAAAAAwAAGAAAMAAAgAEAAAwAAGAAAAADAAAYAADAAAAABgAAMAAAgAEAAAwAAGAAAAADAAAYAADAAAAABgAAMAAAYAAkAAADAAAYAADAAAAABgAAMAAAgAEAAAwAAGAAAAADAAAYAADAAAAABgAAMAAAgAEAAAwAAGAAAAADAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdhtsThDegrKepAAAAABJRU5ErkJggg==",lCt="data:image/png;base64,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",uCt="data:image/png;base64,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",dCt=""+new URL("cz-aa47f7b6.png",import.meta.url).href,cCt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABDBAMAAACYZb3pAAAAFVBMVEXVKx7///8AOaZUNHFkh8nVKx7///90yNRsAAAAAWJLR0QAiAUdSAAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB+ULGAs7NQ50qgoAAAA0SURBVEjH7dShEQAgDACxrlA2oPsPieNqEOjmfexHtlbddj4LBEFmkvoOQZChxGARBJlHDliGRdp7bzpsAAAAAElFTkSuQmCC",mCt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAAA+CAIAAABSlSmSAAABWWlDQ1BEaXNwbGF5IFAzAAAokZ2OPyiEYRzHP88dvXUocm4wPeVPBsQZzmJwlIg6Mtyd6b33/qlznt57i5vUWYxKBmVisDJeBgaDZCCRQWQ1upJCj+HoXAbls3y/ffrW7weudlOpTA2wkHXsmbGgDEei0njEwKABH9K0cmo4FJoE+M5qXm4QAFc9plKZs9bNQsdK49TgVvP15VNL4fe+Ck88kbOAdyBhKdsBEQfalhzlgFgDvHY4EgWxDXhT5b4PeGPlfgJ47dmZERC3gLTSZhzEK9Ad++FTP/rXXYC60fmcyph5GRr449t/4CSWHYCRRZW351NpRw4rlUnI8azV2y39ff0BCEeisrwuTSMA4TuvuNUHGDrSWh9W3MQRHATAU6y4rkFoqoPTojJtEwA34Eom4XkPGiLQfAGeuVxywA+AqA9C7b3WpU4wNuBjXeu3Ha0/dsF9B8fZTxUhZe6KC5V+AAAACXBIWXMAAAsTAAALEwEAmpwYAAAE7mlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS42LWMxNDggNzkuMTY0MDM2LCAyMDE5LzA4LzEzLTAxOjA2OjU3ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIgeG1sbnM6cGhvdG9zaG9wPSJodHRwOi8vbnMuYWRvYmUuY29tL3Bob3Rvc2hvcC8xLjAvIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIgeG1wOkNyZWF0ZURhdGU9IjIwMjEtMTEtMzBUMDk6NDE6MjQrMDE6MDAiIHhtcDpNb2RpZnlEYXRlPSIyMDIxLTExLTMwVDA5OjQ1OjU3KzAxOjAwIiB4bXA6TWV0YWRhdGFEYXRlPSIyMDIxLTExLTMwVDA5OjQ1OjU3KzAxOjAwIiBkYzpmb3JtYXQ9ImltYWdlL3BuZyIgcGhvdG9zaG9wOkNvbG9yTW9kZT0iMyIgcGhvdG9zaG9wOklDQ1Byb2ZpbGU9IkRpc3BsYXkgUDMiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6NmQ3NDRiMzctYjEzNi0yYTQ4LTlmNTQtMzVlNWE0ZDY3NWYwIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjZkNzQ0YjM3LWIxMzYtMmE0OC05ZjU0LTM1ZTVhNGQ2NzVmMCIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjZkNzQ0YjM3LWIxMzYtMmE0OC05ZjU0LTM1ZTVhNGQ2NzVmMCI+IDx4bXBNTTpIaXN0b3J5PiA8cmRmOlNlcT4gPHJkZjpsaSBzdEV2dDphY3Rpb249InNhdmVkIiBzdEV2dDppbnN0YW5jZUlEPSJ4bXAuaWlkOjZkNzQ0YjM3LWIxMzYtMmE0OC05ZjU0LTM1ZTVhNGQ2NzVmMCIgc3RFdnQ6d2hlbj0iMjAyMS0xMS0zMFQwOTo0NTo1NyswMTowMCIgc3RFdnQ6c29mdHdhcmVBZ2VudD0iQWRvYmUgUGhvdG9zaG9wIDIxLjAgKFdpbmRvd3MpIiBzdEV2dDpjaGFuZ2VkPSIvIi8+IDwvcmRmOlNlcT4gPC94bXBNTTpIaXN0b3J5PiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PtsNxjAAAAG/SURBVHic7ZxLboMwFEXftbKFbq4b6aTDTrqELqv7iXgZGAhR+R0haIjuGZlgY+fk4diyZcX7T2xAuqczRzJcPz5ny0dkXL6/trThMC4by48KIuU31n8o5b8bcCYsC2BZAMsCWBbAsgCWBbAsgGUBLAtgWYD9ZelU079ZHFkAywJYFmB3WVKzdxWH4cgCHCBLy1lOgiMLYFkAywLw1Z0c9EFrRuf5On0WlqVyHwrkM4lQZHbLmDvNsHT9fdvnyV0FSuQ0ow3G+oUVoen4bTMr2/jVQ031bnZphTLr2yDVAmK/9tZF1kVo9EkpZX3B27LTT1BklIxU1Hh/zKmIKI36dGQ/jLm36u/Dq96xSneXhamxsFax2gicyt99nsPMSw2YuuN/Q4BlASwLYFkAywJYFsCyAJYFeL5B6SJ1hF0aKaM09VJNaSc3TYnU3Ji2n0rVxHCS0M+rJoprywZcrZiyLmzAjYg4zQbcTa/h6yyfrsN9FsCyAJYFsCyAZQEsC2BZAMsCWBbAsgCWBbAsgGUBLAtgWQDLAlgWwLIAlgWwLIBlASwLcJpFVmn83JvhyUHqFk7r5cw5ORpu1119os4NHzhrTvSbX80AAAAASUVORK5CYII=",hCt="data:image/png;base64,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",pCt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAABgCAYAAADimHc4AAAACXBIWXMAAA7EAAAOxAGVKw4bAAADaklEQVR42u2dz2sTQRiG39lss5sE2koraD158iAiilA8SfUmeBAFD/5AERWxLdpL/Qt6s6IX6blWvAiKeNebtwpFPOnNUrBiKybpjkk/D7vbbEs2ZtvsGJP3OX2TzO5sdnaebzOZJQAhhBBCCCGEEEIIIYR0AwoAfhw8dEZEJpRSAAARQb04Wo6rExerob3offUSKpeDiMDTFRw9N4VPn5cAESBsIxKPXx7B9OR5ZDIWRATV+Xn8un4DonXTbSc9ToPx9K6PC6/t4MUhACdEZNOJrhdHy83UD2PlacB1N8pO1kaprP0THp742kb+NkrBslRtfxkbonXitpPUNRg/BwA7/KBBz6iggtSLo+W4Og22rf+6Uo2G3KZt/ENVSNJ20uM0GW90APl32FuGqkSv9HpxtNxM/TBWcXVqCqo7Xre0LUmOdTvHaTqmgqggKogKooKoIEIFUUFUEBVEBVFBVBAVRKggKogKooKoICqICqKCCBVEBVFBqSvIsoBqlT4wiWXVOsC5dhXieQCwabjHxNFyM/V9BRUKO1aQNTgo2UsXkbTthHWNxMpxgIl7fge4Y6NAJpOqgmL3mUBB1r4hlb8/2REKkkql1gHIZFJPwmhBEt5u3JZJODjnxpJwK0bAtq60/yEJv3m7gIH+gvE85OlKw/eXvq3i/YcvHZmDv68UEd6eo3Bk/Fax5D3hrYk5CnnndnH+8YwNAMWyv+IYaa5Pb2afacRtuj49POecimiHqYi/3Ym05AGBZveZRtymDwjUOsC/E6GCTMdUEBVEBQFAf18eK6slKshg3N+bw0rYAS8e3UTezRoffmfHZrC0/DP2/Qunj+HulZMdqZ7Smsap4w/9DhgZPpBkJq9ls4xO1m6ovz27+zB8eH8rZiDbbjbU+A8ynAtqMBckWgM9PbwlMUj4vLMNAOUH0+HT6an+IOOO3tnRdPT610VZm53tDAUFH8sGAD33LHUFqYEByY2N7khB68vLSj+d47IU0uIvYlyWwmUpXBlHqCAqiAqigrp0OpowBzAHMAcwB1BBVBAVRAURKogKooKoICqICqKCqCBCBVFBVBAV1A0KWgTwLtV/0HCykHIZcF0AwJr3G/lcNv4fNIJRWa2uw7KCC6Za8Vfwad0Jq9MXefkRQgghhBBCCCGEEEK6hz+wscfL6qRkugAAAABJRU5ErkJggg==",fCt="data:image/png;base64,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",gCt="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAKAAAABgAgMAAADnSZEKAAAACVBMVEUAlm7WJhL////BTf+eAAAAKUlEQVRIx+3KIQEAAAgDMEpSkpQUQOC/6dU8lSiKYlgE4NZPoiiKYXEBfXL7PZ61X/UAAAAASUVORK5CYII=",T6=""+new URL("missing-locale-4d6286c0.png",import.meta.url).href,vCt="Deutsch",yCt="English",_Ct="Español",bCt="Français",wCt="Nederlands",kCt="Polski",SCt="Brazilian Portuguese",ACt="Русский",TCt="Українська",CCt="Italiano",ECt="繁體中文",ICt="한국어",xCt="Česky",DCt="Suomi",MCt="Svenska",OCt="Català",LCt="Türkçe",RCt="Norsk",PCt="Dansk",zCt="Български",$A={de:vCt,en:yCt,es:_Ct,fr:bCt,nl:wCt,pl:kCt,ptbr:SCt,ru:ACt,ua:TCt,"zh-CN":"简体中文",it:CCt,zh:ECt,ko:ICt,cs:xCt,fi:DCt,sv:MCt,ca:OCt,tr:LCt,no:RCt,da:PCt,bg:zCt},NA={ca:QTt,en:YTt,fr:XTt,pl:JTt,de:eCt,ru:tCt,ptbr:rCt,es:aCt,ua:nCt,"zh-CN":iCt,nl:oCt,it:sCt,zh:lCt,ko:uCt,cs:dCt,fi:cCt,sv:mCt,tr:hCt,no:pCt,da:fCt,bg:gCt};function $Ct(){const{i18n:e}=Ot("localeNames"),{ref:t,isComponentVisible:r,setIsComponentVisible:a}=pte(!1),n=s=>{e.changeLanguage(s),a(!1)},i=Object.keys(e.options.resources).map(s=>C.jsxs("a",{className:"dropdown-item",href:"#",onClick:l=>{n(s),l.preventDefault()},children:[C.jsx("img",{src:NA[s]??T6,alt:$A[s],width:"20",className:"align-middle me-1"}),C.jsx("span",{className:"align-middle",children:$A[s]})]},s)),o=NA[e.language]?e.language:e.language.split("-")[0];return C.jsxs("li",{className:"nav-item dropdown",children:[C.jsx("a",{className:Ue("nav-flag dropdown-toggle",{show:r}),href:"#",onClick:s=>{a(!r),s.preventDefault()},children:C.jsx("img",{src:NA[o]??T6,alt:$A[o]})}),C.jsx("div",{ref:t,className:Ue("dropdown-menu dropdown-menu-end",{show:r}),children:i})]})}function NCt({devices:e,setPermitJoin:t,bridgeInfo:r}){const{t:a}=Ot(["navbar"]),{ref:n,isComponentVisible:i,setIsComponentVisible:o}=pte(!1),[s,l]=X.useState({}),{permit_join:u,permit_join_timeout:d}=r,c=_=>{l(_),o(!1)},m=(_,w)=>_.friendly_name.localeCompare(w.friendly_name),h=(_,w)=>_.type==="Coordinator"?-1:w.type==="Coordinator"?1:0,p=Object.values(e).filter(_=>_.type==="Router"||_.type==="Coordinator").sort(m).sort(h).map(_=>C.jsx("li",{children:C.jsx(lt,{item:_,className:"dropdown-item",onClick:c,children:_.friendly_name})},_.friendly_name)),f=()=>{t(!u,s)},v=C.jsx(C.Fragment,{children:d?C.jsx("div",{className:"d-inline-block mx-1",style:{width:"30px",maxWidth:"30px"},children:Zq(d)}):null}),y=C.jsxs(C.Fragment,{children:[a(u?"disable_join":"permit_join")," (",(s==null?void 0:s.friendly_name)??a("all"),")",v]});return C.jsxs("div",{className:"btn-group text-nowrap me-1",children:[C.jsx("button",{onClick:f,type:"button",className:"btn btn-outline-secondary",children:y}),p.length?C.jsxs(C.Fragment,{children:[C.jsx(lt,{type:"button",className:"btn btn-outline-secondary dropdown-toggle dropdown-toggle-split",onClick:o,item:!i,children:C.jsx("span",{className:"visually-hidden",children:a("toggle_dropdown")})}),C.jsxs("ul",{ref:n,className:Ue("dropdown-menu",{show:i}),children:[C.jsx("li",{children:C.jsx(lt,{className:"dropdown-item",onClick:c,children:a("all")})},"all"),p]})]}):null]})}const FCt=[{href:"/",key:"devices",exact:!0},{href:"/dashboard",key:"dashboard"},{href:"/map",key:"map"},{href:"/settings",key:"settings"},{href:"/groups",key:"groups"},{href:"/ota",key:"ota"},{href:"/touchlink",key:"touchlink"},{href:"/logs",key:"logs"},{href:"/extensions",key:"extensions"}],jCt=e=>{const{devices:t,setPermitJoin:r,bridgeInfo:a,restartBridge:n,setTheme:i,t:o}=e,s=X.useRef(),[l,u]=X.useState(!1);return HTt(s,()=>{u(!1)}),C.jsx("nav",{className:"navbar navbar-expand-md navbar-light",children:C.jsxs("div",{ref:s,className:"container-fluid",children:[C.jsx(Qs,{onClick:()=>u(!1),to:"/",children:xBe()?`Z2M@${document.location.hostname}`:"Zigbee2MQTT"}),C.jsx("button",{onClick:()=>{u(!l)},className:"navbar-toggler",type:"button",children:C.jsx("span",{className:"navbar-toggler-icon"})}),C.jsxs("div",{className:Ue("navbar-collapse collapse",{show:l}),children:[C.jsxs("ul",{className:"navbar-nav",children:[FCt.map(d=>C.jsx("li",{className:"nav-item",children:C.jsx(hM,{onClick:()=>u(!1),exact:d.exact,className:"nav-link",to:d.href,activeClassName:"active",children:o(d.key)})},d.href)),C.jsx($Ct,{})]}),C.jsx(NCt,{devices:t,setPermitJoin:r,bridgeInfo:a}),C.jsx(ZTt,{saveCurrentTheme:i})]}),a.restart_required?C.jsx(lt,{onClick:n,prompt:!0,className:"btn btn-danger me-1",children:o("restart")}):null]})})},HCt=["bridgeInfo","devices"],BCt=Ur("navbar")(Qr(HCt,na)(jCt)),WCt=BCt,UCt=e=>{const[t,r]=X.useState(e);return[t,n=>r({...t,[n.currentTarget.name]:n.currentTarget.value})]},VCt=Ii.create(e=>{const{name:t,onRename:r}=e,a=Su(),[n,i]=UCt({friendlyName:t}),o=async()=>{await r(t,n.friendlyName),a.remove()};return C.jsxs($f,{isOpen:a.visible,children:[C.jsxs(Rf,{children:[C.jsx("h3",{children:"Rename group"}),C.jsx("small",{children:t})]}),C.jsx(Pf,{children:C.jsxs("div",{className:"mb-3",children:[C.jsx("label",{className:"form-label",children:"Friendly name"}),C.jsx("input",{name:"friendlyName",onChange:i,type:"text",className:"form-control",value:n.friendlyName})]})}),C.jsxs(zf,{children:[C.jsx("button",{type:"button",className:"btn btn-secondary",onClick:a.remove,children:"Close"}),C.jsx("button",{type:"button",className:"btn btn-primary",onClick:o,children:"Save changes"})]})]})});function GCt(e){const{t}=Ot(["groups"]),{groups:r,removeGroup:a,renameGroup:n}=e,i=[{id:"group_id",Header:t("group_id"),accessor:o=>o.id,Cell:({row:{original:o}})=>C.jsx(Qs,{to:`/group/${o.id}`,children:o.id})},{id:"friendly_name",Header:t("group_name"),accessor:o=>o.friendly_name,Cell:({row:{original:o}})=>C.jsx(Qs,{to:`/group/${o.id}`,children:o.friendly_name})},{id:"members",Header:t("group_members"),accessor:o=>o.members.length??0},{id:"scenes",Header:t("group_scenes"),accessor:o=>{var s;return((s=o.scenes)==null?void 0:s.length)??0}},{Header:"",id:"actions",Cell:({row:{original:o}})=>C.jsxs("div",{className:"btn-group float-right btn-group-sm",role:"group",children:[C.jsx(lt,{className:"btn btn-primary",onClick:()=>Ii.show(VCt,{name:o.friendly_name,onRename:n}),title:t("rename_group"),children:C.jsx("i",{className:"fa fa-edit"})}),C.jsx(lt,{prompt:!0,title:t("remove_group"),item:o.friendly_name,onClick:a,className:"btn btn-danger",children:C.jsx("i",{className:"fa fa-trash"})})]})}];return C.jsx("div",{className:"card",children:C.jsx(U0,{id:"groups",columns:i,data:r})})}class qCt extends X.Component{constructor(){super(...arguments),this.state={newGroupName:"",newGroupId:void 0},this.changeHandler=t=>{const{name:r,value:a}=t.target;this.setState({[r]:a})},this.onGroupCreateSubmit=()=>{const{newGroupName:t,newGroupId:r}=this.state,{createGroup:a}=this.props;a(t,r)},this.renameGroup=(t,r)=>{const{renameGroup:a}=this.props;a(t,r)}}renderGroupCreationForm(){const{t}=this.props,{newGroupName:r,newGroupId:a}=this.state;return C.jsx("div",{className:"card",children:C.jsx("div",{className:"card-body",children:C.jsxs("div",{className:"input-group",children:[C.jsx("label",{htmlFor:"newGroupName",className:"sr-only",children:t("new_group_name")}),C.jsx("input",{onChange:this.changeHandler,value:r,required:!0,type:"text",name:"newGroupName",className:"form-control",id:"newGroupName",placeholder:t("new_group_name_placeholder")}),C.jsx("label",{htmlFor:"newGroupName",className:"sr-only",children:t("new_group_id")}),C.jsx("input",{onChange:this.changeHandler,value:a===void 0?"":a,type:"number",name:"newGroupId",className:"form-control",id:"newGroupId",placeholder:t("new_group_id_placeholder")}),C.jsx(lt,{onClick:this.onGroupCreateSubmit,className:"btn btn-primary form-control",children:t("create_group")})]})})})}render(){const{groups:t,removeGroup:r,renameGroup:a}=this.props;return C.jsxs(C.Fragment,{children:[this.renderGroupCreationForm(),C.jsx(GCt,{groups:t,removeGroup:r,renameGroup:a})]})}}const KCt=["groups","devices","deviceStates","bridgeInfo"],ZCt=Ur("groups")(Qr(KCt,na)(qCt)),QCt=ZCt,YCt={"action-column":"_action-column_1729o_1","device-pic":"_device-pic_1729o_8","device-image":"_device-image_1729o_14"},fI="zigbee";function XCt(e){const{data:t,lastSeenType:r,availabilityFeatureEnabled:a,homeassistantEnabled:n,setDeviceDescription:i}=e,{renameDevice:o,removeDevice:s,configureDevice:l}=e,{t:u}=Ot(["zigbee","common","avaliability"]),d=r!=="disable"?[{id:"last_seen",Header:u("last_seen"),accessor:({state:h})=>{var p;return(p=Qq(h,r))==null?void 0:p.getTime()},Cell:({row:{original:{state:h}}})=>C.jsx(vM,{state:h,lastSeenType:r})}]:[],c=a?[{id:"availability",Header:u("avaliability:avaliability"),accessor:({availabilityState:h})=>DZ(h)?h:h.state,Cell:({row:{original:{availabilityState:h,availabilityEnabledForDevice:p,disabled:f}}})=>C.jsx(MZ,{disabled:f,availability:h,availabilityEnabledForDevice:p})}]:[],m=X.useMemo(()=>[{id:"pic",Header:u("pic"),Cell:({row:{original:{device:h,state:p,disabled:f}}})=>C.jsx(If,{className:YCt["device-image"],device:h,deviceStatus:p,disabled:f}),accessor:h=>h,disableSortBy:!0},{id:"friendly_name",Header:u("friendly_name"),accessor:({device:h})=>[h.friendly_name,h.description].join(" "),Cell:({row:{original:{device:h}}})=>C.jsxs(C.Fragment,{children:[C.jsx(Qs,{to:Ow(h.ieee_address),children:h.friendly_name}),C.jsx("small",{className:"d-block",children:h.description})]})},{id:"ieee_address",Header:u("ieee_address"),accessor:({device:h})=>[h.ieee_address,tE(h.network_address,4)].join(" "),Cell:({row:{original:{device:h}}})=>C.jsxs(C.Fragment,{children:[C.jsx("div",{children:h.ieee_address}),C.jsxs("div",{children:["(",tE(h.network_address,4),")"]})]})},{id:"manufacturer",Header:u("manufacturer"),accessor:({device:h})=>{var p;return[(p=h.definition)==null?void 0:p.vendor,h.manufacturer].join(" ")},Cell:({row:{original:{device:h}}})=>C.jsx(pM,{device:h})},{id:"model",Header:u("model"),accessor:({device:h})=>{var p;return[(p=h.definition)==null?void 0:p.model,h.model_id].join(" ")},Cell:({row:{original:{device:h}}})=>C.jsx(fM,{device:h})},{id:"lqi",Header:u("lqi"),accessor:({state:h})=>h.linkquality,Cell:({row:{original:{state:h}}})=>C.jsx(Tc,{value:h.linkquality,name:"linkquality"})},...d,...c,{id:"power",Header:u("power"),accessor:({state:h,device:p})=>{var f;return[h.battery,(f=p.definition)==null?void 0:f.power].join(" ")},Cell:({row:{original:{state:h,device:p}}})=>C.jsx(gM,{device:p,deviceState:h})},{id:"controls",Header:"",Cell:({row:{original:{device:h,state:p}}})=>C.jsx(IZ,{device:h,state:p,homeassistantEnabled:n,renameDevice:o,removeDevice:s,configureDevice:l,setDeviceDescription:i}),disableSortBy:!0}],[d,c,u,n,o,s,l]);return C.jsx("div",{className:"card",children:C.jsx("div",{className:"table-responsive",children:C.jsx(U0,{id:fI,columns:m,data:t})})})}function JCt(e){const{devices:t,deviceStates:r,bridgeInfo:{config:a},availability:n}=e,{renameDevice:i,removeDevice:o,configureDevice:s,setDeviceDescription:l}=e,u=!!a.availability,d=!!(a!=null&&a.homeassistant),c=()=>Object.values(t).filter(h=>h.type!=="Coordinator").map(h=>{var f;const p=r[h.friendly_name]??{};return{id:h.friendly_name,disabled:Ef(h,a),device:h,state:p,availabilityState:n[h.friendly_name]??"offline",availabilityEnabledForDevice:((f=a.devices[h.ieee_address])==null?void 0:f.availability)!==!1}}),m=q.useMemo(()=>c(),[t,r]);return C.jsx(XCt,{data:m,lastSeenType:a.advanced.last_seen,availabilityFeatureEnabled:u,homeassistantEnabled:d,renameDevice:i,removeDevice:o,configureDevice:s,setDeviceDescription:l})}const eEt=["devices","deviceStates","bridgeInfo","availability"],tEt=Ur(["zigbee","common"])(Qr(eEt,na)(JCt)),rEt=tEt,aEt={"device-image":"_device-image_29lej_1"},nEt=e=>{const{t}=Ot("ota"),{device:r,state:a,checkOTA:n,updateOTA:i}=e,o=(a==null?void 0:a.update)??{};switch(o.state){case"updating":return C.jsxs(C.Fragment,{children:[C.jsx("div",{className:"progress",children:C.jsxs("div",{className:"progress-bar progress-bar-striped progress-bar-animated",style:{width:`${o.progress}%`},children:[o.progress,"%"]})}),C.jsx("div",{children:t("remaining_time",{remaining:Zq(o.remaining)})})]});case"available":return C.jsx(lt,{className:"btn btn-danger btn-sm",onClick:i,item:r.friendly_name,prompt:!0,children:t("update")});default:return C.jsx(lt,{className:"btn btn-primary btn-sm",onClick:n,item:r.friendly_name,children:t("check")})}};class iEt extends X.Component{constructor(){super(...arguments),this.checkAllOTA=()=>{const{checkOTA:t}=this.props;this.getAllOtaDevices().forEach(({device:a})=>t(a.friendly_name))}}getAllOtaDevices(){const{devices:t,deviceStates:r,bridgeInfo:{config:a}}=this.props;return Object.values(t).filter(n=>{var i;return((i=n==null?void 0:n.definition)==null?void 0:i.supports_ota)&&!Ef(n,a)}).map(n=>{const i=r[n.friendly_name]??{};return{id:n.friendly_name,device:n,state:i}})}render(){const{checkOTA:t,updateOTA:r,t:a}=this.props,n={checkOTA:t,updateOTA:r},i=this.getAllOtaDevices(),o=[{Header:a("zigbee:pic"),Cell:({row:{original:{device:s,state:l}}})=>C.jsx(If,{className:aEt["device-image"],device:s,deviceStatus:l,disabled:!1}),disableSortBy:!0},{Header:a("zigbee:friendly_name"),accessor:({device:s})=>s.friendly_name,Cell:({row:{original:{device:s}}})=>C.jsx(Qs,{to:Ow(s.ieee_address),children:s.friendly_name})},{Header:a("zigbee:manufacturer"),accessor:({device:s})=>{var l;return[s.manufacturer,(l=s.definition)==null?void 0:l.vendor].join(" ")},Cell:({row:{original:{device:s}}})=>C.jsx(pM,{device:s})},{Header:a("zigbee:model"),accessor:({device:s})=>{var l;return[s.model_id,(l=s.definition)==null?void 0:l.model].join(" ")},Cell:({row:{original:{device:s}}})=>C.jsx(fM,{device:s})},{Header:a("zigbee:firmware_build_date"),accessor:({device:s})=>s.date_code},{Header:a("zigbee:firmware_version"),accessor:({device:s})=>s.software_build_id,Cell:({row:{original:{device:s}}})=>C.jsx(MXe,{device:s})},{Header:()=>C.jsx(lt,{className:"btn btn-danger btn-sm",onClick:this.checkAllOTA,prompt:!0,children:a("check_all")}),accessor:({state:s})=>((s==null?void 0:s.update)??{}).state+"",id:"check_all",Cell:({row:{original:{device:s,state:l}}})=>C.jsx(nEt,{device:s,state:l,...n})}];return C.jsx("div",{className:"card",children:C.jsx("div",{className:"table-responsive",children:C.jsx(U0,{id:"otaDevices",columns:o,data:i,initialState:{sortBy:[{id:"check_all",desc:!1}]}})})})}}const oEt=["devices","deviceStates","bridgeInfo"],sEt=Ur(["ota","zigbee","common"])(Qr(oEt,na)(iEt));class hi extends q.Component{constructor(){super(...arguments),this.state={},this.downloadState=t=>{Xq(tr.getState(),"initialState.json"),t.preventDefault()}}static getDerivedStateFromError(t){return{error:t}}render(){const{error:t}=this.state;if(t){const r={template:"bug_report.yaml",stacktracke:[`**Current url**: ${window.location.toString()}`,`**Previous url**: ${document.referrer}`,`
1059
1059
  `,`**Error type**: ${t==null?void 0:t.name}`,`**Error message**: ${t==null?void 0:t.message}`,`
1060
1060
 
1061
1061
  `,t==null?void 0:t.stack].join(`
@@ -1390,7 +1390,7 @@ module.exports = MyExampleExtension_TS_;
1390
1390
  `,FEt=Ii.create(e=>{const{updateExtensionCode:t,onCreated:r,ts:a}=e,{t:n}=Ot(["extensions","common"]),i=Su(),[o,s]=X.useState(`example-user-extension${a}.js`),l=NEt.replace(/_TS_/g,a.toString()),u=()=>{t({name:o,code:l}),r({name:o,code:l}),i.remove()};return C.jsxs($f,{isOpen:i.visible,children:[C.jsx(Rf,{children:n("create_new_extension")}),C.jsxs(Pf,{children:[C.jsx("label",{className:"form-label",children:n("extension_name_propmt")}),C.jsx("input",{type:"text",className:"form-control",value:o,onChange:d=>s(d.target.value)})]}),C.jsxs(zf,{children:[C.jsx("button",{type:"button",className:"btn btn-secondary",onClick:i.remove,children:n("common:close")}),C.jsx("button",{type:"button",className:"btn btn-primary",onClick:u,children:n("common:ok")})]})]})});function jEt(e){return C.jsx(lt,{className:"btn btn-success me-2",onClick:()=>Ii.show(FEt,{ts:Date.now(),...e}),children:C.jsx("i",{className:"fa fa-plus"})})}class HEt extends X.Component{constructor(){super(...arguments),this.state={},this.loadExtension=t=>{const{value:r}=t.target;this.setState({currentExtension:r})},this.onExtensionCodeChange=t=>{const{updateExtensionCode:r}=this.props,{currentExtension:a}=this.state;a&&r({name:a,code:t})},this.onSaveClick=()=>{const{saveExtensionCode:t}=this.props;t(this.getCurrentExtension())},this.removeExtension=()=>{const{removeExtension:t}=this.props;t(this.getCurrentExtension())}}getCurrentExtension(){const{currentExtension:t}=this.state,{extensions:r}=this.props;return r.find(a=>a.name===t)}renderControls(){const{currentExtension:t}=this.state,{extensions:r,t:a,updateExtensionCode:n}=this.props;return C.jsxs("div",{className:"row mb-2",children:[C.jsx("div",{className:"col-6",children:C.jsxs("select",{value:t,className:"form-control",onChange:this.loadExtension,children:[C.jsx("option",{hidden:!0,children:a("select_extension_to_edit")},"hidden"),r.map(({name:i})=>C.jsx("option",{value:i,children:i},i))]})}),C.jsxs("div",{className:"col-6",children:[C.jsx(jEt,{updateExtensionCode:n,onCreated:i=>this.setState({currentExtension:i.name})}),C.jsx(lt,{prompt:!0,disabled:!t,onClick:this.removeExtension,className:"btn btn-danger me-2",children:C.jsx("i",{className:"fa fa-trash"})}),C.jsx(lt,{disabled:!t,onClick:this.onSaveClick,className:"btn btn-primary",children:a("common:save")})]})]})}renderEditor(){var o;const{currentExtension:t}=this.state,{extensions:r,theme:a}=this.props,n=((o=r.find(s=>s.name===t))==null?void 0:o.code)??"",i=a==="light"?"github":"dracula";return C.jsx(Dee,{setOptions:{useWorker:!1},mode:"javascript",onChange:this.onExtensionCodeChange,name:"UNIQUE_ID_OF_DIV",editorProps:{$blockScrolling:!0},value:n,width:"100%",maxLines:1/0,theme:i,showPrintMargin:!1})}render(){return C.jsx("div",{className:"card h-100",children:C.jsxs("div",{className:"card-body h-100",children:[this.renderControls(),this.renderEditor()]})})}}const BEt=["extensions","theme"],WEt=Ur("extensions")(Qr(BEt,na)(HEt));function UEt(e){const[t,r]=X.useState(""),[a,n]=X.useState(""),{addDeviceToGroup:i,group:o,devices:s}=e,l=s[a],u=Yl(l),{t:d}=Ot(["groups","zigbee"]),c=()=>{i(t?`${a}/${t}`:a,o.friendly_name)},m=p=>{const f=Yl(p);n(p.ieee_address),r(f[0])},h=p=>{r(p)};return C.jsxs(C.Fragment,{children:[C.jsxs("div",{className:"mb-3",children:[C.jsx(OZ,{label:d("zigbee:device"),value:a,devices:s,onChange:m}),C.jsx(Cp,{label:d("zigbee:endpoint"),values:u,value:t,onChange:h})]}),C.jsx("div",{className:"d-flex",children:C.jsx("div",{className:"ms-auto",children:C.jsx(lt,{type:"button",onClick:c,className:"btn btn-primary",children:d("add_to_group")})})})]})}function VEt(e){const{group:t,removeDeviceFromGroup:r,devices:a,deviceStates:n,bridgeInfo:i}=e,{setStateValue:o,setDeviceState:s,getDeviceState:l}=e,u=d=>{r(t.friendly_name,d)};return C.jsx("div",{className:"row",children:t.members.map(d=>C.jsx(CEt,{removeDeviceFromGroup:u,devices:a,groupAddress:d,deviceStates:n,bridgeInfo:i,setStateValue:o,setDeviceState:s,getDeviceState:l},`${d.ieee_address}-${d.endpoint}`))})}function GEt(e){const{devices:t,deviceStates:r,bridgeInfo:a,groups:n}=e,{match:i}=e,o=parseInt(i.params.groupId,10),s=n.find(_=>_.id===o)||{id:o,friendly_name:"Unknown group",members:[],scenes:[]},{setStateValue:l,setDeviceState:u,getDeviceState:d}=e,{addDeviceToGroup:c,removeDeviceFromGroup:m}=e,{sceneStore:h,sceneRemoveAll:p,sceneRecall:f,sceneRemove:v}=e,{t:y}=Ot(["groups"]);return C.jsxs("div",{children:[C.jsxs("h5",{children:[y("group_name"),": ",s.friendly_name," (#",s.id,")"]}),C.jsxs("div",{className:"row",children:[C.jsx("div",{className:"col-12 col-sm-4 col-xxl-4 d-flex",children:C.jsx("div",{className:"card w-100",children:C.jsx("div",{className:"card-body",children:C.jsx("div",{className:"form-group",children:C.jsx(UEt,{addDeviceToGroup:c,devices:t,group:s})})})})}),C.jsx("div",{className:"col-12 col-sm-4 col-xxl-4 d-flex",children:C.jsx("div",{className:"card w-100",children:C.jsx("div",{className:"card-body",children:C.jsx("div",{className:"form-group",children:C.jsx(mee,{target:s,sceneStore:h,sceneRecall:f,sceneRemove:v,sceneRemoveAll:p,deviceState:{}})})})})}),C.jsx("div",{className:"col-12 col-sm-4 col-xxl-4 d-flex",children:C.jsx("div",{className:"card w-100",children:C.jsx("div",{className:"card-body",children:C.jsx("div",{className:"form-group",children:C.jsx(cee,{sceneStore:h,target:s,deviceState:{},setDeviceState:(_,w)=>Promise.resolve()})})})})})]}),C.jsx(VEt,{group:s,devices:t,deviceStates:r,bridgeInfo:a,removeDeviceFromGroup:(_,w)=>{m(w,_)},setStateValue:l,setDeviceState:u,getDeviceState:d})]})}const qEt=cM(GEt),KEt=["groups","devices","deviceStates","bridgeInfo"],ZEt=Qr(KEt,na)(qEt),QEt=ZEt;function YEt(){const{pathname:e}=AXe();return X.useEffect(()=>{var t,r;(r=(t=document.getElementsByTagName("main"))==null?void 0:t[0])==null||r.scrollTo(0,0)},[e]),null}const XEt={type:"logger",log(e){this.output("log",e)},warn(e){this.output("warn",e)},error(e){this.output("error",e)},output(e,t){console&&console[e]&&console[e].apply(console,t)}};class lb{constructor(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.init(t,r)}init(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.prefix=r.prefix||"i18next:",this.logger=t||XEt,this.options=r,this.debug=r.debug}log(){for(var t=arguments.length,r=new Array(t),a=0;a<t;a++)r[a]=arguments[a];return this.forward(r,"log","",!0)}warn(){for(var t=arguments.length,r=new Array(t),a=0;a<t;a++)r[a]=arguments[a];return this.forward(r,"warn","",!0)}error(){for(var t=arguments.length,r=new Array(t),a=0;a<t;a++)r[a]=arguments[a];return this.forward(r,"error","")}deprecate(){for(var t=arguments.length,r=new Array(t),a=0;a<t;a++)r[a]=arguments[a];return this.forward(r,"warn","WARNING DEPRECATED: ",!0)}forward(t,r,a,n){return n&&!this.debug?null:(typeof t[0]=="string"&&(t[0]=`${a}${this.prefix} ${t[0]}`),this.logger[r](t))}create(t){return new lb(this.logger,{prefix:`${this.prefix}:${t}:`,...this.options})}clone(t){return t=t||this.options,t.prefix=t.prefix||this.prefix,new lb(this.logger,t)}}var Ki=new lb;class V0{constructor(){this.observers={}}on(t,r){return t.split(" ").forEach(a=>{this.observers[a]=this.observers[a]||[],this.observers[a].push(r)}),this}off(t,r){if(this.observers[t]){if(!r){delete this.observers[t];return}this.observers[t]=this.observers[t].filter(a=>a!==r)}}emit(t){for(var r=arguments.length,a=new Array(r>1?r-1:0),n=1;n<r;n++)a[n-1]=arguments[n];this.observers[t]&&[].concat(this.observers[t]).forEach(o=>{o(...a)}),this.observers["*"]&&[].concat(this.observers["*"]).forEach(o=>{o.apply(o,[t,...a])})}}function rh(){let e,t;const r=new Promise((a,n)=>{e=a,t=n});return r.resolve=e,r.reject=t,r}function C6(e){return e==null?"":""+e}function JEt(e,t,r){e.forEach(a=>{t[a]&&(r[a]=t[a])})}function FO(e,t,r){function a(o){return o&&o.indexOf("###")>-1?o.replace(/###/g,"."):o}function n(){return!e||typeof e=="string"}const i=typeof t!="string"?[].concat(t):t.split(".");for(;i.length>1;){if(n())return{};const o=a(i.shift());!e[o]&&r&&(e[o]=new r),Object.prototype.hasOwnProperty.call(e,o)?e=e[o]:e={}}return n()?{}:{obj:e,k:a(i.shift())}}function E6(e,t,r){const{obj:a,k:n}=FO(e,t,Object);a[n]=r}function eIt(e,t,r,a){const{obj:n,k:i}=FO(e,t,Object);n[i]=n[i]||[],a&&(n[i]=n[i].concat(r)),a||n[i].push(r)}function ub(e,t){const{obj:r,k:a}=FO(e,t);if(r)return r[a]}function tIt(e,t,r){const a=ub(e,r);return a!==void 0?a:ub(t,r)}function vte(e,t,r){for(const a in t)a!=="__proto__"&&a!=="constructor"&&(a in e?typeof e[a]=="string"||e[a]instanceof String||typeof t[a]=="string"||t[a]instanceof String?r&&(e[a]=t[a]):vte(e[a],t[a],r):e[a]=t[a]);return e}function sd(e){return e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}var rIt={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;","/":"&#x2F;"};function aIt(e){return typeof e=="string"?e.replace(/[&<>"'\/]/g,t=>rIt[t]):e}const nIt=[" ",",","?","!",";"];function iIt(e,t,r){t=t||"",r=r||"";const a=nIt.filter(o=>t.indexOf(o)<0&&r.indexOf(o)<0);if(a.length===0)return!0;const n=new RegExp(`(${a.map(o=>o==="?"?"\\?":o).join("|")})`);let i=!n.test(e);if(!i){const o=e.indexOf(r);o>0&&!n.test(e.substring(0,o))&&(i=!0)}return i}function db(e,t){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:".";if(!e)return;if(e[t])return e[t];const a=t.split(r);let n=e;for(let i=0;i<a.length;++i){if(!n||typeof n[a[i]]=="string"&&i+1<a.length)return;if(n[a[i]]===void 0){let o=2,s=a.slice(i,i+o).join(r),l=n[s];for(;l===void 0&&a.length>i+o;)o++,s=a.slice(i,i+o).join(r),l=n[s];if(l===void 0)return;if(l===null)return null;if(t.endsWith(s)){if(typeof l=="string")return l;if(s&&typeof l[s]=="string")return l[s]}const u=a.slice(i+o).join(r);return u?db(l,u,r):void 0}n=n[a[i]]}return n}function cb(e){return e&&e.indexOf("_")>0?e.replace("_","-"):e}class I6 extends V0{constructor(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{ns:["translation"],defaultNS:"translation"};super(),this.data=t||{},this.options=r,this.options.keySeparator===void 0&&(this.options.keySeparator="."),this.options.ignoreJSONStructure===void 0&&(this.options.ignoreJSONStructure=!0)}addNamespaces(t){this.options.ns.indexOf(t)<0&&this.options.ns.push(t)}removeNamespaces(t){const r=this.options.ns.indexOf(t);r>-1&&this.options.ns.splice(r,1)}getResource(t,r,a){let n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};const i=n.keySeparator!==void 0?n.keySeparator:this.options.keySeparator,o=n.ignoreJSONStructure!==void 0?n.ignoreJSONStructure:this.options.ignoreJSONStructure;let s=[t,r];a&&typeof a!="string"&&(s=s.concat(a)),a&&typeof a=="string"&&(s=s.concat(i?a.split(i):a)),t.indexOf(".")>-1&&(s=t.split("."));const l=ub(this.data,s);return l||!o||typeof a!="string"?l:db(this.data&&this.data[t]&&this.data[t][r],a,i)}addResource(t,r,a,n){let i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:{silent:!1};const o=i.keySeparator!==void 0?i.keySeparator:this.options.keySeparator;let s=[t,r];a&&(s=s.concat(o?a.split(o):a)),t.indexOf(".")>-1&&(s=t.split("."),n=r,r=s[1]),this.addNamespaces(r),E6(this.data,s,n),i.silent||this.emit("added",t,r,a,n)}addResources(t,r,a){let n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{silent:!1};for(const i in a)(typeof a[i]=="string"||Object.prototype.toString.apply(a[i])==="[object Array]")&&this.addResource(t,r,i,a[i],{silent:!0});n.silent||this.emit("added",t,r,a)}addResourceBundle(t,r,a,n,i){let o=arguments.length>5&&arguments[5]!==void 0?arguments[5]:{silent:!1},s=[t,r];t.indexOf(".")>-1&&(s=t.split("."),n=a,a=r,r=s[1]),this.addNamespaces(r);let l=ub(this.data,s)||{};n?vte(l,a,i):l={...l,...a},E6(this.data,s,l),o.silent||this.emit("added",t,r,a)}removeResourceBundle(t,r){this.hasResourceBundle(t,r)&&delete this.data[t][r],this.removeNamespaces(r),this.emit("removed",t,r)}hasResourceBundle(t,r){return this.getResource(t,r)!==void 0}getResourceBundle(t,r){return r||(r=this.options.defaultNS),this.options.compatibilityAPI==="v1"?{...this.getResource(t,r)}:this.getResource(t,r)}getDataByLanguage(t){return this.data[t]}hasLanguageSomeTranslations(t){const r=this.getDataByLanguage(t);return!!(r&&Object.keys(r)||[]).find(n=>r[n]&&Object.keys(r[n]).length>0)}toJSON(){return this.data}}var yte={processors:{},addPostProcessor(e){this.processors[e.name]=e},handle(e,t,r,a,n){return e.forEach(i=>{this.processors[i]&&(t=this.processors[i].process(t,r,a,n))}),t}};const x6={};class mb extends V0{constructor(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};super(),JEt(["resourceStore","languageUtils","pluralResolver","interpolator","backendConnector","i18nFormat","utils"],t,this),this.options=r,this.options.keySeparator===void 0&&(this.options.keySeparator="."),this.logger=Ki.create("translator")}changeLanguage(t){t&&(this.language=t)}exists(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{interpolation:{}};if(t==null)return!1;const a=this.resolve(t,r);return a&&a.res!==void 0}extractFromKey(t,r){let a=r.nsSeparator!==void 0?r.nsSeparator:this.options.nsSeparator;a===void 0&&(a=":");const n=r.keySeparator!==void 0?r.keySeparator:this.options.keySeparator;let i=r.ns||this.options.defaultNS||[];const o=a&&t.indexOf(a)>-1,s=!this.options.userDefinedKeySeparator&&!r.keySeparator&&!this.options.userDefinedNsSeparator&&!r.nsSeparator&&!iIt(t,a,n);if(o&&!s){const l=t.match(this.interpolator.nestingRegexp);if(l&&l.length>0)return{key:t,namespaces:i};const u=t.split(a);(a!==n||a===n&&this.options.ns.indexOf(u[0])>-1)&&(i=u.shift()),t=u.join(n)}return typeof i=="string"&&(i=[i]),{key:t,namespaces:i}}translate(t,r,a){if(typeof r!="object"&&this.options.overloadTranslationOptionHandler&&(r=this.options.overloadTranslationOptionHandler(arguments)),typeof r=="object"&&(r={...r}),r||(r={}),t==null)return"";Array.isArray(t)||(t=[String(t)]);const n=r.returnDetails!==void 0?r.returnDetails:this.options.returnDetails,i=r.keySeparator!==void 0?r.keySeparator:this.options.keySeparator,{key:o,namespaces:s}=this.extractFromKey(t[t.length-1],r),l=s[s.length-1],u=r.lng||this.language,d=r.appendNamespaceToCIMode||this.options.appendNamespaceToCIMode;if(u&&u.toLowerCase()==="cimode"){if(d){const k=r.nsSeparator||this.options.nsSeparator;return n?{res:`${l}${k}${o}`,usedKey:o,exactUsedKey:o,usedLng:u,usedNS:l}:`${l}${k}${o}`}return n?{res:o,usedKey:o,exactUsedKey:o,usedLng:u,usedNS:l}:o}const c=this.resolve(t,r);let m=c&&c.res;const h=c&&c.usedKey||o,p=c&&c.exactUsedKey||o,f=Object.prototype.toString.apply(m),v=["[object Number]","[object Function]","[object RegExp]"],y=r.joinArrays!==void 0?r.joinArrays:this.options.joinArrays,_=!this.i18nFormat||this.i18nFormat.handleAsObject;if(_&&m&&(typeof m!="string"&&typeof m!="boolean"&&typeof m!="number")&&v.indexOf(f)<0&&!(typeof y=="string"&&f==="[object Array]")){if(!r.returnObjects&&!this.options.returnObjects){this.options.returnedObjectHandler||this.logger.warn("accessing an object - but returnObjects options is not enabled!");const k=this.options.returnedObjectHandler?this.options.returnedObjectHandler(h,m,{...r,ns:s}):`key '${o} (${this.language})' returned an object instead of string.`;return n?(c.res=k,c):k}if(i){const k=f==="[object Array]",S=k?[]:{},A=k?p:h;for(const T in m)if(Object.prototype.hasOwnProperty.call(m,T)){const E=`${A}${i}${T}`;S[T]=this.translate(E,{...r,joinArrays:!1,ns:s}),S[T]===E&&(S[T]=m[T])}m=S}}else if(_&&typeof y=="string"&&f==="[object Array]")m=m.join(y),m&&(m=this.extendTranslation(m,t,r,a));else{let k=!1,S=!1;const A=r.count!==void 0&&typeof r.count!="string",T=mb.hasDefaultValue(r),E=A?this.pluralResolver.getSuffix(u,r.count,r):"",D=r.ordinal&&A?this.pluralResolver.getSuffix(u,r.count,{ordinal:!1}):"",I=r[`defaultValue${E}`]||r[`defaultValue${D}`]||r.defaultValue;!this.isValidLookup(m)&&T&&(k=!0,m=I),this.isValidLookup(m)||(S=!0,m=o);const O=(r.missingKeyNoValueFallbackToKey||this.options.missingKeyNoValueFallbackToKey)&&S?void 0:m,M=T&&I!==m&&this.options.updateMissing;if(S||k||M){if(this.logger.log(M?"updateKey":"missingKey",u,l,o,M?I:m),i){const N=this.resolve(o,{...r,keySeparator:!1});N&&N.res&&this.logger.warn("Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.")}let b=[];const L=this.languageUtils.getFallbackCodes(this.options.fallbackLng,r.lng||this.language);if(this.options.saveMissingTo==="fallback"&&L&&L[0])for(let N=0;N<L.length;N++)b.push(L[N]);else this.options.saveMissingTo==="all"?b=this.languageUtils.toResolveHierarchy(r.lng||this.language):b.push(r.lng||this.language);const R=(N,H,z)=>{const F=T&&z!==m?z:O;this.options.missingKeyHandler?this.options.missingKeyHandler(N,l,H,F,M,r):this.backendConnector&&this.backendConnector.saveMissing&&this.backendConnector.saveMissing(N,l,H,F,M,r),this.emit("missingKey",N,l,H,m)};this.options.saveMissing&&(this.options.saveMissingPlurals&&A?b.forEach(N=>{this.pluralResolver.getSuffixes(N,r).forEach(H=>{R([N],o+H,r[`defaultValue${H}`]||I)})}):R(b,o,I))}m=this.extendTranslation(m,t,r,c,a),S&&m===o&&this.options.appendNamespaceToMissingKey&&(m=`${l}:${o}`),(S||k)&&this.options.parseMissingKeyHandler&&(this.options.compatibilityAPI!=="v1"?m=this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey?`${l}:${o}`:o,k?m:void 0):m=this.options.parseMissingKeyHandler(m))}return n?(c.res=m,c):m}extendTranslation(t,r,a,n,i){var o=this;if(this.i18nFormat&&this.i18nFormat.parse)t=this.i18nFormat.parse(t,{...this.options.interpolation.defaultVariables,...a},a.lng||this.language||n.usedLng,n.usedNS,n.usedKey,{resolved:n});else if(!a.skipInterpolation){a.interpolation&&this.interpolator.init({...a,interpolation:{...this.options.interpolation,...a.interpolation}});const u=typeof t=="string"&&(a&&a.interpolation&&a.interpolation.skipOnVariables!==void 0?a.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables);let d;if(u){const m=t.match(this.interpolator.nestingRegexp);d=m&&m.length}let c=a.replace&&typeof a.replace!="string"?a.replace:a;if(this.options.interpolation.defaultVariables&&(c={...this.options.interpolation.defaultVariables,...c}),t=this.interpolator.interpolate(t,c,a.lng||this.language,a),u){const m=t.match(this.interpolator.nestingRegexp),h=m&&m.length;d<h&&(a.nest=!1)}!a.lng&&this.options.compatibilityAPI!=="v1"&&n&&n.res&&(a.lng=n.usedLng),a.nest!==!1&&(t=this.interpolator.nest(t,function(){for(var m=arguments.length,h=new Array(m),p=0;p<m;p++)h[p]=arguments[p];return i&&i[0]===h[0]&&!a.context?(o.logger.warn(`It seems you are nesting recursively key: ${h[0]} in key: ${r[0]}`),null):o.translate(...h,r)},a)),a.interpolation&&this.interpolator.reset()}const s=a.postProcess||this.options.postProcess,l=typeof s=="string"?[s]:s;return t!=null&&l&&l.length&&a.applyPostProcessor!==!1&&(t=yte.handle(l,t,r,this.options&&this.options.postProcessPassResolved?{i18nResolved:n,...a}:a,this)),t}resolve(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},a,n,i,o,s;return typeof t=="string"&&(t=[t]),t.forEach(l=>{if(this.isValidLookup(a))return;const u=this.extractFromKey(l,r),d=u.key;n=d;let c=u.namespaces;this.options.fallbackNS&&(c=c.concat(this.options.fallbackNS));const m=r.count!==void 0&&typeof r.count!="string",h=m&&!r.ordinal&&r.count===0&&this.pluralResolver.shouldUseIntlApi(),p=r.context!==void 0&&(typeof r.context=="string"||typeof r.context=="number")&&r.context!=="",f=r.lngs?r.lngs:this.languageUtils.toResolveHierarchy(r.lng||this.language,r.fallbackLng);c.forEach(v=>{this.isValidLookup(a)||(s=v,!x6[`${f[0]}-${v}`]&&this.utils&&this.utils.hasLoadedNamespace&&!this.utils.hasLoadedNamespace(s)&&(x6[`${f[0]}-${v}`]=!0,this.logger.warn(`key "${n}" for languages "${f.join(", ")}" won't get resolved as namespace "${s}" was not yet loaded`,"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!")),f.forEach(y=>{if(this.isValidLookup(a))return;o=y;const _=[d];if(this.i18nFormat&&this.i18nFormat.addLookupKeys)this.i18nFormat.addLookupKeys(_,d,y,v,r);else{let k;m&&(k=this.pluralResolver.getSuffix(y,r.count,r));const S=`${this.options.pluralSeparator}zero`,A=`${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`;if(m&&(_.push(d+k),r.ordinal&&k.indexOf(A)===0&&_.push(d+k.replace(A,this.options.pluralSeparator)),h&&_.push(d+S)),p){const T=`${d}${this.options.contextSeparator}${r.context}`;_.push(T),m&&(_.push(T+k),r.ordinal&&k.indexOf(A)===0&&_.push(T+k.replace(A,this.options.pluralSeparator)),h&&_.push(T+S))}}let w;for(;w=_.pop();)this.isValidLookup(a)||(i=w,a=this.getResource(y,v,w,r))}))})}),{res:a,usedKey:n,exactUsedKey:i,usedLng:o,usedNS:s}}isValidLookup(t){return t!==void 0&&!(!this.options.returnNull&&t===null)&&!(!this.options.returnEmptyString&&t==="")}getResource(t,r,a){let n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};return this.i18nFormat&&this.i18nFormat.getResource?this.i18nFormat.getResource(t,r,a,n):this.resourceStore.getResource(t,r,a,n)}static hasDefaultValue(t){const r="defaultValue";for(const a in t)if(Object.prototype.hasOwnProperty.call(t,a)&&r===a.substring(0,r.length)&&t[a]!==void 0)return!0;return!1}}function FA(e){return e.charAt(0).toUpperCase()+e.slice(1)}class D6{constructor(t){this.options=t,this.supportedLngs=this.options.supportedLngs||!1,this.logger=Ki.create("languageUtils")}getScriptPartFromCode(t){if(t=cb(t),!t||t.indexOf("-")<0)return null;const r=t.split("-");return r.length===2||(r.pop(),r[r.length-1].toLowerCase()==="x")?null:this.formatLanguageCode(r.join("-"))}getLanguagePartFromCode(t){if(t=cb(t),!t||t.indexOf("-")<0)return t;const r=t.split("-");return this.formatLanguageCode(r[0])}formatLanguageCode(t){if(typeof t=="string"&&t.indexOf("-")>-1){const r=["hans","hant","latn","cyrl","cans","mong","arab"];let a=t.split("-");return this.options.lowerCaseLng?a=a.map(n=>n.toLowerCase()):a.length===2?(a[0]=a[0].toLowerCase(),a[1]=a[1].toUpperCase(),r.indexOf(a[1].toLowerCase())>-1&&(a[1]=FA(a[1].toLowerCase()))):a.length===3&&(a[0]=a[0].toLowerCase(),a[1].length===2&&(a[1]=a[1].toUpperCase()),a[0]!=="sgn"&&a[2].length===2&&(a[2]=a[2].toUpperCase()),r.indexOf(a[1].toLowerCase())>-1&&(a[1]=FA(a[1].toLowerCase())),r.indexOf(a[2].toLowerCase())>-1&&(a[2]=FA(a[2].toLowerCase()))),a.join("-")}return this.options.cleanCode||this.options.lowerCaseLng?t.toLowerCase():t}isSupportedCode(t){return(this.options.load==="languageOnly"||this.options.nonExplicitSupportedLngs)&&(t=this.getLanguagePartFromCode(t)),!this.supportedLngs||!this.supportedLngs.length||this.supportedLngs.indexOf(t)>-1}getBestMatchFromCodes(t){if(!t)return null;let r;return t.forEach(a=>{if(r)return;const n=this.formatLanguageCode(a);(!this.options.supportedLngs||this.isSupportedCode(n))&&(r=n)}),!r&&this.options.supportedLngs&&t.forEach(a=>{if(r)return;const n=this.getLanguagePartFromCode(a);if(this.isSupportedCode(n))return r=n;r=this.options.supportedLngs.find(i=>{if(i===n)return i;if(!(i.indexOf("-")<0&&n.indexOf("-")<0)&&i.indexOf(n)===0)return i})}),r||(r=this.getFallbackCodes(this.options.fallbackLng)[0]),r}getFallbackCodes(t,r){if(!t)return[];if(typeof t=="function"&&(t=t(r)),typeof t=="string"&&(t=[t]),Object.prototype.toString.apply(t)==="[object Array]")return t;if(!r)return t.default||[];let a=t[r];return a||(a=t[this.getScriptPartFromCode(r)]),a||(a=t[this.formatLanguageCode(r)]),a||(a=t[this.getLanguagePartFromCode(r)]),a||(a=t.default),a||[]}toResolveHierarchy(t,r){const a=this.getFallbackCodes(r||this.options.fallbackLng||[],t),n=[],i=o=>{o&&(this.isSupportedCode(o)?n.push(o):this.logger.warn(`rejecting language code not found in supportedLngs: ${o}`))};return typeof t=="string"&&(t.indexOf("-")>-1||t.indexOf("_")>-1)?(this.options.load!=="languageOnly"&&i(this.formatLanguageCode(t)),this.options.load!=="languageOnly"&&this.options.load!=="currentOnly"&&i(this.getScriptPartFromCode(t)),this.options.load!=="currentOnly"&&i(this.getLanguagePartFromCode(t))):typeof t=="string"&&i(this.formatLanguageCode(t)),a.forEach(o=>{n.indexOf(o)<0&&i(this.formatLanguageCode(o))}),n}}let oIt=[{lngs:["ach","ak","am","arn","br","fil","gun","ln","mfe","mg","mi","oc","pt","pt-BR","tg","tl","ti","tr","uz","wa"],nr:[1,2],fc:1},{lngs:["af","an","ast","az","bg","bn","ca","da","de","dev","el","en","eo","es","et","eu","fi","fo","fur","fy","gl","gu","ha","hi","hu","hy","ia","it","kk","kn","ku","lb","mai","ml","mn","mr","nah","nap","nb","ne","nl","nn","no","nso","pa","pap","pms","ps","pt-PT","rm","sco","se","si","so","son","sq","sv","sw","ta","te","tk","ur","yo"],nr:[1,2],fc:2},{lngs:["ay","bo","cgg","fa","ht","id","ja","jbo","ka","km","ko","ky","lo","ms","sah","su","th","tt","ug","vi","wo","zh"],nr:[1],fc:3},{lngs:["be","bs","cnr","dz","hr","ru","sr","uk"],nr:[1,2,5],fc:4},{lngs:["ar"],nr:[0,1,2,3,11,100],fc:5},{lngs:["cs","sk"],nr:[1,2,5],fc:6},{lngs:["csb","pl"],nr:[1,2,5],fc:7},{lngs:["cy"],nr:[1,2,3,8],fc:8},{lngs:["fr"],nr:[1,2],fc:9},{lngs:["ga"],nr:[1,2,3,7,11],fc:10},{lngs:["gd"],nr:[1,2,3,20],fc:11},{lngs:["is"],nr:[1,2],fc:12},{lngs:["jv"],nr:[0,1],fc:13},{lngs:["kw"],nr:[1,2,3,4],fc:14},{lngs:["lt"],nr:[1,2,10],fc:15},{lngs:["lv"],nr:[1,2,0],fc:16},{lngs:["mk"],nr:[1,2],fc:17},{lngs:["mnk"],nr:[0,1,2],fc:18},{lngs:["mt"],nr:[1,2,11,20],fc:19},{lngs:["or"],nr:[2,1],fc:2},{lngs:["ro"],nr:[1,2,20],fc:20},{lngs:["sl"],nr:[5,1,2,3],fc:21},{lngs:["he","iw"],nr:[1,2,20,21],fc:22}],sIt={1:function(e){return+(e>1)},2:function(e){return+(e!=1)},3:function(e){return 0},4:function(e){return e%10==1&&e%100!=11?0:e%10>=2&&e%10<=4&&(e%100<10||e%100>=20)?1:2},5:function(e){return e==0?0:e==1?1:e==2?2:e%100>=3&&e%100<=10?3:e%100>=11?4:5},6:function(e){return e==1?0:e>=2&&e<=4?1:2},7:function(e){return e==1?0:e%10>=2&&e%10<=4&&(e%100<10||e%100>=20)?1:2},8:function(e){return e==1?0:e==2?1:e!=8&&e!=11?2:3},9:function(e){return+(e>=2)},10:function(e){return e==1?0:e==2?1:e<7?2:e<11?3:4},11:function(e){return e==1||e==11?0:e==2||e==12?1:e>2&&e<20?2:3},12:function(e){return+(e%10!=1||e%100==11)},13:function(e){return+(e!==0)},14:function(e){return e==1?0:e==2?1:e==3?2:3},15:function(e){return e%10==1&&e%100!=11?0:e%10>=2&&(e%100<10||e%100>=20)?1:2},16:function(e){return e%10==1&&e%100!=11?0:e!==0?1:2},17:function(e){return e==1||e%10==1&&e%100!=11?0:1},18:function(e){return e==0?0:e==1?1:2},19:function(e){return e==1?0:e==0||e%100>1&&e%100<11?1:e%100>10&&e%100<20?2:3},20:function(e){return e==1?0:e==0||e%100>0&&e%100<20?1:2},21:function(e){return e%100==1?1:e%100==2?2:e%100==3||e%100==4?3:0},22:function(e){return e==1?0:e==2?1:(e<0||e>10)&&e%10==0?2:3}};const lIt=["v1","v2","v3"],uIt=["v4"],M6={zero:0,one:1,two:2,few:3,many:4,other:5};function dIt(){const e={};return oIt.forEach(t=>{t.lngs.forEach(r=>{e[r]={numbers:t.nr,plurals:sIt[t.fc]}})}),e}class cIt{constructor(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.languageUtils=t,this.options=r,this.logger=Ki.create("pluralResolver"),(!this.options.compatibilityJSON||uIt.includes(this.options.compatibilityJSON))&&(typeof Intl>"u"||!Intl.PluralRules)&&(this.options.compatibilityJSON="v3",this.logger.error("Your environment seems not to be Intl API compatible, use an Intl.PluralRules polyfill. Will fallback to the compatibilityJSON v3 format handling.")),this.rules=dIt()}addRule(t,r){this.rules[t]=r}getRule(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(this.shouldUseIntlApi())try{return new Intl.PluralRules(cb(t),{type:r.ordinal?"ordinal":"cardinal"})}catch{return}return this.rules[t]||this.rules[this.languageUtils.getLanguagePartFromCode(t)]}needsPlural(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const a=this.getRule(t,r);return this.shouldUseIntlApi()?a&&a.resolvedOptions().pluralCategories.length>1:a&&a.numbers.length>1}getPluralFormsOfKey(t,r){let a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return this.getSuffixes(t,a).map(n=>`${r}${n}`)}getSuffixes(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};const a=this.getRule(t,r);return a?this.shouldUseIntlApi()?a.resolvedOptions().pluralCategories.sort((n,i)=>M6[n]-M6[i]).map(n=>`${this.options.prepend}${r.ordinal?`ordinal${this.options.prepend}`:""}${n}`):a.numbers.map(n=>this.getSuffix(t,n,r)):[]}getSuffix(t,r){let a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};const n=this.getRule(t,a);return n?this.shouldUseIntlApi()?`${this.options.prepend}${a.ordinal?`ordinal${this.options.prepend}`:""}${n.select(r)}`:this.getSuffixRetroCompatible(n,r):(this.logger.warn(`no plural rule found for: ${t}`),"")}getSuffixRetroCompatible(t,r){const a=t.noAbs?t.plurals(r):t.plurals(Math.abs(r));let n=t.numbers[a];this.options.simplifyPluralSuffix&&t.numbers.length===2&&t.numbers[0]===1&&(n===2?n="plural":n===1&&(n=""));const i=()=>this.options.prepend&&n.toString()?this.options.prepend+n.toString():n.toString();return this.options.compatibilityJSON==="v1"?n===1?"":typeof n=="number"?`_plural_${n.toString()}`:i():this.options.compatibilityJSON==="v2"||this.options.simplifyPluralSuffix&&t.numbers.length===2&&t.numbers[0]===1?i():this.options.prepend&&a.toString()?this.options.prepend+a.toString():a.toString()}shouldUseIntlApi(){return!lIt.includes(this.options.compatibilityJSON)}}function O6(e,t,r){let a=arguments.length>3&&arguments[3]!==void 0?arguments[3]:".",n=arguments.length>4&&arguments[4]!==void 0?arguments[4]:!0,i=tIt(e,t,r);return!i&&n&&typeof r=="string"&&(i=db(e,r,a),i===void 0&&(i=db(t,r,a))),i}class mIt{constructor(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.logger=Ki.create("interpolator"),this.options=t,this.format=t.interpolation&&t.interpolation.format||(r=>r),this.init(t)}init(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};t.interpolation||(t.interpolation={escapeValue:!0});const r=t.interpolation;this.escape=r.escape!==void 0?r.escape:aIt,this.escapeValue=r.escapeValue!==void 0?r.escapeValue:!0,this.useRawValueToEscape=r.useRawValueToEscape!==void 0?r.useRawValueToEscape:!1,this.prefix=r.prefix?sd(r.prefix):r.prefixEscaped||"{{",this.suffix=r.suffix?sd(r.suffix):r.suffixEscaped||"}}",this.formatSeparator=r.formatSeparator?r.formatSeparator:r.formatSeparator||",",this.unescapePrefix=r.unescapeSuffix?"":r.unescapePrefix||"-",this.unescapeSuffix=this.unescapePrefix?"":r.unescapeSuffix||"",this.nestingPrefix=r.nestingPrefix?sd(r.nestingPrefix):r.nestingPrefixEscaped||sd("$t("),this.nestingSuffix=r.nestingSuffix?sd(r.nestingSuffix):r.nestingSuffixEscaped||sd(")"),this.nestingOptionsSeparator=r.nestingOptionsSeparator?r.nestingOptionsSeparator:r.nestingOptionsSeparator||",",this.maxReplaces=r.maxReplaces?r.maxReplaces:1e3,this.alwaysFormat=r.alwaysFormat!==void 0?r.alwaysFormat:!1,this.resetRegExp()}reset(){this.options&&this.init(this.options)}resetRegExp(){const t=`${this.prefix}(.+?)${this.suffix}`;this.regexp=new RegExp(t,"g");const r=`${this.prefix}${this.unescapePrefix}(.+?)${this.unescapeSuffix}${this.suffix}`;this.regexpUnescape=new RegExp(r,"g");const a=`${this.nestingPrefix}(.+?)${this.nestingSuffix}`;this.nestingRegexp=new RegExp(a,"g")}interpolate(t,r,a,n){let i,o,s;const l=this.options&&this.options.interpolation&&this.options.interpolation.defaultVariables||{};function u(p){return p.replace(/\$/g,"$$$$")}const d=p=>{if(p.indexOf(this.formatSeparator)<0){const _=O6(r,l,p,this.options.keySeparator,this.options.ignoreJSONStructure);return this.alwaysFormat?this.format(_,void 0,a,{...n,...r,interpolationkey:p}):_}const f=p.split(this.formatSeparator),v=f.shift().trim(),y=f.join(this.formatSeparator).trim();return this.format(O6(r,l,v,this.options.keySeparator,this.options.ignoreJSONStructure),y,a,{...n,...r,interpolationkey:v})};this.resetRegExp();const c=n&&n.missingInterpolationHandler||this.options.missingInterpolationHandler,m=n&&n.interpolation&&n.interpolation.skipOnVariables!==void 0?n.interpolation.skipOnVariables:this.options.interpolation.skipOnVariables;return[{regex:this.regexpUnescape,safeValue:p=>u(p)},{regex:this.regexp,safeValue:p=>this.escapeValue?u(this.escape(p)):u(p)}].forEach(p=>{for(s=0;i=p.regex.exec(t);){const f=i[1].trim();if(o=d(f),o===void 0)if(typeof c=="function"){const y=c(t,i,n);o=typeof y=="string"?y:""}else if(n&&Object.prototype.hasOwnProperty.call(n,f))o="";else if(m){o=i[0];continue}else this.logger.warn(`missed to pass in variable ${f} for interpolating ${t}`),o="";else typeof o!="string"&&!this.useRawValueToEscape&&(o=C6(o));const v=p.safeValue(o);if(t=t.replace(i[0],v),m?(p.regex.lastIndex+=o.length,p.regex.lastIndex-=i[0].length):p.regex.lastIndex=0,s++,s>=this.maxReplaces)break}}),t}nest(t,r){let a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},n,i,o;function s(l,u){const d=this.nestingOptionsSeparator;if(l.indexOf(d)<0)return l;const c=l.split(new RegExp(`${d}[ ]*{`));let m=`{${c[1]}`;l=c[0],m=this.interpolate(m,o);const h=m.match(/'/g),p=m.match(/"/g);(h&&h.length%2===0&&!p||p.length%2!==0)&&(m=m.replace(/'/g,'"'));try{o=JSON.parse(m),u&&(o={...u,...o})}catch(f){return this.logger.warn(`failed parsing options string in nesting for key ${l}`,f),`${l}${d}${m}`}return delete o.defaultValue,l}for(;n=this.nestingRegexp.exec(t);){let l=[];o={...a},o=o.replace&&typeof o.replace!="string"?o.replace:o,o.applyPostProcessor=!1,delete o.defaultValue;let u=!1;if(n[0].indexOf(this.formatSeparator)!==-1&&!/{.*}/.test(n[1])){const d=n[1].split(this.formatSeparator).map(c=>c.trim());n[1]=d.shift(),l=d,u=!0}if(i=r(s.call(this,n[1].trim(),o),o),i&&n[0]===t&&typeof i!="string")return i;typeof i!="string"&&(i=C6(i)),i||(this.logger.warn(`missed to resolve ${n[1]} for nesting ${t}`),i=""),u&&(i=l.reduce((d,c)=>this.format(d,c,a.lng,{...a,interpolationkey:n[1].trim()}),i.trim())),t=t.replace(n[0],i),this.regexp.lastIndex=0}return t}}function hIt(e){let t=e.toLowerCase().trim();const r={};if(e.indexOf("(")>-1){const a=e.split("(");t=a[0].toLowerCase().trim();const n=a[1].substring(0,a[1].length-1);t==="currency"&&n.indexOf(":")<0?r.currency||(r.currency=n.trim()):t==="relativetime"&&n.indexOf(":")<0?r.range||(r.range=n.trim()):n.split(";").forEach(o=>{if(!o)return;const[s,...l]=o.split(":"),u=l.join(":").trim().replace(/^'+|'+$/g,"");r[s.trim()]||(r[s.trim()]=u),u==="false"&&(r[s.trim()]=!1),u==="true"&&(r[s.trim()]=!0),isNaN(u)||(r[s.trim()]=parseInt(u,10))})}return{formatName:t,formatOptions:r}}function ld(e){const t={};return function(a,n,i){const o=n+JSON.stringify(i);let s=t[o];return s||(s=e(cb(n),i),t[o]=s),s(a)}}class pIt{constructor(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.logger=Ki.create("formatter"),this.options=t,this.formats={number:ld((r,a)=>{const n=new Intl.NumberFormat(r,{...a});return i=>n.format(i)}),currency:ld((r,a)=>{const n=new Intl.NumberFormat(r,{...a,style:"currency"});return i=>n.format(i)}),datetime:ld((r,a)=>{const n=new Intl.DateTimeFormat(r,{...a});return i=>n.format(i)}),relativetime:ld((r,a)=>{const n=new Intl.RelativeTimeFormat(r,{...a});return i=>n.format(i,a.range||"day")}),list:ld((r,a)=>{const n=new Intl.ListFormat(r,{...a});return i=>n.format(i)})},this.init(t)}init(t){const a=(arguments.length>1&&arguments[1]!==void 0?arguments[1]:{interpolation:{}}).interpolation;this.formatSeparator=a.formatSeparator?a.formatSeparator:a.formatSeparator||","}add(t,r){this.formats[t.toLowerCase().trim()]=r}addCached(t,r){this.formats[t.toLowerCase().trim()]=ld(r)}format(t,r,a){let n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};return r.split(this.formatSeparator).reduce((s,l)=>{const{formatName:u,formatOptions:d}=hIt(l);if(this.formats[u]){let c=s;try{const m=n&&n.formatParams&&n.formatParams[n.interpolationkey]||{},h=m.locale||m.lng||n.locale||n.lng||a;c=this.formats[u](s,h,{...d,...n,...m})}catch(m){this.logger.warn(m)}return c}else this.logger.warn(`there was no format function for ${u}`);return s},t)}}function fIt(e,t){e.pending[t]!==void 0&&(delete e.pending[t],e.pendingCount--)}class gIt extends V0{constructor(t,r,a){let n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:{};super(),this.backend=t,this.store=r,this.services=a,this.languageUtils=a.languageUtils,this.options=n,this.logger=Ki.create("backendConnector"),this.waitingReads=[],this.maxParallelReads=n.maxParallelReads||10,this.readingCalls=0,this.maxRetries=n.maxRetries>=0?n.maxRetries:5,this.retryTimeout=n.retryTimeout>=1?n.retryTimeout:350,this.state={},this.queue=[],this.backend&&this.backend.init&&this.backend.init(a,n.backend,n)}queueLoad(t,r,a,n){const i={},o={},s={},l={};return t.forEach(u=>{let d=!0;r.forEach(c=>{const m=`${u}|${c}`;!a.reload&&this.store.hasResourceBundle(u,c)?this.state[m]=2:this.state[m]<0||(this.state[m]===1?o[m]===void 0&&(o[m]=!0):(this.state[m]=1,d=!1,o[m]===void 0&&(o[m]=!0),i[m]===void 0&&(i[m]=!0),l[c]===void 0&&(l[c]=!0)))}),d||(s[u]=!0)}),(Object.keys(i).length||Object.keys(o).length)&&this.queue.push({pending:o,pendingCount:Object.keys(o).length,loaded:{},errors:[],callback:n}),{toLoad:Object.keys(i),pending:Object.keys(o),toLoadLanguages:Object.keys(s),toLoadNamespaces:Object.keys(l)}}loaded(t,r,a){const n=t.split("|"),i=n[0],o=n[1];r&&this.emit("failedLoading",i,o,r),a&&this.store.addResourceBundle(i,o,a),this.state[t]=r?-1:2;const s={};this.queue.forEach(l=>{eIt(l.loaded,[i],o),fIt(l,t),r&&l.errors.push(r),l.pendingCount===0&&!l.done&&(Object.keys(l.loaded).forEach(u=>{s[u]||(s[u]={});const d=l.loaded[u];d.length&&d.forEach(c=>{s[u][c]===void 0&&(s[u][c]=!0)})}),l.done=!0,l.errors.length?l.callback(l.errors):l.callback())}),this.emit("loaded",s),this.queue=this.queue.filter(l=>!l.done)}read(t,r,a){let n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:0,i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:this.retryTimeout,o=arguments.length>5?arguments[5]:void 0;if(!t.length)return o(null,{});if(this.readingCalls>=this.maxParallelReads){this.waitingReads.push({lng:t,ns:r,fcName:a,tried:n,wait:i,callback:o});return}this.readingCalls++;const s=(u,d)=>{if(this.readingCalls--,this.waitingReads.length>0){const c=this.waitingReads.shift();this.read(c.lng,c.ns,c.fcName,c.tried,c.wait,c.callback)}if(u&&d&&n<this.maxRetries){setTimeout(()=>{this.read.call(this,t,r,a,n+1,i*2,o)},i);return}o(u,d)},l=this.backend[a].bind(this.backend);if(l.length===2){try{const u=l(t,r);u&&typeof u.then=="function"?u.then(d=>s(null,d)).catch(s):s(null,u)}catch(u){s(u)}return}return l(t,r,s)}prepareLoading(t,r){let a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{},n=arguments.length>3?arguments[3]:void 0;if(!this.backend)return this.logger.warn("No backend was added via i18next.use. Will not load resources."),n&&n();typeof t=="string"&&(t=this.languageUtils.toResolveHierarchy(t)),typeof r=="string"&&(r=[r]);const i=this.queueLoad(t,r,a,n);if(!i.toLoad.length)return i.pending.length||n(),null;i.toLoad.forEach(o=>{this.loadOne(o)})}load(t,r,a){this.prepareLoading(t,r,{},a)}reload(t,r,a){this.prepareLoading(t,r,{reload:!0},a)}loadOne(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"";const a=t.split("|"),n=a[0],i=a[1];this.read(n,i,"read",void 0,void 0,(o,s)=>{o&&this.logger.warn(`${r}loading namespace ${i} for language ${n} failed`,o),!o&&s&&this.logger.log(`${r}loaded namespace ${i} for language ${n}`,s),this.loaded(t,o,s)})}saveMissing(t,r,a,n,i){let o=arguments.length>5&&arguments[5]!==void 0?arguments[5]:{},s=arguments.length>6&&arguments[6]!==void 0?arguments[6]:()=>{};if(this.services.utils&&this.services.utils.hasLoadedNamespace&&!this.services.utils.hasLoadedNamespace(r)){this.logger.warn(`did not save key "${a}" as the namespace "${r}" was not yet loaded`,"This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!");return}if(!(a==null||a==="")){if(this.backend&&this.backend.create){const l={...o,isUpdate:i},u=this.backend.create.bind(this.backend);if(u.length<6)try{let d;u.length===5?d=u(t,r,a,n,l):d=u(t,r,a,n),d&&typeof d.then=="function"?d.then(c=>s(null,c)).catch(s):s(null,d)}catch(d){s(d)}else u(t,r,a,n,s,l)}!t||!t[0]||this.store.addResource(t[0],r,a,n)}}}function L6(){return{debug:!1,initImmediate:!0,ns:["translation"],defaultNS:["translation"],fallbackLng:["dev"],fallbackNS:!1,supportedLngs:!1,nonExplicitSupportedLngs:!1,load:"all",preload:!1,simplifyPluralSuffix:!0,keySeparator:".",nsSeparator:":",pluralSeparator:"_",contextSeparator:"_",partialBundledLanguages:!1,saveMissing:!1,updateMissing:!1,saveMissingTo:"fallback",saveMissingPlurals:!0,missingKeyHandler:!1,missingInterpolationHandler:!1,postProcess:!1,postProcessPassResolved:!1,returnNull:!1,returnEmptyString:!0,returnObjects:!1,joinArrays:!1,returnedObjectHandler:!1,parseMissingKeyHandler:!1,appendNamespaceToMissingKey:!1,appendNamespaceToCIMode:!1,overloadTranslationOptionHandler:function(t){let r={};if(typeof t[1]=="object"&&(r=t[1]),typeof t[1]=="string"&&(r.defaultValue=t[1]),typeof t[2]=="string"&&(r.tDescription=t[2]),typeof t[2]=="object"||typeof t[3]=="object"){const a=t[3]||t[2];Object.keys(a).forEach(n=>{r[n]=a[n]})}return r},interpolation:{escapeValue:!0,format:(e,t,r,a)=>e,prefix:"{{",suffix:"}}",formatSeparator:",",unescapePrefix:"-",nestingPrefix:"$t(",nestingSuffix:")",nestingOptionsSeparator:",",maxReplaces:1e3,skipOnVariables:!0}}}function R6(e){return typeof e.ns=="string"&&(e.ns=[e.ns]),typeof e.fallbackLng=="string"&&(e.fallbackLng=[e.fallbackLng]),typeof e.fallbackNS=="string"&&(e.fallbackNS=[e.fallbackNS]),e.supportedLngs&&e.supportedLngs.indexOf("cimode")<0&&(e.supportedLngs=e.supportedLngs.concat(["cimode"])),e}function Hv(){}function vIt(e){Object.getOwnPropertyNames(Object.getPrototypeOf(e)).forEach(r=>{typeof e[r]=="function"&&(e[r]=e[r].bind(e))})}class Fp extends V0{constructor(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0;if(super(),this.options=R6(t),this.services={},this.logger=Ki,this.modules={external:[]},vIt(this),r&&!this.isInitialized&&!t.isClone){if(!this.options.initImmediate)return this.init(t,r),this;setTimeout(()=>{this.init(t,r)},0)}}init(){var t=this;let r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},a=arguments.length>1?arguments[1]:void 0;typeof r=="function"&&(a=r,r={}),!r.defaultNS&&r.defaultNS!==!1&&r.ns&&(typeof r.ns=="string"?r.defaultNS=r.ns:r.ns.indexOf("translation")<0&&(r.defaultNS=r.ns[0]));const n=L6();this.options={...n,...this.options,...R6(r)},this.options.compatibilityAPI!=="v1"&&(this.options.interpolation={...n.interpolation,...this.options.interpolation}),r.keySeparator!==void 0&&(this.options.userDefinedKeySeparator=r.keySeparator),r.nsSeparator!==void 0&&(this.options.userDefinedNsSeparator=r.nsSeparator);function i(d){return d?typeof d=="function"?new d:d:null}if(!this.options.isClone){this.modules.logger?Ki.init(i(this.modules.logger),this.options):Ki.init(null,this.options);let d;this.modules.formatter?d=this.modules.formatter:typeof Intl<"u"&&(d=pIt);const c=new D6(this.options);this.store=new I6(this.options.resources,this.options);const m=this.services;m.logger=Ki,m.resourceStore=this.store,m.languageUtils=c,m.pluralResolver=new cIt(c,{prepend:this.options.pluralSeparator,compatibilityJSON:this.options.compatibilityJSON,simplifyPluralSuffix:this.options.simplifyPluralSuffix}),d&&(!this.options.interpolation.format||this.options.interpolation.format===n.interpolation.format)&&(m.formatter=i(d),m.formatter.init(m,this.options),this.options.interpolation.format=m.formatter.format.bind(m.formatter)),m.interpolator=new mIt(this.options),m.utils={hasLoadedNamespace:this.hasLoadedNamespace.bind(this)},m.backendConnector=new gIt(i(this.modules.backend),m.resourceStore,m,this.options),m.backendConnector.on("*",function(h){for(var p=arguments.length,f=new Array(p>1?p-1:0),v=1;v<p;v++)f[v-1]=arguments[v];t.emit(h,...f)}),this.modules.languageDetector&&(m.languageDetector=i(this.modules.languageDetector),m.languageDetector.init&&m.languageDetector.init(m,this.options.detection,this.options)),this.modules.i18nFormat&&(m.i18nFormat=i(this.modules.i18nFormat),m.i18nFormat.init&&m.i18nFormat.init(this)),this.translator=new mb(this.services,this.options),this.translator.on("*",function(h){for(var p=arguments.length,f=new Array(p>1?p-1:0),v=1;v<p;v++)f[v-1]=arguments[v];t.emit(h,...f)}),this.modules.external.forEach(h=>{h.init&&h.init(this)})}if(this.format=this.options.interpolation.format,a||(a=Hv),this.options.fallbackLng&&!this.services.languageDetector&&!this.options.lng){const d=this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);d.length>0&&d[0]!=="dev"&&(this.options.lng=d[0])}!this.services.languageDetector&&!this.options.lng&&this.logger.warn("init: no languageDetector is used and no lng is defined"),["getResource","hasResourceBundle","getResourceBundle","getDataByLanguage"].forEach(d=>{this[d]=function(){return t.store[d](...arguments)}}),["addResource","addResources","addResourceBundle","removeResourceBundle"].forEach(d=>{this[d]=function(){return t.store[d](...arguments),t}});const l=rh(),u=()=>{const d=(c,m)=>{this.isInitialized&&!this.initializedStoreOnce&&this.logger.warn("init: i18next is already initialized. You should call init just once!"),this.isInitialized=!0,this.options.isClone||this.logger.log("initialized",this.options),this.emit("initialized",this.options),l.resolve(m),a(c,m)};if(this.languages&&this.options.compatibilityAPI!=="v1"&&!this.isInitialized)return d(null,this.t.bind(this));this.changeLanguage(this.options.lng,d)};return this.options.resources||!this.options.initImmediate?u():setTimeout(u,0),l}loadResources(t){let a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Hv;const n=typeof t=="string"?t:this.language;if(typeof t=="function"&&(a=t),!this.options.resources||this.options.partialBundledLanguages){if(n&&n.toLowerCase()==="cimode"&&(!this.options.preload||this.options.preload.length===0))return a();const i=[],o=s=>{if(!s||s==="cimode")return;this.services.languageUtils.toResolveHierarchy(s).forEach(u=>{u!=="cimode"&&i.indexOf(u)<0&&i.push(u)})};n?o(n):this.services.languageUtils.getFallbackCodes(this.options.fallbackLng).forEach(l=>o(l)),this.options.preload&&this.options.preload.forEach(s=>o(s)),this.services.backendConnector.load(i,this.options.ns,s=>{!s&&!this.resolvedLanguage&&this.language&&this.setResolvedLanguage(this.language),a(s)})}else a(null)}reloadResources(t,r,a){const n=rh();return t||(t=this.languages),r||(r=this.options.ns),a||(a=Hv),this.services.backendConnector.reload(t,r,i=>{n.resolve(),a(i)}),n}use(t){if(!t)throw new Error("You are passing an undefined module! Please check the object you are passing to i18next.use()");if(!t.type)throw new Error("You are passing a wrong module! Please check the object you are passing to i18next.use()");return t.type==="backend"&&(this.modules.backend=t),(t.type==="logger"||t.log&&t.warn&&t.error)&&(this.modules.logger=t),t.type==="languageDetector"&&(this.modules.languageDetector=t),t.type==="i18nFormat"&&(this.modules.i18nFormat=t),t.type==="postProcessor"&&yte.addPostProcessor(t),t.type==="formatter"&&(this.modules.formatter=t),t.type==="3rdParty"&&this.modules.external.push(t),this}setResolvedLanguage(t){if(!(!t||!this.languages)&&!(["cimode","dev"].indexOf(t)>-1))for(let r=0;r<this.languages.length;r++){const a=this.languages[r];if(!(["cimode","dev"].indexOf(a)>-1)&&this.store.hasLanguageSomeTranslations(a)){this.resolvedLanguage=a;break}}}changeLanguage(t,r){var a=this;this.isLanguageChangingTo=t;const n=rh();this.emit("languageChanging",t);const i=l=>{this.language=l,this.languages=this.services.languageUtils.toResolveHierarchy(l),this.resolvedLanguage=void 0,this.setResolvedLanguage(l)},o=(l,u)=>{u?(i(u),this.translator.changeLanguage(u),this.isLanguageChangingTo=void 0,this.emit("languageChanged",u),this.logger.log("languageChanged",u)):this.isLanguageChangingTo=void 0,n.resolve(function(){return a.t(...arguments)}),r&&r(l,function(){return a.t(...arguments)})},s=l=>{!t&&!l&&this.services.languageDetector&&(l=[]);const u=typeof l=="string"?l:this.services.languageUtils.getBestMatchFromCodes(l);u&&(this.language||i(u),this.translator.language||this.translator.changeLanguage(u),this.services.languageDetector&&this.services.languageDetector.cacheUserLanguage&&this.services.languageDetector.cacheUserLanguage(u)),this.loadResources(u,d=>{o(d,u)})};return!t&&this.services.languageDetector&&!this.services.languageDetector.async?s(this.services.languageDetector.detect()):!t&&this.services.languageDetector&&this.services.languageDetector.async?this.services.languageDetector.detect.length===0?this.services.languageDetector.detect().then(s):this.services.languageDetector.detect(s):s(t),n}getFixedT(t,r,a){var n=this;const i=function(o,s){let l;if(typeof s!="object"){for(var u=arguments.length,d=new Array(u>2?u-2:0),c=2;c<u;c++)d[c-2]=arguments[c];l=n.options.overloadTranslationOptionHandler([o,s].concat(d))}else l={...s};l.lng=l.lng||i.lng,l.lngs=l.lngs||i.lngs,l.ns=l.ns||i.ns,l.keyPrefix=l.keyPrefix||a||i.keyPrefix;const m=n.options.keySeparator||".";let h;return l.keyPrefix&&Array.isArray(o)?h=o.map(p=>`${l.keyPrefix}${m}${p}`):h=l.keyPrefix?`${l.keyPrefix}${m}${o}`:o,n.t(h,l)};return typeof t=="string"?i.lng=t:i.lngs=t,i.ns=r,i.keyPrefix=a,i}t(){return this.translator&&this.translator.translate(...arguments)}exists(){return this.translator&&this.translator.exists(...arguments)}setDefaultNamespace(t){this.options.defaultNS=t}hasLoadedNamespace(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(!this.isInitialized)return this.logger.warn("hasLoadedNamespace: i18next was not initialized",this.languages),!1;if(!this.languages||!this.languages.length)return this.logger.warn("hasLoadedNamespace: i18n.languages were undefined or empty",this.languages),!1;const a=r.lng||this.resolvedLanguage||this.languages[0],n=this.options?this.options.fallbackLng:!1,i=this.languages[this.languages.length-1];if(a.toLowerCase()==="cimode")return!0;const o=(s,l)=>{const u=this.services.backendConnector.state[`${s}|${l}`];return u===-1||u===2};if(r.precheck){const s=r.precheck(this,o);if(s!==void 0)return s}return!!(this.hasResourceBundle(a,t)||!this.services.backendConnector.backend||this.options.resources&&!this.options.partialBundledLanguages||o(a,t)&&(!n||o(i,t)))}loadNamespaces(t,r){const a=rh();return this.options.ns?(typeof t=="string"&&(t=[t]),t.forEach(n=>{this.options.ns.indexOf(n)<0&&this.options.ns.push(n)}),this.loadResources(n=>{a.resolve(),r&&r(n)}),a):(r&&r(),Promise.resolve())}loadLanguages(t,r){const a=rh();typeof t=="string"&&(t=[t]);const n=this.options.preload||[],i=t.filter(o=>n.indexOf(o)<0);return i.length?(this.options.preload=n.concat(i),this.loadResources(o=>{a.resolve(),r&&r(o)}),a):(r&&r(),Promise.resolve())}dir(t){if(t||(t=this.resolvedLanguage||(this.languages&&this.languages.length>0?this.languages[0]:this.language)),!t)return"rtl";const r=["ar","shu","sqr","ssh","xaa","yhd","yud","aao","abh","abv","acm","acq","acw","acx","acy","adf","ads","aeb","aec","afb","ajp","apc","apd","arb","arq","ars","ary","arz","auz","avl","ayh","ayl","ayn","ayp","bbz","pga","he","iw","ps","pbt","pbu","pst","prp","prd","ug","ur","ydd","yds","yih","ji","yi","hbo","men","xmn","fa","jpr","peo","pes","prs","dv","sam","ckb"],a=this.services&&this.services.languageUtils||new D6(L6());return r.indexOf(a.getLanguagePartFromCode(t))>-1||t.toLowerCase().indexOf("-arab")>1?"rtl":"ltr"}static createInstance(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0;return new Fp(t,r)}cloneInstance(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Hv;const a=t.forkResourceStore;a&&delete t.forkResourceStore;const n={...this.options,...t,isClone:!0},i=new Fp(n);return(t.debug!==void 0||t.prefix!==void 0)&&(i.logger=i.logger.clone(t)),["store","services","language"].forEach(s=>{i[s]=this[s]}),i.services={...this.services},i.services.utils={hasLoadedNamespace:i.hasLoadedNamespace.bind(i)},a&&(i.store=new I6(this.store.data,n),i.services.resourceStore=i.store),i.translator=new mb(i.services,n),i.translator.on("*",function(s){for(var l=arguments.length,u=new Array(l>1?l-1:0),d=1;d<l;d++)u[d-1]=arguments[d];i.emit(s,...u)}),i.init(n,r),i.translator.options=n,i.translator.backendConnector.services.utils={hasLoadedNamespace:i.hasLoadedNamespace.bind(i)},i}toJSON(){return{options:this.options,store:this.store,language:this.language,languages:this.languages,resolvedLanguage:this.resolvedLanguage}}}const Yr=Fp.createInstance();Yr.createInstance=Fp.createInstance;Yr.createInstance;Yr.dir;Yr.init;Yr.loadResources;Yr.reloadResources;Yr.use;Yr.changeLanguage;Yr.getFixedT;Yr.t;Yr.exists;Yr.setDefaultNamespace;Yr.hasLoadedNamespace;Yr.loadNamespaces;Yr.loadLanguages;function yIt(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function P6(e,t){for(var r=0;r<t.length;r++){var a=t[r];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(e,iK(a.key),a)}}function _It(e,t,r){return t&&P6(e.prototype,t),r&&P6(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}var _te=[],bIt=_te.forEach,wIt=_te.slice;function kIt(e){return bIt.call(wIt.call(arguments,1),function(t){if(t)for(var r in t)e[r]===void 0&&(e[r]=t[r])}),e}var z6=/^[\u0009\u0020-\u007e\u0080-\u00ff]+$/,SIt=function(t,r,a){var n=a||{};n.path=n.path||"/";var i=encodeURIComponent(r),o="".concat(t,"=").concat(i);if(n.maxAge>0){var s=n.maxAge-0;if(Number.isNaN(s))throw new Error("maxAge should be a Number");o+="; Max-Age=".concat(Math.floor(s))}if(n.domain){if(!z6.test(n.domain))throw new TypeError("option domain is invalid");o+="; Domain=".concat(n.domain)}if(n.path){if(!z6.test(n.path))throw new TypeError("option path is invalid");o+="; Path=".concat(n.path)}if(n.expires){if(typeof n.expires.toUTCString!="function")throw new TypeError("option expires is invalid");o+="; Expires=".concat(n.expires.toUTCString())}if(n.httpOnly&&(o+="; HttpOnly"),n.secure&&(o+="; Secure"),n.sameSite){var l=typeof n.sameSite=="string"?n.sameSite.toLowerCase():n.sameSite;switch(l){case!0:o+="; SameSite=Strict";break;case"lax":o+="; SameSite=Lax";break;case"strict":o+="; SameSite=Strict";break;case"none":o+="; SameSite=None";break;default:throw new TypeError("option sameSite is invalid")}}return o},$6={create:function(t,r,a,n){var i=arguments.length>4&&arguments[4]!==void 0?arguments[4]:{path:"/",sameSite:"strict"};a&&(i.expires=new Date,i.expires.setTime(i.expires.getTime()+a*60*1e3)),n&&(i.domain=n),document.cookie=SIt(t,encodeURIComponent(r),i)},read:function(t){for(var r="".concat(t,"="),a=document.cookie.split(";"),n=0;n<a.length;n++){for(var i=a[n];i.charAt(0)===" ";)i=i.substring(1,i.length);if(i.indexOf(r)===0)return i.substring(r.length,i.length)}return null},remove:function(t){this.create(t,"",-1)}},AIt={name:"cookie",lookup:function(t){var r;if(t.lookupCookie&&typeof document<"u"){var a=$6.read(t.lookupCookie);a&&(r=a)}return r},cacheUserLanguage:function(t,r){r.lookupCookie&&typeof document<"u"&&$6.create(r.lookupCookie,t,r.cookieMinutes,r.cookieDomain,r.cookieOptions)}},TIt={name:"querystring",lookup:function(t){var r;if(typeof window<"u"){var a=window.location.search;!window.location.search&&window.location.hash&&window.location.hash.indexOf("?")>-1&&(a=window.location.hash.substring(window.location.hash.indexOf("?")));for(var n=a.substring(1),i=n.split("&"),o=0;o<i.length;o++){var s=i[o].indexOf("=");if(s>0){var l=i[o].substring(0,s);l===t.lookupQuerystring&&(r=i[o].substring(s+1))}}}return r}},ah=null,N6=function(){if(ah!==null)return ah;try{ah=window!=="undefined"&&window.localStorage!==null;var t="i18next.translate.boo";window.localStorage.setItem(t,"foo"),window.localStorage.removeItem(t)}catch{ah=!1}return ah},CIt={name:"localStorage",lookup:function(t){var r;if(t.lookupLocalStorage&&N6()){var a=window.localStorage.getItem(t.lookupLocalStorage);a&&(r=a)}return r},cacheUserLanguage:function(t,r){r.lookupLocalStorage&&N6()&&window.localStorage.setItem(r.lookupLocalStorage,t)}},nh=null,F6=function(){if(nh!==null)return nh;try{nh=window!=="undefined"&&window.sessionStorage!==null;var t="i18next.translate.boo";window.sessionStorage.setItem(t,"foo"),window.sessionStorage.removeItem(t)}catch{nh=!1}return nh},EIt={name:"sessionStorage",lookup:function(t){var r;if(t.lookupSessionStorage&&F6()){var a=window.sessionStorage.getItem(t.lookupSessionStorage);a&&(r=a)}return r},cacheUserLanguage:function(t,r){r.lookupSessionStorage&&F6()&&window.sessionStorage.setItem(r.lookupSessionStorage,t)}},IIt={name:"navigator",lookup:function(t){var r=[];if(typeof navigator<"u"){if(navigator.languages)for(var a=0;a<navigator.languages.length;a++)r.push(navigator.languages[a]);navigator.userLanguage&&r.push(navigator.userLanguage),navigator.language&&r.push(navigator.language)}return r.length>0?r:void 0}},xIt={name:"htmlTag",lookup:function(t){var r,a=t.htmlTag||(typeof document<"u"?document.documentElement:null);return a&&typeof a.getAttribute=="function"&&(r=a.getAttribute("lang")),r}},DIt={name:"path",lookup:function(t){var r;if(typeof window<"u"){var a=window.location.pathname.match(/\/([a-zA-Z-]*)/g);if(a instanceof Array)if(typeof t.lookupFromPathIndex=="number"){if(typeof a[t.lookupFromPathIndex]!="string")return;r=a[t.lookupFromPathIndex].replace("/","")}else r=a[0].replace("/","")}return r}},MIt={name:"subdomain",lookup:function(t){var r=typeof t.lookupFromSubdomainIndex=="number"?t.lookupFromSubdomainIndex+1:1,a=typeof window<"u"&&window.location&&window.location.hostname&&window.location.hostname.match(/^(\w{2,5})\.(([a-z0-9-]{1,63}\.[a-z]{2,6})|localhost)/i);if(a)return a[r]}};function OIt(){return{order:["querystring","cookie","localStorage","sessionStorage","navigator","htmlTag"],lookupQuerystring:"lng",lookupCookie:"i18next",lookupLocalStorage:"i18nextLng",lookupSessionStorage:"i18nextLng",caches:["localStorage"],excludeCacheFor:["cimode"],convertDetectedLanguage:function(t){return t}}}var bte=function(){function e(t){var r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};yIt(this,e),this.type="languageDetector",this.detectors={},this.init(t,r)}return _It(e,[{key:"init",value:function(r){var a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};this.services=r||{languageUtils:{}},this.options=kIt(a,this.options||{},OIt()),typeof this.options.convertDetectedLanguage=="string"&&this.options.convertDetectedLanguage.indexOf("15897")>-1&&(this.options.convertDetectedLanguage=function(i){return i.replace("-","_")}),this.options.lookupFromUrlIndex&&(this.options.lookupFromPathIndex=this.options.lookupFromUrlIndex),this.i18nOptions=n,this.addDetector(AIt),this.addDetector(TIt),this.addDetector(CIt),this.addDetector(EIt),this.addDetector(IIt),this.addDetector(xIt),this.addDetector(DIt),this.addDetector(MIt)}},{key:"addDetector",value:function(r){this.detectors[r.name]=r}},{key:"detect",value:function(r){var a=this;r||(r=this.options.order);var n=[];return r.forEach(function(i){if(a.detectors[i]){var o=a.detectors[i].lookup(a.options);o&&typeof o=="string"&&(o=[o]),o&&(n=n.concat(o))}}),n=n.map(function(i){return a.options.convertDetectedLanguage(i)}),this.services.languageUtils.getBestMatchFromCodes?n:n.length>0?n[0]:null}},{key:"cacheUserLanguage",value:function(r,a){var n=this;a||(a=this.options.caches),a&&(this.options.excludeCacheFor&&this.options.excludeCacheFor.indexOf(r)>-1||a.forEach(function(i){n.detectors[i]&&n.detectors[i].cacheUserLanguage(r,n.options)}))}}]),e}();bte.type="languageDetector";const LIt={action:"Acció",actions:"Accions",apply:"Aplica",attribute:"Atribut",bind:"Enllaçar",check_all:"Comprovar-ho tot",clear:"Neteja",close:"Tancar",cluster:"Clúster",clusters:"Clústers",confirmation:"Missatge de confirmació",delete:"Esborrar",destination:"Destinació",devices:"Dispositius",dialog_confirmation_prompt:"Estàs segur?",disable:"Deshabilitar",enter_search_criteria:"Introdueix el criteri de cerca",groups:"Grups",loading:"S'està carregant...",none:"Cap",read:"Llegeix",save:"Desa",select_device:"Selecciona dispositiu",select_endpoint:"Selecciona endpoint",source_endpoint:"Endpoint d'origen",the_only_endpoint:"La única destinació",unbind:"Desenllaça",write:"Escriu",destination_endpoint:"Endpoint de destí"},RIt={about:"Quant a",bind:"Uneix",clusters:"Clústers",dev_console:"Consola de Desenvolupament",reporting:"Reportant",settings:"Configuració",settings_specific:"Configuració (específica)",state:"Estat",scene:"Escena",unknown_device:"Dispositiu desconegut"},PIt={empty_exposes_definition:"Buit exposa la definició"},zIt={create_new_extension:"Crea una nova extensió",extension_name_propmt:"Introduïu un nom d'extensió",select_extension_to_edit:"Selecciona l'extensió per editar"},$It={"Auto off after specific time.":"Autoapagat després d'un temps específic.","Away mode":"Mode absent","Away preset days":"Dies preestablerts fora de casa","Away preset temperature":"Temperatura preestablerta fora de casa","Boost time":"Augmenta el temps","Brightness of this light":"Brillantor d'aquesta llum","Calibration time":"Temps que s'ha calibrat","Color of this light expressed as hue/saturation":"Color d'aquesta llum expressat com a to/saturació","Color of this light in the CIE 1931 color space (x/y)":"Color de les llums en el espai de color CIE 1931 (x/y)","Color temperature after cold power on of this light":"Temperatura de color després de la engegada inicial","Color temperature of this light":"Temperatura de color d'aquesta llum","Comfort temperature":"Temperatura de confort","Controls the behavior when the device is powered on":"Controla el comportament quan el dispositiu s'engega","Controls the behaviour when the device is powered on":"Controla el comportament quan el dispositiu s'engega","Current temperature measured on the device":"Temperatura actual al dispositiu","Decoupled mode for center button":"Mode de desacoblament per al botó central","Decoupled mode for left button":"Mode de desacoblament per al botó esquerre","Decoupled mode for right button":"Mode de desacoblament per al botó dret","Eco temperature":"Temperatura ECO","Enable/disable auto lock":"Activa/desactiva auto lock","Enable/disable away mode":"Activa/desactiva mode absent","Enables/disables physical input on the device":"Activa/desactiva entrada física al dispositiu","Enables/disables window detection on the device":"Activa/desactiva detecció de finestres al dispositiu","Enabling prevents both relais being on at the same time":"Activant-ho s'evita que els dos relés estiguen actius al mateix temps","Force the valve position":"Forçar posició de la vàlvula","Indicates if CO (carbon monoxide) is detected":"Indica si s'ha detectat CO (Monòxid de carboni)","Indicates if the battery of this device is almost empty":"Indica si la bateria d'aquest dispositiu està quasi buida","Indicates if the contact is closed (= true) or open (= false)":"Indica si el contacte està tancat (= veritable) o obert (= fals)","Indicates whether the device detected a water leak":"Indica si el dispositiu ha detectat una fuita d'aigua","Indicates whether the device detected occupancy":"Indica si el dispositiu ha detectat ocupació","Indicates whether the device detected smoke":"Indica si el dispositiu ha detectat fum","Indicates whether the device is tampered":"Indica si el dispositiu està manipulat","Instantaneous measured electrical current":"Intensitat elèctrica instantània","Instantaneous measured power":"Potència mesurada instantània","Link quality (signal strength)":"Qualitat de l'enllaç (força del senyal)","Maximum temperature":"Temperatura màxima","Measured electrical potential value":"Valor de potencial elèctric mesurat","Measured illuminance in lux":"Lluminositat mesurada en lux","Measured relative humidity":"Humitat relativa mesura","Measured temperature value":"Temperatura de la vàlvula mesurada","Minimum temperature":"Temperatura mínima","Mode of this device (similar to system_mode)":"Mode del dispositiu (similar a system_mode)","Mode of this device":"Mode del dispositiu","Motor speed":"Velocitat del motor","Offset to be used in the local_temperature":"Compensació de temperatura_local","On/off state of the switch":"Estat encès/apagat de l'interruptor","On/off state of this light":"Estat encès/apagat d'aquesta llum","Position of this cover":"Posició d'aquesta persiana",Position:"Posició","Raw measured illuminance":"Lluminositat mesurada sense processar","Recover state after power outage":"Recupera l'estat després d'un tall d'energia","Remaining battery in %":"Bateria restant a %","Side of the cube":"Costat de la galleda","Sum of consumed energy":"Suma de l'energia consumida","Temperature setpoint":"Temperatura seleccionada","The measured atmospheric pressure":"La pressió atmosfèrica mesurada","Triggered action (e.g. a button click)":"Acció activada (p. ex., un clic a un botó)","Triggers an effect on the light (e.g. make light blink for a few seconds)":"Activa un efecte sobre la llum (p. ex., fa que la llum parpellegi durant uns segons)","Voltage of the battery in millivolts":"Voltatge de la bateria a milivolts","Week format user for schedule":"Format de setmana usat per a la programació","Countdown in minutes":"Compte enrere en minuts","ECO mode (energy saving mode)":"Mode ECO (mode d'estalvi d'energía)","Indicates whether the device detected presence":"Indica si el dispositiu ha detectat presència","Indicates whether the device detected vibration":"Indica si el dispositiu ha detectat vibració","Speed of movement":"Velocitat de moviment","Window status closed or open ":"Estat de la finestra tancada o oberta ","Alarm temperature max":"Alarma de temperatura màx","Alarm temperature min":"Alarma de temperatura mínima","Alarm humidity status":"Estat d'alarma d'humitat","Alarm temperature status":"Estat d'alarma de temperatura","Measured soil moisture value":"Valor d'humitat del sòl mesurat","The current running state":"L'estat actual d'execució","Button mode":"Mode botó","Rotation angle":"Angle de rotació","Rotation angle speed":"Velocitat de l'angle de gir","Rotation percent":"Percentatge de rotació","Rotation percent speed":"Velocitat percentual de rotació","Rotation time":"Temps de rotació","Enable/disable the power outage memory, this recovers the on/off mode after power failure":"Habilita/desactiva la memòria de tall d'alimentació, això recupera el mode d'encesa/apagat després d'una fallada d'energia","Enable/disable the LED at night":"Activa/desactiva el LED a la nit","Disables the physical switch button":"Desactiva el botó de commutació físic","Time interval in seconds to report after light changes":"Interval de temps en segons ","Decoupled mode":"Mode desacoblat","Indicates whether a plug is physically attached. Device does not have to pull power or even be connected electrically (state of this binary switch can be ON even if main power switch is OFF)":"Indica si un endoll està connectat físicament. El dispositiu no ha d'alimentarse, ni tan sols estar connectat elèctricament (l'estat d'aquest interruptor binari pot estar encès encara que l'interruptor principal estigui APAGAT)","Measured VOC value":"Valor VOC mesurat","Decoupled mode for button":"Mode desacoblat per a botó",'Operation mode, select "command" to enable bindings (wake up the device before changing modes!)':'Mode de funcionament, seleccioneu "ordre" per activar els enllaços (desperta el dispositiu abans de canviar de mode!)',"Enable standby":"Activa mode d'espera","Display theme":"Mostra el tema","Beep volume":"Volum del bip","LCD brightness (will not persist if auto-brightness is enabled)":"Lluminositat LCD (no es mantindra si la brillantor automàtica està activada)","Interface language":"Llengua de l'interfície","Screen saver style":"Estil salvapantalles","Display font size":"Mostra la mida de la lletra","Enable LCD auto brightness":"Activar autobrillo al LCD","Default display homepage":"Missatge per defecte al homepage","Enable screen saver":"Activar salvapantalles","Standby LCD brightness":"Brillantor del LCD en espera","Control which switches are available in the switches screen (none disables switches screen)":"Controla quins interruptors estan disponibles a la pantalla d'interruptors (cap desactiva la pantalla d'interruptors)",Icon:"Icona","Test mode activated":"Mode test activat","Device temperature (polled every 30 min)":"Temperatura del dispositiu (consultat cada 30 min)","Alarm zone. Default value 0":"Zona d'alarma. Valor per defecte 0","Tilt of this cover":"Inclinació d'aquesta coberta","The dimmer is capable of measuring the reactanceto distinguish inductive and capacitive loads.":"El regulador és capaç de mesurar la reactància per distingir les càrregues inductives i capacitives.","sensitivity of the radar":"Sensibilitat del radar","O-Sensitivity mode":"Mode sensibilitat O","V-Sensitivity mode":"Mode sensibilitat V","Luminance level":"Nivell de lluminància","Reference luminance":"Luminància de referència",'MANUAL MODE ☝ - In this mode, the device executes manual temperature setting. When the set temperature is lower than the "minimum temperature", the valve is closed (forced closed). AUTO MODE ⏱ - In this mode, the device executes a preset week programming temperature time and temperature. ON - In this mode, the thermostat stays open OFF - In this mode, the thermostat stays closed':'MODE MANUAL ☝ - En aquest mode, el dispositiu executa la configuració manual de la temperatura. Quan la temperatura establerta és inferior a la "temperatura mínima", la vàlvula es tanca (tancament forçat). MODE AUTOMÀTIC ⏱ - En aquest mode, el dispositiu executa una programació setmanal predeterminada de temperatura i hora. ON - En aquest mode, el termòstat roman obert OFF - En aquest mode, el termòstat roman tancat',"Auto MODE ⏱ - In this mode, the device executes a preset week programming temperature time and temperature. ":"MODE Auto ⏱ - En aquest mode, el dispositiu executa una programació setmanal predeterminada de temperatura i hora. ","Is the device online":"El dispositiu està en línia","Error status":"Estat d'error","Indicates if the device is moving":"Indica si el dispositiu s'està movent","Liters of water consumed":"Litres d'aigua consumida","0=Quarantine, 1=Windows are closed, 2=Hold - Windows are maybe about to open, 3=Open window detected, 4=In window open state from external but detected closed locally":"0=Quarentena, 1=Les finestres estan tancades, 2=Mantenir premuda - Potser les finestres estan a punt d'obrir-se, 3=S'ha detectat una finestra oberta, 4=En estat de finestra oberta des de l'exterior però s'ha detectat tancada localment","Power on behavior state":"Estat en encendre","Maximum temperature limit":"Límit màxim de temperatura","Select temperature sensor to use":"Seleccioneu el sensor de temperatura que voleu utilitzar","Mode of the fan":"Mode del ventilador","Motor options":"Opcions del motor","Motor direction":"Direcció del motor","Motor is moving":"Moviment del motor","Controls behaviour of led/siren on alarm":`Controla el comportament del LED/sirena en alarma
1391
1391
  `,"Open window detection temperature":"Temperatura de detecció de la finestra oberta","Open window time in minute":"Temps de la finestra oberta en minuts","Temperature 1":`Temperatura 1
1392
1392
  `,"Temperature 2":`Temperatura 2
1393
- `,"Temperature 4":"Temperatura 4","Temperature 5":"Temperatura 5","Temperature 6":"Temperatura 6","Temperature 7":"Temperatura 7","Temperature 8":"Temperatura 8","Temperature 9":"Temperatura 9","Specifies the minimum brightness value":"Especifica el valor mínim de brillantor","Specifies the maximum brightness value":"Especifica el valor màxim de brillantor","Allow the device to change brightness":"Permet que el dispositiu canviï la brillantor","Illuminance calibration":"Calibració de la lluminositat","PIR sensor sensitivity":"Sensibilitat del sensor PIR","Device in regulator or thermostat mode.":"Dispositiu en mode regulador o termòstat.","Current state":"Estat actual","Adjust pressure":"Ajustar pressió","Indicates whether the device is being tested":"Indica si el dispositiu està sent testejat","State or sensor value":"Estat o valor del sensor","Not clear how this affects operation. However, it would appear that the device does not execute any motor functions if this is set to false. This may be a means to conserve battery during periods that the heating system is not energized (e.g. during summer). `false` No Heat Available or `true` Heat Available":"No està clar com afecta això al funcionament. Tanmateix, sembla que el dispositiu no executa cap funció del motor si es defineix com a fals. Això pot ser un mitjà per estalviar la bateria durant els períodes en què el sistema de calefacció no està alimentat (per exemple, durant l'estiu). `Fals` No hi ha calor disponible o `Veritat` calor disponible","Current date and time":"Data i hora actuals","Total active power injected":"Potència activa total injectada","Apparent power threshold":"Llindar de potència aparent","Instantaneous apparent power injected":"Potència aparent instantània injectada"},NIt={action:"Acció",angle_y:"Angle I",brightness:"Brillantor",co2:"CO2",color_temp:"Temperatura de color",color_xy:"Color xy",contact:"Contacte",humidity:"Humitat",illuminance:"Lluminositat",occupancy:"Ocupació",pressure:"Pressió",soil_moisture:"Humitat del sòl",state:"Estat",temperature:"Temperatura",tamper:"Manipulació",action_angle:"Angle d'acció",alarm:"Alarma",away_mode:"Mode absent",calibration_time:"Temps calibrat",carbon_monoxide:"Monòxid de carboni",child_lock:"Bloqueig per a nens",color_hs:"Tonalitat/saturació del color",color_temp_startup:"Temperatura de color inicial",consumer_connected:"Usuari connectat",current:"Intensitat",current_heating_setpoint:"Punt d'ajustament de calor",device_temperature:"Temperatura del dispositiu",energy:"Energia",friday_schedule:"Horari de divendres",heating:"Escalfant",holidays_schedule:"Horari de vacances",level_config:"Configuració de nivell",local_temperature:"Temperatura local",local_temperature_calibration:"Calibratge de temperatura local",monday_schedule:"Horari de dilluns",motion_direction:"Direcció del moviment",motion_speed:"Velocitat del moviment",motor_speed:"Velocitat del motor",moving:"Moviment",on_off_transition_time:"Temps de transició On Off",options:"Opcions",position:"Posició",power:"Consum",presence:"Presència",preset:"Preestablert",programming_mode:"Mode Programació",saturday_schedule:"Horari de dissabte",smoke:"Fumo",smoke_density:"Densitat del fum",sunday_schedule:"Horari de diumenge",system_mode:"Mode de sistema",thursday_schedule:"Horari de dimarts",tuesday_schedule:"Horari de dimecres",vibration:"Vibració",voltage:"Voltatge",water_leak:"Fuita d'aigua",week:"Setmana",window:"Finestra",workdays_schedule:"Horari d'entre setmana",operation_mode:"Mode d'operació",effect:"Efecte",linkquality:"Qualitat de l'enllaç",running_state:"Estat d'execució",battery:"Bateria",pin_code:"Codi PIN",user:"Usuari",user_type:"Tipus d'usuari",power_outage_memory:"Memòria per a talls d'energia",led_disabled_night:"Led deshabilitat a la nit",illuminance_lux:"Lluminositat lux",available_switches:"Interruptors disponibles",switch_type:"Tipus d'interruptor",battery_low:"Bateria baixa",interlock:"Commutat",strength:"Força",sensitivity:"Sensibilitat",selftest:"Autodiagnòstic",auto_off:"Apagat automàtic",motion_sensitivity:"Sensibilitat al moviment",occupancy_timeout:"Temps d'espera de l'ocupació",countdown_timer:"Temporitzador de compte enrere",voltage_rms:"Voltatge rms",current_average:"Mitjana actual",energy_consumed:"Energia consumida",clear_device_data:"Esborra les dades del dispositiu",radar_sensitivity:"Sensibilitat del radar",radar_scene:"Escena de radar",o_sensitivity:"Sensibilitat O",v_sensitivity:"Sensibilitat V",led_status:"Estat del LED",power_on_behavior:"Comportament a l'encesa",max_temperature:"Màxima temperatura",min_temperature:"Temperatura mínima",comfort_temperature:"Temperatura de Comfort",eco_temperature:"Temperatura Ressò",away_preset_days:"Dies preestablerts absents",boost_time:"Temps d'impulsió",force:"Forçar",away_preset_temperature:"Temperatura preestablerta absent",calibration:"Calibració",motor_reversal:"Inversió del motor",backlight_mode:"Mode llum de fons",timer:"Temporitzador",timer_time_left:"Temps restant del temporitzador",water_consumed:"Aigua consumida",motor_direction:"Direcció del motor",monday:"dilluns",tuesday:"dimarts",wednesday:"dimecres",thursday:"dijous",friday:"divendres",saturday:"dissabte",sunday:"diumenge",pm25:"PM₂.₅",air_quality:"Qualitat de l'aire",replace_filter:"Substituïu el filtre",aqi:"AQI",pm10:"PM₁₀",battery_state:"Estat de la bateria",threshold:"Llindar",sensors_type:"Tipus de sensors",sensors_count:"Recompte de sensors",voltage_phase_b:"Voltatge fase B",current_phase_c:"Intensitat fase C",voltage_phase_c:"Voltatge fase C",noise:"soroll",noise_detected:"soroll detectat",door_state:"estat de la porta",status:"estat",temperature_sensitivity:"sensibilitat temperatura",valve_state:"estat de la vàlvula",IINST:"IINST",IINST2:"IINST2",IINST3:"IINST3",IMAX:"IMAX",IMAX2:"IMAX2",IMAX3:"IMAX3",PMAX:"PMAX",PAPP:"PAPP",PTEC:"PTEC",HHPHC:"HHPHC",PPOT:"PPOT",PEJP:"PEJP",ADPS:"ADPS",ADIR1:"ADIR1",ADIR2:"ADIR2",ADIR3:"ADIR3",LTARF:"LTARF",NTARF:"NTARF",VTIC:"VTIC",DATE:"DATA","SMAXIN-1":"SMAXIN-1",CCASN:"CCASN","CCASN-1":"CCASN-1",CCAIN:"CCAIN","CCAIN-1":"CCAIN-1",UMOY1:"UMOY1",UMOY2:"UMOY2",UMOY3:"UMOY3",SINSTS2:"SINSTS2",SINSTS3:"SINSTS3",SMAXN2:"SMAXN2",SMAXN3:"SMAXN3","SMAXN-1":"SMAXN-1","SMAXN2-1":"SMAXN2-1","SMAXN3-1":"SMAXN3-1",MSG1:"MSG1",MSG2:"MSG2",PRM:"PRM",DPM1:"DPM1",FPM1:"FPM1",DPM2:"DPM2",FPM2:"FPM2",DPM3:"DPM3",FPM3:"FPM3",NJOURF:"NJOURF","NJOURF+1":"NJOURF+1","PJOURF+1":"PJOURF+1",PPOINTE1:"PPOINTE1"},FIt={add_to_group:"Afegeix a un grup",create_group:"Crea grup",new_group_id:"Nou id de grup",new_group_id_placeholder:"Especifica l'id de grup si cal",new_group_name:"Nou nom de grup",new_group_name_placeholder:"exemple: llums_del_dormitori",remove_group:"Elimina grup",group_id:"ID del Grup",group_name:"Nom del Grup",group_members:"Membres del Grup",group_scenes:"Escenes del Grup"},jIt={empty_logs_message:"No hi ha res a mostrar",filter_by_text:"Filtra per text",show_only:"Mostra només"},HIt={help_coordinator_link_description:"Les línies contínues són l'enllaç al Coordinador",help_end_device_description:"Verd significa dispositiu final",help_is_coordinator:"és el coordinador",help_lqi_description:"La qualitat de l'enllaç està entre 0 - 255 (com més alt millor), valors amb / representen múltiples tipus d'enllaços",help_router_description:"Blau significa encaminador",help_router_links_description:"Les línies discontínues són l'enllaç amb els encaminadors",hide:"Fes clic per amagar",load:"Carrega mapa",loading:"Depenent de la mida de la vostra xarxa, pot trigar entre 10 segons i 2 minuts."},BIt={all:"Tots",dashboard:"Tauler",devices:"Dispositius",disable_join:"Deshabilita unir-se",groups:"Grups",logs:"Registres",map:"Mapa",permit_join:"Permetre unir-se",restart:"Reinicia",settings:"Configuració",toggle_dropdown:"Alterna desplegable"},WIt={check:"Comprova actualitzacions",check_all:"Comprovar-ho tot",empty_ota_message:"No tens cap dispositiu compatible amb OTA",remaining_time:"Temps restant {{- remaining}}",update:"Actualitza microprogramari del dispositiu"},UIt={about:"Quant a",advanced:"Avançat",availability:"Disponibilitat",blocklist:"Bloquejats",coordinator_revision:"Versió de Coordinador",coordinator_type:"Tipus de Coordinador",donate:"Donacions",donation_text:["Hola, %username%, d'aquesta forma pots agrair pel treball tan dur que fem","No dubtis també a dir alguna cosa bona ;)"],download_state:"Descarrega l'estat",external_converters:"Convertidors externs",frontend:"Interfície",frontend_version:"Versió d'Interfície",main:"Principal",ota:"Actualitzacions OTA",passlist:"Llista d'accés",raw:"En cru",restart_zigbee2mqtt:"Reinicia Zigbee2MQTT",settings:"Configuració",tools:"Eines",zigbee2mqtt_version:"Versió de Zigbee2MQTT",translate:"Tradueix",stats:"Estadístiques"},VIt={detected_devices_message:"S'han detectat {{count}} dispositius touchlink.",rescan:"Cerca de nou",scan:"Cerca"},GIt={clear:"Clar",closed:"Tancat",false:"Fals",not_supported:"No suportat",occupied:"Ocupat",open:"Obert",supported:"Suportat",true:"Vertader",empty_string:'Cadena buida ("")',leaking:"Fuita",tampered:"Manipulat",null:"Nul",Clear:"Clar",Closed:"Tancat",Occupied:"Ocupat",Open:"Obert"},qIt={actions:"Accions",attribute:"Atribut",battery:"Bateria",block_join:"Bloqueja per no tornar-se a unir",cluster:"Clúster",dc_source:"Font CC",description:"Descripció",device_type:"Tipus de dispositiu",endpoint:"Dispositiu final",firmware_build_date:"Data del firmware",firmware_version:"Versió de firmware",force_remove:"Força l'eliminació",friendly_name:"Nom amigable",ieee_address:"Direcció IEEE",input_clusters:"Clústers entrada",interview_completed:"Entrevista completa",interview_failed:"Entrevista fallida",interviewing:"Entrevistant",last_seen:"Ultima vegada vist",mains_single_phase:"Xarxa (monofàsica)",manufacturer:"Fabricant",max_rep_interval:"Interval Max de replicació",min_rep_change:"Canvi mínim de replicació",min_rep_interval:"Interval mínim de replicació",network_address:"Direcció de xarxa",none:"Cap",output_clusters:"Clústers de sortida",pic:"Foto",power:"Alimentació",power_level:"Nivell de bateria",reconfigure:"Reconfigura",remove_device:"Elimina dispositiu",rename_device:"Reanomena dispositiu",select_attribute:"Selecciona atribut",select_cluster:"Selecciona cluster",support_status:"Suportat",unsupported:"No suportat",updating_firmware:"S'està actualizant el programari",update_Home_assistant_entity_id:"Actualitzar l'ID d'entitat de Home Assistant",zigbee_manufacturer:"Fabricant Zigbee",zigbee_model:"Model Zigbee",device:"Dispositiu",channel:"Canal",available:"Disponible",execute:"Executa",command:"Ordre"},KIt={scene_id:"ID d'escena",recall:"Rellamar",store:"Desa",remove:"Elimina",remove_all:"Elimina-ho tot",add:"Afegeix",select_scene:"Selecciona Escena",scene_name:"Nom d'Escena"},ZIt={byType:"Per tipus de dispositiu",byPowerSource:"Per tipus d'alimentació",byVendor:"Per fabricant",byModel:"Per model",EndDevice:"Dispositius finals",Router:"Encaminador"},QIt={avaliability:"Disponibilitat",offline:"Fora de línia",online:"En línia",disabled:"Desactivat",enabled:"Activat"},YIt={"Allow new devices to join (re-applied at restart)":"Permet que s'uneixin dispositius nous (es torna a aplicar en reiniciar)","You can define external converters to e.g. add support for a DiY device":"Podeu definir convertidors externs p. e. afegir suport per a un dispositiu DiY.","Options for active devices (routers/mains powered)":"Opcions per a dispositius actius (encaminadors/dispositius alimentats)","Options for passive devices (mostly battery powered)":"Opcions per a dispositius passius (principalment dispositius a bateria)","Checks whether devices are online/offline":"Comprova si els dispositius estan en línia o fora de línia","Disable self-signed SSL certificate":"Desactiva el certificat SSL autosignat","Location of the adapter. To autodetect the port, set null":"Ubicació de l'adaptador. Per detectar automàticament el port, definiu-lo com a null","Disable LED of the adapter if supported":"Desactiveu el LED de l'adaptador si és compatible","Adapter type, not needed unless you are experiencing problems":"Tipus d'adaptador, no és necessari tret que tingueu problemes","Transmit power of adapter, only available for Z-Stack (CC253*/CC2652/CC1352) adapters, CC2652 = 5dbm, CC1352 max is = 20dbm (5dbm default)":"Potència de transmissió de l'adaptador, només disponible per als adaptadors Z-Stack (CC253*/CC2652/CC1352), CC2652 = 5 dbm, CC1352 màxim = 20 dbm (5 dbm per defecte)","Zigbee channel, changing requires repairing all devices! (Note: use a ZLL channel: 11, 15, 20, or 25 to avoid Problems)":"Canal Zigbee, si es canvia requereix tornar a aparellar tots els dispositius! (Nota: utilitzeu un canal ZLL: 11, 15, 20 o 25 per evitar problemes)","MQTT message payload will contain all attributes, not only changed ones. Has to be true when integrating via Home Assistant":"La càrrega útil del missatge MQTT contindrà tots els atributs, no només els modificats. Ha de ser cert quan s'integra mitjançant Home Assistant","Persist cached state, only used when cache_state: true":"Manté la memòria cau, només s'utilitza quan cache_state: true","Send cached state on startup, only used when cache_state: true":"Envia l'estat de memòria cau a l'inici, només s'utilitza quan cache_state: true","Log file name, can also contain timestamp":"Nom del fitxer de registre, també pot contenir marca de temps","Baud rate speed for serial port, this can be anything firmware support but default is 115200 for Z-Stack and EZSP, 38400 for Deconz, however note that some EZSP firmware need 57600":"Velocitat de transmissió per al port serial, això pot ser compatible amb qualsevol firmware, però per defecte és 115200 per a Z-Stack i EZSP, 38400 per a Deconz, però tingueu en compte que alguns firmware EZSP necessiten 57600","RTS / CTS Hardware Flow Control for serial port":"Control de flux de maquinari RTS / CTS per al port serial","Log timestamp format":"Format de marca de temps del registre","Adapter concurrency (e.g. 2 for CC2531 or 16 for CC26X2R1) (default: null, uses recommended value)":"Concurrència de l'adaptador (p. ex., 2 per a CC2531 o 16 per a CC26X2R1) (per defecte: nul, utilitza el valor recomanat)","Adapter delay":"Retard de l'adaptador","Use IKEA TRADFRI OTA test server, see OTA updates documentation":"Utilitzeu el servidor de proves OTA d'IKEA TRADFRI, consulteu la documentació de les actualitzacions OTA","Your device may request a check for a new firmware update. This value determines how frequently third party servers may actually be contacted to look for firmware updates. The value is set in minutes, and the default is 1 day.":"És possible que el vostre dispositiu sol·liciti una comprovació d'una nova actualització del microprogramari. Aquest valor determina la freqüència amb què realment es poden contactar amb servidors de tercers per buscar actualitzacions de microprogramari. El valor s'estableix en minuts i el valor predeterminat és 1 dia.","Zigbee devices may request a firmware update, and do so frequently, causing Zigbee2MQTT to reach out to third party servers. If you disable these device initiated checks, you can still initiate a firmware update check manually.":"Els dispositius Zigbee poden sol·licitar una actualització de microprogramari, i ho fan amb freqüència, fent que Zigbee2MQTT arribi a servidors de tercers. Si desactiveu aquestes comprovacions iniciades pel dispositiu, encara podeu iniciar una comprovació d'actualització del microprogramari manualment.","Frontend binding port":"Port de la interfície","URL on which the frontend can be reached, currently only used for the Home Assistant device configuration page":"URL on es pot accedir a la interfície, actualment només s'utilitza per a la pàgina de configuració del dispositiu de Home Assistant"},XIt={"Permit join":"Permet unir-se","External converters":"Convertidors externs",Availability:"Disponibilitat",Adapter:"Adaptador","Transmit power":"Potència de transmissió","ZigBee channel":"Canal ZigBee","Cache state":"Estat de la memòria cau","Persist cache state":"Estat de la memòria cau persistent","Send cached state on startup":"Envia l'estat de memòria cau a l'inici","Log level":"Nivell de registre",Baudrate:"Velocitat de transmissió","Timestamp format":"Format de marca de temps","Adapter concurrency":"Concurrència de l'adaptador","Adapter delay":"Retard de l'adaptador","IKEA TRADFRI OTA use test url":"Utilitza l'URL de prova OTA d'IKEA TRADFRI","Disable automatic update check":"Desactiva la comprovació automàtica d'actualitzacions",Frontend:"Interfície","Availability (simple)":"Disponibilitat (simple)","Availability (advanced)":"Disponibilitat (avançada)","Frontend (simple)":"Interfície (simple)","Frontend (advanced)":"Interfície (avançada)","Baudrate (deprecated)":"Velocitat de transmissió (obsolet)","RTS / CTS (deprecated)":"RTS / CTS (obsolet)","IKEA TRADFRI OTA use test url (deprecated)":"Utilitza l'URL de prova OTA d'IKEA TRADFRI (obsolet) "},JIt={common:LIt,devicePage:RIt,exposes:PIt,extensions:zIt,featureDescriptions:$It,featureNames:NIt,groups:FIt,logs:jIt,map:HIt,navbar:BIt,ota:WIt,settings:UIt,touchlink:VIt,values:GIt,zigbee:qIt,scene:KIt,stats:ZIt,avaliability:QIt,settingsSchemaDescriptions:YIt,settingsSchemaTitles:XIt},ext={action:"Action",actions:"Actions",apply:"Apply",attribute:"Attribute",bind:"Bind",check_all:"Check all",clear:"Clear",close:"Close",cluster:"Cluster",clusters:"Clusters",confirmation:"Confirmation prompt",delete:"Delete",destination:"Destination",devices:"Devices",dialog_confirmation_prompt:"Are you sure?",disable:"Disable",enter_search_criteria:"Enter search criteria",groups:"Groups",loading:"Loading...",none:"None",ok:"OK",read:"Read",save:"Save",select_device:"Select device",select_endpoint:"Select endpoint",source_endpoint:"Source endpoint",the_only_endpoint:"The only endpoint",unbind:"Unbind",write:"Write",destination_endpoint:"Destination endpoint"},txt={about:"About",bind:"Bind",clusters:"Clusters",dev_console:"Dev console",reporting:"Reporting",settings:"Settings",settings_specific:"Settings (specific)",state:"State",scene:"Scene",unknown_device:"Unknown device",exposes:"Exposes"},rxt={empty_exposes_definition:"Empty exposes definition"},axt={create_new_extension:"Create new extension",extension_name_propmt:"Enter new extension name",select_extension_to_edit:"Select extension to edit"},nxt={3:"3","Auto off after specific time.":"Auto off after specific time.","Away mode":"Away mode","Away preset days":"Away preset days","Away preset temperature":"Away preset temperature","Boost time":"Boost time","Brightness of this light":"Brightness of this light","Calibration time":"Calibration time","Color of this light expressed as hue/saturation":"Color of this light expressed as hue/saturation","Color of this light in the CIE 1931 color space (x/y)":"Color of this light in the CIE 1931 color space (x/y)","Color temperature after cold power on of this light":"Color temperature after cold power on of this light","Color temperature of this light":"Color temperature of this light","Comfort temperature":"Comfort temperature","Controls the behavior when the device is powered on":"Controls the behavior when the device is powered on","Controls the behaviour when the device is powered on":"Controls the behaviour when the device is powered on","Current temperature measured on the device":"Current temperature measured on the device","Decoupled mode for center button":"Decoupled mode for center button","Decoupled mode for left button":"Decoupled mode for left button","Decoupled mode for right button":"Decoupled mode for right button","Eco temperature":"Eco temperature","Enable/disable auto lock":"Enable/disable auto lock","Enable/disable away mode":"Enable/disable away mode","Enables/disables physical input on the device":"Enables/disables physical input on the device","Enables/disables window detection on the device":"Enables/disables window detection on the device","Enabling prevents both relais being on at the same time":"Enabling prevents both relais being on at the same time","Force the valve position":"Force the valve position","Indicates if CO (carbon monoxide) is detected":"Indicates if CO (carbon monoxide) is detected","Indicates if the battery of this device is almost empty":"Indicates if the battery of this device is almost empty","Indicates if the contact is closed (= true) or open (= false)":"Indicates if the contact is closed (= true) or open (= false)","Indicates whether the device detected a water leak":"Indicates whether the device detected a water leak","Indicates whether the device detected occupancy":"Indicates whether the device detected occupancy","Indicates whether the device detected smoke":"Indicates whether the device detected smoke","Indicates whether the device is tampered":"Indicates whether the device is tampered","Instantaneous measured electrical current":"Instantaneous measured electrical current","Instantaneous measured power":"Instantaneous measured power","Link quality (signal strength)":"Link quality (signal strength)","Maximum temperature":"Maximum temperature","Measured electrical potential value":"Measured electrical potential value","Measured illuminance in lux":"Measured illuminance in lux","Measured relative humidity":"Measured relative humidity","Measured temperature value":"Measured temperature value","Minimum temperature":"Minimum temperature","Mode of this device (similar to system_mode)":"Mode of this device (similar to system_mode)","Mode of this device":"Mode of this device","Motor speed":"Motor speed","Offset to be used in the local_temperature":"Offset to be used in the local_temperature","On/off state of the switch":"On/off state of the switch","On/off state of this light":"On/off state of this light","Position of this cover":"Position of this cover",Position:"Position","Raw measured illuminance":"Raw measured illuminance","Recover state after power outage":"Recover state after power outage","Remaining battery in %":"Remaining battery in %","Side of the cube":"Side of the cube","Sum of consumed energy":"Sum of consumed energy","Temperature setpoint":"Temperature setpoint","The measured atmospheric pressure":"The measured atmospheric pressure","Triggered action (e.g. a button click)":"Triggered action (e.g. a button click)","Triggers an effect on the light (e.g. make light blink for a few seconds)":"Triggers an effect on the light (e.g. make light blink for a few seconds)","Voltage of the battery in millivolts":"Voltage of the battery in millivolts","Week format user for schedule":"Week format user for schedule",'Boost Heating: press and hold "+" for 3 seconds, the device will enter the boost heating mode, and the ▷╵◁ will flash. The countdown will be displayed in the APP':'Boost Heating: press and hold "+" for 3 seconds, the device will enter the boost heating mode, and the ▷╵◁ will flash. The countdown will be displayed in the APP',"Boost Time Setting 100 sec - 900 sec, (default = 300 sec)":"Boost Time Setting 100 sec - 900 sec, (default = 300 sec)","Countdown in minutes":"Countdown in minutes","ECO mode (energy saving mode)":"ECO mode (energy saving mode)","Indicates whether the device detected presence":"Indicates whether the device detected presence","Indicates whether the device detected vibration":"Indicates whether the device detected vibration","Schedule MODE ⏱ - In this mode, the device executes a preset week programming temperature time and temperature.":"Schedule MODE ⏱ - In this mode, the device executes a preset week programming temperature time and temperature.","Speed of movement":"Speed of movement","Window status closed or open ":"Window status closed or open ","Alarm temperature max":"Alarm temperature max","Alarm temperature min":"Alarm temperature min","Alarm humidity status":"Alarm humidity status","Alarm temperature status":"Alarm temperature status","Measured soil moisture value":"Measured soil moisture value","The current running state":"The current running state","Position of the valve (= demanded heat) where 0% is fully closed and 100% is fully open":"Position of the valve (= demanded heat) where 0% is fully closed and 100% is fully open","State of the lock":"State of the lock","Actual state of the lock":"Actual state of the lock","User ID to set or clear the pincode for":"User ID to set or clear the pincode for","Whether the user is enabled/disabled":"Whether the user is enabled/disabled","Pincode to set, set pincode to null to clear":"Pincode to set, set pincode to null to clear","Click mode, fast: only supports single click which will be send immediately after clicking, multi: supports more events like double and hold":"Click mode, fast: only supports single click which will be send immediately after clicking, multi: supports more events like double and hold","Click mode, fast: only supports single click which will be send immediately after clicking.multi: supports more events like double and hold":"Click mode, fast: only supports single click which will be send immediately after clicking.multi: supports more events like double and hold","Button mode":"Button mode","Rotation angle":"Rotation angle","Rotation angle speed":"Rotation angle speed","Rotation percent":"Rotation percent","Rotation percent speed":"Rotation percent speed","Rotation time":"Rotation time","Enable/disable the power outage memory, this recovers the on/off mode after power failure":"Enable/disable the power outage memory, this recovers the on/off mode after power failure","Enable/disable the LED at night":"Enable/disable the LED at night","Disables the physical switch button":"Disables the physical switch button","Maximum allowed load, turns off if exceeded":"Maximum allowed load, turns off if exceeded","Control both relay and usb or only the relay with the physical switch button":"Control both relay and usb or only the relay with the physical switch button","Time interval in seconds to report after light changes":"Time interval in seconds to report after light changes","Decoupled mode":"Decoupled mode","Indicates whether a plug is physically attached. Device does not have to pull power or even be connected electrically (state of this binary switch can be ON even if main power switch is OFF)":"Indicates whether a plug is physically attached. Device does not have to pull power or even be connected electrically (state of this binary switch can be ON even if main power switch is OFF)","Measured VOC value":"Measured VOC value","Anti flicker mode can be used to solve blinking issues of some lights.Quick mode makes the device respond faster.":"Anti flicker mode can be used to solve blinking issues of some lights.Quick mode makes the device respond faster.","Decoupled mode for button":"Decoupled mode for button",'Operation mode, select "command" to enable bindings (wake up the device before changing modes!)':'Operation mode, select "command" to enable bindings (wake up the device before changing modes!)',"Enable standby":"Enable standby","Display theme":"Display theme","Beep volume":"Beep volume","LCD brightness (will not persist if auto-brightness is enabled)":"LCD brightness (will not persist if auto-brightness is enabled)","Interface language":"Interface language","Screen saver style":"Screen saver style","Display standby time":"Display standby time","Display font size":"Display font size","Enable LCD auto brightness":"Enable LCD auto brightness","Default display homepage":"Default display homepage","Enable screen saver":"Enable screen saver","Standby LCD brightness":"Standby LCD brightness","Control which switches are available in the switches screen (none disables switches screen)":"Control which switches are available in the switches screen (none disables switches screen)","Switch 1 text and icon":"Switch 1 text and icon",Icon:"Icon",Text:"Text","Switch 2 text and icon":"Switch 2 text and icon","Switch 3 text and icon":"Switch 3 text and icon","Wall switch type":"Wall switch type","Temperature of the device":"Temperature of the device","Indicates whether the device detected gas":"Indicates whether the device detected gas","Test mode activated":"Test mode activated","If the power is constantly lower than 2W within half an hour, the plug will be automatically turned off":"If the power is constantly lower than 2W within half an hour, the plug will be automatically turned off","Device temperature (polled every 30 min)":"Device temperature (polled every 30 min)","Turn the device automatically off when attached device consumes less than 2W for 20 minutes":"Turn the device automatically off when attached device consumes less than 2W for 20 minutes","Operation mode for left button":"Operation mode for left button","Operation mode for right button":"Operation mode for right button","Detected by sudden temperature drop or set manually.":"Detected by sudden temperature drop or set manually.","Manually set window_open, ~1 minute to take affect.":"Manually set window_open, ~1 minute to take affect.","Pin code introduced.":"Pin code introduced.","Last action transaction number.":"Last action transaction number.","Alarm zone. Default value 0":"Alarm zone. Default value 0","Tilt of this cover":"Tilt of this cover","Configure genLevelCtrl":"Configure genLevelCtrl","Represents the time taken to move to or from the target level when On of Off commands are received by an On/Off cluster":"Represents the time taken to move to or from the target level when On of Off commands are received by an On/Off cluster","Represents the time taken to move the current level from the minimum level to the maximum level when an On command is received":"Represents the time taken to move the current level from the minimum level to the maximum level when an On command is received","Represents the time taken to move the current level from the maximum level to the minimum level when an Off command is received":"Represents the time taken to move the current level from the maximum level to the minimum level when an Off command is received","Defines the desired startup level for a device when it is supplied with power":"Defines the desired startup level for a device when it is supplied with power","Specifies the minimum light output the ballast can achieve.":"Specifies the minimum light output the ballast can achieve.","Specifies the maximum light output the ballast can achieve.":"Specifies the maximum light output the ballast can achieve.","Specifies the minimum light output of the ballast":"Specifies the minimum light output of the ballast","Specifies the maximum light output of the ballast":"Specifies the maximum light output of the ballast","Specifies the minimum light output after switching on":"Specifies the minimum light output after switching on","The dimmer supports AC forward phase control.":"The dimmer supports AC forward phase control.","The dimmer supports AC reverse phase control.":"The dimmer supports AC reverse phase control.","The dimmer is capable of measuring the reactanceto distinguish inductive and capacitive loads.":"The dimmer is capable of measuring the reactance to distinguish inductive and capacitive loads.","The dimmer is capable of replacing the built-in, default dimming curve.":"The dimmer is capable of replacing the built-in, default dimming curve.","The dimmer is capable of detecting an output overload and shutting the output off.":"The dimmer is capable of detecting an output overload and shutting the output off.","The dimmer is currently operating in AC forward phase control mode.":"The dimmer is currently operating in AC forward phase control mode.","The dimmer is currently operating in AC reverse phase control mode.":"The dimmer is currently operating in AC reverse phase control mode.","The output is currently turned off, because the dimmer has detected an overload.":"The output is currently turned off, because the dimmer has detected an overload.","The dimmer's reactance discriminator had detected a capacitive load.":"The dimmer's reactance discriminator had detected a capacitive load.","The dimmer's reactance discriminator had detected an inductive load.":"The dimmer's reactance discriminator had detected an inductive load.","Configures the dimming technique.":"Configures the dimming technique.",'Operation mode: "command" - for group control, "event" - for clicks':'Operation mode: "command" - for group control, "event" - for clicks',"direction of movement from the point of view of the radar":"direction of movement from the point of view of the radar","sensitivity of the radar":"sensitivity of the radar","O-Sensitivity mode":"O-Sensitivity mode","V-Sensitivity mode":"V-Sensitivity mode","Led status switch":"Led status switch","Vacancy delay":"Vacancy delay","Light-On luminance prefer":"Light-On luminance prefer","Light-Off luminance prefer":"Light-Off luminance prefer","Working mode":"Working mode","Luminance level":"Luminance level","Reference luminance":"Reference luminance","Vacant confirm time":"Vacant confirm time","Volume of siren":"Volume of siren","Switch type settings":"Switch type settings","Minimum light brightness":"Minimum light brightness","Device valve is open or closed (heating or not)":"Device valve is open or closed (heating or not)",'MANUAL MODE ☝ - In this mode, the device executes manual temperature setting. When the set temperature is lower than the "minimum temperature", the valve is closed (forced closed). AUTO MODE ⏱ - In this mode, the device executes a preset week programming temperature time and temperature. ON - In this mode, the thermostat stays open OFF - In this mode, the thermostat stays closed':'MANUAL MODE ☝ - In this mode, the device executes manual temperature setting. When the set temperature is lower than the "minimum temperature", the valve is closed (forced closed). AUTO MODE ⏱ - In this mode, the device executes a preset week programming temperature time and temperature. ON - In this mode, the thermostat stays open OFF - In this mode, the thermostat stays closed',"Auto MODE ⏱ - In this mode, the device executes a preset week programming temperature time and temperature. ":"Auto MODE ⏱ - In this mode, the device executes a preset week programming temperature time and temperature. ","Enables/disables the status on the device":"Enables/disables the status on the device","Open window temperature":"Open window temperature","Holiday temperature":"Holiday temperature","Setting minimum 0 - maximum 465 seconds boost time. The boost (♨) function is activated. The remaining time for the function will be counted down in seconds ( 465 to 0 ).":"Setting minimum 0 - maximum 465 seconds boost time. The boost (♨) function is activated. The remaining time for the function will be counted down in seconds ( 465 to 0 ).","Is the device online":"Is the device online","The holiday mode( ⛱ ) will automatically start at the set time starting point and run the holiday temperature.":"The holiday mode( ⛱ ) will automatically start at the set time starting point and run the holiday temperature.","Auto Mode ⏱ - In this mode, the device executes a preset week programming temperature time and temperature. ":"Auto Mode ⏱ - In this mode, the device executes a preset week programming temperature time and temperature. ","Error status":"Error status","The measured CO2 (carbon dioxide) value":"The measured CO2 (carbon dioxide) value","The measured formaldehyd value":"The measured formaldehyd value","Mode of the warning (sound effect)":"Mode of the warning (sound effect)","Sound level":"Sound level","Intensity of the strobe":"Intensity of the strobe","Turn on/off the strobe (light) during warning":"Turn on/off the strobe (light) during warning","Length of the flash cycle":"Length of the flash cycle","Duration in seconds of the alarm":"Duration in seconds of the alarm","Indicates if the device is moving":"Indicates if the device is moving","Accelerometer X value":"Accelerometer X value","Accelerometer Y value":"Accelerometer Y value","Accelerometer Z value":"Accelerometer Z value","Trigger beep for x seconds":"Trigger beep for x seconds","Control status LED when load ON":"Control status LED when load ON","Control status LED when load OFF":"Control status LED when load OFF","Control minimum dimmer brightness":"Control minimum dimmer brightness","Control backlight dimming behavior":"Control backlight dimming behavior","People count":"People count","Icon shown on device displays":"Icon shown on device displays","Calibrates valve on next wakeup":"Calibrates valve on next wakeup","Controls piloting mode":"Controls piloting mode","Controls Capacitive or Inductive Dimming Mode":"Controls Capacitive or Inductive Dimming Mode","Auto off after specific time":"Auto off after specific time","Auto off timer time left":"Auto off timer time left","Time the valve was open when state on":"Time the valve was open when state on","Liters of water consumed":"Liters of water consumed","Is the unit in mounting mode. This is set to `false` for mounted (already on the radiator) or `true` for not mounted (after factory reset)":"Is the unit in mounting mode. This is set to `false` for mounted (already on the radiator) or `true` for not mounted (after factory reset)","Set the unit mounting mode. `false` Go to Mounted Mode or `true` Go to Mounting Mode":"Set the unit mounting mode. `false` Go to Mounted Mode or `true` Go to Mounting Mode","Thermostat Orientation. This is important for the PID in how it assesses temperature. `false` Horizontal or `true` Vertical":"Thermostat Orientation. This is important for the PID in how it assesses temperature. `false` Horizontal or `true` Vertical","Viewing/Display Direction. `false` Horizontal or `true` Vertical":"Viewing/Display Direction. `false` Horizontal or `true` Vertical","Whether or not the unit needs warm water. `false` No Heat Request or `true` Heat Request":"Whether or not the unit needs warm water. `false` No Heat Request or `true` Heat Request","Values observed are `0` (manual), `1` (schedule) or `2` (externally)":"Values observed are `0` (manual), `1` (schedule) or `2` (externally)","0=Quarantine, 1=Windows are closed, 2=Hold - Windows are maybe about to open, 3=Open window detected, 4=In window open state from external but detected closed locally":"0=Quarantine, 1=Windows are closed, 2=Hold - Windows are maybe about to open, 3=Open window detected, 4=In window open state from external but detected closed locally","Set if the window is open or close. This setting will trigger a change in the internal window and heating demand. `false` (windows are closed) or `true` (windows are open)":"Set if the window is open or close. This setting will trigger a change in the internal window and heating demand. `false` (windows are closed) or `true` (windows are open)","Exercise day of week: 0=Sun...6=Sat, 7=undefined":"Exercise day of week: 0=Sun...6=Sat, 7=undefined","Exercise trigger time. Minutes since midnight (65535=undefined). Range 0 to 1439":"Exercise trigger time. Minutes since midnight (65535=undefined). Range 0 to 1439",'Scale factor of setpoint filter timeconstant ("aggressiveness" of control algorithm) 1= Quick ... 5=Moderate ... 10=Slow':'Scale factor of setpoint filter timeconstant ("aggressiveness" of control algorithm) 1= Quick ... 5=Moderate ... 10=Slow',"Whether or not the thermostat acts as standalone thermostat or shares load with other thermostats in the room. The gateway must update load_room_mean if enabled.":"Whether or not the thermostat acts as standalone thermostat or shares load with other thermostats in the room. The gateway must update load_room_mean if enabled.","Load estimate on this radiator":"Load estimate on this radiator","Blink green LED on motion detection":"Blink green LED on motion detection","Ac louver position of this device":"Ac louver position of this device","On/off state of this fan":"On/off state of this fan","Mode of this fan":"Mode of this fan","Sound volume of the lock":"Sound volume of the lock","Auto relock after 7 seconds.":"Auto relock after 7 seconds.","Do not disturb mode":"Do not disturb mode","Power on behavior state":"Power on behavior state",'MANUAL MODE ☝ - In this mode, the device executes manual temperature setting. When the set temperature is lower than the "minimum temperature", the valve is closed (forced closed). PROGRAMMING MODE ⏱ - In this mode, the device executes a preset week programming temperature time and temperature. HOLIDAY MODE ⛱ - In this mode, for example, the vacation mode is set for 10 days and the temperature is setto 15 degrees Celsius. After 10 days, the device will automatically switch to programming mode. TEMPORARY MANUAL MODE - In this mode, ☝ icon will flash. At this time, the device executes the manually set temperature and returns to the weekly programming mode in the next time period. ':'MANUAL MODE ☝ - In this mode, the device executes manual temperature setting. When the set temperature is lower than the "minimum temperature", the valve is closed (forced closed). PROGRAMMING MODE ⏱ - In this mode, the device executes a preset week programming temperature time and temperature. HOLIDAY MODE ⛱ - In this mode, for example, the vacation mode is set for 10 days and the temperature is setto 15 degrees Celsius. After 10 days, the device will automatically switch to programming mode. TEMPORARY MANUAL MODE - In this mode, ☝ icon will flash. At this time, the device executes the manually set temperature and returns to the weekly programming mode in the next time period. ',"PROGRAMMING MODE ⏱ - In this mode, the device executes a preset week programming temperature time and temperature. You can set up to 4 stages of temperature every for WEEKDAY ➀➁➂➃➄, SATURDAY ➅ and SUNDAY ➆.":"PROGRAMMING MODE ⏱ - In this mode, the device executes a preset week programming temperature time and temperature. You can set up to 4 stages of temperature every for WEEKDAY ➀➁➂➃➄, SATURDAY ➅ and SUNDAY ➆.","Maximum temperature limit":"Maximum temperature limit","Select temperature sensor to use":"Select temperature sensor to use","Mode of the fan":"Mode of the fan","Motor options":"Motor options","Motor direction":"Motor direction","Motor is moving":"Motor is moving","Controls behaviour of led/siren on alarm":"Controls behaviour of led/siren on alarm","Alarm zone. Default value 23":"Alarm zone. Default value 23","Measured eCO2 value":"Measured eCO2 value","Temperature setpoint automatic":"Temperature setpoint automatic","Open window detection temperature":"Open window detection temperature","Open window time in minute":"Open window time in minute","Unknown binary one":"Unknown binary one","Unknown binary two":"Unknown binary two","Start away year 20xx":"Start away year 20xx","Start away month":"Start away month","Start away day":"Start away day","Start away hours":"Start away hours","Start away minutes":"Start away minutes","Temperature 1":"Temperature 1","Hour TO for temp 1":"Hour TO for temp 1","Minute TO for temp 1":"Minute TO for temp 1","Temperature 2":"Temperature 2","Hour TO for temp 2":"Hour TO for temp 2","Minute TO for temp 2":"Minute TO for temp 2","Temperature 3":"Temperature 3","Hour TO for temp 3":"Hour TO for temp 3","Minute TO for temp 3":"Minute TO for temp 3","Temperature 4":"Temperature 4","Hour TO for temp 4":"Hour TO for temp 4","Minute TO for temp 4":"Minute TO for temp 4","Temperature 5":"Temperature 5","Hour TO for temp 5":"Hour TO for temp 5","Minute TO for temp 5":"Minute TO for temp 5","Temperature 6":"Temperature 6","Hour TO for temp 6":"Hour TO for temp 6","Minute TO for temp 6":"Minute TO for temp 6","Temperature 7":"Temperature 7","Hour TO for temp 7":"Hour TO for temp 7","Minute TO for temp 7":"Minute TO for temp 7","Temperature 8":"Temperature 8","Hour TO for temp 8":"Hour TO for temp 8","Minute TO for temp 8":"Minute TO for temp 8","Temperature 9":"Temperature 9","Hour TO for temp 9":"Hour TO for temp 9","Minute TO for temp 9":"Minute TO for temp 9","Enable/disable the power alarm":"Enable/disable the power alarm","Specifies the minimum brightness value":"Specifies the minimum brightness value","Specifies the maximum brightness value":"Specifies the maximum brightness value","Allow the device to change brightness":"Allow the device to change brightness",'On/off (works only if device is in "switch" mode)':'On/off (works only if device is in "switch" mode)',"switch: allow on/off, auto will use wired action via C1/C2 on teleruptor with buttons":"switch: allow on/off, auto will use wired action via C1/C2 on teleruptor with buttons","switch: allow on/off, auto will use wired action via C1/C2 on contactor for example with HC/HP":"switch: allow on/off, auto will use wired action via C1/C2 on contactor for example with HC/HP","Enabled LED":"Enabled LED","PIR keep time 0:5s|1:30s|2:60s|3:180s|4:300s|5:600s|6:1200s|7:1800s":"PIR keep time 0:5s|1:30s|2:60s|3:180s|4:300s|5:600s|6:1200s|7:1800s","Illuminance calibration":"Illuminance calibration","Reporting interval in minutes":"Reporting interval in minutes","Temperature calibration":"Temperature calibration","Humidity calibration":"Humidity calibration","Enable PIR sensor":"Enable PIR sensor","Enabled reporting":"Enabled reporting","PIR sensor sensitivity":"PIR sensor sensitivity","PIR keep time in seconds":"PIR keep time in seconds","Current fan speed":"Current fan speed","Measured PM2.5 (particulate matter) concentration":"Measured PM2.5 (particulate matter) concentration","Measured air quality":"Measured air quality","Filter is older than 6 months and needs replacing":"Filter is older than 6 months and needs replacing","Indicates whether the device detected bright light (works only in night mode)":"Indicates whether the device detected bright light (works only in night mode)","Prevent changes. `false` = run normally. `true` = prevent from making changes. Must be set to `false` when system_mode = off or `true` for heat":"Prevent changes. `false` = run normally. `true` = prevent from making changes. Must be set to `false` when system_mode = off or `true` for heat","Period in minutes for which the setpoint hold will be active. 65535 = attribute not used. 0 to 360 to match the remote display":"Period in minutes for which the setpoint hold will be active. 65535 = attribute not used. 0 to 360 to match the remote display","Measured Hcho value":"Measured Hcho value","Air quality index":"Air quality index","Measured PM10 (particulate matter) concentration":"Measured PM10 (particulate matter) concentration","Valve open percentage (multiple of 10)":"Valve open percentage (multiple of 10)","Countdown timer in minutes":"Countdown timer in minutes","SOS alarm":"SOS alarm","Select between direct control of the valve via the `valve_position` or automatic control of the valve based on the `current_heating_setpoint`. For manual control set the value to 1, for automatic control set the value to 2 (the default). When switched to manual mode the display shows a value from 0 (valve closed) to 100 (valve fully open) and the buttons on the device are disabled.":"Select between direct control of the valve via the `valve_position` or automatic control of the valve based on the `current_heating_setpoint`. For manual control set the value to 1, for automatic control set the value to 2 (the default). When switched to manual mode the display shows a value from 0 (valve closed) to 100 (valve fully open) and the buttons on the device are disabled.","Directly control the radiator valve when `trv_mode` is set to 1. The values range from 0 (valve closed) to 255 (valve fully open)":"Directly control the radiator valve when `trv_mode` is set to 1. The values range from 0 (valve closed) to 255 (valve fully open)","Displayed text on thermostat display (zone). Max 14 characters":"Displayed text on thermostat display (zone). Max 14 characters","Load in W when heating is on (between 0-2000 W). The thermostat uses the value as input to the mean_power calculation.":"Load in W when heating is on (between 0-2000 W). The thermostat uses the value as input to the mean_power calculation.","Device in regulator or thermostat mode.":"Device in regulator or thermostat mode.","When device is in regulator mode this controls the time between each in/out connection. When device is in thermostat mode this controls the time between each in/out switch when measured temperature is within +-0.5 °C set temperature. Choose a long time for (slow) concrete floors and a short time for (quick) wooden floors.":"When device is in regulator mode this controls the time between each in/out connection. When device is in thermostat mode this controls the time between each in/out switch when measured temperature is within +-0.5 °C set temperature. Choose a long time for (slow) concrete floors and a short time for (quick) wooden floors.","Current temperature measured from the floor sensor":"Current temperature measured from the floor sensor",'Set max floor temperature (between 20-35 °C) when "supervisor_floor" is set':'Set max floor temperature (between 20-35 °C) when "supervisor_floor" is set',"Reports average power usage last 10 minutes":"Reports average power usage last 10 minutes",'When frost guard is ON, it is activated when the thermostat is switched OFF with the ON/OFF button.At the same time, the display will fade and the text "Frostsikring x °C" appears in the display and remains until the thermostat is switched on again.':'When frost guard is ON, it is activated when the thermostat is switched OFF with the ON/OFF button.At the same time, the display will fade and the text "Frostsikring x °C" appears in the display and remains until the thermostat is switched on again.',"Turn on or off night setting.":"Turn on or off night setting.","Current state":"Current state","Select open mode":"Select open mode","Enable or disable sound":"Enable or disable sound","Time to ring before answer":"Time to ring before answer","Time to hold before open":"Time to hold before open","Time to open before end":"Time to open before end","Time after last bell to finish ring":"Time after last bell to finish ring","Reporting interval":"Reporting interval","Enable LEDs feedback":"Enable LEDs feedback","Enable ABC (Automatic Baseline Correction)":"Enable ABC (Automatic Baseline Correction)","Warning (LED2) CO2 level":"Warning (LED2) CO2 level","Critical (LED3) CO2 level":"Critical (LED3) CO2 level","Adjust temperature":"Adjust temperature","Adjust humidity":"Adjust humidity","Adjust pressure":"Adjust pressure","Current count radioactive pulses per minute":"Current count radioactive pulses per minute","Current radiation level":"Current radiation level","Enable LED feedback":"Enable LED feedback","Enable buzzer feedback":"Enable buzzer feedback","Critical radiation level":"Critical radiation level","Type of installed tubes":"Type of installed tubes","Count of installed tubes":"Count of installed tubes","This is applicable if tubes type is set to other":"This is applicable if tubes type is set to other","Temperature of the CPU":"Temperature of the CPU","Indicates whether the device is being tested":"Indicates whether the device is being tested","Set Squawk state":"Set Squawk state","Turn on/off the strobe (light) for Squawk":"Turn on/off the strobe (light) for Squawk","Max duration of the siren":"Max duration of the siren","Manual start of the siren":"Manual start of the siren","Pulses per kwh. Default 1000 imp/kWh. Range 0 to 65535":"Pulses per kwh. Default 1000 imp/kWh. Range 0 to 65535","Operating mode/probe":"Operating mode/probe","Current summation value sent to the display. e.g. 570 = 0,570 kWh":"Current summation value sent to the display. e.g. 570 = 0,570 kWh","Is true if communication problem with meter is experienced":"Is true if communication problem with meter is experienced","Duration of Siren":"Duration of Siren","Manual Start of Siren":"Manual Start of Siren","Indicates reason if any fault":"Indicates reason if any fault","Indicates whether the device are in fault state":"Indicates whether the device are in fault state","Instantaneous measured electrical current on phase B":"Instantaneous measured electrical current on phase B","Measured electrical potential value on phase B":"Measured electrical potential value on phase B","Instantaneous measured electrical current on phase C":"Instantaneous measured electrical current on phase C","Measured electrical potential value on phase C":"Measured electrical potential value on phase C","Allow Master PIN Unlock":"Allow Master PIN Unlock","Allow RFID to Unlock":"Allow RFID to Unlock","Allow Auto Re-Lock":"Allow Auto Re-Lock","Lock-Mode of the Lock":"Lock-Mode of the Lock","Service Mode of the Lock":"Service Mode of the Lock","Absolute min temperature allowed on the device":"Absolute min temperature allowed on the device","Absolute max temperature allowed on the device":"Absolute max temperature allowed on the device","Min temperature limit set on the device":"Min temperature limit set on the device","Max temperature limit set on the device":"Max temperature limit set on the device","Danfoss Output Status [Active vs Inactive])":"Danfoss Output Status [Active vs Inactive])","Thermostat status":"Thermostat status","Regulator Status":"Regulator Status","Water Status of Regulator":"Water Status of Regulator","Regulator role (Master vs Slave)":"Regulator role (Master vs Slave)","State or sensor value":"State or sensor value","Manual start of siren":"Manual start of siren","Type of user, unrestricted: owner (default), (year|week)_day_schedule: user has ability to open lock based on specific time period, master: user has ability to both program and operate the door lock, non_access: user is recognized by the lock but does not have the ability to open the lock":"Type of user, unrestricted: owner (default), (year|week)_day_schedule: user has ability to open lock based on specific time period, master: user has ability to both program and operate the door lock, non_access: user is recognized by the lock but does not have the ability to open the lock","After turn on, the indicator light turns on while switch is off, and vice versa":"After turn on, the indicator light turns on while switch is off, and vice versa","The current state of the motor.":"The current state of the motor.","Value of gas concentration":"Value of gas concentration",'Gas concentration value at which an alarm is triggered ("10%LEL" is more sensitive than "15%LEL")':'Gas concentration value at which an alarm is triggered ("10%LEL" is more sensitive than "15%LEL")',"Starts the self-test process (checking the indicator light and buzzer work properly)":"Starts the self-test process (checking the indicator light and buzzer work properly)","Self-test in progress":"Self-test in progress",'"Preparation" or "work" (measurement of the gas concentration value and triggering of an alarm are only performed in the "work" state)':'"Preparation" or "work" (measurement of the gas concentration value and triggering of an alarm are only performed in the "work" state)',"Number of power outages (since last pairing)":"Number of power outages (since last pairing)",'Presence events: "enter", "leave", "left_enter", "right_leave", "right_enter", "left_leave", "approach", "away"':'Presence events: "enter", "leave", "left_enter", "right_leave", "right_enter", "left_leave", "approach", "away"',"Monitoring mode with or without considering right and left sides":"Monitoring mode with or without considering right and left sides","The distance at which the sensor detects approaching":"The distance at which the sensor detects approaching","Time interval for detecting actions":"Time interval for detecting actions","Switch between rgbw mode or dual color temperature mode":"Switch between rgbw mode or dual color temperature mode","Brightness state":"Brightness state","presets for sensitivity for presence and movement":"presets for sensitivity for presence and movement","Tumble status switch":"Tumble status switch","fall sensitivity of the radar":"fall sensitivity of the radar","tumble alarm time":"tumble alarm time","fall down status":"fall down status","static dwell alarm":"static dwell alarm","Alarm humidity max":"Alarm humidity max","Alarm humidity min":"Alarm humidity min","Trigger the door movement":"Trigger the door movement","Plug LED indicator mode":"Plug LED indicator mode",'When Anti-Freezing function is activated, the temperature in the house is kept at 8 °C, the device display "AF".press the pair button to cancel.':'When Anti-Freezing function is activated, the temperature in the house is kept at 8 °C, the device display "AF".press the pair button to cancel.','Battery life can be prolonged by switching the heating off. To achieve this, the valve is closed fully. To activate the heating stop, the device display "HS", press the pair button to cancel.':'Battery life can be prolonged by switching the heating off. To achieve this, the valve is closed fully. To activate the heating stop, the device display "HS", press the pair button to cancel.',"Mode of this device, in the `heat` mode the TS0601 will remain continuously heating, i.e. it does not regulate to the desired temperature. If you want TRV to properly regulate the temperature you need to use mode `auto` instead setting the desired temperature.":"Mode of this device, in the `heat` mode the TS0601 will remain continuously heating, i.e. it does not regulate to the desired temperature. If you want TRV to properly regulate the temperature you need to use mode `auto` instead setting the desired temperature.","The measured CO (carbon monoxide) value":"The measured CO (carbon monoxide) value","The measured occupancy value":"The measured occupancy value","The measured noise value":"The measured noise value","Indicates whether the device detected noise":"Indicates whether the device detected noise","White brightness of this light":"White brightness of this light","Valve state if open or closed":"Valve state if open or closed","Position of the valve":"Position of the valve","Door status":"Door status","User ID can only number 1":"User ID can only number 1","Pincode to set, set pincode(4 digit) to null to clear":"Pincode to set, set pincode(4 digit) to null to clear","temperature of device internal mcu":"temperature of device internal mcu","Measured electrical power factor":"Measured electrical power factor","Measured electrical ac frequency":"Measured electrical ac frequency","Currently status":"Currently status","Time in seconds after which occupancy is cleared after detecting it":"Time in seconds after which occupancy is cleared after detecting it","Sets dimming mode to autodetect or fixed RC/RL/RL_LED mode (max load is reduced in RL_LED)":"Sets dimming mode to autodetect or fixed RC/RL/RL_LED mode (max load is reduced in RL_LED)","Duration of lift":"Duration of lift","Controls how programming affects the thermostat. Possible values: setpoint (only use specified setpoint), schedule (follow programmed setpoint schedule). Changing this value does not clear programmed schedules.":"Controls how programming affects the thermostat. Possible values: setpoint (only use specified setpoint), schedule (follow programmed setpoint schedule). Changing this value does not clear programmed schedules.","Not clear how this affects operation. However, it would appear that the device does not execute any motor functions if this is set to false. This may be a means to conserve battery during periods that the heating system is not energized (e.g. during summer). `false` No Heat Available or `true` Heat Available":"Not clear how this affects operation. However, it would appear that the device does not execute any motor functions if this is set to false. This may be a means to conserve battery during periods that the heating system is not energized (e.g. during summer). `false` No Heat Available or `true` Heat Available","If `radiator_covered` is `true`: Set at maximum 30 minutes interval but not more often than every 5 minutes and 0.1 degrees difference. Resets every 35 minutes to standard. If `radiator_covered` is `false`: Set at maximum 3 hours interval but not more often than every 30 minutes and 0.1 degrees difference. Resets every 3 hours to standard. Value 21C = 2100 (-8000=undefined).":"If `radiator_covered` is `true`: Set at maximum 30 minutes interval but not more often than every 5 minutes and 0.1 degrees difference. Resets every 35 minutes to standard. If `radiator_covered` is `false`: Set at maximum 3 hours interval but not more often than every 30 minutes and 0.1 degrees difference. Resets every 3 hours to standard. Value 21C = 2100 (-8000=undefined).","Set if the TRV should solely rely on external_measured_room_sensor or operate in offset mode. `false` = Auto Offset Mode or `true` = Room Sensor Mode":"Set if the TRV should solely rely on external_measured_room_sensor or operate in offset mode. `false` = Auto Offset Mode or `true` = Room Sensor Mode","Whether or not the window open feature is enabled":"Whether or not the window open feature is enabled","Mean radiator load for room calculated by gateway for load balancing purposes (-8000=undefined)":"Mean radiator load for room calculated by gateway for load balancing purposes (-8000=undefined)","Current display unit":"Current display unit","Temperature alarm status":"Temperature alarm status","Temperature sensitivity":"Temperature sensitivity","Indicator light status":"Indicator light status","The delta between local_temperature and current_heating_setpoint to trigger Heat":"The delta between local_temperature and current_heating_setpoint to trigger Heat","Serial Number":"Serial Number","Base index":"Base index","Tarif option":"Tarif option","Subscribed intensity level":"Subscribed intensity level","HCHC index":"HCHC index","HCHP index":"HCHP index","BBRHCJW index":"BBRHCJW index","BBRHPJW index":"BBRHPJW index","BBRHCJR index":"BBRHCJR index","BBRHPJR index":"BBRHPJR index","RMS current":"RMS current","RMS current (phase 2)":"RMS current (phase 2)","RMS current (phase 3)":"RMS current (phase 3)","RMS current peak":"RMS current peak","RMS current peak (phase 2)":"RMS current peak (phase 2)","RMS current peak (phase 3)":"RMS current peak (phase 3)","Three-phase power peak":"Three-phase power peak","Apparent power":"Apparent power","Current pricing period":"Current pricing period","Tomorrow color":"Tomorrow color","Schedule HPHC":"Schedule HPHC","Presence of potentials":"Presence of potentials","EJP start notice (30min)":"EJP start notice (30min)","Subscribed Power Exceeded Warning":"Subscribed Power Exceeded Warning","Over Current Warning (phase 1)":"Over Current Warning (phase 1)","Over Current Warning (phase 2)":"Over Current Warning (phase 2)","Over Current Warning (phase 3)":"Over Current Warning (phase 3)","Current supplier price label":"Current supplier price label","Current tariff index number":"Current tariff index number","Customer tele-information protocol version":"Customer tele-information protocol version","Current date and time":"Current date and time","Total provider active power delivered (index 07)":"Total provider active power delivered (index 07)","Total provider active power delivered (index 08)":"Total provider active power delivered (index 08)","Total provider active power delivered (index 09)":"Total provider active power delivered (index 09)","Total provider active power delivered (index 10)":"Total provider active power delivered (index 10)","Active energy withdrawn Distributor (index 01)":"Active energy withdrawn Distributor (index 01)","Active energy withdrawn Distributor (index 02)":"Active energy withdrawn Distributor (index 02)","Active energy withdrawn Distributor (index 03)":"Active energy withdrawn Distributor (index 03)","Active energy withdrawn Distributor (index 04)":"Active energy withdrawn Distributor (index 04)","Total active power injected":"Total active power injected","Total reactive power (Q1)":"Total reactive power (Q1)","Total reactive power (Q2)":"Total reactive power (Q2)","Total reactive power (Q3)":"Total reactive power (Q3)","Total reactive power (Q4)":"Total reactive power (Q4)","RMS voltage":"RMS voltage","RMS voltage (phase 2)":"RMS voltage (phase 2)","RMS voltage (phase 3)":"RMS voltage (phase 3)","Register of Statutes":"Register of Statutes","Apparent power threshold":"Apparent power threshold","Instantaneous apparent power injected":"Instantaneous apparent power injected","Apparent power max. injected n":"Apparent power max. injected n","Apparent power max. injected n-1":"Apparent power max. injected n-1","Current point of the active load curve drawn":"Current point of the active load curve drawn","Previous point of the active load curve drawn":"Previous point of the active load curve drawn","Point n of the withdrawn active load curve":"Point n of the withdrawn active load curve","Point n-1 of the withdrawn active load curve":"Point n-1 of the withdrawn active load curve","Average RMS voltage (phase 1)":"Average RMS voltage (phase 1)","Average RMS voltage (phase 2)":"Average RMS voltage (phase 2)","Average RMS voltage (phase 3)":"Average RMS voltage (phase 3)","Immediate apparent power delivered (phase 2)":"Immediate apparent power delivered (phase 2)","Immediate apparent power delivered (phase 3)":"Immediate apparent power delivered (phase 3)","Apparent power delivered peak (phase 2)":"Apparent power delivered peak (phase 2)","Apparent power delivered peak (phase 3)":"Apparent power delivered peak (phase 3)","Apparent power max. draw-off n-1":"Apparent power max. draw-off n-1","Apparent power max. draw-off n-1 (phase 2)":"Apparent power max. draw-off n-1 (phase 2)","Apparent power max. draw-off n-1 (phase 3)":"Apparent power max. draw-off n-1 (phase 3)","Message short":"Message short","Message ultra-short":"Message ultra-short","PRM number":"PRM number","Start mobile point 1":"Start mobile point 1","Stop mobile point 1":"Stop mobile point 1","Start mobile point 2":"Start mobile point 2","Stop mobile point 2":"Stop mobile point 2","Start mobile point 3":"Start mobile point 3","Stop mobile point 3":"Stop mobile point 3","Current day number supplier calendar":"Current day number supplier calendar","Next day number supplier calendar":"Next day number supplier calendar","Profile of the next supplier calendar day":"Profile of the next supplier calendar day","Profile of the next check-in day":"Profile of the next check-in day","Works only when the pilot wire is deactivated":"Works only when the pilot wire is deactivated","Measured electrical AC frequency":"Measured electrical AC frequency","Indicates if the card is inserted (= true) or not (= false)":"Indicates if the card is inserted (= true) or not (= false)","Prevent changes. `false` = run normally. `true` = prevent from making changes.":"Prevent changes. `false` = run normally. `true` = prevent from making changes.","Enable or disable the blue backlight LED":"Enable or disable the blue backlight LED","Triggered action on the lock":"Triggered action on the lock","Source of the triggered action on the lock":"Source of the triggered action on the lock","ID of user that triggered the action on the lock":"ID of user that triggered the action on the lock","Number of power outages":"Number of power outages","The current charging status.":"The current charging status.","Whether the motor is moving or not":"Whether the motor is moving or not","Motor state":"Motor state","Value of smoke concentration":"Value of smoke concentration","Value of smoke concentration in dB/m":"Value of smoke concentration in dB/m","When this option is enabled then in the normal monitoring state, the green indicator light flashes every 60 seconds":"When this option is enabled then in the normal monitoring state, the green indicator light flashes every 60 seconds","Different sensitivities means different static human body recognition rate and response speed of occupied":"Different sensitivities means different static human body recognition rate and response speed of occupied","Reset the status of no presence":"Reset the status of no presence","Is the device plugged in":"Is the device plugged in","Smoke alarm status":"Smoke alarm status","Test alarm":"Test alarm","Test alarm result":"Test alarm result","Battery level state":"Battery level state","Alarm enable":"Alarm enable","Fault alarm status":"Fault alarm status","Silence siren":"Silence siren","PIR sensor sensitivity (refresh and update only while active)":"PIR sensor sensitivity (refresh and update only while active)","PIR keep time in seconds (refresh and update only while active)":"PIR keep time in seconds (refresh and update only while active)","Report interval":"Report interval","Humidity alarm status":"Humidity alarm status","Distance to target":"Distance to target","Minimum range":"Minimum range","Maximum range":"Maximum range","Detection delay":"Detection delay","Fading time":"Fading time","Self_test, possible resuts: checking, check_success, check_failure, others, comm_fault, radar_fault.":"Self_test, possible resuts: checking, check_success, check_failure, others, comm_fault, radar_fault.","Indicates if the garage door contact is closed (= true) or open (= false)":"Indicates if the garage door contact is closed (= true) or open (= false)","Relay LED indicator mode":"Relay LED indicator mode","Window open?":"Window open?","Maximum light brightness":"Maximum light brightness","Group where the action was triggered on":"Group where the action was triggered on","Time in seconds after which noise is cleared after detecting it (default: 60)":"Time in seconds after which noise is cleared after detecting it (default: 60)","Time in seconds after which occupancy is cleared after detecting it (default: 60)":"Time in seconds after which occupancy is cleared after detecting it (default: 60)","Self-heating compensation. The compensation value is subtracted from the measured temperature":"Self-heating compensation. The compensation value is subtracted from the measured temperature","If the sensor is triggered by the slightest movement, reduce the sensitivity, otherwise increase it (default: 50)":"If the sensor is triggered by the slightest movement, reduce the sensitivity, otherwise increase it (default: 50)","The minimum noise level at which the detector will work (default: 50)":"The minimum noise level at which the detector will work (default: 50)","Automatic calibration of the CO2 sensor. If ON, the CO2 sensor will automatically calibrate every 7 days.":"Automatic calibration of the CO2 sensor. If ON, the CO2 sensor will automatically calibrate every 7 days.","Ventilate the room for 20 minutes, turn on manual calibration, and turn it off after one second. After about 5 minutes the CO2 sensor will show 400ppm. Calibration completed":"Ventilate the room for 20 minutes, turn on manual calibration, and turn it off after one second. After about 5 minutes the CO2 sensor will show 400ppm. Calibration completed","Turn on when working in conditions of high humidity (more than 70 %, RH) or condensation, if the sensor shows 0 or 100 %.":"Turn on when working in conditions of high humidity (more than 70 %, RH) or condensation, if the sensor shows 0 or 100 %.","Instantaneous measured apparent power":"Instantaneous measured apparent power","Instantaneous measured power on phase A":"Instantaneous measured power on phase A","Instantaneous measured power on phase B":"Instantaneous measured power on phase B","Instantaneous measured power on phase C":"Instantaneous measured power on phase C","Instantaneous measured power factor":"Instantaneous measured power factor","Sum of consumed energy on phase A":"Sum of consumed energy on phase A","Sum of consumed energy on phase B":"Sum of consumed energy on phase B","Sum of consumed energy on phase C":"Sum of consumed energy on phase C","Measured electrical potential value on phase A":"Measured electrical potential value on phase A","Measured electrical potential value between phase A and B":"Measured electrical potential value between phase A and B","Measured electrical potential value between phase B and C":"Measured electrical potential value between phase B and C","Measured electrical potential value between phase C and A":"Measured electrical potential value between phase C and A","Instantaneous measured electrical current on phase A":"Instantaneous measured electrical current on phase A","Specific for pre-heat running in Zigbee Weekly Schedule mode":"Specific for pre-heat running in Zigbee Weekly Schedule mode","Status of adaptation run: None (before first run), In Progress, Valve Characteristic Found, Valve Characteristic Lost":"Status of adaptation run: None (before first run), In Progress, Valve Characteristic Found, Valve Characteristic Lost","Automatic adaptation run enabled (the one during the night)":"Automatic adaptation run enabled (the one during the night)","Adaptation run control: Initiate Adaptation Run or Cancel Adaptation Run":"Adaptation run control: Initiate Adaptation Run or Cancel Adaptation Run","Regulation SetPoint Offset in range -2.5°C to 2.5°C in steps of 0.1°C. Value 2.5°C = 25.":"Regulation SetPoint Offset in range -2.5°C to 2.5°C in steps of 0.1°C. Value 2.5°C = 25.","Enable LED":"Enable LED","Temperature/humidity alarm status":"Temperature/humidity alarm status","Temperature scale (°F/°C)":"Temperature scale (°F/°C)","OLED brightness when operating the buttons. Default: Medium.":"OLED brightness when operating the buttons. Default: Medium.","Key beep volume and vibration level. Default: Low.":"Key beep volume and vibration level. Default: Low.","Type of the external floor sensor. Default: NTC 10K/25.":"Type of the external floor sensor. Default: NTC 10K/25.","The sensor used for heat control. Default: Room Sensor.":"The sensor used for heat control. Default: Room Sensor.","The mode after a power reset. Default: Previous Mode.":"The mode after a power reset. Default: Previous Mode.","The tempearatue calibration for the exernal floor sensor, between -3 and 3 in 0.1°C. Default: 0.":"The tempearatue calibration for the exernal floor sensor, between -3 and 3 in 0.1°C. Default: 0.","The duration of Dry Mode, between 5 and 100 minutes. Default: 5.":"The duration of Dry Mode, between 5 and 100 minutes. Default: 5.","The mode after Dry Mode. Default: Auto.":"The mode after Dry Mode. Default: Auto.","The temperature on the display. Default: Room Temperature.":"The temperature on the display. Default: Room Temperature.","The threshold to detect window open, between 1.5 and 4 in 0.5 °C. Default: 0 (disabled).":"The threshold to detect window open, between 1.5 and 4 in 0.5 °C. Default: 0 (disabled).","Hysteresis setting, between 0.5 and 2 in 0.1 °C. Default: 0.5.":"Hysteresis setting, between 0.5 and 2 in 0.1 °C. Default: 0.5.","Room temperature alarm threshold, between 20 and 60 in °C. 0 means disabled. Default: 45.":"Room temperature alarm threshold, between 20 and 60 in °C. 0 means disabled. Default: 45.","Animation Effect to use for the LEDs":"Animation Effect to use for the LEDs","Calculated by using a hue color circle(value/255*360) If color = 255 display white":"Calculated by using a hue color circle(value/255*360) If color = 255 display white","Brightness of the LEDs":"Brightness of the LEDs","1-60 is in seconds calculated 61-120 is in minutes calculated by(value-60) Example a value of 65 would be 65-60 = 5 minutes - 120-254 Is in hours calculated by(value-120) Example a value of 132 would be 132-120 would be 12 hours. - 255 Indefinitely":"1-60 is in seconds calculated 61-120 is in minutes calculated by(value-60) Example a value of 65 would be 65-60 = 5 minutes - 120-254 Is in hours calculated by(value-120) Example a value of 132 would be 132-120 would be 12 hours. - 255 Indefinitely","Individual LED to target.":"Individual LED to target.","Animation Effect to use for the LED":"Animation Effect to use for the LED","Brightness of the LED":"Brightness of the LED","1-60 is in seconds calculated 61-120 is in minutes calculated by(value-60) Example a value of 65 would be 65-60 = 5 minutes - 120-254 Is in hours calculated by(value-120) Example a value of 132 would be 132-120 would be 12 hours. - 255 Indefinitely":"1-60 is in seconds calculated 61-120 is in minutes calculated by(value-60) Example a value of 65 would be 65-60 = 5 minutes - 120-254 Is in hours calculated by(value-120) Example a value of 132 would be 132-120 would be 12 hours. - 255 Indefinitely","This changes the speed that the light dims up when controlled from the hub. A setting of 0 turns the light immediately on. Increasing the value slows down the transition speed. Every number represents 100ms. Default = 25 (2.5s)":"This changes the speed that the light dims up when controlled from the hub. A setting of 0 turns the light immediately on. Increasing the value slows down the transition speed. Every number represents 100ms. Default = 25 (2.5s)","This changes the speed that the light dims up when controlled at the switch. A setting of 0 turns the light immediately on. Increasing the value slows down the transition speed. Every number represents 100ms. Default = 127 - Keep in sync with dimmingSpeedUpRemote setting.":"This changes the speed that the light dims up when controlled at the switch. A setting of 0 turns the light immediately on. Increasing the value slows down the transition speed. Every number represents 100ms. Default = 127 - Keep in sync with dimmingSpeedUpRemote setting.","This changes the speed that the light turns on when controlled from the hub. A setting of 0 turns the light immediately on. Increasing the value slows down the transition speed. Every number represents 100ms. Default = 127 - Keep in sync with dimmingSpeedUpRemote setting.":"This changes the speed that the light turns on when controlled from the hub. A setting of 0 turns the light immediately on. Increasing the value slows down the transition speed. Every number represents 100ms. Default = 127 - Keep in sync with dimmingSpeedUpRemote setting.","This changes the speed that the light turns on when controlled at the switch. A setting of 0 turns the light immediately on. Increasing the value slows down the transition speed. Every number represents 100ms. Default = 127 - Keep in sync with dimmingSpeedUpRemote setting.":"This changes the speed that the light turns on when controlled at the switch. A setting of 0 turns the light immediately on. Increasing the value slows down the transition speed. Every number represents 100ms. Default = 127 - Keep in sync with dimmingSpeedUpRemote setting.","This changes the speed that the light dims down when controlled from the hub. A setting of 0 turns the light immediately off. Increasing the value slows down the transition speed. Every number represents 100ms. Default = 127 - Keep in sync with dimmingSpeedUpRemote setting.":"This changes the speed that the light dims down when controlled from the hub. A setting of 0 turns the light immediately off. Increasing the value slows down the transition speed. Every number represents 100ms. Default = 127 - Keep in sync with dimmingSpeedUpRemote setting.","This changes the speed that the light dims down when controlled at the switch. A setting of 0 turns the light immediately off. Increasing the value slows down the transition speed. Every number represents 100ms. Default = 127 - Keep in sync with dimmingSpeedUpLocal setting.":"This changes the speed that the light dims down when controlled at the switch. A setting of 0 turns the light immediately off. Increasing the value slows down the transition speed. Every number represents 100ms. Default = 127 - Keep in sync with dimmingSpeedUpLocal setting.","This changes the speed that the light turns off when controlled from the hub. A setting of 'instant' turns the light immediately off. Increasing the value slows down the transition speed. Every number represents 100ms. Default = 127 - Keep in sync with rampRateOffToOnRemote setting.":"This changes the speed that the light turns off when controlled from the hub. A setting of 'instant' turns the light immediately off. Increasing the value slows down the transition speed. Every number represents 100ms. Default = 127 - Keep in sync with rampRateOffToOnRemote setting.","This changes the speed that the light turns off when controlled at the switch. A setting of 'instant' turns the light immediately off. Increasing the value slows down the transition speed. Every number represents 100ms. Default = 127 - Keep in sync with rampRateOffToOnLocal setting.":"This changes the speed that the light turns off when controlled at the switch. A setting of 'instant' turns the light immediately off. Increasing the value slows down the transition speed. Every number represents 100ms. Default = 127 - Keep in sync with rampRateOffToOnLocal setting.","The minimum level that the dimmer allows the bulb to be dimmed to. Useful when the user has an LED bulb that does not turn on or flickers at a lower level.":"The minimum level that the dimmer allows the bulb to be dimmed to. Useful when the user has an LED bulb that does not turn on or flickers at a lower level.","The maximum level that the dimmer allows the bulb to be dimmed to.Useful when the user has an LED bulb that reaches its maximum level before the dimmer value of 99 or when the user wants to limit the maximum brightness.":"The maximum level that the dimmer allows the bulb to be dimmed to.Useful when the user has an LED bulb that reaches its maximum level before the dimmer value of 99 or when the user wants to limit the maximum brightness.","Inverts the orientation of the switch. Useful when the switch is installed upside down. Essentially up becomes down and down becomes up.":"Inverts the orientation of the switch. Useful when the switch is installed upside down. Essentially up becomes down and down becomes up.","Automatically turns the switch off after this many seconds. When the switch is turned on a timer is started. When the timer expires, the switch is turned off. 0 = Auto off is disabled.":"Automatically turns the switch off after this many seconds. When the switch is turned on a timer is started. When the timer expires, the switch is turned off. 0 = Auto off is disabled.","Default level for the dimmer when it is turned on at the switch. A setting of 0 means that the switch will return to the level that it was on before it was turned off.":"Default level for the dimmer when it is turned on at the switch. A setting of 0 means that the switch will return to the level that it was on before it was turned off.","Default level for the dimmer when it is turned on from the hub. A setting of 0 means that the switch will return to the level that it was on before it was turned off.":"Default level for the dimmer when it is turned on from the hub. A setting of 0 means that the switch will return to the level that it was on before it was turned off.","The state the switch should return to when power is restored after power failure. 0 = off, 1-100 = level, 101 = previous.":"The state the switch should return to when power is restored after power failure. 0 = off, 1-100 = level, 101 = previous.","Shows the level that the load is at for x number of seconds after the load is adjusted and then returns to the Default LED state. 0 = Stay Off, 1-10 = seconds, 11 = Stay On.":"Shows the level that the load is at for x number of seconds after the load is adjusted and then returns to the Default LED state. 0 = Stay Off, 1-10 = seconds, 11 = Stay On.","Power level change that will result in a new power report being sent. The value is a percentage of the previous report.0 = disabled, 1-32767 = 0.1W-3276.7W.":"Power level change that will result in a new power report being sent. The value is a percentage of the previous report.0 = disabled, 1-32767 = 0.1W-3276.7W.","Time period between consecutive power & energy reports being sent (in seconds). The timer is reset after each report is sent.":"Time period between consecutive power & energy reports being sent (in seconds). The timer is reset after each report is sent.","Energy reports Energy level change which will result in sending a new energy report.0 = disabled, 1-32767 = 0.01kWh-327.67kWh. Default setting: 10 (0.1 kWh)":"Energy reports Energy level change which will result in sending a new energy report.0 = disabled, 1-32767 = 0.01kWh-327.67kWh. Default setting: 10 (0.1 kWh)","Set the power type for the device.":"Set the power type for the device.","Set the switch configuration.":"Set the switch configuration.","This will set the button press delay. 0 = no delay (Disables Button Press Events), 1 = 100ms, 2 = 200ms, 3 = 300ms, etc. up to 900ms. Default = 500ms.":"This will set the button press delay. 0 = no delay (Disables Button Press Events), 1 = 100ms, 2 = 200ms, 3 = 300ms, etc. up to 900ms. Default = 500ms.","For use with Smart Bulbs that need constant power and are controlled via commands rather than power.":"For use with Smart Bulbs that need constant power and are controlled via commands rather than power.","Set the color of the LED Indicator when the load is on.":"Set the color of the LED Indicator when the load is on.","Set the color of the LED Indicator when the load is off.":"Set the color of the LED Indicator when the load is off.","Set the intensity of the LED Indicator when the load is on.":"Set the intensity of the LED Indicator when the load is on.","Set the intensity of the LED Indicator when the load is off.":"Set the intensity of the LED Indicator when the load is off.","Ability to control switch from the wall.":"Ability to control switch from the wall.","Ability to control switch from the hub.":"Ability to control switch from the hub.","Use device as a Dimmer or an On/Off switch.":"Use device as a Dimmer or an On/Off switch.","When the device is in On/Off mode, use full LED bar or just one LED.":"When the device is in On/Off mode, use full LED bar or just one LED.","Display progress on LED bar during firmware update.":"Display progress on LED bar during firmware update.","0-254:This is the color of the LED strip in a hex representation. 255:Synchronization with default all LED strip color parameter.":"0-254:This is the color of the LED strip in a hex representation. 255:Synchronization with default all LED strip color parameter.","Intesity of LED strip when on. 101 = Syncronized with default all LED strip intensity parameter.":"Intesity of LED strip when on. 101 = Syncronized with default all LED strip intensity parameter.","Intesity of LED strip when off. 101 = Syncronized with default all LED strip intensity parameter.":"Intesity of LED strip when off. 101 = Syncronized with default all LED strip intensity parameter.","Result of a double tap on the up button.":"Result of a double tap on the up button.","Remaining battery 2 in %":"Remaining battery 2 in %","Illuminance calibration in lux":"Illuminance calibration in lux","Temperature calibration (-2.0...2.0)":"Temperature calibration (-2.0...2.0)","Enable reporting":"Enable reporting","Control mode":"Control mode","External switch type":"External switch type","External switch status":"External switch status","Load detection mode":"Load detection mode","Load type":"Load type","Load dimmable":"Load dimmable","Power supply mode":"Power supply mode","Current temperature measured on the external sensor (floor)":"Current temperature measured on the external sensor (floor)","The difference between the temperature at which the thermostat switches off, and the temperature at which it switches on again.":"The difference between the temperature at which the thermostat switches off, and the temperature at which it switches on again.","Max guarding temperature":"Max guarding temperature","Brightness of this backlight LED":"Brightness of this backlight LED","Units to show on the display":"Units to show on the display","Hooks state":"Hooks state","Target position":"Target position","The current power source":"The current power source","The current charging state":"The current charging state",'The buzzer can be muted and alarmed manually. During a smoke alarm, the buzzer can be manually muted for 80 seconds ("mute") and unmuted ("alarm"). The buzzer cannot be pre-muted, as this function only works during a smoke alarm. During the absence of a smoke alarm, the buzzer can be manually alarmed ("alarm") and disalarmed ("mute")':'The buzzer can be muted and alarmed manually. During a smoke alarm, the buzzer can be manually muted for 80 seconds ("mute") and unmuted ("alarm"). The buzzer cannot be pre-muted, as this function only works during a smoke alarm. During the absence of a smoke alarm, the buzzer can be manually alarmed ("alarm") and disalarmed ("mute")',"Buzzer alarmed (manually)":"Buzzer alarmed (manually)","Buzzer muted (manually)":"Buzzer muted (manually)",'When this option is enabled and a smoke alarm has occurred, then "linkage_alarm_state"=true, and when the smoke alarm has ended or the buzzer has been manually muted, then "linkage_alarm_state"=false':'When this option is enabled and a smoke alarm has occurred, then "linkage_alarm_state"=true, and when the smoke alarm has ended or the buzzer has been manually muted, then "linkage_alarm_state"=false','"linkage_alarm" is triggered':'"linkage_alarm" is triggered','The buzzer can be muted and alarmed manually. During a gas alarm, the buzzer can be manually muted for 10 minutes ("mute"), but cannot be unmuted manually before this timeout expires. The buzzer cannot be pre-muted, as this function only works during a gas alarm. During the absence of a gas alarm, the buzzer can be manually alarmed ("alarm") and disalarmed ("mute")':'The buzzer can be muted and alarmed manually. During a gas alarm, the buzzer can be manually muted for 10 minutes ("mute"), but cannot be unmuted manually before this timeout expires. The buzzer cannot be pre-muted, as this function only works during a gas alarm. During the absence of a gas alarm, the buzzer can be manually alarmed ("alarm") and disalarmed ("mute")','When this option is enabled and a gas alarm has occurred, then "linkage_alarm_state"=true, and when the gas alarm has ended or the buzzer has been manually muted, then "linkage_alarm_state"=false':'When this option is enabled and a gas alarm has occurred, then "linkage_alarm_state"=true, and when the gas alarm has ended or the buzzer has been manually muted, then "linkage_alarm_state"=false',". Press pairing button right before changing this otherwise it will fail.":". Press pairing button right before changing this otherwise it will fail.","Time interval for detecting actions. Press pairing button right before changing this otherwise it will fail.":"Time interval for detecting actions. Press pairing button right before changing this otherwise it will fail.","When this option is enabled then blue LED will blink once when motion is detected. Press pairing button right before changing this otherwise it will fail.":"When this option is enabled then blue LED will blink once when motion is detected. Press pairing button right before changing this otherwise it will fail.","The current running mode":"The current running mode","When Vacation Mode is active the schedule is disabled and unoccupied_heating_setpoint is used.":"When Vacation Mode is active the schedule is disabled and unoccupied_heating_setpoint is used.","Shows the presence duration in minutes":"Shows the presence duration in minutes","Shows the duration of the absence in minutes":"Shows the duration of the absence in minutes","Turns the onboard LED on or off":"Turns the onboard LED on or off","Turn on to learn new IR code":"Turn on to learn new IR code","The IR code learned by device":"The IR code learned by device","The IR code to send by device":"The IR code to send by device","Active power":"Active power","Cycle count":"Cycle count","Cycle time":"Cycle time","Setup or clear top limit":"Setup or clear top limit","Setup or clear bottom limit":"Setup or clear bottom limit","Favorite position of this cover":"Favorite position of this cover","Inverts the cover direction":"Inverts the cover direction","There are 8 periods in the schedule in total. 6 for workdays and 2 for holidays. It should be set in the following format for each of the periods: `hours:minutes/temperature`. All periods should be set at once and delimited by the space symbol. For example: `06:00/20.5 08:00/15 11:30/15 13:30/15 17:00/22 22:00/15 06:00/20 22:00/15`. The thermostat doesn't report the schedule by itself even if you change it manually from device":"There are 8 periods in the schedule in total. 6 for workdays and 2 for holidays. It should be set in the following format for each of the periods: `hours:minutes/temperature`. All periods should be set at once and delimited by the space symbol. For example: `06:00/20.5 08:00/15 11:30/15 13:30/15 17:00/22 22:00/15 06:00/20 22:00/15`. The thermostat doesn't report the schedule by itself even if you change it manually from device","Screen brightness":"Screen brightness","Switches beep sound when interacting with thermostat":"Switches beep sound when interacting with thermostat","Antifreeze function":"Antifreeze function","Resets all settings to default. Doesn't unpair device.":"Resets all settings to default. Doesn't unpair device.","Heating temperature limit":"Heating temperature limit","Indicator light status: LOW: Off | MEDIUM: On| HIGH: Inverted":"Indicator light status: LOW: Off | MEDIUM: On| HIGH: Inverted","Enable the alarm":"Enable the alarm","Silence the siren":"Silence the siren","LED indicator mode":"LED indicator mode","The threshold to detect window open, between 0.0 and 8.0 in 0.5 °C. Default: 0 (disabled).":"The threshold to detect window open, between 0.0 and 8.0 in 0.5 °C. Default: 0 (disabled).","Brightness of the indicator light":"Brightness of the indicator light",'Operation mode: "auto" - toggle by S/W, "push" - for momentary S/W, "latch" - sync S/W':'Operation mode: "auto" - toggle by S/W, "push" - for momentary S/W, "latch" - sync S/W',"Enable RF pairing mode each button l1, l2, l3":"Enable RF pairing mode each button l1, l2, l3",'Indicates whether "IN" Sensor of the device detected occupancy':'Indicates whether "IN" Sensor of the device detected occupancy','Indicates whether "OUT" Sensor of the device detected occupancy':'Indicates whether "OUT" Sensor of the device detected occupancy','Indicates whether "IN or OUT" Sensor of the device detected occupancy':'Indicates whether "IN or OUT" Sensor of the device detected occupancy','Indicates whether "IN and OUT" Sensor of the device detected occupancy':'Indicates whether "IN and OUT" Sensor of the device detected occupancy',"Run RF pairing mode":"Run RF pairing mode","Counting Freeze ON/OFF, not reporting people value when is ON":"Counting Freeze ON/OFF, not reporting people value when is ON","ToF sensor initial":"ToF sensor initial","Indicate LED enable/disable, default : enable":"Indicate LED enable/disable, default : enable","RF function enable/disable, default : disable":"RF function enable/disable, default : disable","Transation interval, default : 400ms":"Transation interval, default : 400ms","Fast process enable/disable when people 0 to 1. default : enable":"Fast process enable/disable when people 0 to 1. default : enable","Fast process enable/disable when people 1 to 0. default : enable":"Fast process enable/disable when people 1 to 0. default : enable","Format 08:00 / 20:00 / 15 / 60 / MoTuWeThFrSaSu / 1 (08:00 = start time 20:00 = end time 15 = irrigation duration in minutes 60 = pause duration in minutes MoTu..= active weekdays 1 = deactivate timer with 0)":"Format 08:00 / 20:00 / 15 / 60 / MoTuWeThFrSaSu / 1 (08:00 = start time 20:00 = end time 15 = irrigation duration in minutes 60 = pause duration in minutes MoTu..= active weekdays 1 = deactivate timer with 0)","Format 08:00 / 15 / MoTuWeThFrSaSu / 1 (08:00 = start time 15 = duration in minutes MoTu..= active weekdays 1 = deactivate timer with 0)":"Format 08:00 / 15 / MoTuWeThFrSaSu / 1 (08:00 = start time 15 = duration in minutes MoTu..= active weekdays 1 = deactivate timer with 0)","Current water flow in %.":"Current water flow in %.","Last watering duration in seconds.":"Last watering duration in seconds.","Remaning watering time (for auto shutdown). Updates every minute, and every 10s in the last minute.":"Remaning watering time (for auto shutdown). Updates every minute, and every 10s in the last minute.","Set valve to %.":"Set valve to %.","Auto shutdown in seconds.":"Auto shutdown in seconds.","Set valve to % with auto shutdown.":"Set valve to % with auto shutdown.","Directly control the radiator valve. The values range from 0 (valve closed) to 100 (valve fully open)":"Directly control the radiator valve. The values range from 0 (valve closed) to 100 (valve fully open)","How hard the motor pushes the valve. The closer to the boiler, the higher the force needed":"How hard the motor pushes the valve. The closer to the boiler, the higher the force needed","Transmits with higher power when range is not sufficient":"Transmits with higher power when range is not sufficient","Consumed energy":"Consumed energy","Indicates if the alarm is triggered on the voltage drop below the limit, allows to reset alarms":"Indicates if the alarm is triggered on the voltage drop below the limit, allows to reset alarms","Indicates if the alarm is triggered on the voltage rise above the limit, allows to reset alarms":"Indicates if the alarm is triggered on the voltage rise above the limit, allows to reset alarms","Indicates if the alarm is triggered on the active power rise above the limit, allows to reset alarms":"Indicates if the alarm is triggered on the active power rise above the limit, allows to reset alarms","Indicates if the alarm is triggered when the consumption energy limit is reached, allows to reset alarms":"Indicates if the alarm is triggered when the consumption energy limit is reached, allows to reset alarms","Minimum allowable voltage limit for alarms.":"Minimum allowable voltage limit for alarms.","Maximum allowable voltage limit for alarms.":"Maximum allowable voltage limit for alarms.","Maximum allowable power limit for alarms.":"Maximum allowable power limit for alarms.","Limit of electric energy consumption in kW*h. 0 value represents no limit":"Limit of electric energy consumption in kW*h. 0 value represents no limit","RSSI seen by the device":"RSSI seen by the device","LQI seen by the device":"LQI seen by the device","Maximum Heating set point limit":"Maximum Heating set point limit","Minimum Heating set point limit":"Minimum Heating set point limit","Maximum Cooling set point limit":"Maximum Cooling set point limit","Minimum Cooling point limit":"Minimum Cooling point limit","Phase 1 voltage":"Phase 1 voltage","Phase 2 voltage":"Phase 2 voltage","Phase 3 voltage":"Phase 3 voltage","Phase 1 current":"Phase 1 current","Phase 2 current":"Phase 2 current","Phase 3 current":"Phase 3 current","Phase 1 energy":"Phase 1 energy","Phase 2 energy":"Phase 2 energy","Phase 3 energy":"Phase 3 energy","Phase 1 reactive energy":"Phase 1 reactive energy","Phase 2 reactive energy":"Phase 2 reactive energy","Phase 3 reactive energy":"Phase 3 reactive energy","Phase 1 power":"Phase 1 power","Phase 2 power":"Phase 2 power","Phase 3 power":"Phase 3 power","Phase 1 reactive power":"Phase 1 reactive power","Phase 2 reactive power":"Phase 2 reactive power","Phase 3 reactive power":"Phase 3 reactive power",'Specifies the initialisation light level. Can not be set lower than "ballast_minimum_level"':'Specifies the initialisation light level. Can not be set lower than "ballast_minimum_level"',"Enables the LED when the light is turned off, allowing to \n see the switch in the dark":`Enables the LED when the light is turned off, allowing to
1393
+ `,"Temperature 4":"Temperatura 4","Temperature 5":"Temperatura 5","Temperature 6":"Temperatura 6","Temperature 7":"Temperatura 7","Temperature 8":"Temperatura 8","Temperature 9":"Temperatura 9","Specifies the minimum brightness value":"Especifica el valor mínim de brillantor","Specifies the maximum brightness value":"Especifica el valor màxim de brillantor","Allow the device to change brightness":"Permet que el dispositiu canviï la brillantor","Illuminance calibration":"Calibració de la lluminositat","PIR sensor sensitivity":"Sensibilitat del sensor PIR","Device in regulator or thermostat mode.":"Dispositiu en mode regulador o termòstat.","Current state":"Estat actual","Adjust pressure":"Ajustar pressió","Indicates whether the device is being tested":"Indica si el dispositiu està sent testejat","State or sensor value":"Estat o valor del sensor","Not clear how this affects operation. However, it would appear that the device does not execute any motor functions if this is set to false. This may be a means to conserve battery during periods that the heating system is not energized (e.g. during summer). `false` No Heat Available or `true` Heat Available":"No està clar com afecta això al funcionament. Tanmateix, sembla que el dispositiu no executa cap funció del motor si es defineix com a fals. Això pot ser un mitjà per estalviar la bateria durant els períodes en què el sistema de calefacció no està alimentat (per exemple, durant l'estiu). `Fals` No hi ha calor disponible o `Veritat` calor disponible","Current date and time":"Data i hora actuals","Total active power injected":"Potència activa total injectada","Apparent power threshold":"Llindar de potència aparent","Instantaneous apparent power injected":"Potència aparent instantània injectada"},NIt={action:"Acció",angle_y:"Angle I",brightness:"Brillantor",co2:"CO2",color_temp:"Temperatura de color",color_xy:"Color xy",contact:"Contacte",humidity:"Humitat",illuminance:"Lluminositat",occupancy:"Ocupació",pressure:"Pressió",soil_moisture:"Humitat del sòl",state:"Estat",temperature:"Temperatura",tamper:"Manipulació",action_angle:"Angle d'acció",alarm:"Alarma",away_mode:"Mode absent",calibration_time:"Temps calibrat",carbon_monoxide:"Monòxid de carboni",child_lock:"Bloqueig per a nens",color_hs:"Tonalitat/saturació del color",color_temp_startup:"Temperatura de color inicial",consumer_connected:"Usuari connectat",current:"Intensitat",current_heating_setpoint:"Punt d'ajustament de calor",device_temperature:"Temperatura del dispositiu",energy:"Energia",friday_schedule:"Horari de divendres",heating:"Escalfant",holidays_schedule:"Horari de vacances",level_config:"Configuració de nivell",local_temperature:"Temperatura local",local_temperature_calibration:"Calibratge de temperatura local",monday_schedule:"Horari de dilluns",motion_direction:"Direcció del moviment",motion_speed:"Velocitat del moviment",motor_speed:"Velocitat del motor",moving:"Moviment",on_off_transition_time:"Temps de transició On Off",options:"Opcions",position:"Posició",power:"Consum",presence:"Presència",preset:"Preestablert",programming_mode:"Mode Programació",saturday_schedule:"Horari de dissabte",smoke:"Fumo",smoke_density:"Densitat del fum",sunday_schedule:"Horari de diumenge",system_mode:"Mode de sistema",thursday_schedule:"Horari de dimarts",tuesday_schedule:"Horari de dimecres",vibration:"Vibració",voltage:"Voltatge",water_leak:"Fuita d'aigua",week:"Setmana",window:"Finestra",workdays_schedule:"Horari d'entre setmana",operation_mode:"Mode d'operació",effect:"Efecte",linkquality:"Qualitat de l'enllaç",running_state:"Estat d'execució",battery:"Bateria",pin_code:"Codi PIN",user:"Usuari",user_type:"Tipus d'usuari",power_outage_memory:"Memòria per a talls d'energia",led_disabled_night:"Led deshabilitat a la nit",illuminance_lux:"Lluminositat lux",available_switches:"Interruptors disponibles",switch_type:"Tipus d'interruptor",battery_low:"Bateria baixa",interlock:"Commutat",strength:"Força",sensitivity:"Sensibilitat",selftest:"Autodiagnòstic",auto_off:"Apagat automàtic",motion_sensitivity:"Sensibilitat al moviment",occupancy_timeout:"Temps d'espera de l'ocupació",countdown_timer:"Temporitzador de compte enrere",voltage_rms:"Voltatge rms",current_average:"Mitjana actual",energy_consumed:"Energia consumida",clear_device_data:"Esborra les dades del dispositiu",radar_sensitivity:"Sensibilitat del radar",radar_scene:"Escena de radar",o_sensitivity:"Sensibilitat O",v_sensitivity:"Sensibilitat V",led_status:"Estat del LED",power_on_behavior:"Comportament a l'encesa",max_temperature:"Màxima temperatura",min_temperature:"Temperatura mínima",comfort_temperature:"Temperatura de Comfort",eco_temperature:"Temperatura Ressò",away_preset_days:"Dies preestablerts absents",boost_time:"Temps d'impulsió",force:"Forçar",away_preset_temperature:"Temperatura preestablerta absent",calibration:"Calibració",motor_reversal:"Inversió del motor",backlight_mode:"Mode llum de fons",timer:"Temporitzador",timer_time_left:"Temps restant del temporitzador",water_consumed:"Aigua consumida",motor_direction:"Direcció del motor",monday:"dilluns",tuesday:"dimarts",wednesday:"dimecres",thursday:"dijous",friday:"divendres",saturday:"dissabte",sunday:"diumenge",pm25:"PM₂.₅",air_quality:"Qualitat de l'aire",replace_filter:"Substituïu el filtre",aqi:"AQI",pm10:"PM₁₀",battery_state:"Estat de la bateria",threshold:"Llindar",sensors_type:"Tipus de sensors",sensors_count:"Recompte de sensors",voltage_phase_b:"Voltatge fase B",current_phase_c:"Intensitat fase C",voltage_phase_c:"Voltatge fase C",noise:"soroll",noise_detected:"soroll detectat",door_state:"estat de la porta",status:"estat",temperature_sensitivity:"sensibilitat temperatura",valve_state:"estat de la vàlvula",IINST:"IINST",IINST2:"IINST2",IINST3:"IINST3",IMAX:"IMAX",IMAX2:"IMAX2",IMAX3:"IMAX3",PMAX:"PMAX",PAPP:"PAPP",PTEC:"PTEC",HHPHC:"HHPHC",PPOT:"PPOT",PEJP:"PEJP",ADPS:"ADPS",ADIR1:"ADIR1",ADIR2:"ADIR2",ADIR3:"ADIR3",LTARF:"LTARF",NTARF:"NTARF",VTIC:"VTIC",DATE:"DATA","SMAXIN-1":"SMAXIN-1",CCASN:"CCASN","CCASN-1":"CCASN-1",CCAIN:"CCAIN","CCAIN-1":"CCAIN-1",UMOY1:"UMOY1",UMOY2:"UMOY2",UMOY3:"UMOY3",SINSTS2:"SINSTS2",SINSTS3:"SINSTS3",SMAXN2:"SMAXN2",SMAXN3:"SMAXN3","SMAXN-1":"SMAXN-1","SMAXN2-1":"SMAXN2-1","SMAXN3-1":"SMAXN3-1",MSG1:"MSG1",MSG2:"MSG2",PRM:"PRM",DPM1:"DPM1",FPM1:"FPM1",DPM2:"DPM2",FPM2:"FPM2",DPM3:"DPM3",FPM3:"FPM3",NJOURF:"NJOURF","NJOURF+1":"NJOURF+1","PJOURF+1":"PJOURF+1",PPOINTE1:"PPOINTE1"},FIt={add_to_group:"Afegeix a un grup",create_group:"Crea grup",new_group_id:"Nou id de grup",new_group_id_placeholder:"Especifica l'id de grup si cal",new_group_name:"Nou nom de grup",new_group_name_placeholder:"exemple: llums_del_dormitori",remove_group:"Elimina grup",group_id:"ID del Grup",group_name:"Nom del Grup",group_members:"Membres del Grup",group_scenes:"Escenes del Grup"},jIt={empty_logs_message:"No hi ha res a mostrar",filter_by_text:"Filtra per text",show_only:"Mostra només"},HIt={help_coordinator_link_description:"Les línies contínues són l'enllaç al Coordinador",help_end_device_description:"Verd significa dispositiu final",help_is_coordinator:"és el coordinador",help_lqi_description:"La qualitat de l'enllaç està entre 0 - 255 (com més alt millor), valors amb / representen múltiples tipus d'enllaços",help_router_description:"Blau significa encaminador",help_router_links_description:"Les línies discontínues són l'enllaç amb els encaminadors",hide:"Fes clic per amagar",load:"Carrega mapa",loading:"Depenent de la mida de la vostra xarxa, pot trigar entre 10 segons i 2 minuts."},BIt={all:"Tots",dashboard:"Tauler",devices:"Dispositius",disable_join:"Deshabilita unir-se",groups:"Grups",logs:"Registres",map:"Mapa",permit_join:"Permetre unir-se",restart:"Reinicia",settings:"Configuració",toggle_dropdown:"Alterna desplegable"},WIt={check:"Comprova actualitzacions",check_all:"Comprovar-ho tot",empty_ota_message:"No tens cap dispositiu compatible amb OTA",remaining_time:"Temps restant {{- remaining}}",update:"Actualitza microprogramari del dispositiu"},UIt={about:"Quant a",advanced:"Avançat",availability:"Disponibilitat",blocklist:"Bloquejats",coordinator_revision:"Versió de Coordinador",coordinator_type:"Tipus de Coordinador",donate:"Donacions",donation_text:["Hola, %username%, d'aquesta forma pots agrair pel treball tan dur que fem","No dubtis també a dir alguna cosa bona ;)"],download_state:"Descarrega l'estat",external_converters:"Convertidors externs",frontend:"Interfície",frontend_version:"Versió d'Interfície",main:"Principal",ota:"Actualitzacions OTA",passlist:"Llista d'accés",raw:"En cru",restart_zigbee2mqtt:"Reinicia Zigbee2MQTT",settings:"Configuració",tools:"Eines",zigbee2mqtt_version:"Versió de Zigbee2MQTT",translate:"Tradueix",stats:"Estadístiques"},VIt={detected_devices_message:"S'han detectat {{count}} dispositius touchlink.",rescan:"Cerca de nou",scan:"Cerca"},GIt={clear:"Clar",closed:"Tancat",false:"Fals",not_supported:"No suportat",occupied:"Ocupat",open:"Obert",supported:"Suportat",true:"Vertader",empty_string:'Cadena buida ("")',leaking:"Fuita",tampered:"Manipulat",null:"Nul",Clear:"Clar",Closed:"Tancat",Occupied:"Ocupat",Open:"Obert"},qIt={actions:"Accions",attribute:"Atribut",battery:"Bateria",block_join:"Bloqueja per no tornar-se a unir",cluster:"Clúster",dc_source:"Font CC",description:"Descripció",device_type:"Tipus de dispositiu",endpoint:"Dispositiu final",firmware_build_date:"Data del firmware",firmware_version:"Versió de firmware",force_remove:"Força l'eliminació",friendly_name:"Nom amigable",ieee_address:"Direcció IEEE",input_clusters:"Clústers entrada",interview_completed:"Entrevista completa",interview_failed:"Entrevista fallida",interviewing:"Entrevistant",last_seen:"Ultima vegada vist",mains_single_phase:"Xarxa (monofàsica)",manufacturer:"Fabricant",max_rep_interval:"Interval Max de replicació",min_rep_change:"Canvi mínim de replicació",min_rep_interval:"Interval mínim de replicació",network_address:"Direcció de xarxa",none:"Cap",output_clusters:"Clústers de sortida",pic:"Foto",power:"Alimentació",power_level:"Nivell de bateria",reconfigure:"Reconfigura",remove_device:"Elimina dispositiu",rename_device:"Reanomena dispositiu",select_attribute:"Selecciona atribut",select_cluster:"Selecciona cluster",support_status:"Suportat",unsupported:"No suportat",updating_firmware:"S'està actualizant el programari",update_Home_assistant_entity_id:"Actualitzar l'ID d'entitat de Home Assistant",zigbee_manufacturer:"Fabricant Zigbee",zigbee_model:"Model Zigbee",device:"Dispositiu",channel:"Canal",available:"Disponible",execute:"Executa",command:"Ordre"},KIt={scene_id:"ID d'escena",recall:"Rellamar",store:"Desa",remove:"Elimina",remove_all:"Elimina-ho tot",add:"Afegeix",select_scene:"Selecciona Escena",scene_name:"Nom d'Escena"},ZIt={byType:"Per tipus de dispositiu",byPowerSource:"Per tipus d'alimentació",byVendor:"Per fabricant",byModel:"Per model",EndDevice:"Dispositius finals",Router:"Encaminador"},QIt={avaliability:"Disponibilitat",offline:"Fora de línia",online:"En línia",disabled:"Desactivat",enabled:"Activat"},YIt={"Allow new devices to join (re-applied at restart)":"Permet que s'uneixin dispositius nous (es torna a aplicar en reiniciar)","You can define external converters to e.g. add support for a DiY device":"Podeu definir convertidors externs p. e. afegir suport per a un dispositiu DiY.","Options for active devices (routers/mains powered)":"Opcions per a dispositius actius (encaminadors/dispositius alimentats)","Options for passive devices (mostly battery powered)":"Opcions per a dispositius passius (principalment dispositius a bateria)","Checks whether devices are online/offline":"Comprova si els dispositius estan en línia o fora de línia","Disable self-signed SSL certificate":"Desactiva el certificat SSL autosignat","Location of the adapter. To autodetect the port, set null":"Ubicació de l'adaptador. Per detectar automàticament el port, definiu-lo com a null","Disable LED of the adapter if supported":"Desactiveu el LED de l'adaptador si és compatible","Adapter type, not needed unless you are experiencing problems":"Tipus d'adaptador, no és necessari tret que tingueu problemes","Transmit power of adapter, only available for Z-Stack (CC253*/CC2652/CC1352) adapters, CC2652 = 5dbm, CC1352 max is = 20dbm (5dbm default)":"Potència de transmissió de l'adaptador, només disponible per als adaptadors Z-Stack (CC253*/CC2652/CC1352), CC2652 = 5 dbm, CC1352 màxim = 20 dbm (5 dbm per defecte)","Zigbee channel, changing requires repairing all devices! (Note: use a ZLL channel: 11, 15, 20, or 25 to avoid Problems)":"Canal Zigbee, si es canvia requereix tornar a aparellar tots els dispositius! (Nota: utilitzeu un canal ZLL: 11, 15, 20 o 25 per evitar problemes)","MQTT message payload will contain all attributes, not only changed ones. Has to be true when integrating via Home Assistant":"La càrrega útil del missatge MQTT contindrà tots els atributs, no només els modificats. Ha de ser cert quan s'integra mitjançant Home Assistant","Persist cached state, only used when cache_state: true":"Manté la memòria cau, només s'utilitza quan cache_state: true","Send cached state on startup, only used when cache_state: true":"Envia l'estat de memòria cau a l'inici, només s'utilitza quan cache_state: true","Log file name, can also contain timestamp":"Nom del fitxer de registre, també pot contenir marca de temps","Baud rate speed for serial port, this can be anything firmware support but default is 115200 for Z-Stack and EZSP, 38400 for Deconz, however note that some EZSP firmware need 57600":"Velocitat de transmissió per al port serial, això pot ser compatible amb qualsevol firmware, però per defecte és 115200 per a Z-Stack i EZSP, 38400 per a Deconz, però tingueu en compte que alguns firmware EZSP necessiten 57600","RTS / CTS Hardware Flow Control for serial port":"Control de flux de maquinari RTS / CTS per al port serial","Log timestamp format":"Format de marca de temps del registre","Adapter concurrency (e.g. 2 for CC2531 or 16 for CC26X2R1) (default: null, uses recommended value)":"Concurrència de l'adaptador (p. ex., 2 per a CC2531 o 16 per a CC26X2R1) (per defecte: nul, utilitza el valor recomanat)","Adapter delay":"Retard de l'adaptador","Use IKEA TRADFRI OTA test server, see OTA updates documentation":"Utilitzeu el servidor de proves OTA d'IKEA TRADFRI, consulteu la documentació de les actualitzacions OTA","Your device may request a check for a new firmware update. This value determines how frequently third party servers may actually be contacted to look for firmware updates. The value is set in minutes, and the default is 1 day.":"És possible que el vostre dispositiu sol·liciti una comprovació d'una nova actualització del microprogramari. Aquest valor determina la freqüència amb què realment es poden contactar amb servidors de tercers per buscar actualitzacions de microprogramari. El valor s'estableix en minuts i el valor predeterminat és 1 dia.","Zigbee devices may request a firmware update, and do so frequently, causing Zigbee2MQTT to reach out to third party servers. If you disable these device initiated checks, you can still initiate a firmware update check manually.":"Els dispositius Zigbee poden sol·licitar una actualització de microprogramari, i ho fan amb freqüència, fent que Zigbee2MQTT arribi a servidors de tercers. Si desactiveu aquestes comprovacions iniciades pel dispositiu, encara podeu iniciar una comprovació d'actualització del microprogramari manualment.","Frontend binding port":"Port de la interfície","URL on which the frontend can be reached, currently only used for the Home Assistant device configuration page":"URL on es pot accedir a la interfície, actualment només s'utilitza per a la pàgina de configuració del dispositiu de Home Assistant"},XIt={"Permit join":"Permet unir-se","External converters":"Convertidors externs",Availability:"Disponibilitat",Adapter:"Adaptador","Transmit power":"Potència de transmissió","ZigBee channel":"Canal ZigBee","Cache state":"Estat de la memòria cau","Persist cache state":"Estat de la memòria cau persistent","Send cached state on startup":"Envia l'estat de memòria cau a l'inici","Log level":"Nivell de registre",Baudrate:"Velocitat de transmissió","Timestamp format":"Format de marca de temps","Adapter concurrency":"Concurrència de l'adaptador","Adapter delay":"Retard de l'adaptador","IKEA TRADFRI OTA use test url":"Utilitza l'URL de prova OTA d'IKEA TRADFRI","Disable automatic update check":"Desactiva la comprovació automàtica d'actualitzacions",Frontend:"Interfície","Availability (simple)":"Disponibilitat (simple)","Availability (advanced)":"Disponibilitat (avançada)","Frontend (simple)":"Interfície (simple)","Frontend (advanced)":"Interfície (avançada)","Baudrate (deprecated)":"Velocitat de transmissió (obsolet)","RTS / CTS (deprecated)":"RTS / CTS (obsolet)","IKEA TRADFRI OTA use test url (deprecated)":"Utilitza l'URL de prova OTA d'IKEA TRADFRI (obsolet) "},JIt={common:LIt,devicePage:RIt,exposes:PIt,extensions:zIt,featureDescriptions:$It,featureNames:NIt,groups:FIt,logs:jIt,map:HIt,navbar:BIt,ota:WIt,settings:UIt,touchlink:VIt,values:GIt,zigbee:qIt,scene:KIt,stats:ZIt,avaliability:QIt,settingsSchemaDescriptions:YIt,settingsSchemaTitles:XIt},ext={action:"Action",actions:"Actions",apply:"Apply",attribute:"Attribute",bind:"Bind",check_all:"Check all",clear:"Clear",close:"Close",cluster:"Cluster",clusters:"Clusters",confirmation:"Confirmation prompt",delete:"Delete",destination:"Destination",devices:"Devices",dialog_confirmation_prompt:"Are you sure?",disable:"Disable",enter_search_criteria:"Enter search criteria",groups:"Groups",loading:"Loading...",none:"None",ok:"OK",read:"Read",save:"Save",select_device:"Select device",select_endpoint:"Select endpoint",source_endpoint:"Source endpoint",the_only_endpoint:"The only endpoint",unbind:"Unbind",write:"Write",destination_endpoint:"Destination endpoint"},txt={about:"About",bind:"Bind",clusters:"Clusters",dev_console:"Dev console",reporting:"Reporting",settings:"Settings",settings_specific:"Settings (specific)",state:"State",scene:"Scene",unknown_device:"Unknown device",exposes:"Exposes",type_to_filter:"Type to filter...",select_a_device:"Select a device"},rxt={empty_exposes_definition:"Empty exposes definition"},axt={create_new_extension:"Create new extension",extension_name_propmt:"Enter new extension name",select_extension_to_edit:"Select extension to edit"},nxt={3:"3","Auto off after specific time.":"Auto off after specific time.","Away mode":"Away mode","Away preset days":"Away preset days","Away preset temperature":"Away preset temperature","Boost time":"Boost time","Brightness of this light":"Brightness of this light","Calibration time":"Calibration time","Color of this light expressed as hue/saturation":"Color of this light expressed as hue/saturation","Color of this light in the CIE 1931 color space (x/y)":"Color of this light in the CIE 1931 color space (x/y)","Color temperature after cold power on of this light":"Color temperature after cold power on of this light","Color temperature of this light":"Color temperature of this light","Comfort temperature":"Comfort temperature","Controls the behavior when the device is powered on":"Controls the behavior when the device is powered on","Controls the behaviour when the device is powered on":"Controls the behaviour when the device is powered on","Current temperature measured on the device":"Current temperature measured on the device","Decoupled mode for center button":"Decoupled mode for center button","Decoupled mode for left button":"Decoupled mode for left button","Decoupled mode for right button":"Decoupled mode for right button","Eco temperature":"Eco temperature","Enable/disable auto lock":"Enable/disable auto lock","Enable/disable away mode":"Enable/disable away mode","Enables/disables physical input on the device":"Enables/disables physical input on the device","Enables/disables window detection on the device":"Enables/disables window detection on the device","Enabling prevents both relais being on at the same time":"Enabling prevents both relais being on at the same time","Force the valve position":"Force the valve position","Indicates if CO (carbon monoxide) is detected":"Indicates if CO (carbon monoxide) is detected","Indicates if the battery of this device is almost empty":"Indicates if the battery of this device is almost empty","Indicates if the contact is closed (= true) or open (= false)":"Indicates if the contact is closed (= true) or open (= false)","Indicates whether the device detected a water leak":"Indicates whether the device detected a water leak","Indicates whether the device detected occupancy":"Indicates whether the device detected occupancy","Indicates whether the device detected smoke":"Indicates whether the device detected smoke","Indicates whether the device is tampered":"Indicates whether the device is tampered","Instantaneous measured electrical current":"Instantaneous measured electrical current","Instantaneous measured power":"Instantaneous measured power","Link quality (signal strength)":"Link quality (signal strength)","Maximum temperature":"Maximum temperature","Measured electrical potential value":"Measured electrical potential value","Measured illuminance in lux":"Measured illuminance in lux","Measured relative humidity":"Measured relative humidity","Measured temperature value":"Measured temperature value","Minimum temperature":"Minimum temperature","Mode of this device (similar to system_mode)":"Mode of this device (similar to system_mode)","Mode of this device":"Mode of this device","Motor speed":"Motor speed","Offset to be used in the local_temperature":"Offset to be used in the local_temperature","On/off state of the switch":"On/off state of the switch","On/off state of this light":"On/off state of this light","Position of this cover":"Position of this cover",Position:"Position","Raw measured illuminance":"Raw measured illuminance","Recover state after power outage":"Recover state after power outage","Remaining battery in %":"Remaining battery in %","Side of the cube":"Side of the cube","Sum of consumed energy":"Sum of consumed energy","Temperature setpoint":"Temperature setpoint","The measured atmospheric pressure":"The measured atmospheric pressure","Triggered action (e.g. a button click)":"Triggered action (e.g. a button click)","Triggers an effect on the light (e.g. make light blink for a few seconds)":"Triggers an effect on the light (e.g. make light blink for a few seconds)","Voltage of the battery in millivolts":"Voltage of the battery in millivolts","Week format user for schedule":"Week format user for schedule",'Boost Heating: press and hold "+" for 3 seconds, the device will enter the boost heating mode, and the ▷╵◁ will flash. The countdown will be displayed in the APP':'Boost Heating: press and hold "+" for 3 seconds, the device will enter the boost heating mode, and the ▷╵◁ will flash. The countdown will be displayed in the APP',"Boost Time Setting 100 sec - 900 sec, (default = 300 sec)":"Boost Time Setting 100 sec - 900 sec, (default = 300 sec)","Countdown in minutes":"Countdown in minutes","ECO mode (energy saving mode)":"ECO mode (energy saving mode)","Indicates whether the device detected presence":"Indicates whether the device detected presence","Indicates whether the device detected vibration":"Indicates whether the device detected vibration","Schedule MODE ⏱ - In this mode, the device executes a preset week programming temperature time and temperature.":"Schedule MODE ⏱ - In this mode, the device executes a preset week programming temperature time and temperature.","Speed of movement":"Speed of movement","Window status closed or open ":"Window status closed or open ","Alarm temperature max":"Alarm temperature max","Alarm temperature min":"Alarm temperature min","Alarm humidity status":"Alarm humidity status","Alarm temperature status":"Alarm temperature status","Measured soil moisture value":"Measured soil moisture value","The current running state":"The current running state","Position of the valve (= demanded heat) where 0% is fully closed and 100% is fully open":"Position of the valve (= demanded heat) where 0% is fully closed and 100% is fully open","State of the lock":"State of the lock","Actual state of the lock":"Actual state of the lock","User ID to set or clear the pincode for":"User ID to set or clear the pincode for","Whether the user is enabled/disabled":"Whether the user is enabled/disabled","Pincode to set, set pincode to null to clear":"Pincode to set, set pincode to null to clear","Click mode, fast: only supports single click which will be send immediately after clicking, multi: supports more events like double and hold":"Click mode, fast: only supports single click which will be send immediately after clicking, multi: supports more events like double and hold","Click mode, fast: only supports single click which will be send immediately after clicking.multi: supports more events like double and hold":"Click mode, fast: only supports single click which will be send immediately after clicking.multi: supports more events like double and hold","Button mode":"Button mode","Rotation angle":"Rotation angle","Rotation angle speed":"Rotation angle speed","Rotation percent":"Rotation percent","Rotation percent speed":"Rotation percent speed","Rotation time":"Rotation time","Enable/disable the power outage memory, this recovers the on/off mode after power failure":"Enable/disable the power outage memory, this recovers the on/off mode after power failure","Enable/disable the LED at night":"Enable/disable the LED at night","Disables the physical switch button":"Disables the physical switch button","Maximum allowed load, turns off if exceeded":"Maximum allowed load, turns off if exceeded","Control both relay and usb or only the relay with the physical switch button":"Control both relay and usb or only the relay with the physical switch button","Time interval in seconds to report after light changes":"Time interval in seconds to report after light changes","Decoupled mode":"Decoupled mode","Indicates whether a plug is physically attached. Device does not have to pull power or even be connected electrically (state of this binary switch can be ON even if main power switch is OFF)":"Indicates whether a plug is physically attached. Device does not have to pull power or even be connected electrically (state of this binary switch can be ON even if main power switch is OFF)","Measured VOC value":"Measured VOC value","Anti flicker mode can be used to solve blinking issues of some lights.Quick mode makes the device respond faster.":"Anti flicker mode can be used to solve blinking issues of some lights.Quick mode makes the device respond faster.","Decoupled mode for button":"Decoupled mode for button",'Operation mode, select "command" to enable bindings (wake up the device before changing modes!)':'Operation mode, select "command" to enable bindings (wake up the device before changing modes!)',"Enable standby":"Enable standby","Display theme":"Display theme","Beep volume":"Beep volume","LCD brightness (will not persist if auto-brightness is enabled)":"LCD brightness (will not persist if auto-brightness is enabled)","Interface language":"Interface language","Screen saver style":"Screen saver style","Display standby time":"Display standby time","Display font size":"Display font size","Enable LCD auto brightness":"Enable LCD auto brightness","Default display homepage":"Default display homepage","Enable screen saver":"Enable screen saver","Standby LCD brightness":"Standby LCD brightness","Control which switches are available in the switches screen (none disables switches screen)":"Control which switches are available in the switches screen (none disables switches screen)","Switch 1 text and icon":"Switch 1 text and icon",Icon:"Icon",Text:"Text","Switch 2 text and icon":"Switch 2 text and icon","Switch 3 text and icon":"Switch 3 text and icon","Wall switch type":"Wall switch type","Temperature of the device":"Temperature of the device","Indicates whether the device detected gas":"Indicates whether the device detected gas","Test mode activated":"Test mode activated","If the power is constantly lower than 2W within half an hour, the plug will be automatically turned off":"If the power is constantly lower than 2W within half an hour, the plug will be automatically turned off","Device temperature (polled every 30 min)":"Device temperature (polled every 30 min)","Turn the device automatically off when attached device consumes less than 2W for 20 minutes":"Turn the device automatically off when attached device consumes less than 2W for 20 minutes","Operation mode for left button":"Operation mode for left button","Operation mode for right button":"Operation mode for right button","Detected by sudden temperature drop or set manually.":"Detected by sudden temperature drop or set manually.","Manually set window_open, ~1 minute to take affect.":"Manually set window_open, ~1 minute to take affect.","Pin code introduced.":"Pin code introduced.","Last action transaction number.":"Last action transaction number.","Alarm zone. Default value 0":"Alarm zone. Default value 0","Tilt of this cover":"Tilt of this cover","Configure genLevelCtrl":"Configure genLevelCtrl","Represents the time taken to move to or from the target level when On of Off commands are received by an On/Off cluster":"Represents the time taken to move to or from the target level when On of Off commands are received by an On/Off cluster","Represents the time taken to move the current level from the minimum level to the maximum level when an On command is received":"Represents the time taken to move the current level from the minimum level to the maximum level when an On command is received","Represents the time taken to move the current level from the maximum level to the minimum level when an Off command is received":"Represents the time taken to move the current level from the maximum level to the minimum level when an Off command is received","Defines the desired startup level for a device when it is supplied with power":"Defines the desired startup level for a device when it is supplied with power","Specifies the minimum light output the ballast can achieve.":"Specifies the minimum light output the ballast can achieve.","Specifies the maximum light output the ballast can achieve.":"Specifies the maximum light output the ballast can achieve.","Specifies the minimum light output of the ballast":"Specifies the minimum light output of the ballast","Specifies the maximum light output of the ballast":"Specifies the maximum light output of the ballast","Specifies the minimum light output after switching on":"Specifies the minimum light output after switching on","The dimmer supports AC forward phase control.":"The dimmer supports AC forward phase control.","The dimmer supports AC reverse phase control.":"The dimmer supports AC reverse phase control.","The dimmer is capable of measuring the reactanceto distinguish inductive and capacitive loads.":"The dimmer is capable of measuring the reactance to distinguish inductive and capacitive loads.","The dimmer is capable of replacing the built-in, default dimming curve.":"The dimmer is capable of replacing the built-in, default dimming curve.","The dimmer is capable of detecting an output overload and shutting the output off.":"The dimmer is capable of detecting an output overload and shutting the output off.","The dimmer is currently operating in AC forward phase control mode.":"The dimmer is currently operating in AC forward phase control mode.","The dimmer is currently operating in AC reverse phase control mode.":"The dimmer is currently operating in AC reverse phase control mode.","The output is currently turned off, because the dimmer has detected an overload.":"The output is currently turned off, because the dimmer has detected an overload.","The dimmer's reactance discriminator had detected a capacitive load.":"The dimmer's reactance discriminator had detected a capacitive load.","The dimmer's reactance discriminator had detected an inductive load.":"The dimmer's reactance discriminator had detected an inductive load.","Configures the dimming technique.":"Configures the dimming technique.",'Operation mode: "command" - for group control, "event" - for clicks':'Operation mode: "command" - for group control, "event" - for clicks',"direction of movement from the point of view of the radar":"direction of movement from the point of view of the radar","sensitivity of the radar":"sensitivity of the radar","O-Sensitivity mode":"O-Sensitivity mode","V-Sensitivity mode":"V-Sensitivity mode","Led status switch":"Led status switch","Vacancy delay":"Vacancy delay","Light-On luminance prefer":"Light-On luminance prefer","Light-Off luminance prefer":"Light-Off luminance prefer","Working mode":"Working mode","Luminance level":"Luminance level","Reference luminance":"Reference luminance","Vacant confirm time":"Vacant confirm time","Volume of siren":"Volume of siren","Switch type settings":"Switch type settings","Minimum light brightness":"Minimum light brightness","Device valve is open or closed (heating or not)":"Device valve is open or closed (heating or not)",'MANUAL MODE ☝ - In this mode, the device executes manual temperature setting. When the set temperature is lower than the "minimum temperature", the valve is closed (forced closed). AUTO MODE ⏱ - In this mode, the device executes a preset week programming temperature time and temperature. ON - In this mode, the thermostat stays open OFF - In this mode, the thermostat stays closed':'MANUAL MODE ☝ - In this mode, the device executes manual temperature setting. When the set temperature is lower than the "minimum temperature", the valve is closed (forced closed). AUTO MODE ⏱ - In this mode, the device executes a preset week programming temperature time and temperature. ON - In this mode, the thermostat stays open OFF - In this mode, the thermostat stays closed',"Auto MODE ⏱ - In this mode, the device executes a preset week programming temperature time and temperature. ":"Auto MODE ⏱ - In this mode, the device executes a preset week programming temperature time and temperature. ","Enables/disables the status on the device":"Enables/disables the status on the device","Open window temperature":"Open window temperature","Holiday temperature":"Holiday temperature","Setting minimum 0 - maximum 465 seconds boost time. The boost (♨) function is activated. The remaining time for the function will be counted down in seconds ( 465 to 0 ).":"Setting minimum 0 - maximum 465 seconds boost time. The boost (♨) function is activated. The remaining time for the function will be counted down in seconds ( 465 to 0 ).","Is the device online":"Is the device online","The holiday mode( ⛱ ) will automatically start at the set time starting point and run the holiday temperature.":"The holiday mode( ⛱ ) will automatically start at the set time starting point and run the holiday temperature.","Auto Mode ⏱ - In this mode, the device executes a preset week programming temperature time and temperature. ":"Auto Mode ⏱ - In this mode, the device executes a preset week programming temperature time and temperature. ","Error status":"Error status","The measured CO2 (carbon dioxide) value":"The measured CO2 (carbon dioxide) value","The measured formaldehyd value":"The measured formaldehyd value","Mode of the warning (sound effect)":"Mode of the warning (sound effect)","Sound level":"Sound level","Intensity of the strobe":"Intensity of the strobe","Turn on/off the strobe (light) during warning":"Turn on/off the strobe (light) during warning","Length of the flash cycle":"Length of the flash cycle","Duration in seconds of the alarm":"Duration in seconds of the alarm","Indicates if the device is moving":"Indicates if the device is moving","Accelerometer X value":"Accelerometer X value","Accelerometer Y value":"Accelerometer Y value","Accelerometer Z value":"Accelerometer Z value","Trigger beep for x seconds":"Trigger beep for x seconds","Control status LED when load ON":"Control status LED when load ON","Control status LED when load OFF":"Control status LED when load OFF","Control minimum dimmer brightness":"Control minimum dimmer brightness","Control backlight dimming behavior":"Control backlight dimming behavior","People count":"People count","Icon shown on device displays":"Icon shown on device displays","Calibrates valve on next wakeup":"Calibrates valve on next wakeup","Controls piloting mode":"Controls piloting mode","Controls Capacitive or Inductive Dimming Mode":"Controls Capacitive or Inductive Dimming Mode","Auto off after specific time":"Auto off after specific time","Auto off timer time left":"Auto off timer time left","Time the valve was open when state on":"Time the valve was open when state on","Liters of water consumed":"Liters of water consumed","Is the unit in mounting mode. This is set to `false` for mounted (already on the radiator) or `true` for not mounted (after factory reset)":"Is the unit in mounting mode. This is set to `false` for mounted (already on the radiator) or `true` for not mounted (after factory reset)","Set the unit mounting mode. `false` Go to Mounted Mode or `true` Go to Mounting Mode":"Set the unit mounting mode. `false` Go to Mounted Mode or `true` Go to Mounting Mode","Thermostat Orientation. This is important for the PID in how it assesses temperature. `false` Horizontal or `true` Vertical":"Thermostat Orientation. This is important for the PID in how it assesses temperature. `false` Horizontal or `true` Vertical","Viewing/Display Direction. `false` Horizontal or `true` Vertical":"Viewing/Display Direction. `false` Horizontal or `true` Vertical","Whether or not the unit needs warm water. `false` No Heat Request or `true` Heat Request":"Whether or not the unit needs warm water. `false` No Heat Request or `true` Heat Request","Values observed are `0` (manual), `1` (schedule) or `2` (externally)":"Values observed are `0` (manual), `1` (schedule) or `2` (externally)","0=Quarantine, 1=Windows are closed, 2=Hold - Windows are maybe about to open, 3=Open window detected, 4=In window open state from external but detected closed locally":"0=Quarantine, 1=Windows are closed, 2=Hold - Windows are maybe about to open, 3=Open window detected, 4=In window open state from external but detected closed locally","Set if the window is open or close. This setting will trigger a change in the internal window and heating demand. `false` (windows are closed) or `true` (windows are open)":"Set if the window is open or close. This setting will trigger a change in the internal window and heating demand. `false` (windows are closed) or `true` (windows are open)","Exercise day of week: 0=Sun...6=Sat, 7=undefined":"Exercise day of week: 0=Sun...6=Sat, 7=undefined","Exercise trigger time. Minutes since midnight (65535=undefined). Range 0 to 1439":"Exercise trigger time. Minutes since midnight (65535=undefined). Range 0 to 1439",'Scale factor of setpoint filter timeconstant ("aggressiveness" of control algorithm) 1= Quick ... 5=Moderate ... 10=Slow':'Scale factor of setpoint filter timeconstant ("aggressiveness" of control algorithm) 1= Quick ... 5=Moderate ... 10=Slow',"Whether or not the thermostat acts as standalone thermostat or shares load with other thermostats in the room. The gateway must update load_room_mean if enabled.":"Whether or not the thermostat acts as standalone thermostat or shares load with other thermostats in the room. The gateway must update load_room_mean if enabled.","Load estimate on this radiator":"Load estimate on this radiator","Blink green LED on motion detection":"Blink green LED on motion detection","Ac louver position of this device":"Ac louver position of this device","On/off state of this fan":"On/off state of this fan","Mode of this fan":"Mode of this fan","Sound volume of the lock":"Sound volume of the lock","Auto relock after 7 seconds.":"Auto relock after 7 seconds.","Do not disturb mode":"Do not disturb mode","Power on behavior state":"Power on behavior state",'MANUAL MODE ☝ - In this mode, the device executes manual temperature setting. When the set temperature is lower than the "minimum temperature", the valve is closed (forced closed). PROGRAMMING MODE ⏱ - In this mode, the device executes a preset week programming temperature time and temperature. HOLIDAY MODE ⛱ - In this mode, for example, the vacation mode is set for 10 days and the temperature is setto 15 degrees Celsius. After 10 days, the device will automatically switch to programming mode. TEMPORARY MANUAL MODE - In this mode, ☝ icon will flash. At this time, the device executes the manually set temperature and returns to the weekly programming mode in the next time period. ':'MANUAL MODE ☝ - In this mode, the device executes manual temperature setting. When the set temperature is lower than the "minimum temperature", the valve is closed (forced closed). PROGRAMMING MODE ⏱ - In this mode, the device executes a preset week programming temperature time and temperature. HOLIDAY MODE ⛱ - In this mode, for example, the vacation mode is set for 10 days and the temperature is setto 15 degrees Celsius. After 10 days, the device will automatically switch to programming mode. TEMPORARY MANUAL MODE - In this mode, ☝ icon will flash. At this time, the device executes the manually set temperature and returns to the weekly programming mode in the next time period. ',"PROGRAMMING MODE ⏱ - In this mode, the device executes a preset week programming temperature time and temperature. You can set up to 4 stages of temperature every for WEEKDAY ➀➁➂➃➄, SATURDAY ➅ and SUNDAY ➆.":"PROGRAMMING MODE ⏱ - In this mode, the device executes a preset week programming temperature time and temperature. You can set up to 4 stages of temperature every for WEEKDAY ➀➁➂➃➄, SATURDAY ➅ and SUNDAY ➆.","Maximum temperature limit":"Maximum temperature limit","Select temperature sensor to use":"Select temperature sensor to use","Mode of the fan":"Mode of the fan","Motor options":"Motor options","Motor direction":"Motor direction","Motor is moving":"Motor is moving","Controls behaviour of led/siren on alarm":"Controls behaviour of led/siren on alarm","Alarm zone. Default value 23":"Alarm zone. Default value 23","Measured eCO2 value":"Measured eCO2 value","Temperature setpoint automatic":"Temperature setpoint automatic","Open window detection temperature":"Open window detection temperature","Open window time in minute":"Open window time in minute","Unknown binary one":"Unknown binary one","Unknown binary two":"Unknown binary two","Start away year 20xx":"Start away year 20xx","Start away month":"Start away month","Start away day":"Start away day","Start away hours":"Start away hours","Start away minutes":"Start away minutes","Temperature 1":"Temperature 1","Hour TO for temp 1":"Hour TO for temp 1","Minute TO for temp 1":"Minute TO for temp 1","Temperature 2":"Temperature 2","Hour TO for temp 2":"Hour TO for temp 2","Minute TO for temp 2":"Minute TO for temp 2","Temperature 3":"Temperature 3","Hour TO for temp 3":"Hour TO for temp 3","Minute TO for temp 3":"Minute TO for temp 3","Temperature 4":"Temperature 4","Hour TO for temp 4":"Hour TO for temp 4","Minute TO for temp 4":"Minute TO for temp 4","Temperature 5":"Temperature 5","Hour TO for temp 5":"Hour TO for temp 5","Minute TO for temp 5":"Minute TO for temp 5","Temperature 6":"Temperature 6","Hour TO for temp 6":"Hour TO for temp 6","Minute TO for temp 6":"Minute TO for temp 6","Temperature 7":"Temperature 7","Hour TO for temp 7":"Hour TO for temp 7","Minute TO for temp 7":"Minute TO for temp 7","Temperature 8":"Temperature 8","Hour TO for temp 8":"Hour TO for temp 8","Minute TO for temp 8":"Minute TO for temp 8","Temperature 9":"Temperature 9","Hour TO for temp 9":"Hour TO for temp 9","Minute TO for temp 9":"Minute TO for temp 9","Enable/disable the power alarm":"Enable/disable the power alarm","Specifies the minimum brightness value":"Specifies the minimum brightness value","Specifies the maximum brightness value":"Specifies the maximum brightness value","Allow the device to change brightness":"Allow the device to change brightness",'On/off (works only if device is in "switch" mode)':'On/off (works only if device is in "switch" mode)',"switch: allow on/off, auto will use wired action via C1/C2 on teleruptor with buttons":"switch: allow on/off, auto will use wired action via C1/C2 on teleruptor with buttons","switch: allow on/off, auto will use wired action via C1/C2 on contactor for example with HC/HP":"switch: allow on/off, auto will use wired action via C1/C2 on contactor for example with HC/HP","Enabled LED":"Enabled LED","PIR keep time 0:5s|1:30s|2:60s|3:180s|4:300s|5:600s|6:1200s|7:1800s":"PIR keep time 0:5s|1:30s|2:60s|3:180s|4:300s|5:600s|6:1200s|7:1800s","Illuminance calibration":"Illuminance calibration","Reporting interval in minutes":"Reporting interval in minutes","Temperature calibration":"Temperature calibration","Humidity calibration":"Humidity calibration","Enable PIR sensor":"Enable PIR sensor","Enabled reporting":"Enabled reporting","PIR sensor sensitivity":"PIR sensor sensitivity","PIR keep time in seconds":"PIR keep time in seconds","Current fan speed":"Current fan speed","Measured PM2.5 (particulate matter) concentration":"Measured PM2.5 (particulate matter) concentration","Measured air quality":"Measured air quality","Filter is older than 6 months and needs replacing":"Filter is older than 6 months and needs replacing","Indicates whether the device detected bright light (works only in night mode)":"Indicates whether the device detected bright light (works only in night mode)","Prevent changes. `false` = run normally. `true` = prevent from making changes. Must be set to `false` when system_mode = off or `true` for heat":"Prevent changes. `false` = run normally. `true` = prevent from making changes. Must be set to `false` when system_mode = off or `true` for heat","Period in minutes for which the setpoint hold will be active. 65535 = attribute not used. 0 to 360 to match the remote display":"Period in minutes for which the setpoint hold will be active. 65535 = attribute not used. 0 to 360 to match the remote display","Measured Hcho value":"Measured Hcho value","Air quality index":"Air quality index","Measured PM10 (particulate matter) concentration":"Measured PM10 (particulate matter) concentration","Valve open percentage (multiple of 10)":"Valve open percentage (multiple of 10)","Countdown timer in minutes":"Countdown timer in minutes","SOS alarm":"SOS alarm","Select between direct control of the valve via the `valve_position` or automatic control of the valve based on the `current_heating_setpoint`. For manual control set the value to 1, for automatic control set the value to 2 (the default). When switched to manual mode the display shows a value from 0 (valve closed) to 100 (valve fully open) and the buttons on the device are disabled.":"Select between direct control of the valve via the `valve_position` or automatic control of the valve based on the `current_heating_setpoint`. For manual control set the value to 1, for automatic control set the value to 2 (the default). When switched to manual mode the display shows a value from 0 (valve closed) to 100 (valve fully open) and the buttons on the device are disabled.","Directly control the radiator valve when `trv_mode` is set to 1. The values range from 0 (valve closed) to 255 (valve fully open)":"Directly control the radiator valve when `trv_mode` is set to 1. The values range from 0 (valve closed) to 255 (valve fully open)","Displayed text on thermostat display (zone). Max 14 characters":"Displayed text on thermostat display (zone). Max 14 characters","Load in W when heating is on (between 0-2000 W). The thermostat uses the value as input to the mean_power calculation.":"Load in W when heating is on (between 0-2000 W). The thermostat uses the value as input to the mean_power calculation.","Device in regulator or thermostat mode.":"Device in regulator or thermostat mode.","When device is in regulator mode this controls the time between each in/out connection. When device is in thermostat mode this controls the time between each in/out switch when measured temperature is within +-0.5 °C set temperature. Choose a long time for (slow) concrete floors and a short time for (quick) wooden floors.":"When device is in regulator mode this controls the time between each in/out connection. When device is in thermostat mode this controls the time between each in/out switch when measured temperature is within +-0.5 °C set temperature. Choose a long time for (slow) concrete floors and a short time for (quick) wooden floors.","Current temperature measured from the floor sensor":"Current temperature measured from the floor sensor",'Set max floor temperature (between 20-35 °C) when "supervisor_floor" is set':'Set max floor temperature (between 20-35 °C) when "supervisor_floor" is set',"Reports average power usage last 10 minutes":"Reports average power usage last 10 minutes",'When frost guard is ON, it is activated when the thermostat is switched OFF with the ON/OFF button.At the same time, the display will fade and the text "Frostsikring x °C" appears in the display and remains until the thermostat is switched on again.':'When frost guard is ON, it is activated when the thermostat is switched OFF with the ON/OFF button.At the same time, the display will fade and the text "Frostsikring x °C" appears in the display and remains until the thermostat is switched on again.',"Turn on or off night setting.":"Turn on or off night setting.","Current state":"Current state","Select open mode":"Select open mode","Enable or disable sound":"Enable or disable sound","Time to ring before answer":"Time to ring before answer","Time to hold before open":"Time to hold before open","Time to open before end":"Time to open before end","Time after last bell to finish ring":"Time after last bell to finish ring","Reporting interval":"Reporting interval","Enable LEDs feedback":"Enable LEDs feedback","Enable ABC (Automatic Baseline Correction)":"Enable ABC (Automatic Baseline Correction)","Warning (LED2) CO2 level":"Warning (LED2) CO2 level","Critical (LED3) CO2 level":"Critical (LED3) CO2 level","Adjust temperature":"Adjust temperature","Adjust humidity":"Adjust humidity","Adjust pressure":"Adjust pressure","Current count radioactive pulses per minute":"Current count radioactive pulses per minute","Current radiation level":"Current radiation level","Enable LED feedback":"Enable LED feedback","Enable buzzer feedback":"Enable buzzer feedback","Critical radiation level":"Critical radiation level","Type of installed tubes":"Type of installed tubes","Count of installed tubes":"Count of installed tubes","This is applicable if tubes type is set to other":"This is applicable if tubes type is set to other","Temperature of the CPU":"Temperature of the CPU","Indicates whether the device is being tested":"Indicates whether the device is being tested","Set Squawk state":"Set Squawk state","Turn on/off the strobe (light) for Squawk":"Turn on/off the strobe (light) for Squawk","Max duration of the siren":"Max duration of the siren","Manual start of the siren":"Manual start of the siren","Pulses per kwh. Default 1000 imp/kWh. Range 0 to 65535":"Pulses per kwh. Default 1000 imp/kWh. Range 0 to 65535","Operating mode/probe":"Operating mode/probe","Current summation value sent to the display. e.g. 570 = 0,570 kWh":"Current summation value sent to the display. e.g. 570 = 0,570 kWh","Is true if communication problem with meter is experienced":"Is true if communication problem with meter is experienced","Duration of Siren":"Duration of Siren","Manual Start of Siren":"Manual Start of Siren","Indicates reason if any fault":"Indicates reason if any fault","Indicates whether the device are in fault state":"Indicates whether the device are in fault state","Instantaneous measured electrical current on phase B":"Instantaneous measured electrical current on phase B","Measured electrical potential value on phase B":"Measured electrical potential value on phase B","Instantaneous measured electrical current on phase C":"Instantaneous measured electrical current on phase C","Measured electrical potential value on phase C":"Measured electrical potential value on phase C","Allow Master PIN Unlock":"Allow Master PIN Unlock","Allow RFID to Unlock":"Allow RFID to Unlock","Allow Auto Re-Lock":"Allow Auto Re-Lock","Lock-Mode of the Lock":"Lock-Mode of the Lock","Service Mode of the Lock":"Service Mode of the Lock","Absolute min temperature allowed on the device":"Absolute min temperature allowed on the device","Absolute max temperature allowed on the device":"Absolute max temperature allowed on the device","Min temperature limit set on the device":"Min temperature limit set on the device","Max temperature limit set on the device":"Max temperature limit set on the device","Danfoss Output Status [Active vs Inactive])":"Danfoss Output Status [Active vs Inactive])","Thermostat status":"Thermostat status","Regulator Status":"Regulator Status","Water Status of Regulator":"Water Status of Regulator","Regulator role (Master vs Slave)":"Regulator role (Master vs Slave)","State or sensor value":"State or sensor value","Manual start of siren":"Manual start of siren","Type of user, unrestricted: owner (default), (year|week)_day_schedule: user has ability to open lock based on specific time period, master: user has ability to both program and operate the door lock, non_access: user is recognized by the lock but does not have the ability to open the lock":"Type of user, unrestricted: owner (default), (year|week)_day_schedule: user has ability to open lock based on specific time period, master: user has ability to both program and operate the door lock, non_access: user is recognized by the lock but does not have the ability to open the lock","After turn on, the indicator light turns on while switch is off, and vice versa":"After turn on, the indicator light turns on while switch is off, and vice versa","The current state of the motor.":"The current state of the motor.","Value of gas concentration":"Value of gas concentration",'Gas concentration value at which an alarm is triggered ("10%LEL" is more sensitive than "15%LEL")':'Gas concentration value at which an alarm is triggered ("10%LEL" is more sensitive than "15%LEL")',"Starts the self-test process (checking the indicator light and buzzer work properly)":"Starts the self-test process (checking the indicator light and buzzer work properly)","Self-test in progress":"Self-test in progress",'"Preparation" or "work" (measurement of the gas concentration value and triggering of an alarm are only performed in the "work" state)':'"Preparation" or "work" (measurement of the gas concentration value and triggering of an alarm are only performed in the "work" state)',"Number of power outages (since last pairing)":"Number of power outages (since last pairing)",'Presence events: "enter", "leave", "left_enter", "right_leave", "right_enter", "left_leave", "approach", "away"':'Presence events: "enter", "leave", "left_enter", "right_leave", "right_enter", "left_leave", "approach", "away"',"Monitoring mode with or without considering right and left sides":"Monitoring mode with or without considering right and left sides","The distance at which the sensor detects approaching":"The distance at which the sensor detects approaching","Time interval for detecting actions":"Time interval for detecting actions","Switch between rgbw mode or dual color temperature mode":"Switch between rgbw mode or dual color temperature mode","Brightness state":"Brightness state","presets for sensitivity for presence and movement":"presets for sensitivity for presence and movement","Tumble status switch":"Tumble status switch","fall sensitivity of the radar":"fall sensitivity of the radar","tumble alarm time":"tumble alarm time","fall down status":"fall down status","static dwell alarm":"static dwell alarm","Alarm humidity max":"Alarm humidity max","Alarm humidity min":"Alarm humidity min","Trigger the door movement":"Trigger the door movement","Plug LED indicator mode":"Plug LED indicator mode",'When Anti-Freezing function is activated, the temperature in the house is kept at 8 °C, the device display "AF".press the pair button to cancel.':'When Anti-Freezing function is activated, the temperature in the house is kept at 8 °C, the device display "AF".press the pair button to cancel.','Battery life can be prolonged by switching the heating off. To achieve this, the valve is closed fully. To activate the heating stop, the device display "HS", press the pair button to cancel.':'Battery life can be prolonged by switching the heating off. To achieve this, the valve is closed fully. To activate the heating stop, the device display "HS", press the pair button to cancel.',"Mode of this device, in the `heat` mode the TS0601 will remain continuously heating, i.e. it does not regulate to the desired temperature. If you want TRV to properly regulate the temperature you need to use mode `auto` instead setting the desired temperature.":"Mode of this device, in the `heat` mode the TS0601 will remain continuously heating, i.e. it does not regulate to the desired temperature. If you want TRV to properly regulate the temperature you need to use mode `auto` instead setting the desired temperature.","The measured CO (carbon monoxide) value":"The measured CO (carbon monoxide) value","The measured occupancy value":"The measured occupancy value","The measured noise value":"The measured noise value","Indicates whether the device detected noise":"Indicates whether the device detected noise","White brightness of this light":"White brightness of this light","Valve state if open or closed":"Valve state if open or closed","Position of the valve":"Position of the valve","Door status":"Door status","User ID can only number 1":"User ID can only number 1","Pincode to set, set pincode(4 digit) to null to clear":"Pincode to set, set pincode(4 digit) to null to clear","temperature of device internal mcu":"temperature of device internal mcu","Measured electrical power factor":"Measured electrical power factor","Measured electrical ac frequency":"Measured electrical ac frequency","Currently status":"Currently status","Time in seconds after which occupancy is cleared after detecting it":"Time in seconds after which occupancy is cleared after detecting it","Sets dimming mode to autodetect or fixed RC/RL/RL_LED mode (max load is reduced in RL_LED)":"Sets dimming mode to autodetect or fixed RC/RL/RL_LED mode (max load is reduced in RL_LED)","Duration of lift":"Duration of lift","Controls how programming affects the thermostat. Possible values: setpoint (only use specified setpoint), schedule (follow programmed setpoint schedule). Changing this value does not clear programmed schedules.":"Controls how programming affects the thermostat. Possible values: setpoint (only use specified setpoint), schedule (follow programmed setpoint schedule). Changing this value does not clear programmed schedules.","Not clear how this affects operation. However, it would appear that the device does not execute any motor functions if this is set to false. This may be a means to conserve battery during periods that the heating system is not energized (e.g. during summer). `false` No Heat Available or `true` Heat Available":"Not clear how this affects operation. However, it would appear that the device does not execute any motor functions if this is set to false. This may be a means to conserve battery during periods that the heating system is not energized (e.g. during summer). `false` No Heat Available or `true` Heat Available","If `radiator_covered` is `true`: Set at maximum 30 minutes interval but not more often than every 5 minutes and 0.1 degrees difference. Resets every 35 minutes to standard. If `radiator_covered` is `false`: Set at maximum 3 hours interval but not more often than every 30 minutes and 0.1 degrees difference. Resets every 3 hours to standard. Value 21C = 2100 (-8000=undefined).":"If `radiator_covered` is `true`: Set at maximum 30 minutes interval but not more often than every 5 minutes and 0.1 degrees difference. Resets every 35 minutes to standard. If `radiator_covered` is `false`: Set at maximum 3 hours interval but not more often than every 30 minutes and 0.1 degrees difference. Resets every 3 hours to standard. Value 21C = 2100 (-8000=undefined).","Set if the TRV should solely rely on external_measured_room_sensor or operate in offset mode. `false` = Auto Offset Mode or `true` = Room Sensor Mode":"Set if the TRV should solely rely on external_measured_room_sensor or operate in offset mode. `false` = Auto Offset Mode or `true` = Room Sensor Mode","Whether or not the window open feature is enabled":"Whether or not the window open feature is enabled","Mean radiator load for room calculated by gateway for load balancing purposes (-8000=undefined)":"Mean radiator load for room calculated by gateway for load balancing purposes (-8000=undefined)","Current display unit":"Current display unit","Temperature alarm status":"Temperature alarm status","Temperature sensitivity":"Temperature sensitivity","Indicator light status":"Indicator light status","The delta between local_temperature and current_heating_setpoint to trigger Heat":"The delta between local_temperature and current_heating_setpoint to trigger Heat","Serial Number":"Serial Number","Base index":"Base index","Tarif option":"Tarif option","Subscribed intensity level":"Subscribed intensity level","HCHC index":"HCHC index","HCHP index":"HCHP index","BBRHCJW index":"BBRHCJW index","BBRHPJW index":"BBRHPJW index","BBRHCJR index":"BBRHCJR index","BBRHPJR index":"BBRHPJR index","RMS current":"RMS current","RMS current (phase 2)":"RMS current (phase 2)","RMS current (phase 3)":"RMS current (phase 3)","RMS current peak":"RMS current peak","RMS current peak (phase 2)":"RMS current peak (phase 2)","RMS current peak (phase 3)":"RMS current peak (phase 3)","Three-phase power peak":"Three-phase power peak","Apparent power":"Apparent power","Current pricing period":"Current pricing period","Tomorrow color":"Tomorrow color","Schedule HPHC":"Schedule HPHC","Presence of potentials":"Presence of potentials","EJP start notice (30min)":"EJP start notice (30min)","Subscribed Power Exceeded Warning":"Subscribed Power Exceeded Warning","Over Current Warning (phase 1)":"Over Current Warning (phase 1)","Over Current Warning (phase 2)":"Over Current Warning (phase 2)","Over Current Warning (phase 3)":"Over Current Warning (phase 3)","Current supplier price label":"Current supplier price label","Current tariff index number":"Current tariff index number","Customer tele-information protocol version":"Customer tele-information protocol version","Current date and time":"Current date and time","Total provider active power delivered (index 07)":"Total provider active power delivered (index 07)","Total provider active power delivered (index 08)":"Total provider active power delivered (index 08)","Total provider active power delivered (index 09)":"Total provider active power delivered (index 09)","Total provider active power delivered (index 10)":"Total provider active power delivered (index 10)","Active energy withdrawn Distributor (index 01)":"Active energy withdrawn Distributor (index 01)","Active energy withdrawn Distributor (index 02)":"Active energy withdrawn Distributor (index 02)","Active energy withdrawn Distributor (index 03)":"Active energy withdrawn Distributor (index 03)","Active energy withdrawn Distributor (index 04)":"Active energy withdrawn Distributor (index 04)","Total active power injected":"Total active power injected","Total reactive power (Q1)":"Total reactive power (Q1)","Total reactive power (Q2)":"Total reactive power (Q2)","Total reactive power (Q3)":"Total reactive power (Q3)","Total reactive power (Q4)":"Total reactive power (Q4)","RMS voltage":"RMS voltage","RMS voltage (phase 2)":"RMS voltage (phase 2)","RMS voltage (phase 3)":"RMS voltage (phase 3)","Register of Statutes":"Register of Statutes","Apparent power threshold":"Apparent power threshold","Instantaneous apparent power injected":"Instantaneous apparent power injected","Apparent power max. injected n":"Apparent power max. injected n","Apparent power max. injected n-1":"Apparent power max. injected n-1","Current point of the active load curve drawn":"Current point of the active load curve drawn","Previous point of the active load curve drawn":"Previous point of the active load curve drawn","Point n of the withdrawn active load curve":"Point n of the withdrawn active load curve","Point n-1 of the withdrawn active load curve":"Point n-1 of the withdrawn active load curve","Average RMS voltage (phase 1)":"Average RMS voltage (phase 1)","Average RMS voltage (phase 2)":"Average RMS voltage (phase 2)","Average RMS voltage (phase 3)":"Average RMS voltage (phase 3)","Immediate apparent power delivered (phase 2)":"Immediate apparent power delivered (phase 2)","Immediate apparent power delivered (phase 3)":"Immediate apparent power delivered (phase 3)","Apparent power delivered peak (phase 2)":"Apparent power delivered peak (phase 2)","Apparent power delivered peak (phase 3)":"Apparent power delivered peak (phase 3)","Apparent power max. draw-off n-1":"Apparent power max. draw-off n-1","Apparent power max. draw-off n-1 (phase 2)":"Apparent power max. draw-off n-1 (phase 2)","Apparent power max. draw-off n-1 (phase 3)":"Apparent power max. draw-off n-1 (phase 3)","Message short":"Message short","Message ultra-short":"Message ultra-short","PRM number":"PRM number","Start mobile point 1":"Start mobile point 1","Stop mobile point 1":"Stop mobile point 1","Start mobile point 2":"Start mobile point 2","Stop mobile point 2":"Stop mobile point 2","Start mobile point 3":"Start mobile point 3","Stop mobile point 3":"Stop mobile point 3","Current day number supplier calendar":"Current day number supplier calendar","Next day number supplier calendar":"Next day number supplier calendar","Profile of the next supplier calendar day":"Profile of the next supplier calendar day","Profile of the next check-in day":"Profile of the next check-in day","Works only when the pilot wire is deactivated":"Works only when the pilot wire is deactivated","Measured electrical AC frequency":"Measured electrical AC frequency","Indicates if the card is inserted (= true) or not (= false)":"Indicates if the card is inserted (= true) or not (= false)","Prevent changes. `false` = run normally. `true` = prevent from making changes.":"Prevent changes. `false` = run normally. `true` = prevent from making changes.","Enable or disable the blue backlight LED":"Enable or disable the blue backlight LED","Triggered action on the lock":"Triggered action on the lock","Source of the triggered action on the lock":"Source of the triggered action on the lock","ID of user that triggered the action on the lock":"ID of user that triggered the action on the lock","Number of power outages":"Number of power outages","The current charging status.":"The current charging status.","Whether the motor is moving or not":"Whether the motor is moving or not","Motor state":"Motor state","Value of smoke concentration":"Value of smoke concentration","Value of smoke concentration in dB/m":"Value of smoke concentration in dB/m","When this option is enabled then in the normal monitoring state, the green indicator light flashes every 60 seconds":"When this option is enabled then in the normal monitoring state, the green indicator light flashes every 60 seconds","Different sensitivities means different static human body recognition rate and response speed of occupied":"Different sensitivities means different static human body recognition rate and response speed of occupied","Reset the status of no presence":"Reset the status of no presence","Is the device plugged in":"Is the device plugged in","Smoke alarm status":"Smoke alarm status","Test alarm":"Test alarm","Test alarm result":"Test alarm result","Battery level state":"Battery level state","Alarm enable":"Alarm enable","Fault alarm status":"Fault alarm status","Silence siren":"Silence siren","PIR sensor sensitivity (refresh and update only while active)":"PIR sensor sensitivity (refresh and update only while active)","PIR keep time in seconds (refresh and update only while active)":"PIR keep time in seconds (refresh and update only while active)","Report interval":"Report interval","Humidity alarm status":"Humidity alarm status","Distance to target":"Distance to target","Minimum range":"Minimum range","Maximum range":"Maximum range","Detection delay":"Detection delay","Fading time":"Fading time","Self_test, possible resuts: checking, check_success, check_failure, others, comm_fault, radar_fault.":"Self_test, possible resuts: checking, check_success, check_failure, others, comm_fault, radar_fault.","Indicates if the garage door contact is closed (= true) or open (= false)":"Indicates if the garage door contact is closed (= true) or open (= false)","Relay LED indicator mode":"Relay LED indicator mode","Window open?":"Window open?","Maximum light brightness":"Maximum light brightness","Group where the action was triggered on":"Group where the action was triggered on","Time in seconds after which noise is cleared after detecting it (default: 60)":"Time in seconds after which noise is cleared after detecting it (default: 60)","Time in seconds after which occupancy is cleared after detecting it (default: 60)":"Time in seconds after which occupancy is cleared after detecting it (default: 60)","Self-heating compensation. The compensation value is subtracted from the measured temperature":"Self-heating compensation. The compensation value is subtracted from the measured temperature","If the sensor is triggered by the slightest movement, reduce the sensitivity, otherwise increase it (default: 50)":"If the sensor is triggered by the slightest movement, reduce the sensitivity, otherwise increase it (default: 50)","The minimum noise level at which the detector will work (default: 50)":"The minimum noise level at which the detector will work (default: 50)","Automatic calibration of the CO2 sensor. If ON, the CO2 sensor will automatically calibrate every 7 days.":"Automatic calibration of the CO2 sensor. If ON, the CO2 sensor will automatically calibrate every 7 days.","Ventilate the room for 20 minutes, turn on manual calibration, and turn it off after one second. After about 5 minutes the CO2 sensor will show 400ppm. Calibration completed":"Ventilate the room for 20 minutes, turn on manual calibration, and turn it off after one second. After about 5 minutes the CO2 sensor will show 400ppm. Calibration completed","Turn on when working in conditions of high humidity (more than 70 %, RH) or condensation, if the sensor shows 0 or 100 %.":"Turn on when working in conditions of high humidity (more than 70 %, RH) or condensation, if the sensor shows 0 or 100 %.","Instantaneous measured apparent power":"Instantaneous measured apparent power","Instantaneous measured power on phase A":"Instantaneous measured power on phase A","Instantaneous measured power on phase B":"Instantaneous measured power on phase B","Instantaneous measured power on phase C":"Instantaneous measured power on phase C","Instantaneous measured power factor":"Instantaneous measured power factor","Sum of consumed energy on phase A":"Sum of consumed energy on phase A","Sum of consumed energy on phase B":"Sum of consumed energy on phase B","Sum of consumed energy on phase C":"Sum of consumed energy on phase C","Measured electrical potential value on phase A":"Measured electrical potential value on phase A","Measured electrical potential value between phase A and B":"Measured electrical potential value between phase A and B","Measured electrical potential value between phase B and C":"Measured electrical potential value between phase B and C","Measured electrical potential value between phase C and A":"Measured electrical potential value between phase C and A","Instantaneous measured electrical current on phase A":"Instantaneous measured electrical current on phase A","Specific for pre-heat running in Zigbee Weekly Schedule mode":"Specific for pre-heat running in Zigbee Weekly Schedule mode","Status of adaptation run: None (before first run), In Progress, Valve Characteristic Found, Valve Characteristic Lost":"Status of adaptation run: None (before first run), In Progress, Valve Characteristic Found, Valve Characteristic Lost","Automatic adaptation run enabled (the one during the night)":"Automatic adaptation run enabled (the one during the night)","Adaptation run control: Initiate Adaptation Run or Cancel Adaptation Run":"Adaptation run control: Initiate Adaptation Run or Cancel Adaptation Run","Regulation SetPoint Offset in range -2.5°C to 2.5°C in steps of 0.1°C. Value 2.5°C = 25.":"Regulation SetPoint Offset in range -2.5°C to 2.5°C in steps of 0.1°C. Value 2.5°C = 25.","Enable LED":"Enable LED","Temperature/humidity alarm status":"Temperature/humidity alarm status","Temperature scale (°F/°C)":"Temperature scale (°F/°C)","OLED brightness when operating the buttons. Default: Medium.":"OLED brightness when operating the buttons. Default: Medium.","Key beep volume and vibration level. Default: Low.":"Key beep volume and vibration level. Default: Low.","Type of the external floor sensor. Default: NTC 10K/25.":"Type of the external floor sensor. Default: NTC 10K/25.","The sensor used for heat control. Default: Room Sensor.":"The sensor used for heat control. Default: Room Sensor.","The mode after a power reset. Default: Previous Mode.":"The mode after a power reset. Default: Previous Mode.","The tempearatue calibration for the exernal floor sensor, between -3 and 3 in 0.1°C. Default: 0.":"The tempearatue calibration for the exernal floor sensor, between -3 and 3 in 0.1°C. Default: 0.","The duration of Dry Mode, between 5 and 100 minutes. Default: 5.":"The duration of Dry Mode, between 5 and 100 minutes. Default: 5.","The mode after Dry Mode. Default: Auto.":"The mode after Dry Mode. Default: Auto.","The temperature on the display. Default: Room Temperature.":"The temperature on the display. Default: Room Temperature.","The threshold to detect window open, between 1.5 and 4 in 0.5 °C. Default: 0 (disabled).":"The threshold to detect window open, between 1.5 and 4 in 0.5 °C. Default: 0 (disabled).","Hysteresis setting, between 0.5 and 2 in 0.1 °C. Default: 0.5.":"Hysteresis setting, between 0.5 and 2 in 0.1 °C. Default: 0.5.","Room temperature alarm threshold, between 20 and 60 in °C. 0 means disabled. Default: 45.":"Room temperature alarm threshold, between 20 and 60 in °C. 0 means disabled. Default: 45.","Animation Effect to use for the LEDs":"Animation Effect to use for the LEDs","Calculated by using a hue color circle(value/255*360) If color = 255 display white":"Calculated by using a hue color circle(value/255*360) If color = 255 display white","Brightness of the LEDs":"Brightness of the LEDs","1-60 is in seconds calculated 61-120 is in minutes calculated by(value-60) Example a value of 65 would be 65-60 = 5 minutes - 120-254 Is in hours calculated by(value-120) Example a value of 132 would be 132-120 would be 12 hours. - 255 Indefinitely":"1-60 is in seconds calculated 61-120 is in minutes calculated by(value-60) Example a value of 65 would be 65-60 = 5 minutes - 120-254 Is in hours calculated by(value-120) Example a value of 132 would be 132-120 would be 12 hours. - 255 Indefinitely","Individual LED to target.":"Individual LED to target.","Animation Effect to use for the LED":"Animation Effect to use for the LED","Brightness of the LED":"Brightness of the LED","1-60 is in seconds calculated 61-120 is in minutes calculated by(value-60) Example a value of 65 would be 65-60 = 5 minutes - 120-254 Is in hours calculated by(value-120) Example a value of 132 would be 132-120 would be 12 hours. - 255 Indefinitely":"1-60 is in seconds calculated 61-120 is in minutes calculated by(value-60) Example a value of 65 would be 65-60 = 5 minutes - 120-254 Is in hours calculated by(value-120) Example a value of 132 would be 132-120 would be 12 hours. - 255 Indefinitely","This changes the speed that the light dims up when controlled from the hub. A setting of 0 turns the light immediately on. Increasing the value slows down the transition speed. Every number represents 100ms. Default = 25 (2.5s)":"This changes the speed that the light dims up when controlled from the hub. A setting of 0 turns the light immediately on. Increasing the value slows down the transition speed. Every number represents 100ms. Default = 25 (2.5s)","This changes the speed that the light dims up when controlled at the switch. A setting of 0 turns the light immediately on. Increasing the value slows down the transition speed. Every number represents 100ms. Default = 127 - Keep in sync with dimmingSpeedUpRemote setting.":"This changes the speed that the light dims up when controlled at the switch. A setting of 0 turns the light immediately on. Increasing the value slows down the transition speed. Every number represents 100ms. Default = 127 - Keep in sync with dimmingSpeedUpRemote setting.","This changes the speed that the light turns on when controlled from the hub. A setting of 0 turns the light immediately on. Increasing the value slows down the transition speed. Every number represents 100ms. Default = 127 - Keep in sync with dimmingSpeedUpRemote setting.":"This changes the speed that the light turns on when controlled from the hub. A setting of 0 turns the light immediately on. Increasing the value slows down the transition speed. Every number represents 100ms. Default = 127 - Keep in sync with dimmingSpeedUpRemote setting.","This changes the speed that the light turns on when controlled at the switch. A setting of 0 turns the light immediately on. Increasing the value slows down the transition speed. Every number represents 100ms. Default = 127 - Keep in sync with dimmingSpeedUpRemote setting.":"This changes the speed that the light turns on when controlled at the switch. A setting of 0 turns the light immediately on. Increasing the value slows down the transition speed. Every number represents 100ms. Default = 127 - Keep in sync with dimmingSpeedUpRemote setting.","This changes the speed that the light dims down when controlled from the hub. A setting of 0 turns the light immediately off. Increasing the value slows down the transition speed. Every number represents 100ms. Default = 127 - Keep in sync with dimmingSpeedUpRemote setting.":"This changes the speed that the light dims down when controlled from the hub. A setting of 0 turns the light immediately off. Increasing the value slows down the transition speed. Every number represents 100ms. Default = 127 - Keep in sync with dimmingSpeedUpRemote setting.","This changes the speed that the light dims down when controlled at the switch. A setting of 0 turns the light immediately off. Increasing the value slows down the transition speed. Every number represents 100ms. Default = 127 - Keep in sync with dimmingSpeedUpLocal setting.":"This changes the speed that the light dims down when controlled at the switch. A setting of 0 turns the light immediately off. Increasing the value slows down the transition speed. Every number represents 100ms. Default = 127 - Keep in sync with dimmingSpeedUpLocal setting.","This changes the speed that the light turns off when controlled from the hub. A setting of 'instant' turns the light immediately off. Increasing the value slows down the transition speed. Every number represents 100ms. Default = 127 - Keep in sync with rampRateOffToOnRemote setting.":"This changes the speed that the light turns off when controlled from the hub. A setting of 'instant' turns the light immediately off. Increasing the value slows down the transition speed. Every number represents 100ms. Default = 127 - Keep in sync with rampRateOffToOnRemote setting.","This changes the speed that the light turns off when controlled at the switch. A setting of 'instant' turns the light immediately off. Increasing the value slows down the transition speed. Every number represents 100ms. Default = 127 - Keep in sync with rampRateOffToOnLocal setting.":"This changes the speed that the light turns off when controlled at the switch. A setting of 'instant' turns the light immediately off. Increasing the value slows down the transition speed. Every number represents 100ms. Default = 127 - Keep in sync with rampRateOffToOnLocal setting.","The minimum level that the dimmer allows the bulb to be dimmed to. Useful when the user has an LED bulb that does not turn on or flickers at a lower level.":"The minimum level that the dimmer allows the bulb to be dimmed to. Useful when the user has an LED bulb that does not turn on or flickers at a lower level.","The maximum level that the dimmer allows the bulb to be dimmed to.Useful when the user has an LED bulb that reaches its maximum level before the dimmer value of 99 or when the user wants to limit the maximum brightness.":"The maximum level that the dimmer allows the bulb to be dimmed to.Useful when the user has an LED bulb that reaches its maximum level before the dimmer value of 99 or when the user wants to limit the maximum brightness.","Inverts the orientation of the switch. Useful when the switch is installed upside down. Essentially up becomes down and down becomes up.":"Inverts the orientation of the switch. Useful when the switch is installed upside down. Essentially up becomes down and down becomes up.","Automatically turns the switch off after this many seconds. When the switch is turned on a timer is started. When the timer expires, the switch is turned off. 0 = Auto off is disabled.":"Automatically turns the switch off after this many seconds. When the switch is turned on a timer is started. When the timer expires, the switch is turned off. 0 = Auto off is disabled.","Default level for the dimmer when it is turned on at the switch. A setting of 0 means that the switch will return to the level that it was on before it was turned off.":"Default level for the dimmer when it is turned on at the switch. A setting of 0 means that the switch will return to the level that it was on before it was turned off.","Default level for the dimmer when it is turned on from the hub. A setting of 0 means that the switch will return to the level that it was on before it was turned off.":"Default level for the dimmer when it is turned on from the hub. A setting of 0 means that the switch will return to the level that it was on before it was turned off.","The state the switch should return to when power is restored after power failure. 0 = off, 1-100 = level, 101 = previous.":"The state the switch should return to when power is restored after power failure. 0 = off, 1-100 = level, 101 = previous.","Shows the level that the load is at for x number of seconds after the load is adjusted and then returns to the Default LED state. 0 = Stay Off, 1-10 = seconds, 11 = Stay On.":"Shows the level that the load is at for x number of seconds after the load is adjusted and then returns to the Default LED state. 0 = Stay Off, 1-10 = seconds, 11 = Stay On.","Power level change that will result in a new power report being sent. The value is a percentage of the previous report.0 = disabled, 1-32767 = 0.1W-3276.7W.":"Power level change that will result in a new power report being sent. The value is a percentage of the previous report.0 = disabled, 1-32767 = 0.1W-3276.7W.","Time period between consecutive power & energy reports being sent (in seconds). The timer is reset after each report is sent.":"Time period between consecutive power & energy reports being sent (in seconds). The timer is reset after each report is sent.","Energy reports Energy level change which will result in sending a new energy report.0 = disabled, 1-32767 = 0.01kWh-327.67kWh. Default setting: 10 (0.1 kWh)":"Energy reports Energy level change which will result in sending a new energy report.0 = disabled, 1-32767 = 0.01kWh-327.67kWh. Default setting: 10 (0.1 kWh)","Set the power type for the device.":"Set the power type for the device.","Set the switch configuration.":"Set the switch configuration.","This will set the button press delay. 0 = no delay (Disables Button Press Events), 1 = 100ms, 2 = 200ms, 3 = 300ms, etc. up to 900ms. Default = 500ms.":"This will set the button press delay. 0 = no delay (Disables Button Press Events), 1 = 100ms, 2 = 200ms, 3 = 300ms, etc. up to 900ms. Default = 500ms.","For use with Smart Bulbs that need constant power and are controlled via commands rather than power.":"For use with Smart Bulbs that need constant power and are controlled via commands rather than power.","Set the color of the LED Indicator when the load is on.":"Set the color of the LED Indicator when the load is on.","Set the color of the LED Indicator when the load is off.":"Set the color of the LED Indicator when the load is off.","Set the intensity of the LED Indicator when the load is on.":"Set the intensity of the LED Indicator when the load is on.","Set the intensity of the LED Indicator when the load is off.":"Set the intensity of the LED Indicator when the load is off.","Ability to control switch from the wall.":"Ability to control switch from the wall.","Ability to control switch from the hub.":"Ability to control switch from the hub.","Use device as a Dimmer or an On/Off switch.":"Use device as a Dimmer or an On/Off switch.","When the device is in On/Off mode, use full LED bar or just one LED.":"When the device is in On/Off mode, use full LED bar or just one LED.","Display progress on LED bar during firmware update.":"Display progress on LED bar during firmware update.","0-254:This is the color of the LED strip in a hex representation. 255:Synchronization with default all LED strip color parameter.":"0-254:This is the color of the LED strip in a hex representation. 255:Synchronization with default all LED strip color parameter.","Intesity of LED strip when on. 101 = Syncronized with default all LED strip intensity parameter.":"Intesity of LED strip when on. 101 = Syncronized with default all LED strip intensity parameter.","Intesity of LED strip when off. 101 = Syncronized with default all LED strip intensity parameter.":"Intesity of LED strip when off. 101 = Syncronized with default all LED strip intensity parameter.","Result of a double tap on the up button.":"Result of a double tap on the up button.","Remaining battery 2 in %":"Remaining battery 2 in %","Illuminance calibration in lux":"Illuminance calibration in lux","Temperature calibration (-2.0...2.0)":"Temperature calibration (-2.0...2.0)","Enable reporting":"Enable reporting","Control mode":"Control mode","External switch type":"External switch type","External switch status":"External switch status","Load detection mode":"Load detection mode","Load type":"Load type","Load dimmable":"Load dimmable","Power supply mode":"Power supply mode","Current temperature measured on the external sensor (floor)":"Current temperature measured on the external sensor (floor)","The difference between the temperature at which the thermostat switches off, and the temperature at which it switches on again.":"The difference between the temperature at which the thermostat switches off, and the temperature at which it switches on again.","Max guarding temperature":"Max guarding temperature","Brightness of this backlight LED":"Brightness of this backlight LED","Units to show on the display":"Units to show on the display","Hooks state":"Hooks state","Target position":"Target position","The current power source":"The current power source","The current charging state":"The current charging state",'The buzzer can be muted and alarmed manually. During a smoke alarm, the buzzer can be manually muted for 80 seconds ("mute") and unmuted ("alarm"). The buzzer cannot be pre-muted, as this function only works during a smoke alarm. During the absence of a smoke alarm, the buzzer can be manually alarmed ("alarm") and disalarmed ("mute")':'The buzzer can be muted and alarmed manually. During a smoke alarm, the buzzer can be manually muted for 80 seconds ("mute") and unmuted ("alarm"). The buzzer cannot be pre-muted, as this function only works during a smoke alarm. During the absence of a smoke alarm, the buzzer can be manually alarmed ("alarm") and disalarmed ("mute")',"Buzzer alarmed (manually)":"Buzzer alarmed (manually)","Buzzer muted (manually)":"Buzzer muted (manually)",'When this option is enabled and a smoke alarm has occurred, then "linkage_alarm_state"=true, and when the smoke alarm has ended or the buzzer has been manually muted, then "linkage_alarm_state"=false':'When this option is enabled and a smoke alarm has occurred, then "linkage_alarm_state"=true, and when the smoke alarm has ended or the buzzer has been manually muted, then "linkage_alarm_state"=false','"linkage_alarm" is triggered':'"linkage_alarm" is triggered','The buzzer can be muted and alarmed manually. During a gas alarm, the buzzer can be manually muted for 10 minutes ("mute"), but cannot be unmuted manually before this timeout expires. The buzzer cannot be pre-muted, as this function only works during a gas alarm. During the absence of a gas alarm, the buzzer can be manually alarmed ("alarm") and disalarmed ("mute")':'The buzzer can be muted and alarmed manually. During a gas alarm, the buzzer can be manually muted for 10 minutes ("mute"), but cannot be unmuted manually before this timeout expires. The buzzer cannot be pre-muted, as this function only works during a gas alarm. During the absence of a gas alarm, the buzzer can be manually alarmed ("alarm") and disalarmed ("mute")','When this option is enabled and a gas alarm has occurred, then "linkage_alarm_state"=true, and when the gas alarm has ended or the buzzer has been manually muted, then "linkage_alarm_state"=false':'When this option is enabled and a gas alarm has occurred, then "linkage_alarm_state"=true, and when the gas alarm has ended or the buzzer has been manually muted, then "linkage_alarm_state"=false',". Press pairing button right before changing this otherwise it will fail.":". Press pairing button right before changing this otherwise it will fail.","Time interval for detecting actions. Press pairing button right before changing this otherwise it will fail.":"Time interval for detecting actions. Press pairing button right before changing this otherwise it will fail.","When this option is enabled then blue LED will blink once when motion is detected. Press pairing button right before changing this otherwise it will fail.":"When this option is enabled then blue LED will blink once when motion is detected. Press pairing button right before changing this otherwise it will fail.","The current running mode":"The current running mode","When Vacation Mode is active the schedule is disabled and unoccupied_heating_setpoint is used.":"When Vacation Mode is active the schedule is disabled and unoccupied_heating_setpoint is used.","Shows the presence duration in minutes":"Shows the presence duration in minutes","Shows the duration of the absence in minutes":"Shows the duration of the absence in minutes","Turns the onboard LED on or off":"Turns the onboard LED on or off","Turn on to learn new IR code":"Turn on to learn new IR code","The IR code learned by device":"The IR code learned by device","The IR code to send by device":"The IR code to send by device","Active power":"Active power","Cycle count":"Cycle count","Cycle time":"Cycle time","Setup or clear top limit":"Setup or clear top limit","Setup or clear bottom limit":"Setup or clear bottom limit","Favorite position of this cover":"Favorite position of this cover","Inverts the cover direction":"Inverts the cover direction","There are 8 periods in the schedule in total. 6 for workdays and 2 for holidays. It should be set in the following format for each of the periods: `hours:minutes/temperature`. All periods should be set at once and delimited by the space symbol. For example: `06:00/20.5 08:00/15 11:30/15 13:30/15 17:00/22 22:00/15 06:00/20 22:00/15`. The thermostat doesn't report the schedule by itself even if you change it manually from device":"There are 8 periods in the schedule in total. 6 for workdays and 2 for holidays. It should be set in the following format for each of the periods: `hours:minutes/temperature`. All periods should be set at once and delimited by the space symbol. For example: `06:00/20.5 08:00/15 11:30/15 13:30/15 17:00/22 22:00/15 06:00/20 22:00/15`. The thermostat doesn't report the schedule by itself even if you change it manually from device","Screen brightness":"Screen brightness","Switches beep sound when interacting with thermostat":"Switches beep sound when interacting with thermostat","Antifreeze function":"Antifreeze function","Resets all settings to default. Doesn't unpair device.":"Resets all settings to default. Doesn't unpair device.","Heating temperature limit":"Heating temperature limit","Indicator light status: LOW: Off | MEDIUM: On| HIGH: Inverted":"Indicator light status: LOW: Off | MEDIUM: On| HIGH: Inverted","Enable the alarm":"Enable the alarm","Silence the siren":"Silence the siren","LED indicator mode":"LED indicator mode","The threshold to detect window open, between 0.0 and 8.0 in 0.5 °C. Default: 0 (disabled).":"The threshold to detect window open, between 0.0 and 8.0 in 0.5 °C. Default: 0 (disabled).","Brightness of the indicator light":"Brightness of the indicator light",'Operation mode: "auto" - toggle by S/W, "push" - for momentary S/W, "latch" - sync S/W':'Operation mode: "auto" - toggle by S/W, "push" - for momentary S/W, "latch" - sync S/W',"Enable RF pairing mode each button l1, l2, l3":"Enable RF pairing mode each button l1, l2, l3",'Indicates whether "IN" Sensor of the device detected occupancy':'Indicates whether "IN" Sensor of the device detected occupancy','Indicates whether "OUT" Sensor of the device detected occupancy':'Indicates whether "OUT" Sensor of the device detected occupancy','Indicates whether "IN or OUT" Sensor of the device detected occupancy':'Indicates whether "IN or OUT" Sensor of the device detected occupancy','Indicates whether "IN and OUT" Sensor of the device detected occupancy':'Indicates whether "IN and OUT" Sensor of the device detected occupancy',"Run RF pairing mode":"Run RF pairing mode","Counting Freeze ON/OFF, not reporting people value when is ON":"Counting Freeze ON/OFF, not reporting people value when is ON","ToF sensor initial":"ToF sensor initial","Indicate LED enable/disable, default : enable":"Indicate LED enable/disable, default : enable","RF function enable/disable, default : disable":"RF function enable/disable, default : disable","Transation interval, default : 400ms":"Transation interval, default : 400ms","Fast process enable/disable when people 0 to 1. default : enable":"Fast process enable/disable when people 0 to 1. default : enable","Fast process enable/disable when people 1 to 0. default : enable":"Fast process enable/disable when people 1 to 0. default : enable","Format 08:00 / 20:00 / 15 / 60 / MoTuWeThFrSaSu / 1 (08:00 = start time 20:00 = end time 15 = irrigation duration in minutes 60 = pause duration in minutes MoTu..= active weekdays 1 = deactivate timer with 0)":"Format 08:00 / 20:00 / 15 / 60 / MoTuWeThFrSaSu / 1 (08:00 = start time 20:00 = end time 15 = irrigation duration in minutes 60 = pause duration in minutes MoTu..= active weekdays 1 = deactivate timer with 0)","Format 08:00 / 15 / MoTuWeThFrSaSu / 1 (08:00 = start time 15 = duration in minutes MoTu..= active weekdays 1 = deactivate timer with 0)":"Format 08:00 / 15 / MoTuWeThFrSaSu / 1 (08:00 = start time 15 = duration in minutes MoTu..= active weekdays 1 = deactivate timer with 0)","Current water flow in %.":"Current water flow in %.","Last watering duration in seconds.":"Last watering duration in seconds.","Remaning watering time (for auto shutdown). Updates every minute, and every 10s in the last minute.":"Remaning watering time (for auto shutdown). Updates every minute, and every 10s in the last minute.","Set valve to %.":"Set valve to %.","Auto shutdown in seconds.":"Auto shutdown in seconds.","Set valve to % with auto shutdown.":"Set valve to % with auto shutdown.","Directly control the radiator valve. The values range from 0 (valve closed) to 100 (valve fully open)":"Directly control the radiator valve. The values range from 0 (valve closed) to 100 (valve fully open)","How hard the motor pushes the valve. The closer to the boiler, the higher the force needed":"How hard the motor pushes the valve. The closer to the boiler, the higher the force needed","Transmits with higher power when range is not sufficient":"Transmits with higher power when range is not sufficient","Consumed energy":"Consumed energy","Indicates if the alarm is triggered on the voltage drop below the limit, allows to reset alarms":"Indicates if the alarm is triggered on the voltage drop below the limit, allows to reset alarms","Indicates if the alarm is triggered on the voltage rise above the limit, allows to reset alarms":"Indicates if the alarm is triggered on the voltage rise above the limit, allows to reset alarms","Indicates if the alarm is triggered on the active power rise above the limit, allows to reset alarms":"Indicates if the alarm is triggered on the active power rise above the limit, allows to reset alarms","Indicates if the alarm is triggered when the consumption energy limit is reached, allows to reset alarms":"Indicates if the alarm is triggered when the consumption energy limit is reached, allows to reset alarms","Minimum allowable voltage limit for alarms.":"Minimum allowable voltage limit for alarms.","Maximum allowable voltage limit for alarms.":"Maximum allowable voltage limit for alarms.","Maximum allowable power limit for alarms.":"Maximum allowable power limit for alarms.","Limit of electric energy consumption in kW*h. 0 value represents no limit":"Limit of electric energy consumption in kW*h. 0 value represents no limit","RSSI seen by the device":"RSSI seen by the device","LQI seen by the device":"LQI seen by the device","Maximum Heating set point limit":"Maximum Heating set point limit","Minimum Heating set point limit":"Minimum Heating set point limit","Maximum Cooling set point limit":"Maximum Cooling set point limit","Minimum Cooling point limit":"Minimum Cooling point limit","Phase 1 voltage":"Phase 1 voltage","Phase 2 voltage":"Phase 2 voltage","Phase 3 voltage":"Phase 3 voltage","Phase 1 current":"Phase 1 current","Phase 2 current":"Phase 2 current","Phase 3 current":"Phase 3 current","Phase 1 energy":"Phase 1 energy","Phase 2 energy":"Phase 2 energy","Phase 3 energy":"Phase 3 energy","Phase 1 reactive energy":"Phase 1 reactive energy","Phase 2 reactive energy":"Phase 2 reactive energy","Phase 3 reactive energy":"Phase 3 reactive energy","Phase 1 power":"Phase 1 power","Phase 2 power":"Phase 2 power","Phase 3 power":"Phase 3 power","Phase 1 reactive power":"Phase 1 reactive power","Phase 2 reactive power":"Phase 2 reactive power","Phase 3 reactive power":"Phase 3 reactive power",'Specifies the initialisation light level. Can not be set lower than "ballast_minimum_level"':'Specifies the initialisation light level. Can not be set lower than "ballast_minimum_level"',"Enables the LED when the light is turned off, allowing to \n see the switch in the dark":`Enables the LED when the light is turned off, allowing to
1394
1394
  see the switch in the dark`,"Enables the LED when the light is turned on":"Enables the LED when the light is turned on","Controls the behavior when the device is powered on. Works only when the pilot wire is\n deactivated":`Controls the behavior when the device is powered on. Works only when the pilot wire is
1395
1395
  deactivated`,"Enables the LED when the power socket is turned off,\n allowing to see it in the dark":`Enables the LED when the power socket is turned off,
1396
1396
  allowing to see it in the dark`,"Enables the LED when the device is turned on":"Enables the LED when the device is turned on","Only shows the transmitted color in X7Y-Mode. Noch changes possible.":"Only shows the transmitted color in X7Y-Mode. Noch changes possible.","color temperature value. Fixed values for each key press: 145, 175, 222, 304, 480 mired":"color temperature value. Fixed values for each key press: 145, 175, 222, 304, 480 mired","Shows the zigbee2mqtt group bound to the active data point EP(1-4).":"Shows the zigbee2mqtt group bound to the active data point EP(1-4).","The number of seconds to wait after unlocking a lock before it automatically locks again. 0=disabled":"The number of seconds to wait after unlocking a lock before it automatically locks again. 0=disabled",State:"State","Irrigation mode":"Irrigation mode","Irrigation Target, duration in minutes or capacity in Litres (depending on mode)":"Irrigation Target, duration in minutes or capacity in Litres (depending on mode)","Number of cycle irrigation times, set to 0 for single cycle":"Number of cycle irrigation times, set to 0 for single cycle","Cycle irrigation interval":"Cycle irrigation interval","Irrigation start time":"Irrigation start time","Irrigation end time":"Irrigation end time","Last irrigation duration":"Last irrigation duration","Water consumed (Litres)":"Water consumed (Litres)","Adjust Report Delay. Setting the time in minutes, by default 5 minutes":"Adjust Report Delay. Setting the time in minutes, by default 5 minutes","Enable Temperature Control":"Enable Temperature Control","Setting High Temperature Border":"Setting High Temperature Border","Setting Low Temperature Border":"Setting Low Temperature Border","Enable Humidity Control":"Enable Humidity Control","Setting High Humidity Border":"Setting High Humidity Border","Setting Low Humidity Border":"Setting Low Humidity Border","Enable or Disable light_indicator":"Enable or Disable light_indicator",light_indicator_level:"light_indicator_level","Setting the altitude above sea level (for high accuracy of the CO2 sensor)":"Setting the altitude above sea level (for high accuracy of the CO2 sensor)","Start FRC (Perform Forced Recalibration of the CO2 Sensor)":"Start FRC (Perform Forced Recalibration of the CO2 Sensor)","Start Manual FRC (Perform Forced Recalibration of the CO2 Sensor)":"Start Manual FRC (Perform Forced Recalibration of the CO2 Sensor)","Factory Reset CO2 sensor":"Factory Reset CO2 sensor","Enable CO2 Gas Control":"Enable CO2 Gas Control","Setting High CO2 Gas Border":"Setting High CO2 Gas Border","Setting Low CO2 Gas Border":"Setting Low CO2 Gas Border","Enable or Disable Auto Brightness of the Display":"Enable or Disable Auto Brightness of the Display","The period of plotting the CO2 level(OFF - 1H | ON - 24H)":"The period of plotting the CO2 level(OFF - 1H | ON - 24H)","Set date and time":"Set date and time","Adjust Report Delay, by default 60 minutes":"Adjust Report Delay, by default 60 minutes","Adjust Report Delay. Setting the time in minutes, by default 15 minutes":"Adjust Report Delay. Setting the time in minutes, by default 15 minutes","Turn the device on or off":"Turn the device on or off","The device sends commands with this group ID. Put dvices in this group to control them.":"The device sends commands with this group ID. Put dvices in this group to control them.","Indicates whether there is an active water leak":"Indicates whether there is an active water leak","Device mode.":"Device mode.","Physical input on the device enabled/disabled":"Physical input on the device enabled/disabled","Alarm status.":"Alarm status.","Stove guard active/inactive (Stove in use)":"Stove guard active/inactive (Stove in use)","Load in W when heating is on (between 0-3600 W). The thermostat uses the value as input to the mean_power calculation.":"Load in W when heating is on (between 0-3600 W). The thermostat uses the value as input to the mean_power calculation.","Displayed text on thermostat display (zone). Max 19 characters":"Displayed text on thermostat display (zone). Max 19 characters","Setpoint in %, use only when the thermostat is in regulator mode.":"Setpoint in %, use only when the thermostat is in regulator mode.","Current temperature measured from the air sensor":"Current temperature measured from the air sensor","Swing mode":"Swing mode","Fan quiet mode":"Fan quiet mode","Controls the behavior when the device is powered on after power loss":"Styr beteendet när enheten slås på efter ett strömavbrott","Remaining battery in %, can take up to 24 hours before reported.":"Remaining battery in %, can take up to 24 hours before reported.","[Soft Switch]: There is a configuration window, opens once an hour on itself, only during which the cube will respond to mode switch. Mode switch will be scheduled to take effect when the window becomes available. You can also give it a throw action (no backward motion) to force a respond! Otherwise, you may open lid and click LINK once to make the cube respond immediately. [Hard Switch]: Open lid and click LINK button 5 times.":"[Soft Switch]: There is a configuration window, opens once an hour on itself, only during which the cube will respond to mode switch. Mode switch will be scheduled to take effect when the window becomes available. You can also give it a throw action (no backward motion) to force a respond! Otherwise, you may open lid and click LINK once to make the cube respond immediately. [Hard Switch]: Open lid and click LINK button 5 times.","Triggered action":"Triggered action","Start feeding":"Start feeding","Feeding source":"Feeding source","Feeding size":"Feeding size","Portions per day":"Portions per day","Weight per day":"Weight per day","Indicates wether there is an error with the feeder":"Indicates wether there is an error with the feeder","Feeding schedule":"Feeding schedule","Led indicator":"Led indicator","Feeding mode":"Feeding mode","One serving size":"One serving size","Portion weight":"Portion weight","Indicates if the device is in setup mode (E11)":"Indicates if the device is in setup mode (E11)","Is the valve calibrated":"Is the valve calibrated","Determines if temperature control abnormalities should be detected":"Determines if temperature control abnormalities should be detected","Notifies of a temperature control abnormality if valve detection is enabled (e.g., thermostat not installed correctly, valve failure or incorrect calibration, incorrect link to external temperature sensor)":"Notifies of a temperature control abnormality if valve detection is enabled (e.g., thermostat not installed correctly, valve failure or incorrect calibration, incorrect link to external temperature sensor)","When being ON, the thermostat will change its state based on your settings":"When being ON, the thermostat will change its state based on your settings","Smart schedule configuration (default: mon,tue,wed,thu,fri|8:00,24.0|18:00,17.0|23:00,22.0|8:00,22.0)":"Smart schedule configuration (default: mon,tue,wed,thu,fri|8:00,24.0|18:00,17.0|23:00,22.0|8:00,22.0)","Pulling curtains by hand starts the motor":"Pulling curtains by hand starts the motor","Calibrate the position limits":"Calibrate the position limits","Lock the curtain driver hooks":"Lock the curtain driver hooks",'Most recent region event. Event template is "region_<REGION_ID>_<EVENT_TYPE>", where <REGION_ID> is region number (1-10), <EVENT_TYPE> is one of "enter", "leave", "occupied", "unoccupied". "enter" / "leave" events are usually triggered first, followed by "occupied" / "unoccupied" after a couple of seconds.':'Most recent region event. Event template is "region_<REGION_ID>_<EVENT_TYPE>", where <REGION_ID> is region number (1-10), <EVENT_TYPE> is one of "enter", "leave", "occupied", "unoccupied". "enter" / "leave" events are usually triggered first, followed by "occupied" / "unoccupied" after a couple of seconds.','Definition of a new region to be added (or replace existing one). Creating or modifying a region requires you to define which zones of a 7x4 detection grid should be active for that zone. Regions can overlap, meaning that a zone can be defined in more than one region (eg. "zone x = 1 & y = 1" can be added to region 1 & 2). "Zone x = 1 & y = 1" is the nearest zone on the right (from sensor\'s perspective, along the detection path).':`Definition of a new region to be added (or replace existing one). Creating or modifying a region requires you to define which zones of a 7x4 detection grid should be active for that zone. Regions can overlap, meaning that a zone can be defined in more than one region (eg. "zone x = 1 & y = 1" can be added to region 1 & 2). "Zone x = 1 & y = 1" is the nearest zone on the right (from sensor's perspective, along the detection path).`,"Region definition to be deleted from the device.":"Region definition to be deleted from the device.","Decoupled mode for top button":"Decoupled mode for top button","Decoupled mode for bottom button":"Decoupled mode for bottom button","Do not disturb mode, when enabled this function will keep the light OFF after a power outage":"Do not disturb mode, when enabled this function will keep the light OFF after a power outage","Specifies the amount of time, in units of 0.1 seconds, which will be used during a transition to either the on or off state, when an on/off/toggle command of the on/off cluster is used to turn the light on or off":"Specifies the amount of time, in units of 0.1 seconds, which will be used during a transition to either the on or off state, when an on/off/toggle command of the on/off cluster is used to turn the light on or off","Specifies the level that shall be applied, when an on/toggle command causes the light to turn on.":"Specifies the level that shall be applied, when an on/toggle command causes the light to turn on.","Defines if you can send a brightness change without to turn on the light":"Defines if you can send a brightness change without to turn on the light","Specifies the initial level to be applied after the device is supplied with power":"Specifies the initial level to be applied after the device is supplied with power","Specifies the minimum level that shall be applied, when an on/toggle command causes the light to turn on. When this attribute is set to the invalid value (255) this feature is disabled and standard rules apply: The light will either return to the previously active level (before it was turned off) if the OnLevel attribute is set to the invalid value (255/previous); or to the specified value of the OnLevel attribute if this value is in the range 0…254. Otherwise, if the MinimumOnLevel is in the range 0…254, the light will be set to the the previously active level (before it was turned off), or the value specified here, whichever is the larger value. For example, if the previous level was 30 and the MinimumOnLevel was 40 then the light would turn on and move to level 40. Conversely, if the previous level was 50, and the MinimumOnLevel was 40, then the light would turn on and move to level 50.":"Specifies the minimum level that shall be applied, when an on/toggle command causes the light to turn on. When this attribute is set to the invalid value (255) this feature is disabled and standard rules apply: The light will either return to the previously active level (before it was turned off) if the OnLevel attribute is set to the invalid value (255/previous); or to the specified value of the OnLevel attribute if this value is in the range 0…254. Otherwise, if the MinimumOnLevel is in the range 0…254, the light will be set to the the previously active level (before it was turned off), or the value specified here, whichever is the larger value. For example, if the previous level was 30 and the MinimumOnLevel was 40 then the light would turn on and move to level 40. Conversely, if the previous level was 50, and the MinimumOnLevel was 40, then the light would turn on and move to level 50.","Turn the light of the alarm ON/OFF":"Turn the light of the alarm ON/OFF","Duration of the alarm":"Duration of the alarm","Volume of the alarm":"Volume of the alarm","Max ON time in seconds":"Max ON time in seconds","Speed off the fan":"Speed off the fan","State of the battery":"State of the battery","Max on time in minutes":"Man on time in minutes","Sum of consumed energy (phase A)":"Sum of consumed energy (phase A)","Sum of consumed energy (phase B)":"Sum of consumed energy (phase B)","Sum of consumed energy (phase C)":"Sum of consumed energy (phase C)","Measured electrical potential value (phase A)":"Measured electrical potential value (phase A)","Measured electrical potential value (phase B)":"Measured electrical potential value (phase B)","Measured electrical potential value (phase C)":"Measured electrical potential value (phase C)","Instantaneous measured power (phase A)":"Instantaneous measured power (phase A)","Instantaneous measured power (phase B)":"Instantaneous measured power (phase B)","Instantaneous measured power (phase C)":"Instantaneous measured power (phase C)","Instantaneous measured electrical current (phase A)":"Instantaneous measured electrical current (phase A)","Instantaneous measured electrical current (phase B)":"Instantaneous measured electrical current (phase B)","Instantaneous measured electrical current (phase C)":"Instantaneous measured electrical current (phase C)","Instantaneous measured power factor (phase A)":"Instantaneous measured power factor (phase A)","Instantaneous measured power factor (phase B)":"Instantaneous measured power factor (phase B)","Instantaneous measured power factor (phase C)":"Instantaneous measured power factor (phase C)","Type of the switch":"Type of the switch","Type of light attached to the device":"Type of light attached to the device","Measured gas concentration":"Measured gas concentration","Temperature unit":"Temperature unit","Temperature Report interval":"Temperature Report interval","Sensitivity of the radar":"Sensitivity of the radar","Presets for sensitivity for presence and movement":"Presets for sensitivity for presence and movement","Fall sensitivity of the radar":"Fall sensitivity of the radar","Tumble alarm time":"Tumble alarm time","Fall down status":"Fall down status","Static dwell alarm":"Static dwell alarm","Intensity of the backlight":"Intensity of the backlight","Mode of the backlight":"Mode of the backlight","Sum of produced energy":"Sum of produced energy","Fault status of the device (clear = nothing)":"Fault status of the device (clear = nothing)","State of threshold_1":"State of threshold_1","OFF - alarm only, ON - relay will be off when threshold reached":"OFF - alarm only, ON - relay will be off when threshold reached","Can be in Volt or Ampere depending on threshold setting. Setup the value on the device":"Can be in Volt or Ampere depending on threshold setting. Setup the value on the device","State of threshold_2":"State of threshold_2","Setup value on the device":"Setup value on the device","Turn ON to clear last the fault":"Turn ON to clear last the fault","Meter ID (ID of device)":"Meter ID (ID of device)","Parts per million of smoke detected":"Parts per million of smoke detected","Indicates a fault with the device":"Indicates a fault with the device","Thermostat in error state":"Thermostat in error state",'Schedule for monday, format: "HH:MM/C HH:MM/C HH:MM/C HH:MM/C"':'Schedule for monday, format: "HH:MM/C HH:MM/C HH:MM/C HH:MM/C"','Schedule for tuesday, format: "HH:MM/C HH:MM/C HH:MM/C HH:MM/C"':'Schedule for tuesday, format: "HH:MM/C HH:MM/C HH:MM/C HH:MM/C"','Schedule for wednesday, format: "HH:MM/C HH:MM/C HH:MM/C HH:MM/C"':'Schedule for wednesday, format: "HH:MM/C HH:MM/C HH:MM/C HH:MM/C"','Schedule for thursday, format: "HH:MM/C HH:MM/C HH:MM/C HH:MM/C"':'Schedule for thursday, format: "HH:MM/C HH:MM/C HH:MM/C HH:MM/C"','Schedule for friday, format: "HH:MM/C HH:MM/C HH:MM/C HH:MM/C"':'Schedule for friday, format: "HH:MM/C HH:MM/C HH:MM/C HH:MM/C"','Schedule for saturday, format: "HH:MM/C HH:MM/C HH:MM/C HH:MM/C"':'Schedule for saturday, format: "HH:MM/C HH:MM/C HH:MM/C HH:MM/C"','Schedule for sunday, format: "HH:MM/C HH:MM/C HH:MM/C HH:MM/C"':'Schedule for sunday, format: "HH:MM/C HH:MM/C HH:MM/C HH:MM/C"','If the heat sink is not fully opened within two weeks or is not used for a long time, the valve will be blocked due to silting up and the heat sink will not be able to be used. To ensure normal use of the heat sink, the controller will automatically open the valve fully every two weeks. It will run for 30 seconds per time with the screen displaying "Ad", then return to its normal working state again.':'If the heat sink is not fully opened within two weeks or is not used for a long time, the valve will be blocked due to silting up and the heat sink will not be able to be used. To ensure normal use of the heat sink, the controller will automatically open the valve fully every two weeks. It will run for 30 seconds per time with the screen displaying "Ad", then return to its normal working state again.',"When the room temperature is lower than 5 °C, the valve opens; when the temperature rises to 8 °C, the valve closes.":"When the room temperature is lower than 5 °C, the valve opens; when the temperature rises to 8 °C, the valve closes.",'If NTC is damaged, "Er" will be on the TRV display.':'If NTC is damaged, "Er" will be on the TRV display.',"When Anti-Freezing function is activated, the temperature in the house is kept at 8 °C.":"When Anti-Freezing function is activated, the temperature in the house is kept at 8 °C.","Only for Homeassistant":"Only for Home Assistant",'When Anti-Freezing function is activated, the temperature in the house is kept at 8 °C.When Anti-Freezing function is activated, the temperature in the house is kept at 8 °C, the device display "AF".press the pair button to cancel.':'When Anti-Freezing function is activated, the temperature in the house is kept at 8 °C.When Anti-Freezing function is activated, the temperature in the house is kept at 8 °C, the device display "AF".press the pair button to cancel.','The holiday mode will automatically start at the set time starting point and run the holiday temperature. Can be defined in the following format: `startYear/startMonth/startDay startHours:startMinutes | endYear/endMonth/endDay endHours:endMinutes`. For example: `2022/10/01 16:30 | 2022/10/21 18:10`. After the end of holiday mode, it switches to "auto" mode and uses schedule.':'The holiday mode will automatically start at the set time starting point and run the holiday temperature. Can be defined in the following format: `startYear/startMonth/startDay startHours:startMinutes | endYear/endMonth/endDay endHours:endMinutes`. For example: `2022/10/01 16:30 | 2022/10/21 18:10`. After the end of holiday mode, it switches to "auto" mode and uses schedule.',"`mon_sun` - schedule for Monday used for each day (define it only for Monday). `mon_fri+sat+sun` - schedule for workdays used from Monday (define it only for Monday), Saturday and Sunday are defined separately. `separate` - schedule for each day is defined separately.":"`mon_sun` - schedule for Monday used for each day (define it only for Monday). `mon_fri+sat+sun` - schedule for workdays used from Monday (define it only for Monday), Saturday and Sunday are defined separately. `separate` - schedule for each day is defined separately.",'Schedule will work with "auto" preset. In this mode, the device executes a preset week programming temperature time and temperature. Before using these properties, check `working_day` property. Each day can contain up to 10 segments. At least 1 segment should be defined. Different count of segments can be defined for each day, e.g., 3 segments for Monday, 5 segments for Thursday, etc. It should be defined in the following format: `hours:minutes/temperature`. Minutes can be only tens, i.e., 00, 10, 20, 30, 40, 50. Segments should be divided by space symbol. Each day should end with the last segment of 24:00. Examples: `04:00/20 08:30/22 10:10/18 18:40/24 22:50/19.5`; `06:00/21.5 17:20/26 24:00/18`. The temperature will be set from the beginning/start of one period and until the next period, e.g., `04:00/20 24:00/22` means that from 00:00 to 04:00 temperature will be 20 degrees and from 04:00 to 00:00 temperature will be 22 degrees.':'Schedule will work with "auto" preset. In this mode, the device executes a preset week programming temperature time and temperature. Before using these properties, check `working_day` property. Each day can contain up to 10 segments. At least 1 segment should be defined. Different count of segments can be defined for each day, e.g., 3 segments for Monday, 5 segments for Thursday, etc. It should be defined in the following format: `hours:minutes/temperature`. Minutes can be only tens, i.e., 00, 10, 20, 30, 40, 50. Segments should be divided by space symbol. Each day should end with the last segment of 24:00. Examples: `04:00/20 08:30/22 10:10/18 18:40/24 22:50/19.5`; `06:00/21.5 17:20/26 24:00/18`. The temperature will be set from the beginning/start of one period and until the next period, e.g., `04:00/20 24:00/22` means that from 00:00 to 04:00 temperature will be 20 degrees and from 04:00 to 00:00 temperature will be 22 degrees.','Schedule for monday, format: "HH:MM/C"':'Schedule for monday, format: "HH:MM/C"','Schedule for tuesday, format: "HH:MM/C"':'Schedule for tuesday, format: "HH:MM/C"','Schedule for wednesday, format: "HH:MM/C"':'Schedule for wednesday, format: "HH:MM/C"','Schedule for thursday, format: "HH:MM/C"':'Schedule for thursday, format: "HH:MM/C"','Schedule for friday, format: "HH:MM/C"':'Schedule for friday, format: "HH:MM/C"','Schedule for saturday, format: "HH:MM/C"':'Schedule for saturday, format: "HH:MM/C"','Schedule for sunday, format: "HH:MM/C"':'Schedule for sunday, format: "HH:MM/C"',"The current data request from the device.":"The current data request from the device.","Reverse the motor direction":"Reverse the motor direction","Mode of the indicator light":"Mode of the indicator light","Countdown to turn device off after a certain time":"Countdown to turn device off after a certain time","Indicates whether the device is being self-tested":"Indicates whether the device is being self-tested","Result of the self-test":"Result of the self-test","Silence the alarm":"Silence the alarm","Ringtone of the alarm":"Ringtone of the alarm","Alarm time":"Alarm time","Indicates sensor preheat is active":"Indicates sensor preheat is active","Indicates whether a fault was detected":"Indicates whether a fault was detected","Automatic calibration of the CO2 sensor. If ON, the CO2 sensor will automatically calibrate every 7 days. (MH-Z19B sensor)":"Automatic calibration of the CO2 sensor. If ON, the CO2 sensor will automatically calibrate every 7 days. (MH-Z19B sensor)","Ventilate the room for 20 minutes, turn on manual calibration, and turn it off after one second. After about 5 minutes the CO2 sensor will show 400ppm. Calibration completed. (MH-Z19B sensor)":"Ventilate the room for 20 minutes, turn on manual calibration, and turn it off after one second. After about 5 minutes the CO2 sensor will show 400ppm. Calibration completed. (MH-Z19B sensor)","TRV valve position in %.":"TRV valve position in %.","Automatically turn off load after x seconds":"Automatically turn off load after x seconds","Control status LED color when load ON":"Control status LED color when load ON","Control status LED color when load OFF":"Control status LED color when load OFF","Control status LED intensity when load ON":"Control status LED intensity when load ON","Control status LED intensity when load OFF":"Control status LED intensity when load OFF","Mode of the thermostat":"Mode of the thermostat","Occupancy state of the thermostat":"Occupancy state of the thermostat","Showing outdoor temperature on secondary display":"Showing outdoor temperature on secondary display","The temperature format displayed on the thermostat screen":"The temperature format displayed on the thermostat screen","The time format featured on the thermostat display":"The time format featured on the thermostat display","Enables or disables the device’s buttons":"Enables or disables the device’s buttons","The display backlight behavior":"The display backlight behavior","The power in watts of the electrical load connected to the device":"The power in watts of the electrical load connected to the device","Control mode using floor or ambient temperature":"Control mode using floor or ambient temperature","The maximum floor temperature limit of the floor when in ambient control mode":"The maximum floor temperature limit of the floor when in ambient control mode","The minimum floor temperature limit of the floor when in ambient control mode":"The minimum floor temperature limit of the floor when in ambient control mode","The maximum ambient temperature limit when in floor control mode":"The maximum ambient temperature limit when in floor control mode","The floor sensor":"The floor sensor","The length of the control cycle according to the type of load connected to the thermostats":"The length of the control cycle according to the type of load connected to the thermostats","The length of the control cycle according to the type of auxiliary load connected to the thermostats":"The length of the control cycle according to the type of auxiliary load connected to the thermostats","This function prevents the seizure of the pump":"This function prevents the seizure of the pump","The power in watts of the heater connected to the auxiliary output of the thermostat":"The power in watts of the heater connected to the auxiliary output of the thermostat","The length of the control cycle: 15_sec=normal 15_min=fan":"The length of the control cycle: 15_sec=normal 15_min=fan","Transaction interval, default : 400ms":"Transaction interval, default : 400ms","Flash green tag for x seconds":"Flash green tag for x seconds","Input (command) and output (control) behavior of actuator":"Input (command) and output (control) behavior of actuator","Output signal when operating in fil pilote mode (fip_fip)":"Output signal when operating in fil pilote mode (fip_fip)","Viewing/display direction, `false` normal or `true` upside-down":"Viewing/display direction, `false` normal or `true` upside-down","Scheduled change of the setpoint. Alternative method for changing the setpoint. In the opposite to occupied_heating_setpoint it does not trigger an aggressive response from the actuator. (more suitable for scheduled changes)":"Scheduled change of the setpoint. Alternative method for changing the setpoint. In the opposite to occupied_heating_setpoint it does not trigger an aggressive response from the actuator. (more suitable for scheduled changes)","The temperature sensor of the TRV is — due to its design — relatively close to the heat source (i.e. the hot water in the radiator). Thus there are situations where the `local_temperature` measured by the TRV is not accurate enough: If the radiator is covered behind curtains or furniture, if the room is rather big, or if the radiator itself is big and the flow temperature is high, then the temperature in the room may easily diverge from the `local_temperature` measured by the TRV by 5°C to 8°C. In this case you might choose to use an external room sensor and send the measured value of the external room sensor to the `External_measured_room_sensor` property.The way the TRV operates on the `External_measured_room_sensor` depends on the setting of the `Radiator_covered` property: If `Radiator_covered` is `false` (Auto Offset Mode): You *must* set the `External_measured_room_sensor` property *at least* every 3 hours. After 3 hours the TRV disables this function and resets the value of the `External_measured_room_sensor` property to -8000 (disabled). You *should* set the `External_measured_room_sensor` property *at most* every 30 minutes or every 0.1K change in measured room temperature.If `Radiator_covered` is `true` (Room Sensor Mode): You *must* set the `External_measured_room_sensor` property *at least* every 30 minutes. After 35 minutes the TRV disables this function and resets the value of the `External_measured_room_sensor` property to -8000 (disabled). You *should* set the `External_measured_room_sensor` property *at most* every 5 minutes or every 0.1K change in measured room temperature.":"The temperature sensor of the TRV is — due to its design — relatively close to the heat source (i.e. the hot water in the radiator). Thus there are situations where the `local_temperature` measured by the TRV is not accurate enough: If the radiator is covered behind curtains or furniture, if the room is rather big, or if the radiator itself is big and the flow temperature is high, then the temperature in the room may easily diverge from the `local_temperature` measured by the TRV by 5°C to 8°C. In this case you might choose to use an external room sensor and send the measured value of the external room sensor to the `External_measured_room_sensor` property.The way the TRV operates on the `External_measured_room_sensor` depends on the setting of the `Radiator_covered` property: If `Radiator_covered` is `false` (Auto Offset Mode): You *must* set the `External_measured_room_sensor` property *at least* every 3 hours. After 3 hours the TRV disables this function and resets the value of the `External_measured_room_sensor` property to -8000 (disabled). You *should* set the `External_measured_room_sensor` property *at most* every 30 minutes or every 0.1K change in measured room temperature.If `Radiator_covered` is `true` (Room Sensor Mode): You *must* set the `External_measured_room_sensor` property *at least* every 30 minutes. After 35 minutes the TRV disables this function and resets the value of the `External_measured_room_sensor` property to -8000 (disabled). You *should* set the `External_measured_room_sensor` property *at most* every 5 minutes or every 0.1K change in measured room temperature.","Controls whether the TRV should solely rely on an external room sensor or operate in offset mode. `false` = Auto Offset Mode (use this e.g. for exposed radiators) or `true` = Room Sensor Mode (use this e.g. for covered radiators). Please note that this flag only controls how the TRV operates on the value of `External_measured_room_sensor`; only setting this flag without setting the `External_measured_room_sensor` has no (noticable?) effect.":"Controls whether the TRV should solely rely on an external room sensor or operate in offset mode. `false` = Auto Offset Mode (use this e.g. for exposed radiators) or `true` = Room Sensor Mode (use this e.g. for covered radiators). Please note that this flag only controls how the TRV operates on the value of `External_measured_room_sensor`; only setting this flag without setting the `External_measured_room_sensor` has no (noticable?) effect.","List of RGB HEX colors":"List of RGB HEX colors","Humidity Report interval":"Humidity Report interval","Humidity sensitivity":"Humidity sensitivity","LED State":"LED State","Hysteresis setting, default: 0.5":"Hysteresis setting, default: 0.5","Adjust brightness of display values 1(Low)-7(High)":"Adjust brightness of display values 1(Low)-7(High)","Enable / Disable display auto off":"Enable / Disable display auto off","The mode after a power reset. Default: Previous Mode. See instructions for information about manual":"The mode after a power reset. Default: Previous Mode. See instructions for information about manual","Turn on/off window check mode":"Turn on/off window check mode","Hysteresis setting, between 0.5 and 5 in 0.1 °C. Default: 0.5.":"Hysteresis setting, between 0.5 and 5 in 0.1 °C. Default: 0.5.","Floor temperature over heating threshold, range is 0-35, unit is 1ºC, 0 means this function is disabled, default value is 27.":"Floor temperature over heating threshold, range is 0-35, unit is 1ºC, 0 means this function is disabled, default value is 27.","Maximum temperature limit. Cuts the thermostat out regardless of air temperature if the external floor sensor exceeds this temperature. Only used by the thermostat when in AL sensor mode.":"Maximum temperature limit. Cuts the thermostat out regardless of air temperature if the external floor sensor exceeds this temperature. Only used by the thermostat when in AL sensor mode.","Minimum temperature limit for frost protection. Turns the thermostat on regardless of setpoint if the tempreature drops below this.":"Minimum temperature limit for frost protection. Turns the thermostat on regardless of setpoint if the tempreature drops below this.","Time of day and setpoint to use when in program mode":"Time of day and setpoint to use when in program mode","Enables the LED when the light is turned off, allowing to see the switch in the dark":"Enables the LED when the light is turned off, allowing to see the switch in the dark","Enables the LED when the power socket is turned off,\n allowing to see it in the dark":"Enables the LED when the power socket is turned off, allowing to see it in the dark","Switch: allow manual on/off, auto uses contact's C1/C2 wired actions for Peak/Off-Peak electricity rates":"Switch: allow manual on/off, auto uses contact's C1/C2 wired actions for Peak/Off-Peak electricity rates",'Off/auto/on (override) (works only if device is set to "auto" mode)':'Off/auto/on (override) (works only if device is set to "auto" mode)',"Default level for the dimmer when it is turned on at the switch. A setting of 255 means that the switch will return to the level that it was on before it was turned off.":"Default level for the dimmer when it is turned on at the switch. A setting of 255 means that the switch will return to the level that it was on before it was turned off.","Default level for the dimmer when it is turned on from the hub. A setting of 255 means that the switch will return to the level that it was on before it was turned off.":"Default level for the dimmer when it is turned on from the hub. A setting of 255 means that the switch will return to the level that it was on before it was turned off.","The state the switch should return to when power is restored after power failure. 0 = off, 1-254 = level, 255 = previous.":"The state the switch should return to when power is restored after power failure. 0 = off, 1-254 = level, 255 = previous.","Percent power level change that will result in a new power report being sent. 0 = Disabled":"Percent power level change that will result in a new power report being sent. 0 = Disabled","This will set the button press delay. 0 = no delay (Disables Button Press Events),Default = 500ms.":"This will set the button press delay. 0 = no delay (Disables Button Press Events),Default = 500ms.","In neutral on/off setups, the default is to have a clicking sound to notify you that the relay is open or closed. You may disable this sound by creating a, “simulated” on/off where the switch only will turn onto 100 or off to 0.":"In neutral on/off setups, the default is to have a clicking sound to notify you that the relay is open or closed. You may disable this sound by creating a, “simulated” on/off where the switch only will turn onto 100 or off to 0.","Double-Tap the Config button to clear notifications.":"Double-Tap the Config button to clear notifications.","Sensirion VOC index":"Sensirion VOC index","Irrigation target, duration in seconds or capacity in litres (depending on mode)":"Irrigation target, duration in seconds or capacity in litres (depending on mode)","Last irrigation start time (GMT)":"Last irrigation start time (GMT)","Last irrigation end time (GMT)":"Last irrigation end time (GMT)","Last irrigation water consumption":"Last irrigation water consumption","Indicates whether the device detected rainfall":"Indicates whether the device detected rainfall","State of input 1":"State of input 1","State of input 2":"State of input 2","State of input 3":"State of input 3","State of input 4":"State of input 4","On/off state of switch 1":"On/off state of switch 1","On/off state of switch 2":"On/off state of switch 2","Enable/disable LED on motion":"Enable/disable LED on motion","Transmit power, supported from firmware 20221102. The max for CC1352 is 20 dBm and 5 dBm for CC2652 (any higher value is converted to 5dBm)":"Transmit power, supported from firmware 20221102. The max for CC1352 is 20 dBm and 5 dBm for CC2652 (any higher value is converted to 5dBm)","The device sends commands with this group ID. Put devices in this group to control them.":"The device sends commands with this group ID. Put devices in this group to control them.","Blinks the built-in LED to make it easier to find the device":"Blinks the built-in LED to make it easier to find the device","Mode of the alarm (sound effect)":"Mode of the alarm (sound effect)","Siren state":"Siren state","Initiate self-test":"Initiate self-test","Sensitivity of the smoke alarm":"Sensitivity of the smoke alarm","Enable/disable pre-alarm":"Enable/disable pre-alarm","Enable/disable heartbeat":"Enable/disable heartbeat","Activate Boost heating":"Activate Boost heating","Window open":"Window open","Display orientation":"Display orientation","Specifies the diplay On-time":"Specifies the diplay On-time","Specifies the brightness value of the display":"Specifies the brightness value of the display","Operating environment of the thermostat":"Operating environment of the thermostat"},ixt={action:"Action",angle_x:"Angle X",angle_y:"Angle Y",angle_z:"Angle Z",brightness:"Brightness",co2:"CO 2",color_temp:"Color Temp",color_xy:"Color Xy",contact:"Contact",humidity:"Humidity",illuminance:"Illuminance",occupancy:"Occupancy",pressure:"Pressure",soil_moisture:"Soil Moisture",state:"State",temperature:"Temperature",tamper:"Tamper",action_angle:"Action Angle",action_from_side:"Action From Side",action_side:"Action Side",action_to_side:"Action To Side",alarm:"Alarm",away_mode:"Away Mode",calibration_time:"Calibration Time",carbon_monoxide:"Carbon Monoxide",child_lock:"Child Lock",color_hs:"Color Hs",color_temp_startup:"Color Temp Startup",consumer_connected:"Consumer Connected",current:"Current",current_heating_setpoint:"Current Heating Setpoint",current_level_startup:"Current Level Startup",device_temperature:"Device Temperature",energy:"Energy",friday_schedule:"Friday Schedule",heating:"Heating",holidays_schedule:"Holidays Schedule",level_config:"Level Config",local_temperature:"Local Temperature",local_temperature_calibration:"Local Temperature Calibration",monday_schedule:"Monday Schedule",motion_direction:"Motion Direction",motion_speed:"Motion Speed",motor_speed:"Motor Speed",moving:"Moving",on_off_transition_time:"On Off Transition Time",options:"Options",position:"Position",power:"Power",presence:"Presence",preset:"Preset",programming_mode:"Programming Mode",saturday_schedule:"Saturday Schedule",smoke:"Smoke",smoke_density:"Smoke Density",sunday_schedule:"Sunday Schedule",system_mode:"System Mode",thursday_schedule:"Thursday Schedule",tuesday_schedule:"Tuesday Schedule",vibration:"Vibration",voltage:"Voltage",water_leak:"Water Leak",week:"Week",window:"Window",workdays_schedule:"Workdays Schedule",operation_mode:"Operation Mode",pi_heating_demand:"Pi Heating Demand",undefined:"undefined",x:"X",y:"Y",effect:"Effect",linkquality:"Linkquality",occupied_heating_setpoint:"Occupied Heating Setpoint",running_state:"Running State",battery:"Battery",lock_state:"Lock State",pin_code:"Pin Code",user:"User",user_type:"User Type",user_enabled:"User Enabled",click_mode:"Click Mode",action_rotation_angle:"Action Rotation Angle",action_rotation_angle_speed:"Action Rotation Angle Speed",action_rotation_percent:"Action Rotation Percent",action_rotation_percent_speed:"Action Rotation Percent Speed",action_rotation_time:"Action Rotation Time",power_outage_memory:"Power Outage Memory",led_disabled_night:"Led Disabled Night",button_lock:"Button Lock",overload_protection:"Overload Protection",button_switch_mode:"Button Switch Mode",illuminance_lux:"Illuminance Lux",detection_period:"Detection Period",voc:"Voc",mode_switch:"Mode Switch",standby_enabled:"Standby Enabled",theme:"Theme",beep_volume:"Beep Volume",lcd_brightness:"Lcd Brightness",language:"Language",screen_saver_style:"Screen Saver Style",standby_time:"Standby Time",font_size:"Font Size",lcd_auto_brightness_enabled:"Lcd Auto Brightness Enabled",homepage:"Homepage",screen_saver_enabled:"Screen Saver Enabled",standby_lcd_brightness:"Standby Lcd Brightness",available_switches:"Available Switches",switch_1_text_icon:"Switch 1 Text Icon",switch_1_icon:"Switch 1 Icon",switch_1_text:"Switch 1 Text",switch_2_text_icon:"Switch 2 Text Icon",switch_2_icon:"Switch 2 Icon",switch_2_text:"Switch 2 Text",switch_3_text_icon:"Switch 3 Text Icon",switch_3_icon:"Switch 3 Icon",switch_3_text:"Switch 3 Text",switch_type:"Switch Type",hue:"Hue",saturation:"Saturation",reverse:"Reverse",battery_low:"Battery Low",interlock:"Interlock",strength:"Strength",sensitivity:"Sensitivity",inserted:"Inserted",gas:"Gas",gas_density:"Gas Density",selftest:"Selftest",test:"Test",auto_off:"Auto Off",motion_sensitivity:"Motion Sensitivity",occupancy_timeout:"Occupancy Timeout",window_open:"Window Open",window_open_force:"Window Open Force",keypad_lockout:"Keypad Lockout",action_code:"Action Code",action_transaction:"Action Transaction",action_zone:"Action Zone",tilt:"Tilt",on_transition_time:"On Transition Time",off_transition_time:"Off Transition Time",ballast_physical_minimum_level:"Ballast Physical Minimum Level",ballast_physical_maximum_level:"Ballast Physical Maximum Level",ballast_minimum_level:"Ballast Minimum Level",ballast_maximum_level:"Ballast Maximum Level",minimum_on_level:"Minimum On Level",capabilities_forward_phase_control:"Capabilities Forward Phase Control",capabilities_reverse_phase_control:"Capabilities Reverse Phase Control",capabilities_reactance_discriminator:"Capabilities Reactance Discriminator",capabilities_configurable_curve:"Capabilities Configurable Curve",capabilities_overload_detection:"Capabilities Overload Detection",status_forward_phase_control:"Status Forward Phase Control",status_reverse_phase_control:"Status Reverse Phase Control",status_overload:"Status Overload",status_capacitive_load:"Status Capacitive Load",status_inductive_load:"Status Inductive Load",mode_phase_control:"Mode Phase Control",meter_number:"Meter Number",trip:"Trip",countdown_timer:"Countdown Timer",voltage_rms:"Voltage Rms",current_average:"Current Average",energy_consumed:"Energy Consumed",clear_device_data:"Clear Device Data",radar_sensitivity:"Radar Sensitivity",radar_scene:"Radar Scene",o_sensitivity:"O Sensitivity",v_sensitivity:"V Sensitivity",led_status:"Led Status",vacancy_delay:"Vacancy Delay",light_on_luminance_prefer:"Light On Luminance Prefer",light_off_luminance_prefer:"Light Off Luminance Prefer",mode:"Mode",luminance_level:"Luminance Level",reference_luminance:"Reference Luminance",vacant_confirm_time:"Vacant Confirm Time",alarm_temperature_max:"Alarm Temperature Max",alarm_temperature_min:"Alarm Temperature Min",alarm_humidity_max:"Alarm Humidity Max",alarm_humidity_min:"Alarm Humidity Min",alarm_humidity:"Alarm Humidity",alarm_temperature:"Alarm Temperature",volume:"Volume",power_on_behavior:"Power On Behavior",min_brightness:"Min Brightness",max_temperature:"Max Temperature",min_temperature:"Min Temperature",wednesday_schedule:"Wednesday Schedule",boost_heating:"Boost Heating",boost_heating_countdown:"Boost Heating Countdown",open_window:"Open Window",open_window_temperature:"Open Window Temperature",holiday_temperature:"Holiday Temperature",comfort_temperature:"Comfort Temperature",eco_temperature:"Eco Temperature",boost_timeset_countdown:"Boost Timeset Countdown",frost_protection:"Frost Protection",heating_stop:"Heating Stop",online:"Online",schedule_monday:"Schedule Monday",schedule_tuesday:"Schedule Tuesday",schedule_wednesday:"Schedule Wednesday",schedule_thursday:"Schedule Thursday",schedule_friday:"Schedule Friday",schedule_saturday:"Schedule Saturday",schedule_sunday:"Schedule Sunday",error_status:"Error Status",away_preset_days:"Away Preset Days",boost_time:"Boost Time",force:"Force",away_preset_temperature:"Away Preset Temperature",calibration:"Calibration",motor_reversal:"Motor Reversal",backlight_mode:"Backlight Mode",formaldehyd:"Formaldehyd",direction:"Direction",warning:"Warning",level:"Level",strobe_level:"Strobe Level",strobe:"Strobe",strobe_duty_cycle:"Strobe Duty Cycle",duration:"Duration",x_axis:"X Axis",y_axis:"Y Axis",z_axis:"Z Axis",beep:"Beep",led_intensity_on:"Led Intensity On",led_intensity_off:"Led Intensity Off",minimum_brightness:"Minimum Brightness",backlight_auto_dim:"Backlight Auto Dim",people:"People",zone_mode:"Zone Mode",calibrate_valve:"Calibrate Valve",valve_calibration_status:"Valve Calibration Status",schneider_pilot_mode:"Schneider Pilot Mode",dimmer_mode:"Dimmer Mode",timer_state:"Timer State",timer:"Timer",timer_time_left:"Timer Time Left",last_valve_open_duration:"Last Valve Open Duration",water_consumed:"Water Consumed",mounted_mode_active:"Mounted Mode Active",mounted_mode_control:"Mounted Mode Control",thermostat_vertical_orientation:"Thermostat Vertical Orientation",viewing_direction:"Viewing Direction",heat_available:"Heat Available",heat_required:"Heat Required",setpoint_change_source:"Setpoint Change Source",external_measured_room_sensor:"External Measured Room Sensor",window_open_internal:"Window Open Internal",window_open_external:"Window Open External",day_of_week:"Day Of Week",trigger_time:"Trigger Time",algorithm_scale_factor:"Algorithm Scale Factor",load_balancing_enable:"Load Balancing Enable",load_room_mean:"Load Room Mean",load_estimate:"Load Estimate",led_indication:"Led Indication",device_mode:"Device Mode",occupied_cooling_setpoint:"Occupied Cooling Setpoint",ac_louver_position:"Ac Louver Position",sound_volume:"Sound Volume",auto_relock:"Auto Relock",power_type:"Power Type",humidity_alarm:"Humidity Alarm",temperature_alarm:"Temperature Alarm",melody:"Melody",temperature_min:"Temperature Min",temperature_max:"Temperature Max",humidity_min:"Humidity Min",humidity_max:"Humidity Max",do_not_disturb:"Do Not Disturb",color_power_on_behavior:"Color Power On Behavior",eco_mode:"Eco Mode",boost_heating_countdown_time_set:"Boost Heating Countdown Time Set",deadzone_temperature:"Deadzone Temperature",max_temperature_limit:"Max Temperature Limit",sensor:"Sensor",fan_mode:"Fan Mode",motor_direction:"Motor Direction",alert_behaviour:"Alert Behaviour",eco2:"Eco 2",current_heating_setpoint_auto:"Current Heating Setpoint Auto",detectwindow_temperature:"Detectwindow Temperature",detectwindow_timeminute:"Detectwindow Timeminute",binary_one:"Binary One",binary_two:"Binary Two",away_setting:"Away Setting",away_preset_year:"Away Preset Year",away_preset_month:"Away Preset Month",away_preset_day:"Away Preset Day",away_preset_hour:"Away Preset Hour",away_preset_minute:"Away Preset Minute",monday:"Monday",monday_temp_1:"Monday Temp 1",monday_hour_1:"Monday Hour 1",monday_minute_1:"Monday Minute 1",monday_temp_2:"Monday Temp 2",monday_hour_2:"Monday Hour 2",monday_minute_2:"Monday Minute 2",monday_temp_3:"Monday Temp 3",monday_hour_3:"Monday Hour 3",monday_minute_3:"Monday Minute 3",monday_temp_4:"Monday Temp 4",monday_hour_4:"Monday Hour 4",monday_minute_4:"Monday Minute 4",monday_temp_5:"Monday Temp 5",monday_hour_5:"Monday Hour 5",monday_minute_5:"Monday Minute 5",monday_temp_6:"Monday Temp 6",monday_hour_6:"Monday Hour 6",monday_minute_6:"Monday Minute 6",monday_temp_7:"Monday Temp 7",monday_hour_7:"Monday Hour 7",monday_minute_7:"Monday Minute 7",monday_temp_8:"Monday Temp 8",monday_hour_8:"Monday Hour 8",monday_minute_8:"Monday Minute 8",monday_temp_9:"Monday Temp 9",monday_hour_9:"Monday Hour 9",monday_minute_9:"Monday Minute 9",tuesday:"Tuesday",tuesday_temp_1:"Tuesday Temp 1",tuesday_hour_1:"Tuesday Hour 1",tuesday_minute_1:"Tuesday Minute 1",tuesday_temp_2:"Tuesday Temp 2",tuesday_hour_2:"Tuesday Hour 2",tuesday_minute_2:"Tuesday Minute 2",tuesday_temp_3:"Tuesday Temp 3",tuesday_hour_3:"Tuesday Hour 3",tuesday_minute_3:"Tuesday Minute 3",tuesday_temp_4:"Tuesday Temp 4",tuesday_hour_4:"Tuesday Hour 4",tuesday_minute_4:"Tuesday Minute 4",tuesday_temp_5:"Tuesday Temp 5",tuesday_hour_5:"Tuesday Hour 5",tuesday_minute_5:"Tuesday Minute 5",tuesday_temp_6:"Tuesday Temp 6",tuesday_hour_6:"Tuesday Hour 6",tuesday_minute_6:"Tuesday Minute 6",tuesday_temp_7:"Tuesday Temp 7",tuesday_hour_7:"Tuesday Hour 7",tuesday_minute_7:"Tuesday Minute 7",tuesday_temp_8:"Tuesday Temp 8",tuesday_hour_8:"Tuesday Hour 8",tuesday_minute_8:"Tuesday Minute 8",tuesday_temp_9:"Tuesday Temp 9",tuesday_hour_9:"Tuesday Hour 9",tuesday_minute_9:"Tuesday Minute 9",wednesday:"Wednesday",wednesday_temp_1:"Wednesday Temp 1",wednesday_hour_1:"Wednesday Hour 1",wednesday_minute_1:"Wednesday Minute 1",wednesday_temp_2:"Wednesday Temp 2",wednesday_hour_2:"Wednesday Hour 2",wednesday_minute_2:"Wednesday Minute 2",wednesday_temp_3:"Wednesday Temp 3",wednesday_hour_3:"Wednesday Hour 3",wednesday_minute_3:"Wednesday Minute 3",wednesday_temp_4:"Wednesday Temp 4",wednesday_hour_4:"Wednesday Hour 4",wednesday_minute_4:"Wednesday Minute 4",wednesday_temp_5:"Wednesday Temp 5",wednesday_hour_5:"Wednesday Hour 5",wednesday_minute_5:"Wednesday Minute 5",wednesday_temp_6:"Wednesday Temp 6",wednesday_hour_6:"Wednesday Hour 6",wednesday_minute_6:"Wednesday Minute 6",wednesday_temp_7:"Wednesday Temp 7",wednesday_hour_7:"Wednesday Hour 7",wednesday_minute_7:"Wednesday Minute 7",wednesday_temp_8:"Wednesday Temp 8",wednesday_hour_8:"Wednesday Hour 8",wednesday_minute_8:"Wednesday Minute 8",wednesday_temp_9:"Wednesday Temp 9",wednesday_hour_9:"Wednesday Hour 9",wednesday_minute_9:"Wednesday Minute 9",thursday:"Thursday",thursday_temp_1:"Thursday Temp 1",thursday_hour_1:"Thursday Hour 1",thursday_minute_1:"Thursday Minute 1",thursday_temp_2:"Thursday Temp 2",thursday_hour_2:"Thursday Hour 2",thursday_minute_2:"Thursday Minute 2",thursday_temp_3:"Thursday Temp 3",thursday_hour_3:"Thursday Hour 3",thursday_minute_3:"Thursday Minute 3",thursday_temp_4:"Thursday Temp 4",thursday_hour_4:"Thursday Hour 4",thursday_minute_4:"Thursday Minute 4",thursday_temp_5:"Thursday Temp 5",thursday_hour_5:"Thursday Hour 5",thursday_minute_5:"Thursday Minute 5",thursday_temp_6:"Thursday Temp 6",thursday_hour_6:"Thursday Hour 6",thursday_minute_6:"Thursday Minute 6",thursday_temp_7:"Thursday Temp 7",thursday_hour_7:"Thursday Hour 7",thursday_minute_7:"Thursday Minute 7",thursday_temp_8:"Thursday Temp 8",thursday_hour_8:"Thursday Hour 8",thursday_minute_8:"Thursday Minute 8",thursday_temp_9:"Thursday Temp 9",thursday_hour_9:"Thursday Hour 9",thursday_minute_9:"Thursday Minute 9",friday:"Friday",friday_temp_1:"Friday Temp 1",friday_hour_1:"Friday Hour 1",friday_minute_1:"Friday Minute 1",friday_temp_2:"Friday Temp 2",friday_hour_2:"Friday Hour 2",friday_minute_2:"Friday Minute 2",friday_temp_3:"Friday Temp 3",friday_hour_3:"Friday Hour 3",friday_minute_3:"Friday Minute 3",friday_temp_4:"Friday Temp 4",friday_hour_4:"Friday Hour 4",friday_minute_4:"Friday Minute 4",friday_temp_5:"Friday Temp 5",friday_hour_5:"Friday Hour 5",friday_minute_5:"Friday Minute 5",friday_temp_6:"Friday Temp 6",friday_hour_6:"Friday Hour 6",friday_minute_6:"Friday Minute 6",friday_temp_7:"Friday Temp 7",friday_hour_7:"Friday Hour 7",friday_minute_7:"Friday Minute 7",friday_temp_8:"Friday Temp 8",friday_hour_8:"Friday Hour 8",friday_minute_8:"Friday Minute 8",friday_temp_9:"Friday Temp 9",friday_hour_9:"Friday Hour 9",friday_minute_9:"Friday Minute 9",saturday:"Saturday",saturday_temp_1:"Saturday Temp 1",saturday_hour_1:"Saturday Hour 1",saturday_minute_1:"Saturday Minute 1",saturday_temp_2:"Saturday Temp 2",saturday_hour_2:"Saturday Hour 2",saturday_minute_2:"Saturday Minute 2",saturday_temp_3:"Saturday Temp 3",saturday_hour_3:"Saturday Hour 3",saturday_minute_3:"Saturday Minute 3",saturday_temp_4:"Saturday Temp 4",saturday_hour_4:"Saturday Hour 4",saturday_minute_4:"Saturday Minute 4",saturday_temp_5:"Saturday Temp 5",saturday_hour_5:"Saturday Hour 5",saturday_minute_5:"Saturday Minute 5",saturday_temp_6:"Saturday Temp 6",saturday_hour_6:"Saturday Hour 6",saturday_minute_6:"Saturday Minute 6",saturday_temp_7:"Saturday Temp 7",saturday_hour_7:"Saturday Hour 7",saturday_minute_7:"Saturday Minute 7",saturday_temp_8:"Saturday Temp 8",saturday_hour_8:"Saturday Hour 8",saturday_minute_8:"Saturday Minute 8",saturday_temp_9:"Saturday Temp 9",saturday_hour_9:"Saturday Hour 9",saturday_minute_9:"Saturday Minute 9",sunday:"Sunday",sunday_temp_1:"Sunday Temp 1",sunday_hour_1:"Sunday Hour 1",sunday_minute_1:"Sunday Minute 1",sunday_temp_2:"Sunday Temp 2",sunday_hour_2:"Sunday Hour 2",sunday_minute_2:"Sunday Minute 2",sunday_temp_3:"Sunday Temp 3",sunday_hour_3:"Sunday Hour 3",sunday_minute_3:"Sunday Minute 3",sunday_temp_4:"Sunday Temp 4",sunday_hour_4:"Sunday Hour 4",sunday_minute_4:"Sunday Minute 4",sunday_temp_5:"Sunday Temp 5",sunday_hour_5:"Sunday Hour 5",sunday_minute_5:"Sunday Minute 5",sunday_temp_6:"Sunday Temp 6",sunday_hour_6:"Sunday Hour 6",sunday_minute_6:"Sunday Minute 6",sunday_temp_7:"Sunday Temp 7",sunday_hour_7:"Sunday Hour 7",sunday_minute_7:"Sunday Minute 7",sunday_temp_8:"Sunday Temp 8",sunday_hour_8:"Sunday Hour 8",sunday_minute_8:"Sunday Minute 8",sunday_temp_9:"Sunday Temp 9",sunday_hour_9:"Sunday Hour 9",sunday_minute_9:"Sunday Minute 9",power_alarm_active:"Power Alarm Active",power_alarm:"Power Alarm",led_enable:"Led Enable",keep_time:"Keep Time",illuminance_calibration:"Illuminance Calibration",reporting_time:"Reporting Time",temperature_calibration:"Temperature Calibration",humidity_calibration:"Humidity Calibration",pir_enable:"Pir Enable",reporting_enable:"Reporting Enable",fan_speed:"Fan Speed",pm25:"Pm 25",air_quality:"Air Quality",replace_filter:"Replace Filter",requested_brightness_level:"Requested Brightness Level",requested_brightness_percent:"Requested Brightness Percent",illuminance_above_threshold:"Illuminance Above Threshold",temperature_setpoint_hold:"Temperature Setpoint Hold",temperature_setpoint_hold_duration:"Temperature Setpoint Hold Duration",hcho:"Hcho",aqi:"Aqi",pm10:"Pm 10",battery_state:"Battery State",threshold:"Threshold",sos:"Sos",trv_mode:"Trv Mode",valve_position:"Valve Position",display_text:"Display Text",load:"Load",regulator_mode:"Regulator Mode",regulator_time:"Regulator Time",floor_temp:"Floor Temp",max_floor_temp:"Max Floor Temp",mean_power:"Mean Power",frost_guard:"Frost Guard",night_switching:"Night Switching",sound:"Sound",time_ring:"Time Ring",time_talk:"Time Talk",time_open:"Time Open",time_bell:"Time Bell",time_report:"Time Report",led_feedback:"Led Feedback",enable_abc:"Enable Abc",threshold1:"Threshold 1",threshold2:"Threshold 2",temperature_offset:"Temperature Offset",humidity_offset:"Humidity Offset",pressure_offset:"Pressure Offset",radioactive_events_per_minute:"Radioactive Events Per Minute",radiation_dose_per_hour:"Radiation Dose Per Hour",buzzer_feedback:"Buzzer Feedback",alert_threshold:"Alert Threshold",sensors_type:"Sensors Type",sensors_count:"Sensors Count",switch_actions:"Switch Actions",cpu_temperature:"Cpu Temperature",squawk:"Squawk",max_duration:"Max Duration",pulse_configuration:"Pulse Configuration",interface_mode:"Interface Mode",current_summation:"Current Summation",check_meter:"Check Meter",reliability:"Reliability",fault:"Fault",current_phase_b:"Current Phase B",voltage_phase_b:"Voltage Phase B",current_phase_c:"Current Phase C",voltage_phase_c:"Voltage Phase C",master_pin_mode:"Master Pin Mode",rfid_enable:"Rfid Enable",relock_enabled:"Relock Enabled",lock_mode:"Lock Mode",service_mode:"Service Mode",led_state:"Led State",key_state:"Key State",abs_min_heat_setpoint_limit:"Abs Min Heat Setpoint Limit",abs_max_heat_setpoint_limit:"Abs Max Heat Setpoint Limit",min_heat_setpoint_limit:"Min Heat Setpoint Limit",max_heat_setpoint_limit:"Max Heat Setpoint Limit",output_status:"Output Status",room_status_code:"Room Status Code",system_status_code:"System Status Code",system_status_water:"System Status Water",multimaster_role:"Multimaster Role",l1:"L 1",l2:"L 2",l3:"L 3",l4:"L 4",l5:"L 5",l6:"L 6",l7:"L 7",l8:"L 8",l9:"L 9",l10:"L 10",l11:"L 11",l12:"L 12",l13:"L 13",l14:"L 14",l15:"L 15",l16:"L 16",led:"Led",motor_working_mode:"Motor Working Mode",percent_state:"Percent State",border:"Border",flip_indicator_light:"Flip Indicator Light",motor_state:"Motor State",running:"Running",gas_sensitivity:"Gas Sensitivity",linkage_alarm:"Linkage Alarm",power_outage_count:"Power Outage Count",presence_event:"Presence Event",monitoring_mode:"Monitoring Mode",approach_distance:"Approach Distance",detection_interval:"Detection Interval",brightness_state:"Brightness State",action_step_size:"Action Step Size",action_transition_time:"Action Transition Time",action_rate:"Action Rate",tumble_switch:"Tumble Switch",fall_sensitivity:"Fall Sensitivity",tumble_alarm_time:"Tumble Alarm Time",fall_down_status:"Fall Down Status",static_dwell_alarm:"Static Dwell Alarm",trigger:"Trigger",garage_door_contact:"Garage Door Contact",indicator_mode:"Indicator Mode",holiday_start_stop:"Holiday Start Stop",schedule:"Schedule",co:"Co",occupancy_level:"Occupancy Level",noise:"Noise",noise_detected:"Noise Detected",noise_timeout:"Noise Timeout",white_brightness:"White Brightness",door_state:"Door State",power_factor:"Power Factor",ac_frequency:"Ac Frequency",status:"Status",lift_duration:"Lift Duration",programming_operation_mode:"Programming Operation Mode",radiator_covered:"Radiator Covered",window_open_feature:"Window Open Feature",action_duration:"Action Duration",temperature_unit_convert:"Temperature Unit Convert",temperature_sensitivity:"Temperature Sensitivity",battpercentage:"Battpercentage",valve_state:"Valve State",indicate_light:"Indicate Light",ADCO:"Adco",BASE:"Base",OPTARIF:"Optarif",ISOUSC:"Isousc",HCHC:"Hchc",HCHP:"Hchp",BBRHCJW:"Bbrhcjw",BBRHPJW:"Bbrhpjw",BBRHCJR:"Bbrhcjr",BBRHPJR:"Bbrhpjr",IINST:"Iinst",IINST2:"Iinst 2",IINST3:"Iinst 3",IMAX:"Imax",IMAX2:"Imax 2",IMAX3:"Imax 3",PMAX:"Pmax",PAPP:"Papp",PTEC:"Ptec",DEMAIN:"Demain",HHPHC:"Hhphc",PPOT:"Ppot",PEJP:"Pejp",ADPS:"Adps",ADIR1:"Adir 1",ADIR2:"Adir 2",ADIR3:"Adir 3",LTARF:"Ltarf",NTARF:"Ntarf",VTIC:"Vtic",DATE:"Date",EASF07:"Easf 07",EASF08:"Easf 08",EASF09:"Easf 09",EASF10:"Easf 10",EASD01:"Easd 01",EASD02:"Easd 02",EASD03:"Easd 03",EASD04:"Easd 04",EAIT:"Eait",ERQ1:"Erq 1",ERQ2:"Erq 2",ERQ3:"Erq 3",ERQ4:"Erq 4",URMS1:"Urms 1",URMS2:"Urms 2",URMS3:"Urms 3",STGE:"Stge",PCOUP:"Pcoup",SINSTI:"Sinsti",SMAXIN:"Smaxin","SMAXIN-1":"Smaxin 1",CCASN:"Ccasn","CCASN-1":"Ccasn 1",CCAIN:"Ccain","CCAIN-1":"Ccain 1",UMOY1:"Umoy 1",UMOY2:"Umoy 2",UMOY3:"Umoy 3",SINSTS2:"Sinsts 2",SINSTS3:"Sinsts 3",SMAXN2:"Smaxn 2",SMAXN3:"Smaxn 3","SMAXN-1":"Smaxn 1","SMAXN2-1":"Smaxn 21","SMAXN3-1":"Smaxn 31",MSG1:"Msg 1",MSG2:"Msg 2",PRM:"Prm",DPM1:"Dpm 1",FPM1:"Fpm 1",DPM2:"Dpm 2",FPM2:"Fpm 2",DPM3:"Dpm 3",FPM3:"Fpm 3",RELAIS:"Relais",NJOURF:"Njourf","NJOURF+1":"Njourf 1","PJOURF+1":"Pjourf 1",PPOINTE1:"Ppointe 1",cable_outlet_mode:"Cable Outlet Mode",card:"Card",backlight_led:"Backlight Led",action_source_name:"Action Source Name",charging_status:"Charging Status",smoke_density_dbm:"Smoke Density Dbm",heartbeat_indicator:"Heartbeat Indicator",reset_nopresence_status:"Reset Nopresence Status",ac_connected:"Ac Connected",test_alarm:"Test Alarm",test_alarm_result:"Test Alarm Result",battery_level:"Battery Level",fault_alarm:"Fault Alarm",silence_siren:"Silence Siren",report_interval:"Report Interval",max_humidity:"Max Humidity",min_humidity:"Min Humidity",target_distance:"Target Distance",minimum_range:"Minimum Range",maximum_range:"Maximum Range",detection_delay:"Detection Delay",fading_time:"Fading Time",self_test:"Self Test",max_brightness:"Max Brightness",action_group:"Action Group",occupancy_sensitivity:"Occupancy Sensitivity",noise_detect_level:"Noise Detect Level",co2_autocalibration:"Co 2 Autocalibration",co2_manual_calibration:"Co 2 Manual Calibration",th_heater:"Th Heater",power_apparent:"Power Apparent",power_phase_a:"Power Phase A",power_phase_b:"Power Phase B",power_phase_c:"Power Phase C",energy_phase_a:"Energy Phase A",energy_phase_b:"Energy Phase B",energy_phase_c:"Energy Phase C",voltage_phase_a:"Voltage Phase A",voltage_phase_ab:"Voltage Phase Ab",voltage_phase_bc:"Voltage Phase Bc",voltage_phase_ca:"Voltage Phase Ca",current_phase_a:"Current Phase A",preheat_status:"Preheat Status",adaptation_run_status:"Adaptation Run Status",adaptation_run_settings:"Adaptation Run Settings",adaptation_run_control:"Adaptation Run Control",regulation_setpoint_offset:"Regulation Setpoint Offset",temperature_scale:"Temperature Scale",outdoor_temperature:"Outdoor Temperature",button_vibration_level:"Button Vibration Level",floor_sensor_type:"Floor Sensor Type",powerup_status:"Powerup Status",floor_sensor_calibration:"Floor Sensor Calibration",dry_time:"Dry Time",mode_after_dry:"Mode After Dry",temperature_display:"Temperature Display",window_open_check:"Window Open Check",hysterersis:"Hysterersis",display_auto_off_enabled:"Display Auto Off Enabled",alarm_airtemp_overvalue:"Alarm Airtemp Overvalue",backlight:"Backlight",led_effect:"Led Effect",color:"Color",individual_led_effect:"Individual Led Effect",dimmingSpeedUpRemote:"Dimming Speed Up Remote",dimmingSpeedUpLocal:"Dimming Speed Up Local",rampRateOffToOnRemote:"Ramp Rate Off To On Remote",rampRateOffToOnLocal:"Ramp Rate Off To On Local",dimmingSpeedDownRemote:"Dimming Speed Down Remote",dimmingSpeedDownLocal:"Dimming Speed Down Local",rampRateOnToOffRemote:"Ramp Rate On To Off Remote",rampRateOnToOffLocal:"Ramp Rate On To Off Local",minimumLevel:"Minimum Level",maximumLevel:"Maximum Level",invertSwitch:"Invert Switch",autoTimerOff:"Auto Timer Off",defaultLevelLocal:"Default Level Local",defaultLevelRemote:"Default Level Remote",stateAfterPowerRestored:"State After Power Restored",loadLevelIndicatorTimeout:"Load Level Indicator Timeout",activePowerReports:"Active Power Reports",periodicPowerAndEnergyReports:"Periodic Power And Energy Reports",activeEnergyReports:"Active Energy Reports",powerType:"Power Type",switchType:"Switch Type",physicalOnOffDelay:"Physical On Off Delay",smartBulbMode:"Smart Bulb Mode",ledColorWhenOn:"Led Color When On",ledColorWhenOff:"Led Color When Off",ledIntensityWhenOn:"Led Intensity When On",ledIntensityWhenOff:"Led Intensity When Off",localProtection:"Local Protection",remoteProtection:"Remote Protection",outputMode:"Output Mode",onOffLedMode:"On Off Led Mode",firmwareUpdateInProgressIndicator:"Firmware Update In Progress Indicator",defaultLed1ColorWhenOn:"Default Led 1 Color When On",defaultLed1ColorWhenOff:"Default Led 1 Color When Off",defaultLed1IntensityWhenOn:"Default Led 1 Intensity When On",defaultLed1IntensityWhenOff:"Default Led 1 Intensity When Off",defaultLed2ColorWhenOn:"Default Led 2 Color When On",defaultLed2ColorWhenOff:"Default Led 2 Color When Off",defaultLed2IntensityWhenOn:"Default Led 2 Intensity When On",defaultLed2IntensityWhenOff:"Default Led 2 Intensity When Off",defaultLed3ColorWhenOn:"Default Led 3 Color When On",defaultLed3ColorWhenOff:"Default Led 3 Color When Off",defaultLed3IntensityWhenOn:"Default Led 3 Intensity When On",defaultLed3IntensityWhenOff:"Default Led 3 Intensity When Off",defaultLed4ColorWhenOn:"Default Led 4 Color When On",defaultLed4ColorWhenOff:"Default Led 4 Color When Off",defaultLed4IntensityWhenOn:"Default Led 4 Intensity When On",defaultLed4IntensityWhenOff:"Default Led 4 Intensity When Off",defaultLed5ColorWhenOn:"Default Led 5 Color When On",defaultLed5ColorWhenOff:"Default Led 5 Color When Off",defaultLed5IntensityWhenOn:"Default Led 5 Intensity When On",defaultLed5IntensityWhenOff:"Default Led 5 Intensity When Off",defaultLed6ColorWhenOn:"Default Led 6 Color When On",defaultLed6ColorWhenOff:"Default Led 6 Color When Off",defaultLed6IntensityWhenOn:"Default Led 6 Intensity When On",defaultLed6IntensityWhenOff:"Default Led 6 Intensity When Off",defaultLed7ColorWhenOn:"Default Led 7 Color When On",defaultLed7ColorWhenOff:"Default Led 7 Color When Off",defaultLed7IntensityWhenOn:"Default Led 7 Intensity When On",defaultLed7IntensityWhenOff:"Default Led 7 Intensity When Off",doubleTapUpEvent:"Double Tap Up Event",battery2:"Battery 2",control_mode:"Control Mode",switch_status:"Switch Status",load_detection_mode:"Load Detection Mode",load_type:"Load Type",load_dimmable:"Load Dimmable",power_supply_mode:"Power Supply Mode",external_temperature:"External Temperature",hysteresis:"Hysteresis",max_temperature_protection:"Max Temperature Protection",action_user:"Action User",display_unit:"Display Unit",hooks_state:"Hooks State",target_position:"Target Position",power_source:"Power Source",charging:"Charging",buzzer:"Buzzer",buzzer_manual_alarm:"Buzzer Manual Alarm",buzzer_manual_mute:"Buzzer Manual Mute",linkage_alarm_state:"Linkage Alarm State",side:"Side",trigger_indicator:"Trigger Indicator",running_mode:"Running Mode",vacation_mode:"Vacation Mode",duration_of_attendance:"Duration Of Attendance",duration_of_absence:"Duration Of Absence",temperature_unit:"Temperature Unit",learned_ir_code:"Learned Ir Code",ir_code_to_send:"Ir Code To Send",goto_positon:"Goto Positon",active_power:"Active Power",cycle_count:"Cycle Count",cycle_time:"Cycle Time",top_limit:"Top Limit",bottom_limit:"Bottom Limit",favorite_position:"Favorite Position",reverse_direction:"Reverse Direction",motor_type:"Motor Type",report:"Report",factory_reset:"Factory Reset",heating_temp_limit:"Heating Temp Limit",upper_temp:"Upper Temp",brightness_level:"Brightness Level",unoccupied_heating_setpoint:"Unoccupied Heating Setpoint",light_indicator_level:"Light Indicator Level",rf_pairing:"Rf Pairing",occupancy_in:"Occupancy In",occupancy_out:"Occupancy Out",occupancy_or:"Occupancy Or",occupancy_and:"Occupancy And",rf_pairing_on:"Rf Pairing On",counting_freeze:"Counting Freeze",tof_init:"Tof Init",rf_state:"Rf State",transation:"Transation",fast_in:"Fast In",fast_out:"Fast Out",weather_delay:"Weather Delay",cycle_timer_1:"Cycle Timer 1",cycle_timer_2:"Cycle Timer 2",cycle_timer_3:"Cycle Timer 3",cycle_timer_4:"Cycle Timer 4",normal_schedule_timer_1:"Normal Schedule Timer 1",normal_schedule_timer_2:"Normal Schedule Timer 2",normal_schedule_timer_3:"Normal Schedule Timer 3",normal_schedule_timer_4:"Normal Schedule Timer 4",water_flow:"Water Flow",last_watering_duration:"Last Watering Duration",remaining_watering_time:"Remaining Watering Time",shutdown_timer:"Shutdown Timer",valve_state_auto_shutdown:"Valve State Auto Shutdown",radio_strength:"Radio Strength",gradient_scene:"Gradient Scene",default_on_off_state:"Default On Off State",rms_voltage:"Rms Voltage",consumed_energy:"Consumed Energy",alarm_voltage_min:"Alarm Voltage Min",alarm_voltage_max:"Alarm Voltage Max",alarm_power_max:"Alarm Power Max",alarm_consumed_energy:"Alarm Consumed Energy",voltage_min:"Voltage Min",voltage_max:"Voltage Max",power_max:"Power Max",consumed_energy_limit:"Consumed Energy Limit",rssi:"Rssi",last_message_lqi:"Last Message Lqi",last_message_rssi:"Last Message Rssi",unoccupied_cooling_setpoint:"Unoccupied Cooling Setpoint",max_cool_setpoint_limit:"Max Cool Setpoint Limit",min_cool_setpoint_limit:"Min Cool Setpoint Limit",voltage_l1:"Voltage L 1",voltage_l2:"Voltage L 2",voltage_l3:"Voltage L 3",current_l1:"Current L 1",current_l2:"Current L 2",current_l3:"Current L 3",energy_l1:"Energy L 1",energy_l2:"Energy L 2",energy_l3:"Energy L 3",reactive_energy_l1:"Reactive Energy L 1",reactive_energy_l2:"Reactive Energy L 2",reactive_energy_l3:"Reactive Energy L 3",power_l1:"Power L 1",power_l2:"Power L 2",power_l3:"Power L 3",reactive_power_l1:"Reactive Power L 1",reactive_power_l2:"Reactive Power L 2",reactive_power_l3:"Reactive Power L 3",ballast_power_on_level:"Ballast Power On Level",led_in_dark:"Led In Dark",led_if_on:"Led If On",power_state:"Power State",action_color:"Action Color",action_color_temperature:"Action Color Temperature",auto_relock_time:"Auto Relock Time",irrigation_target:"Irrigation Target",cycle_irrigation_num_times:"Cycle Irrigation Num Times",cycle_irrigation_interval:"Cycle Irrigation Interval",irrigation_start_time:"Irrigation Start Time",irrigation_end_time:"Irrigation End Time",last_irrigation_duration:"Last Irrigation Duration",key_1:"Key 1",key_2:"Key 2",key_3:"Key 3",key_4:"Key 4",report_delay:"Report Delay",enable_temperature:"Enable Temperature",high_temperature:"High Temperature",low_temperature:"Low Temperature",enable_humidity:"Enable Humidity",high_humidity:"High Humidity",low_humidity:"Low Humidity",light_indicator:"Light Indicator",set_altitude:"Set Altitude",forced_recalibration:"Forced Recalibration",manual_forced_recalibration:"Manual Forced Recalibration",factory_reset_co2:"Factory Reset Co 2",enable_gas:"Enable Gas",high_gas:"High Gas",low_gas:"Low Gas",auto_brightness:"Auto Brightness",long_chart_period:"Long Chart Period",local_time:"Local Time",device_enabled:"Device Enabled",group_id:"Group Id",active_water_leak:"Active Water Leak",alarm_status:"Alarm Status",active:"Active",regulator_setpoint:"Regulator Setpoint",air_temp:"Air Temp",swing_mode:"Swing Mode",quiet_fan:"Quiet Fan",smoke_state:"Smoke State",checking_result:"Checking Result",smoke_value:"Smoke Value",lifecycle:"Lifecycle",self_checking:"Self Checking",silence:"Silence",feed:"Feed",feeding_source:"Feeding source",feeding_size:"Feeding size",portions_per_day:"Portions per day",weight_per_day:"Weight per day",error:"Error",serving_size:"Serving size",portion_weight:"Portion weight",setup:"Setup",calibrated:"Calibrated",valve_alarm:"Valve Alarm",schedule_settings:"Schedule settings",hand_open:"Hand open",limits_calibration:"Limits calibration",hooks_lock:"Hooks lock",region_upsert:"Region upsert",region_id:"Region ID",zones:"Zones",region_delete:"Region delete",on_level:"On Level",execute_if_off:"Execute if off",light:"Light",countdown:"Countdown",energy_a:"Energy A",energy_b:"Energy B",energy_c:"Energy C",voltage_a:"Voltage A",voltage_b:"Voltage B",voltage_c:"Voltage C",power_a:"Power A",power_b:"Power B",power_c:"Power C",current_a:"Current A",current_b:"Current B",current_c:"Current C",power_factor_a:"Power factor A",power_factor_b:"Power factor B",power_factor_c:"Power factor C",light_type:"Light type",gas_value:"Gas value",temperature_report_interval:"Temperature report interval",produced_energy:"Produced energy",threshold_1:"Threshold 1",threshold_1_protection:"Threshold 1 protection",threshold_1_value:"Threshold 1 value",threshold_2:"Threshold 2",threshold_2_protection:"Threshold 2 protection",threshold_2_value:"Threshold 2 value",clear_fault:"Clear fault",meter_id:"Metrr ID",smoke_concentration:"Smoke concentration",device_fault:"Device fault",alarm_switch:"Alarm switch",scale_protection:"Scale protection",working_day:"Working day",week_day:"Week day",self_test_result:"Self test result",alarm_ringtone:"Alarm ringtone",alarm_time:"Alarm time",preheat:"Preheat",timer_seconds:"Timer seconds",led_color_on:"LED color on",r:"R",g:"G",b:"B",led_color_off:"LED color off",thermostat_occupancy:"Thermostat occupancy",enable_outdoor_temperature:"Enable outdoor temperature",temperature_display_mode:"Temperature display mode",time_format:"Time format",connected_load:"Connected load",floor_control_mode:"Floor controle mode",floor_max_heat_setpoint:"Floor max heat setpoint",floor_min_heat_setpoint:"Floor min heat setpoint",ambiant_max_heat_setpoint:"Ambiant max heat setpoint",floor_temperature_sensor:"Floor temperature sensor",main_cycle_output:"Main cycle output",aux_cycle_output:"AUX cycle output",pump_protection:"Pump protection",aux_connected_load:"AUX connected load",transaction:"Transaction",identify:"Identify",hact_config:"HACT config",fip_setting:"FIP setting",occupied_heating_setpoint_scheduled:"Occupied heating setpoint scheduled",gradient:"Gradient",humidity_report_interval:"Humidity report interval",humidity_sensitivity:"Humidity sensitivity",display_brightnesss:"Display brightness",display_auto_off:"Display auto off",power_up_status:"Power up status",min_temperature_limit:"Min temperature limit",program:"Program",weekdays_p1_hour:"Weekdays P1 hour",weekdays_p1_minute:"Weekdays P1 minute",weekdays_p1_temperature:"Weekdays P1 temperature",weekdays_p2_hour:"Weekdays P2 hour",weekdays_p2_minute:"Weekdays P2 minute",weekdays_p2_temperature:"Weekdays P2 temperature",weekdays_p3_hour:"Weekdays P3 hour",weekdays_p3_minute:"Weekdays P3 minute",weekdays_p3_temperature:"Weekdays P3 temperature",weekdays_p4_hour:"Weekdays P4 hour",weekdays_p4_minute:"Weekdays P4 minute",weekdays_p4_temperature:"Weekdays P4 temperature",saturday_p1_hour:"Saturday P1 hour",saturday_p1_minute:"Saturday P1 minute",saturday_p1_temperature:"Saturday P1 temperature",saturday_p2_hour:"Saturday P2 hour",saturday_p2_minute:"Saturday P2 minute",saturday_p2_temperature:"Saturday P2 temperature",saturday_p3_hour:"Saturday P3 hour",saturday_p3_minute:"Saturday P3 minute",saturday_p3_temperature:"Saturday P3 temperature",saturday_p4_hour:"Saturday P4 hour",saturday_p4_minute:"Saturday P4 minute",saturday_p4_temperature:"Saturday P4 temperature",sunday_p1_hour:"Sunday P1 hour",sunday_p1_minute:"Sunday P1 minute",sunday_p1_temperature:"Sunday P1 temperature",sunday_p2_hour:"Sunday P2 hour",sunday_p2_minute:"Sunday P2 minute",sunday_p2_temperature:"Sunday P2 temperature",sunday_p3_hour:"Sunday P3 hour",sunday_p3_minute:"Sunday P3 minute",sunday_p3_temperature:"Sunday P3 temperature",sunday_p4_hour:"Sunday P4 hour",sunday_p4_minute:"Sunday P4 minute",sunday_p4_temperature:"Sunday P4 temperature",auto_mode:"Auto mode",buttonDelay:"Button delay",doubleTapUpForFullBrightness:"Double tap up for full brightness",relayClick:"Relay click",doubleTapClearNotifications:"Double tap clear notifications",voc_index:"VOC index",rain:"Rain",input:"Input",led_on_motion:"LED on motion",transmit_power:"Transmit power",siren_state:"Siren state",pre_alarm:"Pre alarm",heartbeat:"Heartbeat",boost:"Boost",display_orientation:"Display orientation",display_ontime:"Display ontime",display_brightness:"Display brightness",control_sequence_of_operation:"Control sequence of operation"},oxt={add_to_group:"Add to group",create_group:"Create group",new_group_id:"New group id",new_group_id_placeholder:"Specify group id if necessary",new_group_name:"New group name",new_group_name_placeholder:"example: my_bedroom_lights",remove_group:"Remove group",group_id:"Group ID",group_name:"Group Name",group_members:"Group members",group_scenes:"Group scenes",rename_group:"Rename group"},sxt={empty_logs_message:"Nothing to display",filter_by_text:"Filter by text",show_only:"Show only"},lxt={help_coordinator_link_description:"Solid lines are the link to the Coordinator",help_end_device_description:"Green means End Device",help_is_coordinator:"is Coordinator",help_lqi_description:"Link quality is between 0 - 255 (higher is better), values with / represents multiple types of links",help_router_description:"Blue means Router",help_router_links_description:"Dashed lines are the link with Routes",hide:"Click on me to hide",load:"Load map",loading:"Depending on the size of your network this can take somewhere between 10 seconds and 2 minutes."},uxt={all:"All",dashboard:"Dashboard",devices:"Devices",disable_join:"Disable join",extensions:"Extensions",groups:"Groups",logs:"Logs",map:"Map",ota:"OTA",permit_join:"Permit join",restart:"Restart",settings:"Settings",toggle_dropdown:"Toggle dropdown",touchlink:"Touchlink"},dxt={check:"Check for new updates",check_all:"Check all",empty_ota_message:"You don't have any devices that support OTA",remaining_time:"Remaining time {{- remaining}}",update:"Update device firmware"},cxt={about:"About",advanced:"Advanced",availability:"Availability",blocklist:"Blocklist",coordinator_revision:"Coordinator revision",coordinator_type:"Coordinator type",donate:"Donate",donation_text:["Hello, %username%, here you can thank us for all the hard work","Don't hesitate to say something nice as well ;)"],download_state:"Download state",experimental:"Experimental",external_converters:"External converters",frontend:"Frontend",frontend_version:"Frontend version",main:"Main",mqtt:"MQTT",ota:"OTA updates",passlist:"Passlist",raw:"Raw",restart_zigbee2mqtt:"Restart Zigbee2MQTT",serial:"Serial",settings:"Settings",tools:"Tools",zigbee2mqtt_version:"Zigbee2MQTT version",translate:"Translate",stats:"Stats",coordinator_ieee_address:"Coordinator IEEE Address",request_z2m_backup:"Request Z2m backup",add_install_code:"Add install code",homeassistant:"Home Assistant integration"},mxt={detected_devices_message:"Detected {{count}} touchlink devices.",rescan:"Scan again",scan:"Scan"},hxt={clear:"Clear",closed:"Closed",false:"False",not_supported:"Not supported",occupied:"Occupied",open:"Open",supported:"Supported",true:"True",empty_string:'Empty string("")',leaking:"Leaking",tampered:"Tampered",null:"Null",Clear:"Clear",Closed:"Closed",Occupied:"Occupied",Open:"Open"},pxt={actions:"Actions",attribute:"Attribute",battery:"Battery",block_join:"Block from joining again",cluster:"Cluster",dc_source:"DC Source",description:"Description",device_type:"Device type",endpoint:"Endpoint",firmware_build_date:"Firmware build date",firmware_version:"Firmware version",force_remove:"Force remove",friendly_name:"Friendly name",ieee_address:"IEEE Address",input_clusters:"Input clusters",interview_completed:"Interview completed",interview_failed:"Interview failed",interviewing:"Interviewing",last_seen:"Last seen",lqi:"LQI",mains_single_phase:"Mains (single phase)",manufacturer:"Manufacturer",max_rep_interval:"max rep interval",min_rep_change:"Min rep change",min_rep_interval:"Min rep interval",model:"Model",network_address:"Network address",none:"None",output_clusters:"Output clusters",pic:"Pic",power:"Power",power_level:"power level",reconfigure:"Reconfigure",remove_device:"Remove device",rename_device:"Rename device",select_attribute:"Select attribute",select_cluster:"Select cluster",support_status:"Support status",unsupported:"Unsupported",updating_firmware:"Updating firmware",update_Home_assistant_entity_id:"Update Home Assistant entity ID",zigbee_manufacturer:"Zigbee Manufacturer",zigbee_model:"Zigbee Model",device:"Device",channel:"Channel",possible:"Possible",available:"Available",execute:"Execute",command:"Command",payload:"Payload",save_description:"Save description"},fxt={scene_id:"Scene ID",recall:"Recall",store:"Store",remove:"Remove",remove_all:"Remove all",add:"Add",select_scene:"Select Scene",scene_name:"Scene Name"},gxt={byType:"By device type",byPowerSource:"By power source",byVendor:"By vendor",byModel:"By model",total:"Total",EndDevice:"End devices",Router:"Router"},vxt={avaliability:"Availability",offline:"Offline",online:"Online",disabled:"Disabled",enabled:"Enabled"},yxt={"Home Assistant integration (MQTT discovery)":"Home Assistant integration (MQTT discovery)","Allow new devices to join (re-applied at restart)":"Allow new devices to join (re-applied at restart)","You can define external converters to e.g. add support for a DiY device":"You can define external converters to e.g. add support for a DiY device","Options for active devices (routers/mains powered)":"Options for active devices (routers/mains powered)","Time after which an active device will be marked as offline in minutes":"Time after which an active device will be marked as offline in minutes","Options for passive devices (mostly battery powered)":"Options for passive devices (mostly battery powered)","Time after which an passive device will be marked as offline in minutes":"Time after which an passive device will be marked as offline in minutes","Checks whether devices are online/offline":"Checks whether devices are online/offline","MQTT base topic for Zigbee2MQTT MQTT messages":"MQTT base topic for Zigbee2MQTT MQTT messages","MQTT server URL (use mqtts:// for SSL/TLS connection)":"MQTT server URL (use mqtts:// for SSL/TLS connection)","MQTT keepalive in second":"MQTT keepalive in second","Absolute path to SSL/TLS certificate of CA used to sign server and client certificates":"Absolute path to SSL/TLS certificate of CA used to sign server and client certificates","Absolute path to SSL/TLS key for client-authentication":"Absolute path to SSL/TLS key for client-authentication","Absolute path to SSL/TLS certificate for client-authentication":"Absolute path to SSL/TLS certificate for client-authentication","MQTT server authentication user":"MQTT server authentication user","MQTT server authentication password":"MQTT server authentication password","MQTT client ID":"MQTT client ID","Disable self-signed SSL certificate":"Disable self-signed SSL certificate","Include device information to mqtt messages":"Include device information to mqtt messages","MQTT protocol version":"MQTT protocol version","Disable retain for all send messages. ONLY enable if you MQTT broker doesn't support retained message (e.g. AWS IoT core, Azure IoT Hub, Google Cloud IoT core, IBM Watson IoT Platform). Enabling will break the Home Assistant integration":"Disable retain for all send messages. ONLY enable if you MQTT broker doesn't support retained message (e.g. AWS IoT core, Azure IoT Hub, Google Cloud IoT core, IBM Watson IoT Platform). Enabling will break the Home Assistant integration","Location of the adapter. To autodetect the port, set null":"Location of the adapter. To autodetect the port, set null","Disable LED of the adapter if supported":"Disable LED of the adapter if supported","Adapter type, not needed unless you are experiencing problems":"Adapter type, not needed unless you are experiencing problems","Block devices from the network (by ieeeAddr)":"Block devices from the network (by ieeeAddr)","Allow only certain devices to join the network (by ieeeAddr). Note that all devices not on the passlist will be removed from the network!":"Allow only certain devices to join the network (by ieeeAddr). Note that all devices not on the passlist will be removed from the network!","Transmit power of adapter, only available for Z-Stack (CC253*/CC2652/CC1352) adapters, CC2652 = 5dbm, CC1352 max is = 20dbm (5dbm default)":"Transmit power of adapter, only available for Z-Stack (CC253*/CC2652/CC1352) adapters, CC2652 = 5dbm, CC1352 max is = 20dbm (5dbm default)","Examples when 'state' of a device is published json: topic: 'zigbee2mqtt/my_bulb' payload '{\"state\": \"ON\"}' attribute: topic 'zigbee2mqtt/my_bulb/state' payload 'ON' attribute_and_json: both json and attribute (see above)":`Examples when 'state' of a device is published json: topic: 'zigbee2mqtt/my_bulb' payload '{"state": "ON"}' attribute: topic 'zigbee2mqtt/my_bulb/state' payload 'ON' attribute_and_json: both json and attribute (see above)`,"Disables the legacy api (false = disable)":"Disables the legacy api (false = disable)","ZigBee pan ID, changing requires repairing all devices!":"ZigBee pan ID, changing requires repairing all devices!","Zigbee extended pan ID, changing requires repairing all devices!":"Zigbee extended pan ID, changing requires repairing all devices!","Zigbee channel, changing requires repairing all devices! (Note: use a ZLL channel: 11, 15, 20, or 25 to avoid Problems)":"Zigbee channel, changing requires repairing all devices! (Note: use a ZLL channel: 11, 15, 20, or 25 to avoid Problems)","MQTT message payload will contain all attributes, not only changed ones. Has to be true when integrating via Home Assistant":"MQTT message payload will contain all attributes, not only changed ones. Has to be true when integrating via Home Assistant","Persist cached state, only used when cache_state: true":"Persist cached state, only used when cache_state: true","Send cached state on startup, only used when cache_state: true":"Send cached state on startup, only used when cache_state: true","Log rotation":"Log rotation","Create symlink to current logs in the log directory":"Create symlink to current logs in the log directory","Logging level":"Logging level","Location of log directory":"Location of log directory","Log file name, can also contain timestamp":"Log file name, can also contain timestamp","Baud rate speed for serial port, this can be anything firmware support but default is 115200 for Z-Stack and EZSP, 38400 for Deconz, however note that some EZSP firmware need 57600":"Baud rate speed for serial port, this can be anything firmware support but default is 115200 for Z-Stack and EZSP, 38400 for Deconz, however note that some EZSP firmware need 57600","RTS / CTS Hardware Flow Control for serial port":"RTS / CTS Hardware Flow Control for serial port","Soft reset ZNP after timeout":"Soft reset ZNP after timeout","Network encryption key, changing requires repairing all devices!":"Network encryption key, changing requires repairing all devices!","Add a last_seen attribute to MQTT messages, contains date/time of last Zigbee message":"Add a last_seen attribute to MQTT messages, contains date/time of last Zigbee message","Add an elapsed attribute to MQTT messages, contains milliseconds since the previous msg":"Add an elapsed attribute to MQTT messages, contains milliseconds since the previous msg","Enables report feature (deprecated)":"Enables report feature (deprecated)","Home Assistant discovery topic":"Home Assistant discovery topic","Home Assistant legacy entity attributes, when enabled Zigbee2MQTT will add state attributes to each entity, additional to the separate entities and devices it already creates":"Home Assistant legacy entity attributes, when enabled Zigbee2MQTT will add state attributes to each entity, additional to the separate entities and devices it already creates","Home Assistant status topic":"Home Assistant status topic","Log timestamp format":"Log timestamp format","Adapter concurrency (e.g. 2 for CC2531 or 16 for CC26X2R1) (default: null, uses recommended value)":"Adapter concurrency (e.g. 2 for CC2531 or 16 for CC26X2R1) (default: null, uses recommended value)","Adapter delay":"Adapter delay","Use IKEA TRADFRI OTA test server, see OTA updates documentation":"Use IKEA TRADFRI OTA test server, see OTA updates documentation","Home Assistant legacy triggers, when enabled Zigbee2mqt will send an empty 'action' or 'click' after one has been send. A 'sensor_action' and 'sensor_click' will be discoverd":"Home Assistant legacy triggers, when enabled Zigbee2mqt will send an empty 'action' or 'click' after one has been send. A 'sensor_action' and 'sensor_click' will be discoverd","The host running syslogd, defaults to localhost.":"The host running syslogd, defaults to localhost.","The port on the host that syslog is running on, defaults to syslogd's default port.":"The port on the host that syslog is running on, defaults to syslogd's default port.","The network protocol to log over (e.g. tcp4, udp4, tls4, unix, unix-connect, etc).":"The network protocol to log over (e.g. tcp4, udp4, tls4, unix, unix-connect, etc).","The path to the syslog dgram socket (i.e. /dev/log or /var/run/syslog for OS X).":"The path to the syslog dgram socket (i.e. /dev/log or /var/run/syslog for OS X).","PID of the process that log messages are coming from (Default process.pid).":"PID of the process that log messages are coming from (Default process.pid).","Host to indicate that log messages are coming from (Default: localhost).":"Host to indicate that log messages are coming from (Default: localhost).","The type of the syslog protocol to use (Default: BSD, also valid: 5424).":"The type of the syslog protocol to use (Default: BSD, also valid: 5424).","The name of the application (Default: Zigbee2MQTT).":"The name of the application (Default: Zigbee2MQTT).","The end of line character to be added to the end of the message (Default: Message without modifications).":"The end of line character to be added to the end of the message (Default: Message without modifications).","Your device may request a check for a new firmware update. This value determines how frequently third party servers may actually be contacted to look for firmware updates. The value is set in minutes, and the default is 1 day.":"Your device may request a check for a new firmware update. This value determines how frequently third party servers may actually be contacted to look for firmware updates. The value is set in minutes, and the default is 1 day.","Zigbee devices may request a firmware update, and do so frequently, causing Zigbee2MQTT to reach out to third party servers. If you disable these device initiated checks, you can still initiate a firmware update check manually.":"Zigbee devices may request a firmware update, and do so frequently, causing Zigbee2MQTT to reach out to third party servers. If you disable these device initiated checks, you can still initiate a firmware update check manually.","Frontend binding port":"Frontend binding port","Frontend binding host":"Frontend binding host","Enables authentication, disabled by default":"Enables authentication, disabled by default","Used in the MQTT topic of a device. By default this is the device ID":"Used in the MQTT topic of a device. By default this is the device ID","Retain MQTT messages of this device":"Retain MQTT messages of this device","Sets the MQTT Message Expiry in seconds, Make sure to set mqtt.version to 5":"Sets the MQTT Message Expiry in seconds, Make sure to set mqtt.version to 5","QoS level for MQTT messages of this device":"QoS level for MQTT messages of this device","Debounces messages of this device":"Debounces messages of this device","Protects unique payload values of specified payload properties from overriding within debounce time":"Protects unique payload values of specified payload properties from overriding within debounce time","Publish optimistic state after set":"Publish optimistic state after set","The user-defined device icon for the frontend. It can be a link to an image (not a path to a file) or base64 encoded data URL like: image/svg+xml;base64,PHN2ZyB3aW....R0aD":"The user-defined device icon for the frontend. It can be a link to an image (not a path to a file) or base64 encoded data URL like: image/svg+xml;base64,PHN2ZyB3aW....R0aD","Location of override OTA index file":"Location of override OTA index file","URL on which the frontend can be reached, currently only used for the Home Assistant device configuration page":"URL on which the frontend can be reached, currently only used for the Home Assistant device configuration page","Output location of the log, leave empty to suppress logging":"Output location of the log, leave empty to suppress logging","Home Assistant legacy triggers, when enabled Zigbee2mqt will send an empty 'action' or 'click' after one has been send. A 'sensor_action' and 'sensor_click' will be discovered":"Home Assistant legacy triggers, when enabled Zigbee2mqt will send an empty 'action' or 'click' after one has been send. A 'sensor_action' and 'sensor_click' will be discovered","Payload to be used for device availabilty and bridge/state topics. true = text, false = JSON":"Payload to be used for device availabilty and bridge/state topics. true = text, false = JSON","Name of the device in Home Assistant":"Name of the device in Home Assistant","Control when to publish state OFF for a group. 'all_members_off': only publish state OFF when all group memebers are in state OFF, 'last_member_state': publish state OFF whenever one of its members changes to OFF":"Control when to publish state OFF for a group. 'all_members_off': only publish state OFF when all group memebers are in state OFF, 'last_member_state': publish state OFF whenever one of its members changes to OFF","Filter attributes with regex from published payload.":"Filter attributes with regex from published payload.","Filter attributes with regex from being added to the cache, this prevents the attribute from being in the published payload when the value didn't change.":"Filter attributes with regex from being added to the cache, this prevents the attribute from being in the published payload when the value didn't change.","Filter attributes with regex from optimistic publish payload when calling /set. (This has no effect if optimistic is set to false).":"Filter attributes with regex from optimistic publish payload when calling /set. (This has no effect if optimistic is set to false).","SSL Certificate file path for exposing HTTPS. The sibling property 'ssl_key' must be set for HTTPS to be activated.":"SSL Certificate file path for exposing HTTPS. The sibling property 'ssl_key' must be set for HTTPS to be activated.","SSL key file path for exposing HTTPS. The sibling property 'ssl_cert' must be set for HTTPS to be activated.":"SSL key file path for exposing HTTPS. The sibling property 'ssl_cert' must be set for HTTPS to be activated.","Disables the device (excludes device from network scans, availability and group state updates)":"Disables the device (excludes device from network scans, availability and group state updates)","The user-defined device icon for the frontend. It can be a full URL link to an image (e.g. https://SOME.SITE/MODEL123.jpg) (you cannot use a path to a local file) or base64 encoded data URL (e.g. image/svg+xml;base64,PHN2ZyB3aW....R0aD)":"The user-defined device icon for the frontend. It can be a full URL link to an image (e.g. https://SOME.SITE/MODEL123.jpg) (you cannot use a path to a local file) or base64 encoded data URL (e.g. image/svg+xml;base64,PHN2ZyB3aW....R0aD)","Frontend binding port. Ignored when using a unix domain socket":"Frontend binding port. Ignored when using a unix domain socket","Frontend binding host. Binds to a unix socket when an absolute path is given instead.":"Frontend binding host. Binds to a unix socket when an absolute path is given instead"},_xt={"Home Assistant integration":"Home Assistant integration","Permit join":"Permit join","External converters":"External converters",Active:"Active",Timeout:"Timeout",Availability:"Availability",MQTT:"MQTT","Base topic":"Base topic","MQTT server":"MQTT server",Keepalive:"Keepalive","Certificate authority":"Certificate authority","SSL/TLS key":"SSL/TLS key","SSL/TLS certificate":"SSL/TLS certificate",User:"User",Password:"Password","Client ID":"Client ID","Reject unauthorized":"Reject unauthorized","Include device information":"Include device information",Version:"Version","Force disable retain":"Force disable retain",Serial:"Serial",Port:"Port","Disable led":"Disable led",Adapter:"Adapter",Blocklist:"Blocklist",Passlist:"Passlist","Whitelist (deprecated, use passlist)":"Whitelist (deprecated, use passlist)","Ban (deprecated, use blocklist)":"Ban (deprecated, use blocklist)","Transmit power":"Transmit power","MQTT output type":"MQTT output type",Advanced:"Advanced","Legacy API":"Legacy API","Pan ID (string)":"Pan ID (string)","Pan ID (number)":"Pan ID (number)","Pan ID":"Pan ID","Ext Pan ID":"Ext Pan ID","ZigBee channel":"ZigBee channel","Cache state":"Cache state","Persist cache state":"Persist cache state","Send cached state on startup":"Send cached state on startup","Log rotation":"Log rotation","Log symlink current":"Log symlink current","Log level":"Log level","Log output":"Log output","Log directory":"Log directory","Log file":"Log file",Baudrate:"Baudrate","RTS / CTS":"RTS / CTS","Soft reset timeout (deprecated)":"Soft reset timeout (deprecated)","Network key(string)":"Network key(string)","Network key(array)":"Network key(array)","Network key":"Network key","Last seen":"Last seen",Elapsed:"Elapsed",Reporting:"Reporting","Homeassistant discovery topic":"Homeassistant discovery topic","Home Assistant legacy entity attributes":"Home Assistant legacy entity attributes","Home Assistant status topic":"Home Assistant status topic","Timestamp format":"Timestamp format","Adapter concurrency":"Adapter concurrency","Adapter delay":"Adapter delay","IKEA TRADFRI OTA use test url":"IKEA TRADFRI OTA use test url","Home Assistant legacy triggers":"Home Assistant legacy triggers",syslog:"syslog",Host:"Host",Protocol:"Protocol",Path:"Path",PID:"PID",Localhost:"Localhost",Type:"Type",eol:"eol",Networkmap:"Networkmap","OTA updates":"OTA updates","Update check interval":"Update check interval","Disable automatic update check":"Disable automatic update check",Frontend:"Frontend","Bind host":"Bind host","Auth token":"Auth token","Friendly name":"Friendly name",Retain:"Retain",Retention:"Retention",QoS:"QoS",Debounce:"Debounce","Ignore debounce":"Ignore debounce",Optimistic:"Optimistic","Filtered optimistic attributes":"Filtered optimistic attributes","Filtered publish attributes":"Filtered publish attributes",Icon:"Icon",Passive:"Passive","Home Assistant (simple)":"Home Assistant (simple)","Home Assistant (advanced)":"Home Assistant (advanced)","Availability (simple)":"Availability (simple)","Availability (advanced)":"Availability (advanced)","OTA index override file name":"OTA index override file name","Frontend (simple)":"Frontend (simple)","Frontend (advanced)":"Frontend (advanced)",URL:"URL","Options that are applied to all devices":"Options that are applied to all devices","Baudrate (deprecated)":"Baudrate (deprecated)","RTS / CTS (deprecated)":"RTS / CTS (deprecated)","IKEA TRADFRI OTA use test url (deprecated)":"IKEA TRADFRI OTA use test url (deprecated)","Experimental (deprecated)":"Experimental (deprecated)","Legacy availability payload":"Legacy availability payload","Home Assistant":"Home Assistant","Home Assistant name":"Home Assistant name","Group off state":"Group off state","Filtered attributes from cache":"Filtered attributes from cache","Certificate file path":"Certificate file path","key file path":"key file path",Disabled:"Disabled","Extended pan ID (string)":"Extended pan ID (string)","Extended pan ID (array)":"Extended pan ID (array)"},wte={common:ext,devicePage:txt,exposes:rxt,extensions:axt,featureDescriptions:nxt,featureNames:ixt,groups:oxt,logs:sxt,map:lxt,navbar:uxt,ota:dxt,settings:cxt,touchlink:mxt,values:hxt,zigbee:pxt,scene:fxt,stats:gxt,avaliability:vxt,settingsSchemaDescriptions:yxt,settingsSchemaTitles:_xt},bxt={apply:"Appliquer",attribute:"Attribut",bind:"Lier",check_all:"Tout cocher",clear:"Vider",close:"Fermer",cluster:"Groupe de fonctionnalités",clusters:"Groupes de fonctionnalités",confirmation:"Invite de confirmation",delete:"Effacer",devices:"Appareils",dialog_confirmation_prompt:"Êtes-vous sûr(e) ?",disable:"Désactiver",enter_search_criteria:"Saisissez le critère de recherche",groups:"Groupes",loading:"Chargement…",none:"Aucun(e)",ok:"Valider",read:"Lire",save:"Enregistrer",select_device:"Sélectionner un appareil",select_endpoint:"Sélectionner un point de terminaison",source_endpoint:"Point de terminaison d'origine",the_only_endpoint:"L'unique point de terminaison",unbind:"Délier",write:"Écrire",destination_endpoint:"Point de terminaison de destination"},wxt={about:"À propos",bind:"Lien",clusters:"Groupes de fonctionnalités",dev_console:"Console dev",reporting:"Rapports",settings:"Paramètres",settings_specific:"Paramètres (spécifiques)",state:"État",scene:"Scène",unknown_device:"Appareil inconnu",exposes:"Expose"},kxt={empty_exposes_definition:"Rien n'est exposé"},Sxt={create_new_extension:"Créer une nouvelle extension",extension_name_propmt:"Saisissez le nouveau nom de l'extension",select_extension_to_edit:"Sélectionner l'extension à modifier"},Axt={"Auto off after specific time.":"Extinction automatique après un temps défini.","Away mode":"Mode absence","Away preset days":"Jours d'absence pré-définis","Away preset temperature":"Température d'absence pré-définie","Boost time":"Durée de boost","Brightness of this light":"Luminosité de cette lumière","Calibration time":"Durée de la calibration","Color of this light expressed as hue/saturation":"Couleur de cette lumière exprimée en teinte et saturation","Color of this light in the CIE 1931 color space (x/y)":"Couleur de cette lumière dans l'espace colorimétrique CIE 1931 (x, y)","Color temperature after cold power on of this light":"Température de couleur après un allumage à froid de cette lumière","Color temperature of this light":"Température de couleur de cette lumière","Comfort temperature":"Température de confort","Controls the behavior when the device is powered on":"Contrôle le comportement à l'allumage de l'appareil","Controls the behaviour when the device is powered on":"Contrôle le comportement à l'allumage de l'appareil","Current temperature measured on the device":"Température actuelle mesurée par l'appareil","Decoupled mode for center button":"Mode découplé pour le bouton central","Decoupled mode for left button":"Mode découplé pour le bouton gauche","Decoupled mode for right button":"Mode découplé pour le bouton droit","Eco temperature":"Température éco","Enable/disable auto lock":"Active/désactive le verrouillage automatique","Enable/disable away mode":"Active/désactive le mode absent","Enables/disables physical input on the device":"Active/désactive les boutons physiques de l'appareil","Enables/disables window detection on the device":"Active/désactive la détection de fenêtre de l'appareil","Enabling prevents both relais being on at the same time":"Activer ceci empêche que les deux relais soient activés en même temps","Force the valve position":"Forcer la position de la vanne","Indicates if CO (carbon monoxide) is detected":"Indique si du CO (monoxyde de carbone) est détecté","Indicates if the battery of this device is almost empty":"Indique si la batterie de l'appareil est presque vide","Indicates if the contact is closed (= true) or open (= false)":"Indique si le contact est fermé (= vrai) ou ouvert (= faux)","Indicates whether the device detected a water leak":"Indique si l'appareil a détecté une fuite d'eau","Indicates whether the device detected occupancy":"Indique si l'appareil a détecté une occupation","Indicates whether the device detected smoke":"Indique si l'appareil a détecté de la fumée","Indicates whether the device is tampered":"Indique si l'appareil a été manipulé","Instantaneous measured electrical current":"Mesure instantanée du courant électrique","Instantaneous measured power":"Mesure instantanée de la puissance électrique","Link quality (signal strength)":"Qualité du lien (force du signal)","Maximum temperature":"Température maximale","Measured electrical potential value":"Valeur du potentiel électrique mesuré","Measured illuminance in lux":"Éclairement lumineux mesuré en lux","Measured relative humidity":"Humidité relative mesurée","Measured temperature value":"Valeur de la température mesurée","Minimum temperature":"Température minimale","Mode of this device (similar to system_mode)":"Mode de l'appareil (similaire à system_mode)","Mode of this device":"Mode de l'appareil","Motor speed":"Vitesse du moteur","Offset to be used in the local_temperature":"Décalage à appliquer sur la local_temperature","On/off state of the switch":"État activé/désactivé du commutateur","On/off state of this light":"État allumée/éteinte de la lumière","Position of this cover":"Position de l'ouverture","Raw measured illuminance":"Éclairement lumineux mesuré brut","Recover state after power outage":"Rétablir l'état après une coupure de courant","Remaining battery in %":"Batterie restante en %","Side of the cube":"Face du cube","Sum of consumed energy":"Somme de l'énergie consommée","Temperature setpoint":"Consigne de température","The measured atmospheric pressure":"Pression atmosphérique mesurée","Triggered action (e.g. a button click)":"Action déclenchée (par ex : un clic sur un bouton)","Triggers an effect on the light (e.g. make light blink for a few seconds)":"Déclenche un effet sur la lumière (par ex : la faire clignoter quelques secondes)","Voltage of the battery in millivolts":"Tension de la batterie en millivolts","Week format user for schedule":"Format de semaine de la programmation",'Boost Heating: press and hold "+" for 3 seconds, the device will enter the boost heating mode, and the ▷╵◁ will flash. The countdown will be displayed in the APP':"Chauffage boosté : appuyez et maintenez « + » pendant trois secondes, l'appareil entrera en mode de chauffage boosté et l’icône ▷╵◁ clignotera. Le compte à rebours sera affiché dans l'application","Boost Time Setting 100 sec - 900 sec, (default = 300 sec)":"Paramètre de la durée du boost compris entre 100 et 900 secondes (défaut = 300 s)","Countdown in minutes":"Compte à rebours en minutes","ECO mode (energy saving mode)":"Mode éco (mode d'économie d'énergie)","Indicates whether the device detected presence":"Indique si l'appareil a détecté une présence","Indicates whether the device detected vibration":"Indique si l'appareil a détecté une vibration","Schedule MODE ⏱ - In this mode, the device executes a preset week programming temperature time and temperature.":"MODE PROGRAMMÉ ⏱ – Dans ce mode, l'appareil utilise une programmation hebdomadaire préréglée pour la température.","Speed of movement":"Vitesse du mouvement","Window status closed or open ":"État de la fenêtre fermée ou ouverte","Alarm temperature max":"Température maximale de l'alarme","Alarm temperature min":"Température minimale de l'alarme","Alarm humidity status":"État de l'alarme d'humidité","Alarm temperature status":"État de l'alarme de température","Measured soil moisture value":"Valeur d'humidité de la terre mesurée","The current running state":"L'état de fonctionnement actuel","Position of the valve (= demanded heat) where 0% is fully closed and 100% is fully open":"Position de la vanne (= chaleur demandée) où 0 % signifie entièrement fermée et 100 % entièrement ouverte","State of the lock":"État du verrouillage","Actual state of the lock":"État effectif du verrouillage","User ID to set or clear the pincode for":"ID de l'utilisateur pour lequel définir ou supprimer le code PIN","Whether the user is enabled/disabled":"Si l'utilisateur est activé/désactivé","Pincode to set, set pincode to null to clear":"Code PIN à définir, laisser vide pour le supprimer","Click mode, fast: only supports single click which will be send immediately after clicking, multi: supports more events like double and hold":"Mode de clic : fast : prend uniquement en charge un clic simple qui sera envoyé immédiatement après avoir cliqué ; multi : prend en charge davantage d'événements, comme le double-clic ou le clic maintenu","Click mode, fast: only supports single click which will be send immediately after clicking.multi: supports more events like double and hold":"Mode de clic : fast : prend uniquement en charge un clic simple qui sera envoyé immédiatement après avoir cliqué ; multi : prend en charge davantage d'événements, comme le double-clic ou le clic maintenu","Button mode":"Mode du bouton","Rotation angle":"Angle de rotation","Rotation angle speed":"Vitesse d'angle de rotation","Rotation percent":"Pourcentage de rotation","Rotation percent speed":"Vitesse de pourcentage de rotation","Rotation time":"Durée de la rotation","Enable/disable the power outage memory, this recovers the on/off mode after power failure":"Activer/désactiver la mémoire en cas de coupure de courant (permet de rétablir l'état activé ou désactivé après une coupure de courant)","Enable/disable the LED at night":"Activer/désactiver la LED la nuit","Disables the physical switch button":"Désactive l'interrupteur physique","Maximum allowed load, turns off if exceeded":"Charge maximale autorisée, se coupe si dépassée","Control both relay and usb or only the relay with the physical switch button":"Contrôler à la fois le relais et l'USB ou uniquement le relais avec l'interrupteur physique","Time interval in seconds to report after light changes":"Durée en secondes avant d'envoyer un rapport après modification de la lumière","Decoupled mode":"Mode découplé","Indicates whether a plug is physically attached. Device does not have to pull power or even be connected electrically (state of this binary switch can be ON even if main power switch is OFF)":"Indique si une prise est physiquement branchée. L'appareil n'a pas besoin de consommer d'énergie ni même d'être connecté électriquement (l'état de ce commutateur binaire peut être « activé » même si l'interrupteur d'alimentation principal est désactivé)","Measured VOC value":"Valeur de COV mesurée","Anti flicker mode can be used to solve blinking issues of some lights.Quick mode makes the device respond faster.":"Le mode anti-clignotement peut être utilisé pour résoudre les problèmes de clignotements de certaines lumières. Le mode rapide permet à l'appareil de répondre plus rapidement.","Decoupled mode for button":"Mode découplé pour le bouton",'Operation mode, select "command" to enable bindings (wake up the device before changing modes!)':"Mode d'opération, sélectionnez « command » pour activer les liaisons (réveillez l'appareil avant de modifier son mode !)","Enable standby":"Activer la mise en veille","Display theme":"Thème d'écran","Beep volume":"Volume du bip","LCD brightness (will not persist if auto-brightness is enabled)":"Luminosité du LCD (non persistant si la luminosité automatique est activée)","Interface language":"Langue de l'interface","Screen saver style":"Style d'économiseur d'écran","Display standby time":"Délai avant mise en veille de l'écran","Display font size":"Taille de caractères de l'écran","Enable LCD auto brightness":"Activer la luminosité automatique du LCD","Default display homepage":"Page d'accueil par défaut de l'écran","Enable screen saver":"Activer l'économiseur d'écran","Standby LCD brightness":"Luminosité du LCD en veille","Control which switches are available in the switches screen (none disables switches screen)":"Contrôle quels interrupteurs sont disponibles sur l'écran des interrupteurs (« aucun » désactive l'écran des interrupteurs)","Switch 1 text and icon":"Texte et icône du 1er interrupteur",Icon:"Icône",Text:"Texte","Switch 2 text and icon":"Texte et icône du 2e interrupteur","Switch 3 text and icon":"Texte et icône du 3e interrupteur","Wall switch type":"Type d'interrupteur mural","Temperature of the device":"Température de l'appareil","Indicates whether the device detected gas":"Indique si l'appareil a détecté du gaz","Test mode activated":"Mode test activé","If the power is constantly lower than 2W within half an hour, the plug will be automatically turned off":"Si la puissance reste inférieure à 2 W pendant une demi-heure, la prise sera automatiquement désactivée","Device temperature (polled every 30 min)":"Température de l'appareil (consulté toutes les 30 min)","Turn the device automatically off when attached device consumes less than 2W for 20 minutes":"Éteindre automatiquement l'appareil lorsque la consommation de l'appareil branché reste inférieure à 2 W pendant 20 minutes","Operation mode for left button":"Mode d'opération du bouton gauche","Operation mode for right button":"Mode d'opération du bouton droit","Detected by sudden temperature drop or set manually.":"Détecté par une chute soudaine de température ou défini manuellement.","Manually set window_open, ~1 minute to take affect.":"Définir manuellement window_open (prend environ une minute avant de faire effet).","Pin code introduced.":"Code PIN introduit.","Last action transaction number.":"Numéro de transaction de la dernière action.","Alarm zone. Default value 0":"Zone d'alarme. Value par défaut 0","Tilt of this cover":"Inclinaison de l'ouverture","Configure genLevelCtrl":"Configurer genLevelCtrl","Represents the time taken to move to or from the target level when On of Off commands are received by an On/Off cluster":"Représente la durée de transition vers ou à partir du niveau cible lorsque des commandes d'activation ou de désactivation sont reçues par un groupe de fonctionnalités d'activation/désactivation","Represents the time taken to move the current level from the minimum level to the maximum level when an On command is received":"Représente la durée de transition du niveau actuel depuis le niveau minimal jusqu'au niveau maximal lorsqu'une commande d'activation est reçue","Represents the time taken to move the current level from the maximum level to the minimum level when an Off command is received":"Représente la durée de transition du niveau actuel depuis le niveau maximal jusqu'au niveau minimal lorsqu'une commande de désactivation est reçue","Defines the desired startup level for a device when it is supplied with power":"Définit le niveau de démarrage d'un appareil lorsque il est alimenté","Specifies the minimum light output the ballast can achieve.":"Spécifie la sortie de lumière minimale que le ballast peut atteindre.","Specifies the maximum light output the ballast can achieve.":"Spécifie la sortie de lumière maximale que le ballast peut atteindre.","Specifies the minimum light output of the ballast":"Spécifie la sortie de lumière minimale du ballast","Specifies the maximum light output of the ballast":"Spécifie la sortie de lumière maximale du ballast","Specifies the minimum light output after switching on":"Spécifie la sortie de lumière minimale après allumage","The dimmer supports AC forward phase control.":"Le variateur peut fonctionner par gradation de phase directe.","The dimmer supports AC reverse phase control.":"Le variateur peut fonctionner par gradation de phase inverse.","The dimmer is capable of measuring the reactanceto distinguish inductive and capacitive loads.":"Le variateur est capable de mesurer la réactance pour distinguer les charges inductives et capacitives.","The dimmer is capable of replacing the built-in, default dimming curve.":"Le variateur est capable de remplacer la courbe de gradation intégrée par défaut.","The dimmer is capable of detecting an output overload and shutting the output off.":"Le variateur est capable de détecter une surcharge de sortie et de couper cette dernière.","The dimmer is currently operating in AC forward phase control mode.":"Le variateur fonctionne actuellement par gradation de phase directe.","The dimmer is currently operating in AC reverse phase control mode.":"Le variateur fonctionne actuellement par gradation de phase inverse.","The output is currently turned off, because the dimmer has detected an overload.":"La sortie est actuellement coupée car le variateur a détecté une surcharge.","The dimmer's reactance discriminator had detected a capacitive load.":"Le discriminateur de réactance du variateur avait détecté une charge capacitive.","The dimmer's reactance discriminator had detected an inductive load.":"Le discriminateur de réactance du variateur avait détecté une charge inductive.","Configures the dimming technique.":"Configure la technique de gradation.",'Operation mode: "command" - for group control, "event" - for clicks':"Mode d'opération : « command » pour le contrôle de groupe, « event » pour les clics","direction of movement from the point of view of the radar":"direction du mouvement du point de vue du radar","sensitivity of the radar":"sensibilité du radar","O-Sensitivity mode":"Mode Sensibilité-O","V-Sensitivity mode":"Mode Sensibilité-V","Led status switch":"Statut de l'interrupteur de la LED","Vacancy delay":"Délai avant inoccupation","Light-On luminance prefer":"Préférence de luminance d'allumage","Light-Off luminance prefer":"Préférence de luminance d'extinction","Working mode":"Mode de fonctionnement","Luminance level":"Niveau de luminance","Reference luminance":"Luminance de référence","Vacant confirm time":"Durée de confirmation avant inoccupation","Volume of siren":"Volume de la sirène","Switch type settings":"Paramètres du type d'interrupteur","Minimum light brightness":"Luminosité minimale de la lumière","Device valve is open or closed (heating or not)":"La vanne de l'appareil est ouverte ou fermée (en chauffe ou non)",'MANUAL MODE ☝ - In this mode, the device executes manual temperature setting. When the set temperature is lower than the "minimum temperature", the valve is closed (forced closed). AUTO MODE ⏱ - In this mode, the device executes a preset week programming temperature time and temperature. ON - In this mode, the thermostat stays open OFF - In this mode, the thermostat stays closed':`MANUAL MODE ☝ - Dans ce mode, le périphérique utilise le paramètre de température manuelle. Lorsque la température configurée est plus basse que la "température minumum", la valve est fermée (fermée forcée).