UNPKG

iobroker.javascript

Version:
2 lines (1 loc) 22.4 kB
import{j as t}from"./createSvgIcon-C_ElRFrf.js";import{i as u}from"./iobroker_javascript__loadShare__react__loadShare__-B-pIv4x_.js";import{u as pe,a as xe,i as x,M as X,C as te,G as be,b as Ce,c as he,I as we,S as J,d as ve,e as le,j as je,D as Ie,f as Oe}from"./index-BUU5hWiL.js";import{i as N,C as Se}from"./index-DeFm7TiX.js";import"./_commonjsHelpers-Cpj98o6Y.js";import"./iobroker_javascript__mf_v__runtimeInit__mf_v__-CmuPLb0X.js";import"./inheritsLoose-CLw44UEv.js";import"./preload-helper-Dp1pzeXC.js";function Ae(n){const s=pe().getMonitor(),[i,r]=xe(s,n);return u.useEffect(()=>s.subscribeToOffsetChange(r)),u.useEffect(()=>s.subscribeToStateChange(r)),i}let V;function ye(){return V||(V=new Image,V.src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="),V}const De="_wrapperRules_nnott_1",ke="_rootWrapper_nnott_9",Ne="_addClass_nnott_14",ne={wrapperRules:De,rootWrapper:ke,addClass:Ne},$e="_switchesItem_10ls3_1",Be="_switchesItemActive_10ls3_28",Ee="_iconTheme_10ls3_36",se={switchesItem:$e,switchesItemActive:Be,iconTheme:Ee},ue=({name:n,id:e,active:s,icon:i,adapter:r,socket:o,onDoubleClick:c,title:l,onTouchMove:d,style:I})=>t.jsxs("div",{onDoubleClick:c,onTouchMove:d,title:l?x.I18n.t(l):void 0,className:x.Utils.clsx(se.switchesItem,s&&se.switchesItemActive,`block-${e}`),children:[t.jsx(X,{iconName:i,className:se.iconTheme,adapter:r,socket:o,style:I}),t.jsx("span",{children:n?x.I18n.t(n):""})]},e),Me="_cardStyle_8rq8v_1",qe="_cardStyleActive_8rq8v_17",He="_controlMenu_8rq8v_22",Te="_closeBtn_8rq8v_31",We="_isDelete_8rq8v_73",Pe="_drag_mobile_8rq8v_90",G={cardStyle:Me,cardStyleActive:qe,controlMenu:He,closeBtn:Te,isDelete:We,drag_mobile:Pe};function K(n,e,s){let i;switch(n){case"actions":if(s==="else")return i={...e,actions:{...e[n],else:[...e[n].else]}},i;if(s==="then")return i={...e,actions:{...e[n],then:[...e[n].then]}},i;throw console.error(`Unknown additionalParameter: ${s}`),new Error(`Unknown additionalParameter: ${s}`);case"triggers":return i={...e,triggers:[...e.triggers]},i;case"conditions":return i={...e,conditions:[...e.conditions]},i;default:throw new Error(`Unknown name: ${n}`)}}function z(n,e,s,i){var r;switch(n){case"actions":return e.actions[s]=e.actions[s].filter(o=>o._id!==i),e;case"conditions":return e.conditions[s]=(r=e.conditions[s])==null?void 0:r.filter(o=>o._id!==i),e;case"triggers":default:return e.triggers=e.triggers.filter(o=>o._id!==i),e}}function Fe(n,e,s){const{_id:i,acceptedBy:r}=n;let o;if(!r||!e[r])return console.warn(`Cannot find ${r}`),e;switch(r){case"actions":if(o=e.actions[s].find(c=>c._id===i),!o)console.warn(`Cannot find ${i}`);else{const c=e.actions[s].indexOf(o);e.actions[s][c]=n}return e;case"conditions":if(o=e.conditions[s].find(c=>c._id===i),!o)console.warn(`Cannot find ${i}`);else{const c=e.conditions[s].indexOf(o);e.conditions[s][c]=n}return e;default:if(o=e.triggers.find(c=>c._id===i),!o)console.warn(`Cannot find ${i}`);else{const c=e.triggers.indexOf(o);e.triggers[c]=n}return e}}const me=u.memo(n=>{var B;const{setUserRules:e,userRules:s,_id:i,id:r,blockValue:o,active:c,acceptedBy:l,isTourOpen:d,setTourStep:I,tourStep:S}=n,[O,_]=u.useState(null),{blocks:a,socket:k,onUpdate:H,setOnUpdate:w,onDebugMessage:f,enableSimulation:b}=u.useContext(te),p=u.useCallback(m=>a==null?void 0:a.find(C=>C.getStaticData().id===m),[a]),h=u.useCallback(m=>{const C=Fe(m,s,o);C&&e(C)},[s]),v=m=>{m.currentTarget!==O&&_(m.currentTarget)},M=()=>_(null),W=u.useMemo(()=>{const m=p(r)||be;return t.jsx(m,{...n,notFound:!p(r),isTourOpen:d,setTourStep:I,tourStep:S,onUpdate:H,setOnUpdate:w,enableSimulation:b,onDebugMessage:f,onChange:h,className:void 0,socket:k})},[s,H,f,b]),[$,q]=u.useState(!1);return t.jsxs("div",{onMouseMove:v,onMouseEnter:v,onMouseLeave:M,onMouseDown:m=>{if(m.ctrlKey){let C;const j=K(l,s,o);l==="conditions"?(C=j.conditions[o].find(g=>g._id===i),C&&j.conditions[o].splice(j.conditions[o].indexOf(C),0,{...C,_id:Date.now()})):l==="actions"?(C=j.actions[o].find(g=>g._id===i),C&&j.actions[o].splice(j.actions[o].indexOf(C),0,{...C,_id:Date.now()})):(C=j.triggers.find(g=>g._id===i),C&&j.triggers.splice(j[l].indexOf(C),0,{...C,_id:Date.now()})),e(j)}},id:"height",style:c?{width:(((B=document.getElementById("width"))==null?void 0:B.clientWidth)||0)-70}:void 0,className:`${G.cardStyle} ${c?G.cardStyleActive:null} ${$?G.isDelete:null}`,children:[t.jsx("div",{className:G.drag_mobile}),W,e&&t.jsx("div",{className:G.controlMenu,style:O?{opacity:1}:{opacity:0},children:t.jsx("div",{onClick:()=>{let m=K(l,s,o);m=z(l,m,o,i),q(!0),setTimeout(()=>{l==="triggers"&&w(!0),e(m)},300)},className:G.closeBtn})})]})}),Ue={position:"fixed",pointerEvents:"none",zIndex:100,left:0,top:0,width:"100%",height:"100%"},Je=(n,e,s)=>{if(!n||!e)return{display:"none"};let{x:i,y:r}=e;const o=`translate(${i}px, ${r}px)`;return{transform:o,WebkitTransform:o}},Le=n=>{const{itemType:e,isDragging:s,item:i,initialOffset:r,currentOffset:o,targetIds:c}=Ae(d=>({item:d.getItem(),itemType:d.getItemType(),initialOffset:d.getInitialSourceClientOffset(),currentOffset:d.getSourceClientOffset(),isDragging:d.isDragging(),targetIds:d.getTargetIds()})),l=()=>{switch(e){case"box":return c.length?t.jsx(me,{active:!0,...i,allBlocks:n.allBlocks}):t.jsx(ue,{active:!0,...i,socket:n.socket});default:return null}};return s?t.jsx("div",{style:Ue,children:t.jsx("div",{style:Je(r,o),children:l()})}):null},ze="_border_wrpm3_1",Ge="_emptyBlockStyle_wrpm3_6",Ke="_emptyBlock_wrpm3_6",Qe="_selectOnChange_wrpm3_22",Xe="_selectOnChangeHelp_wrpm3_28",Ye="_selectOnChangeHelpIcon_wrpm3_34",Ze="_emptyBlockNone_wrpm3_49",Ve="_mainBlockItemRules_wrpm3_55",Re="_nameBlockItems_wrpm3_63",et="_contentBlockItem_wrpm3_73",tt="_wrapperMargin_wrpm3_81",nt="_contentHeightOn_wrpm3_87",st="_contentHeightOff_wrpm3_99",ot="_cardAdd_wrpm3_105",it="_blockCardAdd_wrpm3_125",ct="_addClassOverflow_wrpm3_136",at="_addClassHeight_wrpm3_140",D={border:ze,emptyBlockStyle:Ge,emptyBlock:Ke,selectOnChange:Qe,selectOnChangeHelp:Xe,selectOnChangeHelpIcon:Ye,emptyBlockNone:Ze,mainBlockItemRules:Ve,nameBlockItems:Re,contentBlockItem:et,wrapperMargin:tt,contentHeightOn:nt,contentHeightOff:st,cardAdd:ot,blockCardAdd:it,addClassOverflow:ct,addClassHeight:at};function re(n,e){const[s,i]=u.useState(window.localStorage.getItem(e)?JSON.parse(window.localStorage.getItem(e)||""):n);return[s,o=>{window.localStorage.setItem(e,JSON.stringify(o)),i(o)},!!window.localStorage.getItem(e)]}function rt(n,e){let s=0,i=null,r;return function(...o){const c=Date.now();r=o,c-s>=e?(s=c,n.apply(this,o)):i||(i=setTimeout(()=>{s=Date.now(),i=null,n.apply(this,r)},e-(c-s)))}}function ee(n){if(Array.isArray(n))return n.map(e=>ee(e));if(typeof n=="function")return n.bind(null);if(n&&typeof n=="object"){const e={};return Object.keys(n).forEach(s=>{e[s]=ee(n[s])}),e}return n}const oe=rt((n,e)=>n(e),0);function R(n,e){const s=e.find(i=>i._id===n);return{card:s,index:s?e.indexOf(s):-1}}function ie(n,e,s,i,r,o,c,l,d){const{card:I,index:S}=R(n,s);if(!(S<e&&l<d)&&!(S>e&&l>d)&&I&&S!==e){const O=ee(s);O.splice(S,1),O.splice(e,0,I);const _=ee(r);switch(o){case"actions":_.actions[c]=O,oe(i,_);return;case"conditions":_.conditions[c]=O,oe(i,_);return;default:_.triggers=O,oe(i,_);return}}}const lt="_drag_7xfhc_1",dt="_root_7xfhc_11",de={drag:lt,root:dt},_e=({typeBlock:n,allProperties:e,id:s,isActive:i,setUserRules:r,userRules:o,children:c,_id:l,blockValue:d})=>{const{setOnUpdate:I}=u.useContext(te),[{opacity:S},O,_]=Ce({type:"box",item:()=>({...e,id:s,isActive:i,_id:l}),end:(w,f)=>{const{acceptedBy:b}=w,p=f.getDropResult();let h;if(!p)return typeof l=="number"&&!f.getTargetIds().length&&(h=K(b,o,d),h=z(b,h,d,l),r(h)),null;if(p.blockValue!==d){const v=typeof l=="number"?l:Date.now();h=K(b,o,p.blockValue);const M={id:w.id,acceptedBy:w.acceptedBy};switch(b){case"actions":return d&&(h=z("actions",h,d,v)),h=z("actions",h,p.blockValue,v),h.actions[p.blockValue].push({...M,_id:v}),r(h);case"conditions":return typeof d=="number"&&(h=z("conditions",h,d,v)),h=z("conditions",h,p.blockValue,v),h.conditions[p.blockValue].push({...M,_id:v}),r(h);default:return I(!0),h=z("triggers",h,p.blockValue,v),h.triggers.push({...M,_id:v}),r(h)}}},collect:w=>({opacity:w.isDragging()?.4:1,isDragging:w.isDragging()})}),a=u.useRef(null),[,k]=he({accept:"box",canDrop:()=>!1,hover({_id:w,acceptedBy:f},b){var W;if(!a.current||n!==f)return;const p=(W=a.current)==null?void 0:W.getBoundingClientRect(),h=(p.bottom-p.top)/2,v=b.getClientOffset(),M=((v==null?void 0:v.y)||0)-p.top;if(l&&w!==l)switch(f){case"actions":if(d==="then"||d==="else"){const{index:$}=R(l,o.actions[d]);$!==w&&ie(w,$,o[f][d],r,o,f,d,M,h)}return;case"conditions":if(typeof d=="number"){const{index:$}=R(l,o[f][d]);$!==w&&ie(w,$,o[f][d],r,o,f,d,M,h)}return;default:{const{index:$}=R(l,o[f]);$!==w&&ie(w,$,o[f],r,o,f,void 0,M,h);return}}}});u.useEffect(()=>{_(ye(),{captureDraggingState:!0})},[]),O(k(a));const H=window.innerWidth<600;return t.jsxs("div",{ref:H&&l?null:a,className:de.root,style:{opacity:S},children:[t.jsx("div",{className:l?de.drag:null,ref:l&&H?a:null}),c]})},ft=({onClose:n,open:e})=>t.jsxs(N.Dialog,{open:e,onClose:n,"aria-labelledby":"alert-dialog-title","aria-describedby":"alert-dialog-description",children:[t.jsx(N.DialogContent,{children:t.jsxs("div",{style:{fontSize:"1rem",fontFamily:'"Roboto", "Helvetica", "Arial", sans-serif',fontWeight:400,lineHeight:1.5,letterSpacing:"0.00938em"},children:[t.jsx("h3",{children:x.I18n.t("On condition change")}),t.jsx("div",{children:x.I18n.t("help_on_change")}),t.jsx("h3",{children:x.I18n.t("Just check")}),t.jsx("div",{children:x.I18n.t("help_just_check")})]})}),t.jsx(N.DialogActions,{children:t.jsx(N.Button,{onClick:n,color:"primary",autoFocus:!0,startIcon:t.jsx(Se,{}),children:x.I18n.t("OK")})})]}),gt=({onClose:n,open:e})=>t.jsxs(N.Dialog,{open:e,onClose:n,"aria-labelledby":"alert-dialog-title","aria-describedby":"alert-dialog-description",children:[t.jsx(N.DialogContent,{children:t.jsxs(N.DialogContentText,{id:"alert-dialog-description",children:[t.jsx("h3",{children:x.I18n.t("On condition change")}),t.jsx("div",{children:x.I18n.t("help_on_change")}),t.jsx("h3",{children:x.I18n.t("Just check")}),t.jsx("div",{children:x.I18n.t("help_just_check")})]})}),t.jsx(N.DialogActions,{children:t.jsx(N.Button,{onClick:n,color:"primary",autoFocus:!0,children:x.I18n.t("OK")})})]}),fe=({size:n,blockValue:e,boolean:s,typeBlock:i,userRules:r,setUserRules:o,animation:c,setTourStep:l,tourStep:d,isTourOpen:I,theme:S,themeType:O,themeName:_})=>{var T;const[a,k]=u.useState(!1),[H,w]=u.useState(!1),[f,b]=u.useState(!1),[p,h]=u.useState("");s===void 0&&(s=!0);const v=he({accept:"box",drop:()=>({blockValue:e}),hover:({acceptedBy:A,_id:L},Y)=>{k(A===i),b(!!L),h(Y.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()}}}),M=v[0],{canDrop:W,isOver:$,offset:q,targetId:B}=M,m=v[1];u.useEffect(()=>{h("")},[q]);const C=W&&$;let j="";C?j=a?"#00fb003d":"#fb00002e":W?j=H?"#00fb003d":"#fb00002e":q&&(j=B===p?"#fb00002e":"");let g;return i==="actions"?g=r.actions[e]:i==="conditions"?g=r.conditions[e]:g=r.triggers,t.jsx("div",{ref:m,style:{backgroundColor:j},className:`${x.Utils.clsx(D.contentBlockItem,n&&D.addClassHeight)} ${s?c?D.contentHeightOn:null:D.contentHeightOff}`,children:t.jsxs("div",{className:D.wrapperMargin,children:[g.map(A=>t.jsx(_e,{typeBlock:i,...A,blockValue:e,allProperties:A,userRules:r,setUserRules:o,children:t.jsx(me,{...A,isTourOpen:I,setTourStep:l,tourStep:d,settings:A,blockValue:e,userRules:r,setUserRules:o,theme:S,themeType:O,themeName:_})},A._id)),t.jsx("div",{style:C&&a&&!f?{height:((T=document.getElementById("height"))==null?void 0:T.clientHeight)||200}:void 0,className:`${D.emptyBlockStyle} ${C&&a&&!f?D.emptyBlock:D.emptyBlockNone}`})]})})},ce=({size:n,typeBlock:e,name:s,nameAdditionally:i,additionally:r,border:o,userRules:c,setUserRules:l,iconName:d,adapter:I,socket:S,setTourStep:O,tourStep:_,isTourOpen:a,theme:k,themeType:H,themeName:w})=>{const[f,b,p]=re(e==="actions"?!1:[],`additionallyClickItems_${e}`),[h,v]=u.useState(!1),[M,W]=u.useState(!1);u.useEffect(()=>{if(e==="conditions"&&(f==null?void 0:f.length)!==c.conditions.length-1){const B=[];c.conditions.forEach((m,C)=>{C>0&&B.push({_id:Date.now(),open:!0})}),b([...f,...B])}e==="actions"&&!p&&c.actions.else.length&&b(!0)},[]);const[$,q]=u.useState(!1);return t.jsxs("div",{className:`${x.Utils.clsx(D.mainBlockItemRules,n&&D.addClassOverflow)} ${o&&!n?D.border:null}`,children:[t.jsxs("span",{id:"width",className:D.nameBlockItems,children:[t.jsx(X,{iconName:d,className:D.iconThemCard,adapter:I,socket:S}),s]}),e==="conditions"?t.jsxs("div",{style:{width:"100%"},children:[t.jsxs(N.Select,{variant:"standard",className:D.selectOnChange,value:c.justCheck||!1,onChange:B=>{const m=K("conditions",c);m.justCheck=B.target.value==="true",l(m)},children:[t.jsx(N.MenuItem,{value:"false",children:x.I18n.t("on condition change")}),t.jsx(N.MenuItem,{value:"true",children:x.I18n.t("just check")})]}),t.jsx(N.IconButton,{size:"small",title:x.I18n.t("Explanation"),className:D.selectOnChangeHelp,onClick:()=>v(!0),children:t.jsx(we,{className:D.selectOnChangeHelpIcon})})]}):null,t.jsx(fe,{setTourStep:O,tourStep:_,isTourOpen:a,blockValue:e==="actions"?"then":e==="conditions"?0:e,typeBlock:e,setUserRules:l,userRules:c,theme:k,themeName:w,themeType:H,size:n}),r&&[...Array(e==="actions"?1:c.conditions.length-1)].map((B,m)=>{const C=(j=m)=>e==="actions"?!!f:!!f.find((g,T)=>T===j&&g.open);return t.jsxs(u.Fragment,{children:[t.jsxs("div",{onClick:()=>{if(e==="actions")return b(!f),null;let j=JSON.parse(JSON.stringify(f));if(c.conditions[m+1].length)return j[m].open=!j[m].open,b(j),null;j=j.filter((g,T)=>T!==m),b(j),q(m),setTimeout(()=>{q(!1),l({...c,conditions:[...c.conditions.filter((g,T)=>T!==m+1)]})},250)},className:D.blockCardAdd,children:[C()?"-":"+",t.jsx("div",{className:D.cardAdd,children:i})]},m),t.jsx(fe,{blockValue:e==="actions"?"else":e==="conditions"?m+1:e,typeBlock:e,setUserRules:l,userRules:c,boolean:C(),animation:$===m,size:n,theme:k,themeName:w,themeType:H})]},`${m}_block_${e}`)}),r&&e==="conditions"&&t.jsxs("div",{onClick:()=>{b([...f,{_id:Date.now(),open:!0}]),l({...c,conditions:[...c.conditions,[]]}),q(c.conditions.length-1),setTimeout(()=>q(!1),1e3)},className:D.blockCardAdd,children:["+",t.jsx("div",{className:D.cardAdd,children:i})]}),t.jsx(ft,{open:h,onClose:()=>v(!1)}),t.jsx(gt,{open:M,onClose:()=>W(!1)})]})},ht="_menuRules_1qqcb_1",ut="_switchesRenderWrapper_1qqcb_13",mt="_menuOff_1qqcb_22",_t="_menuTitle_1qqcb_28",pt="_marginAuto_1qqcb_42",xt="_inputWidth_1qqcb_47",bt="_menuWrapper_1qqcb_52",Ct="_hamburgerWrapper_1qqcb_57",wt="_hamburgerOff_1qqcb_74",vt="_nothingFound_1qqcb_82",jt="_resetSearch_1qqcb_89",It="_controlPanel_1qqcb_101",Ot="_controlPanelAppBar_1qqcb_112",St="_addClassMenu_1qqcb_126",At="_addClassBackground_1qqcb_132",yt="_addClassPosition_1qqcb_136",E={menuRules:ht,switchesRenderWrapper:ut,menuOff:mt,menuTitle:_t,marginAuto:pt,inputWidth:xt,menuWrapper:bt,hamburgerWrapper:Ct,hamburgerOff:wt,nothingFound:vt,resetSearch:jt,controlPanel:It,controlPanelAppBar:Ot,addClassMenu:St,addClassBackground:At,addClassPosition:yt},Dt=n=>{const{allProperties:e,allProperties:{acceptedBy:s,id:i},setUserRules:r,userRules:o,setTourStep:c,tourStep:l,isTourOpen:d,onTouchMove:I,isActive:S}=n;return t.jsx(_e,{allProperties:e,id:e.id,isActive:S,setUserRules:r,userRules:o,children:t.jsx(ue,{onDoubleClick:()=>{d&&l===J.addScheduleByDoubleClick&&i==="TriggerScheduleBlock"&&c(J.openTagsMenu),d&&l===J.addActionPrintText&&i==="ActionPrintText"&&c(J.showJavascript);const O=Date.now();let _;switch(s){case"actions":_="then";break;case"conditions":_=o[s].length-1;break}const a=K(s,o,_),k={id:i,_id:O,acceptedBy:s};_!==void 0?s==="actions"?a.actions[_].push({...k}):s==="conditions"&&a.conditions[_].push({...k}):a.triggers.push({...k}),r(a)},...n,...e,onTouchMove:I})})},kt="_hamburgerMenu_hqnsm_8",Nt="_animate_hqnsm_21",ge={hamburgerMenu:kt,animate:Nt};function $t({bool:n}){return t.jsx("div",{className:`${ge.hamburgerMenu} ${n?ge.animate:""}`})}const Bt=({addClass:n,setAllBlocks:e,allBlocks:s,userRules:i,onChangeBlocks:r,setTourStep:o,tourStep:c,isTourOpen:l})=>{const{blocks:d,socket:I}=u.useContext(te),[S,O]=re(!1,"hamburgerOnOff"),[_,a]=re({text:"",type:"triggers",index:0},"filterControlPanel"),k=(f=_.text,b=_.type)=>{if(!d)return;let p=[...d];p=p.filter(h=>{if(!f)return!0;const{name:v}=h.getStaticData();return v&&x.I18n.t(v).toLowerCase().includes(f.toLowerCase())}),p=p.filter(h=>b===h.getStaticData().acceptedBy),e(p)},H=(f,b)=>{l&&b===0&&c===J.selectTriggers&&o(J.addScheduleByDoubleClick),l&&b===2&&c===J.selectActions&&o(J.addActionPrintText),a({..._,index:b,type:["triggers","conditions","actions"][b]}),k(_.text,["triggers","conditions","actions"][b])},w=f=>({id:`scrollable-force-tab-${f}`,"aria-controls":`scrollable-force-tabpanel-${f}`});return u.useEffect(()=>{k()},[d]),t.jsx(N.ClickAwayListener,{mouseEvent:!1,touchEvent:"onTouchStart",onClickAway:()=>O(!0),children:t.jsxs("div",{className:x.Utils.clsx(E.menuWrapper,n[1035]&&E.addClassMenu),children:[t.jsx("div",{className:`${E.hamburgerWrapper} ${S?E.hamburgerOff:null}`,onClick:()=>O(!S),children:t.jsx($t,{bool:!S})}),t.jsxs("div",{className:`${x.Utils.clsx(E.menuRules,n[1035]&&E.addClassBackground,n[835]&&E.addClassPosition)} ${S?E.menuOff:null}`,children:[t.jsx("div",{className:E.controlPanel,children:t.jsx(N.AppBar,{className:E.controlPanelAppBar,position:"static",children:t.jsxs(N.Tabs,{value:_.index,onChange:H,children:[t.jsx(N.Tab,{className:"blocks-triggers",title:x.I18n.t("Triggers"),icon:t.jsx(X,{iconName:"FlashOn"}),...w(0)}),t.jsx(N.Tab,{title:x.I18n.t("Conditions"),className:"blocks-conditions",icon:t.jsx(X,{iconName:"Help"}),...w(1)}),t.jsx(N.Tab,{title:x.I18n.t("Actions"),className:"blocks-actions",icon:t.jsx(X,{iconName:"PlayForWork"}),...w(2)})]})})}),t.jsx("div",{className:E.switchesRenderWrapper,children:t.jsxs("span",{children:[s.map(f=>{const{name:b,id:p,icon:h,adapter:v}=f.getStaticData();return t.jsx(u.Fragment,{children:t.jsx(Dt,{adapter:v,allProperties:f.getStaticData(),icon:h,id:p,isActive:!1,isTourOpen:l,name:b,onTouchMove:()=>O(!0),setTourStep:o,setUserRules:r,socket:I,tourStep:c,userRules:i})},p)}),!s.length&&t.jsxs("div",{className:E.nothingFound,children:[x.I18n.t("Nothing found"),"...",t.jsx("div",{className:E.resetSearch,onClick:()=>{a({..._,text:""}),k("")},children:x.I18n.t("reset search")})]})]})}),t.jsx("div",{className:x.Utils.clsx(E.menuTitle,E.marginAuto)}),t.jsx(ve,{className:E.inputWidth,fullWidth:!0,customValue:!0,value:_.text,size:"small",autoComplete:"off",label:x.I18n.t("search"),variant:"outlined",onChange:f=>{a({..._,text:f}),k(f)}})]})]})})};let ae=[];const Ut=({code:n,onChange:e,themeName:s,themeType:i,theme:r,setTourStep:o,tourStep:c,isTourOpen:l,command:d,scriptId:I,changed:S,running:O})=>{var j;const{blocks:_,socket:a,setOnUpdate:k,setOnDebugMessage:H,setEnableSimulation:w}=u.useContext(te),[f,b]=u.useState([]),[p,h]=u.useState(le(n)),[v,M]=u.useState(""),[W,$]=u.useState(!1);u.useEffect(()=>{let g,T;const A=(F,y)=>{F===`${g}.alive`&&T!==(y==null?void 0:y.val)&&(T=!!(y!=null&&y.val),T&&g&&(a==null||a.sendTo(g.replace(/^system\.adapter\./,""),"rulesOn",I)))},L=(F,y)=>{var U,Q;a&&g!==((U=y==null?void 0:y.common)==null?void 0:U.engine)&&(g&&(a.unsubscribeState(`${g}.alive`,A),T&&a.sendTo(g.replace(/^system\.adapter\./,""),"rulesOn",I)),g=(Q=y==null?void 0:y.common)==null?void 0:Q.engine,g&&g&&a.subscribeState(`${g}.alive`,A))},Y=(F,y)=>{if(y)try{const U=JSON.parse(y.val),Q=Date.now();if(U.ruleId===I&&Q-U.ts<1e3){const P=[...ae,{blockId:U.blockId,data:U.data,ts:U.ts}];P.length>200&&P.splice(0,200-P.length);for(let Z=P.length-1;Z>=0;Z--)if(P[Z].ts<Q-5e3){P.splice(0,Z);break}console.log(`Debug1: ${JSON.stringify(ae)}`),console.log(`Debug2: ${JSON.stringify(P)}`),ae=P,H(P)}}catch{console.error(`Cannot parse: ${y.val}`)}};return a==null||a.getObject(I).then(F=>{var y;g=(y=F==null?void 0:F.common)==null?void 0:y.engine,a.subscribeObject(I,L),g&&(a.subscribeState(`${g}.alive`,A),a.subscribeState(`${g.replace(/^system\.adapter\./,"")}.debug.rules`,Y))}),function(){a==null||a.unsubscribeState(I,A),g&&(a==null||a.unsubscribeObject(`${g}.alive`,L),T&&(a==null||a.sendTo(g.replace(/^system\.adapter\./,""),"rulesOff",I)),a==null||a.unsubscribeState(`${g.replace(/^system\.adapter\./,"")}.debug.rules`,Y))}},[]),u.useEffect(()=>{w(!S&&O)},[S,O,w]),u.useEffect(()=>{d&&(M(d),W||$(!0))},[d]),u.useEffect(()=>{const g=le(n);JSON.stringify(g)!==JSON.stringify(p)&&(h(g),k(!0))},[n]),u.useEffect(()=>{document.getElementsByTagName("HTML")[0].className=s||"blue"},[s]);const q=u.useCallback(g=>{h(g),_&&e(je(g,_))},[_,e]),B=u.useRef(null),[m,C]=u.useState({835:!1,1035:!1});return u.useEffect(()=>{B.current&&(B.current.clientWidth<=1035&&C({835:!1,1035:!0}),B.current.clientWidth<=835&&C({1035:!0,835:!0}),B.current.clientWidth>1035&&C({835:!1,1035:!1}))},[((j=B.current)==null?void 0:j.clientWidth)||0]),!_||!a?null:t.jsxs("div",{className:ne.wrapperRules,ref:B,children:[t.jsx(Le,{allBlocks:f,socket:a}),W?v==="export"?t.jsx(Ie,{scriptId:I,themeType:i,onClose:()=>$(!1),text:JSON.stringify(p,null,2)}):t.jsx(Oe,{themeType:i,onClose:g=>{$(!1),g&&q(JSON.parse(g))}}):null,t.jsxs("div",{className:x.Utils.clsx(ne.rootWrapper,m[835]&&ne.addClass),children:[t.jsx(Bt,{setAllBlocks:b,allBlocks:f,userRules:p,onChangeBlocks:q,setTourStep:o,tourStep:c,addClass:m,isTourOpen:l}),t.jsx(ce,{socket:a,setUserRules:q,userRules:p,isTourOpen:l,setTourStep:o,tourStep:c,name:`${x.I18n.t("when")}...`,typeBlock:"triggers",iconName:"FlashOn",size:m[835],themeType:i,themeName:s,theme:r}),t.jsx(ce,{socket:a,setUserRules:q,isTourOpen:l,setTourStep:o,tourStep:c,userRules:p,name:`...${x.I18n.t("and")}...`,typeBlock:"conditions",iconName:"Help",nameAdditionally:x.I18n.t("or"),additionally:!0,border:!0,size:m[835],themeType:i,themeName:s,theme:r}),t.jsx(ce,{socket:a,setUserRules:q,isTourOpen:l,setTourStep:o,tourStep:c,userRules:p,name:`...${x.I18n.t("then")}`,typeBlock:"actions",iconName:"PlayForWork",nameAdditionally:x.I18n.t("else"),additionally:!0,size:m[835],themeType:i,themeName:s,theme:r})]})]},"rulesEditor")};export{Ut as default};