iobroker.webui 1.26.0 → 1.27.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 (27) hide show
  1. package/README.md +5 -0
  2. package/io-package.json +14 -14
  3. package/package.json +12 -12
  4. package/www/dist/frontend/common/Common.globals.d.ts +1 -0
  5. package/www/dist/frontend/config/IobrokerWebuiScreenEditor.js +30 -6
  6. package/www/dist/frontend/runtime/ScreenViewer.js +7 -9
  7. package/www/index.html +1 -1
  8. package/www/node_modules/@iobroker/webcomponent-selectid-dialog/dist/iobrokerSelectId.es.js +19640 -18926
  9. package/www/node_modules/@iobroker/webcomponent-selectid-dialog/dist/selectIdHelper.js +3 -1
  10. package/www/node_modules/@iobroker/webcomponent-selectid-dialog/dist/socket.iob.js +1 -1
  11. package/www/node_modules/@node-projects/web-component-designer/dist/elements/item/DesignItem.js +8 -41
  12. package/www/node_modules/@node-projects/web-component-designer/dist/elements/services/DefaultServiceBootstrap.js +2 -0
  13. package/www/node_modules/@node-projects/web-component-designer/dist/elements/services/designItemService/BaseCustomWebcomponentDesignItemService.js +2 -1
  14. package/www/node_modules/@node-projects/web-component-designer/dist/elements/services/designItemService/DesignItemService.js +27 -1
  15. package/www/node_modules/@node-projects/web-component-designer-visualization-addons/dist/blockly/components/fields/FieldObjectId.js +6 -0
  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/components/SimpleScriptEditor.js +10 -0
  18. package/www/node_modules/@node-projects/web-component-designer-visualization-addons/dist/components/VisualizationPropertyGrid.js +6 -0
  19. package/www/node_modules/@node-projects/web-component-designer-visualization-addons/dist/helpers/BindingsHelper.js +53 -0
  20. package/www/node_modules/@node-projects/web-component-designer-widgets-wunderbaum/dist/widgets/WunderbaumOptions.js +2 -0
  21. package/www/node_modules/blockly/blockly_compressed.js +67 -67
  22. package/www/node_modules/blockly/blocks_compressed.js +1 -1
  23. package/www/node_modules/blockly/javascript_compressed.js +15 -15
  24. package/www/node_modules/dock-spawn-ts/lib/es5/dock-spawn-ts.js +1 -1
  25. package/www/node_modules/dock-spawn-ts/lib/js/DockManager.js +1 -1
  26. package/www/node_modules/wunderbaum/dist/wunderbaum.css +9 -0
  27. package/www/node_modules/wunderbaum/dist/wunderbaum.esm.min.js +26 -26
package/README.md CHANGED
@@ -133,6 +133,11 @@ runtime.html?screenName=screen2
133
133
  Placeholder for next versions:
134
134
  ### __WORK IN PROGRESS__
135
135
  -->
136
+ ### 1.27.0 (2025-03-30)
137
+ - edit string in visu property grid
138
+ - bindings to properties did not work (in designer)
139
+ - html setting did not work sometimes
140
+
136
141
  ### 1.26.0 (2025-03-04)
137
142
  - fix error in screenviewer
138
143
  - update npms
package/io-package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "common": {
3
3
  "name": "webui",
4
- "version": "1.26.0",
4
+ "version": "1.27.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.27.0": {
33
+ "en": "edit string in visu property grid\nbindings to properties did not work (in designer)\nhtml setting did not work sometimes",
34
+ "de": "string in visu-eigenschaftsgitter bearbeiten\nbindungen an eigenschaften funktionierten nicht (im designer)\nhtml einstellung funktioniert nicht manchmal",
35
+ "ru": "редактировать строки в сетке свойств visu\nпривязка к свойствам не сработала (в конструкторе)\nhtml-настройка иногда не работает",
36
+ "pt": "edit string in visu property grid\nligações a propriedades não funcionou (em designer)\nconfiguração html não funcionou às vezes",
37
+ "nl": "tekenreeks bewerken in visu eigenschap raster\nbindingen aan eigenschappen werkten niet (in ontwerper)\nhtml-instelling werkte soms niet",
38
+ "fr": "modifier la chaîne dans la grille de propriétés visu\nles fixations aux propriétés ne fonctionnaient pas (en designer)\nle réglage html ne fonctionnait pas parfois",
39
+ "it": "modifica stringa nella griglia di proprietà visu\nleganti a proprietà non ha funzionato (in progettista)\nhtml impostazione non ha funzionato a volte",
40
+ "es": "cadena de edición en la red de propiedades visu\nvinculantes para propiedades no funcionaron (en diseñador)\nhtml setting did not work sometimes",
41
+ "pl": "edytuj ciąg w siatce właściwości visu\nwiązania do nieruchomości nie działa (w projektancie)\nustawienia html nie działały czasami",
42
+ "uk": "редагувати рядок в мережі visu\nобов’язки до властивостей не працювали (у дизайнеру)\nналаштування html не працює іноді",
43
+ "zh-cn": "在粘着属性网格中编辑字符串\n约束属性无效( 设计者)\nhtml 设置有时行不通"
44
+ },
32
45
  "1.26.0": {
33
46
  "en": "fix error in screenviewer\nupdate npms\nrename global styles\nallow styling of dialog",
34
47
  "de": "fehler in screenviewer beheben\naktualisierung von npms\numbenennen global styles\ndie gestaltung des dialogs ermöglichen",
@@ -106,19 +119,6 @@
106
119
  "pl": "pierwsze obciążenie wiązania css\nfix get box quads with slots\nfix es module shims",
107
120
  "uk": "перше навантаження css зв'язування\nзакріпити ящик квадроцикли з слотами\nзакріпити es модуль шім",
108
121
  "zh-cn": "首先装入 css 绑定\n固定带插槽的框形\n修补 e 模块 shims"
109
- },
110
- "1.24.2": {
111
- "en": "revert back es module shims, leads to errors",
112
- "de": "zurückkehren es modul shims, führt zu fehlern",
113
- "ru": "возвращать назад эс-модульные шимы, приводит к ошибкам",
114
- "pt": "reverter para trás es módulo shims, leva a erros",
115
- "nl": "terug te keren es module shims, leidt tot fouten",
116
- "fr": "retour du module es shims, conduit à des erreurs",
117
- "it": "revert back es modulo shims, conduce a errori",
118
- "es": "revert back es module shims, leads to errors",
119
- "pl": "revert es module shims, prowadzi do błędów",
120
- "uk": "перевернути назад es модуль шімів, призводить до помилок",
121
- "zh-cn": "返回 es 模块 shims, 导致错误"
122
122
  }
123
123
  },
124
124
  "icon": "logo.png",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "iobroker.webui",
3
- "version": "1.26.0",
3
+ "version": "1.27.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.2.3",
47
- "@types/node": "^22.13.9"
47
+ "@types/node": "^22.13.14"
48
48
  },
49
49
  "devDependencies": {
50
50
  "@adobe/css-tools": "4.4.2",
@@ -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": "^6.0.12",
55
- "@iobroker/socket-client": "^4.0.21",
56
- "@iobroker/testing": "^5.0.3",
57
- "@iobroker/webcomponent-selectid-dialog": "^1.0.3",
55
+ "@iobroker/socket-client": "^4.1.0",
56
+ "@iobroker/testing": "^5.0.4",
57
+ "@iobroker/webcomponent-selectid-dialog": "^1.0.7",
58
58
  "@node-projects/base-custom-webcomponent": "0.29.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.3.0",
62
62
  "@node-projects/splitview.webcomponent": "^1.0.1",
63
- "@node-projects/web-component-designer": "^0.1.245",
63
+ "@node-projects/web-component-designer": "^0.1.247",
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.10",
67
- "@node-projects/web-component-designer-visualization-addons": "^0.1.113",
68
- "@node-projects/web-component-designer-widgets-wunderbaum": "^0.1.32",
67
+ "@node-projects/web-component-designer-visualization-addons": "^0.1.116",
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": "^11.2.1",
71
+ "blockly": "^11.2.2",
72
72
  "chai": "^5.2.0",
73
73
  "chai-as-promised": "^8.0.1",
74
74
  "construct-style-sheets-polyfill": "^3.1.0",
75
75
  "cross-env": "^7.0.3",
76
76
  "dayjs": "^1.11.13",
77
77
  "del": "^8.0.0",
78
- "dock-spawn-ts": "^3.2.1",
78
+ "dock-spawn-ts": "^3.3.0",
79
79
  "es-module-shims": "2.0.10",
80
- "eslint": "^9.21.0",
80
+ "eslint": "^9.23.0",
81
81
  "esprima-next": "^6.0.3",
82
82
  "glob-stream": "^8.0.2",
83
83
  "gulp": "^5.0.0",
@@ -94,6 +94,6 @@
94
94
  "tslib": "^2.8.1",
95
95
  "typescript": "^5.8.2",
96
96
  "typescript-json-schema": "^0.65.1",
97
- "wunderbaum": "0.12.1"
97
+ "wunderbaum": "0.13.0"
98
98
  }
99
99
  }
@@ -51,6 +51,7 @@ declare var RUNTIME: {
51
51
  height?: string;
52
52
  left?: string;
53
53
  top?: string;
54
+ cssClass?: string;
54
55
  }): Promise<void>;
55
56
  runSimpleScriptCommand<T extends import('../scripting/IobrokerWebuiScriptCommands.js').WebuiScriptCommands>(scriptCommand: T): Promise<void>;
56
57
  getParentScreen(screen: BaseScreenViewerAndControl, parentlevel?: number): BaseScreenViewerAndControl;
@@ -1,5 +1,5 @@
1
1
  import { BaseCustomWebComponentConstructorAppend, css, html } from "@node-projects/base-custom-webcomponent";
2
- import { DocumentContainer, } from "@node-projects/web-component-designer";
2
+ import { DocumentContainer, PropertiesHelper, } from "@node-projects/web-component-designer";
3
3
  import { iobrokerHandler } from "../common/IobrokerHandler.js";
4
4
  export const defaultNewStyle = `:host {
5
5
  }
@@ -117,19 +117,43 @@ export class IobrokerWebuiScreenEditor extends BaseCustomWebComponentConstructor
117
117
  if (this.#bindingsEnabled != value) {
118
118
  this.#bindingsEnabled == value;
119
119
  if (value) {
120
- this._webuiBindings = window.appShell.bindingsHelper.applyAllBindings(this.documentContainer.designerView.designerCanvas.rootDesignItem.element.shadowRoot, this.relativeBindingsPrefix, null);
120
+ this.applyBindings();
121
121
  }
122
122
  else {
123
- this._webuiBindings?.forEach(x => x());
124
- this._styleBindings?.forEach(x => x());
123
+ this.removeBindings();
125
124
  }
126
125
  }
127
126
  }
128
127
  relativeBindingsPrefix = '';
129
128
  applyBindings() {
130
129
  this.removeBindings();
131
- if (this.bindingsEnabled)
132
- this._webuiBindings = window.appShell.bindingsHelper.applyAllBindings(this.documentContainer.designerView.designerCanvas.rootDesignItem.element.shadowRoot, this.relativeBindingsPrefix, null);
130
+ if (this.bindingsEnabled) {
131
+ try {
132
+ for (let p in this.properties) {
133
+ Object.defineProperty(this.documentContainer.designerView.designerCanvas.rootDesignItem.element, p, {
134
+ get() {
135
+ return this['_' + p];
136
+ },
137
+ set(newValue) {
138
+ if (this['_' + p] !== newValue) {
139
+ this['_' + p] = newValue;
140
+ this._bindingsRefresh(p);
141
+ this.documentContainer.designerView.designerCanvas.rootDesignItem.element.dispatchEvent(new CustomEvent(PropertiesHelper.camelToDashCase(p) + '-changed', { detail: { newValue } }));
142
+ }
143
+ },
144
+ enumerable: true,
145
+ configurable: true,
146
+ });
147
+ if (this.properties[p].default) {
148
+ this.documentContainer.designerView.designerCanvas.rootDesignItem.element['_' + p] = this.properties[p].default;
149
+ }
150
+ }
151
+ }
152
+ catch (err) {
153
+ console.warn("applyBindings()", err);
154
+ }
155
+ this._webuiBindings = window.appShell.bindingsHelper.applyAllBindings(this.documentContainer.designerView.designerCanvas.rootDesignItem.element.shadowRoot, this.relativeBindingsPrefix, this.documentContainer.designerView.designerCanvas.rootDesignItem.element);
156
+ }
133
157
  }
134
158
  removeBindings() {
135
159
  this._webuiBindings?.forEach(x => x());
@@ -194,21 +194,19 @@ let ScreenViewer = class ScreenViewer extends BaseCustomWebComponentConstructorA
194
194
  this.shadowRoot.adoptedStyleSheets = [ScreenViewer_1.styleIfFromScreen, ...this._rootShadow.adoptedStyleSheets];
195
195
  }
196
196
  let myDocument;
197
- //@ts-ignore
198
197
  if (Document.parseHTMLUnsafe && !isFirefox) {
199
- //@ts-ignore
200
- myDocument = Document.parseHTMLUnsafe(html);
198
+ this._rootShadow.setHTMLUnsafe(html);
201
199
  }
202
200
  else {
203
201
  //@ts-ignore
204
202
  myDocument = new DOMParser().parseFromString(html, 'text/html', { includeShadowRoots: true });
203
+ const fragment = document.createDocumentFragment();
204
+ for (const n of myDocument.head.childNodes)
205
+ fragment.appendChild(n);
206
+ for (const n of myDocument.body.childNodes)
207
+ fragment.appendChild(n);
208
+ this._rootShadow.appendChild(fragment);
205
209
  }
206
- const fragment = document.createDocumentFragment();
207
- for (const n of myDocument.head.childNodes)
208
- fragment.appendChild(n);
209
- for (const n of myDocument.body.childNodes)
210
- fragment.appendChild(n);
211
- this._rootShadow.appendChild(fragment);
212
210
  const res = window.appShell.bindingsHelper.applyAllBindings(this._rootShadow, this.relativeSignalsPath, this);
213
211
  if (this._iobBindings)
214
212
  this._iobBindings.push(...res);
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.26.0 - 9c446b2
221
+ webui - 1.27.0 - 875a61d
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>