iobroker.eos-admin 7.9.64 → 7.9.65

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.
@@ -19,7 +19,7 @@ __p += '`),Lt&&(Oe+=`' +
19
19
  function print() { __p += __j.call(arguments, '') }
20
20
  `:`;
21
21
  `)+Oe+`return __p
22
- }`;var At=Hl(function(){return Bt(Y,it+"return "+Oe).apply(a,le)});if(At.source=Oe,Bi(At))throw At;return At}function y2(c){return Gt(c).toLowerCase()}function v2(c){return Gt(c).toUpperCase()}function $2(c,f,$){if(c=Gt(c),c&&($||f===a))return M(c);if(!c||!(f=an(f)))return c;var E=kn(c),P=kn(f),Y=ye(E,P),le=ve(E,P)+1;return so(E,Y,le).join("")}function w2(c,f,$){if(c=Gt(c),c&&($||f===a))return c.slice(0,Xi(c)+1);if(!c||!(f=an(f)))return c;var E=kn(c),P=ve(E,kn(f))+1;return so(E,0,P).join("")}function S2(c,f,$){if(c=Gt(c),c&&($||f===a))return c.replace(Fe,"");if(!c||!(f=an(f)))return c;var E=kn(c),P=ye(E,kn(f));return so(E,P).join("")}function k2(c,f){var $=H,E=B;if(na(f)){var P="separator"in f?f.separator:P;$="length"in f?Et(f.length):$,E="omission"in f?an(f.omission):E}c=Gt(c);var Y=c.length;if(fa(c)){var le=kn(c);Y=le.length}if($>=Y)return c;var _e=$-Co(E);if(_e<1)return E;var $e=le?so(le,0,_e).join(""):c.slice(0,_e);if(P===a)return $e+E;if(le&&(_e+=$e.length-_e),Fi(P)){if(c.slice(_e).search(P)){var Le,Pe=$e;for(P.global||(P=ni(P.source,Gt(Ta.exec(P))+"g")),P.lastIndex=0;Le=P.exec(Pe);)var Oe=Le.index;$e=$e.slice(0,Oe===a?_e:Oe)}}else if(c.indexOf(an(P),_e)!=_e){var tt=$e.lastIndexOf(P);tt>-1&&($e=$e.slice(0,tt))}return $e+E}function x2(c){return c=Gt(c),c&&ya.test(c)?c.replace(Aa,Ql):c}var E2=Mo(function(c,f,$){return c+($?" ":"")+f.toUpperCase()}),Gi=Gs("toUpperCase");function Ul(c,f,$){return c=Gt(c),f=$?a:f,f===a?Vl(c)?tc(c):Xr(c):c.match(f)||[]}var Hl=Tt(function(c,f){try{return Pa(c,a,f)}catch($){return Bi($)?$:new St($)}}),C2=qn(function(c,f){return _a(f,function($){$=Mn($),Gn(c,$,Pi(c[$],c))}),c});function A2(c){var f=c==null?0:c.length,$=pt();return c=f?Zt(c,function(E){if(typeof E[1]!="function")throw new dn(r);return[$(E[0]),E[1]]}):[],Tt(function(E){for(var P=-1;++P<f;){var Y=c[P];if(Pa(Y[0],this,E))return Pa(Y[1],this,E)}})}function T2(c){return Xc(pn(c,u))}function Wi(c){return function(){return c}}function j2(c,f){return c==null||c!==c?f:c}var I2=qs(),R2=qs(!0);function Ka(c){return c}function qi(c){return ws(typeof c=="function"?c:pn(c,u))}function z2(c){return ks(pn(c,u))}function D2(c,f){return xs(c,pn(f,u))}var M2=Tt(function(c,f){return function($){return ar($,c,f)}}),L2=Tt(function(c,f){return function($){return ar(c,$,f)}});function Vi(c,f,$){var E=va(f),P=Rr(f,E);$==null&&!(na(f)&&(P.length||!E.length))&&($=f,f=c,c=this,P=Rr(f,va(f)));var Y=!(na($)&&"chain"in $)||!!$.chain,le=Jn(c);return _a(P,function(_e){var $e=f[_e];c[_e]=$e,le&&(c.prototype[_e]=function(){var Le=this.__chain__;if(Y||Le){var Pe=c(this.__wrapped__),Oe=Pe.__actions__=Va(this.__actions__);return Oe.push({func:$e,args:arguments,thisArg:c}),Pe.__chain__=Le,Pe}return $e.apply(c,un([this.value()],arguments))})}),c}function N2(){return Xe._===this&&(Xe._=sc),this}function Ji(){}function P2(c){return c=Et(c),Tt(function(f){return Es(f,c)})}var O2=xi(Zt),B2=xi(Ia),F2=xi(Uo);function Gl(c){return Ri(c)?Wo(Mn(c)):fu(c)}function U2(c){return function(f){return c==null?a:yo(c,f)}}var H2=Js(),G2=Js(!0);function Yi(){return[]}function Ki(){return!1}function W2(){return{}}function q2(){return""}function V2(){return!0}function J2(c,f){if(c=Et(c),c<1||c>Q)return[];var $=de,E=Ra(c,de);f=pt(f),c-=de;for(var P=Vo(E,f);++$<c;)f($);return P}function Y2(c){return kt(c)?Zt(c,Mn):nn(c)?[c]:Va(ul(Gt(c)))}function K2(c){var f=++rc;return Gt(c)+f}var Z2=Pr(function(c,f){return c+f},0),Q2=Ei("ceil"),X2=Pr(function(c,f){return c/f},1),e1=Ei("floor");function t1(c){return c&&c.length?Ir(c,Ka,di):a}function a1(c,f){return c&&c.length?Ir(c,pt(f,2),di):a}function n1(c){return Go(c,Ka)}function o1(c,f){return Go(c,pt(f,2))}function r1(c){return c&&c.length?Ir(c,Ka,_i):a}function i1(c,f){return c&&c.length?Ir(c,pt(f,2),_i):a}var s1=Pr(function(c,f){return c*f},1),l1=Ei("round"),c1=Pr(function(c,f){return c-f},0);function u1(c){return c&&c.length?qo(c,Ka):0}function d1(c,f){return c&&c.length?qo(c,pt(f,2)):0}return q.after=zm,q.ary=$l,q.assign=vp,q.assignIn=Ml,q.assignInWith=Zr,q.assignWith=$p,q.at=wp,q.before=wl,q.bind=Pi,q.bindAll=C2,q.bindKey=Sl,q.castArray=Wm,q.chain=bl,q.chunk=Xu,q.compact=ed,q.concat=td,q.cond=A2,q.conforms=T2,q.constant=Wi,q.countBy=um,q.create=Sp,q.curry=kl,q.curryRight=xl,q.debounce=El,q.defaults=kp,q.defaultsDeep=xp,q.defer=Dm,q.delay=Mm,q.difference=ad,q.differenceBy=nd,q.differenceWith=od,q.drop=rd,q.dropRight=sd,q.dropRightWhile=ld,q.dropWhile=cd,q.fill=ud,q.filter=mm,q.flatMap=_m,q.flatMapDeep=fm,q.flatMapDepth=gm,q.flatten=hl,q.flattenDeep=dd,q.flattenDepth=md,q.flip=Lm,q.flow=I2,q.flowRight=R2,q.fromPairs=pd,q.functions=Rp,q.functionsIn=zp,q.groupBy=bm,q.initial=_d,q.intersection=fd,q.intersectionBy=gd,q.intersectionWith=bd,q.invert=Mp,q.invertBy=Lp,q.invokeMap=vm,q.iteratee=qi,q.keyBy=$m,q.keys=va,q.keysIn=Ya,q.map=Wr,q.mapKeys=Pp,q.mapValues=Op,q.matches=z2,q.matchesProperty=D2,q.memoize=Vr,q.merge=Bp,q.mergeWith=Ll,q.method=M2,q.methodOf=L2,q.mixin=Vi,q.negate=Jr,q.nthArg=P2,q.omit=Fp,q.omitBy=Up,q.once=Nm,q.orderBy=wm,q.over=O2,q.overArgs=Pm,q.overEvery=B2,q.overSome=F2,q.partial=Oi,q.partialRight=Cl,q.partition=Sm,q.pick=Hp,q.pickBy=Nl,q.property=Gl,q.propertyOf=U2,q.pull=wd,q.pullAll=fl,q.pullAllBy=Sd,q.pullAllWith=kd,q.pullAt=xd,q.range=H2,q.rangeRight=G2,q.rearg=Om,q.reject=Em,q.remove=Ed,q.rest=Bm,q.reverse=Li,q.sampleSize=Am,q.set=Wp,q.setWith=qp,q.shuffle=Tm,q.slice=Cd,q.sortBy=Rm,q.sortedUniq=Dd,q.sortedUniqBy=Md,q.split=_2,q.spread=Fm,q.tail=Ld,q.take=Nd,q.takeRight=Pd,q.takeRightWhile=Od,q.takeWhile=Bd,q.tap=tm,q.throttle=Um,q.thru=Gr,q.toArray=Rl,q.toPairs=Pl,q.toPairsIn=Ol,q.toPath=Y2,q.toPlainObject=Dl,q.transform=Vp,q.unary=Hm,q.union=Fd,q.unionBy=Ud,q.unionWith=Hd,q.uniq=Gd,q.uniqBy=Wd,q.uniqWith=qd,q.unset=Jp,q.unzip=Ni,q.unzipWith=gl,q.update=Yp,q.updateWith=Kp,q.values=Po,q.valuesIn=Zp,q.without=Vd,q.words=Ul,q.wrap=Gm,q.xor=Jd,q.xorBy=Yd,q.xorWith=Kd,q.zip=Zd,q.zipObject=Qd,q.zipObjectDeep=Xd,q.zipWith=em,q.entries=Pl,q.entriesIn=Ol,q.extend=Ml,q.extendWith=Zr,Vi(q,q),q.add=Z2,q.attempt=Hl,q.camelCase=t2,q.capitalize=Bl,q.ceil=Q2,q.clamp=Qp,q.clone=qm,q.cloneDeep=Jm,q.cloneDeepWith=Ym,q.cloneWith=Vm,q.conformsTo=Km,q.deburr=Fl,q.defaultTo=j2,q.divide=X2,q.endsWith=a2,q.eq=En,q.escape=n2,q.escapeRegExp=o2,q.every=dm,q.find=pm,q.findIndex=ml,q.findKey=Ep,q.findLast=hm,q.findLastIndex=pl,q.findLastKey=Cp,q.floor=e1,q.forEach=yl,q.forEachRight=vl,q.forIn=Ap,q.forInRight=Tp,q.forOwn=jp,q.forOwnRight=Ip,q.get=Ui,q.gt=Zm,q.gte=Qm,q.has=Dp,q.hasIn=Hi,q.head=_l,q.identity=Ka,q.includes=ym,q.indexOf=hd,q.inRange=Xp,q.invoke=Np,q.isArguments=wo,q.isArray=kt,q.isArrayBuffer=Xm,q.isArrayLike=Ja,q.isArrayLikeObject=ia,q.isBoolean=ep,q.isBuffer=lo,q.isDate=tp,q.isElement=ap,q.isEmpty=np,q.isEqual=op,q.isEqualWith=rp,q.isError=Bi,q.isFinite=ip,q.isFunction=Jn,q.isInteger=Al,q.isLength=Yr,q.isMap=Tl,q.isMatch=sp,q.isMatchWith=lp,q.isNaN=cp,q.isNative=up,q.isNil=mp,q.isNull=dp,q.isNumber=jl,q.isObject=na,q.isObjectLike=oa,q.isPlainObject=lr,q.isRegExp=Fi,q.isSafeInteger=pp,q.isSet=Il,q.isString=Kr,q.isSymbol=nn,q.isTypedArray=No,q.isUndefined=hp,q.isWeakMap=_p,q.isWeakSet=fp,q.join=yd,q.kebabCase=r2,q.last=_n,q.lastIndexOf=vd,q.lowerCase=i2,q.lowerFirst=s2,q.lt=gp,q.lte=bp,q.max=t1,q.maxBy=a1,q.mean=n1,q.meanBy=o1,q.min=r1,q.minBy=i1,q.stubArray=Yi,q.stubFalse=Ki,q.stubObject=W2,q.stubString=q2,q.stubTrue=V2,q.multiply=s1,q.nth=$d,q.noConflict=N2,q.noop=Ji,q.now=qr,q.pad=l2,q.padEnd=c2,q.padStart=u2,q.parseInt=d2,q.random=e2,q.reduce=km,q.reduceRight=xm,q.repeat=m2,q.replace=p2,q.result=Gp,q.round=l1,q.runInContext=be,q.sample=Cm,q.size=jm,q.snakeCase=h2,q.some=Im,q.sortedIndex=Ad,q.sortedIndexBy=Td,q.sortedIndexOf=jd,q.sortedLastIndex=Id,q.sortedLastIndexBy=Rd,q.sortedLastIndexOf=zd,q.startCase=f2,q.startsWith=g2,q.subtract=c1,q.sum=u1,q.sumBy=d1,q.template=b2,q.times=J2,q.toFinite=Yn,q.toInteger=Et,q.toLength=zl,q.toLower=y2,q.toNumber=fn,q.toSafeInteger=yp,q.toString=Gt,q.toUpper=v2,q.trim=$2,q.trimEnd=w2,q.trimStart=S2,q.truncate=k2,q.unescape=x2,q.uniqueId=K2,q.upperCase=E2,q.upperFirst=Gi,q.each=yl,q.eachRight=vl,q.first=_l,Vi(q,(function(){var c={};return zn(q,function(f,$){Ht.call(q.prototype,$)||(c[$]=f)}),c})(),{chain:!1}),q.VERSION=n,_a(["bind","bindKey","curry","curryRight","partial","partialRight"],function(c){q[c].placeholder=q}),_a(["drop","take"],function(c,f){Mt.prototype[c]=function($){$=$===a?1:ba(Et($),0);var E=this.__filtered__&&!f?new Mt(this):this.clone();return E.__filtered__?E.__takeCount__=Ra($,E.__takeCount__):E.__views__.push({size:Ra($,de),type:c+(E.__dir__<0?"Right":"")}),E},Mt.prototype[c+"Right"]=function($){return this.reverse()[c]($).reverse()}}),_a(["filter","map","takeWhile"],function(c,f){var $=f+1,E=$==ie||$==Ce;Mt.prototype[c]=function(P){var Y=this.clone();return Y.__iteratees__.push({iteratee:pt(P,3),type:$}),Y.__filtered__=Y.__filtered__||E,Y}}),_a(["head","last"],function(c,f){var $="take"+(f?"Right":"");Mt.prototype[c]=function(){return this[$](1).value()[0]}}),_a(["initial","tail"],function(c,f){var $="drop"+(f?"":"Right");Mt.prototype[c]=function(){return this.__filtered__?new Mt(this):this[$](1)}}),Mt.prototype.compact=function(){return this.filter(Ka)},Mt.prototype.find=function(c){return this.filter(c).head()},Mt.prototype.findLast=function(c){return this.reverse().find(c)},Mt.prototype.invokeMap=Tt(function(c,f){return typeof c=="function"?new Mt(this):this.map(function($){return ar($,c,f)})}),Mt.prototype.reject=function(c){return this.filter(Jr(pt(c)))},Mt.prototype.slice=function(c,f){c=Et(c);var $=this;return $.__filtered__&&(c>0||f<0)?new Mt($):(c<0?$=$.takeRight(-c):c&&($=$.drop(c)),f!==a&&(f=Et(f),$=f<0?$.dropRight(-f):$.take(f-c)),$)},Mt.prototype.takeRightWhile=function(c){return this.reverse().takeWhile(c).reverse()},Mt.prototype.toArray=function(){return this.take(de)},zn(Mt.prototype,function(c,f){var $=/^(?:filter|find|map|reject)|While$/.test(f),E=/^(?:head|last)$/.test(f),P=q[E?"take"+(f=="last"?"Right":""):f],Y=E||/^find/.test(f);P&&(q.prototype[f]=function(){var le=this.__wrapped__,_e=E?[1]:arguments,$e=le instanceof Mt,Le=_e[0],Pe=$e||kt(le),Oe=function(zt){var Lt=P.apply(q,un([zt],_e));return E&&tt?Lt[0]:Lt};Pe&&$&&typeof Le=="function"&&Le.length!=1&&($e=Pe=!1);var tt=this.__chain__,it=!!this.__actions__.length,_t=Y&&!tt,At=$e&&!it;if(!Y&&Pe){le=At?le:new Mt(this);var ft=c.apply(le,_e);return ft.__actions__.push({func:Gr,args:[Oe],thisArg:a}),new mn(ft,tt)}return _t&&At?c.apply(this,_e):(ft=this.thru(Oe),_t?E?ft.value()[0]:ft.value():ft)})}),_a(["pop","push","shift","sort","splice","unshift"],function(c){var f=fr[c],$=/^(?:push|sort|unshift)$/.test(c)?"tap":"thru",E=/^(?:pop|shift)$/.test(c);q.prototype[c]=function(){var P=arguments;if(E&&!this.__chain__){var Y=this.value();return f.apply(kt(Y)?Y:[],P)}return this[$](function(le){return f.apply(kt(le)?le:[],P)})}}),zn(Mt.prototype,function(c,f){var $=q[f];if($){var E=$.name+"";Ht.call(Ro,E)||(Ro[E]=[]),Ro[E].push({name:f,func:$})}}),Ro[Nr(a,I).name]=[{name:"wrapper",func:a}],Mt.prototype.clone=kc,Mt.prototype.reverse=xc,Mt.prototype.value=Ec,q.prototype.at=am,q.prototype.chain=nm,q.prototype.commit=om,q.prototype.next=rm,q.prototype.plant=sm,q.prototype.reverse=lm,q.prototype.toJSON=q.prototype.valueOf=q.prototype.value=cm,q.prototype.first=q.prototype.head,Yo&&(q.prototype[Yo]=im),q}),Ao=ac();Xt?((Xt.exports=Ao)._=Ao,aa._=Ao):Xe._=Ao}).call(lodash)})(lodash$1,lodash$1.exports);var lodashExports=lodash$1.exports;const _=getDefaultExportFromCjs(lodashExports),funcSet=_.throttle((t,e)=>t(e),200),findCard=(t,e)=>{const a=e.find(n=>n.name===t);return{card:a,index:e.indexOf(a)}},moveCard=(t,e,a,n,i,o)=>{const{card:r,index:l}=findCard(t,a);if(l!==e&&!(l<e&&i<o)&&!(l>e&&i>o)&&r&&l!==e){const h=JSON.parse(JSON.stringify(a));h.splice(l,1),h.splice(e,0,r),funcSet(n,h)}},styles$t={cursor:"move"},DragWrapper=({canDrag:t,setEndDrag:e,iconJSX:a,selected:n,compact:i,badgeContent:o,badgeColor:r,tab:l,tabs:h,setTabs:d,_id:p,children:u,name:s})=>{const b=iobroker_admin__loadShare__react__loadShare__.useRef(null),[{handlerId:w},k]=useDrop({accept:"box",collect(G){return{handlerId:G.getHandlerId()}},hover({_id:G},g){var B;if(!b.current)return;const{index:v}=findCard(p,h),y=(B=b.current)==null?void 0:B.getBoundingClientRect(),S=(y.bottom-y.top)/2,H=g.getClientOffset().y-y.top;moveCard(G,v,h,d,H,S)}}),[{isDragging:x},I,N]=useDrag({type:"box",item:{_id:l.name,...l,iconJSX:a,selected:n,compact:i,badgeContent:o,badgeColor:r},canDrag:()=>t,end:()=>e(),collect:G=>({isDragging:G.isDragging()})});iobroker_admin__loadShare__react__loadShare__.useEffect(()=>{N(getEmptyImage(),{captureDraggingState:!0})},[]);const O=x?0:1;return I(k(b)),jsxRuntimeExports.jsx("div",{ref:b,style:{...styles$t,opacity:O},"data-handler-id":w,children:jsxRuntimeExports.jsx("a",{type:"box","data-handler-id":w,onClick:G=>G.preventDefault(),href:`/#${s}`,style:{...styles$t,opacity:O,color:"inherit",textDecoration:"none"},children:u})})},styles$s={selected:t=>({background:t.palette.primary.main,color:t.palette.mode==="light"?"white":AdminUtils.invertColor(t.palette.primary.main,!0),"&:hover":{background:t.palette.primary.main,color:t.palette.mode==="light"?"white":AdminUtils.invertColor(t.palette.primary.main,!0),"& $selectedIcon":{color:t.palette.mode==="light"?"white":AdminUtils.invertColor(t.palette.primary.main,!0)}}}),selectedIcon:t=>({color:t.palette.mode==="light"?"white":AdminUtils.invertColor(t.palette.primary.main,!0)}),compactBadge:{pl:"12px"},noWrap:{flexWrap:"nowrap",height:40},warn:{backgroundColor:"#ffc107"}},DrawerItem=t=>{const{badgeColor:e,badgeContent:a,compact:n,icon:i,onClick:o,selected:r,text:l,editMenuList:h,visible:d,color:p,editListFunc:u,badgeAdditionalContent:s,badgeAdditionalColor:b,style:w}=t;let k=l?l.replace("&gt;",">"):"";return(k==="Text->Kommandos"||k==="Text->Commands")&&(k="Text→Cmd"),jsxRuntimeExports.jsxs("div",{style:{display:"flex",alignItems:"center",...w||{}},children:[!!h&&jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_icons_mf_2_material__loadShare__.DragHandle,{}),!!h&&jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.Checkbox,{checked:d,onClick:()=>u(!0)}),!!h&&jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.ColorPicker,{value:p,noInputField:!0,onChange:x=>u(!1,x||null)}),jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.ListItemButton,{sx:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.Utils.getStyle(t.theme,r&&styles$s.selected,n&&styles$s.compactBadge),onClick:o,children:jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.Tooltip,{title:n?k:"",slotProps:{popper:{sx:{pointerEvents:"none"}}},children:jsxRuntimeExports.jsxs(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.Grid2,{container:!0,spacing:1,alignItems:"center",style:styles$s.noWrap,children:[jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.Grid2,{children:jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.ListItemIcon,{style:{minWidth:0,color:p},sx:r?styles$s.selectedIcon:void 0,children:jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.Badge,{badgeContent:a||0,color:(e==="warn"?"default":e)||"primary",sx:e==="warn"?{"& .MuiBadge-badge":styles$s.warn}:void 0,children:i})})}),!n&&jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.Grid2,{children:jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.ListItemText,{style:{color:p},children:jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.Badge,{badgeContent:s||0,color:(b==="warn"?"default":b)||"primary",sx:b==="warn"?{"& .MuiBadge-badge":styles$s.warn}:void 0,children:k})})})]})})})]})},layerStyles={position:"fixed",pointerEvents:"none",zIndex:100,left:0,top:0,width:"100%",height:"100%"};function getItemStyles(t,e,a){if(!t||!e)return{display:"none"};let{x:n,y:i}=e;const o=`translate(${n}px, ${i}px)`;return{transform:o,WebkitTransform:o}}const styles$r={root:t=>({background:t.palette.background.default})};function CustomDragLayer(t){const{itemType:e,isDragging:a,item:n,initialOffset:i,currentOffset:o}=useDragLayer(l=>({item:l.getItem(),itemType:l.getItemType(),initialOffset:l.getInitialSourceClientOffset(),currentOffset:l.getSourceClientOffset(),isDragging:l.isDragging()}));function r(){return e==="box"?jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.Box,{component:"div",sx:styles$r.root,style:{width:179},children:jsxRuntimeExports.jsx(DrawerItem,{visible:n.visible,editListFunc:()=>{},compact:n.compact,icon:n.iconJSX,text:n.title,selected:n.selected,badgeContent:n.badgeContent,badgeColor:n.badgeColor,theme:t.theme},n.name)}):null}return a?jsxRuntimeExports.jsx("div",{style:layerStyles,children:jsxRuntimeExports.jsx("div",{style:getItemStyles(i,o),children:r()})}):null}let timer;const CustomPopper=({editMenuList:t,onClick:e,size:a})=>{const[n,i]=React.useState(null),[o,r]=React.useState(!1),[l,h]=React.useState(null);return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.IconButton,{size:a||"large",style:t?{color:"red"}:null,onClick:d=>{e(),t?(r(!1),clearTimeout(timer)):(i(d.currentTarget),r(p=>l!=="right"||!p),h("right"),timer=setTimeout(()=>r(!1),3e3))},title:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.t("show/hide item"),children:jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_icons_mf_2_material__loadShare__.Edit,{})}),jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.Popper,{style:{zIndex:2222},open:o,anchorEl:n,placement:l,transition:!0,children:({TransitionProps:d})=>jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.Fade,{...d,timeout:350,children:jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.Paper,{children:jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.Typography,{style:{padding:16},children:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.t("You can drag and drop list items for reorder")})})})})]})},DRAWER_FULL_WIDTH=180,DRAWER_COMPACT_WIDTH=50,DRAWER_EDIT_WIDTH=250;function ucFirst(t){return t.substring(0,1).toUpperCase()+t.substring(1).toLowerCase()}const styles$q={root:t=>({flexShrink:0,transition:t.transitions.create("width",{easing:t.transitions.easing.easeOut,duration:t.transitions.duration.enteringScreen}),display:"flex",flexDirection:"column"}),rootFullWidth:{width:DRAWER_FULL_WIDTH},rootEditWidth:{width:DRAWER_EDIT_WIDTH},rootCompactWidth:{width:DRAWER_COMPACT_WIDTH},paper:{width:"inherit",overflowX:"hidden"},header:t=>({display:"flex",flexDirection:"row",alignItems:"center",padding:"0 8px 0 8px",...t.mixins.toolbar,justifyContent:"flex-end",position:"sticky",top:0,zIndex:2,background:t.palette.background.default}),headerCompact:{padding:0},headerLogout:{justifyContent:"space-between"},list:{paddingTop:0,flex:"1 0 auto"},icon:{width:20,height:20},logoSize:{width:50,height:50},avatarBlock:{width:"100%",display:"flex",marginTop:5,marginBottom:5},avatarNotVisible:{opacity:0,transition:"opacity 0.3s"},avatarVisible:{opacity:1},styleVersion:t=>({fontSize:10,color:t.palette.mode==="dark"?"#ffffff5e":"#0000005e",alignSelf:"center",ml:"5px"}),editButton:{position:"sticky",bottom:0,right:0,width:"fit-content",marginLeft:"auto",marginTop:"auto",transition:"opacity 0.5s"}},STATES={opened:0,closed:1,compact:2},tabsInfo={"tab-intro":{order:1,icon:jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_icons_mf_2_material__loadShare__.Apps,{})},"tab-info":{order:5,icon:jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_icons_mf_2_material__loadShare__.Info,{}),host:!0},"tab-adapters":{order:10,icon:jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_icons_mf_2_material__loadShare__.Store,{}),host:!0},"tab-instances":{order:15,icon:jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_icons_mf_2_material__loadShare__.Subtitles,{}),host:!0},"tab-objects":{order:20,icon:jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_icons_mf_2_material__loadShare__.ViewList,{})},"tab-enums":{order:25,icon:jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_icons_mf_2_material__loadShare__.ArtTrack,{})},"tab-devices":{order:27,host:!0},"tab-logs":{order:30,icon:jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_icons_mf_2_material__loadShare__.ViewHeadline,{}),host:!0},"tab-scenes":{order:35,icon:jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_icons_mf_2_material__loadShare__.Subscriptions,{})},"tab-events":{order:40,icon:jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_icons_mf_2_material__loadShare__.FlashOn,{})},"tab-users":{order:45,icon:jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_icons_mf_2_material__loadShare__.PersonOutline,{})},"tab-javascript":{order:50},"tab-text2command-0":{order:55,instance:0},"tab-text2command-1":{order:56,instance:1},"tab-text2command-2":{order:57,instance:2},"tab-node-red-0":{order:60,instance:0},"tab-node-red-1":{order:61,instance:1},"tab-node-red-2":{order:62,instance:2},"tab-fullcalendar-0":{order:65,instance:0},"tab-fullcalendar-1":{order:66,instance:1},"tab-fullcalendar-2":{order:67,instance:2},"tab-echarts":{order:70,instance:2},"tab-eventlist-0":{order:80,instance:0},"tab-eventlist-1":{order:81,instance:1},"tab-eventlist-2":{order:82,instance:2},"tab-hosts":{order:100,icon:jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_icons_mf_2_material__loadShare__.Storage,{})},"tab-files":{order:110,icon:jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_icons_mf_2_material__loadShare__.FileCopy,{})},"tab-devicemanager":{order:120,icon:jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_icons_mf_2_material__loadShare__.DeveloperBoard,{})}};class Drawer extends iobroker_admin__loadShare__react__loadShare__.Component{logsHandlerRegistered;refEditButton;constructor(e){super(e),this.state={tabs:[],logErrors:0,logWarnings:0,hostNotifications:{other:0,warning:0},hostsUpdate:Drawer.calculateHostUpdates(this.props.hosts,this.props.repository),adaptersUpdate:Drawer.calculateAdapterUpdates(this.props.installed,this.props.repository),deviceManagerVisible:!1},this.refEditButton=React.createRef()}static getDerivedStateFromProps(e,a){const n=Drawer.calculateHostUpdates(e.hosts,e.repository),i=Drawer.calculateAdapterUpdates(e.installed,e.repository);return n!==a.hostsUpdate||i!==a.adaptersUpdate?{hostsUpdate:n,adaptersUpdate:i}:null}static calculateHostUpdates(e,a){var n;if(e&&a){const i=((n=a["js-controller"])==null?void 0:n.version)||"";let o=0;return e.forEach(r=>{AdminUtils.updateAvailable(r.common.installedVersion,i)&&o++}),o}return 0}static calculateAdapterUpdates(e,a){if(e){let n=0;return Object.keys(e).sort().forEach(i=>{const o=e[i],r=a&&a[i];i!=="js-controller"&&i!=="hosts"&&(o!=null&&o.version)&&(r!=null&&r.version)&&o.ignoreVersion!==r.version&&AdminUtils.updateAvailable(o.version,r.version)&&n++}),n}return 0}instanceChangedHandler=()=>this.getTabs(!0);async isDeviceManagerVisible(){const e=await this.props.instancesWorker.getObjects();return!!Object.values(e).find(n=>{var i,o;return(o=(i=n==null?void 0:n.common)==null?void 0:i.supportedMessages)==null?void 0:o.deviceManager})}componentDidMount(){this.props.instancesWorker.registerHandler(this.instanceChangedHandler,!0),this.getTabs().catch(e=>window.alert(`Cannot get tabs: ${e}`)),this.onNotificationsHandler().then(()=>{this.props.hostsWorker.registerNotificationHandler(this.onNotificationsHandler),this.logsHandlerRegistered||(this.logsHandlerRegistered=!0,this.props.logsWorker.registerErrorCountHandler(this.onErrorsUpdates),this.props.logsWorker.registerWarningCountHandler(this.onWarningsUpdates))})}onNotificationsHandler=()=>this.props.hostsWorker.getNotifications().then(e=>this.calculateWarning(e)).catch(e=>window.alert(`Cannot get notifications: ${e}`));onErrorsUpdates=e=>{this.setState({logErrors:e})};onWarningsUpdates=e=>{this.setState({logWarnings:e})};calculateWarning=e=>{if(!e)return;const a={warning:0,other:0};Object.keys(e).forEach(n=>{var i,o;if((o=(i=e[n])==null?void 0:i.result)!=null&&o.system&&Object.keys(e[n].result.system.categories).length){const r=e[n].result.system.categories;for(const l of Object.values(r))Object.keys(l.instances).forEach(()=>l.severity==="alert"?a.warning++:a.other++)}}),this.setState({hostNotifications:a})};componentWillUnmount(){this.props.instancesWorker.unregisterHandler(this.instanceChangedHandler),this.props.hostsWorker.unregisterNotificationHandler(this.onNotificationsHandler),this.logsHandlerRegistered&&(this.logsHandlerRegistered=!1,this.props.logsWorker.unregisterErrorCountHandler(this.onErrorsUpdates),this.props.logsWorker.unregisterWarningCountHandler(this.onWarningsUpdates))}componentDidUpdate(){!this.isSwipeable()&&this.props.state!==STATES.opened&&this.props.editMenuList&&setTimeout(()=>this.props.setEditMenuList(!1))}async getTabs(e){try{const n=await this.props.socket.getCompactInstances(e),i=[];n&&Object.keys(n).forEach(h=>{var k;const d=n[h];if(!(d!=null&&d.adminTab))return;let p=`tab-${h.replace("system.adapter.","").replace(/\.\d+$/,"")}`;const u=d.adminTab.singleton;let s;if(!u){const x=h.match(/\.(\d+)$/);x&&(s=parseInt(x[1],10),p+=`-${s}`)}if(i.find(x=>x.name===p))return;let b;d.adminTab.name?typeof d.adminTab.name=="object"?d.adminTab.name&&d.adminTab.name[this.props.lang]?b=d.adminTab.name[this.props.lang]:(k=d.adminTab.name)!=null&&k.en?b=this.props.t(d.adminTab.name.en):b=this.props.t(d.name):b=this.props.t(d.adminTab.name):b=this.props.t(d.name);let w;tabsInfo[p]?w={name:p,...tabsInfo[p]}:w={name:p,order:d.adminTab.order!==void 0?d.adminTab.order:200,icon:d.adminTab.icon,supportsLoadingMessage:d.adminTab.supportsLoadingMessage},w.icon?typeof w.icon!="object"&&!w.icon.startsWith("data:image")&&!w.icon.includes("/")&&(w.icon=`adapter/${d.name}/${w.icon}`):w.icon=`adapter/${d.name}/${d.icon}`,w.title=b,u||s&&(w.title+=` ${s}`),i.push(w)});const o=["tab-intro","tab-adapters","tab-instances","tab-logs","tab-files","tab-objects","tab-hosts","tab-users","tab-enums"];await this.isDeviceManagerVisible()&&o.push("tab-devicemanager");let l=Object.keys(tabsInfo).filter(h=>o.includes(h)).map(h=>{const d={name:h,...tabsInfo[h]};return d.title=iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.t(ucFirst(h.replace("tab-","").replace("-0","").replace(/-(\d+)$/," $1"))),d.visible=!0,d});l=l.concat(i),l=l.filter(h=>h),l.forEach(h=>h.visible=!0),l.sort((h,d)=>h.order&&d.order?h.order-d.order:h.order?-1:d.order?1:h.name>d.name?-1:h.name>d.name?1:0),this.props.socket.getCompactSystemConfig().then(h=>{const d=h.common.tabsVisible||[];l.forEach(u=>{const s=d.find(b=>b.name===u.name);s&&(u.visible=s.visible,u.color=s.color)});const p={};d.forEach((u,s)=>p[u.name]=s),l.sort((u,s)=>{const b=p[u.name],w=p[s.name];return b!==void 0&&w!==void 0?b-w:b?-1:w?1:0}),this.setState({tabs:l},()=>{this.props.provideTabsInfo(this.state.tabs);const u=l.map(({name:s,visible:b,color:w})=>({name:s,visible:b,color:w}));JSON.stringify(u)!==JSON.stringify(d)&&this.props.socket.getSystemConfig(!0).then(s=>(s.common.tabsVisible=d,this.props.socket.setSystemConfig(s).catch(b=>window.alert(`Cannot set system config: ${b}`))))})})}catch(a){window.alert(`Cannot get instances: ${a}`)}}getHeader(){const{state:e,handleNavigation:a}=this.props;return jsxRuntimeExports.jsxs(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.Box,{component:"div",sx:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.Utils.getStyle(this.props.theme,styles$q.header,this.props.state===STATES.opened&&this.props.isSecure&&styles$q.headerLogout,!this.isSwipeable()&&this.props.state!==STATES.opened&&styles$q.headerCompact),children:[jsxRuntimeExports.jsxs("div",{style:{...styles$q.avatarBlock,...styles$q.avatarNotVisible,...e===0?styles$q.avatarVisible:{display:"none"}},children:[jsxRuntimeExports.jsx("a",{href:"/#easy",onClick:n=>n.preventDefault(),style:{color:"inherit",textDecoration:"none"},children:this.props.adminGuiConfig.icon?jsxRuntimeExports.jsx("div",{style:{height:50,width:102,lineHeight:"50px"},children:jsxRuntimeExports.jsx("img",{src:this.props.adminGuiConfig.icon,alt:"logo",style:{maxWidth:"100%",maxHeight:"100%",verticalAlign:"middle"}})}):jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.Avatar,{onClick:()=>a("easy"),style:styles$q.logoSize,alt:"ioBroker",src:"img/no-image.svg"})}),!this.props.adminGuiConfig.icon&&this.props.versionAdmin&&jsxRuntimeExports.jsxs(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.Typography,{sx:styles$q.styleVersion,children:["v",this.props.versionAdmin]})]}),jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.IconButton,{size:"large",onClick:()=>{this.isSwipeable()||this.props.state===STATES.compact?this.props.onStateChange(STATES.closed):this.props.onStateChange(STATES.compact)},children:jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_icons_mf_2_material__loadShare__.ChevronLeft,{})})]})}isSwipeable(){return this.props.width==="xs"||this.props.width==="sm"}tabsEditSystemConfig=async(e,a,n)=>{const{tabs:i}=this.state,{socket:o}=this.props,r=JSON.parse(JSON.stringify(i));a&&(r[e].visible=!r[e].visible),n!==void 0&&(n===null?delete r[e].color:r[e].color=n);const l=await this.props.socket.getSystemConfig(!0);if(l.common.tabsVisible=r.map(({name:h,visible:d,color:p})=>({name:h,visible:d,color:p})),a||n!==void 0)this.setState({tabs:r},()=>o.setSystemConfig(l).catch(h=>window.alert(`Cannot set system config: ${h}`)));else try{await o.setSystemConfig(l)}catch(h){window.alert(`Cannot set system config: ${h}`)}};getNavigationItems(){const{tabs:e,logErrors:a,logWarnings:n}=this.state,{currentTab:i,state:o,handleNavigation:r}=this.props,l={};return this.props.hosts.forEach(h=>l[h._id]=h),e.map((h,d)=>{var p,u,s,b;return!this.props.editMenuList&&!h.visible||this.props.adminGuiConfig.admin.menu&&this.props.adminGuiConfig.admin.menu[h.name]===!1?null:jsxRuntimeExports.jsx(DragWrapper,{canDrag:this.props.editMenuList,name:h.name,iconJSX:(p=tabsInfo[h.name])!=null&&p.icon?tabsInfo[h.name].icon:jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.Icon,{style:styles$q.icon,src:h.icon}),_id:h.name,selected:i===h.name,tab:h,compact:!this.isSwipeable()&&o!==STATES.opened,badgeContent:a||n||0,badgeColor:a?"error":n?"warn":"",tabs:e,setEndDrag:()=>this.tabsEditSystemConfig(),setTabs:w=>this.setState({tabs:w}),children:jsxRuntimeExports.jsx(DrawerItem,{editMenuList:this.props.editMenuList,visible:h.visible,color:h.color,editListFunc:(w,k)=>this.tabsEditSystemConfig(d,w,k),compact:!this.isSwipeable()&&o!==STATES.opened,onClick:w=>{w.ctrlKey||w.shiftKey?AdminUtils.getHref(this.props.instancesWorker,h.name,this.props.hostname,l,this.props.adminInstance,this.props.themeType).then(k=>{k.href?(console.log(k.href),window.open(`${window.location.protocol}//${window.location.host}/${k.href}`,h.name).focus()):r(h.name)}):r(h.name)},icon:(u=tabsInfo[h.name])!=null&&u.icon?tabsInfo[h.name].icon:jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.Icon,{src:h.icon,style:styles$q.icon}),text:h.title,selected:i===h.name,badgeContent:this.badge(h).content,badgeColor:this.badge(h).color,badgeAdditionalContent:(s=this.badge(h))==null?void 0:s.additionalContent,badgeAdditionalColor:(b=this.badge(h))==null?void 0:b.additionalColor,theme:this.props.theme},h.name)},h.name)})}badge=e=>{switch(e.name){case"tab-logs":{const{logErrors:a,logWarnings:n}=this.state;return{content:a||n||0,color:a?"error":"warn"}}case"tab-adapters":return{content:this.state.adaptersUpdate||0,color:"primary"};case"tab-hosts":return{content:this.state.hostsUpdate||0,color:"primary",additionalContent:this.state.hostNotifications.warning+this.state.hostNotifications.other,additionalColor:this.state.hostNotifications.warning>0?"error":"secondary"};default:return{content:0,color:"",additionalContent:0,additionalColor:""}}};render(){return this.isSwipeable()?jsxRuntimeExports.jsxs(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.SwipeableDrawer,{sx:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.Utils.getStyle(this.props.theme,styles$q.root,{"&.MuiSwipeableDrawer-paper":styles$q.paper}),anchor:"left",open:this.props.state!==STATES.closed,onClose:()=>this.props.onStateChange(STATES.closed),onOpen:()=>this.props.onStateChange(STATES.opened),children:[jsxRuntimeExports.jsx(CustomDragLayer,{theme:this.props.theme}),this.getHeader(),jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.List,{children:this.getNavigationItems()}),this.props.isSecure&&jsxRuntimeExports.jsx(DrawerItem,{theme:this.props.theme,compact:!this.isSwipeable()&&this.props.state!==STATES.opened,onClick:this.props.onLogout,text:this.props.t("Logout"),icon:jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.IconLogout,{})}),this.props.adminGuiConfig.admin.menu.editable!==!1&&this.props.state===STATES.opened&&jsxRuntimeExports.jsx("div",{style:styles$q.editButton,children:jsxRuntimeExports.jsx(CustomPopper,{editMenuList:this.props.editMenuList,onClick:()=>this.props.setEditMenuList(!this.props.editMenuList)})})]}):jsxRuntimeExports.jsxs(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.Drawer,{sx:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.Utils.getStyle(this.props.theme,styles$q.root,this.props.state!==STATES.opened?styles$q.rootCompactWidth:this.props.editMenuList?styles$q.rootEditWidth:styles$q.rootFullWidth,{"& .MuiDrawer-paper":styles$q.paper}),variant:"persistent",anchor:"left",open:this.props.state!==STATES.closed,onMouseEnter:()=>this.refEditButton.current&&(this.refEditButton.current.style.opacity="1"),onMouseLeave:()=>this.refEditButton.current&&(this.refEditButton.current.style.opacity="0"),children:[jsxRuntimeExports.jsx(CustomDragLayer,{theme:this.props.theme}),this.getHeader(),jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.List,{style:styles$q.list,children:this.getNavigationItems()}),this.props.isSecure&&jsxRuntimeExports.jsx(DrawerItem,{theme:this.props.theme,style:{flexShrink:0},compact:!this.isSwipeable()&&this.props.state!==STATES.opened,onClick:this.props.onLogout,text:this.props.t("Logout"),icon:jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.IconLogout,{})}),this.props.adminGuiConfig.admin.menu.editable!==!1&&this.props.state===STATES.opened&&jsxRuntimeExports.jsx("div",{style:{...styles$q.editButton,opacity:0},ref:this.refEditButton,children:jsxRuntimeExports.jsx(CustomPopper,{size:"small",editMenuList:this.props.editMenuList,onClick:()=>this.props.setEditMenuList(!this.props.editMenuList)})})]})}}Drawer.contextType=ContextWrapper;const Drawer$1=iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.withWidth()(Drawer),offset=187,styles$p={root:{left:0,top:0,width:"100%",height:"100%",position:"fixed",background:"rgba(0, 0, 0, .3)",zIndex:2e4},connecting:{left:"40%",top:"40%",width:"20%",height:"20%",position:"absolute"},spinner:{animation:"admin-connecting-rotator 1.4s linear infinite"},path:{strokeDasharray:187,strokeDashoffset:0,transformOrigin:"center",animation:"admin-connecting-dash 1.4s ease-in-out infinite, $colors 5.6s ease-in-out infinite"}};function Connecting(){return jsxRuntimeExports.jsxs("div",{style:styles$p.root,children:[jsxRuntimeExports.jsx("style",{children:`
22
+ }`;var At=Hl(function(){return Bt(Y,it+"return "+Oe).apply(a,le)});if(At.source=Oe,Bi(At))throw At;return At}function y2(c){return Gt(c).toLowerCase()}function v2(c){return Gt(c).toUpperCase()}function $2(c,f,$){if(c=Gt(c),c&&($||f===a))return M(c);if(!c||!(f=an(f)))return c;var E=kn(c),P=kn(f),Y=ye(E,P),le=ve(E,P)+1;return so(E,Y,le).join("")}function w2(c,f,$){if(c=Gt(c),c&&($||f===a))return c.slice(0,Xi(c)+1);if(!c||!(f=an(f)))return c;var E=kn(c),P=ve(E,kn(f))+1;return so(E,0,P).join("")}function S2(c,f,$){if(c=Gt(c),c&&($||f===a))return c.replace(Fe,"");if(!c||!(f=an(f)))return c;var E=kn(c),P=ye(E,kn(f));return so(E,P).join("")}function k2(c,f){var $=H,E=B;if(na(f)){var P="separator"in f?f.separator:P;$="length"in f?Et(f.length):$,E="omission"in f?an(f.omission):E}c=Gt(c);var Y=c.length;if(fa(c)){var le=kn(c);Y=le.length}if($>=Y)return c;var _e=$-Co(E);if(_e<1)return E;var $e=le?so(le,0,_e).join(""):c.slice(0,_e);if(P===a)return $e+E;if(le&&(_e+=$e.length-_e),Fi(P)){if(c.slice(_e).search(P)){var Le,Pe=$e;for(P.global||(P=ni(P.source,Gt(Ta.exec(P))+"g")),P.lastIndex=0;Le=P.exec(Pe);)var Oe=Le.index;$e=$e.slice(0,Oe===a?_e:Oe)}}else if(c.indexOf(an(P),_e)!=_e){var tt=$e.lastIndexOf(P);tt>-1&&($e=$e.slice(0,tt))}return $e+E}function x2(c){return c=Gt(c),c&&ya.test(c)?c.replace(Aa,Ql):c}var E2=Mo(function(c,f,$){return c+($?" ":"")+f.toUpperCase()}),Gi=Gs("toUpperCase");function Ul(c,f,$){return c=Gt(c),f=$?a:f,f===a?Vl(c)?tc(c):Xr(c):c.match(f)||[]}var Hl=Tt(function(c,f){try{return Pa(c,a,f)}catch($){return Bi($)?$:new St($)}}),C2=qn(function(c,f){return _a(f,function($){$=Mn($),Gn(c,$,Pi(c[$],c))}),c});function A2(c){var f=c==null?0:c.length,$=pt();return c=f?Zt(c,function(E){if(typeof E[1]!="function")throw new dn(r);return[$(E[0]),E[1]]}):[],Tt(function(E){for(var P=-1;++P<f;){var Y=c[P];if(Pa(Y[0],this,E))return Pa(Y[1],this,E)}})}function T2(c){return Xc(pn(c,u))}function Wi(c){return function(){return c}}function j2(c,f){return c==null||c!==c?f:c}var I2=qs(),R2=qs(!0);function Ka(c){return c}function qi(c){return ws(typeof c=="function"?c:pn(c,u))}function z2(c){return ks(pn(c,u))}function D2(c,f){return xs(c,pn(f,u))}var M2=Tt(function(c,f){return function($){return ar($,c,f)}}),L2=Tt(function(c,f){return function($){return ar(c,$,f)}});function Vi(c,f,$){var E=va(f),P=Rr(f,E);$==null&&!(na(f)&&(P.length||!E.length))&&($=f,f=c,c=this,P=Rr(f,va(f)));var Y=!(na($)&&"chain"in $)||!!$.chain,le=Jn(c);return _a(P,function(_e){var $e=f[_e];c[_e]=$e,le&&(c.prototype[_e]=function(){var Le=this.__chain__;if(Y||Le){var Pe=c(this.__wrapped__),Oe=Pe.__actions__=Va(this.__actions__);return Oe.push({func:$e,args:arguments,thisArg:c}),Pe.__chain__=Le,Pe}return $e.apply(c,un([this.value()],arguments))})}),c}function N2(){return Xe._===this&&(Xe._=sc),this}function Ji(){}function P2(c){return c=Et(c),Tt(function(f){return Es(f,c)})}var O2=xi(Zt),B2=xi(Ia),F2=xi(Uo);function Gl(c){return Ri(c)?Wo(Mn(c)):fu(c)}function U2(c){return function(f){return c==null?a:yo(c,f)}}var H2=Js(),G2=Js(!0);function Yi(){return[]}function Ki(){return!1}function W2(){return{}}function q2(){return""}function V2(){return!0}function J2(c,f){if(c=Et(c),c<1||c>Q)return[];var $=de,E=Ra(c,de);f=pt(f),c-=de;for(var P=Vo(E,f);++$<c;)f($);return P}function Y2(c){return kt(c)?Zt(c,Mn):nn(c)?[c]:Va(ul(Gt(c)))}function K2(c){var f=++rc;return Gt(c)+f}var Z2=Pr(function(c,f){return c+f},0),Q2=Ei("ceil"),X2=Pr(function(c,f){return c/f},1),e1=Ei("floor");function t1(c){return c&&c.length?Ir(c,Ka,di):a}function a1(c,f){return c&&c.length?Ir(c,pt(f,2),di):a}function n1(c){return Go(c,Ka)}function o1(c,f){return Go(c,pt(f,2))}function r1(c){return c&&c.length?Ir(c,Ka,_i):a}function i1(c,f){return c&&c.length?Ir(c,pt(f,2),_i):a}var s1=Pr(function(c,f){return c*f},1),l1=Ei("round"),c1=Pr(function(c,f){return c-f},0);function u1(c){return c&&c.length?qo(c,Ka):0}function d1(c,f){return c&&c.length?qo(c,pt(f,2)):0}return q.after=zm,q.ary=$l,q.assign=vp,q.assignIn=Ml,q.assignInWith=Zr,q.assignWith=$p,q.at=wp,q.before=wl,q.bind=Pi,q.bindAll=C2,q.bindKey=Sl,q.castArray=Wm,q.chain=bl,q.chunk=Xu,q.compact=ed,q.concat=td,q.cond=A2,q.conforms=T2,q.constant=Wi,q.countBy=um,q.create=Sp,q.curry=kl,q.curryRight=xl,q.debounce=El,q.defaults=kp,q.defaultsDeep=xp,q.defer=Dm,q.delay=Mm,q.difference=ad,q.differenceBy=nd,q.differenceWith=od,q.drop=rd,q.dropRight=sd,q.dropRightWhile=ld,q.dropWhile=cd,q.fill=ud,q.filter=mm,q.flatMap=_m,q.flatMapDeep=fm,q.flatMapDepth=gm,q.flatten=hl,q.flattenDeep=dd,q.flattenDepth=md,q.flip=Lm,q.flow=I2,q.flowRight=R2,q.fromPairs=pd,q.functions=Rp,q.functionsIn=zp,q.groupBy=bm,q.initial=_d,q.intersection=fd,q.intersectionBy=gd,q.intersectionWith=bd,q.invert=Mp,q.invertBy=Lp,q.invokeMap=vm,q.iteratee=qi,q.keyBy=$m,q.keys=va,q.keysIn=Ya,q.map=Wr,q.mapKeys=Pp,q.mapValues=Op,q.matches=z2,q.matchesProperty=D2,q.memoize=Vr,q.merge=Bp,q.mergeWith=Ll,q.method=M2,q.methodOf=L2,q.mixin=Vi,q.negate=Jr,q.nthArg=P2,q.omit=Fp,q.omitBy=Up,q.once=Nm,q.orderBy=wm,q.over=O2,q.overArgs=Pm,q.overEvery=B2,q.overSome=F2,q.partial=Oi,q.partialRight=Cl,q.partition=Sm,q.pick=Hp,q.pickBy=Nl,q.property=Gl,q.propertyOf=U2,q.pull=wd,q.pullAll=fl,q.pullAllBy=Sd,q.pullAllWith=kd,q.pullAt=xd,q.range=H2,q.rangeRight=G2,q.rearg=Om,q.reject=Em,q.remove=Ed,q.rest=Bm,q.reverse=Li,q.sampleSize=Am,q.set=Wp,q.setWith=qp,q.shuffle=Tm,q.slice=Cd,q.sortBy=Rm,q.sortedUniq=Dd,q.sortedUniqBy=Md,q.split=_2,q.spread=Fm,q.tail=Ld,q.take=Nd,q.takeRight=Pd,q.takeRightWhile=Od,q.takeWhile=Bd,q.tap=tm,q.throttle=Um,q.thru=Gr,q.toArray=Rl,q.toPairs=Pl,q.toPairsIn=Ol,q.toPath=Y2,q.toPlainObject=Dl,q.transform=Vp,q.unary=Hm,q.union=Fd,q.unionBy=Ud,q.unionWith=Hd,q.uniq=Gd,q.uniqBy=Wd,q.uniqWith=qd,q.unset=Jp,q.unzip=Ni,q.unzipWith=gl,q.update=Yp,q.updateWith=Kp,q.values=Po,q.valuesIn=Zp,q.without=Vd,q.words=Ul,q.wrap=Gm,q.xor=Jd,q.xorBy=Yd,q.xorWith=Kd,q.zip=Zd,q.zipObject=Qd,q.zipObjectDeep=Xd,q.zipWith=em,q.entries=Pl,q.entriesIn=Ol,q.extend=Ml,q.extendWith=Zr,Vi(q,q),q.add=Z2,q.attempt=Hl,q.camelCase=t2,q.capitalize=Bl,q.ceil=Q2,q.clamp=Qp,q.clone=qm,q.cloneDeep=Jm,q.cloneDeepWith=Ym,q.cloneWith=Vm,q.conformsTo=Km,q.deburr=Fl,q.defaultTo=j2,q.divide=X2,q.endsWith=a2,q.eq=En,q.escape=n2,q.escapeRegExp=o2,q.every=dm,q.find=pm,q.findIndex=ml,q.findKey=Ep,q.findLast=hm,q.findLastIndex=pl,q.findLastKey=Cp,q.floor=e1,q.forEach=yl,q.forEachRight=vl,q.forIn=Ap,q.forInRight=Tp,q.forOwn=jp,q.forOwnRight=Ip,q.get=Ui,q.gt=Zm,q.gte=Qm,q.has=Dp,q.hasIn=Hi,q.head=_l,q.identity=Ka,q.includes=ym,q.indexOf=hd,q.inRange=Xp,q.invoke=Np,q.isArguments=wo,q.isArray=kt,q.isArrayBuffer=Xm,q.isArrayLike=Ja,q.isArrayLikeObject=ia,q.isBoolean=ep,q.isBuffer=lo,q.isDate=tp,q.isElement=ap,q.isEmpty=np,q.isEqual=op,q.isEqualWith=rp,q.isError=Bi,q.isFinite=ip,q.isFunction=Jn,q.isInteger=Al,q.isLength=Yr,q.isMap=Tl,q.isMatch=sp,q.isMatchWith=lp,q.isNaN=cp,q.isNative=up,q.isNil=mp,q.isNull=dp,q.isNumber=jl,q.isObject=na,q.isObjectLike=oa,q.isPlainObject=lr,q.isRegExp=Fi,q.isSafeInteger=pp,q.isSet=Il,q.isString=Kr,q.isSymbol=nn,q.isTypedArray=No,q.isUndefined=hp,q.isWeakMap=_p,q.isWeakSet=fp,q.join=yd,q.kebabCase=r2,q.last=_n,q.lastIndexOf=vd,q.lowerCase=i2,q.lowerFirst=s2,q.lt=gp,q.lte=bp,q.max=t1,q.maxBy=a1,q.mean=n1,q.meanBy=o1,q.min=r1,q.minBy=i1,q.stubArray=Yi,q.stubFalse=Ki,q.stubObject=W2,q.stubString=q2,q.stubTrue=V2,q.multiply=s1,q.nth=$d,q.noConflict=N2,q.noop=Ji,q.now=qr,q.pad=l2,q.padEnd=c2,q.padStart=u2,q.parseInt=d2,q.random=e2,q.reduce=km,q.reduceRight=xm,q.repeat=m2,q.replace=p2,q.result=Gp,q.round=l1,q.runInContext=be,q.sample=Cm,q.size=jm,q.snakeCase=h2,q.some=Im,q.sortedIndex=Ad,q.sortedIndexBy=Td,q.sortedIndexOf=jd,q.sortedLastIndex=Id,q.sortedLastIndexBy=Rd,q.sortedLastIndexOf=zd,q.startCase=f2,q.startsWith=g2,q.subtract=c1,q.sum=u1,q.sumBy=d1,q.template=b2,q.times=J2,q.toFinite=Yn,q.toInteger=Et,q.toLength=zl,q.toLower=y2,q.toNumber=fn,q.toSafeInteger=yp,q.toString=Gt,q.toUpper=v2,q.trim=$2,q.trimEnd=w2,q.trimStart=S2,q.truncate=k2,q.unescape=x2,q.uniqueId=K2,q.upperCase=E2,q.upperFirst=Gi,q.each=yl,q.eachRight=vl,q.first=_l,Vi(q,(function(){var c={};return zn(q,function(f,$){Ht.call(q.prototype,$)||(c[$]=f)}),c})(),{chain:!1}),q.VERSION=n,_a(["bind","bindKey","curry","curryRight","partial","partialRight"],function(c){q[c].placeholder=q}),_a(["drop","take"],function(c,f){Mt.prototype[c]=function($){$=$===a?1:ba(Et($),0);var E=this.__filtered__&&!f?new Mt(this):this.clone();return E.__filtered__?E.__takeCount__=Ra($,E.__takeCount__):E.__views__.push({size:Ra($,de),type:c+(E.__dir__<0?"Right":"")}),E},Mt.prototype[c+"Right"]=function($){return this.reverse()[c]($).reverse()}}),_a(["filter","map","takeWhile"],function(c,f){var $=f+1,E=$==ie||$==Ce;Mt.prototype[c]=function(P){var Y=this.clone();return Y.__iteratees__.push({iteratee:pt(P,3),type:$}),Y.__filtered__=Y.__filtered__||E,Y}}),_a(["head","last"],function(c,f){var $="take"+(f?"Right":"");Mt.prototype[c]=function(){return this[$](1).value()[0]}}),_a(["initial","tail"],function(c,f){var $="drop"+(f?"":"Right");Mt.prototype[c]=function(){return this.__filtered__?new Mt(this):this[$](1)}}),Mt.prototype.compact=function(){return this.filter(Ka)},Mt.prototype.find=function(c){return this.filter(c).head()},Mt.prototype.findLast=function(c){return this.reverse().find(c)},Mt.prototype.invokeMap=Tt(function(c,f){return typeof c=="function"?new Mt(this):this.map(function($){return ar($,c,f)})}),Mt.prototype.reject=function(c){return this.filter(Jr(pt(c)))},Mt.prototype.slice=function(c,f){c=Et(c);var $=this;return $.__filtered__&&(c>0||f<0)?new Mt($):(c<0?$=$.takeRight(-c):c&&($=$.drop(c)),f!==a&&(f=Et(f),$=f<0?$.dropRight(-f):$.take(f-c)),$)},Mt.prototype.takeRightWhile=function(c){return this.reverse().takeWhile(c).reverse()},Mt.prototype.toArray=function(){return this.take(de)},zn(Mt.prototype,function(c,f){var $=/^(?:filter|find|map|reject)|While$/.test(f),E=/^(?:head|last)$/.test(f),P=q[E?"take"+(f=="last"?"Right":""):f],Y=E||/^find/.test(f);P&&(q.prototype[f]=function(){var le=this.__wrapped__,_e=E?[1]:arguments,$e=le instanceof Mt,Le=_e[0],Pe=$e||kt(le),Oe=function(zt){var Lt=P.apply(q,un([zt],_e));return E&&tt?Lt[0]:Lt};Pe&&$&&typeof Le=="function"&&Le.length!=1&&($e=Pe=!1);var tt=this.__chain__,it=!!this.__actions__.length,_t=Y&&!tt,At=$e&&!it;if(!Y&&Pe){le=At?le:new Mt(this);var ft=c.apply(le,_e);return ft.__actions__.push({func:Gr,args:[Oe],thisArg:a}),new mn(ft,tt)}return _t&&At?c.apply(this,_e):(ft=this.thru(Oe),_t?E?ft.value()[0]:ft.value():ft)})}),_a(["pop","push","shift","sort","splice","unshift"],function(c){var f=fr[c],$=/^(?:push|sort|unshift)$/.test(c)?"tap":"thru",E=/^(?:pop|shift)$/.test(c);q.prototype[c]=function(){var P=arguments;if(E&&!this.__chain__){var Y=this.value();return f.apply(kt(Y)?Y:[],P)}return this[$](function(le){return f.apply(kt(le)?le:[],P)})}}),zn(Mt.prototype,function(c,f){var $=q[f];if($){var E=$.name+"";Ht.call(Ro,E)||(Ro[E]=[]),Ro[E].push({name:f,func:$})}}),Ro[Nr(a,I).name]=[{name:"wrapper",func:a}],Mt.prototype.clone=kc,Mt.prototype.reverse=xc,Mt.prototype.value=Ec,q.prototype.at=am,q.prototype.chain=nm,q.prototype.commit=om,q.prototype.next=rm,q.prototype.plant=sm,q.prototype.reverse=lm,q.prototype.toJSON=q.prototype.valueOf=q.prototype.value=cm,q.prototype.first=q.prototype.head,Yo&&(q.prototype[Yo]=im),q}),Ao=ac();Xt?((Xt.exports=Ao)._=Ao,aa._=Ao):Xe._=Ao}).call(lodash)})(lodash$1,lodash$1.exports);var lodashExports=lodash$1.exports;const _=getDefaultExportFromCjs(lodashExports),funcSet=_.throttle((t,e)=>t(e),200),findCard=(t,e)=>{const a=e.find(n=>n.name===t);return{card:a,index:e.indexOf(a)}},moveCard=(t,e,a,n,i,o)=>{const{card:r,index:l}=findCard(t,a);if(l!==e&&!(l<e&&i<o)&&!(l>e&&i>o)&&r&&l!==e){const h=JSON.parse(JSON.stringify(a));h.splice(l,1),h.splice(e,0,r),funcSet(n,h)}},styles$t={cursor:"move"},DragWrapper=({canDrag:t,setEndDrag:e,iconJSX:a,selected:n,compact:i,badgeContent:o,badgeColor:r,tab:l,tabs:h,setTabs:d,_id:p,children:u,name:s})=>{const b=iobroker_admin__loadShare__react__loadShare__.useRef(null),[{handlerId:w},k]=useDrop({accept:"box",collect(G){return{handlerId:G.getHandlerId()}},hover({_id:G},g){var B;if(!b.current)return;const{index:v}=findCard(p,h),y=(B=b.current)==null?void 0:B.getBoundingClientRect(),S=(y.bottom-y.top)/2,H=g.getClientOffset().y-y.top;moveCard(G,v,h,d,H,S)}}),[{isDragging:x},I,N]=useDrag({type:"box",item:{_id:l.name,...l,iconJSX:a,selected:n,compact:i,badgeContent:o,badgeColor:r},canDrag:()=>t,end:()=>e(),collect:G=>({isDragging:G.isDragging()})});iobroker_admin__loadShare__react__loadShare__.useEffect(()=>{N(getEmptyImage(),{captureDraggingState:!0})},[]);const O=x?0:1;return I(k(b)),jsxRuntimeExports.jsx("div",{ref:b,style:{...styles$t,opacity:O},"data-handler-id":w,children:jsxRuntimeExports.jsx("a",{type:"box","data-handler-id":w,onClick:G=>G.preventDefault(),href:`/#${s}`,style:{...styles$t,opacity:O,color:"inherit",textDecoration:"none"},children:u})})},styles$s={selected:t=>({background:t.palette.primary.main,color:t.palette.mode==="light"?"white":AdminUtils.invertColor(t.palette.primary.main,!0),"&:hover":{background:t.palette.primary.main,color:t.palette.mode==="light"?"white":AdminUtils.invertColor(t.palette.primary.main,!0),"& $selectedIcon":{color:t.palette.mode==="light"?"white":AdminUtils.invertColor(t.palette.primary.main,!0)}}}),selectedIcon:t=>({color:t.palette.mode==="light"?"white":AdminUtils.invertColor(t.palette.primary.main,!0)}),compactBadge:{pl:"12px"},noWrap:{flexWrap:"nowrap",height:40},warn:{backgroundColor:"#ffc107"}},DrawerItem=t=>{const{badgeColor:e,badgeContent:a,compact:n,icon:i,onClick:o,selected:r,text:l,editMenuList:h,visible:d,color:p,editListFunc:u,badgeAdditionalContent:s,badgeAdditionalColor:b,style:w}=t;let k=l?l.replace("&gt;",">"):"";return(k==="Text->Kommandos"||k==="Text->Commands")&&(k="Text→Cmd"),jsxRuntimeExports.jsxs("div",{style:{display:"flex",alignItems:"center",...w||{}},children:[!!h&&jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_icons_mf_2_material__loadShare__.DragHandle,{}),!!h&&jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.Checkbox,{checked:d,onClick:()=>u(!0)}),!!h&&jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.ColorPicker,{value:p,noInputField:!0,onChange:x=>u(!1,x||null)}),jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.ListItemButton,{sx:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.Utils.getStyle(t.theme,r&&styles$s.selected,n&&styles$s.compactBadge),onClick:o,children:jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.Tooltip,{title:n?k:"",slotProps:{popper:{sx:{pointerEvents:"none"}}},children:jsxRuntimeExports.jsxs(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.Grid2,{container:!0,spacing:1,alignItems:"center",style:styles$s.noWrap,children:[jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.Grid2,{children:jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.ListItemIcon,{style:{minWidth:0,color:p},sx:r?styles$s.selectedIcon:void 0,children:jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.Badge,{badgeContent:a||0,color:(e==="warn"?"default":e)||"primary",sx:e==="warn"?{"& .MuiBadge-badge":styles$s.warn}:void 0,children:i})})}),!n&&jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.Grid2,{children:jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.ListItemText,{style:{color:p},children:jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.Badge,{badgeContent:s||0,color:(b==="warn"?"default":b)||"primary",sx:b==="warn"?{"& .MuiBadge-badge":styles$s.warn}:void 0,children:k})})})]})})})]})},layerStyles={position:"fixed",pointerEvents:"none",zIndex:100,left:0,top:0,width:"100%",height:"100%"};function getItemStyles(t,e,a){if(!t||!e)return{display:"none"};let{x:n,y:i}=e;const o=`translate(${n}px, ${i}px)`;return{transform:o,WebkitTransform:o}}const styles$r={root:t=>({background:t.palette.background.default})};function CustomDragLayer(t){const{itemType:e,isDragging:a,item:n,initialOffset:i,currentOffset:o}=useDragLayer(l=>({item:l.getItem(),itemType:l.getItemType(),initialOffset:l.getInitialSourceClientOffset(),currentOffset:l.getSourceClientOffset(),isDragging:l.isDragging()}));function r(){return e==="box"?jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.Box,{component:"div",sx:styles$r.root,style:{width:179},children:jsxRuntimeExports.jsx(DrawerItem,{visible:n.visible,editListFunc:()=>{},compact:n.compact,icon:n.iconJSX,text:n.title,selected:n.selected,badgeContent:n.badgeContent,badgeColor:n.badgeColor,theme:t.theme},n.name)}):null}return a?jsxRuntimeExports.jsx("div",{style:layerStyles,children:jsxRuntimeExports.jsx("div",{style:getItemStyles(i,o),children:r()})}):null}let timer;const CustomPopper=({editMenuList:t,onClick:e,size:a})=>{const[n,i]=React.useState(null),[o,r]=React.useState(!1),[l,h]=React.useState(null);return jsxRuntimeExports.jsxs(jsxRuntimeExports.Fragment,{children:[jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.IconButton,{size:a||"large",style:t?{color:"red"}:null,onClick:d=>{e(),t?(r(!1),clearTimeout(timer)):(i(d.currentTarget),r(p=>l!=="right"||!p),h("right"),timer=setTimeout(()=>r(!1),3e3))},title:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.t("show/hide item"),children:jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_icons_mf_2_material__loadShare__.Edit,{})}),jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.Popper,{style:{zIndex:2222},open:o,anchorEl:n,placement:l,transition:!0,children:({TransitionProps:d})=>jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.Fade,{...d,timeout:350,children:jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.Paper,{children:jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.Typography,{style:{padding:16},children:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.t("You can drag and drop list items for reorder")})})})})]})},DRAWER_FULL_WIDTH=180,DRAWER_COMPACT_WIDTH=50,DRAWER_EDIT_WIDTH=250;function ucFirst(t){return t.substring(0,1).toUpperCase()+t.substring(1).toLowerCase()}const styles$q={root:t=>({flexShrink:0,transition:t.transitions.create("width",{easing:t.transitions.easing.easeOut,duration:t.transitions.duration.enteringScreen}),display:"flex",flexDirection:"column"}),rootFullWidth:{width:DRAWER_FULL_WIDTH},rootEditWidth:{width:DRAWER_EDIT_WIDTH},rootCompactWidth:{width:DRAWER_COMPACT_WIDTH},paper:{width:"inherit",overflowX:"hidden"},header:t=>({display:"flex",flexDirection:"row",alignItems:"center",padding:"0 8px 0 8px",...t.mixins.toolbar,justifyContent:"flex-end",position:"sticky",top:0,zIndex:2,background:t.palette.background.default}),headerCompact:{padding:0},headerLogout:{justifyContent:"space-between"},list:{paddingTop:0,flex:"1 0 auto"},icon:{width:20,height:20},logoSize:{width:50,height:50},avatarBlock:{width:"100%",display:"flex",marginTop:5,marginBottom:5},avatarNotVisible:{opacity:0,transition:"opacity 0.3s"},avatarVisible:{opacity:1},styleVersion:t=>({fontSize:10,color:t.palette.mode==="dark"?"#ffffff5e":"#0000005e",alignSelf:"center",ml:"5px"}),editButton:{position:"sticky",bottom:0,right:0,width:"fit-content",marginLeft:"auto",marginTop:"auto",transition:"opacity 0.5s"}},STATES={opened:0,closed:1,compact:2},tabsInfo={"tab-intro":{order:1,icon:jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_icons_mf_2_material__loadShare__.Apps,{})},"tab-info":{order:5,icon:jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_icons_mf_2_material__loadShare__.Info,{}),host:!0},"tab-adapters":{order:10,icon:jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_icons_mf_2_material__loadShare__.Store,{}),host:!0},"tab-instances":{order:15,icon:jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_icons_mf_2_material__loadShare__.Subtitles,{}),host:!0},"tab-objects":{order:20,icon:jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_icons_mf_2_material__loadShare__.ViewList,{})},"tab-enums":{order:25,icon:jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_icons_mf_2_material__loadShare__.ArtTrack,{})},"tab-devices":{order:27,host:!0},"tab-logs":{order:30,icon:jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_icons_mf_2_material__loadShare__.ViewHeadline,{}),host:!0},"tab-scenes":{order:35,icon:jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_icons_mf_2_material__loadShare__.Subscriptions,{})},"tab-events":{order:40,icon:jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_icons_mf_2_material__loadShare__.FlashOn,{})},"tab-users":{order:45,icon:jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_icons_mf_2_material__loadShare__.PersonOutline,{})},"tab-javascript":{order:50},"tab-text2command-0":{order:55,instance:0},"tab-text2command-1":{order:56,instance:1},"tab-text2command-2":{order:57,instance:2},"tab-node-red-0":{order:60,instance:0},"tab-node-red-1":{order:61,instance:1},"tab-node-red-2":{order:62,instance:2},"tab-fullcalendar-0":{order:65,instance:0},"tab-fullcalendar-1":{order:66,instance:1},"tab-fullcalendar-2":{order:67,instance:2},"tab-echarts":{order:70,instance:2},"tab-eventlist-0":{order:80,instance:0},"tab-eventlist-1":{order:81,instance:1},"tab-eventlist-2":{order:82,instance:2},"tab-hosts":{order:100,icon:jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_icons_mf_2_material__loadShare__.Storage,{})},"tab-files":{order:110,icon:jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_icons_mf_2_material__loadShare__.FileCopy,{})},"tab-devicemanager":{order:120,icon:jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_icons_mf_2_material__loadShare__.DeveloperBoard,{})}};class Drawer extends iobroker_admin__loadShare__react__loadShare__.Component{logsHandlerRegistered;refEditButton;constructor(e){super(e),this.state={tabs:[],logErrors:0,logWarnings:0,hostNotifications:{other:0,warning:0},hostsUpdate:Drawer.calculateHostUpdates(this.props.hosts,this.props.repository),adaptersUpdate:Drawer.calculateAdapterUpdates(this.props.installed,this.props.repository),deviceManagerVisible:!1},this.refEditButton=React.createRef()}static getDerivedStateFromProps(e,a){const n=Drawer.calculateHostUpdates(e.hosts,e.repository),i=Drawer.calculateAdapterUpdates(e.installed,e.repository);return n!==a.hostsUpdate||i!==a.adaptersUpdate?{hostsUpdate:n,adaptersUpdate:i}:null}static calculateHostUpdates(e,a){var n;if(e&&a){const i=((n=a["js-controller"])==null?void 0:n.version)||"";let o=0;return e.forEach(r=>{AdminUtils.updateAvailable(r.common.installedVersion,i)&&o++}),o}return 0}static calculateAdapterUpdates(e,a){if(e){let n=0;return Object.keys(e).sort().forEach(i=>{const o=e[i],r=a&&a[i];i!=="js-controller"&&i!=="hosts"&&(o!=null&&o.version)&&(r!=null&&r.version)&&o.ignoreVersion!==r.version&&AdminUtils.updateAvailable(o.version,r.version)&&n++}),n}return 0}instanceChangedHandler=()=>this.getTabs(!0);async isDeviceManagerVisible(){const e=await this.props.instancesWorker.getObjects();return!!Object.values(e).find(n=>{var i,o;return(o=(i=n==null?void 0:n.common)==null?void 0:i.supportedMessages)==null?void 0:o.deviceManager})}componentDidMount(){this.props.instancesWorker.registerHandler(this.instanceChangedHandler,!0),this.getTabs().catch(e=>window.alert(`Cannot get tabs: ${e}`)),this.onNotificationsHandler().then(()=>{this.props.hostsWorker.registerNotificationHandler(this.onNotificationsHandler),this.logsHandlerRegistered||(this.logsHandlerRegistered=!0,this.props.logsWorker.registerErrorCountHandler(this.onErrorsUpdates),this.props.logsWorker.registerWarningCountHandler(this.onWarningsUpdates))})}onNotificationsHandler=()=>this.props.hostsWorker.getNotifications().then(e=>this.calculateWarning(e)).catch(e=>window.alert(`Cannot get notifications: ${e}`));onErrorsUpdates=e=>{this.setState({logErrors:e})};onWarningsUpdates=e=>{this.setState({logWarnings:e})};calculateWarning=e=>{if(!e)return;const a={warning:0,other:0};Object.keys(e).forEach(n=>{var i,o;if((o=(i=e[n])==null?void 0:i.result)!=null&&o.system&&Object.keys(e[n].result.system.categories).length){const r=e[n].result.system.categories;for(const l of Object.values(r))Object.keys(l.instances).forEach(()=>l.severity==="alert"?a.warning++:a.other++)}}),this.setState({hostNotifications:a})};componentWillUnmount(){this.props.instancesWorker.unregisterHandler(this.instanceChangedHandler),this.props.hostsWorker.unregisterNotificationHandler(this.onNotificationsHandler),this.logsHandlerRegistered&&(this.logsHandlerRegistered=!1,this.props.logsWorker.unregisterErrorCountHandler(this.onErrorsUpdates),this.props.logsWorker.unregisterWarningCountHandler(this.onWarningsUpdates))}componentDidUpdate(){!this.isSwipeable()&&this.props.state!==STATES.opened&&this.props.editMenuList&&setTimeout(()=>this.props.setEditMenuList(!1))}async getTabs(e){try{const n=await this.props.socket.getCompactInstances(e),i=[];n&&Object.keys(n).forEach(h=>{var k;const d=n[h];if(!(d!=null&&d.adminTab))return;let p=`tab-${h.replace("system.adapter.","").replace(/\.\d+$/,"")}`;const u=d.adminTab.singleton;let s;if(!u){const x=h.match(/\.(\d+)$/);x&&(s=parseInt(x[1],10),p+=`-${s}`)}if(i.find(x=>x.name===p))return;let b;d.adminTab.name?typeof d.adminTab.name=="object"?d.adminTab.name&&d.adminTab.name[this.props.lang]?b=d.adminTab.name[this.props.lang]:(k=d.adminTab.name)!=null&&k.en?b=this.props.t(d.adminTab.name.en):b=this.props.t(d.name):b=this.props.t(d.adminTab.name):b=this.props.t(d.name);let w;tabsInfo[p]?w={name:p,...tabsInfo[p]}:w={name:p,order:d.adminTab.order!==void 0?d.adminTab.order:200,icon:d.adminTab.icon,supportsLoadingMessage:d.adminTab.supportsLoadingMessage},w.icon?typeof w.icon!="object"&&!w.icon.startsWith("data:image")&&!w.icon.includes("/")&&(w.icon=`adapter/${d.name}/${w.icon}`):w.icon=`adapter/${d.name}/${d.icon}`,w.title=b,u||s&&(w.title+=` ${s}`),i.push(w)});const o=["tab-intro","tab-adapters","tab-instances","tab-logs","tab-files","tab-objects","tab-hosts","tab-users","tab-enums"];await this.isDeviceManagerVisible()&&o.push("tab-devicemanager");let l=Object.keys(tabsInfo).filter(h=>o.includes(h)).map(h=>{const d={name:h,...tabsInfo[h]};return d.title=iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.I18n.t(ucFirst(h.replace("tab-","").replace("-0","").replace(/-(\d+)$/," $1"))),d.visible=!0,d});l=l.concat(i),l=l.filter(h=>h),l.forEach(h=>h.visible=!0),l.sort((h,d)=>h.order&&d.order?h.order-d.order:h.order?-1:d.order?1:h.name>d.name?-1:h.name>d.name?1:0),this.props.socket.getCompactSystemConfig().then(h=>{const d=h.common.tabsVisible||[];l.forEach(u=>{const s=d.find(b=>b.name===u.name);s&&(u.visible=s.visible,u.color=s.color)});const p={};d.forEach((u,s)=>p[u.name]=s),l.sort((u,s)=>{const b=p[u.name],w=p[s.name];return b!==void 0&&w!==void 0?b-w:b?-1:w?1:0}),this.setState({tabs:l},()=>{this.props.provideTabsInfo(this.state.tabs);const u=l.map(({name:s,visible:b,color:w})=>({name:s,visible:b,color:w}));JSON.stringify(u)!==JSON.stringify(d)&&this.props.socket.getSystemConfig(!0).then(s=>(s.common.tabsVisible=d,this.props.socket.setSystemConfig(s).catch(b=>window.alert(`Cannot set system config: ${b}`))))})})}catch(a){window.alert(`Cannot get instances: ${a}`)}}getHeader(){if(!this.isSwipeable())return null;const{state:e,handleNavigation:a}=this.props;return jsxRuntimeExports.jsxs(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.Box,{component:"div",sx:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.Utils.getStyle(this.props.theme,styles$q.header,this.props.state===STATES.opened&&this.props.isSecure&&styles$q.headerLogout,!this.isSwipeable()&&this.props.state!==STATES.opened&&styles$q.headerCompact),children:[jsxRuntimeExports.jsxs("div",{style:{...styles$q.avatarBlock,...styles$q.avatarNotVisible,...e===0?styles$q.avatarVisible:{display:"none"}},children:[jsxRuntimeExports.jsx("a",{href:"/#easy",onClick:n=>n.preventDefault(),style:{color:"inherit",textDecoration:"none"},children:this.props.adminGuiConfig.icon?jsxRuntimeExports.jsx("div",{style:{height:50,width:102,lineHeight:"50px"},children:jsxRuntimeExports.jsx("img",{src:this.props.adminGuiConfig.icon,alt:"logo",style:{maxWidth:"100%",maxHeight:"100%",verticalAlign:"middle"}})}):jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.Avatar,{onClick:()=>a("easy"),style:styles$q.logoSize,alt:"ioBroker",src:"img/no-image.svg"})}),!this.props.adminGuiConfig.icon&&this.props.versionAdmin&&jsxRuntimeExports.jsxs(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.Typography,{sx:styles$q.styleVersion,children:["v",this.props.versionAdmin]})]}),jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.IconButton,{size:"large",onClick:()=>{this.isSwipeable()||this.props.state===STATES.compact?this.props.onStateChange(STATES.closed):this.props.onStateChange(STATES.compact)},children:jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_icons_mf_2_material__loadShare__.ChevronLeft,{})})]})}isSwipeable(){return this.props.width==="xs"||this.props.width==="sm"}tabsEditSystemConfig=async(e,a,n)=>{const{tabs:i}=this.state,{socket:o}=this.props,r=JSON.parse(JSON.stringify(i));a&&(r[e].visible=!r[e].visible),n!==void 0&&(n===null?delete r[e].color:r[e].color=n);const l=await this.props.socket.getSystemConfig(!0);if(l.common.tabsVisible=r.map(({name:h,visible:d,color:p})=>({name:h,visible:d,color:p})),a||n!==void 0)this.setState({tabs:r},()=>o.setSystemConfig(l).catch(h=>window.alert(`Cannot set system config: ${h}`)));else try{await o.setSystemConfig(l)}catch(h){window.alert(`Cannot set system config: ${h}`)}};getNavigationItems(){const{tabs:e,logErrors:a,logWarnings:n}=this.state,{currentTab:i,state:o,handleNavigation:r}=this.props,l={};return this.props.hosts.forEach(h=>l[h._id]=h),e.map((h,d)=>{var p,u,s,b;return!this.props.editMenuList&&!h.visible||this.props.adminGuiConfig.admin.menu&&this.props.adminGuiConfig.admin.menu[h.name]===!1?null:jsxRuntimeExports.jsx(DragWrapper,{canDrag:this.props.editMenuList,name:h.name,iconJSX:(p=tabsInfo[h.name])!=null&&p.icon?tabsInfo[h.name].icon:jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.Icon,{style:styles$q.icon,src:h.icon}),_id:h.name,selected:i===h.name,tab:h,compact:!this.isSwipeable()&&o!==STATES.opened,badgeContent:a||n||0,badgeColor:a?"error":n?"warn":"",tabs:e,setEndDrag:()=>this.tabsEditSystemConfig(),setTabs:w=>this.setState({tabs:w}),children:jsxRuntimeExports.jsx(DrawerItem,{editMenuList:this.props.editMenuList,visible:h.visible,color:h.color,editListFunc:(w,k)=>this.tabsEditSystemConfig(d,w,k),compact:!this.isSwipeable()&&o!==STATES.opened,onClick:w=>{w.ctrlKey||w.shiftKey?AdminUtils.getHref(this.props.instancesWorker,h.name,this.props.hostname,l,this.props.adminInstance,this.props.themeType).then(k=>{k.href?(console.log(k.href),window.open(`${window.location.protocol}//${window.location.host}/${k.href}`,h.name).focus()):r(h.name)}):r(h.name)},icon:(u=tabsInfo[h.name])!=null&&u.icon?tabsInfo[h.name].icon:jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.Icon,{src:h.icon,style:styles$q.icon}),text:h.title,selected:i===h.name,badgeContent:this.badge(h).content,badgeColor:this.badge(h).color,badgeAdditionalContent:(s=this.badge(h))==null?void 0:s.additionalContent,badgeAdditionalColor:(b=this.badge(h))==null?void 0:b.additionalColor,theme:this.props.theme},h.name)},h.name)})}badge=e=>{switch(e.name){case"tab-logs":{const{logErrors:a,logWarnings:n}=this.state;return{content:a||n||0,color:a?"error":"warn"}}case"tab-adapters":return{content:this.state.adaptersUpdate||0,color:"primary"};case"tab-hosts":return{content:this.state.hostsUpdate||0,color:"primary",additionalContent:this.state.hostNotifications.warning+this.state.hostNotifications.other,additionalColor:this.state.hostNotifications.warning>0?"error":"secondary"};default:return{content:0,color:"",additionalContent:0,additionalColor:""}}};render(){return this.isSwipeable()?jsxRuntimeExports.jsxs(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.SwipeableDrawer,{sx:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.Utils.getStyle(this.props.theme,styles$q.root,{"&.MuiSwipeableDrawer-paper":styles$q.paper}),anchor:"left",open:this.props.state!==STATES.closed,onClose:()=>this.props.onStateChange(STATES.closed),onOpen:()=>this.props.onStateChange(STATES.opened),children:[jsxRuntimeExports.jsx(CustomDragLayer,{theme:this.props.theme}),this.getHeader(),jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.List,{children:this.getNavigationItems()}),this.props.isSecure&&jsxRuntimeExports.jsx(DrawerItem,{theme:this.props.theme,compact:!this.isSwipeable()&&this.props.state!==STATES.opened,onClick:this.props.onLogout,text:this.props.t("Logout"),icon:jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.IconLogout,{})}),this.props.adminGuiConfig.admin.menu.editable!==!1&&this.props.state===STATES.opened&&jsxRuntimeExports.jsx("div",{style:styles$q.editButton,children:jsxRuntimeExports.jsx(CustomPopper,{editMenuList:this.props.editMenuList,onClick:()=>this.props.setEditMenuList(!this.props.editMenuList)})})]}):jsxRuntimeExports.jsxs(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.Drawer,{sx:iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.Utils.getStyle(this.props.theme,styles$q.root,this.props.state!==STATES.opened?styles$q.rootCompactWidth:this.props.editMenuList?styles$q.rootEditWidth:styles$q.rootFullWidth,{"& .MuiDrawer-paper":styles$q.paper}),variant:"persistent",anchor:"left",open:this.props.state!==STATES.closed,onMouseEnter:()=>this.refEditButton.current&&(this.refEditButton.current.style.opacity="1"),onMouseLeave:()=>this.refEditButton.current&&(this.refEditButton.current.style.opacity="0"),children:[jsxRuntimeExports.jsx(CustomDragLayer,{theme:this.props.theme}),this.getHeader(),jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_mui_mf_1_material__loadShare__.List,{style:styles$q.list,children:this.getNavigationItems()}),this.props.isSecure&&jsxRuntimeExports.jsx(DrawerItem,{theme:this.props.theme,style:{flexShrink:0},compact:!this.isSwipeable()&&this.props.state!==STATES.opened,onClick:this.props.onLogout,text:this.props.t("Logout"),icon:jsxRuntimeExports.jsx(iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.IconLogout,{})}),this.props.adminGuiConfig.admin.menu.editable!==!1&&this.props.state===STATES.opened&&jsxRuntimeExports.jsx("div",{style:{...styles$q.editButton,opacity:0},ref:this.refEditButton,children:jsxRuntimeExports.jsx(CustomPopper,{size:"small",editMenuList:this.props.editMenuList,onClick:()=>this.props.setEditMenuList(!this.props.editMenuList)})})]})}}Drawer.contextType=ContextWrapper;const Drawer$1=iobroker_admin__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.withWidth()(Drawer),offset=187,styles$p={root:{left:0,top:0,width:"100%",height:"100%",position:"fixed",background:"rgba(0, 0, 0, .3)",zIndex:2e4},connecting:{left:"40%",top:"40%",width:"20%",height:"20%",position:"absolute"},spinner:{animation:"admin-connecting-rotator 1.4s linear infinite"},path:{strokeDasharray:187,strokeDashoffset:0,transformOrigin:"center",animation:"admin-connecting-dash 1.4s ease-in-out infinite, $colors 5.6s ease-in-out infinite"}};function Connecting(){return jsxRuntimeExports.jsxs("div",{style:styles$p.root,children:[jsxRuntimeExports.jsx("style",{children:`
23
23
  ' @keyframes admin-connecting-colors {
24
24
  0% {
25
25
  stroke: #4285F4;
@@ -3862,3 +3862,32 @@ html.eos-app .eos-native-drawer-header-hidden {
3862
3862
  box-shadow: none !important;
3863
3863
  background: transparent !important;
3864
3864
  }
3865
+
3866
+
3867
+ /* === NexoWatt EOS v7.9.65: native desktop drawer-header hard remove ======
3868
+ The upstream drawer identity block contains a /#easy link plus the chevron
3869
+ button. It is redundant in the EOS horizontal shell and caused the small
3870
+ floating NexoWatt tab above the real header. Target the actual structure,
3871
+ not only a class that JavaScript may assign too late. */
3872
+ body:has(#app-paper) .MuiDrawer-paper > *:has(a[href="/#easy"]):has(button),
3873
+ body:has(#app-paper) .MuiDrawer-paper > *:has(a[href$="#easy"]):has(.MuiIconButton-root),
3874
+ body:has(#app-paper) .MuiSwipeableDrawer-paper > *:has(a[href="/#easy"]):has(button),
3875
+ html.eos-app [data-eos-native-drawer-header-hidden="true"] {
3876
+ display: none !important;
3877
+ visibility: hidden !important;
3878
+ opacity: 0 !important;
3879
+ pointer-events: none !important;
3880
+ width: 0 !important;
3881
+ min-width: 0 !important;
3882
+ max-width: 0 !important;
3883
+ height: 0 !important;
3884
+ min-height: 0 !important;
3885
+ max-height: 0 !important;
3886
+ margin: 0 !important;
3887
+ padding: 0 !important;
3888
+ overflow: hidden !important;
3889
+ flex: 0 0 0 !important;
3890
+ border: 0 !important;
3891
+ box-shadow: none !important;
3892
+ background: transparent !important;
3893
+ }
@@ -4,8 +4,8 @@
4
4
  translate="no"
5
5
  >
6
6
  <head>
7
- <script src="./js/eos-console-quiet.js?v=64"></script>
8
- <script type="module" src="./assets/hostInit-v61.js?v=64"></script>
7
+ <script src="./js/eos-console-quiet.js?v=65"></script>
8
+ <script type="module" src="./assets/hostInit-v61.js?v=65"></script>
9
9
 
10
10
  <meta charset="utf-8" />
11
11
  <meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
@@ -35,7 +35,7 @@
35
35
  rel="stylesheet"
36
36
  href="css/leaflet.css"
37
37
  />
38
- <link rel="stylesheet" href="./css/eos-branding.css?v=64" />
38
+ <link rel="stylesheet" href="./css/eos-branding.css?v=65" />
39
39
  <link
40
40
  rel="manifest"
41
41
  href="manifest.json"
@@ -155,15 +155,15 @@
155
155
  false,
156
156
  );
157
157
  </script>
158
- <script type="module" crossorigin src="./assets/index-CQZugZ1z-v61.js?v=64"></script>
158
+ <script type="module" crossorigin src="./assets/index-CQZugZ1z-v61.js?v=65"></script>
159
159
  <link rel="modulepreload" crossorigin href="./assets/preload-helper-BDBacUwf.js">
160
160
  <link rel="modulepreload" crossorigin href="./assets/iobroker_admin__mf_v__runtimeInit__mf_v__-g2X2zhAf.js">
161
- <script defer src="./js/eos-branding.js?v=64"></script>
162
- <script defer src="./js/eos-adapter-surface-cleanup.js?v=64"></script>
163
- <script defer src="./js/eos-security-ui.js?v=64"></script>
164
- <script defer src="./js/eos-role-ui.js?v=64"></script>
165
- <script defer src="./js/eos-assistant.js?v=64"></script>
166
- <script defer src="./js/eos-objects-state-tools.js?v=64"></script>
161
+ <script defer src="./js/eos-branding.js?v=65"></script>
162
+ <script defer src="./js/eos-adapter-surface-cleanup.js?v=65"></script>
163
+ <script defer src="./js/eos-security-ui.js?v=65"></script>
164
+ <script defer src="./js/eos-role-ui.js?v=65"></script>
165
+ <script defer src="./js/eos-assistant.js?v=65"></script>
166
+ <script defer src="./js/eos-objects-state-tools.js?v=65"></script>
167
167
  </head>
168
168
  <body>
169
169
  <noscript>You need to enable JavaScript to run this app.</noscript>
@@ -1,7 +1,7 @@
1
1
  (() => {
2
2
  'use strict';
3
3
 
4
- const VERSION = 'v64-cache-build-consistency-hardening';
4
+ const VERSION = 'v65-native-drawer-header-hard-remove';
5
5
  window.NEXOWATT_EOS_ADAPTER_SURFACE_CLEANUP_VERSION = VERSION;
6
6
 
7
7
  const previous = window.__NEXOWATT_EOS_ADAPTER_SURFACE_CLEANUP_RUNTIME__;
@@ -2,5 +2,5 @@
2
2
  'use strict';
3
3
  // v31: EOS Assist is rendered by eos-branding.js so it can share route/security state.
4
4
  // This file stays as a lightweight compatibility hook for cache-safe deployments.
5
- window.NEXOWATT_EOS_ASSIST_VERSION = 'v64-cache-build-consistency-hardening';
5
+ window.NEXOWATT_EOS_ASSIST_VERSION = 'v65-native-drawer-header-hard-remove';
6
6
  })();
@@ -1,7 +1,7 @@
1
1
  (() => {
2
2
  'use strict';
3
3
 
4
- window.NEXOWATT_EOS_UI_VERSION = 'v64-cache-build-consistency-hardening';
4
+ window.NEXOWATT_EOS_UI_VERSION = 'v65-native-drawer-header-hard-remove';
5
5
 
6
6
  const BRAND = 'NexoWatt EOS';
7
7
  const EOS_MEANING = 'Energy Operation System';
@@ -820,6 +820,39 @@
820
820
  });
821
821
  });
822
822
 
823
+ const hideNativeDrawerHeaderElement = header => safe(() => {
824
+ if (!header || header.closest?.('.eos-brand-badge, .eos-top-toolbar')) return;
825
+ header.classList.add(
826
+ 'eos-native-drawer-header',
827
+ 'eos-nav-toggle-shell',
828
+ 'eos-native-drawer-header-hidden',
829
+ );
830
+ header.dataset.eosNativeDrawerHeaderHidden = 'true';
831
+ header.setAttribute('aria-hidden', 'true');
832
+ header.setAttribute('inert', '');
833
+ header.querySelectorAll('button, a, [role="button"], input, select, textarea').forEach(control => {
834
+ control.setAttribute('tabindex', '-1');
835
+ control.setAttribute('aria-hidden', 'true');
836
+ });
837
+ if (header.style) {
838
+ header.style.setProperty('display', 'none', 'important');
839
+ header.style.setProperty('visibility', 'hidden', 'important');
840
+ header.style.setProperty('opacity', '0', 'important');
841
+ header.style.setProperty('pointer-events', 'none', 'important');
842
+ header.style.setProperty('width', '0', 'important');
843
+ header.style.setProperty('height', '0', 'important');
844
+ header.style.setProperty('overflow', 'hidden', 'important');
845
+ header.style.setProperty('margin', '0', 'important');
846
+ header.style.setProperty('padding', '0', 'important');
847
+ }
848
+ });
849
+
850
+ const getDirectDrawerChild = (drawer, node) => {
851
+ let current = node;
852
+ while (current?.parentElement && current.parentElement !== drawer) current = current.parentElement;
853
+ return current?.parentElement === drawer ? current : null;
854
+ };
855
+
823
856
  const patchDrawerHeader = drawer => safe(() => {
824
857
  if (!drawer) return;
825
858
  drawer.classList.add('eos-drawer');
@@ -827,33 +860,27 @@
827
860
 
828
861
  const directChildren = Array.from(drawer.children).filter(el => el.nodeType === 1);
829
862
  const isListLike = el => el.classList?.contains('MuiList-root') || el.querySelector?.('.MuiListItemButton-root');
830
- let header = drawer.querySelector(':scope > .eos-native-drawer-header');
863
+
864
+ // Exact upstream Drawer.getHeader() fingerprint: its identity link points to /#easy
865
+ // and the same direct drawer child contains the native chevron IconButton.
866
+ const easyLink = drawer.querySelector('a[href="/#easy"], a[href$="#easy"], a[href*="/#easy"]');
867
+ let header = getDirectDrawerChild(drawer, easyLink);
868
+
869
+ if (!header || !header.querySelector?.('button, .MuiIconButton-root, [role="button"]')) {
870
+ header = drawer.querySelector(':scope > .eos-native-drawer-header');
871
+ }
831
872
  if (!header) {
832
873
  header = directChildren.find(el => {
833
874
  if (isListLike(el) || !el.querySelector) return false;
834
875
  const hasToggle = !!el.querySelector('button, .MuiIconButton-root, [role="button"]');
876
+ const hasEasyLink = !!el.querySelector('a[href="/#easy"], a[href$="#easy"], a[href*="/#easy"]');
835
877
  const hasIdentity = !!el.querySelector('img, .MuiAvatar-root, a')
836
878
  || /nexowatt|iobroker|energy operation system/i.test(String(el.textContent || ''));
837
- return hasToggle && hasIdentity;
879
+ return hasToggle && (hasEasyLink || hasIdentity);
838
880
  });
839
881
  }
840
- if (header) {
841
- // The horizontal EOS navigation uses the independent standalone toggle.
842
- // The native drawer identity/header is decorative here and caused the
843
- // stray top-left tab. Do not bind events or inject content into it.
844
- header.classList.add('eos-native-drawer-header', 'eos-nav-toggle-shell', 'eos-native-drawer-header-hidden');
845
- header.setAttribute('aria-hidden', 'true');
846
- header.setAttribute('inert', '');
847
- header.querySelectorAll('button, a, [role="button"], input, select, textarea').forEach(control => {
848
- control.setAttribute('tabindex', '-1');
849
- control.setAttribute('aria-hidden', 'true');
850
- });
851
- if (header.style) {
852
- header.style.display = 'none';
853
- header.style.visibility = 'hidden';
854
- header.style.pointerEvents = 'none';
855
- }
856
- }
882
+ if (header) hideNativeDrawerHeaderElement(header);
883
+
857
884
  const list = drawer.querySelector('.MuiList-root');
858
885
  if (list) {
859
886
  list.classList.add('eos-scroll-nav');
@@ -861,6 +888,18 @@
861
888
  }
862
889
  });
863
890
 
891
+ const removeStrayNativeDrawerHeaders = () => safe(() => {
892
+ document.querySelectorAll('.MuiDrawer-paper, .MuiSwipeableDrawer-paper').forEach(drawer => {
893
+ patchDrawerHeader(drawer);
894
+ drawer.querySelectorAll('a[href="/#easy"], a[href$="#easy"], a[href*="/#easy"]').forEach(link => {
895
+ const directChild = getDirectDrawerChild(drawer, link);
896
+ if (directChild?.querySelector?.('button, .MuiIconButton-root, [role="button"]')) {
897
+ hideNativeDrawerHeaderElement(directChild);
898
+ }
899
+ });
900
+ });
901
+ });
902
+
864
903
  const patchShell = () => safe(() => {
865
904
  const hasApp = !!document.getElementById('app-paper');
866
905
  const login = isLoginView();
@@ -876,7 +915,7 @@
876
915
  toolbar.classList.add('eos-top-toolbar');
877
916
  ensureBrandBadge(toolbar);
878
917
  }
879
- patchDrawerHeader(document.querySelector('.MuiDrawer-paper'));
918
+ removeStrayNativeDrawerHeaders();
880
919
  hideNativeLogoutNav();
881
920
  releaseNotificationControls();
882
921
  ensurePopupCompatibility();
@@ -1,7 +1,7 @@
1
1
  (() => {
2
2
  'use strict';
3
3
 
4
- const QUIET_VERSION = 'v64-cache-build-consistency-hardening';
4
+ const QUIET_VERSION = 'v65-native-drawer-header-hard-remove';
5
5
  window.NEXOWATT_EOS_CONSOLE_QUIET_VERSION = QUIET_VERSION;
6
6
 
7
7
  const original = window.__NEXOWATT_EOS_CONSOLE_ORIGINAL__ || {
@@ -1,7 +1,7 @@
1
1
  (() => {
2
2
  'use strict';
3
3
 
4
- window.NEXOWATT_EOS_OBJECTS_STATE_TOOLS_VERSION = 'v64-cache-build-consistency-hardening';
4
+ window.NEXOWATT_EOS_OBJECTS_STATE_TOOLS_VERSION = 'v65-native-drawer-header-hard-remove';
5
5
  window.NEXOWATT_EOS_OBJECTS_STATE_TOOLS_MODE = 'passive-native-objectbrowser';
6
6
 
7
7
  // Keep this file intentionally passive. The datapoints page must use the
@@ -1,6 +1,6 @@
1
1
  (() => {
2
2
  'use strict';
3
- window.NEXOWATT_EOS_PERFORMANCE_GUARD_VERSION = 'v64-cache-build-consistency-hardening-noop';
3
+ window.NEXOWATT_EOS_PERFORMANCE_GUARD_VERSION = 'v65-native-drawer-header-hard-remove-noop';
4
4
  // No-op compatibility shim. Older v53/v52 files installed aggressive DOM
5
5
  // observers here. Keeping the filename neutralizes stale ioBroker file-cache
6
6
  // references without touching ObjectBrowser, tooltips, clicks or state writes.
@@ -1,7 +1,7 @@
1
1
  (() => {
2
2
  'use strict';
3
3
 
4
- window.NEXOWATT_EOS_ROLE_UI_VERSION = 'v64-cache-build-consistency-hardening';
4
+ window.NEXOWATT_EOS_ROLE_UI_VERSION = 'v65-native-drawer-header-hard-remove';
5
5
 
6
6
  const ASSET_BASE = (() => {
7
7
  const script = document.currentScript?.src || document.querySelector('script[src*="eos-role-ui.js"]')?.src || window.location.href;
@@ -1,7 +1,7 @@
1
1
  (() => {
2
2
  'use strict';
3
3
 
4
- window.NEXOWATT_EOS_RUNTIME_FIXES_VERSION = 'v64-cache-build-consistency-hardening';
4
+ window.NEXOWATT_EOS_RUNTIME_FIXES_VERSION = 'v65-native-drawer-header-hard-remove';
5
5
 
6
6
  const MOJIBAKE_MAP = new Map(Object.entries({
7
7
  'dürfen': 'dürfen', 'Dürfen': 'Dürfen',
@@ -1,7 +1,7 @@
1
1
  (() => {
2
2
  'use strict';
3
3
 
4
- const VERSION = 'v64-cache-build-consistency-hardening';
4
+ const VERSION = 'v65-native-drawer-header-hard-remove';
5
5
  const LEGACY_ADMIN = 'admin';
6
6
  const LEGACY_ADMIN_INSTANCE = 'admin.0';
7
7
  const CORE_PROTECTED_ADAPTERS = ['admin', 'eos-admin', 'backitup', 'nexowatt-devices', 'nexowatt-device', 'nexowatt-dev', 'nexowatt-ui'];
package/io-package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "common": {
3
3
  "name": "eos-admin",
4
- "version": "7.9.64",
4
+ "version": "7.9.65",
5
5
  "titleLang": {
6
6
  "en": "NexoWatt EOS Admin",
7
7
  "de": "NexoWatt EOS Admin",
@@ -259,7 +259,7 @@
259
259
  "icon": "admin.svg",
260
260
  "messagebox": true,
261
261
  "enabled": true,
262
- "extIcon": "https://unpkg.com/iobroker.eos-admin@7.9.64/admin/admin.svg",
262
+ "extIcon": "https://unpkg.com/iobroker.eos-admin@7.9.65/admin/admin.svg",
263
263
  "keywords": [
264
264
  "NexoWatt",
265
265
  "EOS",
@@ -270,7 +270,7 @@
270
270
  "licensed"
271
271
  ],
272
272
  "compact": true,
273
- "readme": "https://unpkg.com/iobroker.eos-admin@7.9.64/README.md",
273
+ "readme": "https://unpkg.com/iobroker.eos-admin@7.9.65/README.md",
274
274
  "authors": [
275
275
  "bluefox <bluefox@ccu.io>",
276
276
  "hobbyquaker <hq@ccu.io>"
@@ -339,7 +339,7 @@
339
339
  "nondeletable": false,
340
340
  "allowAdapterUpdate": true,
341
341
  "allowAdapterDelete": false,
342
- "meta": "https://unpkg.com/iobroker.eos-admin@7.9.64/io-package.json",
342
+ "meta": "https://unpkg.com/iobroker.eos-admin@7.9.65/io-package.json",
343
343
  "npmPackage": "iobroker.eos-admin",
344
344
  "packetName": "iobroker.eos-admin"
345
345
  },
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "iobroker.eos-admin",
3
3
  "description": "NexoWatt EOS Admin interface with reliable repository update mapping and technical log preservation.",
4
- "version": "7.9.64",
4
+ "version": "7.9.65",
5
5
  "contributors": [
6
6
  "bluefox <dogafox@gmail.com>",
7
7
  "apollon77",
@@ -117,7 +117,8 @@ if (!branding.includes('isAdapterConfigSurface')) fail('eos-branding.js lacks na
117
117
  if (!branding.includes('Adapter UIs must remain 100% functional')) fail('eos-branding.js lacks native adapter config interaction guard');
118
118
  if (!branding.includes('v38: All native Admin dialogs') || !branding.includes('ensurePopupCompatibility')) fail('eos-branding.js lacks v38 popup compatibility guard');
119
119
 
120
- if (!branding.includes('eos-native-drawer-header-hidden') || !branding.includes("header.setAttribute('inert', '')")) fail('eos-branding.js lacks the v64 native drawer-header guard');
120
+ if (!branding.includes('eos-native-drawer-header-hidden') || !branding.includes("header.setAttribute('inert', '')")) fail('eos-branding.js lacks the native drawer-header guard');
121
+ if (!branding.includes('removeStrayNativeDrawerHeaders') || !branding.includes('a[href=\"/#easy\"]')) fail('eos-branding.js lacks structural native drawer-header cleanup');
121
122
  if (!branding.includes('ensureStandaloneNavToggle')) fail('eos-branding.js lacks the independent EOS navigation toggle');
122
123
  const activeGraph = [
123
124
  fs.readFileSync(path.join(root, 'adminWww/assets/index-CQZugZ1z-v61.js'), 'utf8'),
@@ -126,6 +127,13 @@ const activeGraph = [
126
127
  ].join('\n');
127
128
  if (/-v(?:54|55|56|57|58|59|60)\.js/.test(activeGraph)) fail('active v61 frontend graph still imports an old versioned runtime file');
128
129
 
130
+ const drawerSource = fs.readFileSync(path.join(root, 'src-admin/src/components/Drawer.tsx'), 'utf8');
131
+ const activeBootstrap = fs.readFileSync(path.join(root, 'adminWww/assets/bootstrap-COulQZax-v61.js'), 'utf8');
132
+ const brandingCss = fs.readFileSync(path.join(root, 'adminWww/css/eos-branding.css'), 'utf8');
133
+ if (!drawerSource.includes('if (!this.isSwipeable())') || !drawerSource.includes('return null;')) fail('Drawer.tsx still renders the native desktop drawer header');
134
+ if (!activeBootstrap.includes('getHeader(){if(!this.isSwipeable())return null;')) fail('active bootstrap still renders the native desktop drawer header');
135
+ if (!brandingCss.includes('a[href=\"/#easy\"]') || !brandingCss.includes('data-eos-native-drawer-header-hidden')) fail('branding CSS lacks structural native drawer-header fallback');
136
+
129
137
  const activeAdapterReact = fs.readFileSync(path.join(root, 'adminWww/assets/index-D2ymscJA-v61.js'), 'utf8');
130
138
  const activeObjects = fs.readFileSync(path.join(root, 'adminWww/assets/Objects-DPan0bzw-v61.js'), 'utf8');
131
139
  const activeAdapters = fs.readFileSync(path.join(root, 'adminWww/assets/Adapters-B5_jQ7DE-v61.js'), 'utf8');