iobroker.eos-admin 7.9.49 → 7.9.50
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/Objects-DPan0bzw.js +2 -2
- package/adminWww/assets/Objects-DPw50Write.js +878 -0
- package/adminWww/assets/bootstrap-DPWrite50.js +317 -0
- package/adminWww/assets/hostInit-DPWrite50.js +2 -0
- package/adminWww/assets/index-D2ymscJA.js +1 -1
- package/adminWww/assets/index-DPAdapter50.js +950 -0
- package/adminWww/assets/index-DPWrite50.js +2 -0
- package/adminWww/index.html +8 -8
- package/adminWww/js/eos-branding.js +10 -3
- package/adminWww/js/eos-objects-state-tools.js +225 -12
- package/adminWww/js/eos-role-ui.js +9 -2
- package/adminWww/js/eos-security-ui.js +1 -1
- package/adminWww/mf-manifest.json +1 -1
- package/adminWww/remoteEntry-DPWrite50.js +2 -0
- package/io-package.json +8 -4
- package/package.json +1 -1
|
@@ -36,7 +36,7 @@ yyyy`);var i=Mo(e),n=t?"getUTC":"get",r=i[n+"FullYear"](),o=i[n+"Month"]()+1,a=i
|
|
|
36
36
|
`:"";function i(n){var r=n.children,o=n.tag,a=n.attrs,l=n.text;return nme(o,a)+(o!=="style"?Cs(l):l||"")+(r?""+t+Ne(r,function(h){return i(h)}).join(t)+t:"")+sme(o)}return i(s)}function rme(s,e,t){t=t||{};var i=t.newline?`
|
|
37
37
|
`:"",n=" {"+i,r=i+"}",o=Ne(Gt(s),function(l){return l+n+Ne(Gt(s[l]),function(h){return h+":"+s[l][h]+";"}).join(i)+r}).join(i),a=Ne(Gt(e),function(l){return"@keyframes "+l+n+Ne(Gt(e[l]),function(h){return h+n+Ne(Gt(e[l][h]),function(c){var u=e[l][h][c];return c==="d"&&(u='path("'+u+'")'),c+":"+u+";"}).join(i)+r}).join(i)+r}).join(i);return!o&&!a?"":["<![CDATA[",o,a,"]]>"].join(i)}function VN(s){return{zrId:s,shadowCache:{},patternCache:{},gradientCache:{},clipPathCache:{},defs:{},cssNodes:{},cssAnims:{},cssStyleCache:{},cssAnimIdx:0,shadowIdx:0,gradientIdx:0,patternIdx:0,clipPathIdx:0}}function QB(s,e,t,i){return yn("svg","root",{width:s,height:e,xmlns:WY,"xmlns:xlink":HY,version:"1.1",baseProfile:"full",viewBox:i?"0 0 "+s+" "+e:!1},t)}var ome=0;function jY(){return ome++}var JB={cubicIn:"0.32,0,0.67,0",cubicOut:"0.33,1,0.68,1",cubicInOut:"0.65,0,0.35,1",quadraticIn:"0.11,0,0.5,0",quadraticOut:"0.5,1,0.89,1",quadraticInOut:"0.45,0,0.55,1",quarticIn:"0.5,0,0.75,0",quarticOut:"0.25,1,0.5,1",quarticInOut:"0.76,0,0.24,1",quinticIn:"0.64,0,0.78,0",quinticOut:"0.22,1,0.36,1",quinticInOut:"0.83,0,0.17,1",sinusoidalIn:"0.12,0,0.39,0",sinusoidalOut:"0.61,1,0.88,1",sinusoidalInOut:"0.37,0,0.63,1",exponentialIn:"0.7,0,0.84,0",exponentialOut:"0.16,1,0.3,1",exponentialInOut:"0.87,0,0.13,1",circularIn:"0.55,0,1,0.45",circularOut:"0,0.55,0.45,1",circularInOut:"0.85,0,0.15,1"},ld="transform-origin";function ame(s,e,t){var i=we({},s.shape);we(i,e),s.buildPath(t,i);var n=new VY;return n.reset(Y$(s)),t.rebuildPath(n,1),n.generateStr(),n.getStr()}function lme(s,e){var t=e.originX,i=e.originY;(t||i)&&(s[ld]=t+"px "+i+"px")}var hme={fill:"fill",opacity:"opacity",lineWidth:"stroke-width",lineDashOffset:"stroke-dashoffset"};function UY(s,e){var t=e.zrId+"-ani-"+e.cssAnimIdx++;return e.cssAnims[t]=s,t}function cme(s,e,t){var i=s.shape.paths,n={},r,o;if(V(i,function(l){var h=VN(t.zrId);h.animation=!0,dD(l,{},h,!0);var c=h.cssAnims,u=h.cssNodes,d=Gt(c),f=d.length;if(f){o=d[f-1];var g=c[o];for(var p in g){var m=g[p];n[p]=n[p]||{d:""},n[p].d+=m.d||""}for(var v in u){var _=u[v].animation;_.indexOf(o)>=0&&(r=_)}}}),!!r){e.d=!1;var a=UY(n,t);return r.replace(o,a)}}function eV(s){return Be(s)?JB[s]?"cubic-bezier("+JB[s]+")":c5(s)?s:"":""}function dD(s,e,t,i){var n=s.animators,r=n.length,o=[];if(s instanceof k5){var a=cme(s,e,t);if(a)o.push(a);else if(!r)return}else if(!r)return;for(var l={},h=0;h<r;h++){var c=n[h],u=[c.getMaxTime()/1e3+"s"],d=eV(c.getClip().easing),f=c.getDelay();d?u.push(d):u.push("linear"),f&&u.push(f/1e3+"s"),c.getLoop()&&u.push("infinite");var g=u.join(" ");l[g]=l[g]||[g,[]],l[g][1].push(c)}function p(_){var b=_[1],y=b.length,C={},x={},S={},k="animation-timing-function";function T(tt,st,ve){for(var ge=tt.getTracks(),Oe=tt.getMaxTime(),Ci=0;Ci<ge.length;Ci++){var Ht=ge[Ci];if(Ht.needsAnimate()){var In=Ht.keyframes,Ms=Ht.propName;if(ve&&(Ms=ve(Ms)),Ms)for(var ir=0;ir<In.length;ir++){var Or=In[ir],lo=Math.round(Or.time/Oe*100)+"%",ic=eV(Or.easing),nc=Or.rawValue;(Be(nc)||ki(nc))&&(st[lo]=st[lo]||{},st[lo][Ms]=Or.rawValue,ic&&(st[lo][k]=ic))}}}}for(var I=0;I<y;I++){var N=b[I],A=N.targetName;A?A==="shape"&&T(N,x):!i&&T(N,C)}for(var R in C){var P={};eG(P,s),we(P,C[R]);var B=X$(P),z=C[R][k];S[R]=B?{transform:B}:{},lme(S[R],P),z&&(S[R][k]=z)}var U,K=!0;for(var R in x){S[R]=S[R]||{};var X=!U,z=x[R][k];X&&(U=new hu);var ne=U.len();U.reset(),S[R].d=ame(s,x[R],U);var oe=U.len();if(!X&&ne!==oe){K=!1;break}z&&(S[R][k]=z)}if(!K)for(var R in S)delete S[R].d;if(!i)for(var I=0;I<y;I++){var N=b[I],A=N.targetName;A==="style"&&T(N,S,function(ge){return hme[ge]})}for(var ue=Gt(S),de=!0,De,I=1;I<ue.length;I++){var Q=ue[I-1],Xe=ue[I];if(S[Q][ld]!==S[Xe][ld]){de=!1;break}De=S[Q][ld]}if(de&&De){for(var R in S)S[R][ld]&&delete S[R][ld];e[ld]=De}if(Xi(ue,function(tt){return Gt(S[tt]).length>0}).length){var Pe=UY(S,t);return Pe+" "+_[0]+" both"}}for(var m in l){var a=p(l[m]);a&&o.push(a)}if(o.length){var v=t.zrId+"-cls-"+jY();t.cssNodes["."+v]={animation:o.join(",")},e.class=v}}function ume(s,e,t){if(!s.ignore)if(s.isSilent()){var i={"pointer-events":"none"};tV(i,e,t)}else{var n=s.states.emphasis&&s.states.emphasis.style?s.states.emphasis.style:{},r=n.fill;if(!r){var o=s.style&&s.style.fill,a=s.states.select&&s.states.select.style&&s.states.select.style.fill,l=s.currentStates.indexOf("select")>=0&&a||o;l&&(r=SS(l))}var h=n.lineWidth;if(h){var c=!n.strokeNoScale&&s.transform?s.transform[0]:1;h=h/c}var i={cursor:"pointer"};r&&(i.fill=r),n.stroke&&(i.stroke=n.stroke),h&&(i["stroke-width"]=h),tV(i,e,t)}}function tV(s,e,t,i){var n=JSON.stringify(s),r=t.cssStyleCache[n];r||(r=t.zrId+"-cls-"+jY(),t.cssStyleCache[n]=r,t.cssNodes["."+r+":hover"]=s),e.class=e.class?e.class+" "+r:r}var Ob=Math.round;function $Y(s){return s&&Be(s.src)}function GY(s){return s&&ut(s.toDataURL)}function I4(s,e,t,i){eme(function(n,r){var o=n==="fill"||n==="stroke";o&&K$(r)?KY(e,s,n,i):o&&d5(r)?YY(t,s,n,i):s[n]=r,o&&i.ssr&&r==="none"&&(s["pointer-events"]="visible")},e,t,!1),_me(t,s,i)}function E4(s,e){var t=sG(e);t&&(t.each(function(i,n){i!=null&&(s[(ZB+n).toLowerCase()]=i+"")}),e.isSilent()&&(s[ZB+"silent"]="true"))}function iV(s){return Oc(s[0]-1)&&Oc(s[1])&&Oc(s[2])&&Oc(s[3]-1)}function dme(s){return Oc(s[4])&&Oc(s[5])}function N4(s,e,t){if(e&&!(dme(e)&&iV(e))){var i=1e4;s.transform=iV(e)?"translate("+Ob(e[4]*i)/i+" "+Ob(e[5]*i)/i+")":xse(e)}}function nV(s,e,t){for(var i=s.points,n=[],r=0;r<i.length;r++)n.push(Ob(i[r][0]*t)/t),n.push(Ob(i[r][1]*t)/t);e.points=n.join(" ")}function sV(s){return!s.smooth}function fme(s){var e=Ne(s,function(t){return typeof t=="string"?[t,t]:t});return function(t,i,n){for(var r=0;r<e.length;r++){var o=e[r],a=t[o[0]];a!=null&&(i[o[1]]=Ob(a*n)/n)}}}var gme={circle:[fme(["cx","cy","r"])],polyline:[nV,sV],polygon:[nV,sV]};function pme(s){for(var e=s.animators,t=0;t<e.length;t++)if(e[t].targetName==="shape")return!0;return!1}function qY(s,e){var t=s.style,i=s.shape,n=gme[s.type],r={},o=e.animation,a="path",l=s.style.strokePercent,h=e.compress&&Y$(s)||4;if(n&&!e.willUpdate&&!(n[1]&&!n[1](i))&&!(o&&pme(s))&&!(l<1)){a=s.type;var c=Math.pow(10,h);n[0](i,r,c)}else{var u=!s.path||s.shapeChanged();s.path||s.createPathProxy();var d=s.path;u&&(d.beginPath(),s.buildPath(d,s.shape),s.pathUpdated());var f=d.getVersion(),g=s,p=g.__svgPathBuilder;(g.__svgPathVersion!==f||!p||l!==g.__svgPathStrokePercent)&&(p||(p=g.__svgPathBuilder=new VY),p.reset(h),d.rebuildPath(p,l),p.generateStr(),g.__svgPathVersion=f,g.__svgPathStrokePercent=l),r.d=p.getStr()}return N4(r,s.transform),I4(r,t,s,e),E4(r,s),e.animation&&dD(s,r,e),e.emphasis&&ume(s,r,e),yn(a,s.id+"",r)}function mme(s,e){var t=s.style,i=t.image;if(i&&!Be(i)&&($Y(i)?i=i.src:GY(i)&&(i=i.toDataURL())),!!i){var n=t.x||0,r=t.y||0,o=t.width,a=t.height,l={href:i,width:o,height:a};return n&&(l.x=n),r&&(l.y=r),N4(l,s.transform),I4(l,t,s,e),E4(l,s),e.animation&&dD(s,l,e),yn("image",s.id+"",l)}}function vme(s,e){var t=s.style,i=t.text;if(i!=null&&(i+=""),!(!i||isNaN(t.x)||isNaN(t.y))){var n=t.font||ou,r=t.x||0,o=kse(t.y||0,Rk(n),t.textBaseline),a=Lse[t.textAlign]||t.textAlign,l={"dominant-baseline":"central","text-anchor":a};if(DG(t)){var h="",c=t.fontStyle,u=kG(t.fontSize);if(!parseFloat(u))return;var d=t.fontFamily||_$,f=t.fontWeight;h+="font-size:"+u+";font-family:"+d+";",c&&c!=="normal"&&(h+="font-style:"+c+";"),f&&f!=="normal"&&(h+="font-weight:"+f+";"),l.style=h}else l.style="font: "+n;return i.match(/\s/)&&(l["xml:space"]="preserve"),r&&(l.x=r),o&&(l.y=o),N4(l,s.transform),I4(l,t,s,e),E4(l,s),e.animation&&dD(s,l,e),yn("text",s.id+"",l,void 0,i)}}function rV(s,e){if(s instanceof hi)return qY(s,e);if(s instanceof La)return mme(s,e);if(s instanceof Lb)return vme(s,e)}function _me(s,e,t){var i=s.style;if(Dse(i)){var n=Tse(s),r=t.shadowCache,o=r[n];if(!o){var a=s.getGlobalScale(),l=a[0],h=a[1];if(!l||!h)return;var c=i.shadowOffsetX||0,u=i.shadowOffsetY||0,d=i.shadowBlur,f=bb(i.shadowColor),g=f.opacity,p=f.color,m=d/2/l,v=d/2/h,_=m+" "+v;o=t.zrId+"-s"+t.shadowIdx++,t.defs[o]=yn("filter",o,{id:o,x:"-100%",y:"-100%",width:"300%",height:"300%"},[yn("feDropShadow","",{dx:c/l,dy:u/h,stdDeviation:_,"flood-color":p,"flood-opacity":g})]),r[n]=o}e.filter=Mk(o)}}function KY(s,e,t,i){var n=s[t],r,o={gradientUnits:n.global?"userSpaceOnUse":"objectBoundingBox"};if(G$(n))r="linearGradient",o.x1=n.x,o.y1=n.y,o.x2=n.x2,o.y2=n.y2;else if(q$(n))r="radialGradient",o.cx=ct(n.x,.5),o.cy=ct(n.y,.5),o.r=ct(n.r,.5);else return;for(var a=n.colorStops,l=[],h=0,c=a.length;h<c;++h){var u=VE(a[h].offset)*100+"%",d=a[h].color,f=bb(d),g=f.color,p=f.opacity,m={offset:u};m["stop-color"]=g,p<1&&(m["stop-opacity"]=p),l.push(yn("stop",h+"",m))}var v=yn(r,"",o,l),_=T4(v),b=i.gradientCache,y=b[_];y||(y=i.zrId+"-g"+i.gradientIdx++,b[_]=y,o.id=y,i.defs[y]=yn(r,y,o,l)),e[t]=Mk(y)}function YY(s,e,t,i){var n=s.style[t],r=s.getBoundingRect(),o={},a=n.repeat,l=a==="no-repeat",h=a==="repeat-x",c=a==="repeat-y",u;if($$(n)){var d=n.imageWidth,f=n.imageHeight,g=void 0,p=n.image;if(Be(p)?g=p:$Y(p)?g=p.src:GY(p)&&(g=p.toDataURL()),typeof Image>"u"){var m="Image width/height must been given explictly in svg-ssr renderer.";ro(d,m),ro(f,m)}else if(d==null||f==null){var v=function(I,N){if(I){var A=I.elm,R=d||N.width,P=f||N.height;I.tag==="pattern"&&(h?(P=1,R/=r.width):c&&(R=1,P/=r.height)),I.attrs.width=R,I.attrs.height=P,A&&(A.setAttribute("width",R),A.setAttribute("height",P))}},_=y5(g,null,s,function(I){l||v(x,I),v(u,I)});_&&_.width&&_.height&&(d=d||_.width,f=f||_.height)}u=yn("image","img",{href:g,width:d,height:f}),o.width=d,o.height=f}else n.svgElement&&(u=mt(n.svgElement),o.width=n.svgWidth,o.height=n.svgHeight);if(u){var b,y;l?b=y=1:h?(y=1,b=o.width/r.width):c?(b=1,y=o.height/r.height):o.patternUnits="userSpaceOnUse",b!=null&&!isNaN(b)&&(o.width=b),y!=null&&!isNaN(y)&&(o.height=y);var C=X$(n);C&&(o.patternTransform=C);var x=yn("pattern","",o,[u]),S=T4(x),k=i.patternCache,T=k[S];T||(T=i.zrId+"-p"+i.patternIdx++,k[S]=T,o.id=T,x=i.defs[T]=yn("pattern",T,o,[u])),e[t]=Mk(T)}}function bme(s,e,t){var i=t.clipPathCache,n=t.defs,r=i[s.id];if(!r){r=t.zrId+"-c"+t.clipPathIdx++;var o={id:r};i[s.id]=r,n[r]=yn("clipPath",r,o,[qY(s,t)])}e["clip-path"]=Mk(r)}function oV(s){return document.createTextNode(s)}function _d(s,e,t){s.insertBefore(e,t)}function aV(s,e){s.removeChild(e)}function lV(s,e){s.appendChild(e)}function XY(s){return s.parentNode}function ZY(s){return s.nextSibling}function q2(s,e){s.textContent=e}var hV=58,wme=120,yme=yn("","");function WN(s){return s===void 0}function Ya(s){return s!==void 0}function Cme(s,e,t){for(var i={},n=e;n<=t;++n){var r=s[n].key;r!==void 0&&(i[r]=n)}return i}function z_(s,e){var t=s.key===e.key,i=s.tag===e.tag;return i&&t}function Fb(s){var e,t=s.children,i=s.tag;if(Ya(i)){var n=s.elm=zY(i);if(M4(yme,s),Me(t))for(e=0;e<t.length;++e){var r=t[e];r!=null&&lV(n,Fb(r))}else Ya(s.text)&&!Ue(s.text)&&lV(n,oV(s.text))}else s.elm=oV(s.text);return s.elm}function QY(s,e,t,i,n){for(;i<=n;++i){var r=t[i];r!=null&&_d(s,Fb(r),e)}}function WS(s,e,t,i){for(;t<=i;++t){var n=e[t];if(n!=null)if(Ya(n.tag)){var r=XY(n.elm);aV(r,n.elm)}else aV(s,n.elm)}}function M4(s,e){var t,i=e.elm,n=s&&s.attrs||{},r=e.attrs||{};if(n!==r){for(t in r){var o=r[t],a=n[t];a!==o&&(o===!0?i.setAttribute(t,""):o===!1?i.removeAttribute(t):t==="style"?i.style.cssText=o:t.charCodeAt(0)!==wme?i.setAttribute(t,o):t==="xmlns:xlink"||t==="xmlns"?i.setAttributeNS(tme,t,o):t.charCodeAt(3)===hV?i.setAttributeNS(ime,t,o):t.charCodeAt(5)===hV?i.setAttributeNS(HY,t,o):i.setAttribute(t,o))}for(t in n)t in r||i.removeAttribute(t)}}function Sme(s,e,t){for(var i=0,n=0,r=e.length-1,o=e[0],a=e[r],l=t.length-1,h=t[0],c=t[l],u,d,f,g;i<=r&&n<=l;)o==null?o=e[++i]:a==null?a=e[--r]:h==null?h=t[++n]:c==null?c=t[--l]:z_(o,h)?(Cp(o,h),o=e[++i],h=t[++n]):z_(a,c)?(Cp(a,c),a=e[--r],c=t[--l]):z_(o,c)?(Cp(o,c),_d(s,o.elm,ZY(a.elm)),o=e[++i],c=t[--l]):z_(a,h)?(Cp(a,h),_d(s,a.elm,o.elm),a=e[--r],h=t[++n]):(WN(u)&&(u=Cme(e,i,r)),d=u[h.key],WN(d)?_d(s,Fb(h),o.elm):(f=e[d],f.tag!==h.tag?_d(s,Fb(h),o.elm):(Cp(f,h),e[d]=void 0,_d(s,f.elm,o.elm))),h=t[++n]);(i<=r||n<=l)&&(i>r?(g=t[l+1]==null?null:t[l+1].elm,QY(s,g,t,n,l)):WS(s,e,i,r))}function Cp(s,e){var t=e.elm=s.elm,i=s.children,n=e.children;s!==e&&(M4(s,e),WN(e.text)?Ya(i)&&Ya(n)?i!==n&&Sme(t,i,n):Ya(n)?(Ya(s.text)&&q2(t,""),QY(t,null,n,0,n.length-1)):Ya(i)?WS(t,i,0,i.length-1):Ya(s.text)&&q2(t,""):s.text!==e.text&&(Ya(i)&&WS(t,i,0,i.length-1),q2(t,e.text)))}function xme(s,e){if(z_(s,e))Cp(s,e);else{var t=s.elm,i=XY(t);Fb(e),i!==null&&(_d(i,e.elm,ZY(t)),WS(i,[s],0,0))}return e}var Lme=0,kme=(function(){function s(e,t,i){if(this.type="svg",this.refreshHover=cV(),this.configLayer=cV(),this.storage=t,this._opts=i=we({},i),this.root=e,this._id="zr"+Lme++,this._oldVNode=QB(i.width,i.height),e&&!i.ssr){var n=this._viewport=document.createElement("div");n.style.cssText="position:relative;overflow:hidden";var r=this._svgDom=this._oldVNode.elm=zY("svg");M4(null,this._oldVNode),n.appendChild(r),e.appendChild(n)}this.resize(i.width,i.height)}return s.prototype.getType=function(){return this.type},s.prototype.getViewportRoot=function(){return this._viewport},s.prototype.getViewportRootOffset=function(){var e=this.getViewportRoot();if(e)return{offsetLeft:e.offsetLeft||0,offsetTop:e.offsetTop||0}},s.prototype.getSvgDom=function(){return this._svgDom},s.prototype.refresh=function(){if(this.root){var e=this.renderToVNode({willUpdate:!0});e.attrs.style="position:absolute;left:0;top:0;user-select:none",xme(this._oldVNode,e),this._oldVNode=e}},s.prototype.renderOneToVNode=function(e){return rV(e,VN(this._id))},s.prototype.renderToVNode=function(e){e=e||{};var t=this.storage.getDisplayList(!0),i=this._width,n=this._height,r=VN(this._id);r.animation=e.animation,r.willUpdate=e.willUpdate,r.compress=e.compress,r.emphasis=e.emphasis,r.ssr=this._opts.ssr;var o=[],a=this._bgVNode=Dme(i,n,this._backgroundColor,r);a&&o.push(a);var l=e.compress?null:this._mainVNode=yn("g","main",{},[]);this._paintList(t,r,l?l.children:o),l&&o.push(l);var h=Ne(Gt(r.defs),function(d){return r.defs[d]});if(h.length&&o.push(yn("defs","defs",{},h)),e.animation){var c=rme(r.cssNodes,r.cssAnims,{newline:!0});if(c){var u=yn("style","stl",{},[],c);o.push(u)}}return QB(i,n,o,e.useViewBox)},s.prototype.renderToString=function(e){return e=e||{},T4(this.renderToVNode({animation:ct(e.cssAnimation,!0),emphasis:ct(e.cssEmphasis,!0),willUpdate:!1,compress:!0,useViewBox:ct(e.useViewBox,!0)}),{newline:!0})},s.prototype.setBackgroundColor=function(e){this._backgroundColor=e},s.prototype.getSvgRoot=function(){return this._mainVNode&&this._mainVNode.elm},s.prototype._paintList=function(e,t,i){for(var n=e.length,r=[],o=0,a,l,h=0,c=0;c<n;c++){var u=e[c];if(!u.invisible){var d=u.__clipPaths,f=d&&d.length||0,g=l&&l.length||0,p=void 0;for(p=Math.max(f-1,g-1);p>=0&&!(d&&l&&d[p]===l[p]);p--);for(var m=g-1;m>p;m--)o--,a=r[o-1];for(var v=p+1;v<f;v++){var _={};bme(d[v],_,t);var b=yn("g","clip-g-"+h++,_,[]);(a?a.children:i).push(b),r[o++]=b,a=b}l=d;var y=rV(u,t);y&&(a?a.children:i).push(y)}}},s.prototype.resize=function(e,t){var i=this._opts,n=this.root,r=this._viewport;if(e!=null&&(i.width=e),t!=null&&(i.height=t),n&&r&&(r.style.display="none",e=a6(n,0,i),t=a6(n,1,i),r.style.display=""),this._width!==e||this._height!==t){if(this._width=e,this._height=t,r){var o=r.style;o.width=e+"px",o.height=t+"px"}if(d5(this._backgroundColor))this.refresh();else{var a=this._svgDom;a&&(a.setAttribute("width",e),a.setAttribute("height",t));var l=this._bgVNode&&this._bgVNode.elm;l&&(l.setAttribute("width",e),l.setAttribute("height",t))}}},s.prototype.getWidth=function(){return this._width},s.prototype.getHeight=function(){return this._height},s.prototype.dispose=function(){this.root&&(this.root.innerHTML=""),this._svgDom=this._viewport=this.storage=this._oldVNode=this._bgVNode=this._mainVNode=null},s.prototype.clear=function(){this._svgDom&&(this._svgDom.innerHTML=null),this._oldVNode=null},s.prototype.toDataURL=function(e){var t=this.renderToString(),i="data:image/svg+xml;";return e?(t=Ese(t),t&&i+"base64,"+t):i+"charset=UTF-8,"+encodeURIComponent(t)},s})();function cV(s){return function(){}}function Dme(s,e,t,i){var n;if(t&&t!=="none")if(n=yn("rect","bg",{width:s,height:e,x:"0",y:"0"}),K$(t))KY({fill:t},n.attrs,"fill",i);else if(d5(t))YY({style:{fill:t},dirty:ts,getBoundingRect:function(){return{width:s,height:e}}},n.attrs,"fill",i);else{var r=bb(t),o=r.color,a=r.opacity;n.attrs.fill=o,a<1&&(n.attrs["fill-opacity"]=a)}return n}function Tme(s){s.registerPainter("svg",kme)}const Ime=""+new URL("echarts-BDq-rBJC.png",import.meta.url).href;$f([Kpe,mpe,Bpe,Ppe,Lge,Jde,Tme]);const on={paper:{height:"100%",maxHeight:"100%",maxWidth:"100%",overflow:"hidden",width:"100%"},chart:{width:"100%",overflow:"hidden"},chartWithToolbar:s=>({height:`calc(100% - ${parseInt(s.mixins.toolbar.minHeight,10)+8}px)`}),chartWithoutToolbar:{height:"100%"},selectHistoryControl:{width:130},selectRelativeTime:{marginLeft:10,width:200},notAliveInstance:{opacity:.5},customRange:s=>({color:s.palette.primary.main}),splitLineButtonIcon:{marginRight:8},grow:{flexGrow:1},toolbarDate:{width:124,mt:"9px","& fieldset":{display:"none"},"& input":{padding:"8px 0 0 0"},"& .MuiInputAdornment-root":{ml:0,mt:"7px"}},toolbarTime:{width:84,mt:"9px","& fieldset":{display:"none"},"& input":{padding:"8px 0 0 0"},"& .MuiInputAdornment-root":{ml:0,mt:"7px"}},toolbarTimeLabel:{position:"absolute",padding:8,fontSize:"0.8rem",left:2,top:-9},toolbarTimeGrid:{position:"relative",marginLeft:8,paddingLeft:8,paddingRight:8,paddingTop:4,paddingBottom:4,border:"1px dotted #AAAAAA",borderRadius:8,display:"flex"},buttonIcon:{width:24,height:24},echartsButton:{marginRight:8,height:34,width:34}},ar=80,Qu=25;class JY extends Te.Component{echartsReact;rangeRef;readTimeout=null;chartValues;rangeValues;subscribes;unit;divRef;chart;timerResize=null;updateTimer=null;minY;maxY;timeTimer=null;maxYLenTimeout=null;mouseDown;start;end;localStorage;constructor(e){if(super(e),this.localStorage=window._localStorage||window.localStorage,this.props.from)this.start=this.props.from;else{const r=new Date;r.setHours(r.getHours()-168),this.start=r.getTime()}this.props.end?this.end=this.props.end:this.end=Date.now();let t=this.localStorage.getItem("App.relativeRange")||"30";const i=parseInt(this.localStorage.getItem("App.absoluteStart"),10)||0,n=parseInt(this.localStorage.getItem("App.absoluteEnd"),10)||0;(!i||!n)&&(!t||t==="absolute")&&(t="30"),n&&i&&(t="absolute"),this.state={historyInstance:this.props.historyInstance||"",historyInstances:null,defaultHistory:"",chartHeight:300,chartWidth:500,windowWidth:window.innerWidth,ampm:!1,relativeRange:t,splitLine:this.localStorage.getItem("App.splitLine")==="true",min:i,max:n,maxYLen:0,stepType:"",echartsJump:!1},this.echartsReact=null,this.rangeRef=Te.createRef(),this.readTimeout=null,this.chartValues=null,this.rangeValues=null,this.subscribes=[],this.unit=this.props.obj.common&&this.props.obj.common.unit?` ${this.props.obj.common.unit}`:"",this.divRef=Te.createRef(),this.chart={}}componentDidMount(){this.props.socket.subscribeState(this.props.obj._id,this.onChange),window.addEventListener("resize",this.onResize),this.prepareData().then(()=>!this.props.noToolbar&&this.readHistoryRange()).then(()=>this.setRelativeInterval(this.state.relativeRange,!0,()=>this.forceUpdate()))}componentWillUnmount(){this.readTimeout&&(clearTimeout(this.readTimeout),this.readTimeout=null),this.timeTimer&&(clearTimeout(this.timeTimer),this.timeTimer=null),this.maxYLenTimeout&&(clearTimeout(this.maxYLenTimeout),this.maxYLenTimeout=null),this.timerResize&&(clearTimeout(this.timerResize),this.timerResize=null),this.updateTimer&&(clearTimeout(this.updateTimer),this.updateTimer=null),this.echartsReact&&this.echartsReact.getEchartsInstance().dispose();for(let e=0;e<this.subscribes.length;e++)this.props.socket.unsubscribeState(this.subscribes[e],this.onChange);this.subscribes=[],this.props.socket.unsubscribeState(this.props.obj._id,this.onChange),window.removeEventListener("resize",this.onResize)}onResize=()=>{this.timerResize&&clearTimeout(this.timerResize),this.timerResize=setTimeout(()=>{this.timerResize=null,this.setState({windowWidth:window.innerWidth}),this.componentDidUpdate()})};onChange=(e,t)=>{if(e===this.props.obj._id&&t&&this.rangeValues&&(!this.rangeValues.length||this.rangeValues[this.rangeValues.length-1].ts<t.ts))(!this.state.max||t.ts-this.state.max<12e4)&&(this.chartValues&&this.chartValues.push({val:t.val,ts:t.ts}),this.rangeValues.push({val:t.val,ts:t.ts}),t.ts>=this.chart.min&&t.ts<=this.chart.max+3e5&&this.updateChart());else if(e.startsWith("system.adapter.")&&e.endsWith(".alive")&&this.state.historyInstances){const i=e.substring(15,e.length-6),n=this.state.historyInstances,r=n.findIndex(o=>o.id===i);if(r!==-1&&n[r].alive!==!!(t!=null&&t.val)){const o=JSON.parse(JSON.stringify(n));o[r].alive=!!(t!=null&&t.val),this.setState({historyInstances:o},()=>{o[r].alive&&this.state.historyInstance===i&&this.readHistoryRange().then(()=>this.updateChart())})}}};async prepareData(){var a,l;if(this.props.noToolbar){const h=this.props.defaultHistory&&await this.props.socket.getState(`system.adapter.${this.props.defaultHistory}.alive`);this.subscribes.length||(this.subscribes=[`system.adapter.${this.props.defaultHistory}.alive`],await this.props.socket.subscribeState(`system.adapter.${this.props.defaultHistory}.alive`,this.onChange)),await new Promise(c=>{this.setState({defaultHistory:this.props.defaultHistory,historyInstance:this.props.defaultHistory,historyInstances:[{id:this.props.defaultHistory,alive:!!(h!=null&&h.val)}]},()=>c(null))});return}let e=await this.getHistoryInstances();const t=await this.props.socket.getCompactSystemConfig();let i=[];this.props.showJumpToEchart&&(i=await this.props.socket.getAdapterInstances("echarts",!0));const n=!!i.find(h=>h._id.startsWith("system.adapter.echarts.")),r=(a=t==null?void 0:t.common)==null?void 0:a.defaultHistory;this.props.obj.common.custom&&(e=e.filter(h=>this.props.obj.common.custom[h.id]));let o=this.localStorage.getItem("App.historyInstance")||"";if((!o||!e.find(h=>h.id===o&&h.alive))&&(o=r),!o||!e.find(h=>h.id===o&&h.alive)){const h=e.find(c=>c.alive);h&&(o=h.id)}!o&&e.length&&(o=r),this.setState({ampm:t.common.dateFormat.includes("/"),historyInstances:e,defaultHistory:r,historyInstance:o,echartsJump:n,stepType:this.props.obj.common.custom&&((l=this.props.obj.common.custom[o])==null?void 0:l.chartStep)||""})}getHistoryInstances(){if(this.props.historyInstance)return Promise.resolve([]);const e=[],t=[];return this.props.customsInstances.forEach(i=>{var r;const n=this.props.objects[`system.adapter.${i}`];if((r=n==null?void 0:n.common)!=null&&r.getHistory){const o={id:i,alive:!1};e.push(o),t.push(`system.adapter.${i}.alive`)}}),t.length?this.props.socket.getForeignStates(t).then(async i=>{Object.keys(i).forEach(n=>{var o;const r=e.find(a=>n.endsWith(`${a.id}.alive`));r&&(r.alive=!!((o=i[n])!=null&&o.val))}),this.subscribes=t;for(let n=0;n<t.length;n++)await this.props.socket.subscribeState(t[n],this.onChange);return e}):Promise.resolve(e)}readHistoryRange(){var i;const e=new Date,t=new Date(2e3,0,1);return(i=this.state.historyInstances)!=null&&i.find(n=>n.id===this.state.historyInstance&&n.alive)?this.props.socket.getHistory(this.props.obj._id,{instance:this.state.historyInstance,start:t.getTime(),end:e.getTime(),limit:1,from:!1,ack:!1,q:!1,addId:!1,aggregate:"none"}).then(n=>{var r;n&&((r=n[0])==null?void 0:r.val)===null&&n.shift(),this.rangeValues=n}):Promise.resolve()}readHistory(e,t){var n;if(!this.state.historyInstance||!((n=this.state.historyInstances)!=null&&n.find(r=>r.id===this.state.historyInstance&&r.alive)))return Promise.resolve([]);const i={instance:this.state.historyInstance,start:e,end:t,from:!1,ack:!1,q:!1,addId:!1,aggregate:"none",returnNewestEntries:!0};return t-e>6e4*24&&!(this.props.obj.common.type==="boolean"||this.props.obj.common.type==="number"&&this.props.obj.common.states)&&(i.aggregate="minmax"),this.props.socket.getHistory(this.props.obj._id,i).then(r=>{const o=[];let a=0;const l=this.rangeValues;let h=null,c=null;for(let u=0;u<r.length;u++){if(l)for(;a<l.length&&l[a].ts<r[u].ts;)o.push(l[a]),a++;!o.length||o[o.length-1].ts<r[u].ts?o.push(r[u]):o[o.length-1].ts===r[u].ts&&o[o.length-1].val!==r[u].ts&&console.error("Strange data!"),(h===null||r[u].val<h)&&(h=r[u].val),(c===null||r[u].val>c)&&(c=r[u].val)}if(l)for(;a<l.length;)o.push(l[a]),console.log(`add range ${new Date(l[a].ts).toISOString()}: ${l[a].val}`),a++;return o.sort((u,d)=>u.ts>d.ts?1:u.ts<d.ts?-1:0),this.chartValues=o,this.minY=h,this.maxY=c,this.minY<10?this.minY=Math.round(this.minY*10)/10:this.minY=Math.ceil(this.minY),this.maxY<10?this.maxY=Math.round(this.maxY*10)/10:this.maxY=Math.ceil(this.maxY),o})}convertData(e){e=e||this.chartValues;const t=[];if(!e.length)return[];for(let i=0;i<e.length;i++){const n={value:[e[i].ts,e[i].val]};e[i].i&&(n.exact=!1),t.push(n)}return this.chart.min||(this.chart.min=e[0].ts,this.chart.max=e[e.length-1].ts),t}getOption(){let e;if(this.minY!==null&&this.minY!==void 0&&(e=(this.minY.toString()+this.unit).length*9+12),this.maxY!==null&&this.maxY!==void 0){const r=(this.maxY.toString()+this.unit).length*9+12;r>e&&(e=r)}if(this.state.maxYLen){const r=this.state.maxYLen*9+12;r>e&&(e=r)}const t={xAxisIndex:0,type:"line",step:this.state.stepType==="stepStart"?"end":this.state.stepType==="stepMiddle"?"middle":this.state.stepType==="stepEnd"?"start":void 0,showSymbol:!1,hoverAnimation:!0,animation:!1,data:this.convertData(),lineStyle:{color:"#4dabf5"},areaStyle:{}},i={type:"value",boundaryGap:[0,"100%"],splitLine:{show:this.props.noToolbar||!!this.state.splitLine},splitNumber:Math.round(this.state.chartHeight/50),axisLabel:{formatter:r=>{let o;return this.props.isFloatComma?o=r.toString().replace(",",".")+this.unit:o=r+this.unit,this.state.maxYLen<o.length&&(this.maxYLenTimeout&&clearTimeout(this.maxYLenTimeout),this.maxYLenTimeout=setTimeout(a=>{this.maxYLenTimeout=null,this.setState({maxYLen:a})},200,o.length)),o},showMaxLabel:!0,showMinLabel:!0},axisTick:{alignWithLabel:!0}};if(this.props.obj.common.type==="boolean")t.step="end",i.axisLabel.showMaxLabel=!1,i.axisLabel.formatter=r=>r===1?"TRUE":"FALSE",i.max=1.5,i.interval=1,e=50;else if(this.props.obj.common.type==="number"&&this.props.obj.common.states){t.step="end",i.axisLabel.showMaxLabel=!1;const r=this.props.obj.common.states;i.axisLabel.formatter=l=>r[l]!==void 0?r[l]:l;const o=Object.keys(this.props.obj.common.states);o.sort(),i.max=parseFloat(o[o.length-1])+.5,i.interval=1;let a="";for(let l=0;l<o.length;l++)typeof r[o[l]]=="string"&&r[o[l]].length>a.length&&(a=r[o[l]]);e=(a.length*9||50)+12}const n=this.chart.withSeconds?Math.round((this.state.chartWidth-Qu-ar)/100):Math.round((this.state.chartWidth-Qu-ar)/60);return{backgroundColor:"transparent",title:{text:this.props.noToolbar?"":ee.Utils.getObjectNameFromObj(this.props.obj,this.props.lang),padding:[10,0,0,e?e+10:ar+10]},grid:{left:e||ar,top:8,right:this.props.noToolbar?5:Qu,bottom:40},tooltip:{trigger:"axis",formatter:r=>{const o=r[0],a=new Date(o.value[0]);let l=o.value[1];return l!==null&&this.props.isFloatComma&&(l=l.toString().replace(".",",")),`${o.exact===!1?"i":""}${a.toLocaleString()}.${a.getMilliseconds().toString().padStart(3,"0")}: ${l}${this.unit}`},axisPointer:{animation:!0}},xAxis:{splitLine:{show:!1},splitNumber:n,min:this.chart.min,max:this.chart.max,axisTick:{alignWithLabel:!0},axisLabel:{formatter:r=>{const o=new Date(r);return this.chart.withSeconds?`${o.getHours().toString().padStart(2,"0")}:${o.getMinutes().toString().padStart(2,"0")}:${o.getSeconds().toString().padStart(2,"0")}`:this.chart.withTime?`${o.getHours().toString().padStart(2,"0")}:${o.getMinutes().toString().padStart(2,"0")}
|
|
38
38
|
${o.getDate().toString().padStart(2,"0")}.${(o.getMonth()+1).toString().padStart(2,"0")}`:`${o.getDate().toString().padStart(2,"0")}.${(o.getMonth()+1).toString().padStart(2,"0")}
|
|
39
|
-
${o.getFullYear()}`}}},yAxis:i,toolbox:{left:"right",feature:this.props.noToolbar?void 0:{saveAsImage:{title:this.props.t("Save as image"),show:!0}}},series:[t]}}static getDerivedStateFromProps(e,t){return null}updateChart(e,t,i,n){e&&(this.start=e),t&&(this.end=t),e=e||this.start,t=t||this.end,this.readTimeout&&clearTimeout(this.readTimeout),this.readTimeout=setTimeout(()=>{var o;this.readTimeout=null;const r=this.chart.max-this.chart.min;r!==this.chart.diff&&(this.chart.diff=r,this.chart.withTime=this.chart.diff<36e5*24*7,this.chart.withSeconds=this.chart.diff<6e4*30),i?this.readHistory(e,t).then(a=>{var l;typeof((l=this.echartsReact)==null?void 0:l.getEchartsInstance)=="function"&&this.echartsReact.getEchartsInstance().setOption({series:[{data:this.convertData(a)}],xAxis:{min:this.chart.min,max:this.chart.max}}),n&&n()}):(typeof((o=this.echartsReact)==null?void 0:o.getEchartsInstance)=="function"&&this.echartsReact.getEchartsInstance().setOption({series:[{data:this.convertData()}],xAxis:{min:this.chart.min,max:this.chart.max}}),n&&n())},400)}setNewRange(e){var t;this.chart.diff=this.chart.max-this.chart.min,this.chart.withTime=this.chart.diff<36e5*24*7,this.chart.withSeconds=this.chart.diff<6e4*30,this.state.relativeRange!=="absolute"?(this.setState({relativeRange:"absolute"}),this.timeTimer&&(clearTimeout(this.timeTimer),this.timeTimer=null)):typeof((t=this.echartsReact)==null?void 0:t.getEchartsInstance)=="function"&&(this.echartsReact.getEchartsInstance().setOption({xAxis:{min:this.chart.min,max:this.chart.max}}),e&&this.updateChart(this.chart.min,this.chart.max,!0))}shiftTime(){const e=new Date,t=6e4-e.getSeconds()-(1e3-e.getMilliseconds());e.getMilliseconds()&&e.setMilliseconds(1e3),e.getSeconds()&&e.setSeconds(60);const i=e.getTime();let n;const r=this.state.relativeRange;if(r==="day")e.setHours(0),e.setMinutes(0),e.setSeconds(0),n=e.getTime();else if(r==="week"){e.setHours(0),e.setMinutes(0),e.setSeconds(0);const o=e.getDay()||7;o!==1&&e.setHours(-24*(o-1)),n=e.getTime()}else if(r==="2weeks"){e.setHours(0),e.setMinutes(0),e.setSeconds(0),e.setDate(e.getDate()-7);const o=e.getDay()||7;o!==1&&e.setHours(-24*(o-1)),n=e.getTime()}else r==="month"?(e.setHours(0),e.setMinutes(0),e.setSeconds(0),e.setDate(1),n=e.getTime()):r==="year"?(e.setHours(0),e.setMinutes(0),e.setSeconds(0),e.setDate(1),e.setMonth(0),n=e.getTime()):r==="12months"?(e.setHours(0),e.setMinutes(0),e.setSeconds(0),e.setFullYear(e.getFullYear()-1),n=e.getTime()):n=i-parseInt(r,10)*6e4;this.chart.min=n,this.chart.max=i,this.setState({min:n,max:i},()=>this.updateChart(this.chart.min,this.chart.max,!0)),this.timeTimer=setTimeout(()=>{this.timeTimer=null,this.shiftTime()},t||6e4)}setRelativeInterval(e,t,i){if(t||(this.localStorage.setItem("App.relativeRange",e),this.setState({relativeRange:e})),e==="absolute"){this.timeTimer&&(clearTimeout(this.timeTimer),this.timeTimer=null),this.updateChart(this.chart.min,this.chart.max,!0,i);return}this.localStorage.removeItem("App.absoluteStart"),this.localStorage.removeItem("App.absoluteEnd");const n=new Date;if(!this.timeTimer){const r=6e4-n.getSeconds()-(1e3-n.getMilliseconds());this.timeTimer=setTimeout(()=>{this.timeTimer=null,this.shiftTime()},r||6e4)}if(n.getMilliseconds()&&n.setMilliseconds(1e3),n.getSeconds()&&n.setSeconds(60),this.chart.max=n.getTime(),e==="day")n.setHours(0),n.setMinutes(0),n.setSeconds(0),this.chart.min=n.getTime();else if(e==="week"){n.setHours(0),n.setMinutes(0),n.setSeconds(0);const r=n.getDay()||7;r!==1&&n.setHours(-24*(r-1)),this.chart.min=n.getTime()}else if(e==="2weeks"){n.setHours(0),n.setMinutes(0),n.setSeconds(0),n.setDate(n.getDate()-7);const r=n.getDay()||7;r!==1&&n.setHours(-24*(r-1)),this.chart.min=n.getTime()}else e==="month"?(n.setHours(0),n.setMinutes(0),n.setSeconds(0),n.setDate(1),this.chart.min=n.getTime()):e==="year"?(n.setHours(0),n.setMinutes(0),n.setSeconds(0),n.setDate(1),n.setMonth(0),this.chart.min=n.getTime()):e==="12months"?(n.setHours(0),n.setMinutes(0),n.setSeconds(0),n.setFullYear(n.getFullYear()-1),this.chart.min=n.getTime()):this.chart.min=this.chart.max-parseInt(e,10)*6e4;this.setState({min:this.chart.min,max:this.chart.max},()=>this.updateChart(this.chart.min,this.chart.max,!0,i))}installEventHandlers(){if(!this.echartsReact||typeof this.echartsReact.getEchartsInstance!="function")return;const e=this.echartsReact.getEchartsInstance().getZr();e._iobInstalled||(e._iobInstalled=!0,e.on("mousedown",t=>{console.log("mouse down"),this.mouseDown=!0,this.chart.lastX=t.offsetX}),e.on("mouseup",()=>{console.log("mouse up"),this.mouseDown=!1,this.setNewRange(!0)}),e.on("mousewheel",t=>{let i=this.chart.max-this.chart.min;const n=this.state.chartWidth-Qu-ar,o=(t.offsetX-ar)/n,a=i,l=t.wheelDelta>0?1.1:.9;i*=l;const h=a-i;this.chart.max+=h*(1-o),this.chart.min-=h*o,this.setNewRange()}),e.on("mousemove",t=>{if(this.mouseDown){const i=this.chart.lastX-(t.offsetX-ar);this.chart.lastX=t.offsetX-ar;const n=this.chart.max-this.chart.min,r=this.state.chartWidth-Qu-ar,o=Math.round(i*n/r);this.chart.min+=o,this.chart.max+=o,this.setNewRange()}}),e.on("touchstart",t=>{t.preventDefault(),this.mouseDown=!0;const i=t.touches||t.originalEvent.touches;i&&(this.chart.lastX=i[i.length-1].pageX,i.length>1?this.chart.lastWidth=Math.abs(i[0].pageX-i[1].pageX):this.chart.lastWidth=null)}),e.on("touchend",t=>{t.preventDefault(),this.mouseDown=!1,this.setNewRange(!0)}),e.on("touchmove",t=>{t.preventDefault();const i=t.touches||t.originalEvent.touches;if(!i)return;const n=i[i.length-1].pageX-ar;if(this.mouseDown)if(i.length>1){const r=Math.abs(i[0].pageX-i[1].pageX);if(this.chart.lastWidth!==null&&r!==this.chart.lastWidth){let o=this.chart.max-this.chart.min;const a=this.state.chartWidth-Qu-ar,l=r>this.chart.lastWidth?1.1:.9,c=(i[0].pageX>i[1].pageX?i[1].pageX-ar+r/2:i[0].pageX-ar+r/2)/a,u=o;o*=l;const d=u-o;this.chart.max+=d*(1-c),this.chart.min-=d*c,this.setNewRange()}this.chart.lastWidth=r}else{const r=this.chart.lastX-n,o=this.chart.max-this.chart.min,a=this.state.chartWidth-Qu-ar,l=Math.round(r*o/a);this.chart.min+=l,this.chart.max+=l,this.setNewRange()}this.chart.lastX=n}))}renderChart(){var e;return this.state.historyInstance?(e=this.state.historyInstances)!=null&&e.find(t=>t.id===this.state.historyInstance&&t.alive)?this.chartValues?L.jsx(nne,{ref:t=>this.echartsReact=t,echarts:Lde,option:this.getOption(),notMerge:!0,lazyUpdate:!0,theme:this.props.themeType==="dark"?"dark":"",style:{height:`${this.state.chartHeight}px`,width:"100%"},opts:{renderer:"svg"},onEvents:{rendered:()=>this.installEventHandlers()}}):L.jsx(E.LinearProgress,{}):L.jsx("div",{style:{marginTop:20,fontSize:24,marginLeft:24},children:this.props.t("History instance not alive")}):L.jsx("div",{style:{marginTop:20,fontSize:24,marginLeft:24},children:this.props.t("History instance not selected")})}componentDidUpdate(){if(this.divRef.current){const e=this.divRef.current.offsetWidth,t=this.divRef.current.offsetHeight;this.state.chartHeight!==t&&(this.updateTimer&&clearTimeout(this.updateTimer),this.updateTimer=setTimeout(()=>{this.updateTimer=null,this.setState({chartHeight:t,chartWidth:e})},100))}}setStartDate(e){const t=e.getTime();this.timeTimer&&(clearTimeout(this.timeTimer),this.timeTimer=null),this.localStorage.setItem("App.relativeRange","absolute"),this.localStorage.setItem("App.absoluteStart",t.toString()),this.localStorage.setItem("App.absoluteEnd",this.state.max.toString()),this.chart.min=t,this.setState({min:t,relativeRange:"absolute"},()=>this.updateChart(this.chart.min,this.chart.max,!0))}setEndDate(e){const t=e.getTime();this.localStorage.setItem("App.relativeRange","absolute"),this.localStorage.setItem("App.absoluteStart",this.state.min.toString()),this.localStorage.setItem("App.absoluteEnd",t.toString()),this.timeTimer&&(clearTimeout(this.timeTimer),this.timeTimer=null),this.chart.max=t,this.setState({max:t,relativeRange:"absolute"},()=>this.updateChart(this.chart.min,this.chart.max,!0))}openEcharts(){const e=[`id=${window.encodeURIComponent(this.props.obj._id)}`,`instance=${window.encodeURIComponent(this.state.historyInstance)}`,"menuOpened=false"];this.state.relativeRange==="absolute"?(e.push(`start=${this.chart.min}`),e.push(`end=${this.chart.max}`)):e.push(`range=${this.state.relativeRange}`),window.open(`${window.location.protocol}//${window.location.host}/adapter/echarts/tab.html#${e.join("&")}`,"echarts")}async onStepChanged(e){const t=await this.props.socket.getObject(this.props.obj._id);t.common.custom&&t.common.custom[this.state.historyInstance]&&t.common.custom[this.state.historyInstance].chartStep!==e&&(t.common.custom[this.state.historyInstance].chartStep=e,await this.props.socket.setObject(t._id,t)),this.setState({stepType:e,showStepMenu:null})}renderToolbar(){if(this.props.noToolbar)return null;const e=this.state.windowWidth<960;return L.jsxs(E.Toolbar,{children:[!this.props.historyInstance&&L.jsxs(E.FormControl,{variant:"standard",style:on.selectHistoryControl,children:[L.jsx(E.InputLabel,{children:this.props.t("History instance")}),L.jsx(E.Select,{variant:"standard",value:this.state.historyInstance,onChange:t=>{this.localStorage.setItem("App.historyInstance",t.target.value),this.setState({historyInstance:t.target.value})},children:this.state.historyInstances.map(t=>L.jsx(E.MenuItem,{value:t.id,style:t.alive?void 0:on.notAliveInstance,children:t.id},t.id))})]}),L.jsxs(E.FormControl,{variant:"standard",style:on.selectRelativeTime,children:[L.jsx(E.InputLabel,{children:this.props.t("Relative")}),L.jsxs(E.Select,{variant:"standard",ref:this.rangeRef,value:this.state.relativeRange,onChange:t=>this.setRelativeInterval(t.target.value),children:[L.jsx(E.MenuItem,{value:"absolute",sx:on.customRange,children:this.props.t("custom range")},"custom"),L.jsx(E.MenuItem,{value:10,children:this.props.t("last 10 minutes")},"1"),L.jsx(E.MenuItem,{value:30,children:this.props.t("last 30 minutes")},"2"),L.jsx(E.MenuItem,{value:60,children:this.props.t("last hour")},"3"),L.jsx(E.MenuItem,{value:"day",children:this.props.t("this day")},"4"),L.jsx(E.MenuItem,{value:1440,children:this.props.t("last 24 hours")},"5"),L.jsx(E.MenuItem,{value:"week",children:this.props.t("this week")},"6"),L.jsx(E.MenuItem,{value:1440*7,children:this.props.t("last week")},"7"),L.jsx(E.MenuItem,{value:"2weeks",children:this.props.t("this 2 weeks")},"8"),L.jsx(E.MenuItem,{value:1440*14,children:this.props.t("last 2 weeks")},"9"),L.jsx(E.MenuItem,{value:"month",children:this.props.t("this month")},"10"),L.jsx(E.MenuItem,{value:720*60,children:this.props.t("last 30 days")},"11"),L.jsx(E.MenuItem,{value:"year",children:this.props.t("this year")},"12"),L.jsx(E.MenuItem,{value:"12months",children:this.props.t("last 12 months")},"13")]})]}),L.jsxs(_s.LocalizationProvider,{dateAdapter:dS,adapterLocale:gS[this.props.lang],children:[L.jsxs("div",{style:on.toolbarTimeGrid,children:[L.jsx("div",{style:{...on.toolbarTimeLabel,opacity:this.state.relativeRange!=="absolute"?.5:void 0},children:this.props.t("Start time")}),L.jsx(_s.DatePicker,{sx:on.toolbarDate,disabled:this.state.relativeRange!=="absolute",value:new Date(this.state.min),onChange:t=>this.setStartDate(t)}),L.jsx(_s.TimePicker,{disabled:this.state.relativeRange!=="absolute",sx:on.toolbarTime,ampm:this.state.ampm,value:new Date(this.state.min),onChange:t=>this.setStartDate(t)})]}),L.jsxs("div",{style:on.toolbarTimeGrid,children:[L.jsx("div",{style:{...on.toolbarTimeLabel,opacity:this.state.relativeRange!=="absolute"?.5:void 0},children:this.props.t("End time")}),L.jsx(_s.DatePicker,{disabled:this.state.relativeRange!=="absolute",sx:on.toolbarDate,value:new Date(this.state.max),onChange:t=>this.setEndDate(t)}),L.jsx(_s.TimePicker,{disabled:this.state.relativeRange!=="absolute",sx:on.toolbarTime,ampm:this.state.ampm,value:new Date(this.state.max),onChange:t=>this.setEndDate(t)})]})]}),L.jsx("div",{style:on.grow}),L.jsx(E.Button,{style:{marginRight:10},variant:"outlined",onClick:t=>this.setState({showStepMenu:t.target}),children:e?this.state.stepType===""?L.jsx(Ie.Remove,{}):this.state.stepType==="stepStart"?L.jsx(Ie.KeyboardArrowRight,{}):this.state.stepType==="stepMiddle"?L.jsx(Ie.MoreHoriz,{}):this.state.stepType==="stepEnd"?L.jsx(Ie.KeyboardArrowLeft,{}):this.props.t("Step type"):this.state.stepType?this.props.t(this.state.stepType):this.props.t("Step type")}),this.state.showStepMenu?L.jsxs(E.Menu,{open:!0,anchorEl:this.state.showStepMenu,onClose:()=>this.setState({showStepMenu:null}),children:[L.jsx(E.MenuItem,{selected:this.state.stepType==="",onClick:()=>this.onStepChanged(""),children:e?L.jsx(Ie.Remove,{}):this.props.t("None")}),L.jsx(E.MenuItem,{selected:this.state.stepType==="stepStart",onClick:()=>this.onStepChanged("stepStart"),children:e?L.jsx(Ie.KeyboardArrowRight,{}):this.props.t("stepStart")}),L.jsx(E.MenuItem,{selected:this.state.stepType==="stepMiddle",onClick:()=>this.onStepChanged("stepMiddle"),children:e?L.jsx(Ie.MoreHoriz,{}):this.props.t("stepMiddle")}),L.jsx(E.MenuItem,{selected:this.state.stepType==="stepEnd",onClick:()=>this.onStepChanged("stepEnd"),children:e?L.jsx(Ie.KeyboardArrowLeft,{}):this.props.t("stepEnd")})]}):null,this.props.showJumpToEchart&&this.state.echartsJump&&L.jsx(E.Fab,{style:on.echartsButton,size:"small",onClick:()=>this.openEcharts(),title:this.props.t("Open charts in new window"),children:L.jsx("img",{src:Ime,alt:"echarts",style:on.buttonIcon})}),L.jsxs(E.Fab,{variant:"extended",size:"small",color:this.state.splitLine?"primary":"default","aria-label":"show lines",onClick:()=>{this.localStorage.setItem("App.splitLine",this.state.splitLine?"false":"true"),this.setState({splitLine:!this.state.splitLine})},children:[L.jsx(yie,{style:on.splitLineButtonIcon}),this.props.t("Show lines")]})]})}render(){return!this.state.historyInstances&&!this.state.defaultHistory?L.jsx(E.LinearProgress,{}):L.jsxs(E.Paper,{style:on.paper,children:[this.renderToolbar(),L.jsx("div",{ref:this.divRef,style:ee.Utils.getStyle(this.props.theme,on.chart,this.props.noToolbar?on.chartWithoutToolbar:on.chartWithToolbar),children:this.renderChart()})]})}}const Pa={dialog:{height:"100%"},paper:{height:"calc(100% - 64px)"},content:{textAlign:"center",overflow:"hidden"},tabPanel:s=>({width:"100%",overflow:"hidden",height:`calc(100% - ${s.mixins.toolbar.minHeight}px)`}),tabSelected:s=>({color:s.palette.mode==="dark"?s.palette.secondary.contrastText:"#FFFFFF !important"}),tabsIndicator:s=>({backgroundColor:s.palette.secondary.main})};class Eme extends F7{chartAvailable;saveFunc=null;constructor(e){super(e);let t=parseInt((window._localStorage||window.localStorage).getItem("App.objectCustomTab")||"0",10);if(this.chartAvailable=this.isChartAvailable(),this.chartAvailable){const i=ee.Router.getLocation();i.arg==="chart"?t=2:i.arg==="table"&&(t=1)}else t=0;this.state={hasChanges:!1,currentTab:t,confirmDialog:!1,mobile:F7.isMobile(),progressRunning:!1,showWarning:this.props.allVisibleObjects}}isChartAvailable(){var t,i;let e=this.props.objectIDs.length===1;if(e){const n=this.props.objectIDs[0];(i=(t=this.props.objects[n])==null?void 0:t.common)!=null&&i.custom?e=!!Object.keys(this.props.objects[n].common.custom).find(r=>{const o=this.props.objects[`system.adapter.${r}`];return o&&o.common&&o.common.getHistory}):e=!1}return e}renderCharts(){return L.jsx(JY,{isFloatComma:this.props.isFloatComma,showJumpToEchart:!0,t:this.props.t,lang:this.props.lang,socket:this.props.socket,obj:this.props.objects[this.props.objectIDs[0]],customsInstances:this.props.customsInstances,themeType:this.props.themeType,theme:this.props.theme,objects:this.props.objects})}renderTable(){return L.jsx(pS,{t:this.props.t,isFloatComma:this.props.isFloatComma,lang:this.props.lang,expertMode:this.props.expertMode,socket:this.props.socket,obj:this.props.objects[this.props.objectIDs[0]],customsInstances:this.props.customsInstances,objects:this.props.objects})}renderCustomEditor(){return L.jsx(fS,{registerSaveFunc:e=>this.saveFunc=e,t:this.props.t,lang:this.props.lang,socket:this.props.socket,objectIDs:this.props.objectIDs,customsInstances:this.props.customsInstances,objects:this.props.objects,onProgress:e=>this.setState({progressRunning:e}),reportChangedIds:this.props.reportChangedIds,onChange:(e,t)=>{this.setState({hasChanges:e},()=>{if(t){const i=this.isChartAvailable();i!==this.chartAvailable&&(this.chartAvailable=i,this.forceUpdate())}})},theme:this.props.theme,themeName:this.props.themeName,themeType:this.props.themeType,systemConfig:this.props.systemConfig})}renderDialogConfirm(){return this.state.confirmDialog?L.jsx(ee.DialogConfirm,{title:ee.I18n.t("You have unsaved changes"),text:ee.I18n.t("Discard?"),ok:ee.I18n.t("Yes"),cancel:ee.I18n.t("Cancel"),onClose:e=>this.setState({confirmDialog:!1},()=>e&&this.props.onClose())}):null}onClose(){this.state.hasChanges?this.setState({confirmDialog:!0}):this.props.onClose()}renderWarningDialog(){return this.state.showWarning?L.jsx(ee.DialogConfirm,{text:L.jsx("div",{style:{color:"#F00"},children:this.props.t("Your are intend to edit ALL objects. Are you sure?")}),ok:this.props.t("Yes"),onClose:e=>{this.setState({showWarning:!1}),e||this.onClose()}}):null}render(){var t,i;const e=(i=(t=this.props.objects[this.props.objectIDs[0]])==null?void 0:t.common)==null?void 0:i.type;return L.jsxs(E.Dialog,{sx:{"&.MuiDialog-scrollPaper":Pa.dialog,"& .MuiDialog-paper":Pa.paper},scroll:"paper",open:!0,onClose:()=>this.props.onClose(),fullWidth:!0,maxWidth:"xl","aria-labelledby":"form-dialog-title",children:[this.renderDialogConfirm(),this.renderWarningDialog(),L.jsx(E.DialogTitle,{children:this.props.objectIDs.length>1?this.props.t("Edit config for %s states",this.props.objectIDs.length):this.props.t("Edit config: %s",this.props.objectIDs[0])}),L.jsxs(E.DialogContent,{style:Pa.content,children:[L.jsx(E.AppBar,{position:"static",children:L.jsxs(E.Tabs,{value:this.state.currentTab,onChange:(n,r)=>{ee.Router.doNavigate(null,null,null,r===1?"table":r===2?"chart":"config"),this.setState({currentTab:r}),(window._localStorage||window.localStorage).setItem("App.objectCustomTab",r)},sx:{"& .MuiTabs-indicator":Pa.tabsIndicator},indicatorColor:"secondary",children:[L.jsx(E.Tab,{disabled:this.state.progressRunning,label:this.props.t("Custom settings"),id:"custom-settings-tab","aria-controls":"custom-tabpanel-settings",sx:{"&.Mui-selected":Pa.tabSelected}}),this.props.objectIDs.length===1&&this.chartAvailable?L.jsx(E.Tab,{disabled:this.state.progressRunning,label:this.props.t("History data"),id:"history-data-tab","aria-controls":"custom-tabpanel-history",sx:{"&.Mui-selected":Pa.tabSelected}}):null,(e==="number"||e==="boolean")&&this.props.objectIDs.length===1&&this.chartAvailable?L.jsx(E.Tab,{disabled:this.state.progressRunning,label:this.props.t("Chart"),id:"chart-tab","aria-controls":"custom-tabpanel-chart",sx:{"&.Mui-selected":Pa.tabSelected}}):null]})}),this.state.currentTab===0?L.jsx(E.Box,{component:"div",sx:Pa.tabPanel,children:this.renderCustomEditor()}):null,this.props.objectIDs.length===1&&this.chartAvailable&&this.state.currentTab===1?L.jsx(E.Box,{component:"div",sx:Pa.tabPanel,children:this.renderTable()}):null,(e==="number"||e==="boolean")&&this.props.objectIDs.length===1&&this.chartAvailable&&this.state.currentTab===2?L.jsx(E.Box,{component:"div",sx:Pa.tabPanel,children:this.renderCharts()}):null]}),L.jsxs(E.DialogActions,{children:[this.state.currentTab===0&&L.jsx(E.Button,{id:"object-custom-dialog-save",variant:"contained",color:"primary",disabled:!this.state.hasChanges||this.state.progressRunning,onClick:()=>this.saveFunc&&this.saveFunc(),children:this.getButtonTitle(L.jsx(Ie.Save,{}),this.props.t("Save"))}),this.state.currentTab===0&&L.jsx(E.Button,{id:"object-custom-dialog-save-close",variant:"contained",color:"primary",disabled:!this.state.hasChanges||this.state.progressRunning,onClick:()=>{this.saveFunc?this.saveFunc(n=>!n&&this.onClose()):this.onClose()},children:this.getButtonTitle(L.jsx(Ie.Save,{}),this.props.t("Save & close"),L.jsx(Ie.Close,{}))}),L.jsx(E.Button,{id:"object-custom-dialog-close",disabled:this.state.progressRunning,variant:"contained",onClick:()=>this.onClose(),color:"grey",children:this.getButtonTitle(L.jsx(Ie.Close,{}),this.props.t("Close"))})]})]})}}const Br={formControl:{minWidth:100},quality:{width:"calc(100% - 88px)"},expire:{ml:1,width:80},readOnly:{backgroundColor:"#b74848"},readOnlyText:{color:"#b74848",marginLeft:8},wrapperButton:{"@media screen and (max-width: 465px)":{"& *":{fontSize:12}},"@media screen and (max-width: 380px)":{"& *":{fontSize:11}}},ackCheckbox:{marginLeft:4},dialog:{minHeight:window.clientHeight-50>500?500:window.clientHeight-50},tooltip:{pointerEvents:"none"}};class Ep extends Te.Component{propsValue;chartFrom;ack;inputRef=uS.createRef();q;expire;constructor(e){super(e);let t=this.props.type;t||(t=typeof this.props.value);let i=this.props.value;if(this.propsValue=i,this.propsValue===null?this.propsValue="null":this.propsValue===void 0&&(this.propsValue="undefined"),this.props.states)t="states";else if(t==="string"||t==="json"){if(i&&typeof i=="string"&&(i.startsWith("[")&&i.endsWith("]")||i.startsWith("{")&&i.endsWith("}")))try{i=JSON.parse(i),i=JSON.stringify(i,null,2),this.propsValue=i,t="json"}catch{}}else t==="number"&&(i=parseFloat(this.propsValue)||0);this.state={type:t,chart:!1,chartEnabled:(window._localStorage||window.localStorage).getItem("App.chartSetValue")!=="false",fullScreen:(window._localStorage||window.localStorage).getItem("App.fullScreen")==="true",targetValue:i,valid:!0,jsonError:!1,writing:!1},this.ack=!1,this.q=0,this.expire=0,this.inputRef=uS.createRef(),this.chartFrom=Date.now()-36e5*2}componentDidMount(){var e,t,i;this.props.defaultHistory&&((t=(e=this.props.object)==null?void 0:e.common)!=null&&t.custom)&&((i=this.props.object.common.custom[this.props.defaultHistory])!=null&&i.enabled)&&this.props.socket.getState(`system.adapter.${this.props.defaultHistory}.alive`).then(n=>this.setState({chart:!!(n!=null&&n.val)})),setTimeout(()=>{var n;if((n=this.inputRef)!=null&&n.current){const r=this.inputRef.current,o=r.value||"",a=r.type;r.type==="number"&&(r.type="text"),r.setSelectionRange(0,o.length),a==="number"&&(r.type=a)}},200)}onUpdate(e){if(e&&(e.stopPropagation(),e.preventDefault()),this.state.writing)return;let t=this.state.targetValue;if(this.state.type==="states")if(t==="null")t=null;else{const i=this.props.type||typeof this.state.targetValue;t=typeof t=="object"?t.value:t,i==="number"?typeof t=="string"&&(t=parseFloat(t.replace(",","."))||0):i==="boolean"&&(t=t===!0||t===1||t==="1"||String(t).trim().toLowerCase()==="true"||String(t).trim().toLowerCase()==="on"||String(t).trim().toLowerCase()==="yes")}else this.state.type==="number"?t==="null"?t=null:typeof t=="string"&&(t=parseFloat(t.replace(",","."))||0):this.state.type==="boolean"&&(t==="null"?t=null:t=t===!0||t===1||t==="1"||String(t).trim().toLowerCase()==="true"||String(t).trim().toLowerCase()==="on"||String(t).trim().toLowerCase()==="yes");this.setState({writing:!0}),this.props.socket.setState(this.props.object._id,{val:t,ack:this.ack,q:this.q,expire:parseInt(this.expire,10)||void 0}).then(()=>this.props.onClose()).catch(i=>{this.setState({writing:!1}),window.alert(`Cannot write state "${this.props.object._id}": ${i}`)})}static isNumberValid(e){const{common:t,value:i}=e;if(i==="")return!1;const n=Number(i);return typeof t.min=="number"&&n<t.min?!1:!(typeof t.max=="number"&&n>t.max)}renderTimePicker(){return L.jsxs(_s.LocalizationProvider,{adapterLocale:gS[this.props.lang],dateAdapter:dS,children:[L.jsx(_s.DatePicker,{value:Number(this.state.targetValue),onChange:e=>{e&&this.setState({targetValue:Math.round(e.getTime())})}}),L.jsx(_s.TimePicker,{value:Number(this.state.targetValue),views:["hours","minutes","seconds"],onChange:e=>{e&&this.setState({targetValue:Math.round(e.getTime())})}})]})}renderChart(){return L.jsx(JY,{t:this.props.t,isFloatComma:this.props.isFloatComma,showJumpToEchart:!1,lang:this.props.lang,socket:this.props.socket,obj:this.props.object,themeType:this.props.themeType,theme:this.props.theme,from:this.chartFrom,end:Date.now(),noToolbar:!0,defaultHistory:this.props.defaultHistory,customsInstances:[],objects:void 0,historyInstance:""})}static checkJsonError(e){try{return JSON.parse(e),!1}catch{return!0}}renderJsonEditor(){return L.jsx(f$,{error:this.state.jsonError,editValueMode:!0,themeType:this.props.themeType,defaultValue:(this.propsValue||"").toString(),onChange:e=>this.setState({targetValue:e,jsonError:Ep.checkJsonError(e)})})}renderStates(){if(!this.props.states)return null;if(this.props.type==="number"&&this.props.object.common.max!==void 0&&this.props.object.common.min!==void 0){const e=Object.keys(this.props.states).map(t=>({label:this.props.states[t],value:t}));return L.jsx(E.Autocomplete,{style:Br.formControl,disablePortal:!0,defaultValue:this.props.states[this.propsValue]!==void 0?this.props.states[this.propsValue]:this.propsValue,options:e,noOptionsText:"",freeSolo:!0,getOptionLabel:t=>(t==null?void 0:t.label)||(t!=null?t.toString():""),onChange:(t,i)=>this.setState({targetValue:i}),onInputChange:(t,i)=>this.setState({targetValue:i}),onKeyUp:t=>t.key==="Enter"&&this.onUpdate(t),renderInput:t=>L.jsx(E.TextField,{...t,label:this.props.t("Value"),variant:"standard"})})}return L.jsxs(E.FormControl,{variant:"standard",style:Br.formControl,children:[L.jsx(E.InputLabel,{children:this.props.t("Value")}),L.jsx(E.Select,{variant:"standard",defaultValue:this.propsValue,onChange:e=>this.setState({targetValue:e.target.value}),children:Object.keys(this.props.states).map((e,t)=>L.jsx(E.MenuItem,{value:e,children:this.props.states[e]},t))})]})}render(){var t,i,n;const e=L.jsxs("div",{style:{display:"flex",alignItems:"center"},children:[L.jsx(E.FormControlLabel,{style:{...Br.formControl,...this.props.expertMode?void 0:Br.ackCheckbox},control:L.jsx(E.Checkbox,{defaultChecked:!1,onChange:r=>this.ack=r.target.checked}),label:this.props.t("Acknowledged")}),L.jsx(E.Tooltip,{title:this.props.t("Acknowledged explanation"),slotProps:{popper:{sx:Br.tooltip}},children:L.jsx(Ie.Info,{color:"primary"})})]});return L.jsxs(E.Dialog,{open:!0,maxWidth:this.state.type==="number"||this.state.type==="boolean"||this.state.type==="states"?this.state.chart&&this.state.chartEnabled?"lg":void 0:"md",fullWidth:this.state.type==="json"&&this.state.fullScreen||this.state.type!=="number"&&this.state.type!=="boolean"&&this.state.type!=="states"||this.state.chart&&this.state.chartEnabled,fullScreen:this.state.type==="json"&&this.state.fullScreen,onClose:()=>this.props.onClose(),"aria-labelledby":"edit-value-dialog-title","aria-describedby":"edit-value-dialog-description",sx:{"&. MuiDialog-paper":this.state.type==="json"?Br.dialog:void 0},children:[L.jsxs(E.DialogTitle,{id:"edit-value-dialog-title",children:[this.props.t("Write value"),((t=this.props.object.common)==null?void 0:t.write)===!1?L.jsxs("span",{style:Br.readOnlyText,children:["(",this.props.t("read only"),")"]}):null,this.state.chart?L.jsx(E.Fab,{style:{float:"right"},size:"small",color:this.state.chartEnabled?"primary":"default",onClick:()=>{(window._localStorage||window.localStorage).setItem("App.chartSetValue",this.state.chartEnabled?"false":"true"),this.setState({chartEnabled:!this.state.chartEnabled})},children:L.jsx(Ie.ShowChart,{})}):null,this.state.type==="json"?L.jsx(E.IconButton,{style:{float:"right"},onClick:()=>{(window._localStorage||window.localStorage).setItem("App.fullScreen",this.state.fullScreen?"false":"true"),this.setState({fullScreen:!this.state.fullScreen})},children:this.state.fullScreen?L.jsx(Ie.FullscreenExit,{}):L.jsx(Ie.Fullscreen,{})}):null]}),L.jsx(E.DialogContent,{children:L.jsx("form",{noValidate:!0,autoComplete:"off",onSubmit:()=>!1,style:{...Br.dialogForm,height:"100%"},children:L.jsxs(E.Grid2,{container:!0,direction:"row",spacing:2,style:{height:"100%"},children:[L.jsx(E.Grid2,{size:{xs:this.state.chart&&this.state.chartEnabled?6:12},style:{height:"100%"},children:L.jsxs(E.Grid2,{container:!0,direction:"column",spacing:2,style:{marginTop:0,height:"100%"},children:[this.props.expertMode?L.jsx(E.Grid2,{children:L.jsxs(E.Grid2,{container:!0,direction:"row",spacing:2,style:{marginTop:0},children:[this.props.expertMode?L.jsx(E.Grid2,{children:L.jsxs(E.FormControl,{style:Br.formControl,children:[L.jsx(E.InputLabel,{style:{marginTop:10,marginLeft:-14},children:this.props.t("Value type")}),L.jsxs(E.Select,{variant:"standard",value:this.state.type,onChange:r=>{this.setState({type:r.target.value,valid:r.target.value==="number"?Ep.isNumberValid({value:this.state.targetValue,common:this.props.object.common}):!0,jsonError:!1},()=>{this.state.type==="json"&&this.setState({targetValue:(this.state.targetValue||"").toString(),jsonError:Ep.checkJsonError((this.state.targetValue||"").toString())})})},children:[L.jsx(E.MenuItem,{value:"string",children:"String"}),L.jsx(E.MenuItem,{value:"number",children:"Number"}),L.jsx(E.MenuItem,{value:"boolean",children:"Boolean"}),L.jsx(E.MenuItem,{value:"json",children:"JSON/Object"}),this.props.states?L.jsx(E.MenuItem,{value:"states",children:"States"}):null]})]})}):null,this.state.type==="json"?L.jsx(E.Grid2,{flex:1}):null]})}):null,L.jsx(E.Grid2,{flex:this.state.type==="json"&&this.state.fullScreen?1:void 0,style:{paddingTop:0},children:this.state.type==="boolean"?L.jsx(E.Typography,{component:"div",style:this.props.expertMode?{marginTop:20,width:"100%",backgroundColor:this.props.themeType==="dark"?"#595959":"#dadada",borderRadius:5,padding:5}:void 0,children:L.jsxs(E.Grid2,{component:"label",container:!0,alignItems:"center",spacing:1,children:[L.jsxs(E.Grid2,{style:{marginRight:10},children:[this.props.t("Value"),":"]}),L.jsx(E.Grid2,{children:"FALSE"}),L.jsx(E.Grid2,{children:L.jsx(E.Switch,{autoFocus:!0,checked:this.state.targetValue===!0||this.state.targetValue===1||this.state.targetValue==="1"||String(this.state.targetValue).trim().toLowerCase()==="true"||String(this.state.targetValue).trim().toLowerCase()==="on"||String(this.state.targetValue).trim().toLowerCase()==="yes",onKeyUp:r=>r.key==="Enter"&&this.onUpdate(r),onChange:r=>this.setState({targetValue:r.target.checked})})}),L.jsx(E.Grid2,{children:"TRUE"})]})}):this.state.type==="number"?L.jsx(E.TextField,{variant:"standard",fullWidth:!0,autoFocus:!0,error:!this.state.valid,type:"number",slotProps:{htmlInput:{step:this.props.object.common.step,min:this.props.object.common.min,max:this.props.object.common.max}},inputRef:this.inputRef,helperText:this.props.t("Press ENTER to write the value, when focused"),value:this.state.targetValue.toString(),label:this.props.t("Value")+(this.props.object.common.min!==void 0||this.props.object.common.unit==="%"?`, ${this.props.t("min:")} ${this.props.object.common.min!==void 0?this.props.object.common.min:0}`:"")+(this.props.object.common.max!==void 0||this.props.object.common.unit==="%"?`, ${this.props.t("max:")} ${this.props.object.common.max!==void 0?this.props.object.common.max:100}`:""),onKeyUp:r=>r.key==="Enter"&&this.state.valid&&this.onUpdate(r),onChange:r=>{this.setState({targetValue:r.target.value,valid:Ep.isNumberValid({value:r.target.value,common:this.props.object.common})})}}):this.state.type==="json"?this.renderJsonEditor():this.state.type==="states"?this.renderStates():L.jsx(E.TextField,{variant:"standard",fullWidth:!0,inputRef:this.inputRef,autoFocus:!0,helperText:this.props.t("Press CTRL+ENTER to write the value, when focused"),label:this.props.t("Value"),multiline:!0,onKeyDown:r=>r.ctrlKey&&r.key==="Enter"&&this.onUpdate(r),defaultValue:this.propsValue.toString(),onChange:r=>this.setState({targetValue:r.target.value})})}),(this.props.role==="date"||(i=this.props.role)!=null&&i.startsWith("date."))&&this.state.type==="number"?L.jsx(E.Grid2,{style:{display:"flex",gap:"5px"},size:{xs:6},children:this.renderTimePicker()}):null,this.props.expertMode?L.jsx(E.Grid2,{children:e}):null,this.props.expertMode?L.jsxs(E.Grid2,{children:[L.jsxs(E.FormControl,{variant:"standard",style:Br.quality,children:[L.jsx(E.InputLabel,{children:this.props.t("Quality")}),L.jsxs(E.Select,{variant:"standard",defaultValue:0,onChange:r=>this.q=Number(r.target.value),children:[L.jsx(E.MenuItem,{value:0,children:"0x00 - good"}),L.jsx(E.MenuItem,{value:1,children:"0x01 - general problem"}),L.jsx(E.MenuItem,{value:2,children:"0x02 - no connection problem"}),L.jsx(E.MenuItem,{value:16,children:"0x10 - substitute value from controller"}),L.jsx(E.MenuItem,{value:32,children:"0x20 - substitute initial value"}),L.jsx(E.MenuItem,{value:64,children:"0x40 - substitute value from device or instance"}),L.jsx(E.MenuItem,{value:128,children:"0x80 - substitute value from sensor"}),L.jsx(E.MenuItem,{value:17,children:"0x11 - general problem by instance"}),L.jsx(E.MenuItem,{value:65,children:"0x41 - general problem by device"}),L.jsx(E.MenuItem,{value:129,children:"0x81 - general problem by sensor"}),L.jsx(E.MenuItem,{value:18,children:"0x12 - instance not connected"}),L.jsx(E.MenuItem,{value:66,children:"0x42 - device not connected"}),L.jsx(E.MenuItem,{value:130,children:"0x82 - sensor not connected"}),L.jsx(E.MenuItem,{value:68,children:"0x44 - device reports error"}),L.jsx(E.MenuItem,{value:132,children:"0x84 - sensor reports error"})]})]}),L.jsx(E.TextField,{variant:"standard",title:this.props.t("0 - no expiration"),sx:{"&.MuiTextField-root":Br.expire},label:this.props.t("Expire"),type:"number",slotProps:{htmlInput:{min:0}},helperText:this.props.t("in seconds"),defaultValue:this.expire,onChange:r=>this.expire=Number(r.target.value)})]}):null]})}),this.state.chart&&this.state.chartEnabled&&this.state.type!=="json"?L.jsx(E.Grid2,{size:{xs:6},style:{minHeight:300},sx:{display:{sm:"none",md:"inline-block"}},children:this.renderChart()}):null]})})}),L.jsxs(E.DialogActions,{sx:Br.wrapperButton,children:[this.props.expertMode?null:e,this.props.expertMode?null:L.jsx("div",{style:{flexGrow:1}}),L.jsx(E.Button,{variant:"contained",disabled:!this.state.valid||this.state.writing,onClick:r=>this.onUpdate(r),color:"primary",startIcon:this.props.width!=="xs"?L.jsx(Ie.Check,{}):void 0,style:((n=this.props.object.common)==null?void 0:n.write)===!1?Br.readOnly:void 0,children:this.props.width!=="xs"?this.props.t("Set value"):L.jsx(Ie.Check,{fontSize:"large"})}),L.jsx(E.Button,{variant:"contained",onClick:()=>this.props.onClose(),color:"grey",startIcon:this.props.width!=="xs"?L.jsx(Ie.Close,{}):void 0,children:this.props.width!=="xs"?this.props.t("Cancel"):L.jsx(Ie.Close,{fontSize:"large"})})]})]})}}const se={divWithoutTitle:{width:"100%",height:"100%",border:"2px solid #00000000"},divWithoutTitleAndTab:{height:"calc(100% - 48px)"},error:{border:"2px solid #FF0000"},id:{fontStyle:"italic"},dialog:{height:"calc(100% - 64px)"},aliasIdEdit:{width:368},button:{marginTop:20,marginLeft:8},funcDivEdit:{width:"100%"},funcEditName:{display:"inline-block",width:85},funcEdit:{width:400},funcIcon:{width:16,height:16},marginTop:{marginTop:20},commonTabWrapper:{flexFlow:"wrap",display:"flex",gap:8},commonWrapper:{width:500,minWidth:300},flexDrop:{width:"100%",maxWidth:500,margin:"auto",display:"flex"},marginBlock:{marginTop:20},buttonAdd:{minWidth:150},textField:{width:"100%"},flex:{display:"flex","& > div":{mr:"8px"}},close:{width:"20px",height:"20px",opacity:"0.9",cursor:"pointer",position:"relative",top:20,marginTop:"10px",transition:"all 0.6s ease","&:hover":{transform:"rotate(90deg)"},"&:before":{position:"absolute",left:"9px",content:'""',height:"20px",width:"3px",backgroundColor:"#ff4f4f",transform:"rotate(45deg)"},"&:after":{position:"absolute",left:"9px",content:'""',height:"20px",width:"3px",backgroundColor:"#ff4f4f",transform:"rotate(-45deg)"}},color:{width:70},buttonRemoveWrapper:{position:"absolute",zIndex:222,right:0},tabsPadding:{padding:"0px 24px"},wrapperButton:{"@media screen and (max-width: 465px)":{"& *":{fontSize:10}},"@media screen and (max-width: 380px)":{"& *":{fontSize:9}}},commonDeleteTip:{color:"#fa4a4a"},typeNameEng:{marginLeft:8,opacity:.7,fontStyle:"italic",fontSize:"smaller"},tooltip:{pointerEvents:"none"},stateRow:{width:"100%",display:"flex",justifyContent:"space-between",padding:3},stateTitle:{minWidth:150,fontWeight:"bold"},stateUnit:{opacity:.7,marginLeft:4},stateValue:{animation:"newStateEditorAnimation 2s ease-in-out"},stateTime:{fontStyle:"italic"},stateImage:{maxWidth:200,maxHeight:200}};function Nme(s,e){return{"@keyframes newStateEditorAnimation":{"0%":{color:s.palette.mode==="dark"?"#27cf00":"#174e00"},"100%":{color:e||(s.palette.mode==="dark"?"#ffffff":"#000000")}}}}const Bb=[{role:"button",type:"boolean",r:!1,w:!0},{role:"button.close.blind",type:"boolean",r:!1,w:!0},{role:"button.close.tilt",type:"boolean",r:!1,w:!0},{role:"button.fastforward",type:"boolean",r:!1,w:!0},{role:"button.forward",type:"boolean",r:!1,w:!0},{role:"button.long",type:"boolean",r:!1,w:!0},{role:"button.mode",type:"boolean",r:!1,w:!0},{role:"button.mode.auto",type:"boolean",r:!1,w:!0},{role:"button.mode.manual",type:"boolean",r:!1,w:!0},{role:"button.mode.silent",type:"boolean",r:!1,w:!0},{role:"button.next",type:"boolean",r:!1,w:!0},{role:"button.open.blind",type:"boolean",r:!1,w:!0},{role:"button.open.door",type:"boolean",r:!1,w:!0},{role:"button.open.tilt",type:"boolean",r:!1,w:!0},{role:"button.open.window",type:"boolean",r:!1,w:!0},{role:"button.pause",type:"boolean",w:!0},{role:"button.play",type:"boolean",w:!0},{role:"button.press",type:"boolean",r:!1,w:!0},{role:"button.press",type:"boolean",r:!0,w:!1},{role:"button.prev",type:"boolean",w:!0},{role:"button.resume",type:"boolean",r:!1,w:!0},{role:"button.start",type:"boolean",r:!1,w:!0},{role:"button.pause",type:"boolean",r:!1,w:!0},{role:"button.stop",type:"boolean",r:!1,w:!0},{role:"button.stop.tilt",type:"boolean",r:!1,w:!0},{role:"button.volume.up",type:"boolean",r:!1,w:!0},{role:"chart",type:"string"},{role:"date",type:"number"},{role:"date",type:"string"},{role:"date.end",type:"number"},{role:"date.end",type:"string"},{role:"date.forecast.1",type:"string"},{role:"date.start",type:"number"},{role:"date.start",type:"string"},{role:"date.sunrise",type:"number"},{role:"date.sunrise",type:"string"},{role:"date.sunset",type:"number"},{role:"date.sunset",type:"string"},{role:"dayofweek",type:"number"},{role:"html",type:"string"},{role:"indicator",type:"boolean",w:!1},{role:"indicator.alarm",type:"boolean",w:!1},{role:"indicator.alarm.fire",type:"boolean",w:!1},{role:"indicator.alarm.flood",type:"boolean",w:!1},{role:"indicator.alarm.health",type:"boolean",w:!1},{role:"indicator.alarm.secure",type:"boolean",w:!1},{role:"indicator.connected",type:"boolean",w:!1},{role:"indicator.maintenance",type:"boolean",w:!1},{role:"indicator.maintenance.alarm",type:"boolean",w:!1},{role:"indicator.maintenance.lowbat",type:"boolean",w:!1},{role:"indicator.maintenance.waste",type:"boolean",w:!1},{role:"indicator.reachable",type:"boolean",w:!1},{role:"info.address",type:"string",w:!1},{role:"info.display",type:"string",w:!1},{role:"info.firmware",type:"string",w:!1},{role:"info.hardware",type:"string",w:!1},{role:"info.ip",type:"string",w:!1},{role:"info.mac",type:"string",w:!1},{role:"info.model",type:"string",w:!1},{role:"info.name",type:"string",w:!1},{role:"info.port",type:"number",w:!1},{role:"info.port",type:"string",w:!1},{role:"info.serial",type:"string",w:!1},{role:"info.standby",type:"string",w:!1},{role:"info.status",w:!1},{role:"json",type:"string"},{role:"level",type:"number",w:!0},{role:"level.bass",type:"number",w:!0},{role:"level.blind",type:"number",w:!0},{role:"level.brightness",type:"number",w:!0},{role:"level.color.blue",type:"number",w:!0},{role:"level.color.hue",type:"number",w:!0},{role:"level.color.luminance",type:"number",w:!0},{role:"level.color.red",type:"number",w:!0},{role:"level.color.rgb",type:"string",w:!0},{role:"level.color.rgbw",type:"string",w:!0},{role:"level.color.saturation",type:"number",w:!0},{role:"level.color.temperature",type:"number",w:!0},{role:"level.curtain",type:"number",w:!0},{role:"level.mode.airconditioner",type:"number",w:!0},{role:"level.mode.cleanup",type:"number",w:!0},{role:"level.mode.fan",type:"number",w:!0},{role:"level.mode.swing",type:"number",w:!0},{role:"level.mode.thermostat",type:"number",w:!0},{role:"level.mode.work",type:"number",w:!0},{role:"level.temperature",type:"number",w:!0},{role:"level.tilt",type:"number",w:!0},{role:"level.timer",type:"number",w:!0},{role:"level.treble",type:"number",w:!0},{role:"level.valve",type:"number",w:!0},{role:"level.volume",type:"number",w:!0},{role:"level.volume.group",type:"number",w:!0},{role:"list",type:"array"},{role:"list",type:"string"},{role:"location",type:"string"},{role:"media.add",type:"string"},{role:"media.bitrate",type:"number"},{role:"media.bitrate",type:"string"},{role:"media.broadcastDate",type:"string"},{role:"media.browser",type:"string"},{role:"media.clear",type:"boolean"},{role:"media.content",type:"string"},{role:"media.cover",type:"string"},{role:"media.cover.big",type:"string"},{role:"media.cover.small",type:"string"},{role:"media.date",type:"string"},{role:"media.duration",type:"number"},{role:"media.duration",type:"string"},{role:"media.duration.text",type:"string"},{role:"media.elapsed",type:"number"},{role:"media.elapsed",type:"string"},{role:"media.elapsed.text",type:"string"},{role:"media.episode",type:"number"},{role:"media.episode",type:"string"},{role:"media.genre",type:"string"},{role:"media.input",type:"string"},{role:"media.jump",type:"string"},{role:"media.link",type:"string"},{role:"media.mode.repeat",type:"string"},{role:"media.mode.shuffle",type:"string"},{role:"media.mute",type:"string"},{role:"media.mute.group",type:"string"},{role:"media.playid",type:"string"},{role:"media.playlist",type:"string"},{role:"media.season",type:"string"},{role:"media.seek",type:"string"},{role:"media.state",type:"string"},{role:"media.titel",type:"string"},{role:"media.track",type:"string"},{role:"media.tts",type:"string"},{role:"media.url",type:"string"},{role:"media.url.announcement",type:"string"},{role:"medien.artist",type:"string"},{role:"sensor.alarm",type:"boolean",w:!1},{role:"sensor.alarm.fire",type:"boolean",w:!1},{role:"sensor.alarm.flood",type:"boolean",w:!1},{role:"sensor.alarm.power",type:"boolean",w:!1},{role:"sensor.alarm.secure",type:"boolean",w:!1},{role:"sensor.contact",type:"boolean",w:!1},{role:"sensor.door",type:"boolean",w:!1},{role:"sensor.light",type:"boolean",w:!1},{role:"sensor.lock",type:"boolean",w:!1},{role:"sensor.motion",type:"boolean",w:!1},{role:"sensor.noise",type:"boolean",w:!1},{role:"sensor.rain",type:"boolean",w:!1},{role:"sensor.window",type:"boolean",w:!1},{role:"state",type:"mixed"},{role:"string.date",type:"number"},{role:"switch",type:"boolean",w:!0},{role:"switch.enable",type:"boolean",w:!0},{role:"switch.gate",type:"boolean",w:!0},{role:"switch.gate",type:"boolean",w:!0},{role:"switch.light",type:"boolean",w:!0},{role:"switch.lock",type:"boolean",w:!0},{role:"switch.lock.door",type:"boolean",w:!0},{role:"switch.lock.window",type:"boolean",w:!0},{role:"switch.mode",type:"boolean",w:!0},{role:"switch.mode.auto",type:"boolean",w:!0},{role:"switch.mode.boost",type:"boolean",w:!0},{role:"switch.mode.color",type:"boolean",w:!0},{role:"switch.mode.manual",type:"boolean",w:!0},{role:"switch.mode.moonlight",type:"boolean",w:!0},{role:"switch.mode.party",type:"boolean",w:!0},{role:"switch.mode.silent",type:"boolean",w:!0},{role:"switch.power",type:"boolean",w:!0},{role:"switch.power.zone",type:"boolean",w:!0},{role:"text",type:"string"},{role:"text.phone",type:"string"},{role:"text.url",type:"string"},{role:"time.interval",type:"number"},{role:"time.span",type:"number"},{role:"time.timeout",type:"number"},{role:"url",type:"string"},{role:"url.audio",type:"string"},{role:"url.blank",type:"string"},{role:"url.cam",type:"string"},{role:"url.icon",type:"string"},{role:"url.same",type:"string"},{role:"value",type:"number",w:!1},{role:"value.battery",type:"number",w:!1},{role:"value.blind",type:"number",w:!1},{role:"value.blood.sugar",type:"number",w:!1},{role:"value.brightness",type:"number",w:!1},{role:"value.co2",type:"number",w:!1},{role:"value.clouds",type:"number",w:!1},{role:"value.current",type:"number",w:!1},{role:"value.curtain",type:"number",w:!1},{role:"value.date",type:"string",w:!1},{role:"value.datetime",type:"string",w:!1},{role:"value.default",type:"number",w:!1},{role:"value.direction",type:"number",w:!1},{role:"value.direction.max.wind",type:"number",w:!1},{role:"value.direction.min.wind",type:"number",w:!1},{role:"value.direction.wind",type:"number",w:!1},{role:"value.direction.wind.forecast.0",type:"number",w:!1},{role:"value.direction.wind.forecast.1",type:"number",w:!1},{role:"value.distance",type:"number",w:!1},{role:"value.energy",type:"number",w:!1},{role:"value.fill",type:"number",w:!1},{role:"value.gate",type:"number",w:!1},{role:"value.gps",type:"number",w:!1},{role:"value.gps.accuracy",type:"number",w:!1},{role:"value.gps.elevation",type:"number",w:!1},{role:"value.gps.latitude",type:"number",w:!1},{role:"value.gps.longitude",type:"number",w:!1},{role:"value.gps.radius",type:"number",w:!1},{role:"value.health.bmi",type:"number",w:!1},{role:"value.health.bpm",type:"number",w:!1},{role:"value.health.calories",type:"number",w:!1},{role:"value.health.fat",type:"number",w:!1},{role:"value.health.steps",type:"number",w:!1},{role:"value.health.weight",type:"number",w:!1},{role:"value.humidity",type:"number",w:!1},{role:"value.humidity",type:"number",w:!1},{role:"value.humidity.max",type:"number",w:!1},{role:"value.humidity.min",type:"number",w:!1},{role:"value.interval",type:"number",w:!1},{role:"value.lock",type:"number",w:!1},{role:"value.min",type:"number",w:!1},{role:"value.position",type:"number",w:!1},{role:"value.power",type:"number",w:!1},{role:"value.power.consumption",type:"number",w:!1},{role:"value.power.production",type:"number",w:!1},{role:"value.power.reactive",type:"number",w:!1},{role:"value.precipitation",type:"number",w:!1},{role:"value.precipitation.chance",type:"number",w:!1},{role:"value.precipitation.day.forecast.0",type:"number",w:!1},{role:"value.precipitation.forecast.0",type:"number",w:!1},{role:"value.precipitation.forecast.0",type:"number",w:!1},{role:"value.precipitation.forecast.1",type:"number",w:!1},{role:"value.precipitation.forecast.1",type:"number",w:!1},{role:"value.precipitation.hour",type:"number",w:!1},{role:"value.precipitation.night.forecast.0",type:"number",w:!1},{role:"value.precipitation.today",type:"number",w:!1},{role:"value.precipitation.type",type:"number",w:!1},{role:"value.pressure",type:"number",w:!1},{role:"value.pressure.forecast.0",type:"number",w:!1},{role:"value.pressure.forecast.1",type:"number",w:!1},{role:"value.radiation",type:"number",w:!1},{role:"value.rain",type:"number",w:!1},{role:"value.rain.hour",type:"number",w:!1},{role:"value.rain.today",type:"number",w:!1},{role:"value.severity",type:"number",w:!1},{role:"value.snow",type:"number",w:!1},{role:"value.snow.hour",type:"number",w:!1},{role:"value.snow.today",type:"number",w:!1},{role:"value.snowline",type:"number",w:!1},{role:"value.speed",type:"number",w:!1},{role:"value.speed.max.wind",type:"number",w:!1},{role:"value.speed.min.wind",type:"number",w:!1},{role:"value.speed.wind",type:"number",w:!1},{role:"value.speed.wind.forecast.0",type:"number",w:!1},{role:"value.speed.wind.gust",type:"number",w:!1},{role:"value.state",type:"number",w:!1},{role:"value.sun.azimuth",type:"number",w:!1},{role:"value.sun.elevation",type:"number",w:!1},{role:"value.temperature",type:"number",w:!1},{role:"value.temperature",type:"number",w:!1},{role:"value.temperature.dewpoint",type:"number",w:!1},{role:"value.temperature.feelslike",type:"number",w:!1},{role:"value.temperature.max",type:"number",w:!1},{role:"value.temperature.max.forecast.0",type:"number",w:!1},{role:"value.temperature.min",type:"number",w:!1},{role:"value.temperature.min.forecast.0",type:"number",w:!1},{role:"value.temperature.min.forecast.1",type:"number",w:!1},{role:"value.temperature.windchill",type:"number",w:!1},{role:"value.tilt",type:"number",w:!1},{role:"value.time",type:"number",w:!1},{role:"value.uv",type:"number",w:!1},{role:"value.valve",type:"number",w:!1},{role:"value.voltage",type:"number",w:!1},{role:"value.warning",type:"number",w:!1},{role:"value.waste",type:"number",w:!1},{role:"value.water",type:"number",w:!1},{role:"weather.chart.url",type:"string",w:!1},{role:"weather.chart.url.forecast",type:"string",w:!1},{role:"weather.direction.wind",type:"number",w:!1},{role:"weather.direction.wind.forecast.0",type:"number",w:!1},{role:"weather.html",type:"string",w:!1},{role:"weather.icon",type:"string",w:!1},{role:"weather.icon.forecast.1",type:"string",w:!1},{role:"weather.icon.name",type:"string",w:!1},{role:"weather.icon.wind",type:"string",w:!1},{role:"weather.json",type:"string",w:!1},{role:"weather.state",type:"number",w:!1},{role:"weather.state",type:"string",w:!1},{role:"weather.state.forecast.0",type:"string",w:!1},{role:"weather.sunrise",type:"string",w:!1},{role:"weather.sunset",type:"string",w:!1},{role:"weather.state.forecast.1",type:"string",w:!1},{role:"weather.temperature",type:"number",w:!1},{role:"weather.title",type:"string",w:!1},{role:"weather.title.forecast.0",type:"string",w:!1},{role:"weather.title.short",type:"string",w:!1},{role:"weather.type",type:"number",w:!1},{role:"weather.type",type:"string",w:!1}];class $n extends Te.Component{originalObj;subscribed=!1;updateTimer=null;constructor(e){super(e);const t=this.props.obj._id.startsWith("alias.0")&&this.props.obj.type==="state";let i=(window._localStorage||window.localStorage).getItem(`${this.props.dialogName||"App"}.editTab`)||"object";const n=ee.Router.getLocation();n.tab==="tab-objects"&&n.dialog==="edit"&&n.id===this.props.obj._id&&n.arg&&(i=n.arg),i==="alias"&&!t&&(i="common"),this.props.aliasTab&&t&&(i="alias");const r=this.props.obj,o=r.common&&"type"in r.common&&"alias"in r.common?r.common.alias.read:void 0,a=r.common&&"type"in r.common&&"alias"in r.common?r.common.alias.write:void 0;this.state={text:JSON.stringify(this.props.obj,null,2),error:!1,customError:!1,changed:!1,readError:this.checkFunction(o,!1),writeError:this.checkFunction(a,!0),tab:i,showCopyDialog:"",showCommonDeleteMessage:!1,selectId:!1,selectRead:!1,selectWrite:!1,newId:"",lang:ee.I18n.getLanguage(),value:void 0},xT.locale(this.state.lang),this.originalObj=JSON.stringify(this.props.obj,null,2)}async componentDidMount(){var i,n,r;const e=((n=(i=this.props.obj)==null?void 0:i.common)==null?void 0:n.editSchemas)||((r=this.props.obj)==null?void 0:r.editSchemas),t=[];if(e)if(typeof e=="object"){const o=Object.keys(e);for(let a=0;a<o.length;a++)try{const l=await ee.iobUriRead(e[o[a]],this.props.socket);if(l.key=o[a],l&&typeof l=="object"&&t.push(l),l.icon)try{const h=ee.iobUriParse(l.icon);if(h.type!=="base64"&&h.type!=="http"){const c=await ee.iobUriRead(h,this.props.socket);c&&(l.icon=c)}}catch(h){console.warn(`Cannot get icon for schema from "${l.icon}": ${h}`),l.icon=void 0}}catch(l){console.warn(`Cannot get edit schema for "${e[o[a]]}": ${l}`)}t.length&&(t.sort((a,l)=>a.order!==void 0&&l.order!==void 0?a.order-l.order:a.order!==void 0?-1:l.order!==void 0||a.key>l.key?1:-1),this.setState({customEditTabs:t}))}else console.warn(`Invalid edit schema for "${e}": expected object, but got ${typeof e}`);this.state.tab==="alias"&&(!this.props.obj._id.startsWith("alias.0")||this.props.obj.type!=="state")?this.setState({tab:"object"}):this.state.tab==="state"&&this.props.obj.type!=="state"?this.setState({tab:"object"}):this.state.tab!=="object"&&this.state.tab!=="common"&&this.state.tab!=="alias"&&this.state.tab!=="state"&&!t.find(o=>o.key===this.state.tab)&&this.setState({tab:"object"}),this.state.tab==="state"&&this.subscribeOnState(!0),this.props.socket.subscribeObject(this.props.obj._id,this.onObjectUpdated),this.isRouted()&&setTimeout(()=>{this.isRouted()&&ee.Router.getLocation().arg!==this.state.tab&&ee.Router.doNavigate(null,null,null,this.state.tab)},0)}componentWillUnmount(){this.updateTimer&&(clearInterval(this.updateTimer),this.updateTimer=null),this.subscribeOnState(!1),this.props.socket.unsubscribeObject(this.props.obj._id,this.onObjectUpdated)}onObjectUpdated=(e,t)=>{this.originalObj!==JSON.stringify(t,null,2)&&(this.originalObj=JSON.stringify(t,null,2),this.state.changed?this.forceUpdate():this.setState({text:this.originalObj}))};checkFunction(e,t){var r,o,a,l;if(!e||e.includes("JSON.parse("))return"";let i;try{i=JSON.parse(this.state.text)}catch{}let n;try{n=new Function("val",e.includes("return")?e:`return ${e}`)}catch{return this.props.t("Cannot parse code!")}if((r=i==null?void 0:i.common)!=null&&r.type&&((l=(a=this.props.objects[(o=i.common.alias)==null?void 0:o.id])==null?void 0:a.common)!=null&&l.type)){const h=t?i.common.type:this.props.objects[i.common.alias.id].common.type,c=t?this.props.objects[i.common.alias.id].common.type:i.common.type;if(h&&c){let u=null;if(h==="boolean"?u=!0:h==="number"?u=1:(h==="string"||h==="mixed")&&(u="string"),u!==null)try{const d=n(u);return c==="mixed"?"":d!==null&&typeof d!==c?this.props.t("Type of result is not as expected: %s",c):""}catch(d){return`${this.props.t("Cannot execute function")}: ${d.toString()}`}}}return""}prepareObject(e){var t,i,n,r;e=e||this.state.text;try{const o=JSON.parse(e);return o._id=this.props.obj._id,(t=o.common)!=null&&t.alias&&(o.common.alias.id||delete o.common.alias.id,(!o.common.alias.read&&o.common.alias.read!==void 0||o.common.alias.read==="val")&&delete o.common.alias.read,(!o.common.alias.write&&o.common.alias.write!==void 0||o.common.alias.write==="val")&&delete o.common.alias.write,!o.common.alias.id&&!o.common.alias.read&&!o.common.alias.write&&delete o.common.alias),((i=o.common)==null?void 0:i.min)!==void 0&&typeof o.common.min!="number"&&(o.common.min=parseFloat(o.common.min)),((n=o.common)==null?void 0:n.max)!==void 0&&typeof o.common.max!="number"&&(o.common.max=parseFloat(o.common.max)),((r=o.common)==null?void 0:r.step)!==void 0&&typeof o.common.step!="number"&&(o.common.step=parseFloat(o.common.step)),o}catch{return null}}onChange(e,t){var r,o,a,l;const i=this.prepareObject(e),n={text:e};if(i){n.changed=this.originalObj!==JSON.stringify(i,null,2),n.showCommonDeleteMessage=!1;const h=JSON.parse(this.originalObj);i.common&&Object.keys(h.common||{}).forEach(c=>{i.common[c]===void 0&&(n.showCommonDeleteMessage=!0)}),n.error=!1,n.readError=this.checkFunction((o=(r=i.common)==null?void 0:r.alias)==null?void 0:o.read,!1),n.writeError=this.checkFunction((l=(a=i.common)==null?void 0:a.alias)==null?void 0:l.write,!0)}else n.showCommonDeleteMessage=!1,n.error=!0;this.setState(n,()=>t&&t())}onUpdate(){var e,t,i,n;try{const r=JSON.parse(this.state.text);r._id=this.props.obj._id,(e=r.common)!=null&&e.alias&&(r.common.alias.id||delete r.common.alias.id,(!r.common.alias.read&&r.common.alias.read!==void 0||r.common.alias.read==="val")&&delete r.common.alias.read,(!r.common.alias.write&&r.common.alias.write!==void 0||r.common.alias.write==="val")&&delete r.common.alias.write,!r.common.alias.id&&!r.common.alias.read&&!r.common.alias.write&&delete r.common.alias),((t=r.common)==null?void 0:t.min)!==void 0&&typeof r.common.min!="number"&&(r.common.min=parseFloat(r.common.min)),((i=r.common)==null?void 0:i.max)!==void 0&&typeof r.common.max!="number"&&(r.common.max=parseFloat(r.common.max)),((n=r.common)==null?void 0:n.step)!==void 0&&typeof r.common.step!="number"&&(r.common.step=parseFloat(r.common.step)),this.props.onClose(r)}catch{console.error(`Cannot parse: ${this.state.text}`)}}static getPartOfObject(e,t){return t?ee.getAttrInObject(JSON.parse(e),t.split(".")):JSON.parse(e)}static setPartOfObject(e,t,i){let n=JSON.parse(e);return n===void 0?e:(n=ee.setAttrInObject(n,i.split("."),t),JSON.stringify(n,null,2))}renderCustomPanel(){var i;const e=(i=this.state.customEditTabs)==null?void 0:i.find(n=>n.key===this.state.tab);if(!e)return null;let t;try{t=$n.getPartOfObject(this.state.text,e.path)}catch(n){return console.error(`Cannot get data for ${e.path}: ${n}`),L.jsx("div",{children:ee.I18n.t("Cannot get data for %s: %s",e.path,n)})}return t?L.jsx(_p.JsonConfigComponent,{theme:this.props.theme,socket:this.props.socket,themeName:this.props.theme.palette.mode,themeType:this.props.theme.palette.mode,dateFormat:this.props.dateFormat,isFloatComma:this.props.isFloatComma,schema:e.json,data:t,onChange:n=>{try{const r=$n.setPartOfObject(this.state.text,n,e.path);this.onChange(r)}catch(r){console.error(`Cannot set data for ${e.path}: ${r}`)}},adapterName:"",instance:0,onError:n=>{console.warn(`Error in JSON editor: ${n}`),this.state.customError!==n&&this.setState({customError:n})}}):L.jsx("div",{children:ee.I18n.t("Cannot get data for %s",e.path)})}renderCustomTab(e,t){var r;let i;if(!t||!ee.getAttrInObject(t,(r=e.path)==null?void 0:r.split(".")))return null;e.color&&(i={backgroundColor:e.color,color:ee.Utils.invertColor(e.color,!0)});const n=e.label&&typeof e.label=="object"?e.label[this.state.lang]||e.label.en:e.noTranslation?e.label||e.key:this.props.t(e.label||e.key);return L.jsx(E.Tab,{disabled:this.state.error||this.state.customError,value:e.key,label:n,style:i,iconPosition:"start",icon:e.icon?L.jsx(ee.Icon,{src:e.icon,style:se.funcIcon}):void 0})}renderStateTab(){return this.props.obj.type!=="state"||this.props.obj.common.type==="file"?null:L.jsx(E.Tab,{disabled:this.state.customError||this.state.error,value:"state",label:this.props.t("State")})}renderStatePanel(){var r;if(this.state.value===void 0||this.state.value===null)return L.jsx("div",{children:this.props.t("State does not exist")});if(typeof this.state.value!="object")return L.jsxs("div",{style:{maxWidth:700},children:[L.jsx("div",{children:this.props.t("State is invalid")}),L.jsx("div",{children:L.jsx("pre",{children:JSON.stringify(this.state.value,null,4)})})]});let e;const t={},i=this.state.value.val,n=typeof i;if(i===void 0)e="[undef]",t.color="#bc6400",t.fontStyle="italic";else if(i===null)e="(null)",t.color="#0047b1",t.fontStyle="italic";else if(typeof this.props.obj.common.role=="string"&&this.props.obj.common.role.match(/^value\.time|^date/))if(i&&n==="string")if(ee.Utils.isStringInteger(i))e=new Date(parseInt(i,10)).toString();else try{const o=new Date(i);ee.Utils.isValidDate(o)&&(e=o.toString())}catch{}else i&&n==="number"&&(i>946681200&&i<9466812e5?e=new Date(i*1e3).toString():i>9466812e8&&(e=new Date(i).toString()));return e||(n==="number"?Number.isInteger(i)||(e=(Math.round(i*1e9)/1e9).toString(),this.props.isFloatComma&&(e=e.toString().replace(".",","))):n==="boolean"?(e=i?ee.I18n.t("true"):ee.I18n.t("false"),t.color=i?"#139800":"#cd6b55"):n==="object"?e=JSON.stringify(i):n==="string"&&i.startsWith("data:image/")?e=L.jsx("img",{src:i,alt:"img",style:se.stateImage}):e=i.toString()),Object.assign(t,Nme(this.props.theme,t.color)),L.jsxs(E.Box,{style:{...se.divWithoutTitle,padding:"24px 24px 0 24px",fontSize:16,maxWidth:400},sx:{"& .value-line:hover":{backgroundColor:"#00000030"}},children:[L.jsxs("div",{className:"value-line",style:{...se.stateRow,marginBottom:24},children:[L.jsxs("div",{style:se.stateTitle,children:[ee.I18n.t("ra_tooltip_value"),":"]}),L.jsxs(E.Box,{component:"div",sx:t,style:se.stateValue,children:[e,(r=this.props.obj.common)!=null&&r.unit?L.jsx("span",{style:se.stateUnit,children:this.props.obj.common.unit}):null]},typeof e=="string"?e:"image")]}),L.jsxs("div",{style:se.stateRow,className:"value-line",children:[L.jsxs("div",{style:se.stateTitle,children:[ee.I18n.t("Type"),":"]}),L.jsx("div",{style:se.stateValue,children:n})]}),L.jsxs("div",{style:se.stateRow,className:"value-line",children:[L.jsxs("div",{style:se.stateTitle,children:[ee.I18n.t("ra_tooltip_ts"),":"]}),L.jsx(E.Tooltip,{title:new Date(this.state.value.ts).toLocaleString(),slotProps:{popper:{sx:se.tooltip}},children:L.jsx("div",{style:se.stateValue,children:L.jsx("span",{style:se.stateTime,children:xT(this.state.value.ts).fromNow()})})})]}),L.jsxs("div",{style:se.stateRow,className:"value-line",children:[L.jsxs("div",{style:se.stateTitle,children:[ee.I18n.t("ra_tooltip_ack"),":"]}),L.jsxs("div",{style:{...se.stateValue,color:this.state.value.ack?"green":"red"},children:[this.state.value.ack?ee.I18n.t("Acknowledged"):ee.I18n.t("Command"),this.state.value.ack?" (true)":" (false)"]})]}),L.jsxs("div",{style:se.stateRow,className:"value-line",children:[L.jsxs("div",{style:se.stateTitle,children:[ee.I18n.t("ra_tooltip_lc"),":"]}),L.jsx(E.Tooltip,{title:new Date(this.state.value.lc).toLocaleString(),slotProps:{popper:{sx:se.tooltip}},children:L.jsx("div",{style:se.stateValue,children:L.jsx("span",{style:se.stateTime,children:xT(this.state.value.lc).fromNow()})})})]}),L.jsxs("div",{style:se.stateRow,className:"value-line",children:[L.jsxs("div",{style:se.stateTitle,children:[ee.I18n.t("ra_tooltip_quality"),":"]}),L.jsx("div",{style:se.stateValue,children:ee.Utils.quality2text(this.state.value.q||0).join(", ")})]}),L.jsxs("div",{style:se.stateRow,className:"value-line",children:[L.jsxs("div",{style:se.stateTitle,children:[ee.I18n.t("ra_tooltip_from"),":"]}),L.jsx("div",{style:se.stateValue,children:this.state.value.from})]}),L.jsxs("div",{style:se.stateRow,className:"value-line",children:[L.jsxs("div",{style:se.stateTitle,children:[ee.I18n.t("ra_tooltip_user"),":"]}),L.jsx("div",{style:se.stateValue,children:this.state.value.user||"--"})]}),this.state.value.expire?L.jsxs("div",{style:se.stateRow,className:"value-line",children:[L.jsxs("div",{style:se.stateTitle,children:[ee.I18n.t("ra_tooltip_expire"),":"]}),L.jsxs("div",{style:se.stateValue,children:[this.state.value.expire," ",ee.I18n.t("sc_seconds")]})]}):null,this.state.value.c?L.jsxs("div",{style:se.stateRow,className:"value-line",children:[L.jsxs("div",{style:se.stateTitle,children:[ee.I18n.t("ra_tooltip_comment"),":"]}),L.jsx("div",{style:se.stateValue,children:this.state.value.c})]}):null]})}onStateChange=(e,t)=>{JSON.stringify(t)!==JSON.stringify(this.state.value)&&this.setState({value:t})};subscribeOnState(e){e?this.subscribed||(this.updateTimer||(this.updateTimer=setInterval(()=>{this.forceUpdate()},5e3)),this.subscribed=!0,this.props.socket.subscribeState(this.props.obj._id,this.onStateChange)):this.subscribed&&(this.updateTimer&&(clearInterval(this.updateTimer),this.updateTimer=null),this.subscribed=!1,this.props.socket.unsubscribeState(this.props.obj._id,this.onStateChange))}isRouted(){const e=ee.Router.getLocation();return e.tab==="tab-objects"&&e.dialog==="edit"&&e.id===this.props.obj._id}renderTabs(e){var t;return L.jsxs(E.Tabs,{style:se.tabsPadding,value:this.state.tab,onChange:(i,n)=>{var r,o,a;if((window._localStorage||window.localStorage).setItem(`${this.props.dialogName||"App"}.editTab`,n),this.isRouted()&&ee.Router.doNavigate(null,null,null,n),n==="object"){try{const l=JSON.parse(this.state.text);let h=!1;((r=l.common)==null?void 0:r.min)!==void 0&&typeof l.common.min!="number"&&(l.common.min=parseFloat(l.common.min),h=!0),((o=l.common)==null?void 0:o.max)!==void 0&&typeof l.common.max!="number"&&(l.common.max=parseFloat(l.common.max),h=!0),((a=l.common)==null?void 0:a.step)!==void 0&&typeof l.common.step!="number"&&(l.common.step=parseFloat(l.common.step),h=!0),h&&this.setState({text:JSON.stringify(l,null,2)})}catch{}this.subscribeOnState(!1)}else n==="state"?this.subscribeOnState(!0):this.subscribeOnState(!1);this.setState({tab:n})},children:[L.jsx(E.Tab,{value:"common",disabled:this.state.customError||this.state.error,label:this.props.t("common")}),L.jsx(E.Tab,{value:"object",disabled:this.state.customError,label:this.props.t("Object data")}),this.renderStateTab(),this.props.obj._id.startsWith("alias.0")&&this.props.obj.type==="state"&&L.jsx(E.Tab,{disabled:this.state.customError||this.state.error,value:"alias",label:this.props.t("Alias")}),(t=this.state.customEditTabs)==null?void 0:t.map(i=>this.renderCustomTab(i,e))]})}renderSelectDialog(){var i,n,r,o;if(!this.state.selectId&&!this.state.selectRead&&!this.state.selectWrite)return null;let e="",t;try{t=JSON.parse(this.state.text);const a=t.common&&"type"in t.common&&"alias"in t.common?(i=t.common.alias)==null?void 0:i.read:"",l=t.common&&"type"in t.common&&"alias"in t.common?(n=t.common.alias)==null?void 0:n.write:"";this.state.selectId?e=((o=(r=t.common)==null?void 0:r.alias)==null?void 0:o.id)||"":this.state.selectRead?e=a??"":this.state.selectWrite&&(e=l??"")}catch{console.error(`Cannot parse ${this.state.text}`)}return L.jsx(ee.DialogSelectID,{imagePrefix:".",dateFormat:this.props.dateFormat,theme:this.props.theme,isFloatComma:this.props.isFloatComma,socket:this.props.socket,dialogName:"aliasesEdit",title:`${this.props.t("Select for")} ${this.props.obj._id}`,selected:e,onOk:a=>{const l=this.state.selectRead,h=this.state.selectWrite,c=this.state.selectId,u=Array.isArray(a)?a[0]:a;this.setState({selectId:!1,selectRead:!1,selectWrite:!1},()=>{l?this.setAliasItem(t,"id.read",u):h?this.setAliasItem(t,"id.write",u):c&&this.setAliasItem(t,"id",u)})},onClose:()=>this.setState({selectId:!1,selectRead:!1,selectWrite:!1})},"selectDialog")}setAliasItem(e,t,i,n){e.common=e.common||{};const r=e.common.alias||{};t==="id.read"?r.id&&typeof r.id=="object"?r.id.read=i:r.id={read:i,write:i}:t==="id.write"?r.id&&typeof r.id=="object"?r.id.write=i:r.id={read:i,write:i}:r[t]=i,e.common.alias=r,this.onChange(JSON.stringify(e,null,2),n)}setCommonItem(e,t,i){e.common[t]=i,this.onChange(JSON.stringify(e,null,2))}removeCommonItem(e,t){delete e.common[t],this.onChange(JSON.stringify(e,null,2))}static buttonAddKey(e,t){return L.jsx("div",{style:se.marginBlock,children:L.jsx(E.Button,{style:se.buttonAdd,variant:"contained",color:"secondary",startIcon:L.jsx(Ie.Add,{}),onClick:t,children:ee.I18n.t(e)})})}buttonRemoveKey(e,t,i){const{t:n}=this.props;return L.jsx(E.Tooltip,{title:n("Remove attribute %s",n(e)),slotProps:{popper:{sx:se.tooltip}},children:L.jsx(E.Box,{component:"div",sx:se.close,style:i,onClick:t})})}static filterRoles(e,t){const i=[];return e.forEach(n=>(n.type==="mixed"||n.type)===t&&!i.includes(n.role)&&i.push(n.role)),Bb.forEach(n=>(n.type==="mixed"||n.type)===t&&!i.includes(n.role)&&i.push(n.role)),i.sort(),i}renderCommonEdit(){try{const e=JSON.parse(this.state.text),t=["number","string","boolean","array","object","mixed"],i=!1,{t:n,obj:r}=this.props,o=r.type==="state",a=r.type==="channel"||r.type==="device"||o,l=$n.filterRoles(this.props.roleArray,e.common.type);let h;if(e.common.icon&&(h=e.type==="instance"||e.type==="adapter"?`./adapter/${e.common.name}/${e.common.icon}`:e.common.icon,!h.startsWith(".")&&!h.startsWith("/")&&!h.startsWith("data:"))){const d=r._id.split(".");d[0]==="system"?h=`adapter/${d[2]}${h.startsWith("/")?"":"/"}${h}`:h=`adapter/${d[0]}${h.startsWith("/")?"":"/"}${h}`}const c=typeof e.common.desc=="object"&&e.common.desc?e.common.desc[ee.I18n.getLanguage()]||e.common.desc.en||"":e.common.desc||"",u=ee.Utils.getObjectNameFromObj(e,ee.I18n.getLanguage(),{},!1,!0);return L.jsxs(E.Box,{style:se.commonTabWrapper,onKeyDown:d=>{d.key==="Enter"&&(d.preventDefault(),d.stopPropagation(),this.onUpdate())},children:[L.jsxs(E.Box,{style:{...se.commonWrapper,width:this.props.width==="xs"?"100%":void 0,minWidth:this.props.width==="xs"?"100%":void 0,gap:this.props.width==="xs"?10:8,display:this.props.width==="xs"?"flex":void 0,flexDirection:this.props.width==="xs"?"column":void 0},children:[typeof e.common.name<"u"?L.jsx(E.TextField,{variant:"standard",disabled:i,label:n("Name"),style:{...se.textField,marginTop:8},fullWidth:!0,slotProps:{input:{endAdornment:u?L.jsx(E.InputAdornment,{position:"end",children:L.jsx(E.Tooltip,{title:ee.I18n.t("Clear text"),slotProps:{popper:{sx:se.tooltip}},children:L.jsx(E.IconButton,{tabIndex:-1,size:"small",onClick:()=>this.setCommonItem(e,"name",""),children:L.jsx(Ie.Close,{})})})}):null}},value:u,onChange:d=>this.setCommonItem(e,"name",d.target.value)}):$n.buttonAddKey("Name",()=>this.setCommonItem(e,"name","")),typeof e.common.desc<"u"?L.jsxs(E.Box,{component:"div",sx:se.flex,children:[L.jsx(E.TextField,{variant:"standard",disabled:i,label:n("Description"),style:{...se.textField,marginTop:8},fullWidth:!0,slotProps:{input:{endAdornment:c?L.jsx(E.InputAdornment,{position:"end",children:L.jsx(E.Tooltip,{title:ee.I18n.t("Clear text"),slotProps:{popper:{sx:se.tooltip}},children:L.jsx(E.IconButton,{tabIndex:-1,size:"small",onClick:()=>this.setCommonItem(e,"desc",""),children:L.jsx(Ie.Close,{})})})}):null}},value:c,onChange:d=>this.setCommonItem(e,"desc",d.target.value)}),this.buttonRemoveKey("Description",()=>this.removeCommonItem(e,"desc"))]}):$n.buttonAddKey("Description",()=>this.setCommonItem(e,"desc","")),o?typeof e.common.type<"u"?L.jsxs(E.Box,{component:"div",sx:se.flex,children:[L.jsxs(E.FormControl,{style:se.marginBlock,fullWidth:!0,children:[L.jsx(E.InputLabel,{style:{transform:"scale(0.75)"},children:n("State type")}),L.jsx(E.Select,{variant:"standard",disabled:i,value:e.common.type,onChange:d=>this.setCommonItem(e,"type",d.target.value),children:t.map(d=>L.jsxs(E.MenuItem,{value:d,children:[n(d),L.jsxs("span",{style:se.typeNameEng,children:["(",d,")"]})]},d))})]}),this.buttonRemoveKey("State type",()=>this.removeCommonItem(e,"type"),{marginTop:20})]}):$n.buttonAddKey("State type",()=>this.setCommonItem(e,"type","string")):null,L.jsxs(E.Box,{component:"div",sx:{...se.flex,flexWrap:this.props.width==="xs"?"wrap":void 0},children:[o?typeof e.common.read<"u"?L.jsxs(E.Box,{component:"div",sx:se.flex,children:[L.jsx(E.FormControlLabel,{style:se.marginBlock,control:L.jsx(E.Checkbox,{disabled:i,checked:e.common.read,onChange:d=>this.setCommonItem(e,"read",d.target.checked)}),label:n("Readable")}),this.buttonRemoveKey("Readable",()=>this.removeCommonItem(e,"read"))]}):$n.buttonAddKey("Readable",()=>this.setCommonItem(e,"read",!0)):null,o?typeof e.common.write<"u"?L.jsxs(E.Box,{component:"div",sx:se.flex,children:[L.jsx(E.FormControlLabel,{style:se.marginBlock,control:L.jsx(E.Checkbox,{disabled:i,checked:e.common.write,onChange:d=>this.setCommonItem(e,"write",d.target.checked)}),label:n("Writeable")}),this.buttonRemoveKey("Writeable",()=>this.removeCommonItem(e,"write"))]}):$n.buttonAddKey("Writeable",()=>this.setCommonItem(e,"write",!0)):null]}),a?typeof e.common.role<"u"?L.jsxs(E.Box,{component:"div",sx:se.flex,children:[L.jsx(E.Autocomplete,{style:se.marginBlock,fullWidth:!0,disabled:i,value:e.common.role,onChange:(d,f)=>{const g=Bb.find(p=>p.role===f);g&&(g.w!==void 0&&g.r!==void 0?(this.setCommonItem(e,"write",g.w),this.setCommonItem(e,"read",g.r)):g.w!==void 0?this.setCommonItem(e,"write",g.w):g.r!==void 0&&this.setCommonItem(e,"read",g.r)),f.startsWith("level")||f.startsWith("indicator")||f.startsWith("sensor")||f.startsWith("weather")?e.common.write&&this.setCommonItem(e,"write",!1):f.startsWith("value")||f.startsWith("indicator")||f.startsWith("sensor")||f.startsWith("weather")?e.common.write&&this.setCommonItem(e,"write",!1):f.startsWith("level")||f.startsWith("switch")?e.common.write&&this.setCommonItem(e,"write",!0):f.startsWith("button")&&e.common.read&&this.setCommonItem(e,"read",!1),this.setCommonItem(e,"role",f)},options:l,renderInput:d=>L.jsx(E.TextField,{variant:"standard",...d,label:n("Role")})}),this.buttonRemoveKey("Role",()=>this.removeCommonItem(e,"role"),{marginTop:20})]}):$n.buttonAddKey("Role",()=>this.setCommonItem(e,"role","")):null,typeof e.common.color<"u"?L.jsxs(E.Box,{component:"div",sx:se.flex,children:[L.jsx(E.TextField,{variant:"standard",disabled:i,style:{...se.marginBlock,...se.color},label:n("Color"),type:"color",slotProps:{input:{endAdornment:e.common.color?L.jsx(E.InputAdornment,{position:"end",children:L.jsx(E.Tooltip,{title:ee.I18n.t("Clear field"),slotProps:{popper:{sx:se.tooltip}},children:L.jsx(E.IconButton,{tabIndex:-1,size:"small",onClick:()=>this.setCommonItem(e,"color",""),children:L.jsx(Ie.Close,{})})})}):null}},value:e.common.color,onChange:d=>this.setCommonItem(e,"color",d.target.value)}),this.buttonRemoveKey("Color",()=>this.removeCommonItem(e,"color"))]}):$n.buttonAddKey("Color",()=>this.setCommonItem(e,"color","")),L.jsxs(E.Box,{component:"div",sx:{...se.flex,flexWrap:this.props.width==="xs"?"wrap":void 0,gap:this.props.width==="xs"?"10px":void 0},children:[e.common.type==="number"?typeof e.common.min<"u"?L.jsxs(E.Box,{component:"div",sx:se.flex,children:[L.jsx(E.TextField,{variant:"standard",disabled:i,className:{...se.marginBlock,...se.color},label:n("Min"),value:e.common.min,onChange:d=>this.setCommonItem(e,"min",d.target.value)}),this.buttonRemoveKey("Min",()=>this.removeCommonItem(e,"min"))]}):L.jsx(E.Box,{component:"div",sx:se.flex,children:$n.buttonAddKey("Min",()=>this.setCommonItem(e,"min",0))}):null,e.common.type==="number"?typeof e.common.max<"u"?L.jsxs(E.Box,{component:"div",sx:se.flex,children:[L.jsx(E.TextField,{variant:"standard",disabled:i,className:{...se.marginBlock,...se.color},label:n("Max"),value:e.common.max,onChange:d=>this.setCommonItem(e,"max",d.target.value)}),this.buttonRemoveKey("Max",()=>this.removeCommonItem(e,"max"))]}):L.jsx(E.Box,{component:"div",sx:se.flex,children:$n.buttonAddKey("Max",()=>this.setCommonItem(e,"max",100))}):null,e.common.type==="number"?typeof e.common.step<"u"?L.jsxs(E.Box,{component:"div",sx:se.flex,children:[L.jsx(E.TextField,{variant:"standard",disabled:i,className:{...se.marginBlock,...se.color},label:n("Step"),value:e.common.step,onChange:d=>this.setCommonItem(e,"step",d.target.value)}),this.buttonRemoveKey("Step",()=>this.removeCommonItem(e,"step"))]}):L.jsx(E.Box,{component:"div",sx:se.flex,children:$n.buttonAddKey("Step",()=>this.setCommonItem(e,"step",1))}):null]}),e.common.type==="number"?typeof e.common.unit<"u"?L.jsxs(E.Box,{component:"div",sx:se.flex,children:[L.jsx(E.TextField,{variant:"standard",disabled:i,className:{...se.marginBlock,...se.color},label:n("Unit"),slotProps:{input:{endAdornment:e.common.unit?L.jsx(E.InputAdornment,{position:"end",children:L.jsx(E.Tooltip,{title:ee.I18n.t("Clear field"),slotProps:{popper:{sx:se.tooltip}},children:L.jsx(E.IconButton,{tabIndex:-1,size:"small",onClick:()=>this.setCommonItem(e,"unit",""),children:L.jsx(Ie.Close,{})})})}):null}},value:e.common.unit,onChange:d=>this.setCommonItem(e,"unit",d.target.value)}),this.buttonRemoveKey("Unit",()=>this.removeCommonItem(e,"unit"))]}):L.jsx("div",{style:se.flexDrop,children:$n.buttonAddKey("Unit",()=>this.setCommonItem(e,"unit",""))}):null]}),typeof e.common.icon<"u"?L.jsxs(E.Box,{component:"div",sx:se.flex,style:{flexGrow:1,minWidth:158},children:[L.jsx(ee.UploadImage,{disabled:i,maxSize:10*1024,icon:h,removeIconFunc:()=>this.setCommonItem(e,"icon",""),onChange:d=>this.setCommonItem(e,"icon",d)}),this.buttonRemoveKey("Icon",()=>this.removeCommonItem(e,"icon"))]}):L.jsx(E.Box,{component:"div",sx:se.flex,children:$n.buttonAddKey("Icon",()=>this.setCommonItem(e,"icon",""))})]})}catch{return L.jsx("div",{children:this.props.t("Cannot parse JSON!")})}}renderAliasEdit(){var e,t,i,n,r,o,a,l,h,c,u,d,f,g,p,m,v,_,b,y,C,x,S,k,T,I,N,A,R,P,B,z,U,K,X,ne,oe,ue,de,De;try{const Q=JSON.parse(this.state.text),Xe=((t=(e=Q.common)==null?void 0:e.alias)==null?void 0:t.read)!==void 0||((n=(i=Q.common)==null?void 0:i.alias)==null?void 0:n.write)!==void 0;return L.jsxs(E.Grid2,{container:!0,direction:"column",style:se.marginTop,children:[L.jsx(E.Grid2,{children:L.jsx(E.FormControlLabel,{control:L.jsx(E.Checkbox,{checked:typeof((o=(r=Q.common)==null?void 0:r.alias)==null?void 0:o.id)=="object",onChange:()=>{var Pe,tt,st,ve,ge,Oe,Ci;typeof((tt=(Pe=Q.common)==null?void 0:Pe.alias)==null?void 0:tt.id)=="object"?this.setAliasItem(Q,"id",((ge=(ve=(st=Q.common)==null?void 0:st.alias)==null?void 0:ve.id)==null?void 0:ge.read)||""):this.setAliasItem(Q,"id.read",((Ci=(Oe=Q.common)==null?void 0:Oe.alias)==null?void 0:Ci.id)||"")}}),label:this.props.t("Different IDs for read and write")})}),typeof((l=(a=Q.common)==null?void 0:a.alias)==null?void 0:l.id)!="object"?L.jsxs(E.Grid2,{children:[L.jsx(E.TextField,{variant:"standard",label:this.props.t("Alias state"),value:((c=(h=Q.common)==null?void 0:h.alias)==null?void 0:c.id)||"",style:se.aliasIdEdit,slotProps:{input:{endAdornment:(d=(u=Q.common)==null?void 0:u.alias)!=null&&d.id?L.jsx(E.InputAdornment,{position:"end",children:L.jsx(E.Tooltip,{title:ee.I18n.t("Clear field"),slotProps:{popper:{sx:se.tooltip}},children:L.jsx(E.IconButton,{tabIndex:-1,size:"large",onClick:()=>this.setAliasItem(Q,"id",""),children:L.jsx(Ie.Close,{})})})}):null}},onChange:Pe=>this.setAliasItem(Q,"id",Pe.target.value),margin:"normal"}),L.jsx(E.Fab,{style:se.button,size:"small",onClick:()=>this.setState({selectId:!0,selectRead:!1,selectWrite:!1}),children:"..."})]}):null,typeof((g=(f=Q.common)==null?void 0:f.alias)==null?void 0:g.id)=="object"?L.jsxs(E.Grid2,{children:[L.jsx(E.TextField,{variant:"standard",label:this.props.t("Alias read state"),value:((v=(m=(p=Q.common)==null?void 0:p.alias)==null?void 0:m.id)==null?void 0:v.read)||"",style:se.aliasIdEdit,slotProps:{input:{endAdornment:(y=(b=(_=Q.common)==null?void 0:_.alias)==null?void 0:b.id)!=null&&y.read?L.jsx(E.InputAdornment,{position:"end",children:L.jsx(E.Tooltip,{title:ee.I18n.t("Clear field"),slotProps:{popper:{sx:se.tooltip}},children:L.jsx(E.IconButton,{size:"large",tabIndex:-1,onClick:()=>this.setAliasItem(Q,"id.read",""),children:L.jsx(Ie.Close,{})})})}):null}},onChange:Pe=>this.setAliasItem(Q,"id.read",Pe.target.value),margin:"normal"}),L.jsx(E.Fab,{style:se.button,size:"small",onClick:()=>this.setState({selectId:!1,selectRead:!0,selectWrite:!1}),children:"..."})]}):null,typeof((x=(C=Q.common)==null?void 0:C.alias)==null?void 0:x.id)=="object"?L.jsxs(E.Grid2,{children:[L.jsx(E.TextField,{variant:"standard",label:this.props.t("Alias write state"),value:((T=(k=(S=Q.common)==null?void 0:S.alias)==null?void 0:k.id)==null?void 0:T.write)||"",style:se.aliasIdEdit,slotProps:{input:{endAdornment:(A=(N=(I=Q.common)==null?void 0:I.alias)==null?void 0:N.id)!=null&&A.write?L.jsx(E.InputAdornment,{position:"end",children:L.jsx(E.Tooltip,{title:ee.I18n.t("Clear field"),slotProps:{popper:{sx:se.tooltip}},children:L.jsx(E.IconButton,{size:"large",tabIndex:-1,onClick:()=>this.setAliasItem(Q,"id.write",""),children:L.jsx(Ie.Close,{})})})}):null}},onChange:Pe=>this.setAliasItem(Q,"id.write",Pe.target.value),margin:"normal"}),L.jsx(E.Fab,{style:se.button,size:"small",onClick:()=>this.setState({selectId:!1,selectRead:!1,selectWrite:!0}),children:"..."})]}):null,L.jsx(E.Grid2,{style:se.marginTop,children:L.jsx(E.FormControlLabel,{control:L.jsx(E.Checkbox,{checked:((P=(R=Q.common)==null?void 0:R.alias)==null?void 0:P.read)!==void 0||((z=(B=Q.common)==null?void 0:B.alias)==null?void 0:z.write)!==void 0,onChange:()=>{Xe?(delete Q.common.alias.read,delete Q.common.alias.write):(Q.common=Q.common||{},Q.common.alias=Q.common.alias||{},Q.common.alias.read="val",Q.common.alias.write="val"),this.onChange(JSON.stringify(Q,null,2))}}),label:this.props.t("Use convert functions")})}),Xe?L.jsx(E.Grid2,{children:L.jsx(E.TextField,{variant:"standard",label:this.props.t("Read converter"),value:((K=(U=Q.common)==null?void 0:U.alias)==null?void 0:K.read)||"val",style:se.funcEdit,error:!!this.state.readError,slotProps:{input:{endAdornment:(ne=(X=Q.common)==null?void 0:X.alias)!=null&&ne.read?L.jsx(E.InputAdornment,{position:"end",children:L.jsx(E.Tooltip,{title:ee.I18n.t("Clear field"),slotProps:{popper:{sx:se.tooltip}},children:L.jsx(E.IconButton,{size:"large",tabIndex:-1,onClick:()=>this.setAliasItem(Q,"read",""),children:L.jsx(Ie.Close,{})})})}):null,startAdornment:L.jsx(E.InputAdornment,{position:"start",children:L.jsx(ee.IconFx,{style:se.funcIcon})})}},onChange:Pe=>this.setAliasItem(Q,"read",Pe.target.value),helperText:this.state.readError||`${this.props.t("JS function like")} "val / 5 + 21"`,margin:"normal"})}):null,Xe?L.jsx(E.Grid2,{children:L.jsx(E.TextField,{variant:"standard",label:this.props.t("Write converter"),error:!!this.state.writeError,value:((ue=(oe=Q.common)==null?void 0:oe.alias)==null?void 0:ue.write)||"val",helperText:this.state.writeError||`${this.props.t("JS function like")} "(val - 21) * 5"`,style:se.funcEdit,slotProps:{input:{endAdornment:(De=(de=Q.common)==null?void 0:de.alias)!=null&&De.write?L.jsx(E.InputAdornment,{position:"end",children:L.jsx(E.Tooltip,{title:ee.I18n.t("Clear field"),slotProps:{popper:{sx:se.tooltip}},children:L.jsx(E.IconButton,{size:"large",tabIndex:-1,onClick:()=>this.setAliasItem(Q,"write",""),children:L.jsx(Ie.Close,{})})})}):null,startAdornment:L.jsx(E.InputAdornment,{position:"start",children:L.jsx(ee.IconFx,{style:se.funcIcon})})}},onChange:Pe=>this.setAliasItem(Q,"write",Pe.target.value),margin:"normal"})}):null]})}catch{return L.jsx("div",{children:this.props.t("Cannot parse JSON!")})}}onCopy(e){ee.Utils.copyToClipboard(this.state.text,e),window.alert(this.props.t("ra_Copied"))}onClone(e,t){const i=JSON.parse(JSON.stringify(this.props.objects[e]));delete i.from,delete i.ts,delete i.user,i._id=t,this.props.objects[i._id]=i,this.props.onNewObject(i)}renderCopyDialog(){return this.state.showCopyDialog?L.jsxs(E.Dialog,{open:!0,maxWidth:"md",fullWidth:!0,onClose:()=>this.setState({showCopyDialog:""}),children:[L.jsx(E.DialogTitle,{children:this.props.t("Enter new ID for this object")}),L.jsx(E.DialogContent,{children:L.jsx(E.TextField,{variant:"standard",autoFocus:!0,fullWidth:!0,label:this.props.t("New object ID"),value:this.state.newId,slotProps:{input:{endAdornment:this.state.newId?L.jsx(E.InputAdornment,{position:"end",children:L.jsx(E.Tooltip,{title:ee.I18n.t("Clear field"),slotProps:{popper:{sx:se.tooltip}},children:L.jsx(E.IconButton,{size:"small",tabIndex:-1,onClick:()=>this.setState({newId:""}),children:L.jsx(Ie.Close,{})})})}):null}},onKeyDown:e=>{e.key==="Enter"&&!this.props.objects[this.state.newId]&&(this.setState({showCopyDialog:""}),this.onClone(this.state.showCopyDialog,this.state.newId))},onChange:e=>this.setState({newId:e.target.value})})}),L.jsxs(E.DialogActions,{children:[L.jsx(E.Button,{disabled:!!this.props.objects[this.state.newId],onClick:()=>{this.setState({showCopyDialog:""}),this.onClone(this.state.showCopyDialog,this.state.newId)},color:"primary",startIcon:L.jsx(Ie.FileCopy,{}),children:this.props.t("Clone")}),L.jsx(E.Button,{color:"grey",onClick:()=>this.setState({showCopyDialog:""}),startIcon:L.jsx(Ie.Close,{}),children:this.props.t("Cancel")})]})]}):null}renderPanelObject(e){return L.jsxs("div",{style:{...se.divWithoutTitle,...e?se.divWithoutTitleAndTab:void 0,...this.state.error?se.error:void 0},onKeyDown:t=>{t.ctrlKey&&t.key==="Enter"&&(t.preventDefault(),t.stopPropagation(),this.onUpdate())},children:[L.jsx(f$,{value:this.state.text,onChange:t=>this.onChange(t),name:"UNIQUE_ID_OF_DIV",themeType:this.props.themeType}),this.state.showCommonDeleteMessage?L.jsx("div",{style:se.commonDeleteTip,children:ee.I18n.t("common_delete_tip")}):null]})}render(){const e=this.props.obj,t=e._id.startsWith("alias.0")&&e.type==="state";let i=se.dialog;window.innerWidth>1920&&(i={...i,maxWidth:"calc(100% - 150px)"});let n;try{n=JSON.parse(this.state.text)}catch{}return L.jsxs(E.Dialog,{sx:{"& .MuiPaper-root":i},open:!0,maxWidth:"xl",fullWidth:!0,fullScreen:!1,onClose:()=>this.props.onClose(),"aria-labelledby":"edit-value-dialog-title","aria-describedby":"edit-value-dialog-description",children:[L.jsxs(E.DialogTitle,{id:"edit-value-dialog-title",style:{width:"calc(100% - 32px)",overflow:"hidden",textOverflow:"ellipsis"},children:[this.props.t("Edit object:")," ",L.jsx(E.Box,{component:"span",style:se.id,sx:{fontSize:{xs:10}},children:this.props.obj._id})]}),this.renderTabs(n),this.renderCopyDialog(),L.jsxs(E.DialogContent,{sx:{p:this.props.width==="xs"&&this.state.tab==="object"?"6px":this.state.tab==="object"||this.state.tab==="common"||this.state.tab==="alias"?"0 24px":"0 6px",overflow:this.state.tab==="object"||this.state.tab==="common"||this.state.tab==="alias"?void 0:"hidden"},children:[this.state.tab==="object"?this.renderPanelObject(t):null,this.state.tab==="alias"&&this.props.obj._id.startsWith("alias.0")&&this.props.obj.type==="state"?this.renderAliasEdit():null,this.state.tab==="common"?this.renderCommonEdit():null,this.state.tab==="state"?this.renderStatePanel():null,this.renderCustomPanel(),this.renderSelectDialog()]}),L.jsxs(E.DialogActions,{sx:se.wrapperButton,children:[L.jsx(E.Button,{color:"grey",onClick:()=>this.setState({showCopyDialog:this.props.obj._id,newId:this.props.obj._id}),disabled:this.state.error||this.state.changed,title:this.props.t("Create a copy of this object"),children:L.jsx(Ie.FileCopy,{fontSize:this.props.width==="xs"?"large":void 0})}),L.jsx("div",{style:{flexGrow:1}}),this.state.tab==="object"&&L.jsx(E.Button,{color:"grey",onClick:r=>this.onCopy(r),disabled:this.state.error,title:this.props.width==="xs"?this.props.t("Copy into clipboard"):"",startIcon:this.props.width==="xs"?void 0:L.jsx(B7,{}),children:this.props.width==="xs"?L.jsx(B7,{fontSize:32}):this.props.t("Copy into clipboard")}),L.jsx(E.Button,{variant:"contained",disabled:this.state.error||!this.state.changed||this.state.customError,onClick:()=>this.onUpdate(),startIcon:this.props.width==="xs"?void 0:L.jsx(Ie.Check,{}),color:"primary",children:this.props.width==="xs"?L.jsx(Ie.Check,{fontSize:"large"}):this.props.t("Write")}),L.jsx(E.Button,{color:"grey",variant:"contained",onClick:()=>this.props.onClose(),startIcon:this.props.width==="xs"?void 0:L.jsx(Ie.Close,{}),children:this.props.width==="xs"?L.jsx(Ie.Close,{fontSize:"large"}):this.props.t("Cancel")})]})]})}}class A4 extends Te.Component{object=null;constructor(e){super(e),this.state={role:null,initRole:null,roleInput:null}}componentDidMount(){this.props.socket.getObject(this.props.id).then(e=>{var i;this.object=e;const t=((i=e==null?void 0:e.common)==null?void 0:i.role)||null;this.setState({role:t,initRole:t,roleInput:t})}).catch(e=>console.error(e))}onUpdate(){this.object.common=this.object.common||{},this.object.common.role=this.state.roleInput,this.props.socket.setObject(this.object._id,this.object).then(()=>this.props.onClose(this.object))}static filterRoles(e,t){const i=[];return e.forEach(n=>(n.type==="mixed"||n.type)===t&&!i.includes(n.role)&&i.push(n.role)),Bb.forEach(n=>(n.type==="mixed"||n.type)===t&&!i.includes(n.role)&&i.push(n.role)),i.sort(),i}render(){return L.jsxs(E.Dialog,{open:!0,maxWidth:"sm",fullWidth:!0,onClose:()=>this.props.onClose(),"aria-labelledby":"edit-role-dialog-title","aria-describedby":"edit-role-dialog-description",children:[L.jsx(E.DialogTitle,{id:"edit-role-dialog-title",children:this.object?this.props.t("Update role for %s",this.object._id):null}),L.jsx(E.DialogContent,{children:L.jsx(E.Autocomplete,{freeSolo:!0,options:A4.filterRoles(this.props.roleArray,this.props.commonType),style:{width:"100%"},value:this.state.role,onChange:(e,t)=>this.setState({role:t,roleInput:t}),onInputChange:(e,t)=>this.setState({roleInput:t}),renderInput:e=>L.jsx(E.TextField,{variant:"standard",...e,label:this.props.t("Role")})})}),L.jsxs(E.DialogActions,{children:[L.jsx(E.Button,{disabled:this.state.initRole===this.state.roleInput,variant:"contained",onClick:()=>this.onUpdate(),color:"primary",startIcon:L.jsx(Ie.Check,{}),children:this.props.t("Apply")}),L.jsx(E.Button,{variant:"contained",onClick:()=>this.props.onClose(),color:"grey",startIcon:L.jsx(Ie.Close,{}),children:this.props.t("Cancel")})]})]},"objectBrowserEditRole")}}const Mme=["array","boolean","file","json","mixed","number","object","string"],Ame={boolean:!1,string:"",number:0},zo={state:{name:"State",value:"state"},channel:{name:"Channel",value:"channel"},device:{name:"Device",value:"device"},folder:{name:"Folder",value:"folder"}},Rme=({onClose:s,onApply:e,selected:t,setObject:i,objects:n,expertMode:r,initialType:o,initialStateType:a})=>{var S;const l={state:ee.I18n.t("New state"),channel:ee.I18n.t("New channel"),device:ee.I18n.t("New device"),folder:ee.I18n.t("New folder")},h=[],c=(S=n[t])==null?void 0:S.type;n[t]?c==="channel"?(h.push(zo.state),o=o||"state"):c==="device"?(o=o||"channel",h.push(zo.state),h.push(zo.channel)):c==="state"?o=o||"":(h.push(zo.state),h.push(zo.channel),h.push(zo.device),t.startsWith("0_userdata.")||t.startsWith("alias.0.")||t==="0_userdata"||t==="alias.0"?(h.push(zo.folder),o=o||"folder"):o=o||"state"):(h.push(zo.folder),o=o||"folder",r&&(t.startsWith("mqtt.")||t.startsWith("javascript."))&&(h.push(zo.state),h.push(zo.channel),h.push(zo.device)));const u=(window._localStorage||window.localStorage).getItem("App.lastObjectType");u&&h.find(k=>k.value===u)&&(o=u);function d(k){return`${t}.${k.toString().replace(ee.Utils.FORBIDDEN_CHARS,"_").replace(/\s/g,"_").replace(/\./g,"_")}`}const[f,g]=Te.useState(o),[p,m]=Te.useState(l[o]),[v,_]=Te.useState(a||(window._localStorage||window.localStorage).getItem("App.lastStateType")||"string"),[b,y]=Te.useState(!n[d(l.state)]),C=()=>{const k={common:{name:p,desc:ee.I18n.t("Manually created")},type:f};f==="state"?(k.common={...k.common,role:"state",type:v,read:!0,write:!0,def:Ame[v]},k.native={}):f!=="folder"?k.common={...k.common,role:"",icon:""}:delete k.common.desc,i(`${t}.${p.split(" ").join("_")}`,k).then(()=>e())},x=ee.I18n.getLanguage();return L.jsxs(E.Dialog,{open:!0,fullWidth:!0,maxWidth:"md",disableEscapeKeyDown:!1,onClose:s,children:[L.jsx(E.DialogTitle,{children:L.jsxs("div",{style:{margin:10,fontSize:20,display:"flex",alignItems:"center",gap:8},children:[L.jsx(Ie.AddBox,{}),ee.I18n.t("Add new object:"),L.jsxs("span",{style:{fontStyle:"italic"},children:[t,".",p]})]})}),L.jsx(E.DialogContent,{children:L.jsxs("div",{style:{display:"flex",flexDirection:"column"},children:[L.jsx(E.TextField,{variant:"standard",label:ee.I18n.t("Parent"),style:{margin:"5px 0"},disabled:!0,value:t}),L.jsxs(E.FormControl,{variant:"standard",style:{marginTop:10,marginBottom:16},children:[L.jsx(E.InputLabel,{children:ee.I18n.t("Type")}),L.jsx(E.Select,{variant:"standard",value:f,onChange:k=>{(window._localStorage||window.localStorage).setItem("App.lastObjectType",k.target.value),p===l[f]&&(m(l[k.target.value]),y(!!n[d(l[k.target.value])])),g(k.target.value)},children:h.map(k=>L.jsxs(E.MenuItem,{value:k.value,children:[ee.I18n.t(k.name),x!=="en"&&L.jsxs("span",{style:{fontSize:"smaller",opacity:.6,marginLeft:4},children:["(",k.value,")"]})]},k.value))})]}),f==="state"&&L.jsxs(E.FormControl,{style:{marginTop:10,marginBottom:16},children:[L.jsx(E.InputLabel,{style:{left:-14},children:ee.I18n.t("State type")}),L.jsx(E.Select,{style:{marginTop:6},variant:"standard",value:v,onChange:k=>{(window._localStorage||window.localStorage).setItem("App.lastStateType",k.target.value),_(k.target.value)},children:Mme.map(k=>L.jsxs(E.MenuItem,{value:k,children:[ee.I18n.t(k),x!=="en"&&ee.I18n.t(k)!==k&&L.jsxs("span",{style:{fontSize:"smaller",opacity:.6,marginLeft:4},children:["(",k,")"]})]},k))})]}),L.jsx(E.TextField,{variant:"standard",label:ee.I18n.t("Name"),style:{margin:"5px 0"},autoFocus:!0,value:p,onKeyDown:k=>{k.key==="Enter"&&(k.preventDefault(),p&&C())},slotProps:{input:{endAdornment:p?L.jsx(E.InputAdornment,{position:"end",children:L.jsx(E.IconButton,{tabIndex:-1,size:"small",onClick:()=>m(""),children:L.jsx(Ie.Close,{})})}):null}},onChange:k=>{y(!n[d(k.target.value)]),m(k.target.value)}})]})}),L.jsxs(E.DialogActions,{children:[L.jsx(E.Button,{id:"add-new-object-dialog-add",startIcon:L.jsx(Ie.Check,{}),disabled:!p||!f||!b||f==="state"&&!v,onClick:()=>C(),variant:"contained",color:"primary",children:ee.I18n.t("add")}),L.jsx(E.Button,{id:"add-new-object-dialog-cancel",color:"grey",onClick:s,variant:"contained",startIcon:L.jsx(Ie.Close,{}),children:ee.I18n.t("ra_Cancel")})]})]})},Pme=[{Owner:[{name:"read",valueNum:1024,title:"read owner"},{name:"write",valueNum:512,title:"write owner"}]},{Group:[{name:"read",valueNum:64,title:"read group"},{name:"write",valueNum:32,title:"write group"}]},{Everyone:[{name:"read",valueNum:4,title:"read everyone"},{name:"write",valueNum:2,title:"write everyone"}]}];function uV(s,e,t){return s|=e&t,s&=e|~t&65535,s}const dV=({value:s,setValue:e,t,differentValues:i,applyToChildren:n,mask:r,setMask:o,disabled:a})=>{Te.useEffect(()=>{if(n){let h=0;for(let c=0;c<i.length;c++)h|=s^i[c];o(h)}else o(0)},[i,n,o,s]);let l=s;return L.jsx("div",{style:{display:"flex",width:"fit-content",margin:20,border:"1px solid",borderLeft:0},children:Pme.map(h=>{const c=Object.keys(h)[0];return L.jsxs("div",{style:{width:150,height:150,display:"flex",flexDirection:"column",alignItems:"center",borderLeft:"1px solid"},children:[L.jsx("div",{style:{height:50,display:"flex",alignItems:"center",fontSize:18,borderBottom:"1px solid silver",width:"100%",justifyContent:"center"},children:t(c)}),L.jsx("div",{style:{display:"flex",width:"100%"},children:h[c].map((u,d)=>{let f=!1;l-u.valueNum>=0&&(l-=u.valueNum,f=!0);const g=r&u.valueNum;return L.jsxs("div",{style:{display:"flex",flexDirection:"column",flex:1,alignItems:"center",borderRight:d===0?"1px solid":0},children:[L.jsx("div",{style:{height:50,borderBottom:"1px solid",width:"100%",justifyContent:"center",display:"flex",alignItems:"center",color:"silver"},children:t(u.name)}),L.jsx("div",{style:{height:50,display:"flex"},children:L.jsx(E.Checkbox,{disabled:a,checked:f,color:g?"primary":"secondary",indeterminate:!!g,style:g?{opacity:.5}:void 0,onChange:p=>{g&&(r&=~u.valueNum&65535,o(r));let m=s;p.target.checked?m|=u.valueNum:m&=~u.valueNum&65535,e(m)}})})]},u.valueNum)})})]},c)})})},Ome=({onClose:s,onApply:e,selected:t,extendObject:i,objects:n,t:r,modalEmptyId:o,themeType:a,theme:l})=>{const[h,c]=Te.useState(null),[u,d]=Te.useState(null),[f,g]=Te.useState([]),[p,m]=Te.useState([]),[v,_]=Te.useState(!1),[b,y]=Te.useState(!1),[C,x]=Te.useState(0),[S,k]=Te.useState(null),[T,I]=Te.useState(null),[N,A]=Te.useState(!1),[R,P]=Te.useState(!1),[B,z]=Te.useState([]),[U,K]=Te.useState([]),[X,ne]=Te.useState(0),[oe,ue]=Te.useState(0),[de,De]=Te.useState([]),[Q,Xe]=Te.useState(!1),[Pe,tt]=Te.useState(!0),st=r("different");return Te.useEffect(()=>{var Rv,Pg,Pv,Iu;let ve=0;const ge=[],Oe=[],Ci=t||o,Ht=`${Ci}.`,In=Object.keys(n).sort();let Ms=!1;const ir=[],Or=[],lo=ee.I18n.getLanguage();let ic=!1,nc=!1,sc=null,Ia=null,Fr=null,nr=null;const Ol=[];for(let ho=0;ho<In.length;ho++){const En=In[ho],bt=n[En];if(bt&&(En===Ci||En.startsWith(Ht))){if(ve++,Ol.push(En),!bt.acl)continue;Fr===null&&bt.acl.object!==void 0&&(Fr=bt.acl.object),nr===null&&bt.acl.state!==void 0&&(nr=bt.acl.state),sc===null&&bt.acl.owner!==void 0&&(sc=bt.acl.owner),Ia===null&&bt.acl.ownerGroup!==void 0&&(Ia=bt.acl.ownerGroup),!N&&sc!==bt.acl.owner&&bt.acl.owner!==void 0&&(ic=!0),!R&&Ia!==bt.acl.ownerGroup&&bt.acl.ownerGroup!==void 0&&(nc=!0),bt.acl.state!==void 0&&nr!==bt.acl.state&&!ge.includes(bt.acl.state)&&ge.push(bt.acl.state),bt.acl.object!==void 0&&Fr!==bt.acl.object&&!Oe.includes(bt.acl.object)&&Oe.push(bt.acl.object),bt.type==="state"&&(Ms=!0)}En.startsWith("system.group.")&&(bt==null?void 0:bt.type)==="group"?ir.push({name:ee.Utils.getObjectNameFromObj(bt,lo).replace("system.group.",""),value:En,icon:(Rv=bt.common)==null?void 0:Rv.icon,color:(Pg=bt.common)==null?void 0:Pg.color}):En.startsWith("system.user.")&&(bt==null?void 0:bt.type)==="user"&&Or.push({name:ee.Utils.getObjectNameFromObj(bt,lo).replace("system.user.",""),value:En,icon:(Pv=bt.common)==null?void 0:Pv.icon,color:(Iu=bt.common)==null?void 0:Iu.color})}sc=sc||n["system.config"].common.defaultNewAcl.owner,Ia=Ia||n["system.config"].common.defaultNewAcl.ownerGroup,Fr=Fr||n["system.config"].common.defaultNewAcl.object,k(Number.isNaN(Fr)?n["system.config"].common.defaultNewAcl.object:Fr),Ms&&(nr=nr||n["system.config"].common.defaultNewAcl.state,I(Number.isNaN(nr)?n["system.config"].common.defaultNewAcl.state:nr));const Ww=Or.find(ho=>ho.value===sc),Hw=ir.find(ho=>ho.value===Ia);c(Ww),d(Hw),A(ic),P(nc),g(Or),m(ir),Ms&&y(!0),o&&_(!0),x(ve),z(ge),K(Oe),De(Ol)},[n,t,R,N,o]),Te.useEffect(()=>{v?(R&&(u.value!=="different"&&d({name:st,value:"different"}),p.find(ve=>ve.value==="different")||m(ve=>[{name:st,value:"different"},...ve])),N&&((!h||h.value!=="different")&&c({name:st,value:"different"}),f.find(ve=>ve.value==="different")||g(ve=>[{name:st,value:"different"},...ve]))):(h&&h.value==="different"&&c(n[t].acl.owner),u&&u.value==="different"&&d(n[t].acl.ownerGroup),m(ve=>ve.filter(({value:ge})=>ge!=="different")),g(ve=>ve.filter(({value:ge})=>ge!=="different")))},[f,v,N,R,n,t,u,h,st,p]),de.length?L.jsx(Sie,{theme:l,titleButtonApply:"apply",overflowHidden:!0,disableApply:Pe,progress:Q,onClose:s,onApply:()=>{Xe(!0),setTimeout(()=>{if(v){const ve=~X&65535,ge=~oe&65535;for(let Oe=0;Oe<de.length;Oe++){const Ci=de[Oe],Ht=n[Ci],In=ee.Utils.clone(Ht.acl||{});In.object=uV(Ht.acl.object,S,ve),h&&h.value!=="different"&&(In.owner=h.value),u&&u.value!=="different"&&(In.ownerGroup=u.value),Ht.type==="state"&&(In.state=uV(Ht.acl.state,T,ge)),i(Ci,{acl:In})}}else{const ve=ee.Utils.clone(n[t].acl||{});ve.object=S,ve.owner=h?h.value:"system.user.admin",ve.ownerGroup=u?u.value:"system.group.administrator",n[t].type==="state"&&(ve.state=T),i(t,{acl:ve})}Xe(!1),e()},200)},children:L.jsxs("div",{style:{display:"flex",flexDirection:"column"},children:[L.jsx("div",{style:{margin:10,fontSize:20},children:r("Access control list: %s",t||o)}),L.jsxs("div",{style:{display:"flex"},children:[L.jsxs(E.FormControl,{variant:"standard",fullWidth:!0,style:{marginRight:10},children:[L.jsx(E.InputLabel,{children:r("Owner user")}),L.jsx(E.Select,{variant:"standard",disabled:Q,value:h?h.value:"",renderValue:()=>L.jsxs("span",{children:[h!=null&&h.icon?L.jsx(ee.Icon,{src:h.icon,style:{width:16,height:16,marginRight:8}}):null,h?h.name:""]}),style:(h==null?void 0:h.value)==="different"?{opacity:.5}:{color:(h==null?void 0:h.color)||void 0,backgroundColor:ee.Utils.getInvertedColor(h==null?void 0:h.color,a)},onChange:ve=>{const ge=f.find(Oe=>Oe.value===ve.target.value);c(ge),tt(!1)},children:f.map(ve=>L.jsxs(E.MenuItem,{style:ve.value==="different"?{opacity:.5}:{color:ve.color||void 0,backgroundColor:ee.Utils.getInvertedColor(ve.color,a)},value:ve.value,children:[ve.icon?L.jsx(ee.Icon,{src:ve.icon,style:{width:16,height:16,marginRight:8}}):null,ve.name]},ve.value))})]}),L.jsxs(E.FormControl,{variant:"standard",fullWidth:!0,children:[L.jsx(E.InputLabel,{children:r("Owner group")}),L.jsx(E.Select,{variant:"standard",disabled:Q,value:u?u.value:"",renderValue:()=>L.jsxs("span",{children:[u!=null&&u.icon?L.jsx(ee.Icon,{src:u.icon,style:{width:16,height:16,marginRight:8}}):null,u?u.name:""]}),style:(u==null?void 0:u.value)==="different"?{opacity:.5}:{color:(u==null?void 0:u.color)||void 0,backgroundColor:ee.Utils.getInvertedColor(u==null?void 0:u.color,a)},onChange:ve=>{const ge=p.find(Oe=>Oe.value===ve.target.value);d(ge),tt(!1)},children:p.map(ve=>L.jsxs(E.MenuItem,{value:ve.value,style:ve.value==="different"?{opacity:.5}:{color:ve.color||void 0,backgroundColor:ee.Utils.getInvertedColor(ve.color,a)},children:[ve.icon?L.jsx(ee.Icon,{src:ve.icon,style:{width:16,height:16,marginRight:8}}):null,ve.name]},ve.value))})]})]}),L.jsxs("div",{style:{display:"flex",margin:10,alignItems:"center",fontSize:10,marginLeft:0,color:"silver"},children:[L.jsx("div",{style:v?null:{color:"green"},children:r("to apply one item")}),L.jsx(E.Switch,{disabled:Q||!!o||C===1,checked:!!o||v,onChange:ve=>{_(ve.target.checked),tt(!1)},color:"primary"}),L.jsxs("div",{style:v?{color:"green"}:null,children:[r("to apply with children")," ",o||C>1?`(${C} ${r("object(s)")})`:""]})]}),Q&&L.jsx(E.LinearProgress,{}),L.jsxs("div",{style:{overflowY:"auto"},children:[L.jsxs("div",{children:[L.jsx("h2",{children:r("Object rights")}),L.jsx(dV,{mask:oe,disabled:Q,setMask:ue,applyToChildren:v,differentValues:U,t:r,setValue:ve=>{k(ve),tt(!1)},value:S})]}),b&&L.jsxs("div",{children:[L.jsx("h2",{children:r("States rights")}),L.jsx(dV,{mask:X,disabled:Q,setMask:ne,applyToChildren:v,differentValues:v?B:[],t:r,setValue:ve=>{I(ve),tt(!1)},value:T})]})]})]})}):L.jsx(E.LinearProgress,{})},tp={dialog:{height:"100%",maxHeight:"100%",maxWidth:"100%"},content:{textAlign:"center"},error:s=>({color:s.palette.mode==="dark"?"#ff7777":"#c20000"}),image:{height:"100%",width:"auto"},text:{fontFamily:"Lucida Console, Courier, monospace",width:"100%"},download:{textDecoration:"none",textTransform:"uppercase",fontSize:14,color:"white",border:"1px solid white",borderRadius:5,padding:"8px 16px",marginRight:8}};class Fme extends Te.Component{audioRef;constructor(e){super(e);const t=this.props.obj._id.split(".");this.state={error:"",image:null,text:null,binary:null,fileName:`${t[t.length-2]}.${t[t.length-1]}`},this.audioRef=uS.createRef()}componentDidMount(){this.props.socket.getBinaryState(this.props.obj._id).then(e=>{let t=this.props.obj._id.toLowerCase().split(".").pop();const i=ee.Utils.detectMimeType(e);if(i&&(t=i),t==="jpg")this.setState({image:!0,binary:e,mime:"image/jpeg"});else if(t==="svg")this.setState({image:!0,binary:e,mime:"image/svg+xml"});else if(t==="png"||t==="bmp")this.setState({image:!0,binary:e,mime:`image/${t}`});else if(t==="mp3")this.setState({audio:!0,binary:e,mime:"audio/mpeg"});else if(t==="ogg")this.setState({audio:!0,binary:e,mime:"audio/ogg"});else if(t==="txt"||t==="log")try{const n=btoa(e);this.setState({text:n,binary:e,mime:"text/plain"})}catch{}}).catch(e=>this.setState({error:e}))}render(){return L.jsxs(E.Dialog,{style:tp.dialog,open:!0,maxWidth:this.state.audio?"sm":"md",onClose:()=>this.props.onClose(),fullWidth:!0,"aria-labelledby":"object-view-dialog-title",children:[L.jsx(E.DialogTitle,{id:"object-view-dialog-title",children:this.props.t("View file in state: %s",this.props.obj._id)}),L.jsxs(E.DialogContent,{style:tp.content,children:[this.state.error?L.jsx(E.Box,{component:"div",sx:tp.error,children:this.state.error==="State is not binary"?this.props.t("No file stored yet"):this.props.t(this.state.error)}):null,this.state.audio?L.jsx("audio",{ref:this.audioRef,src:`data:${this.state.mime};base64,${this.state.binary}`}):null,this.state.audio?L.jsx(E.Fab,{color:"primary",onClick:()=>this.audioRef.current&&this.audioRef.current.play(),children:L.jsx(Ie.PlayArrow,{})}):null,this.state.image?L.jsx("img",{src:`data:${this.state.mime};base64,${this.state.binary}`,alt:this.props.obj._id,style:tp.image}):null,this.state.text!==null?L.jsx("pre",{style:tp.text,children:this.state.text}):null]}),L.jsxs(E.DialogActions,{children:[L.jsxs("a",{style:tp.download,download:this.state.fileName,href:`data:${this.state.mime};base64,${this.state.binary}`,children:[L.jsx(Ie.GetApp,{style:{paddingRight:8,height:12}}),L.jsx("span",{children:this.props.t("Download")})]}),L.jsx(E.Button,{variant:"contained",onClick:()=>this.props.onClose(),startIcon:L.jsx(Ie.Close,{}),color:"grey",children:this.props.t("Close")})]})]})}}const _n={funcIcon:{width:16,height:16},formControlLabel:{marginBottom:16},color:{width:70},typeNameEng:{marginLeft:8,opacity:.7,fontStyle:"italic",fontSize:"smaller"},usedInAlias:{},addNewAlias:s=>({backgroundColor:s.palette.primary.main})},Bme=["array","boolean","file","json","mixed","number","object","string"];class g1 extends Te.Component{aliasIDs;constructor(e){var n;super(e);const t=[],i=this.props.obj._id;this.aliasIDs=Object.keys(this.props.objects).filter(r=>r.startsWith("alias.0"));for(let r=0;r<this.aliasIDs.length;r++){const o=(n=this.props.objects[this.aliasIDs[r]].common)==null?void 0:n.alias;((o==null?void 0:o.id)===i||typeof(o==null?void 0:o.id)=="object"&&(o.id.read===i||o.id.write===i))&&t.push(this.aliasIDs[r])}this.state={usedInAliases:t,showAddNewAlias:!t.length,newAliasId:this.props.obj._id,newAliasName:g1.getText(this.props.obj.common.name||this.props.obj._id)||"",newAliasRole:this.props.obj.common.role||"",newAliasRead:this.props.obj.common.read,newAliasWrite:this.props.obj.common.write,newAliasUnit:this.props.obj.common.unit,newAliasDesc:g1.getText(this.props.obj.common.desc)||"",newAliasType:this.props.obj.common.type,newAliasMin:this.props.obj.common.min===void 0?"":this.props.obj.common.min.toString(),newAliasMax:this.props.obj.common.max===void 0?"":this.props.obj.common.max.toString(),newAliasUseFormula:!1,newAliasReadFormula:"val",newAliasWriteFormula:"val",newAliasColor:this.props.obj.common.color,newAliasIcon:this.props.obj.common.icon,newAliasCopyStates:!!this.props.obj.common.states}}static getText(e){return e?typeof e=="object"?e[ee.I18n.getLanguage()]||e.en||"":e.toString():""}static filterRoles(e,t){const i=[];return Bb.forEach(n=>(n.type==="mixed"||n.type===t)&&!i.includes(n.role)&&i.push(n.role)),e.forEach(n=>(n.type==="mixed"||n.type)===t&&!i.includes(n.role)&&i.push(n.role)),i.sort(),i}renderAddNewAlias(){return this.state.showAddNewAlias?L.jsxs(E.Dialog,{open:!0,onClose:()=>this.setState({showAddNewAlias:!1}),children:[L.jsx(E.DialogTitle,{children:ee.I18n.t("Create new alias: %s",`alias.0.${this.state.newAliasId}`)}),L.jsxs(E.DialogContent,{children:[L.jsx(E.TextField,{style:_n.formControlLabel,variant:"standard",value:this.state.newAliasId,slotProps:{input:{endAdornment:this.state.newAliasId?L.jsx(E.InputAdornment,{position:"end",children:L.jsx(E.IconButton,{tabIndex:-1,size:"small",onClick:()=>this.setState({newAliasId:""}),children:L.jsx(Ie.Close,{})})}):null}},onChange:e=>this.setState({newAliasId:e.target.value}),label:ee.I18n.t("Alias ID"),helperText:`alias.0.${this.state.newAliasId}`,fullWidth:!0}),L.jsx(E.TextField,{style:_n.formControlLabel,variant:"standard",value:this.state.newAliasName,slotProps:{input:{endAdornment:this.state.newAliasName?L.jsx(E.InputAdornment,{position:"end",children:L.jsx(E.IconButton,{tabIndex:-1,size:"small",onClick:()=>this.setState({newAliasName:""}),children:L.jsx(Ie.Close,{})})}):null}},onChange:e=>this.setState({newAliasName:e.target.value}),label:ee.I18n.t("Alias name"),fullWidth:!0}),L.jsx(E.TextField,{style:_n.formControlLabel,variant:"standard",value:this.state.newAliasDesc,slotProps:{input:{endAdornment:this.state.newAliasDesc?L.jsx(E.InputAdornment,{position:"end",children:L.jsx(E.IconButton,{tabIndex:-1,size:"small",onClick:()=>this.setState({newAliasDesc:""}),children:L.jsx(Ie.Close,{})})}):null}},onChange:e=>this.setState({newAliasDesc:e.target.value}),label:ee.I18n.t("Alias description"),fullWidth:!0}),L.jsxs(E.FormControl,{style:_n.formControlLabel,fullWidth:!0,children:[L.jsx(E.InputLabel,{children:ee.I18n.t("State type")}),L.jsx(E.Select,{variant:"standard",value:this.state.newAliasType,onChange:e=>this.setState({newAliasType:e.target.value}),children:Bme.map(e=>L.jsxs(E.MenuItem,{value:e,children:[ee.I18n.t(e),L.jsxs("span",{style:_n.typeNameEng,children:["(",e,")"]})]},e))})]}),this.state.newAliasType==="number"?L.jsx(E.TextField,{style:_n.formControlLabel,variant:"standard",value:this.state.newAliasUnit||"",slotProps:{input:{endAdornment:this.state.newAliasUnit?L.jsx(E.InputAdornment,{position:"end",children:L.jsx(E.IconButton,{tabIndex:-1,size:"small",onClick:()=>this.setState({newAliasUnit:""}),children:L.jsx(Ie.Close,{})})}):null}},onChange:e=>this.setState({newAliasUnit:e.target.value}),label:ee.I18n.t("Alias units"),fullWidth:!0}):null,this.state.newAliasType==="number"?L.jsx(E.TextField,{variant:"standard",value:this.state.newAliasMin,type:"number",error:this.state.newAliasMin?isNaN(parseFloat(this.state.newAliasMin)):!1,onChange:e=>this.setState({newAliasMin:e.target.value}),label:ee.I18n.t("Min"),style:{width:"calc(50% - 4px)",marginBottom:16,marginRight:8}}):null,this.state.newAliasType==="number"?L.jsx(E.TextField,{variant:"standard",value:this.state.newAliasMax,type:"number",error:this.state.newAliasMax?isNaN(parseFloat(this.state.newAliasMax)):!1,onChange:e=>this.setState({newAliasMax:e.target.value}),label:ee.I18n.t("Max"),fullWidth:!0,style:{width:"calc(50% - 4px)",marginBottom:16}}):null,L.jsx(E.TextField,{variant:"standard",style:{..._n.formControlLabel,..._n.color},label:ee.I18n.t("Color"),type:"color",value:this.state.newAliasColor,onChange:e=>this.setState({newAliasColor:e.target.value})}),L.jsx(E.Autocomplete,{style:{..._n.formControlLabel},fullWidth:!0,value:this.state.newAliasRole,onChange:(e,t)=>{const i=Bb.find(n=>n.role===t);if(i){if(i.w!==void 0&&i.r!==void 0){this.setState({newAliasRole:t,newAliasRead:i.r,newAliasWrite:i.w});return}if(i.w!==void 0){this.setState({newAliasRole:t,newAliasWrite:i.w});return}if(i.r!==void 0){this.setState({newAliasRole:t,newAliasRead:i.r});return}}if(t.startsWith("value")||t.startsWith("indicator")||t.startsWith("sensor")||t.startsWith("weather")){if(this.state.newAliasWrite){this.setState({newAliasRole:t,newAliasWrite:!1});return}}else if(t.startsWith("level")||t.startsWith("switch")){if(!this.state.newAliasWrite){this.setState({newAliasRole:t,newAliasWrite:!0});return}}else if(t.startsWith("button")&&this.state.newAliasRead){this.setState({newAliasRole:t,newAliasRead:!1});return}this.setState({newAliasRole:t})},options:g1.filterRoles(this.props.roleArray,this.state.newAliasType),renderInput:e=>L.jsx(E.TextField,{variant:"standard",...e,label:ee.I18n.t("Role")})}),L.jsx(E.FormControlLabel,{style:{..._n.formControlLabel,marginLeft:16},control:L.jsx(E.Checkbox,{indeterminate:this.state.newAliasRead===void 0||this.state.newAliasRead===null,checked:this.state.newAliasRead,onChange:e=>{const t={newAliasRead:e.target.checked};t.newAliasRead===!1&&this.state.newAliasWrite===!1&&(t.newAliasWrite=!0),this.setState(t)}}),label:ee.I18n.t("Alias read")}),L.jsx(E.FormControlLabel,{style:_n.formControlLabel,control:L.jsx(E.Checkbox,{indeterminate:this.state.newAliasWrite===void 0||this.state.newAliasWrite===null,checked:this.state.newAliasWrite,onChange:e=>{const t={newAliasWrite:e.target.checked};t.newAliasRead===!1&&this.state.newAliasWrite===!1&&(t.newAliasRead=!0),this.setState(t)}}),label:ee.I18n.t("Alias write")}),this.props.obj.common.states?L.jsx(E.FormControlLabel,{style:_n.formControlLabel,control:L.jsx(E.Checkbox,{checked:this.state.newAliasCopyStates,onChange:e=>this.setState({newAliasCopyStates:e.target.checked})}),label:ee.I18n.t("Copy states")}):null,L.jsx(E.FormControlLabel,{style:_n.formControlLabel,control:L.jsx(E.Checkbox,{checked:this.state.newAliasUseFormula,onChange:e=>this.setState({newAliasUseFormula:e.target.checked})}),label:ee.I18n.t("Use convert functions")}),this.state.newAliasUseFormula&&this.state.newAliasRead?L.jsx(E.TextField,{style:_n.formControlLabel,variant:"standard",value:this.state.newAliasReadFormula,onChange:e=>this.setState({newAliasReadFormula:e.target.value}),label:ee.I18n.t("Read formula"),helperText:`${ee.I18n.t("JS function like")} "val / 5 + 21"`,slotProps:{input:{endAdornment:this.state.newAliasReadFormula&&this.state.newAliasReadFormula!=="val"?L.jsx(E.InputAdornment,{position:"end",children:L.jsx(E.IconButton,{tabIndex:-1,size:"small",onClick:()=>this.setState({newAliasReadFormula:"val"}),children:L.jsx(Ie.Close,{})})}):null,startAdornment:L.jsx(E.InputAdornment,{position:"start",children:L.jsx(ee.IconFx,{style:_n.funcIcon})})}},fullWidth:!0}):null,this.state.newAliasUseFormula&&this.state.newAliasWrite?L.jsx(E.TextField,{style:_n.formControlLabel,variant:"standard",value:this.state.newAliasWriteFormula,onChange:e=>this.setState({newAliasWriteFormula:e.target.value}),label:ee.I18n.t("Write formula"),slotProps:{input:{endAdornment:this.state.newAliasWriteFormula&&this.state.newAliasWriteFormula!=="val"?L.jsx(E.InputAdornment,{position:"end",children:L.jsx(E.IconButton,{tabIndex:-1,size:"small",onClick:()=>this.setState({newAliasWriteFormula:"val"}),children:L.jsx(Ie.Close,{})})}):null,startAdornment:L.jsx(E.InputAdornment,{position:"start",children:L.jsx(ee.IconFx,{style:_n.funcIcon})})}},helperText:`${ee.I18n.t("JS function like")} "val / 5 + 21"`,fullWidth:!0}):null]}),L.jsxs(E.DialogActions,{children:[L.jsx(E.Button,{variant:"contained",disabled:!this.state.newAliasId||!!this.props.objects[`alias.0.${this.state.newAliasId}`],onClick:async()=>{const e={_id:`alias.0.${this.state.newAliasId}`,type:"state",common:{name:this.state.newAliasName,type:this.props.obj.common.type,alias:{id:this.props.obj._id}},native:{}};this.state.newAliasDesc&&(e.common.desc=this.state.newAliasDesc),this.state.newAliasType&&(e.common.type=this.state.newAliasType),this.state.newAliasType==="number"&&this.state.newAliasUnit&&(e.common.unit=this.state.newAliasUnit),this.state.newAliasRole&&(e.common.role=this.state.newAliasRole),this.state.newAliasType==="number"&&this.state.newAliasMin&&(e.common.min=parseFloat(this.state.newAliasMin)),this.state.newAliasType==="number"&&this.state.newAliasMax&&(e.common.max=parseFloat(this.state.newAliasMax)),this.state.newAliasRole&&(e.common.role=this.state.newAliasRole),this.state.newAliasRead!==void 0&&this.state.newAliasRead!==null&&(e.common.read=this.state.newAliasRead),this.state.newAliasWrite!==void 0&&this.state.newAliasWrite!==null&&(e.common.write=this.state.newAliasWrite),this.state.newAliasColor&&(e.common.color=this.state.newAliasColor),this.state.newAliasIcon&&(e.common.icon=this.state.newAliasIcon),this.state.newAliasCopyStates&&this.props.obj.common.states&&(e.common.states=this.props.obj.common.states),this.state.newAliasUseFormula&&(e.common.read!==!1&&this.state.newAliasReadFormula&&this.state.newAliasReadFormula!=="val"&&(e.common.alias.read=this.state.newAliasReadFormula),e.common.write!==!1&&this.state.newAliasWriteFormula&&this.state.newAliasWriteFormula!=="val"&&(e.common.alias.write=this.state.newAliasWriteFormula)),await this.props.socket.setObject(e._id,e),this.setState({showAddNewAlias:!1}),this.props.onRedirect(e._id,2e3),this.props.onClose()},startIcon:L.jsx(Ie.AddLink,{}),color:"primary",children:this.props.t("Create")}),L.jsx(E.Button,{variant:"contained",onClick:()=>this.setState({showAddNewAlias:!1}),startIcon:L.jsx(Ie.Close,{}),color:"grey",children:this.props.t("Close")})]})]}):null}render(){return L.jsxs(E.Dialog,{open:!0,maxWidth:"sm",onClose:()=>this.props.onClose(),fullWidth:!0,"aria-labelledby":"object-alias-dialog-title",children:[this.renderAddNewAlias(),L.jsx(E.DialogTitle,{id:"object-alias-dialog-title",children:this.state.usedInAliases.length?ee.I18n.t("This object is used in aliases"):ee.I18n.t("This object does not used in any aliases yet")}),L.jsx(E.DialogContent,{children:L.jsxs(E.MenuList,{style:{maxWidth:400},children:[this.state.usedInAliases.map(e=>L.jsxs(E.MenuItem,{style:_n.usedInAlias,onClick:()=>this.props.onRedirect(e),children:[L.jsx(E.ListItemIcon,{children:L.jsx(Ie.Link,{fontSize:"small"})}),L.jsx(E.ListItemText,{children:e})]},e)),L.jsxs(E.MenuItem,{onClick:()=>this.setState({showAddNewAlias:!0}),sx:_n.addNewAlias,children:[L.jsx(E.ListItemIcon,{children:L.jsx(Ie.AddLink,{fontSize:"small"})}),L.jsx(E.ListItemText,{children:ee.I18n.t("Create alias from this ID")})]})]})}),L.jsx(E.DialogActions,{children:L.jsx(E.Button,{variant:"contained",onClick:()=>this.props.onClose(),startIcon:L.jsx(Ie.Close,{}),color:"grey",children:this.props.t("Close")})})]},"editAlias")}}class R4 extends Te.Component{checkTimer=null;objects={};constructor(e){super(e);const t=this.props.id.split("."),i=t.pop()||"";this.state={name:i,parentId:t.join("."),renameAllChildren:!0,newExists:!0,showParentDialog:!1,showHistoryWarning:!1,withHistory:[]}}componentWillUnmount(){this.checkTimer&&(clearTimeout(this.checkTimer),this.checkTimer=null)}static calculateNewId(e,t,i){const n=e.split("."),r=t.split(".");let o=0;for(;n[o]===r[o];)o++;const a=i.split(".");return a.splice(0,o+1),`${t}.${a.join(".")}`}async getInstancesWithHistory(){const e=await this.props.socket.getAdapterInstances();return e==null?void 0:e.filter(t=>t.common.getHistory).map(t=>t._id.replace("system.adapter.",""))}async checkHistory(){this.objects={};const e=await this.getInstancesWithHistory(),t=[];try{const i=await this.props.socket.getObject(this.props.id);i&&(this.objects[i._id]=i)}catch{}for(const i of this.props.childrenIds)try{const n=await this.props.socket.getObject(i);n&&(this.objects[n._id]=n)}catch{}return Object.values(this.objects).forEach(i=>{var n;(n=i.common)!=null&&n.custom&&Object.keys(i.common.custom).find(r=>e.includes(r)&&!i.common.custom[r].aliasId)&&t.push(i._id)}),t.length?(this.setState({showHistoryWarning:!0,withHistory:t}),!1):!0}showHistoryWarning(){return this.state.showHistoryWarning?L.jsxs(E.Dialog,{open:!0,onClose:()=>this.setState({showHistoryWarning:!1}),children:[L.jsx(E.DialogTitle,{children:this.props.t("Found states with history")}),L.jsxs(E.DialogContent,{children:[this.state.withHistory.length>2?this.props.t("You want to move %s states with enabled history",this.state.withHistory.length):`${this.props.t("Following states have history enabled")}: ${this.state.withHistory.join(", ")}`,L.jsx("div",{children:this.props.t("move_states_with_history_warning")})]}),L.jsxs(E.DialogActions,{children:[L.jsx(E.Button,{variant:"contained",color:"primary",onClick:async()=>{const e=`${this.state.parentId}.${this.state.name}`;await this.renameCopyObject(this.props.id,e,this.props.childrenIds.length&&this.state.renameAllChildren,!1),this.props.onClose()},startIcon:L.jsx(Ie.Check,{}),children:this.props.t("Confirm")}),L.jsx(E.Button,{color:"grey",variant:"contained",startIcon:L.jsx(Ie.Close,{}),onClick:()=>this.setState({showHistoryWarning:!1}),children:this.props.t("ra_Cancel")})]})]}):null}async renameCopyObject(e,t,i,n){var a;if(e===t)return;let r;try{r=((a=this.objects)==null?void 0:a[e])||await this.props.socket.getObject(e)}catch{}let o;if((r==null?void 0:r.type)==="state"&&(o=await this.props.socket.getState(e)),i)for(const l of this.props.childrenIds){const h=R4.calculateNewId(e,t,l);await this.renameCopyObject(l,h,!1,n)}r&&(await this.props.socket.setObject(t,r),o&&await this.props.socket.setState(t,o),n||await this.props.socket.delObject(e))}checkIfNewExists(){const e=`${this.state.parentId}.${this.state.name}`;this.checkTimer&&(clearTimeout(this.checkTimer),this.checkTimer=null),this.props.id===e?this.state.newExists||(this.checkTimer=setTimeout(()=>{this.checkTimer=null,this.setState({newExists:!0})},50)):this.checkTimer=setTimeout(async()=>{this.checkTimer=null;try{const t=await this.props.socket.getObject(e);t&&!this.state.newExists?this.setState({newExists:!0}):!t&&this.state.newExists&&this.setState({newExists:!1})}catch{this.state.newExists&&this.setState({newExists:!1})}},300)}renderParentSelectorDialog(){return this.state.showParentDialog?L.jsx(ee.SelectID,{foldersFirst:!0,imagePrefix:"../..",expertMode:this.props.expertMode,socket:this.props.socket,columns:["name","type","role","room","func"],types:["folder","channel","device","meta"],notEditable:!0,selected:this.state.parentId,allowNonObjects:!0,filterFunc:e=>this.props.expertMode?!0:e._id.startsWith("0_userdata.0")||e._id.startsWith("javascript."),theme:this.props.theme,onSelectConfirm:(e,t)=>{let i;return Array.isArray(e)?i=e[0]:i=e,i.split(".").length<=1||t[i]&&(t[i].type==="state"||i.startsWith("system."))?Promise.resolve(!1):Promise.resolve(!0)},onClose:()=>this.setState({showParentDialog:!1}),onOk:e=>{let t;Array.isArray(e)?t=e[0]:t=e,t&&t.split(".").length>1&&this.setState({parentId:t})}}):null}render(){const e=`${this.state.parentId}.${this.state.name}`;return L.jsxs(E.Dialog,{open:!0,maxWidth:"md",fullWidth:!0,onClose:()=>this.props.onClose(),children:[this.renderParentSelectorDialog(),this.showHistoryWarning(),L.jsxs(E.DialogTitle,{children:[L.jsxs("span",{style:{opacity:.6,marginRight:8},children:[this.props.t("Rename or copy object")," -"]}),L.jsx("span",{style:{fontWeight:"bold"},children:this.props.id})]}),L.jsxs(E.DialogContent,{children:[L.jsxs("div",{style:{display:"flex",gap:8,alignItems:"end",opacity:.7},children:[L.jsx(E.TextField,{fullWidth:!0,variant:"standard",label:this.props.t("Parent ID"),value:`${this.state.parentId}.`,slotProps:{input:{readOnly:!0}}}),L.jsx(E.Button,{variant:"outlined",style:{maxWidth:40,width:40,height:32},onClick:()=>this.setState({showParentDialog:!0}),children:"..."})]}),L.jsx(E.TextField,{value:this.state.name,onChange:t=>{const i=t.target.value.replace(ee.Utils.FORBIDDEN_CHARS,"_").replace(/\./g,"_").replace(/\s/g,"_").replace(/,/g,"_").replace(/__/g,"_").replace(/__/g,"_");this.setState({name:i},()=>this.checkIfNewExists())},style:{marginTop:20},autoFocus:!0,variant:"standard",fullWidth:!0,label:this.props.t("New object ID")}),this.props.childrenIds.length?L.jsx(E.FormControlLabel,{control:L.jsx(E.Checkbox,{checked:this.state.renameAllChildren,onChange:()=>{this.setState({renameAllChildren:!this.state.renameAllChildren})}}),label:this.props.t("Rename all children")}):null,L.jsxs("div",{children:[L.jsxs("span",{style:{opacity:.6,marginRight:8,fontSize:16},children:[this.props.t("New object ID"),":"]}),L.jsx("span",{style:{fontWeight:"bold",fontSize:16},children:e})]})]}),L.jsxs(E.DialogActions,{children:[L.jsx(E.Button,{disabled:!this.state.name||e===this.props.id,color:"primary",variant:"outlined",onClick:async()=>{await this.renameCopyObject(this.props.id,e,this.props.childrenIds.length&&this.state.renameAllChildren,!0),this.props.onClose()},children:this.props.t("Create a copy")}),L.jsx(E.Button,{disabled:!this.state.name||e===this.props.id,color:"primary",variant:"contained",onClick:async()=>{await this.checkHistory()&&(await this.renameCopyObject(this.props.id,e,this.props.childrenIds.length&&this.state.renameAllChildren,!1),this.props.onClose())},children:e!==this.props.id&&this.state.newExists?this.props.t("Replace"):this.props.t("Rename")}),L.jsx(E.Button,{variant:"contained",color:"grey",onClick:()=>this.props.onClose(),startIcon:L.jsx(Ie.Close,{}),children:this.props.t("ra_Cancel")})]})]})}}function Vme(s){if(s.length===0)throw new Error("Invalid tail call");return[s.slice(0,s.length-1),s[s.length-1]]}function Ei(s,e,t=(i,n)=>i===n){if(s===e)return!0;if(!s||!e||s.length!==e.length)return!1;for(let i=0,n=s.length;i<n;i++)if(!t(s[i],e[i]))return!1;return!0}function Wme(s,e){const t=s.length-1;e<t&&(s[e]=s[t]),s.pop()}function Hme(s,e,t){return eX(s.length,i=>t(s[i],e))}function eX(s,e){let t=0,i=s-1;for(;t<=i;){const n=(t+i)/2|0,r=e(n);if(r<0)t=n+1;else if(r>0)i=n-1;else return n}return-(t+1)}function*P4(s,e){let t,i;for(const n of s)i!==void 0&&e(i,n)?t.push(n):(t&&(yield t),t=[n]),i=n;t&&(yield t)}function tX(s,e){for(let t=0;t<=s.length;t++)e(t===0?void 0:s[t-1],t===s.length?void 0:s[t])}function zme(s,e){for(let t=0;t<s.length;t++)e(t===0?void 0:s[t-1],s[t],t+1===s.length?void 0:s[t+1])}function O4(s){return s.filter(e=>!!e)}function fV(s){let e=0;for(let t=0;t<s.length;t++)s[t]&&(s[e]=s[t],e+=1);s.length=e}function jme(s){return!Array.isArray(s)||s.length===0}function fD(s){return Array.isArray(s)&&s.length>0}function Kf(s,e=t=>t){const t=new Set;return s.filter(i=>{const n=e(i);return t.has(n)?!1:(t.add(n),!0)})}function qn(s,e){let t=typeof e=="number"?s:0;typeof e=="number"?t=s:(t=0,e=s);const i=[];if(t<=e)for(let n=t;n<e;n++)i.push(n);else for(let n=t;n>e;n--)i.push(n);return i}function gD(s,e,t){const i=s.slice(0,e),n=s.slice(e);return i.concat(t,n)}function K2(s,e){const t=s.indexOf(e);t>-1&&(s.splice(t,1),s.unshift(e))}function xy(s,e){const t=s.indexOf(e);t>-1&&(s.splice(t,1),s.push(e))}function HN(s,e){for(const t of e)s.push(t)}function Ume(s,e,t){const i=iX(s,e),n=s.length,r=t.length;s.length=n+r;for(let o=n-1;o>=i;o--)s[o+r]=s[o];for(let o=0;o<r;o++)s[o+i]=t[o]}function HS(s,e,t,i){const n=iX(s,e);let r=s.splice(n,t);return r===void 0&&(r=[]),Ume(s,n,i),r}function iX(s,e){return e<0?Math.max(e+s.length,0):Math.min(e,s.length)}var Vb;(function(s){function e(r){return r<0}s.isLessThan=e;function t(r){return r<=0}s.isLessThanOrEqual=t;function i(r){return r>0}s.isGreaterThan=i;function n(r){return r===0}s.isNeitherLessOrGreaterThan=n,s.greaterThan=1,s.lessThan=-1,s.neitherLessOrGreaterThan=0})(Vb||(Vb={}));function Ir(s,e){return(t,i)=>e(s(t),s(i))}function $me(...s){return(e,t)=>{for(const i of s){const n=i(e,t);if(!Vb.isNeitherLessOrGreaterThan(n))return n}return Vb.neitherLessOrGreaterThan}}const Fh=(s,e)=>s-e,Gme=(s,e)=>Fh(s?1:0,e?1:0);function qme(s){return(e,t)=>-s(e,t)}class Uh{constructor(e){this.firstIdx=0,this.items=e,this.lastIdx=this.items.length-1}get length(){return this.lastIdx-this.firstIdx+1}takeWhile(e){let t=this.firstIdx;for(;t<this.items.length&&e(this.items[t]);)t++;const i=t===this.firstIdx?null:this.items.slice(this.firstIdx,t);return this.firstIdx=t,i}takeFromEndWhile(e){let t=this.lastIdx;for(;t>=0&&e(this.items[t]);)t--;const i=t===this.lastIdx?null:this.items.slice(t+1,this.lastIdx+1);return this.lastIdx=t,i}peek(){if(this.length!==0)return this.items[this.firstIdx]}dequeue(){const e=this.items[this.firstIdx];return this.firstIdx++,e}takeCount(e){const t=this.items.slice(this.firstIdx,this.firstIdx+e);return this.firstIdx+=e,t}}const Yp=class Yp{constructor(e){this.iterate=e}toArray(){const e=[];return this.iterate(t=>(e.push(t),!0)),e}filter(e){return new Yp(t=>this.iterate(i=>e(i)?t(i):!0))}map(e){return new Yp(t=>this.iterate(i=>t(e(i))))}findLast(e){let t;return this.iterate(i=>(e(i)&&(t=i),!0)),t}findLastMaxBy(e){let t,i=!0;return this.iterate(n=>((i||Vb.isGreaterThan(e(n,t)))&&(i=!1,t=n),!0)),t}};Yp.empty=new Yp(e=>{});let mf=Yp;class Kme{constructor(){this.listeners=[],this.unexpectedErrorHandler=function(e){setTimeout(()=>{throw e.stack?Km.isErrorNoTelemetry(e)?new Km(e.message+`
|
|
39
|
+
${o.getFullYear()}`}}},yAxis:i,toolbox:{left:"right",feature:this.props.noToolbar?void 0:{saveAsImage:{title:this.props.t("Save as image"),show:!0}}},series:[t]}}static getDerivedStateFromProps(e,t){return null}updateChart(e,t,i,n){e&&(this.start=e),t&&(this.end=t),e=e||this.start,t=t||this.end,this.readTimeout&&clearTimeout(this.readTimeout),this.readTimeout=setTimeout(()=>{var o;this.readTimeout=null;const r=this.chart.max-this.chart.min;r!==this.chart.diff&&(this.chart.diff=r,this.chart.withTime=this.chart.diff<36e5*24*7,this.chart.withSeconds=this.chart.diff<6e4*30),i?this.readHistory(e,t).then(a=>{var l;typeof((l=this.echartsReact)==null?void 0:l.getEchartsInstance)=="function"&&this.echartsReact.getEchartsInstance().setOption({series:[{data:this.convertData(a)}],xAxis:{min:this.chart.min,max:this.chart.max}}),n&&n()}):(typeof((o=this.echartsReact)==null?void 0:o.getEchartsInstance)=="function"&&this.echartsReact.getEchartsInstance().setOption({series:[{data:this.convertData()}],xAxis:{min:this.chart.min,max:this.chart.max}}),n&&n())},400)}setNewRange(e){var t;this.chart.diff=this.chart.max-this.chart.min,this.chart.withTime=this.chart.diff<36e5*24*7,this.chart.withSeconds=this.chart.diff<6e4*30,this.state.relativeRange!=="absolute"?(this.setState({relativeRange:"absolute"}),this.timeTimer&&(clearTimeout(this.timeTimer),this.timeTimer=null)):typeof((t=this.echartsReact)==null?void 0:t.getEchartsInstance)=="function"&&(this.echartsReact.getEchartsInstance().setOption({xAxis:{min:this.chart.min,max:this.chart.max}}),e&&this.updateChart(this.chart.min,this.chart.max,!0))}shiftTime(){const e=new Date,t=6e4-e.getSeconds()-(1e3-e.getMilliseconds());e.getMilliseconds()&&e.setMilliseconds(1e3),e.getSeconds()&&e.setSeconds(60);const i=e.getTime();let n;const r=this.state.relativeRange;if(r==="day")e.setHours(0),e.setMinutes(0),e.setSeconds(0),n=e.getTime();else if(r==="week"){e.setHours(0),e.setMinutes(0),e.setSeconds(0);const o=e.getDay()||7;o!==1&&e.setHours(-24*(o-1)),n=e.getTime()}else if(r==="2weeks"){e.setHours(0),e.setMinutes(0),e.setSeconds(0),e.setDate(e.getDate()-7);const o=e.getDay()||7;o!==1&&e.setHours(-24*(o-1)),n=e.getTime()}else r==="month"?(e.setHours(0),e.setMinutes(0),e.setSeconds(0),e.setDate(1),n=e.getTime()):r==="year"?(e.setHours(0),e.setMinutes(0),e.setSeconds(0),e.setDate(1),e.setMonth(0),n=e.getTime()):r==="12months"?(e.setHours(0),e.setMinutes(0),e.setSeconds(0),e.setFullYear(e.getFullYear()-1),n=e.getTime()):n=i-parseInt(r,10)*6e4;this.chart.min=n,this.chart.max=i,this.setState({min:n,max:i},()=>this.updateChart(this.chart.min,this.chart.max,!0)),this.timeTimer=setTimeout(()=>{this.timeTimer=null,this.shiftTime()},t||6e4)}setRelativeInterval(e,t,i){if(t||(this.localStorage.setItem("App.relativeRange",e),this.setState({relativeRange:e})),e==="absolute"){this.timeTimer&&(clearTimeout(this.timeTimer),this.timeTimer=null),this.updateChart(this.chart.min,this.chart.max,!0,i);return}this.localStorage.removeItem("App.absoluteStart"),this.localStorage.removeItem("App.absoluteEnd");const n=new Date;if(!this.timeTimer){const r=6e4-n.getSeconds()-(1e3-n.getMilliseconds());this.timeTimer=setTimeout(()=>{this.timeTimer=null,this.shiftTime()},r||6e4)}if(n.getMilliseconds()&&n.setMilliseconds(1e3),n.getSeconds()&&n.setSeconds(60),this.chart.max=n.getTime(),e==="day")n.setHours(0),n.setMinutes(0),n.setSeconds(0),this.chart.min=n.getTime();else if(e==="week"){n.setHours(0),n.setMinutes(0),n.setSeconds(0);const r=n.getDay()||7;r!==1&&n.setHours(-24*(r-1)),this.chart.min=n.getTime()}else if(e==="2weeks"){n.setHours(0),n.setMinutes(0),n.setSeconds(0),n.setDate(n.getDate()-7);const r=n.getDay()||7;r!==1&&n.setHours(-24*(r-1)),this.chart.min=n.getTime()}else e==="month"?(n.setHours(0),n.setMinutes(0),n.setSeconds(0),n.setDate(1),this.chart.min=n.getTime()):e==="year"?(n.setHours(0),n.setMinutes(0),n.setSeconds(0),n.setDate(1),n.setMonth(0),this.chart.min=n.getTime()):e==="12months"?(n.setHours(0),n.setMinutes(0),n.setSeconds(0),n.setFullYear(n.getFullYear()-1),this.chart.min=n.getTime()):this.chart.min=this.chart.max-parseInt(e,10)*6e4;this.setState({min:this.chart.min,max:this.chart.max},()=>this.updateChart(this.chart.min,this.chart.max,!0,i))}installEventHandlers(){if(!this.echartsReact||typeof this.echartsReact.getEchartsInstance!="function")return;const e=this.echartsReact.getEchartsInstance().getZr();e._iobInstalled||(e._iobInstalled=!0,e.on("mousedown",t=>{console.log("mouse down"),this.mouseDown=!0,this.chart.lastX=t.offsetX}),e.on("mouseup",()=>{console.log("mouse up"),this.mouseDown=!1,this.setNewRange(!0)}),e.on("mousewheel",t=>{let i=this.chart.max-this.chart.min;const n=this.state.chartWidth-Qu-ar,o=(t.offsetX-ar)/n,a=i,l=t.wheelDelta>0?1.1:.9;i*=l;const h=a-i;this.chart.max+=h*(1-o),this.chart.min-=h*o,this.setNewRange()}),e.on("mousemove",t=>{if(this.mouseDown){const i=this.chart.lastX-(t.offsetX-ar);this.chart.lastX=t.offsetX-ar;const n=this.chart.max-this.chart.min,r=this.state.chartWidth-Qu-ar,o=Math.round(i*n/r);this.chart.min+=o,this.chart.max+=o,this.setNewRange()}}),e.on("touchstart",t=>{t.preventDefault(),this.mouseDown=!0;const i=t.touches||t.originalEvent.touches;i&&(this.chart.lastX=i[i.length-1].pageX,i.length>1?this.chart.lastWidth=Math.abs(i[0].pageX-i[1].pageX):this.chart.lastWidth=null)}),e.on("touchend",t=>{t.preventDefault(),this.mouseDown=!1,this.setNewRange(!0)}),e.on("touchmove",t=>{t.preventDefault();const i=t.touches||t.originalEvent.touches;if(!i)return;const n=i[i.length-1].pageX-ar;if(this.mouseDown)if(i.length>1){const r=Math.abs(i[0].pageX-i[1].pageX);if(this.chart.lastWidth!==null&&r!==this.chart.lastWidth){let o=this.chart.max-this.chart.min;const a=this.state.chartWidth-Qu-ar,l=r>this.chart.lastWidth?1.1:.9,c=(i[0].pageX>i[1].pageX?i[1].pageX-ar+r/2:i[0].pageX-ar+r/2)/a,u=o;o*=l;const d=u-o;this.chart.max+=d*(1-c),this.chart.min-=d*c,this.setNewRange()}this.chart.lastWidth=r}else{const r=this.chart.lastX-n,o=this.chart.max-this.chart.min,a=this.state.chartWidth-Qu-ar,l=Math.round(r*o/a);this.chart.min+=l,this.chart.max+=l,this.setNewRange()}this.chart.lastX=n}))}renderChart(){var e;return this.state.historyInstance?(e=this.state.historyInstances)!=null&&e.find(t=>t.id===this.state.historyInstance&&t.alive)?this.chartValues?L.jsx(nne,{ref:t=>this.echartsReact=t,echarts:Lde,option:this.getOption(),notMerge:!0,lazyUpdate:!0,theme:this.props.themeType==="dark"?"dark":"",style:{height:`${this.state.chartHeight}px`,width:"100%"},opts:{renderer:"svg"},onEvents:{rendered:()=>this.installEventHandlers()}}):L.jsx(E.LinearProgress,{}):L.jsx("div",{style:{marginTop:20,fontSize:24,marginLeft:24},children:this.props.t("History instance not alive")}):L.jsx("div",{style:{marginTop:20,fontSize:24,marginLeft:24},children:this.props.t("History instance not selected")})}componentDidUpdate(){if(this.divRef.current){const e=this.divRef.current.offsetWidth,t=this.divRef.current.offsetHeight;this.state.chartHeight!==t&&(this.updateTimer&&clearTimeout(this.updateTimer),this.updateTimer=setTimeout(()=>{this.updateTimer=null,this.setState({chartHeight:t,chartWidth:e})},100))}}setStartDate(e){const t=e.getTime();this.timeTimer&&(clearTimeout(this.timeTimer),this.timeTimer=null),this.localStorage.setItem("App.relativeRange","absolute"),this.localStorage.setItem("App.absoluteStart",t.toString()),this.localStorage.setItem("App.absoluteEnd",this.state.max.toString()),this.chart.min=t,this.setState({min:t,relativeRange:"absolute"},()=>this.updateChart(this.chart.min,this.chart.max,!0))}setEndDate(e){const t=e.getTime();this.localStorage.setItem("App.relativeRange","absolute"),this.localStorage.setItem("App.absoluteStart",this.state.min.toString()),this.localStorage.setItem("App.absoluteEnd",t.toString()),this.timeTimer&&(clearTimeout(this.timeTimer),this.timeTimer=null),this.chart.max=t,this.setState({max:t,relativeRange:"absolute"},()=>this.updateChart(this.chart.min,this.chart.max,!0))}openEcharts(){const e=[`id=${window.encodeURIComponent(this.props.obj._id)}`,`instance=${window.encodeURIComponent(this.state.historyInstance)}`,"menuOpened=false"];this.state.relativeRange==="absolute"?(e.push(`start=${this.chart.min}`),e.push(`end=${this.chart.max}`)):e.push(`range=${this.state.relativeRange}`),window.open(`${window.location.protocol}//${window.location.host}/adapter/echarts/tab.html#${e.join("&")}`,"echarts")}async onStepChanged(e){const t=await this.props.socket.getObject(this.props.obj._id);t.common.custom&&t.common.custom[this.state.historyInstance]&&t.common.custom[this.state.historyInstance].chartStep!==e&&(t.common.custom[this.state.historyInstance].chartStep=e,await this.props.socket.setObject(t._id,t)),this.setState({stepType:e,showStepMenu:null})}renderToolbar(){if(this.props.noToolbar)return null;const e=this.state.windowWidth<960;return L.jsxs(E.Toolbar,{children:[!this.props.historyInstance&&L.jsxs(E.FormControl,{variant:"standard",style:on.selectHistoryControl,children:[L.jsx(E.InputLabel,{children:this.props.t("History instance")}),L.jsx(E.Select,{variant:"standard",value:this.state.historyInstance,onChange:t=>{this.localStorage.setItem("App.historyInstance",t.target.value),this.setState({historyInstance:t.target.value})},children:this.state.historyInstances.map(t=>L.jsx(E.MenuItem,{value:t.id,style:t.alive?void 0:on.notAliveInstance,children:t.id},t.id))})]}),L.jsxs(E.FormControl,{variant:"standard",style:on.selectRelativeTime,children:[L.jsx(E.InputLabel,{children:this.props.t("Relative")}),L.jsxs(E.Select,{variant:"standard",ref:this.rangeRef,value:this.state.relativeRange,onChange:t=>this.setRelativeInterval(t.target.value),children:[L.jsx(E.MenuItem,{value:"absolute",sx:on.customRange,children:this.props.t("custom range")},"custom"),L.jsx(E.MenuItem,{value:10,children:this.props.t("last 10 minutes")},"1"),L.jsx(E.MenuItem,{value:30,children:this.props.t("last 30 minutes")},"2"),L.jsx(E.MenuItem,{value:60,children:this.props.t("last hour")},"3"),L.jsx(E.MenuItem,{value:"day",children:this.props.t("this day")},"4"),L.jsx(E.MenuItem,{value:1440,children:this.props.t("last 24 hours")},"5"),L.jsx(E.MenuItem,{value:"week",children:this.props.t("this week")},"6"),L.jsx(E.MenuItem,{value:1440*7,children:this.props.t("last week")},"7"),L.jsx(E.MenuItem,{value:"2weeks",children:this.props.t("this 2 weeks")},"8"),L.jsx(E.MenuItem,{value:1440*14,children:this.props.t("last 2 weeks")},"9"),L.jsx(E.MenuItem,{value:"month",children:this.props.t("this month")},"10"),L.jsx(E.MenuItem,{value:720*60,children:this.props.t("last 30 days")},"11"),L.jsx(E.MenuItem,{value:"year",children:this.props.t("this year")},"12"),L.jsx(E.MenuItem,{value:"12months",children:this.props.t("last 12 months")},"13")]})]}),L.jsxs(_s.LocalizationProvider,{dateAdapter:dS,adapterLocale:gS[this.props.lang],children:[L.jsxs("div",{style:on.toolbarTimeGrid,children:[L.jsx("div",{style:{...on.toolbarTimeLabel,opacity:this.state.relativeRange!=="absolute"?.5:void 0},children:this.props.t("Start time")}),L.jsx(_s.DatePicker,{sx:on.toolbarDate,disabled:this.state.relativeRange!=="absolute",value:new Date(this.state.min),onChange:t=>this.setStartDate(t)}),L.jsx(_s.TimePicker,{disabled:this.state.relativeRange!=="absolute",sx:on.toolbarTime,ampm:this.state.ampm,value:new Date(this.state.min),onChange:t=>this.setStartDate(t)})]}),L.jsxs("div",{style:on.toolbarTimeGrid,children:[L.jsx("div",{style:{...on.toolbarTimeLabel,opacity:this.state.relativeRange!=="absolute"?.5:void 0},children:this.props.t("End time")}),L.jsx(_s.DatePicker,{disabled:this.state.relativeRange!=="absolute",sx:on.toolbarDate,value:new Date(this.state.max),onChange:t=>this.setEndDate(t)}),L.jsx(_s.TimePicker,{disabled:this.state.relativeRange!=="absolute",sx:on.toolbarTime,ampm:this.state.ampm,value:new Date(this.state.max),onChange:t=>this.setEndDate(t)})]})]}),L.jsx("div",{style:on.grow}),L.jsx(E.Button,{style:{marginRight:10},variant:"outlined",onClick:t=>this.setState({showStepMenu:t.target}),children:e?this.state.stepType===""?L.jsx(Ie.Remove,{}):this.state.stepType==="stepStart"?L.jsx(Ie.KeyboardArrowRight,{}):this.state.stepType==="stepMiddle"?L.jsx(Ie.MoreHoriz,{}):this.state.stepType==="stepEnd"?L.jsx(Ie.KeyboardArrowLeft,{}):this.props.t("Step type"):this.state.stepType?this.props.t(this.state.stepType):this.props.t("Step type")}),this.state.showStepMenu?L.jsxs(E.Menu,{open:!0,anchorEl:this.state.showStepMenu,onClose:()=>this.setState({showStepMenu:null}),children:[L.jsx(E.MenuItem,{selected:this.state.stepType==="",onClick:()=>this.onStepChanged(""),children:e?L.jsx(Ie.Remove,{}):this.props.t("None")}),L.jsx(E.MenuItem,{selected:this.state.stepType==="stepStart",onClick:()=>this.onStepChanged("stepStart"),children:e?L.jsx(Ie.KeyboardArrowRight,{}):this.props.t("stepStart")}),L.jsx(E.MenuItem,{selected:this.state.stepType==="stepMiddle",onClick:()=>this.onStepChanged("stepMiddle"),children:e?L.jsx(Ie.MoreHoriz,{}):this.props.t("stepMiddle")}),L.jsx(E.MenuItem,{selected:this.state.stepType==="stepEnd",onClick:()=>this.onStepChanged("stepEnd"),children:e?L.jsx(Ie.KeyboardArrowLeft,{}):this.props.t("stepEnd")})]}):null,this.props.showJumpToEchart&&this.state.echartsJump&&L.jsx(E.Fab,{style:on.echartsButton,size:"small",onClick:()=>this.openEcharts(),title:this.props.t("Open charts in new window"),children:L.jsx("img",{src:Ime,alt:"echarts",style:on.buttonIcon})}),L.jsxs(E.Fab,{variant:"extended",size:"small",color:this.state.splitLine?"primary":"default","aria-label":"show lines",onClick:()=>{this.localStorage.setItem("App.splitLine",this.state.splitLine?"false":"true"),this.setState({splitLine:!this.state.splitLine})},children:[L.jsx(yie,{style:on.splitLineButtonIcon}),this.props.t("Show lines")]})]})}render(){return!this.state.historyInstances&&!this.state.defaultHistory?L.jsx(E.LinearProgress,{}):L.jsxs(E.Paper,{style:on.paper,children:[this.renderToolbar(),L.jsx("div",{ref:this.divRef,style:ee.Utils.getStyle(this.props.theme,on.chart,this.props.noToolbar?on.chartWithoutToolbar:on.chartWithToolbar),children:this.renderChart()})]})}}const Pa={dialog:{height:"100%"},paper:{height:"calc(100% - 64px)"},content:{textAlign:"center",overflow:"hidden"},tabPanel:s=>({width:"100%",overflow:"hidden",height:`calc(100% - ${s.mixins.toolbar.minHeight}px)`}),tabSelected:s=>({color:s.palette.mode==="dark"?s.palette.secondary.contrastText:"#FFFFFF !important"}),tabsIndicator:s=>({backgroundColor:s.palette.secondary.main})};class Eme extends F7{chartAvailable;saveFunc=null;constructor(e){super(e);let t=parseInt((window._localStorage||window.localStorage).getItem("App.objectCustomTab")||"0",10);if(this.chartAvailable=this.isChartAvailable(),this.chartAvailable){const i=ee.Router.getLocation();i.arg==="chart"?t=2:i.arg==="table"&&(t=1)}else t=0;this.state={hasChanges:!1,currentTab:t,confirmDialog:!1,mobile:F7.isMobile(),progressRunning:!1,showWarning:this.props.allVisibleObjects}}isChartAvailable(){var t,i;let e=this.props.objectIDs.length===1;if(e){const n=this.props.objectIDs[0];(i=(t=this.props.objects[n])==null?void 0:t.common)!=null&&i.custom?e=!!Object.keys(this.props.objects[n].common.custom).find(r=>{const o=this.props.objects[`system.adapter.${r}`];return o&&o.common&&o.common.getHistory}):e=!1}return e}renderCharts(){return L.jsx(JY,{isFloatComma:this.props.isFloatComma,showJumpToEchart:!0,t:this.props.t,lang:this.props.lang,socket:this.props.socket,obj:this.props.objects[this.props.objectIDs[0]],customsInstances:this.props.customsInstances,themeType:this.props.themeType,theme:this.props.theme,objects:this.props.objects})}renderTable(){return L.jsx(pS,{t:this.props.t,isFloatComma:this.props.isFloatComma,lang:this.props.lang,expertMode:this.props.expertMode,socket:this.props.socket,obj:this.props.objects[this.props.objectIDs[0]],customsInstances:this.props.customsInstances,objects:this.props.objects})}renderCustomEditor(){return L.jsx(fS,{registerSaveFunc:e=>this.saveFunc=e,t:this.props.t,lang:this.props.lang,socket:this.props.socket,objectIDs:this.props.objectIDs,customsInstances:this.props.customsInstances,objects:this.props.objects,onProgress:e=>this.setState({progressRunning:e}),reportChangedIds:this.props.reportChangedIds,onChange:(e,t)=>{this.setState({hasChanges:e},()=>{if(t){const i=this.isChartAvailable();i!==this.chartAvailable&&(this.chartAvailable=i,this.forceUpdate())}})},theme:this.props.theme,themeName:this.props.themeName,themeType:this.props.themeType,systemConfig:this.props.systemConfig})}renderDialogConfirm(){return this.state.confirmDialog?L.jsx(ee.DialogConfirm,{title:ee.I18n.t("You have unsaved changes"),text:ee.I18n.t("Discard?"),ok:ee.I18n.t("Yes"),cancel:ee.I18n.t("Cancel"),onClose:e=>this.setState({confirmDialog:!1},()=>e&&this.props.onClose())}):null}onClose(){this.state.hasChanges?this.setState({confirmDialog:!0}):this.props.onClose()}renderWarningDialog(){return this.state.showWarning?L.jsx(ee.DialogConfirm,{text:L.jsx("div",{style:{color:"#F00"},children:this.props.t("Your are intend to edit ALL objects. Are you sure?")}),ok:this.props.t("Yes"),onClose:e=>{this.setState({showWarning:!1}),e||this.onClose()}}):null}render(){var t,i;const e=(i=(t=this.props.objects[this.props.objectIDs[0]])==null?void 0:t.common)==null?void 0:i.type;return L.jsxs(E.Dialog,{sx:{"&.MuiDialog-scrollPaper":Pa.dialog,"& .MuiDialog-paper":Pa.paper},scroll:"paper",open:!0,onClose:()=>this.props.onClose(),fullWidth:!0,maxWidth:"xl","aria-labelledby":"form-dialog-title",children:[this.renderDialogConfirm(),this.renderWarningDialog(),L.jsx(E.DialogTitle,{children:this.props.objectIDs.length>1?this.props.t("Edit config for %s states",this.props.objectIDs.length):this.props.t("Edit config: %s",this.props.objectIDs[0])}),L.jsxs(E.DialogContent,{style:Pa.content,children:[L.jsx(E.AppBar,{position:"static",children:L.jsxs(E.Tabs,{value:this.state.currentTab,onChange:(n,r)=>{ee.Router.doNavigate(null,null,null,r===1?"table":r===2?"chart":"config"),this.setState({currentTab:r}),(window._localStorage||window.localStorage).setItem("App.objectCustomTab",r)},sx:{"& .MuiTabs-indicator":Pa.tabsIndicator},indicatorColor:"secondary",children:[L.jsx(E.Tab,{disabled:this.state.progressRunning,label:this.props.t("Custom settings"),id:"custom-settings-tab","aria-controls":"custom-tabpanel-settings",sx:{"&.Mui-selected":Pa.tabSelected}}),this.props.objectIDs.length===1&&this.chartAvailable?L.jsx(E.Tab,{disabled:this.state.progressRunning,label:this.props.t("History data"),id:"history-data-tab","aria-controls":"custom-tabpanel-history",sx:{"&.Mui-selected":Pa.tabSelected}}):null,(e==="number"||e==="boolean")&&this.props.objectIDs.length===1&&this.chartAvailable?L.jsx(E.Tab,{disabled:this.state.progressRunning,label:this.props.t("Chart"),id:"chart-tab","aria-controls":"custom-tabpanel-chart",sx:{"&.Mui-selected":Pa.tabSelected}}):null]})}),this.state.currentTab===0?L.jsx(E.Box,{component:"div",sx:Pa.tabPanel,children:this.renderCustomEditor()}):null,this.props.objectIDs.length===1&&this.chartAvailable&&this.state.currentTab===1?L.jsx(E.Box,{component:"div",sx:Pa.tabPanel,children:this.renderTable()}):null,(e==="number"||e==="boolean")&&this.props.objectIDs.length===1&&this.chartAvailable&&this.state.currentTab===2?L.jsx(E.Box,{component:"div",sx:Pa.tabPanel,children:this.renderCharts()}):null]}),L.jsxs(E.DialogActions,{children:[this.state.currentTab===0&&L.jsx(E.Button,{id:"object-custom-dialog-save",variant:"contained",color:"primary",disabled:!this.state.hasChanges||this.state.progressRunning,onClick:()=>this.saveFunc&&this.saveFunc(),children:this.getButtonTitle(L.jsx(Ie.Save,{}),this.props.t("Save"))}),this.state.currentTab===0&&L.jsx(E.Button,{id:"object-custom-dialog-save-close",variant:"contained",color:"primary",disabled:!this.state.hasChanges||this.state.progressRunning,onClick:()=>{this.saveFunc?this.saveFunc(n=>!n&&this.onClose()):this.onClose()},children:this.getButtonTitle(L.jsx(Ie.Save,{}),this.props.t("Save & close"),L.jsx(Ie.Close,{}))}),L.jsx(E.Button,{id:"object-custom-dialog-close",disabled:this.state.progressRunning,variant:"contained",onClick:()=>this.onClose(),color:"grey",children:this.getButtonTitle(L.jsx(Ie.Close,{}),this.props.t("Close"))})]})]})}}const Br={formControl:{minWidth:100},quality:{width:"calc(100% - 88px)"},expire:{ml:1,width:80},readOnly:{backgroundColor:"#b74848"},readOnlyText:{color:"#b74848",marginLeft:8},wrapperButton:{"@media screen and (max-width: 465px)":{"& *":{fontSize:12}},"@media screen and (max-width: 380px)":{"& *":{fontSize:11}}},ackCheckbox:{marginLeft:4},dialog:{minHeight:window.clientHeight-50>500?500:window.clientHeight-50},tooltip:{pointerEvents:"none"}};class Ep extends Te.Component{propsValue;chartFrom;ack;inputRef=uS.createRef();q;expire;constructor(e){super(e);let t=this.props.type;t||(t=typeof this.props.value);let i=this.props.value;if(this.propsValue=i,this.propsValue===null?this.propsValue="null":this.propsValue===void 0&&(this.propsValue="undefined"),this.props.states)t="states";else if(t==="string"||t==="json"){if(i&&typeof i=="string"&&(i.startsWith("[")&&i.endsWith("]")||i.startsWith("{")&&i.endsWith("}")))try{i=JSON.parse(i),i=JSON.stringify(i,null,2),this.propsValue=i,t="json"}catch{}}else t==="number"?i=parseFloat(this.propsValue)||0:t==="boolean"&&(i=i===!0||i===1||i==="1"||String(i).trim().toLowerCase()==="true"||String(i).trim().toLowerCase()==="on"||String(i).trim().toLowerCase()==="yes");this.state={type:t,chart:!1,chartEnabled:(window._localStorage||window.localStorage).getItem("App.chartSetValue")!=="false",fullScreen:(window._localStorage||window.localStorage).getItem("App.fullScreen")==="true",targetValue:i,valid:!0,jsonError:!1,writing:!1},this.ack=!1,this.q=0,this.expire=0,this.inputRef=uS.createRef(),this.chartFrom=Date.now()-36e5*2}componentDidMount(){var e,t,i;this.props.defaultHistory&&((t=(e=this.props.object)==null?void 0:e.common)!=null&&t.custom)&&((i=this.props.object.common.custom[this.props.defaultHistory])!=null&&i.enabled)&&this.props.socket.getState(`system.adapter.${this.props.defaultHistory}.alive`).then(n=>this.setState({chart:!!(n!=null&&n.val)})),setTimeout(()=>{var n;if((n=this.inputRef)!=null&&n.current){const r=this.inputRef.current,o=r.value||"",a=r.type;r.type==="number"&&(r.type="text"),r.setSelectionRange(0,o.length),a==="number"&&(r.type=a)}},200)}onUpdate(e){if(e&&(e.stopPropagation(),e.preventDefault()),this.state.writing)return;let t=this.state.targetValue;if(this.state.type==="states")if(t==="null")t=null;else{const i=this.props.type||typeof this.state.targetValue;t=typeof t=="object"?t.value:t,i==="number"?typeof t=="string"&&(t=parseFloat(t.replace(",","."))||0):i==="boolean"&&(t=t===!0||t===1||t==="1"||String(t).trim().toLowerCase()==="true"||String(t).trim().toLowerCase()==="on"||String(t).trim().toLowerCase()==="yes")}else this.state.type==="number"?t==="null"?t=null:typeof t=="string"&&(t=parseFloat(t.replace(",","."))||0):this.state.type==="boolean"&&(t==="null"?t=null:t=t===!0||t===1||t==="1"||String(t).trim().toLowerCase()==="true"||String(t).trim().toLowerCase()==="on"||String(t).trim().toLowerCase()==="yes");this.setState({writing:!0}),this.props.socket.setState(this.props.object._id,{val:t,ack:this.ack,q:this.q,expire:parseInt(this.expire,10)||void 0}).then(()=>this.props.onClose()).catch(i=>{this.setState({writing:!1}),window.alert(`Cannot write state "${this.props.object._id}": ${i}`)})}static isNumberValid(e){const{common:t,value:i}=e;if(i==="")return!1;const n=Number(i);return typeof t.min=="number"&&n<t.min?!1:!(typeof t.max=="number"&&n>t.max)}renderTimePicker(){return L.jsxs(_s.LocalizationProvider,{adapterLocale:gS[this.props.lang],dateAdapter:dS,children:[L.jsx(_s.DatePicker,{value:Number(this.state.targetValue),onChange:e=>{e&&this.setState({targetValue:Math.round(e.getTime())})}}),L.jsx(_s.TimePicker,{value:Number(this.state.targetValue),views:["hours","minutes","seconds"],onChange:e=>{e&&this.setState({targetValue:Math.round(e.getTime())})}})]})}renderChart(){return L.jsx(JY,{t:this.props.t,isFloatComma:this.props.isFloatComma,showJumpToEchart:!1,lang:this.props.lang,socket:this.props.socket,obj:this.props.object,themeType:this.props.themeType,theme:this.props.theme,from:this.chartFrom,end:Date.now(),noToolbar:!0,defaultHistory:this.props.defaultHistory,customsInstances:[],objects:void 0,historyInstance:""})}static checkJsonError(e){try{return JSON.parse(e),!1}catch{return!0}}renderJsonEditor(){return L.jsx(f$,{error:this.state.jsonError,editValueMode:!0,themeType:this.props.themeType,defaultValue:(this.propsValue||"").toString(),onChange:e=>this.setState({targetValue:e,jsonError:Ep.checkJsonError(e)})})}renderStates(){if(!this.props.states)return null;if(this.props.type==="number"&&this.props.object.common.max!==void 0&&this.props.object.common.min!==void 0){const e=Object.keys(this.props.states).map(t=>({label:this.props.states[t],value:t}));return L.jsx(E.Autocomplete,{style:Br.formControl,disablePortal:!0,defaultValue:this.props.states[this.propsValue]!==void 0?this.props.states[this.propsValue]:this.propsValue,options:e,noOptionsText:"",freeSolo:!0,getOptionLabel:t=>(t==null?void 0:t.label)||(t!=null?t.toString():""),onChange:(t,i)=>this.setState({targetValue:i}),onInputChange:(t,i)=>this.setState({targetValue:i}),onKeyUp:t=>t.key==="Enter"&&this.onUpdate(t),renderInput:t=>L.jsx(E.TextField,{...t,label:this.props.t("Value"),variant:"standard"})})}return L.jsxs(E.FormControl,{variant:"standard",style:Br.formControl,children:[L.jsx(E.InputLabel,{children:this.props.t("Value")}),L.jsx(E.Select,{variant:"standard",defaultValue:this.propsValue,onChange:e=>this.setState({targetValue:e.target.value}),children:Object.keys(this.props.states).map((e,t)=>L.jsx(E.MenuItem,{value:e,children:this.props.states[e]},t))})]})}render(){var t,i,n;const e=L.jsxs("div",{style:{display:"flex",alignItems:"center"},children:[L.jsx(E.FormControlLabel,{style:{...Br.formControl,...this.props.expertMode?void 0:Br.ackCheckbox},control:L.jsx(E.Checkbox,{defaultChecked:!1,onChange:r=>this.ack=r.target.checked}),label:this.props.t("Acknowledged")}),L.jsx(E.Tooltip,{title:this.props.t("Acknowledged explanation"),slotProps:{popper:{sx:Br.tooltip}},children:L.jsx(Ie.Info,{color:"primary"})})]});return L.jsxs(E.Dialog,{open:!0,maxWidth:this.state.type==="number"||this.state.type==="boolean"||this.state.type==="states"?this.state.chart&&this.state.chartEnabled?"lg":void 0:"md",fullWidth:this.state.type==="json"&&this.state.fullScreen||this.state.type!=="number"&&this.state.type!=="boolean"&&this.state.type!=="states"||this.state.chart&&this.state.chartEnabled,fullScreen:this.state.type==="json"&&this.state.fullScreen,onClose:()=>this.props.onClose(),"aria-labelledby":"edit-value-dialog-title","aria-describedby":"edit-value-dialog-description",sx:{"&. MuiDialog-paper":this.state.type==="json"?Br.dialog:void 0},children:[L.jsxs(E.DialogTitle,{id:"edit-value-dialog-title",children:[this.props.t("Write value"),((t=this.props.object.common)==null?void 0:t.write)===!1?L.jsxs("span",{style:Br.readOnlyText,children:["(",this.props.t("read only"),")"]}):null,this.state.chart?L.jsx(E.Fab,{style:{float:"right"},size:"small",color:this.state.chartEnabled?"primary":"default",onClick:()=>{(window._localStorage||window.localStorage).setItem("App.chartSetValue",this.state.chartEnabled?"false":"true"),this.setState({chartEnabled:!this.state.chartEnabled})},children:L.jsx(Ie.ShowChart,{})}):null,this.state.type==="json"?L.jsx(E.IconButton,{style:{float:"right"},onClick:()=>{(window._localStorage||window.localStorage).setItem("App.fullScreen",this.state.fullScreen?"false":"true"),this.setState({fullScreen:!this.state.fullScreen})},children:this.state.fullScreen?L.jsx(Ie.FullscreenExit,{}):L.jsx(Ie.Fullscreen,{})}):null]}),L.jsx(E.DialogContent,{children:L.jsx("form",{noValidate:!0,autoComplete:"off",onSubmit:()=>!1,style:{...Br.dialogForm,height:"100%"},children:L.jsxs(E.Grid2,{container:!0,direction:"row",spacing:2,style:{height:"100%"},children:[L.jsx(E.Grid2,{size:{xs:this.state.chart&&this.state.chartEnabled?6:12},style:{height:"100%"},children:L.jsxs(E.Grid2,{container:!0,direction:"column",spacing:2,style:{marginTop:0,height:"100%"},children:[this.props.expertMode?L.jsx(E.Grid2,{children:L.jsxs(E.Grid2,{container:!0,direction:"row",spacing:2,style:{marginTop:0},children:[this.props.expertMode?L.jsx(E.Grid2,{children:L.jsxs(E.FormControl,{style:Br.formControl,children:[L.jsx(E.InputLabel,{style:{marginTop:10,marginLeft:-14},children:this.props.t("Value type")}),L.jsxs(E.Select,{variant:"standard",value:this.state.type,onChange:r=>{this.setState({type:r.target.value,valid:r.target.value==="number"?Ep.isNumberValid({value:this.state.targetValue,common:this.props.object.common}):!0,jsonError:!1},()=>{this.state.type==="json"&&this.setState({targetValue:(this.state.targetValue||"").toString(),jsonError:Ep.checkJsonError((this.state.targetValue||"").toString())})})},children:[L.jsx(E.MenuItem,{value:"string",children:"String"}),L.jsx(E.MenuItem,{value:"number",children:"Number"}),L.jsx(E.MenuItem,{value:"boolean",children:"Boolean"}),L.jsx(E.MenuItem,{value:"json",children:"JSON/Object"}),this.props.states?L.jsx(E.MenuItem,{value:"states",children:"States"}):null]})]})}):null,this.state.type==="json"?L.jsx(E.Grid2,{flex:1}):null]})}):null,L.jsx(E.Grid2,{flex:this.state.type==="json"&&this.state.fullScreen?1:void 0,style:{paddingTop:0},children:this.state.type==="boolean"?L.jsx(E.Typography,{component:"div",style:this.props.expertMode?{marginTop:20,width:"100%",backgroundColor:this.props.themeType==="dark"?"#595959":"#dadada",borderRadius:5,padding:5}:void 0,children:L.jsxs(E.Grid2,{component:"label",container:!0,alignItems:"center",spacing:1,children:[L.jsxs(E.Grid2,{style:{marginRight:10},children:[this.props.t("Value"),":"]}),L.jsx(E.Grid2,{children:"FALSE"}),L.jsx(E.Grid2,{children:L.jsx(E.Switch,{autoFocus:!0,checked:this.state.targetValue===!0||this.state.targetValue===1||this.state.targetValue==="1"||String(this.state.targetValue).trim().toLowerCase()==="true"||String(this.state.targetValue).trim().toLowerCase()==="on"||String(this.state.targetValue).trim().toLowerCase()==="yes",onKeyUp:r=>r.key==="Enter"&&this.onUpdate(r),onChange:r=>this.setState({targetValue:r.target.checked})})}),L.jsx(E.Grid2,{children:"TRUE"})]})}):this.state.type==="number"?L.jsx(E.TextField,{variant:"standard",fullWidth:!0,autoFocus:!0,error:!this.state.valid,type:"number",slotProps:{htmlInput:{step:this.props.object.common.step,min:this.props.object.common.min,max:this.props.object.common.max}},inputRef:this.inputRef,helperText:this.props.t("Press ENTER to write the value, when focused"),value:this.state.targetValue.toString(),label:this.props.t("Value")+(this.props.object.common.min!==void 0||this.props.object.common.unit==="%"?`, ${this.props.t("min:")} ${this.props.object.common.min!==void 0?this.props.object.common.min:0}`:"")+(this.props.object.common.max!==void 0||this.props.object.common.unit==="%"?`, ${this.props.t("max:")} ${this.props.object.common.max!==void 0?this.props.object.common.max:100}`:""),onKeyUp:r=>r.key==="Enter"&&this.state.valid&&this.onUpdate(r),onChange:r=>{this.setState({targetValue:r.target.value,valid:Ep.isNumberValid({value:r.target.value,common:this.props.object.common})})}}):this.state.type==="json"?this.renderJsonEditor():this.state.type==="states"?this.renderStates():L.jsx(E.TextField,{variant:"standard",fullWidth:!0,inputRef:this.inputRef,autoFocus:!0,helperText:this.props.t("Press CTRL+ENTER to write the value, when focused"),label:this.props.t("Value"),multiline:!0,onKeyDown:r=>r.ctrlKey&&r.key==="Enter"&&this.onUpdate(r),defaultValue:this.propsValue.toString(),onChange:r=>this.setState({targetValue:r.target.value})})}),(this.props.role==="date"||(i=this.props.role)!=null&&i.startsWith("date."))&&this.state.type==="number"?L.jsx(E.Grid2,{style:{display:"flex",gap:"5px"},size:{xs:6},children:this.renderTimePicker()}):null,this.props.expertMode?L.jsx(E.Grid2,{children:e}):null,this.props.expertMode?L.jsxs(E.Grid2,{children:[L.jsxs(E.FormControl,{variant:"standard",style:Br.quality,children:[L.jsx(E.InputLabel,{children:this.props.t("Quality")}),L.jsxs(E.Select,{variant:"standard",defaultValue:0,onChange:r=>this.q=Number(r.target.value),children:[L.jsx(E.MenuItem,{value:0,children:"0x00 - good"}),L.jsx(E.MenuItem,{value:1,children:"0x01 - general problem"}),L.jsx(E.MenuItem,{value:2,children:"0x02 - no connection problem"}),L.jsx(E.MenuItem,{value:16,children:"0x10 - substitute value from controller"}),L.jsx(E.MenuItem,{value:32,children:"0x20 - substitute initial value"}),L.jsx(E.MenuItem,{value:64,children:"0x40 - substitute value from device or instance"}),L.jsx(E.MenuItem,{value:128,children:"0x80 - substitute value from sensor"}),L.jsx(E.MenuItem,{value:17,children:"0x11 - general problem by instance"}),L.jsx(E.MenuItem,{value:65,children:"0x41 - general problem by device"}),L.jsx(E.MenuItem,{value:129,children:"0x81 - general problem by sensor"}),L.jsx(E.MenuItem,{value:18,children:"0x12 - instance not connected"}),L.jsx(E.MenuItem,{value:66,children:"0x42 - device not connected"}),L.jsx(E.MenuItem,{value:130,children:"0x82 - sensor not connected"}),L.jsx(E.MenuItem,{value:68,children:"0x44 - device reports error"}),L.jsx(E.MenuItem,{value:132,children:"0x84 - sensor reports error"})]})]}),L.jsx(E.TextField,{variant:"standard",title:this.props.t("0 - no expiration"),sx:{"&.MuiTextField-root":Br.expire},label:this.props.t("Expire"),type:"number",slotProps:{htmlInput:{min:0}},helperText:this.props.t("in seconds"),defaultValue:this.expire,onChange:r=>this.expire=Number(r.target.value)})]}):null]})}),this.state.chart&&this.state.chartEnabled&&this.state.type!=="json"?L.jsx(E.Grid2,{size:{xs:6},style:{minHeight:300},sx:{display:{sm:"none",md:"inline-block"}},children:this.renderChart()}):null]})})}),L.jsxs(E.DialogActions,{sx:Br.wrapperButton,children:[this.props.expertMode?null:e,this.props.expertMode?null:L.jsx("div",{style:{flexGrow:1}}),L.jsx(E.Button,{variant:"contained",disabled:!this.state.valid||this.state.writing,onClick:r=>this.onUpdate(r),color:"primary",startIcon:this.props.width!=="xs"?L.jsx(Ie.Check,{}):void 0,style:((n=this.props.object.common)==null?void 0:n.write)===!1?Br.readOnly:void 0,children:this.props.width!=="xs"?this.props.t("Set value"):L.jsx(Ie.Check,{fontSize:"large"})}),L.jsx(E.Button,{variant:"contained",onClick:()=>this.props.onClose(),color:"grey",startIcon:this.props.width!=="xs"?L.jsx(Ie.Close,{}):void 0,children:this.props.width!=="xs"?this.props.t("Cancel"):L.jsx(Ie.Close,{fontSize:"large"})})]})]})}}const se={divWithoutTitle:{width:"100%",height:"100%",border:"2px solid #00000000"},divWithoutTitleAndTab:{height:"calc(100% - 48px)"},error:{border:"2px solid #FF0000"},id:{fontStyle:"italic"},dialog:{height:"calc(100% - 64px)"},aliasIdEdit:{width:368},button:{marginTop:20,marginLeft:8},funcDivEdit:{width:"100%"},funcEditName:{display:"inline-block",width:85},funcEdit:{width:400},funcIcon:{width:16,height:16},marginTop:{marginTop:20},commonTabWrapper:{flexFlow:"wrap",display:"flex",gap:8},commonWrapper:{width:500,minWidth:300},flexDrop:{width:"100%",maxWidth:500,margin:"auto",display:"flex"},marginBlock:{marginTop:20},buttonAdd:{minWidth:150},textField:{width:"100%"},flex:{display:"flex","& > div":{mr:"8px"}},close:{width:"20px",height:"20px",opacity:"0.9",cursor:"pointer",position:"relative",top:20,marginTop:"10px",transition:"all 0.6s ease","&:hover":{transform:"rotate(90deg)"},"&:before":{position:"absolute",left:"9px",content:'""',height:"20px",width:"3px",backgroundColor:"#ff4f4f",transform:"rotate(45deg)"},"&:after":{position:"absolute",left:"9px",content:'""',height:"20px",width:"3px",backgroundColor:"#ff4f4f",transform:"rotate(-45deg)"}},color:{width:70},buttonRemoveWrapper:{position:"absolute",zIndex:222,right:0},tabsPadding:{padding:"0px 24px"},wrapperButton:{"@media screen and (max-width: 465px)":{"& *":{fontSize:10}},"@media screen and (max-width: 380px)":{"& *":{fontSize:9}}},commonDeleteTip:{color:"#fa4a4a"},typeNameEng:{marginLeft:8,opacity:.7,fontStyle:"italic",fontSize:"smaller"},tooltip:{pointerEvents:"none"},stateRow:{width:"100%",display:"flex",justifyContent:"space-between",padding:3},stateTitle:{minWidth:150,fontWeight:"bold"},stateUnit:{opacity:.7,marginLeft:4},stateValue:{animation:"newStateEditorAnimation 2s ease-in-out"},stateTime:{fontStyle:"italic"},stateImage:{maxWidth:200,maxHeight:200}};function Nme(s,e){return{"@keyframes newStateEditorAnimation":{"0%":{color:s.palette.mode==="dark"?"#27cf00":"#174e00"},"100%":{color:e||(s.palette.mode==="dark"?"#ffffff":"#000000")}}}}const Bb=[{role:"button",type:"boolean",r:!1,w:!0},{role:"button.close.blind",type:"boolean",r:!1,w:!0},{role:"button.close.tilt",type:"boolean",r:!1,w:!0},{role:"button.fastforward",type:"boolean",r:!1,w:!0},{role:"button.forward",type:"boolean",r:!1,w:!0},{role:"button.long",type:"boolean",r:!1,w:!0},{role:"button.mode",type:"boolean",r:!1,w:!0},{role:"button.mode.auto",type:"boolean",r:!1,w:!0},{role:"button.mode.manual",type:"boolean",r:!1,w:!0},{role:"button.mode.silent",type:"boolean",r:!1,w:!0},{role:"button.next",type:"boolean",r:!1,w:!0},{role:"button.open.blind",type:"boolean",r:!1,w:!0},{role:"button.open.door",type:"boolean",r:!1,w:!0},{role:"button.open.tilt",type:"boolean",r:!1,w:!0},{role:"button.open.window",type:"boolean",r:!1,w:!0},{role:"button.pause",type:"boolean",w:!0},{role:"button.play",type:"boolean",w:!0},{role:"button.press",type:"boolean",r:!1,w:!0},{role:"button.press",type:"boolean",r:!0,w:!1},{role:"button.prev",type:"boolean",w:!0},{role:"button.resume",type:"boolean",r:!1,w:!0},{role:"button.start",type:"boolean",r:!1,w:!0},{role:"button.pause",type:"boolean",r:!1,w:!0},{role:"button.stop",type:"boolean",r:!1,w:!0},{role:"button.stop.tilt",type:"boolean",r:!1,w:!0},{role:"button.volume.up",type:"boolean",r:!1,w:!0},{role:"chart",type:"string"},{role:"date",type:"number"},{role:"date",type:"string"},{role:"date.end",type:"number"},{role:"date.end",type:"string"},{role:"date.forecast.1",type:"string"},{role:"date.start",type:"number"},{role:"date.start",type:"string"},{role:"date.sunrise",type:"number"},{role:"date.sunrise",type:"string"},{role:"date.sunset",type:"number"},{role:"date.sunset",type:"string"},{role:"dayofweek",type:"number"},{role:"html",type:"string"},{role:"indicator",type:"boolean",w:!1},{role:"indicator.alarm",type:"boolean",w:!1},{role:"indicator.alarm.fire",type:"boolean",w:!1},{role:"indicator.alarm.flood",type:"boolean",w:!1},{role:"indicator.alarm.health",type:"boolean",w:!1},{role:"indicator.alarm.secure",type:"boolean",w:!1},{role:"indicator.connected",type:"boolean",w:!1},{role:"indicator.maintenance",type:"boolean",w:!1},{role:"indicator.maintenance.alarm",type:"boolean",w:!1},{role:"indicator.maintenance.lowbat",type:"boolean",w:!1},{role:"indicator.maintenance.waste",type:"boolean",w:!1},{role:"indicator.reachable",type:"boolean",w:!1},{role:"info.address",type:"string",w:!1},{role:"info.display",type:"string",w:!1},{role:"info.firmware",type:"string",w:!1},{role:"info.hardware",type:"string",w:!1},{role:"info.ip",type:"string",w:!1},{role:"info.mac",type:"string",w:!1},{role:"info.model",type:"string",w:!1},{role:"info.name",type:"string",w:!1},{role:"info.port",type:"number",w:!1},{role:"info.port",type:"string",w:!1},{role:"info.serial",type:"string",w:!1},{role:"info.standby",type:"string",w:!1},{role:"info.status",w:!1},{role:"json",type:"string"},{role:"level",type:"number",w:!0},{role:"level.bass",type:"number",w:!0},{role:"level.blind",type:"number",w:!0},{role:"level.brightness",type:"number",w:!0},{role:"level.color.blue",type:"number",w:!0},{role:"level.color.hue",type:"number",w:!0},{role:"level.color.luminance",type:"number",w:!0},{role:"level.color.red",type:"number",w:!0},{role:"level.color.rgb",type:"string",w:!0},{role:"level.color.rgbw",type:"string",w:!0},{role:"level.color.saturation",type:"number",w:!0},{role:"level.color.temperature",type:"number",w:!0},{role:"level.curtain",type:"number",w:!0},{role:"level.mode.airconditioner",type:"number",w:!0},{role:"level.mode.cleanup",type:"number",w:!0},{role:"level.mode.fan",type:"number",w:!0},{role:"level.mode.swing",type:"number",w:!0},{role:"level.mode.thermostat",type:"number",w:!0},{role:"level.mode.work",type:"number",w:!0},{role:"level.temperature",type:"number",w:!0},{role:"level.tilt",type:"number",w:!0},{role:"level.timer",type:"number",w:!0},{role:"level.treble",type:"number",w:!0},{role:"level.valve",type:"number",w:!0},{role:"level.volume",type:"number",w:!0},{role:"level.volume.group",type:"number",w:!0},{role:"list",type:"array"},{role:"list",type:"string"},{role:"location",type:"string"},{role:"media.add",type:"string"},{role:"media.bitrate",type:"number"},{role:"media.bitrate",type:"string"},{role:"media.broadcastDate",type:"string"},{role:"media.browser",type:"string"},{role:"media.clear",type:"boolean"},{role:"media.content",type:"string"},{role:"media.cover",type:"string"},{role:"media.cover.big",type:"string"},{role:"media.cover.small",type:"string"},{role:"media.date",type:"string"},{role:"media.duration",type:"number"},{role:"media.duration",type:"string"},{role:"media.duration.text",type:"string"},{role:"media.elapsed",type:"number"},{role:"media.elapsed",type:"string"},{role:"media.elapsed.text",type:"string"},{role:"media.episode",type:"number"},{role:"media.episode",type:"string"},{role:"media.genre",type:"string"},{role:"media.input",type:"string"},{role:"media.jump",type:"string"},{role:"media.link",type:"string"},{role:"media.mode.repeat",type:"string"},{role:"media.mode.shuffle",type:"string"},{role:"media.mute",type:"string"},{role:"media.mute.group",type:"string"},{role:"media.playid",type:"string"},{role:"media.playlist",type:"string"},{role:"media.season",type:"string"},{role:"media.seek",type:"string"},{role:"media.state",type:"string"},{role:"media.titel",type:"string"},{role:"media.track",type:"string"},{role:"media.tts",type:"string"},{role:"media.url",type:"string"},{role:"media.url.announcement",type:"string"},{role:"medien.artist",type:"string"},{role:"sensor.alarm",type:"boolean",w:!1},{role:"sensor.alarm.fire",type:"boolean",w:!1},{role:"sensor.alarm.flood",type:"boolean",w:!1},{role:"sensor.alarm.power",type:"boolean",w:!1},{role:"sensor.alarm.secure",type:"boolean",w:!1},{role:"sensor.contact",type:"boolean",w:!1},{role:"sensor.door",type:"boolean",w:!1},{role:"sensor.light",type:"boolean",w:!1},{role:"sensor.lock",type:"boolean",w:!1},{role:"sensor.motion",type:"boolean",w:!1},{role:"sensor.noise",type:"boolean",w:!1},{role:"sensor.rain",type:"boolean",w:!1},{role:"sensor.window",type:"boolean",w:!1},{role:"state",type:"mixed"},{role:"string.date",type:"number"},{role:"switch",type:"boolean",w:!0},{role:"switch.enable",type:"boolean",w:!0},{role:"switch.gate",type:"boolean",w:!0},{role:"switch.gate",type:"boolean",w:!0},{role:"switch.light",type:"boolean",w:!0},{role:"switch.lock",type:"boolean",w:!0},{role:"switch.lock.door",type:"boolean",w:!0},{role:"switch.lock.window",type:"boolean",w:!0},{role:"switch.mode",type:"boolean",w:!0},{role:"switch.mode.auto",type:"boolean",w:!0},{role:"switch.mode.boost",type:"boolean",w:!0},{role:"switch.mode.color",type:"boolean",w:!0},{role:"switch.mode.manual",type:"boolean",w:!0},{role:"switch.mode.moonlight",type:"boolean",w:!0},{role:"switch.mode.party",type:"boolean",w:!0},{role:"switch.mode.silent",type:"boolean",w:!0},{role:"switch.power",type:"boolean",w:!0},{role:"switch.power.zone",type:"boolean",w:!0},{role:"text",type:"string"},{role:"text.phone",type:"string"},{role:"text.url",type:"string"},{role:"time.interval",type:"number"},{role:"time.span",type:"number"},{role:"time.timeout",type:"number"},{role:"url",type:"string"},{role:"url.audio",type:"string"},{role:"url.blank",type:"string"},{role:"url.cam",type:"string"},{role:"url.icon",type:"string"},{role:"url.same",type:"string"},{role:"value",type:"number",w:!1},{role:"value.battery",type:"number",w:!1},{role:"value.blind",type:"number",w:!1},{role:"value.blood.sugar",type:"number",w:!1},{role:"value.brightness",type:"number",w:!1},{role:"value.co2",type:"number",w:!1},{role:"value.clouds",type:"number",w:!1},{role:"value.current",type:"number",w:!1},{role:"value.curtain",type:"number",w:!1},{role:"value.date",type:"string",w:!1},{role:"value.datetime",type:"string",w:!1},{role:"value.default",type:"number",w:!1},{role:"value.direction",type:"number",w:!1},{role:"value.direction.max.wind",type:"number",w:!1},{role:"value.direction.min.wind",type:"number",w:!1},{role:"value.direction.wind",type:"number",w:!1},{role:"value.direction.wind.forecast.0",type:"number",w:!1},{role:"value.direction.wind.forecast.1",type:"number",w:!1},{role:"value.distance",type:"number",w:!1},{role:"value.energy",type:"number",w:!1},{role:"value.fill",type:"number",w:!1},{role:"value.gate",type:"number",w:!1},{role:"value.gps",type:"number",w:!1},{role:"value.gps.accuracy",type:"number",w:!1},{role:"value.gps.elevation",type:"number",w:!1},{role:"value.gps.latitude",type:"number",w:!1},{role:"value.gps.longitude",type:"number",w:!1},{role:"value.gps.radius",type:"number",w:!1},{role:"value.health.bmi",type:"number",w:!1},{role:"value.health.bpm",type:"number",w:!1},{role:"value.health.calories",type:"number",w:!1},{role:"value.health.fat",type:"number",w:!1},{role:"value.health.steps",type:"number",w:!1},{role:"value.health.weight",type:"number",w:!1},{role:"value.humidity",type:"number",w:!1},{role:"value.humidity",type:"number",w:!1},{role:"value.humidity.max",type:"number",w:!1},{role:"value.humidity.min",type:"number",w:!1},{role:"value.interval",type:"number",w:!1},{role:"value.lock",type:"number",w:!1},{role:"value.min",type:"number",w:!1},{role:"value.position",type:"number",w:!1},{role:"value.power",type:"number",w:!1},{role:"value.power.consumption",type:"number",w:!1},{role:"value.power.production",type:"number",w:!1},{role:"value.power.reactive",type:"number",w:!1},{role:"value.precipitation",type:"number",w:!1},{role:"value.precipitation.chance",type:"number",w:!1},{role:"value.precipitation.day.forecast.0",type:"number",w:!1},{role:"value.precipitation.forecast.0",type:"number",w:!1},{role:"value.precipitation.forecast.0",type:"number",w:!1},{role:"value.precipitation.forecast.1",type:"number",w:!1},{role:"value.precipitation.forecast.1",type:"number",w:!1},{role:"value.precipitation.hour",type:"number",w:!1},{role:"value.precipitation.night.forecast.0",type:"number",w:!1},{role:"value.precipitation.today",type:"number",w:!1},{role:"value.precipitation.type",type:"number",w:!1},{role:"value.pressure",type:"number",w:!1},{role:"value.pressure.forecast.0",type:"number",w:!1},{role:"value.pressure.forecast.1",type:"number",w:!1},{role:"value.radiation",type:"number",w:!1},{role:"value.rain",type:"number",w:!1},{role:"value.rain.hour",type:"number",w:!1},{role:"value.rain.today",type:"number",w:!1},{role:"value.severity",type:"number",w:!1},{role:"value.snow",type:"number",w:!1},{role:"value.snow.hour",type:"number",w:!1},{role:"value.snow.today",type:"number",w:!1},{role:"value.snowline",type:"number",w:!1},{role:"value.speed",type:"number",w:!1},{role:"value.speed.max.wind",type:"number",w:!1},{role:"value.speed.min.wind",type:"number",w:!1},{role:"value.speed.wind",type:"number",w:!1},{role:"value.speed.wind.forecast.0",type:"number",w:!1},{role:"value.speed.wind.gust",type:"number",w:!1},{role:"value.state",type:"number",w:!1},{role:"value.sun.azimuth",type:"number",w:!1},{role:"value.sun.elevation",type:"number",w:!1},{role:"value.temperature",type:"number",w:!1},{role:"value.temperature",type:"number",w:!1},{role:"value.temperature.dewpoint",type:"number",w:!1},{role:"value.temperature.feelslike",type:"number",w:!1},{role:"value.temperature.max",type:"number",w:!1},{role:"value.temperature.max.forecast.0",type:"number",w:!1},{role:"value.temperature.min",type:"number",w:!1},{role:"value.temperature.min.forecast.0",type:"number",w:!1},{role:"value.temperature.min.forecast.1",type:"number",w:!1},{role:"value.temperature.windchill",type:"number",w:!1},{role:"value.tilt",type:"number",w:!1},{role:"value.time",type:"number",w:!1},{role:"value.uv",type:"number",w:!1},{role:"value.valve",type:"number",w:!1},{role:"value.voltage",type:"number",w:!1},{role:"value.warning",type:"number",w:!1},{role:"value.waste",type:"number",w:!1},{role:"value.water",type:"number",w:!1},{role:"weather.chart.url",type:"string",w:!1},{role:"weather.chart.url.forecast",type:"string",w:!1},{role:"weather.direction.wind",type:"number",w:!1},{role:"weather.direction.wind.forecast.0",type:"number",w:!1},{role:"weather.html",type:"string",w:!1},{role:"weather.icon",type:"string",w:!1},{role:"weather.icon.forecast.1",type:"string",w:!1},{role:"weather.icon.name",type:"string",w:!1},{role:"weather.icon.wind",type:"string",w:!1},{role:"weather.json",type:"string",w:!1},{role:"weather.state",type:"number",w:!1},{role:"weather.state",type:"string",w:!1},{role:"weather.state.forecast.0",type:"string",w:!1},{role:"weather.sunrise",type:"string",w:!1},{role:"weather.sunset",type:"string",w:!1},{role:"weather.state.forecast.1",type:"string",w:!1},{role:"weather.temperature",type:"number",w:!1},{role:"weather.title",type:"string",w:!1},{role:"weather.title.forecast.0",type:"string",w:!1},{role:"weather.title.short",type:"string",w:!1},{role:"weather.type",type:"number",w:!1},{role:"weather.type",type:"string",w:!1}];class $n extends Te.Component{originalObj;subscribed=!1;updateTimer=null;constructor(e){super(e);const t=this.props.obj._id.startsWith("alias.0")&&this.props.obj.type==="state";let i=(window._localStorage||window.localStorage).getItem(`${this.props.dialogName||"App"}.editTab`)||"object";const n=ee.Router.getLocation();n.tab==="tab-objects"&&n.dialog==="edit"&&n.id===this.props.obj._id&&n.arg&&(i=n.arg),i==="alias"&&!t&&(i="common"),this.props.aliasTab&&t&&(i="alias");const r=this.props.obj,o=r.common&&"type"in r.common&&"alias"in r.common?r.common.alias.read:void 0,a=r.common&&"type"in r.common&&"alias"in r.common?r.common.alias.write:void 0;this.state={text:JSON.stringify(this.props.obj,null,2),error:!1,customError:!1,changed:!1,readError:this.checkFunction(o,!1),writeError:this.checkFunction(a,!0),tab:i,showCopyDialog:"",showCommonDeleteMessage:!1,selectId:!1,selectRead:!1,selectWrite:!1,newId:"",lang:ee.I18n.getLanguage(),value:void 0},xT.locale(this.state.lang),this.originalObj=JSON.stringify(this.props.obj,null,2)}async componentDidMount(){var i,n,r;const e=((n=(i=this.props.obj)==null?void 0:i.common)==null?void 0:n.editSchemas)||((r=this.props.obj)==null?void 0:r.editSchemas),t=[];if(e)if(typeof e=="object"){const o=Object.keys(e);for(let a=0;a<o.length;a++)try{const l=await ee.iobUriRead(e[o[a]],this.props.socket);if(l.key=o[a],l&&typeof l=="object"&&t.push(l),l.icon)try{const h=ee.iobUriParse(l.icon);if(h.type!=="base64"&&h.type!=="http"){const c=await ee.iobUriRead(h,this.props.socket);c&&(l.icon=c)}}catch(h){console.warn(`Cannot get icon for schema from "${l.icon}": ${h}`),l.icon=void 0}}catch(l){console.warn(`Cannot get edit schema for "${e[o[a]]}": ${l}`)}t.length&&(t.sort((a,l)=>a.order!==void 0&&l.order!==void 0?a.order-l.order:a.order!==void 0?-1:l.order!==void 0||a.key>l.key?1:-1),this.setState({customEditTabs:t}))}else console.warn(`Invalid edit schema for "${e}": expected object, but got ${typeof e}`);this.state.tab==="alias"&&(!this.props.obj._id.startsWith("alias.0")||this.props.obj.type!=="state")?this.setState({tab:"object"}):this.state.tab==="state"&&this.props.obj.type!=="state"?this.setState({tab:"object"}):this.state.tab!=="object"&&this.state.tab!=="common"&&this.state.tab!=="alias"&&this.state.tab!=="state"&&!t.find(o=>o.key===this.state.tab)&&this.setState({tab:"object"}),this.state.tab==="state"&&this.subscribeOnState(!0),this.props.socket.subscribeObject(this.props.obj._id,this.onObjectUpdated),this.isRouted()&&setTimeout(()=>{this.isRouted()&&ee.Router.getLocation().arg!==this.state.tab&&ee.Router.doNavigate(null,null,null,this.state.tab)},0)}componentWillUnmount(){this.updateTimer&&(clearInterval(this.updateTimer),this.updateTimer=null),this.subscribeOnState(!1),this.props.socket.unsubscribeObject(this.props.obj._id,this.onObjectUpdated)}onObjectUpdated=(e,t)=>{this.originalObj!==JSON.stringify(t,null,2)&&(this.originalObj=JSON.stringify(t,null,2),this.state.changed?this.forceUpdate():this.setState({text:this.originalObj}))};checkFunction(e,t){var r,o,a,l;if(!e||e.includes("JSON.parse("))return"";let i;try{i=JSON.parse(this.state.text)}catch{}let n;try{n=new Function("val",e.includes("return")?e:`return ${e}`)}catch{return this.props.t("Cannot parse code!")}if((r=i==null?void 0:i.common)!=null&&r.type&&((l=(a=this.props.objects[(o=i.common.alias)==null?void 0:o.id])==null?void 0:a.common)!=null&&l.type)){const h=t?i.common.type:this.props.objects[i.common.alias.id].common.type,c=t?this.props.objects[i.common.alias.id].common.type:i.common.type;if(h&&c){let u=null;if(h==="boolean"?u=!0:h==="number"?u=1:(h==="string"||h==="mixed")&&(u="string"),u!==null)try{const d=n(u);return c==="mixed"?"":d!==null&&typeof d!==c?this.props.t("Type of result is not as expected: %s",c):""}catch(d){return`${this.props.t("Cannot execute function")}: ${d.toString()}`}}}return""}prepareObject(e){var t,i,n,r;e=e||this.state.text;try{const o=JSON.parse(e);return o._id=this.props.obj._id,(t=o.common)!=null&&t.alias&&(o.common.alias.id||delete o.common.alias.id,(!o.common.alias.read&&o.common.alias.read!==void 0||o.common.alias.read==="val")&&delete o.common.alias.read,(!o.common.alias.write&&o.common.alias.write!==void 0||o.common.alias.write==="val")&&delete o.common.alias.write,!o.common.alias.id&&!o.common.alias.read&&!o.common.alias.write&&delete o.common.alias),((i=o.common)==null?void 0:i.min)!==void 0&&typeof o.common.min!="number"&&(o.common.min=parseFloat(o.common.min)),((n=o.common)==null?void 0:n.max)!==void 0&&typeof o.common.max!="number"&&(o.common.max=parseFloat(o.common.max)),((r=o.common)==null?void 0:r.step)!==void 0&&typeof o.common.step!="number"&&(o.common.step=parseFloat(o.common.step)),o}catch{return null}}onChange(e,t){var r,o,a,l;const i=this.prepareObject(e),n={text:e};if(i){n.changed=this.originalObj!==JSON.stringify(i,null,2),n.showCommonDeleteMessage=!1;const h=JSON.parse(this.originalObj);i.common&&Object.keys(h.common||{}).forEach(c=>{i.common[c]===void 0&&(n.showCommonDeleteMessage=!0)}),n.error=!1,n.readError=this.checkFunction((o=(r=i.common)==null?void 0:r.alias)==null?void 0:o.read,!1),n.writeError=this.checkFunction((l=(a=i.common)==null?void 0:a.alias)==null?void 0:l.write,!0)}else n.showCommonDeleteMessage=!1,n.error=!0;this.setState(n,()=>t&&t())}onUpdate(){var e,t,i,n;try{const r=JSON.parse(this.state.text);r._id=this.props.obj._id,(e=r.common)!=null&&e.alias&&(r.common.alias.id||delete r.common.alias.id,(!r.common.alias.read&&r.common.alias.read!==void 0||r.common.alias.read==="val")&&delete r.common.alias.read,(!r.common.alias.write&&r.common.alias.write!==void 0||r.common.alias.write==="val")&&delete r.common.alias.write,!r.common.alias.id&&!r.common.alias.read&&!r.common.alias.write&&delete r.common.alias),((t=r.common)==null?void 0:t.min)!==void 0&&typeof r.common.min!="number"&&(r.common.min=parseFloat(r.common.min)),((i=r.common)==null?void 0:i.max)!==void 0&&typeof r.common.max!="number"&&(r.common.max=parseFloat(r.common.max)),((n=r.common)==null?void 0:n.step)!==void 0&&typeof r.common.step!="number"&&(r.common.step=parseFloat(r.common.step)),this.props.onClose(r)}catch{console.error(`Cannot parse: ${this.state.text}`)}}static getPartOfObject(e,t){return t?ee.getAttrInObject(JSON.parse(e),t.split(".")):JSON.parse(e)}static setPartOfObject(e,t,i){let n=JSON.parse(e);return n===void 0?e:(n=ee.setAttrInObject(n,i.split("."),t),JSON.stringify(n,null,2))}renderCustomPanel(){var i;const e=(i=this.state.customEditTabs)==null?void 0:i.find(n=>n.key===this.state.tab);if(!e)return null;let t;try{t=$n.getPartOfObject(this.state.text,e.path)}catch(n){return console.error(`Cannot get data for ${e.path}: ${n}`),L.jsx("div",{children:ee.I18n.t("Cannot get data for %s: %s",e.path,n)})}return t?L.jsx(_p.JsonConfigComponent,{theme:this.props.theme,socket:this.props.socket,themeName:this.props.theme.palette.mode,themeType:this.props.theme.palette.mode,dateFormat:this.props.dateFormat,isFloatComma:this.props.isFloatComma,schema:e.json,data:t,onChange:n=>{try{const r=$n.setPartOfObject(this.state.text,n,e.path);this.onChange(r)}catch(r){console.error(`Cannot set data for ${e.path}: ${r}`)}},adapterName:"",instance:0,onError:n=>{console.warn(`Error in JSON editor: ${n}`),this.state.customError!==n&&this.setState({customError:n})}}):L.jsx("div",{children:ee.I18n.t("Cannot get data for %s",e.path)})}renderCustomTab(e,t){var r;let i;if(!t||!ee.getAttrInObject(t,(r=e.path)==null?void 0:r.split(".")))return null;e.color&&(i={backgroundColor:e.color,color:ee.Utils.invertColor(e.color,!0)});const n=e.label&&typeof e.label=="object"?e.label[this.state.lang]||e.label.en:e.noTranslation?e.label||e.key:this.props.t(e.label||e.key);return L.jsx(E.Tab,{disabled:this.state.error||this.state.customError,value:e.key,label:n,style:i,iconPosition:"start",icon:e.icon?L.jsx(ee.Icon,{src:e.icon,style:se.funcIcon}):void 0})}renderStateTab(){return this.props.obj.type!=="state"||this.props.obj.common.type==="file"?null:L.jsx(E.Tab,{disabled:this.state.customError||this.state.error,value:"state",label:this.props.t("State")})}renderStatePanel(){var r;if(this.state.value===void 0||this.state.value===null)return L.jsx("div",{children:this.props.t("State does not exist")});if(typeof this.state.value!="object")return L.jsxs("div",{style:{maxWidth:700},children:[L.jsx("div",{children:this.props.t("State is invalid")}),L.jsx("div",{children:L.jsx("pre",{children:JSON.stringify(this.state.value,null,4)})})]});let e;const t={},i=this.state.value.val,n=typeof i;if(i===void 0)e="[undef]",t.color="#bc6400",t.fontStyle="italic";else if(i===null)e="(null)",t.color="#0047b1",t.fontStyle="italic";else if(typeof this.props.obj.common.role=="string"&&this.props.obj.common.role.match(/^value\.time|^date/))if(i&&n==="string")if(ee.Utils.isStringInteger(i))e=new Date(parseInt(i,10)).toString();else try{const o=new Date(i);ee.Utils.isValidDate(o)&&(e=o.toString())}catch{}else i&&n==="number"&&(i>946681200&&i<9466812e5?e=new Date(i*1e3).toString():i>9466812e8&&(e=new Date(i).toString()));return e||(n==="number"?Number.isInteger(i)||(e=(Math.round(i*1e9)/1e9).toString(),this.props.isFloatComma&&(e=e.toString().replace(".",","))):n==="boolean"?(e=i?ee.I18n.t("true"):ee.I18n.t("false"),t.color=i?"#139800":"#cd6b55"):n==="object"?e=JSON.stringify(i):n==="string"&&i.startsWith("data:image/")?e=L.jsx("img",{src:i,alt:"img",style:se.stateImage}):e=i.toString()),Object.assign(t,Nme(this.props.theme,t.color)),L.jsxs(E.Box,{style:{...se.divWithoutTitle,padding:"24px 24px 0 24px",fontSize:16,maxWidth:400},sx:{"& .value-line:hover":{backgroundColor:"#00000030"}},children:[L.jsxs("div",{className:"value-line",style:{...se.stateRow,marginBottom:24},children:[L.jsxs("div",{style:se.stateTitle,children:[ee.I18n.t("ra_tooltip_value"),":"]}),L.jsxs(E.Box,{component:"div",sx:t,style:se.stateValue,children:[e,(r=this.props.obj.common)!=null&&r.unit?L.jsx("span",{style:se.stateUnit,children:this.props.obj.common.unit}):null]},typeof e=="string"?e:"image")]}),L.jsxs("div",{style:se.stateRow,className:"value-line",children:[L.jsxs("div",{style:se.stateTitle,children:[ee.I18n.t("Type"),":"]}),L.jsx("div",{style:se.stateValue,children:n})]}),L.jsxs("div",{style:se.stateRow,className:"value-line",children:[L.jsxs("div",{style:se.stateTitle,children:[ee.I18n.t("ra_tooltip_ts"),":"]}),L.jsx(E.Tooltip,{title:new Date(this.state.value.ts).toLocaleString(),slotProps:{popper:{sx:se.tooltip}},children:L.jsx("div",{style:se.stateValue,children:L.jsx("span",{style:se.stateTime,children:xT(this.state.value.ts).fromNow()})})})]}),L.jsxs("div",{style:se.stateRow,className:"value-line",children:[L.jsxs("div",{style:se.stateTitle,children:[ee.I18n.t("ra_tooltip_ack"),":"]}),L.jsxs("div",{style:{...se.stateValue,color:this.state.value.ack?"green":"red"},children:[this.state.value.ack?ee.I18n.t("Acknowledged"):ee.I18n.t("Command"),this.state.value.ack?" (true)":" (false)"]})]}),L.jsxs("div",{style:se.stateRow,className:"value-line",children:[L.jsxs("div",{style:se.stateTitle,children:[ee.I18n.t("ra_tooltip_lc"),":"]}),L.jsx(E.Tooltip,{title:new Date(this.state.value.lc).toLocaleString(),slotProps:{popper:{sx:se.tooltip}},children:L.jsx("div",{style:se.stateValue,children:L.jsx("span",{style:se.stateTime,children:xT(this.state.value.lc).fromNow()})})})]}),L.jsxs("div",{style:se.stateRow,className:"value-line",children:[L.jsxs("div",{style:se.stateTitle,children:[ee.I18n.t("ra_tooltip_quality"),":"]}),L.jsx("div",{style:se.stateValue,children:ee.Utils.quality2text(this.state.value.q||0).join(", ")})]}),L.jsxs("div",{style:se.stateRow,className:"value-line",children:[L.jsxs("div",{style:se.stateTitle,children:[ee.I18n.t("ra_tooltip_from"),":"]}),L.jsx("div",{style:se.stateValue,children:this.state.value.from})]}),L.jsxs("div",{style:se.stateRow,className:"value-line",children:[L.jsxs("div",{style:se.stateTitle,children:[ee.I18n.t("ra_tooltip_user"),":"]}),L.jsx("div",{style:se.stateValue,children:this.state.value.user||"--"})]}),this.state.value.expire?L.jsxs("div",{style:se.stateRow,className:"value-line",children:[L.jsxs("div",{style:se.stateTitle,children:[ee.I18n.t("ra_tooltip_expire"),":"]}),L.jsxs("div",{style:se.stateValue,children:[this.state.value.expire," ",ee.I18n.t("sc_seconds")]})]}):null,this.state.value.c?L.jsxs("div",{style:se.stateRow,className:"value-line",children:[L.jsxs("div",{style:se.stateTitle,children:[ee.I18n.t("ra_tooltip_comment"),":"]}),L.jsx("div",{style:se.stateValue,children:this.state.value.c})]}):null]})}onStateChange=(e,t)=>{JSON.stringify(t)!==JSON.stringify(this.state.value)&&this.setState({value:t})};subscribeOnState(e){e?this.subscribed||(this.updateTimer||(this.updateTimer=setInterval(()=>{this.forceUpdate()},5e3)),this.subscribed=!0,this.props.socket.subscribeState(this.props.obj._id,this.onStateChange)):this.subscribed&&(this.updateTimer&&(clearInterval(this.updateTimer),this.updateTimer=null),this.subscribed=!1,this.props.socket.unsubscribeState(this.props.obj._id,this.onStateChange))}isRouted(){const e=ee.Router.getLocation();return e.tab==="tab-objects"&&e.dialog==="edit"&&e.id===this.props.obj._id}renderTabs(e){var t;return L.jsxs(E.Tabs,{style:se.tabsPadding,value:this.state.tab,onChange:(i,n)=>{var r,o,a;if((window._localStorage||window.localStorage).setItem(`${this.props.dialogName||"App"}.editTab`,n),this.isRouted()&&ee.Router.doNavigate(null,null,null,n),n==="object"){try{const l=JSON.parse(this.state.text);let h=!1;((r=l.common)==null?void 0:r.min)!==void 0&&typeof l.common.min!="number"&&(l.common.min=parseFloat(l.common.min),h=!0),((o=l.common)==null?void 0:o.max)!==void 0&&typeof l.common.max!="number"&&(l.common.max=parseFloat(l.common.max),h=!0),((a=l.common)==null?void 0:a.step)!==void 0&&typeof l.common.step!="number"&&(l.common.step=parseFloat(l.common.step),h=!0),h&&this.setState({text:JSON.stringify(l,null,2)})}catch{}this.subscribeOnState(!1)}else n==="state"?this.subscribeOnState(!0):this.subscribeOnState(!1);this.setState({tab:n})},children:[L.jsx(E.Tab,{value:"common",disabled:this.state.customError||this.state.error,label:this.props.t("common")}),L.jsx(E.Tab,{value:"object",disabled:this.state.customError,label:this.props.t("Object data")}),this.renderStateTab(),this.props.obj._id.startsWith("alias.0")&&this.props.obj.type==="state"&&L.jsx(E.Tab,{disabled:this.state.customError||this.state.error,value:"alias",label:this.props.t("Alias")}),(t=this.state.customEditTabs)==null?void 0:t.map(i=>this.renderCustomTab(i,e))]})}renderSelectDialog(){var i,n,r,o;if(!this.state.selectId&&!this.state.selectRead&&!this.state.selectWrite)return null;let e="",t;try{t=JSON.parse(this.state.text);const a=t.common&&"type"in t.common&&"alias"in t.common?(i=t.common.alias)==null?void 0:i.read:"",l=t.common&&"type"in t.common&&"alias"in t.common?(n=t.common.alias)==null?void 0:n.write:"";this.state.selectId?e=((o=(r=t.common)==null?void 0:r.alias)==null?void 0:o.id)||"":this.state.selectRead?e=a??"":this.state.selectWrite&&(e=l??"")}catch{console.error(`Cannot parse ${this.state.text}`)}return L.jsx(ee.DialogSelectID,{imagePrefix:".",dateFormat:this.props.dateFormat,theme:this.props.theme,isFloatComma:this.props.isFloatComma,socket:this.props.socket,dialogName:"aliasesEdit",title:`${this.props.t("Select for")} ${this.props.obj._id}`,selected:e,onOk:a=>{const l=this.state.selectRead,h=this.state.selectWrite,c=this.state.selectId,u=Array.isArray(a)?a[0]:a;this.setState({selectId:!1,selectRead:!1,selectWrite:!1},()=>{l?this.setAliasItem(t,"id.read",u):h?this.setAliasItem(t,"id.write",u):c&&this.setAliasItem(t,"id",u)})},onClose:()=>this.setState({selectId:!1,selectRead:!1,selectWrite:!1})},"selectDialog")}setAliasItem(e,t,i,n){e.common=e.common||{};const r=e.common.alias||{};t==="id.read"?r.id&&typeof r.id=="object"?r.id.read=i:r.id={read:i,write:i}:t==="id.write"?r.id&&typeof r.id=="object"?r.id.write=i:r.id={read:i,write:i}:r[t]=i,e.common.alias=r,this.onChange(JSON.stringify(e,null,2),n)}setCommonItem(e,t,i){e.common[t]=i,this.onChange(JSON.stringify(e,null,2))}removeCommonItem(e,t){delete e.common[t],this.onChange(JSON.stringify(e,null,2))}static buttonAddKey(e,t){return L.jsx("div",{style:se.marginBlock,children:L.jsx(E.Button,{style:se.buttonAdd,variant:"contained",color:"secondary",startIcon:L.jsx(Ie.Add,{}),onClick:t,children:ee.I18n.t(e)})})}buttonRemoveKey(e,t,i){const{t:n}=this.props;return L.jsx(E.Tooltip,{title:n("Remove attribute %s",n(e)),slotProps:{popper:{sx:se.tooltip}},children:L.jsx(E.Box,{component:"div",sx:se.close,style:i,onClick:t})})}static filterRoles(e,t){const i=[];return e.forEach(n=>(n.type==="mixed"||n.type)===t&&!i.includes(n.role)&&i.push(n.role)),Bb.forEach(n=>(n.type==="mixed"||n.type)===t&&!i.includes(n.role)&&i.push(n.role)),i.sort(),i}renderCommonEdit(){try{const e=JSON.parse(this.state.text),t=["number","string","boolean","array","object","mixed"],i=!1,{t:n,obj:r}=this.props,o=r.type==="state",a=r.type==="channel"||r.type==="device"||o,l=$n.filterRoles(this.props.roleArray,e.common.type);let h;if(e.common.icon&&(h=e.type==="instance"||e.type==="adapter"?`./adapter/${e.common.name}/${e.common.icon}`:e.common.icon,!h.startsWith(".")&&!h.startsWith("/")&&!h.startsWith("data:"))){const d=r._id.split(".");d[0]==="system"?h=`adapter/${d[2]}${h.startsWith("/")?"":"/"}${h}`:h=`adapter/${d[0]}${h.startsWith("/")?"":"/"}${h}`}const c=typeof e.common.desc=="object"&&e.common.desc?e.common.desc[ee.I18n.getLanguage()]||e.common.desc.en||"":e.common.desc||"",u=ee.Utils.getObjectNameFromObj(e,ee.I18n.getLanguage(),{},!1,!0);return L.jsxs(E.Box,{style:se.commonTabWrapper,onKeyDown:d=>{d.key==="Enter"&&(d.preventDefault(),d.stopPropagation(),this.onUpdate())},children:[L.jsxs(E.Box,{style:{...se.commonWrapper,width:this.props.width==="xs"?"100%":void 0,minWidth:this.props.width==="xs"?"100%":void 0,gap:this.props.width==="xs"?10:8,display:this.props.width==="xs"?"flex":void 0,flexDirection:this.props.width==="xs"?"column":void 0},children:[typeof e.common.name<"u"?L.jsx(E.TextField,{variant:"standard",disabled:i,label:n("Name"),style:{...se.textField,marginTop:8},fullWidth:!0,slotProps:{input:{endAdornment:u?L.jsx(E.InputAdornment,{position:"end",children:L.jsx(E.Tooltip,{title:ee.I18n.t("Clear text"),slotProps:{popper:{sx:se.tooltip}},children:L.jsx(E.IconButton,{tabIndex:-1,size:"small",onClick:()=>this.setCommonItem(e,"name",""),children:L.jsx(Ie.Close,{})})})}):null}},value:u,onChange:d=>this.setCommonItem(e,"name",d.target.value)}):$n.buttonAddKey("Name",()=>this.setCommonItem(e,"name","")),typeof e.common.desc<"u"?L.jsxs(E.Box,{component:"div",sx:se.flex,children:[L.jsx(E.TextField,{variant:"standard",disabled:i,label:n("Description"),style:{...se.textField,marginTop:8},fullWidth:!0,slotProps:{input:{endAdornment:c?L.jsx(E.InputAdornment,{position:"end",children:L.jsx(E.Tooltip,{title:ee.I18n.t("Clear text"),slotProps:{popper:{sx:se.tooltip}},children:L.jsx(E.IconButton,{tabIndex:-1,size:"small",onClick:()=>this.setCommonItem(e,"desc",""),children:L.jsx(Ie.Close,{})})})}):null}},value:c,onChange:d=>this.setCommonItem(e,"desc",d.target.value)}),this.buttonRemoveKey("Description",()=>this.removeCommonItem(e,"desc"))]}):$n.buttonAddKey("Description",()=>this.setCommonItem(e,"desc","")),o?typeof e.common.type<"u"?L.jsxs(E.Box,{component:"div",sx:se.flex,children:[L.jsxs(E.FormControl,{style:se.marginBlock,fullWidth:!0,children:[L.jsx(E.InputLabel,{style:{transform:"scale(0.75)"},children:n("State type")}),L.jsx(E.Select,{variant:"standard",disabled:i,value:e.common.type,onChange:d=>this.setCommonItem(e,"type",d.target.value),children:t.map(d=>L.jsxs(E.MenuItem,{value:d,children:[n(d),L.jsxs("span",{style:se.typeNameEng,children:["(",d,")"]})]},d))})]}),this.buttonRemoveKey("State type",()=>this.removeCommonItem(e,"type"),{marginTop:20})]}):$n.buttonAddKey("State type",()=>this.setCommonItem(e,"type","string")):null,L.jsxs(E.Box,{component:"div",sx:{...se.flex,flexWrap:this.props.width==="xs"?"wrap":void 0},children:[o?typeof e.common.read<"u"?L.jsxs(E.Box,{component:"div",sx:se.flex,children:[L.jsx(E.FormControlLabel,{style:se.marginBlock,control:L.jsx(E.Checkbox,{disabled:i,checked:e.common.read,onChange:d=>this.setCommonItem(e,"read",d.target.checked)}),label:n("Readable")}),this.buttonRemoveKey("Readable",()=>this.removeCommonItem(e,"read"))]}):$n.buttonAddKey("Readable",()=>this.setCommonItem(e,"read",!0)):null,o?typeof e.common.write<"u"?L.jsxs(E.Box,{component:"div",sx:se.flex,children:[L.jsx(E.FormControlLabel,{style:se.marginBlock,control:L.jsx(E.Checkbox,{disabled:i,checked:e.common.write,onChange:d=>this.setCommonItem(e,"write",d.target.checked)}),label:n("Writeable")}),this.buttonRemoveKey("Writeable",()=>this.removeCommonItem(e,"write"))]}):$n.buttonAddKey("Writeable",()=>this.setCommonItem(e,"write",!0)):null]}),a?typeof e.common.role<"u"?L.jsxs(E.Box,{component:"div",sx:se.flex,children:[L.jsx(E.Autocomplete,{style:se.marginBlock,fullWidth:!0,disabled:i,value:e.common.role,onChange:(d,f)=>{const g=Bb.find(p=>p.role===f);g&&(g.w!==void 0&&g.r!==void 0?(this.setCommonItem(e,"write",g.w),this.setCommonItem(e,"read",g.r)):g.w!==void 0?this.setCommonItem(e,"write",g.w):g.r!==void 0&&this.setCommonItem(e,"read",g.r)),f.startsWith("level")||f.startsWith("indicator")||f.startsWith("sensor")||f.startsWith("weather")?e.common.write&&this.setCommonItem(e,"write",!1):f.startsWith("value")||f.startsWith("indicator")||f.startsWith("sensor")||f.startsWith("weather")?e.common.write&&this.setCommonItem(e,"write",!1):f.startsWith("level")||f.startsWith("switch")?e.common.write&&this.setCommonItem(e,"write",!0):f.startsWith("button")&&e.common.read&&this.setCommonItem(e,"read",!1),this.setCommonItem(e,"role",f)},options:l,renderInput:d=>L.jsx(E.TextField,{variant:"standard",...d,label:n("Role")})}),this.buttonRemoveKey("Role",()=>this.removeCommonItem(e,"role"),{marginTop:20})]}):$n.buttonAddKey("Role",()=>this.setCommonItem(e,"role","")):null,typeof e.common.color<"u"?L.jsxs(E.Box,{component:"div",sx:se.flex,children:[L.jsx(E.TextField,{variant:"standard",disabled:i,style:{...se.marginBlock,...se.color},label:n("Color"),type:"color",slotProps:{input:{endAdornment:e.common.color?L.jsx(E.InputAdornment,{position:"end",children:L.jsx(E.Tooltip,{title:ee.I18n.t("Clear field"),slotProps:{popper:{sx:se.tooltip}},children:L.jsx(E.IconButton,{tabIndex:-1,size:"small",onClick:()=>this.setCommonItem(e,"color",""),children:L.jsx(Ie.Close,{})})})}):null}},value:e.common.color,onChange:d=>this.setCommonItem(e,"color",d.target.value)}),this.buttonRemoveKey("Color",()=>this.removeCommonItem(e,"color"))]}):$n.buttonAddKey("Color",()=>this.setCommonItem(e,"color","")),L.jsxs(E.Box,{component:"div",sx:{...se.flex,flexWrap:this.props.width==="xs"?"wrap":void 0,gap:this.props.width==="xs"?"10px":void 0},children:[e.common.type==="number"?typeof e.common.min<"u"?L.jsxs(E.Box,{component:"div",sx:se.flex,children:[L.jsx(E.TextField,{variant:"standard",disabled:i,className:{...se.marginBlock,...se.color},label:n("Min"),value:e.common.min,onChange:d=>this.setCommonItem(e,"min",d.target.value)}),this.buttonRemoveKey("Min",()=>this.removeCommonItem(e,"min"))]}):L.jsx(E.Box,{component:"div",sx:se.flex,children:$n.buttonAddKey("Min",()=>this.setCommonItem(e,"min",0))}):null,e.common.type==="number"?typeof e.common.max<"u"?L.jsxs(E.Box,{component:"div",sx:se.flex,children:[L.jsx(E.TextField,{variant:"standard",disabled:i,className:{...se.marginBlock,...se.color},label:n("Max"),value:e.common.max,onChange:d=>this.setCommonItem(e,"max",d.target.value)}),this.buttonRemoveKey("Max",()=>this.removeCommonItem(e,"max"))]}):L.jsx(E.Box,{component:"div",sx:se.flex,children:$n.buttonAddKey("Max",()=>this.setCommonItem(e,"max",100))}):null,e.common.type==="number"?typeof e.common.step<"u"?L.jsxs(E.Box,{component:"div",sx:se.flex,children:[L.jsx(E.TextField,{variant:"standard",disabled:i,className:{...se.marginBlock,...se.color},label:n("Step"),value:e.common.step,onChange:d=>this.setCommonItem(e,"step",d.target.value)}),this.buttonRemoveKey("Step",()=>this.removeCommonItem(e,"step"))]}):L.jsx(E.Box,{component:"div",sx:se.flex,children:$n.buttonAddKey("Step",()=>this.setCommonItem(e,"step",1))}):null]}),e.common.type==="number"?typeof e.common.unit<"u"?L.jsxs(E.Box,{component:"div",sx:se.flex,children:[L.jsx(E.TextField,{variant:"standard",disabled:i,className:{...se.marginBlock,...se.color},label:n("Unit"),slotProps:{input:{endAdornment:e.common.unit?L.jsx(E.InputAdornment,{position:"end",children:L.jsx(E.Tooltip,{title:ee.I18n.t("Clear field"),slotProps:{popper:{sx:se.tooltip}},children:L.jsx(E.IconButton,{tabIndex:-1,size:"small",onClick:()=>this.setCommonItem(e,"unit",""),children:L.jsx(Ie.Close,{})})})}):null}},value:e.common.unit,onChange:d=>this.setCommonItem(e,"unit",d.target.value)}),this.buttonRemoveKey("Unit",()=>this.removeCommonItem(e,"unit"))]}):L.jsx("div",{style:se.flexDrop,children:$n.buttonAddKey("Unit",()=>this.setCommonItem(e,"unit",""))}):null]}),typeof e.common.icon<"u"?L.jsxs(E.Box,{component:"div",sx:se.flex,style:{flexGrow:1,minWidth:158},children:[L.jsx(ee.UploadImage,{disabled:i,maxSize:10*1024,icon:h,removeIconFunc:()=>this.setCommonItem(e,"icon",""),onChange:d=>this.setCommonItem(e,"icon",d)}),this.buttonRemoveKey("Icon",()=>this.removeCommonItem(e,"icon"))]}):L.jsx(E.Box,{component:"div",sx:se.flex,children:$n.buttonAddKey("Icon",()=>this.setCommonItem(e,"icon",""))})]})}catch{return L.jsx("div",{children:this.props.t("Cannot parse JSON!")})}}renderAliasEdit(){var e,t,i,n,r,o,a,l,h,c,u,d,f,g,p,m,v,_,b,y,C,x,S,k,T,I,N,A,R,P,B,z,U,K,X,ne,oe,ue,de,De;try{const Q=JSON.parse(this.state.text),Xe=((t=(e=Q.common)==null?void 0:e.alias)==null?void 0:t.read)!==void 0||((n=(i=Q.common)==null?void 0:i.alias)==null?void 0:n.write)!==void 0;return L.jsxs(E.Grid2,{container:!0,direction:"column",style:se.marginTop,children:[L.jsx(E.Grid2,{children:L.jsx(E.FormControlLabel,{control:L.jsx(E.Checkbox,{checked:typeof((o=(r=Q.common)==null?void 0:r.alias)==null?void 0:o.id)=="object",onChange:()=>{var Pe,tt,st,ve,ge,Oe,Ci;typeof((tt=(Pe=Q.common)==null?void 0:Pe.alias)==null?void 0:tt.id)=="object"?this.setAliasItem(Q,"id",((ge=(ve=(st=Q.common)==null?void 0:st.alias)==null?void 0:ve.id)==null?void 0:ge.read)||""):this.setAliasItem(Q,"id.read",((Ci=(Oe=Q.common)==null?void 0:Oe.alias)==null?void 0:Ci.id)||"")}}),label:this.props.t("Different IDs for read and write")})}),typeof((l=(a=Q.common)==null?void 0:a.alias)==null?void 0:l.id)!="object"?L.jsxs(E.Grid2,{children:[L.jsx(E.TextField,{variant:"standard",label:this.props.t("Alias state"),value:((c=(h=Q.common)==null?void 0:h.alias)==null?void 0:c.id)||"",style:se.aliasIdEdit,slotProps:{input:{endAdornment:(d=(u=Q.common)==null?void 0:u.alias)!=null&&d.id?L.jsx(E.InputAdornment,{position:"end",children:L.jsx(E.Tooltip,{title:ee.I18n.t("Clear field"),slotProps:{popper:{sx:se.tooltip}},children:L.jsx(E.IconButton,{tabIndex:-1,size:"large",onClick:()=>this.setAliasItem(Q,"id",""),children:L.jsx(Ie.Close,{})})})}):null}},onChange:Pe=>this.setAliasItem(Q,"id",Pe.target.value),margin:"normal"}),L.jsx(E.Fab,{style:se.button,size:"small",onClick:()=>this.setState({selectId:!0,selectRead:!1,selectWrite:!1}),children:"..."})]}):null,typeof((g=(f=Q.common)==null?void 0:f.alias)==null?void 0:g.id)=="object"?L.jsxs(E.Grid2,{children:[L.jsx(E.TextField,{variant:"standard",label:this.props.t("Alias read state"),value:((v=(m=(p=Q.common)==null?void 0:p.alias)==null?void 0:m.id)==null?void 0:v.read)||"",style:se.aliasIdEdit,slotProps:{input:{endAdornment:(y=(b=(_=Q.common)==null?void 0:_.alias)==null?void 0:b.id)!=null&&y.read?L.jsx(E.InputAdornment,{position:"end",children:L.jsx(E.Tooltip,{title:ee.I18n.t("Clear field"),slotProps:{popper:{sx:se.tooltip}},children:L.jsx(E.IconButton,{size:"large",tabIndex:-1,onClick:()=>this.setAliasItem(Q,"id.read",""),children:L.jsx(Ie.Close,{})})})}):null}},onChange:Pe=>this.setAliasItem(Q,"id.read",Pe.target.value),margin:"normal"}),L.jsx(E.Fab,{style:se.button,size:"small",onClick:()=>this.setState({selectId:!1,selectRead:!0,selectWrite:!1}),children:"..."})]}):null,typeof((x=(C=Q.common)==null?void 0:C.alias)==null?void 0:x.id)=="object"?L.jsxs(E.Grid2,{children:[L.jsx(E.TextField,{variant:"standard",label:this.props.t("Alias write state"),value:((T=(k=(S=Q.common)==null?void 0:S.alias)==null?void 0:k.id)==null?void 0:T.write)||"",style:se.aliasIdEdit,slotProps:{input:{endAdornment:(A=(N=(I=Q.common)==null?void 0:I.alias)==null?void 0:N.id)!=null&&A.write?L.jsx(E.InputAdornment,{position:"end",children:L.jsx(E.Tooltip,{title:ee.I18n.t("Clear field"),slotProps:{popper:{sx:se.tooltip}},children:L.jsx(E.IconButton,{size:"large",tabIndex:-1,onClick:()=>this.setAliasItem(Q,"id.write",""),children:L.jsx(Ie.Close,{})})})}):null}},onChange:Pe=>this.setAliasItem(Q,"id.write",Pe.target.value),margin:"normal"}),L.jsx(E.Fab,{style:se.button,size:"small",onClick:()=>this.setState({selectId:!1,selectRead:!1,selectWrite:!0}),children:"..."})]}):null,L.jsx(E.Grid2,{style:se.marginTop,children:L.jsx(E.FormControlLabel,{control:L.jsx(E.Checkbox,{checked:((P=(R=Q.common)==null?void 0:R.alias)==null?void 0:P.read)!==void 0||((z=(B=Q.common)==null?void 0:B.alias)==null?void 0:z.write)!==void 0,onChange:()=>{Xe?(delete Q.common.alias.read,delete Q.common.alias.write):(Q.common=Q.common||{},Q.common.alias=Q.common.alias||{},Q.common.alias.read="val",Q.common.alias.write="val"),this.onChange(JSON.stringify(Q,null,2))}}),label:this.props.t("Use convert functions")})}),Xe?L.jsx(E.Grid2,{children:L.jsx(E.TextField,{variant:"standard",label:this.props.t("Read converter"),value:((K=(U=Q.common)==null?void 0:U.alias)==null?void 0:K.read)||"val",style:se.funcEdit,error:!!this.state.readError,slotProps:{input:{endAdornment:(ne=(X=Q.common)==null?void 0:X.alias)!=null&&ne.read?L.jsx(E.InputAdornment,{position:"end",children:L.jsx(E.Tooltip,{title:ee.I18n.t("Clear field"),slotProps:{popper:{sx:se.tooltip}},children:L.jsx(E.IconButton,{size:"large",tabIndex:-1,onClick:()=>this.setAliasItem(Q,"read",""),children:L.jsx(Ie.Close,{})})})}):null,startAdornment:L.jsx(E.InputAdornment,{position:"start",children:L.jsx(ee.IconFx,{style:se.funcIcon})})}},onChange:Pe=>this.setAliasItem(Q,"read",Pe.target.value),helperText:this.state.readError||`${this.props.t("JS function like")} "val / 5 + 21"`,margin:"normal"})}):null,Xe?L.jsx(E.Grid2,{children:L.jsx(E.TextField,{variant:"standard",label:this.props.t("Write converter"),error:!!this.state.writeError,value:((ue=(oe=Q.common)==null?void 0:oe.alias)==null?void 0:ue.write)||"val",helperText:this.state.writeError||`${this.props.t("JS function like")} "(val - 21) * 5"`,style:se.funcEdit,slotProps:{input:{endAdornment:(De=(de=Q.common)==null?void 0:de.alias)!=null&&De.write?L.jsx(E.InputAdornment,{position:"end",children:L.jsx(E.Tooltip,{title:ee.I18n.t("Clear field"),slotProps:{popper:{sx:se.tooltip}},children:L.jsx(E.IconButton,{size:"large",tabIndex:-1,onClick:()=>this.setAliasItem(Q,"write",""),children:L.jsx(Ie.Close,{})})})}):null,startAdornment:L.jsx(E.InputAdornment,{position:"start",children:L.jsx(ee.IconFx,{style:se.funcIcon})})}},onChange:Pe=>this.setAliasItem(Q,"write",Pe.target.value),margin:"normal"})}):null]})}catch{return L.jsx("div",{children:this.props.t("Cannot parse JSON!")})}}onCopy(e){ee.Utils.copyToClipboard(this.state.text,e),window.alert(this.props.t("ra_Copied"))}onClone(e,t){const i=JSON.parse(JSON.stringify(this.props.objects[e]));delete i.from,delete i.ts,delete i.user,i._id=t,this.props.objects[i._id]=i,this.props.onNewObject(i)}renderCopyDialog(){return this.state.showCopyDialog?L.jsxs(E.Dialog,{open:!0,maxWidth:"md",fullWidth:!0,onClose:()=>this.setState({showCopyDialog:""}),children:[L.jsx(E.DialogTitle,{children:this.props.t("Enter new ID for this object")}),L.jsx(E.DialogContent,{children:L.jsx(E.TextField,{variant:"standard",autoFocus:!0,fullWidth:!0,label:this.props.t("New object ID"),value:this.state.newId,slotProps:{input:{endAdornment:this.state.newId?L.jsx(E.InputAdornment,{position:"end",children:L.jsx(E.Tooltip,{title:ee.I18n.t("Clear field"),slotProps:{popper:{sx:se.tooltip}},children:L.jsx(E.IconButton,{size:"small",tabIndex:-1,onClick:()=>this.setState({newId:""}),children:L.jsx(Ie.Close,{})})})}):null}},onKeyDown:e=>{e.key==="Enter"&&!this.props.objects[this.state.newId]&&(this.setState({showCopyDialog:""}),this.onClone(this.state.showCopyDialog,this.state.newId))},onChange:e=>this.setState({newId:e.target.value})})}),L.jsxs(E.DialogActions,{children:[L.jsx(E.Button,{disabled:!!this.props.objects[this.state.newId],onClick:()=>{this.setState({showCopyDialog:""}),this.onClone(this.state.showCopyDialog,this.state.newId)},color:"primary",startIcon:L.jsx(Ie.FileCopy,{}),children:this.props.t("Clone")}),L.jsx(E.Button,{color:"grey",onClick:()=>this.setState({showCopyDialog:""}),startIcon:L.jsx(Ie.Close,{}),children:this.props.t("Cancel")})]})]}):null}renderPanelObject(e){return L.jsxs("div",{style:{...se.divWithoutTitle,...e?se.divWithoutTitleAndTab:void 0,...this.state.error?se.error:void 0},onKeyDown:t=>{t.ctrlKey&&t.key==="Enter"&&(t.preventDefault(),t.stopPropagation(),this.onUpdate())},children:[L.jsx(f$,{value:this.state.text,onChange:t=>this.onChange(t),name:"UNIQUE_ID_OF_DIV",themeType:this.props.themeType}),this.state.showCommonDeleteMessage?L.jsx("div",{style:se.commonDeleteTip,children:ee.I18n.t("common_delete_tip")}):null]})}render(){const e=this.props.obj,t=e._id.startsWith("alias.0")&&e.type==="state";let i=se.dialog;window.innerWidth>1920&&(i={...i,maxWidth:"calc(100% - 150px)"});let n;try{n=JSON.parse(this.state.text)}catch{}return L.jsxs(E.Dialog,{sx:{"& .MuiPaper-root":i},open:!0,maxWidth:"xl",fullWidth:!0,fullScreen:!1,onClose:()=>this.props.onClose(),"aria-labelledby":"edit-value-dialog-title","aria-describedby":"edit-value-dialog-description",children:[L.jsxs(E.DialogTitle,{id:"edit-value-dialog-title",style:{width:"calc(100% - 32px)",overflow:"hidden",textOverflow:"ellipsis"},children:[this.props.t("Edit object:")," ",L.jsx(E.Box,{component:"span",style:se.id,sx:{fontSize:{xs:10}},children:this.props.obj._id})]}),this.renderTabs(n),this.renderCopyDialog(),L.jsxs(E.DialogContent,{sx:{p:this.props.width==="xs"&&this.state.tab==="object"?"6px":this.state.tab==="object"||this.state.tab==="common"||this.state.tab==="alias"?"0 24px":"0 6px",overflow:this.state.tab==="object"||this.state.tab==="common"||this.state.tab==="alias"?void 0:"hidden"},children:[this.state.tab==="object"?this.renderPanelObject(t):null,this.state.tab==="alias"&&this.props.obj._id.startsWith("alias.0")&&this.props.obj.type==="state"?this.renderAliasEdit():null,this.state.tab==="common"?this.renderCommonEdit():null,this.state.tab==="state"?this.renderStatePanel():null,this.renderCustomPanel(),this.renderSelectDialog()]}),L.jsxs(E.DialogActions,{sx:se.wrapperButton,children:[L.jsx(E.Button,{color:"grey",onClick:()=>this.setState({showCopyDialog:this.props.obj._id,newId:this.props.obj._id}),disabled:this.state.error||this.state.changed,title:this.props.t("Create a copy of this object"),children:L.jsx(Ie.FileCopy,{fontSize:this.props.width==="xs"?"large":void 0})}),L.jsx("div",{style:{flexGrow:1}}),this.state.tab==="object"&&L.jsx(E.Button,{color:"grey",onClick:r=>this.onCopy(r),disabled:this.state.error,title:this.props.width==="xs"?this.props.t("Copy into clipboard"):"",startIcon:this.props.width==="xs"?void 0:L.jsx(B7,{}),children:this.props.width==="xs"?L.jsx(B7,{fontSize:32}):this.props.t("Copy into clipboard")}),L.jsx(E.Button,{variant:"contained",disabled:this.state.error||!this.state.changed||this.state.customError,onClick:()=>this.onUpdate(),startIcon:this.props.width==="xs"?void 0:L.jsx(Ie.Check,{}),color:"primary",children:this.props.width==="xs"?L.jsx(Ie.Check,{fontSize:"large"}):this.props.t("Write")}),L.jsx(E.Button,{color:"grey",variant:"contained",onClick:()=>this.props.onClose(),startIcon:this.props.width==="xs"?void 0:L.jsx(Ie.Close,{}),children:this.props.width==="xs"?L.jsx(Ie.Close,{fontSize:"large"}):this.props.t("Cancel")})]})]})}}class A4 extends Te.Component{object=null;constructor(e){super(e),this.state={role:null,initRole:null,roleInput:null}}componentDidMount(){this.props.socket.getObject(this.props.id).then(e=>{var i;this.object=e;const t=((i=e==null?void 0:e.common)==null?void 0:i.role)||null;this.setState({role:t,initRole:t,roleInput:t})}).catch(e=>console.error(e))}onUpdate(){this.object.common=this.object.common||{},this.object.common.role=this.state.roleInput,this.props.socket.setObject(this.object._id,this.object).then(()=>this.props.onClose(this.object))}static filterRoles(e,t){const i=[];return e.forEach(n=>(n.type==="mixed"||n.type)===t&&!i.includes(n.role)&&i.push(n.role)),Bb.forEach(n=>(n.type==="mixed"||n.type)===t&&!i.includes(n.role)&&i.push(n.role)),i.sort(),i}render(){return L.jsxs(E.Dialog,{open:!0,maxWidth:"sm",fullWidth:!0,onClose:()=>this.props.onClose(),"aria-labelledby":"edit-role-dialog-title","aria-describedby":"edit-role-dialog-description",children:[L.jsx(E.DialogTitle,{id:"edit-role-dialog-title",children:this.object?this.props.t("Update role for %s",this.object._id):null}),L.jsx(E.DialogContent,{children:L.jsx(E.Autocomplete,{freeSolo:!0,options:A4.filterRoles(this.props.roleArray,this.props.commonType),style:{width:"100%"},value:this.state.role,onChange:(e,t)=>this.setState({role:t,roleInput:t}),onInputChange:(e,t)=>this.setState({roleInput:t}),renderInput:e=>L.jsx(E.TextField,{variant:"standard",...e,label:this.props.t("Role")})})}),L.jsxs(E.DialogActions,{children:[L.jsx(E.Button,{disabled:this.state.initRole===this.state.roleInput,variant:"contained",onClick:()=>this.onUpdate(),color:"primary",startIcon:L.jsx(Ie.Check,{}),children:this.props.t("Apply")}),L.jsx(E.Button,{variant:"contained",onClick:()=>this.props.onClose(),color:"grey",startIcon:L.jsx(Ie.Close,{}),children:this.props.t("Cancel")})]})]},"objectBrowserEditRole")}}const Mme=["array","boolean","file","json","mixed","number","object","string"],Ame={boolean:!1,string:"",number:0},zo={state:{name:"State",value:"state"},channel:{name:"Channel",value:"channel"},device:{name:"Device",value:"device"},folder:{name:"Folder",value:"folder"}},Rme=({onClose:s,onApply:e,selected:t,setObject:i,objects:n,expertMode:r,initialType:o,initialStateType:a})=>{var S;const l={state:ee.I18n.t("New state"),channel:ee.I18n.t("New channel"),device:ee.I18n.t("New device"),folder:ee.I18n.t("New folder")},h=[],c=(S=n[t])==null?void 0:S.type;n[t]?c==="channel"?(h.push(zo.state),o=o||"state"):c==="device"?(o=o||"channel",h.push(zo.state),h.push(zo.channel)):c==="state"?o=o||"":(h.push(zo.state),h.push(zo.channel),h.push(zo.device),t.startsWith("0_userdata.")||t.startsWith("alias.0.")||t==="0_userdata"||t==="alias.0"?(h.push(zo.folder),o=o||"folder"):o=o||"state"):(h.push(zo.folder),o=o||"folder",r&&(t.startsWith("mqtt.")||t.startsWith("javascript."))&&(h.push(zo.state),h.push(zo.channel),h.push(zo.device)));const u=(window._localStorage||window.localStorage).getItem("App.lastObjectType");u&&h.find(k=>k.value===u)&&(o=u);function d(k){return`${t}.${k.toString().replace(ee.Utils.FORBIDDEN_CHARS,"_").replace(/\s/g,"_").replace(/\./g,"_")}`}const[f,g]=Te.useState(o),[p,m]=Te.useState(l[o]),[v,_]=Te.useState(a||(window._localStorage||window.localStorage).getItem("App.lastStateType")||"string"),[b,y]=Te.useState(!n[d(l.state)]),C=()=>{const k={common:{name:p,desc:ee.I18n.t("Manually created")},type:f};f==="state"?(k.common={...k.common,role:"state",type:v,read:!0,write:!0,def:Ame[v]},k.native={}):f!=="folder"?k.common={...k.common,role:"",icon:""}:delete k.common.desc,i(`${t}.${p.split(" ").join("_")}`,k).then(()=>e())},x=ee.I18n.getLanguage();return L.jsxs(E.Dialog,{open:!0,fullWidth:!0,maxWidth:"md",disableEscapeKeyDown:!1,onClose:s,children:[L.jsx(E.DialogTitle,{children:L.jsxs("div",{style:{margin:10,fontSize:20,display:"flex",alignItems:"center",gap:8},children:[L.jsx(Ie.AddBox,{}),ee.I18n.t("Add new object:"),L.jsxs("span",{style:{fontStyle:"italic"},children:[t,".",p]})]})}),L.jsx(E.DialogContent,{children:L.jsxs("div",{style:{display:"flex",flexDirection:"column"},children:[L.jsx(E.TextField,{variant:"standard",label:ee.I18n.t("Parent"),style:{margin:"5px 0"},disabled:!0,value:t}),L.jsxs(E.FormControl,{variant:"standard",style:{marginTop:10,marginBottom:16},children:[L.jsx(E.InputLabel,{children:ee.I18n.t("Type")}),L.jsx(E.Select,{variant:"standard",value:f,onChange:k=>{(window._localStorage||window.localStorage).setItem("App.lastObjectType",k.target.value),p===l[f]&&(m(l[k.target.value]),y(!!n[d(l[k.target.value])])),g(k.target.value)},children:h.map(k=>L.jsxs(E.MenuItem,{value:k.value,children:[ee.I18n.t(k.name),x!=="en"&&L.jsxs("span",{style:{fontSize:"smaller",opacity:.6,marginLeft:4},children:["(",k.value,")"]})]},k.value))})]}),f==="state"&&L.jsxs(E.FormControl,{style:{marginTop:10,marginBottom:16},children:[L.jsx(E.InputLabel,{style:{left:-14},children:ee.I18n.t("State type")}),L.jsx(E.Select,{style:{marginTop:6},variant:"standard",value:v,onChange:k=>{(window._localStorage||window.localStorage).setItem("App.lastStateType",k.target.value),_(k.target.value)},children:Mme.map(k=>L.jsxs(E.MenuItem,{value:k,children:[ee.I18n.t(k),x!=="en"&&ee.I18n.t(k)!==k&&L.jsxs("span",{style:{fontSize:"smaller",opacity:.6,marginLeft:4},children:["(",k,")"]})]},k))})]}),L.jsx(E.TextField,{variant:"standard",label:ee.I18n.t("Name"),style:{margin:"5px 0"},autoFocus:!0,value:p,onKeyDown:k=>{k.key==="Enter"&&(k.preventDefault(),p&&C())},slotProps:{input:{endAdornment:p?L.jsx(E.InputAdornment,{position:"end",children:L.jsx(E.IconButton,{tabIndex:-1,size:"small",onClick:()=>m(""),children:L.jsx(Ie.Close,{})})}):null}},onChange:k=>{y(!n[d(k.target.value)]),m(k.target.value)}})]})}),L.jsxs(E.DialogActions,{children:[L.jsx(E.Button,{id:"add-new-object-dialog-add",startIcon:L.jsx(Ie.Check,{}),disabled:!p||!f||!b||f==="state"&&!v,onClick:()=>C(),variant:"contained",color:"primary",children:ee.I18n.t("add")}),L.jsx(E.Button,{id:"add-new-object-dialog-cancel",color:"grey",onClick:s,variant:"contained",startIcon:L.jsx(Ie.Close,{}),children:ee.I18n.t("ra_Cancel")})]})]})},Pme=[{Owner:[{name:"read",valueNum:1024,title:"read owner"},{name:"write",valueNum:512,title:"write owner"}]},{Group:[{name:"read",valueNum:64,title:"read group"},{name:"write",valueNum:32,title:"write group"}]},{Everyone:[{name:"read",valueNum:4,title:"read everyone"},{name:"write",valueNum:2,title:"write everyone"}]}];function uV(s,e,t){return s|=e&t,s&=e|~t&65535,s}const dV=({value:s,setValue:e,t,differentValues:i,applyToChildren:n,mask:r,setMask:o,disabled:a})=>{Te.useEffect(()=>{if(n){let h=0;for(let c=0;c<i.length;c++)h|=s^i[c];o(h)}else o(0)},[i,n,o,s]);let l=s;return L.jsx("div",{style:{display:"flex",width:"fit-content",margin:20,border:"1px solid",borderLeft:0},children:Pme.map(h=>{const c=Object.keys(h)[0];return L.jsxs("div",{style:{width:150,height:150,display:"flex",flexDirection:"column",alignItems:"center",borderLeft:"1px solid"},children:[L.jsx("div",{style:{height:50,display:"flex",alignItems:"center",fontSize:18,borderBottom:"1px solid silver",width:"100%",justifyContent:"center"},children:t(c)}),L.jsx("div",{style:{display:"flex",width:"100%"},children:h[c].map((u,d)=>{let f=!1;l-u.valueNum>=0&&(l-=u.valueNum,f=!0);const g=r&u.valueNum;return L.jsxs("div",{style:{display:"flex",flexDirection:"column",flex:1,alignItems:"center",borderRight:d===0?"1px solid":0},children:[L.jsx("div",{style:{height:50,borderBottom:"1px solid",width:"100%",justifyContent:"center",display:"flex",alignItems:"center",color:"silver"},children:t(u.name)}),L.jsx("div",{style:{height:50,display:"flex"},children:L.jsx(E.Checkbox,{disabled:a,checked:f,color:g?"primary":"secondary",indeterminate:!!g,style:g?{opacity:.5}:void 0,onChange:p=>{g&&(r&=~u.valueNum&65535,o(r));let m=s;p.target.checked?m|=u.valueNum:m&=~u.valueNum&65535,e(m)}})})]},u.valueNum)})})]},c)})})},Ome=({onClose:s,onApply:e,selected:t,extendObject:i,objects:n,t:r,modalEmptyId:o,themeType:a,theme:l})=>{const[h,c]=Te.useState(null),[u,d]=Te.useState(null),[f,g]=Te.useState([]),[p,m]=Te.useState([]),[v,_]=Te.useState(!1),[b,y]=Te.useState(!1),[C,x]=Te.useState(0),[S,k]=Te.useState(null),[T,I]=Te.useState(null),[N,A]=Te.useState(!1),[R,P]=Te.useState(!1),[B,z]=Te.useState([]),[U,K]=Te.useState([]),[X,ne]=Te.useState(0),[oe,ue]=Te.useState(0),[de,De]=Te.useState([]),[Q,Xe]=Te.useState(!1),[Pe,tt]=Te.useState(!0),st=r("different");return Te.useEffect(()=>{var Rv,Pg,Pv,Iu;let ve=0;const ge=[],Oe=[],Ci=t||o,Ht=`${Ci}.`,In=Object.keys(n).sort();let Ms=!1;const ir=[],Or=[],lo=ee.I18n.getLanguage();let ic=!1,nc=!1,sc=null,Ia=null,Fr=null,nr=null;const Ol=[];for(let ho=0;ho<In.length;ho++){const En=In[ho],bt=n[En];if(bt&&(En===Ci||En.startsWith(Ht))){if(ve++,Ol.push(En),!bt.acl)continue;Fr===null&&bt.acl.object!==void 0&&(Fr=bt.acl.object),nr===null&&bt.acl.state!==void 0&&(nr=bt.acl.state),sc===null&&bt.acl.owner!==void 0&&(sc=bt.acl.owner),Ia===null&&bt.acl.ownerGroup!==void 0&&(Ia=bt.acl.ownerGroup),!N&&sc!==bt.acl.owner&&bt.acl.owner!==void 0&&(ic=!0),!R&&Ia!==bt.acl.ownerGroup&&bt.acl.ownerGroup!==void 0&&(nc=!0),bt.acl.state!==void 0&&nr!==bt.acl.state&&!ge.includes(bt.acl.state)&&ge.push(bt.acl.state),bt.acl.object!==void 0&&Fr!==bt.acl.object&&!Oe.includes(bt.acl.object)&&Oe.push(bt.acl.object),bt.type==="state"&&(Ms=!0)}En.startsWith("system.group.")&&(bt==null?void 0:bt.type)==="group"?ir.push({name:ee.Utils.getObjectNameFromObj(bt,lo).replace("system.group.",""),value:En,icon:(Rv=bt.common)==null?void 0:Rv.icon,color:(Pg=bt.common)==null?void 0:Pg.color}):En.startsWith("system.user.")&&(bt==null?void 0:bt.type)==="user"&&Or.push({name:ee.Utils.getObjectNameFromObj(bt,lo).replace("system.user.",""),value:En,icon:(Pv=bt.common)==null?void 0:Pv.icon,color:(Iu=bt.common)==null?void 0:Iu.color})}sc=sc||n["system.config"].common.defaultNewAcl.owner,Ia=Ia||n["system.config"].common.defaultNewAcl.ownerGroup,Fr=Fr||n["system.config"].common.defaultNewAcl.object,k(Number.isNaN(Fr)?n["system.config"].common.defaultNewAcl.object:Fr),Ms&&(nr=nr||n["system.config"].common.defaultNewAcl.state,I(Number.isNaN(nr)?n["system.config"].common.defaultNewAcl.state:nr));const Ww=Or.find(ho=>ho.value===sc),Hw=ir.find(ho=>ho.value===Ia);c(Ww),d(Hw),A(ic),P(nc),g(Or),m(ir),Ms&&y(!0),o&&_(!0),x(ve),z(ge),K(Oe),De(Ol)},[n,t,R,N,o]),Te.useEffect(()=>{v?(R&&(u.value!=="different"&&d({name:st,value:"different"}),p.find(ve=>ve.value==="different")||m(ve=>[{name:st,value:"different"},...ve])),N&&((!h||h.value!=="different")&&c({name:st,value:"different"}),f.find(ve=>ve.value==="different")||g(ve=>[{name:st,value:"different"},...ve]))):(h&&h.value==="different"&&c(n[t].acl.owner),u&&u.value==="different"&&d(n[t].acl.ownerGroup),m(ve=>ve.filter(({value:ge})=>ge!=="different")),g(ve=>ve.filter(({value:ge})=>ge!=="different")))},[f,v,N,R,n,t,u,h,st,p]),de.length?L.jsx(Sie,{theme:l,titleButtonApply:"apply",overflowHidden:!0,disableApply:Pe,progress:Q,onClose:s,onApply:()=>{Xe(!0),setTimeout(()=>{if(v){const ve=~X&65535,ge=~oe&65535;for(let Oe=0;Oe<de.length;Oe++){const Ci=de[Oe],Ht=n[Ci],In=ee.Utils.clone(Ht.acl||{});In.object=uV(Ht.acl.object,S,ve),h&&h.value!=="different"&&(In.owner=h.value),u&&u.value!=="different"&&(In.ownerGroup=u.value),Ht.type==="state"&&(In.state=uV(Ht.acl.state,T,ge)),i(Ci,{acl:In})}}else{const ve=ee.Utils.clone(n[t].acl||{});ve.object=S,ve.owner=h?h.value:"system.user.admin",ve.ownerGroup=u?u.value:"system.group.administrator",n[t].type==="state"&&(ve.state=T),i(t,{acl:ve})}Xe(!1),e()},200)},children:L.jsxs("div",{style:{display:"flex",flexDirection:"column"},children:[L.jsx("div",{style:{margin:10,fontSize:20},children:r("Access control list: %s",t||o)}),L.jsxs("div",{style:{display:"flex"},children:[L.jsxs(E.FormControl,{variant:"standard",fullWidth:!0,style:{marginRight:10},children:[L.jsx(E.InputLabel,{children:r("Owner user")}),L.jsx(E.Select,{variant:"standard",disabled:Q,value:h?h.value:"",renderValue:()=>L.jsxs("span",{children:[h!=null&&h.icon?L.jsx(ee.Icon,{src:h.icon,style:{width:16,height:16,marginRight:8}}):null,h?h.name:""]}),style:(h==null?void 0:h.value)==="different"?{opacity:.5}:{color:(h==null?void 0:h.color)||void 0,backgroundColor:ee.Utils.getInvertedColor(h==null?void 0:h.color,a)},onChange:ve=>{const ge=f.find(Oe=>Oe.value===ve.target.value);c(ge),tt(!1)},children:f.map(ve=>L.jsxs(E.MenuItem,{style:ve.value==="different"?{opacity:.5}:{color:ve.color||void 0,backgroundColor:ee.Utils.getInvertedColor(ve.color,a)},value:ve.value,children:[ve.icon?L.jsx(ee.Icon,{src:ve.icon,style:{width:16,height:16,marginRight:8}}):null,ve.name]},ve.value))})]}),L.jsxs(E.FormControl,{variant:"standard",fullWidth:!0,children:[L.jsx(E.InputLabel,{children:r("Owner group")}),L.jsx(E.Select,{variant:"standard",disabled:Q,value:u?u.value:"",renderValue:()=>L.jsxs("span",{children:[u!=null&&u.icon?L.jsx(ee.Icon,{src:u.icon,style:{width:16,height:16,marginRight:8}}):null,u?u.name:""]}),style:(u==null?void 0:u.value)==="different"?{opacity:.5}:{color:(u==null?void 0:u.color)||void 0,backgroundColor:ee.Utils.getInvertedColor(u==null?void 0:u.color,a)},onChange:ve=>{const ge=p.find(Oe=>Oe.value===ve.target.value);d(ge),tt(!1)},children:p.map(ve=>L.jsxs(E.MenuItem,{value:ve.value,style:ve.value==="different"?{opacity:.5}:{color:ve.color||void 0,backgroundColor:ee.Utils.getInvertedColor(ve.color,a)},children:[ve.icon?L.jsx(ee.Icon,{src:ve.icon,style:{width:16,height:16,marginRight:8}}):null,ve.name]},ve.value))})]})]}),L.jsxs("div",{style:{display:"flex",margin:10,alignItems:"center",fontSize:10,marginLeft:0,color:"silver"},children:[L.jsx("div",{style:v?null:{color:"green"},children:r("to apply one item")}),L.jsx(E.Switch,{disabled:Q||!!o||C===1,checked:!!o||v,onChange:ve=>{_(ve.target.checked),tt(!1)},color:"primary"}),L.jsxs("div",{style:v?{color:"green"}:null,children:[r("to apply with children")," ",o||C>1?`(${C} ${r("object(s)")})`:""]})]}),Q&&L.jsx(E.LinearProgress,{}),L.jsxs("div",{style:{overflowY:"auto"},children:[L.jsxs("div",{children:[L.jsx("h2",{children:r("Object rights")}),L.jsx(dV,{mask:oe,disabled:Q,setMask:ue,applyToChildren:v,differentValues:U,t:r,setValue:ve=>{k(ve),tt(!1)},value:S})]}),b&&L.jsxs("div",{children:[L.jsx("h2",{children:r("States rights")}),L.jsx(dV,{mask:X,disabled:Q,setMask:ne,applyToChildren:v,differentValues:v?B:[],t:r,setValue:ve=>{I(ve),tt(!1)},value:T})]})]})]})}):L.jsx(E.LinearProgress,{})},tp={dialog:{height:"100%",maxHeight:"100%",maxWidth:"100%"},content:{textAlign:"center"},error:s=>({color:s.palette.mode==="dark"?"#ff7777":"#c20000"}),image:{height:"100%",width:"auto"},text:{fontFamily:"Lucida Console, Courier, monospace",width:"100%"},download:{textDecoration:"none",textTransform:"uppercase",fontSize:14,color:"white",border:"1px solid white",borderRadius:5,padding:"8px 16px",marginRight:8}};class Fme extends Te.Component{audioRef;constructor(e){super(e);const t=this.props.obj._id.split(".");this.state={error:"",image:null,text:null,binary:null,fileName:`${t[t.length-2]}.${t[t.length-1]}`},this.audioRef=uS.createRef()}componentDidMount(){this.props.socket.getBinaryState(this.props.obj._id).then(e=>{let t=this.props.obj._id.toLowerCase().split(".").pop();const i=ee.Utils.detectMimeType(e);if(i&&(t=i),t==="jpg")this.setState({image:!0,binary:e,mime:"image/jpeg"});else if(t==="svg")this.setState({image:!0,binary:e,mime:"image/svg+xml"});else if(t==="png"||t==="bmp")this.setState({image:!0,binary:e,mime:`image/${t}`});else if(t==="mp3")this.setState({audio:!0,binary:e,mime:"audio/mpeg"});else if(t==="ogg")this.setState({audio:!0,binary:e,mime:"audio/ogg"});else if(t==="txt"||t==="log")try{const n=btoa(e);this.setState({text:n,binary:e,mime:"text/plain"})}catch{}}).catch(e=>this.setState({error:e}))}render(){return L.jsxs(E.Dialog,{style:tp.dialog,open:!0,maxWidth:this.state.audio?"sm":"md",onClose:()=>this.props.onClose(),fullWidth:!0,"aria-labelledby":"object-view-dialog-title",children:[L.jsx(E.DialogTitle,{id:"object-view-dialog-title",children:this.props.t("View file in state: %s",this.props.obj._id)}),L.jsxs(E.DialogContent,{style:tp.content,children:[this.state.error?L.jsx(E.Box,{component:"div",sx:tp.error,children:this.state.error==="State is not binary"?this.props.t("No file stored yet"):this.props.t(this.state.error)}):null,this.state.audio?L.jsx("audio",{ref:this.audioRef,src:`data:${this.state.mime};base64,${this.state.binary}`}):null,this.state.audio?L.jsx(E.Fab,{color:"primary",onClick:()=>this.audioRef.current&&this.audioRef.current.play(),children:L.jsx(Ie.PlayArrow,{})}):null,this.state.image?L.jsx("img",{src:`data:${this.state.mime};base64,${this.state.binary}`,alt:this.props.obj._id,style:tp.image}):null,this.state.text!==null?L.jsx("pre",{style:tp.text,children:this.state.text}):null]}),L.jsxs(E.DialogActions,{children:[L.jsxs("a",{style:tp.download,download:this.state.fileName,href:`data:${this.state.mime};base64,${this.state.binary}`,children:[L.jsx(Ie.GetApp,{style:{paddingRight:8,height:12}}),L.jsx("span",{children:this.props.t("Download")})]}),L.jsx(E.Button,{variant:"contained",onClick:()=>this.props.onClose(),startIcon:L.jsx(Ie.Close,{}),color:"grey",children:this.props.t("Close")})]})]})}}const _n={funcIcon:{width:16,height:16},formControlLabel:{marginBottom:16},color:{width:70},typeNameEng:{marginLeft:8,opacity:.7,fontStyle:"italic",fontSize:"smaller"},usedInAlias:{},addNewAlias:s=>({backgroundColor:s.palette.primary.main})},Bme=["array","boolean","file","json","mixed","number","object","string"];class g1 extends Te.Component{aliasIDs;constructor(e){var n;super(e);const t=[],i=this.props.obj._id;this.aliasIDs=Object.keys(this.props.objects).filter(r=>r.startsWith("alias.0"));for(let r=0;r<this.aliasIDs.length;r++){const o=(n=this.props.objects[this.aliasIDs[r]].common)==null?void 0:n.alias;((o==null?void 0:o.id)===i||typeof(o==null?void 0:o.id)=="object"&&(o.id.read===i||o.id.write===i))&&t.push(this.aliasIDs[r])}this.state={usedInAliases:t,showAddNewAlias:!t.length,newAliasId:this.props.obj._id,newAliasName:g1.getText(this.props.obj.common.name||this.props.obj._id)||"",newAliasRole:this.props.obj.common.role||"",newAliasRead:this.props.obj.common.read,newAliasWrite:this.props.obj.common.write,newAliasUnit:this.props.obj.common.unit,newAliasDesc:g1.getText(this.props.obj.common.desc)||"",newAliasType:this.props.obj.common.type,newAliasMin:this.props.obj.common.min===void 0?"":this.props.obj.common.min.toString(),newAliasMax:this.props.obj.common.max===void 0?"":this.props.obj.common.max.toString(),newAliasUseFormula:!1,newAliasReadFormula:"val",newAliasWriteFormula:"val",newAliasColor:this.props.obj.common.color,newAliasIcon:this.props.obj.common.icon,newAliasCopyStates:!!this.props.obj.common.states}}static getText(e){return e?typeof e=="object"?e[ee.I18n.getLanguage()]||e.en||"":e.toString():""}static filterRoles(e,t){const i=[];return Bb.forEach(n=>(n.type==="mixed"||n.type===t)&&!i.includes(n.role)&&i.push(n.role)),e.forEach(n=>(n.type==="mixed"||n.type)===t&&!i.includes(n.role)&&i.push(n.role)),i.sort(),i}renderAddNewAlias(){return this.state.showAddNewAlias?L.jsxs(E.Dialog,{open:!0,onClose:()=>this.setState({showAddNewAlias:!1}),children:[L.jsx(E.DialogTitle,{children:ee.I18n.t("Create new alias: %s",`alias.0.${this.state.newAliasId}`)}),L.jsxs(E.DialogContent,{children:[L.jsx(E.TextField,{style:_n.formControlLabel,variant:"standard",value:this.state.newAliasId,slotProps:{input:{endAdornment:this.state.newAliasId?L.jsx(E.InputAdornment,{position:"end",children:L.jsx(E.IconButton,{tabIndex:-1,size:"small",onClick:()=>this.setState({newAliasId:""}),children:L.jsx(Ie.Close,{})})}):null}},onChange:e=>this.setState({newAliasId:e.target.value}),label:ee.I18n.t("Alias ID"),helperText:`alias.0.${this.state.newAliasId}`,fullWidth:!0}),L.jsx(E.TextField,{style:_n.formControlLabel,variant:"standard",value:this.state.newAliasName,slotProps:{input:{endAdornment:this.state.newAliasName?L.jsx(E.InputAdornment,{position:"end",children:L.jsx(E.IconButton,{tabIndex:-1,size:"small",onClick:()=>this.setState({newAliasName:""}),children:L.jsx(Ie.Close,{})})}):null}},onChange:e=>this.setState({newAliasName:e.target.value}),label:ee.I18n.t("Alias name"),fullWidth:!0}),L.jsx(E.TextField,{style:_n.formControlLabel,variant:"standard",value:this.state.newAliasDesc,slotProps:{input:{endAdornment:this.state.newAliasDesc?L.jsx(E.InputAdornment,{position:"end",children:L.jsx(E.IconButton,{tabIndex:-1,size:"small",onClick:()=>this.setState({newAliasDesc:""}),children:L.jsx(Ie.Close,{})})}):null}},onChange:e=>this.setState({newAliasDesc:e.target.value}),label:ee.I18n.t("Alias description"),fullWidth:!0}),L.jsxs(E.FormControl,{style:_n.formControlLabel,fullWidth:!0,children:[L.jsx(E.InputLabel,{children:ee.I18n.t("State type")}),L.jsx(E.Select,{variant:"standard",value:this.state.newAliasType,onChange:e=>this.setState({newAliasType:e.target.value}),children:Bme.map(e=>L.jsxs(E.MenuItem,{value:e,children:[ee.I18n.t(e),L.jsxs("span",{style:_n.typeNameEng,children:["(",e,")"]})]},e))})]}),this.state.newAliasType==="number"?L.jsx(E.TextField,{style:_n.formControlLabel,variant:"standard",value:this.state.newAliasUnit||"",slotProps:{input:{endAdornment:this.state.newAliasUnit?L.jsx(E.InputAdornment,{position:"end",children:L.jsx(E.IconButton,{tabIndex:-1,size:"small",onClick:()=>this.setState({newAliasUnit:""}),children:L.jsx(Ie.Close,{})})}):null}},onChange:e=>this.setState({newAliasUnit:e.target.value}),label:ee.I18n.t("Alias units"),fullWidth:!0}):null,this.state.newAliasType==="number"?L.jsx(E.TextField,{variant:"standard",value:this.state.newAliasMin,type:"number",error:this.state.newAliasMin?isNaN(parseFloat(this.state.newAliasMin)):!1,onChange:e=>this.setState({newAliasMin:e.target.value}),label:ee.I18n.t("Min"),style:{width:"calc(50% - 4px)",marginBottom:16,marginRight:8}}):null,this.state.newAliasType==="number"?L.jsx(E.TextField,{variant:"standard",value:this.state.newAliasMax,type:"number",error:this.state.newAliasMax?isNaN(parseFloat(this.state.newAliasMax)):!1,onChange:e=>this.setState({newAliasMax:e.target.value}),label:ee.I18n.t("Max"),fullWidth:!0,style:{width:"calc(50% - 4px)",marginBottom:16}}):null,L.jsx(E.TextField,{variant:"standard",style:{..._n.formControlLabel,..._n.color},label:ee.I18n.t("Color"),type:"color",value:this.state.newAliasColor,onChange:e=>this.setState({newAliasColor:e.target.value})}),L.jsx(E.Autocomplete,{style:{..._n.formControlLabel},fullWidth:!0,value:this.state.newAliasRole,onChange:(e,t)=>{const i=Bb.find(n=>n.role===t);if(i){if(i.w!==void 0&&i.r!==void 0){this.setState({newAliasRole:t,newAliasRead:i.r,newAliasWrite:i.w});return}if(i.w!==void 0){this.setState({newAliasRole:t,newAliasWrite:i.w});return}if(i.r!==void 0){this.setState({newAliasRole:t,newAliasRead:i.r});return}}if(t.startsWith("value")||t.startsWith("indicator")||t.startsWith("sensor")||t.startsWith("weather")){if(this.state.newAliasWrite){this.setState({newAliasRole:t,newAliasWrite:!1});return}}else if(t.startsWith("level")||t.startsWith("switch")){if(!this.state.newAliasWrite){this.setState({newAliasRole:t,newAliasWrite:!0});return}}else if(t.startsWith("button")&&this.state.newAliasRead){this.setState({newAliasRole:t,newAliasRead:!1});return}this.setState({newAliasRole:t})},options:g1.filterRoles(this.props.roleArray,this.state.newAliasType),renderInput:e=>L.jsx(E.TextField,{variant:"standard",...e,label:ee.I18n.t("Role")})}),L.jsx(E.FormControlLabel,{style:{..._n.formControlLabel,marginLeft:16},control:L.jsx(E.Checkbox,{indeterminate:this.state.newAliasRead===void 0||this.state.newAliasRead===null,checked:this.state.newAliasRead,onChange:e=>{const t={newAliasRead:e.target.checked};t.newAliasRead===!1&&this.state.newAliasWrite===!1&&(t.newAliasWrite=!0),this.setState(t)}}),label:ee.I18n.t("Alias read")}),L.jsx(E.FormControlLabel,{style:_n.formControlLabel,control:L.jsx(E.Checkbox,{indeterminate:this.state.newAliasWrite===void 0||this.state.newAliasWrite===null,checked:this.state.newAliasWrite,onChange:e=>{const t={newAliasWrite:e.target.checked};t.newAliasRead===!1&&this.state.newAliasWrite===!1&&(t.newAliasRead=!0),this.setState(t)}}),label:ee.I18n.t("Alias write")}),this.props.obj.common.states?L.jsx(E.FormControlLabel,{style:_n.formControlLabel,control:L.jsx(E.Checkbox,{checked:this.state.newAliasCopyStates,onChange:e=>this.setState({newAliasCopyStates:e.target.checked})}),label:ee.I18n.t("Copy states")}):null,L.jsx(E.FormControlLabel,{style:_n.formControlLabel,control:L.jsx(E.Checkbox,{checked:this.state.newAliasUseFormula,onChange:e=>this.setState({newAliasUseFormula:e.target.checked})}),label:ee.I18n.t("Use convert functions")}),this.state.newAliasUseFormula&&this.state.newAliasRead?L.jsx(E.TextField,{style:_n.formControlLabel,variant:"standard",value:this.state.newAliasReadFormula,onChange:e=>this.setState({newAliasReadFormula:e.target.value}),label:ee.I18n.t("Read formula"),helperText:`${ee.I18n.t("JS function like")} "val / 5 + 21"`,slotProps:{input:{endAdornment:this.state.newAliasReadFormula&&this.state.newAliasReadFormula!=="val"?L.jsx(E.InputAdornment,{position:"end",children:L.jsx(E.IconButton,{tabIndex:-1,size:"small",onClick:()=>this.setState({newAliasReadFormula:"val"}),children:L.jsx(Ie.Close,{})})}):null,startAdornment:L.jsx(E.InputAdornment,{position:"start",children:L.jsx(ee.IconFx,{style:_n.funcIcon})})}},fullWidth:!0}):null,this.state.newAliasUseFormula&&this.state.newAliasWrite?L.jsx(E.TextField,{style:_n.formControlLabel,variant:"standard",value:this.state.newAliasWriteFormula,onChange:e=>this.setState({newAliasWriteFormula:e.target.value}),label:ee.I18n.t("Write formula"),slotProps:{input:{endAdornment:this.state.newAliasWriteFormula&&this.state.newAliasWriteFormula!=="val"?L.jsx(E.InputAdornment,{position:"end",children:L.jsx(E.IconButton,{tabIndex:-1,size:"small",onClick:()=>this.setState({newAliasWriteFormula:"val"}),children:L.jsx(Ie.Close,{})})}):null,startAdornment:L.jsx(E.InputAdornment,{position:"start",children:L.jsx(ee.IconFx,{style:_n.funcIcon})})}},helperText:`${ee.I18n.t("JS function like")} "val / 5 + 21"`,fullWidth:!0}):null]}),L.jsxs(E.DialogActions,{children:[L.jsx(E.Button,{variant:"contained",disabled:!this.state.newAliasId||!!this.props.objects[`alias.0.${this.state.newAliasId}`],onClick:async()=>{const e={_id:`alias.0.${this.state.newAliasId}`,type:"state",common:{name:this.state.newAliasName,type:this.props.obj.common.type,alias:{id:this.props.obj._id}},native:{}};this.state.newAliasDesc&&(e.common.desc=this.state.newAliasDesc),this.state.newAliasType&&(e.common.type=this.state.newAliasType),this.state.newAliasType==="number"&&this.state.newAliasUnit&&(e.common.unit=this.state.newAliasUnit),this.state.newAliasRole&&(e.common.role=this.state.newAliasRole),this.state.newAliasType==="number"&&this.state.newAliasMin&&(e.common.min=parseFloat(this.state.newAliasMin)),this.state.newAliasType==="number"&&this.state.newAliasMax&&(e.common.max=parseFloat(this.state.newAliasMax)),this.state.newAliasRole&&(e.common.role=this.state.newAliasRole),this.state.newAliasRead!==void 0&&this.state.newAliasRead!==null&&(e.common.read=this.state.newAliasRead),this.state.newAliasWrite!==void 0&&this.state.newAliasWrite!==null&&(e.common.write=this.state.newAliasWrite),this.state.newAliasColor&&(e.common.color=this.state.newAliasColor),this.state.newAliasIcon&&(e.common.icon=this.state.newAliasIcon),this.state.newAliasCopyStates&&this.props.obj.common.states&&(e.common.states=this.props.obj.common.states),this.state.newAliasUseFormula&&(e.common.read!==!1&&this.state.newAliasReadFormula&&this.state.newAliasReadFormula!=="val"&&(e.common.alias.read=this.state.newAliasReadFormula),e.common.write!==!1&&this.state.newAliasWriteFormula&&this.state.newAliasWriteFormula!=="val"&&(e.common.alias.write=this.state.newAliasWriteFormula)),await this.props.socket.setObject(e._id,e),this.setState({showAddNewAlias:!1}),this.props.onRedirect(e._id,2e3),this.props.onClose()},startIcon:L.jsx(Ie.AddLink,{}),color:"primary",children:this.props.t("Create")}),L.jsx(E.Button,{variant:"contained",onClick:()=>this.setState({showAddNewAlias:!1}),startIcon:L.jsx(Ie.Close,{}),color:"grey",children:this.props.t("Close")})]})]}):null}render(){return L.jsxs(E.Dialog,{open:!0,maxWidth:"sm",onClose:()=>this.props.onClose(),fullWidth:!0,"aria-labelledby":"object-alias-dialog-title",children:[this.renderAddNewAlias(),L.jsx(E.DialogTitle,{id:"object-alias-dialog-title",children:this.state.usedInAliases.length?ee.I18n.t("This object is used in aliases"):ee.I18n.t("This object does not used in any aliases yet")}),L.jsx(E.DialogContent,{children:L.jsxs(E.MenuList,{style:{maxWidth:400},children:[this.state.usedInAliases.map(e=>L.jsxs(E.MenuItem,{style:_n.usedInAlias,onClick:()=>this.props.onRedirect(e),children:[L.jsx(E.ListItemIcon,{children:L.jsx(Ie.Link,{fontSize:"small"})}),L.jsx(E.ListItemText,{children:e})]},e)),L.jsxs(E.MenuItem,{onClick:()=>this.setState({showAddNewAlias:!0}),sx:_n.addNewAlias,children:[L.jsx(E.ListItemIcon,{children:L.jsx(Ie.AddLink,{fontSize:"small"})}),L.jsx(E.ListItemText,{children:ee.I18n.t("Create alias from this ID")})]})]})}),L.jsx(E.DialogActions,{children:L.jsx(E.Button,{variant:"contained",onClick:()=>this.props.onClose(),startIcon:L.jsx(Ie.Close,{}),color:"grey",children:this.props.t("Close")})})]},"editAlias")}}class R4 extends Te.Component{checkTimer=null;objects={};constructor(e){super(e);const t=this.props.id.split("."),i=t.pop()||"";this.state={name:i,parentId:t.join("."),renameAllChildren:!0,newExists:!0,showParentDialog:!1,showHistoryWarning:!1,withHistory:[]}}componentWillUnmount(){this.checkTimer&&(clearTimeout(this.checkTimer),this.checkTimer=null)}static calculateNewId(e,t,i){const n=e.split("."),r=t.split(".");let o=0;for(;n[o]===r[o];)o++;const a=i.split(".");return a.splice(0,o+1),`${t}.${a.join(".")}`}async getInstancesWithHistory(){const e=await this.props.socket.getAdapterInstances();return e==null?void 0:e.filter(t=>t.common.getHistory).map(t=>t._id.replace("system.adapter.",""))}async checkHistory(){this.objects={};const e=await this.getInstancesWithHistory(),t=[];try{const i=await this.props.socket.getObject(this.props.id);i&&(this.objects[i._id]=i)}catch{}for(const i of this.props.childrenIds)try{const n=await this.props.socket.getObject(i);n&&(this.objects[n._id]=n)}catch{}return Object.values(this.objects).forEach(i=>{var n;(n=i.common)!=null&&n.custom&&Object.keys(i.common.custom).find(r=>e.includes(r)&&!i.common.custom[r].aliasId)&&t.push(i._id)}),t.length?(this.setState({showHistoryWarning:!0,withHistory:t}),!1):!0}showHistoryWarning(){return this.state.showHistoryWarning?L.jsxs(E.Dialog,{open:!0,onClose:()=>this.setState({showHistoryWarning:!1}),children:[L.jsx(E.DialogTitle,{children:this.props.t("Found states with history")}),L.jsxs(E.DialogContent,{children:[this.state.withHistory.length>2?this.props.t("You want to move %s states with enabled history",this.state.withHistory.length):`${this.props.t("Following states have history enabled")}: ${this.state.withHistory.join(", ")}`,L.jsx("div",{children:this.props.t("move_states_with_history_warning")})]}),L.jsxs(E.DialogActions,{children:[L.jsx(E.Button,{variant:"contained",color:"primary",onClick:async()=>{const e=`${this.state.parentId}.${this.state.name}`;await this.renameCopyObject(this.props.id,e,this.props.childrenIds.length&&this.state.renameAllChildren,!1),this.props.onClose()},startIcon:L.jsx(Ie.Check,{}),children:this.props.t("Confirm")}),L.jsx(E.Button,{color:"grey",variant:"contained",startIcon:L.jsx(Ie.Close,{}),onClick:()=>this.setState({showHistoryWarning:!1}),children:this.props.t("ra_Cancel")})]})]}):null}async renameCopyObject(e,t,i,n){var a;if(e===t)return;let r;try{r=((a=this.objects)==null?void 0:a[e])||await this.props.socket.getObject(e)}catch{}let o;if((r==null?void 0:r.type)==="state"&&(o=await this.props.socket.getState(e)),i)for(const l of this.props.childrenIds){const h=R4.calculateNewId(e,t,l);await this.renameCopyObject(l,h,!1,n)}r&&(await this.props.socket.setObject(t,r),o&&await this.props.socket.setState(t,o),n||await this.props.socket.delObject(e))}checkIfNewExists(){const e=`${this.state.parentId}.${this.state.name}`;this.checkTimer&&(clearTimeout(this.checkTimer),this.checkTimer=null),this.props.id===e?this.state.newExists||(this.checkTimer=setTimeout(()=>{this.checkTimer=null,this.setState({newExists:!0})},50)):this.checkTimer=setTimeout(async()=>{this.checkTimer=null;try{const t=await this.props.socket.getObject(e);t&&!this.state.newExists?this.setState({newExists:!0}):!t&&this.state.newExists&&this.setState({newExists:!1})}catch{this.state.newExists&&this.setState({newExists:!1})}},300)}renderParentSelectorDialog(){return this.state.showParentDialog?L.jsx(ee.SelectID,{foldersFirst:!0,imagePrefix:"../..",expertMode:this.props.expertMode,socket:this.props.socket,columns:["name","type","role","room","func"],types:["folder","channel","device","meta"],notEditable:!0,selected:this.state.parentId,allowNonObjects:!0,filterFunc:e=>this.props.expertMode?!0:e._id.startsWith("0_userdata.0")||e._id.startsWith("javascript."),theme:this.props.theme,onSelectConfirm:(e,t)=>{let i;return Array.isArray(e)?i=e[0]:i=e,i.split(".").length<=1||t[i]&&(t[i].type==="state"||i.startsWith("system."))?Promise.resolve(!1):Promise.resolve(!0)},onClose:()=>this.setState({showParentDialog:!1}),onOk:e=>{let t;Array.isArray(e)?t=e[0]:t=e,t&&t.split(".").length>1&&this.setState({parentId:t})}}):null}render(){const e=`${this.state.parentId}.${this.state.name}`;return L.jsxs(E.Dialog,{open:!0,maxWidth:"md",fullWidth:!0,onClose:()=>this.props.onClose(),children:[this.renderParentSelectorDialog(),this.showHistoryWarning(),L.jsxs(E.DialogTitle,{children:[L.jsxs("span",{style:{opacity:.6,marginRight:8},children:[this.props.t("Rename or copy object")," -"]}),L.jsx("span",{style:{fontWeight:"bold"},children:this.props.id})]}),L.jsxs(E.DialogContent,{children:[L.jsxs("div",{style:{display:"flex",gap:8,alignItems:"end",opacity:.7},children:[L.jsx(E.TextField,{fullWidth:!0,variant:"standard",label:this.props.t("Parent ID"),value:`${this.state.parentId}.`,slotProps:{input:{readOnly:!0}}}),L.jsx(E.Button,{variant:"outlined",style:{maxWidth:40,width:40,height:32},onClick:()=>this.setState({showParentDialog:!0}),children:"..."})]}),L.jsx(E.TextField,{value:this.state.name,onChange:t=>{const i=t.target.value.replace(ee.Utils.FORBIDDEN_CHARS,"_").replace(/\./g,"_").replace(/\s/g,"_").replace(/,/g,"_").replace(/__/g,"_").replace(/__/g,"_");this.setState({name:i},()=>this.checkIfNewExists())},style:{marginTop:20},autoFocus:!0,variant:"standard",fullWidth:!0,label:this.props.t("New object ID")}),this.props.childrenIds.length?L.jsx(E.FormControlLabel,{control:L.jsx(E.Checkbox,{checked:this.state.renameAllChildren,onChange:()=>{this.setState({renameAllChildren:!this.state.renameAllChildren})}}),label:this.props.t("Rename all children")}):null,L.jsxs("div",{children:[L.jsxs("span",{style:{opacity:.6,marginRight:8,fontSize:16},children:[this.props.t("New object ID"),":"]}),L.jsx("span",{style:{fontWeight:"bold",fontSize:16},children:e})]})]}),L.jsxs(E.DialogActions,{children:[L.jsx(E.Button,{disabled:!this.state.name||e===this.props.id,color:"primary",variant:"outlined",onClick:async()=>{await this.renameCopyObject(this.props.id,e,this.props.childrenIds.length&&this.state.renameAllChildren,!0),this.props.onClose()},children:this.props.t("Create a copy")}),L.jsx(E.Button,{disabled:!this.state.name||e===this.props.id,color:"primary",variant:"contained",onClick:async()=>{await this.checkHistory()&&(await this.renameCopyObject(this.props.id,e,this.props.childrenIds.length&&this.state.renameAllChildren,!1),this.props.onClose())},children:e!==this.props.id&&this.state.newExists?this.props.t("Replace"):this.props.t("Rename")}),L.jsx(E.Button,{variant:"contained",color:"grey",onClick:()=>this.props.onClose(),startIcon:L.jsx(Ie.Close,{}),children:this.props.t("ra_Cancel")})]})]})}}function Vme(s){if(s.length===0)throw new Error("Invalid tail call");return[s.slice(0,s.length-1),s[s.length-1]]}function Ei(s,e,t=(i,n)=>i===n){if(s===e)return!0;if(!s||!e||s.length!==e.length)return!1;for(let i=0,n=s.length;i<n;i++)if(!t(s[i],e[i]))return!1;return!0}function Wme(s,e){const t=s.length-1;e<t&&(s[e]=s[t]),s.pop()}function Hme(s,e,t){return eX(s.length,i=>t(s[i],e))}function eX(s,e){let t=0,i=s-1;for(;t<=i;){const n=(t+i)/2|0,r=e(n);if(r<0)t=n+1;else if(r>0)i=n-1;else return n}return-(t+1)}function*P4(s,e){let t,i;for(const n of s)i!==void 0&&e(i,n)?t.push(n):(t&&(yield t),t=[n]),i=n;t&&(yield t)}function tX(s,e){for(let t=0;t<=s.length;t++)e(t===0?void 0:s[t-1],t===s.length?void 0:s[t])}function zme(s,e){for(let t=0;t<s.length;t++)e(t===0?void 0:s[t-1],s[t],t+1===s.length?void 0:s[t+1])}function O4(s){return s.filter(e=>!!e)}function fV(s){let e=0;for(let t=0;t<s.length;t++)s[t]&&(s[e]=s[t],e+=1);s.length=e}function jme(s){return!Array.isArray(s)||s.length===0}function fD(s){return Array.isArray(s)&&s.length>0}function Kf(s,e=t=>t){const t=new Set;return s.filter(i=>{const n=e(i);return t.has(n)?!1:(t.add(n),!0)})}function qn(s,e){let t=typeof e=="number"?s:0;typeof e=="number"?t=s:(t=0,e=s);const i=[];if(t<=e)for(let n=t;n<e;n++)i.push(n);else for(let n=t;n>e;n--)i.push(n);return i}function gD(s,e,t){const i=s.slice(0,e),n=s.slice(e);return i.concat(t,n)}function K2(s,e){const t=s.indexOf(e);t>-1&&(s.splice(t,1),s.unshift(e))}function xy(s,e){const t=s.indexOf(e);t>-1&&(s.splice(t,1),s.push(e))}function HN(s,e){for(const t of e)s.push(t)}function Ume(s,e,t){const i=iX(s,e),n=s.length,r=t.length;s.length=n+r;for(let o=n-1;o>=i;o--)s[o+r]=s[o];for(let o=0;o<r;o++)s[o+i]=t[o]}function HS(s,e,t,i){const n=iX(s,e);let r=s.splice(n,t);return r===void 0&&(r=[]),Ume(s,n,i),r}function iX(s,e){return e<0?Math.max(e+s.length,0):Math.min(e,s.length)}var Vb;(function(s){function e(r){return r<0}s.isLessThan=e;function t(r){return r<=0}s.isLessThanOrEqual=t;function i(r){return r>0}s.isGreaterThan=i;function n(r){return r===0}s.isNeitherLessOrGreaterThan=n,s.greaterThan=1,s.lessThan=-1,s.neitherLessOrGreaterThan=0})(Vb||(Vb={}));function Ir(s,e){return(t,i)=>e(s(t),s(i))}function $me(...s){return(e,t)=>{for(const i of s){const n=i(e,t);if(!Vb.isNeitherLessOrGreaterThan(n))return n}return Vb.neitherLessOrGreaterThan}}const Fh=(s,e)=>s-e,Gme=(s,e)=>Fh(s?1:0,e?1:0);function qme(s){return(e,t)=>-s(e,t)}class Uh{constructor(e){this.firstIdx=0,this.items=e,this.lastIdx=this.items.length-1}get length(){return this.lastIdx-this.firstIdx+1}takeWhile(e){let t=this.firstIdx;for(;t<this.items.length&&e(this.items[t]);)t++;const i=t===this.firstIdx?null:this.items.slice(this.firstIdx,t);return this.firstIdx=t,i}takeFromEndWhile(e){let t=this.lastIdx;for(;t>=0&&e(this.items[t]);)t--;const i=t===this.lastIdx?null:this.items.slice(t+1,this.lastIdx+1);return this.lastIdx=t,i}peek(){if(this.length!==0)return this.items[this.firstIdx]}dequeue(){const e=this.items[this.firstIdx];return this.firstIdx++,e}takeCount(e){const t=this.items.slice(this.firstIdx,this.firstIdx+e);return this.firstIdx+=e,t}}const Yp=class Yp{constructor(e){this.iterate=e}toArray(){const e=[];return this.iterate(t=>(e.push(t),!0)),e}filter(e){return new Yp(t=>this.iterate(i=>e(i)?t(i):!0))}map(e){return new Yp(t=>this.iterate(i=>t(e(i))))}findLast(e){let t;return this.iterate(i=>(e(i)&&(t=i),!0)),t}findLastMaxBy(e){let t,i=!0;return this.iterate(n=>((i||Vb.isGreaterThan(e(n,t)))&&(i=!1,t=n),!0)),t}};Yp.empty=new Yp(e=>{});let mf=Yp;class Kme{constructor(){this.listeners=[],this.unexpectedErrorHandler=function(e){setTimeout(()=>{throw e.stack?Km.isErrorNoTelemetry(e)?new Km(e.message+`
|
|
40
40
|
|
|
41
41
|
`+e.stack):new Error(e.message+`
|
|
42
42
|
|
|
@@ -875,4 +875,4 @@ ${e.toString()}`}}class LL{constructor(e=new Nv,t=!1,i,n=c4e){this._services=e,t
|
|
|
875
875
|
`:`\r
|
|
876
876
|
`),await this._clipboardService.writeText(C)})),n.getOption(104)||_.push(new eu("diff.inline.revertChange",w(118,"Revert this change"),void 0,!0,async()=>{this._editor.revert(this._diff)})),_},autoSelectFirstItem:!0})};this._register(pn(this._diffActions,"mousedown",p=>{if(!p.leftButton)return;const{top:m,height:v}=Xr(this._diffActions),_=Math.floor(u/3);p.preventDefault(),g({x:p.posx,y:m+v+_})})),this._register(n.onMouseMove(p=>{(p.target.type===8||p.target.type===5)&&p.target.detail.viewZoneId===this._getViewZoneId()?(d=this._updateLightBulbPosition(this._marginDomNode,p.event.browserEvent.y,u),this.visibility=!0):this.visibility=!1})),this._register(a3e({domNode:this._deletedCodeDomNode,diffEntry:r,originalModel:this._originalTextModel,renderLinesResult:this._renderLinesResult,clipboardService:c}))}_updateLightBulbPosition(e,t,i){const{top:n}=Xr(e),r=t-n,o=Math.floor(r/i),a=o*i;if(this._diffActions.style.top=`${a}px`,this._renderLinesResult.viewLineCounts){let l=0;for(let h=0;h<this._renderLinesResult.viewLineCounts.length;h++)if(l+=this._renderLinesResult.viewLineCounts[h],o<l)return h}return o}}const HU=Su("diffEditorWidget",{createHTML:s=>s});function h3e(s,e,t,i,n=!1){mn(i,e.fontInfo);const r=t.length>0,o=new Tv(1e4);let a=0,l=0;const h=[],c=[];for(let g=0;g<s.lineTokens.length;g++){const p=g+1,m=s.lineTokens[g],v=s.lineBreakData[g],_=Zr.filter(t,p,1,Number.MAX_SAFE_INTEGER);if(v){let b=0;for(const y of v.breakOffsets){const C=m.sliceAndInflate(b,y,0),x=jU(l,C,Zr.extractWrapped(_,b,y),r,s.mightContainNonBasicASCII,s.mightContainRTL,e,o,n);a=Math.max(a,x.maxCharWidth),c.push(new zU(x.output.characterMapping,x.output.containsForeignElements,b)),l++,b=y}h.push(v.breakOffsets.length)}else{h.push(1);const b=jU(l,m,_,r,s.mightContainNonBasicASCII,s.mightContainRTL,e,o,n);a=Math.max(a,b.maxCharWidth),c.push(new zU(b.output.characterMapping,b.output.containsForeignElements,0)),l++}}a+=e.scrollBeyondLastColumn;const u=o.build(),d=HU?HU.createHTML(u):u;i.innerHTML=d;const f=a*e.typicalHalfwidthCharacterWidth;return new u3e(l,f,h,c,s)}class c3e{constructor(e,t=e.map(r=>null),i=!0,n=!0){this.lineTokens=e,this.lineBreakData=t,this.mightContainNonBasicASCII=i,this.mightContainRTL=n}}class J1{static fromEditor(e){var r;const t=e.getOptions(),i=t.get(59),n=t.get(165);return new J1(((r=e.getModel())==null?void 0:r.getOptions().tabSize)||0,i,t.get(40),i.typicalHalfwidthCharacterWidth,t.get(118),t.get(75),n.decorationsWidth,t.get(133),t.get(113),t.get(108),t.get(60),t.get(117).verticalScrollbarSize)}constructor(e,t,i,n,r,o,a,l,h,c,u,d,f=!0){this.tabSize=e,this.fontInfo=t,this.disableMonospaceOptimizations=i,this.typicalHalfwidthCharacterWidth=n,this.scrollBeyondLastColumn=r,this.lineHeight=o,this.lineDecorationsWidth=a,this.stopRenderingLineAfter=l,this.renderWhitespace=h,this.renderControlCharacters=c,this.fontLigatures=u,this.verticalScrollbarSize=d,this.setWidth=f}withSetWidth(e){return new J1(this.tabSize,this.fontInfo,this.disableMonospaceOptimizations,this.typicalHalfwidthCharacterWidth,this.scrollBeyondLastColumn,this.lineHeight,this.lineDecorationsWidth,this.stopRenderingLineAfter,this.renderWhitespace,this.renderControlCharacters,this.fontLigatures,this.verticalScrollbarSize,e)}withScrollBeyondLastColumn(e){return new J1(this.tabSize,this.fontInfo,this.disableMonospaceOptimizations,this.typicalHalfwidthCharacterWidth,e,this.lineHeight,this.lineDecorationsWidth,this.stopRenderingLineAfter,this.renderWhitespace,this.renderControlCharacters,this.fontLigatures,this.verticalScrollbarSize,this.setWidth)}}class u3e{constructor(e,t,i,n,r){this.heightInLines=e,this.minWidthInPx=t,this.viewLineCounts=i,this._renderOutputs=n,this._source=r}getModelPositionAt(e,t){let i=e;for(;i&&!i.classList.contains("view-line");)i=i.parentElement;if(!i)return;const n=i.parentElement;if(!n)return;const r=n.querySelectorAll(".view-line");let o=-1;for(let u=0;u<r.length;u++)if(r[u]===i){o=u;break}if(o===-1||o>=this._renderOutputs.length)return;let a=1,l=o;for(let u=0;u<this.viewLineCounts.length;u++){if(l<this.viewLineCounts[u]){a=u+1;break}l-=this.viewLineCounts[u]}if(a>this._source.lineTokens.length)return;const h=this._renderOutputs[o];if(!h)return;const c=d0(h.characterMapping,e,t)+h.offset;return new H(a,c)}}class zU extends mx{constructor(e,t,i){super(e,t),this.offset=i}}function jU(s,e,t,i,n,r,o,a,l){a.appendString('<div class="view-line'),!l&&!i&&a.appendString(" char-delete"),a.appendString('" style="top:'),a.appendString(String(s*o.lineHeight)),o.setWidth?a.appendString('px;width:1000000px;">'):a.appendString('px;">');const h=e.getLineContent(),c=Ar.isBasicASCII(h,n),u=Ar.containsRTL(h,c,r),d=jD(new Lg(o.fontInfo.isMonospace&&!o.disableMonospaceOptimizations,o.fontInfo.canUseHalfwidthRightwardsArrow,h,!1,c,u,0,e,t,o.tabSize,0,o.fontInfo.spaceWidth,o.fontInfo.middotWidth,o.fontInfo.wsmiddotWidth,o.stopRenderingLineAfter,o.renderWhitespace,o.renderControlCharacters,o.fontLigatures!==uu.OFF,null,null,o.verticalScrollbarSize),a);a.appendString("</div>");const f=d.characterMapping.getHorizontalOffset(d.characterMapping.length);return{output:d,maxCharWidth:f}}var d3e=function(s,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(s,e,t,i);else for(var a=s.length-1;a>=0;a--)(o=s[a])&&(r=(n<3?o(r):n>3?o(e,t,r):o(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},UU=function(s,e){return function(t,i){e(t,i,s)}};let MO=class extends q{constructor(e,t,i,n,r,o,a,l,h,c){super(),this._targetWindow=e,this._editors=t,this._diffModel=i,this._options=n,this._diffEditorWidget=r,this._canIgnoreViewZoneUpdateEvent=o,this._origViewZonesToIgnore=a,this._modViewZonesToIgnore=l,this._clipboardService=h,this._contextMenuService=c,this._originalTopPadding=ze(this,0),this._originalScrollOffset=ze(this,0),this._originalScrollOffsetAnimated=AU(this._targetWindow,this._originalScrollOffset,this._store),this._modifiedTopPadding=ze(this,0),this._modifiedScrollOffset=ze(this,0),this._modifiedScrollOffsetAnimated=AU(this._targetWindow,this._modifiedScrollOffset,this._store);const u=ze("invalidateAlignmentsState",0),d=this._register(new Sn(()=>{u.set(u.get()+1,void 0)},0));this._register(this._editors.original.onDidChangeViewZones(b=>{this._canIgnoreViewZoneUpdateEvent()||d.schedule()})),this._register(this._editors.modified.onDidChangeViewZones(b=>{this._canIgnoreViewZoneUpdateEvent()||d.schedule()})),this._register(this._editors.original.onDidChangeConfiguration(b=>{(b.hasChanged(166)||b.hasChanged(75))&&d.schedule()})),this._register(this._editors.modified.onDidChangeConfiguration(b=>{(b.hasChanged(166)||b.hasChanged(75))&&d.schedule()}));const f=this._diffModel.map(b=>b?Qt(this,b.model.original.onDidChangeTokens,()=>b.model.original.tokenization.backgroundTokenizationState===2):void 0).map((b,y)=>b==null?void 0:b.read(y)),g=me(b=>{const y=this._diffModel.read(b),C=y==null?void 0:y.diff.read(b);if(!y||!C)return null;u.read(b);const S=this._options.renderSideBySide.read(b);return $U(this._editors.original,this._editors.modified,C.mappings,this._origViewZonesToIgnore,this._modViewZonesToIgnore,S)}),p=me(b=>{var x;const y=(x=this._diffModel.read(b))==null?void 0:x.movedTextToCompare.read(b);if(!y)return null;u.read(b);const C=y.changes.map(S=>new Fte(S));return $U(this._editors.original,this._editors.modified,C,this._origViewZonesToIgnore,this._modViewZonesToIgnore,!0)});function m(){const b=document.createElement("div");return b.className="diagonal-fill",b}const v=this._register(new he);this.viewZones=me(this,b=>{var K,X,ne,oe;v.clear();const y=g.read(b)||[],C=[],x=[],S=this._modifiedTopPadding.read(b);S>0&&x.push({afterLineNumber:0,domNode:document.createElement("div"),heightInPx:S,showInHiddenAreas:!0,suppressMouseDown:!0});const k=this._originalTopPadding.read(b);k>0&&C.push({afterLineNumber:0,domNode:document.createElement("div"),heightInPx:k,showInHiddenAreas:!0,suppressMouseDown:!0});const T=this._options.renderSideBySide.read(b),I=T||(K=this._editors.modified._getViewModel())==null?void 0:K.createLineBreaksComputer();if(I){const ue=this._editors.original.getModel();for(const de of y)if(de.diff)for(let De=de.originalRange.startLineNumber;De<de.originalRange.endLineNumberExclusive;De++){if(De>ue.getLineCount())return{orig:C,mod:x};I==null||I.addRequest(ue.getLineContent(De),null,null)}}const N=(I==null?void 0:I.finalize())??[];let A=0;const R=this._editors.modified.getOption(75),P=(X=this._diffModel.read(b))==null?void 0:X.movedTextToCompare.read(b),B=((ne=this._editors.original.getModel())==null?void 0:ne.mightContainNonBasicASCII())??!1,z=((oe=this._editors.original.getModel())==null?void 0:oe.mightContainRTL())??!1,U=J1.fromEditor(this._editors.modified);for(const ue of y)if(ue.diff&&!T&&(!this._options.useTrueInlineDiffRendering.read(b)||!m7(ue.diff))){if(!ue.originalRange.isEmpty){f.read(b);const De=document.createElement("div");De.classList.add("view-lines","line-delete","line-delete-selectable","monaco-mouse-cursor-text");const Q=this._editors.original.getModel();if(ue.originalRange.endLineNumberExclusive-1>Q.getLineCount())return{orig:C,mod:x};const Xe=new c3e(ue.originalRange.mapToLineArray(ge=>Q.tokenization.getLineTokens(ge)),ue.originalRange.mapToLineArray(ge=>N[A++]),B,z),Pe=[];for(const ge of ue.diff.innerChanges||[])Pe.push(new V1(ge.originalRange.delta(-(ue.diff.original.startLineNumber-1)),DO.className,0));const tt=h3e(Xe,U,Pe,De),st=document.createElement("div");if(st.className="inline-deleted-margin-view-zone",mn(st,U.fontInfo),this._options.renderIndicators.read(b))for(let ge=0;ge<tt.heightInLines;ge++){const Oe=document.createElement("div");Oe.className=`delete-sign ${Je.asClassName(Rte)}`,Oe.setAttribute("style",`position:absolute;top:${ge*R}px;width:${U.lineDecorationsWidth}px;height:${R}px;right:0;`),st.appendChild(Oe)}let ve;v.add(new l3e(()=>nX(ve),st,De,this._editors.modified,ue.diff,this._diffEditorWidget,tt,this._editors.original.getModel(),this._contextMenuService,this._clipboardService));for(let ge=0;ge<tt.viewLineCounts.length;ge++){const Oe=tt.viewLineCounts[ge];Oe>1&&C.push({afterLineNumber:ue.originalRange.startLineNumber+ge,domNode:m(),heightInPx:(Oe-1)*R,showInHiddenAreas:!0,suppressMouseDown:!0})}x.push({afterLineNumber:ue.modifiedRange.startLineNumber-1,domNode:De,heightInPx:tt.heightInLines*R,minWidthInPx:tt.minWidthInPx,marginDomNode:st,setZoneId(ge){ve=ge},showInHiddenAreas:!0,suppressMouseDown:!1})}const de=document.createElement("div");de.className="gutter-delete",C.push({afterLineNumber:ue.originalRange.endLineNumberExclusive-1,domNode:m(),heightInPx:ue.modifiedHeightInPx,marginDomNode:de,showInHiddenAreas:!0,suppressMouseDown:!0})}else{const de=ue.modifiedHeightInPx-ue.originalHeightInPx;if(de>0){if(P!=null&&P.lineRangeMapping.original.delta(-1).deltaLength(2).contains(ue.originalRange.endLineNumberExclusive-1))continue;C.push({afterLineNumber:ue.originalRange.endLineNumberExclusive-1,domNode:m(),heightInPx:de,showInHiddenAreas:!0,suppressMouseDown:!0})}else{let De=function(){const Xe=document.createElement("div");return Xe.className="arrow-revert-change "+Je.asClassName(re.arrowRight),b.store.add(j(Xe,"mousedown",Pe=>Pe.stopPropagation())),b.store.add(j(Xe,"click",Pe=>{Pe.stopPropagation(),r.revert(ue.diff)})),Le("div",{},Xe)};if(P!=null&&P.lineRangeMapping.modified.delta(-1).deltaLength(2).contains(ue.modifiedRange.endLineNumberExclusive-1))continue;let Q;ue.diff&&ue.diff.modified.isEmpty&&this._options.shouldRenderOldRevertArrows.read(b)&&(Q=De()),x.push({afterLineNumber:ue.modifiedRange.endLineNumberExclusive-1,domNode:m(),heightInPx:-de,marginDomNode:Q,showInHiddenAreas:!0,suppressMouseDown:!0})}}for(const ue of p.read(b)??[]){if(!(P!=null&&P.lineRangeMapping.original.intersect(ue.originalRange))||!(P!=null&&P.lineRangeMapping.modified.intersect(ue.modifiedRange)))continue;const de=ue.modifiedHeightInPx-ue.originalHeightInPx;de>0?C.push({afterLineNumber:ue.originalRange.endLineNumberExclusive-1,domNode:m(),heightInPx:de,showInHiddenAreas:!0,suppressMouseDown:!0}):x.push({afterLineNumber:ue.modifiedRange.endLineNumberExclusive-1,domNode:m(),heightInPx:-de,showInHiddenAreas:!0,suppressMouseDown:!0})}return{orig:C,mod:x}});let _=!1;this._register(this._editors.original.onDidScrollChange(b=>{b.scrollLeftChanged&&!_&&(_=!0,this._editors.modified.setScrollLeft(b.scrollLeft),_=!1)})),this._register(this._editors.modified.onDidScrollChange(b=>{b.scrollLeftChanged&&!_&&(_=!0,this._editors.original.setScrollLeft(b.scrollLeft),_=!1)})),this._originalScrollTop=Qt(this._editors.original.onDidScrollChange,()=>this._editors.original.getScrollTop()),this._modifiedScrollTop=Qt(this._editors.modified.onDidScrollChange,()=>this._editors.modified.getScrollTop()),this._register(Qe(b=>{const y=this._originalScrollTop.read(b)-(this._originalScrollOffsetAnimated.read(void 0)-this._modifiedScrollOffsetAnimated.read(b))-(this._originalTopPadding.read(void 0)-this._modifiedTopPadding.read(b));y!==this._editors.modified.getScrollTop()&&this._editors.modified.setScrollTop(y,1)})),this._register(Qe(b=>{const y=this._modifiedScrollTop.read(b)-(this._modifiedScrollOffsetAnimated.read(void 0)-this._originalScrollOffsetAnimated.read(b))-(this._modifiedTopPadding.read(void 0)-this._originalTopPadding.read(b));y!==this._editors.original.getScrollTop()&&this._editors.original.setScrollTop(y,1)})),this._register(Qe(b=>{var x;const y=(x=this._diffModel.read(b))==null?void 0:x.movedTextToCompare.read(b);let C=0;if(y){const S=this._editors.original.getTopForLineNumber(y.lineRangeMapping.original.startLineNumber,!0)-this._originalTopPadding.read(void 0);C=this._editors.modified.getTopForLineNumber(y.lineRangeMapping.modified.startLineNumber,!0)-this._modifiedTopPadding.read(void 0)-S}C>0?(this._modifiedTopPadding.set(0,void 0),this._originalTopPadding.set(C,void 0)):C<0?(this._modifiedTopPadding.set(-C,void 0),this._originalTopPadding.set(0,void 0)):setTimeout(()=>{this._modifiedTopPadding.set(0,void 0),this._originalTopPadding.set(0,void 0)},400),this._editors.modified.hasTextFocus()?this._originalScrollOffset.set(this._modifiedScrollOffset.read(void 0)-C,void 0,!0):this._modifiedScrollOffset.set(this._originalScrollOffset.read(void 0)+C,void 0,!0)}))}};MO=d3e([UU(8,c7),UU(9,Jh)],MO);function $U(s,e,t,i,n,r){const o=new Uh(GU(s,i)),a=new Uh(GU(e,n)),l=s.getOption(75),h=e.getOption(75),c=[];let u=0,d=0;function f(g,p){for(;;){let m=o.peek(),v=a.peek();if(m&&m.lineNumber>=g&&(m=void 0),v&&v.lineNumber>=p&&(v=void 0),!m&&!v)break;const _=m?m.lineNumber-u:Number.MAX_VALUE,b=v?v.lineNumber-d:Number.MAX_VALUE;_<b?(o.dequeue(),v={lineNumber:m.lineNumber-u+d,heightInPx:0}):_>b?(a.dequeue(),m={lineNumber:v.lineNumber-d+u,heightInPx:0}):(o.dequeue(),a.dequeue()),c.push({originalRange:Ee.ofLength(m.lineNumber,1),modifiedRange:Ee.ofLength(v.lineNumber,1),originalHeightInPx:l+m.heightInPx,modifiedHeightInPx:h+v.heightInPx,diff:void 0})}}for(const g of t){let b=function(y,C,x=!1){var N,A;if(y<_||C<v)return;if(m)m=!1;else if(!x&&(y===_||C===v))return;const S=new Ee(_,y),k=new Ee(v,C);if(S.isEmpty&&k.isEmpty)return;const T=((N=o.takeWhile(R=>R.lineNumber<y))==null?void 0:N.reduce((R,P)=>R+P.heightInPx,0))??0,I=((A=a.takeWhile(R=>R.lineNumber<C))==null?void 0:A.reduce((R,P)=>R+P.heightInPx,0))??0;c.push({originalRange:S,modifiedRange:k,originalHeightInPx:S.length*l+T,modifiedHeightInPx:k.length*h+I,diff:g.lineRangeMapping}),_=y,v=C};const p=g.lineRangeMapping;f(p.original.startLineNumber,p.modified.startLineNumber);let m=!0,v=p.modified.startLineNumber,_=p.original.startLineNumber;if(r)for(const y of p.innerChanges||[]){y.originalRange.startColumn>1&&y.modifiedRange.startColumn>1&&b(y.originalRange.startLineNumber,y.modifiedRange.startLineNumber);const C=s.getModel(),x=y.originalRange.endLineNumber<=C.getLineCount()?C.getLineMaxColumn(y.originalRange.endLineNumber):Number.MAX_SAFE_INTEGER;y.originalRange.endColumn<x&&b(y.originalRange.endLineNumber,y.modifiedRange.endLineNumber)}b(p.original.endLineNumberExclusive,p.modified.endLineNumberExclusive,!0),u=p.original.endLineNumberExclusive,d=p.modified.endLineNumberExclusive}return f(Number.MAX_VALUE,Number.MAX_VALUE),c}function GU(s,e){const t=[],i=[],n=s.getOption(166).wrappingColumn!==-1,r=s._getViewModel().coordinatesConverter,o=s.getOption(75);if(n)for(let l=1;l<=s.getModel().getLineCount();l++){const h=r.getModelLineViewLineCount(l);h>1&&i.push({lineNumber:l,heightInPx:o*(h-1)})}for(const l of s.getWhitespaces()){if(e.has(l.id))continue;const h=l.afterLineNumber===0?0:r.convertViewPositionToModelPosition(new H(l.afterLineNumber,1)).lineNumber;t.push({lineNumber:h,heightInPx:l.height})}return R4e(t,i,l=>l.lineNumber,(l,h)=>({lineNumber:l.lineNumber,heightInPx:l.heightInPx+h.heightInPx}))}function m7(s){return s.innerChanges?s.innerChanges.every(e=>qU(e.modifiedRange)&&qU(e.originalRange)||e.originalRange.equalsRange(new F(1,1,1,1))):!1}function qU(s){return s.startLineNumber===s.endLineNumber}const fb=class fb extends q{constructor(e,t,i,n,r){super(),this._rootElement=e,this._diffModel=t,this._originalEditorLayoutInfo=i,this._modifiedEditorLayoutInfo=n,this._editors=r,this._originalScrollTop=Qt(this,this._editors.original.onDidScrollChange,()=>this._editors.original.getScrollTop()),this._modifiedScrollTop=Qt(this,this._editors.modified.onDidScrollChange,()=>this._editors.modified.getScrollTop()),this._viewZonesChanged=Do("onDidChangeViewZones",this._editors.modified.onDidChangeViewZones),this.width=ze(this,0),this._modifiedViewZonesChangedSignal=Do("modified.onDidChangeViewZones",this._editors.modified.onDidChangeViewZones),this._originalViewZonesChangedSignal=Do("original.onDidChangeViewZones",this._editors.original.onDidChangeViewZones),this._state=me(this,c=>{var x;this._element.replaceChildren();const u=this._diffModel.read(c),d=(x=u==null?void 0:u.diff.read(c))==null?void 0:x.movedTexts;if(!d||d.length===0){this.width.set(0,void 0);return}this._viewZonesChanged.read(c);const f=this._originalEditorLayoutInfo.read(c),g=this._modifiedEditorLayoutInfo.read(c);if(!f||!g){this.width.set(0,void 0);return}this._modifiedViewZonesChangedSignal.read(c),this._originalViewZonesChangedSignal.read(c);const p=d.map(S=>{function k(U,K){const X=K.getTopForLineNumber(U.startLineNumber,!0),ne=K.getTopForLineNumber(U.endLineNumberExclusive,!0);return(X+ne)/2}const T=k(S.lineRangeMapping.original,this._editors.original),I=this._originalScrollTop.read(c),N=k(S.lineRangeMapping.modified,this._editors.modified),A=this._modifiedScrollTop.read(c),R=T-I,P=N-A,B=Math.min(T,N),z=Math.max(T,N);return{range:new _e(B,z),from:R,to:P,fromWithoutScroll:T,toWithoutScroll:N,move:S}});p.sort($me(Ir(S=>S.fromWithoutScroll>S.toWithoutScroll,Gme),Ir(S=>S.fromWithoutScroll>S.toWithoutScroll?S.fromWithoutScroll:-S.toWithoutScroll,Fh)));const m=v7.compute(p.map(S=>S.range)),v=10,_=f.verticalScrollbarWidth,b=(m.getTrackCount()-1)*10+v*2,y=_+b+(g.contentLeft-fb.movedCodeBlockPadding);let C=0;for(const S of p){const k=m.getTrack(C),T=_+v+k*10,I=15,N=15,A=y,R=g.glyphMarginWidth+g.lineNumbersWidth,P=18,B=document.createElementNS("http://www.w3.org/2000/svg","rect");B.classList.add("arrow-rectangle"),B.setAttribute("x",`${A-R}`),B.setAttribute("y",`${S.to-P/2}`),B.setAttribute("width",`${R}`),B.setAttribute("height",`${P}`),this._element.appendChild(B);const z=document.createElementNS("http://www.w3.org/2000/svg","g"),U=document.createElementNS("http://www.w3.org/2000/svg","path");U.setAttribute("d",`M 0 ${S.from} L ${T} ${S.from} L ${T} ${S.to} L ${A-N} ${S.to}`),U.setAttribute("fill","none"),z.appendChild(U);const K=document.createElementNS("http://www.w3.org/2000/svg","polygon");K.classList.add("arrow"),c.store.add(Qe(X=>{U.classList.toggle("currentMove",S.move===u.activeMovedText.read(X)),K.classList.toggle("currentMove",S.move===u.activeMovedText.read(X))})),K.setAttribute("points",`${A-N},${S.to-I/2} ${A},${S.to} ${A-N},${S.to+I/2}`),z.appendChild(K),this._element.appendChild(z),C++}this.width.set(b,void 0)}),this._element=document.createElementNS("http://www.w3.org/2000/svg","svg"),this._element.setAttribute("class","moved-blocks-lines"),this._rootElement.appendChild(this._element),this._register(Se(()=>this._element.remove())),this._register(Qe(c=>{const u=this._originalEditorLayoutInfo.read(c),d=this._modifiedEditorLayoutInfo.read(c);!u||!d||(this._element.style.left=`${u.width-u.verticalScrollbarWidth}px`,this._element.style.height=`${u.height}px`,this._element.style.width=`${u.verticalScrollbarWidth+u.contentLeft-fb.movedCodeBlockPadding+this.width.read(c)}px`)})),this._register(xD(this._state));const o=me(c=>{const u=this._diffModel.read(c),d=u==null?void 0:u.diff.read(c);return d?d.movedTexts.map(f=>({move:f,original:new Kp(M0(f.lineRangeMapping.original.startLineNumber-1),18),modified:new Kp(M0(f.lineRangeMapping.modified.startLineNumber-1),18)})):[]});this._register(EL(this._editors.original,o.map(c=>c.map(u=>u.original)))),this._register(EL(this._editors.modified,o.map(c=>c.map(u=>u.modified)))),this._register(fa((c,u)=>{const d=o.read(c);for(const f of d)u.add(new KU(this._editors.original,f.original,f.move,"original",this._diffModel.get())),u.add(new KU(this._editors.modified,f.modified,f.move,"modified",this._diffModel.get()))}));const a=Do("original.onDidFocusEditorWidget",c=>this._editors.original.onDidFocusEditorWidget(()=>setTimeout(()=>c(void 0),0))),l=Do("modified.onDidFocusEditorWidget",c=>this._editors.modified.onDidFocusEditorWidget(()=>setTimeout(()=>c(void 0),0)));let h="modified";this._register(Dv({changeTracker:{createChangeSummary:()=>{},handleChange:(c,u)=>(c.didChange(a)&&(h="original"),c.didChange(l)&&(h="modified"),!0)}},c=>{a.read(c),l.read(c);const u=this._diffModel.read(c);if(!u)return;const d=u.diff.read(c);let f;if(d&&h==="original"){const g=this._editors.originalCursor.read(c);g&&(f=d.movedTexts.find(p=>p.lineRangeMapping.original.contains(g.lineNumber)))}if(d&&h==="modified"){const g=this._editors.modifiedCursor.read(c);g&&(f=d.movedTexts.find(p=>p.lineRangeMapping.modified.contains(g.lineNumber)))}f!==u.movedTextToCompare.read(void 0)&&u.movedTextToCompare.set(void 0,void 0),u.setActiveMovedText(f)}))}};fb.movedCodeBlockPadding=4;let Pm=fb;class v7{static compute(e){const t=[],i=[];for(const n of e){let r=t.findIndex(o=>!o.intersectsStrict(n));r===-1&&(t.length>=6?r=Fwe(t,Ir(a=>a.intersectWithRangeLength(n),Fh)):(r=t.length,t.push(new N3))),t[r].addRange(n),i.push(r)}return new v7(t.length,i)}constructor(e,t){this._trackCount=e,this.trackPerLineIdx=t}getTrack(e){return this.trackPerLineIdx[e]}getTrackCount(){return this._trackCount}}class KU extends d7{constructor(e,t,i,n,r){const o=ot("div.diff-hidden-lines-widget");super(e,t,o.root),this._editor=e,this._move=i,this._kind=n,this._diffModel=r,this._nodes=ot("div.diff-moved-code-block",{style:{marginRight:"4px"}},[ot("div.text-content@textContent"),ot("div.action-bar@actionBar")]),o.root.appendChild(this._nodes.root);const a=Qt(this._editor.onDidLayoutChange,()=>this._editor.getLayoutInfo());this._register(_u(this._nodes.root,{paddingRight:a.map(d=>d.verticalScrollbarWidth)}));let l;i.changes.length>0?l=this._kind==="original"?w(131,"Code moved with changes to line {0}-{1}",this._move.lineRangeMapping.modified.startLineNumber,this._move.lineRangeMapping.modified.endLineNumberExclusive-1):w(132,"Code moved with changes from line {0}-{1}",this._move.lineRangeMapping.original.startLineNumber,this._move.lineRangeMapping.original.endLineNumberExclusive-1):l=this._kind==="original"?w(133,"Code moved to line {0}-{1}",this._move.lineRangeMapping.modified.startLineNumber,this._move.lineRangeMapping.modified.endLineNumberExclusive-1):w(134,"Code moved from line {0}-{1}",this._move.lineRangeMapping.original.startLineNumber,this._move.lineRangeMapping.original.endLineNumberExclusive-1);const h=this._register(new pl(this._nodes.actionBar,{highlightToggledItems:!0})),c=new eu("",l,"",!1);h.push(c,{icon:!1,label:!0});const u=new eu("","Compare",Je.asClassName(re.compareChanges),!0,()=>{this._editor.focus(),this._diffModel.movedTextToCompare.set(this._diffModel.movedTextToCompare.get()===i?void 0:this._move,void 0)});this._register(Qe(d=>{const f=this._diffModel.movedTextToCompare.read(d)===i;u.checked=f})),h.push(u,{icon:!1,label:!0})}}class f3e extends q{constructor(e,t,i,n){super(),this._editors=e,this._diffModel=t,this._options=i,this._decorations=me(this,r=>{const o=this._diffModel.read(r),a=o==null?void 0:o.diff.read(r);if(!a)return null;const l=this._diffModel.read(r).movedTextToCompare.read(r),h=this._options.renderIndicators.read(r),c=this._options.showEmptyDecorations.read(r),u=[],d=[];if(!l)for(const g of a.mappings)if(g.lineRangeMapping.original.isEmpty||u.push({range:g.lineRangeMapping.original.toInclusiveRange(),options:h?FU:VU}),g.lineRangeMapping.modified.isEmpty||d.push({range:g.lineRangeMapping.modified.toInclusiveRange(),options:h?OU:BU}),g.lineRangeMapping.modified.isEmpty||g.lineRangeMapping.original.isEmpty)g.lineRangeMapping.original.isEmpty||u.push({range:g.lineRangeMapping.original.toInclusiveRange(),options:J4e}),g.lineRangeMapping.modified.isEmpty||d.push({range:g.lineRangeMapping.modified.toInclusiveRange(),options:Z4e});else{const p=this._options.useTrueInlineDiffRendering.read(r)&&m7(g.lineRangeMapping);for(const m of g.lineRangeMapping.innerChanges||[])if(g.lineRangeMapping.original.contains(m.originalRange.startLineNumber)&&u.push({range:m.originalRange,options:m.originalRange.isEmpty()&&c?e3e:DO}),g.lineRangeMapping.modified.contains(m.modifiedRange.startLineNumber)&&d.push({range:m.modifiedRange,options:m.modifiedRange.isEmpty()&&c&&!p?Q4e:WU}),p){const v=o.model.original.getValueInRange(m.originalRange);d.push({range:m.modifiedRange,options:{description:"deleted-text",before:{content:v,inlineClassName:"inline-deleted-text"},zIndex:1e5,showIfCollapsed:!0}})}}if(l)for(const g of l.changes){const p=g.original.toInclusiveRange();p&&u.push({range:p,options:h?FU:VU});const m=g.modified.toInclusiveRange();m&&d.push({range:m,options:h?OU:BU});for(const v of g.innerChanges||[])u.push({range:v.originalRange,options:DO}),d.push({range:v.modifiedRange,options:WU})}const f=this._diffModel.read(r).activeMovedText.read(r);for(const g of a.movedTexts)u.push({range:g.lineRangeMapping.original.toInclusiveRange(),options:{description:"moved",blockClassName:"movedOriginal"+(g===f?" currentMove":""),blockPadding:[Pm.movedCodeBlockPadding,0,Pm.movedCodeBlockPadding,Pm.movedCodeBlockPadding]}}),d.push({range:g.lineRangeMapping.modified.toInclusiveRange(),options:{description:"moved",blockClassName:"movedModified"+(g===f?" currentMove":""),blockPadding:[4,0,4,4]}});return{originalDecorations:u,modifiedDecorations:d}}),this._register(IL(this._editors.original,this._decorations.map(r=>(r==null?void 0:r.originalDecorations)||[]))),this._register(IL(this._editors.modified,this._decorations.map(r=>(r==null?void 0:r.modifiedDecorations)||[])))}}class ra{static equals(e,t){return e.x===t.x&&e.y===t.y}constructor(e,t){this.x=e,this.y=t}add(e){return new ra(this.x+e.x,this.y+e.y)}deltaX(e){return new ra(this.x+e,this.y)}deltaY(e){return new ra(this.x,this.y+e)}toString(){return`(${this.x},${this.y})`}subtract(e){return new ra(this.x-e.x,this.y-e.y)}scale(e){return new ra(this.x*e,this.y*e)}mapComponents(e){return new ra(e(this.x),e(this.y))}isZero(){return this.x===0&&this.y===0}withThreshold(e){return this.mapComponents(t=>t>e?t-e:t<-e?t+e:0)}}function hf(s){return AO.get(s)}const xc=class xc extends q{static get(e){let t=xc._map.get(e);if(!t){t=new xc(e),xc._map.set(e,t);const i=e.onDidDispose(()=>{const n=xc._map.get(e);n&&(xc._map.delete(e),n.dispose(),i.dispose())})}return t}_beginUpdate(){this._updateCounter++,this._updateCounter===1&&(this._currentTransaction=new gw(()=>{}))}_endUpdate(){if(this._updateCounter--,this._updateCounter===0){const e=this._currentTransaction;this._currentTransaction=void 0,e.finish()}}constructor(e){var t;super(),this.editor=e,this._updateCounter=0,this._currentTransaction=void 0,this._model=ze(this,this.editor.getModel()),this.model=this._model,this.isReadonly=Qt(this,this.editor.onDidChangeConfiguration,()=>this.editor.getOption(104)),this._versionId=R1({owner:this,lazy:!0},((t=this.editor.getModel())==null?void 0:t.getVersionId())??null),this.versionId=this._versionId,this._selections=R1({owner:this,equalsFn:j_(lA(nt.selectionsEqual)),lazy:!0},this.editor.getSelections()??null),this.selections=this._selections,this.positions=dl({owner:this,equalsFn:j_(lA(H.equals))},i=>{var n;return((n=this.selections.read(i))==null?void 0:n.map(r=>r.getStartPosition()))??null}),this.isFocused=Qt(this,i=>{const n=this.editor.onDidFocusEditorWidget(i),r=this.editor.onDidBlurEditorWidget(i);return{dispose(){n.dispose(),r.dispose()}}},()=>this.editor.hasWidgetFocus()),this.isTextFocused=Qt(this,i=>{const n=this.editor.onDidFocusEditorText(i),r=this.editor.onDidBlurEditorText(i);return{dispose(){n.dispose(),r.dispose()}}},()=>this.editor.hasTextFocus()),this.inComposition=Qt(this,i=>{const n=this.editor.onDidCompositionStart(()=>{i(void 0)}),r=this.editor.onDidCompositionEnd(()=>{i(void 0)});return{dispose(){n.dispose(),r.dispose()}}},()=>this.editor.inComposition),this.value=g3(this,i=>{var n;return this.versionId.read(i),((n=this.model.read(i))==null?void 0:n.getValue())??""},(i,n)=>{const r=this.model.get();r!==null&&i!==r.getValue()&&r.setValue(i)}),this.valueIsEmpty=me(this,i=>{var n;return this.versionId.read(i),((n=this.editor.getModel())==null?void 0:n.getValueLength())===0}),this.cursorSelection=dl({owner:this,equalsFn:j_(nt.selectionsEqual)},i=>{var n;return((n=this.selections.read(i))==null?void 0:n[0])??null}),this.cursorPosition=dl({owner:this,equalsFn:H.equals},i=>{var n,r;return((r=(n=this.selections.read(i))==null?void 0:n[0])==null?void 0:r.getPosition())??null}),this.cursorLineNumber=me(this,i=>{var n;return((n=this.cursorPosition.read(i))==null?void 0:n.lineNumber)??null}),this.onDidType=C0(this),this.onDidPaste=C0(this),this.scrollTop=Qt(this.editor.onDidScrollChange,()=>this.editor.getScrollTop()),this.scrollLeft=Qt(this.editor.onDidScrollChange,()=>this.editor.getScrollLeft()),this.layoutInfo=Qt(this.editor.onDidLayoutChange,()=>this.editor.getLayoutInfo()),this.layoutInfoContentLeft=this.layoutInfo.map(i=>i.contentLeft),this.layoutInfoDecorationsLeft=this.layoutInfo.map(i=>i.decorationsLeft),this.layoutInfoWidth=this.layoutInfo.map(i=>i.width),this.layoutInfoHeight=this.layoutInfo.map(i=>i.height),this.layoutInfoMinimap=this.layoutInfo.map(i=>i.minimap),this.layoutInfoVerticalScrollbarWidth=this.layoutInfo.map(i=>i.verticalScrollbarWidth),this.contentWidth=Qt(this.editor.onDidContentSizeChange,()=>this.editor.getContentWidth()),this.contentHeight=Qt(this.editor.onDidContentSizeChange,()=>this.editor.getContentHeight()),this._widgetCounter=0,this.openedPeekWidgets=ze(this,0),this._register(this.editor.onBeginUpdate(()=>this._beginUpdate())),this._register(this.editor.onEndUpdate(()=>this._endUpdate())),this._register(this.editor.onDidChangeModel(()=>{this._beginUpdate();try{this._model.set(this.editor.getModel(),this._currentTransaction),this._forceUpdate()}finally{this._endUpdate()}})),this._register(this.editor.onDidType(i=>{this._beginUpdate();try{this._forceUpdate(),this.onDidType.trigger(this._currentTransaction,i)}finally{this._endUpdate()}})),this._register(this.editor.onDidPaste(i=>{this._beginUpdate();try{this._forceUpdate(),this.onDidPaste.trigger(this._currentTransaction,i)}finally{this._endUpdate()}})),this._register(this.editor.onDidChangeModelContent(i=>{var n;this._beginUpdate();try{this._versionId.set(((n=this.editor.getModel())==null?void 0:n.getVersionId())??null,this._currentTransaction,i),this._forceUpdate()}finally{this._endUpdate()}})),this._register(this.editor.onDidChangeCursorSelection(i=>{this._beginUpdate();try{this._selections.set(this.editor.getSelections(),this._currentTransaction,i),this._forceUpdate()}finally{this._endUpdate()}})),this.domNode=me(i=>(this.model.read(i),this.editor.getDomNode()))}forceUpdate(e){this._beginUpdate();try{return this._forceUpdate(),e?e(this._currentTransaction):void 0}finally{this._endUpdate()}}_forceUpdate(){var e;this._beginUpdate();try{this._model.set(this.editor.getModel(),this._currentTransaction),this._versionId.set(((e=this.editor.getModel())==null?void 0:e.getVersionId())??null,this._currentTransaction,void 0),this._selections.set(this.editor.getSelections(),this._currentTransaction,void 0)}finally{this._endUpdate()}}getOption(e,t=Dn.ofCaller()){return Qt(this,i=>this.editor.onDidChangeConfiguration(n=>{n.hasChanged(e)&&i(void 0)}),()=>this.editor.getOption(e),t)}setDecorations(e){const t=new he,i=this.editor.createDecorationsCollection();return t.add(p3({owner:this,debugName:()=>`Apply decorations from ${e.debugName}`},n=>{const r=e.read(n);i.set(r)})),t.add({dispose:()=>{i.clear()}}),t}createOverlayWidget(e){const t="observableOverlayWidget"+this._widgetCounter++,i={getDomNode:()=>e.domNode,getPosition:()=>e.position.get(),getId:()=>t,allowEditorOverflow:e.allowEditorOverflow,getMinContentWidthInPx:()=>e.minContentWidthInPx.get()};this.editor.addOverlayWidget(i);const n=Qe(r=>{e.position.read(r),e.minContentWidthInPx.read(r),this.editor.layoutOverlayWidget(i)});return Se(()=>{n.dispose(),this.editor.removeOverlayWidget(i)})}createContentWidget(e){const t="observableContentWidget"+this._widgetCounter++,i={getDomNode:()=>e.domNode,getPosition:()=>e.position.get(),getId:()=>t,allowEditorOverflow:e.allowEditorOverflow};this.editor.addContentWidget(i);const n=Qe(r=>{e.position.read(r),this.editor.layoutContentWidget(i)});return Se(()=>{n.dispose(),this.editor.removeContentWidget(i)})}observeLineOffsetRange(e,t){const i=this.observePosition(e.map(r=>new H(r.startLineNumber,1)),t),n=this.observePosition(e.map(r=>new H(r.endLineNumberExclusive+1,1)),t);return me(r=>{var c;i.read(r),n.read(r);const o=e.read(r),a=(c=this.model.read(r))==null?void 0:c.getLineCount(),l=(typeof a<"u"&&o.startLineNumber>a?this.editor.getBottomForLineNumber(a):this.editor.getTopForLineNumber(o.startLineNumber))-this.scrollTop.read(r),h=o.isEmpty?l:this.editor.getBottomForLineNumber(o.endLineNumberExclusive-1)-this.scrollTop.read(r);return new _e(l,h)})}observePosition(e,t){let i=e.get();const n=R1({owner:this,debugName:()=>`topLeftOfPosition${i==null?void 0:i.toString()}`,equalsFn:j_(ra.equals)},new ra(0,0)),r="observablePositionWidget"+this._widgetCounter++,o=document.createElement("div"),a={getDomNode:()=>o,getPosition:()=>i?{preference:[0],position:e.get()}:null,getId:()=>r,allowEditorOverflow:!1,afterRender:(l,h)=>{const c=this._model.get();c&&i&&i.lineNumber>c.getLineCount()?n.set(new ra(0,this.editor.getBottomForLineNumber(c.getLineCount())-this.scrollTop.get()),void 0):n.set(h?new ra(h.left,h.top):null,void 0)}};return this.editor.addContentWidget(a),t.add(Qe(l=>{i=e.read(l),this.editor.layoutContentWidget(a)})),t.add(Se(()=>{this.editor.removeContentWidget(a)})),n}isTargetHovered(e,t){const i=ze("isInjectedTextHovered",!1);return t.add(this.editor.onMouseMove(n=>{const r=e(n);i.set(r,void 0)})),t.add(this.editor.onMouseLeave(n=>{i.set(!1,void 0)})),i}observeLineHeightForPosition(e){return me(t=>{const i=e instanceof H?e:e.read(t);return i===null?null:(this.getOption(75).read(t),this.editor.getLineHeightForPosition(i))})}observeLineHeightForLine(e){return typeof e=="number"?this.observeLineHeightForPosition(new H(e,1)):me(t=>{const i=e.read(t);return i===null?null:this.observeLineHeightForPosition(new H(i,1)).read(t)})}observeLineHeightsForLineRange(e){return me(t=>{const i=e instanceof Ee?e:e.read(t),n=[];for(let r=i.startLineNumber;r<i.endLineNumberExclusive;r++)n.push(this.observeLineHeightForLine(r).read(t));return n})}};xc._map=new Map;let AO=xc;var g3e=function(s,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(s,e,t,i);else for(var a=s.length-1;a>=0;a--)(o=s[a])&&(r=(n<3?o(r):n>3?o(e,t,r):o(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},p3e=function(s,e){return function(t,i){e(t,i,s)}},qo,Rh;let j0=(Rh=class extends q{constructor(e,t,i,n,r,o,a){super(),this._editors=e,this._rootElement=t,this._diffModel=i,this._rootWidth=n,this._rootHeight=r,this._modifiedEditorLayoutInfo=o,this._themeService=a,this.width=qo.ENTIRE_DIFF_OVERVIEW_WIDTH;const l=Qt(this._themeService.onDidColorThemeChange,()=>this._themeService.getColorTheme()),h=me(d=>{const f=l.read(d),g=f.getColor(FCe)||(f.getColor(PCe)||$A).transparent(2),p=f.getColor(BCe)||(f.getColor(OCe)||GA).transparent(2);return{insertColor:g,removeColor:p}}),c=ht(document.createElement("div"));c.setClassName("diffViewport"),c.setPosition("absolute");const u=ot("div.diffOverview",{style:{position:"absolute",top:"0px",width:qo.ENTIRE_DIFF_OVERVIEW_WIDTH+"px"}}).root;this._register(J_(u,c.domNode)),this._register(pn(u,te.POINTER_DOWN,d=>{this._editors.modified.delegateVerticalScrollbarPointerDown(d)})),this._register(j(u,te.MOUSE_WHEEL,d=>{this._editors.modified.delegateScrollFromMouseWheelEvent(d)},{passive:!1})),this._register(J_(this._rootElement,u)),this._register(fa((d,f)=>{const g=this._diffModel.read(d),p=this._editors.original.createOverviewRuler("original diffOverviewRuler");p&&(f.add(p),f.add(J_(u,p.getDomNode())));const m=this._editors.modified.createOverviewRuler("modified diffOverviewRuler");if(m&&(f.add(m),f.add(J_(u,m.getDomNode()))),!p||!m)return;const v=Do("viewZoneChanged",this._editors.original.onDidChangeViewZones),_=Do("viewZoneChanged",this._editors.modified.onDidChangeViewZones),b=Do("hiddenRangesChanged",this._editors.original.onDidChangeHiddenAreas),y=Do("hiddenRangesChanged",this._editors.modified.onDidChangeHiddenAreas);f.add(Qe(C=>{var N;v.read(C),_.read(C),b.read(C),y.read(C);const x=h.read(C),S=(N=g==null?void 0:g.diff.read(C))==null?void 0:N.mappings;function k(A,R,P){const B=P._getViewModel();return B?A.filter(z=>z.length>0).map(z=>{const U=B.coordinatesConverter.convertModelPositionToViewPosition(new H(z.startLineNumber,1)),K=B.coordinatesConverter.convertModelPositionToViewPosition(new H(z.endLineNumberExclusive,1)),X=K.lineNumber-U.lineNumber;return new QQ(U.lineNumber,K.lineNumber,X,R.toString())}):[]}const T=k((S||[]).map(A=>A.lineRangeMapping.original),x.removeColor,this._editors.original),I=k((S||[]).map(A=>A.lineRangeMapping.modified),x.insertColor,this._editors.modified);p==null||p.setZones(T),m==null||m.setZones(I)})),f.add(Qe(C=>{const x=this._rootHeight.read(C),S=this._rootWidth.read(C),k=this._modifiedEditorLayoutInfo.read(C);if(k){const T=qo.ENTIRE_DIFF_OVERVIEW_WIDTH-2*qo.ONE_OVERVIEW_WIDTH;p.setLayout({top:0,height:x,right:T+qo.ONE_OVERVIEW_WIDTH,width:qo.ONE_OVERVIEW_WIDTH}),m.setLayout({top:0,height:x,right:0,width:qo.ONE_OVERVIEW_WIDTH});const I=this._editors.modifiedScrollTop.read(C),N=this._editors.modifiedScrollHeight.read(C),A=this._editors.modified.getOption(117),R=new cv(A.verticalHasArrows?A.arrowSize:0,A.verticalScrollbarSize,0,k.height,N,I);c.setTop(R.getSliderPosition()),c.setHeight(R.getSliderSize())}else c.setTop(0),c.setHeight(0);u.style.height=x+"px",u.style.left=S-qo.ENTIRE_DIFF_OVERVIEW_WIDTH+"px",c.setWidth(qo.ENTIRE_DIFF_OVERVIEW_WIDTH)}))}))}},qo=Rh,Rh.ONE_OVERVIEW_WIDTH=15,Rh.ENTIRE_DIFF_OVERVIEW_WIDTH=Rh.ONE_OVERVIEW_WIDTH*2,Rh);j0=qo=g3e([p3e(6,tr)],j0);var m3e=function(s,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(s,e,t,i);else for(var a=s.length-1;a>=0;a--)(o=s[a])&&(r=(n<3?o(r):n>3?o(e,t,r):o(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},yE=function(s,e){return function(t,i){e(t,i,s)}};let RO=class extends q{get onDidContentSizeChange(){return this._onDidContentSizeChange.event}constructor(e,t,i,n,r,o,a,l){super(),this.originalEditorElement=e,this.modifiedEditorElement=t,this._options=i,this._argCodeEditorWidgetOptions=n,this._createInnerEditor=r,this._contextKeyService=o,this._instantiationService=a,this._keybindingService=l,this.original=this._register(this._createLeftHandSideEditor(this._options.editorOptions.get(),this._argCodeEditorWidgetOptions.originalEditor||{})),this.modified=this._register(this._createRightHandSideEditor(this._options.editorOptions.get(),this._argCodeEditorWidgetOptions.modifiedEditor||{})),this._onDidContentSizeChange=this._register(new W),this.modifiedScrollTop=Qt(this,this.modified.onDidScrollChange,()=>this.modified.getScrollTop()),this.modifiedScrollHeight=Qt(this,this.modified.onDidScrollChange,()=>this.modified.getScrollHeight()),this.modifiedObs=hf(this.modified),this.originalObs=hf(this.original),this.modifiedModel=this.modifiedObs.model,this.modifiedSelections=Qt(this,this.modified.onDidChangeCursorSelection,()=>this.modified.getSelections()??[]),this.modifiedCursor=dl({owner:this,equalsFn:H.equals},h=>{var c;return((c=this.modifiedSelections.read(h)[0])==null?void 0:c.getPosition())??new H(1,1)}),this.originalCursor=Qt(this,this.original.onDidChangeCursorPosition,()=>this.original.getPosition()??new H(1,1)),this.isOriginalFocused=hf(this.original).isFocused,this.isModifiedFocused=hf(this.modified).isFocused,this.isFocused=me(this,h=>this.isOriginalFocused.read(h)||this.isModifiedFocused.read(h)),this._argCodeEditorWidgetOptions=null,this._register(Dv({changeTracker:{createChangeSummary:()=>({}),handleChange:(h,c)=>(h.didChange(i.editorOptions)&&Object.assign(c,h.change.changedOptions),!0)}},(h,c)=>{i.editorOptions.read(h),this._options.renderSideBySide.read(h),this.modified.updateOptions(this._adjustOptionsForRightHandSide(h,c)),this.original.updateOptions(this._adjustOptionsForLeftHandSide(h,c))}))}_createLeftHandSideEditor(e,t){const i=this._adjustOptionsForLeftHandSide(void 0,e),n=this._constructInnerEditor(this._instantiationService,this.originalEditorElement,i,t),r=this._contextKeyService.createKey("isInDiffLeftEditor",n.hasWidgetFocus());return this._register(n.onDidFocusEditorWidget(()=>r.set(!0))),this._register(n.onDidBlurEditorWidget(()=>r.set(!1))),n}_createRightHandSideEditor(e,t){const i=this._adjustOptionsForRightHandSide(void 0,e),n=this._constructInnerEditor(this._instantiationService,this.modifiedEditorElement,i,t),r=this._contextKeyService.createKey("isInDiffRightEditor",n.hasWidgetFocus());return this._register(n.onDidFocusEditorWidget(()=>r.set(!0))),this._register(n.onDidBlurEditorWidget(()=>r.set(!1))),n}_constructInnerEditor(e,t,i,n){const r=this._createInnerEditor(e,t,i,n);return this._register(r.onDidContentSizeChange(o=>{const a=this.original.getContentWidth()+this.modified.getContentWidth()+j0.ENTIRE_DIFF_OVERVIEW_WIDTH,l=Math.max(this.modified.getContentHeight(),this.original.getContentHeight());this._onDidContentSizeChange.fire({contentHeight:l,contentWidth:a,contentHeightChanged:o.contentHeightChanged,contentWidthChanged:o.contentWidthChanged})})),r}_adjustOptionsForLeftHandSide(e,t){const i=this._adjustOptionsForSubEditor(t);return this._options.renderSideBySide.get()?(i.unicodeHighlight=this._options.editorOptions.get().unicodeHighlight||{},i.wordWrapOverride1=this._options.diffWordWrap.get()):(i.wordWrapOverride1="off",i.wordWrapOverride2="off",i.stickyScroll={enabled:!1},i.unicodeHighlight={nonBasicASCII:!1,ambiguousCharacters:!1,invisibleCharacters:!1}),i.glyphMargin=this._options.renderSideBySide.get(),t.originalAriaLabel&&(i.ariaLabel=t.originalAriaLabel),i.ariaLabel=this._updateAriaLabel(i.ariaLabel),i.readOnly=!this._options.originalEditable.get(),i.dropIntoEditor={enabled:!i.readOnly},i.extraEditorClassName="original-in-monaco-diff-editor",i}_adjustOptionsForRightHandSide(e,t){const i=this._adjustOptionsForSubEditor(t);return t.modifiedAriaLabel&&(i.ariaLabel=t.modifiedAriaLabel),i.ariaLabel=this._updateAriaLabel(i.ariaLabel),i.wordWrapOverride1=this._options.diffWordWrap.get(),i.revealHorizontalRightPadding=mr.revealHorizontalRightPadding.defaultValue+j0.ENTIRE_DIFF_OVERVIEW_WIDTH,i.scrollbar.verticalHasArrows=!1,i.extraEditorClassName="modified-in-monaco-diff-editor",i}_adjustOptionsForSubEditor(e){const t={...e,dimension:{height:0,width:0}};return t.inDiffEditor=!0,t.automaticLayout=!1,t.allowVariableLineHeights=!1,t.allowVariableFonts=!1,t.allowVariableFontsInAccessibilityMode=!1,t.scrollbar={...t.scrollbar||{}},t.folding=!1,t.codeLens=this._options.diffCodeLens.get(),t.fixedOverflowWidgets=!0,t.minimap={...t.minimap||{}},t.minimap.enabled=!1,this._options.hideUnchangedRegions.get()?t.stickyScroll={enabled:!1}:t.stickyScroll=this._options.editorOptions.get().stickyScroll,t}_updateAriaLabel(e){var i;e||(e="");const t=w(111," use {0} to open the accessibility help.",(i=this._keybindingService.lookupKeybinding("editor.action.accessibilityHelp"))==null?void 0:i.getAriaLabel());return this._options.accessibilityVerbose.get()?e+t:e?e.replaceAll(t,""):""}};RO=m3e([yE(5,vt),yE(6,ft),yE(7,sn)],RO);class v3e{resetSash(){this._sashRatio.set(void 0,void 0)}constructor(e,t){this._options=e,this.dimensions=t,this.sashLeft=g3(this,i=>{const n=this._sashRatio.read(i)??this._options.splitViewDefaultRatio.read(i);return this._computeSashLeft(n,i)},(i,n)=>{const r=this.dimensions.width.get();this._sashRatio.set(i/r,n)}),this._sashRatio=ze(this,void 0)}_computeSashLeft(e,t){const i=this.dimensions.width.read(t),n=Math.floor(this._options.splitViewDefaultRatio.read(t)*i),r=this._options.enableSplitViewResizing.read(t)?Math.floor(e*i):n,o=100;return i<=o*2?n:r<o?o:r>i-o?i-o:r}}class Bte extends q{constructor(e,t,i,n,r,o){super(),this._domNode=e,this._dimensions=t,this._enabled=i,this._boundarySashes=n,this.sashLeft=r,this._resetSash=o,this._sash=this._register(new jr(this._domNode,{getVerticalSashTop:a=>0,getVerticalSashLeft:a=>this.sashLeft.get(),getVerticalSashHeight:a=>this._dimensions.height.get()},{orientation:0})),this._startSashPosition=void 0,this._register(this._sash.onDidStart(()=>{this._startSashPosition=this.sashLeft.get()})),this._register(this._sash.onDidChange(a=>{this.sashLeft.set(this._startSashPosition+(a.currentX-a.startX),void 0)})),this._register(this._sash.onDidEnd(()=>this._sash.layout())),this._register(this._sash.onDidReset(()=>this._resetSash())),this._register(Qe(a=>{const l=this._boundarySashes.read(a);l&&(this._sash.orthogonalEndSash=l.bottom)})),this._register(Qe(a=>{const l=this._enabled.read(a);this._sash.state=l?3:0,this.sashLeft.read(a),this._dimensions.height.read(a),this._sash.layout()}))}}const kk=class kk extends q{constructor(){super(...arguments),this._id=++kk.idCounter,this._onDidDispose=this._register(new W),this.onDidDispose=this._onDidDispose.event}getId(){return this.getEditorType()+":v2:"+this._id}getVisibleColumnFromPosition(e){return this._targetEditor.getVisibleColumnFromPosition(e)}getPosition(){return this._targetEditor.getPosition()}setPosition(e,t="api"){this._targetEditor.setPosition(e,t)}revealLine(e,t=0){this._targetEditor.revealLine(e,t)}revealLineInCenter(e,t=0){this._targetEditor.revealLineInCenter(e,t)}revealLineInCenterIfOutsideViewport(e,t=0){this._targetEditor.revealLineInCenterIfOutsideViewport(e,t)}revealLineNearTop(e,t=0){this._targetEditor.revealLineNearTop(e,t)}revealPosition(e,t=0){this._targetEditor.revealPosition(e,t)}revealPositionInCenter(e,t=0){this._targetEditor.revealPositionInCenter(e,t)}revealPositionInCenterIfOutsideViewport(e,t=0){this._targetEditor.revealPositionInCenterIfOutsideViewport(e,t)}revealPositionNearTop(e,t=0){this._targetEditor.revealPositionNearTop(e,t)}getSelection(){return this._targetEditor.getSelection()}getSelections(){return this._targetEditor.getSelections()}setSelection(e,t="api"){this._targetEditor.setSelection(e,t)}setSelections(e,t="api"){this._targetEditor.setSelections(e,t)}revealLines(e,t,i=0){this._targetEditor.revealLines(e,t,i)}revealLinesInCenter(e,t,i=0){this._targetEditor.revealLinesInCenter(e,t,i)}revealLinesInCenterIfOutsideViewport(e,t,i=0){this._targetEditor.revealLinesInCenterIfOutsideViewport(e,t,i)}revealLinesNearTop(e,t,i=0){this._targetEditor.revealLinesNearTop(e,t,i)}revealRange(e,t=0,i=!1,n=!0){this._targetEditor.revealRange(e,t,i,n)}revealRangeInCenter(e,t=0){this._targetEditor.revealRangeInCenter(e,t)}revealRangeInCenterIfOutsideViewport(e,t=0){this._targetEditor.revealRangeInCenterIfOutsideViewport(e,t)}revealRangeNearTop(e,t=0){this._targetEditor.revealRangeNearTop(e,t)}revealRangeNearTopIfOutsideViewport(e,t=0){this._targetEditor.revealRangeNearTopIfOutsideViewport(e,t)}revealRangeAtTop(e,t=0){this._targetEditor.revealRangeAtTop(e,t)}getSupportedActions(){return this._targetEditor.getSupportedActions()}focus(){this._targetEditor.focus()}trigger(e,t,i){this._targetEditor.trigger(e,t,i)}createDecorationsCollection(e){return this._targetEditor.createDecorationsCollection(e)}changeDecorations(e){return this._targetEditor.changeDecorations(e)}};kk.idCounter=0;let PO=kk;function _3e(s,e){return Z1e(s,(t,i)=>i??e(t))}var b3e=function(s,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(s,e,t,i);else for(var a=s.length-1;a>=0;a--)(o=s[a])&&(r=(n<3?o(r):n>3?o(e,t,r):o(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},w3e=function(s,e){return function(t,i){e(t,i,s)}};let OO=class{get editorOptions(){return this._options}constructor(e,t){this._accessibilityService=t,this._diffEditorWidth=ze(this,0),this._screenReaderMode=Qt(this,this._accessibilityService.onDidChangeScreenReaderOptimized,()=>this._accessibilityService.isScreenReaderOptimized()),this.couldShowInlineViewBecauseOfSize=me(this,n=>this._options.read(n).renderSideBySide&&this._diffEditorWidth.read(n)<=this._options.read(n).renderSideBySideInlineBreakpoint),this.renderOverviewRuler=me(this,n=>this._options.read(n).renderOverviewRuler),this.renderSideBySide=me(this,n=>this.compactMode.read(n)&&this.shouldRenderInlineViewInSmartMode.read(n)?!1:this._options.read(n).renderSideBySide&&!(this._options.read(n).useInlineViewWhenSpaceIsLimited&&this.couldShowInlineViewBecauseOfSize.read(n)&&!this._screenReaderMode.read(n))),this.readOnly=me(this,n=>this._options.read(n).readOnly),this.shouldRenderOldRevertArrows=me(this,n=>!(!this._options.read(n).renderMarginRevertIcon||!this.renderSideBySide.read(n)||this.readOnly.read(n)||this.shouldRenderGutterMenu.read(n))),this.shouldRenderGutterMenu=me(this,n=>this._options.read(n).renderGutterMenu),this.renderIndicators=me(this,n=>this._options.read(n).renderIndicators),this.enableSplitViewResizing=me(this,n=>this._options.read(n).enableSplitViewResizing),this.splitViewDefaultRatio=me(this,n=>this._options.read(n).splitViewDefaultRatio),this.ignoreTrimWhitespace=me(this,n=>this._options.read(n).ignoreTrimWhitespace),this.maxComputationTimeMs=me(this,n=>this._options.read(n).maxComputationTime),this.showMoves=me(this,n=>this._options.read(n).experimental.showMoves&&this.renderSideBySide.read(n)),this.isInEmbeddedEditor=me(this,n=>this._options.read(n).isInEmbeddedEditor),this.diffWordWrap=me(this,n=>this._options.read(n).diffWordWrap),this.originalEditable=me(this,n=>this._options.read(n).originalEditable),this.diffCodeLens=me(this,n=>this._options.read(n).diffCodeLens),this.accessibilityVerbose=me(this,n=>this._options.read(n).accessibilityVerbose),this.diffAlgorithm=me(this,n=>this._options.read(n).diffAlgorithm),this.showEmptyDecorations=me(this,n=>this._options.read(n).experimental.showEmptyDecorations),this.onlyShowAccessibleDiffViewer=me(this,n=>this._options.read(n).onlyShowAccessibleDiffViewer),this.compactMode=me(this,n=>this._options.read(n).compactMode),this.trueInlineDiffRenderingEnabled=me(this,n=>this._options.read(n).experimental.useTrueInlineView),this.useTrueInlineDiffRendering=me(this,n=>!this.renderSideBySide.read(n)&&this.trueInlineDiffRenderingEnabled.read(n)),this.hideUnchangedRegions=me(this,n=>this._options.read(n).hideUnchangedRegions.enabled),this.hideUnchangedRegionsRevealLineCount=me(this,n=>this._options.read(n).hideUnchangedRegions.revealLineCount),this.hideUnchangedRegionsContextLineCount=me(this,n=>this._options.read(n).hideUnchangedRegions.contextLineCount),this.hideUnchangedRegionsMinimumLineCount=me(this,n=>this._options.read(n).hideUnchangedRegions.minimumLineCount),this._model=ze(this,void 0),this.shouldRenderInlineViewInSmartMode=this._model.map(this,n=>_3e(this,r=>{const o=n==null?void 0:n.diff.read(r);return o?y3e(o,this.trueInlineDiffRenderingEnabled.read(r)):void 0})).flatten().map(this,n=>!!n),this.inlineViewHideOriginalLineNumbers=this.compactMode;const i={...e,...YU(e,an)};this._options=ze(this,i)}updateOptions(e){const t=YU(e,this._options.get()),i={...this._options.get(),...e,...t};this._options.set(i,void 0,{changedOptions:e})}setWidth(e){this._diffEditorWidth.set(e,void 0)}setModel(e){this._model.set(e,void 0)}};OO=b3e([w3e(1,Pr)],OO);function y3e(s,e){return s.mappings.every(t=>C3e(t.lineRangeMapping)||S3e(t.lineRangeMapping)||e&&m7(t.lineRangeMapping))}function C3e(s){return s.original.length===0}function S3e(s){return s.modified.length===0}function YU(s,e){var t,i,n,r,o,a,l,h;return{enableSplitViewResizing:ae(s.enableSplitViewResizing,e.enableSplitViewResizing),splitViewDefaultRatio:Eve(s.splitViewDefaultRatio,.5,.1,.9),renderSideBySide:ae(s.renderSideBySide,e.renderSideBySide),renderMarginRevertIcon:ae(s.renderMarginRevertIcon,e.renderMarginRevertIcon),maxComputationTime:ph(s.maxComputationTime,e.maxComputationTime,0,1073741824),maxFileSize:ph(s.maxFileSize,e.maxFileSize,0,1073741824),ignoreTrimWhitespace:ae(s.ignoreTrimWhitespace,e.ignoreTrimWhitespace),renderIndicators:ae(s.renderIndicators,e.renderIndicators),originalEditable:ae(s.originalEditable,e.originalEditable),diffCodeLens:ae(s.diffCodeLens,e.diffCodeLens),renderOverviewRuler:ae(s.renderOverviewRuler,e.renderOverviewRuler),diffWordWrap:Ft(s.diffWordWrap,e.diffWordWrap,["off","on","inherit"]),diffAlgorithm:Ft(s.diffAlgorithm,e.diffAlgorithm,["legacy","advanced"],{smart:"legacy",experimental:"advanced"}),accessibilityVerbose:ae(s.accessibilityVerbose,e.accessibilityVerbose),experimental:{showMoves:ae((t=s.experimental)==null?void 0:t.showMoves,e.experimental.showMoves),showEmptyDecorations:ae((i=s.experimental)==null?void 0:i.showEmptyDecorations,e.experimental.showEmptyDecorations),useTrueInlineView:ae((n=s.experimental)==null?void 0:n.useTrueInlineView,e.experimental.useTrueInlineView)},hideUnchangedRegions:{enabled:ae(((r=s.hideUnchangedRegions)==null?void 0:r.enabled)??((o=s.experimental)==null?void 0:o.collapseUnchangedRegions),e.hideUnchangedRegions.enabled),contextLineCount:ph((a=s.hideUnchangedRegions)==null?void 0:a.contextLineCount,e.hideUnchangedRegions.contextLineCount,0,1073741824),minimumLineCount:ph((l=s.hideUnchangedRegions)==null?void 0:l.minimumLineCount,e.hideUnchangedRegions.minimumLineCount,0,1073741824),revealLineCount:ph((h=s.hideUnchangedRegions)==null?void 0:h.revealLineCount,e.hideUnchangedRegions.revealLineCount,0,1073741824)},isInEmbeddedEditor:ae(s.isInEmbeddedEditor,e.isInEmbeddedEditor),onlyShowAccessibleDiffViewer:ae(s.onlyShowAccessibleDiffViewer,e.onlyShowAccessibleDiffViewer),renderSideBySideInlineBreakpoint:ph(s.renderSideBySideInlineBreakpoint,e.renderSideBySideInlineBreakpoint,0,1073741824),useInlineViewWhenSpaceIsLimited:ae(s.useInlineViewWhenSpaceIsLimited,e.useInlineViewWhenSpaceIsLimited),renderGutterMenu:ae(s.renderGutterMenu,e.renderGutterMenu),compactMode:ae(s.compactMode,e.compactMode)}}const XU=24;class x3e extends q{get onDidChangeDropdownVisibility(){return this._onDidChangeDropdownVisibility.event}constructor(e,t,i={orientation:0}){if(super(),this.submenuActionViewItems=[],this.hasSecondaryActions=!1,this._onDidChangeDropdownVisibility=this._register(new Cve),this.originalPrimaryActions=[],this.originalSecondaryActions=[],this.hiddenActions=[],this.disposables=this._register(new he),i.hoverDelegate=i.hoverDelegate??this._register(Aee()),this.options=i,this.toggleMenuAction=this._register(new U0(()=>{var n;return(n=this.toggleMenuActionViewItem)==null?void 0:n.show()},i.toggleMenuTitle)),this.element=document.createElement("div"),this.element.className="monaco-toolbar",e.appendChild(this.element),this.actionBar=this._register(new pl(this.element,{orientation:i.orientation,ariaLabel:i.ariaLabel,actionRunner:i.actionRunner,allowContextMenu:i.allowContextMenu,highlightToggledItems:i.highlightToggledItems,hoverDelegate:i.hoverDelegate,actionViewItemProvider:(n,r)=>{if(n.id===U0.ID)return this.toggleMenuActionViewItem=new hL(n,{getActions:()=>this.toggleMenuAction.menuActions},t,{actionViewItemProvider:this.options.actionViewItemProvider,actionRunner:this.actionRunner,keybindingProvider:this.options.getKeyBinding,classNames:Je.asClassNameArray(i.moreIcon??re.toolBarMore),anchorAlignmentProvider:this.options.anchorAlignmentProvider,menuAsChild:!!this.options.renderDropdownAsChildElement,skipTelemetry:this.options.skipTelemetry,isMenu:!0,hoverDelegate:this.options.hoverDelegate}),this.toggleMenuActionViewItem.setActionContext(this.actionBar.context),this.disposables.add(this._onDidChangeDropdownVisibility.add(this.toggleMenuActionViewItem.onDidChangeVisibility)),this.toggleMenuActionViewItem;if(i.actionViewItemProvider){const o=i.actionViewItemProvider(n,r);if(o)return o}if(n instanceof TD){const o=new hL(n,n.actions,t,{actionViewItemProvider:this.options.actionViewItemProvider,actionRunner:this.actionRunner,keybindingProvider:this.options.getKeyBinding,classNames:n.class,anchorAlignmentProvider:this.options.anchorAlignmentProvider,menuAsChild:!!this.options.renderDropdownAsChildElement,skipTelemetry:this.options.skipTelemetry,hoverDelegate:this.options.hoverDelegate});return o.setActionContext(this.actionBar.context),this.submenuActionViewItems.push(o),this.disposables.add(this._onDidChangeDropdownVisibility.add(o.onDidChangeVisibility)),o}}})),this.options.responsive){this.element.classList.add("responsive");const n=new ResizeObserver(()=>{this.setToolbarMaxWidth(this.element.getBoundingClientRect().width)});n.observe(this.element),this._store.add(Se(()=>n.disconnect()))}}set actionRunner(e){this.actionBar.actionRunner=e}get actionRunner(){return this.actionBar.actionRunner}set context(e){var t;this.actionBar.context=e,(t=this.toggleMenuActionViewItem)==null||t.setActionContext(e);for(const i of this.submenuActionViewItems)i.setActionContext(e)}getElement(){return this.element}getItemAction(e){return this.actionBar.getAction(e)}getItemWidth(e){return this.actionBar.getWidth(e)}setActions(e,t){this.clear(),this.originalPrimaryActions=e?e.slice(0):[],this.originalSecondaryActions=t?t.slice(0):[];const i=e?e.slice(0):[];this.hasSecondaryActions=!!(t&&t.length>0),this.hasSecondaryActions&&t&&(this.toggleMenuAction.menuActions=t.slice(0),i.push(this.toggleMenuAction)),i.length>0&&this.options.trailingSeparator&&i.push(new Ji),i.forEach(n=>{this.actionBar.push(n,{icon:this.options.icon??!0,label:this.options.label??!1,keybinding:this.getKeybindingLabel(n)})}),this.options.responsive&&(this.hiddenActions.length=0,this.setToolbarMaxWidth(this.element.getBoundingClientRect().width))}getKeybindingLabel(e){var i,n;const t=(n=(i=this.options).getKeyBinding)==null?void 0:n.call(i,e);return(t==null?void 0:t.getLabel())??void 0}getItemsWidthResponsive(){return this.actionBar.length()*XU}setToolbarMaxWidth(e){if(this.actionBar.isEmpty()||this.getItemsWidthResponsive()<=e&&this.hiddenActions.length===0)return;if(this.getItemsWidthResponsive()>e)for(;this.getItemsWidthResponsive()>e&&this.actionBar.length()>0;){const i=this.originalPrimaryActions.length-this.hiddenActions.length-1;if(i<0)break;const n=Math.min(XU,this.getItemWidth(i)),r=this.originalPrimaryActions[i];this.hiddenActions.unshift({action:r,size:n}),this.actionBar.pull(i),this.originalSecondaryActions.length===0&&this.hiddenActions.length===1&&this.actionBar.push(this.toggleMenuAction,{icon:this.options.icon??!0,label:this.options.label??!1,keybinding:this.getKeybindingLabel(this.toggleMenuAction)})}else for(;this.hiddenActions.length>0;){const i=this.hiddenActions.shift();if(this.getItemsWidthResponsive()+i.size>e){this.hiddenActions.unshift(i);break}this.actionBar.push(i.action,{icon:this.options.icon??!0,label:this.options.label??!1,keybinding:this.getKeybindingLabel(i.action),index:this.originalPrimaryActions.length-this.hiddenActions.length-1}),this.originalSecondaryActions.length===0&&this.hiddenActions.length===1&&(this.toggleMenuAction.menuActions=[],this.actionBar.pull(this.actionBar.length()-1))}const t=this.hiddenActions.map(i=>i.action);if(this.originalSecondaryActions.length>0||t.length>0){const i=this.originalSecondaryActions.slice(0);this.toggleMenuAction.menuActions=Ji.join(t,i)}}clear(){this.submenuActionViewItems=[],this.disposables.clear(),this.actionBar.clear()}dispose(){this.clear(),this.disposables.dispose(),super.dispose()}}const Dk=class Dk extends eu{constructor(e,t){t=t||w(17,"More Actions..."),super(Dk.ID,t,void 0,!0),this._menuActions=[],this.toggleDropdownMenu=e}async run(){this.toggleDropdownMenu()}get menuActions(){return this._menuActions}set menuActions(e){this._menuActions=e}};Dk.ID="toolbar.toggle.more";let U0=Dk;const Vte=Ge("IActionViewItemService");class L3e{constructor(){this._providers=new Map,this._onDidChange=new W,this.onDidChange=this._onDidChange.event}dispose(){this._onDidChange.dispose()}lookUp(e,t){return this._providers.get(this._makeKey(e,t))}_makeKey(e,t){return`${e.id}/${t instanceof Ni?t.id:t}`}}et(Vte,L3e,1);var Wte=function(s,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(s,e,t,i);else for(var a=s.length-1;a>=0;a--)(o=s[a])&&(r=(n<3?o(r):n>3?o(e,t,r):o(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},pr=function(s,e){return function(t,i){e(t,i,s)}};let FO=class extends x3e{constructor(e,t,i,n,r,o,a,l){super(e,r,{getKeyBinding:c=>o.lookupKeybinding(c.id)??void 0,...t,allowContextMenu:!0,skipTelemetry:typeof(t==null?void 0:t.telemetrySource)=="string"}),this._options=t,this._menuService=i,this._contextKeyService=n,this._contextMenuService=r,this._keybindingService=o,this._commandService=a,this._sessionDisposables=this._store.add(new he);const h=t==null?void 0:t.telemetrySource;h&&this._store.add(this.actionBar.onDidRun(c=>l.publicLog2("workbenchActionExecuted",{id:c.action.id,from:h})))}setActions(e,t=[],i){var c,u,d;this._sessionDisposables.clear();const n=e.slice(),r=t.slice(),o=[];let a=0;const l=[];let h=!1;if(((c=this._options)==null?void 0:c.hiddenItemStrategy)!==-1)for(let f=0;f<n.length;f++){const g=n[f];!(g instanceof Vh)&&!(g instanceof mm)||g.hideActions&&(o.push(g.hideActions.toggle),g.hideActions.toggle.checked&&a++,g.hideActions.isHidden&&(h=!0,n[f]=void 0,((u=this._options)==null?void 0:u.hiddenItemStrategy)!==0&&(l[f]=g)))}if(((d=this._options)==null?void 0:d.overflowBehavior)!==void 0){const f=IJ(new Set(this._options.overflowBehavior.exempted),lt.map(n,m=>m==null?void 0:m.id)),g=this._options.overflowBehavior.maxItems-f.size;let p=0;for(let m=0;m<n.length;m++){const v=n[m];v&&(p++,!f.has(v.id)&&p>=g&&(n[m]=void 0,l[m]=v))}}fV(n),fV(l),super.setActions(n,Ji.join(l,r)),(o.length>0||n.length>0)&&this._sessionDisposables.add(j(this.getElement(),"contextmenu",f=>{var _,b,y,C,x;const g=new kr(be(this.getElement()),f),p=this.getItemAction(g.target);if(!p)return;g.preventDefault(),g.stopPropagation();const m=[];if(p instanceof Vh&&p.menuKeybinding)m.push(p.menuKeybinding);else if(!(p instanceof mm||p instanceof U0)){const S=!!this._keybindingService.lookupKeybinding(p.id);m.push(Nte(this._commandService,this._keybindingService,p.id,void 0,S))}if(o.length>0){let S=!1;if(a===1&&((_=this._options)==null?void 0:_.hiddenItemStrategy)===0){S=!0;for(let k=0;k<o.length;k++)if(o[k].checked){o[k]=_f({id:p.id,label:p.label,checked:!0,enabled:!1,run(){}});break}}if(!S&&(p instanceof Vh||p instanceof mm)){if(!p.hideActions)return;m.push(p.hideActions.hide)}else m.push(_f({id:"label",label:w(1649,"Hide"),enabled:!1,run(){}}))}const v=Ji.join(m,o);(b=this._options)!=null&&b.resetMenu&&!i&&(i=[this._options.resetMenu]),h&&i&&(v.push(new Ji),v.push(_f({id:"resetThisMenu",label:w(1650,"Reset Menu"),run:()=>this._menuService.resetHiddenStates(i)}))),v.length!==0&&this._contextMenuService.showContextMenu({getAnchor:()=>g,getActions:()=>v,menuId:(y=this._options)==null?void 0:y.contextMenu,menuActionOptions:{renderShortTitle:!0,...(C=this._options)==null?void 0:C.menuOptions},skipTelemetry:typeof((x=this._options)==null?void 0:x.telemetrySource)=="string",contextKeyService:this._contextKeyService})}))}};FO=Wte([pr(2,Sg),pr(3,vt),pr(4,Jh),pr(5,sn),pr(6,Rr),pr(7,Xh)],FO);let ML=class extends FO{get onDidChangeMenuItems(){return this._onDidChangeMenuItems.event}constructor(e,t,i,n,r,o,a,l,h,c,u){super(e,{resetMenu:t,...i,actionViewItemProvider:(g,p)=>{let m=c.lookUp(t,g instanceof mm?g.item.submenu.id:g.id);m||(m=i==null?void 0:i.actionViewItemProvider);const v=m==null?void 0:m(g,p,u,be(e).vscodeWindowId);return v||$ee(u,g,p)}},n,r,o,a,l,h),this._onDidChangeMenuItems=this._store.add(new W);const d=this._store.add(n.createMenu(t,r,{emitEventsForSubmenuChanges:!0,eventDebounceDelay:i==null?void 0:i.eventDebounceDelay})),f=()=>{var m,v,_;const{primary:g,secondary:p}=oPe(d.getActions(i==null?void 0:i.menuOptions),(m=i==null?void 0:i.toolbarOptions)==null?void 0:m.primaryGroup,(v=i==null?void 0:i.toolbarOptions)==null?void 0:v.shouldInlineSubmenu,(_=i==null?void 0:i.toolbarOptions)==null?void 0:_.useSeparatorsInPrimaryActions);e.classList.toggle("has-no-actions",g.length===0&&p.length===0),super.setActions(g,p)};this._store.add(d.onDidChange(()=>{f(),this._onDidChangeMenuItems.fire(this)})),this._store.add(c.onDidChange(g=>{g===t&&f()})),f()}setActions(){throw new Ce("This toolbar is populated from a menu.")}};ML=Wte([pr(3,Sg),pr(4,vt),pr(5,Jh),pr(6,sn),pr(7,Rr),pr(8,Xh),pr(9,Vte),pr(10,ft)],ML);class ZU extends M3{constructor(e){super(),this._textModel=e}getValueOfRange(e){return this._textModel.getValueInRange(e)}getLineLength(e){return this._textModel.getLineLength(e)}get length(){const e=this._textModel.getLineCount(),t=this._textModel.getLineLength(e);return new Qs(e-1,t)}}class Hte extends ig{constructor(e){super(),this._getContext=e}runAction(e,t){const i=this._getContext();return super.runAction(e,i)}}class k3e extends q{constructor(e,t,i){super(),this._editor=e,this._domNode=t,this.itemProvider=i,this.scrollTop=Qt(this,this._editor.onDidScrollChange,o=>this._editor.getScrollTop()),this.isScrollTopZero=this.scrollTop.map(o=>o===0),this.modelAttached=Qt(this,this._editor.onDidChangeModel,o=>this._editor.hasModel()),this.editorOnDidChangeViewZones=Do("onDidChangeViewZones",this._editor.onDidChangeViewZones),this.editorOnDidContentSizeChange=Do("onDidContentSizeChange",this._editor.onDidContentSizeChange),this.domNodeSizeChanged=C0("domNodeSizeChanged"),this.views=new Map,this._domNode.className="gutter monaco-editor";const n=this._domNode.appendChild(ot("div.scroll-decoration",{role:"presentation",ariaHidden:"true",style:{width:"100%"}}).root),r=new ResizeObserver(()=>{vi(o=>{this.domNodeSizeChanged.trigger(o)})});r.observe(this._domNode),this._register(Se(()=>r.disconnect())),this._register(Qe(o=>{n.className=this.isScrollTopZero.read(o)?"":"scroll-decoration"})),this._register(Qe(o=>this.render(o)))}dispose(){super.dispose(),xn(this._domNode)}render(e){if(!this.modelAttached.read(e))return;this.domNodeSizeChanged.read(e),this.editorOnDidChangeViewZones.read(e),this.editorOnDidContentSizeChange.read(e);const t=this.scrollTop.read(e),i=this._editor.getVisibleRanges(),n=new Set(this.views.keys()),r=_e.ofStartAndLength(0,this._domNode.clientHeight);if(!r.isEmpty)for(const o of i){const a=new Ee(o.startLineNumber,o.endLineNumber+1),l=this.itemProvider.getIntersectingGutterItems(a,e);vi(h=>{for(const c of l){if(!c.range.intersect(a))continue;n.delete(c.id);let u=this.views.get(c.id);if(u)u.item.set(c,h);else{const p=document.createElement("div");this._domNode.appendChild(p);const m=ze("item",c),v=this.itemProvider.createView(m,p);u=new D3e(m,v,p),this.views.set(c.id,u)}const d=c.range.startLineNumber<=this._editor.getModel().getLineCount()?this._editor.getTopForLineNumber(c.range.startLineNumber,!0)-t:c.range.startLineNumber>1?this._editor.getBottomForLineNumber(c.range.startLineNumber-1,!1)-t:0,g=(c.range.endLineNumberExclusive===1?Math.max(d,this._editor.getTopForLineNumber(c.range.startLineNumber,!1)-t):Math.max(d,this._editor.getBottomForLineNumber(c.range.endLineNumberExclusive-1,!0)-t))-d;u.domNode.style.top=`${d}px`,u.domNode.style.height=`${g}px`,u.gutterItemView.layout(_e.ofStartAndLength(d,g),r)}})}for(const o of n){const a=this.views.get(o);a.gutterItemView.dispose(),a.domNode.remove(),this.views.delete(o)}}}class D3e{constructor(e,t,i){this.item=e,this.gutterItemView=t,this.domNode=i}}var zte=function(s,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(s,e,t,i);else for(var a=s.length-1;a>=0;a--)(o=s[a])&&(r=(n<3?o(r):n>3?o(e,t,r):o(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},hS=function(s,e){return function(t,i){e(t,i,s)}};const CE=[],bC=35;let BO=class extends q{constructor(e,t,i,n,r,o,a,l,h){super(),this._diffModel=t,this._editors=i,this._options=n,this._sashLayout=r,this._boundarySashes=o,this._instantiationService=a,this._contextKeyService=l,this._menuService=h,this._menu=this._register(this._menuService.createMenu(Ni.DiffEditorHunkToolbar,this._contextKeyService)),this._actions=Qt(this,this._menu.onDidChange,()=>this._menu.getActions()),this._hasActions=this._actions.map(u=>u.length>0),this._showSash=me(this,u=>this._options.renderSideBySide.read(u)&&this._hasActions.read(u)),this.width=me(this,u=>this._hasActions.read(u)?bC:0),this.elements=ot("div.gutter@gutter",{style:{position:"absolute",height:"100%",width:bC+"px"}},[]),this._currentDiff=me(this,u=>{var p;const d=this._diffModel.read(u);if(!d)return;const f=(p=d.diff.read(u))==null?void 0:p.mappings,g=this._editors.modifiedCursor.read(u);if(g)return f==null?void 0:f.find(m=>m.lineRangeMapping.modified.contains(g.lineNumber))}),this._selectedDiffs=me(this,u=>{const d=this._diffModel.read(u),f=d==null?void 0:d.diff.read(u);if(!f)return CE;const g=this._editors.modifiedSelections.read(u);if(g.every(_=>_.isEmpty()))return CE;const p=new Yr(g.map(_=>Ee.fromRangeInclusive(_))),v=f.mappings.filter(_=>_.lineRangeMapping.innerChanges&&p.intersects(_.lineRangeMapping.modified)).map(_=>({mapping:_,rangeMappings:_.lineRangeMapping.innerChanges.filter(b=>g.some(y=>F.areIntersecting(b.modifiedRange,y)))}));return v.length===0||v.every(_=>_.rangeMappings.length===0)?CE:v}),this._register(P4e(e,this.elements.root)),this._register(j(this.elements.root,"click",()=>{this._editors.modified.focus()})),this._register(_u(this.elements.root,{display:this._hasActions.map(u=>u?"block":"none")})),ja(this,u=>this._showSash.read(u)?new Bte(e,this._sashLayout.dimensions,this._options.enableSplitViewResizing,this._boundarySashes,g3(this,f=>this._sashLayout.sashLeft.read(f)-bC,(f,g)=>this._sashLayout.sashLeft.set(f+bC,g)),()=>this._sashLayout.resetSash()):void 0).recomputeInitiallyAndOnChange(this._store);const c=me(this,u=>{const d=this._diffModel.read(u);if(!d)return[];const f=d.diff.read(u);if(!f)return[];const g=this._selectedDiffs.read(u);if(g.length>0){const m=Er.fromRangeMappings(g.flatMap(v=>v.rangeMappings));return[new QU(m,!0,Ni.DiffEditorSelectionToolbar,void 0,d.model.original.uri,d.model.modified.uri)]}const p=this._currentDiff.read(u);return f.mappings.map(m=>new QU(m.lineRangeMapping.withInnerChangesFromLineRanges(),m.lineRangeMapping===(p==null?void 0:p.lineRangeMapping),Ni.DiffEditorHunkToolbar,void 0,d.model.original.uri,d.model.modified.uri))});this._register(new k3e(this._editors.modified,this.elements.root,{getIntersectingGutterItems:(u,d)=>c.read(d),createView:(u,d)=>this._instantiationService.createInstance(VO,u,d,this)})),this._register(j(this.elements.gutter,te.MOUSE_WHEEL,u=>{this._editors.modified.getOption(117).handleMouseWheel&&this._editors.modified.delegateScrollFromMouseWheelEvent(u)},{passive:!1}))}computeStagedValue(e){const t=e.innerChanges??[],i=new ZU(this._editors.modifiedModel.get()),n=new ZU(this._editors.original.getModel());return new n0(t.map(a=>a.toTextEdit(i))).apply(n)}layout(e){this.elements.gutter.style.left=e+"px"}};BO=zte([hS(6,ft),hS(7,vt),hS(8,Sg)],BO);class QU{constructor(e,t,i,n,r,o){this.mapping=e,this.showAlways=t,this.menuId=i,this.rangeOverride=n,this.originalUri=r,this.modifiedUri=o}get id(){return this.mapping.modified.toString()}get range(){return this.rangeOverride??this.mapping.modified}}let VO=class extends q{constructor(e,t,i,n){super(),this._item=e,this._elements=ot("div.gutterItem",{style:{height:"20px",width:"34px"}},[ot("div.background@background",{},[]),ot("div.buttons@buttons",{},[])]),this._showAlways=this._item.map(this,o=>o.showAlways),this._menuId=this._item.map(this,o=>o.menuId),this._isSmall=ze(this,!1),this._lastItemRange=void 0,this._lastViewRange=void 0;const r=this._register(n.createInstance(L0,"element",{instantHover:!0},{position:{hoverPosition:1}}));this._register(J_(t,this._elements.root)),this._register(Qe(o=>{const a=this._showAlways.read(o);this._elements.root.classList.toggle("noTransition",!0),this._elements.root.classList.toggle("showAlways",a),setTimeout(()=>{this._elements.root.classList.toggle("noTransition",!1)},0)})),this._register(fa((o,a)=>{this._elements.buttons.replaceChildren();const l=a.add(n.createInstance(ML,this._elements.buttons,this._menuId.read(o),{orientation:1,hoverDelegate:r,toolbarOptions:{primaryGroup:h=>h.startsWith("primary")},overflowBehavior:{maxItems:this._isSmall.read(o)?1:3},hiddenItemStrategy:0,actionRunner:a.add(new Hte(()=>{const h=this._item.read(void 0),c=h.mapping;return{mapping:c,originalWithModifiedChanges:i.computeStagedValue(c),originalUri:h.originalUri,modifiedUri:h.modifiedUri}})),menuOptions:{shouldForwardArgs:!0}}));a.add(l.onDidChangeMenuItems(()=>{this._lastItemRange&&this.layout(this._lastItemRange,this._lastViewRange)}))}))}layout(e,t){this._lastItemRange=e,this._lastViewRange=t;let i=this._elements.buttons.clientHeight;this._isSmall.set(this._item.get().mapping.original.startLineNumber===1&&e.length<30,void 0),i=this._elements.buttons.clientHeight;const n=e.length/2-i/2,r=i;let o=e.start+n;const a=_e.tryCreate(r,t.endExclusive-r-i),l=_e.tryCreate(e.start+r,e.endExclusive-i-r);l&&a&&l.start<l.endExclusive&&(o=a.clip(o),o=l.clip(o)),this._elements.buttons.style.top=`${o-e.start}px`}};VO=zte([hS(3,ft)],VO);var T3e=function(s,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(s,e,t,i);else for(var a=s.length-1;a>=0;a--)(o=s[a])&&(r=(n<3?o(r):n>3?o(e,t,r):o(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},I3e=function(s,e){return function(t,i){e(t,i,s)}},WO,ru;let HO=(ru=class extends q{static setBreadcrumbsSourceFactory(e){this._breadcrumbsSourceFactory.set(e,void 0)}get isUpdatingHiddenAreas(){return this._isUpdatingHiddenAreas}constructor(e,t,i,n){super(),this._editors=e,this._diffModel=t,this._options=i,this._instantiationService=n,this._modifiedOutlineSource=ja(this,l=>{const h=this._editors.modifiedModel.read(l),c=WO._breadcrumbsSourceFactory.read(l);return!h||!c?void 0:c(h,this._instantiationService)}),this._isUpdatingHiddenAreas=!1,this._register(this._editors.original.onDidChangeCursorPosition(l=>{if(l.reason===1)return;const h=this._diffModel.get();vi(c=>{for(const u of this._editors.original.getSelections()||[])h==null||h.ensureOriginalLineIsVisible(u.getStartPosition().lineNumber,0,c),h==null||h.ensureOriginalLineIsVisible(u.getEndPosition().lineNumber,0,c)})})),this._register(this._editors.modified.onDidChangeCursorPosition(l=>{if(l.reason===1)return;const h=this._diffModel.get();vi(c=>{for(const u of this._editors.modified.getSelections()||[])h==null||h.ensureModifiedLineIsVisible(u.getStartPosition().lineNumber,0,c),h==null||h.ensureModifiedLineIsVisible(u.getEndPosition().lineNumber,0,c)})}));const r=this._diffModel.map((l,h)=>{var u;const c=(l==null?void 0:l.unchangedRegions.read(h))??[];return c.length===1&&c[0].modifiedLineNumber===1&&c[0].lineCount===((u=this._editors.modifiedModel.read(h))==null?void 0:u.getLineCount())?[]:c});this.viewZones=me(this,l=>{const h=this._modifiedOutlineSource.read(l);if(!h)return{origViewZones:[],modViewZones:[]};const c=[],u=[],d=this._options.renderSideBySide.read(l),f=this._options.compactMode.read(l),g=r.read(l);for(let p=0;p<g.length;p++){const m=g[p];if(!m.shouldHideControls(l)&&!(f&&(p===0||p===g.length-1)))if(f){{const v=me(this,b=>m.getHiddenOriginalRange(b).startLineNumber-1),_=new Kp(v,12);c.push(_),l.store.add(new JU(this._editors.original,_,m,!d))}{const v=me(this,b=>m.getHiddenModifiedRange(b).startLineNumber-1),_=new Kp(v,12);u.push(_),l.store.add(new JU(this._editors.modified,_,m))}}else{{const v=me(this,b=>m.getHiddenOriginalRange(b).startLineNumber-1),_=new Kp(v,24);c.push(_),l.store.add(new e$(this._editors.original,_,m,m.originalUnchangedRange,!d,h,b=>this._diffModel.get().ensureModifiedLineIsVisible(b,2,void 0),this._options))}{const v=me(this,b=>m.getHiddenModifiedRange(b).startLineNumber-1),_=new Kp(v,24);u.push(_),l.store.add(new e$(this._editors.modified,_,m,m.modifiedUnchangedRange,!1,h,b=>this._diffModel.get().ensureModifiedLineIsVisible(b,2,void 0),this._options))}}}return{origViewZones:c,modViewZones:u}});const o={description:"unchanged lines",className:"diff-unchanged-lines",isWholeLine:!0},a={description:"Fold Unchanged",glyphMarginHoverMessage:new nee(void 0,{isTrusted:!0,supportThemeIcons:!0}).appendMarkdown(w(124,"Fold Unchanged Region")),glyphMarginClassName:"fold-unchanged "+Je.asClassName(re.fold),zIndex:10001};this._register(IL(this._editors.original,me(this,l=>{const h=r.read(l),c=h.map(u=>({range:u.originalUnchangedRange.toInclusiveRange(),options:o}));for(const u of h)u.shouldHideControls(l)&&c.push({range:F.fromPositions(new H(u.originalLineNumber,1)),options:a});return c}))),this._register(IL(this._editors.modified,me(this,l=>{const h=r.read(l),c=h.map(u=>({range:u.modifiedUnchangedRange.toInclusiveRange(),options:o}));for(const u of h)u.shouldHideControls(l)&&c.push({range:Ee.ofLength(u.modifiedLineNumber,1).toInclusiveRange(),options:a});return c}))),this._register(Qe(l=>{const h=r.read(l);this._isUpdatingHiddenAreas=!0;try{this._editors.original.setHiddenAreas(h.map(c=>c.getHiddenOriginalRange(l).toInclusiveRange()).filter(qr)),this._editors.modified.setHiddenAreas(h.map(c=>c.getHiddenModifiedRange(l).toInclusiveRange()).filter(qr))}finally{this._isUpdatingHiddenAreas=!1}})),this._register(this._editors.modified.onMouseUp(l=>{var h;if(!l.event.rightButton&&l.target.position&&((h=l.target.element)!=null&&h.className.includes("fold-unchanged"))){const c=l.target.position.lineNumber,u=this._diffModel.get();if(!u)return;const d=u.unchangedRegions.get().find(f=>f.modifiedUnchangedRange.contains(c));if(!d)return;d.collapseAll(void 0),l.event.stopPropagation(),l.event.preventDefault()}})),this._register(this._editors.original.onMouseUp(l=>{var h;if(!l.event.rightButton&&l.target.position&&((h=l.target.element)!=null&&h.className.includes("fold-unchanged"))){const c=l.target.position.lineNumber,u=this._diffModel.get();if(!u)return;const d=u.unchangedRegions.get().find(f=>f.originalUnchangedRange.contains(c));if(!d)return;d.collapseAll(void 0),l.event.stopPropagation(),l.event.preventDefault()}}))}},WO=ru,ru._breadcrumbsSourceFactory=ze(ru,()=>({dispose(){},getBreadcrumbItems(e,t){return[]}})),ru);HO=WO=T3e([I3e(3,ft)],HO);class JU extends d7{constructor(e,t,i,n=!1){const r=ot("div.diff-hidden-lines-widget");super(e,t,r.root),this._unchangedRegion=i,this._hide=n,this._nodes=ot("div.diff-hidden-lines-compact",[ot("div.line-left",[]),ot("div.text@text",[]),ot("div.line-right",[])]),r.root.appendChild(this._nodes.root),this._hide&&this._nodes.root.replaceChildren(),this._register(Qe(o=>{if(!this._hide){const a=this._unchangedRegion.getHiddenModifiedRange(o).length,l=w(125,"{0} hidden lines",a);this._nodes.text.innerText=l}}))}}class e$ extends d7{constructor(e,t,i,n,r,o,a,l){const h=ot("div.diff-hidden-lines-widget");super(e,t,h.root),this._editor=e,this._unchangedRegion=i,this._unchangedRegionRange=n,this._hide=r,this._modifiedOutlineSource=o,this._revealModifiedHiddenLine=a,this._options=l,this._nodes=ot("div.diff-hidden-lines",[ot("div.top@top",{title:w(126,"Click or drag to show more above")}),ot("div.center@content",{style:{display:"flex"}},[ot("div@first",{style:{display:"flex",justifyContent:"center",alignItems:"center",flexShrink:"0"}},[Le("a",{title:w(127,"Show Unchanged Region"),role:"button",onclick:()=>{this._unchangedRegion.showAll(void 0)}},...kf("$(unfold)"))]),ot("div@others",{style:{display:"flex",justifyContent:"center",alignItems:"center"}})]),ot("div.bottom@bottom",{title:w(128,"Click or drag to show more below"),role:"button"})]),h.root.appendChild(this._nodes.root),this._hide?xn(this._nodes.first):this._register(_u(this._nodes.first,{width:hf(this._editor).layoutInfoContentLeft})),this._register(Qe(u=>{const d=this._unchangedRegion.visibleLineCountTop.read(u)+this._unchangedRegion.visibleLineCountBottom.read(u)===this._unchangedRegion.lineCount;this._nodes.bottom.classList.toggle("canMoveTop",!d),this._nodes.bottom.classList.toggle("canMoveBottom",this._unchangedRegion.visibleLineCountBottom.read(u)>0),this._nodes.top.classList.toggle("canMoveTop",this._unchangedRegion.visibleLineCountTop.read(u)>0),this._nodes.top.classList.toggle("canMoveBottom",!d);const f=this._unchangedRegion.isDragged.read(u),g=this._editor.getDomNode();g&&(g.classList.toggle("draggingUnchangedRegion",!!f),f==="top"?(g.classList.toggle("canMoveTop",this._unchangedRegion.visibleLineCountTop.read(u)>0),g.classList.toggle("canMoveBottom",!d)):f==="bottom"?(g.classList.toggle("canMoveTop",!d),g.classList.toggle("canMoveBottom",this._unchangedRegion.visibleLineCountBottom.read(u)>0)):(g.classList.toggle("canMoveTop",!1),g.classList.toggle("canMoveBottom",!1)))}));const c=this._editor;this._register(j(this._nodes.top,"mousedown",u=>{if(u.button!==0)return;this._nodes.top.classList.toggle("dragging",!0),this._nodes.root.classList.toggle("dragging",!0),u.preventDefault();const d=u.clientY;let f=!1;const g=this._unchangedRegion.visibleLineCountTop.get();this._unchangedRegion.isDragged.set("top",void 0);const p=be(this._nodes.top),m=j(p,"mousemove",_=>{const y=_.clientY-d;f=f||Math.abs(y)>2;const C=Math.round(y/c.getOption(75)),x=Math.max(0,Math.min(g+C,this._unchangedRegion.getMaxVisibleLineCountTop()));this._unchangedRegion.visibleLineCountTop.set(x,void 0)}),v=j(p,"mouseup",_=>{f||this._unchangedRegion.showMoreAbove(this._options.hideUnchangedRegionsRevealLineCount.get(),void 0),this._nodes.top.classList.toggle("dragging",!1),this._nodes.root.classList.toggle("dragging",!1),this._unchangedRegion.isDragged.set(void 0,void 0),m.dispose(),v.dispose()})})),this._register(j(this._nodes.bottom,"mousedown",u=>{if(u.button!==0)return;this._nodes.bottom.classList.toggle("dragging",!0),this._nodes.root.classList.toggle("dragging",!0),u.preventDefault();const d=u.clientY;let f=!1;const g=this._unchangedRegion.visibleLineCountBottom.get();this._unchangedRegion.isDragged.set("bottom",void 0);const p=be(this._nodes.bottom),m=j(p,"mousemove",_=>{const y=_.clientY-d;f=f||Math.abs(y)>2;const C=Math.round(y/c.getOption(75)),x=Math.max(0,Math.min(g-C,this._unchangedRegion.getMaxVisibleLineCountBottom())),S=this._unchangedRegionRange.endLineNumberExclusive>c.getModel().getLineCount()?c.getContentHeight():c.getTopForLineNumber(this._unchangedRegionRange.endLineNumberExclusive);this._unchangedRegion.visibleLineCountBottom.set(x,void 0);const k=this._unchangedRegionRange.endLineNumberExclusive>c.getModel().getLineCount()?c.getContentHeight():c.getTopForLineNumber(this._unchangedRegionRange.endLineNumberExclusive);c.setScrollTop(c.getScrollTop()+(k-S))}),v=j(p,"mouseup",_=>{if(this._unchangedRegion.isDragged.set(void 0,void 0),!f){const b=c.getTopForLineNumber(this._unchangedRegionRange.endLineNumberExclusive);this._unchangedRegion.showMoreBelow(this._options.hideUnchangedRegionsRevealLineCount.get(),void 0);const y=c.getTopForLineNumber(this._unchangedRegionRange.endLineNumberExclusive);c.setScrollTop(c.getScrollTop()+(y-b))}this._nodes.bottom.classList.toggle("dragging",!1),this._nodes.root.classList.toggle("dragging",!1),m.dispose(),v.dispose()})})),this._register(Qe(u=>{const d=[];if(!this._hide){const f=i.getHiddenModifiedRange(u).length,g=w(129,"{0} hidden lines",f),p=Le("span",{title:w(130,"Double click to unfold")},g);p.addEventListener("dblclick",_=>{_.button===0&&(_.preventDefault(),this._unchangedRegion.showAll(void 0))}),d.push(p);const m=this._unchangedRegion.getHiddenModifiedRange(u),v=this._modifiedOutlineSource.getBreadcrumbItems(m,u);if(v.length>0){d.push(Le("span",void 0," | "));for(let _=0;_<v.length;_++){const b=v[_],y=tM.toIcon(b.kind),C=ot("div.breadcrumb-item",{style:{display:"flex",alignItems:"center"}},[T0(y)," ",b.name,..._===v.length-1?[]:[T0(re.chevronRight)]]).root;d.push(C),C.onclick=()=>{this._revealModifiedHiddenLine(b.startLineNumber)}}}}xn(this._nodes.others,...d)}))}}const SE=[];class E3e extends q{constructor(e,t,i,n){super(),this._editors=e,this._diffModel=t,this._options=i,this._widget=n,this._selectedDiffs=me(this,r=>{const o=this._diffModel.read(r),a=o==null?void 0:o.diff.read(r);if(!a)return SE;const l=this._editors.modifiedSelections.read(r);if(l.every(d=>d.isEmpty()))return SE;const h=new Yr(l.map(d=>Ee.fromRangeInclusive(d))),u=a.mappings.filter(d=>d.lineRangeMapping.innerChanges&&h.intersects(d.lineRangeMapping.modified)).map(d=>({mapping:d,rangeMappings:d.lineRangeMapping.innerChanges.filter(f=>l.some(g=>F.areIntersecting(f.modifiedRange,g)))}));return u.length===0||u.every(d=>d.rangeMappings.length===0)?SE:u}),this._register(fa((r,o)=>{if(!this._options.shouldRenderOldRevertArrows.read(r))return;const a=this._diffModel.read(r),l=a==null?void 0:a.diff.read(r);if(!a||!l||a.movedTextToCompare.read(r))return;const h=[],c=this._selectedDiffs.read(r),u=new Set(c.map(d=>d.mapping));if(c.length>0){const d=this._editors.modifiedSelections.read(r),f=o.add(new AL(d[d.length-1].positionLineNumber,this._widget,c.flatMap(g=>g.rangeMappings),!0));this._editors.modified.addGlyphMarginWidget(f),h.push(f)}for(const d of l.mappings)if(!u.has(d)&&!d.lineRangeMapping.modified.isEmpty&&d.lineRangeMapping.innerChanges){const f=o.add(new AL(d.lineRangeMapping.modified.startLineNumber,this._widget,d.lineRangeMapping,!1));this._editors.modified.addGlyphMarginWidget(f),h.push(f)}o.add(Se(()=>{for(const d of h)this._editors.modified.removeGlyphMarginWidget(d)}))}))}}const Tk=class Tk extends q{getId(){return this._id}constructor(e,t,i,n){super(),this._lineNumber=e,this._widget=t,this._diffs=i,this._revertSelection=n,this._id=`revertButton${Tk.counter++}`,this._domNode=ot("div.revertButton",{title:this._revertSelection?w(135,"Revert Selected Changes"):w(136,"Revert Change")},[T0(re.arrowRight)]).root,this._register(j(this._domNode,te.MOUSE_DOWN,r=>{r.button!==2&&(r.stopPropagation(),r.preventDefault())})),this._register(j(this._domNode,te.MOUSE_UP,r=>{r.stopPropagation(),r.preventDefault()})),this._register(j(this._domNode,te.CLICK,r=>{this._diffs instanceof Wn?this._widget.revert(this._diffs):this._widget.revertRangeMappings(this._diffs),r.stopPropagation(),r.preventDefault()}))}getDomNode(){return this._domNode}getPosition(){return{lane:fu.Right,range:{startColumn:1,startLineNumber:this._lineNumber,endColumn:1,endLineNumber:this._lineNumber},zIndex:10001}}};Tk.counter=0;let AL=Tk;var N3e=function(s,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(s,e,t,i);else for(var a=s.length-1;a>=0;a--)(o=s[a])&&(r=(n<3?o(r):n>3?o(e,t,r):o(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},R_=function(s,e){return function(t,i){e(t,i,s)}};let RL=class extends PO{get onDidContentSizeChange(){return this._editors.onDidContentSizeChange}constructor(e,t,i,n,r,o,a,l){super(),this._domElement=e,this._parentContextKeyService=n,this._parentInstantiationService=r,this._codeEditorService=o,this._accessibilitySignalService=a,this._editorProgressService=l,this.elements=ot("div.monaco-diff-editor.side-by-side",{style:{position:"relative",height:"100%"}},[ot("div.editor.original@original",{style:{position:"absolute",height:"100%"}}),ot("div.editor.modified@modified",{style:{position:"absolute",height:"100%"}}),ot("div.accessibleDiffViewer@accessibleDiffViewer",{style:{position:"absolute",height:"100%"}})]),this._diffModelSrc=this._register(YX(this,void 0)),this._diffModel=me(this,y=>{var C;return(C=this._diffModelSrc.read(y))==null?void 0:C.object}),this.onDidChangeModel=J.fromObservableLight(this._diffModel),this._contextKeyService=this._register(this._parentContextKeyService.createScoped(this._domElement)),this._instantiationService=this._register(this._parentInstantiationService.createChild(new Nv([vt,this._contextKeyService]))),this._boundarySashes=ze(this,void 0),this._accessibleDiffViewerShouldBeVisible=ze(this,!1),this._accessibleDiffViewerVisible=me(this,y=>this._options.onlyShowAccessibleDiffViewer.read(y)?!0:this._accessibleDiffViewerShouldBeVisible.read(y)),this._movedBlocksLinesPart=ze(this,void 0),this._layoutInfo=me(this,y=>{var U,K;const C=this._rootSizeObserver.width.read(y),x=this._rootSizeObserver.height.read(y);this._rootSizeObserver.automaticLayout?this.elements.root.style.height="100%":this.elements.root.style.height=x+"px";const S=this._sash.read(y),k=this._gutter.read(y),T=(k==null?void 0:k.width.read(y))??0,I=((U=this._overviewRulerPart.read(y))==null?void 0:U.width)??0;let N,A,R,P,B;if(!!S){const X=S.sashLeft.read(y),ne=((K=this._movedBlocksLinesPart.read(y))==null?void 0:K.width.read(y))??0;N=0,A=X-T-ne,B=X-T,R=X,P=C-R-I}else{B=0;const X=this._options.inlineViewHideOriginalLineNumbers.read(y);N=T,X?A=0:A=Math.max(5,this._editors.originalObs.layoutInfoDecorationsLeft.read(y)),R=T+A,P=C-R-I}return this.elements.original.style.left=N+"px",this.elements.original.style.width=A+"px",this._editors.original.layout({width:A,height:x},!0),k==null||k.layout(B),this.elements.modified.style.left=R+"px",this.elements.modified.style.width=P+"px",this._editors.modified.layout({width:P,height:x},!0),{modifiedEditor:this._editors.modified.getLayoutInfo(),originalEditor:this._editors.original.getLayoutInfo()}}),this._diffValue=this._diffModel.map((y,C)=>y==null?void 0:y.diff.read(C)),this.onDidUpdateDiff=J.fromObservableLight(this._diffValue),this._codeEditorService.willCreateDiffEditor(),this._contextKeyService.createKey("isInDiffEditor",!0),this._domElement.appendChild(this.elements.root),this._register(Se(()=>this.elements.root.remove())),this._rootSizeObserver=this._register(new Ate(this.elements.root,t.dimension)),this._rootSizeObserver.setAutomaticLayout(t.automaticLayout??!1),this._options=this._instantiationService.createInstance(OO,t),this._register(Qe(y=>{this._options.setWidth(this._rootSizeObserver.width.read(y))})),this._contextKeyService.createKey(le.isEmbeddedDiffEditor.key,!1),this._register(Zl(le.isEmbeddedDiffEditor,this._contextKeyService,y=>this._options.isInEmbeddedEditor.read(y))),this._register(Zl(le.comparingMovedCode,this._contextKeyService,y=>{var C;return!!((C=this._diffModel.read(y))!=null&&C.movedTextToCompare.read(y))})),this._register(Zl(le.diffEditorRenderSideBySideInlineBreakpointReached,this._contextKeyService,y=>this._options.couldShowInlineViewBecauseOfSize.read(y))),this._register(Zl(le.diffEditorInlineMode,this._contextKeyService,y=>!this._options.renderSideBySide.read(y))),this._register(Zl(le.hasChanges,this._contextKeyService,y=>{var C,x;return(((x=(C=this._diffModel.read(y))==null?void 0:C.diff.read(y))==null?void 0:x.mappings.length)??0)>0})),this._editors=this._register(this._instantiationService.createInstance(RO,this.elements.original,this.elements.modified,this._options,i,(y,C,x,S)=>this._createInnerEditor(y,C,x,S))),this._register(Zl(le.diffEditorOriginalWritable,this._contextKeyService,y=>this._options.originalEditable.read(y))),this._register(Zl(le.diffEditorModifiedWritable,this._contextKeyService,y=>!this._options.readOnly.read(y))),this._register(Zl(le.diffEditorOriginalUri,this._contextKeyService,y=>{var C;return((C=this._diffModel.read(y))==null?void 0:C.model.original.uri.toString())??""})),this._register(Zl(le.diffEditorModifiedUri,this._contextKeyService,y=>{var C;return((C=this._diffModel.read(y))==null?void 0:C.model.modified.uri.toString())??""})),this._overviewRulerPart=ja(this,y=>this._options.renderOverviewRuler.read(y)?this._instantiationService.createInstance(eh(j0),this._editors,this.elements.root,this._diffModel,this._rootSizeObserver.width,this._rootSizeObserver.height,this._layoutInfo.map(C=>C.modifiedEditor)):void 0).recomputeInitiallyAndOnChange(this._store);const h={height:this._rootSizeObserver.height,width:this._rootSizeObserver.width.map((y,C)=>{var x;return y-(((x=this._overviewRulerPart.read(C))==null?void 0:x.width)??0)})};this._sashLayout=new v3e(this._options,h),this._sash=ja(this,y=>{const C=this._options.renderSideBySide.read(y);return this.elements.root.classList.toggle("side-by-side",C),C?new Bte(this.elements.root,h,this._options.enableSplitViewResizing,this._boundarySashes,this._sashLayout.sashLeft,()=>this._sashLayout.resetSash()):void 0}).recomputeInitiallyAndOnChange(this._store);const c=ja(this,y=>this._instantiationService.createInstance(eh(HO),this._editors,this._diffModel,this._options)).recomputeInitiallyAndOnChange(this._store);ja(this,y=>this._instantiationService.createInstance(eh(f3e),this._editors,this._diffModel,this._options,this)).recomputeInitiallyAndOnChange(this._store);const u=new Set,d=new Set;let f=!1;const g=ja(this,y=>this._instantiationService.createInstance(eh(MO),be(this._domElement),this._editors,this._diffModel,this._options,this,()=>f||c.read(void 0).isUpdatingHiddenAreas,u,d)).recomputeInitiallyAndOnChange(this._store),p=me(this,y=>{const C=g.read(y).viewZones.read(y).orig,x=c.read(y).viewZones.read(y).origViewZones;return C.concat(x)}),m=me(this,y=>{const C=g.read(y).viewZones.read(y).mod,x=c.read(y).viewZones.read(y).modViewZones;return C.concat(x)});this._register(EL(this._editors.original,p,y=>{f=y},u));let v;this._register(EL(this._editors.modified,m,y=>{f=y,f?v=TL.capture(this._editors.modified):(v==null||v.restore(this._editors.modified),v=void 0)},d)),this._accessibleDiffViewer=ja(this,y=>this._instantiationService.createInstance(eh(lf),this.elements.accessibleDiffViewer,this._accessibleDiffViewerVisible,(C,x)=>this._accessibleDiffViewerShouldBeVisible.set(C,x),this._options.onlyShowAccessibleDiffViewer.map(C=>!C),this._rootSizeObserver.width,this._rootSizeObserver.height,this._diffModel.map((C,x)=>{var S;return(S=C==null?void 0:C.diff.read(x))==null?void 0:S.mappings.map(k=>k.lineRangeMapping)}),new Y4e(this._editors))).recomputeInitiallyAndOnChange(this._store);const _=this._accessibleDiffViewerVisible.map(y=>y?"hidden":"visible");this._register(_u(this.elements.modified,{visibility:_})),this._register(_u(this.elements.original,{visibility:_})),this._createDiffEditorContributions(),this._codeEditorService.addDiffEditor(this),this._register(Se(()=>{this._codeEditorService.removeDiffEditor(this)})),this._gutter=ja(this,y=>this._options.shouldRenderGutterMenu.read(y)?this._instantiationService.createInstance(eh(BO),this.elements.root,this._diffModel,this._editors,this._options,this._sashLayout,this._boundarySashes):void 0),this._register(xD(this._layoutInfo)),ja(this,y=>new(eh(Pm))(this.elements.root,this._diffModel,this._layoutInfo.map(C=>C.originalEditor),this._layoutInfo.map(C=>C.modifiedEditor),this._editors)).recomputeInitiallyAndOnChange(this._store,y=>{this._movedBlocksLinesPart.set(y,void 0)}),this._register(J.runAndSubscribe(this._editors.modified.onDidChangeCursorPosition,y=>this._handleCursorPositionChange(y,!0))),this._register(J.runAndSubscribe(this._editors.original.onDidChangeCursorPosition,y=>this._handleCursorPositionChange(y,!1)));const b=this._diffModel.map(this,(y,C)=>{if(y)return y.diff.read(C)===void 0&&!y.isDiffUpToDate.read(C)});this._register(fa((y,C)=>{if(b.read(y)===!0){const x=this._editorProgressService.show(!0,1e3);C.add(Se(()=>x.done()))}})),this._register(fa((y,C)=>{C.add(new(eh(E3e))(this._editors,this._diffModel,this._options,this))})),this._register(fa((y,C)=>{const x=this._diffModel.read(y);if(x)for(const S of[x.model.original,x.model.modified])C.add(S.onWillDispose(k=>{xt(new Ce("TextModel got disposed before DiffEditorWidget model got reset")),this.setModel(null)}))})),this._register(Qe(y=>{this._options.setModel(this._diffModel.read(y))}))}_createInnerEditor(e,t,i,n){return e.createInstance(Zx,t,i,n)}_createDiffEditorContributions(){const e=vm.getDiffEditorContributions();for(const t of e)try{this._register(this._instantiationService.createInstance(t.ctor,this))}catch(i){xt(i)}}get _targetEditor(){return this._editors.modified}getEditorType(){return zD.IDiffEditor}layout(e){this._rootSizeObserver.observe(e)}hasTextFocus(){return this._editors.original.hasTextFocus()||this._editors.modified.hasTextFocus()}saveViewState(){var i;const e=this._editors.original.saveViewState(),t=this._editors.modified.saveViewState();return{original:e,modified:t,modelState:(i=this._diffModel.get())==null?void 0:i.serializeState()}}restoreViewState(e){var t;if(e&&e.original&&e.modified){const i=e;this._editors.original.restoreViewState(i.original),this._editors.modified.restoreViewState(i.modified),i.modelState&&((t=this._diffModel.get())==null||t.restoreSerializedState(i.modelState))}}handleInitialized(){this._editors.original.handleInitialized(),this._editors.modified.handleInitialized()}createViewModel(e){return this._instantiationService.createInstance(NO,e,this._options)}getModel(){var e;return((e=this._diffModel.get())==null?void 0:e.model)??null}setModel(e){const t=e?"model"in e?NL.create(e).createNewRef(this):NL.create(this.createViewModel(e),this):null;this.setDiffModel(t)}setDiffModel(e,t){const i=this._diffModel.get();!e&&i&&this._accessibleDiffViewer.get().close(),this._diffModel.get()!==(e==null?void 0:e.object)&&m3(t,n=>{var a;const r=e==null?void 0:e.object;Qt.batchEventsGlobally(n,()=>{this._editors.original.setModel(r?r.model.original:null),this._editors.modified.setModel(r?r.model.modified:null)});const o=(a=this._diffModelSrc.get())==null?void 0:a.createNewRef(this);this._diffModelSrc.set(e==null?void 0:e.createNewRef(this),n),setTimeout(()=>{o==null||o.dispose()},0)})}updateOptions(e){this._options.updateOptions(e)}getContainerDomNode(){return this._domElement}getOriginalEditor(){return this._editors.original}getModifiedEditor(){return this._editors.modified}getLineChanges(){var t;const e=(t=this._diffModel.get())==null?void 0:t.diff.get();return e?M3e(e):null}getDiffComputationResult(){var t;const e=(t=this._diffModel.get())==null?void 0:t.diff.get();return e?{changes:this.getLineChanges(),changes2:e.mappings.map(i=>i.lineRangeMapping),identical:e.identical,quitEarly:e.quitEarly}:null}revert(e){const t=this._diffModel.get();!t||!t.isDiffUpToDate.get()||(this._editors.modified.pushUndoStop(),this._editors.modified.executeEdits("diffEditor",[{range:e.modified.toExclusiveRange(),text:t.model.original.getValueInRange(e.original.toExclusiveRange())}]),this._editors.modified.pushUndoStop())}revertRangeMappings(e){const t=this._diffModel.get();if(!t||!t.isDiffUpToDate.get())return;const i=e.map(n=>({range:n.modifiedRange,text:t.model.original.getValueInRange(n.originalRange)}));this._editors.modified.pushUndoStop(),this._editors.modified.executeEdits("diffEditor",i),this._editors.modified.pushUndoStop()}revertFocusedRangeMappings(){var l,h;const e=this._diffModel.get();if(!e||!e.isDiffUpToDate.get())return;const t=(h=(l=this._diffModel.get())==null?void 0:l.diff.get())==null?void 0:h.mappings;if(!t||t.length===0)return;const i=this._editors.modified;if(!i.hasTextFocus())return;const n=i.getPosition().lineNumber,r=i.getSelection(),o=Ee.fromRange(r||new F(n,0,n,0)),a=t.filter(c=>c.lineRangeMapping.modified.intersect(o));i.pushUndoStop(),i.executeEdits("diffEditor",a.map(c=>({range:c.lineRangeMapping.modified.toExclusiveRange(),text:e.model.original.getValueInRange(c.lineRangeMapping.original.toExclusiveRange())}))),i.pushUndoStop()}_goTo(e){this._editors.modified.setPosition(new H(e.lineRangeMapping.modified.startLineNumber,1)),this._editors.modified.revealRangeInCenter(e.lineRangeMapping.modified.toExclusiveRange())}goToDiff(e){var r,o;const t=(o=(r=this._diffModel.get())==null?void 0:r.diff.get())==null?void 0:o.mappings;if(!t||t.length===0)return;const i=this._editors.modified.getPosition().lineNumber;let n;e==="next"?this._editors.modified.getModel().getLineCount()===i?n=t[0]:n=t.find(l=>l.lineRangeMapping.modified.startLineNumber>i)??t[0]:n=cx(t,a=>a.lineRangeMapping.modified.startLineNumber<i)??t[t.length-1],this._goTo(n),n.lineRangeMapping.modified.isEmpty?this._accessibilitySignalService.playSignal(tl.diffLineDeleted,{source:"diffEditor.goToDiff"}):n.lineRangeMapping.original.isEmpty?this._accessibilitySignalService.playSignal(tl.diffLineInserted,{source:"diffEditor.goToDiff"}):n&&this._accessibilitySignalService.playSignal(tl.diffLineModified,{source:"diffEditor.goToDiff"})}revealFirstDiff(){const e=this._diffModel.get();e&&this.waitForDiff().then(()=>{var i;const t=(i=e.diff.get())==null?void 0:i.mappings;!t||t.length===0||this._goTo(t[0])})}accessibleDiffViewerNext(){this._accessibleDiffViewer.get().next()}accessibleDiffViewerPrev(){this._accessibleDiffViewer.get().prev()}async waitForDiff(){const e=this._diffModel.get();e&&await e.waitForDiff()}mapToOtherSide(){var o,a;const e=this._editors.modified.hasWidgetFocus(),t=e?this._editors.modified:this._editors.original,i=e?this._editors.original:this._editors.modified;let n;const r=t.getSelection();if(r){const l=(a=(o=this._diffModel.get())==null?void 0:o.diff.get())==null?void 0:a.mappings.map(h=>e?h.lineRangeMapping.flip():h.lineRangeMapping);if(l){const h=RU(r.getStartPosition(),l),c=RU(r.getEndPosition(),l);n=F.plusRange(h,c)}}return{destination:i,destinationSelection:n}}switchSide(){const{destination:e,destinationSelection:t}=this.mapToOtherSide();e.focus(),t&&e.setSelection(t)}exitCompareMove(){const e=this._diffModel.get();e&&e.movedTextToCompare.set(void 0,void 0)}collapseAllUnchangedRegions(){var t;const e=(t=this._diffModel.get())==null?void 0:t.unchangedRegions.get();e&&vi(i=>{for(const n of e)n.collapseAll(i)})}showAllUnchangedRegions(){var t;const e=(t=this._diffModel.get())==null?void 0:t.unchangedRegions.get();e&&vi(i=>{for(const n of e)n.showAll(i)})}_handleCursorPositionChange(e,t){var i,n;if((e==null?void 0:e.reason)===3){const r=(n=(i=this._diffModel.get())==null?void 0:i.diff.get())==null?void 0:n.mappings.find(o=>t?o.lineRangeMapping.modified.contains(e.position.lineNumber):o.lineRangeMapping.original.contains(e.position.lineNumber));r!=null&&r.lineRangeMapping.modified.isEmpty?this._accessibilitySignalService.playSignal(tl.diffLineDeleted,{source:"diffEditor.cursorPositionChanged"}):r!=null&&r.lineRangeMapping.original.isEmpty?this._accessibilitySignalService.playSignal(tl.diffLineInserted,{source:"diffEditor.cursorPositionChanged"}):r&&this._accessibilitySignalService.playSignal(tl.diffLineModified,{source:"diffEditor.cursorPositionChanged"})}}};RL=N3e([R_(3,vt),R_(4,ft),R_(5,Fi),R_(6,_T),R_(7,VF)],RL);function M3e(s){return s.mappings.map(e=>{const t=e.lineRangeMapping;let i,n,r,o,a=t.innerChanges;return t.original.isEmpty?(i=t.original.startLineNumber-1,n=0,a=void 0):(i=t.original.startLineNumber,n=t.original.endLineNumberExclusive-1),t.modified.isEmpty?(r=t.modified.startLineNumber-1,o=0,a=void 0):(r=t.modified.startLineNumber,o=t.modified.endLineNumberExclusive-1),{originalStartLineNumber:i,originalEndLineNumber:n,modifiedStartLineNumber:r,modifiedEndLineNumber:o,charChanges:a==null?void 0:a.map(l=>({originalStartLineNumber:l.originalRange.startLineNumber,originalStartColumn:l.originalRange.startColumn,originalEndLineNumber:l.originalRange.endLineNumber,originalEndColumn:l.originalRange.endColumn,modifiedStartLineNumber:l.modifiedRange.startLineNumber,modifiedStartColumn:l.modifiedRange.startColumn,modifiedEndLineNumber:l.modifiedRange.endLineNumber,modifiedEndColumn:l.modifiedRange.endColumn}))}})}function A3e(s){return s&&typeof s.getEditorType=="function"?s.getEditorType()===zD.ICodeEditor:!1}var R3e=function(s,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(s,e,t,i);else for(var a=s.length-1;a>=0;a--)(o=s[a])&&(r=(n<3?o(r):n>3?o(e,t,r):o(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},t$=function(s,e){return function(t,i){e(t,i,s)}},cS,Vf;let zO=(Vf=class{constructor(e,t){this._configurationService=e,this._languageService=t}async renderCodeBlock(e,t,i){var c;const n=A3e(i.context)?i.context:void 0;let r;e?r=this._languageService.getLanguageIdByLanguageName(e):n&&(r=(c=n.getModel())==null?void 0:c.getLanguageId()),r||(r=No);const o=await OIe(this._languageService,t,r),a=cS._ttpTokenizer?cS._ttpTokenizer.createHTML(o)??o:o,l=document.createElement("span");l.innerHTML=a;const h=l.querySelector(".monaco-tokenized-source");return _i(h)?(mn(h,this.getFontInfo(n)),l):document.createElement("span")}getFontInfo(e){return e?e.getOption(59):hCe({fontFamily:this._configurationService.getValue("editor").fontFamily},1)}},cS=Vf,Vf._ttpTokenizer=Su("tokenizeToString",{createHTML(e){return e}}),Vf);zO=cS=R3e([t$(0,Yt),t$(1,Gi)],zO);var _7=function(s,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(s,e,t,i);else for(var a=s.length-1;a>=0;a--)(o=s[a])&&(r=(n<3?o(r):n>3?o(e,t,r):o(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},It=function(s,e){return function(t,i){e(t,i,s)}};let P3e=0,i$=!1;function O3e(s){if(!s){if(i$)return;i$=!0}iCe(s||Et.document.body)}let PL=class extends Zx{constructor(e,t,i,n,r,o,a,l,h,c,u,d,f,g){const p={...t};p.ariaLabel=p.ariaLabel||gP.editorViewAccessibleLabel,super(e,p,{},i,n,r,o,h,c,u,d,f),l instanceof pv?this._standaloneKeybindingService=l:this._standaloneKeybindingService=null,O3e(p.ariaContainerElement),uRe((m,v)=>i.createInstance(L0,m,{instantHover:v},{})),dRe(a),g.setDefaultCodeBlockRenderer(i.createInstance(zO))}addCommand(e,t,i){if(!this._standaloneKeybindingService)return console.warn("Cannot add command because the editor is configured with an unrecognized KeybindingService"),null;const n="DYNAMIC_"+ ++P3e,r=it.deserialize(i);return this._standaloneKeybindingService.addDynamicKeybinding(n,e,t,r),n}createContextKey(e,t){return this._contextKeyService.createKey(e,t)}addAction(e){if(typeof e.id!="string"||typeof e.label!="string"||typeof e.run!="function")throw new Error("Invalid action descriptor, `id`, `label` and `run` are required properties!");if(!this._standaloneKeybindingService)return console.warn("Cannot add keybinding because the editor is configured with an unrecognized KeybindingService"),q.None;const t=e.id,i=e.label,n=it.and(it.equals("editorId",this.getId()),it.deserialize(e.precondition)),r=e.keybindings,o=it.and(n,it.deserialize(e.keybindingContext)),a=e.contextMenuGroupId||null,l=e.contextMenuOrder||0,h=(f,...g)=>Promise.resolve(e.run(this,...g)),c=new he,u=this.getId()+":"+t;if(c.add(Ns.registerCommand(u,h)),a){const f={command:{id:u,title:i},when:n,group:a,order:l};c.add(ev.appendMenuItem(Ni.EditorContext,f))}if(Array.isArray(r))for(const f of r)c.add(this._standaloneKeybindingService.addDynamicKeybinding(u,f,h,o));const d=new lJ(u,i,i,void 0,n,(...f)=>Promise.resolve(e.run(this,...f)),this._contextKeyService);return this._actions.set(t,d),c.add(Se(()=>{this._actions.delete(t)})),c}_triggerCommand(e,t){if(this._codeEditorService instanceof Qx)try{this._codeEditorService.setActiveCodeEditor(this),super._triggerCommand(e,t)}finally{this._codeEditorService.setActiveCodeEditor(null)}else super._triggerCommand(e,t)}};PL=_7([It(2,ft),It(3,Fi),It(4,Rr),It(5,vt),It(6,Tw),It(7,sn),It(8,tr),It(9,Bo),It(10,Pr),It(11,Ml),It(12,Wt),It(13,rT)],PL);let jO=class extends PL{constructor(e,t,i,n,r,o,a,l,h,c,u,d,f,g,p,m,v){const _={...t};DL(u,_,!1);const b=h.registerEditorContainer(e);typeof _.theme=="string"&&h.setTheme(_.theme),typeof _.autoDetectHighContrast<"u"&&h.setAutoDetectHighContrast(!!_.autoDetectHighContrast);const y=_.model;delete _.model,super(e,_,i,n,r,o,a,l,h,c,d,p,m,v),this._configurationService=u,this._standaloneThemeService=h,this._register(b);let C;if(typeof y>"u"){const x=g.getLanguageIdByMimeType(_.language)||_.language||No;C=jte(f,g,_.value||"",x,void 0),this._ownsModel=!0}else C=y,this._ownsModel=!1;if(this._attachModel(C),C){const x={oldModelUrl:null,newModelUrl:C.uri};this._onDidChangeModel.fire(x)}}dispose(){super.dispose()}updateOptions(e){DL(this._configurationService,e,!1),typeof e.theme=="string"&&this._standaloneThemeService.setTheme(e.theme),typeof e.autoDetectHighContrast<"u"&&this._standaloneThemeService.setAutoDetectHighContrast(!!e.autoDetectHighContrast),super.updateOptions(e)}_postDetachModelCleanup(e){super._postDetachModelCleanup(e),e&&this._ownsModel&&(e.dispose(),this._ownsModel=!1)}};jO=_7([It(2,ft),It(3,Fi),It(4,Rr),It(5,vt),It(6,Tw),It(7,sn),It(8,Vo),It(9,Bo),It(10,Yt),It(11,Pr),It(12,os),It(13,Gi),It(14,Ml),It(15,Wt),It(16,rT)],jO);let UO=class extends RL{constructor(e,t,i,n,r,o,a,l,h,c,u,d){const f={...t};DL(l,f,!0);const g=o.registerEditorContainer(e);typeof f.theme=="string"&&o.setTheme(f.theme),typeof f.autoDetectHighContrast<"u"&&o.setAutoDetectHighContrast(!!f.autoDetectHighContrast),super(e,f,{},n,i,r,d,c),this._configurationService=l,this._standaloneThemeService=o,this._register(g)}dispose(){super.dispose()}updateOptions(e){DL(this._configurationService,e,!0),typeof e.theme=="string"&&this._standaloneThemeService.setTheme(e.theme),typeof e.autoDetectHighContrast<"u"&&this._standaloneThemeService.setAutoDetectHighContrast(!!e.autoDetectHighContrast),super.updateOptions(e)}_createInnerEditor(e,t,i){return e.createInstance(PL,t,i)}getOriginalEditor(){return super.getOriginalEditor()}getModifiedEditor(){return super.getModifiedEditor()}addCommand(e,t,i){return this.getModifiedEditor().addCommand(e,t,i)}createContextKey(e,t){return this.getModifiedEditor().createContextKey(e,t)}addAction(e){return this.getModifiedEditor().addAction(e)}};UO=_7([It(2,ft),It(3,vt),It(4,Fi),It(5,Vo),It(6,Bo),It(7,Yt),It(8,Jh),It(9,VF),It(10,c7),It(11,_T)],UO);function jte(s,e,t,i,n){if(t=t||"",!i){const r=t.indexOf(`
|
|
877
877
|
`);let o=t;return r!==-1&&(o=t.substring(0,r)),n$(s,t,e.createByFilepathOrFirstLine(n||null,o),n)}return n$(s,t,e.createById(i),n)}function n$(s,e,t,i){return s.createModel(e,t,i)}O("multiDiffEditor.headerBackground",{dark:"#262626",light:"tab.inactiveBackground",hcDark:"tab.inactiveBackground",hcLight:"tab.inactiveBackground"},w(142,"The background color of the diff editor's header"));O("multiDiffEditor.background",Ao,w(143,"The background color of the multi file diff editor"));O("multiDiffEditor.border",{dark:"sideBarSectionHeader.border",light:"#cccccc",hcDark:"sideBarSectionHeader.border",hcLight:"#cccccc"},w(144,"The border color of the multi file diff editor"));var F3e=function(s,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(s,e,t,i);else for(var a=s.length-1;a>=0;a--)(o=s[a])&&(r=(n<3?o(r):n>3?o(e,t,r):o(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},s$=function(s,e){return function(t,i){e(t,i,s)}};class B3e{constructor(e,t){this.viewModel=e,this.deltaScrollVertical=t}getId(){return this.viewModel}}let $O=class extends q{constructor(e,t,i,n,r){super(),this._container=e,this._overflowWidgetsDomNode=t,this._workbenchUIElementFactory=i,this._instantiationService=n,this._viewModel=ze(this,void 0),this._collapsed=me(this,l=>{var h;return(h=this._viewModel.read(l))==null?void 0:h.collapsed.read(l)}),this._editorContentHeight=ze(this,500),this.contentHeight=me(this,l=>(this._collapsed.read(l)?0:this._editorContentHeight.read(l))+this._outerEditorHeight),this._modifiedContentWidth=ze(this,0),this._modifiedWidth=ze(this,0),this._originalContentWidth=ze(this,0),this._originalWidth=ze(this,0),this.maxScroll=me(this,l=>{const h=this._modifiedContentWidth.read(l)-this._modifiedWidth.read(l),c=this._originalContentWidth.read(l)-this._originalWidth.read(l);return h>c?{maxScroll:h,width:this._modifiedWidth.read(l)}:{maxScroll:c,width:this._originalWidth.read(l)}}),this._elements=ot("div.multiDiffEntry",[ot("div.header@header",[ot("div.header-content",[ot("div.collapse-button@collapseButton"),ot("div.file-path",[ot("div.title.modified.show-file-icons@primaryPath",[]),ot("div.status.deleted@status",["R"]),ot("div.title.original.show-file-icons@secondaryPath",[])]),ot("div.actions@actions")])]),ot("div.editorParent",[ot("div.editorContainer@editor")])]),this.editor=this._register(this._instantiationService.createInstance(RL,this._elements.editor,{overflowWidgetsDomNode:this._overflowWidgetsDomNode,fixedOverflowWidgets:!0},{})),this.isModifedFocused=hf(this.editor.getModifiedEditor()).isFocused,this.isOriginalFocused=hf(this.editor.getOriginalEditor()).isFocused,this.isFocused=me(this,l=>this.isModifedFocused.read(l)||this.isOriginalFocused.read(l)),this._resourceLabel=this._workbenchUIElementFactory.createResourceLabel?this._register(this._workbenchUIElementFactory.createResourceLabel(this._elements.primaryPath)):void 0,this._resourceLabel2=this._workbenchUIElementFactory.createResourceLabel?this._register(this._workbenchUIElementFactory.createResourceLabel(this._elements.secondaryPath)):void 0,this._dataStore=this._register(new he),this._headerHeight=40,this._lastScrollTop=-1,this._isSettingScrollTop=!1;const o=new BP(this._elements.collapseButton,{});this._register(Qe(l=>{o.element.className="",o.icon=this._collapsed.read(l)?re.chevronRight:re.chevronDown})),this._register(o.onDidClick(()=>{var l;(l=this._viewModel.get())==null||l.collapsed.set(!this._collapsed.get(),void 0)})),this._register(Qe(l=>{this._elements.editor.style.display=this._collapsed.read(l)?"none":"block"})),this._register(this.editor.getModifiedEditor().onDidLayoutChange(l=>{const h=this.editor.getModifiedEditor().getLayoutInfo().contentWidth;this._modifiedWidth.set(h,void 0)})),this._register(this.editor.getOriginalEditor().onDidLayoutChange(l=>{const h=this.editor.getOriginalEditor().getLayoutInfo().contentWidth;this._originalWidth.set(h,void 0)})),this._register(this.editor.onDidContentSizeChange(l=>{U_(h=>{this._editorContentHeight.set(l.contentHeight,h),this._modifiedContentWidth.set(this.editor.getModifiedEditor().getContentWidth(),h),this._originalContentWidth.set(this.editor.getOriginalEditor().getContentWidth(),h)})})),this._register(this.editor.getOriginalEditor().onDidScrollChange(l=>{if(this._isSettingScrollTop||!l.scrollTopChanged||!this._data)return;const h=l.scrollTop-this._lastScrollTop;this._data.deltaScrollVertical(h)})),this._register(Qe(l=>{var c;const h=(c=this._viewModel.read(l))==null?void 0:c.isActive.read(l);this._elements.root.classList.toggle("active",h)})),this._container.appendChild(this._elements.root),this._outerEditorHeight=this._headerHeight,this._contextKeyService=this._register(r.createScoped(this._elements.actions));const a=this._register(this._instantiationService.createChild(new Nv([vt,this._contextKeyService])));this._register(a.createInstance(ML,this._elements.actions,Ni.MultiDiffEditorFileToolbar,{actionRunner:this._register(new Hte(()=>{var l,h;return((l=this._viewModel.get())==null?void 0:l.modifiedUri)??((h=this._viewModel.get())==null?void 0:h.originalUri)})),menuOptions:{shouldForwardArgs:!0},toolbarOptions:{primaryGroup:l=>l.startsWith("navigation")},actionViewItemProvider:(l,h)=>$ee(a,l,h)}))}setScrollLeft(e){this._modifiedContentWidth.get()-this._modifiedWidth.get()>this._originalContentWidth.get()-this._originalWidth.get()?this.editor.getModifiedEditor().setScrollLeft(e):this.editor.getOriginalEditor().setScrollLeft(e)}setData(e){this._data=e;function t(n){return{...n,scrollBeyondLastLine:!1,hideUnchangedRegions:{enabled:!0},scrollbar:{vertical:"hidden",horizontal:"hidden",handleMouseWheel:!1,useShadows:!1},renderOverviewRuler:!1,fixedOverflowWidgets:!0,overviewRulerBorder:!1}}if(!e){U_(n=>{this._viewModel.set(void 0,n),this.editor.setDiffModel(null,n),this._dataStore.clear()});return}const i=e.viewModel.documentDiffItem;if(U_(n=>{var h,c;(h=this._resourceLabel)==null||h.setUri(e.viewModel.modifiedUri??e.viewModel.originalUri,{strikethrough:e.viewModel.modifiedUri===void 0});let r=!1,o=!1,a=!1,l="";e.viewModel.modifiedUri&&e.viewModel.originalUri&&e.viewModel.modifiedUri.path!==e.viewModel.originalUri.path?(l="R",r=!0):e.viewModel.modifiedUri?e.viewModel.originalUri||(l="A",a=!0):(l="D",o=!0),this._elements.status.classList.toggle("renamed",r),this._elements.status.classList.toggle("deleted",o),this._elements.status.classList.toggle("added",a),this._elements.status.innerText=l,(c=this._resourceLabel2)==null||c.setUri(r?e.viewModel.originalUri:void 0,{strikethrough:!0}),this._dataStore.clear(),this._viewModel.set(e.viewModel,n),this.editor.setDiffModel(e.viewModel.diffEditorViewModelRef,n),this.editor.updateOptions(t(i.options??{}))}),i.onOptionsDidChange&&this._dataStore.add(i.onOptionsDidChange(()=>{this.editor.updateOptions(t(i.options??{}))})),e.viewModel.isAlive.recomputeInitiallyAndOnChange(this._dataStore,n=>{n||this.setData(void 0)}),e.viewModel.documentDiffItem.contextKeys)for(const[n,r]of Object.entries(e.viewModel.documentDiffItem.contextKeys))this._contextKeyService.createKey(n,r)}render(e,t,i,n){this._elements.root.style.visibility="visible",this._elements.root.style.top=`${e.start}px`,this._elements.root.style.height=`${e.length}px`,this._elements.root.style.width=`${t}px`,this._elements.root.style.position="absolute";const r=e.length-this._headerHeight,o=Math.max(0,Math.min(n.start-e.start,r));this._elements.header.style.transform=`translateY(${o}px)`,U_(a=>{this.editor.layout({width:t-16-2,height:e.length-this._outerEditorHeight})});try{this._isSettingScrollTop=!0,this._lastScrollTop=i,this.editor.getOriginalEditor().setScrollTop(i)}finally{this._isSettingScrollTop=!1}this._elements.header.classList.toggle("shadow",o>0||i>0),this._elements.header.classList.toggle("collapsed",o===r)}hide(){this._elements.root.style.top="-100000px",this._elements.root.style.visibility="hidden"}};$O=F3e([s$(3,ft),s$(4,vt)],$O);class V3e{constructor(e){this._create=e,this._unused=new Set,this._used=new Set,this._itemData=new Map}getUnusedObj(e){let t;if(this._unused.size===0)t=this._create(e),this._itemData.set(t,e);else{const i=[...this._unused.values()];t=i.find(n=>this._itemData.get(n).getId()===e.getId())??i[0],this._unused.delete(t),this._itemData.set(t,e),t.setData(e)}return this._used.add(t),{object:t,dispose:()=>{this._used.delete(t),this._unused.size>5?t.dispose():this._unused.add(t)}}}dispose(){for(const e of this._used)e.dispose();for(const e of this._unused)e.dispose();this._used.clear(),this._unused.clear()}}var W3e=function(s,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(s,e,t,i);else for(var a=s.length-1;a>=0;a--)(o=s[a])&&(r=(n<3?o(r):n>3?o(e,t,r):o(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},r$=function(s,e){return function(t,i){e(t,i,s)}};let GO=class extends q{constructor(e,t,i,n,r,o){super(),this._element=e,this._dimension=t,this._viewModel=i,this._workbenchUIElementFactory=n,this._parentContextKeyService=r,this._parentInstantiationService=o,this._scrollableElements=ot("div.scrollContent",[ot("div@content",{style:{overflow:"hidden"}}),ot("div.monaco-editor@overflowWidgetsDomNode",{})]),this._scrollable=this._register(new Iv({forceIntegerValues:!1,scheduleAtNextAnimationFrame:h=>Is(be(this._element),h),smoothScrollDuration:100})),this._scrollableElement=this._register(new ZD(this._scrollableElements.root,{vertical:1,horizontal:1,useShadows:!1},this._scrollable)),this._elements=ot("div.monaco-component.multiDiffEditor",{},[ot("div",{},[this._scrollableElement.getDomNode()]),ot("div.placeholder@placeholder",{},[ot("div")])]),this._sizeObserver=this._register(new Ate(this._element,void 0)),this._objectPool=this._register(new V3e(h=>{const c=this._instantiationService.createInstance($O,this._scrollableElements.content,this._scrollableElements.overflowWidgetsDomNode,this._workbenchUIElementFactory);return c.setData(h),c})),this.scrollTop=Qt(this,this._scrollableElement.onScroll,()=>this._scrollableElement.getScrollPosition().scrollTop),this.scrollLeft=Qt(this,this._scrollableElement.onScroll,()=>this._scrollableElement.getScrollPosition().scrollLeft),this._viewItemsInfo=me(this,h=>{const c=this._viewModel.read(h);if(!c)return{items:[],getItem:g=>{throw new Ce}};const u=c.items.read(h),d=new Map;return{items:u.map(g=>{var v;const p=h.store.add(new z3e(g,this._objectPool,this.scrollLeft,_=>{this._scrollableElement.setScrollPosition({scrollTop:this._scrollableElement.getScrollPosition().scrollTop+_})})),m=(v=this._lastDocStates)==null?void 0:v[p.getKey()];return m&&vi(_=>{p.setViewState(m,_)}),d.set(g,p),p}),getItem:g=>d.get(g)}}),this._viewItems=this._viewItemsInfo.map(this,h=>h.items),this._spaceBetweenPx=0,this._totalHeight=this._viewItems.map(this,(h,c)=>h.reduce((u,d)=>u+d.contentHeight.read(c)+this._spaceBetweenPx,0)),this.activeControl=me(this,h=>{var d,f;const c=(d=this._viewModel.read(h))==null?void 0:d.activeDiffItem.read(h);return c?(f=this._viewItemsInfo.read(h).getItem(c).template.read(h))==null?void 0:f.editor:void 0}),this._contextKeyService=this._register(this._parentContextKeyService.createScoped(this._element)),this._instantiationService=this._register(this._parentInstantiationService.createChild(new Nv([vt,this._contextKeyService]))),this._contextKeyService.createKey(le.inMultiDiffEditor.key,!0),this._lastDocStates={},this._register(fa((h,c)=>{const u=this._viewModel.read(h);if(u&&u.contextKeys)for(const[d,f]of Object.entries(u.contextKeys)){const g=this._contextKeyService.createKey(d,void 0);g.set(f),c.add(Se(()=>g.reset()))}}));const a=this._parentContextKeyService.createKey(le.multiDiffEditorAllCollapsed.key,!1);this._register(Qe(h=>{const c=this._viewModel.read(h);if(c){const u=c.items.read(h).every(d=>d.collapsed.read(h));a.set(u)}})),this._register(Qe(h=>{const c=this._dimension.read(h);this._sizeObserver.observe(c)}));const l=me(h=>{if(this._viewItems.read(h).length>0)return;const u=this._viewModel.read(h);return!u||u.isLoading.read(h)?w(145,"Loading..."):w(146,"No Changed Files")});this._register(Qe(h=>{const c=l.read(h);this._elements.placeholder.innerText=c??"",this._elements.placeholder.classList.toggle("visible",!!c)})),this._scrollableElements.content.style.position="relative",this._register(Qe(h=>{const c=this._sizeObserver.height.read(h);this._scrollableElements.root.style.height=`${c}px`;const u=this._totalHeight.read(h);this._scrollableElements.content.style.height=`${u}px`;const d=this._sizeObserver.width.read(h);let f=d;const g=this._viewItems.read(h),p=AZ(g,Ir(m=>m.maxScroll.read(h).maxScroll,Fh));if(p){const m=p.maxScroll.read(h);f=d+m.maxScroll}this._scrollableElement.setScrollDimensions({width:d,height:c,scrollHeight:u,scrollWidth:f})})),e.replaceChildren(this._elements.root),this._register(Se(()=>{e.replaceChildren()})),this._register(Qe(h=>{const c=this._viewModel.read(h);if(c&&!c.isLoading.read(h)){if(c.items.read(h).length===0||c.activeDiffItem.read(h))return;this.goToNextChange()}})),this._register(this._register(Qe(h=>{U_(c=>{this.render(h)})})))}reveal(e,t){var h;const i=this._viewItems.get(),n=i.findIndex(c=>{var u,d,f,g;return((u=c.viewModel.originalUri)==null?void 0:u.toString())===((d=e.original)==null?void 0:d.toString())&&((f=c.viewModel.modifiedUri)==null?void 0:f.toString())===((g=e.modified)==null?void 0:g.toString())});if(n===-1)throw new Ce("Resource not found in diff editor");const r=i[n];this._viewModel.get().activeDiffItem.setCache(r.viewModel,void 0);let o=0;for(let c=0;c<n;c++)o+=i[c].contentHeight.get()+this._spaceBetweenPx;this._scrollableElement.setScrollPosition({scrollTop:o});const a=(h=r.template.get())==null?void 0:h.editor,l="original"in e?a==null?void 0:a.getOriginalEditor():a==null?void 0:a.getModifiedEditor();l&&(t!=null&&t.range)&&(l.revealRangeInCenter(t.range),H3e(l,t.range))}goToNextChange(){this._navigateToChange("next")}_navigateToChange(e){var l,h,c,u,d;const t=this._viewItems.get();if(t.length===0)return;const i=(l=this._viewModel.get())==null?void 0:l.activeDiffItem.get(),n=i?t.findIndex(f=>f.viewModel===i):-1;if(n===-1){this._goToFile(0,"first");return}const r=t[n];r.viewModel.collapsed.get()&&r.viewModel.collapsed.set(!1,void 0);const o=(h=r.template.get())==null?void 0:h.editor;if((u=(c=o==null?void 0:o.getDiffComputationResult())==null?void 0:c.changes2)!=null&&u.length){const f=((d=o.getModifiedEditor().getPosition())==null?void 0:d.lineNumber)||1,g=o.getDiffComputationResult().changes2;if(e==="next"?g.some(m=>m.modified.startLineNumber>f):g.some(m=>m.modified.endLineNumberExclusive<=f)){o.goToDiff(e);return}}const a=(n+(e==="next"?1:-1)+t.length)%t.length;this._goToFile(a,e==="next"?"first":"last")}_goToFile(e,t){var r,o,a;const i=this._viewItems.get()[e];i.viewModel.collapsed.get()&&i.viewModel.collapsed.set(!1,void 0),this.reveal({original:i.viewModel.originalUri,modified:i.viewModel.modifiedUri});const n=(r=i.template.get())==null?void 0:r.editor;if((a=(o=n==null?void 0:n.getDiffComputationResult())==null?void 0:o.changes2)!=null&&a.length)if(t==="first")n.revealFirstDiff();else{const l=n.getDiffComputationResult().changes2.at(-1),h=n.getModifiedEditor();h.setPosition({lineNumber:l.modified.startLineNumber,column:1}),h.revealLineInCenter(l.modified.startLineNumber)}n==null||n.focus()}render(e){const t=this.scrollTop.read(e);let i=0,n=0,r=0;const o=this._sizeObserver.height.read(e),a=_e.ofStartAndLength(t,o),l=this._sizeObserver.width.read(e);for(const h of this._viewItems.read(e)){const c=h.contentHeight.read(e),u=Math.min(c,o),d=_e.ofStartAndLength(n,u),f=_e.ofStartAndLength(r,c);if(f.isBefore(a))i-=c-u,h.hide();else if(f.isAfter(a))h.hide();else{const g=Math.max(0,Math.min(a.start-f.start,c-u));i-=g;const p=_e.ofStartAndLength(t+i,o);h.render(d,g,l,p)}n+=u+this._spaceBetweenPx,r+=c+this._spaceBetweenPx}this._scrollableElements.content.style.transform=`translateY(${-(t+i)}px)`}};GO=W3e([r$(4,vt),r$(5,ft)],GO);function H3e(s,e){const t=s.getModel(),i=s.createDecorationsCollection([{range:e,options:{description:"symbol-navigate-action-highlight",className:"symbolHighlight"}}]);setTimeout(()=>{s.getModel()===t&&i.clear()},350)}class z3e extends q{constructor(e,t,i,n){super(),this.viewModel=e,this._objectPool=t,this._scrollLeft=i,this._deltaScrollVertical=n,this._templateRef=this._register(YX(this,void 0)),this.contentHeight=me(this,r=>{var o,a;return((a=(o=this._templateRef.read(r))==null?void 0:o.object.contentHeight)==null?void 0:a.read(r))??this.viewModel.lastTemplateData.read(r).contentHeight}),this.maxScroll=me(this,r=>{var o;return((o=this._templateRef.read(r))==null?void 0:o.object.maxScroll.read(r))??{maxScroll:0,scrollWidth:0}}),this.template=me(this,r=>{var o;return(o=this._templateRef.read(r))==null?void 0:o.object}),this._isHidden=ze(this,!1),this._isFocused=me(this,r=>{var o;return((o=this.template.read(r))==null?void 0:o.isFocused.read(r))??!1}),this.viewModel.setIsFocused(this._isFocused,void 0),this._register(Qe(r=>{var a;const o=this._scrollLeft.read(r);(a=this._templateRef.read(r))==null||a.object.setScrollLeft(o)})),this._register(Qe(r=>{const o=this._templateRef.read(r);!o||!this._isHidden.read(r)||o.object.isFocused.read(r)||this._clear()}))}dispose(){this._clear(),super.dispose()}toString(){var e;return`VirtualViewItem(${(e=this.viewModel.documentDiffItem.modified)==null?void 0:e.uri.toString()})`}getKey(){return this.viewModel.getKey()}setViewState(e,t){var o;this.viewModel.collapsed.set(e.collapsed,t),this._updateTemplateData(t);const i=this.viewModel.lastTemplateData.get(),n=(o=e.selections)==null?void 0:o.map(nt.liftSelection);this.viewModel.lastTemplateData.set({...i,selections:n},t);const r=this._templateRef.get();r&&n&&r.object.editor.setSelections(n)}_updateTemplateData(e){const t=this._templateRef.get();t&&this.viewModel.lastTemplateData.set({contentHeight:t.object.contentHeight.get(),selections:t.object.editor.getSelections()??void 0},e)}_clear(){const e=this._templateRef.get();e&&vi(t=>{this._updateTemplateData(t),e.object.hide(),this._templateRef.set(void 0,t)})}hide(){this._isHidden.set(!0,void 0)}render(e,t,i,n){this._isHidden.set(!1,void 0);let r=this._templateRef.get();if(!r){r=this._objectPool.getUnusedObj(new B3e(this.viewModel,this._deltaScrollVertical)),this._templateRef.set(r,void 0);const o=this.viewModel.lastTemplateData.get().selections;o&&r.object.editor.setSelections(o)}r.object.render(e,i,t,n)}}var j3e=function(s,e,t,i){var n=arguments.length,r=n<3?e:i===null?i=Object.getOwnPropertyDescriptor(e,t):i,o;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(s,e,t,i);else for(var a=s.length-1;a>=0;a--)(o=s[a])&&(r=(n<3?o(r):n>3?o(e,t,r):o(e,t))||r);return n>3&&r&&Object.defineProperty(e,t,r),r},U3e=function(s,e){return function(t,i){e(t,i,s)}};let qO=class extends q{constructor(e,t,i){super(),this._element=e,this._workbenchUIElementFactory=t,this._instantiationService=i,this._dimension=ze(this,void 0),this._viewModel=ze(this,void 0),this._widgetImpl=me(this,n=>n.store.add(this._instantiationService.createInstance(eh(GO),this._element,this._dimension,this._viewModel,this._workbenchUIElementFactory))),this._register(xD(this._widgetImpl))}};qO=j3e([U3e(2,ft)],qO);function $3e(s,e,t){return xe.initialize(t||{}).createInstance(jO,s,e)}function G3e(s){return xe.get(Fi).onCodeEditorAdd(t=>{s(t)})}function q3e(s){return xe.get(Fi).onDiffEditorAdd(t=>{s(t)})}function K3e(){return xe.get(Fi).listCodeEditors()}function Y3e(){return xe.get(Fi).listDiffEditors()}function X3e(s,e,t){return xe.initialize(t||{}).createInstance(UO,s,e)}function Z3e(s,e){const t=xe.initialize(e||{});return new qO(s,{},t)}function Q3e(s){if(typeof s.id!="string"||typeof s.run!="function")throw new Error("Invalid command descriptor, `id` and `run` are required properties!");return Ns.registerCommand(s.id,s.run)}function J3e(s){if(typeof s.id!="string"||typeof s.label!="string"||typeof s.run!="function")throw new Error("Invalid action descriptor, `id`, `label` and `run` are required properties!");const e=it.deserialize(s.precondition),t=(n,...r)=>ng.runEditorCommand(n,r,e,(o,a,l)=>Promise.resolve(s.run(a,...l))),i=new he;if(i.add(Ns.registerCommand(s.id,t)),s.contextMenuGroupId){const n={command:{id:s.id,title:s.label},when:e,group:s.contextMenuGroupId,order:s.contextMenuOrder||0};i.add(ev.appendMenuItem(Ni.EditorContext,n))}if(Array.isArray(s.keybindings)){const n=xe.get(sn);if(!(n instanceof pv))console.warn("Cannot add keybinding because the editor is configured with an unrecognized KeybindingService");else{const r=it.and(e,it.deserialize(s.keybindingContext));i.add(n.addDynamicKeybindings(s.keybindings.map(o=>({keybinding:o,command:s.id,when:r}))))}}return i}function eFe(s){return Ute([s])}function Ute(s){const e=xe.get(sn);return e instanceof pv?e.addDynamicKeybindings(s.map(t=>({keybinding:t.keybinding,command:t.command,commandArgs:t.commandArgs,when:it.deserialize(t.when)}))):(console.warn("Cannot add keybinding because the editor is configured with an unrecognized KeybindingService"),q.None)}function tFe(s,e,t){const i=xe.get(Gi),n=i.getLanguageIdByMimeType(e)||e;return jte(xe.get(os),i,s,n,t)}function iFe(s,e){const t=xe.get(Gi),i=t.getLanguageIdByMimeType(e)||e||No;s.setLanguage(t.createById(i))}function nFe(s,e,t){s&&xe.get(Mg).changeOne(e,s.uri,t)}function sFe(s){xe.get(Mg).changeAll(s,[])}function rFe(s){return xe.get(Mg).read(s)}function oFe(s){return xe.get(Mg).onMarkerChanged(s)}function aFe(s){return xe.get(os).getModel(s)}function lFe(){return xe.get(os).getModels()}function hFe(s){return xe.get(os).onModelAdded(s)}function cFe(s){return xe.get(os).onModelRemoved(s)}function uFe(s){return xe.get(os).onModelLanguageChanged(t=>{s({model:t.model,oldLanguage:t.oldLanguageId})})}function dFe(s){return Tye(xe.get(os),s)}function fFe(s,e){const t=xe.get(Gi),i=xe.get(Vo);return V3.colorizeElement(i,t,s,e).then(()=>{i.registerEditorContainer(s)})}function gFe(s,e,t){const i=xe.get(Gi);return xe.get(Vo).registerEditorContainer(Et.document.body),V3.colorize(i,s,e,t)}function pFe(s,e,t=4){return xe.get(Vo).registerEditorContainer(Et.document.body),V3.colorizeModelLine(s,e,t)}function mFe(s){const e=wi.get(s);return e||{getInitialState:()=>r0,tokenize:(t,i,n)=>VZ(s,n)}}function vFe(s,e){wi.getOrCreate(e);const t=mFe(e),i=Sv(s),n=[];let r=t.getInitialState();for(let o=0,a=i.length;o<a;o++){const l=i[o],h=t.tokenize(l,!0,r);n[o]=h.tokens,r=h.endState}return n}function _Fe(s,e){xe.get(Vo).defineTheme(s,e)}function bFe(s){xe.get(Vo).setTheme(s)}function wFe(){mA.clearAllFontInfos()}function yFe(s,e){return Ns.registerCommand({id:s,handler:e})}function CFe(s){return xe.get(sT).registerOpener({async open(t){return typeof t=="string"&&(t=qe.parse(t)),s.open(t)}})}function SFe(s){return xe.get(Fi).registerCodeEditorOpenHandler(async(t,i,n)=>{var a;if(!i)return null;const r=(a=t.options)==null?void 0:a.selection;let o;return r&&typeof r.endLineNumber=="number"&&typeof r.endColumn=="number"?o=r:r&&(o={lineNumber:r.startLineNumber,column:r.startColumn}),await s.openCodeEditor(i,t.resource,o)?i:null})}function xFe(){return{create:$3e,getEditors:K3e,getDiffEditors:Y3e,onDidCreateEditor:G3e,onDidCreateDiffEditor:q3e,createDiffEditor:X3e,addCommand:Q3e,addEditorAction:J3e,addKeybindingRule:eFe,addKeybindingRules:Ute,createModel:tFe,setModelLanguage:iFe,setModelMarkers:nFe,getModelMarkers:rFe,removeAllMarkers:sFe,onDidChangeMarkers:oFe,getModels:lFe,getModel:aFe,onDidCreateModel:hFe,onWillDisposeModel:cFe,onDidChangeModelLanguage:uFe,createWebWorker:dFe,colorizeElement:fFe,colorize:gFe,colorizeModelLine:pFe,tokenize:vFe,defineTheme:_Fe,setTheme:bFe,remeasureFonts:wFe,registerCommand:yFe,registerLinkOpener:CFe,registerEditorOpener:SFe,AccessibilitySupport:nM,ContentWidgetPositionPreference:hM,CursorChangeReason:cM,DefaultEndOfLine:uM,EditorAutoIndentStrategy:fM,EditorOption:gM,EndOfLinePreference:pM,EndOfLineSequence:mM,MinimapPosition:TM,MinimapSectionHeaderStyle:IM,MouseTargetType:EM,OverlayWidgetPositionPreference:AM,OverviewRulerLane:RM,GlyphMarginLane:vM,RenderLineNumbersType:FM,RenderMinimap:BM,ScrollbarVisibility:WM,ScrollType:VM,TextEditorCursorBlinkingStyle:qM,TextEditorCursorStyle:KM,TrackedRangeStickiness:YM,WrappingIndent:XM,InjectedTextCursorStops:wM,PositionAffinity:OM,ShowLightbulbIconMode:zM,TextDirection:GM,ConfigurationChangedEvent:vX,BareFontInfo:Xf,FontInfo:GS,TextModelResolvedOptions:HC,FindMatch:i0,ApplyUpdateResult:m1,EditorZoom:kc,createMultiFileDiffEditor:Z3e,EditorType:zD,EditorOptions:mr}}function LFe(s,e){if(!e||!Array.isArray(e))return!1;for(const t of e)if(!s(t))return!1;return!0}function wC(s,e){return typeof s=="boolean"?s:e}function o$(s,e){return typeof s=="string"?s:e}function kFe(s){const e={};for(const t of s)e[t]=!0;return e}function a$(s,e=!1){e&&(s=s.map(function(i){return i.toLowerCase()}));const t=kFe(s);return e?function(i){return t[i.toLowerCase()]!==void 0&&t.hasOwnProperty(i.toLowerCase())}:function(i){return t[i]!==void 0&&t.hasOwnProperty(i)}}function KO(s,e,t){e=e.replace(/@@/g,"");let i=0,n;do n=!1,e=e.replace(/@(\w+)/g,function(o,a){n=!0;let l="";if(typeof s[a]=="string")l=s[a];else if(s[a]&&s[a]instanceof RegExp)l=s[a].source;else throw s[a]===void 0?jt(s,"language definition does not contain attribute '"+a+"', used at: "+e):jt(s,"attribute reference '"+a+"' must be a string, used at: "+e);return Ld(l)?"":"(?:"+l+")"}),i++;while(n&&i<5);e=e.replace(/\x01/g,"@");const r=(s.ignoreCase?"i":"")+(s.unicode?"u":"");if(t&&e.match(/\$[sS](\d\d?)/g)){let a=null,l=null;return h=>(l&&a===h||(a=h,l=new RegExp(Kye(s,e,h),r)),l)}return new RegExp(e,r)}function DFe(s,e,t,i){if(i<0)return s;if(i<e.length)return e[i];if(i>=100){i=i-100;const n=t.split(".");if(n.unshift(t),i<n.length)return n[i]}return null}function TFe(s,e,t,i){let n=-1,r=t,o=t.match(/^\$(([sS]?)(\d\d?)|#)(.*)$/);o&&(o[3]&&(n=parseInt(o[3]),o[2]&&(n=n+100)),r=o[4]);let a="~",l=r;!r||r.length===0?(a="!=",l=""):/^\w*$/.test(l)?a="==":(o=r.match(/^(@|!@|~|!~|==|!=)(.*)$/),o&&(a=o[1],l=o[2]));let h;if((a==="~"||a==="!~")&&/^(\w|\|)*$/.test(l)){const c=a$(l.split("|"),s.ignoreCase);h=function(u){return a==="~"?c(u):!c(u)}}else if(a==="@"||a==="!@"){const c=s[l];if(!c)throw jt(s,"the @ match target '"+l+"' is not defined, in rule: "+e);if(!LFe(function(d){return typeof d=="string"},c))throw jt(s,"the @ match target '"+l+"' must be an array of strings, in rule: "+e);const u=a$(c,s.ignoreCase);h=function(d){return a==="@"?u(d):!u(d)}}else if(a==="~"||a==="!~")if(l.indexOf("$")<0){const c=KO(s,"^"+l+"$",!1);h=function(u){return a==="~"?c.test(u):!c.test(u)}}else h=function(c,u,d,f){return KO(s,"^"+Dc(s,l,u,d,f)+"$",!1).test(c)};else if(l.indexOf("$")<0){const c=Hh(s,l);h=function(u){return a==="=="?u===c:u!==c}}else{const c=Hh(s,l);h=function(u,d,f,g,p){const m=Dc(s,c,d,f,g);return a==="=="?u===m:u!==m}}return n===-1?{name:t,value:i,test:function(c,u,d,f){return h(c,c,u,d,f)}}:{name:t,value:i,test:function(c,u,d,f){const g=DFe(c,u,d,n);return h(g||"",c,u,d,f)}}}function YO(s,e,t){if(t){if(typeof t=="string")return t;if(t.token||t.token===""){if(typeof t.token!="string")throw jt(s,"a 'token' attribute must be of type string, in rule: "+e);{const i={token:t.token};if(t.token.indexOf("$")>=0&&(i.tokenSubst=!0),typeof t.bracket=="string")if(t.bracket==="@open")i.bracket=1;else if(t.bracket==="@close")i.bracket=-1;else throw jt(s,"a 'bracket' attribute must be either '@open' or '@close', in rule: "+e);if(t.next){if(typeof t.next!="string")throw jt(s,"the next state must be a string value in rule: "+e);{let n=t.next;if(!/^(@pop|@push|@popall)$/.test(n)&&(n[0]==="@"&&(n=n.substr(1)),n.indexOf("$")<0&&!Yye(s,Dc(s,n,"",[],""))))throw jt(s,"the next state '"+t.next+"' is not defined in rule: "+e);i.next=n}}return typeof t.goBack=="number"&&(i.goBack=t.goBack),typeof t.switchTo=="string"&&(i.switchTo=t.switchTo),typeof t.log=="string"&&(i.log=t.log),typeof t.nextEmbedded=="string"&&(i.nextEmbedded=t.nextEmbedded,s.usesEmbedded=!0),i}}else if(Array.isArray(t)){const i=[];for(let n=0,r=t.length;n<r;n++)i[n]=YO(s,e,t[n]);return{group:i}}else if(t.cases){const i=[];let n=!1;for(const o in t.cases)if(t.cases.hasOwnProperty(o)){const a=YO(s,e,t.cases[o]);o==="@default"||o==="@"||o===""?i.push({test:void 0,value:a,name:o}):o==="@eos"?i.push({test:function(l,h,c,u){return u},value:a,name:o}):i.push(TFe(s,e,o,a)),n||(n=!en(a)&&(a.hasEmbeddedEndInCases||["@pop","@popall"].includes(a.nextEmbedded||"")))}const r=s.defaultToken;return{hasEmbeddedEndInCases:n,test:function(o,a,l,h){for(const c of i)if(!c.test||c.test(o,a,l,h))return c.value;return r}}}else throw jt(s,"an action must be a string, an object with a 'token' or 'cases' attribute, or an array of actions; in rule: "+e)}else return{token:""}}class IFe{constructor(e){this.regex=new RegExp(""),this.action={token:""},this.matchOnlyAtLineStart=!1,this.name="",this.name=e}setRegex(e,t){let i;if(typeof t=="string")i=t;else if(t instanceof RegExp)i=t.source;else throw jt(e,"rules must start with a match string or regular expression: "+this.name);this.matchOnlyAtLineStart=i.length>0&&i[0]==="^",this.name=this.name+": "+i,this.regex=KO(e,"^(?:"+(this.matchOnlyAtLineStart?i.substr(1):i)+")",!0)}setAction(e,t){this.action=YO(e,this.name,t)}resolveRegex(e){return this.regex instanceof RegExp?this.regex:this.regex(e)}}function $te(s,e){if(!e||typeof e!="object")throw new Error("Monarch: expecting a language definition object");const t={languageId:s,includeLF:wC(e.includeLF,!1),noThrow:!1,maxStack:100,start:typeof e.start=="string"?e.start:null,ignoreCase:wC(e.ignoreCase,!1),unicode:wC(e.unicode,!1),tokenPostfix:o$(e.tokenPostfix,"."+s),defaultToken:o$(e.defaultToken,"source"),usesEmbedded:!1,stateNames:{},tokenizer:{},brackets:[]},i=e;i.languageId=s,i.includeLF=t.includeLF,i.ignoreCase=t.ignoreCase,i.unicode=t.unicode,i.noThrow=t.noThrow,i.usesEmbedded=t.usesEmbedded,i.stateNames=e.tokenizer,i.defaultToken=t.defaultToken;function n(o,a,l){for(const h of l){let c=h.include;if(c){if(typeof c!="string")throw jt(t,"an 'include' attribute must be a string at: "+o);if(c[0]==="@"&&(c=c.substr(1)),!e.tokenizer[c])throw jt(t,"include target '"+c+"' is not defined at: "+o);n(o+"."+c,a,e.tokenizer[c])}else{const u=new IFe(o);if(Array.isArray(h)&&h.length>=1&&h.length<=3)if(u.setRegex(i,h[0]),h.length>=3)if(typeof h[1]=="string")u.setAction(i,{token:h[1],next:h[2]});else if(typeof h[1]=="object"){const d=h[1];d.next=h[2],u.setAction(i,d)}else throw jt(t,"a next state as the last element of a rule can only be given if the action is either an object or a string, at: "+o);else u.setAction(i,h[1]);else{if(!h.regex)throw jt(t,"a rule must either be an array, or an object with a 'regex' or 'include' field at: "+o);h.name&&typeof h.name=="string"&&(u.name=h.name),h.matchOnlyAtStart&&(u.matchOnlyAtLineStart=wC(h.matchOnlyAtLineStart,!1)),u.setRegex(i,h.regex),u.setAction(i,h.action)}a.push(u)}}}if(!e.tokenizer||typeof e.tokenizer!="object")throw jt(t,"a language definition must define the 'tokenizer' attribute as an object");t.tokenizer=[];for(const o in e.tokenizer)if(e.tokenizer.hasOwnProperty(o)){t.start||(t.start=o);const a=e.tokenizer[o];t.tokenizer[o]=new Array,n("tokenizer."+o,t.tokenizer[o],a)}if(t.usesEmbedded=i.usesEmbedded,e.brackets){if(!Array.isArray(e.brackets))throw jt(t,"the 'brackets' attribute must be defined as an array")}else e.brackets=[{open:"{",close:"}",token:"delimiter.curly"},{open:"[",close:"]",token:"delimiter.square"},{open:"(",close:")",token:"delimiter.parenthesis"},{open:"<",close:">",token:"delimiter.angle"}];const r=[];for(const o of e.brackets){let a=o;if(a&&Array.isArray(a)&&a.length===3&&(a={token:a[2],open:a[0],close:a[1]}),a.open===a.close)throw jt(t,"open and close brackets in a 'brackets' attribute must be different: "+a.open+`
|
|
878
|
-
hint: use the 'bracket' attribute if matching on equal brackets is required.`);if(typeof a.open=="string"&&typeof a.token=="string"&&typeof a.close=="string")r.push({token:a.token+t.tokenPostfix,open:Hh(t,a.open),close:Hh(t,a.close)});else throw jt(t,"every element in the 'brackets' array must be a '{open,close,token}' object or array")}return t.brackets=r,t.noThrow=!0,t}function EFe(s){tv.registerLanguage(s)}function NFe(){let s=[];return s=s.concat(tv.getLanguages()),s}function MFe(s){return xe.get(Gi).languageIdCodec.encodeLanguageId(s)}function AFe(s,e){return xe.withServices(()=>{const i=xe.get(Gi).onDidRequestRichLanguageFeatures(n=>{n===s&&(i.dispose(),e())});return i})}function RFe(s,e){return xe.withServices(()=>{const i=xe.get(Gi).onDidRequestBasicLanguageFeatures(n=>{n===s&&(i.dispose(),e())});return i})}function PFe(s,e){if(!xe.get(Gi).isRegisteredLanguageId(s))throw new Error(`Cannot set configuration for unknown language ${s}`);return xe.get(Ml).register(s,e,100)}class OFe{constructor(e,t){this._languageId=e,this._actual=t}dispose(){}getInitialState(){return this._actual.getInitialState()}tokenize(e,t,i){if(typeof this._actual.tokenize=="function")return $0.adaptTokenize(this._languageId,this._actual,e,i);throw new Error("Not supported!")}tokenizeEncoded(e,t,i){const n=this._actual.tokenizeEncoded(e,i);return new _D(n.tokens,n.endState)}}class $0{constructor(e,t,i,n){this._languageId=e,this._actual=t,this._languageService=i,this._standaloneThemeService=n}dispose(){}getInitialState(){return this._actual.getInitialState()}static _toClassicTokens(e,t){const i=[];let n=0;for(let r=0,o=e.length;r<o;r++){const a=e[r];let l=a.startIndex;r===0?l=0:l<n&&(l=n),i[r]=new Gb(l,a.scopes,t),n=l}return i}static adaptTokenize(e,t,i,n){const r=t.tokenize(i,n),o=$0._toClassicTokens(r.tokens,e);let a;return r.endState.equals(n)?a=n:a=r.endState,new Z4(o,a)}tokenize(e,t,i){return $0.adaptTokenize(this._languageId,this._actual,e,i)}_toBinaryTokens(e,t){const i=e.encodeLanguageId(this._languageId),n=this._standaloneThemeService.getColorTheme().tokenTheme,r=[];let o=0,a=0;for(let h=0,c=t.length;h<c;h++){const u=t[h],d=n.match(i,u.scopes)|1024;if(o>0&&r[o-1]===d)continue;let f=u.startIndex;h===0?f=0:f<a&&(f=a),r[o++]=f,r[o++]=d,a=f}const l=new Uint32Array(o);for(let h=0;h<o;h++)l[h]=r[h];return l}tokenizeEncoded(e,t,i){const n=this._actual.tokenize(e,i),r=this._toBinaryTokens(this._languageService.languageIdCodec,n.tokens);let o;return n.endState.equals(i)?o=i:o=n.endState,new _D(r,o)}}function FFe(s){return typeof s.getInitialState=="function"}function BFe(s){return"tokenizeEncoded"in s}function Gte(s){return s&&typeof s.then=="function"}function VFe(s){const e=xe.get(Vo);if(s){const t=[null];for(let i=1,n=s.length;i<n;i++)t[i]=Z.fromHex(s[i]);e.setColorMapOverride(t)}else e.setColorMapOverride(null)}function qte(s,e){return BFe(e)?new OFe(s,e):new $0(s,e,xe.get(Gi),xe.get(Vo))}function b7(s,e){const t=new q_e(async()=>{const i=await Promise.resolve(e.create());return i?FFe(i)?qte(s,i):new l0(xe.get(Gi),xe.get(Vo),s,$te(s,i),xe.get(Yt)):null});return wi.registerFactory(s,t)}function WFe(s,e){if(!xe.get(Gi).isRegisteredLanguageId(s))throw new Error(`Cannot set tokens provider for unknown language ${s}`);return Gte(e)?b7(s,{create:()=>e}):wi.register(s,qte(s,e))}function HFe(s,e){const t=i=>new l0(xe.get(Gi),xe.get(Vo),s,$te(s,i),xe.get(Yt));return Gte(e)?b7(s,{create:()=>e}):wi.register(s,t(e))}function zFe(s,e){return xe.get(Wt).referenceProvider.register(s,e)}function jFe(s,e){return xe.get(Wt).renameProvider.register(s,e)}function UFe(s,e){return xe.get(Wt).newSymbolNamesProvider.register(s,e)}function $Fe(s,e){return xe.get(Wt).signatureHelpProvider.register(s,e)}function GFe(s,e){return xe.get(Wt).hoverProvider.register(s,{provideHover:async(i,n,r,o)=>{const a=i.getWordAtPosition(n);return Promise.resolve(e.provideHover(i,n,r,o)).then(l=>{if(l)return!l.range&&a&&(l.range=new F(n.lineNumber,a.startColumn,n.lineNumber,a.endColumn)),l.range||(l.range=new F(n.lineNumber,n.column,n.lineNumber,n.column)),l})}})}function qFe(s,e){return xe.get(Wt).documentSymbolProvider.register(s,e)}function KFe(s,e){return xe.get(Wt).documentHighlightProvider.register(s,e)}function YFe(s,e){return xe.get(Wt).linkedEditingRangeProvider.register(s,e)}function XFe(s,e){return xe.get(Wt).definitionProvider.register(s,e)}function ZFe(s,e){return xe.get(Wt).implementationProvider.register(s,e)}function QFe(s,e){return xe.get(Wt).typeDefinitionProvider.register(s,e)}function JFe(s,e){return xe.get(Wt).codeLensProvider.register(s,e)}function e7e(s,e,t){return xe.get(Wt).codeActionProvider.register(s,{providedCodeActionKinds:t==null?void 0:t.providedCodeActionKinds,documentation:t==null?void 0:t.documentation,provideCodeActions:(n,r,o,a)=>{const h=xe.get(Mg).read({resource:n.uri}).filter(c=>F.areIntersectingOrTouching(c,r));return e.provideCodeActions(n,r,{markers:h,only:o.only,trigger:o.trigger},a)},resolveCodeAction:e.resolveCodeAction})}function t7e(s,e){return xe.get(Wt).documentFormattingEditProvider.register(s,e)}function i7e(s,e){return xe.get(Wt).documentRangeFormattingEditProvider.register(s,e)}function n7e(s,e){return xe.get(Wt).onTypeFormattingEditProvider.register(s,e)}function s7e(s,e){return xe.get(Wt).linkProvider.register(s,e)}function r7e(s,e){return xe.get(Wt).completionProvider.register(s,e)}function o7e(s,e){return xe.get(Wt).colorProvider.register(s,e)}function a7e(s,e){return xe.get(Wt).foldingRangeProvider.register(s,e)}function l7e(s,e){return xe.get(Wt).declarationProvider.register(s,e)}function h7e(s,e){return xe.get(Wt).selectionRangeProvider.register(s,e)}function c7e(s,e){return xe.get(Wt).documentSemanticTokensProvider.register(s,e)}function u7e(s,e){return xe.get(Wt).documentRangeSemanticTokensProvider.register(s,e)}function d7e(s,e){return xe.get(Wt).inlineCompletionsProvider.register(s,e)}function f7e(s,e){return xe.get(Wt).inlayHintsProvider.register(s,e)}function g7e(){return{register:EFe,getLanguages:NFe,onLanguage:AFe,onLanguageEncountered:RFe,getEncodedLanguageId:MFe,setLanguageConfiguration:PFe,setColorMap:VFe,registerTokensProviderFactory:b7,setTokensProvider:WFe,setMonarchTokensProvider:HFe,registerReferenceProvider:zFe,registerRenameProvider:jFe,registerNewSymbolNameProvider:UFe,registerCompletionItemProvider:r7e,registerSignatureHelpProvider:$Fe,registerHoverProvider:GFe,registerDocumentSymbolProvider:qFe,registerDocumentHighlightProvider:KFe,registerLinkedEditingRangeProvider:YFe,registerDefinitionProvider:XFe,registerImplementationProvider:ZFe,registerTypeDefinitionProvider:QFe,registerCodeLensProvider:JFe,registerCodeActionProvider:e7e,registerDocumentFormattingEditProvider:t7e,registerDocumentRangeFormattingEditProvider:i7e,registerOnTypeFormattingEditProvider:n7e,registerLinkProvider:s7e,registerColorProvider:o7e,registerFoldingRangeProvider:a7e,registerDeclarationProvider:l7e,registerSelectionRangeProvider:h7e,registerDocumentSemanticTokensProvider:c7e,registerDocumentRangeSemanticTokensProvider:u7e,registerInlineCompletionsProvider:d7e,registerInlayHintsProvider:f7e,DocumentHighlightKind:dM,CompletionItemKind:oM,CompletionItemTag:aM,CompletionItemInsertTextRule:rM,SymbolKind:UM,SymbolTag:$M,IndentAction:bM,CompletionTriggerKind:lM,SignatureHelpTriggerKind:jM,InlayHintKind:yM,InlineCompletionTriggerKind:xM,CodeActionTriggerType:sM,NewSymbolNameTag:NM,NewSymbolNameTriggerKind:MM,PartialAcceptTriggerKind:PM,HoverVerbosityAction:_M,InlineCompletionEndOfLifeReasonKind:CM,InlineCompletionHintStyle:SM,FoldingRangeKind:iM,SelectedSuggestionInfo:G_e,EditDeltaInfo:Gx}}const Kte=Ge("IEditorCancelService"),Yte=new pe("cancellableOperation",!1,w(939,"Whether the editor runs a cancellable operation, e.g. like 'Peek References'"));et(Kte,class{constructor(){this._tokens=new WeakMap}add(s,e){let t=this._tokens.get(s);t||(t=s.invokeWithinContext(n=>{const r=Yte.bindTo(n.get(vt)),o=new xs;return{key:r,tokens:o}}),this._tokens.set(s,t));let i;return t.key.set(!0),i=t.tokens.push(e),()=>{i&&(i(),t.key.set(!t.tokens.isEmpty()),i=void 0)}}cancel(s){const e=this._tokens.get(s);if(!e)return;const t=e.tokens.pop();t&&(t.cancel(),e.key.set(!e.tokens.isEmpty()))}},1);We(new class extends ng{constructor(){super({id:"editor.cancelOperation",kbOpts:{weight:100,primary:9},precondition:Yte})}runEditorCommand(s,e){s.get(Kte).cancel(e)}});class l${constructor(e){this.value=e,this._lower=e.toLowerCase()}static toKey(e){return typeof e=="string"?e.toLowerCase():e._lower}}class p7e{constructor(e){if(this._set=new Set,e)for(const t of e)this.add(t)}add(e){this._set.add(l$.toKey(e))}has(e){return this._set.has(l$.toKey(e))}}function m7e(s,e,t){const i=[],n=new p7e,r=s.ordered(t);for(const a of r)i.push(a),a.extensionId&&n.add(a.extensionId);const o=e.ordered(t);for(const a of o){if(a.extensionId){if(n.has(a.extensionId))continue;n.add(a.extensionId)}i.push({displayName:a.displayName,extensionId:a.extensionId,provideDocumentFormattingEdits(l,h,c){return a.provideDocumentRangeFormattingEdits(l,l.getFullModelRange(),h,c)}})}return i}const gb=class gb{static setFormatterSelector(e){return{dispose:gb._selectors.unshift(e)}}static async select(e,t,i,n){if(e.length===0)return;const r=lt.first(gb._selectors);if(r)return await r(e,t,i,n)}};gb._selectors=new xs;let XO=gb;async function v7e(s,e,t,i,n,r){const o=e.documentRangeFormattingEditProvider.ordered(t);for(const a of o){const l=await Promise.resolve(a.provideDocumentRangeFormattingEdits(t,i,n,r)).catch(B4);if(fD(l))return await s.computeMoreMinimalEdits(t.uri,l)}}async function _7e(s,e,t,i,n){const r=m7e(e.documentFormattingEditProvider,e.documentRangeFormattingEditProvider,t);for(const o of r){const a=await Promise.resolve(o.provideDocumentFormattingEdits(t,i,n)).catch(B4);if(fD(a))return await s.computeMoreMinimalEdits(t.uri,a)}}function b7e(s,e,t,i,n,r,o){const a=e.onTypeFormattingEditProvider.ordered(t);return a.length===0||a[0].autoFormatTriggerCharacters.indexOf(n)<0?Promise.resolve(void 0):Promise.resolve(a[0].provideOnTypeFormattingEdits(t,i,n,r,o)).catch(B4).then(l=>s.computeMoreMinimalEdits(t.uri,l))}Ns.registerCommand("_executeFormatRangeProvider",async function(s,...e){const[t,i,n]=e;Qc(qe.isUri(t)),Qc(F.isIRange(i));const r=s.get(DD),o=s.get(Fw),a=s.get(Wt),l=await r.createModelReference(t);try{return v7e(o,a,l.object.textEditorModel,F.lift(i),n,Mr.None)}finally{l.dispose()}});Ns.registerCommand("_executeFormatDocumentProvider",async function(s,...e){const[t,i]=e;Qc(qe.isUri(t));const n=s.get(DD),r=s.get(Fw),o=s.get(Wt),a=await n.createModelReference(t);try{return _7e(r,o,a.object.textEditorModel,i,Mr.None)}finally{a.dispose()}});Ns.registerCommand("_executeFormatOnTypeProvider",async function(s,...e){const[t,i,n,r]=e;Qc(qe.isUri(t)),Qc(H.isIPosition(i)),Qc(typeof n=="string");const o=s.get(DD),a=s.get(Fw),l=s.get(Wt),h=await o.createModelReference(t);try{return b7e(a,l,h.object.textEditorModel,H.lift(i),n,r,Mr.None)}finally{h.dispose()}});mr.wrappingIndent.defaultValue=0;mr.glyphMargin.defaultValue=!1;mr.autoIndent.defaultValue=3;mr.overviewRulerLanes.defaultValue=2;XO.setFormatterSelector((s,e,t)=>Promise.resolve(s[0]));const cs=EX();cs.editor=xFe();cs.languages=g7e();const Xte=cs.CancellationTokenSource,Zte=cs.Emitter,Qte=cs.KeyCode,Jte=cs.KeyMod,eie=cs.Position,tie=cs.Range,iie=cs.Selection,nie=cs.SelectionDirection,sie=cs.MarkerSeverity,rie=cs.MarkerTag,oie=cs.Uri,aie=cs.Token,Fn=cs.editor,lie=cs.languages,xE=o3(),Om=globalThis;(xE!=null&&xE.globalAPI||typeof Om.define=="function"&&Om.define.amd)&&(Om.monaco=cs);typeof Om.require<"u"&&typeof Om.require.config=="function"&&Om.require.config({ignoreDuplicateModules:["vscode-languageserver-types","vscode-languageserver-types/main","vscode-languageserver-textdocument","vscode-languageserver-textdocument/main","vscode-nls","vscode-nls/vscode-nls","jsonc-parser","jsonc-parser/main","vscode-uri","vscode-uri/index","vs/basic-languages/typescript/typescript"]});const w7e=Object.freeze(Object.defineProperty({__proto__:null,CancellationTokenSource:Xte,Emitter:Zte,KeyCode:Qte,KeyMod:Jte,MarkerSeverity:sie,MarkerTag:rie,Position:eie,Range:tie,Selection:iie,SelectionDirection:nie,Token:aie,Uri:oie,editor:Fn,languages:lie},Symbol.toStringTag,{value:"Module"}));function y7e(){return w7e}const LE=globalThis.MonacoEnvironment;LE!=null&&LE.globalAPI&&(globalThis.monaco=y7e());const kh=Object.freeze(Object.defineProperty({__proto__:null,CancellationTokenSource:Xte,Emitter:Zte,KeyCode:Qte,KeyMod:Jte,MarkerSeverity:sie,MarkerTag:rie,Position:eie,Range:tie,Selection:iie,SelectionDirection:nie,Token:aie,Uri:oie,editor:Fn,languages:lie},Symbol.toStringTag,{value:"Module"}));function OL(s){return/^\d+$/.test(s)?"".concat(s,"px"):s}function qc(){}var Fd=function(){return Fd=Object.assign||function(s){for(var e,t=1,i=arguments.length;t<i;t++){e=arguments[t];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(s[n]=e[n])}return s},Fd.apply(this,arguments)};function C7e(s,e){var t=s.width,i=t===void 0?"100%":t,n=s.height,r=n===void 0?"100%":n,o=s.value,a=o===void 0?null:o,l=s.defaultValue,h=l===void 0?"":l,c=s.language,u=c===void 0?"javascript":c,d=s.theme,f=d===void 0?null:d,g=s.options,p=g===void 0?{}:g,m=s.overrideServices,v=m===void 0?{}:m,_=s.editorWillMount,b=_===void 0?qc:_,y=s.editorDidMount,C=y===void 0?qc:y,x=s.editorWillUnmount,S=x===void 0?qc:x,k=s.onChange,T=k===void 0?qc:k,I=s.className,N=I===void 0?null:I,A=s.original,R=A===void 0?null:A,P=s.originalUri,B=s.modifiedUri,z=Te.useRef(null),U=Te.useRef(null),K=Te.useRef(null),X=Te.useRef(null),ne=OL(i),oe=OL(r),ue=Te.useMemo(function(){return{width:ne,height:oe}},[ne,oe]);Te.useImperativeHandle(e,function(){return{get editor(){return U.current}}});var de=function(){var Pe=b(kh);return Pe||{}},De=function(){C(U.current,kh);var Pe=U.current.getModel().modified;K.current=Pe.onDidChangeContent(function(tt){X.current||T(Pe.getValue(),tt)})},Q=function(){S(U.current,kh)},Xe=function(){var Pe=a??h,tt=P==null?void 0:P(kh),st=B==null?void 0:B(kh),ve=tt&&Fn.getModel(tt),ge=st&&Fn.getModel(st);ve?(ve.setValue(R),Fn.setModelLanguage(ve,u)):ve=Fn.createModel(Pe,u,tt),ge?(ve.setValue(Pe),Fn.setModelLanguage(ge,u)):ge=Fn.createModel(Pe,u,st),U.current.setModel({original:ve,modified:ge})};return Te.useEffect(function(){z.current&&(de(),U.current=Fn.createDiffEditor(z.current,Fd(Fd(Fd({},N?{extraEditorClassName:N}:{}),p),f?{theme:f}:{}),v),Xe(),De())},[]),Te.useEffect(function(){U.current&&U.current.updateOptions(Fd(Fd({},N?{extraEditorClassName:N}:{}),p))},[N,p]),Te.useEffect(function(){U.current&&U.current.layout()},[i,r]),Te.useEffect(function(){if(U.current){var Pe=U.current.getModel(),tt=Pe.original,st=Pe.modified;Fn.setModelLanguage(tt,u),Fn.setModelLanguage(st,u)}},[u]),Te.useEffect(function(){if(U.current){var Pe=U.current.getModel().modified;X.current=!0,U.current.getModifiedEditor().pushUndoStop(),Pe.pushEditOperations([],[{range:Pe.getFullModelRange(),text:a}]),U.current.getModifiedEditor().pushUndoStop(),X.current=!1}},[a]),Te.useEffect(function(){Fn.setTheme(f)},[f]),Te.useEffect(function(){if(U.current){var Pe=U.current.getModel().original;R!==Pe.getValue()&&Pe.setValue(R)}},[R]),Te.useEffect(function(){return function(){if(U.current){Q(),U.current.dispose();var Pe=U.current.getModel(),tt=Pe.original,st=Pe.modified;tt&&tt.dispose(),st&&st.dispose()}K.current&&K.current.dispose()}},[]),Te.createElement("div",{ref:z,style:ue,className:"react-monaco-editor-container"})}var S7e=Te.forwardRef(C7e);S7e.displayName="MonacoDiffEditor";var lh=function(){return lh=Object.assign||function(s){for(var e,t=1,i=arguments.length;t<i;t++){e=arguments[t];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(s[n]=e[n])}return s},lh.apply(this,arguments)},x7e=function(s,e){var t={};for(var i in s)Object.prototype.hasOwnProperty.call(s,i)&&e.indexOf(i)<0&&(t[i]=s[i]);if(s!=null&&typeof Object.getOwnPropertySymbols=="function")for(var n=0,i=Object.getOwnPropertySymbols(s);n<i.length;n++)e.indexOf(i[n])<0&&Object.prototype.propertyIsEnumerable.call(s,i[n])&&(t[i[n]]=s[i[n]]);return t};function L7e(s,e){var t=s.width,i=t===void 0?"100%":t,n=s.height,r=n===void 0?"100%":n,o=s.value,a=o===void 0?null:o,l=s.defaultValue,h=l===void 0?"":l,c=s.language,u=c===void 0?"javascript":c,d=s.theme,f=d===void 0?null:d,g=s.options,p=g===void 0?{}:g,m=s.overrideServices,v=m===void 0?{}:m,_=s.editorWillMount,b=_===void 0?qc:_,y=s.editorDidMount,C=y===void 0?qc:y,x=s.editorWillUnmount,S=x===void 0?qc:x,k=s.onChange,T=k===void 0?qc:k,I=s.className,N=I===void 0?null:I,A=s.uri,R=Te.useRef(null),P=Te.useRef(null),B=Te.useRef(null),z=Te.useRef(null),U=OL(i),K=OL(r),X=Te.useRef(T);X.current=T,Te.useImperativeHandle(e,function(){return{get editor(){return P.current}}});var ne=Te.useMemo(function(){return{width:U,height:K}},[U,K]),oe=function(){var Q=b(kh);return Q||{}},ue=function(){C(P.current,kh),B.current=P.current.onDidChangeModelContent(function(Q){var Xe;z.current||(Xe=X.current)===null||Xe===void 0||Xe.call(X,P.current.getValue(),Q)})},de=function(){S(P.current,kh)},De=function(){var Q=a!==null?a:h;if(R.current){var Xe=lh(lh({},p),oe()),Pe=A==null?void 0:A(kh),tt=Pe&&Fn.getModel(Pe);tt?(tt.setValue(Q),Fn.setModelLanguage(tt,u)):tt=Fn.createModel(Q,u,Pe),P.current=Fn.create(R.current,lh(lh(lh({model:tt},N?{extraEditorClassName:N}:{}),Xe),f?{theme:f}:{}),v),ue()}};return Te.useEffect(De,[]),Te.useEffect(function(){if(P.current&&a!==null){if(a===P.current.getValue())return;var Q=P.current.getModel();z.current=!0,P.current.pushUndoStop(),Q.pushEditOperations([],[{range:Q.getFullModelRange(),text:a}],void 0),P.current.pushUndoStop(),z.current=!1}},[a]),Te.useEffect(function(){if(P.current){var Q=P.current.getModel();Fn.setModelLanguage(Q,u)}},[u]),Te.useEffect(function(){if(P.current){p.model;var Q=x7e(p,["model"]);P.current.updateOptions(lh(lh({},N?{extraEditorClassName:N}:{}),Q))}},[N,p]),Te.useEffect(function(){P.current&&P.current.layout()},[i,r]),Te.useEffect(function(){Fn.setTheme(f)},[f]),Te.useEffect(function(){return function(){P.current&&(de(),P.current.dispose()),B.current&&B.current.dispose()}},[]),Te.createElement("div",{ref:R,style:ne,className:"react-monaco-editor-container"})}var hie=Te.forwardRef(L7e);hie.displayName="MonacoEditor";const k7e={dialog:{height:"100%",maxHeight:"100%",maxWidth:"100%"}};function D7e(s){const[e,t]=uS.useState("");let i=!1;try{JSON.parse(e)}catch{i=!0}return L.jsxs(E.Dialog,{style:k7e.dialog,open:!0,maxWidth:"lg",onClose:()=>s.onClose(),fullWidth:!0,children:[L.jsx(E.DialogTitle,{children:s.t("Insert JSON with objects here")}),L.jsx(E.DialogContent,{style:{minHeight:500},children:L.jsx(hie,{width:"100%",height:"500px",language:"json",theme:s.themeType==="dark"?"vs-dark":"vs-light",value:e,options:{selectOnLineNumbers:!0},onChange:n=>t(n),editorDidMount:n=>n.focus()})}),L.jsxs(E.DialogActions,{children:[L.jsx(E.Button,{variant:"contained",disabled:i||!e.trim(),onClick:()=>s.onClose(e),startIcon:L.jsx(Ie.ContentPaste,{}),color:"primary",children:s.t("Import objects")}),L.jsx(E.Button,{variant:"contained",onClick:()=>s.onClose(),startIcon:L.jsx(Ie.Close,{}),color:"grey",children:s.t("Close")})]})]})}const T7e=Ie.Delete,yC={buttonAll:{color:"#FF0000"},id:{fontStyle:"italic"},buttonText:{whiteSpace:"nowrap"}};class m6e extends Te.Component{dialogName;filters;t;wordCache;constructor(e){super(e),this.dialogName="AdminObjects";const t=(window._localStorage||window.localStorage).getItem(`${this.dialogName||"App"}.filters`)||"{}";try{this.filters=JSON.parse(t)}catch{this.filters={}}const i=(window._localStorage||window.localStorage).getItem(`${this.dialogName||"App"}.selected`)||"";this.state={selected:i,name:"",toast:"",deleteObjectShow:null},this.t=this.translate,this.wordCache={}}translate=(e,t,i)=>t!==void 0?this.props.t(e,t,i):(this.wordCache[e]||(this.wordCache[e]=this.props.t(e)),this.wordCache[e]);onDelete(e){const t=this.state.deleteObjectShow.id;e?(this.props.socket.delObjects(t,!0).then(()=>this.setState({toast:this.t("All deleted")})).catch(i=>window.alert(`Cannot delete object: ${i}`)),this.setState({deleteObjectShow:null})):(this.props.socket.delObject(t,!1).catch(i=>window.alert(`Cannot delete object: ${i}`)),this.setState({deleteObjectShow:null}))}renderToast(){return L.jsx(E.Snackbar,{anchorOrigin:{vertical:"bottom",horizontal:"right"},open:!!this.state.toast,autoHideDuration:3e3,onClose:()=>this.setState({toast:""}),message:this.state.toast,action:L.jsx(E.IconButton,{size:"small","aria-label":"close",color:"inherit",onClick:()=>this.setState({toast:""}),children:L.jsx(Ie.Cancel,{fontSize:"small"})})},"toast")}renderDeleteDialog(){return this.state.deleteObjectShow?L.jsxs(E.Dialog,{maxWidth:"md",open:!0,onClose:()=>this.setState({deleteObjectShow:null}),"aria-labelledby":"delete-object-dialog-title","aria-describedby":"delete-object-dialog-description",children:[L.jsxs(E.DialogTitle,{id:"delete-object-dialog-title",children:[this.state.deleteObjectShow.hasChildren?this.t("Delete object(s)"):this.t("Delete object"),":"," ",L.jsx("span",{style:yC.id,children:this.state.deleteObjectShow.id})]}),L.jsx(E.DialogContent,{children:L.jsx(E.DialogContentText,{children:this.t("Are you sure?")})}),L.jsxs(E.DialogActions,{children:[this.state.deleteObjectShow.hasChildren?L.jsx(E.Button,{variant:"contained",color:"grey",sx:{"& .MuiButton-text":yC.buttonText},onClick:()=>this.onDelete(!0),startIcon:L.jsx(T7e,{style:yC.buttonAll}),children:this.t("Delete with children",this.state.deleteObjectShow.childrenCount)}):null,this.state.deleteObjectShow.exists?L.jsx(E.Button,{variant:"contained",sx:{"& .MuiButton-text":yC.buttonText},onClick:()=>this.onDelete(!1),color:"primary",startIcon:L.jsx(Ie.Delete,{}),autoFocus:!0,children:this.t("Delete one item")}):null,L.jsx(E.Button,{variant:"contained",color:"grey",onClick:()=>this.setState({deleteObjectShow:null}),startIcon:L.jsx(Ie.Cancel,{}),children:this.t("ra_Cancel")})]})]},"delete"):null}render(){const e=ee.Router.getLocation(),t=e.tab==="tab-objects"&&e.id?{mode:e.dialog==="view"?"viewFile":e.dialog||"select",id:e.id}:null;return[this.renderToast(),L.jsx(ee.ObjectBrowser,{navigateTo:t,onNavigateTo:i=>{i!=null&&i.id?ee.Router.doNavigate("tab-objects",i.mode==="viewFile"?"view":i.mode,i.id):ee.Router.doNavigate("tab-objects")},dialogName:"admin",objectsWorker:this.props.objectsWorker,prefix:this.props.prefix,defaultFilters:this.filters,statesOnly:this.props.statesOnly,style:{width:"100%",height:"100%"},socket:this.props.socket,selected:(t==null?void 0:t.id)||this.state.selected,name:this.state.name,expertMode:this.props.expertMode,isFloatComma:this.props.isFloatComma,dateFormat:this.props.dateFormat,t:this.t,lang:this.props.lang,themeName:this.props.themeName,themeType:this.props.themeType,theme:this.props.theme,objectCustomDialog:Eme,objectBrowserValue:Ep,objectBrowserEditObject:$n,objectBrowserEditRole:A4,objectBrowserViewFile:Fme,objectBrowserAliasEditor:g1,objectMoveRenameDialog:R4,objectBrowserInsertJsonObjects:D7e,router:ee.Router,enableStateValueEdit:!0,onObjectDelete:(i,n,r,o)=>this.setState({deleteObjectShow:{id:i,hasChildren:n,exists:r,childrenCount:o}}),onFilterChanged:i=>{this.filters=i,(window._localStorage||window.localStorage).setItem(`${this.dialogName||"App"}.filters`,JSON.stringify(i))},onSelect:i=>{Array.isArray(i)?(window._localStorage||window.localStorage).setItem(`${this.dialogName||"App"}.selected`,i[0]||""):(window._localStorage||window.localStorage).setItem(`${this.dialogName||"App"}.selected`,i||"")},objectEditBoolean:!0,objectAddBoolean:!0,objectStatesView:!0,objectImportExport:!0,objectEditOfAccessControl:!0,modalNewObject:i=>L.jsx(Rme,{objects:i.objects,expertMode:this.props.expertMode,setObject:(n,r)=>this.props.socket.setObject(n,r).catch(o=>window.alert(o)),selected:i.state.modalNewObj.id,initialType:i.state.modalNewObj.initialType,initialStateType:i.state.modalNewObj.initialStateType,onClose:()=>i.setState({modalNewObj:null}),onApply:()=>i.setState({modalNewObj:null})}),modalEditOfAccessControl:(i,n)=>L.jsx(Ome,{theme:this.props.theme,themeType:this.props.themeType,extendObject:(r,o)=>{this.props.socket.extendObject(r,o).catch(a=>window.alert(a)),n.aclTooltip=null},selected:i.state.selected[0],modalEmptyId:n.obj?"":n.id,objects:i.objects,t:this.t,onClose:()=>i.setState({modalEditOfAccess:!1,modalEditOfAccessObjData:null}),onApply:()=>i.setState({modalEditOfAccess:!1,modalEditOfAccessObjData:null})})},"browser"),this.renderDeleteDialog()]}}export{m6e as default};
|
|
878
|
+
hint: use the 'bracket' attribute if matching on equal brackets is required.`);if(typeof a.open=="string"&&typeof a.token=="string"&&typeof a.close=="string")r.push({token:a.token+t.tokenPostfix,open:Hh(t,a.open),close:Hh(t,a.close)});else throw jt(t,"every element in the 'brackets' array must be a '{open,close,token}' object or array")}return t.brackets=r,t.noThrow=!0,t}function EFe(s){tv.registerLanguage(s)}function NFe(){let s=[];return s=s.concat(tv.getLanguages()),s}function MFe(s){return xe.get(Gi).languageIdCodec.encodeLanguageId(s)}function AFe(s,e){return xe.withServices(()=>{const i=xe.get(Gi).onDidRequestRichLanguageFeatures(n=>{n===s&&(i.dispose(),e())});return i})}function RFe(s,e){return xe.withServices(()=>{const i=xe.get(Gi).onDidRequestBasicLanguageFeatures(n=>{n===s&&(i.dispose(),e())});return i})}function PFe(s,e){if(!xe.get(Gi).isRegisteredLanguageId(s))throw new Error(`Cannot set configuration for unknown language ${s}`);return xe.get(Ml).register(s,e,100)}class OFe{constructor(e,t){this._languageId=e,this._actual=t}dispose(){}getInitialState(){return this._actual.getInitialState()}tokenize(e,t,i){if(typeof this._actual.tokenize=="function")return $0.adaptTokenize(this._languageId,this._actual,e,i);throw new Error("Not supported!")}tokenizeEncoded(e,t,i){const n=this._actual.tokenizeEncoded(e,i);return new _D(n.tokens,n.endState)}}class $0{constructor(e,t,i,n){this._languageId=e,this._actual=t,this._languageService=i,this._standaloneThemeService=n}dispose(){}getInitialState(){return this._actual.getInitialState()}static _toClassicTokens(e,t){const i=[];let n=0;for(let r=0,o=e.length;r<o;r++){const a=e[r];let l=a.startIndex;r===0?l=0:l<n&&(l=n),i[r]=new Gb(l,a.scopes,t),n=l}return i}static adaptTokenize(e,t,i,n){const r=t.tokenize(i,n),o=$0._toClassicTokens(r.tokens,e);let a;return r.endState.equals(n)?a=n:a=r.endState,new Z4(o,a)}tokenize(e,t,i){return $0.adaptTokenize(this._languageId,this._actual,e,i)}_toBinaryTokens(e,t){const i=e.encodeLanguageId(this._languageId),n=this._standaloneThemeService.getColorTheme().tokenTheme,r=[];let o=0,a=0;for(let h=0,c=t.length;h<c;h++){const u=t[h],d=n.match(i,u.scopes)|1024;if(o>0&&r[o-1]===d)continue;let f=u.startIndex;h===0?f=0:f<a&&(f=a),r[o++]=f,r[o++]=d,a=f}const l=new Uint32Array(o);for(let h=0;h<o;h++)l[h]=r[h];return l}tokenizeEncoded(e,t,i){const n=this._actual.tokenize(e,i),r=this._toBinaryTokens(this._languageService.languageIdCodec,n.tokens);let o;return n.endState.equals(i)?o=i:o=n.endState,new _D(r,o)}}function FFe(s){return typeof s.getInitialState=="function"}function BFe(s){return"tokenizeEncoded"in s}function Gte(s){return s&&typeof s.then=="function"}function VFe(s){const e=xe.get(Vo);if(s){const t=[null];for(let i=1,n=s.length;i<n;i++)t[i]=Z.fromHex(s[i]);e.setColorMapOverride(t)}else e.setColorMapOverride(null)}function qte(s,e){return BFe(e)?new OFe(s,e):new $0(s,e,xe.get(Gi),xe.get(Vo))}function b7(s,e){const t=new q_e(async()=>{const i=await Promise.resolve(e.create());return i?FFe(i)?qte(s,i):new l0(xe.get(Gi),xe.get(Vo),s,$te(s,i),xe.get(Yt)):null});return wi.registerFactory(s,t)}function WFe(s,e){if(!xe.get(Gi).isRegisteredLanguageId(s))throw new Error(`Cannot set tokens provider for unknown language ${s}`);return Gte(e)?b7(s,{create:()=>e}):wi.register(s,qte(s,e))}function HFe(s,e){const t=i=>new l0(xe.get(Gi),xe.get(Vo),s,$te(s,i),xe.get(Yt));return Gte(e)?b7(s,{create:()=>e}):wi.register(s,t(e))}function zFe(s,e){return xe.get(Wt).referenceProvider.register(s,e)}function jFe(s,e){return xe.get(Wt).renameProvider.register(s,e)}function UFe(s,e){return xe.get(Wt).newSymbolNamesProvider.register(s,e)}function $Fe(s,e){return xe.get(Wt).signatureHelpProvider.register(s,e)}function GFe(s,e){return xe.get(Wt).hoverProvider.register(s,{provideHover:async(i,n,r,o)=>{const a=i.getWordAtPosition(n);return Promise.resolve(e.provideHover(i,n,r,o)).then(l=>{if(l)return!l.range&&a&&(l.range=new F(n.lineNumber,a.startColumn,n.lineNumber,a.endColumn)),l.range||(l.range=new F(n.lineNumber,n.column,n.lineNumber,n.column)),l})}})}function qFe(s,e){return xe.get(Wt).documentSymbolProvider.register(s,e)}function KFe(s,e){return xe.get(Wt).documentHighlightProvider.register(s,e)}function YFe(s,e){return xe.get(Wt).linkedEditingRangeProvider.register(s,e)}function XFe(s,e){return xe.get(Wt).definitionProvider.register(s,e)}function ZFe(s,e){return xe.get(Wt).implementationProvider.register(s,e)}function QFe(s,e){return xe.get(Wt).typeDefinitionProvider.register(s,e)}function JFe(s,e){return xe.get(Wt).codeLensProvider.register(s,e)}function e7e(s,e,t){return xe.get(Wt).codeActionProvider.register(s,{providedCodeActionKinds:t==null?void 0:t.providedCodeActionKinds,documentation:t==null?void 0:t.documentation,provideCodeActions:(n,r,o,a)=>{const h=xe.get(Mg).read({resource:n.uri}).filter(c=>F.areIntersectingOrTouching(c,r));return e.provideCodeActions(n,r,{markers:h,only:o.only,trigger:o.trigger},a)},resolveCodeAction:e.resolveCodeAction})}function t7e(s,e){return xe.get(Wt).documentFormattingEditProvider.register(s,e)}function i7e(s,e){return xe.get(Wt).documentRangeFormattingEditProvider.register(s,e)}function n7e(s,e){return xe.get(Wt).onTypeFormattingEditProvider.register(s,e)}function s7e(s,e){return xe.get(Wt).linkProvider.register(s,e)}function r7e(s,e){return xe.get(Wt).completionProvider.register(s,e)}function o7e(s,e){return xe.get(Wt).colorProvider.register(s,e)}function a7e(s,e){return xe.get(Wt).foldingRangeProvider.register(s,e)}function l7e(s,e){return xe.get(Wt).declarationProvider.register(s,e)}function h7e(s,e){return xe.get(Wt).selectionRangeProvider.register(s,e)}function c7e(s,e){return xe.get(Wt).documentSemanticTokensProvider.register(s,e)}function u7e(s,e){return xe.get(Wt).documentRangeSemanticTokensProvider.register(s,e)}function d7e(s,e){return xe.get(Wt).inlineCompletionsProvider.register(s,e)}function f7e(s,e){return xe.get(Wt).inlayHintsProvider.register(s,e)}function g7e(){return{register:EFe,getLanguages:NFe,onLanguage:AFe,onLanguageEncountered:RFe,getEncodedLanguageId:MFe,setLanguageConfiguration:PFe,setColorMap:VFe,registerTokensProviderFactory:b7,setTokensProvider:WFe,setMonarchTokensProvider:HFe,registerReferenceProvider:zFe,registerRenameProvider:jFe,registerNewSymbolNameProvider:UFe,registerCompletionItemProvider:r7e,registerSignatureHelpProvider:$Fe,registerHoverProvider:GFe,registerDocumentSymbolProvider:qFe,registerDocumentHighlightProvider:KFe,registerLinkedEditingRangeProvider:YFe,registerDefinitionProvider:XFe,registerImplementationProvider:ZFe,registerTypeDefinitionProvider:QFe,registerCodeLensProvider:JFe,registerCodeActionProvider:e7e,registerDocumentFormattingEditProvider:t7e,registerDocumentRangeFormattingEditProvider:i7e,registerOnTypeFormattingEditProvider:n7e,registerLinkProvider:s7e,registerColorProvider:o7e,registerFoldingRangeProvider:a7e,registerDeclarationProvider:l7e,registerSelectionRangeProvider:h7e,registerDocumentSemanticTokensProvider:c7e,registerDocumentRangeSemanticTokensProvider:u7e,registerInlineCompletionsProvider:d7e,registerInlayHintsProvider:f7e,DocumentHighlightKind:dM,CompletionItemKind:oM,CompletionItemTag:aM,CompletionItemInsertTextRule:rM,SymbolKind:UM,SymbolTag:$M,IndentAction:bM,CompletionTriggerKind:lM,SignatureHelpTriggerKind:jM,InlayHintKind:yM,InlineCompletionTriggerKind:xM,CodeActionTriggerType:sM,NewSymbolNameTag:NM,NewSymbolNameTriggerKind:MM,PartialAcceptTriggerKind:PM,HoverVerbosityAction:_M,InlineCompletionEndOfLifeReasonKind:CM,InlineCompletionHintStyle:SM,FoldingRangeKind:iM,SelectedSuggestionInfo:G_e,EditDeltaInfo:Gx}}const Kte=Ge("IEditorCancelService"),Yte=new pe("cancellableOperation",!1,w(939,"Whether the editor runs a cancellable operation, e.g. like 'Peek References'"));et(Kte,class{constructor(){this._tokens=new WeakMap}add(s,e){let t=this._tokens.get(s);t||(t=s.invokeWithinContext(n=>{const r=Yte.bindTo(n.get(vt)),o=new xs;return{key:r,tokens:o}}),this._tokens.set(s,t));let i;return t.key.set(!0),i=t.tokens.push(e),()=>{i&&(i(),t.key.set(!t.tokens.isEmpty()),i=void 0)}}cancel(s){const e=this._tokens.get(s);if(!e)return;const t=e.tokens.pop();t&&(t.cancel(),e.key.set(!e.tokens.isEmpty()))}},1);We(new class extends ng{constructor(){super({id:"editor.cancelOperation",kbOpts:{weight:100,primary:9},precondition:Yte})}runEditorCommand(s,e){s.get(Kte).cancel(e)}});class l${constructor(e){this.value=e,this._lower=e.toLowerCase()}static toKey(e){return typeof e=="string"?e.toLowerCase():e._lower}}class p7e{constructor(e){if(this._set=new Set,e)for(const t of e)this.add(t)}add(e){this._set.add(l$.toKey(e))}has(e){return this._set.has(l$.toKey(e))}}function m7e(s,e,t){const i=[],n=new p7e,r=s.ordered(t);for(const a of r)i.push(a),a.extensionId&&n.add(a.extensionId);const o=e.ordered(t);for(const a of o){if(a.extensionId){if(n.has(a.extensionId))continue;n.add(a.extensionId)}i.push({displayName:a.displayName,extensionId:a.extensionId,provideDocumentFormattingEdits(l,h,c){return a.provideDocumentRangeFormattingEdits(l,l.getFullModelRange(),h,c)}})}return i}const gb=class gb{static setFormatterSelector(e){return{dispose:gb._selectors.unshift(e)}}static async select(e,t,i,n){if(e.length===0)return;const r=lt.first(gb._selectors);if(r)return await r(e,t,i,n)}};gb._selectors=new xs;let XO=gb;async function v7e(s,e,t,i,n,r){const o=e.documentRangeFormattingEditProvider.ordered(t);for(const a of o){const l=await Promise.resolve(a.provideDocumentRangeFormattingEdits(t,i,n,r)).catch(B4);if(fD(l))return await s.computeMoreMinimalEdits(t.uri,l)}}async function _7e(s,e,t,i,n){const r=m7e(e.documentFormattingEditProvider,e.documentRangeFormattingEditProvider,t);for(const o of r){const a=await Promise.resolve(o.provideDocumentFormattingEdits(t,i,n)).catch(B4);if(fD(a))return await s.computeMoreMinimalEdits(t.uri,a)}}function b7e(s,e,t,i,n,r,o){const a=e.onTypeFormattingEditProvider.ordered(t);return a.length===0||a[0].autoFormatTriggerCharacters.indexOf(n)<0?Promise.resolve(void 0):Promise.resolve(a[0].provideOnTypeFormattingEdits(t,i,n,r,o)).catch(B4).then(l=>s.computeMoreMinimalEdits(t.uri,l))}Ns.registerCommand("_executeFormatRangeProvider",async function(s,...e){const[t,i,n]=e;Qc(qe.isUri(t)),Qc(F.isIRange(i));const r=s.get(DD),o=s.get(Fw),a=s.get(Wt),l=await r.createModelReference(t);try{return v7e(o,a,l.object.textEditorModel,F.lift(i),n,Mr.None)}finally{l.dispose()}});Ns.registerCommand("_executeFormatDocumentProvider",async function(s,...e){const[t,i]=e;Qc(qe.isUri(t));const n=s.get(DD),r=s.get(Fw),o=s.get(Wt),a=await n.createModelReference(t);try{return _7e(r,o,a.object.textEditorModel,i,Mr.None)}finally{a.dispose()}});Ns.registerCommand("_executeFormatOnTypeProvider",async function(s,...e){const[t,i,n,r]=e;Qc(qe.isUri(t)),Qc(H.isIPosition(i)),Qc(typeof n=="string");const o=s.get(DD),a=s.get(Fw),l=s.get(Wt),h=await o.createModelReference(t);try{return b7e(a,l,h.object.textEditorModel,H.lift(i),n,r,Mr.None)}finally{h.dispose()}});mr.wrappingIndent.defaultValue=0;mr.glyphMargin.defaultValue=!1;mr.autoIndent.defaultValue=3;mr.overviewRulerLanes.defaultValue=2;XO.setFormatterSelector((s,e,t)=>Promise.resolve(s[0]));const cs=EX();cs.editor=xFe();cs.languages=g7e();const Xte=cs.CancellationTokenSource,Zte=cs.Emitter,Qte=cs.KeyCode,Jte=cs.KeyMod,eie=cs.Position,tie=cs.Range,iie=cs.Selection,nie=cs.SelectionDirection,sie=cs.MarkerSeverity,rie=cs.MarkerTag,oie=cs.Uri,aie=cs.Token,Fn=cs.editor,lie=cs.languages,xE=o3(),Om=globalThis;(xE!=null&&xE.globalAPI||typeof Om.define=="function"&&Om.define.amd)&&(Om.monaco=cs);typeof Om.require<"u"&&typeof Om.require.config=="function"&&Om.require.config({ignoreDuplicateModules:["vscode-languageserver-types","vscode-languageserver-types/main","vscode-languageserver-textdocument","vscode-languageserver-textdocument/main","vscode-nls","vscode-nls/vscode-nls","jsonc-parser","jsonc-parser/main","vscode-uri","vscode-uri/index","vs/basic-languages/typescript/typescript"]});const w7e=Object.freeze(Object.defineProperty({__proto__:null,CancellationTokenSource:Xte,Emitter:Zte,KeyCode:Qte,KeyMod:Jte,MarkerSeverity:sie,MarkerTag:rie,Position:eie,Range:tie,Selection:iie,SelectionDirection:nie,Token:aie,Uri:oie,editor:Fn,languages:lie},Symbol.toStringTag,{value:"Module"}));function y7e(){return w7e}const LE=globalThis.MonacoEnvironment;LE!=null&&LE.globalAPI&&(globalThis.monaco=y7e());const kh=Object.freeze(Object.defineProperty({__proto__:null,CancellationTokenSource:Xte,Emitter:Zte,KeyCode:Qte,KeyMod:Jte,MarkerSeverity:sie,MarkerTag:rie,Position:eie,Range:tie,Selection:iie,SelectionDirection:nie,Token:aie,Uri:oie,editor:Fn,languages:lie},Symbol.toStringTag,{value:"Module"}));function OL(s){return/^\d+$/.test(s)?"".concat(s,"px"):s}function qc(){}var Fd=function(){return Fd=Object.assign||function(s){for(var e,t=1,i=arguments.length;t<i;t++){e=arguments[t];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(s[n]=e[n])}return s},Fd.apply(this,arguments)};function C7e(s,e){var t=s.width,i=t===void 0?"100%":t,n=s.height,r=n===void 0?"100%":n,o=s.value,a=o===void 0?null:o,l=s.defaultValue,h=l===void 0?"":l,c=s.language,u=c===void 0?"javascript":c,d=s.theme,f=d===void 0?null:d,g=s.options,p=g===void 0?{}:g,m=s.overrideServices,v=m===void 0?{}:m,_=s.editorWillMount,b=_===void 0?qc:_,y=s.editorDidMount,C=y===void 0?qc:y,x=s.editorWillUnmount,S=x===void 0?qc:x,k=s.onChange,T=k===void 0?qc:k,I=s.className,N=I===void 0?null:I,A=s.original,R=A===void 0?null:A,P=s.originalUri,B=s.modifiedUri,z=Te.useRef(null),U=Te.useRef(null),K=Te.useRef(null),X=Te.useRef(null),ne=OL(i),oe=OL(r),ue=Te.useMemo(function(){return{width:ne,height:oe}},[ne,oe]);Te.useImperativeHandle(e,function(){return{get editor(){return U.current}}});var de=function(){var Pe=b(kh);return Pe||{}},De=function(){C(U.current,kh);var Pe=U.current.getModel().modified;K.current=Pe.onDidChangeContent(function(tt){X.current||T(Pe.getValue(),tt)})},Q=function(){S(U.current,kh)},Xe=function(){var Pe=a??h,tt=P==null?void 0:P(kh),st=B==null?void 0:B(kh),ve=tt&&Fn.getModel(tt),ge=st&&Fn.getModel(st);ve?(ve.setValue(R),Fn.setModelLanguage(ve,u)):ve=Fn.createModel(Pe,u,tt),ge?(ve.setValue(Pe),Fn.setModelLanguage(ge,u)):ge=Fn.createModel(Pe,u,st),U.current.setModel({original:ve,modified:ge})};return Te.useEffect(function(){z.current&&(de(),U.current=Fn.createDiffEditor(z.current,Fd(Fd(Fd({},N?{extraEditorClassName:N}:{}),p),f?{theme:f}:{}),v),Xe(),De())},[]),Te.useEffect(function(){U.current&&U.current.updateOptions(Fd(Fd({},N?{extraEditorClassName:N}:{}),p))},[N,p]),Te.useEffect(function(){U.current&&U.current.layout()},[i,r]),Te.useEffect(function(){if(U.current){var Pe=U.current.getModel(),tt=Pe.original,st=Pe.modified;Fn.setModelLanguage(tt,u),Fn.setModelLanguage(st,u)}},[u]),Te.useEffect(function(){if(U.current){var Pe=U.current.getModel().modified;X.current=!0,U.current.getModifiedEditor().pushUndoStop(),Pe.pushEditOperations([],[{range:Pe.getFullModelRange(),text:a}]),U.current.getModifiedEditor().pushUndoStop(),X.current=!1}},[a]),Te.useEffect(function(){Fn.setTheme(f)},[f]),Te.useEffect(function(){if(U.current){var Pe=U.current.getModel().original;R!==Pe.getValue()&&Pe.setValue(R)}},[R]),Te.useEffect(function(){return function(){if(U.current){Q(),U.current.dispose();var Pe=U.current.getModel(),tt=Pe.original,st=Pe.modified;tt&&tt.dispose(),st&&st.dispose()}K.current&&K.current.dispose()}},[]),Te.createElement("div",{ref:z,style:ue,className:"react-monaco-editor-container"})}var S7e=Te.forwardRef(C7e);S7e.displayName="MonacoDiffEditor";var lh=function(){return lh=Object.assign||function(s){for(var e,t=1,i=arguments.length;t<i;t++){e=arguments[t];for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(s[n]=e[n])}return s},lh.apply(this,arguments)},x7e=function(s,e){var t={};for(var i in s)Object.prototype.hasOwnProperty.call(s,i)&&e.indexOf(i)<0&&(t[i]=s[i]);if(s!=null&&typeof Object.getOwnPropertySymbols=="function")for(var n=0,i=Object.getOwnPropertySymbols(s);n<i.length;n++)e.indexOf(i[n])<0&&Object.prototype.propertyIsEnumerable.call(s,i[n])&&(t[i[n]]=s[i[n]]);return t};function L7e(s,e){var t=s.width,i=t===void 0?"100%":t,n=s.height,r=n===void 0?"100%":n,o=s.value,a=o===void 0?null:o,l=s.defaultValue,h=l===void 0?"":l,c=s.language,u=c===void 0?"javascript":c,d=s.theme,f=d===void 0?null:d,g=s.options,p=g===void 0?{}:g,m=s.overrideServices,v=m===void 0?{}:m,_=s.editorWillMount,b=_===void 0?qc:_,y=s.editorDidMount,C=y===void 0?qc:y,x=s.editorWillUnmount,S=x===void 0?qc:x,k=s.onChange,T=k===void 0?qc:k,I=s.className,N=I===void 0?null:I,A=s.uri,R=Te.useRef(null),P=Te.useRef(null),B=Te.useRef(null),z=Te.useRef(null),U=OL(i),K=OL(r),X=Te.useRef(T);X.current=T,Te.useImperativeHandle(e,function(){return{get editor(){return P.current}}});var ne=Te.useMemo(function(){return{width:U,height:K}},[U,K]),oe=function(){var Q=b(kh);return Q||{}},ue=function(){C(P.current,kh),B.current=P.current.onDidChangeModelContent(function(Q){var Xe;z.current||(Xe=X.current)===null||Xe===void 0||Xe.call(X,P.current.getValue(),Q)})},de=function(){S(P.current,kh)},De=function(){var Q=a!==null?a:h;if(R.current){var Xe=lh(lh({},p),oe()),Pe=A==null?void 0:A(kh),tt=Pe&&Fn.getModel(Pe);tt?(tt.setValue(Q),Fn.setModelLanguage(tt,u)):tt=Fn.createModel(Q,u,Pe),P.current=Fn.create(R.current,lh(lh(lh({model:tt},N?{extraEditorClassName:N}:{}),Xe),f?{theme:f}:{}),v),ue()}};return Te.useEffect(De,[]),Te.useEffect(function(){if(P.current&&a!==null){if(a===P.current.getValue())return;var Q=P.current.getModel();z.current=!0,P.current.pushUndoStop(),Q.pushEditOperations([],[{range:Q.getFullModelRange(),text:a}],void 0),P.current.pushUndoStop(),z.current=!1}},[a]),Te.useEffect(function(){if(P.current){var Q=P.current.getModel();Fn.setModelLanguage(Q,u)}},[u]),Te.useEffect(function(){if(P.current){p.model;var Q=x7e(p,["model"]);P.current.updateOptions(lh(lh({},N?{extraEditorClassName:N}:{}),Q))}},[N,p]),Te.useEffect(function(){P.current&&P.current.layout()},[i,r]),Te.useEffect(function(){Fn.setTheme(f)},[f]),Te.useEffect(function(){return function(){P.current&&(de(),P.current.dispose()),B.current&&B.current.dispose()}},[]),Te.createElement("div",{ref:R,style:ne,className:"react-monaco-editor-container"})}var hie=Te.forwardRef(L7e);hie.displayName="MonacoEditor";const k7e={dialog:{height:"100%",maxHeight:"100%",maxWidth:"100%"}};function D7e(s){const[e,t]=uS.useState("");let i=!1;try{JSON.parse(e)}catch{i=!0}return L.jsxs(E.Dialog,{style:k7e.dialog,open:!0,maxWidth:"lg",onClose:()=>s.onClose(),fullWidth:!0,children:[L.jsx(E.DialogTitle,{children:s.t("Insert JSON with objects here")}),L.jsx(E.DialogContent,{style:{minHeight:500},children:L.jsx(hie,{width:"100%",height:"500px",language:"json",theme:s.themeType==="dark"?"vs-dark":"vs-light",value:e,options:{selectOnLineNumbers:!0},onChange:n=>t(n),editorDidMount:n=>n.focus()})}),L.jsxs(E.DialogActions,{children:[L.jsx(E.Button,{variant:"contained",disabled:i||!e.trim(),onClick:()=>s.onClose(e),startIcon:L.jsx(Ie.ContentPaste,{}),color:"primary",children:s.t("Import objects")}),L.jsx(E.Button,{variant:"contained",onClick:()=>s.onClose(),startIcon:L.jsx(Ie.Close,{}),color:"grey",children:s.t("Close")})]})]})}const T7e=Ie.Delete,yC={buttonAll:{color:"#FF0000"},id:{fontStyle:"italic"},buttonText:{whiteSpace:"nowrap"}};class m6e extends Te.Component{dialogName;filters;t;wordCache;constructor(e){super(e),this.dialogName="AdminObjects";const t=(window._localStorage||window.localStorage).getItem(`${this.dialogName||"App"}.filters`)||"{}";try{this.filters=JSON.parse(t)}catch{this.filters={}}const i=(window._localStorage||window.localStorage).getItem(`${this.dialogName||"App"}.selected`)||"";this.state={selected:i,name:"",toast:"",deleteObjectShow:null},this.t=this.translate,this.wordCache={}}translate=(e,t,i)=>t!==void 0?this.props.t(e,t,i):(this.wordCache[e]||(this.wordCache[e]=this.props.t(e)),this.wordCache[e]);onDelete(e){const t=this.state.deleteObjectShow.id;e?(this.props.socket.delObjects(t,!0).then(()=>this.setState({toast:this.t("All deleted")})).catch(i=>window.alert(`Cannot delete object: ${i}`)),this.setState({deleteObjectShow:null})):(this.props.socket.delObject(t,!1).catch(i=>window.alert(`Cannot delete object: ${i}`)),this.setState({deleteObjectShow:null}))}renderToast(){return L.jsx(E.Snackbar,{anchorOrigin:{vertical:"bottom",horizontal:"right"},open:!!this.state.toast,autoHideDuration:3e3,onClose:()=>this.setState({toast:""}),message:this.state.toast,action:L.jsx(E.IconButton,{size:"small","aria-label":"close",color:"inherit",onClick:()=>this.setState({toast:""}),children:L.jsx(Ie.Cancel,{fontSize:"small"})})},"toast")}renderDeleteDialog(){return this.state.deleteObjectShow?L.jsxs(E.Dialog,{maxWidth:"md",open:!0,onClose:()=>this.setState({deleteObjectShow:null}),"aria-labelledby":"delete-object-dialog-title","aria-describedby":"delete-object-dialog-description",children:[L.jsxs(E.DialogTitle,{id:"delete-object-dialog-title",children:[this.state.deleteObjectShow.hasChildren?this.t("Delete object(s)"):this.t("Delete object"),":"," ",L.jsx("span",{style:yC.id,children:this.state.deleteObjectShow.id})]}),L.jsx(E.DialogContent,{children:L.jsx(E.DialogContentText,{children:this.t("Are you sure?")})}),L.jsxs(E.DialogActions,{children:[this.state.deleteObjectShow.hasChildren?L.jsx(E.Button,{variant:"contained",color:"grey",sx:{"& .MuiButton-text":yC.buttonText},onClick:()=>this.onDelete(!0),startIcon:L.jsx(T7e,{style:yC.buttonAll}),children:this.t("Delete with children",this.state.deleteObjectShow.childrenCount)}):null,this.state.deleteObjectShow.exists?L.jsx(E.Button,{variant:"contained",sx:{"& .MuiButton-text":yC.buttonText},onClick:()=>this.onDelete(!1),color:"primary",startIcon:L.jsx(Ie.Delete,{}),autoFocus:!0,children:this.t("Delete one item")}):null,L.jsx(E.Button,{variant:"contained",color:"grey",onClick:()=>this.setState({deleteObjectShow:null}),startIcon:L.jsx(Ie.Cancel,{}),children:this.t("ra_Cancel")})]})]},"delete"):null}render(){const e=ee.Router.getLocation(),t=e.tab==="tab-objects"&&e.id?{mode:e.dialog==="view"?"viewFile":e.dialog||"select",id:e.id}:null;window.NEXOWATT_EOS_OBJECTS_SOCKET=this.props.socket;return[this.renderToast(),L.jsx(ee.ObjectBrowser,{navigateTo:t,onNavigateTo:i=>{i!=null&&i.id?ee.Router.doNavigate("tab-objects",i.mode==="viewFile"?"view":i.mode,i.id):ee.Router.doNavigate("tab-objects")},dialogName:"admin",objectsWorker:this.props.objectsWorker,prefix:this.props.prefix,defaultFilters:this.filters,statesOnly:this.props.statesOnly,style:{width:"100%",height:"100%"},socket:this.props.socket,selected:(t==null?void 0:t.id)||this.state.selected,name:this.state.name,expertMode:this.props.expertMode,isFloatComma:this.props.isFloatComma,dateFormat:this.props.dateFormat,t:this.t,lang:this.props.lang,themeName:this.props.themeName,themeType:this.props.themeType,theme:this.props.theme,objectCustomDialog:Eme,objectBrowserValue:Ep,objectBrowserEditObject:$n,objectBrowserEditRole:A4,objectBrowserViewFile:Fme,objectBrowserAliasEditor:g1,objectMoveRenameDialog:R4,objectBrowserInsertJsonObjects:D7e,router:ee.Router,enableStateValueEdit:!0,onObjectDelete:(i,n,r,o)=>this.setState({deleteObjectShow:{id:i,hasChildren:n,exists:r,childrenCount:o}}),onFilterChanged:i=>{this.filters=i,(window._localStorage||window.localStorage).setItem(`${this.dialogName||"App"}.filters`,JSON.stringify(i))},onSelect:i=>{Array.isArray(i)?(window._localStorage||window.localStorage).setItem(`${this.dialogName||"App"}.selected`,i[0]||""):(window._localStorage||window.localStorage).setItem(`${this.dialogName||"App"}.selected`,i||"")},objectEditBoolean:!0,objectAddBoolean:!0,objectStatesView:!0,objectImportExport:!0,objectEditOfAccessControl:!0,modalNewObject:i=>L.jsx(Rme,{objects:i.objects,expertMode:this.props.expertMode,setObject:(n,r)=>this.props.socket.setObject(n,r).catch(o=>window.alert(o)),selected:i.state.modalNewObj.id,initialType:i.state.modalNewObj.initialType,initialStateType:i.state.modalNewObj.initialStateType,onClose:()=>i.setState({modalNewObj:null}),onApply:()=>i.setState({modalNewObj:null})}),modalEditOfAccessControl:(i,n)=>L.jsx(Ome,{theme:this.props.theme,themeType:this.props.themeType,extendObject:(r,o)=>{this.props.socket.extendObject(r,o).catch(a=>window.alert(a)),n.aclTooltip=null},selected:i.state.selected[0],modalEmptyId:n.obj?"":n.id,objects:i.objects,t:this.t,onClose:()=>i.setState({modalEditOfAccess:!1,modalEditOfAccessObjData:null}),onApply:()=>i.setState({modalEditOfAccess:!1,modalEditOfAccessObjData:null})})},"browser"),this.renderDeleteDialog()]}}export{m6e as default};
|