iobroker.javascript 9.3.0 → 9.3.1
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/README.md +3 -4
- package/admin/assets/{AiChatPanel-BvND3KNP.js → AiChatPanel-C3bIw_D5.js} +1 -1
- package/admin/assets/{ScriptEditor-1BwI9a_X.js → ScriptEditor-8UU88tT5.js} +1 -1
- package/admin/assets/{ScriptEditorVanillaMonaco-BPK75VNu.js → ScriptEditorVanillaMonaco-Bn8xJ3LV.js} +2 -2
- package/admin/assets/index-C0ZnUCQf.js +990 -0
- package/admin/assets/{index-CxRhXAwi.js → index-CO9RA-Wq.js} +4 -4
- package/admin/assets/{index-fS-54-pB.js → index-CRGWWpGb.js} +1 -1
- package/admin/assets/{index-DUMiVB6k.js → index-CsyuIWlD.js} +1 -1
- package/admin/assets/localSharedImportMap-Db5DxDmY.js +1 -0
- package/admin/assets/{stateHoverProvider-dvzAyUDH.js → stateHoverProvider-C82xsI7Q.js} +1 -1
- package/admin/assets/{virtual_mf-REMOTE_ENTRY_ID_iobroker_javascript__remoteEntry_js-Dus28I2g.js → virtual_mf-REMOTE_ENTRY_ID_iobroker_javascript__remoteEntry_js-Bw22wl4W.js} +2 -2
- package/admin/custom/assets/index-CMsuyEZj.js +964 -0
- package/admin/custom/assets/{index-C8_qJ4Y6.js → index-CuAhFQ4L.js} +1 -1
- package/admin/custom/assets/{index-BVOepGI5.js → index-mkhHeJ3Q.js} +1 -1
- package/admin/custom/assets/localSharedImportMap-BsMINYMr.js +1 -0
- package/admin/custom/assets/{virtual_mf-REMOTE_ENTRY_ID_ConfigCustomJavascriptSet__customComponents_js-CO2hfDx_.js → virtual_mf-REMOTE_ENTRY_ID_ConfigCustomJavascriptSet__customComponents_js-BzLNCazi.js} +2 -2
- package/admin/custom/customComponents.js +1 -1
- package/admin/mf-manifest.json +1 -1
- package/admin/remoteEntry.js +1 -1
- package/admin/tab.html +2 -2
- package/build/lib/sandbox.js +20 -12
- package/build/lib/sandbox.js.map +1 -1
- package/build/main.js +34 -25
- package/build/main.js.map +1 -1
- package/build/types.d.ts +4 -4
- package/io-package.json +14 -14
- package/package.json +3 -3
- package/admin/assets/index-Be9Zg6aF.js +0 -990
- package/admin/assets/localSharedImportMap-Cs4ibnCv.js +0 -1
- package/admin/custom/assets/index-DSGXVHGh.js +0 -964
- package/admin/custom/assets/localSharedImportMap-C-8wOKN2.js +0 -1
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./index-
|
|
2
|
-
import{d as Dw}from"./virtual_mf-REMOTE_ENTRY_ID_iobroker_javascript__remoteEntry_js-
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./index-CRGWWpGb.js","./createSvgIcon-DYs_tNrE.js","./iobroker_javascript__loadShare__react__loadShare__.mjs-CTZOFJS2.js","./iobroker_javascript__loadShare__react__loadShare__.mjs_commonjs-proxy-CE9lvhW8.js","./iobroker_javascript__loadShare__prop_mf_2_types__loadShare__.mjs-BCtSFofY.js","./iobroker_javascript__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.mjs-DkBjPSMw.js","./iobroker_javascript__loadShare___mf_0_mui_mf_1_material__loadShare__.mjs-CV1_X-Lf.js","./index-wHNMOf-c.js","./virtual_mf-REMOTE_ENTRY_ID_iobroker_javascript__remoteEntry_js-Bw22wl4W.js","./preload-helper-BDBacUwf.js","./iobroker_javascript__loadShare__react_mf_2_dom__loadShare__.mjs_commonjs-proxy-RQRRZMX5.js","./iobroker_javascript__loadShare__react_mf_2_dom__loadShare__.mjs-DeVAS-oa.js","./inheritsLoose-CIXm_zPk.js","./index-BCK6q-N6.css","./index-CsyuIWlD.js","./ScriptEditorVanillaMonaco-Bn8xJ3LV.js","./ScriptEditor-8UU88tT5.js","./Save-CkuNSiWL.js","./AiChatPanel-C3bIw_D5.js","./index-45IwpC7_.js","./AiDiffView-RPozjjHf.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{d as Dw}from"./virtual_mf-REMOTE_ENTRY_ID_iobroker_javascript__remoteEntry_js-Bw22wl4W.js";import{j as m,c as vt,g as nk,r as rk,_ as Qg}from"./createSvgIcon-DYs_tNrE.js";import{r as ET}from"./iobroker_javascript__loadShare__react_mf_2_dom__loadShare__.mjs_commonjs-proxy-RQRRZMX5.js";import{a as pe,_ as xT,b as ji,c as Ft,d as DT,e as ak,f as em,g as Fm,h as zm,i as lk,j as St,k as zn,l as gs,m as AT,n as ck,o as tm,p as RT,q as OT,r as uk,s as MT,t as Zo}from"./iobroker_javascript__loadShare__react__loadShare__.mjs-CTZOFJS2.js";import{_ as zt,a as ts,b as Yt,c as Oo,d as Ui,e as sm,f as Hi,g as et,h as Ut,i as je,j as bc,k as yc,l as vc,m as wc,n as _c,o as We,p as dk,q as Ni,r as om,s as Aw,t as im,u as nm,v as Jn,w as hk,x as NT,y as Vc,z as bt,A as LT,B as rm,C as PT,D as fg,E as ua,F as BT,G as jT,H as FT,I as zT,J as pk,K as UT,L as HT,M as Rw,N as Mn,O as WT,P as GT,Q as VT,R as KT,S as YT,T as gk,U as JT,V as am,W as mk,X as qT}from"./iobroker_javascript__loadShare___mf_0_mui_mf_1_material__loadShare__.mjs-CV1_X-Lf.js";import{_ as x}from"./iobroker_javascript__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.mjs-DkBjPSMw.js";import{I as ni,a as ao,b as Nc,C as XT,c as fk,F as ZT,d as QT,e as Kc,f as lm,g as eI,h as tI,i as sI,j as oI,M as iI,k as nI,l as rI,m as aI,_ as lI,n as kc,o as cI,p as uI,q as Cc,r as Ow,s as dI,t as hI,u as pI,v as gI,w as Mw,x as bu,y as mI,z as fI,A as $I,B as bI,D as yI,E as vI,G as wI,H as _I,J as kI,K as $k,L as bk,N as yk,O as CI,P as SI,Q as TI,R as II,S as EI,T as xI}from"./index-wHNMOf-c.js";import{y as DI,_ as AI,a as RI,S as Nw,T as Lw}from"./inheritsLoose-CIXm_zPk.js";import{c as ro}from"./iobroker_javascript__loadShare__react__loadShare__.mjs_commonjs-proxy-CE9lvhW8.js";function ri(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}import{_ as Ki}from"./preload-helper-BDBacUwf.js";import{P as ve}from"./iobroker_javascript__loadShare__prop_mf_2_types__loadShare__.mjs-BCtSFofY.js";import{_ as OI}from"./iobroker_javascript__loadShare__react_mf_2_dom__loadShare__.mjs-DeVAS-oa.js";(function(){const s=document.createElement("link").relList;if(s&&s.supports&&s.supports("modulepreload"))return;for(const l of document.querySelectorAll('link[rel="modulepreload"]'))r(l);new MutationObserver(l=>{for(const c of l)if(c.type==="childList")for(const h of c.addedNodes)h.tagName==="LINK"&&h.rel==="modulepreload"&&r(h)}).observe(document,{childList:!0,subtree:!0});function i(l){const c={};return l.integrity&&(c.integrity=l.integrity),l.referrerPolicy&&(c.referrerPolicy=l.referrerPolicy),l.crossOrigin==="use-credentials"?c.credentials="include":l.crossOrigin==="anonymous"?c.credentials="omit":c.credentials="same-origin",c}function r(l){if(l.ep)return;l.ep=!0;const c=i(l);fetch(l.href,c)}})();var vk,Pw=ET;vk=Pw.createRoot,Pw.hydrateRoot;var wk={exports:{}},ht={};var yu=60103,vu=60106,Sa=60107,Ta=60108,Ia=60114,Ea=60109,xa=60110,Da=60112,Aa=60113,Um=60120,Ra=60115,Oa=60116,_k=60121,kk=60122,Ck=60117,Sk=60129,Tk=60131;if(typeof Symbol=="function"&&Symbol.for){var Bt=Symbol.for;yu=Bt("react.element"),vu=Bt("react.portal"),Sa=Bt("react.fragment"),Ta=Bt("react.strict_mode"),Ia=Bt("react.profiler"),Ea=Bt("react.provider"),xa=Bt("react.context"),Da=Bt("react.forward_ref"),Aa=Bt("react.suspense"),Um=Bt("react.suspense_list"),Ra=Bt("react.memo"),Oa=Bt("react.lazy"),_k=Bt("react.block"),kk=Bt("react.server.block"),Ck=Bt("react.fundamental"),Sk=Bt("react.debug_trace_mode"),Tk=Bt("react.legacy_hidden")}function js(a){if(typeof a=="object"&&a!==null){var s=a.$$typeof;switch(s){case yu:switch(a=a.type,a){case Sa:case Ia:case Ta:case Aa:case Um:return a;default:switch(a=a&&a.$$typeof,a){case xa:case Da:case Oa:case Ra:case Ea:return a;default:return s}}case vu:return s}}}var MI=Ea,NI=yu,LI=Da,PI=Sa,BI=Oa,jI=Ra,FI=vu,zI=Ia,UI=Ta,HI=Aa;ht.ContextConsumer=xa;ht.ContextProvider=MI;ht.Element=NI;ht.ForwardRef=LI;ht.Fragment=PI;ht.Lazy=BI;ht.Memo=jI;ht.Portal=FI;ht.Profiler=zI;ht.StrictMode=UI;ht.Suspense=HI;ht.isAsyncMode=function(){return!1};ht.isConcurrentMode=function(){return!1};ht.isContextConsumer=function(a){return js(a)===xa};ht.isContextProvider=function(a){return js(a)===Ea};ht.isElement=function(a){return typeof a=="object"&&a!==null&&a.$$typeof===yu};ht.isForwardRef=function(a){return js(a)===Da};ht.isFragment=function(a){return js(a)===Sa};ht.isLazy=function(a){return js(a)===Oa};ht.isMemo=function(a){return js(a)===Ra};ht.isPortal=function(a){return js(a)===vu};ht.isProfiler=function(a){return js(a)===Ia};ht.isStrictMode=function(a){return js(a)===Ta};ht.isSuspense=function(a){return js(a)===Aa};ht.isValidElementType=function(a){return typeof a=="string"||typeof a=="function"||a===Sa||a===Ia||a===Sk||a===Ta||a===Aa||a===Um||a===Tk||typeof a=="object"&&a!==null&&(a.$$typeof===Oa||a.$$typeof===Ra||a.$$typeof===Ea||a.$$typeof===xa||a.$$typeof===Da||a.$$typeof===Ck||a.$$typeof===_k||a[0]===kk)};ht.typeOf=js;wk.exports=ht;var WI=wk.exports;function Yc(a,s){const i=getComputedStyle(s);if(!i)return;let r=a===mt.Horizontal?s.clientWidth:s.clientHeight;return r!==0?(a===mt.Horizontal?r-=parseFloat(i.paddingLeft)+parseFloat(i.paddingRight):r-=parseFloat(i.paddingTop)+parseFloat(i.paddingBottom),r):void 0}function Sc(a,s,i=[],r={condition:!0}){const{condition:l}=r,c=(function(h,d){var p={};for(var g in h)Object.prototype.hasOwnProperty.call(h,g)&&d.indexOf(g)<0&&(p[g]=h[g]);if(h!=null&&typeof Object.getOwnPropertySymbols=="function"){var $=0;for(g=Object.getOwnPropertySymbols(h);$<g.length;$++)d.indexOf(g[$])<0&&Object.prototype.propertyIsEnumerable.call(h,g[$])&&(p[g[$]]=h[g[$]])}return p})(r,["condition"]);Ft((()=>(l&&window.addEventListener(a,s,c),()=>{l&&window.removeEventListener(a,s)})),[a,s,l,...i])}(function(a,s){s===void 0&&(s={});var i=s.insertAt;if(typeof document<"u"){var r=document.head||document.getElementsByTagName("head")[0],l=document.createElement("style");l.type="text/css",i==="top"&&r.firstChild?r.insertBefore(l,r.firstChild):r.appendChild(l),l.styleSheet?l.styleSheet.cssText=a:l.appendChild(document.createTextNode(a))}})(`/* === Main Container === */
|
|
3
3
|
.__dbk__container {
|
|
4
4
|
height: 100%;
|
|
5
5
|
width: 100%;
|
|
@@ -295,7 +295,7 @@ Note: Some script sources were omitted due to size. The user can ask about speci
|
|
|
295
295
|
`);if(r.length<2||l.length<2)return null;const c=new Set;for(const b of r){const T=b.trim();AO(T)&&c.add(T)}if(c.size<2)return null;const h=r.length,d=Math.ceil(h*1.5),p=Math.max(2,Math.floor(h*.5));let g=-1,$=-1,y=0;const w=new Uint8Array(l.length);for(let b=0;b<l.length;b++)c.has(l[b].trim())&&(w[b]=1);const v=new Int32Array(l.length+1);for(let b=0;b<l.length;b++)v[b+1]=v[b]+w[b];for(let b=0;b+p<=l.length;b++){const T=Math.min(b+d,l.length),C=(v[T]-v[b])/c.size;C>y&&(y=C,g=b,$=T)}if(g<0||y<i)return null;for(;$>g+1&&!w[$-1];)$--;for(;g<$-1&&!w[g];)g++;const _=l[$-1]??"";return{range:{startLine:g+1,startColumn:1,endLine:$,endColumn:_.length+1},confidence:y,method:"similarity"}}function OO(a){const s=a.split(`
|
|
296
296
|
`).map(i=>i.trim()).filter(i=>i.length>0);return s.length===0?!1:s.every(i=>i.startsWith("//")||i.startsWith("/*")||i.startsWith("*")||i.endsWith("*/"))}function MO(a){const s=[];let i=!1,r=null,l=0;for(let c=0;c<a.length;c++){const h=a[c].trim();i?r==="jsdoc"?(h.endsWith("*/")||h.includes("*/"))&&(s.push({startLine:l,endLine:c+1}),i=!1,r=null):r==="line"&&(!h.startsWith("//")&&h.length>0?(s.push({startLine:l,endLine:c}),i=!1,r=null):h.length===0&&(s.push({startLine:l,endLine:c}),i=!1,r=null)):h.startsWith("/*")?(i=!0,r="jsdoc",l=c+1,h.includes("*/")&&(s.push({startLine:l,endLine:c+1}),i=!1,r=null)):h.startsWith("//")&&(i=!0,r="line",l=c+1)}return i&&l>0&&s.push({startLine:l,endLine:a.length}),s}function NO(a,s,i=.2){if(!OO(a)||!s)return null;const r=s.split(`
|
|
297
297
|
`),l=MO(r);if(!l.length)return null;const c=new Set;for(const g of a.split(`
|
|
298
|
-
`)){const y=g.trim().replace(/^\/\*+/,"").replace(/\*+\/$/,"").replace(/^\/\//,"").replace(/^\*+/,"").trim();y.length>=3&&c.add(y.toLowerCase())}if(c.size===0){if(l.length===1){const g=l[0],$=r[g.endLine-1]??"";return{range:{startLine:g.startLine,startColumn:1,endLine:g.endLine,endColumn:$.length+1},confidence:.5,method:"similarity"}}return null}let h=l[0],d=0;for(const g of l){let $=0;for(let w=g.startLine-1;w<g.endLine;w++){const v=r[w].trim().replace(/^\/\*+/,"").replace(/\*+\/$/,"").replace(/^\/\//,"").replace(/^\*+/,"").trim().toLowerCase();v&&c.has(v)&&$++}const y=$/c.size;y>d&&(d=y,h=g)}if(d<i)if(l.length===1)d=Math.max(d,.3);else return null;const p=r[h.endLine-1]??"";return{range:{startLine:h.startLine,startColumn:1,endLine:h.endLine,endColumn:p.length+1},confidence:d,method:"similarity"}}function LO(a,s,i){const r=DO(a,s);if(r)return r;const l=NO(a,s);return l||RO(a,s,i==null?void 0:i.similarityThreshold)}const Ug=[fO,$O,bO,yO],PO=pe.lazy(()=>Ki(()=>Promise.resolve().then(()=>g1),void 0,import.meta.url)),BO=pe.lazy(()=>Ki(()=>import("./index-fS-54-pB.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13]),import.meta.url)),jO=pe.lazy(()=>Ki(()=>import("./index-DUMiVB6k.js"),__vite__mapDeps([14,1,2,3,4,6,7,5,15,9,8,10,11,12]),import.meta.url)),FO=pe.lazy(()=>Ki(()=>import("./ScriptEditorVanillaMonaco-BPK75VNu.js"),__vite__mapDeps([15,9,1,2,3,4,6,7,5,8,10,11,12]),import.meta.url)),zO=pe.lazy(()=>Ki(()=>import("./ScriptEditor-1BwI9a_X.js"),__vite__mapDeps([16,1,2,3,4,6,5,15,9,7,8,10,11,12,17]),import.meta.url)),U_=pe.lazy(()=>Ki(()=>import("./AiChatPanel-BvND3KNP.js"),__vite__mapDeps([18,1,2,3,4,6,5,9,19,7,8,10,11,12]),import.meta.url)),UO=pe.lazy(()=>Ki(()=>import("./AiDiffView-RPozjjHf.js"),__vite__mapDeps([20,1,2,3,4,6,5,7]),import.meta.url)),H_={Blockly:Jk,"Javascript/js":qc,Rules:Xk,def:qc,"TypeScript/ts":qk},HO=48,W_="#02a102",Hg="#70aae9",WO=nk[400],GO=rk[400],Me={toolbar:a=>({minHeight:38,boxShadow:"0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12)",backgroundColor:a.palette.mode==="dark"?"#1e1e1e":"#E2E2E2"}),toolbarButtons:{padding:4,marginLeft:4},toolbarButtonsDisabled:{filter:"grayscale(100%)",opacity:.5},editorDiv:a=>({height:`calc(100% - ${(parseInt(a.toolbar.height,10)||48)+38+10}px)`,width:"100%",overflow:"hidden",position:"relative"}),textButton:{marginRight:10,minHeight:24,padding:"6px 16px",height:32},saveButton:{background:"#ff9900"},tabIcon:{width:24,height:24,verticalAlign:"middle",marginBottom:2,marginRight:2,borderRadius:3},hintIcon:{padding:"0 8px 0 8px"},hintButton:{marginTop:8,marginLeft:20},tabMenuButton:{position:"absolute",top:0,right:0},tabChanged:a=>({color:a.palette.secondary.main}),tabText:{maxWidth:130,textOverflow:"ellipsis",whiteSpace:"nowrap",overflow:"hidden",display:"inline-block",verticalAlign:"middle"},tabChangedIcon:{color:"#FF0000",fontSize:16,marginLeft:5},closeButton:{marginLeft:5},notRunning:{color:"#ffbc00",marginRight:8,marginLeft:8},tabButton:{minHeight:48},tabButtonWrapper:{display:"inline-block"},menuIcon:{width:18,height:18,borderRadius:2,marginRight:5}};class Hn extends pe.Component{getSelect=null;changedMirror={};cron={initValue:null,callback:null};scriptDialog={initValue:null,callback:null,args:null,isReturn:!1};objects;scripts;selectId={initValue:null,callback:null};confirmCallback=null;blocklyEditorRef=pe.createRef();scriptEditorRef=pe.createRef();lastKnownTs={};constructor(s){var c,h;super(s);let i=window.localStorage.getItem("Editor.selected")||"";const r=window.localStorage.getItem("Editor.editing")||"[]";let l;try{l=JSON.parse(r)}catch{l=[]}i&&!l.includes(i)&&l.push(i),i&&!this.props.password&&((h=(c=this.props.objects[i])==null?void 0:c.native)!=null&&h.protected)&&(i=l.find(d=>{var p,g;return!((g=(p=this.props.objects[d])==null?void 0:p.native)!=null&&g.protected)})||""),!i&&l.length&&(this.props.password?i=l[0]:i=l.find(d=>{var p,g;return!((g=(p=this.props.objects[d])==null?void 0:p.native)!=null&&g.protected)})||""),this.state={askAboutDebug:!1,astroEvents:null,blockly:null,changed:{},cmdToBlockly:"",cmdToRules:"",confirm:"",debugEnabled:!1,editing:l,insert:"",instancesLoaded:!1,isTourOpen:window.localStorage.getItem("tour")!=="true",menuDebugAnchorEl:null,menuOidDisplayAnchorEl:null,oidDisplayMode:parseInt(window.localStorage.getItem("Blockly.FieldOID.displayMode")||"0",10)||0,oidShowIcon:window.localStorage.getItem("Blockly.FieldOID.showIcon")==="true",menuOpened:!!this.props.menuOpened,menuTabsOpened:!1,aiChatOpen:window.localStorage.getItem("Editor.aiChatOpen")==="true",aiDiffView:null,aiActionRequest:null,inlineAskHandler:null,aiCompletionsEnabled:window.localStorage.getItem("Editor.aiCompletions")!=="false",triggerPrettier:1,scriptConflict:"",rules:null,runningInstances:this.props.runningInstances||{},searchText:"",selected:i,showAdapterDebug:!1,showAstro:!1,showCompiledCode:!1,showCron:!1,showDebugMenu:!1,showScript:!1,showSelectId:!1,themeType:this.props.themeType,toast:"",tourStep:Ps.selectTriggers,verboseEnabled:!1,visible:s.visible},this.setChangedInAdmin(),window.systemLang=x.I18n.getLanguage(),window.main={objects:{},getObject:(d,p)=>this.props.socket.getObject(d).then(g=>p==null?void 0:p(null,g)).catch(g=>p==null?void 0:p(g)),getState:(d,p)=>this.props.socket.getState(d).then(g=>p==null?void 0:p(null,g)).catch(g=>p==null?void 0:p(g)),instances:[],selectIdDialog:(d,p,g)=>{typeof p=="function"&&(g=p,p=null),this.selectId.callback=g,this.selectId.initValue=d,this.selectId.type=p,this.setState({showSelectId:!0})},cronDialog:(d,p)=>{this.cron.callback=p,this.cron.initValue=d,this.setState({showCron:!0})},showScriptDialog:(d,p,g,$)=>{this.scriptDialog.callback=$,this.scriptDialog.initValue=d,this.scriptDialog.args=p,this.scriptDialog.isReturn=g||!1,this.setState({showScript:!0})}},this.objects=s.objects,this.scripts={},this.getAllAdapterInstances().then(()=>{this.props.onSelectedChange&&this.state.selected&&setTimeout(()=>this.props.onSelectedChange(this.state.selected,this.state.editing),100)})}async getAllAdapterInstances(){const s=await this.props.socket.getAdapterInstances(!0),i={},r=s.map(l=>(i[l._id]=l,l._id));window.main.objects=i,window.main.instances=r,this.setState({instancesLoaded:!0})}static onInstanceChanged(s,i){if(s)if(!i&&window.main.instances.includes(s)){delete window.main.objects[s];const r=window.main.instances.indexOf(s);window.main.instances.splice(r,1)}else(i==null?void 0:i.type)==="instance"&&(window.main.instances.includes(s)||(window.main.instances.push(s),window.main.instances.sort()),window.main.objects[s]=i)}setChangedInAdmin(){const s=Object.keys(this.state.changed).find(i=>this.state.changed[i]);Object.keys(this.state.changed).forEach(i=>{this.changedMirror[i]=this.state.changed[i]}),Object.keys(this.changedMirror).forEach(i=>{this.state.changed[i]===void 0&&delete this.changedMirror[i]}),this.props.onChangedChanged(this.changedMirror),typeof window.parent<"u"&&window.parent&&(window.parent.configNotSaved=!!s)}componentDidMount(){window.addEventListener("beforeunload",this.onBrowserClose,!1),this.props.socket.subscribeObject("system.adapter.*",Hn.onInstanceChanged)}componentWillUnmount(){window.removeEventListener("beforeunload",this.onBrowserClose),this.props.socket.unsubscribeObject("system.adapter.*",Hn.onInstanceChanged)}componentDidUpdate(s){if(s.scriptsHash!==this.props.scriptsHash)for(const i of this.state.editing){const r=this.props.objects[i];if(!r||r.type!=="script")continue;const l=r.ts||0,c=this.lastKnownTs[i];c!==void 0&&l!==c&&(this.state.changed[i]?this.state.scriptConflict||this.setState({scriptConflict:i}):(this.scripts[i]=this.getScriptFromObject(i),this.lastKnownTs[i]=l))}}onBrowserClose=s=>{const i=Object.keys(this.scripts).find(r=>JSON.stringify(this.scripts[r])!==JSON.stringify(this.getScriptFromObject(r)));if(i){console.log(`Script ${JSON.stringify(this.scripts[i])}`);const r=x.I18n.t("Configuration not saved.");return s=s||window.event,s&&(s.returnValue=r),r}};removeNonExistingScripts(s,i){s=s||this.props,i=i||{};let r=!1;if(this.state.editing&&this.state.editing.find(c=>s&&!s.objects[c])){const c=[...this.state.editing];for(let h=c.length-1;h>=0;h--)this.objects[c[h]]||(r=!0,c.splice(h,1));r&&(i.editing=c),this.state.selected&&!this.objects[this.state.selected]&&(r=!0,i.selected=c[0]||"",i.selected&&this.scripts[i.selected]&&(this.state.blockly!==(this.scripts[i.selected].engineType==="Blockly")&&(i.blockly=this.scripts[i.selected].engineType==="Blockly",r=!0),this.state.rules!==(this.scripts[i.selected].engineType==="Rules")&&(i.rules=this.scripts[i.selected].engineType==="Rules",r=!0),this.state.verboseEnabled!==this.scripts[i.selected].verbose&&(i.verboseEnabled=this.scripts[i.selected].verbose,r=!0),this.state.debugEnabled!==this.scripts[i.selected].debug&&(i.debugEnabled=this.scripts[i.selected].debug,r=!0)))}return r}UNSAFE_componentWillReceiveProps(s){var l,c,h;const i={};let r=!1;if(JSON.stringify(s.runningInstances)!==JSON.stringify(this.state.runningInstances)&&(r=!0,i.runningInstances=s.runningInstances),this.state.menuOpened!==s.menuOpened&&(i.menuOpened=s.menuOpened,r=!0),this.state.themeType!==s.themeType&&(i.themeType=s.themeType,r=!0),this.removeNonExistingScripts(s,i)&&(r=!0),this.state.searchText!==s.searchText&&(i.searchText=s.searchText,r=!0),this.objects!==s.objects){this.objects=s.objects,window.main.objects=s.objects,Object.keys(this.scripts).forEach(p=>{const g=this.scripts[p].source;this.scripts[p]=JSON.parse(JSON.stringify(this.objects[p].common)),this.scripts[p].source=g}),this.state.selected&&this.objects[this.state.selected]&&(this.scripts[this.state.selected]||=JSON.parse(JSON.stringify(this.objects[this.state.selected].common)),this.state.blockly!==(this.scripts[this.state.selected].engineType==="Blockly")&&(i.blockly=this.scripts[this.state.selected].engineType==="Blockly",r=!0),this.state.rules!==(this.scripts[this.state.selected].engineType==="Rules")&&(i.rules=this.scripts[this.state.selected].engineType==="Rules",r=!0),this.state.verboseEnabled!==this.scripts[this.state.selected].verbose&&(i.verboseEnabled=this.scripts[this.state.selected].verbose,r=!0),this.state.debugEnabled!==this.scripts[this.state.selected].debug&&(i.debugEnabled=this.scripts[this.state.selected].debug,r=!0));const d=[...this.state.editing];for(let p=d.length-1;p>=0;p--)this.objects[d[p]]||(r=!0,d.splice(p,1),this.state.changed[d[p]]!==void 0&&(i.changed||={...this.state.changed},i.changed&&delete i.changed[d[p]]));this.state.selected&&!this.objects[this.state.selected]&&(i.selected=d[0]||""),r&&(i.editing=d)}else for(const d in this.scripts)if(Object.prototype.hasOwnProperty.call(this.scripts,d)){if((l=this.objects[d])!=null&&l.common){if(this.objects[d].type==="script"){const p=this.scripts[d].source,g=JSON.parse(JSON.stringify(this.scripts[d]));g.source=this.objects[d].common.source,JSON.stringify(g)!==JSON.stringify(this.objects[d].common)&&(this.scripts[d]=JSON.parse(JSON.stringify(this.objects[d].common)),this.scripts[d].source=p),p!==this.objects[d].common.source?this.state.changed[d]?(h=this.objects[d].from)!=null&&h.startsWith("system.adapter.javascript.")&&(this.objects[d].from="system.adapter.admin.0",this.setState({toast:x.I18n.t("Script %s was modified on disk.",d.split(".").pop())})):this.props.password&&((c=this.objects[d].native)!=null&&c.protected)?this.scripts[d].source=bm(this.props.password,this.objects[d].common.source):this.scripts[d].source=this.objects[d].common.source:this.state.changed[d]&&(i.changed||={...this.state.changed},i.changed&&(i.changed[d]=!1),r=!0)}}else if(this.scripts[d]&&(delete this.scripts[d],this.state.selected===d)){if(this.state.editing.indexOf(d)!==-1){const p=[...this.state.editing],g=p.indexOf(d);g!==-1&&(p.splice(g,1),i.editing=p,r=!0)}i.selected=this.state.editing[0]||"",r=!0}}if(s.selected&&this.state.selected!==s.selected){const d=this.getScriptFromObject(s.selected);this.scripts[s.selected]||=d;const p=d&&JSON.stringify(this.scripts[s.selected])!==JSON.stringify(d),g=[...this.state.editing];s.selected&&!g.includes(s.selected)&&(g.push(s.selected),this.props.onSelectedChange(s.selected,g),window.localStorage.setItem("Editor.editing",JSON.stringify(g))),r=!0,i.changed||={...this.state.changed},i.changed[s.selected]=!!p,i.editing=g,i.selected=s.selected,i.blockly=this.scripts[s.selected].engineType==="Blockly",i.rules=this.scripts[s.selected].engineType==="Rules",i.verboseEnabled=this.scripts[s.selected].verbose,i.debugEnabled=this.scripts[s.selected].debug,i.showCompiledCode=!1}this.state.visible!==s.visible&&(r=!0,i.visible=s.visible),r&&this.setState(i,()=>this.setChangedInAdmin())}onRestart(){var s,i;(i=(s=this.props).onRestart)==null||i.call(s,this.state.selected)}onStartStop(){var i,r,l;const s=JSON.parse(JSON.stringify(this.scripts[this.state.selected]));s.enabled=!s.enabled,this.props.password&&((i=this.props.objects[this.state.selected].native)!=null&&i.protected)&&(s.source=jc(this.props.password,s.source)),(l=(r=this.props).onChange)==null||l.call(r,this.state.selected,s)}onSave(){if(this.state.isTourOpen&&this.state.tourStep===Ps.saveTheScript&&(this.setState({isTourOpen:!1}),window.localStorage.setItem("tour","true")),this.state.changed[this.state.selected]){const s={...this.state.changed};s[this.state.selected]=!1,this.setState({changed:s},()=>{var r,l,c;this.setChangedInAdmin();const i=JSON.parse(JSON.stringify(this.scripts[this.state.selected]));this.props.password&&((r=this.props.objects[this.state.selected].native)!=null&&r.protected)&&(i.source=jc(this.props.password,i.source)),(c=(l=this.props).onChange)==null||c.call(l,this.state.selected,i)})}}onSaveAll(){const s={...this.state.changed};Object.keys(s).forEach(i=>{var r,l,c;if(s[i]){s[i]=!1;const h=JSON.parse(JSON.stringify(this.scripts[i]));this.props.password&&((r=this.props.objects[i].native)!=null&&r.protected)&&(h.source=jc(this.props.password,h.source)),(c=(l=this.props).onChange)==null||c.call(l,i,h)}}),this.setState({changed:s},()=>this.setChangedInAdmin())}onCancel(){var i;this.scripts[this.state.selected]=this.getScriptFromObject(this.state.selected),this.lastKnownTs[this.state.selected]=((i=this.props.objects[this.state.selected])==null?void 0:i.ts)||0;const s={...this.state.changed};s[this.state.selected]=!1,this.setState({changed:s},()=>this.setChangedInAdmin())}onRegisterSelect(s){this.getSelect=s}handleAiAction(s){const i={aiActionRequest:s};this.state.aiChatOpen||(window.localStorage.setItem("Editor.aiChatOpen","true"),i.aiChatOpen=!0),this.setState(i)}getEditorApi(){const s=()=>this.scriptEditorRef.current;return{getSelection:()=>{var i,r;return((r=(i=s())==null?void 0:i.getEditorSelection)==null?void 0:r.call(i))??null},getContent:()=>{var i,r;return((r=(i=s())==null?void 0:i.getEditorContent)==null?void 0:r.call(i))??""},getCursorPosition:()=>{var i,r;return((r=(i=s())==null?void 0:i.getCursorPosition)==null?void 0:r.call(i))??null},highlightText:i=>{var r,l;return((l=(r=s())==null?void 0:r.highlightText)==null?void 0:l.call(r,i))??0},highlightLineRange:(i,r)=>{var l,c;return((c=(l=s())==null?void 0:l.highlightLineRange)==null?void 0:c.call(l,i,r))??!1},goToLine:(i,r)=>{var l,c;return((c=(l=s())==null?void 0:l.goToLine)==null?void 0:c.call(l,i,r))??!1},insertTextAtCursor:i=>{const r=s();return r!=null&&r.insertTextIntoEditor?(r.insertTextIntoEditor(i),!0):!1},replaceSelection:i=>{var r,l;return((l=(r=s())==null?void 0:r.replaceSelection)==null?void 0:l.call(r,i))??!1},getDiagnostics:()=>{var i,r;return((r=(i=s())==null?void 0:i.getDiagnostics)==null?void 0:r.call(i))??[]},getSymbols:async()=>{var i,r;return((r=(i=s())==null?void 0:i.getDocumentSymbols)==null?void 0:r.call(i))??[]}}}onConvertBlockly2JS(){this.showConfirmDialog(x.I18n.t("It will not be possible to revert this operation."),s=>{if(s){this.scripts[this.state.selected].engineType="Javascript/js";const r=this.scripts[this.state.selected].source.split(`
|
|
298
|
+
`)){const y=g.trim().replace(/^\/\*+/,"").replace(/\*+\/$/,"").replace(/^\/\//,"").replace(/^\*+/,"").trim();y.length>=3&&c.add(y.toLowerCase())}if(c.size===0){if(l.length===1){const g=l[0],$=r[g.endLine-1]??"";return{range:{startLine:g.startLine,startColumn:1,endLine:g.endLine,endColumn:$.length+1},confidence:.5,method:"similarity"}}return null}let h=l[0],d=0;for(const g of l){let $=0;for(let w=g.startLine-1;w<g.endLine;w++){const v=r[w].trim().replace(/^\/\*+/,"").replace(/\*+\/$/,"").replace(/^\/\//,"").replace(/^\*+/,"").trim().toLowerCase();v&&c.has(v)&&$++}const y=$/c.size;y>d&&(d=y,h=g)}if(d<i)if(l.length===1)d=Math.max(d,.3);else return null;const p=r[h.endLine-1]??"";return{range:{startLine:h.startLine,startColumn:1,endLine:h.endLine,endColumn:p.length+1},confidence:d,method:"similarity"}}function LO(a,s,i){const r=DO(a,s);if(r)return r;const l=NO(a,s);return l||RO(a,s,i==null?void 0:i.similarityThreshold)}const Ug=[fO,$O,bO,yO],PO=pe.lazy(()=>Ki(()=>Promise.resolve().then(()=>g1),void 0,import.meta.url)),BO=pe.lazy(()=>Ki(()=>import("./index-CRGWWpGb.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13]),import.meta.url)),jO=pe.lazy(()=>Ki(()=>import("./index-CsyuIWlD.js"),__vite__mapDeps([14,1,2,3,4,6,7,5,15,9,8,10,11,12]),import.meta.url)),FO=pe.lazy(()=>Ki(()=>import("./ScriptEditorVanillaMonaco-Bn8xJ3LV.js"),__vite__mapDeps([15,9,1,2,3,4,6,7,5,8,10,11,12]),import.meta.url)),zO=pe.lazy(()=>Ki(()=>import("./ScriptEditor-8UU88tT5.js"),__vite__mapDeps([16,1,2,3,4,6,5,15,9,7,8,10,11,12,17]),import.meta.url)),U_=pe.lazy(()=>Ki(()=>import("./AiChatPanel-C3bIw_D5.js"),__vite__mapDeps([18,1,2,3,4,6,5,9,19,7,8,10,11,12]),import.meta.url)),UO=pe.lazy(()=>Ki(()=>import("./AiDiffView-RPozjjHf.js"),__vite__mapDeps([20,1,2,3,4,6,5,7]),import.meta.url)),H_={Blockly:Jk,"Javascript/js":qc,Rules:Xk,def:qc,"TypeScript/ts":qk},HO=48,W_="#02a102",Hg="#70aae9",WO=nk[400],GO=rk[400],Me={toolbar:a=>({minHeight:38,boxShadow:"0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12)",backgroundColor:a.palette.mode==="dark"?"#1e1e1e":"#E2E2E2"}),toolbarButtons:{padding:4,marginLeft:4},toolbarButtonsDisabled:{filter:"grayscale(100%)",opacity:.5},editorDiv:a=>({height:`calc(100% - ${(parseInt(a.toolbar.height,10)||48)+38+10}px)`,width:"100%",overflow:"hidden",position:"relative"}),textButton:{marginRight:10,minHeight:24,padding:"6px 16px",height:32},saveButton:{background:"#ff9900"},tabIcon:{width:24,height:24,verticalAlign:"middle",marginBottom:2,marginRight:2,borderRadius:3},hintIcon:{padding:"0 8px 0 8px"},hintButton:{marginTop:8,marginLeft:20},tabMenuButton:{position:"absolute",top:0,right:0},tabChanged:a=>({color:a.palette.secondary.main}),tabText:{maxWidth:130,textOverflow:"ellipsis",whiteSpace:"nowrap",overflow:"hidden",display:"inline-block",verticalAlign:"middle"},tabChangedIcon:{color:"#FF0000",fontSize:16,marginLeft:5},closeButton:{marginLeft:5},notRunning:{color:"#ffbc00",marginRight:8,marginLeft:8},tabButton:{minHeight:48},tabButtonWrapper:{display:"inline-block"},menuIcon:{width:18,height:18,borderRadius:2,marginRight:5}};class Hn extends pe.Component{getSelect=null;changedMirror={};cron={initValue:null,callback:null};scriptDialog={initValue:null,callback:null,args:null,isReturn:!1};objects;scripts;selectId={initValue:null,callback:null};confirmCallback=null;blocklyEditorRef=pe.createRef();scriptEditorRef=pe.createRef();lastKnownTs={};constructor(s){var c,h;super(s);let i=window.localStorage.getItem("Editor.selected")||"";const r=window.localStorage.getItem("Editor.editing")||"[]";let l;try{l=JSON.parse(r)}catch{l=[]}i&&!l.includes(i)&&l.push(i),i&&!this.props.password&&((h=(c=this.props.objects[i])==null?void 0:c.native)!=null&&h.protected)&&(i=l.find(d=>{var p,g;return!((g=(p=this.props.objects[d])==null?void 0:p.native)!=null&&g.protected)})||""),!i&&l.length&&(this.props.password?i=l[0]:i=l.find(d=>{var p,g;return!((g=(p=this.props.objects[d])==null?void 0:p.native)!=null&&g.protected)})||""),this.state={askAboutDebug:!1,astroEvents:null,blockly:null,changed:{},cmdToBlockly:"",cmdToRules:"",confirm:"",debugEnabled:!1,editing:l,insert:"",instancesLoaded:!1,isTourOpen:window.localStorage.getItem("tour")!=="true",menuDebugAnchorEl:null,menuOidDisplayAnchorEl:null,oidDisplayMode:parseInt(window.localStorage.getItem("Blockly.FieldOID.displayMode")||"0",10)||0,oidShowIcon:window.localStorage.getItem("Blockly.FieldOID.showIcon")==="true",menuOpened:!!this.props.menuOpened,menuTabsOpened:!1,aiChatOpen:window.localStorage.getItem("Editor.aiChatOpen")==="true",aiDiffView:null,aiActionRequest:null,inlineAskHandler:null,aiCompletionsEnabled:window.localStorage.getItem("Editor.aiCompletions")!=="false",triggerPrettier:1,scriptConflict:"",rules:null,runningInstances:this.props.runningInstances||{},searchText:"",selected:i,showAdapterDebug:!1,showAstro:!1,showCompiledCode:!1,showCron:!1,showDebugMenu:!1,showScript:!1,showSelectId:!1,themeType:this.props.themeType,toast:"",tourStep:Ps.selectTriggers,verboseEnabled:!1,visible:s.visible},this.setChangedInAdmin(),window.systemLang=x.I18n.getLanguage(),window.main={objects:{},getObject:(d,p)=>this.props.socket.getObject(d).then(g=>p==null?void 0:p(null,g)).catch(g=>p==null?void 0:p(g)),getState:(d,p)=>this.props.socket.getState(d).then(g=>p==null?void 0:p(null,g)).catch(g=>p==null?void 0:p(g)),instances:[],selectIdDialog:(d,p,g)=>{typeof p=="function"&&(g=p,p=null),this.selectId.callback=g,this.selectId.initValue=d,this.selectId.type=p,this.setState({showSelectId:!0})},cronDialog:(d,p)=>{this.cron.callback=p,this.cron.initValue=d,this.setState({showCron:!0})},showScriptDialog:(d,p,g,$)=>{this.scriptDialog.callback=$,this.scriptDialog.initValue=d,this.scriptDialog.args=p,this.scriptDialog.isReturn=g||!1,this.setState({showScript:!0})}},this.objects=s.objects,this.scripts={},this.getAllAdapterInstances().then(()=>{this.props.onSelectedChange&&this.state.selected&&setTimeout(()=>this.props.onSelectedChange(this.state.selected,this.state.editing),100)})}async getAllAdapterInstances(){const s=await this.props.socket.getAdapterInstances(!0),i={},r=s.map(l=>(i[l._id]=l,l._id));window.main.objects=i,window.main.instances=r,this.setState({instancesLoaded:!0})}static onInstanceChanged(s,i){if(s)if(!i&&window.main.instances.includes(s)){delete window.main.objects[s];const r=window.main.instances.indexOf(s);window.main.instances.splice(r,1)}else(i==null?void 0:i.type)==="instance"&&(window.main.instances.includes(s)||(window.main.instances.push(s),window.main.instances.sort()),window.main.objects[s]=i)}setChangedInAdmin(){const s=Object.keys(this.state.changed).find(i=>this.state.changed[i]);Object.keys(this.state.changed).forEach(i=>{this.changedMirror[i]=this.state.changed[i]}),Object.keys(this.changedMirror).forEach(i=>{this.state.changed[i]===void 0&&delete this.changedMirror[i]}),this.props.onChangedChanged(this.changedMirror),typeof window.parent<"u"&&window.parent&&(window.parent.configNotSaved=!!s)}componentDidMount(){window.addEventListener("beforeunload",this.onBrowserClose,!1),this.props.socket.subscribeObject("system.adapter.*",Hn.onInstanceChanged)}componentWillUnmount(){window.removeEventListener("beforeunload",this.onBrowserClose),this.props.socket.unsubscribeObject("system.adapter.*",Hn.onInstanceChanged)}componentDidUpdate(s){if(s.scriptsHash!==this.props.scriptsHash)for(const i of this.state.editing){const r=this.props.objects[i];if(!r||r.type!=="script")continue;const l=r.ts||0,c=this.lastKnownTs[i];c!==void 0&&l!==c&&(this.state.changed[i]?this.state.scriptConflict||this.setState({scriptConflict:i}):(this.scripts[i]=this.getScriptFromObject(i),this.lastKnownTs[i]=l))}}onBrowserClose=s=>{const i=Object.keys(this.scripts).find(r=>JSON.stringify(this.scripts[r])!==JSON.stringify(this.getScriptFromObject(r)));if(i){console.log(`Script ${JSON.stringify(this.scripts[i])}`);const r=x.I18n.t("Configuration not saved.");return s=s||window.event,s&&(s.returnValue=r),r}};removeNonExistingScripts(s,i){s=s||this.props,i=i||{};let r=!1;if(this.state.editing&&this.state.editing.find(c=>s&&!s.objects[c])){const c=[...this.state.editing];for(let h=c.length-1;h>=0;h--)this.objects[c[h]]||(r=!0,c.splice(h,1));r&&(i.editing=c),this.state.selected&&!this.objects[this.state.selected]&&(r=!0,i.selected=c[0]||"",i.selected&&this.scripts[i.selected]&&(this.state.blockly!==(this.scripts[i.selected].engineType==="Blockly")&&(i.blockly=this.scripts[i.selected].engineType==="Blockly",r=!0),this.state.rules!==(this.scripts[i.selected].engineType==="Rules")&&(i.rules=this.scripts[i.selected].engineType==="Rules",r=!0),this.state.verboseEnabled!==this.scripts[i.selected].verbose&&(i.verboseEnabled=this.scripts[i.selected].verbose,r=!0),this.state.debugEnabled!==this.scripts[i.selected].debug&&(i.debugEnabled=this.scripts[i.selected].debug,r=!0)))}return r}UNSAFE_componentWillReceiveProps(s){var l,c,h;const i={};let r=!1;if(JSON.stringify(s.runningInstances)!==JSON.stringify(this.state.runningInstances)&&(r=!0,i.runningInstances=s.runningInstances),this.state.menuOpened!==s.menuOpened&&(i.menuOpened=s.menuOpened,r=!0),this.state.themeType!==s.themeType&&(i.themeType=s.themeType,r=!0),this.removeNonExistingScripts(s,i)&&(r=!0),this.state.searchText!==s.searchText&&(i.searchText=s.searchText,r=!0),this.objects!==s.objects){this.objects=s.objects,window.main.objects=s.objects,Object.keys(this.scripts).forEach(p=>{const g=this.scripts[p].source;this.scripts[p]=JSON.parse(JSON.stringify(this.objects[p].common)),this.scripts[p].source=g}),this.state.selected&&this.objects[this.state.selected]&&(this.scripts[this.state.selected]||=JSON.parse(JSON.stringify(this.objects[this.state.selected].common)),this.state.blockly!==(this.scripts[this.state.selected].engineType==="Blockly")&&(i.blockly=this.scripts[this.state.selected].engineType==="Blockly",r=!0),this.state.rules!==(this.scripts[this.state.selected].engineType==="Rules")&&(i.rules=this.scripts[this.state.selected].engineType==="Rules",r=!0),this.state.verboseEnabled!==this.scripts[this.state.selected].verbose&&(i.verboseEnabled=this.scripts[this.state.selected].verbose,r=!0),this.state.debugEnabled!==this.scripts[this.state.selected].debug&&(i.debugEnabled=this.scripts[this.state.selected].debug,r=!0));const d=[...this.state.editing];for(let p=d.length-1;p>=0;p--)this.objects[d[p]]||(r=!0,d.splice(p,1),this.state.changed[d[p]]!==void 0&&(i.changed||={...this.state.changed},i.changed&&delete i.changed[d[p]]));this.state.selected&&!this.objects[this.state.selected]&&(i.selected=d[0]||""),r&&(i.editing=d)}else for(const d in this.scripts)if(Object.prototype.hasOwnProperty.call(this.scripts,d)){if((l=this.objects[d])!=null&&l.common){if(this.objects[d].type==="script"){const p=this.scripts[d].source,g=JSON.parse(JSON.stringify(this.scripts[d]));g.source=this.objects[d].common.source,JSON.stringify(g)!==JSON.stringify(this.objects[d].common)&&(this.scripts[d]=JSON.parse(JSON.stringify(this.objects[d].common)),this.scripts[d].source=p),p!==this.objects[d].common.source?this.state.changed[d]?(h=this.objects[d].from)!=null&&h.startsWith("system.adapter.javascript.")&&(this.objects[d].from="system.adapter.admin.0",this.setState({toast:x.I18n.t("Script %s was modified on disk.",d.split(".").pop())})):this.props.password&&((c=this.objects[d].native)!=null&&c.protected)?this.scripts[d].source=bm(this.props.password,this.objects[d].common.source):this.scripts[d].source=this.objects[d].common.source:this.state.changed[d]&&(i.changed||={...this.state.changed},i.changed&&(i.changed[d]=!1),r=!0)}}else if(this.scripts[d]&&(delete this.scripts[d],this.state.selected===d)){if(this.state.editing.indexOf(d)!==-1){const p=[...this.state.editing],g=p.indexOf(d);g!==-1&&(p.splice(g,1),i.editing=p,r=!0)}i.selected=this.state.editing[0]||"",r=!0}}if(s.selected&&this.state.selected!==s.selected){const d=this.getScriptFromObject(s.selected);this.scripts[s.selected]||=d;const p=d&&JSON.stringify(this.scripts[s.selected])!==JSON.stringify(d),g=[...this.state.editing];s.selected&&!g.includes(s.selected)&&(g.push(s.selected),this.props.onSelectedChange(s.selected,g),window.localStorage.setItem("Editor.editing",JSON.stringify(g))),r=!0,i.changed||={...this.state.changed},i.changed[s.selected]=!!p,i.editing=g,i.selected=s.selected,i.blockly=this.scripts[s.selected].engineType==="Blockly",i.rules=this.scripts[s.selected].engineType==="Rules",i.verboseEnabled=this.scripts[s.selected].verbose,i.debugEnabled=this.scripts[s.selected].debug,i.showCompiledCode=!1}this.state.visible!==s.visible&&(r=!0,i.visible=s.visible),r&&this.setState(i,()=>this.setChangedInAdmin())}onRestart(){var s,i;(i=(s=this.props).onRestart)==null||i.call(s,this.state.selected)}onStartStop(){var i,r,l;const s=JSON.parse(JSON.stringify(this.scripts[this.state.selected]));s.enabled=!s.enabled,this.props.password&&((i=this.props.objects[this.state.selected].native)!=null&&i.protected)&&(s.source=jc(this.props.password,s.source)),(l=(r=this.props).onChange)==null||l.call(r,this.state.selected,s)}onSave(){if(this.state.isTourOpen&&this.state.tourStep===Ps.saveTheScript&&(this.setState({isTourOpen:!1}),window.localStorage.setItem("tour","true")),this.state.changed[this.state.selected]){const s={...this.state.changed};s[this.state.selected]=!1,this.setState({changed:s},()=>{var r,l,c;this.setChangedInAdmin();const i=JSON.parse(JSON.stringify(this.scripts[this.state.selected]));this.props.password&&((r=this.props.objects[this.state.selected].native)!=null&&r.protected)&&(i.source=jc(this.props.password,i.source)),(c=(l=this.props).onChange)==null||c.call(l,this.state.selected,i)})}}onSaveAll(){const s={...this.state.changed};Object.keys(s).forEach(i=>{var r,l,c;if(s[i]){s[i]=!1;const h=JSON.parse(JSON.stringify(this.scripts[i]));this.props.password&&((r=this.props.objects[i].native)!=null&&r.protected)&&(h.source=jc(this.props.password,h.source)),(c=(l=this.props).onChange)==null||c.call(l,i,h)}}),this.setState({changed:s},()=>this.setChangedInAdmin())}onCancel(){var i;this.scripts[this.state.selected]=this.getScriptFromObject(this.state.selected),this.lastKnownTs[this.state.selected]=((i=this.props.objects[this.state.selected])==null?void 0:i.ts)||0;const s={...this.state.changed};s[this.state.selected]=!1,this.setState({changed:s},()=>this.setChangedInAdmin())}onRegisterSelect(s){this.getSelect=s}handleAiAction(s){const i={aiActionRequest:s};this.state.aiChatOpen||(window.localStorage.setItem("Editor.aiChatOpen","true"),i.aiChatOpen=!0),this.setState(i)}getEditorApi(){const s=()=>this.scriptEditorRef.current;return{getSelection:()=>{var i,r;return((r=(i=s())==null?void 0:i.getEditorSelection)==null?void 0:r.call(i))??null},getContent:()=>{var i,r;return((r=(i=s())==null?void 0:i.getEditorContent)==null?void 0:r.call(i))??""},getCursorPosition:()=>{var i,r;return((r=(i=s())==null?void 0:i.getCursorPosition)==null?void 0:r.call(i))??null},highlightText:i=>{var r,l;return((l=(r=s())==null?void 0:r.highlightText)==null?void 0:l.call(r,i))??0},highlightLineRange:(i,r)=>{var l,c;return((c=(l=s())==null?void 0:l.highlightLineRange)==null?void 0:c.call(l,i,r))??!1},goToLine:(i,r)=>{var l,c;return((c=(l=s())==null?void 0:l.goToLine)==null?void 0:c.call(l,i,r))??!1},insertTextAtCursor:i=>{const r=s();return r!=null&&r.insertTextIntoEditor?(r.insertTextIntoEditor(i),!0):!1},replaceSelection:i=>{var r,l;return((l=(r=s())==null?void 0:r.replaceSelection)==null?void 0:l.call(r,i))??!1},getDiagnostics:()=>{var i,r;return((r=(i=s())==null?void 0:i.getDiagnostics)==null?void 0:r.call(i))??[]},getSymbols:async()=>{var i,r;return((r=(i=s())==null?void 0:i.getDocumentSymbols)==null?void 0:r.call(i))??[]}}}onConvertBlockly2JS(){this.showConfirmDialog(x.I18n.t("It will not be possible to revert this operation."),s=>{if(s){this.scripts[this.state.selected].engineType="Javascript/js";const r=this.scripts[this.state.selected].source.split(`
|
|
299
299
|
`);r.pop(),this.scripts[this.state.selected].source=r.join(`
|
|
300
300
|
`);const l=this.state.selected,c={...this.state.changed};c[this.state.selected]=!0,this.setState({changed:c,blockly:!1,selected:""},()=>{this.setChangedInAdmin(),setTimeout(()=>this.setState({selected:l}),100)})}})}onChange(s){if(s.script!==void 0){if(s.script===this.scripts[this.state.selected].source)return;this.scripts[this.state.selected].source=s.script}s.debug!==void 0&&(this.scripts[this.state.selected].debug=s.debug),s.verbose!==void 0&&(this.scripts[this.state.selected].verbose=s.verbose);const i=JSON.stringify(this.scripts[this.state.selected])!==JSON.stringify(this.getScriptFromObject(this.state.selected));if(i!==!!this.state.changed[this.state.selected]){const r={...this.state.changed};r[this.state.selected]=i,this.objects[this.state.selected].from="system.adapter.admin.0",this.setState({changed:r},()=>this.setChangedInAdmin())}}onTabChange(s){var r,l;if(this.props.debugMode)return;window.localStorage.setItem("Editor.selected",s);const i=this.scripts[s]||this.getScriptFromObject(s);this.scripts[s]||(this.scripts[s]=i),this.lastKnownTs[s]===void 0&&this.props.objects[s]&&(this.lastKnownTs[s]=this.props.objects[s].ts||0),this.setState({selected:s,rules:i.engineType==="Rules",blockly:i.engineType==="Blockly",showCompiledCode:!1,verboseEnabled:i.verbose,debugEnabled:i.debug}),(l=(r=this.props).onSelectedChange)==null||l.call(r,s,this.state.editing)}isScriptChanged(s){return!!(this.scripts[s]&&this.props.objects[s]&&JSON.stringify(this.scripts[s])!==JSON.stringify(this.getScriptFromObject(s)))}onTabClose(s,i){i==null||i.stopPropagation();const r=this.state.editing.indexOf(s);if(this.state.editing.includes(s))if(this.isScriptChanged(s))this.showConfirmDialog(x.I18n.t("Discard changes for %s",this.props.objects[s].common.name),l=>{l&&(delete this.scripts[s],delete this.lastKnownTs[s],this.onTabClose(s))});else{const l=[...this.state.editing];l.splice(r,1);const c={editing:l};if(s===this.state.selected?l.length?r===0||l.length===1?c.selected=l[0]:c.selected=l[r-1]:c.selected="":this.state.selected&&!l.length&&(c.selected=""),window.localStorage.setItem("Editor.editing",JSON.stringify(l)),c.selected!==void 0){c.changed||={...this.state.changed},c.changed[c.selected]=this.isScriptChanged(c.selected);const h=c.selected?this.scripts[c.selected]||this.getScriptFromObject(c.selected):void 0;c.blockly=(h==null?void 0:h.engineType)==="Blockly",c.rules=(h==null?void 0:h.engineType)==="Rules",c.verboseEnabled=!!(h!=null&&h.verbose),c.debugEnabled=!!(h!=null&&h.debug),c.showCompiledCode=!1}this.setState(c,()=>{var h,d,p,g;this.setChangedInAdmin(),c.selected!==void 0?((d=(h=this.props).onSelectedChange)==null||d.call(h,c.selected,this.state.editing),window.localStorage.setItem("Editor.selected",c.selected)):(g=(p=this.props).onSelectedChange)==null||g.call(p,this.state.selected,this.state.editing)})}}showConfirmDialog(s,i){this.confirmCallback=i,this.setState({confirm:s})}sendCommandToBlockly(s){this.setState({cmdToBlockly:s},()=>setTimeout(()=>this.setState({cmdToBlockly:""}),200))}sendCommandToRules(s){this.setState({cmdToRules:s},()=>setTimeout(()=>this.setState({cmdToRules:""}),200))}static getText(s){return typeof s=="object"?s[x.I18n.getLanguage()]||s.en:s}getScriptFullName(s){var c;const i=s.split(".");i.shift(),i.shift();const r=[];let l="script.js";for(let h=0;h<i.length;h++)l+=`.${i[h]}`,(c=this.props.objects[l])!=null&&c.common?r.push(Hn.getText(this.props.objects[l].common.name)):r.push(i[h]);return`/ ${r.join(" / ")}`}getTabs(){return this.state.editing.length?[m.jsxs(PT,{component:"div",value:this.props.debugInstance?this.props.debugInstance.adapter:this.state.selected,onChange:(s,i)=>this.onTabChange(i),indicatorColor:"primary",style:{position:"relative",marginLeft:10,width:this.state.editing.length>1?"calc(100% - 50px)":"100%",display:"inline-block"},textColor:"primary",variant:"scrollable",scrollButtons:"auto",allowScrollButtonsMobile:!0,children:[this.state.editing.map(s=>{var d,p;if(!this.props.objects[s]){const g=[m.jsx(bt,{sx:this.isScriptChanged(s)?Me.tabChanged:void 0,style:Me.tabText,children:s.split(".").pop()},"text"),m.jsx(We,{onClick:$=>this.onTabClose(s,$),style:Me.closeButton,size:"small",component:"span",children:m.jsx(kc,{})},"icon")];return m.jsx(fg,{wrapped:!0,href:`#${s}`,label:g,value:s,sx:{"& .MuiTab-wrapper":Me.tabButtonWrapper}},s)}if(!this.props.password&&((d=this.props.objects[s].native)!=null&&d.protected))return null;let i=Hn.getText(this.props.objects[s].common.name)||"";const r=this.getScriptFullName(s);i.length>18&&(i=`${i.substring(0,15)}...`);const l=(p=this.getScriptFromObject(s))==null?void 0:p.source,c=this.scripts[s]&&l!==this.scripts[s].source,h=[m.jsx(bt,{sx:this.isScriptChanged(s)?Me.tabChanged:void 0,style:Me.tabText,children:i},"text"),c?m.jsx("span",{style:Me.tabChangedIcon,children:"▣"},"changedSign"):null,!this.props.debugInstance&&(!this.props.debugMode||this.state.selected!==s)&&m.jsx(We,{onClick:g=>this.onTabClose(s,g),style:Me.closeButton,size:"small",component:"span",children:m.jsx(kc,{})},"icon")];return m.jsx(fg,{disabled:!!this.props.debugInstance||this.state.selected!==s&&this.props.debugMode,wrapped:!0,iconPosition:"start",icon:m.jsx("img",{alt:"",src:H_[this.props.objects[s].common.engineType]||H_.def,style:Me.tabIcon},"icon"),href:`#${s}`,label:h,style:Me.tabButton,value:s,title:r,sx:{"& .MuiTab-wrapper":Me.tabButtonWrapper}},s)}),this.props.debugInstance?m.jsx(fg,{disabled:!1,wrapped:!0,href:`#${this.props.debugInstance.adapter}`,label:this.props.debugInstance.adapter,style:Me.tabButton,value:this.props.debugInstance.adapter,title:this.props.debugInstance.adapter,sx:{"& .MuiTab-wrapper":Me.tabButtonWrapper}},this.props.debugInstance.adapter):""]},"tabs1"),this.state.editing.length>1?m.jsx(We,{href:"#","aria-label":"Close all but current",style:Me.tabMenuButton,title:x.I18n.t("Close all but current"),"aria-haspopup":"false",onClick:s=>{const i=[this.state.selected];Object.keys(this.scripts).forEach(r=>r!==this.state.selected&&JSON.stringify(this.scripts[r])!==JSON.stringify(this.getScriptFromObject(r))&&i.push(r)),window.localStorage.setItem("Editor.editing",JSON.stringify(i)),this.setState({menuTabsOpened:!1,editing:i})},size:"medium",children:m.jsx(cI,{})},"menuButton"):null]:m.jsx(bt,{sx:Me.toolbar,children:m.jsxs(je,{color:"grey",disabled:!0,style:Me.hintButton,href:"",children:[m.jsx("span",{children:x.I18n.t("Click on this icon")},"select2"),m.jsx(uI,{style:Me.hintIcon},"select3"),m.jsx("span",{children:x.I18n.t("for edit or create script")},"select4")]},"select1")},"tabs2")}getDebugMenu(){return this.state.showDebugMenu?m.jsxs(Vc,{id:"menu-debug",anchorEl:this.state.menuDebugAnchorEl,open:this.state.showDebugMenu,onClose:()=>this.setState({showDebugMenu:!1,menuDebugAnchorEl:null}),slotProps:{root:{style:{maxHeight:HO*7.5}}},children:[m.jsxs(et,{title:x.I18n.t("debug_help"),onClick:s=>{s.stopPropagation(),s.preventDefault(),this.setState({showDebugMenu:!1,menuDebugAnchorEl:null,debugEnabled:!this.state.debugEnabled},()=>this.onChange({debug:this.state.debugEnabled}))},children:[m.jsx(ua,{checked:this.state.debugEnabled}),m.jsx(Cc,{style:{...Me.menuIcon,color:W_}}),x.I18n.t("debug_label")]},"debugEnabled"),m.jsxs(et,{title:x.I18n.t("verbose_help"),onClick:s=>{s.stopPropagation(),s.preventDefault(),this.setState({showDebugMenu:!1,menuDebugAnchorEl:null,verboseEnabled:!this.state.verboseEnabled},()=>this.onChange({verbose:this.state.verboseEnabled}))},children:[m.jsx(ua,{checked:this.state.verboseEnabled}),m.jsx(Ow,{style:{...Me.menuIcon,color:Hg}}),x.I18n.t("verbose_label")]},"verboseEnabled")]},"menuDebug"):null}getDebugBadge(){return[this.state.debugEnabled&&this.state.verboseEnabled?m.jsx(Cc,{style:{...Me.menuIcon,color:Hg}},"DebugVerbose"):null,this.state.debugEnabled&&!this.state.verboseEnabled?m.jsx(Cc,{style:{...Me.menuIcon,color:W_}},"DebugNoVerbose"):null,!this.state.debugEnabled&&this.state.verboseEnabled?m.jsx(Ow,{style:{...Me.menuIcon,color:Hg}},"noDebugVerbose"):null]}getAskAboutDebug(){return this.state.askAboutDebug?m.jsx(x.DialogConfirm,{onClose:()=>{this.setState({askAboutDebug:!1},()=>this.props.onDebugModeChange(!0))},ok:x.I18n.t("Yes"),cancel:x.I18n.t("Cancel"),text:x.I18n.t("The script will be stopped and must be activated manually after debugging. Continue?")}):null}getToolbar(){var r,l;const s=!!(this.state.selected&&((r=this.scripts[this.state.selected])!=null&&r.engine)&&this.state.runningInstances[this.scripts[this.state.selected].engine]),i=!!(this.state.selected&&((l=this.scripts[this.state.selected])!=null&&l.enabled));if(this.state.selected){const c=Object.keys(this.state.changed).filter(d=>this.state.changed[d]).length,h=this.state.changed[this.state.selected];return m.jsxs(BT,{variant:"dense",sx:Me.toolbar,children:[!this.props.debugInstance&&this.state.menuOpened&&this.props.onLocate&&m.jsx(We,{style:Me.toolbarButtons,title:x.I18n.t("Locate file"),onClick:()=>this.props.onLocate(this.state.selected),size:"medium",children:m.jsx(dI,{})},"locate"),!this.props.debugInstance&&!h&&s?m.jsx(We,{disabled:this.props.debugMode,style:Me.toolbarButtons,onClick:()=>this.onRestart(),title:x.I18n.t("Restart"),size:"medium",children:m.jsx(hI,{})},"restart"):null,!this.props.debugInstance&&!h?m.jsx(We,{disabled:this.props.debugMode,onClick:()=>this.onStartStop(),title:i?x.I18n.t("Pause script"):x.I18n.t("Run script"),size:"medium",style:{...Me.toolbarButtons,color:i?WO:GO},children:i?m.jsx(pI,{}):m.jsx(gI,{})},"start-stop"):null,!this.props.debugInstance&&!h&&!i?m.jsx("span",{style:Me.notRunning,children:x.I18n.t("Script is not running")}):null,!h&&i&&!s?m.jsx("span",{style:Me.notRunning,children:x.I18n.t("Instance is disabled")}):null,h?m.jsx(je,{color:"grey",variant:"contained",style:{...Me.textButton,...Me.saveButton},className:"button-save",onClick:()=>this.onSave(),endIcon:m.jsx(Mw,{}),children:x.I18n.t("Save")},"save"):null,c>1||c===1&&!h?m.jsx(je,{color:"grey",variant:"contained",style:Me.textButton,onClick:()=>this.onSaveAll(),endIcon:m.jsx(Mw,{}),children:x.I18n.t("Save all")},"saveall"):null,h?m.jsx(je,{color:"grey",variant:"contained",style:Me.textButton,onClick:()=>this.onCancel(),endIcon:m.jsx(bu,{}),children:x.I18n.t("Cancel")},"cancel"):null,!this.state.showCompiledCode&&!this.state.rules?m.jsx(We,{title:x.I18n.t("Undo"),style:Me.toolbarButtons,onClick:()=>{var d,p;if(this.state.blockly){const g=(d=this.blocklyEditorRef.current)==null?void 0:d.blocklyWorkspace;g==null||g.undo(!1)}else(p=this.scriptEditorRef.current)==null||p.undo()},size:"medium",children:m.jsx(mI,{})},"undo"):null,!this.state.showCompiledCode&&!this.state.rules?m.jsx(We,{title:x.I18n.t("Redo"),style:Me.toolbarButtons,onClick:()=>{var d,p;if(this.state.blockly){const g=(d=this.blocklyEditorRef.current)==null?void 0:d.blocklyWorkspace;g==null||g.undo(!0)}else(p=this.scriptEditorRef.current)==null||p.redo()},size:"medium",children:m.jsx(fI,{})},"redo"):null,m.jsx("div",{style:{flex:2}}),this.state.blockly&&!this.state.showCompiledCode&&m.jsx(We,{"aria-label":"OID display mode",title:x.I18n.t("OID display mode"),style:Me.toolbarButtons,onClick:d=>this.setState({menuOidDisplayAnchorEl:d.currentTarget}),size:"medium",children:m.jsx("img",{src:Ug[this.state.oidDisplayMode]||Ug[0],alt:"OID",width:36,height:22})},"oid-display-mode"),m.jsxs(Vc,{anchorEl:this.state.menuOidDisplayAnchorEl,open:!!this.state.menuOidDisplayAnchorEl,onClose:()=>this.setState({menuOidDisplayAnchorEl:null}),children:[Ug.map((d,p)=>m.jsxs(et,{selected:this.state.oidDisplayMode===p,onClick:()=>{var $,y,w;this.setState({oidDisplayMode:p,menuOidDisplayAnchorEl:null});const g=($=window.scripts)==null?void 0:$.blocklyWorkspace;g&&((w=(y=window.Blockly)==null?void 0:y.FieldOID)!=null&&w.setDisplayMode)&&window.Blockly.FieldOID.setDisplayMode(p,g)},children:[m.jsx("img",{src:d,alt:"",width:48,height:28,style:{marginRight:8}}),(()=>{var y,w,v,_,b,T,I,C,D;const g=(v=(w=(y=window.Blockly)==null?void 0:y.FieldOID)==null?void 0:w.DISPLAY_MODE_KEYS)==null?void 0:v[p],$=["Show name","Show name path","Show ID","Show full ID"];return g&&(((T=(b=(_=window.Blockly)==null?void 0:_.Words)==null?void 0:b[g])==null?void 0:T[x.I18n.getLanguage()])||((D=(C=(I=window.Blockly)==null?void 0:I.Words)==null?void 0:C[g])==null?void 0:D.en))||$[p]})()]},`oid-mode-${p}`)),m.jsx(rm,{}),m.jsxs(et,{onClick:()=>{var g,$,y;const d=!this.state.oidShowIcon;this.setState({oidShowIcon:d});const p=(g=window.scripts)==null?void 0:g.blocklyWorkspace;p&&((y=($=window.Blockly)==null?void 0:$.FieldOID)!=null&&y.setShowIcon)&&window.Blockly.FieldOID.setShowIcon(d,p)},children:[m.jsx(ua,{checked:this.state.oidShowIcon,style:{padding:0,marginRight:8}}),(()=>{var p,g,$,y,w,v;const d="oid_show_icon";return(($=(g=(p=window.Blockly)==null?void 0:p.Words)==null?void 0:g[d])==null?void 0:$[x.I18n.getLanguage()])||((v=(w=(y=window.Blockly)==null?void 0:y.Words)==null?void 0:w[d])==null?void 0:v.en)||"Show icon"})()]},"oid-show-icon")]},"menuOidDisplay"),!this.props.debugInstance&&!this.state.showCompiledCode&&m.jsx(We,{style:Me.toolbarButtons,title:x.I18n.t("Prettify the script"),onClick:()=>this.setState({triggerPrettier:this.state.triggerPrettier+1}),size:"medium",children:m.jsx($I,{})},"prettier"),this.state.blockly&&!this.state.showCompiledCode?m.jsx(We,{"aria-label":"Export Blocks",title:x.I18n.t("Export blocks"),style:Me.toolbarButtons,onClick:()=>this.sendCommandToBlockly("export"),size:"medium",children:m.jsx(Kc,{})},"export"):null,this.state.blockly&&!this.state.showCompiledCode&&m.jsx(We,{"aria-label":"Import Blocks",title:x.I18n.t("Import blocks"),style:Me.toolbarButtons,onClick:()=>this.sendCommandToBlockly("import"),size:"medium",children:m.jsx(lm,{})},"import"),this.state.blockly&&!this.state.showCompiledCode&&m.jsx(We,{"aria-label":"Check code",title:x.I18n.t("Check blocks"),style:Me.toolbarButtons,onClick:()=>this.sendCommandToBlockly("check"),size:"medium",children:m.jsx(bI,{})},"check"),!this.props.debugMode&&!this.state.blockly&&!this.state.rules&&!this.state.showCompiledCode?m.jsx(We,{"aria-label":"create CRON",title:x.I18n.t("Create or edit CRON or time wizard"),style:Me.toolbarButtons,onClick:()=>this.setState({showCron:!0}),size:"medium",children:m.jsx(yI,{})},"select-cron"):null,this.scripts[this.state.selected]&&this.scripts[this.state.selected].engineType!=="Rules"?m.jsx(m.Fragment,{children:m.jsx(We,{"aria-label":"AI",title:x.I18n.t("AI Chat"),style:{...Me.toolbarButtons,...this.state.aiChatOpen?{color:"#4caf50"}:{}},size:"medium",onClick:()=>{const d=!this.state.aiChatOpen;window.localStorage.setItem("Editor.aiChatOpen",String(d)),this.setState({aiChatOpen:d})},children:m.jsx(vI,{})},"ai")}):null,m.jsx(We,{"aria-label":"Show astronomical events",title:x.I18n.t("Show astronomical events"),style:Me.toolbarButtons,disabled:!s,onClick:()=>{this.setState({showAstro:!0,astroEvents:null}),this.props.socket.sendTo(this.scripts[this.state.selected].engine.replace("system.adapter.",""),"calcAstroAll",{}).then(d=>this.setState({astroEvents:d}))},size:"medium",children:m.jsx(wI,{})},"show-astro"),!this.props.debugMode&&!this.state.blockly&&!this.state.rules&&!this.state.showCompiledCode&&m.jsx(We,{"aria-label":"select ID",title:x.I18n.t("Insert object ID"),style:Me.toolbarButtons,onClick:()=>this.setState({showSelectId:!0}),size:"medium",children:m.jsx(_I,{})},"select-id"),this.state.blockly&&!this.state.rules&&this.state.showCompiledCode&&m.jsx(je,{color:"grey","aria-label":"convert to javascript",title:x.I18n.t("Convert blockly to javascript for ever."),onClick:()=>this.onConvertBlockly2JS(),children:"Blockly=>JS"},"convert2js"),this.state.rules&&!this.state.showCompiledCode&&m.jsx(We,{"aria-label":"Export Blocks",title:x.I18n.t("Export blocks"),style:Me.toolbarButtons,onClick:()=>this.sendCommandToRules("export"),size:"medium",children:m.jsx(Kc,{})},"export"),this.state.rules&&!this.state.showCompiledCode&&m.jsx(We,{"aria-label":"Import Blocks",title:x.I18n.t("Import blocks"),style:Me.toolbarButtons,onClick:()=>this.sendCommandToRules("import"),size:"medium",children:m.jsx(lm,{})},"import"),this.props.expertMode&&!h&&(this.props.debugMode||!this.state.blockly&&!this.state.rules||(this.state.blockly||this.state.rules)&&this.state.showCompiledCode)&&m.jsx(We,{style:Me.toolbarButtons,color:this.props.debugMode?"primary":"default",disabled:!this.props.debugMode&&!s,onClick:()=>{!this.props.debugMode&&i?this.setState({askAboutDebug:!0}):this.props.onDebugModeChange(!this.props.debugMode)},size:"medium",children:m.jsx(Cc,{style:{fontSize:32}})}),(this.state.blockly||this.state.rules)&&m.jsx(je,{"aria-label":"blockly",title:x.I18n.t("Show javascript code"),className:"button-js-code",color:this.state.showCompiledCode?"secondary":"inherit",disabled:this.props.debugMode,style:{...Me.toolbarButtons,...this.props.debugMode?Me.toolbarButtonsDisabled:void 0,padding:"0 5px"},onClick:()=>{this.props.debugMode||(this.setState({showCompiledCode:!this.state.showCompiledCode}),this.state.isTourOpen&&this.state.tourStep===Ps.showJavascript&&this.setState({tourStep:Ps.switchBackToRules}),this.state.isTourOpen&&this.state.tourStep===Ps.switchBackToRules&&this.setState({tourStep:Ps.saveTheScript}))},children:m.jsx("img",{alt:this.state.blockly?"blockly2js":"rules2js",src:this.state.blockly?gO:mO})},"blockly-code"),m.jsx(We,{disabled:this.props.debugMode,"aria-label":"Debug menu",title:x.I18n.t("Debug options"),style:Me.toolbarButtons,onClick:d=>this.setState({showDebugMenu:!0,menuDebugAnchorEl:d.currentTarget}),size:"medium",children:m.jsx(jT,{style:Me.badgeMargin,badgeContent:this.getDebugBadge(),children:m.jsx(kI,{})})},"debug")]},"toolbar1")}return null}cachedScriptInfos=null;lastObjectsHash="";getScriptInfos(){const s=Object.keys(this.props.objects).join(",");return this.cachedScriptInfos&&this.lastObjectsHash===s?this.cachedScriptInfos:(this.lastObjectsHash=s,this.cachedScriptInfos=wO(this.props.objects),this.cachedScriptInfos)}getScriptEditor(){var s,i;if(!this.props.debugMode&&this.state.selected&&this.props.objects[this.state.selected]&&this.state.blockly!==null&&(!this.state.blockly||this.state.showCompiledCode)&&(!this.state.rules||this.state.showCompiledCode)){this.scripts[this.state.selected]||=this.getScriptFromObject(this.state.selected);const r=this.scripts[this.state.selected].engineType==="TypeScript/ts"?"typescript":"javascript",l=m.jsx(Zo,{fallback:m.jsx(Qo,{}),children:m.jsx(FO,{ref:this.scriptEditorRef,name:this.state.selected,adapterName:this.props.adapterName,insert:this.state.insert,onInserted:()=>this.setState({insert:""}),onForceSave:()=>this.onSave(),searchText:this.state.searchText,onRegisterSelect:c=>this.onRegisterSelect(c),readOnly:this.state.showCompiledCode,changed:this.state.changed[this.state.selected],code:this.scripts[this.state.selected].source||"",isDark:this.state.themeType==="dark",socket:this.props.socket,runningInstances:this.state.runningInstances,triggerPrettier:this.state.triggerPrettier,onChange:c=>this.onChange({script:c}),language:r,aiCompletionsEnabled:this.state.aiCompletionsEnabled,onAiAction:c=>this.handleAiAction(c),onInlineAsk:this.state.inlineAskHandler?c=>this.state.inlineAskHandler(c.question,c.selectedCode):void 0},"scriptEditor1")});if(this.state.aiDiffView)return m.jsx(bt,{sx:Me.editorDiv,children:m.jsx(Zo,{fallback:m.jsx(Qo,{}),children:m.jsx(UO,{originalCode:this.state.aiDiffView.original,modifiedCode:this.state.aiDiffView.modified,language:r,themeType:this.state.themeType,onAccept:c=>{this.onChange({script:c}),this.setState({aiDiffView:null})},onReject:()=>this.setState({aiDiffView:null})})})},"scriptEditorDiv");if(this.state.aiChatOpen){const c=window.localStorage.getItem("Editor.aiChatSizes");let h=[70,30];try{c&&(h=JSON.parse(c))}catch{}return m.jsx(bt,{sx:Me.editorDiv,children:m.jsxs(Jc,{direction:mt.Horizontal,initialSizes:h,minWidths:[200,250],gutterClassName:this.state.themeType==="dark"?"Dark visGutter":"Light visGutter",onResizeFinished:(d,p)=>{window.localStorage.setItem("Editor.aiChatSizes",JSON.stringify(p))},children:[l,m.jsx(Zo,{fallback:m.jsx(Qo,{}),children:m.jsx(U_,{socket:this.props.socket,runningInstances:this.state.runningInstances,themeType:this.state.themeType,currentCode:((s=this.scripts[this.state.selected])==null?void 0:s.source)||"",currentLanguage:r,selectedCode:((i=this.getSelect)==null?void 0:i.call(this))||"",allScripts:this.getScriptInfos(),editorApi:this.getEditorApi(),aiActionRequest:this.state.aiActionRequest,onAiActionConsumed:()=>this.setState({aiActionRequest:null}),onRegisterInlineAsk:d=>this.setState({inlineAskHandler:d}),currentScriptId:this.state.selected,onInsertCode:d=>this.setState({insert:d}),onShowDiff:(d,p)=>{var v;const g=this.state.selected,$=((v=this.scripts[g])==null?void 0:v.source)||"",y=this.scriptEditorRef.current,w=(_,b)=>{y==null||y.showInlineDiff({range:_,originalText:b,modifiedText:d,onAccepted:()=>{var I;const T=((I=y==null?void 0:y.getEditorContent)==null?void 0:I.call(y))||$;this.onChange({script:T})}})};if(p&&p.range&&p.scriptId===g){w(p.range,p.originalText);return}try{const _=LO(d,$);if(_){const T=$.split(`
|
|
301
301
|
`).slice(_.range.startLine-1,_.range.endLine).join(`
|
|
@@ -1264,4 +1264,4 @@ const demo = ${JSON.stringify(a,null,2).replace(/\*\//g,"* /")};
|
|
|
1264
1264
|
//${btoa(encodeURIComponent('<xml xmlns="https://developers.google.com/blockly/xml"></xml>'))}`),this.socket.setObject(s,{_id:s,type:"script",common:{name:i,expert:!0,engineType:c||"Javascript/js",enabled:!1,engine:`system.adapter.javascript.${l||0}`,source:h||"",debug:!1,verbose:!1},native:{}}).then(()=>setTimeout(()=>this.onSelect(s),1e3)).catch(p=>this.showJsError(p)))}async updateScript(s,i,r){let l=await this.socket.getObject(s);const c={common:{}};if(r.engine!==void 0&&(c.common.engine=r.engine),r.enabled!==void 0&&(c.common.enabled=r.enabled),r.source!==void 0&&(c.common.source=r.source),r.debug!==void 0&&(c.common.debug=r.debug),r.verbose!==void 0&&(c.common.verbose=r.verbose),c.from="system.adapter.admin.0",s===i&&(l!=null&&l.common)&&r.name===l.common.name){(!r.engineType||r.engineType!==l.common.engineType)&&r.engineType!==void 0&&(c.common.engineType=r.engineType||"Javascript/js"),c.type="script",await this.socket.extendObject(s,c);return}if(l!=null&&l.common){l.common.engineType=r.engineType||l.common.engineType||"Javascript/js",await this.socket.delObject(s),c.common.engine!==void 0&&(l.common.engine=c.common.engine),c.common.enabled!==void 0&&(l.common.enabled=c.common.enabled),c.common.source!==void 0&&(l.common.source=c.common.source),c.common.name!==void 0&&(l.common.name=c.common.name),c.common.debug!==void 0&&(l.common.debug=c.common.debug),c.common.verbose!==void 0&&(l.common.verbose=c.common.verbose),l._rev!==void 0&&delete l._rev,l.common.name=r.name,l.common.expert=!0,l.type="script",l._id=i,await this.socket.setObject(i,l);return}l=c,l.common.name=r.name,l.common.expert=!0,l.type="script",l._id=i,await this.socket.setObject(i,l)}onEnableDisable(s,i){var r;if(((r=this.scripts[s])==null?void 0:r.type)==="script"){const l=this.scripts[s].common;l.enabled=i,l.expert=!0,this.updateScript(s,s,l).catch(c=>c!=="canceled"&&this.showJsError(c))}}async getLiveHost(){for(let s=0;s<this.hosts.length;s++){const i=this.hosts[s],r=await this.socket.getState(`${i}.alive`);if(r&&(r!=null&&r.val))return i}}async onExport(s){const i=new Date;let r=i.getFullYear().toString(),l=i.getMonth()+1;if(l<10&&(l=`0${l}`),r+=`-${l}`,l=i.getDate(),l<10&&(l=`0${l}`),r+=`-${l}-`,s){const c=await this.getLiveHost();if(!c){this.showJsError(x.I18n.t("No active host found"));return}this.socket.getRawSocket().emit("sendToHost",c,"readObjectsAsZip",{adapter:"javascript",id:"script.js",link:`${r}scripts.zip`,fileStorageNamespace:`admin.${this.instance}`},h=>{if(typeof h=="string"){const d=document.createElement("a");d.href=`../../files/${h}`,document.body.appendChild(d),d.click(),d.remove()}else if(h.error&&this.showJsError(h.error),h.data){const d=document.createElement("a");d.href=`data: application/zip;base64,${h.data}`,d.download=`${r}scripts.zip`,document.body.appendChild(d),d.click(),d.remove()}})}else{const c=new sk;for(const[h,d]of Object.entries(this.scripts))if(d.type==="script"){const p=d,g=p.common.engineType==="TypeScript/ts"?"ts":p.common.engineType==="Blockly"?"blockly":p.common.engineType==="Rules"?"rules":"js";let $=`/******* (ext=${g}/engine=${p.common.engine}/debug=${p.common.debug}/verbose=${p.common.verbose}/enabled=${p.common.enabled}) *******/
|
|
1265
1265
|
`;$+=p.common.source||"";const y=`${h.substring(10).replace(/\./g,"/")}.${g}`;c.file(y,$)}c.generateAsync({type:"blob"}).then(h=>{const d=document.createElement("a");d.href=URL.createObjectURL(h),d.download=`${r}scripts_plain.zip`,document.body.appendChild(d),d.click(),d.remove(),URL.revokeObjectURL(d.href)})}}onImport(s,i){this.importFile=s||null,this.importFileName=i||null,s?(this.confirmCallback=this.onImportConfirmed.bind(this),this.setState({importFile:!1,confirm:x.I18n.t("Existing scripts will be overwritten.")})):this.setState({importFile:!1})}async onImportConfirmed(s){let i=this.importFile;const r=this.importFileName;if(this.importFile=null,this.importFileName=null,s&&i)if(r&&/_(plain|text)\.zip$/i.test(r)){i=i.split(",")[1];try{const c=await sk.loadAsync(i,{base64:!0}),h=[];c.forEach((d,p)=>{p.dir||h.push(p.async("string").then(async g=>{const $=g.split(`
|
|
1266
1266
|
`),y=$[0]||"",w=$.slice(1).join(`
|
|
1267
|
-
`),v=y.match(/\/\*{7}\s*\(ext=(\w+)\/engine=([^/]+)\/debug=(\w+)\/verbose=(\w+)\/enabled=(\w+)\)\s*\*{7}\//);let _="Javascript/js",b="system.adapter.javascript.0",T=!1,I=!1,C=!1;if(v){const j=v[1];b=v[2],T=v[3]==="true",I=v[4]==="true",C=v[5]==="true",j==="ts"?_="TypeScript/ts":j==="blockly"?_="Blockly":j==="rules"&&(_="Rules")}const D=d.replace(/\.\w+$/,"").replace(/\//g,"."),R=`script.js.${D}`,N=D.split(".").pop()||D,U=R.split(".");for(let j=3;j<U.length;j++){const B=U.slice(0,j).join(".");if(!this.scripts[B])try{await this.socket.setObject(B,{_id:B,type:"channel",common:{name:U[j-1],expert:!0},native:{}})}catch{}}await this.socket.setObject(R,{_id:R,type:"script",common:{name:N,expert:!0,engineType:_,engine:b,enabled:C,source:w,debug:T,verbose:I},native:{}})}))}),await Promise.all(h),this.showMessage(x.I18n.t("Done"))}catch(c){this.showJsError(c)}}else{i=i.split(",")[1];const c=await this.getLiveHost();if(!c){this.showJsError(x.I18n.t("No active host found"));return}this.socket.getRawSocket().emit("sendToHost",c,"writeObjectsAsZip",{data:i,adapter:"javascript",id:"script.js"},h=>{h==="permissionError"?this.showJsError(x.I18n.t(h)):!h||h.error?this.showJsError(h?x.I18n.t(h.error||""):x.I18n.t("Unknown error")):this.showMessage(x.I18n.t("Done"))})}}toggleLogLayout(){window.localStorage.setItem("App.logHorzLayout",this.state.logHorzLayout?"false":"true"),this.setState({logHorzLayout:!this.state.logHorzLayout})}renderEditor(){var i;const s=Object.keys(this.scripts).reduce((r,l)=>r+(this.scripts[l].common.engineType==="Rules"?1:0),0);return m.jsx(Hn,{scriptsHash:this.state.scriptsHash,debugMode:this.state.debugMode,onDebugModeChange:r=>{r?this.setState({debugMode:!0}):this.setState({debugMode:!1,debugInstance:null})},visible:!this.state.resizing,socket:this.socket,adapterName:this.adapterName,onLocate:r=>this.setState({menuSelectId:r}),password:this.state.password,runningInstances:this.state.runningInstances,menuOpened:this.state.menuOpened,searchText:this.state.searchText,themeType:this.state.themeType,themeName:this.state.themeName,theme:this.state.theme,expertMode:this.state.expertMode,onChange:(r,l)=>this.onUpdateScript(r,l),isAnyRulesExists:s,debugInstance:this.state.debugInstance,onSelectedChange:(r,l)=>{const c={};let h=!1;r!==this.state.selected&&(h=!0,c.selected=r),JSON.stringify(l)!==JSON.stringify(this.state.editing)&&(h=!0,c.editing=[...l]),h&&this.setState(c)},onRestart:r=>this.socket.extendObject(r,{common:{enabled:!0}}),selected:this.state.selected&&((i=this.scripts[this.state.selected])==null?void 0:i.type)==="script"?this.state.selected:"",objects:this.scripts,resizing:this.state.resizing,onChangedChanged:r=>this.changedScripts=r},"editor")}showLogButton(){return m.jsx(bt,{title:x.I18n.t("Show logs"),sx:ra.showLogButton,onClick:()=>{window.localStorage.setItem("App.hideLog","false"),this.setState({hideLog:!1,resizing:!0}),setTimeout(()=>this.setState({resizing:!1}),300)},children:m.jsx(II,{})},"showLog")}renderErrorDialog(){return this.state.errorText?m.jsx(Tu,{onClose:()=>this.setState({errorText:""}),text:this.state.errorText},"dialogError"):null}renderMain(){let s;return this.state.debugMode||this.state.hideLog?s=m.jsxs(m.Fragment,{children:[!this.state.debugMode&&this.state.hideLog?this.showLogButton():void 0,this.renderEditor()]}):s=m.jsxs(Jc,{direction:this.state.logHorzLayout?mt.Horizontal:mt.Vertical,initialSizes:this.state.logSizes,minWidths:[500,100],minHeights:[150,50],onResizeStarted:()=>this.setState({resizing:!0}),onResizeFinished:(i,r)=>{this.setState({logSizes:r,resizing:!1}),window.localStorage.setItem("JS.logSizes",JSON.stringify(r))},gutterClassName:this.state.themeType==="dark"?"Dark visGutter":"Light visGutter",children:[this.renderEditor(),m.jsx(qm,{verticalLayout:!this.state.logHorzLayout,onLayoutChange:()=>this.toggleLogLayout(),editing:this.state.editing,socket:this.socket,selected:this.state.selected,onHideLog:()=>{window.localStorage.setItem("App.hideLog","true"),this.setState({hideLog:!0,resizing:!0}),setTimeout(()=>this.setState({resizing:!1}),300)}},"log")]}),m.jsxs(bt,{sx:ra.content,className:"iobVerticalSplitter",children:[m.jsx(bt,{sx:ra.menuOpenCloseButton,onClick:()=>{window.localStorage.setItem("App.menuOpened",this.state.menuOpened?"false":"true"),this.setState({menuOpened:!this.state.menuOpened,resizing:!0}),setTimeout(()=>this.setState({resizing:!1}),300)},children:this.state.menuOpened?m.jsx(EI,{}):m.jsx(xI,{})},"closeMenu"),this.state.message?m.jsx(x.Message,{onClose:()=>this.setState({message:""}),text:this.state.message},"dialogMessage"):null,this.renderErrorDialog(),this.state.importFile?m.jsx(vf,{onClose:(i,r)=>this.onImport(i,r)},"dialogImportFile"):null,this.state.confirm?m.jsx(x.Confirm,{onClose:i=>{this.state.confirm&&this.setState({confirm:""}),this.confirmCallback&&this.confirmCallback(i),this.confirmCallback=null},text:this.state.confirm},"dialogConfirm"):null,this.renderPasswordDialog(),s]},"main")}render(){if(!this.state.ready)return m.jsx(Nw,{injectFirst:!0,children:m.jsx(Lw,{theme:this.state.theme,children:m.jsx(x.Loader,{themeType:this.state.themeType})})});let s;return this.state.menuOpened?s=m.jsxs(Jc,{direction:mt.Horizontal,initialSizes:this.state.splitSizes,minWidths:[270,400],onResizeFinished:(i,r)=>{this.setState({splitSizes:r}),window.localStorage.setItem("JS.splitSizes",JSON.stringify(r))},gutterClassName:this.state.themeType==="dark"?"Dark visGutter":"Light visGutter",children:[m.jsx("div",{style:ra.mainDiv,children:m.jsx(Ao,{password:this.state.password,debugMode:this.state.debugMode,onDebugInstance:i=>this.setState({debugInstance:i,debugMode:!!i}),scripts:this.scripts,scriptsHash:this.state.scriptsHash,instances:this.state.instances,onRename:this.onRename.bind(this),socket:this.socket,selectId:this.state.menuSelectId,onEdit:this.onEdit.bind(this),expertMode:this.state.expertMode,themeName:this.state.themeName,onThemeChange:i=>{x.Utils.setThemeName(i);const r=x.Utils.getThemeType(i);this.setState({themeName:i,themeType:r},()=>this.toggleTheme(i))},runningInstances:this.state.runningInstances,onExpertModeChange:i=>this.onExpertModeChange(i),onDelete:this.onDelete.bind(this),onAddNew:this.onAddNew.bind(this),onEnableDisable:this.onEnableDisable.bind(this),onExport:this.onExport.bind(this),width:500,onImport:()=>this.setState({importFile:!0}),onSearch:i=>this.setState({searchText:i}),version:this.props.version,changedScripts:this.changedScripts},"sidemenu")},"menu"),this.renderMain()]}):s=this.renderMain(),m.jsx(Nw,{injectFirst:!0,children:m.jsx(Lw,{theme:this.state.theme,children:m.jsx("div",{style:ra.root,children:m.jsx(pM,{socket:this.socket,children:s})})})})}}window.location.hostname==="localhost"||window.location.hostname==="[::1]"||window.location.hostname.match(/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/);function Yre(){"serviceWorker"in navigator&&navigator.serviceWorker.ready.then(a=>{a.unregister()})}const Jre="9.3.0",AS={version:Jre};var ii;(function(a){a.mouse="mouse",a.touch="touch",a.keyboard="keyboard"})(ii||(ii={}));class qre{get delay(){var s;return(s=this.args.delay)!==null&&s!==void 0?s:0}get scrollAngleRanges(){return this.args.scrollAngleRanges}get getDropTargetElementsAtPoint(){return this.args.getDropTargetElementsAtPoint}get ignoreContextMenu(){var s;return(s=this.args.ignoreContextMenu)!==null&&s!==void 0?s:!1}get enableHoverOutsideTarget(){var s;return(s=this.args.enableHoverOutsideTarget)!==null&&s!==void 0?s:!1}get enableKeyboardEvents(){var s;return(s=this.args.enableKeyboardEvents)!==null&&s!==void 0?s:!1}get enableMouseEvents(){var s;return(s=this.args.enableMouseEvents)!==null&&s!==void 0?s:!1}get enableTouchEvents(){var s;return(s=this.args.enableTouchEvents)!==null&&s!==void 0?s:!0}get touchSlop(){return this.args.touchSlop||0}get delayTouchStart(){var s,i,r,l;return(l=(r=(s=this.args)===null||s===void 0?void 0:s.delayTouchStart)!==null&&r!==void 0?r:(i=this.args)===null||i===void 0?void 0:i.delay)!==null&&l!==void 0?l:0}get delayMouseStart(){var s,i,r,l;return(l=(r=(s=this.args)===null||s===void 0?void 0:s.delayMouseStart)!==null&&r!==void 0?r:(i=this.args)===null||i===void 0?void 0:i.delay)!==null&&l!==void 0?l:0}get window(){if(this.context&&this.context.window)return this.context.window;if(typeof window<"u")return window}get document(){var s;if(!((s=this.context)===null||s===void 0)&&s.document)return this.context.document;if(this.window)return this.window.document}get rootElement(){var s;return((s=this.args)===null||s===void 0?void 0:s.rootElement)||this.document}constructor(s,i){this.args=s,this.context=i}}function Xre(a,s,i,r){return Math.sqrt(Math.pow(Math.abs(i-a),2)+Math.pow(Math.abs(r-s),2))}function Zre(a,s,i,r,l){if(!l)return!1;const c=Math.atan2(r-s,i-a)*180/Math.PI+180;for(let h=0;h<l.length;++h){const d=l[h];if(d&&(d.start==null||c>=d.start)&&(d.end==null||c<=d.end))return!0}return!1}const Qre={Left:1},eae={Left:0};function Zg(a){return a.button===void 0||a.button===eae.Left}function tae(a){return a.buttons===void 0||(a.buttons&Qre.Left)===0}function RS(a){return!!a.targetTouches}const sae=1;function oae(a){const s=a.nodeType===sae?a:a.parentElement;if(!s)return;const{top:i,left:r}=s.getBoundingClientRect();return{x:r,y:i}}function iae(a,s){if(a.targetTouches.length===1)return $u(a.targetTouches[0]);if(s&&a.touches.length===1&&a.touches[0].target===s.target)return $u(a.touches[0])}function $u(a,s){return RS(a)?iae(a,s):{x:a.clientX,y:a.clientY}}const ok=(()=>{let a=!1;try{addEventListener("test",()=>{},Object.defineProperty({},"passive",{get(){return a=!0,!0}}))}catch{}return a})(),aa={[ii.mouse]:{start:"mousedown",move:"mousemove",end:"mouseup",contextmenu:"contextmenu"},[ii.touch]:{start:"touchstart",move:"touchmove",end:"touchend"},[ii.keyboard]:{keydown:"keydown"}};class $a{profile(){var s;return{sourceNodes:this.sourceNodes.size,sourcePreviewNodes:this.sourcePreviewNodes.size,sourcePreviewNodeOptions:this.sourcePreviewNodeOptions.size,targetNodes:this.targetNodes.size,dragOverTargetIds:((s=this.dragOverTargetIds)===null||s===void 0?void 0:s.length)||0}}get document(){return this.options.document}setup(){const s=this.options.rootElement;s&&(Ue(!$a.isSetUp,"Cannot have two Touch backends at the same time."),$a.isSetUp=!0,this.addEventListener(s,"start",this.getTopMoveStartHandler()),this.addEventListener(s,"start",this.handleTopMoveStartCapture,!0),this.addEventListener(s,"move",this.handleTopMove),this.addEventListener(s,"move",this.handleTopMoveCapture,!0),this.addEventListener(s,"end",this.handleTopMoveEndCapture,!0),this.options.enableMouseEvents&&!this.options.ignoreContextMenu&&this.addEventListener(s,"contextmenu",this.handleTopMoveEndCapture),this.options.enableKeyboardEvents&&this.addEventListener(s,"keydown",this.handleCancelOnEscape,!0))}teardown(){const s=this.options.rootElement;s&&($a.isSetUp=!1,this._mouseClientOffset={},this.removeEventListener(s,"start",this.handleTopMoveStartCapture,!0),this.removeEventListener(s,"start",this.handleTopMoveStart),this.removeEventListener(s,"move",this.handleTopMoveCapture,!0),this.removeEventListener(s,"move",this.handleTopMove),this.removeEventListener(s,"end",this.handleTopMoveEndCapture,!0),this.options.enableMouseEvents&&!this.options.ignoreContextMenu&&this.removeEventListener(s,"contextmenu",this.handleTopMoveEndCapture),this.options.enableKeyboardEvents&&this.removeEventListener(s,"keydown",this.handleCancelOnEscape,!0),this.uninstallSourceNodeRemovalObserver())}addEventListener(s,i,r,l=!1){const c=ok?{capture:l,passive:!1}:l;this.listenerTypes.forEach(function(h){const d=aa[h][i];d&&s.addEventListener(d,r,c)})}removeEventListener(s,i,r,l=!1){const c=ok?{capture:l,passive:!1}:l;this.listenerTypes.forEach(function(h){const d=aa[h][i];d&&s.removeEventListener(d,r,c)})}connectDragSource(s,i){const r=this.handleMoveStart.bind(this,s);return this.sourceNodes.set(s,i),this.addEventListener(i,"start",r),()=>{this.sourceNodes.delete(s),this.removeEventListener(i,"start",r)}}connectDragPreview(s,i,r){return this.sourcePreviewNodeOptions.set(s,r),this.sourcePreviewNodes.set(s,i),()=>{this.sourcePreviewNodes.delete(s),this.sourcePreviewNodeOptions.delete(s)}}connectDropTarget(s,i){const r=this.options.rootElement;if(!this.document||!r)return()=>{};const l=c=>{if(!this.document||!r||!this.monitor.isDragging())return;let h;switch(c.type){case aa.mouse.move:h={x:c.clientX,y:c.clientY};break;case aa.touch.move:var d,p;h={x:((d=c.touches[0])===null||d===void 0?void 0:d.clientX)||0,y:((p=c.touches[0])===null||p===void 0?void 0:p.clientY)||0};break}const g=h!=null?this.document.elementFromPoint(h.x,h.y):void 0,$=g&&i.contains(g);if(g===i||$)return this.handleMove(c,s)};return this.addEventListener(this.document.body,"move",l),this.targetNodes.set(s,i),()=>{this.document&&(this.targetNodes.delete(s),this.removeEventListener(this.document.body,"move",l))}}getTopMoveStartHandler(){return!this.options.delayTouchStart&&!this.options.delayMouseStart?this.handleTopMoveStart:this.handleTopMoveStartDelay}installSourceNodeRemovalObserver(s){this.uninstallSourceNodeRemovalObserver(),this.draggedSourceNode=s,this.draggedSourceNodeRemovalObserver=new MutationObserver(()=>{s&&!s.parentElement&&(this.resurrectSourceNode(),this.uninstallSourceNodeRemovalObserver())}),!(!s||!s.parentElement)&&this.draggedSourceNodeRemovalObserver.observe(s.parentElement,{childList:!0})}resurrectSourceNode(){this.document&&this.draggedSourceNode&&(this.draggedSourceNode.style.display="none",this.draggedSourceNode.removeAttribute("data-reactid"),this.document.body.appendChild(this.draggedSourceNode))}uninstallSourceNodeRemovalObserver(){this.draggedSourceNodeRemovalObserver&&this.draggedSourceNodeRemovalObserver.disconnect(),this.draggedSourceNodeRemovalObserver=void 0,this.draggedSourceNode=void 0}constructor(s,i,r){this.getSourceClientOffset=l=>{const c=this.sourceNodes.get(l);return c&&oae(c)},this.handleTopMoveStartCapture=l=>{Zg(l)&&(this.moveStartSourceIds=[])},this.handleMoveStart=l=>{Array.isArray(this.moveStartSourceIds)&&this.moveStartSourceIds.unshift(l)},this.handleTopMoveStart=l=>{if(!Zg(l))return;const c=$u(l);c&&(RS(l)&&(this.lastTargetTouchFallback=l.targetTouches[0]),this._mouseClientOffset=c),this.waitingForDelay=!1},this.handleTopMoveStartDelay=l=>{if(!Zg(l))return;const c=l.type===aa.touch.start?this.options.delayTouchStart:this.options.delayMouseStart;this.timeout=setTimeout(this.handleTopMoveStart.bind(this,l),c),this.waitingForDelay=!0},this.handleTopMoveCapture=()=>{this.dragOverTargetIds=[]},this.handleMove=(l,c)=>{this.dragOverTargetIds&&this.dragOverTargetIds.unshift(c)},this.handleTopMove=l=>{if(this.timeout&&clearTimeout(this.timeout),!this.document||this.waitingForDelay)return;const{moveStartSourceIds:c,dragOverTargetIds:h}=this,d=this.options.enableHoverOutsideTarget,p=$u(l,this.lastTargetTouchFallback);if(!p)return;if(this._isScrolling||!this.monitor.isDragging()&&Zre(this._mouseClientOffset.x||0,this._mouseClientOffset.y||0,p.x,p.y,this.options.scrollAngleRanges)){this._isScrolling=!0;return}if(!this.monitor.isDragging()&&this._mouseClientOffset.hasOwnProperty("x")&&c&&Xre(this._mouseClientOffset.x||0,this._mouseClientOffset.y||0,p.x,p.y)>(this.options.touchSlop?this.options.touchSlop:0)&&(this.moveStartSourceIds=void 0,this.actions.beginDrag(c,{clientOffset:this._mouseClientOffset,getSourceClientOffset:this.getSourceClientOffset,publishSource:!1})),!this.monitor.isDragging())return;const g=this.sourceNodes.get(this.monitor.getSourceId());this.installSourceNodeRemovalObserver(g),this.actions.publishDragSource(),l.cancelable&&l.preventDefault();const $=(h||[]).map(_=>this.targetNodes.get(_)).filter(_=>!!_),y=this.options.getDropTargetElementsAtPoint?this.options.getDropTargetElementsAtPoint(p.x,p.y,$):this.document.elementsFromPoint(p.x,p.y),w=[];for(const _ in y){if(!y.hasOwnProperty(_))continue;let b=y[_];for(b!=null&&w.push(b);b;)b=b.parentElement,b&&w.indexOf(b)===-1&&w.push(b)}const v=w.filter(_=>$.indexOf(_)>-1).map(_=>this._getDropTargetId(_)).filter(_=>!!_).filter((_,b,T)=>T.indexOf(_)===b);if(d)for(const _ in this.targetNodes){const b=this.targetNodes.get(_);if(g&&b&&b.contains(g)&&v.indexOf(_)===-1){v.unshift(_);break}}v.reverse(),this.actions.hover(v,{clientOffset:p})},this._getDropTargetId=l=>{const c=this.targetNodes.keys();let h=c.next();for(;h.done===!1;){const d=h.value;if(l===this.targetNodes.get(d))return d;h=c.next()}},this.handleTopMoveEndCapture=l=>{if(this._isScrolling=!1,this.lastTargetTouchFallback=void 0,!!tae(l)){if(!this.monitor.isDragging()||this.monitor.didDrop()){this.moveStartSourceIds=void 0;return}l.cancelable&&l.preventDefault(),this._mouseClientOffset={},this.uninstallSourceNodeRemovalObserver(),this.actions.drop(),this.actions.endDrag()}},this.handleCancelOnEscape=l=>{l.key==="Escape"&&this.monitor.isDragging()&&(this._mouseClientOffset={},this.uninstallSourceNodeRemovalObserver(),this.actions.endDrag())},this.options=new qre(r,i),this.actions=s.getActions(),this.monitor=s.getMonitor(),this.sourceNodes=new Map,this.sourcePreviewNodes=new Map,this.sourcePreviewNodeOptions=new Map,this.targetNodes=new Map,this.listenerTypes=[],this._mouseClientOffset={},this._isScrolling=!1,this.options.enableMouseEvents&&this.listenerTypes.push(ii.mouse),this.options.enableTouchEvents&&this.listenerTypes.push(ii.touch),this.options.enableKeyboardEvents&&this.listenerTypes.push(ii.keyboard)}}const nae=function(s,i={},r={}){return new $a(s,i,r)};window.GenericBlock=at;window.adapterName="javascript";window.sentryDSN="https://504499a725eb4898930d3b9e9da95740@sentry.iobroker.net/56";console.log(`iobroker.${window.adapterName}@${AS.version}`);const rae=window.innerWidth<600,ik=document.getElementById("root");ik&&vk(ik).render(m.jsx(Nk,{backend:rae?nae:Kk,children:m.jsx(Kre,{version:AS.version})}));Yre();const Mc=window.loadDynamicScript;Mc&&Mc(window.location.port==="3000"?`${window.location.protocol}//${window.location.hostname}:8081/lib/js/socket.io.js`:"./../../lib/js/socket.io.js",()=>Mc("vs/loader.js",()=>Mc("vs/configure.js",()=>typeof window.socketLoadedHandler=="function"&&window.socketLoadedHandler())));export{hM as C,XO as D,at as G,Yk as I,q_ as M,Ps as S,$x as a,Lx as b,Wx as c,Pi as d,eue as e,_f as f,Tu as g,TO as h,CO as i,tue as j,wae as k,vae as l,Jc as m,G_ as n,Oc as o,_ae as p,er as u,mt as z};
|
|
1267
|
+
`),v=y.match(/\/\*{7}\s*\(ext=(\w+)\/engine=([^/]+)\/debug=(\w+)\/verbose=(\w+)\/enabled=(\w+)\)\s*\*{7}\//);let _="Javascript/js",b="system.adapter.javascript.0",T=!1,I=!1,C=!1;if(v){const j=v[1];b=v[2],T=v[3]==="true",I=v[4]==="true",C=v[5]==="true",j==="ts"?_="TypeScript/ts":j==="blockly"?_="Blockly":j==="rules"&&(_="Rules")}const D=d.replace(/\.\w+$/,"").replace(/\//g,"."),R=`script.js.${D}`,N=D.split(".").pop()||D,U=R.split(".");for(let j=3;j<U.length;j++){const B=U.slice(0,j).join(".");if(!this.scripts[B])try{await this.socket.setObject(B,{_id:B,type:"channel",common:{name:U[j-1],expert:!0},native:{}})}catch{}}await this.socket.setObject(R,{_id:R,type:"script",common:{name:N,expert:!0,engineType:_,engine:b,enabled:C,source:w,debug:T,verbose:I},native:{}})}))}),await Promise.all(h),this.showMessage(x.I18n.t("Done"))}catch(c){this.showJsError(c)}}else{i=i.split(",")[1];const c=await this.getLiveHost();if(!c){this.showJsError(x.I18n.t("No active host found"));return}this.socket.getRawSocket().emit("sendToHost",c,"writeObjectsAsZip",{data:i,adapter:"javascript",id:"script.js"},h=>{h==="permissionError"?this.showJsError(x.I18n.t(h)):!h||h.error?this.showJsError(h?x.I18n.t(h.error||""):x.I18n.t("Unknown error")):this.showMessage(x.I18n.t("Done"))})}}toggleLogLayout(){window.localStorage.setItem("App.logHorzLayout",this.state.logHorzLayout?"false":"true"),this.setState({logHorzLayout:!this.state.logHorzLayout})}renderEditor(){var i;const s=Object.keys(this.scripts).reduce((r,l)=>r+(this.scripts[l].common.engineType==="Rules"?1:0),0);return m.jsx(Hn,{scriptsHash:this.state.scriptsHash,debugMode:this.state.debugMode,onDebugModeChange:r=>{r?this.setState({debugMode:!0}):this.setState({debugMode:!1,debugInstance:null})},visible:!this.state.resizing,socket:this.socket,adapterName:this.adapterName,onLocate:r=>this.setState({menuSelectId:r}),password:this.state.password,runningInstances:this.state.runningInstances,menuOpened:this.state.menuOpened,searchText:this.state.searchText,themeType:this.state.themeType,themeName:this.state.themeName,theme:this.state.theme,expertMode:this.state.expertMode,onChange:(r,l)=>this.onUpdateScript(r,l),isAnyRulesExists:s,debugInstance:this.state.debugInstance,onSelectedChange:(r,l)=>{const c={};let h=!1;r!==this.state.selected&&(h=!0,c.selected=r),JSON.stringify(l)!==JSON.stringify(this.state.editing)&&(h=!0,c.editing=[...l]),h&&this.setState(c)},onRestart:r=>this.socket.extendObject(r,{common:{enabled:!0}}),selected:this.state.selected&&((i=this.scripts[this.state.selected])==null?void 0:i.type)==="script"?this.state.selected:"",objects:this.scripts,resizing:this.state.resizing,onChangedChanged:r=>this.changedScripts=r},"editor")}showLogButton(){return m.jsx(bt,{title:x.I18n.t("Show logs"),sx:ra.showLogButton,onClick:()=>{window.localStorage.setItem("App.hideLog","false"),this.setState({hideLog:!1,resizing:!0}),setTimeout(()=>this.setState({resizing:!1}),300)},children:m.jsx(II,{})},"showLog")}renderErrorDialog(){return this.state.errorText?m.jsx(Tu,{onClose:()=>this.setState({errorText:""}),text:this.state.errorText},"dialogError"):null}renderMain(){let s;return this.state.debugMode||this.state.hideLog?s=m.jsxs(m.Fragment,{children:[!this.state.debugMode&&this.state.hideLog?this.showLogButton():void 0,this.renderEditor()]}):s=m.jsxs(Jc,{direction:this.state.logHorzLayout?mt.Horizontal:mt.Vertical,initialSizes:this.state.logSizes,minWidths:[500,100],minHeights:[150,50],onResizeStarted:()=>this.setState({resizing:!0}),onResizeFinished:(i,r)=>{this.setState({logSizes:r,resizing:!1}),window.localStorage.setItem("JS.logSizes",JSON.stringify(r))},gutterClassName:this.state.themeType==="dark"?"Dark visGutter":"Light visGutter",children:[this.renderEditor(),m.jsx(qm,{verticalLayout:!this.state.logHorzLayout,onLayoutChange:()=>this.toggleLogLayout(),editing:this.state.editing,socket:this.socket,selected:this.state.selected,onHideLog:()=>{window.localStorage.setItem("App.hideLog","true"),this.setState({hideLog:!0,resizing:!0}),setTimeout(()=>this.setState({resizing:!1}),300)}},"log")]}),m.jsxs(bt,{sx:ra.content,className:"iobVerticalSplitter",children:[m.jsx(bt,{sx:ra.menuOpenCloseButton,onClick:()=>{window.localStorage.setItem("App.menuOpened",this.state.menuOpened?"false":"true"),this.setState({menuOpened:!this.state.menuOpened,resizing:!0}),setTimeout(()=>this.setState({resizing:!1}),300)},children:this.state.menuOpened?m.jsx(EI,{}):m.jsx(xI,{})},"closeMenu"),this.state.message?m.jsx(x.Message,{onClose:()=>this.setState({message:""}),text:this.state.message},"dialogMessage"):null,this.renderErrorDialog(),this.state.importFile?m.jsx(vf,{onClose:(i,r)=>this.onImport(i,r)},"dialogImportFile"):null,this.state.confirm?m.jsx(x.Confirm,{onClose:i=>{this.state.confirm&&this.setState({confirm:""}),this.confirmCallback&&this.confirmCallback(i),this.confirmCallback=null},text:this.state.confirm},"dialogConfirm"):null,this.renderPasswordDialog(),s]},"main")}render(){if(!this.state.ready)return m.jsx(Nw,{injectFirst:!0,children:m.jsx(Lw,{theme:this.state.theme,children:m.jsx(x.Loader,{themeType:this.state.themeType})})});let s;return this.state.menuOpened?s=m.jsxs(Jc,{direction:mt.Horizontal,initialSizes:this.state.splitSizes,minWidths:[270,400],onResizeFinished:(i,r)=>{this.setState({splitSizes:r}),window.localStorage.setItem("JS.splitSizes",JSON.stringify(r))},gutterClassName:this.state.themeType==="dark"?"Dark visGutter":"Light visGutter",children:[m.jsx("div",{style:ra.mainDiv,children:m.jsx(Ao,{password:this.state.password,debugMode:this.state.debugMode,onDebugInstance:i=>this.setState({debugInstance:i,debugMode:!!i}),scripts:this.scripts,scriptsHash:this.state.scriptsHash,instances:this.state.instances,onRename:this.onRename.bind(this),socket:this.socket,selectId:this.state.menuSelectId,onEdit:this.onEdit.bind(this),expertMode:this.state.expertMode,themeName:this.state.themeName,onThemeChange:i=>{x.Utils.setThemeName(i);const r=x.Utils.getThemeType(i);this.setState({themeName:i,themeType:r},()=>this.toggleTheme(i))},runningInstances:this.state.runningInstances,onExpertModeChange:i=>this.onExpertModeChange(i),onDelete:this.onDelete.bind(this),onAddNew:this.onAddNew.bind(this),onEnableDisable:this.onEnableDisable.bind(this),onExport:this.onExport.bind(this),width:500,onImport:()=>this.setState({importFile:!0}),onSearch:i=>this.setState({searchText:i}),version:this.props.version,changedScripts:this.changedScripts},"sidemenu")},"menu"),this.renderMain()]}):s=this.renderMain(),m.jsx(Nw,{injectFirst:!0,children:m.jsx(Lw,{theme:this.state.theme,children:m.jsx("div",{style:ra.root,children:m.jsx(pM,{socket:this.socket,children:s})})})})}}window.location.hostname==="localhost"||window.location.hostname==="[::1]"||window.location.hostname.match(/^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/);function Yre(){"serviceWorker"in navigator&&navigator.serviceWorker.ready.then(a=>{a.unregister()})}const Jre="9.3.1",AS={version:Jre};var ii;(function(a){a.mouse="mouse",a.touch="touch",a.keyboard="keyboard"})(ii||(ii={}));class qre{get delay(){var s;return(s=this.args.delay)!==null&&s!==void 0?s:0}get scrollAngleRanges(){return this.args.scrollAngleRanges}get getDropTargetElementsAtPoint(){return this.args.getDropTargetElementsAtPoint}get ignoreContextMenu(){var s;return(s=this.args.ignoreContextMenu)!==null&&s!==void 0?s:!1}get enableHoverOutsideTarget(){var s;return(s=this.args.enableHoverOutsideTarget)!==null&&s!==void 0?s:!1}get enableKeyboardEvents(){var s;return(s=this.args.enableKeyboardEvents)!==null&&s!==void 0?s:!1}get enableMouseEvents(){var s;return(s=this.args.enableMouseEvents)!==null&&s!==void 0?s:!1}get enableTouchEvents(){var s;return(s=this.args.enableTouchEvents)!==null&&s!==void 0?s:!0}get touchSlop(){return this.args.touchSlop||0}get delayTouchStart(){var s,i,r,l;return(l=(r=(s=this.args)===null||s===void 0?void 0:s.delayTouchStart)!==null&&r!==void 0?r:(i=this.args)===null||i===void 0?void 0:i.delay)!==null&&l!==void 0?l:0}get delayMouseStart(){var s,i,r,l;return(l=(r=(s=this.args)===null||s===void 0?void 0:s.delayMouseStart)!==null&&r!==void 0?r:(i=this.args)===null||i===void 0?void 0:i.delay)!==null&&l!==void 0?l:0}get window(){if(this.context&&this.context.window)return this.context.window;if(typeof window<"u")return window}get document(){var s;if(!((s=this.context)===null||s===void 0)&&s.document)return this.context.document;if(this.window)return this.window.document}get rootElement(){var s;return((s=this.args)===null||s===void 0?void 0:s.rootElement)||this.document}constructor(s,i){this.args=s,this.context=i}}function Xre(a,s,i,r){return Math.sqrt(Math.pow(Math.abs(i-a),2)+Math.pow(Math.abs(r-s),2))}function Zre(a,s,i,r,l){if(!l)return!1;const c=Math.atan2(r-s,i-a)*180/Math.PI+180;for(let h=0;h<l.length;++h){const d=l[h];if(d&&(d.start==null||c>=d.start)&&(d.end==null||c<=d.end))return!0}return!1}const Qre={Left:1},eae={Left:0};function Zg(a){return a.button===void 0||a.button===eae.Left}function tae(a){return a.buttons===void 0||(a.buttons&Qre.Left)===0}function RS(a){return!!a.targetTouches}const sae=1;function oae(a){const s=a.nodeType===sae?a:a.parentElement;if(!s)return;const{top:i,left:r}=s.getBoundingClientRect();return{x:r,y:i}}function iae(a,s){if(a.targetTouches.length===1)return $u(a.targetTouches[0]);if(s&&a.touches.length===1&&a.touches[0].target===s.target)return $u(a.touches[0])}function $u(a,s){return RS(a)?iae(a,s):{x:a.clientX,y:a.clientY}}const ok=(()=>{let a=!1;try{addEventListener("test",()=>{},Object.defineProperty({},"passive",{get(){return a=!0,!0}}))}catch{}return a})(),aa={[ii.mouse]:{start:"mousedown",move:"mousemove",end:"mouseup",contextmenu:"contextmenu"},[ii.touch]:{start:"touchstart",move:"touchmove",end:"touchend"},[ii.keyboard]:{keydown:"keydown"}};class $a{profile(){var s;return{sourceNodes:this.sourceNodes.size,sourcePreviewNodes:this.sourcePreviewNodes.size,sourcePreviewNodeOptions:this.sourcePreviewNodeOptions.size,targetNodes:this.targetNodes.size,dragOverTargetIds:((s=this.dragOverTargetIds)===null||s===void 0?void 0:s.length)||0}}get document(){return this.options.document}setup(){const s=this.options.rootElement;s&&(Ue(!$a.isSetUp,"Cannot have two Touch backends at the same time."),$a.isSetUp=!0,this.addEventListener(s,"start",this.getTopMoveStartHandler()),this.addEventListener(s,"start",this.handleTopMoveStartCapture,!0),this.addEventListener(s,"move",this.handleTopMove),this.addEventListener(s,"move",this.handleTopMoveCapture,!0),this.addEventListener(s,"end",this.handleTopMoveEndCapture,!0),this.options.enableMouseEvents&&!this.options.ignoreContextMenu&&this.addEventListener(s,"contextmenu",this.handleTopMoveEndCapture),this.options.enableKeyboardEvents&&this.addEventListener(s,"keydown",this.handleCancelOnEscape,!0))}teardown(){const s=this.options.rootElement;s&&($a.isSetUp=!1,this._mouseClientOffset={},this.removeEventListener(s,"start",this.handleTopMoveStartCapture,!0),this.removeEventListener(s,"start",this.handleTopMoveStart),this.removeEventListener(s,"move",this.handleTopMoveCapture,!0),this.removeEventListener(s,"move",this.handleTopMove),this.removeEventListener(s,"end",this.handleTopMoveEndCapture,!0),this.options.enableMouseEvents&&!this.options.ignoreContextMenu&&this.removeEventListener(s,"contextmenu",this.handleTopMoveEndCapture),this.options.enableKeyboardEvents&&this.removeEventListener(s,"keydown",this.handleCancelOnEscape,!0),this.uninstallSourceNodeRemovalObserver())}addEventListener(s,i,r,l=!1){const c=ok?{capture:l,passive:!1}:l;this.listenerTypes.forEach(function(h){const d=aa[h][i];d&&s.addEventListener(d,r,c)})}removeEventListener(s,i,r,l=!1){const c=ok?{capture:l,passive:!1}:l;this.listenerTypes.forEach(function(h){const d=aa[h][i];d&&s.removeEventListener(d,r,c)})}connectDragSource(s,i){const r=this.handleMoveStart.bind(this,s);return this.sourceNodes.set(s,i),this.addEventListener(i,"start",r),()=>{this.sourceNodes.delete(s),this.removeEventListener(i,"start",r)}}connectDragPreview(s,i,r){return this.sourcePreviewNodeOptions.set(s,r),this.sourcePreviewNodes.set(s,i),()=>{this.sourcePreviewNodes.delete(s),this.sourcePreviewNodeOptions.delete(s)}}connectDropTarget(s,i){const r=this.options.rootElement;if(!this.document||!r)return()=>{};const l=c=>{if(!this.document||!r||!this.monitor.isDragging())return;let h;switch(c.type){case aa.mouse.move:h={x:c.clientX,y:c.clientY};break;case aa.touch.move:var d,p;h={x:((d=c.touches[0])===null||d===void 0?void 0:d.clientX)||0,y:((p=c.touches[0])===null||p===void 0?void 0:p.clientY)||0};break}const g=h!=null?this.document.elementFromPoint(h.x,h.y):void 0,$=g&&i.contains(g);if(g===i||$)return this.handleMove(c,s)};return this.addEventListener(this.document.body,"move",l),this.targetNodes.set(s,i),()=>{this.document&&(this.targetNodes.delete(s),this.removeEventListener(this.document.body,"move",l))}}getTopMoveStartHandler(){return!this.options.delayTouchStart&&!this.options.delayMouseStart?this.handleTopMoveStart:this.handleTopMoveStartDelay}installSourceNodeRemovalObserver(s){this.uninstallSourceNodeRemovalObserver(),this.draggedSourceNode=s,this.draggedSourceNodeRemovalObserver=new MutationObserver(()=>{s&&!s.parentElement&&(this.resurrectSourceNode(),this.uninstallSourceNodeRemovalObserver())}),!(!s||!s.parentElement)&&this.draggedSourceNodeRemovalObserver.observe(s.parentElement,{childList:!0})}resurrectSourceNode(){this.document&&this.draggedSourceNode&&(this.draggedSourceNode.style.display="none",this.draggedSourceNode.removeAttribute("data-reactid"),this.document.body.appendChild(this.draggedSourceNode))}uninstallSourceNodeRemovalObserver(){this.draggedSourceNodeRemovalObserver&&this.draggedSourceNodeRemovalObserver.disconnect(),this.draggedSourceNodeRemovalObserver=void 0,this.draggedSourceNode=void 0}constructor(s,i,r){this.getSourceClientOffset=l=>{const c=this.sourceNodes.get(l);return c&&oae(c)},this.handleTopMoveStartCapture=l=>{Zg(l)&&(this.moveStartSourceIds=[])},this.handleMoveStart=l=>{Array.isArray(this.moveStartSourceIds)&&this.moveStartSourceIds.unshift(l)},this.handleTopMoveStart=l=>{if(!Zg(l))return;const c=$u(l);c&&(RS(l)&&(this.lastTargetTouchFallback=l.targetTouches[0]),this._mouseClientOffset=c),this.waitingForDelay=!1},this.handleTopMoveStartDelay=l=>{if(!Zg(l))return;const c=l.type===aa.touch.start?this.options.delayTouchStart:this.options.delayMouseStart;this.timeout=setTimeout(this.handleTopMoveStart.bind(this,l),c),this.waitingForDelay=!0},this.handleTopMoveCapture=()=>{this.dragOverTargetIds=[]},this.handleMove=(l,c)=>{this.dragOverTargetIds&&this.dragOverTargetIds.unshift(c)},this.handleTopMove=l=>{if(this.timeout&&clearTimeout(this.timeout),!this.document||this.waitingForDelay)return;const{moveStartSourceIds:c,dragOverTargetIds:h}=this,d=this.options.enableHoverOutsideTarget,p=$u(l,this.lastTargetTouchFallback);if(!p)return;if(this._isScrolling||!this.monitor.isDragging()&&Zre(this._mouseClientOffset.x||0,this._mouseClientOffset.y||0,p.x,p.y,this.options.scrollAngleRanges)){this._isScrolling=!0;return}if(!this.monitor.isDragging()&&this._mouseClientOffset.hasOwnProperty("x")&&c&&Xre(this._mouseClientOffset.x||0,this._mouseClientOffset.y||0,p.x,p.y)>(this.options.touchSlop?this.options.touchSlop:0)&&(this.moveStartSourceIds=void 0,this.actions.beginDrag(c,{clientOffset:this._mouseClientOffset,getSourceClientOffset:this.getSourceClientOffset,publishSource:!1})),!this.monitor.isDragging())return;const g=this.sourceNodes.get(this.monitor.getSourceId());this.installSourceNodeRemovalObserver(g),this.actions.publishDragSource(),l.cancelable&&l.preventDefault();const $=(h||[]).map(_=>this.targetNodes.get(_)).filter(_=>!!_),y=this.options.getDropTargetElementsAtPoint?this.options.getDropTargetElementsAtPoint(p.x,p.y,$):this.document.elementsFromPoint(p.x,p.y),w=[];for(const _ in y){if(!y.hasOwnProperty(_))continue;let b=y[_];for(b!=null&&w.push(b);b;)b=b.parentElement,b&&w.indexOf(b)===-1&&w.push(b)}const v=w.filter(_=>$.indexOf(_)>-1).map(_=>this._getDropTargetId(_)).filter(_=>!!_).filter((_,b,T)=>T.indexOf(_)===b);if(d)for(const _ in this.targetNodes){const b=this.targetNodes.get(_);if(g&&b&&b.contains(g)&&v.indexOf(_)===-1){v.unshift(_);break}}v.reverse(),this.actions.hover(v,{clientOffset:p})},this._getDropTargetId=l=>{const c=this.targetNodes.keys();let h=c.next();for(;h.done===!1;){const d=h.value;if(l===this.targetNodes.get(d))return d;h=c.next()}},this.handleTopMoveEndCapture=l=>{if(this._isScrolling=!1,this.lastTargetTouchFallback=void 0,!!tae(l)){if(!this.monitor.isDragging()||this.monitor.didDrop()){this.moveStartSourceIds=void 0;return}l.cancelable&&l.preventDefault(),this._mouseClientOffset={},this.uninstallSourceNodeRemovalObserver(),this.actions.drop(),this.actions.endDrag()}},this.handleCancelOnEscape=l=>{l.key==="Escape"&&this.monitor.isDragging()&&(this._mouseClientOffset={},this.uninstallSourceNodeRemovalObserver(),this.actions.endDrag())},this.options=new qre(r,i),this.actions=s.getActions(),this.monitor=s.getMonitor(),this.sourceNodes=new Map,this.sourcePreviewNodes=new Map,this.sourcePreviewNodeOptions=new Map,this.targetNodes=new Map,this.listenerTypes=[],this._mouseClientOffset={},this._isScrolling=!1,this.options.enableMouseEvents&&this.listenerTypes.push(ii.mouse),this.options.enableTouchEvents&&this.listenerTypes.push(ii.touch),this.options.enableKeyboardEvents&&this.listenerTypes.push(ii.keyboard)}}const nae=function(s,i={},r={}){return new $a(s,i,r)};window.GenericBlock=at;window.adapterName="javascript";window.sentryDSN="https://504499a725eb4898930d3b9e9da95740@sentry.iobroker.net/56";console.log(`iobroker.${window.adapterName}@${AS.version}`);const rae=window.innerWidth<600,ik=document.getElementById("root");ik&&vk(ik).render(m.jsx(Nk,{backend:rae?nae:Kk,children:m.jsx(Kre,{version:AS.version})}));Yre();const Mc=window.loadDynamicScript;Mc&&Mc(window.location.port==="3000"?`${window.location.protocol}//${window.location.hostname}:8081/lib/js/socket.io.js`:"./../../lib/js/socket.io.js",()=>Mc("vs/loader.js",()=>Mc("vs/configure.js",()=>typeof window.socketLoadedHandler=="function"&&window.socketLoadedHandler())));export{hM as C,XO as D,at as G,Yk as I,q_ as M,Ps as S,$x as a,Lx as b,Wx as c,Pi as d,eue as e,_f as f,Tu as g,TO as h,CO as i,tue as j,wae as k,vae as l,Jc as m,G_ as n,Oc as o,_ae as p,er as u,mt as z};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{j as n}from"./createSvgIcon-DYs_tNrE.js";import{c as E,h as yt,j as M,m as nt,k as lt,l as Dt,b as ut,o as xt}from"./iobroker_javascript__loadShare__react__loadShare__.mjs-CTZOFJS2.js";import{_ as u}from"./iobroker_javascript__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.mjs-DkBjPSMw.js";import{u as kt,a as St,M as Y,C as et,G as Nt,b as $t,c as bt,I as qt,S as J,d as Bt,e as ft,j as Mt,D as Ht,f as Wt}from"./index-CxRhXAwi.js";import{_ as wt,b as Ct,h as vt,i as jt,p as Tt,f as Et,g as mt,o as Pt,Y as Ut,Z as Ft,C as Jt,D as st}from"./iobroker_javascript__loadShare___mf_0_mui_mf_1_material__loadShare__.mjs-CV1_X-Lf.js";import{I as Lt}from"./index-wHNMOf-c.js";import"./iobroker_javascript__loadShare__react__loadShare__.mjs_commonjs-proxy-CE9lvhW8.js";import"./iobroker_javascript__loadShare__prop_mf_2_types__loadShare__.mjs-BCtSFofY.js";import"./virtual_mf-REMOTE_ENTRY_ID_iobroker_javascript__remoteEntry_js-Dus28I2g.js";import"./preload-helper-BDBacUwf.js";import"./iobroker_javascript__loadShare__react_mf_2_dom__loadShare__.mjs_commonjs-proxy-RQRRZMX5.js";import"./iobroker_javascript__loadShare__react_mf_2_dom__loadShare__.mjs-DeVAS-oa.js";import"./inheritsLoose-CIXm_zPk.js";function zt(e){const s=kt().getMonitor(),[i,a]=St(s,e);return E(()=>s.subscribeToOffsetChange(a)),E(()=>s.subscribeToStateChange(a)),i}let V;function Gt(){return V||(V=new Image,V.src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="),V}const Kt="_wrapperRules_nnott_1",Qt="_rootWrapper_nnott_9",Yt="_addClass_nnott_14",ot={wrapperRules:Kt,rootWrapper:Qt,addClass:Yt},Zt="_switchesItem_10ls3_1",Xt="_switchesItemActive_10ls3_28",Vt="_iconTheme_10ls3_36",it={switchesItem:Zt,switchesItemActive:Xt,iconTheme:Vt},It=({name:e,id:t,active:s,icon:i,adapter:a,socket:o,onDoubleClick:c,title:l,onTouchMove:d,style:j})=>n.jsxs("div",{onDoubleClick:c,onTouchMove:d,title:l?u.I18n.t(l):void 0,className:u.Utils.clsx(it.switchesItem,s&&it.switchesItemActive,`block-${t}`),children:[n.jsx(Y,{iconName:i,className:it.iconTheme,adapter:a,socket:o,style:j}),n.jsx("span",{children:e?u.I18n.t(e):""})]},t),Rt="_cardStyle_8rq8v_1",tn="_cardStyleActive_8rq8v_17",nn="_controlMenu_8rq8v_22",en="_closeBtn_8rq8v_31",sn="_isDelete_8rq8v_73",on="_drag_mobile_8rq8v_90",G={cardStyle:Rt,cardStyleActive:tn,controlMenu:nn,closeBtn:en,isDelete:sn,drag_mobile:on};function K(e,t,s){let i;switch(e){case"actions":if(s==="else")return i={...t,actions:{...t[e],else:[...t[e].else]}},i;if(s==="then")return i={...t,actions:{...t[e],then:[...t[e].then]}},i;throw console.error(`Unknown additionalParameter: ${s}`),new Error(`Unknown additionalParameter: ${s}`);case"triggers":return i={...t,triggers:[...t.triggers]},i;case"conditions":return i={...t,conditions:[...t.conditions]},i;default:throw new Error(`Unknown name: ${e}`)}}function z(e,t,s,i){var a;switch(e){case"actions":return t.actions[s]=t.actions[s].filter(o=>o._id!==i),t;case"conditions":return t.conditions[s]=(a=t.conditions[s])==null?void 0:a.filter(o=>o._id!==i),t;default:return t.triggers=t.triggers.filter(o=>o._id!==i),t}}function cn(e,t,s){const{_id:i,acceptedBy:a}=e;let o;if(!a||!t[a])return console.warn(`Cannot find ${a}`),t;switch(a){case"actions":if(o=t.actions[s].find(c=>c._id===i),!o)console.warn(`Cannot find ${i}`);else{const c=t.actions[s].indexOf(o);t.actions[s][c]=e}return t;case"conditions":if(o=t.conditions[s].find(c=>c._id===i),!o)console.warn(`Cannot find ${i}`);else{const c=t.conditions[s].indexOf(o);t.conditions[s][c]=e}return t;default:if(o=t.triggers.find(c=>c._id===i),!o)console.warn(`Cannot find ${i}`);else{const c=t.triggers.indexOf(o);t.triggers[c]=e}return t}}const Ot=yt(e=>{var N;const{setUserRules:t,userRules:s,_id:i,id:a,blockValue:o,active:c,acceptedBy:l,isTourOpen:d,setTourStep:j,tourStep:O}=e,[I,_]=M(null),{blocks:r,socket:k,onUpdate:H,setOnUpdate:w,onDebugMessage:f,enableSimulation:x}=nt(et),p=lt(h=>r==null?void 0:r.find(b=>b.getStaticData().id===h),[r]),g=lt(h=>{const b=cn(h,s,o);b&&t(b)},[s]),C=h=>{h.currentTarget!==I&&_(h.currentTarget)},q=()=>_(null),T=Dt(()=>{const h=p(a)||Nt;return n.jsx(h,{...e,notFound:!p(a),isTourOpen:d,setTourStep:j,tourStep:O,onUpdate:H,setOnUpdate:w,enableSimulation:x,onDebugMessage:f,onChange:g,className:void 0,socket:k})},[s,H,f,x]),[S,B]=M(!1);return n.jsxs("div",{onMouseMove:C,onMouseEnter:C,onMouseLeave:q,onMouseDown:h=>{if(h.ctrlKey){let b;const v=K(l,s,o);l==="conditions"?(b=v.conditions[o].find(m=>m._id===i),b&&v.conditions[o].splice(v.conditions[o].indexOf(b),0,{...b,_id:Date.now()})):l==="actions"?(b=v.actions[o].find(m=>m._id===i),b&&v.actions[o].splice(v.actions[o].indexOf(b),0,{...b,_id:Date.now()})):(b=v.triggers.find(m=>m._id===i),b&&v.triggers.splice(v[l].indexOf(b),0,{...b,_id:Date.now()})),t(v)}},id:"height",style:c?{width:(((N=document.getElementById("width"))==null?void 0:N.clientWidth)||0)-70}:void 0,className:`${G.cardStyle} ${c?G.cardStyleActive:null} ${S?G.isDelete:null}`,children:[n.jsx("div",{className:G.drag_mobile}),T,t&&n.jsx("div",{className:G.controlMenu,style:I?{opacity:1}:{opacity:0},children:n.jsx("div",{onClick:()=>{let h=K(l,s,o);h=z(l,h,o,i),B(!0),setTimeout(()=>{l==="triggers"&&w(!0),t(h)},300)},className:G.closeBtn})})]})}),rn={position:"fixed",pointerEvents:"none",zIndex:100,left:0,top:0,width:"100%",height:"100%"},an=(e,t,s)=>{if(!e||!t)return{display:"none"};let{x:i,y:a}=t;const o=`translate(${i}px, ${a}px)`;return{transform:o,WebkitTransform:o}},ln=e=>{const{itemType:t,isDragging:s,item:i,initialOffset:a,currentOffset:o,targetIds:c}=zt(d=>({item:d.getItem(),itemType:d.getItemType(),initialOffset:d.getInitialSourceClientOffset(),currentOffset:d.getSourceClientOffset(),isDragging:d.isDragging(),targetIds:d.getTargetIds()})),l=()=>t==="box"?c.length?n.jsx(Ot,{active:!0,...i,allBlocks:e.allBlocks}):n.jsx(It,{active:!0,...i,socket:e.socket}):null;return s?n.jsx("div",{style:rn,children:n.jsx("div",{style:an(a,o),children:l()})}):null},dn="_border_wrpm3_1",fn="_emptyBlockStyle_wrpm3_6",mn="_emptyBlock_wrpm3_6",gn="_selectOnChange_wrpm3_22",hn="_selectOnChangeHelp_wrpm3_28",_n="_selectOnChangeHelpIcon_wrpm3_34",pn="_emptyBlockNone_wrpm3_49",un="_mainBlockItemRules_wrpm3_55",xn="_nameBlockItems_wrpm3_63",bn="_contentBlockItem_wrpm3_73",wn="_wrapperMargin_wrpm3_81",Cn="_contentHeightOn_wrpm3_87",vn="_contentHeightOff_wrpm3_99",jn="_cardAdd_wrpm3_105",In="_blockCardAdd_wrpm3_125",On="_addClassOverflow_wrpm3_136",An="_addClassHeight_wrpm3_140",D={border:dn,emptyBlockStyle:fn,emptyBlock:mn,selectOnChange:gn,selectOnChangeHelp:hn,selectOnChangeHelpIcon:_n,emptyBlockNone:pn,mainBlockItemRules:un,nameBlockItems:xn,contentBlockItem:bn,wrapperMargin:wn,contentHeightOn:Cn,contentHeightOff:vn,cardAdd:jn,blockCardAdd:In,addClassOverflow:On,addClassHeight:An};function dt(e,t){const[s,i]=M(window.localStorage.getItem(t)?JSON.parse(window.localStorage.getItem(t)||""):e);return[s,o=>{window.localStorage.setItem(t,JSON.stringify(o)),i(o)},!!window.localStorage.getItem(t)]}function yn(e,t){let s=0,i=null,a;return function(...o){const c=Date.now();a=o,c-s>=t?(s=c,e.apply(this,o)):i||(i=setTimeout(()=>{s=Date.now(),i=null,e.apply(this,a)},t-(c-s)))}}function tt(e){if(Array.isArray(e))return e.map(t=>tt(t));if(typeof e=="function")return e.bind(null);if(e&&typeof e=="object"){const t={};return Object.keys(e).forEach(s=>{t[s]=tt(e[s])}),t}return e}const ct=yn((e,t)=>e(t),0);function R(e,t){const s=t.find(i=>i._id===e);return{card:s,index:s?t.indexOf(s):-1}}function rt(e,t,s,i,a,o,c,l,d){const{card:j,index:O}=R(e,s);if(!(O<t&&l<d)&&!(O>t&&l>d)&&j&&O!==t){const I=tt(s);I.splice(O,1),I.splice(t,0,j);const _=tt(a);switch(o){case"actions":_.actions[c]=I,ct(i,_);return;case"conditions":_.conditions[c]=I,ct(i,_);return;default:_.triggers=I,ct(i,_);return}}}const Dn="_drag_7xfhc_1",kn="_root_7xfhc_11",gt={drag:Dn,root:kn},At=({typeBlock:e,allProperties:t,id:s,isActive:i,setUserRules:a,userRules:o,children:c,_id:l,blockValue:d})=>{const{setOnUpdate:j}=nt(et),[{opacity:O},I,_]=$t({type:"box",item:()=>({...t,id:s,isActive:i,_id:l}),end:(w,f)=>{const{acceptedBy:x}=w,p=f.getDropResult();let g;if(!p)return typeof l=="number"&&!f.getTargetIds().length&&(g=K(x,o,d),g=z(x,g,d,l),a(g)),null;if(p.blockValue!==d){const C=typeof l=="number"?l:Date.now();g=K(x,o,p.blockValue);const q={id:w.id,acceptedBy:w.acceptedBy};switch(x){case"actions":return d&&(g=z("actions",g,d,C)),g=z("actions",g,p.blockValue,C),g.actions[p.blockValue].push({...q,_id:C}),a(g);case"conditions":return typeof d=="number"&&(g=z("conditions",g,d,C)),g=z("conditions",g,p.blockValue,C),g.conditions[p.blockValue].push({...q,_id:C}),a(g);default:return j(!0),g=z("triggers",g,p.blockValue,C),g.triggers.push({...q,_id:C}),a(g)}}},collect:w=>({opacity:w.isDragging()?.4:1,isDragging:w.isDragging()})}),r=ut(null),[,k]=bt({accept:"box",canDrop:()=>!1,hover({_id:w,acceptedBy:f},x){var T;if(!r.current||e!==f)return;const p=(T=r.current)==null?void 0:T.getBoundingClientRect(),g=(p.bottom-p.top)/2,C=x.getClientOffset(),q=((C==null?void 0:C.y)||0)-p.top;if(l&&w!==l)switch(f){case"actions":if(d==="then"||d==="else"){const{index:S}=R(l,o.actions[d]);S!==w&&rt(w,S,o[f][d],a,o,f,d,q,g)}return;case"conditions":if(typeof d=="number"){const{index:S}=R(l,o[f][d]);S!==w&&rt(w,S,o[f][d],a,o,f,d,q,g)}return;default:{const{index:S}=R(l,o[f]);S!==w&&rt(w,S,o[f],a,o,f,void 0,q,g);return}}}});E(()=>{_(Gt(),{captureDraggingState:!0})},[]),I(k(r));const H=window.innerWidth<600;return n.jsxs("div",{ref:H&&l?null:r,className:gt.root,style:{opacity:O},children:[n.jsx("div",{className:l?gt.drag:null,ref:l&&H?r:null}),c]})},Sn=({onClose:e,open:t})=>n.jsxs(wt,{open:t,onClose:e,"aria-labelledby":"alert-dialog-title","aria-describedby":"alert-dialog-description",children:[n.jsx(Ct,{children:n.jsxs("div",{style:{fontSize:"1rem",fontFamily:'"Roboto", "Helvetica", "Arial", sans-serif',fontWeight:400,lineHeight:1.5,letterSpacing:"0.00938em"},children:[n.jsx("h3",{children:u.I18n.t("On condition change")}),n.jsx("div",{children:u.I18n.t("help_on_change")}),n.jsx("h3",{children:u.I18n.t("Just check")}),n.jsx("div",{children:u.I18n.t("help_just_check")})]})}),n.jsx(vt,{children:n.jsx(jt,{onClick:e,color:"primary",autoFocus:!0,startIcon:n.jsx(Lt,{}),children:u.I18n.t("OK")})})]}),Nn=({onClose:e,open:t})=>n.jsxs(wt,{open:t,onClose:e,"aria-labelledby":"alert-dialog-title","aria-describedby":"alert-dialog-description",children:[n.jsx(Ct,{children:n.jsxs(Tt,{id:"alert-dialog-description",children:[n.jsx("h3",{children:u.I18n.t("On condition change")}),n.jsx("div",{children:u.I18n.t("help_on_change")}),n.jsx("h3",{children:u.I18n.t("Just check")}),n.jsx("div",{children:u.I18n.t("help_just_check")})]})}),n.jsx(vt,{children:n.jsx(jt,{onClick:e,color:"primary",autoFocus:!0,children:u.I18n.t("OK")})})]}),ht=({size:e,blockValue:t,boolean:s,typeBlock:i,userRules:a,setUserRules:o,animation:c,setTourStep:l,tourStep:d,isTourOpen:j,theme:O,themeType:I,themeName:_})=>{var W;const[r,k]=M(!1),[H,w]=M(!1),[f,x]=M(!1),[p,g]=M("");s===void 0&&(s=!0);const C=bt({accept:"box",drop:()=>({blockValue:t}),hover:({acceptedBy:A,_id:L},Z)=>{k(A===i),x(!!L),g(Z.getHandlerId()||"")},canDrop:({acceptedBy:A})=>(w(A===i),A===i),collect:A=>{var L;return{isOver:A.isOver(),canDrop:((L=A.getItem())==null?void 0:L.acceptedBy)===i,offset:A.getClientOffset(),targetId:A.getHandlerId()}}}),q=C[0],{canDrop:T,isOver:S,offset:B,targetId:N}=q,h=C[1];E(()=>{g("")},[B]);const b=T&&S;let v="";b?v=r?"#00fb003d":"#fb00002e":T?v=H?"#00fb003d":"#fb00002e":B&&(v=N===p?"#fb00002e":"");let m;return i==="actions"?m=a.actions[t]:i==="conditions"?m=a.conditions[t]:m=a.triggers,n.jsx("div",{ref:h,style:{backgroundColor:v},className:`${u.Utils.clsx(D.contentBlockItem,e&&D.addClassHeight)} ${s?c?D.contentHeightOn:null:D.contentHeightOff}`,children:n.jsxs("div",{className:D.wrapperMargin,children:[m.map(A=>n.jsx(At,{typeBlock:i,...A,blockValue:t,allProperties:A,userRules:a,setUserRules:o,children:n.jsx(Ot,{...A,isTourOpen:j,setTourStep:l,tourStep:d,settings:A,blockValue:t,userRules:a,setUserRules:o,theme:O,themeType:I,themeName:_})},A._id)),n.jsx("div",{style:b&&r&&!f?{height:((W=document.getElementById("height"))==null?void 0:W.clientHeight)||200}:void 0,className:`${D.emptyBlockStyle} ${b&&r&&!f?D.emptyBlock:D.emptyBlockNone}`})]})})},at=({size:e,typeBlock:t,name:s,nameAdditionally:i,additionally:a,border:o,userRules:c,setUserRules:l,iconName:d,adapter:j,socket:O,setTourStep:I,tourStep:_,isTourOpen:r,theme:k,themeType:H,themeName:w})=>{const[f,x,p]=dt(t==="actions"?!1:[],`additionallyClickItems_${t}`),[g,C]=M(!1),[q,T]=M(!1);E(()=>{if(t==="conditions"&&(f==null?void 0:f.length)!==c.conditions.length-1){const N=[];c.conditions.forEach((h,b)=>{b>0&&N.push({_id:Date.now(),open:!0})}),x([...f,...N])}t==="actions"&&!p&&c.actions.else.length&&x(!0)},[]);const[S,B]=M(!1);return n.jsxs("div",{className:`${u.Utils.clsx(D.mainBlockItemRules,e&&D.addClassOverflow)} ${o&&!e?D.border:null}`,children:[n.jsxs("span",{id:"width",className:D.nameBlockItems,children:[n.jsx(Y,{iconName:d,className:D.iconThemCard,adapter:j,socket:O}),s]}),t==="conditions"?n.jsxs("div",{style:{width:"100%"},children:[n.jsxs(Et,{variant:"standard",className:D.selectOnChange,value:c.justCheck||!1,onChange:N=>{const h=K("conditions",c);h.justCheck=N.target.value==="true",l(h)},children:[n.jsx(mt,{value:"false",children:u.I18n.t("on condition change")}),n.jsx(mt,{value:"true",children:u.I18n.t("just check")})]}),n.jsx(Pt,{size:"small",title:u.I18n.t("Explanation"),className:D.selectOnChangeHelp,onClick:()=>C(!0),children:n.jsx(qt,{className:D.selectOnChangeHelpIcon})})]}):null,n.jsx(ht,{setTourStep:I,tourStep:_,isTourOpen:r,blockValue:t==="actions"?"then":t==="conditions"?0:t,typeBlock:t,setUserRules:l,userRules:c,theme:k,themeName:w,themeType:H,size:e}),a&&[...Array(t==="actions"?1:c.conditions.length-1)].map((N,h)=>{const b=(v=h)=>t==="actions"?!!f:!!f.find((m,W)=>W===v&&m.open);return n.jsxs(xt,{children:[n.jsxs("div",{onClick:()=>{if(t==="actions")return x(!f),null;let v=JSON.parse(JSON.stringify(f));if(c.conditions[h+1].length)return v[h].open=!v[h].open,x(v),null;v=v.filter((m,W)=>W!==h),x(v),B(h),setTimeout(()=>{B(!1),l({...c,conditions:[...c.conditions.filter((m,W)=>W!==h+1)]})},250)},className:D.blockCardAdd,children:[b()?"-":"+",n.jsx("div",{className:D.cardAdd,children:i})]},h),n.jsx(ht,{blockValue:t==="actions"?"else":t==="conditions"?h+1:t,typeBlock:t,setUserRules:l,userRules:c,boolean:b(),animation:S===h,size:e,theme:k,themeName:w,themeType:H})]},`${h}_block_${t}`)}),a&&t==="conditions"&&n.jsxs("div",{onClick:()=>{x([...f,{_id:Date.now(),open:!0}]),l({...c,conditions:[...c.conditions,[]]}),B(c.conditions.length-1),setTimeout(()=>B(!1),1e3)},className:D.blockCardAdd,children:["+",n.jsx("div",{className:D.cardAdd,children:i})]}),n.jsx(Sn,{open:g,onClose:()=>C(!1)}),n.jsx(Nn,{open:q,onClose:()=>T(!1)})]})},$n="_menuRules_1qqcb_1",qn="_switchesRenderWrapper_1qqcb_13",Bn="_menuOff_1qqcb_22",Mn="_menuTitle_1qqcb_28",Hn="_marginAuto_1qqcb_42",Wn="_inputWidth_1qqcb_47",Tn="_menuWrapper_1qqcb_52",En="_hamburgerWrapper_1qqcb_57",Pn="_hamburgerOff_1qqcb_74",Un="_nothingFound_1qqcb_82",Fn="_resetSearch_1qqcb_89",Jn="_controlPanel_1qqcb_101",Ln="_controlPanelAppBar_1qqcb_112",zn="_addClassMenu_1qqcb_126",Gn="_addClassBackground_1qqcb_132",Kn="_addClassPosition_1qqcb_136",$={menuRules:$n,switchesRenderWrapper:qn,menuOff:Bn,menuTitle:Mn,marginAuto:Hn,inputWidth:Wn,menuWrapper:Tn,hamburgerWrapper:En,hamburgerOff:Pn,nothingFound:Un,resetSearch:Fn,controlPanel:Jn,controlPanelAppBar:Ln,addClassMenu:zn,addClassBackground:Gn,addClassPosition:Kn},Qn=e=>{const{allProperties:t,allProperties:{acceptedBy:s,id:i},setUserRules:a,userRules:o,setTourStep:c,tourStep:l,isTourOpen:d,onTouchMove:j,isActive:O}=e;return n.jsx(At,{allProperties:t,id:t.id,isActive:O,setUserRules:a,userRules:o,children:n.jsx(It,{onDoubleClick:()=>{d&&l===J.addScheduleByDoubleClick&&i==="TriggerScheduleBlock"&&c(J.openTagsMenu),d&&l===J.addActionPrintText&&i==="ActionPrintText"&&c(J.showJavascript);const I=Date.now();let _;switch(s){case"actions":_="then";break;case"conditions":_=o[s].length-1;break}const r=K(s,o,_),k={id:i,_id:I,acceptedBy:s};_!==void 0?s==="actions"?r.actions[_].push({...k}):s==="conditions"&&r.conditions[_].push({...k}):r.triggers.push({...k}),a(r)},...e,...t,onTouchMove:j})})},Yn="_hamburgerMenu_hqnsm_8",Zn="_animate_hqnsm_21",_t={hamburgerMenu:Yn,animate:Zn};function Xn({bool:e}){return n.jsx("div",{className:`${_t.hamburgerMenu} ${e?_t.animate:""}`})}const Vn=({addClass:e,setAllBlocks:t,allBlocks:s,userRules:i,onChangeBlocks:a,setTourStep:o,tourStep:c,isTourOpen:l})=>{const{blocks:d,socket:j}=nt(et),[O,I]=dt(!1,"hamburgerOnOff"),[_,r]=dt({text:"",type:"triggers",index:0},"filterControlPanel"),k=(f=_.text,x=_.type)=>{if(!d)return;let p=[...d];p=p.filter(g=>{if(!f)return!0;const{name:C}=g.getStaticData();return C&&u.I18n.t(C).toLowerCase().includes(f.toLowerCase())}),p=p.filter(g=>x===g.getStaticData().acceptedBy),t(p)},H=(f,x)=>{l&&x===0&&c===J.selectTriggers&&o(J.addScheduleByDoubleClick),l&&x===2&&c===J.selectActions&&o(J.addActionPrintText),r({..._,index:x,type:["triggers","conditions","actions"][x]}),k(_.text,["triggers","conditions","actions"][x])},w=f=>({id:`scrollable-force-tab-${f}`,"aria-controls":`scrollable-force-tabpanel-${f}`});return E(()=>{k()},[d]),n.jsx(Ut,{mouseEvent:!1,touchEvent:"onTouchStart",onClickAway:()=>I(!0),children:n.jsxs("div",{className:u.Utils.clsx($.menuWrapper,e[1035]&&$.addClassMenu),children:[n.jsx("div",{className:`${$.hamburgerWrapper} ${O?$.hamburgerOff:null}`,onClick:()=>I(!O),children:n.jsx(Xn,{bool:!O})}),n.jsxs("div",{className:`${u.Utils.clsx($.menuRules,e[1035]&&$.addClassBackground,e[835]&&$.addClassPosition)} ${O?$.menuOff:null}`,children:[n.jsx("div",{className:$.controlPanel,children:n.jsx(Ft,{className:$.controlPanelAppBar,position:"static",children:n.jsxs(Jt,{value:_.index,onChange:H,children:[n.jsx(st,{className:"blocks-triggers",title:u.I18n.t("Triggers"),icon:n.jsx(Y,{iconName:"FlashOn"}),...w(0)}),n.jsx(st,{title:u.I18n.t("Conditions"),className:"blocks-conditions",icon:n.jsx(Y,{iconName:"Help"}),...w(1)}),n.jsx(st,{title:u.I18n.t("Actions"),className:"blocks-actions",icon:n.jsx(Y,{iconName:"PlayForWork"}),...w(2)})]})})}),n.jsx("div",{className:$.switchesRenderWrapper,children:n.jsxs("span",{children:[s.map(f=>{const{name:x,id:p,icon:g,adapter:C}=f.getStaticData();return n.jsx(xt,{children:n.jsx(Qn,{adapter:C,allProperties:f.getStaticData(),icon:g,id:p,isActive:!1,isTourOpen:l,name:x,onTouchMove:()=>I(!0),setTourStep:o,setUserRules:a,socket:j,tourStep:c,userRules:i})},p)}),!s.length&&n.jsxs("div",{className:$.nothingFound,children:[u.I18n.t("Nothing found"),"...",n.jsx("div",{className:$.resetSearch,onClick:()=>{r({..._,text:""}),k("")},children:u.I18n.t("reset search")})]})]})}),n.jsx("div",{className:u.Utils.clsx($.menuTitle,$.marginAuto)}),n.jsx(Bt,{className:$.inputWidth,fullWidth:!0,customValue:!0,value:_.text,size:"small",autoComplete:"off",label:u.I18n.t("search"),variant:"outlined",onChange:f=>{r({..._,text:f}),k(f)}})]})]})})};let pt=[];const me=({code:e,onChange:t,themeName:s,themeType:i,theme:a,setTourStep:o,tourStep:c,isTourOpen:l,command:d,scriptId:j,changed:O,running:I})=>{var v;const{blocks:_,socket:r,setOnUpdate:k,setOnDebugMessage:H,setEnableSimulation:w}=nt(et),[f,x]=M([]),[p,g]=M(ft(e)),[C,q]=M(""),[T,S]=M(!1);E(()=>{let m,W;const A=(P,y)=>{P===`${m}.alive`&&W!==(y==null?void 0:y.val)&&(W=!!(y!=null&&y.val),W&&m&&(r==null||r.sendTo(m.replace(/^system\.adapter\./,""),"rulesOn",j)))},L=(P,y)=>{var U,Q;r&&m!==((U=y==null?void 0:y.common)==null?void 0:U.engine)&&(m&&(r.unsubscribeState(`${m}.alive`,A),W&&r.sendTo(m.replace(/^system\.adapter\./,""),"rulesOn",j)),m=(Q=y==null?void 0:y.common)==null?void 0:Q.engine,m&&m&&r.subscribeState(`${m}.alive`,A))},Z=(P,y)=>{if(y)try{const U=JSON.parse(y.val),Q=Date.now();if(U.ruleId===j&&Q-U.ts<1e3){const F=[...pt,{blockId:U.blockId,data:U.data,ts:U.ts}];F.length>200&&F.splice(0,F.length-200);for(let X=F.length-1;X>=0;X--)if(F[X].ts<Q-5e3){F.splice(0,X);break}pt=F,H(F)}}catch{console.error(`Cannot parse: ${y.val}`)}};return r==null||r.getObject(j).then(P=>{var y;m=(y=P==null?void 0:P.common)==null?void 0:y.engine,r.subscribeObject(j,L),m&&(r.subscribeState(`${m}.alive`,A),r.subscribeState(`${m.replace(/^system\.adapter\./,"")}.debug.rules`,Z))}),function(){r==null||r.unsubscribeObject(j,L),m&&(r==null||r.unsubscribeState(`${m}.alive`,A),W&&(r==null||r.sendTo(m.replace(/^system\.adapter\./,""),"rulesOff",j)),r==null||r.unsubscribeState(`${m.replace(/^system\.adapter\./,"")}.debug.rules`,Z))}},[]),E(()=>{w(!O&&I)},[O,I,w]),E(()=>{d&&(q(d),T||S(!0))},[d]),E(()=>{const m=ft(e);JSON.stringify(m)!==JSON.stringify(p)&&(g(m),k(!0))},[e]),E(()=>{document.getElementsByTagName("HTML")[0].className=s||"blue"},[s]);const B=lt(m=>{g(m),_&&t(Mt(m,_))},[_,t]),N=ut(null),[h,b]=M({835:!1,1035:!1});return E(()=>{N.current&&(N.current.clientWidth<=1035&&b({835:!1,1035:!0}),N.current.clientWidth<=835&&b({1035:!0,835:!0}),N.current.clientWidth>1035&&b({835:!1,1035:!1}))},[((v=N.current)==null?void 0:v.clientWidth)||0]),!_||!r?null:n.jsxs("div",{className:ot.wrapperRules,ref:N,children:[n.jsx(ln,{allBlocks:f,socket:r}),T?C==="export"?n.jsx(Ht,{scriptId:j,themeType:i,onClose:()=>S(!1),text:JSON.stringify(p,null,2)}):n.jsx(Wt,{themeType:i,onClose:m=>{S(!1),m&&B(JSON.parse(m))}}):null,n.jsxs("div",{className:u.Utils.clsx(ot.rootWrapper,h[835]&&ot.addClass),children:[n.jsx(Vn,{setAllBlocks:x,allBlocks:f,userRules:p,onChangeBlocks:B,setTourStep:o,tourStep:c,addClass:h,isTourOpen:l}),n.jsx(at,{socket:r,setUserRules:B,userRules:p,isTourOpen:l,setTourStep:o,tourStep:c,name:`${u.I18n.t("when")}...`,typeBlock:"triggers",iconName:"FlashOn",size:h[835],themeType:i,themeName:s,theme:a}),n.jsx(at,{socket:r,setUserRules:B,isTourOpen:l,setTourStep:o,tourStep:c,userRules:p,name:`...${u.I18n.t("and")}...`,typeBlock:"conditions",iconName:"Help",nameAdditionally:u.I18n.t("or"),additionally:!0,border:!0,size:h[835],themeType:i,themeName:s,theme:a}),n.jsx(at,{socket:r,setUserRules:B,isTourOpen:l,setTourStep:o,tourStep:c,userRules:p,name:`...${u.I18n.t("then")}`,typeBlock:"actions",iconName:"PlayForWork",nameAdditionally:u.I18n.t("else"),additionally:!0,size:h[835],themeType:i,themeName:s,theme:a})]})]},"rulesEditor")};export{me as default};
|
|
1
|
+
import{j as n}from"./createSvgIcon-DYs_tNrE.js";import{c as E,h as yt,j as M,m as nt,k as lt,l as Dt,b as ut,o as xt}from"./iobroker_javascript__loadShare__react__loadShare__.mjs-CTZOFJS2.js";import{_ as u}from"./iobroker_javascript__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.mjs-DkBjPSMw.js";import{u as kt,a as St,M as Y,C as et,G as Nt,b as $t,c as bt,I as qt,S as J,d as Bt,e as ft,j as Mt,D as Ht,f as Wt}from"./index-CO9RA-Wq.js";import{_ as wt,b as Ct,h as vt,i as jt,p as Tt,f as Et,g as mt,o as Pt,Y as Ut,Z as Ft,C as Jt,D as st}from"./iobroker_javascript__loadShare___mf_0_mui_mf_1_material__loadShare__.mjs-CV1_X-Lf.js";import{I as Lt}from"./index-wHNMOf-c.js";import"./iobroker_javascript__loadShare__react__loadShare__.mjs_commonjs-proxy-CE9lvhW8.js";import"./iobroker_javascript__loadShare__prop_mf_2_types__loadShare__.mjs-BCtSFofY.js";import"./virtual_mf-REMOTE_ENTRY_ID_iobroker_javascript__remoteEntry_js-Bw22wl4W.js";import"./preload-helper-BDBacUwf.js";import"./iobroker_javascript__loadShare__react_mf_2_dom__loadShare__.mjs_commonjs-proxy-RQRRZMX5.js";import"./iobroker_javascript__loadShare__react_mf_2_dom__loadShare__.mjs-DeVAS-oa.js";import"./inheritsLoose-CIXm_zPk.js";function zt(e){const s=kt().getMonitor(),[i,a]=St(s,e);return E(()=>s.subscribeToOffsetChange(a)),E(()=>s.subscribeToStateChange(a)),i}let V;function Gt(){return V||(V=new Image,V.src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="),V}const Kt="_wrapperRules_nnott_1",Qt="_rootWrapper_nnott_9",Yt="_addClass_nnott_14",ot={wrapperRules:Kt,rootWrapper:Qt,addClass:Yt},Zt="_switchesItem_10ls3_1",Xt="_switchesItemActive_10ls3_28",Vt="_iconTheme_10ls3_36",it={switchesItem:Zt,switchesItemActive:Xt,iconTheme:Vt},It=({name:e,id:t,active:s,icon:i,adapter:a,socket:o,onDoubleClick:c,title:l,onTouchMove:d,style:j})=>n.jsxs("div",{onDoubleClick:c,onTouchMove:d,title:l?u.I18n.t(l):void 0,className:u.Utils.clsx(it.switchesItem,s&&it.switchesItemActive,`block-${t}`),children:[n.jsx(Y,{iconName:i,className:it.iconTheme,adapter:a,socket:o,style:j}),n.jsx("span",{children:e?u.I18n.t(e):""})]},t),Rt="_cardStyle_8rq8v_1",tn="_cardStyleActive_8rq8v_17",nn="_controlMenu_8rq8v_22",en="_closeBtn_8rq8v_31",sn="_isDelete_8rq8v_73",on="_drag_mobile_8rq8v_90",G={cardStyle:Rt,cardStyleActive:tn,controlMenu:nn,closeBtn:en,isDelete:sn,drag_mobile:on};function K(e,t,s){let i;switch(e){case"actions":if(s==="else")return i={...t,actions:{...t[e],else:[...t[e].else]}},i;if(s==="then")return i={...t,actions:{...t[e],then:[...t[e].then]}},i;throw console.error(`Unknown additionalParameter: ${s}`),new Error(`Unknown additionalParameter: ${s}`);case"triggers":return i={...t,triggers:[...t.triggers]},i;case"conditions":return i={...t,conditions:[...t.conditions]},i;default:throw new Error(`Unknown name: ${e}`)}}function z(e,t,s,i){var a;switch(e){case"actions":return t.actions[s]=t.actions[s].filter(o=>o._id!==i),t;case"conditions":return t.conditions[s]=(a=t.conditions[s])==null?void 0:a.filter(o=>o._id!==i),t;default:return t.triggers=t.triggers.filter(o=>o._id!==i),t}}function cn(e,t,s){const{_id:i,acceptedBy:a}=e;let o;if(!a||!t[a])return console.warn(`Cannot find ${a}`),t;switch(a){case"actions":if(o=t.actions[s].find(c=>c._id===i),!o)console.warn(`Cannot find ${i}`);else{const c=t.actions[s].indexOf(o);t.actions[s][c]=e}return t;case"conditions":if(o=t.conditions[s].find(c=>c._id===i),!o)console.warn(`Cannot find ${i}`);else{const c=t.conditions[s].indexOf(o);t.conditions[s][c]=e}return t;default:if(o=t.triggers.find(c=>c._id===i),!o)console.warn(`Cannot find ${i}`);else{const c=t.triggers.indexOf(o);t.triggers[c]=e}return t}}const Ot=yt(e=>{var N;const{setUserRules:t,userRules:s,_id:i,id:a,blockValue:o,active:c,acceptedBy:l,isTourOpen:d,setTourStep:j,tourStep:O}=e,[I,_]=M(null),{blocks:r,socket:k,onUpdate:H,setOnUpdate:w,onDebugMessage:f,enableSimulation:x}=nt(et),p=lt(h=>r==null?void 0:r.find(b=>b.getStaticData().id===h),[r]),g=lt(h=>{const b=cn(h,s,o);b&&t(b)},[s]),C=h=>{h.currentTarget!==I&&_(h.currentTarget)},q=()=>_(null),T=Dt(()=>{const h=p(a)||Nt;return n.jsx(h,{...e,notFound:!p(a),isTourOpen:d,setTourStep:j,tourStep:O,onUpdate:H,setOnUpdate:w,enableSimulation:x,onDebugMessage:f,onChange:g,className:void 0,socket:k})},[s,H,f,x]),[S,B]=M(!1);return n.jsxs("div",{onMouseMove:C,onMouseEnter:C,onMouseLeave:q,onMouseDown:h=>{if(h.ctrlKey){let b;const v=K(l,s,o);l==="conditions"?(b=v.conditions[o].find(m=>m._id===i),b&&v.conditions[o].splice(v.conditions[o].indexOf(b),0,{...b,_id:Date.now()})):l==="actions"?(b=v.actions[o].find(m=>m._id===i),b&&v.actions[o].splice(v.actions[o].indexOf(b),0,{...b,_id:Date.now()})):(b=v.triggers.find(m=>m._id===i),b&&v.triggers.splice(v[l].indexOf(b),0,{...b,_id:Date.now()})),t(v)}},id:"height",style:c?{width:(((N=document.getElementById("width"))==null?void 0:N.clientWidth)||0)-70}:void 0,className:`${G.cardStyle} ${c?G.cardStyleActive:null} ${S?G.isDelete:null}`,children:[n.jsx("div",{className:G.drag_mobile}),T,t&&n.jsx("div",{className:G.controlMenu,style:I?{opacity:1}:{opacity:0},children:n.jsx("div",{onClick:()=>{let h=K(l,s,o);h=z(l,h,o,i),B(!0),setTimeout(()=>{l==="triggers"&&w(!0),t(h)},300)},className:G.closeBtn})})]})}),rn={position:"fixed",pointerEvents:"none",zIndex:100,left:0,top:0,width:"100%",height:"100%"},an=(e,t,s)=>{if(!e||!t)return{display:"none"};let{x:i,y:a}=t;const o=`translate(${i}px, ${a}px)`;return{transform:o,WebkitTransform:o}},ln=e=>{const{itemType:t,isDragging:s,item:i,initialOffset:a,currentOffset:o,targetIds:c}=zt(d=>({item:d.getItem(),itemType:d.getItemType(),initialOffset:d.getInitialSourceClientOffset(),currentOffset:d.getSourceClientOffset(),isDragging:d.isDragging(),targetIds:d.getTargetIds()})),l=()=>t==="box"?c.length?n.jsx(Ot,{active:!0,...i,allBlocks:e.allBlocks}):n.jsx(It,{active:!0,...i,socket:e.socket}):null;return s?n.jsx("div",{style:rn,children:n.jsx("div",{style:an(a,o),children:l()})}):null},dn="_border_wrpm3_1",fn="_emptyBlockStyle_wrpm3_6",mn="_emptyBlock_wrpm3_6",gn="_selectOnChange_wrpm3_22",hn="_selectOnChangeHelp_wrpm3_28",_n="_selectOnChangeHelpIcon_wrpm3_34",pn="_emptyBlockNone_wrpm3_49",un="_mainBlockItemRules_wrpm3_55",xn="_nameBlockItems_wrpm3_63",bn="_contentBlockItem_wrpm3_73",wn="_wrapperMargin_wrpm3_81",Cn="_contentHeightOn_wrpm3_87",vn="_contentHeightOff_wrpm3_99",jn="_cardAdd_wrpm3_105",In="_blockCardAdd_wrpm3_125",On="_addClassOverflow_wrpm3_136",An="_addClassHeight_wrpm3_140",D={border:dn,emptyBlockStyle:fn,emptyBlock:mn,selectOnChange:gn,selectOnChangeHelp:hn,selectOnChangeHelpIcon:_n,emptyBlockNone:pn,mainBlockItemRules:un,nameBlockItems:xn,contentBlockItem:bn,wrapperMargin:wn,contentHeightOn:Cn,contentHeightOff:vn,cardAdd:jn,blockCardAdd:In,addClassOverflow:On,addClassHeight:An};function dt(e,t){const[s,i]=M(window.localStorage.getItem(t)?JSON.parse(window.localStorage.getItem(t)||""):e);return[s,o=>{window.localStorage.setItem(t,JSON.stringify(o)),i(o)},!!window.localStorage.getItem(t)]}function yn(e,t){let s=0,i=null,a;return function(...o){const c=Date.now();a=o,c-s>=t?(s=c,e.apply(this,o)):i||(i=setTimeout(()=>{s=Date.now(),i=null,e.apply(this,a)},t-(c-s)))}}function tt(e){if(Array.isArray(e))return e.map(t=>tt(t));if(typeof e=="function")return e.bind(null);if(e&&typeof e=="object"){const t={};return Object.keys(e).forEach(s=>{t[s]=tt(e[s])}),t}return e}const ct=yn((e,t)=>e(t),0);function R(e,t){const s=t.find(i=>i._id===e);return{card:s,index:s?t.indexOf(s):-1}}function rt(e,t,s,i,a,o,c,l,d){const{card:j,index:O}=R(e,s);if(!(O<t&&l<d)&&!(O>t&&l>d)&&j&&O!==t){const I=tt(s);I.splice(O,1),I.splice(t,0,j);const _=tt(a);switch(o){case"actions":_.actions[c]=I,ct(i,_);return;case"conditions":_.conditions[c]=I,ct(i,_);return;default:_.triggers=I,ct(i,_);return}}}const Dn="_drag_7xfhc_1",kn="_root_7xfhc_11",gt={drag:Dn,root:kn},At=({typeBlock:e,allProperties:t,id:s,isActive:i,setUserRules:a,userRules:o,children:c,_id:l,blockValue:d})=>{const{setOnUpdate:j}=nt(et),[{opacity:O},I,_]=$t({type:"box",item:()=>({...t,id:s,isActive:i,_id:l}),end:(w,f)=>{const{acceptedBy:x}=w,p=f.getDropResult();let g;if(!p)return typeof l=="number"&&!f.getTargetIds().length&&(g=K(x,o,d),g=z(x,g,d,l),a(g)),null;if(p.blockValue!==d){const C=typeof l=="number"?l:Date.now();g=K(x,o,p.blockValue);const q={id:w.id,acceptedBy:w.acceptedBy};switch(x){case"actions":return d&&(g=z("actions",g,d,C)),g=z("actions",g,p.blockValue,C),g.actions[p.blockValue].push({...q,_id:C}),a(g);case"conditions":return typeof d=="number"&&(g=z("conditions",g,d,C)),g=z("conditions",g,p.blockValue,C),g.conditions[p.blockValue].push({...q,_id:C}),a(g);default:return j(!0),g=z("triggers",g,p.blockValue,C),g.triggers.push({...q,_id:C}),a(g)}}},collect:w=>({opacity:w.isDragging()?.4:1,isDragging:w.isDragging()})}),r=ut(null),[,k]=bt({accept:"box",canDrop:()=>!1,hover({_id:w,acceptedBy:f},x){var T;if(!r.current||e!==f)return;const p=(T=r.current)==null?void 0:T.getBoundingClientRect(),g=(p.bottom-p.top)/2,C=x.getClientOffset(),q=((C==null?void 0:C.y)||0)-p.top;if(l&&w!==l)switch(f){case"actions":if(d==="then"||d==="else"){const{index:S}=R(l,o.actions[d]);S!==w&&rt(w,S,o[f][d],a,o,f,d,q,g)}return;case"conditions":if(typeof d=="number"){const{index:S}=R(l,o[f][d]);S!==w&&rt(w,S,o[f][d],a,o,f,d,q,g)}return;default:{const{index:S}=R(l,o[f]);S!==w&&rt(w,S,o[f],a,o,f,void 0,q,g);return}}}});E(()=>{_(Gt(),{captureDraggingState:!0})},[]),I(k(r));const H=window.innerWidth<600;return n.jsxs("div",{ref:H&&l?null:r,className:gt.root,style:{opacity:O},children:[n.jsx("div",{className:l?gt.drag:null,ref:l&&H?r:null}),c]})},Sn=({onClose:e,open:t})=>n.jsxs(wt,{open:t,onClose:e,"aria-labelledby":"alert-dialog-title","aria-describedby":"alert-dialog-description",children:[n.jsx(Ct,{children:n.jsxs("div",{style:{fontSize:"1rem",fontFamily:'"Roboto", "Helvetica", "Arial", sans-serif',fontWeight:400,lineHeight:1.5,letterSpacing:"0.00938em"},children:[n.jsx("h3",{children:u.I18n.t("On condition change")}),n.jsx("div",{children:u.I18n.t("help_on_change")}),n.jsx("h3",{children:u.I18n.t("Just check")}),n.jsx("div",{children:u.I18n.t("help_just_check")})]})}),n.jsx(vt,{children:n.jsx(jt,{onClick:e,color:"primary",autoFocus:!0,startIcon:n.jsx(Lt,{}),children:u.I18n.t("OK")})})]}),Nn=({onClose:e,open:t})=>n.jsxs(wt,{open:t,onClose:e,"aria-labelledby":"alert-dialog-title","aria-describedby":"alert-dialog-description",children:[n.jsx(Ct,{children:n.jsxs(Tt,{id:"alert-dialog-description",children:[n.jsx("h3",{children:u.I18n.t("On condition change")}),n.jsx("div",{children:u.I18n.t("help_on_change")}),n.jsx("h3",{children:u.I18n.t("Just check")}),n.jsx("div",{children:u.I18n.t("help_just_check")})]})}),n.jsx(vt,{children:n.jsx(jt,{onClick:e,color:"primary",autoFocus:!0,children:u.I18n.t("OK")})})]}),ht=({size:e,blockValue:t,boolean:s,typeBlock:i,userRules:a,setUserRules:o,animation:c,setTourStep:l,tourStep:d,isTourOpen:j,theme:O,themeType:I,themeName:_})=>{var W;const[r,k]=M(!1),[H,w]=M(!1),[f,x]=M(!1),[p,g]=M("");s===void 0&&(s=!0);const C=bt({accept:"box",drop:()=>({blockValue:t}),hover:({acceptedBy:A,_id:L},Z)=>{k(A===i),x(!!L),g(Z.getHandlerId()||"")},canDrop:({acceptedBy:A})=>(w(A===i),A===i),collect:A=>{var L;return{isOver:A.isOver(),canDrop:((L=A.getItem())==null?void 0:L.acceptedBy)===i,offset:A.getClientOffset(),targetId:A.getHandlerId()}}}),q=C[0],{canDrop:T,isOver:S,offset:B,targetId:N}=q,h=C[1];E(()=>{g("")},[B]);const b=T&&S;let v="";b?v=r?"#00fb003d":"#fb00002e":T?v=H?"#00fb003d":"#fb00002e":B&&(v=N===p?"#fb00002e":"");let m;return i==="actions"?m=a.actions[t]:i==="conditions"?m=a.conditions[t]:m=a.triggers,n.jsx("div",{ref:h,style:{backgroundColor:v},className:`${u.Utils.clsx(D.contentBlockItem,e&&D.addClassHeight)} ${s?c?D.contentHeightOn:null:D.contentHeightOff}`,children:n.jsxs("div",{className:D.wrapperMargin,children:[m.map(A=>n.jsx(At,{typeBlock:i,...A,blockValue:t,allProperties:A,userRules:a,setUserRules:o,children:n.jsx(Ot,{...A,isTourOpen:j,setTourStep:l,tourStep:d,settings:A,blockValue:t,userRules:a,setUserRules:o,theme:O,themeType:I,themeName:_})},A._id)),n.jsx("div",{style:b&&r&&!f?{height:((W=document.getElementById("height"))==null?void 0:W.clientHeight)||200}:void 0,className:`${D.emptyBlockStyle} ${b&&r&&!f?D.emptyBlock:D.emptyBlockNone}`})]})})},at=({size:e,typeBlock:t,name:s,nameAdditionally:i,additionally:a,border:o,userRules:c,setUserRules:l,iconName:d,adapter:j,socket:O,setTourStep:I,tourStep:_,isTourOpen:r,theme:k,themeType:H,themeName:w})=>{const[f,x,p]=dt(t==="actions"?!1:[],`additionallyClickItems_${t}`),[g,C]=M(!1),[q,T]=M(!1);E(()=>{if(t==="conditions"&&(f==null?void 0:f.length)!==c.conditions.length-1){const N=[];c.conditions.forEach((h,b)=>{b>0&&N.push({_id:Date.now(),open:!0})}),x([...f,...N])}t==="actions"&&!p&&c.actions.else.length&&x(!0)},[]);const[S,B]=M(!1);return n.jsxs("div",{className:`${u.Utils.clsx(D.mainBlockItemRules,e&&D.addClassOverflow)} ${o&&!e?D.border:null}`,children:[n.jsxs("span",{id:"width",className:D.nameBlockItems,children:[n.jsx(Y,{iconName:d,className:D.iconThemCard,adapter:j,socket:O}),s]}),t==="conditions"?n.jsxs("div",{style:{width:"100%"},children:[n.jsxs(Et,{variant:"standard",className:D.selectOnChange,value:c.justCheck||!1,onChange:N=>{const h=K("conditions",c);h.justCheck=N.target.value==="true",l(h)},children:[n.jsx(mt,{value:"false",children:u.I18n.t("on condition change")}),n.jsx(mt,{value:"true",children:u.I18n.t("just check")})]}),n.jsx(Pt,{size:"small",title:u.I18n.t("Explanation"),className:D.selectOnChangeHelp,onClick:()=>C(!0),children:n.jsx(qt,{className:D.selectOnChangeHelpIcon})})]}):null,n.jsx(ht,{setTourStep:I,tourStep:_,isTourOpen:r,blockValue:t==="actions"?"then":t==="conditions"?0:t,typeBlock:t,setUserRules:l,userRules:c,theme:k,themeName:w,themeType:H,size:e}),a&&[...Array(t==="actions"?1:c.conditions.length-1)].map((N,h)=>{const b=(v=h)=>t==="actions"?!!f:!!f.find((m,W)=>W===v&&m.open);return n.jsxs(xt,{children:[n.jsxs("div",{onClick:()=>{if(t==="actions")return x(!f),null;let v=JSON.parse(JSON.stringify(f));if(c.conditions[h+1].length)return v[h].open=!v[h].open,x(v),null;v=v.filter((m,W)=>W!==h),x(v),B(h),setTimeout(()=>{B(!1),l({...c,conditions:[...c.conditions.filter((m,W)=>W!==h+1)]})},250)},className:D.blockCardAdd,children:[b()?"-":"+",n.jsx("div",{className:D.cardAdd,children:i})]},h),n.jsx(ht,{blockValue:t==="actions"?"else":t==="conditions"?h+1:t,typeBlock:t,setUserRules:l,userRules:c,boolean:b(),animation:S===h,size:e,theme:k,themeName:w,themeType:H})]},`${h}_block_${t}`)}),a&&t==="conditions"&&n.jsxs("div",{onClick:()=>{x([...f,{_id:Date.now(),open:!0}]),l({...c,conditions:[...c.conditions,[]]}),B(c.conditions.length-1),setTimeout(()=>B(!1),1e3)},className:D.blockCardAdd,children:["+",n.jsx("div",{className:D.cardAdd,children:i})]}),n.jsx(Sn,{open:g,onClose:()=>C(!1)}),n.jsx(Nn,{open:q,onClose:()=>T(!1)})]})},$n="_menuRules_1qqcb_1",qn="_switchesRenderWrapper_1qqcb_13",Bn="_menuOff_1qqcb_22",Mn="_menuTitle_1qqcb_28",Hn="_marginAuto_1qqcb_42",Wn="_inputWidth_1qqcb_47",Tn="_menuWrapper_1qqcb_52",En="_hamburgerWrapper_1qqcb_57",Pn="_hamburgerOff_1qqcb_74",Un="_nothingFound_1qqcb_82",Fn="_resetSearch_1qqcb_89",Jn="_controlPanel_1qqcb_101",Ln="_controlPanelAppBar_1qqcb_112",zn="_addClassMenu_1qqcb_126",Gn="_addClassBackground_1qqcb_132",Kn="_addClassPosition_1qqcb_136",$={menuRules:$n,switchesRenderWrapper:qn,menuOff:Bn,menuTitle:Mn,marginAuto:Hn,inputWidth:Wn,menuWrapper:Tn,hamburgerWrapper:En,hamburgerOff:Pn,nothingFound:Un,resetSearch:Fn,controlPanel:Jn,controlPanelAppBar:Ln,addClassMenu:zn,addClassBackground:Gn,addClassPosition:Kn},Qn=e=>{const{allProperties:t,allProperties:{acceptedBy:s,id:i},setUserRules:a,userRules:o,setTourStep:c,tourStep:l,isTourOpen:d,onTouchMove:j,isActive:O}=e;return n.jsx(At,{allProperties:t,id:t.id,isActive:O,setUserRules:a,userRules:o,children:n.jsx(It,{onDoubleClick:()=>{d&&l===J.addScheduleByDoubleClick&&i==="TriggerScheduleBlock"&&c(J.openTagsMenu),d&&l===J.addActionPrintText&&i==="ActionPrintText"&&c(J.showJavascript);const I=Date.now();let _;switch(s){case"actions":_="then";break;case"conditions":_=o[s].length-1;break}const r=K(s,o,_),k={id:i,_id:I,acceptedBy:s};_!==void 0?s==="actions"?r.actions[_].push({...k}):s==="conditions"&&r.conditions[_].push({...k}):r.triggers.push({...k}),a(r)},...e,...t,onTouchMove:j})})},Yn="_hamburgerMenu_hqnsm_8",Zn="_animate_hqnsm_21",_t={hamburgerMenu:Yn,animate:Zn};function Xn({bool:e}){return n.jsx("div",{className:`${_t.hamburgerMenu} ${e?_t.animate:""}`})}const Vn=({addClass:e,setAllBlocks:t,allBlocks:s,userRules:i,onChangeBlocks:a,setTourStep:o,tourStep:c,isTourOpen:l})=>{const{blocks:d,socket:j}=nt(et),[O,I]=dt(!1,"hamburgerOnOff"),[_,r]=dt({text:"",type:"triggers",index:0},"filterControlPanel"),k=(f=_.text,x=_.type)=>{if(!d)return;let p=[...d];p=p.filter(g=>{if(!f)return!0;const{name:C}=g.getStaticData();return C&&u.I18n.t(C).toLowerCase().includes(f.toLowerCase())}),p=p.filter(g=>x===g.getStaticData().acceptedBy),t(p)},H=(f,x)=>{l&&x===0&&c===J.selectTriggers&&o(J.addScheduleByDoubleClick),l&&x===2&&c===J.selectActions&&o(J.addActionPrintText),r({..._,index:x,type:["triggers","conditions","actions"][x]}),k(_.text,["triggers","conditions","actions"][x])},w=f=>({id:`scrollable-force-tab-${f}`,"aria-controls":`scrollable-force-tabpanel-${f}`});return E(()=>{k()},[d]),n.jsx(Ut,{mouseEvent:!1,touchEvent:"onTouchStart",onClickAway:()=>I(!0),children:n.jsxs("div",{className:u.Utils.clsx($.menuWrapper,e[1035]&&$.addClassMenu),children:[n.jsx("div",{className:`${$.hamburgerWrapper} ${O?$.hamburgerOff:null}`,onClick:()=>I(!O),children:n.jsx(Xn,{bool:!O})}),n.jsxs("div",{className:`${u.Utils.clsx($.menuRules,e[1035]&&$.addClassBackground,e[835]&&$.addClassPosition)} ${O?$.menuOff:null}`,children:[n.jsx("div",{className:$.controlPanel,children:n.jsx(Ft,{className:$.controlPanelAppBar,position:"static",children:n.jsxs(Jt,{value:_.index,onChange:H,children:[n.jsx(st,{className:"blocks-triggers",title:u.I18n.t("Triggers"),icon:n.jsx(Y,{iconName:"FlashOn"}),...w(0)}),n.jsx(st,{title:u.I18n.t("Conditions"),className:"blocks-conditions",icon:n.jsx(Y,{iconName:"Help"}),...w(1)}),n.jsx(st,{title:u.I18n.t("Actions"),className:"blocks-actions",icon:n.jsx(Y,{iconName:"PlayForWork"}),...w(2)})]})})}),n.jsx("div",{className:$.switchesRenderWrapper,children:n.jsxs("span",{children:[s.map(f=>{const{name:x,id:p,icon:g,adapter:C}=f.getStaticData();return n.jsx(xt,{children:n.jsx(Qn,{adapter:C,allProperties:f.getStaticData(),icon:g,id:p,isActive:!1,isTourOpen:l,name:x,onTouchMove:()=>I(!0),setTourStep:o,setUserRules:a,socket:j,tourStep:c,userRules:i})},p)}),!s.length&&n.jsxs("div",{className:$.nothingFound,children:[u.I18n.t("Nothing found"),"...",n.jsx("div",{className:$.resetSearch,onClick:()=>{r({..._,text:""}),k("")},children:u.I18n.t("reset search")})]})]})}),n.jsx("div",{className:u.Utils.clsx($.menuTitle,$.marginAuto)}),n.jsx(Bt,{className:$.inputWidth,fullWidth:!0,customValue:!0,value:_.text,size:"small",autoComplete:"off",label:u.I18n.t("search"),variant:"outlined",onChange:f=>{r({..._,text:f}),k(f)}})]})]})})};let pt=[];const me=({code:e,onChange:t,themeName:s,themeType:i,theme:a,setTourStep:o,tourStep:c,isTourOpen:l,command:d,scriptId:j,changed:O,running:I})=>{var v;const{blocks:_,socket:r,setOnUpdate:k,setOnDebugMessage:H,setEnableSimulation:w}=nt(et),[f,x]=M([]),[p,g]=M(ft(e)),[C,q]=M(""),[T,S]=M(!1);E(()=>{let m,W;const A=(P,y)=>{P===`${m}.alive`&&W!==(y==null?void 0:y.val)&&(W=!!(y!=null&&y.val),W&&m&&(r==null||r.sendTo(m.replace(/^system\.adapter\./,""),"rulesOn",j)))},L=(P,y)=>{var U,Q;r&&m!==((U=y==null?void 0:y.common)==null?void 0:U.engine)&&(m&&(r.unsubscribeState(`${m}.alive`,A),W&&r.sendTo(m.replace(/^system\.adapter\./,""),"rulesOn",j)),m=(Q=y==null?void 0:y.common)==null?void 0:Q.engine,m&&m&&r.subscribeState(`${m}.alive`,A))},Z=(P,y)=>{if(y)try{const U=JSON.parse(y.val),Q=Date.now();if(U.ruleId===j&&Q-U.ts<1e3){const F=[...pt,{blockId:U.blockId,data:U.data,ts:U.ts}];F.length>200&&F.splice(0,F.length-200);for(let X=F.length-1;X>=0;X--)if(F[X].ts<Q-5e3){F.splice(0,X);break}pt=F,H(F)}}catch{console.error(`Cannot parse: ${y.val}`)}};return r==null||r.getObject(j).then(P=>{var y;m=(y=P==null?void 0:P.common)==null?void 0:y.engine,r.subscribeObject(j,L),m&&(r.subscribeState(`${m}.alive`,A),r.subscribeState(`${m.replace(/^system\.adapter\./,"")}.debug.rules`,Z))}),function(){r==null||r.unsubscribeObject(j,L),m&&(r==null||r.unsubscribeState(`${m}.alive`,A),W&&(r==null||r.sendTo(m.replace(/^system\.adapter\./,""),"rulesOff",j)),r==null||r.unsubscribeState(`${m.replace(/^system\.adapter\./,"")}.debug.rules`,Z))}},[]),E(()=>{w(!O&&I)},[O,I,w]),E(()=>{d&&(q(d),T||S(!0))},[d]),E(()=>{const m=ft(e);JSON.stringify(m)!==JSON.stringify(p)&&(g(m),k(!0))},[e]),E(()=>{document.getElementsByTagName("HTML")[0].className=s||"blue"},[s]);const B=lt(m=>{g(m),_&&t(Mt(m,_))},[_,t]),N=ut(null),[h,b]=M({835:!1,1035:!1});return E(()=>{N.current&&(N.current.clientWidth<=1035&&b({835:!1,1035:!0}),N.current.clientWidth<=835&&b({1035:!0,835:!0}),N.current.clientWidth>1035&&b({835:!1,1035:!1}))},[((v=N.current)==null?void 0:v.clientWidth)||0]),!_||!r?null:n.jsxs("div",{className:ot.wrapperRules,ref:N,children:[n.jsx(ln,{allBlocks:f,socket:r}),T?C==="export"?n.jsx(Ht,{scriptId:j,themeType:i,onClose:()=>S(!1),text:JSON.stringify(p,null,2)}):n.jsx(Wt,{themeType:i,onClose:m=>{S(!1),m&&B(JSON.parse(m))}}):null,n.jsxs("div",{className:u.Utils.clsx(ot.rootWrapper,h[835]&&ot.addClass),children:[n.jsx(Vn,{setAllBlocks:x,allBlocks:f,userRules:p,onChangeBlocks:B,setTourStep:o,tourStep:c,addClass:h,isTourOpen:l}),n.jsx(at,{socket:r,setUserRules:B,userRules:p,isTourOpen:l,setTourStep:o,tourStep:c,name:`${u.I18n.t("when")}...`,typeBlock:"triggers",iconName:"FlashOn",size:h[835],themeType:i,themeName:s,theme:a}),n.jsx(at,{socket:r,setUserRules:B,isTourOpen:l,setTourStep:o,tourStep:c,userRules:p,name:`...${u.I18n.t("and")}...`,typeBlock:"conditions",iconName:"Help",nameAdditionally:u.I18n.t("or"),additionally:!0,border:!0,size:h[835],themeType:i,themeName:s,theme:a}),n.jsx(at,{socket:r,setUserRules:B,isTourOpen:l,setTourStep:o,tourStep:c,userRules:p,name:`...${u.I18n.t("then")}`,typeBlock:"actions",iconName:"PlayForWork",nameAdditionally:u.I18n.t("else"),additionally:!0,size:h[835],themeType:i,themeName:s,theme:a})]})]},"rulesEditor")};export{me as default};
|