iobroker.webui 1.33.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.
Files changed (23) hide show
  1. package/README.md +3 -0
  2. package/io-package.json +14 -15
  3. package/package.json +16 -16
  4. package/www/dist/frontend/generated/Properties.json +4 -3
  5. package/www/dist/frontend/generated/ScriptCommands.json +43 -1
  6. package/www/index.html +1 -1
  7. package/www/node_modules/@iobroker/socket-client/dist/esm/Connection.d.ts +16 -0
  8. package/www/node_modules/@iobroker/socket-client/dist/esm/Connection.js +31 -2
  9. package/www/node_modules/@iobroker/webcomponent-selectid-dialog/dist/iobrokerSelectId.es.js +11861 -11813
  10. package/www/node_modules/@iobroker/webcomponent-selectid-dialog/dist/selectIdHelper.js +31 -27
  11. package/www/node_modules/@iobroker/webcomponent-selectid-dialog/dist/socket.iob.js +2 -2
  12. package/www/node_modules/@node-projects/base-custom-webcomponent/dist/BaseCustomWebComponent.d.ts +1 -12
  13. package/www/node_modules/@node-projects/base-custom-webcomponent/dist/BaseCustomWebComponent.js +1 -25
  14. package/www/node_modules/@node-projects/base-custom-webcomponent/dist/Decorator.js +105 -0
  15. package/www/node_modules/@node-projects/web-component-designer/dist/elements/documentContainer.js +5 -4
  16. package/www/node_modules/@node-projects/web-component-designer-visualization-addons/dist/components/BindingsEditor.js +1 -1
  17. package/www/node_modules/@node-projects/web-component-designer-visualization-addons/dist/helpers/BindingsHelper.js +32 -4
  18. package/www/node_modules/@node-projects/web-component-designer-visualization-addons/dist/index.js +0 -5
  19. package/www/node_modules/@node-projects/web-component-designer-visualization-addons/dist/interfaces/IScriptMultiplexValue.js +1 -20
  20. package/www/node_modules/@node-projects/web-component-designer-visualization-addons/dist/scripting/ScriptSystem.js +25 -2
  21. package/www/node_modules/blockly/blockly_compressed.js +221 -215
  22. package/www/node_modules/dock-spawn-ts/lib/es5/dock-spawn-ts.js +1 -1
  23. package/www/node_modules/dock-spawn-ts/lib/js/webcomponent/DockSpawnTsWebcomponent.js +5 -4
package/README.md CHANGED
@@ -133,6 +133,9 @@ 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
+
136
139
  ### 1.33.0 (2025-08-26)
137
140
  - fix NaN check
138
141
 
package/io-package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "common": {
3
3
  "name": "webui",
4
- "version": "1.33.0",
4
+ "version": "1.34.0",
5
5
  "titleLang": {
6
6
  "en": "webui",
7
7
  "de": "webui",
@@ -29,6 +29,19 @@
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
+ },
32
45
  "1.33.0": {
33
46
  "en": "fix NaN check",
34
47
  "de": "naN-Check",
@@ -106,19 +119,6 @@
106
119
  "pl": "Nie",
107
120
  "uk": "Не NaN",
108
121
  "zh-cn": "纳恩不纳恩"
109
- },
110
- "1.31.2": {
111
- "en": "update npms",
112
- "de": "aktualisierung von npms",
113
- "ru": "обновление npms",
114
- "pt": "atualizar npms",
115
- "nl": "npms bijwerken",
116
- "fr": "mettre à jour npms",
117
- "it": "aggiornamento npm",
118
- "es": "actualización npms",
119
- "pl": "update npms",
120
- "uk": "оновлення npms",
121
- "zh-cn": "更新 npms"
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.33.0",
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.3.0"
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.1",
56
- "@iobroker/testing": "^5.0.4",
57
- "@iobroker/webcomponent-selectid-dialog": "^1.0.10",
58
- "@node-projects/base-custom-webcomponent": "0.30.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.261",
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.128",
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.2.0",
71
+ "blockly": "^12.3.0",
72
72
  "chai": "^5.3.1",
73
- "chai-as-promised": "^8.0.1",
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.13",
77
- "del": "^8.0.0",
78
- "dock-spawn-ts": "^3.5.0",
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.33.0",
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.1",
88
+ "mocha": "^11.7.2",
89
89
  "monaco-editor": "^0.50.0",
90
90
  "nyc": "^17.1.0",
91
- "sinon-chai": "^4.0.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@2385"
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
  },
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.33.0 - f59b0a9
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
- return this.getObjectViewCustom('system', type, start, end);
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.