iobroker.webui 1.32.0 → 1.34.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.
- package/README.md +6 -0
- package/io-package.json +27 -28
- package/package.json +16 -16
- package/www/dist/frontend/generated/Properties.json +4 -3
- package/www/dist/frontend/generated/ScriptCommands.json +43 -1
- package/www/dist/frontend/runtime/CustomControls.js +1 -1
- package/www/index.html +1 -1
- package/www/node_modules/@iobroker/socket-client/dist/esm/Connection.d.ts +16 -0
- package/www/node_modules/@iobroker/socket-client/dist/esm/Connection.js +31 -2
- package/www/node_modules/@iobroker/webcomponent-selectid-dialog/dist/iobrokerSelectId.es.js +11861 -11813
- package/www/node_modules/@iobroker/webcomponent-selectid-dialog/dist/selectIdHelper.js +31 -27
- package/www/node_modules/@iobroker/webcomponent-selectid-dialog/dist/socket.iob.js +2 -2
- package/www/node_modules/@node-projects/base-custom-webcomponent/dist/BaseCustomWebComponent.d.ts +1 -12
- package/www/node_modules/@node-projects/base-custom-webcomponent/dist/BaseCustomWebComponent.js +1 -25
- package/www/node_modules/@node-projects/base-custom-webcomponent/dist/Decorator.js +105 -0
- package/www/node_modules/@node-projects/web-component-designer/dist/elements/documentContainer.js +5 -4
- package/www/node_modules/@node-projects/web-component-designer-visualization-addons/dist/components/BindingsEditor.js +1 -1
- package/www/node_modules/@node-projects/web-component-designer-visualization-addons/dist/helpers/BindingsHelper.js +32 -4
- package/www/node_modules/@node-projects/web-component-designer-visualization-addons/dist/index.js +0 -5
- package/www/node_modules/@node-projects/web-component-designer-visualization-addons/dist/interfaces/IScriptMultiplexValue.js +1 -20
- package/www/node_modules/@node-projects/web-component-designer-visualization-addons/dist/scripting/ScriptSystem.js +25 -2
- package/www/node_modules/blockly/blockly_compressed.js +221 -215
- package/www/node_modules/dock-spawn-ts/lib/es5/dock-spawn-ts.js +1 -1
- package/www/node_modules/dock-spawn-ts/lib/js/webcomponent/DockSpawnTsWebcomponent.js +5 -4
package/README.md
CHANGED
|
@@ -133,6 +133,12 @@ runtime.html?screenName=screen2
|
|
|
133
133
|
Placeholder for next versions:
|
|
134
134
|
### __WORK IN PROGRESS__
|
|
135
135
|
-->
|
|
136
|
+
### 1.34.0 (2025-09-20)
|
|
137
|
+
- designer and script updates
|
|
138
|
+
|
|
139
|
+
### 1.33.0 (2025-08-26)
|
|
140
|
+
- fix NaN check
|
|
141
|
+
|
|
136
142
|
### 1.32.0 (2025-08-20)
|
|
137
143
|
- Support css prop suggestions
|
|
138
144
|
|
package/io-package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"common": {
|
|
3
3
|
"name": "webui",
|
|
4
|
-
"version": "1.
|
|
4
|
+
"version": "1.34.0",
|
|
5
5
|
"titleLang": {
|
|
6
6
|
"en": "webui",
|
|
7
7
|
"de": "webui",
|
|
@@ -29,6 +29,32 @@
|
|
|
29
29
|
"zh-cn": "使用万维网传送器的高锰用户接口"
|
|
30
30
|
},
|
|
31
31
|
"news": {
|
|
32
|
+
"1.34.0": {
|
|
33
|
+
"en": "designer and script updates",
|
|
34
|
+
"de": "Designer- und Skriptaktualisierungen",
|
|
35
|
+
"ru": "обновления дизайна и скриптов",
|
|
36
|
+
"pt": "Atualizações de design e scripts",
|
|
37
|
+
"nl": "ontwerper- en scriptupdates",
|
|
38
|
+
"fr": "Mises à jour du designer et du script",
|
|
39
|
+
"it": "Aggiornamenti del designer e degli script",
|
|
40
|
+
"es": "Actualizaciones de diseño y guionistas",
|
|
41
|
+
"pl": "aktualizacje dotyczące projektantów i skryptów",
|
|
42
|
+
"uk": "оновлення дизайну та скриптів",
|
|
43
|
+
"zh-cn": "设计师和脚本更新"
|
|
44
|
+
},
|
|
45
|
+
"1.33.0": {
|
|
46
|
+
"en": "fix NaN check",
|
|
47
|
+
"de": "naN-Check",
|
|
48
|
+
"ru": "проверьте NaN",
|
|
49
|
+
"pt": "corrigir verificação NaN",
|
|
50
|
+
"nl": "naN-controle herstellen",
|
|
51
|
+
"fr": "correction du contrôle NaN",
|
|
52
|
+
"it": "correzione del controllo NaN",
|
|
53
|
+
"es": "arreglar NaN",
|
|
54
|
+
"pl": "fix NaN check",
|
|
55
|
+
"uk": "виправити NaN перевірити",
|
|
56
|
+
"zh-cn": "修复NaN 检查"
|
|
57
|
+
},
|
|
32
58
|
"1.32.0": {
|
|
33
59
|
"en": "Support css prop suggestions",
|
|
34
60
|
"de": "Support css prop Vorschläge",
|
|
@@ -93,32 +119,6 @@
|
|
|
93
119
|
"pl": "Nie",
|
|
94
120
|
"uk": "Не NaN",
|
|
95
121
|
"zh-cn": "纳恩不纳恩"
|
|
96
|
-
},
|
|
97
|
-
"1.31.2": {
|
|
98
|
-
"en": "update npms",
|
|
99
|
-
"de": "aktualisierung von npms",
|
|
100
|
-
"ru": "обновление npms",
|
|
101
|
-
"pt": "atualizar npms",
|
|
102
|
-
"nl": "npms bijwerken",
|
|
103
|
-
"fr": "mettre à jour npms",
|
|
104
|
-
"it": "aggiornamento npm",
|
|
105
|
-
"es": "actualización npms",
|
|
106
|
-
"pl": "update npms",
|
|
107
|
-
"uk": "оновлення npms",
|
|
108
|
-
"zh-cn": "更新 npms"
|
|
109
|
-
},
|
|
110
|
-
"1.31.1": {
|
|
111
|
-
"en": "remove nod 18 from github actions",
|
|
112
|
-
"de": "nod 18 von github aktionen entfernen",
|
|
113
|
-
"ru": "удалить кивок 18 из действий github",
|
|
114
|
-
"pt": "remover aceno 18 das ações do github",
|
|
115
|
-
"nl": "verwijderen nod 18 uit github acties",
|
|
116
|
-
"fr": "supprimer le nod 18 des actions github",
|
|
117
|
-
"it": "rimuovere nd 18 da azioni github",
|
|
118
|
-
"es": "eliminar nod 18 de las acciones de github",
|
|
119
|
-
"pl": "usuń nod 18 z działań github",
|
|
120
|
-
"uk": "remove nod 18 від github дії",
|
|
121
|
-
"zh-cn": "从 github 动作中删除点头 18"
|
|
122
122
|
}
|
|
123
123
|
},
|
|
124
124
|
"icon": "logo.png",
|
|
@@ -160,7 +160,6 @@
|
|
|
160
160
|
"serviceStates": false,
|
|
161
161
|
"singleton": true,
|
|
162
162
|
"type": "visualization",
|
|
163
|
-
"highlight": true,
|
|
164
163
|
"noConfig": true,
|
|
165
164
|
"adminUI": {
|
|
166
165
|
"config": "none"
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "iobroker.webui",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.34.0",
|
|
4
4
|
"description": "ioBroker webui",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/backend/main.js",
|
|
@@ -44,7 +44,7 @@
|
|
|
44
44
|
},
|
|
45
45
|
"dependencies": {
|
|
46
46
|
"@iobroker/adapter-core": "^3.3.2",
|
|
47
|
-
"@types/node": "^24.
|
|
47
|
+
"@types/node": "^24.5.2"
|
|
48
48
|
},
|
|
49
49
|
"devDependencies": {
|
|
50
50
|
"@adobe/css-tools": "4.4.4",
|
|
@@ -52,32 +52,32 @@
|
|
|
52
52
|
"@alcalzone/release-script-plugin-iobroker": "^3.7.2",
|
|
53
53
|
"@alcalzone/release-script-plugin-license": "^3.7.0",
|
|
54
54
|
"@blockly/zoom-to-fit": "^7.0.2",
|
|
55
|
-
"@iobroker/socket-client": "^5.0.
|
|
56
|
-
"@iobroker/testing": "^5.
|
|
57
|
-
"@iobroker/webcomponent-selectid-dialog": "^1.0.
|
|
58
|
-
"@node-projects/base-custom-webcomponent": "0.
|
|
55
|
+
"@iobroker/socket-client": "^5.0.2",
|
|
56
|
+
"@iobroker/testing": "^5.1.1",
|
|
57
|
+
"@iobroker/webcomponent-selectid-dialog": "^1.0.12",
|
|
58
|
+
"@node-projects/base-custom-webcomponent": "0.34.0",
|
|
59
59
|
"@node-projects/lean-he-esm": "^3.3.0",
|
|
60
60
|
"@node-projects/node-html-parser-esm": "^6.2.0",
|
|
61
61
|
"@node-projects/propertygrid.webcomponent": "^1.4.1",
|
|
62
62
|
"@node-projects/splitview.webcomponent": "^1.0.1",
|
|
63
|
-
"@node-projects/web-component-designer": "^0.1.
|
|
63
|
+
"@node-projects/web-component-designer": "^0.1.262",
|
|
64
64
|
"@node-projects/web-component-designer-codeview-monaco": "^0.1.33",
|
|
65
65
|
"@node-projects/web-component-designer-htmlparserservice-nodehtmlparser": "^0.1.11",
|
|
66
66
|
"@node-projects/web-component-designer-stylesheetservice-css-tools": "^0.1.11",
|
|
67
|
-
"@node-projects/web-component-designer-visualization-addons": "^0.1.
|
|
67
|
+
"@node-projects/web-component-designer-visualization-addons": "^0.1.130",
|
|
68
68
|
"@node-projects/web-component-designer-widgets-wunderbaum": "^0.1.33",
|
|
69
69
|
"@types/json-schema": "^7.0.15",
|
|
70
70
|
"@web/dev-server": "^0.4.6",
|
|
71
|
-
"blockly": "^12.
|
|
71
|
+
"blockly": "^12.3.0",
|
|
72
72
|
"chai": "^5.3.1",
|
|
73
|
-
"chai-as-promised": "^8.0.
|
|
73
|
+
"chai-as-promised": "^8.0.2",
|
|
74
74
|
"construct-style-sheets-polyfill": "^3.1.0",
|
|
75
75
|
"cross-env": "^10.0.0",
|
|
76
|
-
"dayjs": "^1.11.
|
|
77
|
-
"del": "^8.0.
|
|
78
|
-
"dock-spawn-ts": "^3.
|
|
76
|
+
"dayjs": "^1.11.18",
|
|
77
|
+
"del": "^8.0.1",
|
|
78
|
+
"dock-spawn-ts": "^3.6.1",
|
|
79
79
|
"es-module-shims": "2.6.2",
|
|
80
|
-
"eslint": "^9.
|
|
80
|
+
"eslint": "^9.36.0",
|
|
81
81
|
"esprima-next": "^6.0.3",
|
|
82
82
|
"glob-stream": "^8.0.3",
|
|
83
83
|
"gulp": "^5.0.1",
|
|
@@ -85,10 +85,10 @@
|
|
|
85
85
|
"gulp-replace": "^1.1.4",
|
|
86
86
|
"long": "^5.3.2",
|
|
87
87
|
"mobile-drag-drop": "^3.0.0-rc.0",
|
|
88
|
-
"mocha": "^11.7.
|
|
88
|
+
"mocha": "^11.7.2",
|
|
89
89
|
"monaco-editor": "^0.50.0",
|
|
90
90
|
"nyc": "^17.1.0",
|
|
91
|
-
"sinon-chai": "^4.0.
|
|
91
|
+
"sinon-chai": "^4.0.1",
|
|
92
92
|
"toastify-js": "^1.12.0",
|
|
93
93
|
"ts-node": "^10.9.2",
|
|
94
94
|
"tslib": "^2.8.1",
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
"arguments",
|
|
40
40
|
"caller",
|
|
41
41
|
"name",
|
|
42
|
-
"__@hasInstance@
|
|
42
|
+
"__@hasInstance@2402"
|
|
43
43
|
],
|
|
44
44
|
"type": "object"
|
|
45
45
|
},
|
|
@@ -255,7 +255,7 @@
|
|
|
255
255
|
"type": "string"
|
|
256
256
|
},
|
|
257
257
|
"source": {
|
|
258
|
-
"description": "signal - read the value from a Signal\nproperty - read the value from a property of the customControl (not usable in screens)\nevent - read the value of a property of the event object\nparameter - a parameter you hand over\ncontext - a value of the context\ncomplexString - a string with signals (contained in {})\ncomplexSignal - read the value from a signal wich name is build here (it can contain other signals in {})\nexpression - js expression, 'ctx' is context object\nelementProperty - a property defined on the element raising the event",
|
|
258
|
+
"description": "signal - read the value from a Signal\nproperty - read the value from a property of the customControl (not usable in screens)\nsignalInProperty - read the value from a Signal (wich name is in the Property)\nevent - read the value of a property of the event object\nparameter - a parameter you hand over\ncontext - a value of the context\ncomplexString - a string with signals (contained in {})\ncomplexSignal - read the value from a signal wich name is build here (it can contain other signals in {})\nexpression - js expression, 'ctx' is context object\nelementProperty - a property defined on the element raising the event",
|
|
259
259
|
"enum": [
|
|
260
260
|
"complexSignal",
|
|
261
261
|
"complexString",
|
|
@@ -265,7 +265,8 @@
|
|
|
265
265
|
"expression",
|
|
266
266
|
"parameter",
|
|
267
267
|
"property",
|
|
268
|
-
"signal"
|
|
268
|
+
"signal",
|
|
269
|
+
"signalInProperty"
|
|
269
270
|
],
|
|
270
271
|
"type": "string"
|
|
271
272
|
}
|
|
@@ -127,6 +127,7 @@
|
|
|
127
127
|
"enum": [
|
|
128
128
|
"!=",
|
|
129
129
|
"!=null",
|
|
130
|
+
"&&",
|
|
130
131
|
"<",
|
|
131
132
|
"<=",
|
|
132
133
|
"==",
|
|
@@ -134,7 +135,8 @@
|
|
|
134
135
|
"==null",
|
|
135
136
|
"==true",
|
|
136
137
|
">",
|
|
137
|
-
">="
|
|
138
|
+
">=",
|
|
139
|
+
"||"
|
|
138
140
|
],
|
|
139
141
|
"type": "string"
|
|
140
142
|
},
|
|
@@ -983,6 +985,43 @@
|
|
|
983
985
|
],
|
|
984
986
|
"type": "object"
|
|
985
987
|
},
|
|
988
|
+
"ToggleSignalValueFromList": {
|
|
989
|
+
"properties": {
|
|
990
|
+
"additionalData": {
|
|
991
|
+
"type": "string"
|
|
992
|
+
},
|
|
993
|
+
"signal": {
|
|
994
|
+
"description": "Name of the signal",
|
|
995
|
+
"format": "signal",
|
|
996
|
+
"type": "string"
|
|
997
|
+
},
|
|
998
|
+
"target": {
|
|
999
|
+
"$ref": "#/definitions/signalTarget"
|
|
1000
|
+
},
|
|
1001
|
+
"type": {
|
|
1002
|
+
"const": "ToggleSignalValueThroughList",
|
|
1003
|
+
"type": "string"
|
|
1004
|
+
},
|
|
1005
|
+
"valueList": {
|
|
1006
|
+
"items": {
|
|
1007
|
+
"type": [
|
|
1008
|
+
"string",
|
|
1009
|
+
"number",
|
|
1010
|
+
"boolean"
|
|
1011
|
+
]
|
|
1012
|
+
},
|
|
1013
|
+
"type": "array"
|
|
1014
|
+
}
|
|
1015
|
+
},
|
|
1016
|
+
"propertyOrder": [
|
|
1017
|
+
"type",
|
|
1018
|
+
"valueList",
|
|
1019
|
+
"signal",
|
|
1020
|
+
"target",
|
|
1021
|
+
"additionalData"
|
|
1022
|
+
],
|
|
1023
|
+
"type": "object"
|
|
1024
|
+
},
|
|
986
1025
|
"UnsubscribeSignal": {
|
|
987
1026
|
"properties": {
|
|
988
1027
|
"additionalData": {
|
|
@@ -1016,6 +1055,9 @@
|
|
|
1016
1055
|
{
|
|
1017
1056
|
"$ref": "#/definitions/ToggleSignalValue"
|
|
1018
1057
|
},
|
|
1058
|
+
{
|
|
1059
|
+
"$ref": "#/definitions/ToggleSignalValueFromList"
|
|
1060
|
+
},
|
|
1019
1061
|
{
|
|
1020
1062
|
"$ref": "#/definitions/SetSignalValue"
|
|
1021
1063
|
},
|
|
@@ -143,7 +143,7 @@ export function generateCustomControl(name, control) {
|
|
|
143
143
|
return this['_' + p];
|
|
144
144
|
},
|
|
145
145
|
set(newValue) {
|
|
146
|
-
if (this['_' + p] !== newValue && (!isNaN(this['_' + p]) || !isNaN(newValue))) {
|
|
146
|
+
if (this['_' + p] !== newValue && (!Number.isNaN(this['_' + p]) || !Number.isNaN(newValue))) {
|
|
147
147
|
this['_' + p] = newValue;
|
|
148
148
|
this._bindingsRefresh(p);
|
|
149
149
|
instance.dispatchEvent(new CustomEvent(PropertiesHelper.camelToDashCase(p) + '-changed', { detail: { newValue } }));
|
package/www/index.html
CHANGED
|
@@ -218,7 +218,7 @@
|
|
|
218
218
|
</button>
|
|
219
219
|
<button data-command="save" title="save" disabled><img src="./node_modules/@node-projects/web-component-designer/assets/icons/save.svg"></button>
|
|
220
220
|
<div style="margin-left: 30px;">
|
|
221
|
-
webui - 1.
|
|
221
|
+
webui - 1.34.0 - 8558377
|
|
222
222
|
</div>
|
|
223
223
|
<button style="margin-left: 30px;" data-command="paste" title="paste" disabled><img
|
|
224
224
|
src="./node_modules/@node-projects/web-component-designer/assets/icons/paste.svg"></button>
|
|
@@ -128,6 +128,12 @@ export declare class Connection<CustomListenEvents extends Record<keyof CustomLi
|
|
|
128
128
|
waitForRestart: boolean;
|
|
129
129
|
loaded: boolean;
|
|
130
130
|
private simStates;
|
|
131
|
+
private objectViewCached;
|
|
132
|
+
/**
|
|
133
|
+
* Creates a new instance of the Connection class.
|
|
134
|
+
*
|
|
135
|
+
* @param props The connection properties.
|
|
136
|
+
*/
|
|
131
137
|
constructor(props: Partial<ConnectionProps>);
|
|
132
138
|
private applyDefaultProps;
|
|
133
139
|
private readonly statesSubscribes;
|
|
@@ -516,6 +522,16 @@ export declare class Connection<CustomListenEvents extends Record<keyof CustomLi
|
|
|
516
522
|
getObjectViewSystem<T extends ioBroker.ObjectType>(type: T, start?: string, end?: string): Promise<Record<string, ioBroker.AnyObject & {
|
|
517
523
|
type: T;
|
|
518
524
|
}>>;
|
|
525
|
+
/**
|
|
526
|
+
* Query a predefined object view.
|
|
527
|
+
*
|
|
528
|
+
* @param type The type of object.
|
|
529
|
+
* @param start The start ID.
|
|
530
|
+
* @param [end] The end ID.
|
|
531
|
+
*/
|
|
532
|
+
getObjectViewSystemCached<T extends ioBroker.ObjectType>(type: T, start?: string, end?: string): Promise<Record<string, ioBroker.AnyObject & {
|
|
533
|
+
type: T;
|
|
534
|
+
}>>;
|
|
519
535
|
/**
|
|
520
536
|
* Query a predefined object view.
|
|
521
537
|
*
|
|
@@ -70,6 +70,12 @@ export class Connection {
|
|
|
70
70
|
waitForRestart = false;
|
|
71
71
|
loaded = false;
|
|
72
72
|
simStates = {};
|
|
73
|
+
objectViewCached;
|
|
74
|
+
/**
|
|
75
|
+
* Creates a new instance of the Connection class.
|
|
76
|
+
*
|
|
77
|
+
* @param props The connection properties.
|
|
78
|
+
*/
|
|
73
79
|
constructor(props) {
|
|
74
80
|
this.props = this.applyDefaultProps(props);
|
|
75
81
|
// Create unique ID of this instance
|
|
@@ -1857,8 +1863,31 @@ export class Connection {
|
|
|
1857
1863
|
* @param start The start ID.
|
|
1858
1864
|
* @param [end] The end ID.
|
|
1859
1865
|
*/
|
|
1860
|
-
getObjectViewSystem(type, start, end) {
|
|
1861
|
-
|
|
1866
|
+
async getObjectViewSystem(type, start, end) {
|
|
1867
|
+
const key = `${type}_${start || ''}_${end || ''}`;
|
|
1868
|
+
const result = await this.getObjectViewCustom('system', type, start, end);
|
|
1869
|
+
if (this.objectViewCached?.[key]) {
|
|
1870
|
+
// update cached value
|
|
1871
|
+
this.objectViewCached[key] = result;
|
|
1872
|
+
}
|
|
1873
|
+
return result;
|
|
1874
|
+
}
|
|
1875
|
+
/**
|
|
1876
|
+
* Query a predefined object view.
|
|
1877
|
+
*
|
|
1878
|
+
* @param type The type of object.
|
|
1879
|
+
* @param start The start ID.
|
|
1880
|
+
* @param [end] The end ID.
|
|
1881
|
+
*/
|
|
1882
|
+
async getObjectViewSystemCached(type, start, end) {
|
|
1883
|
+
const key = `${type}_${start || ''}_${end || ''}`;
|
|
1884
|
+
if (this.objectViewCached?.[key]) {
|
|
1885
|
+
return Promise.resolve(this.objectViewCached[key]);
|
|
1886
|
+
}
|
|
1887
|
+
const result = await this.getObjectViewCustom('system', type, start, end);
|
|
1888
|
+
this.objectViewCached ||= {};
|
|
1889
|
+
this.objectViewCached[key] = result;
|
|
1890
|
+
return result;
|
|
1862
1891
|
}
|
|
1863
1892
|
/**
|
|
1864
1893
|
* Query a predefined object view.
|