iobroker.javascript 9.1.1 → 9.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +32 -16
- package/admin/assets/AiChatPanel-Cc1KscBJ.js +315 -0
- package/admin/assets/AiDatapointProvider-B0i3I5Fm.js +2 -0
- package/admin/assets/AiDiffView-RPozjjHf.js +1 -0
- package/admin/assets/AiInlineProvider-DkgjVSFQ.js +7 -0
- package/admin/assets/{Save-Cld9qv9i.js → Save-CkuNSiWL.js} +1 -1
- package/admin/assets/ScriptEditor-6qrtvwPL.js +2 -0
- package/admin/assets/ScriptEditorVanillaMonaco-bJua4sm1.js +3 -0
- package/admin/assets/applyCodeEdit-BdRnbz2g.js +1 -0
- package/admin/assets/{createSvgIcon-DPvF8xqu.js → createSvgIcon-DYs_tNrE.js} +1 -1
- package/admin/assets/docs-compact-CKNGiYh2.js +336 -0
- package/admin/assets/{index-BVPl8hv0.js → index-BZxCaQhO.js} +5 -5
- package/admin/assets/index-CYbVtccs.js +1267 -0
- package/admin/assets/index-CexrwGGC.js +986 -0
- package/admin/assets/{index-DFZipply.js → index-DsW7vBcg.js} +1 -1
- package/admin/assets/index-SHs7_wDh.js +1 -0
- package/admin/assets/{index-DlDUIfpA.js → index-dN73sbyQ.js} +1 -1
- package/admin/assets/index-wHNMOf-c.js +5 -0
- package/admin/assets/inheritsLoose-CIXm_zPk.js +29 -0
- package/admin/assets/inlineChatWidget-Cu6rb4Ar.js +2 -0
- package/admin/assets/inlineDiffController-DBLpPOe2.js +16 -0
- package/admin/assets/{iobroker_javascript__loadShare___mf_0_mui_mf_1_material__loadShare__.mjs-QWG5Arqe.js → iobroker_javascript__loadShare___mf_0_mui_mf_1_material__loadShare__.mjs-CV1_X-Lf.js} +1 -1
- package/admin/assets/{localSharedImportMap-xmSu9Qkg.js → localSharedImportMap-BCwqnmn4.js} +1 -1
- package/admin/assets/stateHoverProvider-CGChzV5W.js +3 -0
- package/admin/assets/useTheme-DuTJsNQ-.js +1 -0
- package/admin/assets/{virtual_mf-REMOTE_ENTRY_ID_iobroker_javascript__remoteEntry_js-D-eF6r8M.js → virtual_mf-REMOTE_ENTRY_ID_iobroker_javascript__remoteEntry_js-DNrEsMrg.js} +2 -2
- package/admin/custom/assets/{Components-B8x6wOMD.js → Components-B9ZyjeRI.js} +1 -1
- package/admin/custom/assets/{index-N2n19KrF.js → index-DNKzDki_.js} +152 -152
- package/admin/custom/assets/{index-DbXK0odl.js → index-NItS-TWp.js} +1 -1
- package/admin/custom/assets/index-sozs10Ij.js +960 -0
- package/admin/custom/assets/{localSharedImportMap-2Enh8EZe.js → localSharedImportMap-BxT0VwTO.js} +1 -1
- package/admin/custom/assets/{virtualExposes-CqrW7o8v.js → virtualExposes-jSvr-kK3.js} +1 -1
- package/admin/custom/assets/{virtual_mf-REMOTE_ENTRY_ID_ConfigCustomJavascriptSet__customComponents_js-BZZsMeVW.js → virtual_mf-REMOTE_ENTRY_ID_ConfigCustomJavascriptSet__customComponents_js-Br3IlnqO.js} +2 -2
- package/admin/custom/customComponents.js +1 -1
- package/admin/google-blockly/own/blocks_words.js +7 -0
- package/admin/google-blockly/own/field_oid.js +311 -37
- package/admin/i18n/de.json +8 -0
- package/admin/i18n/en.json +8 -0
- package/admin/i18n/es.json +8 -0
- package/admin/i18n/flat.txt +427 -0
- package/admin/i18n/fr.json +8 -0
- package/admin/i18n/it.json +8 -0
- package/admin/i18n/nl.json +8 -0
- package/admin/i18n/pl.json +8 -0
- package/admin/i18n/pt.json +8 -0
- package/admin/i18n/ru.json +8 -0
- package/admin/i18n/uk.json +8 -0
- package/admin/i18n/zh-cn.json +8 -0
- package/admin/img/anthropic.svg +1 -0
- package/admin/img/custom.svg +1 -0
- package/admin/img/deepseek.svg +1 -0
- package/admin/img/gemini.svg +1 -0
- package/admin/img/openai.svg +1 -0
- package/admin/jsonConfig.json +80 -18
- package/admin/mf-manifest.json +1 -1
- package/admin/remoteEntry.js +1 -1
- package/admin/tab.html +6 -6
- package/build/lib/aiProviderResolver.js +80 -0
- package/build/lib/aiProviderResolver.js.map +1 -0
- package/build/lib/anthropicAdapter.js +175 -0
- package/build/lib/anthropicAdapter.js.map +1 -0
- package/build/lib/debugger.js +2 -2
- package/build/lib/debugger.js.map +1 -1
- package/build/lib/inspect.js.map +1 -1
- package/build/lib/nodeModulesManagement.js +2 -2
- package/build/lib/nodeModulesManagement.js.map +1 -1
- package/build/lib/protectFs.js +5 -0
- package/build/lib/protectFs.js.map +1 -1
- package/build/lib/sandbox.js +9 -4
- package/build/lib/sandbox.js.map +1 -1
- package/build/main.js +190 -101
- package/build/main.js.map +1 -1
- package/build/types.d.ts +3 -0
- package/docs/de/README.md +81 -10
- package/docs/de/blockly.md +34 -0
- package/docs/en/README.md +81 -10
- package/docs/en/blockly.md +34 -0
- package/install/installTypings.js +1 -1
- package/io-package.json +82 -54
- package/package.json +7 -6
- package/admin/assets/OpenAiDialog-rhLuRLIM.js +0 -13
- package/admin/assets/ScriptEditor-C-fO5h68.js +0 -2
- package/admin/assets/ScriptEditorVanillaMonaco-DSYvOslZ.js +0 -1
- package/admin/assets/docs-BrInh2Pn.js +0 -2036
- package/admin/assets/index-C49cpVll.js +0 -5
- package/admin/assets/index-XSrHkgLE.js +0 -1230
- package/admin/assets/index-gIA8x-8f.js +0 -1
- package/admin/assets/index-q6iFaoFb.js +0 -986
- package/admin/assets/inheritsLoose-B0Ba5G9z.js +0 -29
- package/admin/assets/useTheme-hy6f3gra.js +0 -1
- package/admin/custom/assets/index-CYc31Gwg.js +0 -960
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./index-CYbVtccs.js","./virtual_mf-REMOTE_ENTRY_ID_iobroker_javascript__remoteEntry_js-DNrEsMrg.js","./preload-helper-BDBacUwf.js","./createSvgIcon-DYs_tNrE.js","./iobroker_javascript__loadShare__react__loadShare__.mjs-CTZOFJS2.js","./iobroker_javascript__loadShare__react__loadShare__.mjs_commonjs-proxy-CE9lvhW8.js","./iobroker_javascript__loadShare__prop_mf_2_types__loadShare__.mjs-BCtSFofY.js","./iobroker_javascript__loadShare__react_mf_2_dom__loadShare__.mjs_commonjs-proxy-RQRRZMX5.js","./iobroker_javascript__loadShare__react_mf_2_dom__loadShare__.mjs-DeVAS-oa.js","./iobroker_javascript__loadShare___mf_0_mui_mf_1_material__loadShare__.mjs-CV1_X-Lf.js","./iobroker_javascript__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.mjs-DkBjPSMw.js","./index-wHNMOf-c.js","./inheritsLoose-CIXm_zPk.js","./index-BTsjunTt.css","./inlineDiffController-DBLpPOe2.js","./applyCodeEdit-BdRnbz2g.js","./inlineChatWidget-Cu6rb4Ar.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{_ as g}from"./preload-helper-BDBacUwf.js";import{j as m}from"./createSvgIcon-DYs_tNrE.js";import{a as v}from"./iobroker_javascript__loadShare__react__loadShare__.mjs-CTZOFJS2.js";import{_ as T,a as N,b as M,h as A,i as w,Q as O,o as x,$ as j}from"./iobroker_javascript__loadShare___mf_0_mui_mf_1_material__loadShare__.mjs-CV1_X-Lf.js";import{n as E,Z as R}from"./index-wHNMOf-c.js";import{_ as p}from"./iobroker_javascript__loadShare___mf_0_iobroker_mf_1_adapter_mf_2_react_mf_2_v5__loadShare__.mjs-DkBjPSMw.js";import{h as V}from"./index-CYbVtccs.js";import"./iobroker_javascript__loadShare__react__loadShare__.mjs_commonjs-proxy-CE9lvhW8.js";import"./iobroker_javascript__loadShare__prop_mf_2_types__loadShare__.mjs-BCtSFofY.js";import"./virtual_mf-REMOTE_ENTRY_ID_iobroker_javascript__remoteEntry_js-DNrEsMrg.js";import"./iobroker_javascript__loadShare__react_mf_2_dom__loadShare__.mjs_commonjs-proxy-RQRRZMX5.js";import"./iobroker_javascript__loadShare__react_mf_2_dom__loadShare__.mjs-DeVAS-oa.js";import"./inheritsLoose-CIXm_zPk.js";function K(k){return/^script\.js\.global\./.test(k)}let P=0;function $(k){const t=/\x1b\[[0-9;]*m/g;return k.replace(t,"")}class tt extends v.Component{monacoDiv=null;editor=null;monaco=window.monaco;get monacoTS(){var t,e;return(e=(t=this.monaco)==null?void 0:t.languages)==null?void 0:e.typescript}insert="";originalCode;runningInstancesStr;monacoCounter=0;location;breakpoints;lastSearch="";typings={};decorations=[];datapointProviderDisposable=null;inlineProviderDisposable=null;stateHoverDisposable=null;codeLensDisposable=null;inlineChatWidgetInstance=null;inlineDiffInstance=null;inlineDiffCssInjected=!1;triggerPrettier;contentChangeDisposable=null;mouseDownDisposable=null;constructor(t){super(t),this.state={name:"current",isDark:t.isDark||!1,language:t.language||"javascript",readOnly:t.readOnly||!1,alive:!0,check:!1,searchText:this.props.searchText||"",typingsLoaded:!1,showError:null},this.triggerPrettier=t.triggerPrettier,this.runningInstancesStr=JSON.stringify(this.props.runningInstances),this.originalCode=t.code||"",this.monacoDiv=v.createRef()}waitForMonaco(t){var i,o,n,r;let e=!!((o=(i=this.monacoTS)==null?void 0:i.typescriptDefaults)!=null&&o.getCompilerOptions);if(!e||!this.props.runningInstances){if(this.monaco=window.monaco,e=!!((r=(n=this.monacoTS)==null?void 0:n.typescriptDefaults)!=null&&r.getCompilerOptions),this.monacoCounter++,!e&&this.monacoCounter<20){console.log("wait for monaco loaded"),setTimeout(()=>this.waitForMonaco(t),200);return}this.monacoCounter>=20&&console.error("Cannot load monaco!")}else t&&t()}loadTypings(t){if(!this.editor)return;t||=this.props.runningInstances;const e=t&&Object.keys(t).find(i=>t==null?void 0:t[i]);e&&this.props.socket.sendTo(e.replace("system.adapter.",""),"loadTypings",null).then(i=>{this.setState({alive:!0,check:!0,typingsLoaded:!0}),this.setTypeCheck(!0),i.typings?(this.typings=i.typings,this.setEditorTypings(this.state.name)):console.error(`failed to load typings: ${i.error}`)})}componentDidMount(){var i,o,n,r,s,d,c,a;this.undo,this.redo,this.showInlineDiff,this.getEditorSelection,this.getEditorContent,this.getCursorPosition,this.highlightLineRange,this.goToLine,this.replaceSelection,this.getDiagnostics,this.getDocumentSymbols;let t=!!((o=(i=this.monacoTS)==null?void 0:i.typescriptDefaults)!=null&&o.getCompilerOptions);if((!t||!this.props.runningInstances)&&(this.monaco=window.monaco,t=!!((r=(n=this.monacoTS)==null?void 0:n.typescriptDefaults)!=null&&r.getCompilerOptions),!t)){console.log("wait for monaco loaded..."),this.waitForMonaco(()=>this.componentDidMount());return}if(!this.editor&&t&&this.monaco){console.log("Init editor"),(d=(s=this.props).onRegisterSelect)==null||d.call(s,()=>{var l;if(this.editor){const u=this.editor.getSelection();if(u)return(l=this.editor.getModel())==null?void 0:l.getValueInRange(u)}});const h=this.monacoTS.typescriptDefaults.getCompilerOptions();h.allowJs=!0,h.checkJs=this.props.checkJs!==!1,h.noLib=!0,h.lib=[],h.useUnknownInCatchVariables=!1,h.moduleResolution=this.monacoTS.ModuleResolutionKind.NodeJs,h.target=this.monacoTS.ScriptTarget.ESNext,h.module=this.monacoTS.ModuleKind.ESNext,h.allowNonTsExtensions=!0,this.monacoTS.typescriptDefaults.setCompilerOptions(h),this.setTypeCheck(!1),(c=this.monacoDiv)!=null&&c.current&&(this.editor=this.monaco.editor.create((a=this.monacoDiv)==null?void 0:a.current,{lineNumbers:"on",scrollBeyondLastLine:!1,automaticLayout:!0,glyphMargin:!!this.props.breakpoints,colorDecorators:!0}),this.contentChangeDisposable=this.editor.onDidChangeModelContent(()=>this.onChange()),this.monaco&&!this.datapointProviderDisposable&&g(async()=>{const{registerDatapointProvider:l}=await import("./AiDatapointProvider-B0i3I5Fm.js");return{registerDatapointProvider:l}},[],import.meta.url).then(({registerDatapointProvider:l})=>{this.monaco&&(this.datapointProviderDisposable=l(this.monaco,this.props.socket))}).catch(()=>{}),this.monaco&&!this.stateHoverDisposable&&g(async()=>{const{registerStateHoverProvider:l}=await import("./stateHoverProvider-CGChzV5W.js");return{registerStateHoverProvider:l}},[],import.meta.url).then(({registerStateHoverProvider:l})=>{this.monaco&&(this.stateHoverDisposable=l(this.monaco,this.props.socket))}).catch(()=>{}),this.props.aiCompletionsEnabled&&this.monaco&&!this.inlineProviderDisposable&&g(async()=>{const{registerAiInlineProvider:l}=await import("./AiInlineProvider-DkgjVSFQ.js");return{registerAiInlineProvider:l}},[],import.meta.url).then(({registerAiInlineProvider:l})=>{this.monaco&&(this.inlineProviderDisposable=l(this.monaco,this.props.socket,this.props.runningInstances))}).catch(()=>{}),this.loadTypings(),this.props.onForceSave&&this.editor.addCommand(this.monaco.KeyMod.CtrlCmd|this.monaco.KeyCode.KeyS,()=>this.props.onForceSave&&this.props.onForceSave()),this.registerAiActions(),this.monaco&&this.editor&&this.props.onAiAction&&!this.codeLensDisposable&&g(async()=>{const{registerAiCodeLensProvider:l}=await import("./index-CYbVtccs.js").then(u=>u.o);return{registerAiCodeLensProvider:l}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13]),import.meta.url).then(({registerAiCodeLensProvider:l})=>{this.monaco&&this.editor&&this.props.onAiAction&&(this.codeLensDisposable=l(this.monaco,this.editor,(u,y,f,b,C)=>{var L,I,S;const D=(L=this.editor)==null?void 0:L.getModel(),_=D?D.getLineMaxColumn(Math.min(C,D.getLineCount())):1;(S=(I=this.props).onAiAction)==null||S.call(I,{action:u,code:y,rangeLabel:f,range:{startLine:b,startColumn:1,endLine:C,endColumn:_},kind:"codelens"})}))}).catch(()=>{}),setTimeout(()=>{this.highlightText(this.state.searchText),this.location=this.props.location||void 0,this.breakpoints=this.props.breakpoints,this.showDecorators()}))}const e={selectOnLineNumbers:!0,scrollBeyondLastLine:!1,automaticLayout:!0,readOnly:this.state.readOnly,language:this.state.language,isDark:this.state.isDark};this.setEditorOptions(e),this.editor&&(this.editor.focus(),this.editor.setValue(this.originalCode),this.props.onToggleBreakpoint&&(this.mouseDownDisposable=this.editor.onMouseDown(h=>{var u;const l=h.target;this.props.onToggleBreakpoint&&((u=l.detail)==null?void 0:u.glyphMarginLeft)!==void 0&&l.position&&this.props.onToggleBreakpoint(l.position.lineNumber-1)})))}setEditorOptions(t){var e;t&&(t.language&&this.setEditorLanguage(t.language),this.editor&&(t.readOnly!==void 0&&this.editor.updateOptions({readOnly:t.readOnly}),t.lineWrap!==void 0&&this.editor.updateOptions({wordWrap:t.lineWrap?"on":"off"})),t.typeCheck!==void 0&&this.setTypeCheck(t.typeCheck),t.isDark!==void 0&&((e=this.monaco)==null||e.editor.setTheme(t.isDark?"vs-dark":"vs")))}componentWillUnmount(){var t,e,i,o,n,r,s,d,c;(t=this.contentChangeDisposable)==null||t.dispose(),this.contentChangeDisposable=null,(e=this.mouseDownDisposable)==null||e.dispose(),this.mouseDownDisposable=null,(i=this.datapointProviderDisposable)==null||i.dispose(),this.datapointProviderDisposable=null,g(async()=>{const{clearDatapointCache:a}=await import("./AiDatapointProvider-B0i3I5Fm.js");return{clearDatapointCache:a}},[],import.meta.url).then(({clearDatapointCache:a})=>a()).catch(()=>{}),(o=this.inlineProviderDisposable)==null||o.dispose(),this.inlineProviderDisposable=null,(n=this.stateHoverDisposable)==null||n.dispose(),this.stateHoverDisposable=null,g(async()=>{const{clearStateHoverCache:a}=await import("./stateHoverProvider-CGChzV5W.js");return{clearStateHoverCache:a}},[],import.meta.url).then(({clearStateHoverCache:a})=>a()).catch(()=>{}),(r=this.codeLensDisposable)==null||r.dispose(),this.codeLensDisposable=null,(s=this.inlineChatWidgetInstance)==null||s.dispose(),this.inlineChatWidgetInstance=null,this.hideInlineDiff(),this.editor&&((c=(d=this.props).onRegisterSelect)==null||c.call(d,null),this.editor.dispose(),this.editor=null)}async doPrettier(){var i,o,n,r;const t=this.props.runningInstances&&Object.keys(this.props.runningInstances).find(s=>{var d;return(d=this.props.runningInstances)==null?void 0:d[s]});if(!t){window.alert(p.I18n.t("No script adapter instance found to format the code"));return}const e=await this.props.socket.sendTo(t.replace("system.adapter.",""),"prettier",{code:(i=this.editor)==null?void 0:i.getValue(),type:this.state.language});e.error?this.setState({showError:{title:p.I18n.t("Error formatting code"),message:$(e.error)}}):e.code&&((o=this.editor)==null||o.setValue(e.code),(r=(n=this.props).onChange)==null||r.call(n,e.code),this.showDecorators())}setEditorLanguage(t){var i,o;if(!this.editor)return;const e=this.editor.getModel();if(e){const n=e.getValue(),r=e.uri.path,s=typeof r=="string"&&r.includes(".")?r.substring(0,r.lastIndexOf(".")):"index",d=t==="javascript"?"js":t==="typescript"?"ts":t;e.dispose();const c=t==="javascript"||t==="typescript"?"typescript":t,a=(i=this.monaco)==null?void 0:i.editor.createModel(n,c,this.monaco.Uri.from({scheme:window.location.protocol.replace(":",""),path:`${s}${P++}.${d}`}));a&&(this.editor.setModel(a),(o=this.contentChangeDisposable)==null||o.dispose(),this.contentChangeDisposable=this.editor.onDidChangeModelContent(()=>this.onChange()))}}setTypeCheck(t){var i,o;const e={noSemanticValidation:!this.state.alive||!t,noSyntaxValidation:!this.state.alive};(i=this.monacoTS)==null||i.typescriptDefaults.setDiagnosticsOptions(e),(o=this.monacoTS)==null||o.javascriptDefaults.setDiagnosticsOptions({noSemanticValidation:!this.state.alive||!t,noSyntaxValidation:!this.state.alive})}setEditorTypings(t=""){var n,r,s,d;const e=K(t),i=`${t}.d.ts`,o=[];for(const c of Object.keys(this.typings))e&&(c==="global.d.ts"||c.startsWith("script.js.global")&&c!==i)||o.push({filePath:c,content:this.typings[c]});if((r=(n=this.monacoTS)==null?void 0:n.typescriptDefaults)!=null&&r.setExtraLibs)this.monacoTS.typescriptDefaults.setExtraLibs(o);else if((d=(s=this.monacoTS)==null?void 0:s.typescriptDefaults)!=null&&d.addExtraLib){const c=this.monacoTS.typescriptDefaults.getExtraLibs();o.forEach(a=>{!c[a.filePath]&&this.monaco&&this.monacoTS.typescriptDefaults.addExtraLib(a.content,a.filePath)})}}undo(){var t;(t=this.editor)==null||t.trigger("toolbar","undo",null)}redo(){var t;(t=this.editor)==null||t.trigger("toolbar","redo",null)}insertTextIntoEditor(t){if(!this.editor||!this.monaco)return;const e=this.editor.getSelection();if(e){const i=new this.monaco.Range(e.startLineNumber,e.startColumn,e.endLineNumber,e.endColumn);this.editor.executeEdits("",[{range:i,text:t,forceMoveMarkers:!0}])}this.editor.focus()}highlightText(t){var o;if(!this.editor||!this.monaco)return 0;const e=t?(o=this.editor.getModel())==null?void 0:o.findMatches(t,!0,!1,!1,null,!0):void 0;if(e!=null&&e.length)return e.forEach(n=>{var r;return(r=this.editor)==null?void 0:r.setSelection(n.range)}),this.editor.revealLine(e[0].range.startLineNumber),e.length;const i=this.editor.getPosition();if(i){const n=i.lineNumber,r=i.column;this.editor.setSelection(new this.monaco.Range(n,r,n,r))}return 0}showInlineDiff(t){if(!this.editor||!this.monaco)return;const e=this.editor,i=this.monaco;this.hideInlineDiff(),g(async()=>{const{InlineDiffController:o,INLINE_DIFF_CSS:n}=await import("./inlineDiffController-DBLpPOe2.js");return{InlineDiffController:o,INLINE_DIFF_CSS:n}},__vite__mapDeps([14,10,15]),import.meta.url).then(({InlineDiffController:o,INLINE_DIFF_CSS:n})=>{if(!this.inlineDiffCssInjected){const s=document.createElement("style");s.textContent=n,s.setAttribute("data-iob-aichat","inline-diff"),document.head.appendChild(s),this.inlineDiffCssInjected=!0}const r=new o(e,i,{range:t.range,originalText:t.originalText,modifiedText:t.modifiedText,onAccepted:()=>{var s;this.inlineDiffInstance=null,(s=t.onAccepted)==null||s.call(t)},onRejected:()=>{var s;this.inlineDiffInstance=null,(s=t.onRejected)==null||s.call(t)}});this.inlineDiffInstance=r,r.show()}).catch(()=>{})}hideInlineDiff(){if(this.inlineDiffInstance){try{this.inlineDiffInstance.dispose()}catch{}this.inlineDiffInstance=null}}showInlineChatWidget(){if(!this.editor||!this.monaco||!this.props.onInlineAsk)return;if(this.inlineChatWidgetInstance){this.inlineChatWidgetInstance.show();return}const t=this.editor,e=this.monaco,i=this.props.onInlineAsk,o=this.props.onAiAction;g(async()=>{const{InlineChatWidget:n}=await import("./inlineChatWidget-Cu6rb4Ar.js");return{InlineChatWidget:n}},__vite__mapDeps([16,10,15]),import.meta.url).then(({InlineChatWidget:n})=>{const r=new n(t,e,{onSubmit:async s=>i({question:s.question,selectedCode:s.selectedCode}),onEscalateToChat:s=>{o&&o({action:"ask",code:s.selectedCode,question:s.question,rangeLabel:s.range?`lines ${s.range.startLineNumber}-${s.range.endLineNumber}`:"whole file"})}});this.inlineChatWidgetInstance=r,r.show()}).catch(()=>{})}registerAiActions(){if(!this.editor||!this.monaco||!this.props.onAiAction)return;const t=this.monaco,e=(o,n={})=>{if(!this.editor||!this.props.onAiAction)return;const r=this.editor.getModel();if(!r)return;const s=this.editor.getSelection(),d=s&&!s.isEmpty();let c,a,h,l="selection";if(d)c=r.getValueInRange(s),a=s.startLineNumber===s.endLineNumber?`line ${s.startLineNumber}`:`lines ${s.startLineNumber}-${s.endLineNumber}`,h={startLine:s.startLineNumber,startColumn:s.startColumn,endLine:s.endLineNumber,endColumn:s.endColumn},l="selection";else{const u=this.editor.getPosition();let y=null;if(u)try{y=V(r.getValue(),u.lineNumber)}catch{}if(y){const f=y.startLine,b=y.endLine,C=r.getLineMaxColumn(b),D=new t.Range(f,1,b,C);c=r.getValueInRange(D),a=f===b?`line ${f}`:`lines ${f}-${b}`,h={startLine:f,startColumn:1,endLine:b,endColumn:C},l="codelens"}else c=r.getValue(),a="whole file",l="none"}this.props.onAiAction({action:o,code:c,rangeLabel:a,range:h,kind:l,...n})},i=[{id:"iobroker.ai.inline",label:`🤖 ${p.I18n.t("AI: Inline chat…")}`,keybindings:[t.KeyMod.CtrlCmd|t.KeyMod.Alt|t.KeyCode.KeyI],order:1,run:()=>{if(this.props.onInlineAsk)this.showInlineChatWidget();else{const o=window.prompt(p.I18n.t("Ask the AI about the selected code:"));o&&o.trim()&&e("ask",{question:o.trim()})}}},{id:"iobroker.ai.explain",label:`💡 ${p.I18n.t("AI: Explain")}`,keybindings:[t.KeyMod.CtrlCmd|t.KeyMod.Alt|t.KeyCode.KeyE],order:2,run:()=>e("explain")},{id:"iobroker.ai.refactor",label:`🔧 ${p.I18n.t("AI: Refactor")}`,keybindings:[t.KeyMod.CtrlCmd|t.KeyMod.Alt|t.KeyCode.KeyR],order:3,run:()=>e("refactor")},{id:"iobroker.ai.comment",label:`💬 ${p.I18n.t("AI: Add comments")}`,keybindings:[t.KeyMod.CtrlCmd|t.KeyMod.Alt|t.KeyCode.KeyC],order:4,run:()=>e("comment")},{id:"iobroker.ai.fix",label:`🛠️ ${p.I18n.t("AI: Fix problem")}`,keybindings:[t.KeyMod.CtrlCmd|t.KeyMod.Alt|t.KeyCode.KeyF],order:5,run:()=>{var n,r;let o;try{const s=(n=this.editor)==null?void 0:n.getModel(),d=(r=this.editor)==null?void 0:r.getPosition();if(s&&d){const a=t.editor.getModelMarkers({resource:s.uri}).find(h=>d.lineNumber>=h.startLineNumber&&d.lineNumber<=h.endLineNumber);a&&(o=a.message)}}catch{}e("fix",{diagnostic:o})}},{id:"iobroker.ai.tests",label:`✅ ${p.I18n.t("AI: Suggest tests")}`,order:6,run:()=>e("tests")}];for(const o of i)try{this.editor.addAction({id:o.id,label:o.label,contextMenuGroupId:"aichat",contextMenuOrder:o.order,keybindings:o.keybindings,run:()=>o.run()})}catch{}}getEditorSelection(){if(!this.editor)return null;const t=this.editor.getSelection();if(!t||t.isEmpty())return null;const e=this.editor.getModel();return e?{text:e.getValueInRange(t),range:{startLine:t.startLineNumber,startColumn:t.startColumn,endLine:t.endLineNumber,endColumn:t.endColumn}}:null}getEditorContent(){var t,e;return((e=(t=this.editor)==null?void 0:t.getModel())==null?void 0:e.getValue())??""}getCursorPosition(){var e;const t=(e=this.editor)==null?void 0:e.getPosition();return t?{line:t.lineNumber,column:t.column}:null}highlightLineRange(t,e){if(!this.editor||!this.monaco)return!1;const i=this.editor.getModel();if(!i)return!1;const o=i.getLineCount(),n=Math.max(1,Math.min(t,o)),r=Math.max(n,Math.min(e,o)),s=i.getLineMaxColumn(r);return this.editor.setSelection(new this.monaco.Range(n,1,r,s)),this.editor.revealLineInCenter(n),!0}goToLine(t,e=1){if(!this.editor||!this.monaco)return!1;const i=this.editor.getModel();if(!i)return!1;const o=i.getLineCount(),n=Math.max(1,Math.min(t,o));return this.editor.setPosition({lineNumber:n,column:e}),this.editor.revealLineInCenter(n),this.editor.focus(),!0}replaceSelection(t){if(!this.editor||!this.monaco)return!1;const e=this.editor.getSelection();if(!e)return!1;const i=new this.monaco.Range(e.startLineNumber,e.startColumn,e.endLineNumber,e.endColumn);return this.editor.executeEdits("",[{range:i,text:t,forceMoveMarkers:!0}]),this.editor.focus(),!0}getDiagnostics(){if(!this.editor||!this.monaco)return[];const t=this.editor.getModel();if(!t)return[];const e=this.monaco.editor.getModelMarkers({resource:t.uri}),i={8:"error",4:"warning",2:"info",1:"hint"};return e.map(o=>({line:o.startLineNumber,column:o.startColumn,endLine:o.endLineNumber,endColumn:o.endColumn,severity:i[o.severity]||"info",message:o.message,...o.source?{source:o.source}:{}}))}async getDocumentSymbols(){var i;if(!this.editor||!this.monaco)return[];const t=this.editor.getModel();if(!t)return[];const e=[];try{const o=this.monaco.languages,n=(i=o.getDocumentSymbolProviders)==null?void 0:i.call(o,t);if(n!=null&&n.length){const r={0:"file",1:"module",2:"namespace",3:"package",4:"class",5:"method",6:"property",7:"field",8:"constructor",9:"enum",10:"interface",11:"function",12:"variable",13:"constant",14:"string",15:"number",16:"boolean",17:"array",18:"object",19:"key",20:"null",21:"enum-member",22:"struct",23:"event",24:"operator",25:"type-parameter"};for(const s of n){const d={isCancellationRequested:!1},c=await s.provideDocumentSymbols(t,d);if(!c)continue;const a=h=>{var l;for(const u of h)e.push({name:u.name,kind:r[u.kind]||String(u.kind),line:u.range.startLineNumber,endLine:u.range.endLineNumber,...u.detail?{detail:u.detail}:{}}),(l=u.children)!=null&&l.length&&a(u.children)};if(a(c),e.length)break}}}catch{}if(e.length===0){const n=t.getValue().split(`
|
|
3
|
+
`),r=[{re:/^(?:export\s+)?(?:async\s+)?function\s+(\w+)/,kind:"function"},{re:/^(?:export\s+)?class\s+(\w+)/,kind:"class"},{re:/^(?:export\s+)?(?:const|let|var)\s+(\w+)/,kind:"variable"}];for(let s=0;s<n.length;s++){const d=n[s].trim();for(const{re:c,kind:a}of r){const h=c.exec(d);if(h!=null&&h[1]){e.push({name:h[1],kind:a,line:s+1,endLine:s+1});break}}}}return e}showDecorators(){var e;const t=[];if(this.location&&this.monaco&&(t.push({range:new this.monaco.Range(this.location.lineNumber+1,(this.location.columnNumber||0)+1,this.location.lineNumber+1,1e3),options:{isWholeLine:!1,className:this.props.isDark?"monacoCurrentLineDark":"monacoCurrentLine"}}),t.push({range:new this.monaco.Range(this.location.lineNumber+1,0,this.location.lineNumber+1,0),options:{isWholeLine:!0,className:this.props.isDark?"monacoCurrentFullLineDark":"monacoCurrentFullLine"}})),(e=this.breakpoints)==null||e.forEach(i=>{this.monaco&&t.push({range:new this.monaco.Range(i.location.lineNumber+1,0,i.location.lineNumber+1,100),options:{isWholeLine:!0,glyphMarginClassName:this.props.isDark?"monacoBreakPointDark":"monacoBreakPoint"}})}),this.editor){const i=this.editor.getModel();i&&(this.decorations=i.deltaDecorations(this.decorations,t))}}initNewScript(t,e){var i;this.setState({name:t}),this.originalCode=e||"",(i=this.editor)==null||i.setValue(e||""),this.highlightText(this.lastSearch),this.showDecorators(),this.setEditorTypings(t)}scrollToLineIfNeeded(t){if(this.editor){const e=this.editor.getVisibleRanges();(!e||!e[0]||e[0].startLineNumber>t||t>e[0].endLineNumber)&&this.editor.revealLineInCenter(t)}}UNSAFE_componentWillReceiveProps(t){const e={};this.state.name!==t.name&&this.initNewScript(t.name,t.code),JSON.stringify(t.runningInstances)!==this.runningInstancesStr&&(this.runningInstancesStr=JSON.stringify(t.runningInstances),this.state.typingsLoaded||this.loadTypings(t.runningInstances)),this.editor&&!t.changed&&(t.code!==this.originalCode||t.code!==this.editor.getValue())&&(this.originalCode=t.code||"",this.editor.setValue(this.originalCode),this.showDecorators(),this.location&&this.scrollToLineIfNeeded(this.location.lineNumber+1)),t.searchText!==this.lastSearch&&(this.lastSearch=t.searchText||"",this.highlightText(this.lastSearch)),JSON.stringify(t.location)!==JSON.stringify(this.location)&&JSON.stringify(t.breakpoints)!==JSON.stringify(this.breakpoints)?(this.location=t.location||void 0,this.breakpoints=t.breakpoints,this.showDecorators(),this.editor&&this.location&&this.scrollToLineIfNeeded(this.location.lineNumber+1)):JSON.stringify(t.breakpoints)!==JSON.stringify(this.breakpoints)?(this.breakpoints=t.breakpoints,this.showDecorators()):JSON.stringify(t.location)!==JSON.stringify(this.location)&&(this.location=t.location||void 0,this.showDecorators(),this.editor&&this.location&&this.scrollToLineIfNeeded(this.location.lineNumber+1)),this.state.language!==(t.language||"javascript")?(this.setState({language:t.language||"javascript"}),e.language=t.language||"javascript"):this.state.readOnly!==(t.readOnly||!1)?(this.setState({readOnly:t.readOnly||!1}),e.readOnly=t.readOnly):this.state.isDark!==(t.isDark||!1)&&(this.setState({isDark:t.isDark||!1}),e.isDark=t.isDark),this.setEditorOptions(e),t.aiCompletionsEnabled!==this.props.aiCompletionsEnabled&&(t.aiCompletionsEnabled&&this.monaco&&!this.inlineProviderDisposable?g(async()=>{const{registerAiInlineProvider:i}=await import("./AiInlineProvider-DkgjVSFQ.js");return{registerAiInlineProvider:i}},[],import.meta.url).then(({registerAiInlineProvider:i})=>{this.monaco&&(this.inlineProviderDisposable=i(this.monaco,this.props.socket,this.props.runningInstances))}).catch(()=>{}):!t.aiCompletionsEnabled&&this.inlineProviderDisposable&&(this.inlineProviderDisposable.dispose(),this.inlineProviderDisposable=null)),this.insert!==t.insert&&(this.insert=t.insert||"",this.insert&&(console.log(`Insert text: ${this.insert}`),setTimeout(i=>{this.insertTextIntoEditor(i),setTimeout(()=>this.props.onInserted&&this.props.onInserted(),100)},100,this.insert)))}onChange(){var t,e;!this.props.readOnly&&this.editor&&((e=(t=this.props).onChange)==null||e.call(t,this.editor.getValue()))}renderErrorDialog(){return this.state.showError?this.state.showError.full?m.jsxs(T,{open:!0,maxWidth:"md",onClose:()=>this.setState({showError:null}),children:[m.jsx(N,{children:this.state.showError.title||p.I18n.t("Error")}),m.jsx(M,{children:m.jsx("pre",{children:m.jsx("code",{children:this.state.showError.message})})}),m.jsx(A,{children:m.jsxs(w,{variant:"contained",startIcon:m.jsx(E,{}),onClick:()=>this.setState({showError:null}),children:[p.I18n.t("Close")," "]})})]}):m.jsx(O,{open:!0,autoHideDuration:5e3,onClose:()=>this.setState({showError:null}),message:this.state.showError.title,action:m.jsxs(v.Fragment,{children:[m.jsx(w,{color:"secondary",size:"small",onClick:()=>this.setState({showError:{...this.state.showError,full:!0}}),children:p.I18n.t("More")}),m.jsx(x,{size:"small","aria-label":"close",color:"inherit",onClick:()=>this.setState({showError:null}),children:m.jsx(E,{fontSize:"small"})})]})}):null}render(){var t;return!((t=this.monacoTS)!=null&&t.typescriptDefaults)||!this.props.runningInstances?(setTimeout(()=>{this.monaco=window.monaco,this.forceUpdate()},200),null):(this.props.triggerPrettier!==this.triggerPrettier&&(this.triggerPrettier=this.props.triggerPrettier,setTimeout(()=>this.doPrettier().catch(e=>console.error("Error formatting code:",e)),50)),m.jsxs("div",{ref:this.monacoDiv,style:{...this.props.style,width:"100%",height:"100%",overflow:"hidden",position:"relative"},children:[this.renderErrorDialog(),!this.state.check&&m.jsx(j,{size:"small",title:p.I18n.t("Check is not active, because javascript adapter is disabled"),style:{bottom:10,right:10,opacity:.5,position:"absolute",zIndex:1,background:"red",color:"white"},color:"secondary",children:m.jsx(R,{})})]}))}}export{tt as default};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
function C(t,l,n,c,o={}){if(!t||!l)return!1;const s=t.getModel();if(!s)return!1;const r=o.source||"ai",f=o.focusAfter!==!1;let u;if(n){const e=s.getLineCount(),a=Math.max(1,Math.min(n.startLine,e)),i=Math.max(a,Math.min(n.endLine,e)),m=Math.max(1,n.startColumn),M=Math.min(n.endColumn,s.getLineMaxColumn(i));u=new l.Range(a,m,i,M)}else if(o.fallbackInsertAt==="end"){const e=s.getLineCount(),a=s.getLineMaxColumn(e);u=new l.Range(e,a,e,a)}else{const e=t.getPosition()??{lineNumber:1,column:1};u=new l.Range(e.lineNumber,e.column,e.lineNumber,e.column)}return t.executeEdits(r,[{range:u,text:c,forceMoveMarkers:!0}]),f&&t.focus(),!0}export{C as a};
|
|
@@ -5,4 +5,4 @@ const theme = ${JSON.stringify(t,null,2)};
|
|
|
5
5
|
theme.breakpoints = createBreakpoints(theme.breakpoints || {});
|
|
6
6
|
theme.transitions = createTransitions(theme.transitions || {});
|
|
7
7
|
|
|
8
|
-
export default theme;`}function Ue(e={},...t){const{breakpoints:r,mixins:n={},spacing:a,palette:o={},transitions:s={},typography:c={},shape:u,...f}=e;if(e.vars&&e.generateThemeVars===void 0)throw new Error(ce(20));const p=Yt(o),d=Ht(e);let m=H(d,{mixins:Go(d.breakpoints,n),palette:p,shadows:qo.slice(),typography:Ko(p,c),transitions:Jo(s),zIndex:{...ei}});return m=H(m,f),m=t.reduce((S,g)=>H(S,g),m),m.unstable_sxConfig={...pt,...f==null?void 0:f.unstable_sxConfig},m.unstable_sx=function(g){return Se({sx:g,theme:this})},m.toRuntimeSource=Zr,m}function Ii(...e){return Ue(...e)}function ri(e){let t;return e<1?t=5.11916*e**2:t=4.5*Math.log(e+1)+2,Math.round(t*10)/1e3}const ni=[...Array(25)].map((e,t)=>{if(t===0)return"none";const r=ri(t);return`linear-gradient(rgba(255 255 255 / ${r}), rgba(255 255 255 / ${r}))`});function Jr(e){return{inputPlaceholder:e==="dark"?.5:.42,inputUnderline:e==="dark"?.7:.42,switchTrackDisabled:e==="dark"?.2:.12,switchTrack:e==="dark"?.3:.38}}function en(e){return e==="dark"?ni:[]}function ai(e){const{palette:t={mode:"light"},opacity:r,overlays:n,...a}=e,o=Yt(t);return{palette:o,opacity:{...Jr(o.mode),...r},overlays:n||en(o.mode),...a}}function oi(e){var t;return!!e[0].match(/(cssVarPrefix|colorSchemeSelector|modularCssLayers|rootSelector|typography|mixins|breakpoints|direction|transitions)/)||!!e[0].match(/sxConfig$/)||e[0]==="palette"&&!!((t=e[1])!=null&&t.match(/(mode|contrastThreshold|tonalOffset)/))}const ii=e=>[...[...Array(25)].map((t,r)=>`--${e?`${e}-`:""}overlays-${r}`),`--${e?`${e}-`:""}palette-AppBar-darkBg`,`--${e?`${e}-`:""}palette-AppBar-darkColor`],si=e=>(t,r)=>{const n=e.rootSelector||":root",a=e.colorSchemeSelector;let o=a;if(a==="class"&&(o=".%s"),a==="data"&&(o="[data-%s]"),a!=null&&a.startsWith("data-")&&!a.includes("%s")&&(o=`[${a}="%s"]`),e.defaultColorScheme===t){if(t==="dark"){const s={};return ii(e.cssVarPrefix).forEach(c=>{s[c]=r[c],delete r[c]}),o==="media"?{[n]:r,"@media (prefers-color-scheme: dark)":{[n]:s}}:o?{[o.replace("%s",t)]:s,[`${n}, ${o.replace("%s",t)}`]:r}:{[n]:{...r,...s}}}if(o&&o!=="media")return`${n}, ${o.replace("%s",String(t))}`}else if(t){if(o==="media")return{[`@media (prefers-color-scheme: ${String(t)})`]:{[n]:r}};if(o)return o.replace("%s",String(t))}return n};function ci(e,t){t.forEach(r=>{e[r]||(e[r]={})})}function l(e,t,r){!e[t]&&r&&(e[t]=r)}function Te(e){return typeof e!="string"||!e.startsWith("hsl")?e:Yr(e)}function re(e,t){`${t}Channel`in e||(e[`${t}Channel`]=Ae(Te(e[t])))}function li(e){return typeof e=="number"?`${e}px`:typeof e=="string"||typeof e=="function"||Array.isArray(e)?e:"8px"}const Z=e=>{try{return e()}catch{}},ui=(e="mui")=>Oo(e);function St(e,t,r,n){if(!t)return;t=t===!0?{}:t;const a=n==="dark"?"dark":"light";if(!r){e[n]=ai({...t,palette:{mode:a,...t==null?void 0:t.palette}});return}const{palette:o,...s}=Ue({...r,palette:{mode:a,...t==null?void 0:t.palette}});return e[n]={...t,palette:o,opacity:{...Jr(a),...t==null?void 0:t.opacity},overlays:(t==null?void 0:t.overlays)||en(a)},s}function fi(e={},...t){const{colorSchemes:r={light:!0},defaultColorScheme:n,disableCssColorScheme:a=!1,cssVarPrefix:o="mui",shouldSkipGeneratingVar:s=oi,colorSchemeSelector:c=r.light&&r.dark?"media":void 0,rootSelector:u=":root",...f}=e,p=Object.keys(r)[0],d=n||(r.light&&p!=="light"?"light":p),m=ui(o),{[d]:S,light:g,dark:h,...b}=r,v={...b};let A=S;if((d==="dark"&&!("dark"in r)||d==="light"&&!("light"in r))&&(A=!0),!A)throw new Error(ce(21,d));const x=St(v,A,f,d);g&&!v.light&&St(v,g,void 0,"light"),h&&!v.dark&&St(v,h,void 0,"dark");let w={defaultColorScheme:d,...x,cssVarPrefix:o,colorSchemeSelector:c,rootSelector:u,getCssVar:m,colorSchemes:v,font:{...Wo(x.typography),...x.font},spacing:li(f.spacing)};Object.keys(w.colorSchemes).forEach(F=>{const i=w.colorSchemes[F].palette,y=T=>{const _=T.split("-"),Y=_[1],G=_[2];return m(T,i[Y][G])};if(i.mode==="light"&&(l(i.common,"background","#fff"),l(i.common,"onBackground","#000")),i.mode==="dark"&&(l(i.common,"background","#000"),l(i.common,"onBackground","#fff")),ci(i,["Alert","AppBar","Avatar","Button","Chip","FilledInput","LinearProgress","Skeleton","Slider","SnackbarContent","SpeedDialAction","StepConnector","StepContent","Switch","TableCell","Tooltip"]),i.mode==="light"){l(i.Alert,"errorColor",E(i.error.light,.6)),l(i.Alert,"infoColor",E(i.info.light,.6)),l(i.Alert,"successColor",E(i.success.light,.6)),l(i.Alert,"warningColor",E(i.warning.light,.6)),l(i.Alert,"errorFilledBg",y("palette-error-main")),l(i.Alert,"infoFilledBg",y("palette-info-main")),l(i.Alert,"successFilledBg",y("palette-success-main")),l(i.Alert,"warningFilledBg",y("palette-warning-main")),l(i.Alert,"errorFilledColor",Z(()=>i.getContrastText(i.error.main))),l(i.Alert,"infoFilledColor",Z(()=>i.getContrastText(i.info.main))),l(i.Alert,"successFilledColor",Z(()=>i.getContrastText(i.success.main))),l(i.Alert,"warningFilledColor",Z(()=>i.getContrastText(i.warning.main))),l(i.Alert,"errorStandardBg",R(i.error.light,.9)),l(i.Alert,"infoStandardBg",R(i.info.light,.9)),l(i.Alert,"successStandardBg",R(i.success.light,.9)),l(i.Alert,"warningStandardBg",R(i.warning.light,.9)),l(i.Alert,"errorIconColor",y("palette-error-main")),l(i.Alert,"infoIconColor",y("palette-info-main")),l(i.Alert,"successIconColor",y("palette-success-main")),l(i.Alert,"warningIconColor",y("palette-warning-main")),l(i.AppBar,"defaultBg",y("palette-grey-100")),l(i.Avatar,"defaultBg",y("palette-grey-400")),l(i.Button,"inheritContainedBg",y("palette-grey-300")),l(i.Button,"inheritContainedHoverBg",y("palette-grey-A100")),l(i.Chip,"defaultBorder",y("palette-grey-400")),l(i.Chip,"defaultAvatarColor",y("palette-grey-700")),l(i.Chip,"defaultIconColor",y("palette-grey-700")),l(i.FilledInput,"bg","rgba(0, 0, 0, 0.06)"),l(i.FilledInput,"hoverBg","rgba(0, 0, 0, 0.09)"),l(i.FilledInput,"disabledBg","rgba(0, 0, 0, 0.12)"),l(i.LinearProgress,"primaryBg",R(i.primary.main,.62)),l(i.LinearProgress,"secondaryBg",R(i.secondary.main,.62)),l(i.LinearProgress,"errorBg",R(i.error.main,.62)),l(i.LinearProgress,"infoBg",R(i.info.main,.62)),l(i.LinearProgress,"successBg",R(i.success.main,.62)),l(i.LinearProgress,"warningBg",R(i.warning.main,.62)),l(i.Skeleton,"bg",`rgba(${y("palette-text-primaryChannel")} / 0.11)`),l(i.Slider,"primaryTrack",R(i.primary.main,.62)),l(i.Slider,"secondaryTrack",R(i.secondary.main,.62)),l(i.Slider,"errorTrack",R(i.error.main,.62)),l(i.Slider,"infoTrack",R(i.info.main,.62)),l(i.Slider,"successTrack",R(i.success.main,.62)),l(i.Slider,"warningTrack",R(i.warning.main,.62));const T=je(i.background.default,.8);l(i.SnackbarContent,"bg",T),l(i.SnackbarContent,"color",Z(()=>i.getContrastText(T))),l(i.SpeedDialAction,"fabHoverBg",je(i.background.paper,.15)),l(i.StepConnector,"border",y("palette-grey-400")),l(i.StepContent,"border",y("palette-grey-400")),l(i.Switch,"defaultColor",y("palette-common-white")),l(i.Switch,"defaultDisabledColor",y("palette-grey-100")),l(i.Switch,"primaryDisabledColor",R(i.primary.main,.62)),l(i.Switch,"secondaryDisabledColor",R(i.secondary.main,.62)),l(i.Switch,"errorDisabledColor",R(i.error.main,.62)),l(i.Switch,"infoDisabledColor",R(i.info.main,.62)),l(i.Switch,"successDisabledColor",R(i.success.main,.62)),l(i.Switch,"warningDisabledColor",R(i.warning.main,.62)),l(i.TableCell,"border",R(Me(i.divider,1),.88)),l(i.Tooltip,"bg",Me(i.grey[700],.92))}if(i.mode==="dark"){l(i.Alert,"errorColor",R(i.error.light,.6)),l(i.Alert,"infoColor",R(i.info.light,.6)),l(i.Alert,"successColor",R(i.success.light,.6)),l(i.Alert,"warningColor",R(i.warning.light,.6)),l(i.Alert,"errorFilledBg",y("palette-error-dark")),l(i.Alert,"infoFilledBg",y("palette-info-dark")),l(i.Alert,"successFilledBg",y("palette-success-dark")),l(i.Alert,"warningFilledBg",y("palette-warning-dark")),l(i.Alert,"errorFilledColor",Z(()=>i.getContrastText(i.error.dark))),l(i.Alert,"infoFilledColor",Z(()=>i.getContrastText(i.info.dark))),l(i.Alert,"successFilledColor",Z(()=>i.getContrastText(i.success.dark))),l(i.Alert,"warningFilledColor",Z(()=>i.getContrastText(i.warning.dark))),l(i.Alert,"errorStandardBg",E(i.error.light,.9)),l(i.Alert,"infoStandardBg",E(i.info.light,.9)),l(i.Alert,"successStandardBg",E(i.success.light,.9)),l(i.Alert,"warningStandardBg",E(i.warning.light,.9)),l(i.Alert,"errorIconColor",y("palette-error-main")),l(i.Alert,"infoIconColor",y("palette-info-main")),l(i.Alert,"successIconColor",y("palette-success-main")),l(i.Alert,"warningIconColor",y("palette-warning-main")),l(i.AppBar,"defaultBg",y("palette-grey-900")),l(i.AppBar,"darkBg",y("palette-background-paper")),l(i.AppBar,"darkColor",y("palette-text-primary")),l(i.Avatar,"defaultBg",y("palette-grey-600")),l(i.Button,"inheritContainedBg",y("palette-grey-800")),l(i.Button,"inheritContainedHoverBg",y("palette-grey-700")),l(i.Chip,"defaultBorder",y("palette-grey-700")),l(i.Chip,"defaultAvatarColor",y("palette-grey-300")),l(i.Chip,"defaultIconColor",y("palette-grey-300")),l(i.FilledInput,"bg","rgba(255, 255, 255, 0.09)"),l(i.FilledInput,"hoverBg","rgba(255, 255, 255, 0.13)"),l(i.FilledInput,"disabledBg","rgba(255, 255, 255, 0.12)"),l(i.LinearProgress,"primaryBg",E(i.primary.main,.5)),l(i.LinearProgress,"secondaryBg",E(i.secondary.main,.5)),l(i.LinearProgress,"errorBg",E(i.error.main,.5)),l(i.LinearProgress,"infoBg",E(i.info.main,.5)),l(i.LinearProgress,"successBg",E(i.success.main,.5)),l(i.LinearProgress,"warningBg",E(i.warning.main,.5)),l(i.Skeleton,"bg",`rgba(${y("palette-text-primaryChannel")} / 0.13)`),l(i.Slider,"primaryTrack",E(i.primary.main,.5)),l(i.Slider,"secondaryTrack",E(i.secondary.main,.5)),l(i.Slider,"errorTrack",E(i.error.main,.5)),l(i.Slider,"infoTrack",E(i.info.main,.5)),l(i.Slider,"successTrack",E(i.success.main,.5)),l(i.Slider,"warningTrack",E(i.warning.main,.5));const T=je(i.background.default,.98);l(i.SnackbarContent,"bg",T),l(i.SnackbarContent,"color",Z(()=>i.getContrastText(T))),l(i.SpeedDialAction,"fabHoverBg",je(i.background.paper,.15)),l(i.StepConnector,"border",y("palette-grey-600")),l(i.StepContent,"border",y("palette-grey-600")),l(i.Switch,"defaultColor",y("palette-grey-300")),l(i.Switch,"defaultDisabledColor",y("palette-grey-600")),l(i.Switch,"primaryDisabledColor",E(i.primary.main,.55)),l(i.Switch,"secondaryDisabledColor",E(i.secondary.main,.55)),l(i.Switch,"errorDisabledColor",E(i.error.main,.55)),l(i.Switch,"infoDisabledColor",E(i.info.main,.55)),l(i.Switch,"successDisabledColor",E(i.success.main,.55)),l(i.Switch,"warningDisabledColor",E(i.warning.main,.55)),l(i.TableCell,"border",E(Me(i.divider,1),.68)),l(i.Tooltip,"bg",Me(i.grey[700],.92))}re(i.background,"default"),re(i.background,"paper"),re(i.common,"background"),re(i.common,"onBackground"),re(i,"divider"),Object.keys(i).forEach(T=>{const _=i[T];T!=="tonalOffset"&&_&&typeof _=="object"&&(_.main&&l(i[T],"mainChannel",Ae(Te(_.main))),_.light&&l(i[T],"lightChannel",Ae(Te(_.light))),_.dark&&l(i[T],"darkChannel",Ae(Te(_.dark))),_.contrastText&&l(i[T],"contrastTextChannel",Ae(Te(_.contrastText))),T==="text"&&(re(i[T],"primary"),re(i[T],"secondary")),T==="action"&&(_.active&&re(i[T],"active"),_.selected&&re(i[T],"selected")))})}),w=t.reduce((F,i)=>H(F,i),w);const $={prefix:o,disableCssColorScheme:a,shouldSkipGeneratingVar:s,getSelector:si(w)},{vars:k,generateThemeVars:C,generateStyleSheets:N}=Ro(w,$);return w.vars=k,Object.entries(w.colorSchemes[w.defaultColorScheme]).forEach(([F,i])=>{w[F]=i}),w.generateThemeVars=C,w.generateStyleSheets=N,w.generateSpacing=function(){return Gr(f.spacing,Wt(this))},w.getColorSchemeSelector=Bo(c),w.spacing=w.generateSpacing(),w.shouldSkipGeneratingVar=s,w.unstable_sxConfig={...pt,...f==null?void 0:f.unstable_sxConfig},w.unstable_sx=function(i){return Se({sx:i,theme:this})},w.toRuntimeSource=Zr,w}function br(e,t,r){e.colorSchemes&&r&&(e.colorSchemes[t]={...r!==!0&&r,palette:Yt({...r===!0?{}:r.palette,mode:t})})}function di(e={},...t){const{palette:r,cssVariables:n=!1,colorSchemes:a=r?void 0:{light:!0},defaultColorScheme:o=r==null?void 0:r.mode,...s}=e,c=o||"light",u=a==null?void 0:a[c],f={...a,...r?{[c]:{...typeof u!="boolean"&&u,palette:r}}:void 0};if(n===!1){if(!("colorSchemes"in e))return Ue(e,...t);let p=r;"palette"in e||f[c]&&(f[c]!==!0?p=f[c].palette:c==="dark"&&(p={mode:"dark"}));const d=Ue({...e,palette:p},...t);return d.defaultColorScheme=c,d.colorSchemes=f,d.palette.mode==="light"&&(d.colorSchemes.light={...f.light!==!0&&f.light,palette:d.palette},br(d,"dark",f.dark)),d.palette.mode==="dark"&&(d.colorSchemes.dark={...f.dark!==!0&&f.dark,palette:d.palette},br(d,"light",f.light)),d}return!r&&!("light"in f)&&c==="light"&&(f.light=!0),fi({...s,colorSchemes:f,defaultColorScheme:c,...typeof n!="boolean"&&n},...t)}const mi=di();function pi(e){return e!=="ownerState"&&e!=="theme"&&e!=="sx"&&e!=="as"}const hi=e=>pi(e)&&e!=="classes",gi=mo({themeId:fn,defaultTheme:mi,rootShouldForwardProp:hi}),yi=Po;function bi(e){return $o(e)}function Si(e){return Kr("MuiSvgIcon",e)}const Fi=co("MuiSvgIcon",["root","colorPrimary","colorSecondary","colorAction","colorError","colorDisabled","fontSizeInherit","fontSizeSmall","fontSizeMedium","fontSizeLarge"]),vi=e=>{const{color:t,fontSize:r,classes:n}=e,a={root:["root",t!=="inherit"&&`color${be(t)}`,`fontSize${be(r)}`]};return Ao(a,Si,n)},Ci=gi("svg",{name:"MuiSvgIcon",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:r}=e;return[t.root,r.color!=="inherit"&&t[`color${be(r.color)}`],t[`fontSize${be(r.fontSize)}`]]}})(yi(({theme:e})=>{var t,r,n,a,o,s,c,u,f,p,d,m,S,g;return{userSelect:"none",width:"1em",height:"1em",display:"inline-block",flexShrink:0,transition:(a=(t=e.transitions)==null?void 0:t.create)==null?void 0:a.call(t,"fill",{duration:(n=(r=(e.vars??e).transitions)==null?void 0:r.duration)==null?void 0:n.shorter}),variants:[{props:h=>!h.hasSvgAsChild,style:{fill:"currentColor"}},{props:{fontSize:"inherit"},style:{fontSize:"inherit"}},{props:{fontSize:"small"},style:{fontSize:((s=(o=e.typography)==null?void 0:o.pxToRem)==null?void 0:s.call(o,20))||"1.25rem"}},{props:{fontSize:"medium"},style:{fontSize:((u=(c=e.typography)==null?void 0:c.pxToRem)==null?void 0:u.call(c,24))||"1.5rem"}},{props:{fontSize:"large"},style:{fontSize:((p=(f=e.typography)==null?void 0:f.pxToRem)==null?void 0:p.call(f,35))||"2.1875rem"}},...Object.entries((e.vars??e).palette).filter(([,h])=>h&&h.main).map(([h])=>{var b,v;return{props:{color:h},style:{color:(v=(b=(e.vars??e).palette)==null?void 0:b[h])==null?void 0:v.main}}}),{props:{color:"action"},style:{color:(m=(d=(e.vars??e).palette)==null?void 0:d.action)==null?void 0:m.active}},{props:{color:"disabled"},style:{color:(g=(S=(e.vars??e).palette)==null?void 0:S.action)==null?void 0:g.disabled}},{props:{color:"inherit"},style:{color:void 0}}]}})),Pt=_t(function(t,r){const n=bi({props:t,name:"MuiSvgIcon"}),{children:a,className:o,color:s="inherit",component:c="svg",fontSize:u="medium",htmlColor:f,inheritViewBox:p=!1,titleAccess:d,viewBox:m="0 0 24 24",...S}=n,g=Et(a)&&a.type==="svg",h={...n,color:s,component:c,fontSize:u,instanceFontSize:t.fontSize,inheritViewBox:p,viewBox:m,hasSvgAsChild:g},b={};p||(b.viewBox=m);const v=vi(h);return Ge.jsxs(Ci,{as:c,className:io(v.root,o),focusable:"false",color:f,"aria-hidden":d?void 0:!0,role:d?"img":void 0,ref:r,...b,...S,...g&&a.props,ownerState:h,children:[g?a.props.children:a,d?Ge.jsx("title",{children:d}):null]})});Pt.muiName="SvgIcon";function Li(e,t){function r(n,a){return Ge.jsx(Pt,{"data-testid":`${t}Icon`,ref:a,...n,children:e})}return r.muiName=Pt.muiName,rn(_t(r))}export{Pt as $,Oi as A,Fe as B,Gr as C,ca as D,ce as E,mi as F,fi as G,oo as H,fe as I,Ee as J,de as K,le as L,co as M,bi as N,Qo as O,gi as P,yi as Q,ri as R,Ut as S,fn as T,Vt as U,ko as V,hi as W,ct as X,pi as Y,bo as Z,vt as _,Io as a,So as a0,Ri as a1,Yr as a2,oe as a3,ht as a4,wo as a5,$t as a6,Ii as a7,Jo as a8,Xo as a9,ai as aa,oi as ab,Ko as ac,Go as ad,ii as ae,Fi as af,Si as ag,Lt as ah,Lr as ai,Mt as aj,Ai as ak,Er as al,Mr as am,Pi as an,$i as ao,Ti as ap,Dn as aq,pn as ar,se as as,Bi as at,di as b,Li as c,xo as d,ne as e,pt as f,me as g,Se as h,Qn as i,Ge as j,io as k,mo as l,Tt as m,ro as n,ke as o,be as p,Ao as q,ue as r,na as s,Ht as t,Ei as u,Kr as v,ae as w,_i as x,Wt as y,H as z};
|
|
8
|
+
export default theme;`}function Ue(e={},...t){const{breakpoints:r,mixins:n={},spacing:a,palette:o={},transitions:s={},typography:c={},shape:u,...f}=e;if(e.vars&&e.generateThemeVars===void 0)throw new Error(ce(20));const p=Yt(o),d=Ht(e);let m=H(d,{mixins:Go(d.breakpoints,n),palette:p,shadows:qo.slice(),typography:Ko(p,c),transitions:Jo(s),zIndex:{...ei}});return m=H(m,f),m=t.reduce((S,g)=>H(S,g),m),m.unstable_sxConfig={...pt,...f==null?void 0:f.unstable_sxConfig},m.unstable_sx=function(g){return Se({sx:g,theme:this})},m.toRuntimeSource=Zr,m}function Ii(...e){return Ue(...e)}function ri(e){let t;return e<1?t=5.11916*e**2:t=4.5*Math.log(e+1)+2,Math.round(t*10)/1e3}const ni=[...Array(25)].map((e,t)=>{if(t===0)return"none";const r=ri(t);return`linear-gradient(rgba(255 255 255 / ${r}), rgba(255 255 255 / ${r}))`});function Jr(e){return{inputPlaceholder:e==="dark"?.5:.42,inputUnderline:e==="dark"?.7:.42,switchTrackDisabled:e==="dark"?.2:.12,switchTrack:e==="dark"?.3:.38}}function en(e){return e==="dark"?ni:[]}function ai(e){const{palette:t={mode:"light"},opacity:r,overlays:n,...a}=e,o=Yt(t);return{palette:o,opacity:{...Jr(o.mode),...r},overlays:n||en(o.mode),...a}}function oi(e){var t;return!!e[0].match(/(cssVarPrefix|colorSchemeSelector|modularCssLayers|rootSelector|typography|mixins|breakpoints|direction|transitions)/)||!!e[0].match(/sxConfig$/)||e[0]==="palette"&&!!((t=e[1])!=null&&t.match(/(mode|contrastThreshold|tonalOffset)/))}const ii=e=>[...[...Array(25)].map((t,r)=>`--${e?`${e}-`:""}overlays-${r}`),`--${e?`${e}-`:""}palette-AppBar-darkBg`,`--${e?`${e}-`:""}palette-AppBar-darkColor`],si=e=>(t,r)=>{const n=e.rootSelector||":root",a=e.colorSchemeSelector;let o=a;if(a==="class"&&(o=".%s"),a==="data"&&(o="[data-%s]"),a!=null&&a.startsWith("data-")&&!a.includes("%s")&&(o=`[${a}="%s"]`),e.defaultColorScheme===t){if(t==="dark"){const s={};return ii(e.cssVarPrefix).forEach(c=>{s[c]=r[c],delete r[c]}),o==="media"?{[n]:r,"@media (prefers-color-scheme: dark)":{[n]:s}}:o?{[o.replace("%s",t)]:s,[`${n}, ${o.replace("%s",t)}`]:r}:{[n]:{...r,...s}}}if(o&&o!=="media")return`${n}, ${o.replace("%s",String(t))}`}else if(t){if(o==="media")return{[`@media (prefers-color-scheme: ${String(t)})`]:{[n]:r}};if(o)return o.replace("%s",String(t))}return n};function ci(e,t){t.forEach(r=>{e[r]||(e[r]={})})}function l(e,t,r){!e[t]&&r&&(e[t]=r)}function Te(e){return typeof e!="string"||!e.startsWith("hsl")?e:Yr(e)}function re(e,t){`${t}Channel`in e||(e[`${t}Channel`]=Ae(Te(e[t])))}function li(e){return typeof e=="number"?`${e}px`:typeof e=="string"||typeof e=="function"||Array.isArray(e)?e:"8px"}const Z=e=>{try{return e()}catch{}},ui=(e="mui")=>Oo(e);function St(e,t,r,n){if(!t)return;t=t===!0?{}:t;const a=n==="dark"?"dark":"light";if(!r){e[n]=ai({...t,palette:{mode:a,...t==null?void 0:t.palette}});return}const{palette:o,...s}=Ue({...r,palette:{mode:a,...t==null?void 0:t.palette}});return e[n]={...t,palette:o,opacity:{...Jr(a),...t==null?void 0:t.opacity},overlays:(t==null?void 0:t.overlays)||en(a)},s}function fi(e={},...t){const{colorSchemes:r={light:!0},defaultColorScheme:n,disableCssColorScheme:a=!1,cssVarPrefix:o="mui",shouldSkipGeneratingVar:s=oi,colorSchemeSelector:c=r.light&&r.dark?"media":void 0,rootSelector:u=":root",...f}=e,p=Object.keys(r)[0],d=n||(r.light&&p!=="light"?"light":p),m=ui(o),{[d]:S,light:g,dark:h,...b}=r,v={...b};let A=S;if((d==="dark"&&!("dark"in r)||d==="light"&&!("light"in r))&&(A=!0),!A)throw new Error(ce(21,d));const x=St(v,A,f,d);g&&!v.light&&St(v,g,void 0,"light"),h&&!v.dark&&St(v,h,void 0,"dark");let w={defaultColorScheme:d,...x,cssVarPrefix:o,colorSchemeSelector:c,rootSelector:u,getCssVar:m,colorSchemes:v,font:{...Wo(x.typography),...x.font},spacing:li(f.spacing)};Object.keys(w.colorSchemes).forEach(F=>{const i=w.colorSchemes[F].palette,y=T=>{const _=T.split("-"),Y=_[1],G=_[2];return m(T,i[Y][G])};if(i.mode==="light"&&(l(i.common,"background","#fff"),l(i.common,"onBackground","#000")),i.mode==="dark"&&(l(i.common,"background","#000"),l(i.common,"onBackground","#fff")),ci(i,["Alert","AppBar","Avatar","Button","Chip","FilledInput","LinearProgress","Skeleton","Slider","SnackbarContent","SpeedDialAction","StepConnector","StepContent","Switch","TableCell","Tooltip"]),i.mode==="light"){l(i.Alert,"errorColor",E(i.error.light,.6)),l(i.Alert,"infoColor",E(i.info.light,.6)),l(i.Alert,"successColor",E(i.success.light,.6)),l(i.Alert,"warningColor",E(i.warning.light,.6)),l(i.Alert,"errorFilledBg",y("palette-error-main")),l(i.Alert,"infoFilledBg",y("palette-info-main")),l(i.Alert,"successFilledBg",y("palette-success-main")),l(i.Alert,"warningFilledBg",y("palette-warning-main")),l(i.Alert,"errorFilledColor",Z(()=>i.getContrastText(i.error.main))),l(i.Alert,"infoFilledColor",Z(()=>i.getContrastText(i.info.main))),l(i.Alert,"successFilledColor",Z(()=>i.getContrastText(i.success.main))),l(i.Alert,"warningFilledColor",Z(()=>i.getContrastText(i.warning.main))),l(i.Alert,"errorStandardBg",R(i.error.light,.9)),l(i.Alert,"infoStandardBg",R(i.info.light,.9)),l(i.Alert,"successStandardBg",R(i.success.light,.9)),l(i.Alert,"warningStandardBg",R(i.warning.light,.9)),l(i.Alert,"errorIconColor",y("palette-error-main")),l(i.Alert,"infoIconColor",y("palette-info-main")),l(i.Alert,"successIconColor",y("palette-success-main")),l(i.Alert,"warningIconColor",y("palette-warning-main")),l(i.AppBar,"defaultBg",y("palette-grey-100")),l(i.Avatar,"defaultBg",y("palette-grey-400")),l(i.Button,"inheritContainedBg",y("palette-grey-300")),l(i.Button,"inheritContainedHoverBg",y("palette-grey-A100")),l(i.Chip,"defaultBorder",y("palette-grey-400")),l(i.Chip,"defaultAvatarColor",y("palette-grey-700")),l(i.Chip,"defaultIconColor",y("palette-grey-700")),l(i.FilledInput,"bg","rgba(0, 0, 0, 0.06)"),l(i.FilledInput,"hoverBg","rgba(0, 0, 0, 0.09)"),l(i.FilledInput,"disabledBg","rgba(0, 0, 0, 0.12)"),l(i.LinearProgress,"primaryBg",R(i.primary.main,.62)),l(i.LinearProgress,"secondaryBg",R(i.secondary.main,.62)),l(i.LinearProgress,"errorBg",R(i.error.main,.62)),l(i.LinearProgress,"infoBg",R(i.info.main,.62)),l(i.LinearProgress,"successBg",R(i.success.main,.62)),l(i.LinearProgress,"warningBg",R(i.warning.main,.62)),l(i.Skeleton,"bg",`rgba(${y("palette-text-primaryChannel")} / 0.11)`),l(i.Slider,"primaryTrack",R(i.primary.main,.62)),l(i.Slider,"secondaryTrack",R(i.secondary.main,.62)),l(i.Slider,"errorTrack",R(i.error.main,.62)),l(i.Slider,"infoTrack",R(i.info.main,.62)),l(i.Slider,"successTrack",R(i.success.main,.62)),l(i.Slider,"warningTrack",R(i.warning.main,.62));const T=je(i.background.default,.8);l(i.SnackbarContent,"bg",T),l(i.SnackbarContent,"color",Z(()=>i.getContrastText(T))),l(i.SpeedDialAction,"fabHoverBg",je(i.background.paper,.15)),l(i.StepConnector,"border",y("palette-grey-400")),l(i.StepContent,"border",y("palette-grey-400")),l(i.Switch,"defaultColor",y("palette-common-white")),l(i.Switch,"defaultDisabledColor",y("palette-grey-100")),l(i.Switch,"primaryDisabledColor",R(i.primary.main,.62)),l(i.Switch,"secondaryDisabledColor",R(i.secondary.main,.62)),l(i.Switch,"errorDisabledColor",R(i.error.main,.62)),l(i.Switch,"infoDisabledColor",R(i.info.main,.62)),l(i.Switch,"successDisabledColor",R(i.success.main,.62)),l(i.Switch,"warningDisabledColor",R(i.warning.main,.62)),l(i.TableCell,"border",R(Me(i.divider,1),.88)),l(i.Tooltip,"bg",Me(i.grey[700],.92))}if(i.mode==="dark"){l(i.Alert,"errorColor",R(i.error.light,.6)),l(i.Alert,"infoColor",R(i.info.light,.6)),l(i.Alert,"successColor",R(i.success.light,.6)),l(i.Alert,"warningColor",R(i.warning.light,.6)),l(i.Alert,"errorFilledBg",y("palette-error-dark")),l(i.Alert,"infoFilledBg",y("palette-info-dark")),l(i.Alert,"successFilledBg",y("palette-success-dark")),l(i.Alert,"warningFilledBg",y("palette-warning-dark")),l(i.Alert,"errorFilledColor",Z(()=>i.getContrastText(i.error.dark))),l(i.Alert,"infoFilledColor",Z(()=>i.getContrastText(i.info.dark))),l(i.Alert,"successFilledColor",Z(()=>i.getContrastText(i.success.dark))),l(i.Alert,"warningFilledColor",Z(()=>i.getContrastText(i.warning.dark))),l(i.Alert,"errorStandardBg",E(i.error.light,.9)),l(i.Alert,"infoStandardBg",E(i.info.light,.9)),l(i.Alert,"successStandardBg",E(i.success.light,.9)),l(i.Alert,"warningStandardBg",E(i.warning.light,.9)),l(i.Alert,"errorIconColor",y("palette-error-main")),l(i.Alert,"infoIconColor",y("palette-info-main")),l(i.Alert,"successIconColor",y("palette-success-main")),l(i.Alert,"warningIconColor",y("palette-warning-main")),l(i.AppBar,"defaultBg",y("palette-grey-900")),l(i.AppBar,"darkBg",y("palette-background-paper")),l(i.AppBar,"darkColor",y("palette-text-primary")),l(i.Avatar,"defaultBg",y("palette-grey-600")),l(i.Button,"inheritContainedBg",y("palette-grey-800")),l(i.Button,"inheritContainedHoverBg",y("palette-grey-700")),l(i.Chip,"defaultBorder",y("palette-grey-700")),l(i.Chip,"defaultAvatarColor",y("palette-grey-300")),l(i.Chip,"defaultIconColor",y("palette-grey-300")),l(i.FilledInput,"bg","rgba(255, 255, 255, 0.09)"),l(i.FilledInput,"hoverBg","rgba(255, 255, 255, 0.13)"),l(i.FilledInput,"disabledBg","rgba(255, 255, 255, 0.12)"),l(i.LinearProgress,"primaryBg",E(i.primary.main,.5)),l(i.LinearProgress,"secondaryBg",E(i.secondary.main,.5)),l(i.LinearProgress,"errorBg",E(i.error.main,.5)),l(i.LinearProgress,"infoBg",E(i.info.main,.5)),l(i.LinearProgress,"successBg",E(i.success.main,.5)),l(i.LinearProgress,"warningBg",E(i.warning.main,.5)),l(i.Skeleton,"bg",`rgba(${y("palette-text-primaryChannel")} / 0.13)`),l(i.Slider,"primaryTrack",E(i.primary.main,.5)),l(i.Slider,"secondaryTrack",E(i.secondary.main,.5)),l(i.Slider,"errorTrack",E(i.error.main,.5)),l(i.Slider,"infoTrack",E(i.info.main,.5)),l(i.Slider,"successTrack",E(i.success.main,.5)),l(i.Slider,"warningTrack",E(i.warning.main,.5));const T=je(i.background.default,.98);l(i.SnackbarContent,"bg",T),l(i.SnackbarContent,"color",Z(()=>i.getContrastText(T))),l(i.SpeedDialAction,"fabHoverBg",je(i.background.paper,.15)),l(i.StepConnector,"border",y("palette-grey-600")),l(i.StepContent,"border",y("palette-grey-600")),l(i.Switch,"defaultColor",y("palette-grey-300")),l(i.Switch,"defaultDisabledColor",y("palette-grey-600")),l(i.Switch,"primaryDisabledColor",E(i.primary.main,.55)),l(i.Switch,"secondaryDisabledColor",E(i.secondary.main,.55)),l(i.Switch,"errorDisabledColor",E(i.error.main,.55)),l(i.Switch,"infoDisabledColor",E(i.info.main,.55)),l(i.Switch,"successDisabledColor",E(i.success.main,.55)),l(i.Switch,"warningDisabledColor",E(i.warning.main,.55)),l(i.TableCell,"border",E(Me(i.divider,1),.68)),l(i.Tooltip,"bg",Me(i.grey[700],.92))}re(i.background,"default"),re(i.background,"paper"),re(i.common,"background"),re(i.common,"onBackground"),re(i,"divider"),Object.keys(i).forEach(T=>{const _=i[T];T!=="tonalOffset"&&_&&typeof _=="object"&&(_.main&&l(i[T],"mainChannel",Ae(Te(_.main))),_.light&&l(i[T],"lightChannel",Ae(Te(_.light))),_.dark&&l(i[T],"darkChannel",Ae(Te(_.dark))),_.contrastText&&l(i[T],"contrastTextChannel",Ae(Te(_.contrastText))),T==="text"&&(re(i[T],"primary"),re(i[T],"secondary")),T==="action"&&(_.active&&re(i[T],"active"),_.selected&&re(i[T],"selected")))})}),w=t.reduce((F,i)=>H(F,i),w);const $={prefix:o,disableCssColorScheme:a,shouldSkipGeneratingVar:s,getSelector:si(w)},{vars:k,generateThemeVars:C,generateStyleSheets:N}=Ro(w,$);return w.vars=k,Object.entries(w.colorSchemes[w.defaultColorScheme]).forEach(([F,i])=>{w[F]=i}),w.generateThemeVars=C,w.generateStyleSheets=N,w.generateSpacing=function(){return Gr(f.spacing,Wt(this))},w.getColorSchemeSelector=Bo(c),w.spacing=w.generateSpacing(),w.shouldSkipGeneratingVar=s,w.unstable_sxConfig={...pt,...f==null?void 0:f.unstable_sxConfig},w.unstable_sx=function(i){return Se({sx:i,theme:this})},w.toRuntimeSource=Zr,w}function br(e,t,r){e.colorSchemes&&r&&(e.colorSchemes[t]={...r!==!0&&r,palette:Yt({...r===!0?{}:r.palette,mode:t})})}function di(e={},...t){const{palette:r,cssVariables:n=!1,colorSchemes:a=r?void 0:{light:!0},defaultColorScheme:o=r==null?void 0:r.mode,...s}=e,c=o||"light",u=a==null?void 0:a[c],f={...a,...r?{[c]:{...typeof u!="boolean"&&u,palette:r}}:void 0};if(n===!1){if(!("colorSchemes"in e))return Ue(e,...t);let p=r;"palette"in e||f[c]&&(f[c]!==!0?p=f[c].palette:c==="dark"&&(p={mode:"dark"}));const d=Ue({...e,palette:p},...t);return d.defaultColorScheme=c,d.colorSchemes=f,d.palette.mode==="light"&&(d.colorSchemes.light={...f.light!==!0&&f.light,palette:d.palette},br(d,"dark",f.dark)),d.palette.mode==="dark"&&(d.colorSchemes.dark={...f.dark!==!0&&f.dark,palette:d.palette},br(d,"light",f.light)),d}return!r&&!("light"in f)&&c==="light"&&(f.light=!0),fi({...s,colorSchemes:f,defaultColorScheme:c,...typeof n!="boolean"&&n},...t)}const mi=di();function pi(e){return e!=="ownerState"&&e!=="theme"&&e!=="sx"&&e!=="as"}const hi=e=>pi(e)&&e!=="classes",gi=mo({themeId:fn,defaultTheme:mi,rootShouldForwardProp:hi}),yi=Po;function bi(e){return $o(e)}function Si(e){return Kr("MuiSvgIcon",e)}const Fi=co("MuiSvgIcon",["root","colorPrimary","colorSecondary","colorAction","colorError","colorDisabled","fontSizeInherit","fontSizeSmall","fontSizeMedium","fontSizeLarge"]),vi=e=>{const{color:t,fontSize:r,classes:n}=e,a={root:["root",t!=="inherit"&&`color${be(t)}`,`fontSize${be(r)}`]};return Ao(a,Si,n)},Ci=gi("svg",{name:"MuiSvgIcon",slot:"Root",overridesResolver:(e,t)=>{const{ownerState:r}=e;return[t.root,r.color!=="inherit"&&t[`color${be(r.color)}`],t[`fontSize${be(r.fontSize)}`]]}})(yi(({theme:e})=>{var t,r,n,a,o,s,c,u,f,p,d,m,S,g;return{userSelect:"none",width:"1em",height:"1em",display:"inline-block",flexShrink:0,transition:(a=(t=e.transitions)==null?void 0:t.create)==null?void 0:a.call(t,"fill",{duration:(n=(r=(e.vars??e).transitions)==null?void 0:r.duration)==null?void 0:n.shorter}),variants:[{props:h=>!h.hasSvgAsChild,style:{fill:"currentColor"}},{props:{fontSize:"inherit"},style:{fontSize:"inherit"}},{props:{fontSize:"small"},style:{fontSize:((s=(o=e.typography)==null?void 0:o.pxToRem)==null?void 0:s.call(o,20))||"1.25rem"}},{props:{fontSize:"medium"},style:{fontSize:((u=(c=e.typography)==null?void 0:c.pxToRem)==null?void 0:u.call(c,24))||"1.5rem"}},{props:{fontSize:"large"},style:{fontSize:((p=(f=e.typography)==null?void 0:f.pxToRem)==null?void 0:p.call(f,35))||"2.1875rem"}},...Object.entries((e.vars??e).palette).filter(([,h])=>h&&h.main).map(([h])=>{var b,v;return{props:{color:h},style:{color:(v=(b=(e.vars??e).palette)==null?void 0:b[h])==null?void 0:v.main}}}),{props:{color:"action"},style:{color:(m=(d=(e.vars??e).palette)==null?void 0:d.action)==null?void 0:m.active}},{props:{color:"disabled"},style:{color:(g=(S=(e.vars??e).palette)==null?void 0:S.action)==null?void 0:g.disabled}},{props:{color:"inherit"},style:{color:void 0}}]}})),Pt=_t(function(t,r){const n=bi({props:t,name:"MuiSvgIcon"}),{children:a,className:o,color:s="inherit",component:c="svg",fontSize:u="medium",htmlColor:f,inheritViewBox:p=!1,titleAccess:d,viewBox:m="0 0 24 24",...S}=n,g=Et(a)&&a.type==="svg",h={...n,color:s,component:c,fontSize:u,instanceFontSize:t.fontSize,inheritViewBox:p,viewBox:m,hasSvgAsChild:g},b={};p||(b.viewBox=m);const v=vi(h);return Ge.jsxs(Ci,{as:c,className:io(v.root,o),focusable:"false",color:f,"aria-hidden":d?void 0:!0,role:d?"img":void 0,ref:r,...b,...S,...g&&a.props,ownerState:h,children:[g?a.props.children:a,d?Ge.jsx("title",{children:d}):null]})});Pt.muiName="SvgIcon";function Li(e,t){function r(n,a){return Ge.jsx(Pt,{"data-testid":`${t}Icon`,ref:a,...n,children:e})}return r.muiName=Pt.muiName,rn(_t(r))}export{So as $,Fe as A,Gr as B,ca as C,ce as D,mi as E,fi as F,oo as G,fe as H,Ee as I,de as J,le as K,co as L,bi as M,Qo as N,gi as O,yi as P,ri as Q,Ut as R,Vt as S,fn as T,ko as U,hi as V,ct as W,pi as X,bo as Y,Pt as Z,vt as _,Io as a,Ri as a0,Yr as a1,oe as a2,ht as a3,wo as a4,$t as a5,Ii as a6,Jo as a7,Xo as a8,ai as a9,oi as aa,Ko as ab,Go as ac,ii as ad,Fi as ae,Si as af,Lt as ag,Lr as ah,Mt as ai,Ai as aj,Er as ak,Mr as al,Pi as am,$i as an,Ti as ao,Dn as ap,pn as aq,se as ar,Bi as as,di as b,Li as c,xo as d,pt as e,Se as f,me as g,io as h,ne as i,Ge as j,mo as k,Tt as l,ro as m,be as n,ke as o,Ao as p,Ht as q,ue as r,na as s,Kr as t,Ei as u,ae as v,_i as w,Wt as x,H as y,Oi as z};
|
|
@@ -0,0 +1,336 @@
|
|
|
1
|
+
const e=`# ioBroker JavaScript Adapter - API Reference
|
|
2
|
+
|
|
3
|
+
IMPORTANT RULES:
|
|
4
|
+
- ONLY use functions listed in this document. NEVER define your own helper functions.
|
|
5
|
+
- Use on() to react to state changes. NEVER use setTimeout/setInterval for polling states.
|
|
6
|
+
- Use setState(id, value) to control devices. Use getState(id).val to read values.
|
|
7
|
+
- All functions are pre-imported. NEVER use require() or import.
|
|
8
|
+
- Code runs inside an async context. You can use await directly.
|
|
9
|
+
|
|
10
|
+
## Quick Reference - Most Used Functions
|
|
11
|
+
|
|
12
|
+
\`\`\`js
|
|
13
|
+
// React to state changes:
|
|
14
|
+
on('adapter.0.device.state', (obj) => {
|
|
15
|
+
const val = obj.state.val;
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
// Read a state value:
|
|
19
|
+
const val = getState('adapter.0.device.state').val;
|
|
20
|
+
|
|
21
|
+
// Set a state (control a device):
|
|
22
|
+
setState('adapter.0.device.state', true);
|
|
23
|
+
|
|
24
|
+
// Time-based schedule (cron):
|
|
25
|
+
schedule('0 7 * * *', () => { /* runs daily at 07:00 */ });
|
|
26
|
+
|
|
27
|
+
// Selector - find states by room/function:
|
|
28
|
+
$('state[state.id=*.state](rooms=Living room)').each((id) => {
|
|
29
|
+
setState(id, false);
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
// Log output:
|
|
33
|
+
log('message');
|
|
34
|
+
\`\`\`
|
|
35
|
+
|
|
36
|
+
---
|
|
37
|
+
|
|
38
|
+
## exec(cmd, [options], callback)
|
|
39
|
+
Execute OS command. \`callback(error, stdout, stderr)\`. Requires "Enable command exec" option.
|
|
40
|
+
|
|
41
|
+
## on(pattern, callbackOrId, value)
|
|
42
|
+
Subscribe to state changes. Alias: \`subscribe\`. Returns handler for \`unsubscribe\`.
|
|
43
|
+
Callback receives \`{id, state: {val, ts, ack, lc, from}, oldState: {val, ts, ack, lc, from}}\`.
|
|
44
|
+
\`on('stateId1', 'stateId2')\` connects two states. \`on('stateId1', 'stateId2', 'triggered')\` sets fixed value.
|
|
45
|
+
Pattern can be: string ID, RegExp, or object with these properties:
|
|
46
|
+
- \`logic\` (string): "and"|"or" (default "and")
|
|
47
|
+
- \`id\` (string|RegExp|Array): state ID filter
|
|
48
|
+
- \`name\` (string|RegExp|Array): state name filter
|
|
49
|
+
- \`change\` (string): "eq","ne","gt","ge","lt","le","any" (default "ne" for string ID, "any" otherwise)
|
|
50
|
+
- \`val\`, \`valNe\`, \`valGt\`, \`valGe\`, \`valLt\`, \`valLe\` (mixed): new value conditions
|
|
51
|
+
- \`ack\` (boolean): new ack filter; \`q\` (number): quality filter (default 0, use '*' for any)
|
|
52
|
+
- \`oldVal\`, \`oldValNe\`, \`oldValGt\`, \`oldValGe\`, \`oldValLt\`, \`oldValLe\` (mixed): previous value conditions
|
|
53
|
+
- \`oldAck\` (bool), \`oldQ\` (number): previous ack/quality filters
|
|
54
|
+
- \`ts\`, \`tsGt\`, \`tsGe\`, \`tsLt\`, \`tsLe\` (string): new timestamp conditions
|
|
55
|
+
- \`oldTs\`, \`oldTsGt\`, \`oldTsGe\`, \`oldTsLt\`, \`oldTsLe\` (string): previous timestamp conditions
|
|
56
|
+
- \`lc\`, \`lcGt\`, \`lcGe\`, \`lcLt\`, \`lcLe\` (string): last change timestamp conditions
|
|
57
|
+
- \`oldLc\`, \`oldLcGt\`, \`oldLcGe\`, \`oldLcLt\`, \`oldLcLe\` (string): previous last change conditions
|
|
58
|
+
- \`channelId\`, \`channelName\`, \`deviceId\`, \`deviceName\` (string|RegExp|Array): channel/device filters
|
|
59
|
+
- \`enumId\`, \`enumName\` (string|RegExp|Array): enum filters
|
|
60
|
+
- \`from\`, \`fromNe\`, \`oldFrom\`, \`oldFromNe\` (string|RegExp|Array): adapter source filters
|
|
61
|
+
To get state deletions/expires, use \`change: 'ne'\` or \`'any'\` AND \`q: '*'\`.
|
|
62
|
+
|
|
63
|
+
## once(pattern, callback)
|
|
64
|
+
Like \`on()\`, but triggers only once then auto-unsubscribes.
|
|
65
|
+
|
|
66
|
+
## unsubscribe(idOrHandler)
|
|
67
|
+
Remove subscriptions by object ID (removes all) or by handler (removes specific).
|
|
68
|
+
|
|
69
|
+
## getSubscriptions()
|
|
70
|
+
Returns object \`{stateId: [{name, pattern}]}\` listing all state subscriptions.
|
|
71
|
+
|
|
72
|
+
## getFileSubscriptions()
|
|
73
|
+
Returns object listing all file subscriptions.
|
|
74
|
+
|
|
75
|
+
## schedule(pattern, callback)
|
|
76
|
+
Time scheduler with cron and astro support. Returns schedule object for \`clearSchedule\`.
|
|
77
|
+
Cron string: \`"sec min hour dayOfMonth month dayOfWeek"\` (sec optional, 5 or 6 fields).
|
|
78
|
+
Object pattern: \`{second, minute, hour, date, month, year, dayOfWeek}\`.
|
|
79
|
+
Date object: triggers once at that time.
|
|
80
|
+
With time range: \`{start, end, rule}\` where start/end are Date/string/ms, rule is cron string or object.
|
|
81
|
+
Astro: \`{astro: 'sunrise', shift: 10}\` (shift in minutes, can be negative).
|
|
82
|
+
Astro values: sunrise, sunriseEnd, goldenHourEnd, solarNoon, goldenHour, sunsetStart, sunset, dusk, nauticalDusk, night, nightEnd, nauticalDawn, dawn, nadir.
|
|
83
|
+
Requires latitude/longitude in adapter settings for astro.
|
|
84
|
+
Also works via \`on()\`: \`on({time: '*/2 * * * *'}, cb)\` or \`on({astro: 'sunset', shift: 10}, cb)\`.
|
|
85
|
+
|
|
86
|
+
## scheduleById(id, [ack], callback)
|
|
87
|
+
Schedule based on state value (format \`[h]h:[m]m[:ss]\`). Auto-updates when state changes.
|
|
88
|
+
|
|
89
|
+
## getSchedules(allScripts)
|
|
90
|
+
Returns list of all CRON/schedule jobs. Pass \`true\` for all scripts, otherwise current script only.
|
|
91
|
+
|
|
92
|
+
## clearSchedule(scheduleObject)
|
|
93
|
+
Cancel a schedule created by \`schedule()\`.
|
|
94
|
+
|
|
95
|
+
## getAttr(obj, path)
|
|
96
|
+
Get nested attribute: \`getAttr({a: {b: 5}}, 'a.b')\` returns 5. Parses JSON strings automatically.
|
|
97
|
+
|
|
98
|
+
## getAstroDate(pattern, date, offsetMinutes)
|
|
99
|
+
Returns Date object for astro event. Uses current day if no date given.
|
|
100
|
+
|
|
101
|
+
## isAstroDay()
|
|
102
|
+
Returns \`true\` if current time is between astro sunrise and sunset.
|
|
103
|
+
|
|
104
|
+
## compareTime(startTime, endTime, operation, timeToCompare)
|
|
105
|
+
Compare time with limits. Operations: ">", ">=", "<", "<=", "==", "<>", "between", "not between".
|
|
106
|
+
Times can be Date objects, date strings, time strings, or astro names.
|
|
107
|
+
Astro with offset: \`{astro: 'sunsetStart', offset: 30, date: new Date()}\`.
|
|
108
|
+
|
|
109
|
+
## setState(id, state, ack, callback)
|
|
110
|
+
Set state value. \`setState('id', 1)\` = \`setState('id', {val: 1, ack: false})\`.
|
|
111
|
+
\`ack=false\`: command to device; \`ack=true\`: confirmed state update.
|
|
112
|
+
|
|
113
|
+
## setStateAsync(id, state, ack)
|
|
114
|
+
Promise version of setState.
|
|
115
|
+
|
|
116
|
+
## setStateDelayed(id, state, isAck, delay, clearRunning, callback)
|
|
117
|
+
setState with delay in ms. Returns timer handler. \`clearRunning\` (default true) cancels previous delays.
|
|
118
|
+
|
|
119
|
+
## setStateChanged(id, state, ack)
|
|
120
|
+
Like setState, but only sets if value actually changed.
|
|
121
|
+
|
|
122
|
+
## setStateChangedAsync(id, state, ack)
|
|
123
|
+
Promise version of setStateChanged.
|
|
124
|
+
|
|
125
|
+
## clearStateDelayed(id, [timerId])
|
|
126
|
+
Clear delayed tasks for state ID, or specific timer.
|
|
127
|
+
|
|
128
|
+
## getStateDelayed(id)
|
|
129
|
+
Get list of running timers. Returns \`[{timerId, left, delay, val, ack}]\` for specific ID, or object keyed by ID for all.
|
|
130
|
+
|
|
131
|
+
## getState(id)
|
|
132
|
+
Returns \`{val, ack, ts, lc, from}\`. Returns \`{val: null, notExist: true}\` if missing.
|
|
133
|
+
|
|
134
|
+
## getStateAsync(id)
|
|
135
|
+
Promise version of getState.
|
|
136
|
+
|
|
137
|
+
## existsState(id, [callback])
|
|
138
|
+
Check if state exists. Sync (returns bool) if "Do not subscribe all states on start" is off, otherwise async.
|
|
139
|
+
|
|
140
|
+
## getObject(id, [enumName])
|
|
141
|
+
Get object description. With enumName (e.g. 'rooms' or true for all), adds enumIds/enumNames arrays.
|
|
142
|
+
|
|
143
|
+
## setObject(id, obj, callback)
|
|
144
|
+
Write object to DB. Use to modify objects read with getObject. Requires "Enable setObject" option.
|
|
145
|
+
|
|
146
|
+
## existsObject(id, [callback])
|
|
147
|
+
Check if object exists. Sync or async like existsState.
|
|
148
|
+
|
|
149
|
+
## extendObject(id, obj, callback)
|
|
150
|
+
Merge-update object. E.g. \`extendObject('system.adapter.sayit.0', {common: {enabled: false}})\`.
|
|
151
|
+
|
|
152
|
+
## deleteObject(id, [isRecursive], callback)
|
|
153
|
+
Delete object (and state value if type=state). \`isRecursive\` deletes children too.
|
|
154
|
+
|
|
155
|
+
## getIdByName(name, [alwaysArray])
|
|
156
|
+
Returns ID(s) for object with given name. Returns array if multiple or if \`alwaysArray\` is true.
|
|
157
|
+
|
|
158
|
+
## getEnums(enumName)
|
|
159
|
+
Get enums with members. Returns \`[{id, members, name}]\`.
|
|
160
|
+
|
|
161
|
+
## createState(name, [initialValue], [forceCreation], [common], [native], [callback])
|
|
162
|
+
Create state in \`javascript.X\` namespace. Prefer \`0_userdata.0.mystate\` for custom data points.
|
|
163
|
+
Common options: \`{type, role, read, write, name, unit, min, max, def, alias}\`.
|
|
164
|
+
Alias: set \`alias: true\` or \`alias: {id: 'alias.0.x', read: 'val/1000', write: 'val*1000'}\`.
|
|
165
|
+
|
|
166
|
+
## createStateAsync(name, [initialValue], [forceCreation], [common], [native])
|
|
167
|
+
Promise version of createState.
|
|
168
|
+
|
|
169
|
+
## deleteState(name, [callback])
|
|
170
|
+
Delete state in \`javascript.X\` namespace.
|
|
171
|
+
|
|
172
|
+
## deleteStateAsync(name)
|
|
173
|
+
Promise version of deleteState.
|
|
174
|
+
|
|
175
|
+
## createAlias(name, alias, [forceCreation], [common], [native], [callback])
|
|
176
|
+
Create alias in \`alias.0\` namespace. \`alias\` can be string ID or \`{id: {read: 'id1', write: 'id2'}}\`.
|
|
177
|
+
|
|
178
|
+
## createAliasAsync(name, alias, [forceCreation], [common], [native])
|
|
179
|
+
Promise version of createAlias.
|
|
180
|
+
|
|
181
|
+
## sendTo(adapter, command, message, [options], [callback])
|
|
182
|
+
Send message to adapter instance(s). \`options: {timeout}\` (default 20000ms).
|
|
183
|
+
E.g. \`sendTo('telegram.0', {user: 'User', text: 'Hi'})\`.
|
|
184
|
+
|
|
185
|
+
## sendToAsync(adapter, command, message, [options])
|
|
186
|
+
Promise version of sendTo.
|
|
187
|
+
|
|
188
|
+
## sendToHost(hostName, command, message, [callback])
|
|
189
|
+
Send message to host controller. Commands: cmdExec, getRepository, getInstalled, getVersion, getDiagData, getLocationOnDisk, getDevList, getLogs, getHostInfo.
|
|
190
|
+
|
|
191
|
+
## sendToHostAsync(hostName, command, message)
|
|
192
|
+
Promise version of sendToHost.
|
|
193
|
+
|
|
194
|
+
## setInterval(callback, ms, ...args)
|
|
195
|
+
Same as JS setInterval.
|
|
196
|
+
|
|
197
|
+
## clearInterval(id)
|
|
198
|
+
Same as JS clearInterval.
|
|
199
|
+
|
|
200
|
+
## setTimeout(callback, ms, ...args)
|
|
201
|
+
Same as JS setTimeout.
|
|
202
|
+
|
|
203
|
+
## clearTimeout(id)
|
|
204
|
+
Same as JS clearTimeout.
|
|
205
|
+
|
|
206
|
+
## setImmediate(callback, ...args)
|
|
207
|
+
Same as JS setImmediate (higher priority than setTimeout 0).
|
|
208
|
+
|
|
209
|
+
## formatDate(millisecondsOrDate, [format])
|
|
210
|
+
Format date. Tokens: YYYY(year), MM(month), DD(day), hh(hours), mm(min), ss(sec), sss(ms), WW/W(weekday), OO/O(month name).
|
|
211
|
+
|
|
212
|
+
## formatTimeDiff(milliseconds, [format])
|
|
213
|
+
Format time difference. Default \`hh:mm:ss\`. Tokens: DD/D(days), hh/h, mm/m, ss/s.
|
|
214
|
+
|
|
215
|
+
## getDateObject(stringOrNumber)
|
|
216
|
+
Convert string/number to Date. \`getDateObject('20:00')\` adds current date.
|
|
217
|
+
|
|
218
|
+
## formatValue(value, [decimals], [format])
|
|
219
|
+
Format number with locale. \`decimals\` default 2. Format: '.,', ',.', or ' .'.
|
|
220
|
+
|
|
221
|
+
## adapterSubscribe(id)
|
|
222
|
+
Send "subscribe" message to adapter. Auto-called for subscribable adapters.
|
|
223
|
+
|
|
224
|
+
## adapterUnsubscribe(id)
|
|
225
|
+
Send "unsubscribe" message to adapter.
|
|
226
|
+
|
|
227
|
+
## $(selector)
|
|
228
|
+
jQuery-like selector. Methods: \`.on(cb)\`, \`.each(cb)\`, \`.setState(val, ack)\`, \`.getState()\`, \`.toArray()\`.
|
|
229
|
+
Format: \`'name[commonAttr=val](enumName=val){nativeAttr=val}[id=filter][state.id=filter]'\`.
|
|
230
|
+
Name: state, channel, device, schedule. Wildcards \`*\` supported.
|
|
231
|
+
E.g. \`$('channel[role=switch][state.id=*.STATE](rooms=Living room)').setState(false)\`.
|
|
232
|
+
|
|
233
|
+
## readFile(adapter, fileName, callback)
|
|
234
|
+
Read file from DB. \`callback(error, bytes)\`. Default adapter: \`javascript.0\`.
|
|
235
|
+
|
|
236
|
+
## writeFile(adapter, fileName, bytes, callback)
|
|
237
|
+
Write file to DB. Accessible via web: \`http://ip:8082/javascript/path/file.ext\`.
|
|
238
|
+
|
|
239
|
+
## delFile(adapter, fileName, callback)
|
|
240
|
+
Delete file or directory from DB. Alias: \`unlink\`.
|
|
241
|
+
|
|
242
|
+
## renameFile(adapter, oldName, newName, callback)
|
|
243
|
+
Rename file or directory in DB. Alias: \`rename\`.
|
|
244
|
+
|
|
245
|
+
## onFile(id, fileName, withFile, callback)
|
|
246
|
+
Subscribe to file changes. \`id\`: meta object ID (e.g. 'vis.0'). \`fileName\`: name or glob pattern.
|
|
247
|
+
Callback: \`(id, fileName, size, fileData, mimeType)\`. \`fileData\`/\`mimeType\` only if \`withFile=true\`.
|
|
248
|
+
|
|
249
|
+
## offFile(id, fileName)
|
|
250
|
+
Unsubscribe from file changes.
|
|
251
|
+
|
|
252
|
+
## onStop(callback, [timeout])
|
|
253
|
+
Register callback for script stop. Default timeout 1000ms. Call \`callback()\` when cleanup done.
|
|
254
|
+
|
|
255
|
+
## getHistory(instance, options, callback)
|
|
256
|
+
Read history data. Options: \`{id, start, end, aggregate, count, timeout}\`.
|
|
257
|
+
\`aggregate\`: 'none', 'minmax', 'max', 'min', 'average', 'total', 'count', 'm4'.
|
|
258
|
+
If instance omitted, uses system default. \`callback(err, result, options, instance)\`.
|
|
259
|
+
|
|
260
|
+
## runScript(scriptName, [callback])
|
|
261
|
+
Start or restart a script by name.
|
|
262
|
+
|
|
263
|
+
## runScriptAsync(scriptName)
|
|
264
|
+
Promise version of runScript.
|
|
265
|
+
|
|
266
|
+
## startScript(scriptName, [ignoreIfStarted], [callback])
|
|
267
|
+
Start script. If \`ignoreIfStarted=true\`, does nothing if already running.
|
|
268
|
+
|
|
269
|
+
## startScriptAsync(scriptName, [ignoreIfStarted])
|
|
270
|
+
Promise version of startScript.
|
|
271
|
+
|
|
272
|
+
## stopScript([scriptName], [callback])
|
|
273
|
+
Stop script. No args = stop self.
|
|
274
|
+
|
|
275
|
+
## stopScriptAsync([scriptName])
|
|
276
|
+
Promise version of stopScript.
|
|
277
|
+
|
|
278
|
+
## isScriptActive(scriptName)
|
|
279
|
+
Returns if script is enabled (not necessarily running).
|
|
280
|
+
|
|
281
|
+
## toInt(val)
|
|
282
|
+
Convert to integer.
|
|
283
|
+
|
|
284
|
+
## toFloat(val)
|
|
285
|
+
Convert to float.
|
|
286
|
+
|
|
287
|
+
## toBoolean(val)
|
|
288
|
+
Convert to boolean.
|
|
289
|
+
|
|
290
|
+
## jsonataExpression(expr)
|
|
291
|
+
Evaluate JSONata expression.
|
|
292
|
+
|
|
293
|
+
## wait(ms) / sleep(ms)
|
|
294
|
+
Pause execution. Must use \`await wait(1000)\`.
|
|
295
|
+
|
|
296
|
+
## messageTo(target, data, [options], [callback])
|
|
297
|
+
Send message via message bus to other scripts. Target: \`{instance, script, message}\` or just \`'messageName'\`.
|
|
298
|
+
Default timeout 5000ms.
|
|
299
|
+
|
|
300
|
+
## messageToAsync(target, data, [options])
|
|
301
|
+
Promise version of messageTo.
|
|
302
|
+
|
|
303
|
+
## onMessage(messageName, callback)
|
|
304
|
+
Subscribe to message bus. \`callback(data, callback)\` - call callback with response.
|
|
305
|
+
|
|
306
|
+
## onMessageUnregister(idOrName)
|
|
307
|
+
Unsubscribe from message by handler ID or message name.
|
|
308
|
+
|
|
309
|
+
## onLog(severity, callback)
|
|
310
|
+
Subscribe to logs. Severity: 'error', 'warn', 'info', 'debug', or '*' for all.
|
|
311
|
+
\`callback({message, severity, ts})\`. Cannot log same severity in handler (infinite loop).
|
|
312
|
+
|
|
313
|
+
## onLogUnregister(idOrHandlerOrSeverity)
|
|
314
|
+
Unsubscribe from log handler by ID, function, or severity string.
|
|
315
|
+
|
|
316
|
+
## httpGet(url, [options], callback)
|
|
317
|
+
HTTP GET request. Options: \`{timeout, responseType, headers, basicAuth, validateCertificate}\`.
|
|
318
|
+
\`callback(err, response)\` where \`response: {statusCode, data, headers}\`.
|
|
319
|
+
Use \`responseType: 'arraybuffer'\` for binary data.
|
|
320
|
+
|
|
321
|
+
## httpPost(url, data, [options], callback)
|
|
322
|
+
HTTP POST request. Same options as httpGet plus \`basicAuth: {user, password}\`.
|
|
323
|
+
|
|
324
|
+
## createTempFile(fileName, data)
|
|
325
|
+
Create temporary file. Returns file path string. Useful for sendTo with file attachments.
|
|
326
|
+
|
|
327
|
+
# Global Variables
|
|
328
|
+
- \`scriptName\` - name of current script
|
|
329
|
+
- \`instance\` - JavaScript adapter instance number (e.g. 0)
|
|
330
|
+
- \`defaultDataDir\` - absolute path to iobroker-data directory
|
|
331
|
+
- \`verbose\` - boolean, verbose mode enabled
|
|
332
|
+
|
|
333
|
+
# Notes
|
|
334
|
+
- "Do not subscribe all states on start" mode: getState requires async callback \`getState(id, (err, state) => {})\`.
|
|
335
|
+
- Scripts can be enabled/disabled via state \`javascript.INSTANCE.scriptEnabled.SCRIPT_NAME\` (set with ack=false).
|
|
336
|
+
`;export{e as default};
|