iobroker.webui 1.35.3 → 1.36.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 (73) hide show
  1. package/README.md +6 -0
  2. package/io-package.json +27 -27
  3. package/package.json +18 -18
  4. package/www/dist/frontend/common/IobrokerHandler.js +3 -1
  5. package/www/dist/frontend/generated/Properties.json +2 -1
  6. package/www/index.html +1 -1
  7. package/www/node_modules/@blockly/zoom-to-fit/dist/index.js +1 -1
  8. package/www/node_modules/@node-projects/base-custom-webcomponent/dist/BaseCustomWebComponent.d.ts +1 -1
  9. package/www/node_modules/@node-projects/base-custom-webcomponent/dist/BaseCustomWebComponent.js +60 -62
  10. package/www/node_modules/@node-projects/base-custom-webcomponent/dist/DeclaritiveBaseCustomWebcomponent.js +3 -6
  11. package/www/node_modules/@node-projects/base-custom-webcomponent/dist/Decorator.js +8 -3
  12. package/www/node_modules/@node-projects/base-custom-webcomponent/dist/HotModuleReplacement.js +45 -5
  13. package/www/node_modules/@node-projects/base-custom-webcomponent/dist/TypedEvent.js +38 -38
  14. package/www/node_modules/@node-projects/base-custom-webcomponent/dist/index-min.js +1 -0
  15. package/www/node_modules/@node-projects/base-custom-webcomponent/dist/index.js +1 -1
  16. package/www/node_modules/@node-projects/base-custom-webcomponent/tsconfig-demo.json +35 -0
  17. package/www/node_modules/@node-projects/lean-he-esm/lib/index-min.js +2 -0
  18. package/www/node_modules/@node-projects/lean-he-esm/lib/index.js +14 -0
  19. package/www/node_modules/@node-projects/node-html-parser-esm/dist/index-min.js +3 -0
  20. package/www/node_modules/@node-projects/node-html-parser-esm/dist/nodes/html.js +5 -2
  21. package/www/node_modules/@node-projects/node-html-parser-esm/dist/nodes/node.js +2 -2
  22. package/www/node_modules/@node-projects/node-html-parser-esm/dist/nodes/text.js +1 -1
  23. package/www/node_modules/@node-projects/web-component-designer/dist/basepath.js +2 -0
  24. package/www/node_modules/@node-projects/web-component-designer/dist/elements/documentContainer.js +15 -2
  25. package/www/node_modules/@node-projects/web-component-designer/dist/elements/helper/getBoxQuads.js +11 -1
  26. package/www/node_modules/@node-projects/web-component-designer/dist/elements/item/DesignItem.js +2 -0
  27. package/www/node_modules/@node-projects/web-component-designer/dist/elements/services/DefaultServiceBootstrap.js +3 -3
  28. package/www/node_modules/@node-projects/web-component-designer/dist/elements/services/ServiceContainer.js +1 -0
  29. package/www/node_modules/@node-projects/web-component-designer/dist/elements/services/demoProviderService/IframeDemoProviderService.js +1 -1
  30. package/www/node_modules/@node-projects/web-component-designer/dist/elements/services/dragDropService/ExternalDragDropService.js +3 -3
  31. package/www/node_modules/@node-projects/web-component-designer/dist/elements/services/propertiesService/propertyEditors/BooleanPropertyEditor.js +2 -0
  32. package/www/node_modules/@node-projects/web-component-designer/dist/elements/services/propertiesService/propertyEditors/ColorPropertyEditor.js +2 -0
  33. package/www/node_modules/@node-projects/web-component-designer/dist/elements/services/propertiesService/propertyEditors/DatePropertyEditor.js +2 -0
  34. package/www/node_modules/@node-projects/web-component-designer/dist/elements/services/propertiesService/propertyEditors/FontPropertyEditor.js +2 -0
  35. package/www/node_modules/@node-projects/web-component-designer/dist/elements/services/propertiesService/propertyEditors/JsonPropertyEditor.js +2 -0
  36. package/www/node_modules/@node-projects/web-component-designer/dist/elements/services/propertiesService/propertyEditors/NumberPropertyEditor.js +2 -0
  37. package/www/node_modules/@node-projects/web-component-designer/dist/elements/services/propertiesService/propertyEditors/SelectPropertyEditor.js +2 -0
  38. package/www/node_modules/@node-projects/web-component-designer/dist/elements/services/propertiesService/propertyEditors/TextPropertyEditor.js +2 -0
  39. package/www/node_modules/@node-projects/web-component-designer/dist/elements/services/propertiesService/services/AbstractPolymerLikePropertiesService.js +9 -7
  40. package/www/node_modules/@node-projects/web-component-designer/dist/elements/services/propertiesService/services/AbstractPropertiesService.js +9 -4
  41. package/www/node_modules/@node-projects/web-component-designer/dist/elements/services/undoService/transactionItems/DeleteAction.js +1 -1
  42. package/www/node_modules/@node-projects/web-component-designer/dist/elements/widgets/designerView/designerCanvas.js +14 -4
  43. package/www/node_modules/@node-projects/web-component-designer/dist/elements/widgets/designerView/extensions/ElementDragTitleExtension.js +5 -1
  44. package/www/node_modules/@node-projects/web-component-designer/dist/elements/widgets/designerView/extensions/ElementDragTitleExtensionProvider.js +5 -1
  45. package/www/node_modules/@node-projects/web-component-designer/dist/elements/widgets/designerView/extensions/contextMenu/AlignItemsContextMenu.js +9 -8
  46. package/www/node_modules/@node-projects/web-component-designer/dist/elements/widgets/designerView/extensions/contextMenu/CopyPasteContextMenu.js +5 -4
  47. package/www/node_modules/@node-projects/web-component-designer/dist/elements/widgets/designerView/extensions/contextMenu/JumpToElementContextMenu.js +2 -1
  48. package/www/node_modules/@node-projects/web-component-designer/dist/elements/widgets/designerView/extensions/contextMenu/RotateLeftAndRightContextMenu.js +3 -2
  49. package/www/node_modules/@node-projects/web-component-designer/dist/elements/widgets/designerView/extensions/contextMenu/ZMoveContextMenu.js +5 -4
  50. package/www/node_modules/@node-projects/web-component-designer/dist/elements/widgets/designerView/extensions/contextMenu/ZoomToElementContextMenu.js +2 -1
  51. package/www/node_modules/@node-projects/web-component-designer/dist/elements/widgets/designerView/overlayLayerView.js +8 -0
  52. package/www/node_modules/@node-projects/web-component-designer/dist/elements/widgets/propertyGrid/PropertyGrid.js +9 -4
  53. package/www/node_modules/@node-projects/web-component-designer/dist/elements/widgets/propertyGrid/PropertyGridPropertyList.js +10 -8
  54. package/www/node_modules/@node-projects/web-component-designer/dist/elements/widgets/propertyGrid/PropertyGridWithHeader.js +55 -42
  55. package/www/node_modules/@node-projects/web-component-designer/dist/index-all.js +3 -0
  56. package/www/node_modules/@node-projects/web-component-designer/dist/index-min.js +1905 -0
  57. package/www/node_modules/@node-projects/web-component-designer/dist/index.js +1 -0
  58. package/www/node_modules/@node-projects/web-component-designer-htmlparserservice-nodehtmlparser/dist/service/htmlParserService/NodeHtmlParserService.js +2 -0
  59. package/www/node_modules/@node-projects/web-component-designer-visualization-addons/dist/components/BindingsEditor.js +3 -0
  60. package/www/node_modules/@node-projects/web-component-designer-visualization-addons/dist/index-min.js +390 -0
  61. package/www/node_modules/@node-projects/web-component-designer-widgets-wunderbaum/dist/Constants.js +2 -0
  62. package/www/node_modules/@node-projects/web-component-designer-widgets-wunderbaum/dist/index-min.js +91 -0
  63. package/www/node_modules/@node-projects/web-component-designer-widgets-wunderbaum/dist/widgets/WunderbaumOptions.js +7 -6
  64. package/www/node_modules/@node-projects/web-component-designer-widgets-wunderbaum/dist/widgets/treeView/ExpandCollapseContextMenu.js +3 -2
  65. package/www/node_modules/@node-projects/web-component-designer-widgets-wunderbaum/dist/widgets/treeView/treeViewExtended.js +34 -26
  66. package/www/node_modules/dock-spawn-ts/lib/es5/dock-spawn-ts.js +1 -1
  67. package/www/node_modules/dock-spawn-ts/lib/js/SplitterBar.js +1 -0
  68. package/www/node_modules/dock-spawn-ts/lib/js/dock-manager-OTE5HAR7.css +411 -0
  69. package/www/node_modules/dock-spawn-ts/lib/js/dock-manager-style-722M54DP.css +190 -0
  70. package/www/node_modules/dock-spawn-ts/lib/js/index-min.js +14 -0
  71. package/www/node_modules/dock-spawn-ts/lib/js/index-webcomponent-min.js +17 -0
  72. package/www/node_modules/dock-spawn-ts/lib/js/index-webcomponent.js +3 -0
  73. package/www/node_modules/dock-spawn-ts/lib/js/index.js +48 -0
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.36.0 (2025-10-15)
137
+ - fix some boxQuads edge cases
138
+
139
+ ### 1.35.4 (2025-09-23)
140
+ - clear cache on reload
141
+
136
142
  ### 1.35.3 (2025-09-23)
137
143
  - object changed to all clients
138
144
 
package/io-package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "common": {
3
3
  "name": "webui",
4
- "version": "1.35.3",
4
+ "version": "1.36.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.36.0": {
33
+ "en": "fix some boxQuads edge cases",
34
+ "de": "befestigen Sie einige BoxQuads Randgehäuse",
35
+ "ru": "исправьте некоторые случаи BoxQuads edge",
36
+ "pt": "corrigir algumas caixasQuads edge cases",
37
+ "nl": "fix sommige doosQuads rand gevallen",
38
+ "fr": "fixer quelques cas de bord de boxQuads",
39
+ "it": "risolvere alcuni casi di bordo boxQuads",
40
+ "es": "arreglar algunas cajas de borde Cuads",
41
+ "pl": "naprawić kilka skrzynek boxQuads krawędzi",
42
+ "uk": "закріпити якусь коробкуШвидких крайових випадків",
43
+ "zh-cn": "修补一些框 Quads 边框"
44
+ },
45
+ "1.35.4": {
46
+ "en": "clear cache on reload",
47
+ "de": "löschen cache auf nachladen",
48
+ "ru": "чистый кэш на перезагрузке",
49
+ "pt": "limpar cache ao recarregar",
50
+ "nl": "cache wissen bij herladen",
51
+ "fr": "effacer le cache lors du rechargement",
52
+ "it": "cache chiara su ricarica",
53
+ "es": "caché transparente en la recarga",
54
+ "pl": "klarowna pamięć podręczna przy ponownym załadowaniu",
55
+ "uk": "прозорий кеш на перевантаження",
56
+ "zh-cn": "重新装入时清除缓存"
57
+ },
32
58
  "1.35.3": {
33
59
  "en": "object changed to all clients",
34
60
  "de": "objekt geändert für alle kunden",
@@ -93,32 +119,6 @@
93
119
  "pl": "kolejna drobna poprawka w obsłudze sygnałów",
94
120
  "uk": "ще один невеликий виправлення у керуванні сигналами",
95
121
  "zh-cn": "信号处理中的另一个小修复"
96
- },
97
- "1.34.1": {
98
- "en": "script command wrong name fix",
99
- "de": "Fehler bei der Namensschreibweise des Skriptbefehls behoben",
100
- "ru": "Исправлена ошибка в неправильном названии команды скрипта",
101
- "pt": "Corrigido nome incorreto do comando de script",
102
- "nl": "Script command foutieve naam opgelost",
103
- "fr": "Correction du nom erroné de la commande de script",
104
- "it": "Correzione del nome errato del comando di script",
105
- "es": "comando de script con nombre incorrecto corregido",
106
- "pl": "naprawiono błąd związany z nieprawidłową nazwą polecenia skryptu",
107
- "uk": "виправлено неправильну назву команди в скрипті",
108
- "zh-cn": "脚本命令名称修复"
109
- },
110
- "1.34.0": {
111
- "en": "designer and script updates",
112
- "de": "Designer- und Skriptaktualisierungen",
113
- "ru": "обновления дизайна и скриптов",
114
- "pt": "Atualizações de design e scripts",
115
- "nl": "ontwerper- en scriptupdates",
116
- "fr": "Mises à jour du designer et du script",
117
- "it": "Aggiornamenti del designer e degli script",
118
- "es": "Actualizaciones de diseño y guionistas",
119
- "pl": "aktualizacje dotyczące projektantów i skryptów",
120
- "uk": "оновлення дизайну та скриптів",
121
- "zh-cn": "设计师和脚本更新"
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.35.3",
3
+ "version": "1.36.0",
4
4
  "description": "ioBroker webui",
5
5
  "type": "module",
6
6
  "main": "dist/backend/main.js",
@@ -44,40 +44,40 @@
44
44
  },
45
45
  "dependencies": {
46
46
  "@iobroker/adapter-core": "^3.3.2",
47
- "@types/node": "^24.5.2"
47
+ "@types/node": "^24.7.2"
48
48
  },
49
49
  "devDependencies": {
50
50
  "@adobe/css-tools": "4.4.4",
51
- "@alcalzone/release-script": "^3.8.0",
52
- "@alcalzone/release-script-plugin-iobroker": "^3.7.2",
53
- "@alcalzone/release-script-plugin-license": "^3.7.0",
54
- "@blockly/zoom-to-fit": "^7.0.2",
51
+ "@alcalzone/release-script": "^4.0.0",
52
+ "@alcalzone/release-script-plugin-iobroker": "^4.0.0",
53
+ "@alcalzone/release-script-plugin-license": "^4.0.0",
54
+ "@blockly/zoom-to-fit": "^7.0.3",
55
55
  "@iobroker/socket-client": "^5.0.2",
56
56
  "@iobroker/testing": "^5.1.1",
57
57
  "@iobroker/webcomponent-selectid-dialog": "^1.0.12",
58
- "@node-projects/base-custom-webcomponent": "0.34.0",
59
- "@node-projects/lean-he-esm": "^3.3.0",
60
- "@node-projects/node-html-parser-esm": "^6.2.0",
58
+ "@node-projects/base-custom-webcomponent": "0.41.0",
59
+ "@node-projects/lean-he-esm": "^3.4.1",
60
+ "@node-projects/node-html-parser-esm": "^6.4.1",
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.265",
63
+ "@node-projects/web-component-designer": "^0.1.288",
64
64
  "@node-projects/web-component-designer-codeview-monaco": "^0.1.33",
65
- "@node-projects/web-component-designer-htmlparserservice-nodehtmlparser": "^0.1.11",
65
+ "@node-projects/web-component-designer-htmlparserservice-nodehtmlparser": "^0.1.12",
66
66
  "@node-projects/web-component-designer-stylesheetservice-css-tools": "^0.1.11",
67
- "@node-projects/web-component-designer-visualization-addons": "^0.1.133",
68
- "@node-projects/web-component-designer-widgets-wunderbaum": "^0.1.33",
67
+ "@node-projects/web-component-designer-visualization-addons": "^0.1.134",
68
+ "@node-projects/web-component-designer-widgets-wunderbaum": "^0.1.38",
69
69
  "@types/json-schema": "^7.0.15",
70
70
  "@web/dev-server": "^0.4.6",
71
71
  "blockly": "^12.3.1",
72
72
  "chai": "^5.3.1",
73
73
  "chai-as-promised": "^8.0.2",
74
74
  "construct-style-sheets-polyfill": "^3.1.0",
75
- "cross-env": "^10.0.0",
75
+ "cross-env": "^10.1.0",
76
76
  "dayjs": "^1.11.18",
77
77
  "del": "^8.0.1",
78
- "dock-spawn-ts": "^3.7.0",
78
+ "dock-spawn-ts": "^3.8.3",
79
79
  "es-module-shims": "2.6.2",
80
- "eslint": "^9.36.0",
80
+ "eslint": "^9.37.0",
81
81
  "esprima-next": "^6.0.3",
82
82
  "glob-stream": "^8.0.3",
83
83
  "gulp": "^5.0.1",
@@ -85,14 +85,14 @@
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.2",
88
+ "mocha": "^11.7.4",
89
89
  "monaco-editor": "^0.50.0",
90
90
  "nyc": "^17.1.0",
91
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",
95
- "typescript": "^5.9.2",
95
+ "typescript": "^5.9.3",
96
96
  "typescript-json-schema": "^0.65.1",
97
97
  "wunderbaum": "0.13.0"
98
98
  }
@@ -197,7 +197,7 @@ export class IobrokerHandler {
197
197
  return screen;
198
198
  }
199
199
  async saveObject(type, name, data) {
200
- this._saveObjectToFile(data, "/" + this.configPath + type + "s/" + name + '.' + type);
200
+ await this._saveObjectToFile(data, "/" + this.configPath + type + "s/" + name + '.' + type);
201
201
  if (this.#cache.has(type))
202
202
  this.#cache.get(type).set(name, data);
203
203
  if (type == 'control')
@@ -490,6 +490,8 @@ export class IobrokerHandler {
490
490
  break;
491
491
  case "objectChanged":
492
492
  const d = JSON.parse(data);
493
+ if (this.#cache.has(d.type))
494
+ this.#cache.get(d.type).delete(d.name);
493
495
  if (d.type == 'control' && d.name)
494
496
  generateCustomControl(d.name, await iobrokerHandler.getWebuiObject(d.type, d.name));
495
497
  this.objectsChanged.emit(d);
@@ -39,7 +39,7 @@
39
39
  "arguments",
40
40
  "caller",
41
41
  "name",
42
- "__@hasInstance@2402"
42
+ "__@hasInstance@2404"
43
43
  ],
44
44
  "type": "object"
45
45
  },
@@ -79,6 +79,7 @@
79
79
  "type": "array"
80
80
  },
81
81
  "bindToSize": {
82
+ "description": "In bindings the properties §width and §height could be used",
82
83
  "type": "boolean"
83
84
  },
84
85
  "height": {
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.35.3 - 727a3c1
221
+ webui - 1.36.0 - 794bf7b
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>
@@ -1,3 +1,3 @@
1
1
  /*! For license information please see index.js.LICENSE.txt */
2
- !function(t,i){if("object"==typeof exports&&"object"==typeof module)module.exports=i(require("blockly/core"));else if("function"==typeof define&&define.amd)define(["blockly/core"],i);else{var o="object"==typeof exports?i(require("blockly/core")):i(t.Blockly);for(var e in o)("object"==typeof exports?exports:t)[e]=o[e]}}(this,(t=>(()=>{"use strict";var i={370:i=>{i.exports=t}},o={};function e(t){var s=o[t];if(void 0!==s)return s.exports;var r=o[t]={exports:{}};return i[t](r,r.exports,e),r.exports}e.n=t=>{var i=t&&t.__esModule?()=>t.default:()=>t;return e.d(i,{a:i}),i},e.d=(t,i)=>{for(var o in i)e.o(i,o)&&!e.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:i[o]})},e.o=(t,i)=>Object.prototype.hasOwnProperty.call(t,i),e.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var s={};e.r(s),e.d(s,{ZoomToFitControl:()=>n});var r=e(370);class n{constructor(t){this.workspace=t,this.id="zoomToFit",this.svgGroup=null,this.left=0,this.top=0,this.width=32,this.height=32,this.marginVertical=20,this.marginHorizontal=20,this.initialized=!1,this.onZoomToFitWrapper=null}init(){this.workspace.getComponentManager().addComponent({component:this,weight:2,capabilities:[r.ComponentManager.Capability.POSITIONABLE]}),this.createDom(),this.initialized=!0,this.workspace.resize()}dispose(){this.svgGroup&&r.utils.dom.removeNode(this.svgGroup),this.onZoomToFitWrapper&&(r.browserEvents.unbind(this.onZoomToFitWrapper),this.onZoomToFitWrapper=null)}createDom(){this.svgGroup=r.utils.dom.createSvgElement(r.utils.Svg.IMAGE,{height:`${this.height}px`,width:`${this.width}px`,class:"zoomToFit"}),this.svgGroup.setAttributeNS(r.utils.dom.XLINK_NS,"xlink:href",l),r.utils.dom.insertAfter(this.svgGroup,this.workspace.getBubbleCanvas()),this.onZoomToFitWrapper=r.browserEvents.conditionalBind(this.svgGroup,"pointerdown",null,this.onClick.bind(this))}onClick(t){this.workspace.zoomToFit();const i=new(r.Events.get(r.Events.CLICK))(null,this.workspace.id,"zoom_reset_control");r.Events.fire(i),t.stopPropagation(),t.preventDefault()}getBoundingRectangle(){return new r.utils.Rect(this.top,this.top+this.height,this.left,this.left+this.width)}position(t,i){var o;if(!this.initialized)return;const e=this.workspace.scrollbar&&this.workspace.scrollbar.canScrollHorizontally(),s=this.workspace.scrollbar&&this.workspace.scrollbar.canScrollVertically();t.toolboxMetrics.position===r.TOOLBOX_AT_LEFT||this.workspace.horizontalLayout&&!this.workspace.RTL?(this.left=t.absoluteMetrics.left+t.viewMetrics.width-this.width-this.marginHorizontal,e&&!this.workspace.RTL&&(this.left-=r.Scrollbar.scrollbarThickness)):(this.left=this.marginHorizontal,e&&this.workspace.RTL&&(this.left+=r.Scrollbar.scrollbarThickness));const n=t.toolboxMetrics.position!==r.TOOLBOX_AT_BOTTOM;n?(this.top=t.absoluteMetrics.top+t.viewMetrics.height-this.height-this.marginVertical,s&&(this.top-=r.Scrollbar.scrollbarThickness)):this.top=t.absoluteMetrics.top+this.marginVertical;let l=this.getBoundingRectangle();for(let t,o=0;t=i[o];o++)l.intersects(t)&&(this.top=n?t.top-this.height-this.marginVertical:t.bottom+this.marginVertical,l=this.getBoundingRectangle(),o=-1);null===(o=this.svgGroup)||void 0===o||o.setAttribute("transform",`translate(${this.left}, ${this.top})`)}}const l="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjRweCIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMjRweCIgZmlsbD0iIzU0NkU3QSI+PHBhdGggZD0iTTAgMGgyNHYyNEgwVjB6IiBmaWxsPSJub25lIi8+PHBhdGggZD0iTTUgNi40Mkw4LjA5IDkuNSA5LjUgOC4wOSA2LjQxIDVIOVYzSDN2Nmgyem0xMC0zLjQxdjJoMi41N0wxNC41IDguMDlsMS40MSAxLjQxTDE5IDYuNDFWOWgyVjMuMDF6bTQgMTQuNTdsLTMuMDktMy4wOC0xLjQxIDEuNDFMMTcuNTkgMTlIMTV2Mmg2di02aC0yek04LjA5IDE0LjVMNSAxNy41OVYxNUgzdjZoNnYtMkg2LjQybDMuMDgtMy4wOXoiLz48L3N2Zz4=";return r.Css.register("\n.zoomToFit {\n opacity: 0.4;\n}\n.zoomToFit:hover {\n opacity: 0.6;\n}\n.zoomToFit:active {\n opacity: 0.8;\n}\n"),s})()));
2
+ !function(t,i){if("object"==typeof exports&&"object"==typeof module)module.exports=i(require("blockly/core"));else if("function"==typeof define&&define.amd)define(["blockly/core"],i);else{var o="object"==typeof exports?i(require("blockly/core")):i(t.Blockly);for(var e in o)("object"==typeof exports?exports:t)[e]=o[e]}}(this,t=>(()=>{"use strict";var i={370:i=>{i.exports=t}},o={};function e(t){var s=o[t];if(void 0!==s)return s.exports;var r=o[t]={exports:{}};return i[t](r,r.exports,e),r.exports}e.n=t=>{var i=t&&t.__esModule?()=>t.default:()=>t;return e.d(i,{a:i}),i},e.d=(t,i)=>{for(var o in i)e.o(i,o)&&!e.o(t,o)&&Object.defineProperty(t,o,{enumerable:!0,get:i[o]})},e.o=(t,i)=>Object.prototype.hasOwnProperty.call(t,i),e.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})};var s={};e.r(s),e.d(s,{ZoomToFitControl:()=>n});var r=e(370);class n{constructor(t){this.workspace=t,this.id="zoomToFit",this.svgGroup=null,this.left=0,this.top=0,this.width=32,this.height=32,this.marginVertical=20,this.marginHorizontal=20,this.initialized=!1,this.onZoomToFitWrapper=null}init(){this.workspace.getComponentManager().addComponent({component:this,weight:2,capabilities:[r.ComponentManager.Capability.POSITIONABLE]}),this.createDom(),this.initialized=!0,this.workspace.resize()}dispose(){this.svgGroup&&r.utils.dom.removeNode(this.svgGroup),this.onZoomToFitWrapper&&(r.browserEvents.unbind(this.onZoomToFitWrapper),this.onZoomToFitWrapper=null)}createDom(){this.svgGroup=r.utils.dom.createSvgElement(r.utils.Svg.IMAGE,{height:`${this.height}px`,width:`${this.width}px`,class:"zoomToFit"}),this.svgGroup.setAttributeNS(r.utils.dom.XLINK_NS,"xlink:href",l),r.utils.dom.insertAfter(this.svgGroup,this.workspace.getBubbleCanvas()),this.onZoomToFitWrapper=r.browserEvents.conditionalBind(this.svgGroup,"pointerdown",null,this.onClick.bind(this))}onClick(t){this.workspace.zoomToFit();const i=new(r.Events.get(r.Events.CLICK))(null,this.workspace.id,"zoom_reset_control");r.Events.fire(i),t.stopPropagation(),t.preventDefault()}getBoundingRectangle(){return new r.utils.Rect(this.top,this.top+this.height,this.left,this.left+this.width)}position(t,i){var o;if(!this.initialized)return;const e=this.workspace.scrollbar&&this.workspace.scrollbar.canScrollHorizontally(),s=this.workspace.scrollbar&&this.workspace.scrollbar.canScrollVertically();t.toolboxMetrics.position===r.TOOLBOX_AT_LEFT||this.workspace.horizontalLayout&&!this.workspace.RTL?(this.left=t.absoluteMetrics.left+t.viewMetrics.width-this.width-this.marginHorizontal,e&&!this.workspace.RTL&&(this.left-=r.Scrollbar.scrollbarThickness)):(this.left=this.marginHorizontal,e&&this.workspace.RTL&&(this.left+=r.Scrollbar.scrollbarThickness));const n=t.toolboxMetrics.position!==r.TOOLBOX_AT_BOTTOM;n?(this.top=t.absoluteMetrics.top+t.viewMetrics.height-this.height-this.marginVertical,s&&(this.top-=r.Scrollbar.scrollbarThickness)):this.top=t.absoluteMetrics.top+this.marginVertical;let l=this.getBoundingRectangle();for(let t,o=0;t=i[o];o++)l.intersects(t)&&(this.top=n?t.top-this.height-this.marginVertical:t.bottom+this.marginVertical,l=this.getBoundingRectangle(),o=-1);null===(o=this.svgGroup)||void 0===o||o.setAttribute("transform",`translate(${this.left}, ${this.top})`)}}const l="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIGhlaWdodD0iMjRweCIgdmlld0JveD0iMCAwIDI0IDI0IiB3aWR0aD0iMjRweCIgZmlsbD0iIzU0NkU3QSI+PHBhdGggZD0iTTAgMGgyNHYyNEgwVjB6IiBmaWxsPSJub25lIi8+PHBhdGggZD0iTTUgNi40Mkw4LjA5IDkuNSA5LjUgOC4wOSA2LjQxIDVIOVYzSDN2Nmgyem0xMC0zLjQxdjJoMi41N0wxNC41IDguMDlsMS40MSAxLjQxTDE5IDYuNDFWOWgyVjMuMDF6bTQgMTQuNTdsLTMuMDktMy4wOC0xLjQxIDEuNDFMMTcuNTkgMTlIMTV2Mmg2di02aC0yek04LjA5IDE0LjVMNSAxNy41OVYxNUgzdjZoNnYtMkg2LjQybDMuMDgtMy4wOXoiLz48L3N2Zz4=";return r.Css.register("\n.zoomToFit {\n opacity: 0.4;\n}\n.zoomToFit:hover {\n opacity: 0.6;\n}\n.zoomToFit:active {\n opacity: 0.8;\n}\n"),s})());
3
3
  //# sourceMappingURL=index.js.map
@@ -41,6 +41,7 @@ export declare class BaseCustomWebComponentNoAttachedTemplate extends HTMLElemen
41
41
  */
42
42
  protected _bindingsParse(node?: Node, removeAttributes?: boolean, host?: any, context?: any, useSignals?: boolean): void;
43
43
  private _bindingsInternalParse;
44
+ private _getNodeValue;
44
45
  private _textFragmentBinding;
45
46
  private _bindingRunEval;
46
47
  private _bindingRunEvalInt;
@@ -58,7 +59,6 @@ export declare class BaseCustomWebComponentNoAttachedTemplate extends HTMLElemen
58
59
  protected _restoreCachedInititalValues(): void;
59
60
  protected _restoreCachedInititalValue(name: string): void;
60
61
  static instanceCreatedCallback: (i: BaseCustomWebComponentNoAttachedTemplate) => void;
61
- _hmrCallback(newClass: BaseCustomWebComponentNoAttachedTemplate): void;
62
62
  constructor(template?: HTMLTemplateElement, style?: CSSStyleSheet);
63
63
  }
64
64
  export declare class BaseCustomWebComponentLazyAppend extends BaseCustomWebComponentNoAttachedTemplate {
@@ -40,14 +40,6 @@ export const cssFromString = function (value) {
40
40
  };
41
41
  let _bindingRegex = /\[\[.*?\]\]/g;
42
42
  export class BaseCustomWebComponentNoAttachedTemplate extends HTMLElement {
43
- static style;
44
- static template;
45
- //todo: bindings map should contain the name of the bound property
46
- _bindings;
47
- _repeatBindings;
48
- _rootDocumentFragment;
49
- _initialPropertyCache = new Map();
50
- _noWarningOnBindingErrors;
51
43
  _getDomElement(id) {
52
44
  if (this.shadowRoot.children.length > 1 || (this.shadowRoot.children[0] !== undefined && this.shadowRoot.children[0].localName !== 'style'))
53
45
  return this.shadowRoot.getElementById(id);
@@ -191,13 +183,13 @@ export class BaseCustomWebComponentNoAttachedTemplate extends HTMLElement {
191
183
  nm = a.name.substring(1, a.name.length);
192
184
  const value = a.value.substring(2, a.value.length - 2).replaceAll('&amp;', '&');
193
185
  if (a.name == "@touch:contextmenu")
194
- addTouchFriendlyContextMenu(node, (e) => this._bindingRunEval(value, repeatBindingItems, e, host, context));
186
+ addTouchFriendlyContextMenu(node, (e) => this._bindingRunEval(value, repeatBindingItems, e, host, context, node));
195
187
  else {
196
188
  if (node[nm] instanceof TypedEvent) {
197
- node[nm].on((e) => this._bindingRunEval(value, repeatBindingItems, e, host, context));
189
+ node[nm].on((e) => this._bindingRunEval(value, repeatBindingItems, e, host, context, node));
198
190
  }
199
191
  else {
200
- node.addEventListener(nm, (e) => this._bindingRunEval(value, repeatBindingItems, e, host, context));
192
+ node.addEventListener(nm, (e) => this._bindingRunEval(value, repeatBindingItems, e, host, context, node));
201
193
  }
202
194
  }
203
195
  }
@@ -219,10 +211,10 @@ export class BaseCustomWebComponentNoAttachedTemplate extends HTMLElement {
219
211
  else if (a.value[0] === '{' && a.value[1] === '{' && a.value[a.value.length - 1] === '}' && a.value[a.value.length - 2] === '}') {
220
212
  const attributeValues = a.value.substring(2, a.value.length - 2).split('::');
221
213
  let nm = a.name;
222
- if (nm[0] == '.')
214
+ if (nm[0] == '.' || nm[0] == '$' || nm[0] == '?')
223
215
  nm = nm.substring(1);
224
216
  let value = attributeValues[0];
225
- let event = (node instanceof HTMLInputElement || node instanceof HTMLTextAreaElement) ? 'input' : (node instanceof HTMLSelectElement ? 'change' : nm + '-changed');
217
+ let event = (node instanceof HTMLInputElement || node instanceof HTMLTextAreaElement) ? (nm === 'checked' ? 'change' : 'input') : (node instanceof HTMLSelectElement ? 'change' : nm + '-changed');
226
218
  if (attributeValues.length > 1 && attributeValues[1])
227
219
  event = attributeValues[1];
228
220
  const camelCased = nm.replace(/-([a-z])/g, (g) => g[1].toUpperCase());
@@ -237,9 +229,9 @@ export class BaseCustomWebComponentNoAttachedTemplate extends HTMLElement {
237
229
  if (event) {
238
230
  for (let x of event.split(';')) {
239
231
  if (node[x] instanceof TypedEvent)
240
- node[x].on((e) => this._bindingsSetValue(host ?? this, value.replaceAll('?', ''), node[camelCased], context, repeatBindingItems));
232
+ node[x].on((e) => this._bindingsSetValue(host ?? this, value.replaceAll('?', ''), this._getNodeValue(a.name[0], node, camelCased, nm), context, repeatBindingItems));
241
233
  else
242
- node.addEventListener(x, (e) => this._bindingsSetValue(host ?? this, value.replaceAll('?', ''), node[camelCased], context, repeatBindingItems));
234
+ node.addEventListener(x, (e) => this._bindingsSetValue(host ?? this, value.replaceAll('?', ''), this._getNodeValue(a.name[0], node, camelCased, nm), context, repeatBindingItems));
243
235
  }
244
236
  }
245
237
  }
@@ -282,6 +274,13 @@ export class BaseCustomWebComponentNoAttachedTemplate extends HTMLElement {
282
274
  }
283
275
  }
284
276
  }
277
+ _getNodeValue(valueType, node, propertyName, attributeName) {
278
+ if (valueType === '?')
279
+ return node.hasAttribute(attributeName);
280
+ if (valueType === '$')
281
+ return node.getAttribute(attributeName);
282
+ return node[propertyName];
283
+ }
285
284
  _textFragmentBinding(node, m, repeatBindingItems, removeAttributes, host, context) {
286
285
  let value = m[0].substr(2, m[0].length - 4);
287
286
  let noNull = false;
@@ -293,13 +292,13 @@ export class BaseCustomWebComponentNoAttachedTemplate extends HTMLElement {
293
292
  this._bindings.push([b, null]);
294
293
  b(true, false);
295
294
  }
296
- _bindingRunEval(expression, repeatBindingItems, event, host, context) {
295
+ _bindingRunEval(expression, repeatBindingItems, event, host, context, node) {
297
296
  if (host)
298
- return this._bindingRunEvalInt.bind(host)(expression, repeatBindingItems, event, context);
299
- return this._bindingRunEvalInt(expression, repeatBindingItems, event, context);
297
+ return this._bindingRunEvalInt.bind(host)(expression, repeatBindingItems, event, context, node);
298
+ return this._bindingRunEvalInt(expression, repeatBindingItems, event, context, node);
300
299
  }
301
300
  //This method can not use "this" anywhere, cause it's bound to different host via method above.
302
- _bindingRunEvalInt(expression, repeatBindingItems, event, context) {
301
+ _bindingRunEvalInt(expression, repeatBindingItems, event, context, sender) {
303
302
  if (repeatBindingItems) {
304
303
  let n = 0;
305
304
  let set = new Set();
@@ -313,6 +312,9 @@ export class BaseCustomWebComponentNoAttachedTemplate extends HTMLElement {
313
312
  if (event) {
314
313
  expression = 'let event = ___event;' + expression;
315
314
  }
315
+ if (sender) {
316
+ expression = 'let sender = ___sender;' + expression;
317
+ }
316
318
  if (context) {
317
319
  for (let i in context) {
318
320
  expression = 'let ' + i + ' = ___context["' + i + '"];' + expression;
@@ -323,25 +325,47 @@ export class BaseCustomWebComponentNoAttachedTemplate extends HTMLElement {
323
325
  //@ts-ignore
324
326
  var ___event = event;
325
327
  //@ts-ignore
328
+ var ___sender = sender;
329
+ //@ts-ignore
326
330
  var ___context = context;
327
331
  let value = eval(expression);
328
332
  return value;
329
333
  }
330
334
  if (context) {
335
+ if (event) {
336
+ expression = 'let event = ___event;' + expression;
337
+ }
338
+ if (sender) {
339
+ expression = 'let sender = ___sender;' + expression;
340
+ }
331
341
  for (let i in context) {
332
342
  expression = 'let ' + i + ' = ___context["' + i + '"];' + expression;
333
343
  }
334
344
  //@ts-ignore
345
+ var ___event = event;
346
+ //@ts-ignore
347
+ var ___sender = sender;
348
+ //@ts-ignore
335
349
  var ___context = context;
336
350
  let value = eval(expression);
337
351
  return value;
338
352
  }
353
+ if (event) {
354
+ expression = 'let event = ___event;' + expression;
355
+ }
356
+ if (sender) {
357
+ expression = 'let sender = ___sender;' + expression;
358
+ }
359
+ //@ts-ignore
360
+ var ___event = event;
361
+ //@ts-ignore
362
+ var ___sender = sender;
339
363
  let value = eval(expression);
340
364
  return value;
341
365
  }
342
366
  _bindingConditional(node, expression, repeatBindingItems, elementsCache, host, context) {
343
367
  try {
344
- const value = this._bindingRunEval(expression, repeatBindingItems, null, host, context);
368
+ const value = this._bindingRunEval(expression, repeatBindingItems, null, host, context, node);
345
369
  if (!value && elementsCache.length > 0) {
346
370
  for (let c of elementsCache) {
347
371
  c.parentNode.removeChild(c);
@@ -349,7 +373,7 @@ export class BaseCustomWebComponentNoAttachedTemplate extends HTMLElement {
349
373
  elementsCache.length = 0;
350
374
  }
351
375
  if (value && elementsCache.length === 0) {
352
- let nd = node.content.cloneNode(true);
376
+ let nd = document.importNode(node.content, true);
353
377
  elementsCache.push(...nd.children);
354
378
  this._bindingsInternalParse(nd, repeatBindingItems, true, host, context);
355
379
  node.parentNode.insertBefore(nd, node);
@@ -360,10 +384,9 @@ export class BaseCustomWebComponentNoAttachedTemplate extends HTMLElement {
360
384
  console.warn(error.message, 'Failed to bind Conditional to expression "' + expression + '"', this, node);
361
385
  }
362
386
  }
363
- oldValuesSymbol = Symbol('oldValuesSymbol');
364
387
  _bindingRepeat(node, bindingProperty, bindingIndexName, expression, callback, repeatBindingItems, elementsCache, host, context) {
365
388
  try {
366
- let values = this._bindingRunEval(expression, repeatBindingItems, null, host, context);
389
+ let values = this._bindingRunEval(expression, repeatBindingItems, null, host, context, node);
367
390
  if (values && !Array.isArray(values))
368
391
  values = [...values];
369
392
  const oldValue = node[this.oldValuesSymbol];
@@ -383,7 +406,7 @@ export class BaseCustomWebComponentNoAttachedTemplate extends HTMLElement {
383
406
  let intRepeatBindingItems = [];
384
407
  intRepeatBindingItems.push({ name: 'nodes', item: [c] });
385
408
  intRepeatBindingItems.push({ name: 'callbackType', item: 'remove' });
386
- this._bindingRunEval(callback, intRepeatBindingItems, null, host, context);
409
+ this._bindingRunEval(callback, intRepeatBindingItems, null, host, context, node);
387
410
  const bnds = this._repeatBindings.get(c);
388
411
  if (bnds?.length) {
389
412
  for (const b of bnds) {
@@ -407,7 +430,7 @@ export class BaseCustomWebComponentNoAttachedTemplate extends HTMLElement {
407
430
  intRepeatBindingItems = repeatBindingItems.slice();
408
431
  intRepeatBindingItems.push({ name: bindingProperty, item: e });
409
432
  intRepeatBindingItems.push({ name: bindingIndexName, item: i });
410
- let nd = node.content.cloneNode(true);
433
+ let nd = document.importNode(node.content, true);
411
434
  elementsCache.push(...nd.children);
412
435
  const bndCount = this._bindings.length;
413
436
  this._bindingsInternalParse(nd, intRepeatBindingItems, true, host, context);
@@ -415,7 +438,7 @@ export class BaseCustomWebComponentNoAttachedTemplate extends HTMLElement {
415
438
  if (callback) {
416
439
  intRepeatBindingItems.push({ name: 'nodes', item: [...nd.children] });
417
440
  intRepeatBindingItems.push({ name: 'callbackType', item: 'create' });
418
- let nds = this._bindingRunEval(callback, intRepeatBindingItems, null, host, context);
441
+ let nds = this._bindingRunEval(callback, intRepeatBindingItems, null, host, context, node);
419
442
  if (nds === undefined)
420
443
  nds = nd.children;
421
444
  if (nds) {
@@ -438,7 +461,7 @@ export class BaseCustomWebComponentNoAttachedTemplate extends HTMLElement {
438
461
  }
439
462
  _bindingSetNodeValue(firstRun, node, attribute, property, expression, repeatBindingItems, removeAttributes, host, context, noNull, onlyWhenChanged) {
440
463
  try {
441
- const value = this._bindingRunEval(expression, repeatBindingItems, null, host, context);
464
+ const value = this._bindingRunEval(expression, repeatBindingItems, null, host, context, node);
442
465
  if (firstRun || node[property] !== value) {
443
466
  if (removeAttributes && attribute)
444
467
  node.removeAttribute(attribute.name);
@@ -451,7 +474,7 @@ export class BaseCustomWebComponentNoAttachedTemplate extends HTMLElement {
451
474
  }
452
475
  else {
453
476
  if (property[0] === '$') {
454
- if (!value && noNull)
477
+ if (!!value && noNull)
455
478
  node.setAttribute(property.substring(1), '');
456
479
  else if (!value)
457
480
  node.removeAttribute(property.substring(1));
@@ -459,7 +482,7 @@ export class BaseCustomWebComponentNoAttachedTemplate extends HTMLElement {
459
482
  node.setAttribute(property.substring(1), value);
460
483
  }
461
484
  else if (property[0] === '?') {
462
- if (!value == true)
485
+ if (!!value)
463
486
  node.setAttribute(property.substring(1), '');
464
487
  else
465
488
  node.removeAttribute(property.substring(1));
@@ -488,7 +511,7 @@ export class BaseCustomWebComponentNoAttachedTemplate extends HTMLElement {
488
511
  }
489
512
  _bindingSetElementCssValue(node, property, expression, repeatBindingItems, host, context) {
490
513
  try {
491
- const value = this._bindingRunEval(expression, repeatBindingItems, null, host, context);
514
+ const value = this._bindingRunEval(expression, repeatBindingItems, null, host, context, node);
492
515
  if (node.style[property] !== value)
493
516
  node.style[property] = value;
494
517
  }
@@ -499,7 +522,7 @@ export class BaseCustomWebComponentNoAttachedTemplate extends HTMLElement {
499
522
  }
500
523
  _bindingSetElementClass(node, classname, expression, repeatBindingItems, host, context) {
501
524
  try {
502
- const value = this._bindingRunEval(expression, repeatBindingItems, null, host, context);
525
+ const value = this._bindingRunEval(expression, repeatBindingItems, null, host, context, node);
503
526
  if (value) {
504
527
  if (!node.classList.contains(classname))
505
528
  node.classList.add(classname);
@@ -556,8 +579,6 @@ export class BaseCustomWebComponentNoAttachedTemplate extends HTMLElement {
556
579
  }
557
580
  target[pathParts[pathParts.length - 1]] = value;
558
581
  }
559
- //@ts-ignore
560
- static _propertiesDictionary;
561
582
  _parseAttributesToProperties(noBindings = false) {
562
583
  //@ts-ignore
563
584
  if (!this.constructor._propertiesDictionary) {
@@ -613,42 +634,21 @@ export class BaseCustomWebComponentNoAttachedTemplate extends HTMLElement {
613
634
  if (!this._initialPropertyCache.size)
614
635
  this._initialPropertyCache = undefined;
615
636
  }
616
- static instanceCreatedCallback;
617
- _hmrCallback(newClass) {
618
- let oldIdx = -1;
619
- //@ts-ignore
620
- if (this.constructor.style) {
621
- //@ts-ignore
622
- oldIdx = this.shadowRoot.adoptedStyleSheets.indexOf(this.constructor.style);
623
- if (oldIdx >= 0) {
624
- let newArr = Array.from(this.shadowRoot.adoptedStyleSheets);
625
- newArr.splice(oldIdx, 1);
626
- this.shadowRoot.adoptedStyleSheets = newArr;
627
- }
628
- }
629
- if (newClass.style) {
630
- if (oldIdx >= 0) {
631
- let newArr = Array.from(this.shadowRoot.adoptedStyleSheets);
632
- //@ts-ignore
633
- newArr.splice(oldIdx, 0, newClass.style);
634
- this.shadowRoot.adoptedStyleSheets = newArr;
635
- }
636
- }
637
- }
638
637
  constructor(template, style) {
639
638
  super();
639
+ this._initialPropertyCache = new Map();
640
+ this.oldValuesSymbol = Symbol('oldValuesSymbol');
640
641
  if (BaseCustomWebComponentNoAttachedTemplate.instanceCreatedCallback)
641
642
  BaseCustomWebComponentNoAttachedTemplate.instanceCreatedCallback(this);
642
643
  if (!this.shadowRoot)
643
644
  this.attachShadow({ mode: 'open' });
644
- if (template) {
645
+ if (!template) {
645
646
  //@ts-ignore
646
- this._rootDocumentFragment = template.content.cloneNode(true);
647
+ template = this.constructor.template;
647
648
  }
648
- //@ts-ignore
649
- else if (this.constructor.template) {
649
+ if (template) {
650
650
  //@ts-ignore
651
- this._rootDocumentFragment = this.constructor.template.content.cloneNode(true);
651
+ this._rootDocumentFragment = document.importNode(template.content, true);
652
652
  }
653
653
  //@ts-ignore
654
654
  if (this.templateCloned) {
@@ -739,7 +739,6 @@ export class BaseCustomWebComponentLazyAppendConnectedReady extends BaseCustomWe
739
739
  this.shadowRoot.appendChild(this._rootDocumentFragment);
740
740
  });
741
741
  }
742
- _isReady;
743
742
  connectedCallback() {
744
743
  //@ts-ignore
745
744
  if (this.ready && !this._isReady)
@@ -754,7 +753,6 @@ export class BaseCustomWebComponentConnectedReady extends BaseCustomWebComponent
754
753
  if (this._rootDocumentFragment)
755
754
  this.shadowRoot.appendChild(this._rootDocumentFragment);
756
755
  }
757
- _isReady;
758
756
  connectedCallback() {
759
757
  //@ts-ignore
760
758
  if (this.ready && !this._isReady)
@@ -53,15 +53,12 @@ class BaseDeclaritiveWebcomponent extends BaseCustomWebComponentNoAttachedTempla
53
53
  }
54
54
  }
55
55
  class DeclaritiveBaseCustomWebcomponent extends BaseCustomWebComponentNoAttachedTemplate {
56
- static style = css `:host{display:none;}`;
57
- name;
58
- enableBindings;
59
- properties;
60
- static properties = {
56
+ static { this.style = css `:host{display:none;}`; }
57
+ static { this.properties = {
61
58
  name: String,
62
59
  enableBindings: Boolean,
63
60
  properties: String
64
- };
61
+ }; }
65
62
  constructor() {
66
63
  super();
67
64
  this._parseAttributesToProperties();
@@ -8,13 +8,18 @@ export function customElement(tagname) {
8
8
  globalThis.baseCustomWebComponentPropertyMetadata ??= new WeakMap();
9
9
  const legacyProperty = (par, proto, name) => {
10
10
  //@ts-ignore
11
- if (!proto.constructor.properties) {
11
+ if (!Object.hasOwn(proto.constructor, 'properties')) {
12
12
  //@ts-ignore
13
- proto.constructor.properties = {};
13
+ if (proto.constructor.properties)
14
+ //@ts-ignore
15
+ Object.defineProperty(proto.constructor, 'properties', { value: { ...proto.constructor.properties }, writable: true, configurable: true });
16
+ else
17
+ //@ts-ignore
18
+ proto.constructor.properties = {};
14
19
  }
15
20
  if (par && par.type != null) {
16
21
  //@ts-ignore
17
- proto.constructor.properties[name] = par.type ? par.type : String;
22
+ proto.constructor.properties[name] = par;
18
23
  }
19
24
  else {
20
25
  //@ts-ignore