iobroker.javascript 10.1.1 → 10.1.2

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.
Files changed (59) hide show
  1. package/README.md +7 -3
  2. package/admin/assets/{AiChatPanel-C_WbKMGX.js → AiChatPanel-D3eFcu56.js} +11 -11
  3. package/admin/assets/AiDiffView-DtbcD6Yx.js +1 -0
  4. package/admin/assets/{Debugger-DAdJnEhw.js → Debugger-DsoSdux9.js} +4 -4
  5. package/admin/assets/Error-1oeF0cix.js +1 -0
  6. package/admin/assets/Import-BH2X_ziv.js +1 -0
  7. package/admin/assets/RulesEditor-BcGsf9n4.css +1 -0
  8. package/admin/assets/RulesEditor-CJ9TvZtR.js +1 -0
  9. package/admin/assets/{ScriptEditor-CZSc7rwE.js → ScriptEditor-DNcGhbcU.js} +2 -2
  10. package/admin/assets/{ScriptEditorVanillaMonaco-DEKg14_A.js → ScriptEditorVanillaMonaco-BBoOLFln.js} +3 -3
  11. package/admin/assets/{_virtual_mf-localSharedImportMap___mfe_internal__iobroker_javascript__mf_owner__1-DPmwd_G2.js → _virtual_mf-localSharedImportMap___mfe_internal__iobroker_javascript__mf_owner__1-BK6m6sZx.js} +1 -1
  12. package/admin/assets/{_virtual_mf___mfe_internal__iobroker_javascript__mf_owner__1__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-C8inUeKt.js → _virtual_mf___mfe_internal__iobroker_javascript__mf_owner__1__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-DezK0U6r.js} +1 -1
  13. package/admin/assets/{_virtual_mf___mfe_internal__iobroker_javascript__mf_owner__1__loadShare__react_mf_2_dom_mf_1_client__loadShare__.js-VcQjt7_9.js → _virtual_mf___mfe_internal__iobroker_javascript__mf_owner__1__loadShare__react_mf_2_dom_mf_1_client__loadShare__.js-_q6w9ugW.js} +1 -1
  14. package/admin/assets/aiPromptBuilder-DSYziAVr.js +1 -0
  15. package/admin/assets/blocks_action-Bpe-Zvqj.js +1 -0
  16. package/admin/assets/{blocks_convert-CX0i-JfS.js → blocks_convert-DS1wCMO_.js} +2 -2
  17. package/admin/assets/{blocks_logic-D-QSzw95.js → blocks_logic-DQaroQTu.js} +1 -1
  18. package/admin/assets/{blocks_number-D7JuNYsw.js → blocks_number-C998FOz6.js} +1 -1
  19. package/admin/assets/blocks_object-BGYvC_4Y.js +1 -0
  20. package/admin/assets/{blocks_procedures-BJMz6HWW.js → blocks_procedures-BZFhrnZ3.js} +1 -1
  21. package/admin/assets/{blocks_sendto-DRh7lk9o.js → blocks_sendto-BoOZkX-e.js} +3 -3
  22. package/admin/assets/{blocks_switch-BfmboMex.js → blocks_switch-CfjY75wV.js} +1 -1
  23. package/admin/assets/blocks_system-C69gZMAz.js +1 -0
  24. package/admin/assets/{blocks_text-CGbR0Ozw.js → blocks_text-Dp6RaJ_p.js} +1 -1
  25. package/admin/assets/blocks_time-CmECitUh.js +1 -0
  26. package/admin/assets/blocks_timeout-BI8OyiNa.js +1 -0
  27. package/admin/assets/blocks_trigger-X7O3INGz.js +2 -0
  28. package/admin/assets/{cronHoverProvider-DpgESCox.js → cronHoverProvider-BhX-SvkB.js} +1 -1
  29. package/admin/assets/{field_cron-B40zwSfJ.js → field_cron-BJLkgNzf.js} +1 -1
  30. package/admin/assets/{field_oid-KfoBnEM9.js → field_oid-CJZIeruf.js} +1 -1
  31. package/admin/assets/{field_script-yXhe1iCp.js → field_script-4IGidWJ7.js} +1 -1
  32. package/admin/assets/{helpers-B0ByElPJ.js → helpers-DaSC8t53.js} +1 -1
  33. package/admin/assets/{hostInit-9REPDUe7.js → hostInit-B3IjMQKW.js} +1 -1
  34. package/admin/assets/index-DKhQ45Yn.js +871 -0
  35. package/admin/assets/{inlineChatWidget-B9y_gQcH.js → inlineChatWidget-CBVgT6FZ.js} +1 -1
  36. package/admin/assets/{inlineDiffController-C07CdIFo.js → inlineDiffController-DianrKl1.js} +1 -1
  37. package/admin/assets/{mf-entry-bootstrap-0-efcb49d3.js → mf-entry-bootstrap-0-a65094d3.js} +2 -2
  38. package/admin/assets/{stateHoverProvider-CqeoOjXs.js → stateHoverProvider-CIFNrLee.js} +1 -1
  39. package/admin/assets/{virtual_mf-REMOTE_ENTRY_ID___mfe_internal__iobroker_javascript__remoteEntry_js-BwSvIKEV.js → virtual_mf-REMOTE_ENTRY_ID___mfe_internal__iobroker_javascript__remoteEntry_js-BO-WKj5V.js} +1 -1
  40. package/admin/mf-manifest.json +1 -1
  41. package/admin/mf-stats.json +1 -1
  42. package/admin/remoteEntry.js +2 -2
  43. package/admin/tab.html +4 -4
  44. package/io-package.json +14 -14
  45. package/package.json +1 -1
  46. package/admin/assets/AiDiffView-BtXbDWZ8.js +0 -1
  47. package/admin/assets/Error-DQ1pzKcf.js +0 -1
  48. package/admin/assets/Import-BjMtH6Gk.js +0 -1
  49. package/admin/assets/RulesEditor-dDRPHw4X.js +0 -1
  50. package/admin/assets/RulesEditor-k-DMHotH.css +0 -1
  51. package/admin/assets/aiPromptBuilder-D5FDo74i.js +0 -1
  52. package/admin/assets/back-CXiqI7Po.jpg +0 -0
  53. package/admin/assets/blocks_action-BqfWEwpf.js +0 -1
  54. package/admin/assets/blocks_object-C9DzAlc7.js +0 -1
  55. package/admin/assets/blocks_system-B-78JfAc.js +0 -1
  56. package/admin/assets/blocks_time-5vS2geJg.js +0 -1
  57. package/admin/assets/blocks_timeout-BdaTywfN.js +0 -1
  58. package/admin/assets/blocks_trigger-D8kgHKbg.js +0 -2
  59. package/admin/assets/index-07o_WKsX.js +0 -726
@@ -1 +0,0 @@
1
- import{$t as e,Cn as t,Cr as n,Ct as r,Dt as i,Ht as a,Jn as o,Ln as s,On as c,Pn as l,Pt as u,Tn as d,Tt as f,Zt as p,dr as m,dt as h,en as g,f as _,fr as v,g as y,gr as b,lr as x,mr as S,nn as C,pn as w,pr as T,qn as E,rn as D,tn as O,vr as k,wt as A,xt as j,yr as M,yt as N}from"./_virtual_mf___mfe_internal__iobroker_javascript__mf_owner__1__loadShare___mf_0_iobroker_mf_1_gui_mf_2_components__loadShare__.js-C8inUeKt.js";import{n as P,t as ee}from"./Import-BjMtH6Gk.js";import{_ as F,a as I,g as L,h as R,i as z,n as te,o as B,r as ne,t as V,v as H,x as U,y as W}from"./index-07o_WKsX.js";var re=s(E(`path`,{d:`M7.5 5.6 10 7 8.6 4.5 10 2 7.5 3.4 5 2l1.4 2.5L5 7zm12 9.8L17 14l1.4 2.5L17 19l2.5-1.4L22 19l-1.4-2.5L22 14zM22 2l-2.5 1.4L17 2l1.4 2.5L17 7l2.5-1.4L22 7l-1.4-2.5zm-7.63 5.29a.996.996 0 0 0-1.41 0L1.29 18.96c-.39.39-.39 1.02 0 1.41l2.34 2.34c.39.39 1.02.39 1.41 0L16.7 11.05c.39-.39.39-1.02 0-1.41zm-1.03 5.49-2.12-2.12 2.44-2.44 2.12 2.12z`}),`AutoFixHigh`),ie=s(E(`path`,{d:`M15.41 7.41 14 6l-6 6 6 6 1.41-1.41L10.83 12z`}),`ChevronLeft`),ae=s(E(`path`,{d:`M10 6 8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z`}),`ChevronRight`),oe=s(E(`path`,{d:`M16 9v10H8V9zm-1.5-6h-5l-1 1H5v2h14V4h-3.5zM18 7H6v12c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2z`}),`DeleteOutlined`),se=s(E(`path`,{d:`M15.41 7.41 14 6l-6 6 6 6 1.41-1.41L10.83 12z`}),`NavigateBefore`);n();function ce(e){let t=H().getMonitor(),[n,r]=W(t,e);return T(()=>t.subscribeToOffsetChange(r)),T(()=>t.subscribeToStateChange(r)),n}var le;function ue(){return le||(le=new Image,le.src=`data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==`),le}var G={wrapperRules:`_wrapperRules_1fisr_1`,rootWrapper:`_rootWrapper_1fisr_9`,bands:`_bands_1fisr_21`,emptyRule:`_emptyRule_1fisr_34`,emptyRuleText:`_emptyRuleText_1fisr_46`},de={switchesItem:`_switchesItem_10ls3_1`,switchesItemActive:`_switchesItemActive_10ls3_28`,iconTheme:`_iconTheme_10ls3_36`};n();var fe=({name:e,id:t,active:n,icon:r,adapter:i,socket:a,onDoubleClick:s,title:c,onTouchMove:l,style:u})=>o(`div`,{onDoubleClick:s,onTouchMove:l,title:c?_.t(c):void 0,className:y.clsx(de.switchesItem,n&&de.switchesItemActive,`block-${t}`),children:[E(I,{iconName:r,className:de.iconTheme,adapter:i,socket:a,style:u}),E(`span`,{children:e?_.t(e):``})]},t),K={cardStyle:`_cardStyle_vibq0_1`,railTriggers:`_railTriggers_vibq0_25`,railConditions:`_railConditions_vibq0_29`,railActions:`_railActions_vibq0_33`,cardStyleActive:`_cardStyleActive_vibq0_37`,controlMenu:`_controlMenu_vibq0_42`,closeBtn:`_closeBtn_vibq0_60`,isDelete:`_isDelete_vibq0_102`,drag_mobile:`_drag_mobile_vibq0_121`};function q(e,t,n){let r;switch(e){case`actions`:if(n===`else`)return r={...t,actions:{...t[e],else:[...t[e].else]}},r;if(n===`then`)return r={...t,actions:{...t[e],then:[...t[e].then]}},r;throw console.error(`Unknown additionalParameter: ${n}`),Error(`Unknown additionalParameter: ${n}`);case`triggers`:return r={...t,triggers:[...t.triggers]},r;case`conditions`:return r={...t,conditions:[...t.conditions]},r;default:throw Error(`Unknown name: ${e}`)}}function J(e,t,n,r){switch(e){case`actions`:return t.actions[n]=t.actions[n].filter(e=>e._id!==r),t;case`conditions`:var i;return t.conditions[n]=(i=t.conditions[n])==null?void 0:i.filter(e=>e._id!==r),t;default:return t.triggers=t.triggers.filter(e=>e._id!==r),t}}function pe(e,t,n){let{_id:r,acceptedBy:i}=e,a;if(!i||!t[i])return console.warn(`Cannot find ${i}`),t;switch(i){case`actions`:if(a=t.actions[n].find(e=>e._id===r),!a)console.warn(`Cannot find ${r}`);else{let r=t.actions[n].indexOf(a);t.actions[n][r]=e}return t;case`conditions`:if(a=t.conditions[n].find(e=>e._id===r),!a)console.warn(`Cannot find ${r}`);else{let r=t.conditions[n].indexOf(a);t.conditions[n][r]=e}return t;default:if(a=t.triggers.find(e=>e._id===r),!a)console.warn(`Cannot find ${r}`);else{let n=t.triggers.indexOf(a);t.triggers[n]=e}return t}}n();var me={triggers:K.railTriggers,conditions:K.railConditions,actions:K.railActions},he=x(e=>{var t;let{setUserRules:n,userRules:r,_id:i,id:a,blockValue:s,active:c,acceptedBy:l,isTourOpen:u,setTourStep:d,tourStep:f}=e,{blocks:p,socket:h,onUpdate:g,setOnUpdate:_,onDebugMessage:y,enableSimulation:x}=v(V),S=m(e=>p==null?void 0:p.find(t=>t.getStaticData().id===e),[p]),C=m(e=>{let t=pe(e,r,s);t&&n(t)},[r]),w=b(()=>{let t=S(a)||z;return E(t,{...e,notFound:!S(a),isTourOpen:u,setTourStep:d,tourStep:f,onUpdate:g,setOnUpdate:_,enableSimulation:x,onDebugMessage:y,onChange:C,className:void 0,socket:h})},[r,g,y,x]),[T,D]=M(!1);return o(`div`,{onMouseDown:e=>{if(e.ctrlKey){let e,t=q(l,r,s);l===`conditions`?(e=t.conditions[s].find(e=>e._id===i),e&&t.conditions[s].splice(t.conditions[s].indexOf(e),0,{...e,_id:Date.now()})):l===`actions`?(e=t.actions[s].find(e=>e._id===i),e&&t.actions[s].splice(t.actions[s].indexOf(e),0,{...e,_id:Date.now()})):(e=t.triggers.find(e=>e._id===i),e&&t.triggers.splice(t[l].indexOf(e),0,{...e,_id:Date.now()})),n(t)}},id:`height`,style:c?{width:(((t=document.getElementById(`width`))==null?void 0:t.clientWidth)||0)-70}:void 0,className:[K.cardStyle,me[l],c&&K.cardStyleActive,T&&K.isDelete].filter(Boolean).join(` `),children:[E(`div`,{className:K.drag_mobile}),w,n&&E(`div`,{className:K.controlMenu,children:E(`div`,{onClick:()=>{let e=q(l,r,s);e=J(l,e,s,i),D(!0),setTimeout(()=>{l===`triggers`&&_(!0),n(e)},300)},className:K.closeBtn})})]})});n();var ge={position:`fixed`,pointerEvents:`none`,zIndex:100,left:0,top:0,width:`100%`,height:`100%`},_e=(e,t)=>[Math.round(e/32)*32,Math.round(t/32)*32],ve=(e,t,n)=>{if(!e||!t)return{display:`none`};let{x:r,y:i}=t;n&&(r-=e.x,i-=e.y,[r,i]=_e(r,i),r+=e.x,i+=e.y);let a=`translate(${r}px, ${i}px)`;return{transform:a,WebkitTransform:a}},ye=e=>{let{itemType:t,isDragging:n,item:r,initialOffset:i,currentOffset:a,targetIds:o}=ce(e=>({item:e.getItem(),itemType:e.getItemType(),initialOffset:e.getInitialSourceClientOffset(),currentOffset:e.getSourceClientOffset(),isDragging:e.isDragging(),targetIds:e.getTargetIds()}));return n?E(`div`,{style:ge,children:E(`div`,{style:ve(i,a),children:(()=>{switch(t){case`box`:return o.length?E(he,{active:!0,...r,allBlocks:e.allBlocks}):E(fe,{active:!0,...r,socket:e.socket});default:return null}})()})}):null},Y={emptyBlockStyle:`_emptyBlockStyle_p7qtf_1`,emptyBlock:`_emptyBlock_p7qtf_1`,marginTop:`_marginTop_p7qtf_1`,selectOnChange:`_selectOnChange_p7qtf_17`,selectOnChangeHelp:`_selectOnChangeHelp_p7qtf_23`,selectOnChangeHelpIcon:`_selectOnChangeHelpIcon_p7qtf_29`,emptyBlockNone:`_emptyBlockNone_p7qtf_44`,bandTriggers:`_bandTriggers_p7qtf_57`,bandConditions:`_bandConditions_p7qtf_61`,bandActions:`_bandActions_p7qtf_65`,mainBlockItemRules:`_mainBlockItemRules_p7qtf_69`,nameBlockItems:`_nameBlockItems_p7qtf_93`,contentBlockItem:`_contentBlockItem_p7qtf_119`,wrapperMargin:`_wrapperMargin_p7qtf_127`,contentHeightOn:`_contentHeightOn_p7qtf_134`,heightBlock:`_heightBlock_p7qtf_1`,contentHeightOff:`_contentHeightOff_p7qtf_146`,cardAdd:`_cardAdd_p7qtf_152`,blockCardAdd:`_blockCardAdd_p7qtf_172`};n();function be(e,t){let[n,r]=M(window.localStorage.getItem(t)?JSON.parse(window.localStorage.getItem(t)||``):e);return[n,e=>{window.localStorage.setItem(t,JSON.stringify(e)),r(e)},!!window.localStorage.getItem(t)]}function xe(e,t){let n=0,r=null,i;return function(...a){let o=Date.now();i=a,o-n>=t?(n=o,e.apply(this,a)):r||=setTimeout(()=>{n=Date.now(),r=null,e.apply(this,i)},t-(o-n))}}function X(e){if(Array.isArray(e))return e.map(e=>X(e));if(typeof e==`function`)return e.bind(null);if(e&&typeof e==`object`){let t={};return Object.keys(e).forEach(n=>{t[n]=X(e[n])}),t}return e}var Se=xe((e,t)=>e(t),0);function Ce(e,t){let n=t.find(t=>t._id===e);return{card:n,index:n?t.indexOf(n):-1}}function we(e,t,n,r,i,a,o,s,c){let{card:l,index:u}=Ce(e,n);if(!(u<t&&s<c)&&!(u>t&&s>c)&&l&&u!==t){let e=X(n);e.splice(u,1),e.splice(t,0,l);let s=X(i);switch(a){case`actions`:s.actions[o]=e,Se(r,s);return;case`conditions`:s.conditions[o]=e,Se(r,s);return;default:s.triggers=e,Se(r,s);return}}}var Te={drag:`_drag_7xfhc_1`,root:`_root_7xfhc_11`};n();var Ee=({typeBlock:e,allProperties:t,id:n,isActive:r,setUserRules:i,userRules:a,children:s,_id:c,blockValue:l})=>{let{setOnUpdate:u}=v(V),[{opacity:d},f,p]=F({type:`box`,item:()=>({...t,id:n,isActive:r,_id:c}),end:(e,t)=>{let{acceptedBy:n}=e,r=t.getDropResult(),o;if(!r)return typeof c==`number`&&!t.getTargetIds().length&&(o=q(n,a,l),o=J(n,o,l,c),i(o)),null;if(r.blockValue!==l){let t=typeof c==`number`?c:Date.now();o=q(n,a,r.blockValue);let s={id:e.id,acceptedBy:e.acceptedBy};switch(n){case`actions`:return l&&(o=J(`actions`,o,l,t)),o=J(`actions`,o,r.blockValue,t),o.actions[r.blockValue].push({...s,_id:t}),i(o);case`conditions`:return typeof l==`number`&&(o=J(`conditions`,o,l,t)),o=J(`conditions`,o,r.blockValue,t),o.conditions[r.blockValue].push({...s,_id:t}),i(o);default:return u(!0),o=J(`triggers`,o,r.blockValue,t),o.triggers.push({...s,_id:t}),i(o)}}},collect:e=>({opacity:e.isDragging()?.4:1,isDragging:e.isDragging()})}),m=k(null),[,h]=L({accept:`box`,canDrop:()=>!1,hover({_id:t,acceptedBy:n},r){var o;if(!m.current||e!==n)return;let s=(o=m.current)==null?void 0:o.getBoundingClientRect(),u=(s.bottom-s.top)/2,d=r.getClientOffset(),f=((d==null?void 0:d.y)||0)-s.top;if(c&&t!==c)switch(n){case`actions`:if(l===`then`||l===`else`){let{index:e}=Ce(c,a.actions[l]);e!==t&&we(t,e,a[n][l],i,a,n,l,f,u)}return;case`conditions`:if(typeof l==`number`){let{index:e}=Ce(c,a[n][l]);e!==t&&we(t,e,a[n][l],i,a,n,l,f,u)}return;default:{let{index:e}=Ce(c,a[n]);e!==t&&we(t,e,a[n],i,a,n,void 0,f,u);return}}}});T(()=>{p(ue(),{captureDraggingState:!0})},[]),f(h(m));let g=window.innerWidth<600;return o(`div`,{ref:g&&c?null:m,className:Te.root,style:{opacity:d},children:[E(`div`,{className:c?Te.drag:null,ref:c&&g?m:null}),s]})};n();var De=({onClose:t,open:n})=>o(e,{open:n,onClose:t,"aria-labelledby":`alert-dialog-title`,"aria-describedby":`alert-dialog-description`,children:[E(O,{children:o(`div`,{style:{fontSize:`1rem`,fontFamily:`"Roboto", "Helvetica", "Arial", sans-serif`,fontWeight:400,lineHeight:1.5,letterSpacing:`0.00938em`},children:[E(`h3`,{children:_.t(`On condition change`)}),E(`div`,{children:_.t(`help_on_change`)}),E(`h3`,{children:_.t(`Just check`)}),E(`div`,{children:_.t(`help_just_check`)})]})}),E(g,{children:E(a,{onClick:t,color:`primary`,autoFocus:!0,startIcon:E(j,{}),children:_.t(`OK`)})})]});n();var Oe=({onClose:t,open:n})=>o(e,{open:n,onClose:t,"aria-labelledby":`alert-dialog-title`,"aria-describedby":`alert-dialog-description`,children:[E(O,{children:o(C,{id:`alert-dialog-description`,children:[E(`h3`,{children:_.t(`On condition change`)}),E(`div`,{children:_.t(`help_on_change`)}),E(`h3`,{children:_.t(`Just check`)}),E(`div`,{children:_.t(`help_just_check`)})]})}),E(g,{children:E(a,{onClick:t,color:`primary`,autoFocus:!0,children:_.t(`OK`)})})]});n();var ke={triggers:Y.bandTriggers,conditions:Y.bandConditions,actions:Y.bandActions},Ae=({blockValue:e,boolean:t,typeBlock:n,userRules:r,setUserRules:i,animation:a,setTourStep:s,tourStep:c,isTourOpen:l,theme:u,themeType:d,themeName:f})=>{var p;let[m,h]=M(!1),[g,_]=M(!1),[v,b]=M(!1),[x,S]=M(``);t===void 0&&(t=!0);let C=L({accept:`box`,drop:()=>({blockValue:e}),hover:({acceptedBy:e,_id:t},r)=>{h(e===n),b(!!t),S(r.getHandlerId()||``)},canDrop:({acceptedBy:e})=>(_(e===n),e===n),collect:e=>{var t;return{isOver:e.isOver(),canDrop:((t=e.getItem())==null?void 0:t.acceptedBy)===n,offset:e.getClientOffset(),targetId:e.getHandlerId()}}}),{canDrop:w,isOver:D,offset:O,targetId:k}=C[0],A=C[1];T(()=>{S(``)},[O]);let j=w&&D,N=``;j?N=m?`#00fb003d`:`#fb00002e`:w?N=g?`#00fb003d`:`#fb00002e`:O&&(N=k===x?`#fb00002e`:``);let P;return P=n===`actions`?r.actions[e]:n===`conditions`?r.conditions[e]:r.triggers,E(`div`,{ref:e=>{A(e)},style:{backgroundColor:N},className:y.clsx(Y.contentBlockItem,t?a&&Y.contentHeightOn:Y.contentHeightOff),children:o(`div`,{className:Y.wrapperMargin,children:[P.map(t=>E(Ee,{typeBlock:n,...t,blockValue:e,allProperties:t,userRules:r,setUserRules:i,children:E(he,{...t,isTourOpen:l,setTourStep:s,tourStep:c,settings:t,blockValue:e,userRules:r,setUserRules:i,theme:u,themeType:d,themeName:f})},t._id)),E(`div`,{style:j&&m&&!v?{height:((p=document.getElementById(`height`))==null?void 0:p.clientHeight)||200}:void 0,className:`${Y.emptyBlockStyle} ${j&&m&&!v?Y.emptyBlock:Y.emptyBlockNone}`})]})})},je=({typeBlock:e,name:t,nameAdditionally:n,additionally:r,userRules:i,setUserRules:a,iconName:s,adapter:l,socket:u,setTourStep:f,tourStep:p,isTourOpen:m,theme:h,themeType:g,themeName:v})=>{let[y,b,x]=be(e!==`actions`&&[],`additionallyClickItems_${e}`),[C,D]=M(!1),[O,k]=M(!1);T(()=>{if(e===`conditions`&&(y==null?void 0:y.length)!==i.conditions.length-1){let e=[];i.conditions.forEach((t,n)=>{n>0&&e.push({_id:Date.now(),open:!0})}),b([...y,...e])}e===`actions`&&!x&&i.actions.else.length&&b(!0)},[]);let[A,j]=M(!1);return o(`div`,{className:`${Y.mainBlockItemRules} ${ke[e]}`,children:[o(`span`,{id:`width`,className:Y.nameBlockItems,children:[E(I,{iconName:s,className:Y.iconThemCard,adapter:l,socket:u}),t]}),e===`conditions`?o(`div`,{style:{width:`100%`},children:[o(c,{variant:`standard`,className:Y.selectOnChange,value:i.justCheck||!1,onChange:e=>{let t=q(`conditions`,i);t.justCheck=e.target.value===`true`,a(t)},children:[E(d,{value:`false`,children:_.t(`on condition change`)}),E(d,{value:`true`,children:_.t(`just check`)})]}),E(w,{size:`small`,title:_.t(`Explanation`),className:Y.selectOnChangeHelp,onClick:()=>D(!0),children:E(U,{className:Y.selectOnChangeHelpIcon})})]}):null,E(Ae,{setTourStep:f,tourStep:p,isTourOpen:m,blockValue:e===`actions`?`then`:e===`conditions`?0:e,typeBlock:e,setUserRules:a,userRules:i,theme:h,themeName:v,themeType:g}),r&&[...Array(e===`actions`?1:i.conditions.length-1)].map((t,r)=>{let s=(t=r)=>e===`actions`?!!y:!!y.find((e,n)=>n===t&&e.open);return o(S,{children:[o(`div`,{onClick:()=>{if(e===`actions`)return b(!y),null;let t=JSON.parse(JSON.stringify(y));if(i.conditions[r+1].length)return t[r].open=!t[r].open,b(t),null;t=t.filter((e,t)=>t!==r),b(t),j(r),setTimeout(()=>{j(!1),a({...i,conditions:[...i.conditions.filter((e,t)=>t!==r+1)]})},250)},className:Y.blockCardAdd,children:[s()?`-`:`+`,E(`div`,{className:Y.cardAdd,children:n})]},r),E(Ae,{blockValue:e===`actions`?`else`:e===`conditions`?r+1:e,typeBlock:e,setUserRules:a,userRules:i,boolean:s(),animation:A===r,theme:h,themeName:v,themeType:g})]},`${r}_block_${e}`)}),r&&e===`conditions`&&o(`div`,{onClick:()=>{b([...y,{_id:Date.now(),open:!0}]),a({...i,conditions:[...i.conditions,[]]}),j(i.conditions.length-1),setTimeout(()=>j(!1),1e3)},className:Y.blockCardAdd,children:[`+`,E(`div`,{className:Y.cardAdd,children:n})]}),E(De,{open:C,onClose:()=>D(!1)}),E(Oe,{open:O,onClose:()=>k(!1)})]})},Z={menuRules:`_menuRules_1b2q2_1`,wizardButton:`_wizardButton_1b2q2_13`,switchesRenderWrapper:`_switchesRenderWrapper_1b2q2_21`,menuOff:`_menuOff_1b2q2_30`,menuTitle:`_menuTitle_1b2q2_36`,marginAuto:`_marginAuto_1b2q2_50`,inputWidth:`_inputWidth_1b2q2_55`,menuWrapper:`_menuWrapper_1b2q2_60`,hamburgerWrapper:`_hamburgerWrapper_1b2q2_68`,hamburgerOff:`_hamburgerOff_1b2q2_96`,nothingFound:`_nothingFound_1b2q2_104`,resetSearch:`_resetSearch_1b2q2_111`,controlPanel:`_controlPanel_1b2q2_123`,controlPanelAppBar:`_controlPanelAppBar_1b2q2_134`,addClassMenu:`_addClassMenu_1b2q2_148`,addClassBackground:`_addClassBackground_1b2q2_154`,addClassPosition:`_addClassPosition_1b2q2_158`};n();var Me=e=>{let{allProperties:t,allProperties:{acceptedBy:n,id:r},setUserRules:i,userRules:a,setTourStep:o,tourStep:s,isTourOpen:c,onTouchMove:l,isActive:u}=e;return E(Ee,{allProperties:t,id:t.id,isActive:u,setUserRules:i,userRules:a,children:E(fe,{onDoubleClick:()=>{c&&s===R.addScheduleByDoubleClick&&r===`TriggerScheduleBlock`&&o(R.openTagsMenu),c&&s===R.addActionPrintText&&r===`ActionPrintText`&&o(R.showJavascript);let e=Date.now(),t;switch(n){case`actions`:t=`then`;break;case`conditions`:t=a[n].length-1}let l=q(n,a,t),u={id:r,_id:e,acceptedBy:n};t===void 0?l.triggers.push({...u}):n===`actions`?l.actions[t].push({...u}):n===`conditions`&&l.conditions[t].push({...u}),i(l)},...e,...t,onTouchMove:l})})};n();var Ne=({addClass:e,setAllBlocks:n,allBlocks:r,userRules:s,onChangeBlocks:c,setTourStep:l,tourStep:d,isTourOpen:f,onStartWizard:m})=>{let{blocks:h,socket:g}=v(V),[b,x]=be(!1,`hamburgerOnOff`),[C,w]=be({text:``,type:`triggers`,index:0},`filterControlPanel`),D=(e=C.text,t=C.type)=>{if(!h)return;let r=[...h];r=r.filter(t=>{if(!e)return!0;let{name:n}=t.getStaticData();return n&&_.t(n).toLowerCase().includes(e.toLowerCase())}),r=r.filter(e=>t===e.getStaticData().acceptedBy),n(r)},O=(e,t)=>{f&&t===0&&d===R.selectTriggers&&l(R.addScheduleByDoubleClick),f&&t===2&&d===R.selectActions&&l(R.addActionPrintText),w({...C,index:t,type:[`triggers`,`conditions`,`actions`][t]}),D(C.text,[`triggers`,`conditions`,`actions`][t])},k=e=>({id:`scrollable-force-tab-${e}`,"aria-controls":`scrollable-force-tabpanel-${e}`});return T(()=>{D()},[h]),E(p,{mouseEvent:!1,touchEvent:`onTouchStart`,onClickAway:()=>x(!0),children:o(`div`,{className:y.clsx(Z.menuWrapper,e[1035]&&Z.addClassMenu),children:[E(`div`,{className:`${Z.hamburgerWrapper} ${b?Z.hamburgerOff:null}`,onClick:()=>x(!b),children:E(b?ae:ie,{})}),o(`div`,{className:`${y.clsx(Z.menuRules,e[1035]&&Z.addClassBackground,e[835]&&Z.addClassPosition)} ${b?Z.menuOff:null}`,children:[E(a,{className:Z.wizardButton,fullWidth:!0,size:`small`,variant:`outlined`,startIcon:E(re,{}),onClick:m,children:_.t(`Wizard`)}),E(`div`,{className:Z.controlPanel,children:E(t,{className:Z.controlPanelAppBar,position:`static`,children:o(u,{value:C.index,onChange:O,children:[E(i,{className:`blocks-triggers`,title:_.t(`Triggers`),icon:E(I,{iconName:`FlashOn`}),...k(0)}),E(i,{title:_.t(`Conditions`),className:`blocks-conditions`,icon:E(I,{iconName:`Help`}),...k(1)}),E(i,{title:_.t(`Actions`),className:`blocks-actions`,icon:E(I,{iconName:`PlayForWork`}),...k(2)})]})})}),E(`div`,{className:Z.switchesRenderWrapper,children:o(`span`,{children:[r.map(e=>{let{name:t,id:n,icon:r,adapter:i}=e.getStaticData();return E(S,{children:E(Me,{adapter:i,allProperties:e.getStaticData(),icon:r,id:n,isActive:!1,isTourOpen:f,name:t,onTouchMove:()=>x(!0),setTourStep:l,setUserRules:c,socket:g,tourStep:d,userRules:s})},n)}),!r.length&&o(`div`,{className:Z.nothingFound,children:[_.t(`Nothing found`),`...`,E(`div`,{className:Z.resetSearch,onClick:()=>{w({...C,text:``}),D(``)},children:_.t(`reset search`)})]})]})}),E(`div`,{className:y.clsx(Z.menuTitle,Z.marginAuto)}),E(B,{className:Z.inputWidth,fullWidth:!0,customValue:!0,value:C.text,size:`small`,autoComplete:`off`,label:_.t(`search`),variant:`outlined`,onChange:e=>{w({...C,text:e}),D(e)}})]})]})})},Q={bandTriggers:`_bandTriggers_91vrz_5`,bandConditions:`_bandConditions_91vrz_9`,bandActions:`_bandActions_91vrz_13`,paper:`_paper_91vrz_17`,title:`_title_91vrz_22`,close:`_close_91vrz_29`,content:`_content_91vrz_35`,stepper:`_stepper_91vrz_40`,step:`_step_91vrz_40`,hint:`_hint_91vrz_56`,warning:`_warning_91vrz_61`,blockCard:`_blockCard_91vrz_68`,blockBody:`_blockBody_91vrz_79`,remove:`_remove_91vrz_86`,notFound:`_notFound_91vrz_93`,chooser:`_chooser_91vrz_99`,choice:`_choice_91vrz_105`,choiceIcon:`_choiceIcon_91vrz_128`,choiceName:`_choiceName_91vrz_136`,addMore:`_addMore_91vrz_144`,summaryBand:`_summaryBand_91vrz_150`,summaryLabel:`_summaryLabel_91vrz_156`,preview:`_preview_91vrz_164`,actions:`_actions_91vrz_169`,spacer:`_spacer_91vrz_173`};n();var $=[`triggers`,`conditions`,`actions`],Pe={triggers:`Triggers`,conditions:`Conditions`,actions:`Actions`},Fe={triggers:`What should start the rule?`,conditions:`When should the rule run? This step is optional.`,actions:`What should happen?`},Ie={triggers:`when`,conditions:`and`,actions:`then`},Le={triggers:Q.bandTriggers,conditions:Q.bandConditions,actions:Q.bandActions},Re=()=>({triggers:[],conditions:[],actions:[]}),ze=({onCreate:t,onClose:n,hasRule:i,socket:s,theme:c,themeType:u,themeName:d})=>{let{blocks:p}=v(V),[m,x]=M(0),[S,C]=M(Re),[T,j]=M(null),P=k(0),ee=b(()=>{let e={triggers:[],conditions:[],actions:[]};return p==null||p.forEach(t=>{var n;let{acceptedBy:r}=t.getStaticData();(n=e[r])==null||n.push(t)}),e},[p]),F=b(()=>({triggers:S.triggers,conditions:S.conditions.length?[S.conditions]:[[]],justCheck:!1,actions:{then:S.actions,else:[]}}),[S]),L=(e,t)=>{P.current+=1,C(n=>({...n,[e]:[...n[e],{id:t,_id:P.current,acceptedBy:e}]})),j(null)},R=(e,t)=>C(n=>({...n,[e]:n[e].filter(e=>e._id!==t)})),z=(e,t,n)=>C(r=>({...r,[e]:r[e].map(r=>r._id===t?{...n,_id:t,id:r.id,acceptedBy:e}:r)})),te=(e,t,n)=>{let r=p==null?void 0:p.find(t=>t.getStaticData().id===e.id);return r?E(r,{_id:e._id,settings:e,acceptedBy:t,onChange:n?()=>{}:n=>z(t,e._id,n),socket:s,theme:c,themeType:u,themeName:d,enableSimulation:!1,userRules:F,onUpdate:!1,setOnUpdate:()=>{}}):E(`div`,{className:Q.notFound,children:_.t(`Block not found`)})},B=e=>E(`div`,{className:Q.chooser,children:ee[e].map(t=>{let{id:n,name:r,icon:i,adapter:a,title:c}=t.getStaticData();return o(`button`,{type:`button`,className:Q.choice,title:c?_.t(c):void 0,onClick:()=>L(e,n),children:[E(I,{iconName:i,adapter:a,socket:s,className:Q.choiceIcon}),E(`span`,{className:Q.choiceName,children:_.t(r)})]},n)})}),ne=(e,t)=>o(`div`,{className:Q.step,hidden:m!==t,children:[E(`div`,{className:Q.hint,children:_.t(Fe[e])}),S[e].map(t=>o(`div`,{className:y.clsx(Q.blockCard,Le[e]),children:[E(`div`,{className:Q.blockBody,children:te(t,e)}),E(w,{className:Q.remove,size:`small`,title:_.t(`Delete`),onClick:()=>R(e,t._id),children:E(oe,{fontSize:`small`})})]},t._id)),T===e||!S[e].length?B(e):E(a,{className:Q.addMore,startIcon:E(r,{}),onClick:()=>j(e),children:_.t(`Add another`)})]},e),H=()=>o(`div`,{className:Q.step,children:[$.map(e=>S[e].length?o(`div`,{className:Q.summaryBand,children:[E(`div`,{className:y.clsx(Q.summaryLabel,Le[e]),children:_.t(Ie[e])}),S[e].map(t=>E(`div`,{className:y.clsx(Q.blockCard,Q.preview,Le[e]),children:E(`div`,{className:Q.blockBody,children:te(t,e,!0)})},t._id))]},e):null),S.conditions.length?null:E(`div`,{className:Q.hint,children:_.t(`Without a condition the rule always runs`)}),i?E(`div`,{className:Q.warning,children:_.t(`The current rule will be replaced`)}):null]}),U=m===$.length,W=U||m===1||!!S[$[m]].length;return o(e,{open:!0,fullWidth:!0,maxWidth:`md`,onClose:n,classes:{paper:Q.paper},children:[o(D,{className:Q.title,children:[_.t(`Create a rule step by step`),E(w,{className:Q.close,size:`small`,title:_.t(`Close`),onClick:n,children:E(N,{})})]}),o(O,{className:Q.content,children:[o(f,{className:Q.stepper,activeStep:m,children:[$.map(e=>E(l,{children:E(A,{children:_.t(Pe[e])})},e)),E(l,{children:E(A,{children:_.t(`Summary`)})})]}),$.map(ne),U?H():null]}),o(g,{className:Q.actions,children:[E(a,{disabled:!m,startIcon:E(se,{}),onClick:()=>x(m-1),children:_.t(`Back`)}),E(`div`,{className:Q.spacer}),E(a,{onClick:n,children:_.t(`Cancel`)}),U?E(a,{variant:`contained`,color:`primary`,onClick:()=>{t(F),n()},children:_.t(i?`Replace rule`:`Create rule`)}):E(a,{variant:`contained`,color:`primary`,disabled:!W,endIcon:E(h,{}),onClick:()=>x(m+1),children:_.t(m===1&&!S.conditions.length?`Skip`:`Next`)})]})]})};n();var Be=[],Ve=({code:e,onChange:t,themeName:n,themeType:r,theme:i,setTourStep:s,tourStep:c,isTourOpen:l,command:u,scriptId:d,changed:f,running:p,newRuleId:h,onNewRuleHandled:g})=>{var y;let{blocks:b,socket:x,setOnUpdate:S,setOnDebugMessage:C,setEnableSimulation:w}=v(V),[D,O]=M([]),[A,j]=M(te(e)),[N,F]=M(``),[I,L]=M(!1),[R,z]=M(!1);T(()=>{let e,t,n=(n,r)=>{n===`${e}.alive`&&t!==(r==null?void 0:r.val)&&(t=!!(r!=null&&r.val),t&&e&&(x==null||x.sendTo(e.replace(/^system\.adapter\./,``),`rulesOn`,d)))},r=(r,i)=>{var a;if(x&&e!==(i==null||(a=i.common)==null?void 0:a.engine)){var o;e&&(x.unsubscribeState(`${e}.alive`,n),t&&x.sendTo(e.replace(/^system\.adapter\./,``),`rulesOn`,d)),e=i==null||(o=i.common)==null?void 0:o.engine,e&&e&&x.subscribeState(`${e}.alive`,n)}},i=(e,t)=>{if(t)try{let e=JSON.parse(t.val),n=Date.now();if(e.ruleId===d&&n-e.ts<1e3){let t=[...Be,{blockId:e.blockId,data:e.data,ts:e.ts}];t.length>200&&t.splice(0,t.length-200);for(let e=t.length-1;e>=0;e--)if(t[e].ts<n-5e3){t.splice(0,e);break}Be=t,C(t)}}catch{console.error(`Cannot parse: ${t.val}`)}};return x==null||x.getObject(d).then(t=>{var a;e=t==null||(a=t.common)==null?void 0:a.engine,x.subscribeObject(d,r),e&&(x.subscribeState(`${e}.alive`,n),x.subscribeState(`${e.replace(/^system\.adapter\./,``)}.debug.rules`,i))}),function(){x==null||x.unsubscribeObject(d,r),e&&(x==null||x.unsubscribeState(`${e}.alive`,n),t&&(x==null||x.sendTo(e.replace(/^system\.adapter\./,``),`rulesOff`,d)),x==null||x.unsubscribeState(`${e.replace(/^system\.adapter\./,``)}.debug.rules`,i))}},[]),T(()=>{w(!f&&p)},[f,p,w]),T(()=>{u&&(F(u),I||L(!0))},[u]),T(()=>{let t=te(e);JSON.stringify(t)!==JSON.stringify(A)&&(j(t),S(!0))},[e]),T(()=>{document.getElementsByTagName(`HTML`)[0].className=n||`blue`},[n]),T(()=>{h&&h===d&&(g(),z(!0))},[h,d,g]);let B=m(e=>{j(e),b&&t(ne(e,b))},[b,t]),H=k(null),[U,W]=M({835:!1,1035:!1});if(T(()=>{H.current&&(H.current.clientWidth<=1035&&W({835:!1,1035:!0}),H.current.clientWidth<=835&&W({1035:!0,835:!0}),H.current.clientWidth>1035&&W({835:!1,1035:!1}))},[((y=H.current)==null?void 0:y.clientWidth)||0]),!b||!x)return null;let ie=!A.triggers.length&&!A.actions.then.length&&!A.actions.else.length&&!A.conditions.some(e=>e.length);return o(`div`,{className:G.wrapperRules,ref:H,children:[E(ye,{allBlocks:D,socket:x}),I?N===`export`?E(P,{scriptId:d,themeType:r,onClose:()=>L(!1),text:JSON.stringify(A,null,2)}):E(ee,{themeType:r,onClose:e=>{L(!1),e&&B(JSON.parse(e))}}):null,R?E(ze,{hasRule:!ie,socket:x,theme:i,themeType:r,themeName:n,onCreate:B,onClose:()=>z(!1)}):null,o(`div`,{className:G.rootWrapper,children:[E(Ne,{setAllBlocks:O,allBlocks:D,userRules:A,onChangeBlocks:B,setTourStep:s,tourStep:c,addClass:U,isTourOpen:l,onStartWizard:()=>z(!0)}),o(`div`,{className:G.bands,children:[ie?o(`div`,{className:G.emptyRule,children:[E(`div`,{className:G.emptyRuleText,children:_.t(`Create a rule step by step`)}),E(a,{variant:`contained`,color:`primary`,startIcon:E(re,{}),onClick:()=>z(!0),children:_.t(`Wizard`)})]}):null,E(je,{socket:x,setUserRules:B,userRules:A,isTourOpen:l,setTourStep:s,tourStep:c,name:`${_.t(`when`)}...`,typeBlock:`triggers`,iconName:`FlashOn`,themeType:r,themeName:n,theme:i}),E(je,{socket:x,setUserRules:B,isTourOpen:l,setTourStep:s,tourStep:c,userRules:A,name:`...${_.t(`and`)}...`,typeBlock:`conditions`,iconName:`Help`,nameAdditionally:_.t(`or`),additionally:!0,themeType:r,themeName:n,theme:i}),E(je,{socket:x,setUserRules:B,isTourOpen:l,setTourStep:s,tourStep:c,userRules:A,name:`...${_.t(`then`)}`,typeBlock:`actions`,iconName:`PlayForWork`,nameAdditionally:_.t(`else`),additionally:!0,themeType:r,themeName:n,theme:i})]})]})]},`rulesEditor`)};export{Ve as default};
@@ -1 +0,0 @@
1
- ._wrapperRules_1fisr_1{background:linear-gradient(0deg, var(--backgroundGlobalColor), var(--backgroundGlobalColor)), url(./back-CXiqI7Po.jpg);background-repeat:no-repeat;background-size:cover;height:100%;display:flex}._rootWrapper_1fisr_9{width:100%;display:flex}._bands_1fisr_21{flex-direction:column;flex:1;min-width:0;display:flex;overflow:auto}._emptyRule_1fisr_34{border:1px dashed var(--lineColor);border-radius:8px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin:12px 12px 0 56px;padding:14px 16px;display:flex}._emptyRuleText_1fisr_46{color:var(--colorBlock);font-size:14px}@media screen and (max-width:835px){._rootWrapper_1fisr_9{flex-direction:column;height:auto;overflow:auto}}._switchesItem_10ls3_1{width:auto;max-width:200px;color:var(--colorInput);border:1px solid #fff0;align-items:center;margin:5px 0;padding:12px 0;transition:all .7s;display:flex}._switchesItem_10ls3_1 span{text-overflow:ellipsis;width:100%;color:var(--lineColorActive);white-space:nowrap;margin-left:15px;overflow:hidden}._switchesItem_10ls3_1:hover,._switchesItemActive_10ls3_28{border:1px solid var(--lineColor);color:var(--lineColorHover);background:var(--backgroundColor);cursor:pointer;border-radius:6px}._iconTheme_10ls3_36{margin-left:5px;width:30px!important;height:30px!important}._iconTheme_10ls3_36 *{color:var(--lineColorActive)!important}._cardStyle_vibq0_1{cursor:pointer;background:var(--backgroundCurrentItem);border-left:3px solid #0000;border-radius:6px;align-items:flex-start;width:auto;min-width:200px;height:fit-content;margin:6px 12px;padding:8px 34px 8px 10px;transition:border-color .2s;display:flex;position:relative;box-shadow:0 2px 1px -1px #0003,0 1px 1px #00000024,0 1px 3px #0000001f}._railTriggers_vibq0_25{border-left-color:var(--railTrigger)}._railConditions_vibq0_29{border-left-color:var(--railCondition)}._railActions_vibq0_33{border-left-color:var(--railAction)}._cardStyleActive_vibq0_37{z-index:100;width:300px}._controlMenu_vibq0_42{z-index:2;opacity:0;pointer-events:none;width:22px;transition:opacity .3s;display:flex;position:absolute;top:4px;right:4px}._cardStyle_vibq0_1:hover ._controlMenu_vibq0_42{opacity:1;pointer-events:auto}._closeBtn_vibq0_60{z-index:1;cursor:pointer;border-radius:20px;width:20px;height:20px;margin:5px auto;position:relative}._closeBtn_vibq0_60:before{content:"+";color:#f7060684;z-index:2;font-size:30px;line-height:1;transition:all .3s cubic-bezier(.77,0,.2,.85);position:absolute;top:-6px;left:2px;transform:rotate(45deg)}._closeBtn_vibq0_60:after{content:"";background:var(--backgroundColorHumburger);z-index:1;border-radius:100%;width:100%;height:100%;transition:all .3s cubic-bezier(.77,0,.2,.85);position:absolute;top:0;left:0;transform:scale(.01)}._closeBtn_vibq0_60:hover:after{transform:scale(1)}._closeBtn_vibq0_60:hover:before{color:#fff;transform:scale(.8)rotate(45deg)}._isDelete_vibq0_102{opacity:.8;background:#fff;height:0;min-height:0;margin:0 12px;padding:0 10px;transition:all .25s;overflow:hidden;box-shadow:0 0 10px #6accff}@media screen and (max-width:835px){._controlMenu_vibq0_42{opacity:1;pointer-events:auto}}._drag_mobile_vibq0_121{display:none}@media screen and (max-width:600px){._drag_mobile_vibq0_121{background:repeating-linear-gradient(180deg, var(--lineColorActive), var(--lineColorActive) 4px, var(--backgroundColorHumburger) 4px, var(--backgroundColorHumburger) 8px);border:1px solid var(--lineColorActive);cursor:pointer;border-radius:5px 0 0;width:30px;height:20px;display:flex;position:absolute;top:0;left:0}}._emptyBlockStyle_p7qtf_1{cursor:pointer;background:var(--backgroundEmptyBlock);border-radius:4px;align-items:center;width:auto;margin:10px 40px 10px 10px;display:flex}._emptyBlock_p7qtf_1{margin-top:10px;padding:10px;animation:.12s _marginTop_p7qtf_1}._selectOnChange_p7qtf_17{width:calc(100% - 42px);margin-left:12px;color:var(--lineColor)!important}._selectOnChangeHelp_p7qtf_23{color:var(--lineColor);vertical-align:middle;cursor:pointer}._selectOnChangeHelpIcon_p7qtf_29{color:var(--lineColor)}@keyframes _marginTop_p7qtf_1{0%{height:0;margin-top:70px;padding:0}to{margin-top:10px;padding:10px}}._emptyBlockNone_p7qtf_44{height:0;transition:height 20ms;animation:none}._bandTriggers_p7qtf_57{--bandColor:var(--railTrigger)}._bandConditions_p7qtf_61{--bandColor:var(--railCondition)}._bandActions_p7qtf_65{--bandColor:var(--railAction)}._mainBlockItemRules_p7qtf_69{overflow:initial;flex-direction:column;flex:none;padding-bottom:8px;padding-left:44px;display:flex;position:relative}._mainBlockItemRules_p7qtf_69:before{content:"";background:var(--bandColor);opacity:.06;pointer-events:none;position:absolute;inset:0}._mainBlockItemRules_p7qtf_69 ._nameBlockItems_p7qtf_93{color:var(--bandColor);letter-spacing:.08em;text-transform:uppercase;justify-content:flex-start;align-items:center;gap:6px;width:100%;height:fit-content;margin:12px 0 2px;padding-left:14px;font-size:12px;font-weight:600;display:flex}._mainBlockItemRules_p7qtf_69 ._nameBlockItems_p7qtf_93 svg{color:var(--bandColor);font-size:18px}._mainBlockItemRules_p7qtf_69+._mainBlockItemRules_p7qtf_69{border-top:1px solid var(--lineColor)}._contentBlockItem_p7qtf_119{flex-direction:column;min-height:64px;transition:height .3s,background .5s;display:flex}._wrapperMargin_p7qtf_127{flex-direction:column;max-width:900px;display:flex}._contentHeightOn_p7qtf_134{animation:.3s _heightBlock_p7qtf_1}@keyframes _heightBlock_p7qtf_1{0%{height:0}to{height:100%}}._contentHeightOff_p7qtf_146{height:0;animation:none;overflow:hidden}._cardAdd_p7qtf_152{text-align:center;width:100%;color:var(--lineColor);align-items:center;margin:0 10px;display:flex}._cardAdd_p7qtf_152:after,._cardAdd_p7qtf_152:before{content:"";border-bottom:1px solid;flex:1}._cardAdd_p7qtf_152:after{margin-left:.25em}._cardAdd_p7qtf_152:before{margin-right:.25em}._blockCardAdd_p7qtf_172{color:var(--colorAddBlock);cursor:pointer;align-items:center;padding:0 10px 6px;display:flex}._blockCardAdd_p7qtf_172 *{color:var(--colorAddBlock);opacity:.7}@media screen and (max-width:835px){._contentHeightOff_p7qtf_146{min-height:0;transition:min-height .3s}._contentHeightOn_p7qtf_134{transition:min-height .3s}}._drag_7xfhc_1{z-index:1;cursor:pointer;width:32px;height:22px;position:absolute;top:23px;left:12px}._root_7xfhc_11{position:relative}._menuRules_1b2q2_1{background:var(--backgroundColor);border-right:1px solid var(--lineColor);opacity:1;flex-direction:column;width:200px;padding:10px;transition:width .5s,opacity .2s,padding .5s,background .2s,border-right .2s;display:flex;overflow-x:hidden}._wizardButton_1b2q2_13{white-space:nowrap;flex:none;color:var(--lineColorActive)!important;border-color:var(--lineColor)!important;margin-bottom:8px!important}._switchesRenderWrapper_1b2q2_21{direction:rtl;overflow:hidden auto}._switchesRenderWrapper_1b2q2_21 span{direction:ltr}._menuOff_1b2q2_30{opacity:0;width:0;padding:0}._menuTitle_1b2q2_36{text-align:center;color:var(--lineColor);white-space:nowrap;align-items:center;transition:color .2s;display:flex}._menuTitle_1b2q2_36:after,._menuTitle_1b2q2_36:before{content:"";border-bottom:1px solid;flex:1}._marginAuto_1b2q2_50{margin-top:auto;margin-bottom:20px}._inputWidth_1b2q2_55{margin-top:0!important;margin-bottom:5px!important}._menuWrapper_1b2q2_60{height:100%;display:flex;position:relative}._hamburgerWrapper_1b2q2_68{background:var(--backgroundColorHumburger);width:24px;height:40px;color:var(--lineColorActive);border:1px solid var(--lineColor);cursor:pointer;z-index:10;border-radius:0 6px 6px 0;justify-content:center;align-items:center;transition:left .5s,border-radius .7s,width .7s,height .7s,background .2s,border .2s,color .2s;display:flex;position:absolute;top:4px;left:calc(100% - 1px)}._hamburgerWrapper_1b2q2_68 svg{font-size:20px}._hamburgerOff_1b2q2_96{border-radius:0 20px 20px 0;width:30px;height:34px}._nothingFound_1b2q2_104{color:var(--lineColor);margin:16px;font-size:21px;transition:color .2s}._resetSearch_1b2q2_111{color:var(--lineColor);cursor:pointer;margin:10px 0;font-weight:700;transition:color .3s,font-size .3s}._resetSearch_1b2q2_111:hover{color:var(--lineColorHover);font-size:22px}._controlPanel_1b2q2_123{align-items:center;width:200px;display:flex}._controlPanel_1b2q2_123 button{width:33.3333%;min-width:auto;color:var(--lineColor);transition:color .2s}._controlPanel_1b2q2_123 ._controlPanelAppBar_1b2q2_134{box-shadow:none;background:0 0}._controlPanel_1b2q2_123 [class*=Mui-selected]{color:var(--lineColorActive)!important}._controlPanel_1b2q2_123 [class*=MuiTabs-indicator]{background-color:var(--lineColorActive)}._controlPanel_1b2q2_123 [class*=Mui-disabled]{color:var(--disabledColor)!important}._addClassMenu_1b2q2_148{z-index:12;position:absolute;top:0}._addClassBackground_1b2q2_154{background:var(--backgroundMobile)}._addClassPosition_1b2q2_158{z-index:2222;position:sticky;top:0;left:0}@media screen and (max-width:1035px){._menuWrapper_1b2q2_60{z-index:12;position:absolute;top:0}._menuRules_1b2q2_1{background:var(--backgroundMobile)}}@media screen and (max-width:835px){._menuRules_1b2q2_1{z-index:2222;position:sticky;top:0;left:0}}._bandTriggers_91vrz_5{--bandColor:var(--railTrigger)}._bandConditions_91vrz_9{--bandColor:var(--railCondition)}._bandActions_91vrz_13{--bandColor:var(--railAction)}._paper_91vrz_17{min-height:70vh}._title_91vrz_22{align-items:center;gap:8px;padding-right:48px;display:flex}._close_91vrz_29{top:12px;right:12px;position:absolute!important}._content_91vrz_35{flex-direction:column;display:flex}._stepper_91vrz_40{background:0 0!important;padding:8px 0 20px!important}._step_91vrz_40{flex-direction:column;gap:10px;display:flex}._step_91vrz_40[hidden]{display:none}._hint_91vrz_56{color:var(--colorBlockHover);font-size:13px}._warning_91vrz_61{color:var(--debugColor);font-size:13px;font-weight:600}._blockCard_91vrz_68{border-left:3px solid var(--bandColor);background:var(--backgroundCurrentItem);border-radius:6px;align-items:flex-start;padding:8px 40px 8px 10px;display:flex;position:relative;box-shadow:0 2px 1px -1px #0003,0 1px 1px #00000024,0 1px 3px #0000001f}._blockBody_91vrz_79{flex:1;align-items:flex-start;min-width:0;display:flex}._remove_91vrz_86{top:4px;right:4px;color:var(--colorBlockHover)!important;position:absolute!important}._notFound_91vrz_93{color:var(--debugColor);font-size:13px}._chooser_91vrz_99{grid-template-columns:repeat(auto-fill,minmax(132px,1fr));gap:8px;display:grid}._choice_91vrz_105{border:1px solid var(--lineColor);min-height:84px;color:var(--colorBlock);font:inherit;text-align:center;cursor:pointer;background:0 0;border-radius:6px;flex-direction:column;justify-content:center;align-items:center;gap:6px;padding:12px 8px;font-size:13px;transition:border-color .2s,background .2s;display:flex}._choice_91vrz_105:hover{border-color:var(--lineColorActive);background:var(--backgroundCurrentItem)}._choiceIcon_91vrz_128{width:28px!important;height:28px!important}._choiceIcon_91vrz_128 *{color:var(--colorBlock)!important}._choiceName_91vrz_136{-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}._addMore_91vrz_144{align-self:flex-start;color:var(--lineColorActive)!important}._summaryBand_91vrz_150{flex-direction:column;gap:6px;display:flex}._summaryLabel_91vrz_156{color:var(--bandColor);letter-spacing:.08em;text-transform:uppercase;font-size:12px;font-weight:600}._preview_91vrz_164{pointer-events:none}._actions_91vrz_169{padding:12px 24px!important}._spacer_91vrz_173{flex:1}:root,:root.blue,:root.colored{--backgroundColor:#3052813b;--lineColor:#4caaf47d;--lineColorHover:#ccceff;--lineColorActive:#4caaf4;--backgroundColorHumburger:#436a93b8;--colorBlock:#02124b;--colorBlockHover:#02124b8c;--colorInput:#02124b;--backgroundBlock:#c9e7ffab;--railTrigger:#b4600f;--railCondition:#6b4fb5;--railAction:#0f7268;--backgroundGlobalColor:#fff0;--backgroundMobile:#041c35d4;--backgroundCurrentItem:#ffffff6b;--disabledColor:#210025cc;--backgroundEmptyBlock:#ffffff1f;--colorAddBlock:#fff;--debugColor:#c6511b}:root.dark{--backgroundColor:#1f1f1f3b;--lineColor:#f3f3f37d;--lineColorHover:#a0a0a0;--lineColorActive:#dedede;--backgroundColorHumburger:#3e3e3eb8;--colorBlock:#080808;--colorBlockHover:#0808088c;--colorInput:#ddd;--backgroundBlock:#c1c1c1ab;--railTrigger:#e0904f;--railCondition:#a894e4;--railAction:#4fb9aa;--backgroundGlobalColor:#1c1c1ced;--backgroundMobile:#040303eb;--backgroundCurrentItem:#ffffff6b;--disabledColor:#210025cc;--backgroundEmptyBlock:#ffffff1f;--colorAddBlock:#fff;--debugColor:#c6511b}:root.light{--backgroundColor:#3131313b;--lineColor:#0001257d;--lineColorHover:#a0a0a0;--lineColorActive:#07002f;--backgroundColorHumburger:#333542a3;--colorBlock:#090929;--colorBlockHover:#c7c6c68c;--colorInput:#090929;--backgroundBlock:#000;--railTrigger:#b4600f;--railCondition:#6b4fb5;--railAction:#0f7268;--backgroundGlobalColor:#ffffff40;--backgroundMobile:#b4b2c7bf;--backgroundCurrentItem:#ffffff6b;--disabledColor:#210025cc;--backgroundEmptyBlock:#ffffff1f;--colorAddBlock:#fff;--debugColor:#c6511b}:root.modernDark{--backgroundColor:#141c29cc;--lineColor:#8b97a8;--lineColorHover:#e8edf5;--lineColorActive:#4b9bfa;--backgroundColorHumburger:#1a2434f2;--colorBlock:#e8edf5;--colorBlockHover:#4b9bfa;--colorInput:#e8edf5;--backgroundBlock:#121a26f2;--railTrigger:#e0904f;--railCondition:#a894e4;--railAction:#4fb9aa;--backgroundGlobalColor:#0a121df0;--backgroundMobile:#141c29f7;--backgroundCurrentItem:#1a24348c;--disabledColor:#586576;--backgroundEmptyBlock:#ffffff0f;--colorAddBlock:#e8edf5;--debugColor:#e8a33d}:root.modernLight{--backgroundColor:#fffc;--lineColor:#5b6878;--lineColorHover:#101827;--lineColorActive:#0b62d6;--backgroundColorHumburger:#eef2f7f2;--colorBlock:#101827;--colorBlockHover:#0b62d6;--colorInput:#101827;--backgroundBlock:#fffffff2;--railTrigger:#b4600f;--railCondition:#6b4fb5;--railAction:#0f7268;--backgroundGlobalColor:#f4f7fbf0;--backgroundMobile:#fffffff7;--backgroundCurrentItem:#ffffff8c;--disabledColor:#98a4b3;--backgroundEmptyBlock:#1018270a;--colorAddBlock:#101827;--debugColor:#c77700}
@@ -1 +0,0 @@
1
- import{t as e}from"./AiChatPanel-C_WbKMGX.js";export{e as buildActionPrompt};
Binary file
@@ -1 +0,0 @@
1
- import{i as e,o as t,r as n,t as r}from"./blockly-DBw-ytY1.js";import{c as i,l as a}from"./index-07o_WKsX.js";import{f as o,i as s,o as c,r as l,u}from"./helpers-B0ByElPJ.js";function d(){let d=window.Blockly,f=d.Translate,p=window.getHelp;d.CustomBlocks=d.CustomBlocks||[],d.CustomBlocks.push(`Action`),d.Action={HUE:330,blocks:{}};let m=()=>new n(`FALSE`,function(e){this.getSourceBlock().updateShape_(l(e))}),h=()=>[[f(`http_timeout_ms`),`ms`],[f(`http_timeout_sec`),`sec`]],g=()=>[[f(`http_type_text`),`text`],[f(`http_type_arraybuffer`),`arraybuffer`]],_={mutationToDom:function(){let e=document.createElement(`mutation`);return e.setAttribute(`with_statement`,String(l(this.getFieldValue(`WITH_STATEMENT`)))),e},domToMutation:function(e){this.updateShape_(l(e.getAttribute(`with_statement`)))},updateShape_:function(e){u(this,e)}},v=(t,n,s,c,l,u)=>{r[t]={init:function(){this.appendDummyInput().appendField(n),this.appendDummyInput(`ATTR`).appendField(new e(s),`ATTR`),this.setInputsInline(!0),this.setOutput(!0),this.setColour(d.Action.HUE),this.setTooltip(f(`${t}_tooltip`)),u&&this.setHelpUrl(p(u))},onchange:function(){o(this,c,l)},FUNCTION_TYPES:c},a.forBlock[t]=function(e){return[e.getFieldValue(`ATTR`),i.ATOMIC]}};d.Action.blocks.exec=`<block type="exec"> <mutation with_statement="false"></mutation> <field name="WITH_STATEMENT">FALSE</field> <field name="LOG"></field> <value name="COMMAND"> <shadow type="text"> <field name="TEXT">pwd</field> </shadow> </value></block>`,r.exec={init:function(){this.appendDummyInput(`TEXT`).appendField(`» ${f(`exec`)}`),this.appendValueInput(`COMMAND`).appendField(f(`exec_command`)),this.appendDummyInput(`WITH_STATEMENT`).appendField(f(`with_results`)).appendField(m(),`WITH_STATEMENT`),this.appendDummyInput(`LOG`).appendField(f(`loglevel`)).appendField(new e(s()),`LOG`),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(d.Action.HUE),this.setTooltip(f(`exec_tooltip`)),this.setHelpUrl(p(`exec_help`))},..._},a.forBlock.exec=function(e){let t=a.valueToCode(e,`COMMAND`,i.ATOMIC),n=e.getFieldValue(`LOG`),r=``;if(n&&(r=`console.${n}('exec: ' + ${t});\n`),l(e.getFieldValue(`WITH_STATEMENT`))){let n=a.statementToCode(e,`STATEMENT`);if(n)return`exec(${t}, async (error, result, stderr) => {\n${n}});\n${r}`}return`exec(${t});\n${r}`},d.Action.blocks.exec_result=`<sep gap="5"></sep><block type="exec_result"> <field name="ATTR">result</field></block>`,v(`exec_result`,`»`,[[f(`exec_result_result`),`result`],[f(`exec_result_stderr`),`stderr`],[f(`exec_result_error`),`error`]],[`exec`],`exec_result_warning`,`exec_help`),d.Action.blocks.http_get=`<block type="http_get"> <field name="TIMEOUT">2000</field> <field name="UNIT">ms</field> <field name="TYPE">text</field> <value name="URL"> <shadow type="text"> <field name="TEXT">http://</field> </shadow> </value></block>`,r.http_get={init:function(){this.appendValueInput(`URL`).appendField(`🌐 ${f(`http_get`)}`),this.appendDummyInput().appendField(f(`http_timeout`)).appendField(new t(`2000`),`TIMEOUT`).appendField(new e(h()),`UNIT`),this.appendDummyInput(`TYPE`).appendField(f(`http_type`)).appendField(new e(g()),`TYPE`),this.appendStatementInput(`STATEMENT`).setCheck(null),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(d.Action.HUE),this.setTooltip(f(`http_get_tooltip`)),this.setHelpUrl(p(`http_get_help`))}},a.forBlock.http_get=function(e){let t=a.valueToCode(e,`URL`,i.ATOMIC),n=e.getFieldValue(`UNIT`),r=e.getFieldValue(`TIMEOUT`);Number.isNaN(r)&&(r=2e3),n===`sec`&&(r*=1e3);let o=e.getFieldValue(`TYPE`)||`text`,s=a.statementToCode(e,`STATEMENT`);return`httpGet(${t}, { timeout: ${r}, responseType: '${o}' }, async (err, response) => {\n${s}});\n`},d.Action.blocks.http_post=`<sep gap="5"></sep><block type="http_post"> <field name="TIMEOUT">2000</field> <field name="UNIT">ms</field> <field name="TYPE">text</field> <value name="URL"> <shadow type="text"> <field name="TEXT">http://</field> </shadow> </value> <value name="DATA"> <shadow type="logic_null"></shadow> </value></block>`,r.http_post={init:function(){this.appendValueInput(`URL`).appendField(`🌐 ${f(`http_post`)}`),this.appendDummyInput().appendField(f(`http_timeout`)).appendField(new t(`2000`),`TIMEOUT`).appendField(new e(h()),`UNIT`),this.appendDummyInput(`TYPE`).appendField(f(`http_type`)).appendField(new e(g()),`TYPE`),this.appendValueInput(`DATA`).appendField(f(`http_post_data`)),this.appendStatementInput(`STATEMENT`).setCheck(null),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(d.Action.HUE),this.setTooltip(f(`http_post_tooltip`)),this.setHelpUrl(p(`http_post_help`))}},a.forBlock.http_post=function(e){let t=a.valueToCode(e,`URL`,i.ATOMIC),n=e.getFieldValue(`UNIT`),r=e.getFieldValue(`TIMEOUT`);isNaN(r)&&(r=2e3),n===`sec`&&(r*=1e3);let o=e.getFieldValue(`TYPE`)||`text`,s=a.valueToCode(e,`DATA`,i.ATOMIC)||`null`,c=a.statementToCode(e,`STATEMENT`);return`httpPost(${t}, ${s}, { timeout: ${r}, responseType: '${o}' }, async (err, response) => {\n${c}});\n`},d.Action.blocks.http_response=`<sep gap="5"></sep><block type="http_response"> <field name="ATTR">response.data</field></block>`,v(`http_response`,`🌐`,[[f(`http_response_data`),`response.data`],[f(`http_response_statuscode`),`response.statusCode`],[f(`http_response_responsetime`),`response.responseTime`],[f(`http_response_headers`),`response.headers`],[f(`http_response_error`),`err`]],[`http_get`,`http_post`],`http_response_warning`,`http_response_help`),d.Action.blocks.http_response_tofile=`<sep gap="5"></sep><block type="http_response_tofile"> <value name="FILENAME"> <shadow type="text"> <field name="TEXT">temp.jpg</field> </shadow> </value></block>`,r.http_response_tofile={init:function(){this.appendDummyInput().appendField(`🌐 ${f(`http_response_tofile`)}`),this.appendValueInput(`FILENAME`).appendField(f(`http_response_tofile_filename`)).setCheck(null),this.setInputsInline(!1),this.setOutput(!0,`String`),this.setColour(d.Action.HUE),this.setTooltip(f(`http_response_tofile_tooltip`)),this.setHelpUrl(p(`http_response_tofile_help`))},onchange:function(){o(this,[`http_get`,`http_post`],`http_response_warning`)},FUNCTION_TYPES:[`http_get`,`http_post`]},a.forBlock.http_response_tofile=function(e){return[`createTempFile(${a.valueToCode(e,`FILENAME`,i.ATOMIC)}, response.data)`,i.ATOMIC]};let y=()=>`${a.prefixLines(`if (err) {`,a.INDENT)}\n${a.prefixLines(`console.error(err);`,a.INDENT+a.INDENT)}\n${a.prefixLines(`}`,a.INDENT)}\n`;d.Action.blocks.file_write=`<block type="file_write"> <value name="OID"> <shadow type="field_oid_meta"> <field name="oid">0_userdata.0</field> </shadow> </value> <value name="FILE"> <shadow type="text"> <field name="TEXT">demo.json</field> </shadow> </value></block>`,r.file_write={init:function(){this.appendValueInput(`OID`).appendField(`📁 ${f(`file_write`)}`),this.appendValueInput(`FILE`).appendField(f(`file_write_filename`)).setCheck(null),this.appendValueInput(`DATA`).appendField(f(`file_write_data`)),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(d.Action.HUE),this.setTooltip(f(`file_write_tooltip`)),this.setHelpUrl(p(`file_write_help`))}},a.forBlock.file_write=function(e){let t=a.valueToCode(e,`OID`,i.ATOMIC),n=a.valueToCode(e,`FILE`,i.ATOMIC),r=a.valueToCode(e,`DATA`,i.ATOMIC),o=c(t);return`writeFile(${t}${o?` /* ${o} */`:``}, String(${n}), ${r||`null`}, (err) => {\n${y()}});\n`},d.Action.blocks.file_read=`<sep gap="5"></sep><block type="file_read"> <value name="OID"> <shadow type="field_oid_meta"> <field name="oid">0_userdata.0</field> </shadow> </value> <value name="FILE"> <shadow type="text"> <field name="TEXT">demo.json</field> </shadow> </value></block>`,r.file_read={init:function(){this.appendValueInput(`OID`).appendField(`📁 ${f(`file_read`)}`),this.appendValueInput(`FILE`).appendField(f(`file_read_filename`)).setCheck(null),this.appendStatementInput(`STATEMENT`).setCheck(null),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(d.Action.HUE),this.setTooltip(f(`file_read_tooltip`)),this.setHelpUrl(p(`file_read_help`))}},a.forBlock.file_read=function(e){let t=a.valueToCode(e,`OID`,i.ATOMIC),n=a.valueToCode(e,`FILE`,i.ATOMIC),r=a.statementToCode(e,`STATEMENT`),o=c(t);return`readFile(${t}${o?` /* ${o} */`:``}, String(${n}), (err, data, mimeType) => {\n${y()}${r}});\n`},d.Action.blocks.file_data=`<sep gap="5"></sep><block type="file_data"> <field name="ATTR">data</field></block>`,v(`file_data`,`📁`,[[f(`file_data_data`),`data`],[f(`file_data_mimeType`),`mimeType`]],[`file_read`],`file_data_warning`),d.Action.blocks.request=`<block type="request"> <mutation with_statement="false"></mutation> <field name="WITH_STATEMENT">FALSE</field> <field name="LOG"></field> <value name="URL"> <shadow type="text"> <field name="TEXT">http://</field> </shadow> </value></block>`,r.request={init:function(){this.appendDummyInput(`TEXT`).appendField(f(`request`)),this.appendValueInput(`URL`).appendField(f(`request_url`)),this.appendDummyInput(`WITH_STATEMENT`).appendField(f(`with_results`)).appendField(m(),`WITH_STATEMENT`),this.appendDummyInput(`LOG`).appendField(f(`loglevel`)).appendField(new e(s()),`LOG`),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(d.Action.HUE),this.setTooltip(f(`request_tooltip`)),this.setHelpUrl(f(`request_help`))},..._},a.forBlock.request=function(e){let t=a.valueToCode(e,`URL`,i.ATOMIC),n=e.getFieldValue(`LOG`),r=``;if(n&&(r=`console.${n}('request: ' + ${t});\n`),l(e.getFieldValue(`WITH_STATEMENT`))){let n=a.statementToCode(e,`STATEMENT`);if(n)return`try {\n require("request")(${t}, async (error, response, result) => {\n ${n} }).on("error", (e) => { console.error(e); });\n} catch (e) { console.error(e); }\n${r}`}return`try {\n require("request")(${t}).on("error", (e) => { console.error(e); });\n} catch (e) { console.error(e); }\n${r}`}}export{d as install};
@@ -1 +0,0 @@
1
- import{f as e,o as t,p as n,t as r}from"./blockly-DBw-ytY1.js";import{c as i,l as a}from"./index-07o_WKsX.js";import{c as o,s}from"./helpers-B0ByElPJ.js";function c(){let c=window.Blockly,l=c.Translate;c.CustomBlocks=c.CustomBlocks||[],c.CustomBlocks.push(`Object`),c.Object={HUE:40,blocks:{}},c.Object.blocks.object_new=`<block type="object_new"></block>`,r.object_new_container={init:function(){this.setColour(c.Object.HUE),this.appendDummyInput().appendField(l(`object_new_attributes`)),this.appendStatementInput(`STACK`),this.setTooltip(l(`object_new_tooltip`)),this.contextMenu=!1}},r.object_new_mutator={init:function(){this.setColour(c.Object.HUE),this.appendDummyInput(`ATTR`).appendField(l(`object_new_attribute`)).appendField(new t(`attribute1`),`ATTR`),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setTooltip(l(`object_new_tooltip`)),this.contextMenu=!1}},r.object_new={init:function(){this.appendDummyInput(`NAME`).appendField(l(`object_new`)),this.attributes_=[],this.itemCount_=0,this.setMutator(new e.MutatorIcon([`object_new_mutator`],this)),this.setInputsInline(!1),this.setOutput(!0),this.setColour(c.Object.HUE),this.setTooltip(l(`object_new_tooltip`))},mutationToDom:function(){let e=document.createElement(`mutation`);for(let t=0;t<this.attributes_.length;t++){let n=document.createElement(`attribute`);n.setAttribute(`id`,`ATTR_${t}`),n.setAttribute(`name`,this.attributes_[t]),e.appendChild(n)}return e},domToMutation:function(e){this.attributes_=[];for(let t=0,n;n=e.childNodes[t];t++)n.nodeName.toLowerCase()===`attribute`&&this.attributes_.push(n.getAttribute(`name`));this.itemCount_=this.attributes_.length,this.updateShape_()},decompose:function(e){var t;let n=e.newBlock(`object_new_container`);n.initSvg();let r=(t=n.getInput(`STACK`))==null?void 0:t.connection;for(let t=0;t<this.itemCount_;t++){let n=e.newBlock(`object_new_mutator`);n.setFieldValue(this.attributes_[t],`ATTR`),n.initSvg(),r.connect(n.previousConnection),r=n.nextConnection}return n},compose:function(e){this.attributes_=[];let t=e.getInputTargetBlock(`STACK`),n=[];for(;t;){let e=t.getFieldValue(`ATTR`);this.attributes_.push(e),n.push(t.valueConnection_),t=t.nextConnection&&t.nextConnection.targetBlock()}for(let e=0;e<this.itemCount_;e++){var r;let t=(r=this.getInput(`ATTR_${e}`))==null||(r=r.connection)==null?void 0:r.targetConnection;t&&!n.includes(t)&&t.disconnect()}this.itemCount_=n.length,this.itemCount_<0&&(this.itemCount_=0),this.updateShape_();for(let e=0;e<this.itemCount_;e++)o(n[e],this,`ATTR_${e}`)},saveConnections:function(e){let t=e.getInputTargetBlock(`STACK`),n=0;for(;t;){var r,i;let e=this.getInput(`ATTR_${n}`);t.valueConnection_=e==null||(r=e.connection)==null?void 0:r.targetConnection,n++,t=(i=t.nextConnection)==null?void 0:i.targetBlock()}},updateShape_:function(){let e=this.workspace;for(let t=0;t<this.itemCount_;t++){let r=this.getInput(`ATTR_${t}`);r?r.fieldRow[0].setValue(this.attributes_[t]):(r=this.appendValueInput(`ATTR_${t}`).setAlign(n.Align.RIGHT),r.appendField(this.attributes_[t])),setTimeout(t=>{var n;if(!((n=t.connection)!=null&&n.isConnected())){let n=e.newBlock(`text`);n.setShadow(!0),n.initSvg(),n.render(),n.outputConnection.connect(t.connection)}},100,r)}for(let e=this.itemCount_;this.getInput(`ATTR_${e}`);e++)this.removeInput(`ATTR_${e}`)}},a.forBlock.object_new=function(e){let t=e,n=[];for(let r=0;r<t.itemCount_;r++){let o=a.valueToCode(e,`ATTR_${r}`,i.COMMA);o&&n.push(`${s(t.attributes_[r])}: ${o}`)}return[`{ ${n.length?n.join(`, `):``} }`,i.ATOMIC]},c.Object.blocks.object_set_attr=`<block type="object_set_attr"> <field name="ATTR">attribute1</field> <value name="VALUE"> <shadow type="text"> <field name="TEXT">value</field> </shadow> </value></block>`,r.object_set_attr={init:function(){this.appendDummyInput(`ATTR`).appendField(l(`object_set_attr`)).appendField(new t(`attribute1`),`ATTR`),this.appendValueInput(`OBJECT`).appendField(l(`object_set_attr_object`)),this.appendValueInput(`VALUE`).setCheck(null).appendField(l(`object_set_attr_value`)),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(c.Object.HUE),this.setTooltip(l(`object_set_attr_tooltip`))}},a.forBlock.object_set_attr=function(e){let t=e.getFieldValue(`ATTR`),n=a.valueToCode(e,`VALUE`,i.ATOMIC),r=a.valueToCode(e,`OBJECT`,i.ATOMIC);return r||=`{}`,`((obj) => { if (typeof obj === 'object') { obj[${s(t)}] = ${n}; } })(${r});\n`},c.Object.blocks.object_del_attr=`<block type="object_del_attr"> <field name="ATTR">attribute1</field></block>`,r.object_del_attr={init:function(){this.appendDummyInput(`ATTR`).appendField(l(`object_del_attr`)).appendField(new t(`attribute1`),`ATTR`),this.appendValueInput(`OBJECT`).appendField(l(`object_del_attr_object`)),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(c.Object.HUE),this.setTooltip(l(`object_del_attr_tooltip`))}},a.forBlock.object_del_attr=function(e){let t=e.getFieldValue(`ATTR`),n=a.valueToCode(e,`OBJECT`,i.ATOMIC);return n||=`{}`,`((obj) => { if (typeof obj === 'object') { delete obj[${s(t)}]; } })(${n});\n`},c.Object.blocks.object_has_attr=`<block type="object_has_attr"> <field name="ATTR">attribute1</field> <value name="OBJECT"> <shadow type="get_object"> <field name="OID">Object ID</field> </shadow> </value></block>`,r.object_has_attr={init:function(){this.appendValueInput(`OBJECT`).appendField(l(`object_has_attr`)),this.appendDummyInput(`ATTR`).appendField(l(`object_has_attr_attr`)).appendField(new t(`attribute1`),`ATTR`),this.setInputsInline(!0),this.setOutput(!0,`Boolean`),this.setColour(c.Object.HUE),this.setTooltip(l(`object_has_attr_tooltip`))}},a.forBlock.object_has_attr=function(e){let t=a.valueToCode(e,`OBJECT`,i.ATOMIC),n=e.getFieldValue(`ATTR`);return[`Object.prototype.hasOwnProperty.call(${t}, ${s(n)})`,i.ATOMIC]},c.Object.blocks.object_keys=`<block type="object_keys"> <value name="OBJECT"> <shadow type="get_object"> <field name="OID">Object ID</field> </shadow> </value></block>`,r.object_keys={init:function(){this.appendValueInput(`OBJECT`).appendField(l(`object_keys`)),this.setInputsInline(!0),this.setOutput(!0,`Array`),this.setColour(c.Object.HUE),this.setTooltip(l(`object_keys_tooltip`))}},a.forBlock.object_keys=function(e){let t=a.valueToCode(e,`OBJECT`,i.ATOMIC);return t||=`{}`,[`Object.keys(${t})`,i.ATOMIC]}}export{c as install};
@@ -1 +0,0 @@
1
- import{i as e,o as t,r as n,s as r,t as i}from"./blockly-DBw-ytY1.js";import{c as a,l as o}from"./index-07o_WKsX.js";import{a as s,l as c,r as l,s as u}from"./helpers-B0ByElPJ.js";import{FieldOID as d}from"./field_oid-KfoBnEM9.js";function f(){let f=window.Blockly,p=f.Translate,m=window.getHelp;f.CustomBlocks=f.CustomBlocks||[],f.CustomBlocks.push(`System`),f.System={HUE:210,blocks:{},WARNING_PARENTS:[`on_ext`]};let h=e=>[[p(`get_value_val`),`val`],[p(`get_value_ack`),`ack`],[p(`get_value_ts`),`ts`],[p(`get_value_lc`),`lc`],[p(`get_value_q`),`q`],[p(`get_value_comment`),`c`],[p(`get_value_from`),`from`],...e?[[p(`get_value_user`),`user`]]:[],[p(`get_common_name`),`common.name`],[p(`get_common_desc`),`common.desc`],[p(`get_common_unit`),`common.unit`],[p(`get_common_role`),`common.role`],[p(`get_common_state_type`),`common.type`],[p(`get_common_read`),`common.read`],[p(`get_common_write`),`common.write`]],g=e=>e===`type`||e.startsWith(`common.`),_=function(){let e=this.getParent();e&&f.System.WARNING_PARENTS.includes(e.type)?this.setWarningText(p(`false_connection_trigger_warning`),this.id):this.setWarningText(null,this.id)},v=r=>({mutationToDom:function(){let e=document.createElement(`mutation`);return e.setAttribute(`delay_input`,String(l(this.getFieldValue(`WITH_DELAY`)))),e},domToMutation:function(e){this.updateShape_(l(e.getAttribute(`delay_input`)))},updateShape_:function(i){i?this.getInput(`DELAY`)||this.appendDummyInput(`DELAY`).appendField(` `).appendField(new t(`1000`),`DELAY_MS`).appendField(new e([[p(`control_ms`),`ms`],[p(`control_sec`),`sec`],[p(`control_min`),`min`]]),`UNIT`):this.getInput(`DELAY`)&&this.removeInput(`DELAY`),i?this.getInput(`CLEAR_RUNNING_INPUT`)||this.appendDummyInput(`CLEAR_RUNNING_INPUT`).appendField(p(r)).appendField(new n,`CLEAR_RUNNING`):this.getInput(`CLEAR_RUNNING_INPUT`)&&this.removeInput(`CLEAR_RUNNING_INPUT`)}}),y=()=>new n(`FALSE`,function(e){this.getSourceBlock().updateShape_(l(e))}),b=e=>c(e.getFieldValue(`DELAY_MS`),e.getFieldValue(`UNIT`));f.System.blocks.global_var=`<block type="global_var"> <field name="VAR">scriptName</field></block>`,i.global_var={init:function(){this.appendDummyInput(`VAR`).appendField(new e([[p(`global_var_scriptname`),`scriptName`],[p(`global_var_defaultdatadir`),`defaultDataDir`],[p(`global_var_verbose`),`verbose`]]),`VAR`),this.setInputsInline(!0),this.setOutput(!0),this.setColour(f.System.HUE),this.setTooltip(p(`global_var_tooltip`)),this.setHelpUrl(m(`global_var`))}},o.forBlock.global_var=function(e){return[e.getFieldValue(`VAR`),a.ATOMIC]},f.System.blocks.secret=`<block type="secret"></block>`;let x=()=>{var e;return((e=window.main)==null?void 0:e.secrets)||[]},S=()=>x().length?x().map(e=>[e.name,e.name]):[[p(`secret_no_secrets`),``]],C=function(){var e,t;let n=(e=this.getSourceBlock())==null?void 0:e.getFieldValue(`NAME`),r=(t=x().find(e=>e.name===n))==null?void 0:t.fields;return(r!=null&&r.length?r:[`key`,`login`,`password`]).map(e=>[e,e])};i.secret={init:function(){let n=this.appendDummyInput(`SECRET`).appendField(p(`secret`));x().length?n.appendField(new e(S),`NAME`):n.appendField(new t(`CameraPassword`),`NAME`),n.appendField(p(`secret_attr`)).appendField(new e(C),`ATTR`),this.setInputsInline(!0),this.setOutput(!0),this.setColour(f.System.HUE),this.setTooltip(p(`secret_tooltip`)),this.setHelpUrl(m(`secret_help`))}},o.forBlock.secret=function(e){let t=e.getFieldValue(`NAME`),n=e.getFieldValue(`ATTR`),r=/^[A-Za-z_$][A-Za-z0-9_$]*$/.test(n)?`.${n}`:`[${u(n)}]`;return[`SECRETS[${u(t)}]?${r}`,a.ATOMIC]},f.System.blocks.debug=`<block type="debug"> <field name="Severity">info</field> <value name="TEXT"> <shadow type="text"> <field name="TEXT">test</field> </shadow> </value></block>`,i.debug={init:function(){this.appendValueInput(`TEXT`).setCheck(null).appendField(p(`debug`)),this.appendDummyInput(`Severity`).appendField(new e([[p(`loglevel_debug`),`debug`],[p(`loglevel_info`),`info`],[p(`loglevel_warn`),`warn`],[p(`loglevel_error`),`error`]]),`Severity`),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(f.System.HUE),this.setTooltip(p(`debug_tooltip`)),this.setHelpUrl(m(`debug_help`))}},o.forBlock.debug=function(e){let t=o.valueToCode(e,`TEXT`,a.ATOMIC);return`console.${e.getFieldValue(`Severity`)}(${t});\n`},f.System.blocks.comment=`<block type="comment"></block>`,i.comment={init:function(){this.appendDummyInput(`COMMENT`).appendField(new f.FieldMultilineInput(p(`comment`)),`COMMENT`),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(`#FFFF00`),this.setTooltip(p(`comment_tooltip`))}},o.forBlock.comment=function(e){return`${o.prefixLines(e.getFieldValue(`COMMENT`),`// `)}\n`},f.System.blocks.control=`<block type="control"> <mutation delay_input="false"></mutation> <field name="WITH_DELAY">FALSE</field></block>`,i.control={init:function(){this.appendDummyInput().appendField(p(`control`)),this.appendDummyInput(`OID`).appendField(new d(p(`select_id`),`state`),`OID`),this.appendValueInput(`VALUE`).setCheck(null).appendField(p(`control_with`)),this.appendDummyInput(`WITH_DELAY`).appendField(p(`control_delay`)).appendField(y(),`WITH_DELAY`),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(f.System.HUE),this.setTooltip(p(`control_tooltip`)),this.setHelpUrl(m(`control_help`))},...v(`control_clear_running`)},o.forBlock.control=function(e){let t=e.getFieldValue(`OID`);r.VARIABLES_DEFAULT_NAME=`value`;let n=b(e),i=l(e.getFieldValue(`CLEAR_RUNNING`)),c=o.valueToCode(e,`VALUE`,a.ATOMIC),u=s(t),d=u?` /* ${u} */`:``;return l(e.getFieldValue(`WITH_DELAY`))?`setStateDelayed('${t}'${d}, ${c}, ${n}, ${i});\n`:`setState('${t}'${d}, ${c});\n`},f.System.blocks.toggle=`<sep gap="5"></sep><block type="toggle"> <mutation delay_input="false"></mutation> <field name="WITH_DELAY">FALSE</field></block>`,i.toggle={init:function(){this.appendDummyInput().appendField(p(`toggle`)),this.appendDummyInput(`OID`).appendField(new d(p(`select_id`),`state`),`OID`),this.appendDummyInput(`WITH_DELAY`).appendField(p(`toggle_delay`)).appendField(y(),`WITH_DELAY`),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(f.System.HUE),this.setTooltip(p(`toggle_tooltip`)),this.setHelpUrl(m(`toggle_help`))},...v(`toggle_clear_running`)},o.forBlock.toggle=function(e){var t;let n=e.getFieldValue(`OID`);r.VARIABLES_DEFAULT_NAME=`value`;let i=b(e),a=(t=window.main)==null||(t=t.objects[n])==null?void 0:t.common,c=(a==null?void 0:a.type)||`boolean`,u=s(n),d=u?` /* ${u} */`:``,f=l(e.getFieldValue(`CLEAR_RUNNING`)),p;if(c===`number`){let e=a.max===void 0?100:parseFloat(a.max),t=a.min===void 0?0:parseFloat(a.min);p=`setState('${n}'${d}, state ? (state.val === ${t} ? ${e} : ${t}) : ${e});`}else p=`setState('${n}'${d}, state ? !state.val : true);`;let m=l(e.getFieldValue(`WITH_DELAY`))?`setStateDelayed('${n}'${d}, state ? !state.val : true, ${i}, ${f});`:p;return`getState('${n}', (err, state) => {\n${o.prefixLines(m,o.INDENT)}\n});\n`},f.System.blocks.update=`<sep gap="5"></sep><block type="update"> <mutation delay_input="false"></mutation> <field name="WITH_DELAY">FALSE</field></block>`,i.update={init:function(){this.appendDummyInput().appendField(p(`update`)),this.appendDummyInput(`OID`).appendField(new d(p(`select_id`),`state`),`OID`),this.appendValueInput(`VALUE`).setCheck(null).appendField(p(`update_with`)),this.appendDummyInput(`WITH_DELAY`).appendField(p(`update_delay`)).appendField(y(),`WITH_DELAY`),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(f.System.HUE),this.setTooltip(p(`update_tooltip`)),this.setHelpUrl(m(`update_help`))},...v(`control_clear_running`)},o.forBlock.update=function(e){let t=e.getFieldValue(`OID`);r.VARIABLES_DEFAULT_NAME=`value`;let n=o.valueToCode(e,`VALUE`,a.ATOMIC),i=b(e),c=l(e.getFieldValue(`CLEAR_RUNNING`)),u=s(t),d=u?` /* ${u} */`:``;return l(e.getFieldValue(`WITH_DELAY`))?`setStateDelayed('${t}'${d}, ${n}, true, ${i}, ${c});\n`:`setState('${t}'${d}, ${n}, true);\n`},f.System.blocks.control_ex=`<sep gap="5"></sep><block type="control_ex"> <field name="TYPE">false</field> <field name="CLEAR_RUNNING">FALSE</field> <value name="OID"> <shadow type="field_oid"> </shadow> </value> <value name="VALUE"> <shadow type="logic_boolean"> <field name="BOOL">TRUE</field> </shadow> </value> <value name="DELAY_MS"> <shadow type="math_number"> <field name="NUM">0</field> </shadow> </value> <value name="EXPIRE"> <shadow type="math_number"> <field name="NUM">0</field> </shadow> </value></block>`,i.control_ex={init:function(){this.appendDummyInput().appendField(p(`control_ex`)),this.appendValueInput(`OID`).setCheck(`String`).appendField(p(`field_oid_OID`)),this.appendDummyInput(`TYPE`).appendField(new e([[p(`control_ex_control`),`false`],[p(`control_ex_update`),`true`]]),`TYPE`),this.appendValueInput(`VALUE`).setCheck(null).appendField(p(`control_ex_value`)),this.appendValueInput(`DELAY_MS`).setCheck(`Number`).appendField(p(`control_ex_delay`)),this.appendValueInput(`EXPIRE`).setCheck(`Number`).appendField(p(`control_ex_expire`)),this.appendDummyInput(`CLEAR_RUNNING_INPUT`).appendField(p(`control_ex_clear_running`)).appendField(new n,`CLEAR_RUNNING`),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(f.System.HUE),this.setTooltip(p(`control_tooltip`)),this.setHelpUrl(m(`control_help`))}},o.forBlock.control_ex=function(e){let t=o.valueToCode(e,`OID`,a.ATOMIC),n=o.valueToCode(e,`VALUE`,a.ATOMIC),r=o.valueToCode(e,`DELAY_MS`,a.ATOMIC),i=o.valueToCode(e,`EXPIRE`,a.ATOMIC),s=l(e.getFieldValue(`CLEAR_RUNNING`));return`setStateDelayed(${t}, { val: ${n}, ack: ${l(e.getFieldValue(`TYPE`))}${i?`, expire: ${i}`:``} }, parseInt(((${r}) || '').toString(), 10), ${s});\n`},f.System.blocks.create=`<block type="create"> <field name="NAME">0_userdata.0.example</field></block>`,i.create={init:function(){this.appendDummyInput().appendField(p(`create`)),this.appendDummyInput(`NAME`).appendField(p(`create_oid`)).appendField(new t(`0_userdata.0.example`),`NAME`);let e=this.appendValueInput(`VALUE`).setCheck(null).appendField(p(`create_init`));e.connection&&(e.connection._optional=!0);let n=this.appendValueInput(`COMMON`).setCheck(null).appendField(p(`create_common`));n.connection&&(n.connection._optional=!0),this.appendStatementInput(`STATEMENT`).setCheck(null),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(f.System.HUE),this.setTooltip(p(`create_tooltip`)),this.setHelpUrl(m(`create_help`))}},o.forBlock.create=function(e){let t=e.getFieldValue(`NAME`),n=o.valueToCode(e,`VALUE`,a.ATOMIC),r=n!==null&&n!==``?`, ${n}`:``,i=o.valueToCode(e,`COMMON`,a.ATOMIC),s=i!==null&&i!==``?`, ((common) => typeof common !== 'object' ? JSON.parse(common) : common)(${i})`:``,c=o.statementToCode(e,`STATEMENT`);return`createState(${u(t)}${r}${s}, async () => {\n${c}});\n`},f.System.blocks.create_ex=`<sep gap="5"></sep><block type="create_ex"> <field name="NAME">0_userdata.0.example</field> <field name="TYPE">string</field> <field name="READABLE">FALSE</field> <field name="WRITEABLE">FALSE</field></block>`,i.create_ex={init:function(){this.appendDummyInput().appendField(p(`create`)),this.appendDummyInput(`NAME`).appendField(p(`create_oid`)).appendField(new t(`0_userdata.0.example`),`NAME`),this.appendDummyInput(`TYPE`).appendField(p(`create_type`)).appendField(new e([[p(`create_type_string`),`string`],[p(`create_type_number`),`number`],[p(`create_type_boolean`),`boolean`],[p(`create_type_json`),`json`],[p(`create_type_object`),`object`],[p(`create_type_array`),`array`]]),`TYPE`);let r=this.appendValueInput(`VALUE`).setCheck(null).appendField(p(`create_init`));r.connection&&(r.connection._optional=!0),this.appendDummyInput(`READABLE_INPUT`).appendField(p(`create_readable`)).appendField(new n(`FALSE`),`READABLE`),this.appendDummyInput(`WRITEABLE_INPUT`).appendField(p(`create_writeable`)).appendField(new n(`FALSE`),`WRITEABLE`),this.appendStatementInput(`STATEMENT`).setCheck(null),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(f.System.HUE),this.setTooltip(p(`create_tooltip`)),this.setHelpUrl(m(`create_help`))}},o.forBlock.create_ex=function(e){let t=e.getFieldValue(`NAME`),n=e.getFieldValue(`TYPE`),r=``,i=o.valueToCode(e,`VALUE`,a.ATOMIC);i!==null&&i!==``&&(r=n===`number`?`, parseFloat(${i})`:n===`boolean`?`, !!${i}`:n===`string`?`, String(${i})`:`, ${i}`);let s=l(e.getFieldValue(`READABLE`)),c=l(e.getFieldValue(`WRITEABLE`)),d=o.statementToCode(e,`STATEMENT`);return`createState(${u(t)}${r}, { type: '${n}', read: ${s}, write: ${c} }, async () => {\n${d}});\n`},f.System.blocks.get_value=`<block type="get_value"> <field name="ATTR">val</field></block>`,i.get_value={init:function(){this.appendDummyInput(`ATTR`).appendField(new e(h(!0)),`ATTR`),this.appendDummyInput().appendField(p(`get_value_OID`)),this.appendDummyInput().appendField(new d(p(`select_id`),`state`),`OID`),this.setInputsInline(!0),this.setOutput(!0),this.setColour(f.System.HUE),this.setTooltip(p(`get_value_tooltip`)),this.setHelpUrl(m(`get_value_help`))},onchange:_},o.forBlock.get_value=function(e){let t=e.getFieldValue(`OID`),n=e.getFieldValue(`ATTR`);return g(n)?[`(await getObjectAsync('${t}')).${n}`,a.ATOMIC]:[`getState(${u(t)}).${n}`,a.ATOMIC]},f.System.blocks.get_value_var=`<sep gap="5"></sep><block type="get_value_var"> <field name="ATTR">val</field> <value name="OID"> <shadow type="field_oid"> </shadow> </value></block>`,i.get_value_var={init:function(){this.appendDummyInput(`ATTR`).appendField(new e(h(!1)),`ATTR`),this.appendDummyInput().appendField(p(`get_value_OID`)),this.appendValueInput(`OID`).setCheck(null),this.setInputsInline(!0),this.setOutput(!0),this.setColour(f.System.HUE),this.setTooltip(p(`get_value_tooltip`)),this.setHelpUrl(m(`get_value_help`))},onchange:_},o.forBlock.get_value_var=function(e){let t=o.valueToCode(e,`OID`,a.ATOMIC),n=e.getFieldValue(`ATTR`);return g(n)?[`(await getObjectAsync(${t})).${n}`,a.ATOMIC]:[`getState(${t}).${n}`,a.ATOMIC]},f.System.blocks.get_value_async=`<sep gap="5"></sep><block type="get_value_async"> <field name="ATTR">val</field></block>`,i.get_value_async={init:function(){this.appendDummyInput(`ATTR`).appendField(new e(h(!1)),`ATTR`),this.appendDummyInput().appendField(p(`get_value_OID`)),this.appendDummyInput().appendField(new d(p(`select_id`),`state`),`OID`),this.appendStatementInput(`STATEMENT`).setCheck(null),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(f.System.HUE),this.setTooltip(p(`get_value_tooltip`)),this.setHelpUrl(m(`get_value_help`))}},o.forBlock.get_value_async=function(e){let t=e.getFieldValue(`OID`),n=e.getFieldValue(`ATTR`),r=o.statementToCode(e,`STATEMENT`),i=g(n)?{call:`getObjectAsync`,args:`(err, obj)`,from:`obj`}:{call:`getState`,args:`(err, state)`,from:`state`};return`${i.call}(${u(t)}, async ${i.args} => {\n${o.prefixLines(`let value = ${i.from}.${n};`,o.INDENT)}\n${r}});\n`},f.System.blocks.get_object=`<block type="get_object"></block>`,i.get_object={init:function(){this.appendDummyInput().appendField(p(`get_object`)),this.appendDummyInput().appendField(new d(p(`select_id`),`all`),`OID`),this.setInputsInline(!0),this.setOutput(!0),this.setColour(f.Object.HUE),this.setTooltip(p(`get_object_tooltip`)),this.setHelpUrl(m(`get_object_help`))},onchange:function(){let e=this.getParent();e&&f.System.WARNING_PARENTS.includes(e.type)?this.setWarningText(p(`false_connection_trigger_warning`),this.id):e&&[`direct`,`control_ex`,`get_value_var`].includes(e.type)?this.setWarningText(p(`get_object_connection_warning`),this.id):this.setWarningText(null,this.id)}},o.forBlock.get_object=function(e){return[`getObject(${u(e.getFieldValue(`OID`))})`,a.ATOMIC]},f.System.blocks.get_object_async=`<sep gap="5"></sep><block type="get_object_async"></block>`,i.get_object_async={init:function(){this.appendDummyInput().appendField(p(`get_object`)),this.appendDummyInput().appendField(new d(p(`select_id`),`all`),`OID`),this.appendStatementInput(`STATEMENT`).setCheck(null),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setInputsInline(!0),this.setColour(f.Object.HUE),this.setTooltip(p(`get_object_tooltip`)),this.setHelpUrl(m(`get_object_help`))}},o.forBlock.get_object_async=function(e){let t=o.statementToCode(e,`STATEMENT`);return`getObjectAsync(${u(e.getFieldValue(`OID`))}).then(async (obj) => {\n${t}});\n`},f.System.blocks.state_exists_var=`<sep gap="5"></sep><block type="state_exists_var"> <value name="OID"> <shadow type="field_oid"> </shadow> </value></block>`,i.state_exists_var={init:function(){this.appendDummyInput().appendField(p(`state_exists`)),this.appendValueInput(`OID`).setCheck(null),this.setInputsInline(!0),this.setOutput(!0,`Boolean`),this.setColour(f.System.HUE),this.setTooltip(p(`state_exists_tooltip`)),this.setHelpUrl(m(`state_exists_help`))}},o.forBlock.state_exists_var=function(e){return[`(await existsStateAsync(${o.valueToCode(e,`OID`,a.ATOMIC)||`''`}))`,a.ATOMIC]};let w=(e,t,n)=>{i[e]={init:function(){this.appendDummyInput().appendField(p(t)),this.appendDummyInput().appendField(new d(p(`select_id`),n),`oid`),this.setInputsInline(!0),this.setOutput(!0,`String`),this.setColour(`%{BKY_TEXTS_HUE}`),this.setTooltip(p(`field_oid_tooltip`))}},o.forBlock[e]=function(e){return[u(e.getFieldValue(`oid`)),a.ATOMIC]}};f.System.blocks.field_oid=`<block type="field_oid"></block>`,w(`field_oid`,`field_oid_OID`,`state`),f.System.blocks.field_oid_meta=`<sep gap="5"></sep><block type="field_oid_meta"></block>`,w(`field_oid_meta`,`field_oid_OID_meta`,`meta`),f.System.blocks.field_oid_script=`<sep gap="5"></sep><block type="field_oid_script"></block>`,w(`field_oid_script`,`field_oid_OID_script`,`script`),f.System.blocks.get_attr=`<block type="get_attr"> <value name="PATH"> <shadow type="text"> <field name="TEXT">attribute1</field> </shadow> </value> <value name="OBJECT"> <shadow type="get_object"> <field name="OID">Object ID</field> </shadow> </value></block>`,i.get_attr={init:function(){this.appendValueInput(`PATH`).setCheck(null).appendField(p(`get_attr_path`)),this.appendValueInput(`OBJECT`).appendField(p(`get_attr_by`)),this.setInputsInline(!0),this.setOutput(!0),this.setColour(f.System.HUE),this.setTooltip(p(`get_attr_tooltip`)),this.setHelpUrl(m(`get_attr_help`))}},o.forBlock.get_attr=function(e){return[`getAttr(${o.valueToCode(e,`OBJECT`,a.ATOMIC)}, ${o.valueToCode(e,`PATH`,a.ATOMIC)})`,a.ATOMIC]},f.System.blocks.direct=`<block type="direct"> <field name="ONLY_CHANGES">TRUE</field> <value name="OID_SRC"> <shadow type="field_oid"> <field name="oid">Object ID 1</field> </shadow> </value> <value name="OID_DST"> <shadow type="field_oid"> <field name="oid">Object ID 2</field> </shadow> </value></block>`,i.direct={init:function(){this.appendDummyInput().appendField(p(`direct`)),this.appendValueInput(`OID_SRC`).setCheck(`String`).appendField(p(`direct_oid_src`)),this.appendValueInput(`OID_DST`).setCheck(`String`).appendField(p(`direct_oid_dst`)),this.appendDummyInput(`ONLY_CHANGES`).appendField(p(`direct_only_changes`)).appendField(new n(`TRUE`),`ONLY_CHANGES`),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(f.Trigger.HUE),this.setTooltip(p(`direct_tooltip`)),this.setHelpUrl(m(`direct_help`))}},o.forBlock.direct=function(e){let t=o.valueToCode(e,`OID_SRC`,a.ATOMIC),n=o.valueToCode(e,`OID_DST`,a.ATOMIC);return`on({ id: ${t}, change: '${l(e.getFieldValue(`ONLY_CHANGES`))?`ne`:`any`}' }, (obj) => {\n${o.prefixLines(`setState(${n}, obj.state.val);`,o.INDENT)}\n});\n`},f.System.blocks.control_instance=`<block type="control_instance"> <field name="INSTANCE">admin.0</field> <field name="ACTION">restartInstanceAsync</field></block>`,i.control_instance={init:function(){var n;let r=[];if((n=window.main)!=null&&n.instances){for(let e of window.main.instances){let t=e.substring(15);r.push([t,t])}r.length||r.push([p(`control_instance_no_instances`),``]),this.appendDummyInput(`INSTANCE`).appendField(p(`control_instance`)).appendField(new e(r),`INSTANCE`)}else this.appendDummyInput(`INSTANCE`).appendField(p(`control_instance`)).appendField(new t(`adapter.0`),`INSTANCE`);this.appendDummyInput(`ACTION`).appendField(p(`control_instance_action`)).appendField(new e([[p(`control_instance_start`),`startInstanceAsync`],[p(`control_instance_stop`),`stopInstanceAsync`],[p(`control_instance_restart`),`restartInstanceAsync`]]),`ACTION`),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(f.System.HUE),this.setTooltip(p(`control_instance_tooltip`)),this.setHelpUrl(m(`control_instance_help`))}},o.forBlock.control_instance=function(e){return`await ${e.getFieldValue(`ACTION`)}(${u(e.getFieldValue(`INSTANCE`))});\n`},f.System.blocks.control_script=`<block type="control_script"> <field name="ACTION">startScriptAsync</field></block>`,i.control_script={init:function(){this.appendDummyInput(`OID`).appendField(p(`control_script`)).appendField(new d(p(`select_id`),`script`),`OID`),this.appendDummyInput(`ACTION`).appendField(p(`control_instance_action`)).appendField(new e([[p(`control_script_start`),`startScriptAsync`],[p(`control_script_stop`),`stopScriptAsync`]]),`ACTION`),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(f.System.HUE),this.setTooltip(p(`control_script_tooltip`)),this.setHelpUrl(m(`control_script_help`))}},o.forBlock.control_script=function(e){return`await ${e.getFieldValue(`ACTION`)}(${u(e.getFieldValue(`OID`))});\n`},f.System.blocks.regex=`<block type="regex"> <field name="TEXT">(.*)</field></block>`,i.regex={init:function(){this.appendDummyInput().appendField(`RegExp`),this.appendDummyInput(`TEXT`).appendField(new t(`(.*)`),`TEXT`),this.setInputsInline(!0),this.setOutput(!0,`Array`),this.setColour(f.System.HUE)}},o.forBlock.regex=function(e){return[`new RegExp(${u(e.getFieldValue(`TEXT`))})`,a.ATOMIC]},f.System.blocks.selector=`<block type="selector"> <field name="TEXT">channel[state.id=*]</field></block>`,i.selector={init:function(){this.appendDummyInput().appendField(`${p(`selector`)} $(`),this.appendDummyInput(`TEXT`).appendField(new t(`channel[state.id=*]`),`TEXT`),this.appendDummyInput().appendField(`)`),this.setInputsInline(!0),this.setOutput(!0,`Array`),this.setColour(f.System.HUE)}},o.forBlock.selector=function(e){return[`Array.prototype.slice.apply($(${u(e.getFieldValue(`TEXT`))}))`,a.ATOMIC]}}export{f as install};
@@ -1 +0,0 @@
1
- import{i as e,o as t,r as n,t as r}from"./blockly-DBw-ytY1.js";import{c as i,l as a}from"./index-07o_WKsX.js";import{n as o,s,t as c}from"./helpers-B0ByElPJ.js";var l={"time_get_yyyy.mm.dd":`YYYY.MM.DD`,"time_get_yyyy/mm/dd":`YYYY/MM/DD`,"time_get_yy.mm.dd":`YY.MM.DD`,"time_get_yy/mm/dd":`YY/MM/DD`,"time_get_dd.mm.yyyy":`DD.MM.YYYY`,"time_get_dd/mm/yyyy":`DD/MM/YYYY`,"time_get_dd.mm.yy":`DD.MM.YY`,"time_get_dd/mm/yy":`DD/MM/YY`,"time_get_mm/dd/yyyy":`MM/DD/YYYY`,"time_get_mm/dd/yy":`MM/DD/YY`,"time_get_dd.mm":`DD.MM.`,"time_get_dd/mm":`DD/MM`,"time_get_mm.dd":`MM.DD`,"time_get_mm/dd":`MM/DD`,time_get_hh_mm:`hh:mm`,time_get_hh_mm_ss:`hh:mm:ss`,"time_get_hh_mm_ss.sss":`hh:mm:ss.sss`};function u(e){return e===!0||e===`true`||e===`TRUE`}function d(){let d=window.Blockly,f=d.Translate,p=window.getHelp;d.CustomBlocks=d.CustomBlocks||[],d.CustomBlocks.push(`Time`),d.Time={HUE:270,blocks:{}};for(let[e,t]of Object.entries(l))d.Words[e].format=t;let m=()=>[[f(`time_compare_lt`),`<`],[f(`time_compare_le`),`<=`],[f(`time_compare_gt`),`>`],[f(`time_compare_ge`),`>=`],[f(`time_compare_eq`),`==`],[f(`time_compare_bw`),`between`],[f(`time_compare_nb`),`not between`]];d.Time.blocks.time_compare_ex=`<block type="time_compare_ex"> <mutation end_time="false" actual_time="true"></mutation> <field name="USE_ACTUAL_TIME">TRUE</field> <field name="OPTION">&lt;</field> <value name="START_TIME"> <shadow type="text"> <field name="TEXT">12:00</field> </shadow> </value></block>`,r.time_compare_ex={init:function(){this.appendDummyInput(`TIME_TEXT`).appendField(f(`time_compare_ex`)),this.appendDummyInput(`USE_ACTUAL_TIME`).appendField(new n(`TRUE`,function(e){this.getSourceBlock().updateShape_(void 0,e)}),`USE_ACTUAL_TIME`),this.appendDummyInput().appendField(f(`time_compare_is_ex`)),this.appendDummyInput(`OPTION`).appendField(new e(m(),function(e){this.getSourceBlock().updateShape_(e===`between`||e===`not between`)}),`OPTION`),this.appendDummyInput().appendField(` `),this.appendValueInput(`START_TIME`),this.setInputsInline(!0),this.setOutput(!0,`Boolean`),this.setColour(d.Time.HUE),this.setTooltip(f(`time_compare_ex_tooltip`)),this.setHelpUrl(p(`time_compare_ex_help`))},mutationToDom:function(){let e=document.createElement(`mutation`),t=this.getFieldValue(`OPTION`),n=this.getFieldValue(`USE_ACTUAL_TIME`);return e.setAttribute(`end_time`,t===`between`||t===`not between`?`true`:`false`),e.setAttribute(`actual_time`,u(n)?`true`:`false`),e},domToMutation:function(e){this.updateShape_(u(e.getAttribute(`end_time`)),u(e.getAttribute(`actual_time`)))},updateShape_:function(e,t){if(e===void 0&&(e=this.getFieldValue(`OPTION`)===`between`||this.getFieldValue(`OPTION`)===`not between`),e){if(!this.getInput(`END_TIME`)&&(this.getInput(`CUSTOM_TIME`)&&(this.removeInput(`CUSTOM_TIME`),this.removeInput(`CUSTOM_TEXT`)),this.appendDummyInput(`AND`).appendField(f(`time_compare_and`)),this.appendValueInput(`END_TIME`),!window.scripts.loading)){let e=this.workspace;setTimeout(()=>{var t;let n=this.getInput(`END_TIME`);if(!(n!=null&&(t=n.connection)!=null&&t.isConnected())){let t=e.newBlock(`text`);t.setShadow(!0),t.setFieldValue(`18:00`,`TEXT`),t.outputConnection.connect(n.connection),t.initSvg(),t.render()}},100)}}else this.getInput(`END_TIME`)&&(this.removeInput(`END_TIME`),this.removeInput(`AND`));t===void 0&&(t=this.getFieldValue(`USE_ACTUAL_TIME`));let n=u(t),r=this.getInput(`CUSTOM_TIME`);n?r&&(this.getInput(`TIME_TEXT`).fieldRow[0].setValue(f(`time_compare_ex`)),this.removeInput(`CUSTOM_TIME`),this.removeInput(`CUSTOM_TEXT`)):(this.getInput(`TIME_TEXT`).fieldRow[0].setValue(f(`time_compare_custom_ex`)),r||(this.appendDummyInput(`CUSTOM_TEXT`).appendField(f(`time_compare_ex_custom`)),this.appendValueInput(`CUSTOM_TIME`)))}},a.forBlock.time_compare_ex=function(e){let t=e.getFieldValue(`OPTION`);return[`compareTime(${a.valueToCode(e,`START_TIME`,i.ATOMIC)}, ${e.getInput(`END_TIME`)&&a.valueToCode(e,`END_TIME`,i.ATOMIC)||null}, '${t}', ${e.getInput(`CUSTOM_TIME`)&&a.valueToCode(e,`CUSTOM_TIME`,i.ATOMIC)||null})`,i.ATOMIC]},d.Time.blocks.time_compare=`<block type="time_compare"> <mutation end_time="false"></mutation> <field name="OPTION">&lt;</field> <field name="START_TIME">12:00</field></block>`,r.time_compare={init:function(){this.appendDummyInput().appendField(f(`time_compare`)),this.appendDummyInput(`OPTION`).appendField(new e(m(),function(e){this.getSourceBlock().updateShape_(e===`between`||e===`not between`)}),`OPTION`),this.appendDummyInput().appendField(` `),this.appendDummyInput(`START_TIME`).appendField(new t(`12:00`),`START_TIME`),this.setInputsInline(!0),this.setOutput(!0,`Boolean`),this.setColour(d.Time.HUE),this.setTooltip(f(`time_compare_tooltip`)),this.setHelpUrl(p(`time_compare_help`))},mutationToDom:function(){let e=document.createElement(`mutation`),t=this.getFieldValue(`OPTION`);return e.setAttribute(`end_time`,t===`between`||t===`not between`?`true`:`false`),e},domToMutation:function(e){this.updateShape_(u(e.getAttribute(`end_time`)))},updateShape_:function(e){e?this.getInput(`END_TIME`)||(this.appendDummyInput(`AND`).appendField(f(`time_compare_and`)),this.appendDummyInput(`END_TIME`).appendField(new t(`18:00`),`END_TIME`)):this.getInput(`END_TIME`)&&(this.removeInput(`END_TIME`),this.removeInput(`AND`))}},a.forBlock.time_compare=function(e){let t=e.getFieldValue(`OPTION`),n=e.getFieldValue(`START_TIME`),r=e.getFieldValue(`END_TIME`);return[`compareTime(${s(n)}, ${r?s(r):`null`}, ${s(t)})`,i.ATOMIC]},d.Time.blocks.time_get=`<block type="time_get"> <mutation format="false" language="false"></mutation> <field name="OPTION">object</field></block>`,r.time_get={init:function(){this.appendDummyInput().appendField(f(`time_get`)),this.appendDummyInput(`OPTION`).appendField(new e(c(),function(e){this.getSourceBlock().updateShape_(e===`custom`,e===`wdt`||e===`wdts`||e===`Mt`||e===`Mts`)}),`OPTION`),this.setInputsInline(!0),this.setOutput(!0),this.setColour(d.Time.HUE),this.setTooltip(f(`time_get_tooltip`))},mutationToDom:function(){let e=document.createElement(`mutation`),t=this.getFieldValue(`OPTION`);return e.setAttribute(`format`,t===`custom`?`true`:`false`),e.setAttribute(`language`,t===`wdt`||t===`wdts`||t===`Mt`||t===`Mts`?`true`:`false`),e},domToMutation:function(e){this.updateShape_(u(e.getAttribute(`format`)),u(e.getAttribute(`language`)))},updateShape_:function(n,r){n?this.getInput(`FORMAT`)||this.appendDummyInput(`FORMAT`).appendField(` `).appendField(new t(f(`time_get_default_format`)),`FORMAT`):this.getInput(`FORMAT`)&&this.removeInput(`FORMAT`),r?this.getInput(`LANGUAGE`)||this.appendDummyInput(`LANGUAGE`).appendField(new e(o()),`LANGUAGE`):this.getInput(`LANGUAGE`)&&this.removeInput(`LANGUAGE`)}},a.forBlock.time_get=function(e){let t=e.getFieldValue(`OPTION`),n=e.getFieldValue(`FORMAT`),r=e.getFieldValue(`LANGUAGE`),a;return a=t===`object`?`(new Date().getTime())`:t===`ms`?`(new Date().getMilliseconds())`:t===`s`?`(new Date().getSeconds())`:t===`sid`?`(() => { const v = new Date(); return v.getHours() * 3600 + v.getMinutes() * 60 + v.getSeconds(); })()`:t===`m`?`(new Date().getMinutes())`:t===`mid`?`(() => { const v = new Date(); return v.getHours() * 60 + v.getMinutes(); })()`:t===`h`?`(new Date().getHours())`:t===`d`?`(new Date().getDate())`:t===`M`?`(new Date().getMonth() + 1)`:t===`Mt`?`formatDate(new Date(), 'OO', '${r}')`:t===`Mts`?`formatDate(new Date(), 'O', '${r}')`:t===`y`?`(new Date().getYear())`:t===`fy`?`(new Date().getFullYear())`:t===`wdt`?`formatDate(new Date(), 'WW', '${r}')`:t===`wdts`?`formatDate(new Date(), 'W', '${r}')`:t===`wd`?`(() => { const d = new Date().getDay(); return d === 0 ? 7 : d; })()`:t===`cw`?`((date) => { const d = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate())); const dayNum = d.getUTCDay() || 7; d.setUTCDate(d.getUTCDate() + 4 - dayNum); const yearStart = new Date(Date.UTC(d.getUTCFullYear(), 0, 1)); return Math.ceil(((d.getTime() - yearStart.getTime()) / 86400000 + 1) / 7); })(new Date())`:t===`custom`?`formatDate(new Date(), ${s(n)})`:`formatDate(new Date(), ${s(t)})`,[a,i.ATOMIC]},d.Time.blocks.time_get_special=`<block type="time_get_special"> <field name="TYPE">dayStart</field></block>`,r.time_get_special={init:function(){this.appendDummyInput().appendField(f(`time_get_special`)),this.appendDummyInput(`TYPE`).appendField(new e([[f(`time_get_special_day_start`),`dayStart`],[f(`time_get_special_day_end`),`dayEnd`],[f(`time_get_special_week_start`),`weekStart`],[f(`time_get_special_week_end`),`weekEnd`],[f(`time_get_special_month_start`),`monthStart`],[f(`time_get_special_month_end`),`monthEnd`]]),`TYPE`),this.setInputsInline(!0),this.setOutput(!0,`Number`),this.setColour(d.Time.HUE),this.setTooltip(f(`time_get_special_tooltip`))}},a.forBlock.time_get_special=function(e){let t=e.getFieldValue(`TYPE`),n=``;return t===`dayStart`?n=`/* start of day */ (() => { const d = new Date(); d.setHours(0, 0, 0, 0); return d.getTime(); })()`:t===`dayEnd`?n=`/* end of day */ (() => { const d = new Date(); d.setHours(23, 59, 59, 999); return d.getTime(); })()`:t===`weekStart`?n=`/* start of week */ (() => { const d = new Date(); d.setHours(0, 0, 0, 0); return new Date(d.getFullYear(), d.getMonth(), d.getDate() - d.getDay() + (d.getDay() == 0 ? -6 : 1)).getTime(); })()`:t===`weekEnd`?n=`/* end of week */ (() => { const d = new Date(); d.setHours(0, 0, 0, 0); return new Date(d.getFullYear(), d.getMonth(), d.getDate() + (8 - d.getDay())).getTime() - 1; })()`:t===`monthStart`?n=`/* start of month */ (() => { const d = new Date(); d.setHours(0, 0, 0, 0); d.setDate(1); return d.getTime(); })()`:t===`monthEnd`&&(n=`/* end of month */ (() => { const d = new Date(); d.setHours(0, 0, 0, 0); return new Date(d.getFullYear(), d.getMonth() + 1, 1).getTime() - 1; })()`),[n,i.ATOMIC]},d.Time.blocks.time_astro=`<block type="time_astro"> <field name="TYPE">sunrise</field> <field name="OFFSET">0</field></block>`,r.time_astro={init:function(){this.appendDummyInput().appendField(f(`time_astro`)),this.appendDummyInput(`TYPE`).appendField(new e([[f(`astro_sunriseText`),`sunrise`],[f(`astro_sunriseEndText`),`sunriseEnd`],[f(`astro_goldenHourEndText`),`goldenHourEnd`],[f(`astro_solarNoonText`),`solarNoon`],[f(`astro_goldenHourText`),`goldenHour`],[f(`astro_sunsetStartText`),`sunsetStart`],[f(`astro_sunsetText`),`sunset`],[f(`astro_duskText`),`dusk`],[f(`astro_nauticalDuskText`),`nauticalDusk`],[f(`astro_nightText`),`night`],[f(`astro_nightEndText`),`nightEnd`],[f(`astro_nauticalDawnText`),`nauticalDawn`],[f(`astro_dawnText`),`dawn`],[f(`astro_nadirText`),`nadir`]]),`TYPE`),this.appendDummyInput(`OFFSET`).appendField(f(`time_astro_offset`)).appendField(new t(`0`),`OFFSET`),this.setInputsInline(!0),this.setOutput(!0),this.setColour(d.Time.HUE),this.setTooltip(f(`time_astro_tooltip`)),this.setHelpUrl(p(`time_astro_help`))}},a.forBlock.time_astro=function(e){return[`getAstroDate('${e.getFieldValue(`TYPE`)}', undefined, ${parseFloat(e.getFieldValue(`OFFSET`))})`,i.ATOMIC]},d.Time.blocks.time_calculation=`<block type="time_calculation"> <field name="OPERATION">+</field> <field name="UNIT">ms</field> <value name="DATE_TIME"> <shadow type="time_get"> <mutation format="false" language="false"></mutation> <field name="OPTION">object</field> </shadow> </value> <value name="VALUE"> <shadow type="math_number"> <field name="NUM">1</field> </shadow> </value></block>`,r.time_calculation={init:function(){this.appendDummyInput(`NAME`).appendField(f(`time_calculation`)),this.appendValueInput(`DATE_TIME`).appendField(f(`time_calculation_on`)).setCheck(null),this.appendDummyInput(`OPERATION`).appendField(new e([[`+`,`+`],[`-`,`-`]]),`OPERATION`),this.appendValueInput(`VALUE`),this.appendDummyInput(`UNIT`).appendField(new e([[f(`time_calculation_ms`),`ms`],[f(`time_calculation_sec`),`sec`],[f(`time_calculation_min`),`min`],[f(`time_calculation_hour`),`hour`],[f(`time_calculation_day`),`day`],[f(`time_calculation_week`),`week`]]),`UNIT`),this.setInputsInline(!0),this.setOutput(!0,`Number`),this.setColour(d.Time.HUE),this.setTooltip(f(`time_calculation_tooltip`))}},a.forBlock.time_calculation=function(e){let t=a.valueToCode(e,`DATE_TIME`,i.ATOMIC),n=e.getFieldValue(`OPERATION`),r=a.valueToCode(e,`VALUE`,i.ATOMIC),o=e.getFieldValue(`UNIT`),s=1;return o===`sec`?s=1e3:o===`min`?s=6e4:o===`hour`?s=36e5:o===`day`?s=864e5:o===`week`&&(s=6048e5),[`/* time calculation */ ((dateTime) => { const ts = (typeof dateTime === 'object' ? dateTime.getTime() : dateTime); return ts ${n} ((${r}) * ${s}); })(${t})`,i.ATOMIC]}}export{d as install};
@@ -1 +0,0 @@
1
- import{c as e,i as t,o as n,t as r}from"./blockly-DBw-ytY1.js";import{c as i,l as a}from"./index-07o_WKsX.js";var o={id:`timeout`,marker:`isTimeout_`,variableType:`timeout`},s={id:`interval`,marker:`isInterval_`,variableType:`interval`};function c(e,t){let n=parseFloat(e);return t===`min`?n*6e4:t===`sec`?n*1e3:n}function l(e){return a.nameDB_.safeName(e.getFieldValue(`NAME`))}function u(){let u=window.Blockly,d=u.Translate,f=window.getHelp;u.CustomBlocks=u.CustomBlocks||[],u.CustomBlocks.push(`Timeouts`);let p=()=>[[d(`timeouts_settimeout_ms`),`ms`],[d(`timeouts_settimeout_sec`),`sec`],[d(`timeouts_settimeout_min`),`min`]],m=(t,n,r)=>{for(let i of n.getAllBlocks())if(i!==r&&(i.isTimeout_||i.isInterval_)&&e.equals(i.getFieldValue(`NAME`),t))return!1;return!0},h=(e,t)=>{if(t.isInFlyout)return e;for(;!m(e,t.workspace,t);){let t=e.match(/^(.*?)(\d+)$/);t?e=t[1]+(parseInt(t[2],10)+1):e+=`2`}return e},g=function(e){return h(e.replace(/^[\s\xa0]+|[\s\xa0]+$/g,``),this.getSourceBlock())},_=(e,t)=>{let n=[];for(let r of e.getAllBlocks())if(r[t.marker]){let e=r.getFieldValue(`NAME`);n.push([e,e])}if(window.scripts.loading)for(let t of e.getVariableMap().getVariablesOfType(``))n.find(e=>e[0]===t.getName())||n.push([t.getName(),t.getName()]);for(let r of e.getVariableMap().getVariablesOfType(t.variableType))n.find(e=>e[0]===r.getName())||n.push([r.getName(),r.getName()]);return n.length||n.push([``,``]),n};u.Timeouts={HUE:70,blocks:{},getAllTimeouts:e=>_(e,o),getAllIntervals:e=>_(e,s)};let v=e=>new t(()=>{var t;return(t=window.scripts)!=null&&t.blocklyWorkspace?_(window.scripts.blocklyWorkspace,e):[]});u.Timeouts.blocks.timeouts_wait=`<block type="timeouts_wait"> <field name="DELAY">1000</field> <field name="UNIT">ms</field></block>`,r.timeouts_wait={init:function(){this.appendDummyInput().appendField(d(`timeouts_wait`)).appendField(new n(`1000`),`DELAY`).appendField(new t(p()),`UNIT`),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(u.Timeouts.HUE),this.setTooltip(d(`timeouts_wait_tooltip`)),this.setHelpUrl(f(`timeouts_wait_help`))}},a.forBlock.timeouts_wait=function(e){return`await wait(${c(e.getFieldValue(`DELAY`),e.getFieldValue(`UNIT`))});\n`};let y=(e,o)=>{let s=e.id===`timeout`,m=`timeouts_set${e.id}${o?`_variable`:``}`,_=s?`DELAY`:`INTERVAL`,v=s?`DELAY_MS`:`INTERVAL_MS`,y=`timeouts_set${e.id}`,b=s?`timeout`:d(`timeouts_setinterval_name`);r[m]={init:function(){let e=new n(h(b,this),g);e.setSpellcheck(!1);let r=this.appendDummyInput().appendField(d(y)).appendField(e,`NAME`).appendField(d(`${y}_in`));o?this.appendValueInput(v).setCheck(`Number`).appendField(d(`timeouts_settimeout_ms`)):r.appendField(new n(`1000`),_).appendField(new t(p()),`UNIT`),this.appendStatementInput(`STATEMENT`).setCheck(null),this.setInputsInline(o),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(u.Timeouts.HUE),this.setTooltip(d(`${y}_tooltip`)),this.setHelpUrl(f(`${y}_help`))},[e.marker]:!0,getVars:function(){return[this.getFieldValue(`NAME`)]},getVarModels:function(){let t=this.getFieldValue(`NAME`);return[{getId:()=>t,name:t,type:e.variableType}]}},a.forBlock[m]=function(e){let t=l(e),n=a.statementToCode(e,`STATEMENT`),r=o?`parseInt(${a.valueToCode(e,v,i.ATOMIC)})`:String(c(e.getFieldValue(_),e.getFieldValue(`UNIT`))),u=s?`${a.prefixLines(`${t} = null;`,a.INDENT)}\n`:``;return`${t} = ${s?`setTimeout`:`setInterval`}(async () => {\n${u}${n}}, ${r});\n`}},b=e=>{let t=`timeouts_clear${e.id}`,n=`timeouts_get${e.id}`;u.Timeouts.blocks[t]=`<sep gap="5"></sep><block type="${t}"> <field name="NAME"></field></block>`,r[t]={init:function(){this.appendDummyInput(`NAME`).appendField(d(t)).appendField(v(e),`NAME`),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(u.Timeouts.HUE),this.setTooltip(d(`${t}_tooltip`)),this.setHelpUrl(f(`${t}_help`))}},a.forBlock[t]=function(t){let n=l(t);return`(() => { if (${n}) { ${e.id===`timeout`?`clearTimeout`:`clearInterval`}(${n}); ${n} = null; }})();\n`},u.Timeouts.blocks[n]=`<sep gap="5"></sep><block type="${n}"> <field name="NAME"></field></block>`,r[n]={init:function(){this.appendDummyInput(`NAME`).appendField(d(n)).appendField(v(e),`NAME`),this.setInputsInline(!0),this.setOutput(!0),this.setColour(u.Timeouts.HUE),this.setTooltip(d(`${n}_tooltip`)),this.setHelpUrl(f(`${n}_help`))}},a.forBlock[n]=function(e){return[l(e),i.ATOMIC]}};u.Timeouts.blocks.timeouts_settimeout=`<block type="timeouts_settimeout"> <field name="NAME">timeout</field> <field name="DELAY">1000</field> <field name="UNIT">ms</field></block>`,y(o,!1),u.Timeouts.blocks.timeouts_settimeout_variable=`<sep gap="5"></sep><block type="timeouts_settimeout_variable"> <value name="DELAY_MS"> <shadow type="math_number"> <field name="NUM">1000</field> </shadow> </value></block>`,y(o,!0),b(o),u.Timeouts.blocks.timeouts_setinterval=`<block type="timeouts_setinterval"> <field name="INTERVAL">1000</field> <field name="UNIT">ms</field></block>`,y(s,!1),u.Timeouts.blocks.timeouts_setinterval_variable=`<sep gap="5"></sep><block type="timeouts_setinterval_variable"> <value name="INTERVAL_MS"> <shadow type="math_number"> <field name="NUM">1000</field> </shadow> </value></block>`,y(s,!0),b(s)}export{u as install};
@@ -1,2 +0,0 @@
1
- import{c as e,f as t,i as n,o as r,r as i,s as a,t as o}from"./blockly-DBw-ytY1.js";import{c as s,l as c}from"./index-07o_WKsX.js";import{a as l,c as u,d,f,o as p,r as m,s as h}from"./helpers-B0ByElPJ.js";import{FieldOID as g}from"./field_oid-KfoBnEM9.js";import{FieldCRON as _}from"./field_cron-B40zwSfJ.js";function v(e){return c.nameDB_.safeName(e.getFieldValue(`NAME`))}function y(){let y=window.Blockly,b=y.Translate,x=window.getHelp;y.CustomBlocks=y.CustomBlocks||[],y.CustomBlocks.push(`Trigger`);let S=e=>{let t=[];for(let n of e.getAllBlocks())if(n.isSchedule_){let e=n.getFieldValue(`NAME`);t.push([e,e])}if(window.scripts.loading)for(let n of e.getVariableMap().getVariablesOfType(``))t.find(e=>e[0]===n.getName())||t.push([n.getName(),n.getName()]);for(let n of e.getVariableMap().getVariablesOfType(`cron`))t.find(e=>e[0]===n.getName())||t.push([n.getName(),n.getName()]);return t.length||t.push([``,``]),t};y.Trigger={HUE:330,getAllSchedules:S,blocks:{},WARNING_PARENTS:[`on`,`on_ext`,`schedule`,`schedule_by_id`,`schedule_create`,`astro`,`onMessage`,`onFile`,`onLog`,`onEnumMembers`,`timeouts_setinterval`,`timeouts_setinterval_variable`,`controls_repeat_ext`,`controls_repeat_ext`,`controls_for`,`controls_forEach`]};let C=()=>[[b(`on_onchange`),`ne`],[b(`on_any`),`any`],[b(`on_gt`),`gt`],[b(`on_ge`),`ge`],[b(`on_lt`),`lt`],[b(`on_le`),`le`],[b(`on_true`),`true`],[b(`on_false`),`false`]],w=()=>[[b(`on_ack_any`),``],[b(`on_ack_true`),`true`],[b(`on_ack_false`),`false`]],T=e=>e===`true`||e===`false`?`val: ${e}`:`change: '${e}'`,E=()=>`${c.prefixLines(`let value = obj.state.val;`,c.INDENT)}\n${c.prefixLines(`let oldValue = obj.oldState.val;`,c.INDENT)}\n`,D=(e,t,n,r)=>{setTimeout(()=>{var i;if(!((i=t.connection)!=null&&i.isConnected())){let i=e.newBlock(n);i.setShadow(!0),r&&i.setFieldValue(r[1],r[0]),i.outputConnection.connect(t.connection),i.initSvg(),i.render()}},100)},O=(e,t,r,i,a,s,c)=>{o[e]={init:function(){this.appendDummyInput().appendField(t),this.appendDummyInput(`ATTR`).appendField(new n(r),`ATTR`),this.setInputsInline(!0),this.setOutput(!0),this.setColour(s),this.setTooltip(b(`${e}_tooltip`)),c&&this.setHelpUrl(x(c))},onchange:function(){f(this,i,a)},FUNCTION_TYPES:i}};y.Trigger.blocks.on_ext=`<block type="on_ext"> <mutation items="1"></mutation> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field> <value name="OID0"> <shadow type="field_oid"> </shadow> </value></block>`,o.on_ext_oid_container={init:function(){this.appendDummyInput().appendField(b(`on_ext_on`)),this.appendStatementInput(`STACK`),this.setColour(y.Trigger.HUE),this.setTooltip(b(`on_ext_on_tooltip`)),this.contextMenu=!1}},o.on_ext_oid={init:function(){this.appendDummyInput(`OID`).appendField(b(`on_ext_oid`)),this.setPreviousStatement(!0),this.setNextStatement(!0),this.setColour(y.Trigger.HUE),this.setTooltip(b(`on_ext_oid_tooltip`)),this.contextMenu=!1}},o.on_ext={init:function(){this.itemCount_=1,this.setMutator(new t.MutatorIcon([`on_ext_oid`],this)),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(y.Trigger.HUE),this.setTooltip(b(`on_ext_tooltip`)),this.setHelpUrl(x(`on_help`))},mutationToDom:function(){let e=document.createElement(`mutation`);return e.setAttribute(`items`,String(this.itemCount_)),e},domToMutation:function(e){this.itemCount_=parseInt(e.getAttribute(`items`),10),this.updateShape_()},decompose:function(e){var t;let n=e.newBlock(`on_ext_oid_container`);n.initSvg();let r=(t=n.getInput(`STACK`))==null?void 0:t.connection;for(let t=0;t<this.itemCount_;t++){let t=e.newBlock(`on_ext_oid`);t.initSvg(),r.connect(t.previousConnection),r=t.nextConnection}return n},compose:function(e){let t=e.getInputTargetBlock(`STACK`),n=[];for(;t;)n.push(t.valueConnection_),t=t.nextConnection&&t.nextConnection.targetBlock();for(let e=0;e<this.itemCount_;e++){var r;let t=(r=this.getInput(`OID${e}`))==null||(r=r.connection)==null?void 0:r.targetConnection;t&&!n.includes(t)&&t.disconnect()}this.itemCount_=n.length,this.itemCount_<1&&(this.itemCount_=1),this.updateShape_();for(let e=0;e<this.itemCount_;e++)u(n[e],this,`OID${e}`)},saveConnections:function(e){let t=e.getInputTargetBlock(`STACK`),n=0;for(;t;){var r,i;t.valueConnection_=(r=this.getInput(`OID${n}`))==null||(r=r.connection)==null?void 0:r.targetConnection,n++,t=(i=t.nextConnection)==null?void 0:i.targetBlock()}},updateShape_:function(){let e;this.getInput(`CONDITION`)&&(e=this.getFieldValue(`CONDITION`),this.removeInput(`CONDITION`));let t;this.getInput(`ACK_CONDITION`)&&(t=this.getFieldValue(`ACK_CONDITION`),this.removeInput(`ACK_CONDITION`));let r;for(let e=0;this.inputList[e];e++)if(this.inputList[e].name===`STATEMENT`){r=this.inputList[e],this.inputList.splice(e,1);break}let i=this.workspace,a;for(a=0;a<this.itemCount_;a++){let e=this.getInput(`OID${a}`);e||(e=this.appendValueInput(`OID${a}`),a===0&&e.appendField(b(`on_ext`))),D(i,e,`field_oid`)}for(;this.getInput(`OID${a}`);)this.removeInput(`OID${a}`),a++;this.appendDummyInput(`CONDITION`).appendField(new n(C()),`CONDITION`),e&&this.setFieldValue(e,`CONDITION`),this.appendDummyInput(`ACK_CONDITION`).appendField(b(`on_ack`)).appendField(new n(w()),`ACK_CONDITION`),t&&this.setFieldValue(t,`ACK_CONDITION`),r?this.inputList.push(r):this.appendStatementInput(`STATEMENT`).setCheck(null)},onchange:function(){d(this)}},c.forBlock.on_ext=function(e){let t=e,n=T(e.getFieldValue(`CONDITION`)),r=e.getFieldValue(`ACK_CONDITION`),i=[];for(let n=0;n<t.itemCount_;n++){let t=c.valueToCode(e,`OID${n}`,s.COMMA);t&&(t=t.toString(),t.startsWith(`'`)&&t.endsWith(`'`)&&(t=`[${t}]`),i.includes(t)||i.push(t))}let a=`[].concat(${i.join(`).concat(`)})`,o=c.statementToCode(e,`STATEMENT`);return`on({ id: ${a}, ${n}${r?`, ack: ${r}`:``} }, async (obj) => {\n${i.length===1?E():``}${o}});\n`},y.Trigger.blocks.on=`<sep gap="5"></sep><block type="on"> <field name="CONDITION">ne</field> <field name="ACK_CONDITION"></field></block>`,o.on={init:function(){this.appendDummyInput().appendField(b(`on`)),this.appendDummyInput(`OID`).appendField(new g(b(`select_id`),`state`),`OID`),this.appendDummyInput(`CONDITION`).appendField(new n(C()),`CONDITION`),this.appendDummyInput(`ACK_CONDITION`).appendField(b(`on_ack`)).appendField(new n(w()),`ACK_CONDITION`),this.appendStatementInput(`STATEMENT`).setCheck(null),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(y.Trigger.HUE),this.setTooltip(b(`on_tooltip`)),this.setHelpUrl(x(`on_help`))},onchange:function(){d(this)}},c.forBlock.on=function(e){let t=e.getFieldValue(`OID`),n=T(e.getFieldValue(`CONDITION`)),r=e.getFieldValue(`ACK_CONDITION`);a.VARIABLES_DEFAULT_NAME=`value`;let i=l(t),o=c.statementToCode(e,`STATEMENT`);return`on({ id: '${t}'${i?` /* ${i} */`:``}, ${n}${r?`, ack: ${r}`:``} }, async (obj) => {\n${E()}${o}});\n`},y.Trigger.blocks.on_source=`<sep gap="5"></sep><block type="on_source"> <field name="ATTR">state.val</field></block>`,O(`on_source`,`↪`,[[b(`on_source_state_val`),`state.val`],[b(`on_source_state_ts`),`state.ts`],[b(`on_source_state_q`),`state.q`],[b(`on_source_state_from`),`state.from`],[b(`on_source_state_ack`),`state.ack`],[b(`on_source_state_lc`),`state.lc`],[b(`on_source_state_c`),`state.c`],[b(`on_source_state_user`),`state.user`],[b(`on_source_id`),`id`],[b(`on_source_name`),`common.name`],[b(`on_source_desc`),`common.desc`],[b(`on_source_channel_id`),`channelId`],[b(`on_source_channel_name`),`channelName`],[b(`on_source_device_id`),`deviceId`],[b(`on_source_device_name`),`deviceName`],[b(`on_source_oldstate_val`),`oldState.val`],[b(`on_source_oldstate_ts`),`oldState.ts`],[b(`on_source_oldstate_q`),`oldState.q`],[b(`on_source_oldstate_from`),`oldState.from`],[b(`on_source_oldstate_ack`),`oldState.ack`],[b(`on_source_oldstate_lc`),`oldState.lc`],[b(`on_source_oldstate_c`),`oldState.c`],[b(`on_source_oldstate_user`),`oldState.user`]],[`on`,`on_ext`,`onEnumMembers`],`on_source_warning`,y.Trigger.HUE,`on_help`),c.forBlock.on_source=function(e){let t=e.getFieldValue(`ATTR`),n=t.split(`.`);return[n.length>1?`(obj.${n[0]} ? obj.${t} : '')`:`obj.${t}`,s.ATOMIC]},y.Trigger.blocks.on_ack_value=`<sep gap="5"></sep><block type="on_ack_value"></block>`,o.on_ack_value={init:function(){this.appendDummyInput().appendField(`↪ ${b(`on_ack_value`)}`),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(y.Trigger.HUE),this.setTooltip(b(`on_ack_value_tooltip`)),this.setHelpUrl(x(`on_help`))},onchange:function(){f(this,[`on`,`on_ext`,`onEnumMembers`],`on_ack_value_warning`)},FUNCTION_TYPES:[`on`,`on_ext`,`onEnumMembers`]},c.forBlock.on_ack_value=function(){return`if (obj.id && obj?.state && !obj.state.ack) {
2
- ${c.prefixLines(`await setStateAsync(obj.id, { val: obj.state.val, ack: true });`,c.INDENT)}\n}\n`},y.Trigger.blocks.astro=`<block type="astro"> <field name="TYPE">sunrise</field> <field name="OFFSET">0</field></block>`,o.astro={init:function(){this.appendDummyInput().appendField(b(`astro`)),this.appendDummyInput(`TYPE`).appendField(new n([[b(`astro_sunriseText`),`sunrise`],[b(`astro_sunriseEndText`),`sunriseEnd`],[b(`astro_goldenHourEndText`),`goldenHourEnd`],[b(`astro_solarNoonText`),`solarNoon`],[b(`astro_goldenHourText`),`goldenHour`],[b(`astro_sunsetStartText`),`sunsetStart`],[b(`astro_sunsetText`),`sunset`],[b(`astro_duskText`),`dusk`],[b(`astro_nauticalDuskText`),`nauticalDusk`],[b(`astro_nightText`),`night`],[b(`astro_nightEndText`),`nightEnd`],[b(`astro_nauticalDawnText`),`nauticalDawn`],[b(`astro_dawnText`),`dawn`],[b(`astro_nadirText`),`nadir`]]),`TYPE`),this.appendDummyInput().appendField(b(`astro_offset`)),this.appendDummyInput(`OFFSET`).appendField(new r(`0`),`OFFSET`),this.appendDummyInput().appendField(b(`astro_minutes`)),this.appendStatementInput(`STATEMENT`).setCheck(null),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(y.Trigger.HUE),this.setTooltip(b(`astro_tooltip`)),this.setHelpUrl(x(`astro_help`))},onchange:function(){d(this)}},c.forBlock.astro=function(e){return`schedule({ astro: '${e.getFieldValue(`TYPE`)}', shift: ${parseInt(e.getFieldValue(`OFFSET`),10)} }, async () => {\n${c.statementToCode(e,`STATEMENT`)}});\n`},y.Trigger.blocks.schedule=`<block type="schedule"> <field name="SCHEDULE">* * * * *</field></block>`,o.schedule={init:function(){this.appendDummyInput().appendField(b(`schedule`)),this.appendDummyInput(`SCHEDULE`).appendField(new _(`* * * * *`),`SCHEDULE`),this.appendStatementInput(`STATEMENT`).setCheck(null),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(y.Trigger.HUE),this.setTooltip(b(`schedule_tooltip`)),this.setHelpUrl(x(`schedule_help`))},onchange:function(){d(this)}},c.forBlock.schedule=function(e){let t=e.getFieldValue(`SCHEDULE`),n=c.statementToCode(e,`STATEMENT`);return`schedule(${t.startsWith(`{`)?`'${t}'`:`"${t}"`}, async () => {\n${n}});\n`},y.Trigger.blocks.schedule_by_id=`<block type="schedule_by_id"> <field name="ACK_CONDITION"></field></block>`,o.schedule_by_id={init:function(){this.appendDummyInput().appendField(b(`schedule_by_id`)),this.appendDummyInput(`OID`).appendField(new g(b(`select_id`),`state`),`OID`),this.appendDummyInput(`ACK_CONDITION`).appendField(b(`on_ack`)).appendField(new n(w()),`ACK_CONDITION`),this.appendStatementInput(`STATEMENT`).setCheck(null),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(y.Trigger.HUE),this.setTooltip(b(`schedule_by_id_tooltip`)),this.setHelpUrl(x(`schedule_by_id_help`))}},c.forBlock.schedule_by_id=function(e){let t=e.getFieldValue(`OID`),n=e.getFieldValue(`ACK_CONDITION`),r=c.statementToCode(e,`STATEMENT`),i=l(t);return`scheduleById('${t}'${i?` /* ${i} */`:``}${n?`, ${n}`:``}, async () => {\n${r}});\n`},y.Trigger.blocks.schedule_create=`<block type="schedule_create"> <field name="NAME">schedule</field> <value name="SCHEDULE"> <shadow type="field_cron"> </shadow> </value></block>`;let k=(t,n,r)=>{if(t===`schedule`)return!1;for(let i of n.getAllBlocks())if(i!==r&&i.isSchedule_&&e.equals(i.getFieldValue(`NAME`),t))return!1;return!0},A=(e,t)=>{if(t.isInFlyout)return e;for(;!k(e,t.workspace,t);){let t=e.match(/^(.*?)(\d+)$/);t?e=t[1]+(parseInt(t[2],10)+1):e+=`1`}return e},j=function(e){return A(e.replace(/^[\s\xa0]+|[\s\xa0]+$/g,``),this.getSourceBlock())};o.schedule_create={init:function(){let e=new r(A(`schedule`,this),j);e.setSpellcheck(!1),this.appendDummyInput(`NAME`).appendField(b(`schedule_create`)).appendField(e,`NAME`),this.appendValueInput(`SCHEDULE`).appendField(b(`schedule_text`)),this.appendStatementInput(`STATEMENT`).setCheck(null),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(y.Trigger.HUE),this.setTooltip(b(`schedule_create_tooltip`)),this.setHelpUrl(x(`schedule_create_help`))},isSchedule_:!0,getVars:function(){return[this.getFieldValue(`NAME`)]},getVarModels:function(){let e=this.getFieldValue(`NAME`);return[{getId:()=>e,name:e,type:`cron`}]}},c.forBlock.schedule_create=function(e){return`${v(e)} = schedule(${c.valueToCode(e,`SCHEDULE`,s.ATOMIC)}, async () => {\n${c.statementToCode(e,`STATEMENT`)}});\n`},y.Trigger.blocks.schedule_clear=`<sep gap="5"></sep><block type="schedule_clear"> <field name="NAME"></field></block>`,o.schedule_clear={init:function(){this.appendDummyInput(`NAME`).appendField(b(`schedule_clear`)).appendField(new n(()=>{var e;return(e=window.scripts)!=null&&e.blocklyWorkspace?S(window.scripts.blocklyWorkspace):[]}),`NAME`),this.setInputsInline(!0),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(y.Trigger.HUE),this.setTooltip(b(`schedule_clear_tooltip`)),this.setHelpUrl(x(`schedule_clear_help`))}},c.forBlock.schedule_clear=function(e){let t=v(e);return`(() => { if (${t}) { clearSchedule(${t}); ${t} = null; }})();\n`},y.Trigger.blocks.field_cron=`<sep gap="5"></sep><block type="field_cron"> <field name="CRON">* * * * *</field></block>`,o.field_cron={init:function(){this.appendDummyInput().appendField(b(`field_cron_CRON`)),this.appendDummyInput().appendField(new _(`* * * * *`),`CRON`),this.setInputsInline(!0),this.setOutput(!0,`String`),this.setColour(y.Trigger.HUE),this.setTooltip(b(`field_cron_tooltip`))}},c.forBlock.field_cron=function(e){return[`'${e.getFieldValue(`CRON`)}'`,s.ATOMIC]},y.Trigger.blocks.cron_builder=`<sep gap="5"></sep><block type="cron_builder"> <mutation seconds="false" as_line="false"></mutation> <field name="LINE">FALSE</field> <field name="WITH_SECONDS">FALSE</field> <value name="DOW"> <shadow type="text"> <field name="TEXT">*</field> </shadow> </value> <value name="MONTHS"> <shadow type="text"> <field name="TEXT">*</field> </shadow> </value> <value name="DAYS"> <shadow type="text"> <field name="TEXT">*</field> </shadow> </value> <value name="HOURS"> <shadow type="text"> <field name="TEXT">*</field> </shadow> </value> <value name="MINUTES"> <shadow type="text"> <field name="TEXT">*</field> </shadow> </value></block>`,o.cron_builder={init:function(){this.appendDummyInput().appendField(b(`cron_builder_CRON`)),this.appendDummyInput(`LINE`).appendField(b(`cron_builder_line`)).appendField(new i(`FALSE`,function(e){var t;(t=this.getSourceBlock())==null||t.setInputsInline(m(e))}),`LINE`);let e=this.workspace;for(let[t,n]of[[`DOW`,`cron_builder_dow`],[`MONTHS`,`cron_builder_month`],[`DAYS`,`cron_builder_day`],[`HOURS`,`cron_builder_hour`],[`MINUTES`,`cron_builder_minutes`]]){let r=this.appendValueInput(t).appendField(b(n));D(e,r,`text`,[`TEXT`,`*`])}this.appendDummyInput(`WITH_SECONDS`).appendField(b(`cron_builder_with_seconds`)).appendField(new i(`FALSE`,function(e){this.getSourceBlock().updateShape_(m(e))}),`WITH_SECONDS`),this.seconds_=!1,this.as_line_=!1,this.setInputsInline(this.as_line_),this.setOutput(!0,`String`),this.setColour(y.Trigger.HUE),this.setTooltip(b(`field_cron_tooltip`))},mutationToDom:function(){let e=document.createElement(`mutation`);return e.setAttribute(`seconds`,String(this.seconds_)),e.setAttribute(`as_line`,String(this.as_line_)),e},domToMutation:function(e){this.seconds_=e.getAttribute(`seconds`)===`true`,this.as_line_=e.getAttribute(`as_line`)===`true`,this.setInputsInline(this.as_line_),this.updateShape_(this.seconds_)},updateShape_:function(e){if(this.seconds_=e,e){if(!this.getInput(`SECONDS`)){let e=this.appendValueInput(`SECONDS`).appendField(b(`cron_builder_seconds`));D(this.workspace,e,`text`,[`TEXT`,`*`])}}else this.getInput(`SECONDS`)&&this.removeInput(`SECONDS`)}},c.forBlock.cron_builder=function(e){let t=t=>c.valueToCode(e,t,s.ATOMIC),n=e.getFieldValue(`WITH_SECONDS`),r=n&&e.getInput(`SECONDS`)?t(`SECONDS`):`0`;return[(m(n)?`${r}.toString().trim() + ' ' + `:``)+`${t(`MINUTES`)}.toString().trim() + ' ' + ${t(`HOURS`)}.toString().trim() + ' ' + ${t(`DAYS`)}.toString().trim() + ' ' + ${t(`MONTHS`)}.toString().trim() + ' ' + ${t(`DOW`)}.toString().trim()`,s.ATOMIC]},y.Trigger.blocks.onMessage=`<block type="onMessage"> <field name="MESSAGE">customMessage</field></block>`,o.onMessage={init:function(){this.appendDummyInput(`NAME`).appendField(`✉️ ${b(`onMessage`)}`),this.appendDummyInput(`MESSAGE`).appendField(b(`onMessage_message`)).appendField(new r(`customMessage`),`MESSAGE`),this.appendStatementInput(`STATEMENT`).setCheck(null),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(y.Trigger.HUE),this.setTooltip(b(`onMessage_tooltip`)),this.setHelpUrl(x(`onMessage_help`))},onchange:function(){d(this)}},c.forBlock.onMessage=function(e){let t=e.getFieldValue(`MESSAGE`),n=c.statementToCode(e,`STATEMENT`);return`onMessage(${h(t)}, async (data, callback) => {\n${n}${c.prefixLines(`typeof callback === 'function' && callback({ result: true }); // default callback`,c.INDENT)}\n});\n`},y.Trigger.blocks.onMessage_data=`<sep gap="5"></sep><block type="onMessage_data"> <field name="ATTR">data</field></block>`,O(`onMessage_data`,`✉️ `,[[b(`onMessage_data_data`),`data`]],[`onMessage`],`onMessage_data_warning`,y.Action.HUE,`onMessage_data_help`),c.forBlock.onMessage_data=function(e){return[e.getFieldValue(`ATTR`),s.ATOMIC]},y.Trigger.blocks.onFile=`<block type="onFile"> <field name="WITH_FILE">FALSE</field> <value name="OID"> <shadow type="field_oid_meta"> <field name="oid">0_userdata.0</field> </shadow> </value> <value name="FILE"> <shadow type="text"> <field name="TEXT">*</field> </shadow> </value></block>`,o.onFile={init:function(){this.appendValueInput(`OID`).appendField(`📁 ${b(`onFile`)}`).setCheck(null),this.appendValueInput(`FILE`).appendField(b(`onFile_file`)).setCheck(null),this.appendDummyInput(`WITH_FILE_INPUT`).appendField(b(`onFile_withFile`)).appendField(new i(`FALSE`),`WITH_FILE`),this.appendStatementInput(`STATEMENT`).setCheck(null),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(y.Trigger.HUE),this.setTooltip(b(`onFile_tooltip`)),this.setHelpUrl(x(`onFile_help`))},onchange:function(){d(this)}},c.forBlock.onFile=function(e){let t=c.valueToCode(e,`OID`,s.ATOMIC),n=c.valueToCode(e,`FILE`,s.ATOMIC),r=e.getFieldValue(`WITH_FILE`),i=c.statementToCode(e,`STATEMENT`),a=p(t);return`onFile(${t}${a?` /* ${a} */`:``}, ${n}, ${r===`TRUE`?`true`:`false`}, async (id, fileName, size, data, mimeType) => {\n${i}});\n`},y.Trigger.blocks.onFile_data=`<sep gap="5"></sep><block type="onFile_data"> <field name="ATTR">data</field></block>`,O(`onFile_data`,`📁`,[[b(`onFile_data_data`),`data`],[b(`onFile_data_filename`),`fileName`],[b(`onFile_data_size`),`size`],[b(`onFile_data_mimeType`),`mimeType`],[b(`onFile_data_id`),`id`],[b(`onFile_data_tempFile`),`TEMP_FILE_PATH`]],[`onFile`],`onFile_data_warning`,y.Trigger.HUE),c.forBlock.onFile_data=function(e){let t=e.getFieldValue(`ATTR`);return t===`TEMP_FILE_PATH`?[`createTempFile(fileName, data)`,s.ATOMIC]:[t,s.ATOMIC]},y.Trigger.blocks.offFile=`<sep gap="5"></sep><block type="offFile"> <value name="OID"> <shadow type="field_oid_meta"> <field name="oid">0_userdata.0</field> </shadow> </value> <value name="FILE"> <shadow type="text"> <field name="TEXT">*</field> </shadow> </value></block>`,o.offFile={init:function(){this.appendValueInput(`OID`).appendField(`📁 ${b(`offFile`)}`).setCheck(null),this.appendValueInput(`FILE`).appendField(b(`onFile_file`)).setCheck(null),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(y.Trigger.HUE),this.setTooltip(b(`offFile_tooltip`)),this.setHelpUrl(x(`offFile_help`))}},c.forBlock.offFile=function(e){let t=c.valueToCode(e,`OID`,s.ATOMIC),n=c.valueToCode(e,`FILE`,s.ATOMIC),r=p(t);return`offFile(${t}${r?` /* ${r} */`:``}, ${n});\n`},y.Trigger.blocks.onLog=`<block type="onLog"> <field name="Severity">error</field></block>`,o.onLog={init:function(){this.appendDummyInput(`TEXT`).appendField(`💬 ${b(`onLog`)}`),this.appendDummyInput(`Severity`).appendField(b(`loglevel`)).appendField(new n([[b(`loglevel_error`),`error`],[b(`loglevel_warn`),`warn`],[b(`loglevel_info`),`info`],[b(`loglevel_debug`),`debug`],[b(`loglevel_all`),`*`]]),`Severity`),this.appendStatementInput(`STATEMENT`).setCheck(null),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(y.Trigger.HUE),this.setTooltip(b(`onLog_tooltip`)),this.setHelpUrl(x(`onLog_help`))},onchange:function(){d(this)}},c.forBlock.onLog=function(e){let t=c.statementToCode(e,`STATEMENT`);return`onLog('${e.getFieldValue(`Severity`)}', async (data) => {\n${t}});\n`},y.Trigger.blocks.onLog_data=`<sep gap="5"></sep><block type="onLog_data"> <field name="ATTR">data.message</field></block>`,O(`onLog_data`,`💬 `,[[b(`onLog_data_message`),`data.message`],[b(`loglevel`),`data.severity`],[b(`onLog_data_from`),`data.from`],[b(`onLog_data_ts`),`data.ts`]],[`onLog`],`onLog_data_warning`,y.Trigger.HUE),c.forBlock.onLog_data=function(e){return[e.getFieldValue(`ATTR`),s.ATOMIC]},y.Trigger.blocks.onEnumMembers=`<block type="onEnumMembers"></block>`,o.onEnumMembers={init:function(){this.appendDummyInput().appendField(b(`onEnumMembers`)),this.appendDummyInput(`OID`).appendField(new g(b(`select_id`),`enum`),`OID`),this.appendStatementInput(`STATEMENT`).setCheck(null),this.setInputsInline(!1),this.setPreviousStatement(!0,null),this.setNextStatement(!0,null),this.setColour(y.Trigger.HUE),this.setTooltip(b(`onEnumMembers_tooltip`)),this.setHelpUrl(x(`onEnumMembers_help`))},onchange:function(){d(this)}},c.forBlock.onEnumMembers=function(e){let t=e.getFieldValue(`OID`),n=c.statementToCode(e,`STATEMENT`),r=l(t);return`onEnumMembers('${t}'${r?` /* ${r} */`:``}, async (obj) => {\n${E()}${n}});\n`}}export{y as install};