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.
- package/adminWww/assets/bootstrap-COulQZax-v61.js +1 -1
- package/adminWww/css/eos-branding.css +29 -0
- package/adminWww/index.html +10 -10
- package/adminWww/js/eos-adapter-surface-cleanup.js +1 -1
- package/adminWww/js/eos-assistant.js +1 -1
- package/adminWww/js/eos-branding.js +60 -21
- package/adminWww/js/eos-console-quiet.js +1 -1
- package/adminWww/js/eos-objects-state-tools.js +1 -1
- package/adminWww/js/eos-performance-guard.js +1 -1
- package/adminWww/js/eos-role-ui.js +1 -1
- package/adminWww/js/eos-runtime-fixes.js +1 -1
- package/adminWww/js/eos-security-ui.js +1 -1
- package/io-package.json +4 -4
- package/package.json +1 -1
- package/tools/nexowatt-validate-package.cjs +9 -1
|
@@ -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(">",">"):"";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(">",">"):"";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
|
+
}
|
package/adminWww/index.html
CHANGED
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
translate="no"
|
|
5
5
|
>
|
|
6
6
|
<head>
|
|
7
|
-
<script src="./js/eos-console-quiet.js?v=
|
|
8
|
-
<script type="module" src="./assets/hostInit-v61.js?v=
|
|
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=
|
|
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=
|
|
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=
|
|
162
|
-
<script defer src="./js/eos-adapter-surface-cleanup.js?v=
|
|
163
|
-
<script defer src="./js/eos-security-ui.js?v=
|
|
164
|
-
<script defer src="./js/eos-role-ui.js?v=
|
|
165
|
-
<script defer src="./js/eos-assistant.js?v=
|
|
166
|
-
<script defer src="./js/eos-objects-state-tools.js?v=
|
|
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 = '
|
|
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 = '
|
|
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 = '
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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 = '
|
|
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 = '
|
|
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 = '
|
|
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 = '
|
|
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 = '
|
|
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 = '
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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.
|
|
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
|
|
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');
|