@keload/node-red-dxp 1.23.2 → 1.24.0

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 (37) hide show
  1. package/dist/cli/index.cjs +31 -35
  2. package/dist/editor/assets/pug/helper.pug +102 -0
  3. package/dist/editor/dom-helper/index.cjs +1 -1
  4. package/dist/editor/dom-helper/index.d.cts +14 -13
  5. package/dist/editor/dom-helper/index.d.ts +14 -13
  6. package/dist/editor/dom-helper/index.js +1 -1
  7. package/dist/editor/index.cjs +1 -1
  8. package/dist/editor/index.d.cts +5 -4
  9. package/dist/editor/index.d.ts +5 -4
  10. package/dist/editor/index.js +1 -1
  11. package/dist/editor/inject/dxpFormRow.cjs +1 -1
  12. package/dist/editor/inject/dxpFormRow.d.cts +10 -9
  13. package/dist/editor/inject/dxpFormRow.d.ts +10 -9
  14. package/dist/editor/inject/dxpFormRow.js +1 -1
  15. package/dist/index-BhYSgW2V.d.ts +6 -0
  16. package/dist/index-DKhJ6JZE.d.cts +6 -0
  17. package/dist/index.cjs +1 -1
  18. package/dist/index.d.cts +1 -5
  19. package/dist/index.d.ts +1 -5
  20. package/dist/index.js +1 -1
  21. package/dist/src-DvBS17xd.js +0 -0
  22. package/dist/{types-B7YUmbnu.d.cts → types-B5Bh_DR_.d.cts} +8 -7
  23. package/dist/{types-B7YUmbnu.d.ts → types-BSEMgzWV.d.ts} +8 -7
  24. package/dist/utils/controller.cjs +1 -1
  25. package/dist/utils/controller.d.cts +16 -14
  26. package/dist/utils/{controller.d.ts → controller.d.mts} +16 -14
  27. package/dist/utils/controller.mjs +1 -0
  28. package/dist/utils/index.cjs +1 -2
  29. package/dist/utils/index.d.cts +9 -5
  30. package/dist/utils/index.d.ts +9 -5
  31. package/dist/utils/index.js +1 -2
  32. package/package.json +28 -22
  33. package/dist/chunk-O2XFH626.js +0 -1
  34. package/dist/chunk-O55HBSM5.js +0 -1
  35. package/dist/chunk-YESMJQI4.js +0 -1
  36. package/dist/utils/controller.js +0 -1
  37. /package/dist/{chunk-Z65JVQED.js → src-BNoPX5QG.cjs} +0 -0
@@ -0,0 +1,102 @@
1
+ - var INPUT_NODE_ID = 'node-input'
2
+ - var INPUT_NODE_CONFIG_ID = 'node-config-input'
3
+
4
+ -
5
+ function generatePrefix(isConfig) {
6
+ return isConfig ? INPUT_NODE_CONFIG_ID + '-' : INPUT_NODE_ID + '-';
7
+ }
8
+
9
+ -
10
+ function generateInputId(id, isConfig) {
11
+ var prefix = generatePrefix(isConfig);
12
+ return prefix + id;
13
+ }
14
+
15
+ -
16
+ function capitalizeFirst(str) {
17
+ return str.charAt(0).toUpperCase() + str.slice(1)
18
+ }
19
+
20
+ mixin iconFontAwesome(iconName)
21
+ if iconName
22
+ i.fa(class=`fa-${iconName}`)&attributes(attributes)
23
+
24
+ mixin simpleButton(opts)
25
+ - var id = opts.id || ''
26
+ - var color = opts.color || 'blue'
27
+ - var text = opts.text || 'Button'
28
+ button(id=id class=`px-4 py-2 bg-${color}-500 text-white rounded hover:bg-${color}-600`)= text
29
+
30
+ mixin commonLabel(params)
31
+ - var capitalizedLabel = capitalizeFirst(params.label || '')
32
+ label(for=params.id)
33
+ +iconFontAwesome(params.icon)
34
+ span(data-i18n=params.label title=capitalizedLabel)= capitalizedLabel
35
+
36
+ mixin dxpFormRowInputText(params)
37
+ - var inputId = generateInputId(params.id, params.isConfig)
38
+ .dxp-template-form-row
39
+ +commonLabel({label: params.label, icon: params.icon, id: inputId})
40
+ .content
41
+ input(
42
+ type="text"
43
+ id=inputId
44
+ data-i18n=`[placeholder]${params.label}`
45
+ placeholder=params.placeholder || ''
46
+ )&attributes(attributes)
47
+ if params.isTyped
48
+ input(type="hidden" id=`${inputId}Type`)
49
+ if block
50
+ block
51
+
52
+ mixin dxpFormRowCheckbox(params)
53
+ - var inputId = generateInputId(params.id, params.isConfig)
54
+ .dxp-template-form-row
55
+ +commonLabel({label: params.label, icon: params.icon, id: inputId})
56
+ .content
57
+ .checkbox
58
+ input(type="checkbox" id=inputId)&attributes(attributes)
59
+ if params.text
60
+ span.italic= params.text
61
+ if block
62
+ block
63
+
64
+ mixin dxpFormRowSelect(params)
65
+ - var inputId = generateInputId(params.id, params.isConfig)
66
+ .dxp-template-form-row
67
+ +commonLabel({label: params.label, icon: params.icon, id: inputId})
68
+ .content
69
+ select(id=inputId)&attributes(attributes)
70
+ if block
71
+ block
72
+
73
+ mixin dxpFormRowSelectConfigNode(params)
74
+ - var inputId = generateInputId(params.id, params.isConfig)
75
+ .dxp-template-form-row
76
+ +commonLabel({label: params.label, icon: params.icon, id: inputId})
77
+ .content.force-w-full
78
+ select(id=inputId)&attributes(attributes)
79
+ if block
80
+ block
81
+
82
+ mixin dxpFormTitleSeparator(label)
83
+ - var realLabel = label || ''
84
+ div.flex.items-center.gap-4.mb-4&attributes(attributes)
85
+ if realLabel
86
+ span.text-md.font-semibold= label
87
+ div.flex-1.border-t.border-gray-300
88
+
89
+ mixin dxpHint(params)
90
+ - var classState = params.state ? 'hint-' + params.state : ''
91
+ - var width = params.fullWidth ? '' : 'max-w-[350px]'
92
+ .hint(class=classState + ' ' + width)
93
+ +iconFontAwesome(params.icon)(class="mr-1")
94
+ if block
95
+ block
96
+
97
+ mixin dxpTabs(targetId)
98
+ div
99
+ ul(id=targetId)
100
+ div(id=`tabs-content-${targetId}`, class='mt-4')
101
+ if block
102
+ block
@@ -1 +1 @@
1
- 'use strict';var l=e=>{if(!e||e.length===0)return "";let t=e.toLowerCase();return t.substring(0,1).toUpperCase()+t.substring(1,t.length)};var a=(e,t)=>{var o;let r=(o=e==null?void 0:e.replace(/([A-Z])+/g,l).split(/(?=[A-Z])|[\.\-\s_]/).map(i=>i.toLowerCase()))!=null?o:[];if(r.length===0)return "";if(r.length===1)return r[0];let n=r.reduce((i,c)=>`${i}_${c.toLowerCase()}`);return (t==null?void 0:t.splitOnNumber)===false?n:n.replace(/([A-Za-z]{1}[0-9]{1})/,i=>`${i[0]}_${i[1]}`)};function p(e){let t=e.startsWith("$"),r=e.startsWith("$$"),n=e.startsWith("#node-config-input")||e.startsWith("#node-input");return {isNodeIdShortcut:t,isNodeConfigIdShortcut:r,isFullSelector:n,value:t||r||n}}function s(e){let t=p(e);return t.isNodeConfigIdShortcut?`#node-config-input-${e.replace("$$","")}`:t.isNodeIdShortcut?`#node-input-${e.replace("$","")}`:e}function u(e,t,r){t.forEach(n=>{let o=document.querySelector(n);o&&r.forEach(i=>o.classList[e](i));});}function C(e,t){u("remove",e,t);}function E(e,t){u("add",e,t);}function A(e){return s(e).split("-input-")[1]}function I(e,t,r){let n=s(e),o=t;r!=null&&r.emptyValue&&(o=[{value:"",text:r.emptyValue},...t]),$(n).empty().append(o.map(i=>$("<option>",{value:i.value,text:i.text,selected:i.value===(r==null?void 0:r.selected)})));}function T(e,t,r={additionalEvents:[]}){let o=(Array.isArray(e)?e:[e]).map(s).join(", "),i=["input",...r.additionalEvents];$(o).on(i.join(" "),()=>{let c=$(o).map(function(){return $(this).val()}).get();t(c);});}function k(e,t){let r=s(e);$(r).val(t);}function L(e,t){let r=s(e);$(r).text(t);}function w(e){let t=s(e);return $(t)}function j(e){let t=s(e);return document.querySelector(t).checked}function O(e){let t={};return document.querySelectorAll(`[id^="node-input-${e}-"]`).forEach(r=>{let n=r,o=n.id.replace(`node-input-${e}-`,"");n.type==="checkbox"?t[o]=n.checked:t[o]=n.value;}),t}function H(e,t){t&&Object.entries(t).forEach(([r,n])=>{let o=document.querySelector(`#node-input-${e}-${r}`);o&&(o.type==="checkbox"?o.checked=!!n:o.value=String(n));});}function R(e){let t=`#tabs-content-${e.targetId}`,r=RED.tabs.create({id:e.targetId,onchange:n=>{$(t).children().addClass("hidden"),$(`#${n.id}`).removeClass("hidden");}});(e.tabsLabel||[]).forEach(n=>{r.addTab({id:`tab-${a(n)}`,label:n});}),r.activateTab(`tab-${a(e.initialTab)}`);}exports.addClassesOnSelectors=E;exports.getFormValues=O;exports.handleAddRemoveClassesOnSelectors=u;exports.initSelect=I;exports.initTabs=R;exports.isCheckboxChecked=j;exports.isNodeInput=p;exports.jqSelector=w;exports.removeClassesOnSelectors=C;exports.resolveInputKey=A;exports.resolveSelector=s;exports.setFormValues=H;exports.setInputValue=k;exports.setText=L;exports.watchInput=T;
1
+ require(`../../src-BNoPX5QG.cjs`);const e=e=>{if(!e||e.length===0)return``;let t=e.toLowerCase();return t.substring(0,1).toUpperCase()+t.substring(1,t.length)},t=(t,n)=>{var r;let i=(r=t==null?void 0:t.replace(/([A-Z])+/g,e).split(/(?=[A-Z])|[\.\-\s_]/).map(e=>e.toLowerCase()))==null?[]:r;if(i.length===0)return``;if(i.length===1)return i[0];let a=i.reduce((e,t)=>`${e}_${t.toLowerCase()}`);return(n==null?void 0:n.splitOnNumber)===!1?a:a.replace(/([A-Za-z]{1}[0-9]{1})/,e=>`${e[0]}_${e[1]}`)};function n(e){let t=e.startsWith(`$`),n=e.startsWith(`$$`),r=e.startsWith(`#node-config-input`)||e.startsWith(`#node-input`);return{isNodeIdShortcut:t,isNodeConfigIdShortcut:n,isFullSelector:r,value:t||n||r}}function r(e){let t=n(e);return t.isNodeConfigIdShortcut?`#node-config-input-${e.replace(`$$`,``)}`:t.isNodeIdShortcut?`#node-input-${e.replace(`$`,``)}`:e}function i(e,t,n){t.forEach(t=>{let r=document.querySelector(t);r&&n.forEach(t=>r.classList[e](t))})}function a(e,t){i(`remove`,e,t)}function o(e,t){i(`add`,e,t)}function s(e){return r(e).split(`-input-`)[1]}function c(e,t,n){let i=r(e),a=t;n!=null&&n.emptyValue&&(a=[{value:``,text:n.emptyValue},...t]),$(i).empty().append(a.map(e=>$(`<option>`,{value:e.value,text:e.text,selected:e.value===(n==null?void 0:n.selected)})))}function l(e,t,n={additionalEvents:[]}){let i=(Array.isArray(e)?e:[e]).map(r).join(`, `),a=[`input`,...n.additionalEvents];$(i).on(a.join(` `),()=>{t($(i).map(function(){return $(this).val()}).get())})}function u(e,t){let n=r(e);$(n).val(t)}function d(e,t){let n=r(e);$(n).text(t)}function f(e){let t=r(e);return $(t)}function p(e){let t=r(e);return document.querySelector(t).checked}function m(e){let t={};return document.querySelectorAll(`[id^="node-input-${e}-"]`).forEach(n=>{let r=n,i=r.id.replace(`node-input-${e}-`,``);r.type===`checkbox`?t[i]=r.checked:t[i]=r.value}),t}function h(e,t){t&&Object.entries(t).forEach(([t,n])=>{let r=document.querySelector(`#node-input-${e}-${t}`);r&&(r.type===`checkbox`?r.checked=!!n:r.value=String(n))})}function g(e){let n=`#tabs-content-${e.targetId}`,r=RED.tabs.create({id:e.targetId,onchange:e=>{$(n).children().addClass(`hidden`),$(`#${e.id}`).removeClass(`hidden`)}});(e.tabsLabel||[]).forEach(e=>{r.addTab({id:`tab-${t(e)}`,label:e})}),r.activateTab(`tab-${t(e.initialTab)}`)}exports.addClassesOnSelectors=o,exports.getFormValues=m,exports.handleAddRemoveClassesOnSelectors=i,exports.initSelect=c,exports.initTabs=g,exports.isCheckboxChecked=p,exports.isNodeInput=n,exports.jqSelector=f,exports.removeClassesOnSelectors=a,exports.resolveInputKey=s,exports.resolveSelector=r,exports.setFormValues=h,exports.setInputValue=u,exports.setText=d,exports.watchInput=l;
@@ -1,6 +1,7 @@
1
- import { E as EditorDomHelper } from '../../types-B7YUmbnu.cjs';
2
- import '../../index.cjs';
3
- import 'node-red';
1
+ import { t as EditorDomHelper } from "../../types-B5Bh_DR_.cjs";
2
+ import "../../index-DKhJ6JZE.cjs";
3
+
4
+ //#region src/editor/dom.d.ts
4
5
 
5
6
  /**
6
7
  * Checks if a given selector is a node input selector.
@@ -9,10 +10,10 @@ import 'node-red';
9
10
  * @returns True if the selector is a node input selector, false otherwise.
10
11
  */
11
12
  declare function isNodeInput(selector: string): {
12
- isNodeIdShortcut: boolean;
13
- isNodeConfigIdShortcut: boolean;
14
- isFullSelector: boolean;
15
- value: boolean;
13
+ isNodeIdShortcut: boolean;
14
+ isNodeConfigIdShortcut: boolean;
15
+ isFullSelector: boolean;
16
+ value: boolean;
16
17
  };
17
18
  /**
18
19
  * Resolves a selector string into a specific format based on predefined rules.
@@ -127,7 +128,7 @@ declare function initSelect(selector: string, options: Record<string, string>[],
127
128
  * watchInput(['$input-1', '$input-2'], (values) => console.log(values));
128
129
  */
129
130
  declare function watchInput<T = any>(selectors: string | string[], callback: (values: T[]) => void, opt?: {
130
- additionalEvents: any[];
131
+ additionalEvents: any[];
131
132
  }): void;
132
133
  /**
133
134
  * Sets the value of an input element.
@@ -234,9 +235,9 @@ declare function getFormValues(prefix: string): Record<string, string | boolean>
234
235
  */
235
236
  declare function setFormValues(prefix: string, values: Record<string, unknown | boolean>): void;
236
237
  type InitTabsParams = {
237
- targetId: any;
238
- tabsLabel: string[];
239
- initialTab: string;
238
+ targetId: any;
239
+ tabsLabel: string[];
240
+ initialTab: string;
240
241
  };
241
242
  /**
242
243
  * Initializes a tab system with the provided configuration and handles tab switching behavior.
@@ -273,5 +274,5 @@ type InitTabsParams = {
273
274
  * @throws {Error} Throws an error if the `params.initialTab` does not match any label in `tabsLabel`.
274
275
  */
275
276
  declare function initTabs(params: InitTabsParams): void;
276
-
277
- export { addClassesOnSelectors, getFormValues, handleAddRemoveClassesOnSelectors, initSelect, initTabs, isCheckboxChecked, isNodeInput, jqSelector, removeClassesOnSelectors, resolveInputKey, resolveSelector, setFormValues, setInputValue, setText, watchInput };
277
+ //#endregion
278
+ export { addClassesOnSelectors, getFormValues, handleAddRemoveClassesOnSelectors, initSelect, initTabs, isCheckboxChecked, isNodeInput, jqSelector, removeClassesOnSelectors, resolveInputKey, resolveSelector, setFormValues, setInputValue, setText, watchInput };
@@ -1,6 +1,7 @@
1
- import { E as EditorDomHelper } from '../../types-B7YUmbnu.js';
2
- import '../../index.js';
3
- import 'node-red';
1
+ import { t as EditorDomHelper } from "../../types-BSEMgzWV.js";
2
+ import "../../index-BhYSgW2V.js";
3
+
4
+ //#region src/editor/dom.d.ts
4
5
 
5
6
  /**
6
7
  * Checks if a given selector is a node input selector.
@@ -9,10 +10,10 @@ import 'node-red';
9
10
  * @returns True if the selector is a node input selector, false otherwise.
10
11
  */
11
12
  declare function isNodeInput(selector: string): {
12
- isNodeIdShortcut: boolean;
13
- isNodeConfigIdShortcut: boolean;
14
- isFullSelector: boolean;
15
- value: boolean;
13
+ isNodeIdShortcut: boolean;
14
+ isNodeConfigIdShortcut: boolean;
15
+ isFullSelector: boolean;
16
+ value: boolean;
16
17
  };
17
18
  /**
18
19
  * Resolves a selector string into a specific format based on predefined rules.
@@ -127,7 +128,7 @@ declare function initSelect(selector: string, options: Record<string, string>[],
127
128
  * watchInput(['$input-1', '$input-2'], (values) => console.log(values));
128
129
  */
129
130
  declare function watchInput<T = any>(selectors: string | string[], callback: (values: T[]) => void, opt?: {
130
- additionalEvents: any[];
131
+ additionalEvents: any[];
131
132
  }): void;
132
133
  /**
133
134
  * Sets the value of an input element.
@@ -234,9 +235,9 @@ declare function getFormValues(prefix: string): Record<string, string | boolean>
234
235
  */
235
236
  declare function setFormValues(prefix: string, values: Record<string, unknown | boolean>): void;
236
237
  type InitTabsParams = {
237
- targetId: any;
238
- tabsLabel: string[];
239
- initialTab: string;
238
+ targetId: any;
239
+ tabsLabel: string[];
240
+ initialTab: string;
240
241
  };
241
242
  /**
242
243
  * Initializes a tab system with the provided configuration and handles tab switching behavior.
@@ -273,5 +274,5 @@ type InitTabsParams = {
273
274
  * @throws {Error} Throws an error if the `params.initialTab` does not match any label in `tabsLabel`.
274
275
  */
275
276
  declare function initTabs(params: InitTabsParams): void;
276
-
277
- export { addClassesOnSelectors, getFormValues, handleAddRemoveClassesOnSelectors, initSelect, initTabs, isCheckboxChecked, isNodeInput, jqSelector, removeClassesOnSelectors, resolveInputKey, resolveSelector, setFormValues, setInputValue, setText, watchInput };
277
+ //#endregion
278
+ export { addClassesOnSelectors, getFormValues, handleAddRemoveClassesOnSelectors, initSelect, initTabs, isCheckboxChecked, isNodeInput, jqSelector, removeClassesOnSelectors, resolveInputKey, resolveSelector, setFormValues, setInputValue, setText, watchInput };
@@ -1 +1 @@
1
- import'../../chunk-Z65JVQED.js';import {c}from'../../chunk-YESMJQI4.js';import'../../chunk-O2XFH626.js';function u(t){let e=t.startsWith("$"),n=t.startsWith("$$"),o=t.startsWith("#node-config-input")||t.startsWith("#node-input");return {isNodeIdShortcut:e,isNodeConfigIdShortcut:n,isFullSelector:o,value:e||n||o}}function s(t){let e=u(t);return e.isNodeConfigIdShortcut?`#node-config-input-${t.replace("$$","")}`:e.isNodeIdShortcut?`#node-input-${t.replace("$","")}`:t}function l(t,e,n){e.forEach(o=>{let r=document.querySelector(o);r&&n.forEach(i=>r.classList[t](i));});}function g(t,e){l("remove",t,e);}function p(t,e){l("add",t,e);}function f(t){return s(t).split("-input-")[1]}function h(t,e,n){let o=s(t),r=e;n!=null&&n.emptyValue&&(r=[{value:"",text:n.emptyValue},...e]),$(o).empty().append(r.map(i=>$("<option>",{value:i.value,text:i.text,selected:i.value===(n==null?void 0:n.selected)})));}function b(t,e,n={additionalEvents:[]}){let r=(Array.isArray(t)?t:[t]).map(s).join(", "),i=["input",...n.additionalEvents];$(r).on(i.join(" "),()=>{let a=$(r).map(function(){return $(this).val()}).get();e(a);});}function m(t,e){let n=s(t);$(n).val(e);}function x(t,e){let n=s(t);$(n).text(e);}function S(t){let e=s(t);return $(e)}function v(t){let e=s(t);return document.querySelector(e).checked}function y(t){let e={};return document.querySelectorAll(`[id^="node-input-${t}-"]`).forEach(n=>{let o=n,r=o.id.replace(`node-input-${t}-`,"");o.type==="checkbox"?e[r]=o.checked:e[r]=o.value;}),e}function I(t,e){e&&Object.entries(e).forEach(([n,o])=>{let r=document.querySelector(`#node-input-${t}-${n}`);r&&(r.type==="checkbox"?r.checked=!!o:r.value=String(o));});}function E(t){let e=`#tabs-content-${t.targetId}`,n=RED.tabs.create({id:t.targetId,onchange:o=>{$(e).children().addClass("hidden"),$(`#${o.id}`).removeClass("hidden");}});(t.tabsLabel||[]).forEach(o=>{n.addTab({id:`tab-${c(o)}`,label:o});}),n.activateTab(`tab-${c(t.initialTab)}`);}export{p as addClassesOnSelectors,y as getFormValues,l as handleAddRemoveClassesOnSelectors,h as initSelect,E as initTabs,v as isCheckboxChecked,u as isNodeInput,S as jqSelector,g as removeClassesOnSelectors,f as resolveInputKey,s as resolveSelector,I as setFormValues,m as setInputValue,x as setText,b as watchInput};
1
+ import"../../src-DvBS17xd.js";const e=e=>{if(!e||e.length===0)return``;let t=e.toLowerCase();return t.substring(0,1).toUpperCase()+t.substring(1,t.length)},t=(t,n)=>{var r;let i=(r=t==null?void 0:t.replace(/([A-Z])+/g,e).split(/(?=[A-Z])|[\.\-\s_]/).map(e=>e.toLowerCase()))==null?[]:r;if(i.length===0)return``;if(i.length===1)return i[0];let a=i.reduce((e,t)=>`${e}_${t.toLowerCase()}`);return(n==null?void 0:n.splitOnNumber)===!1?a:a.replace(/([A-Za-z]{1}[0-9]{1})/,e=>`${e[0]}_${e[1]}`)};function n(e){let t=e.startsWith(`$`),n=e.startsWith(`$$`),r=e.startsWith(`#node-config-input`)||e.startsWith(`#node-input`);return{isNodeIdShortcut:t,isNodeConfigIdShortcut:n,isFullSelector:r,value:t||n||r}}function r(e){let t=n(e);return t.isNodeConfigIdShortcut?`#node-config-input-${e.replace(`$$`,``)}`:t.isNodeIdShortcut?`#node-input-${e.replace(`$`,``)}`:e}function i(e,t,n){t.forEach(t=>{let r=document.querySelector(t);r&&n.forEach(t=>r.classList[e](t))})}function a(e,t){i(`remove`,e,t)}function o(e,t){i(`add`,e,t)}function s(e){return r(e).split(`-input-`)[1]}function c(e,t,n){let i=r(e),a=t;n!=null&&n.emptyValue&&(a=[{value:``,text:n.emptyValue},...t]),$(i).empty().append(a.map(e=>$(`<option>`,{value:e.value,text:e.text,selected:e.value===(n==null?void 0:n.selected)})))}function l(e,t,n={additionalEvents:[]}){let i=(Array.isArray(e)?e:[e]).map(r).join(`, `),a=[`input`,...n.additionalEvents];$(i).on(a.join(` `),()=>{t($(i).map(function(){return $(this).val()}).get())})}function u(e,t){let n=r(e);$(n).val(t)}function d(e,t){let n=r(e);$(n).text(t)}function f(e){let t=r(e);return $(t)}function p(e){let t=r(e);return document.querySelector(t).checked}function m(e){let t={};return document.querySelectorAll(`[id^="node-input-${e}-"]`).forEach(n=>{let r=n,i=r.id.replace(`node-input-${e}-`,``);r.type===`checkbox`?t[i]=r.checked:t[i]=r.value}),t}function h(e,t){t&&Object.entries(t).forEach(([t,n])=>{let r=document.querySelector(`#node-input-${e}-${t}`);r&&(r.type===`checkbox`?r.checked=!!n:r.value=String(n))})}function g(e){let n=`#tabs-content-${e.targetId}`,r=RED.tabs.create({id:e.targetId,onchange:e=>{$(n).children().addClass(`hidden`),$(`#${e.id}`).removeClass(`hidden`)}});(e.tabsLabel||[]).forEach(e=>{r.addTab({id:`tab-${t(e)}`,label:e})}),r.activateTab(`tab-${t(e.initialTab)}`)}export{o as addClassesOnSelectors,m as getFormValues,i as handleAddRemoveClassesOnSelectors,c as initSelect,g as initTabs,p as isCheckboxChecked,n as isNodeInput,f as jqSelector,a as removeClassesOnSelectors,s as resolveInputKey,r as resolveSelector,h as setFormValues,u as setInputValue,d as setText,l as watchInput};
@@ -1 +1 @@
1
- 'use strict';function u(e){return Object.prototype.toString.call(e).slice(8,-1)}function n(e){if(u(e)!=="Object")return false;let r=Object.getPrototypeOf(e);return !!r&&r.constructor===Object&&r===Object.prototype}function c(e){return u(e)==="Symbol"}function x(e,r,s,i){let m={}.propertyIsEnumerable.call(i,r)?"enumerable":"nonenumerable";m==="enumerable"&&(e[r]=s),m==="nonenumerable"&&Object.defineProperty(e,r,{value:s,enumerable:false,writable:true,configurable:true});}function d(e,r,s){if(!n(r))return r;let i={};if(n(e)){let f=Object.getOwnPropertyNames(e),p=Object.getOwnPropertySymbols(e);i=[...f,...p].reduce((o,t)=>{if(t==="__proto__")return o;let l=e[t];return (!c(t)&&!Object.getOwnPropertyNames(r).includes(t)||c(t)&&!Object.getOwnPropertySymbols(r).includes(t))&&x(o,t,l,e),o},{});}let m=Object.getOwnPropertyNames(r),a=Object.getOwnPropertySymbols(r);return [...m,...a].reduce((f,p)=>{if(p==="__proto__")return f;let o=r[p],t=n(e)?e[p]:void 0;t!==void 0&&n(o)&&(o=d(t,o));let l=o;return x(f,p,l,r),f},i)}function b(e,...r){return r.reduce((s,i)=>d(s,i),e)}var O={};function v(e){return b(O,e)}exports.createEditorNode=v;
1
+ function e(e){return Object.prototype.toString.call(e).slice(8,-1)}function t(t){if(e(t)!==`Object`)return!1;let n=Object.getPrototypeOf(t);return!!n&&n.constructor===Object&&n===Object.prototype}function n(t){return e(t)===`Symbol`}function r(e,t,n,r){let i={}.propertyIsEnumerable.call(r,t)?`enumerable`:`nonenumerable`;i===`enumerable`&&(e[t]=n),i===`nonenumerable`&&Object.defineProperty(e,t,{value:n,enumerable:!1,writable:!0,configurable:!0})}function i(e,a,o){if(!t(a))return a;let s={};if(t(e)){let t=Object.getOwnPropertyNames(e),i=Object.getOwnPropertySymbols(e);s=[...t,...i].reduce((t,i)=>{if(i===`__proto__`)return t;let o=e[i];return(!n(i)&&!Object.getOwnPropertyNames(a).includes(i)||n(i)&&!Object.getOwnPropertySymbols(a).includes(i))&&r(t,i,o,e),t},{})}let c=Object.getOwnPropertyNames(a),l=Object.getOwnPropertySymbols(a);return[...c,...l].reduce((n,s)=>{if(s===`__proto__`)return n;let c=a[s],l=t(e)?e[s]:void 0;return l!==void 0&&t(c)&&(c=i(l,c,o)),r(n,s,o?o(l,c,s):c,a),n},s)}function a(e,...t){return t.reduce((e,t)=>i(e,t),e)}const o={};function s(e){return a(o,e)}exports.createEditorNode=s;
@@ -1,6 +1,7 @@
1
- import { EditorNodeProperties, EditorNodeDef } from 'node-red';
2
- export { E as EditorDomHelper, N as NodeControllerConfig, a as NodeControllerInst, c as NodeEditorDefinition, b as NodeEditorProps } from '../types-B7YUmbnu.cjs';
1
+ import { a as NodeEditorProps, i as NodeEditorDefinition, n as NodeControllerConfig, r as NodeControllerInst, t as EditorDomHelper } from "../types-B5Bh_DR_.cjs";
2
+ import { EditorNodeDef, EditorNodeProperties } from "node-red";
3
3
 
4
+ //#region src/editor/index.d.ts
4
5
  declare function createEditorNode<TProps extends EditorNodeProperties, TCreds = undefined, TInstProps extends TProps = TProps>(props: Partial<EditorNodeDef<TProps, TCreds, TInstProps>>): EditorNodeDef<TProps, TCreds, TInstProps>;
5
-
6
- export { createEditorNode };
6
+ //#endregion
7
+ export { EditorDomHelper, NodeControllerConfig, NodeControllerInst, NodeEditorDefinition, NodeEditorProps, createEditorNode };
@@ -1,6 +1,7 @@
1
- import { EditorNodeProperties, EditorNodeDef } from 'node-red';
2
- export { E as EditorDomHelper, N as NodeControllerConfig, a as NodeControllerInst, c as NodeEditorDefinition, b as NodeEditorProps } from '../types-B7YUmbnu.js';
1
+ import { a as NodeEditorProps, i as NodeEditorDefinition, n as NodeControllerConfig, r as NodeControllerInst, t as EditorDomHelper } from "../types-BSEMgzWV.js";
2
+ import { EditorNodeDef, EditorNodeProperties } from "node-red";
3
3
 
4
+ //#region src/editor/index.d.ts
4
5
  declare function createEditorNode<TProps extends EditorNodeProperties, TCreds = undefined, TInstProps extends TProps = TProps>(props: Partial<EditorNodeDef<TProps, TCreds, TInstProps>>): EditorNodeDef<TProps, TCreds, TInstProps>;
5
-
6
- export { createEditorNode };
6
+ //#endregion
7
+ export { EditorDomHelper, NodeControllerConfig, NodeControllerInst, NodeEditorDefinition, NodeEditorProps, createEditorNode };
@@ -1 +1 @@
1
- import'../chunk-O2XFH626.js';function u(e){return Object.prototype.toString.call(e).slice(8,-1)}function n(e){if(u(e)!=="Object")return false;let r=Object.getPrototypeOf(e);return !!r&&r.constructor===Object&&r===Object.prototype}function c(e){return u(e)==="Symbol"}function x(e,r,s,i){let m={}.propertyIsEnumerable.call(i,r)?"enumerable":"nonenumerable";m==="enumerable"&&(e[r]=s),m==="nonenumerable"&&Object.defineProperty(e,r,{value:s,enumerable:false,writable:true,configurable:true});}function d(e,r,s){if(!n(r))return r;let i={};if(n(e)){let f=Object.getOwnPropertyNames(e),p=Object.getOwnPropertySymbols(e);i=[...f,...p].reduce((o,t)=>{if(t==="__proto__")return o;let l=e[t];return (!c(t)&&!Object.getOwnPropertyNames(r).includes(t)||c(t)&&!Object.getOwnPropertySymbols(r).includes(t))&&x(o,t,l,e),o},{});}let m=Object.getOwnPropertyNames(r),a=Object.getOwnPropertySymbols(r);return [...m,...a].reduce((f,p)=>{if(p==="__proto__")return f;let o=r[p],t=n(e)?e[p]:void 0;t!==void 0&&n(o)&&(o=d(t,o));let l=o;return x(f,p,l,r),f},i)}function b(e,...r){return r.reduce((s,i)=>d(s,i),e)}var O={};function v(e){return b(O,e)}export{v as createEditorNode};
1
+ function e(e){return Object.prototype.toString.call(e).slice(8,-1)}function t(t){if(e(t)!==`Object`)return!1;let n=Object.getPrototypeOf(t);return!!n&&n.constructor===Object&&n===Object.prototype}function n(t){return e(t)===`Symbol`}function r(e,t,n,r){let i={}.propertyIsEnumerable.call(r,t)?`enumerable`:`nonenumerable`;i===`enumerable`&&(e[t]=n),i===`nonenumerable`&&Object.defineProperty(e,t,{value:n,enumerable:!1,writable:!0,configurable:!0})}function i(e,a,o){if(!t(a))return a;let s={};if(t(e)){let t=Object.getOwnPropertyNames(e),i=Object.getOwnPropertySymbols(e);s=[...t,...i].reduce((t,i)=>{if(i===`__proto__`)return t;let o=e[i];return(!n(i)&&!Object.getOwnPropertyNames(a).includes(i)||n(i)&&!Object.getOwnPropertySymbols(a).includes(i))&&r(t,i,o,e),t},{})}let c=Object.getOwnPropertyNames(a),l=Object.getOwnPropertySymbols(a);return[...c,...l].reduce((n,s)=>{if(s===`__proto__`)return n;let c=a[s],l=t(e)?e[s]:void 0;return l!==void 0&&t(c)&&(c=i(l,c,o)),r(n,s,o?o(l,c,s):c,a),n},s)}function a(e,...t){return t.reduce((e,t)=>i(e,t),e)}const o={};function s(e){return a(o,e)}export{s as createEditorNode};
@@ -1 +1 @@
1
- 'use strict';var u=Object.defineProperty;var m=(t,e,i)=>e in t?u(t,e,{enumerable:true,configurable:true,writable:true,value:i}):t[e]=i;var n=(t,e,i)=>m(t,typeof e!="symbol"?e+"":e,i);function d(t){let e=t.startsWith("[config]"),i=t.replace("[config]","");return `node-${e?"config-":""}input-${i}`}function a(){let t=document.createElement("div");return t.classList.add("dxp-form-row"),t}function p(t){let e;return ["text","checkbox","password"].includes(t.type)&&(e=document.createElement("input"),e.setAttribute("type",t.type),t.type==="text"&&(t!=null&&t.placeholder)&&e.setAttribute("placeholder",t.placeholder)),t.type==="select"&&(e=document.createElement("select")),e.setAttribute("id",t.id),e}var s=class extends HTMLElement{constructor(){super();n(this,"formRowContainer");n(this,"mainContainer");n(this,"labelText");n(this,"inputType");n(this,"iconClass");n(this,"rowId");this.formRowContainer=a(),this.rowId=d(this.getAttribute("row-id")||"row-id"),this.labelText=this.getAttribute("label")||"Label",this.inputType=this.getAttribute("type")||"text",this.iconClass=this.getAttribute("icon"),this.mainContainer=document.createElement("div"),this.mainContainer.classList.add("main");let i=this.querySelector(".hint"),c=this.querySelector(".checkbox-hint"),o=document.createElement("div");if(this.iconClass){let l=document.createElement("i");l.classList.add("fa",`fa-${this.iconClass}`),o.appendChild(l);}let r=document.createElement("label");r.setAttribute("for",this.rowId),r.textContent=this.labelText,o.appendChild(r),this.mainContainer.appendChild(o);let h=p({type:this.inputType,id:this.rowId});this.mainContainer.appendChild(h),this.inputType==="checkbox"&&c&&this.mainContainer.appendChild(c),this.formRowContainer.appendChild(this.mainContainer),i&&this.formRowContainer.appendChild(i),this.appendChild(this.formRowContainer);}};customElements.get("dxp-form-row")||customElements.define("dxp-form-row",s);exports.DxpFormRow=s;
1
+ function e(e){let t=e.startsWith(`[config]`),n=e.replace(`[config]`,``);return`node-${t?`config-`:``}input-${n}`}function t(){let e=document.createElement(`div`);return e.classList.add(`dxp-form-row`),e}function n(e){let t;return[`text`,`checkbox`,`password`].includes(e.type)&&(t=document.createElement(`input`),t.setAttribute(`type`,e.type),e.type===`text`&&e!=null&&e.placeholder&&t.setAttribute(`placeholder`,e.placeholder)),e.type===`select`&&(t=document.createElement(`select`)),t.setAttribute(`id`,e.id),t}var r=class extends HTMLElement{constructor(){super(),this.formRowContainer=t(),this.rowId=e(this.getAttribute(`row-id`)||`row-id`),this.labelText=this.getAttribute(`label`)||`Label`,this.inputType=this.getAttribute(`type`)||`text`,this.iconClass=this.getAttribute(`icon`),this.mainContainer=document.createElement(`div`),this.mainContainer.classList.add(`main`);let r=this.querySelector(`.hint`),i=this.querySelector(`.checkbox-hint`),a=document.createElement(`div`);if(this.iconClass){let e=document.createElement(`i`);e.classList.add(`fa`,`fa-${this.iconClass}`),a.appendChild(e)}let o=document.createElement(`label`);o.setAttribute(`for`,this.rowId),o.textContent=this.labelText,a.appendChild(o),this.mainContainer.appendChild(a);let s=n({type:this.inputType,id:this.rowId});this.mainContainer.appendChild(s),this.inputType===`checkbox`&&i&&this.mainContainer.appendChild(i),this.formRowContainer.appendChild(this.mainContainer),r&&this.formRowContainer.appendChild(r),this.appendChild(this.formRowContainer)}};customElements.get(`dxp-form-row`)||customElements.define(`dxp-form-row`,r),exports.DxpFormRow=r;
@@ -1,11 +1,12 @@
1
+ //#region src/editor/web-components/dxpFormRow.d.ts
1
2
  declare class DxpFormRow extends HTMLElement {
2
- private formRowContainer;
3
- private mainContainer;
4
- private labelText;
5
- private inputType;
6
- private iconClass;
7
- private rowId;
8
- constructor();
3
+ private formRowContainer;
4
+ private mainContainer;
5
+ private labelText;
6
+ private inputType;
7
+ private iconClass;
8
+ private rowId;
9
+ constructor();
9
10
  }
10
-
11
- export { DxpFormRow };
11
+ //#endregion
12
+ export { DxpFormRow };
@@ -1,11 +1,12 @@
1
+ //#region src/editor/web-components/dxpFormRow.d.ts
1
2
  declare class DxpFormRow extends HTMLElement {
2
- private formRowContainer;
3
- private mainContainer;
4
- private labelText;
5
- private inputType;
6
- private iconClass;
7
- private rowId;
8
- constructor();
3
+ private formRowContainer;
4
+ private mainContainer;
5
+ private labelText;
6
+ private inputType;
7
+ private iconClass;
8
+ private rowId;
9
+ constructor();
9
10
  }
10
-
11
- export { DxpFormRow };
11
+ //#endregion
12
+ export { DxpFormRow };
@@ -1 +1 @@
1
- import {a as a$1}from'../../chunk-O2XFH626.js';function d(t){let e=t.startsWith("[config]"),n=t.replace("[config]","");return `node-${e?"config-":""}input-${n}`}function a(){let t=document.createElement("div");return t.classList.add("dxp-form-row"),t}function p(t){let e;return ["text","checkbox","password"].includes(t.type)&&(e=document.createElement("input"),e.setAttribute("type",t.type),t.type==="text"&&(t!=null&&t.placeholder)&&e.setAttribute("placeholder",t.placeholder)),t.type==="select"&&(e=document.createElement("select")),e.setAttribute("id",t.id),e}var s=class extends HTMLElement{constructor(){super();a$1(this,"formRowContainer");a$1(this,"mainContainer");a$1(this,"labelText");a$1(this,"inputType");a$1(this,"iconClass");a$1(this,"rowId");this.formRowContainer=a(),this.rowId=d(this.getAttribute("row-id")||"row-id"),this.labelText=this.getAttribute("label")||"Label",this.inputType=this.getAttribute("type")||"text",this.iconClass=this.getAttribute("icon"),this.mainContainer=document.createElement("div"),this.mainContainer.classList.add("main");let n=this.querySelector(".hint"),c=this.querySelector(".checkbox-hint"),o=document.createElement("div");if(this.iconClass){let l=document.createElement("i");l.classList.add("fa",`fa-${this.iconClass}`),o.appendChild(l);}let r=document.createElement("label");r.setAttribute("for",this.rowId),r.textContent=this.labelText,o.appendChild(r),this.mainContainer.appendChild(o);let h=p({type:this.inputType,id:this.rowId});this.mainContainer.appendChild(h),this.inputType==="checkbox"&&c&&this.mainContainer.appendChild(c),this.formRowContainer.appendChild(this.mainContainer),n&&this.formRowContainer.appendChild(n),this.appendChild(this.formRowContainer);}};customElements.get("dxp-form-row")||customElements.define("dxp-form-row",s);export{s as DxpFormRow};
1
+ function e(e){let t=e.startsWith(`[config]`),n=e.replace(`[config]`,``);return`node-${t?`config-`:``}input-${n}`}function t(){let e=document.createElement(`div`);return e.classList.add(`dxp-form-row`),e}function n(e){let t;return[`text`,`checkbox`,`password`].includes(e.type)&&(t=document.createElement(`input`),t.setAttribute(`type`,e.type),e.type===`text`&&e!=null&&e.placeholder&&t.setAttribute(`placeholder`,e.placeholder)),e.type===`select`&&(t=document.createElement(`select`)),t.setAttribute(`id`,e.id),t}var r=class extends HTMLElement{constructor(){super(),this.formRowContainer=t(),this.rowId=e(this.getAttribute(`row-id`)||`row-id`),this.labelText=this.getAttribute(`label`)||`Label`,this.inputType=this.getAttribute(`type`)||`text`,this.iconClass=this.getAttribute(`icon`),this.mainContainer=document.createElement(`div`),this.mainContainer.classList.add(`main`);let r=this.querySelector(`.hint`),i=this.querySelector(`.checkbox-hint`),a=document.createElement(`div`);if(this.iconClass){let e=document.createElement(`i`);e.classList.add(`fa`,`fa-${this.iconClass}`),a.appendChild(e)}let o=document.createElement(`label`);o.setAttribute(`for`,this.rowId),o.textContent=this.labelText,a.appendChild(o),this.mainContainer.appendChild(a);let s=n({type:this.inputType,id:this.rowId});this.mainContainer.appendChild(s),this.inputType===`checkbox`&&i&&this.mainContainer.appendChild(i),this.formRowContainer.appendChild(this.mainContainer),r&&this.formRowContainer.appendChild(r),this.appendChild(this.formRowContainer)}};customElements.get(`dxp-form-row`)||customElements.define(`dxp-form-row`,r);export{r as DxpFormRow};
@@ -0,0 +1,6 @@
1
+ import { NodeAPI } from "node-red";
2
+
3
+ //#region src/index.d.ts
4
+ declare global {
5
+ var RED: NodeAPI;
6
+ }
@@ -0,0 +1,6 @@
1
+ import { NodeAPI } from "node-red";
2
+
3
+ //#region src/index.d.ts
4
+ declare global {
5
+ var RED: NodeAPI;
6
+ }
package/dist/index.cjs CHANGED
@@ -1 +1 @@
1
- 'use strict';
1
+ require(`./src-BNoPX5QG.cjs`);
package/dist/index.d.cts CHANGED
@@ -1,5 +1 @@
1
- import { NodeAPI } from 'node-red';
2
-
3
- declare global {
4
- var RED: NodeAPI;
5
- }
1
+ import "./index-DKhJ6JZE.cjs";
package/dist/index.d.ts CHANGED
@@ -1,5 +1 @@
1
- import { NodeAPI } from 'node-red';
2
-
3
- declare global {
4
- var RED: NodeAPI;
5
- }
1
+ import "./index-BhYSgW2V.js";
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- import'./chunk-Z65JVQED.js';
1
+ import"./src-DvBS17xd.js";
File without changes
@@ -1,14 +1,15 @@
1
- import { NodeDef, Node, EditorNodeProperties, EditorNodeDef } from 'node-red';
1
+ import { EditorNodeDef, EditorNodeProperties, Node, NodeDef } from "node-red";
2
2
 
3
+ //#region src/editor/types.d.ts
3
4
  type NodeControllerConfig<T> = NodeDef & T;
4
5
  type NodeControllerInst<T> = Node & T;
5
6
  type NodeEditorProps<T = Record<any, any>> = EditorNodeProperties & T;
6
7
  type NodeEditorDefinition<TProps extends EditorNodeProperties, TCreds = undefined, TInstProps extends TProps = TProps> = EditorNodeDef<TProps, TCreds, TInstProps>;
7
8
  declare namespace EditorDomHelper {
8
- type InitSelectParams = {
9
- selected?: string | number | unknown;
10
- emptyValue?: string;
11
- };
9
+ type InitSelectParams = {
10
+ selected?: string | number | unknown;
11
+ emptyValue?: string;
12
+ };
12
13
  }
13
-
14
- export { EditorDomHelper as E, type NodeControllerConfig as N, type NodeControllerInst as a, type NodeEditorProps as b, type NodeEditorDefinition as c };
14
+ //#endregion
15
+ export { NodeEditorProps as a, NodeEditorDefinition as i, NodeControllerConfig as n, NodeControllerInst as r, EditorDomHelper as t };
@@ -1,14 +1,15 @@
1
- import { NodeDef, Node, EditorNodeProperties, EditorNodeDef } from 'node-red';
1
+ import { EditorNodeDef, EditorNodeProperties, Node, NodeDef } from "node-red";
2
2
 
3
+ //#region src/editor/types.d.ts
3
4
  type NodeControllerConfig<T> = NodeDef & T;
4
5
  type NodeControllerInst<T> = Node & T;
5
6
  type NodeEditorProps<T = Record<any, any>> = EditorNodeProperties & T;
6
7
  type NodeEditorDefinition<TProps extends EditorNodeProperties, TCreds = undefined, TInstProps extends TProps = TProps> = EditorNodeDef<TProps, TCreds, TInstProps>;
7
8
  declare namespace EditorDomHelper {
8
- type InitSelectParams = {
9
- selected?: string | number | unknown;
10
- emptyValue?: string;
11
- };
9
+ type InitSelectParams = {
10
+ selected?: string | number | unknown;
11
+ emptyValue?: string;
12
+ };
12
13
  }
13
-
14
- export { EditorDomHelper as E, type NodeControllerConfig as N, type NodeControllerInst as a, type NodeEditorProps as b, type NodeEditorDefinition as c };
14
+ //#endregion
15
+ export { NodeEditorProps as a, NodeEditorDefinition as i, NodeControllerConfig as n, NodeControllerInst as r, EditorDomHelper as t };
@@ -1 +1 @@
1
- 'use strict';var y=(e,r,o)=>new Promise((d,a)=>{var l=n=>{try{u(o.next(n));}catch(i){a(i);}},t=n=>{try{u(o.throw(n));}catch(i){a(i);}},u=n=>n.done?d(n.value):Promise.resolve(n.value).then(l,t);u((o=o.apply(e,r)).next());});function N(e,r){return typeof e!="boolean"?(console.warn("Payload must be a boolean (true or false)."),[null,null]):e?[r,null]:[null,r]}function P(e){return RED.nodes.getNode(e)}function f(e){return new Promise(r=>{try{RED.util.evaluateNodeProperty(e.value,e.type,e.node,e.msg,(o,d)=>{r([o,d]);});}catch(o){r([o,void 0]);}})}function c(e,r,o={typedSuffix:"Type"}){function d(t,u){return f({value:t,type:u,node:e,msg:r})}function a(t){return typeof t!="boolean"&&t===""}function l(i,x){return y(this,arguments,function*(t,u,n={strictDefaultValue:void 0}){let[,s]=yield d(t==null?void 0:t[u],t==null?void 0:t[`${String(u)}${o.typedSuffix}`]);return (n==null?void 0:n.strictDefaultValue)!==void 0&&a(s)?n.strictDefaultValue:s})}return {evaluateNodeProperty:d,quickNodePropertyEval:l}}exports.evaluateNodeProperty=f;exports.getREDNode=P;exports.splitBooleanOutputs=N;exports.useControllerNode=c;
1
+ function e(e,t,n,r,i,a,o){try{var s=e[a](o),c=s.value}catch(e){n(e);return}s.done?t(c):Promise.resolve(c).then(r,i)}function t(t){return function(){var n=this,r=arguments;return new Promise(function(i,a){var o=t.apply(n,r);function s(t){e(o,i,a,s,c,`next`,t)}function c(t){e(o,i,a,s,c,`throw`,t)}s(void 0)})}}function n(e,t){return typeof e==`boolean`?e?[t,null]:[null,t]:(console.warn(`Payload must be a boolean (true or false).`),[null,null])}function r(e){return RED.nodes.getNode(e)}function i(e){return new Promise(t=>{try{RED.util.evaluateNodeProperty(e.value,e.type,e.node,e.msg,(e,n)=>{t([e,n])})}catch(e){t([e,void 0])}})}function a(e,n,r={typedSuffix:`Type`}){function a(t,r){return i({value:t,type:r,node:e,msg:n})}function o(e){return typeof e!=`boolean`&&e===``}function s(e,t){return c.apply(this,arguments)}function c(){return c=t(function*(e,t,n={strictDefaultValue:void 0}){let[,i]=yield a(e==null?void 0:e[t],e==null?void 0:e[`${String(t)}${r.typedSuffix}`]);return(n==null?void 0:n.strictDefaultValue)===void 0?i:o(i)?n.strictDefaultValue:i}),c.apply(this,arguments)}return{evaluateNodeProperty:a,quickNodePropertyEval:s}}exports.evaluateNodeProperty=i,exports.getREDNode=r,exports.splitBooleanOutputs=n,exports.useControllerNode=a;
@@ -1,9 +1,11 @@
1
- import { NodeAPI, Node, NodeMessage } from 'node-red';
1
+ import { Node, NodeAPI, NodeMessage } from "node-red";
2
2
 
3
+ //#region src/index.d.ts
3
4
  declare global {
4
- var RED: NodeAPI;
5
+ var RED: NodeAPI;
5
6
  }
6
-
7
+ //#endregion
8
+ //#region src/utils/server-side/controller.d.ts
7
9
  /**
8
10
  * Splits a message into two outputs based on a boolean condition.
9
11
  *
@@ -54,10 +56,10 @@ declare function splitBooleanOutputs(conditionTerm: boolean, msg: unknown): unkn
54
56
  */
55
57
  declare function getREDNode<TFields extends {} = Record<any, any>, TCreds extends {} = Record<any, any>>(idNode: string): (Node<TCreds> & TFields) | null;
56
58
  type EvaluateNodePropertyParams = {
57
- value: string;
58
- type: string;
59
- node: Node;
60
- msg: NodeMessage;
59
+ value: string;
60
+ type: string;
61
+ node: Node;
62
+ msg: NodeMessage;
61
63
  };
62
64
  /**
63
65
  * Evaluates a node property in the Node-RED environment.
@@ -139,12 +141,12 @@ declare function evaluateNodeProperty(params: EvaluateNodePropertyParams): Promi
139
141
  * @returns {object} An object containing utility functions for evaluating node properties.
140
142
  */
141
143
  declare function useControllerNode(node: Node, msg: NodeMessage, opts?: {
142
- typedSuffix: string;
144
+ typedSuffix: string;
143
145
  }): {
144
- evaluateNodeProperty: (value: EvaluateNodePropertyParams["value"], type: EvaluateNodePropertyParams["type"]) => Promise<[Error | undefined, any | undefined]>;
145
- quickNodePropertyEval: <T extends object>(bag: T, term: keyof T, quickOpts?: {
146
- strictDefaultValue: any;
147
- }) => Promise<any>;
146
+ evaluateNodeProperty: (value: EvaluateNodePropertyParams["value"], type: EvaluateNodePropertyParams["type"]) => Promise<[Error | undefined, any | undefined]>;
147
+ quickNodePropertyEval: <T extends object>(bag: T, term: keyof T, quickOpts?: {
148
+ strictDefaultValue: any;
149
+ }) => Promise<any>;
148
150
  };
149
-
150
- export { evaluateNodeProperty, getREDNode, splitBooleanOutputs, useControllerNode };
151
+ //#endregion
152
+ export { evaluateNodeProperty, getREDNode, splitBooleanOutputs, useControllerNode };
@@ -1,9 +1,11 @@
1
- import { NodeAPI, Node, NodeMessage } from 'node-red';
1
+ import { Node, NodeAPI, NodeMessage } from "node-red";
2
2
 
3
+ //#region src/index.d.ts
3
4
  declare global {
4
- var RED: NodeAPI;
5
+ var RED: NodeAPI;
5
6
  }
6
-
7
+ //#endregion
8
+ //#region src/utils/server-side/controller.d.ts
7
9
  /**
8
10
  * Splits a message into two outputs based on a boolean condition.
9
11
  *
@@ -54,10 +56,10 @@ declare function splitBooleanOutputs(conditionTerm: boolean, msg: unknown): unkn
54
56
  */
55
57
  declare function getREDNode<TFields extends {} = Record<any, any>, TCreds extends {} = Record<any, any>>(idNode: string): (Node<TCreds> & TFields) | null;
56
58
  type EvaluateNodePropertyParams = {
57
- value: string;
58
- type: string;
59
- node: Node;
60
- msg: NodeMessage;
59
+ value: string;
60
+ type: string;
61
+ node: Node;
62
+ msg: NodeMessage;
61
63
  };
62
64
  /**
63
65
  * Evaluates a node property in the Node-RED environment.
@@ -139,12 +141,12 @@ declare function evaluateNodeProperty(params: EvaluateNodePropertyParams): Promi
139
141
  * @returns {object} An object containing utility functions for evaluating node properties.
140
142
  */
141
143
  declare function useControllerNode(node: Node, msg: NodeMessage, opts?: {
142
- typedSuffix: string;
144
+ typedSuffix: string;
143
145
  }): {
144
- evaluateNodeProperty: (value: EvaluateNodePropertyParams["value"], type: EvaluateNodePropertyParams["type"]) => Promise<[Error | undefined, any | undefined]>;
145
- quickNodePropertyEval: <T extends object>(bag: T, term: keyof T, quickOpts?: {
146
- strictDefaultValue: any;
147
- }) => Promise<any>;
146
+ evaluateNodeProperty: (value: EvaluateNodePropertyParams["value"], type: EvaluateNodePropertyParams["type"]) => Promise<[Error | undefined, any | undefined]>;
147
+ quickNodePropertyEval: <T extends object>(bag: T, term: keyof T, quickOpts?: {
148
+ strictDefaultValue: any;
149
+ }) => Promise<any>;
148
150
  };
149
-
150
- export { evaluateNodeProperty, getREDNode, splitBooleanOutputs, useControllerNode };
151
+ //#endregion
152
+ export { evaluateNodeProperty, getREDNode, splitBooleanOutputs, useControllerNode };
@@ -0,0 +1 @@
1
+ function e(e,t,n,r,i,a,o){try{var s=e[a](o),c=s.value}catch(e){n(e);return}s.done?t(c):Promise.resolve(c).then(r,i)}function t(t){return function(){var n=this,r=arguments;return new Promise(function(i,a){var o=t.apply(n,r);function s(t){e(o,i,a,s,c,`next`,t)}function c(t){e(o,i,a,s,c,`throw`,t)}s(void 0)})}}function n(e,t){return typeof e==`boolean`?e?[t,null]:[null,t]:(console.warn(`Payload must be a boolean (true or false).`),[null,null])}function r(e){return RED.nodes.getNode(e)}function i(e){return new Promise(t=>{try{RED.util.evaluateNodeProperty(e.value,e.type,e.node,e.msg,(e,n)=>{t([e,n])})}catch(e){t([e,void 0])}})}function a(e,n,r={typedSuffix:`Type`}){function a(t,r){return i({value:t,type:r,node:e,msg:n})}function o(e){return typeof e!=`boolean`&&e===``}function s(e,t){return c.apply(this,arguments)}function c(){return c=t(function*(e,t,n={strictDefaultValue:void 0}){let[,i]=yield a(e==null?void 0:e[t],e==null?void 0:e[`${String(t)}${r.typedSuffix}`]);return(n==null?void 0:n.strictDefaultValue)===void 0?i:o(i)?n.strictDefaultValue:i}),c.apply(this,arguments)}return{evaluateNodeProperty:a,quickNodePropertyEval:s}}export{i as evaluateNodeProperty,r as getREDNode,n as splitBooleanOutputs,a as useControllerNode};