iobroker.mywebui 1.171.0 → 1.176.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 (258) hide show
  1. package/README.md +1948 -1924
  2. package/default-controls/controls/dashboard/boiler.control +51 -0
  3. package/default-controls/controls/dashboard/command-group.control +19 -0
  4. package/default-controls/controls/dashboard/conveyor-box.control +19 -0
  5. package/default-controls/controls/dashboard/conveyor.control +35 -0
  6. package/default-controls/controls/dashboard/countdown-tile.control +32 -0
  7. package/default-controls/controls/dashboard/dial-gauge.control +39 -0
  8. package/default-controls/controls/dashboard/kpi-tile.control +52 -0
  9. package/default-controls/controls/dashboard/logic-gate.control +40 -0
  10. package/default-controls/controls/dashboard/notification-bell.control +19 -0
  11. package/default-controls/controls/dashboard/panel-card.control +45 -0
  12. package/default-controls/controls/dashboard/setpoint-slider.control +47 -0
  13. package/default-controls/controls/dashboard/status-chip.control +74 -0
  14. package/default-controls/controls/dashboard/time-spinner.control +37 -0
  15. package/default-controls/controls/dialog/confirm-dialog.control +15 -0
  16. package/default-controls/controls/navigation/app-bar.control +1 -1
  17. package/default-controls/controls/navigation/sidebar.control +1 -1
  18. package/dist/backend/3d-editor-integration.js +1 -1
  19. package/dist/backend/main.js +1 -1
  20. package/dist/backend/protectedWrite.js +1 -0
  21. package/dist/backend/reportCsv.js +1 -1
  22. package/dist/backend/reportGenerate.js +1 -1
  23. package/dist/backend/reportOutput.js +1 -1
  24. package/dist/backend/reportPdf.js +1 -1
  25. package/dist/backend/reportRenderer.js +1 -1
  26. package/dist/backend/reportSandbox.js +1 -1
  27. package/dist/backend/reportSandboxWorker.js +1 -1
  28. package/docs/README.md +2 -0
  29. package/docs/bindings.md +4 -0
  30. package/docs/confirm-protect.md +84 -0
  31. package/docs/permissions.md +3 -0
  32. package/docs/reports.md +7 -0
  33. package/docs/scada-controls.md +47 -0
  34. package/docs/screens.md +2 -2
  35. package/docs/translations.md +1 -0
  36. package/io-package.json +1 -1
  37. package/native/mywebui_scada_engine.win32-x64-msvc.node +0 -0
  38. package/package.json +1 -1
  39. package/webExtension.cjs +74 -0
  40. package/www/3d-editor/js/Animation.js +1 -1
  41. package/www/3d-editor/js/AnimationResizer.js +1 -1
  42. package/www/3d-editor/js/Command.js +1 -1
  43. package/www/3d-editor/js/Config.js +1 -1
  44. package/www/3d-editor/js/Editor.js +1 -1
  45. package/www/3d-editor/js/EditorControls.js +1 -1
  46. package/www/3d-editor/js/GLTFImportDialog.js +1 -1
  47. package/www/3d-editor/js/History.js +1 -1
  48. package/www/3d-editor/js/Loader.js +1 -1
  49. package/www/3d-editor/js/LoaderUtils.js +1 -1
  50. package/www/3d-editor/js/Menubar.Add.js +1 -1
  51. package/www/3d-editor/js/Menubar.Edit.js +1 -1
  52. package/www/3d-editor/js/Menubar.File.js +1 -1
  53. package/www/3d-editor/js/Menubar.Help.js +1 -1
  54. package/www/3d-editor/js/Menubar.Render.js +1 -1
  55. package/www/3d-editor/js/Menubar.Status.js +1 -1
  56. package/www/3d-editor/js/Menubar.View.js +1 -1
  57. package/www/3d-editor/js/Menubar.js +1 -1
  58. package/www/3d-editor/js/Player.js +1 -1
  59. package/www/3d-editor/js/Resizer.js +1 -1
  60. package/www/3d-editor/js/Script.js +1 -1
  61. package/www/3d-editor/js/Selector.js +1 -1
  62. package/www/3d-editor/js/Sidebar.Geometry.BoxGeometry.js +1 -1
  63. package/www/3d-editor/js/Sidebar.Geometry.BufferGeometry.js +1 -1
  64. package/www/3d-editor/js/Sidebar.Geometry.CapsuleGeometry.js +1 -1
  65. package/www/3d-editor/js/Sidebar.Geometry.CircleGeometry.js +1 -1
  66. package/www/3d-editor/js/Sidebar.Geometry.CylinderGeometry.js +1 -1
  67. package/www/3d-editor/js/Sidebar.Geometry.DodecahedronGeometry.js +1 -1
  68. package/www/3d-editor/js/Sidebar.Geometry.ExtrudeGeometry.js +1 -1
  69. package/www/3d-editor/js/Sidebar.Geometry.IcosahedronGeometry.js +1 -1
  70. package/www/3d-editor/js/Sidebar.Geometry.LatheGeometry.js +1 -1
  71. package/www/3d-editor/js/Sidebar.Geometry.Modifiers.js +1 -1
  72. package/www/3d-editor/js/Sidebar.Geometry.OctahedronGeometry.js +1 -1
  73. package/www/3d-editor/js/Sidebar.Geometry.PlaneGeometry.js +1 -1
  74. package/www/3d-editor/js/Sidebar.Geometry.RingGeometry.js +1 -1
  75. package/www/3d-editor/js/Sidebar.Geometry.ShapeGeometry.js +1 -1
  76. package/www/3d-editor/js/Sidebar.Geometry.SphereGeometry.js +1 -1
  77. package/www/3d-editor/js/Sidebar.Geometry.TetrahedronGeometry.js +1 -1
  78. package/www/3d-editor/js/Sidebar.Geometry.TextGeometry.js +1 -1
  79. package/www/3d-editor/js/Sidebar.Geometry.TorusGeometry.js +1 -1
  80. package/www/3d-editor/js/Sidebar.Geometry.TorusKnotGeometry.js +1 -1
  81. package/www/3d-editor/js/Sidebar.Geometry.TubeGeometry.js +1 -1
  82. package/www/3d-editor/js/Sidebar.Geometry.js +1 -1
  83. package/www/3d-editor/js/Sidebar.Material.BooleanProperty.js +1 -1
  84. package/www/3d-editor/js/Sidebar.Material.ColorProperty.js +1 -1
  85. package/www/3d-editor/js/Sidebar.Material.ConstantProperty.js +1 -1
  86. package/www/3d-editor/js/Sidebar.Material.MapProperty.js +1 -1
  87. package/www/3d-editor/js/Sidebar.Material.NumberProperty.js +1 -1
  88. package/www/3d-editor/js/Sidebar.Material.Program.js +1 -1
  89. package/www/3d-editor/js/Sidebar.Material.RangeValueProperty.js +1 -1
  90. package/www/3d-editor/js/Sidebar.Material.js +1 -1
  91. package/www/3d-editor/js/Sidebar.Object.js +1 -1
  92. package/www/3d-editor/js/Sidebar.Project.App.js +1 -1
  93. package/www/3d-editor/js/Sidebar.Project.Materials.js +1 -1
  94. package/www/3d-editor/js/Sidebar.Project.Renderer.js +1 -1
  95. package/www/3d-editor/js/Sidebar.Project.Resources.js +1 -1
  96. package/www/3d-editor/js/Sidebar.Project.js +1 -1
  97. package/www/3d-editor/js/Sidebar.Properties.js +1 -1
  98. package/www/3d-editor/js/Sidebar.Scene.js +1 -1
  99. package/www/3d-editor/js/Sidebar.Script.js +1 -1
  100. package/www/3d-editor/js/Sidebar.Settings.History.js +1 -1
  101. package/www/3d-editor/js/Sidebar.Settings.Shortcuts.js +1 -1
  102. package/www/3d-editor/js/Sidebar.Settings.js +1 -1
  103. package/www/3d-editor/js/Sidebar.js +1 -1
  104. package/www/3d-editor/js/Storage.js +1 -1
  105. package/www/3d-editor/js/Strings.js +1 -1
  106. package/www/3d-editor/js/TextureParametersDialog.js +1 -1
  107. package/www/3d-editor/js/Toolbar.js +1 -1
  108. package/www/3d-editor/js/Viewport.Controls.js +1 -1
  109. package/www/3d-editor/js/Viewport.Info.js +1 -1
  110. package/www/3d-editor/js/Viewport.Pathtracer.js +1 -1
  111. package/www/3d-editor/js/Viewport.ViewHelper.js +1 -1
  112. package/www/3d-editor/js/Viewport.XR.js +1 -1
  113. package/www/3d-editor/js/Viewport.js +1 -1
  114. package/www/3d-editor/js/commands/AddObjectCommand.js +1 -1
  115. package/www/3d-editor/js/commands/AddScriptCommand.js +1 -1
  116. package/www/3d-editor/js/commands/Commands.js +1 -1
  117. package/www/3d-editor/js/commands/MoveObjectCommand.js +1 -1
  118. package/www/3d-editor/js/commands/MultiCmdsCommand.js +1 -1
  119. package/www/3d-editor/js/commands/RemoveObjectCommand.js +1 -1
  120. package/www/3d-editor/js/commands/RemoveScriptCommand.js +1 -1
  121. package/www/3d-editor/js/commands/SetColorCommand.js +1 -1
  122. package/www/3d-editor/js/commands/SetGeometryCommand.js +1 -1
  123. package/www/3d-editor/js/commands/SetGeometryValueCommand.js +1 -1
  124. package/www/3d-editor/js/commands/SetMaterialColorCommand.js +1 -1
  125. package/www/3d-editor/js/commands/SetMaterialCommand.js +1 -1
  126. package/www/3d-editor/js/commands/SetMaterialMapCommand.js +1 -1
  127. package/www/3d-editor/js/commands/SetMaterialRangeCommand.js +1 -1
  128. package/www/3d-editor/js/commands/SetMaterialValueCommand.js +1 -1
  129. package/www/3d-editor/js/commands/SetMaterialVectorCommand.js +1 -1
  130. package/www/3d-editor/js/commands/SetPositionCommand.js +1 -1
  131. package/www/3d-editor/js/commands/SetRotationCommand.js +1 -1
  132. package/www/3d-editor/js/commands/SetScaleCommand.js +1 -1
  133. package/www/3d-editor/js/commands/SetSceneCommand.js +1 -1
  134. package/www/3d-editor/js/commands/SetScriptValueCommand.js +1 -1
  135. package/www/3d-editor/js/commands/SetShadowValueCommand.js +1 -1
  136. package/www/3d-editor/js/commands/SetTextureParametersCommand.js +1 -1
  137. package/www/3d-editor/js/commands/SetUuidCommand.js +1 -1
  138. package/www/3d-editor/js/commands/SetValueCommand.js +1 -1
  139. package/www/dist/frontend/bundle/HistoryDirectives-7WFU2ZTM.js +1 -0
  140. package/www/dist/frontend/bundle/ReportViewer-WPWE2MW6.js +197 -0
  141. package/www/dist/frontend/bundle/Sha256-BSH7CIPW.js +1 -1
  142. package/www/dist/frontend/bundle/chunk-CVWTTI5E.js +1 -0
  143. package/www/dist/frontend/bundle/chunk-KVPT4J7H.js +1 -1
  144. package/www/dist/frontend/bundle/chunk-NPDVKA2F.js +21 -0
  145. package/www/dist/frontend/bundle/common/IobrokerHandler.js +1 -1
  146. package/www/dist/frontend/bundle/runtime/CustomControls.js +1 -1
  147. package/www/dist/frontend/bundle/runtime/ScreenViewer.js +1 -1
  148. package/www/dist/frontend/bundle/runtime/controls.js +4 -4
  149. package/www/dist/frontend/bundle/runtime/init.js +3 -3
  150. package/www/dist/frontend/common/BindingExpression.js +1 -1
  151. package/www/dist/frontend/common/BuiltinTranslations.js +1 -1
  152. package/www/dist/frontend/common/Common.globals.js +1 -1
  153. package/www/dist/frontend/common/ConfirmWrite.js +1 -0
  154. package/www/dist/frontend/common/EChartsOption.js +1 -1
  155. package/www/dist/frontend/common/HistoryDirective.js +1 -1
  156. package/www/dist/frontend/common/HistoryOptions.js +1 -1
  157. package/www/dist/frontend/common/HistoryQuery.js +1 -1
  158. package/www/dist/frontend/common/HistoryQueryViews.js +1 -1
  159. package/www/dist/frontend/common/IobrokerHandler.js +1 -1
  160. package/www/dist/frontend/common/PlantPaxResolve.js +1 -1
  161. package/www/dist/frontend/common/ReadQuality.js +1 -1
  162. package/www/dist/frontend/common/ReportAllowlist.js +1 -1
  163. package/www/dist/frontend/common/ReportSchedule.js +1 -1
  164. package/www/dist/frontend/common/ReportTheme.js +1 -1
  165. package/www/dist/frontend/common/Runtime.js +1 -1
  166. package/www/dist/frontend/common/Sha256.js +1 -1
  167. package/www/dist/frontend/common/StateDiagnostics.js +1 -1
  168. package/www/dist/frontend/common/StateQuality.js +1 -1
  169. package/www/dist/frontend/common/WriteFeedback.js +1 -1
  170. package/www/dist/frontend/config/CommandHandling.js +1 -1
  171. package/www/dist/frontend/config/ConfigureWebcomponentDesigner.js +1 -1
  172. package/www/dist/frontend/config/ConfirmWindow.js +1 -0
  173. package/www/dist/frontend/config/DockHelper.js +1 -1
  174. package/www/dist/frontend/config/HistoryQueryWindow.js +1 -1
  175. package/www/dist/frontend/config/IobrokerWebui3DDriveEngine.js +1 -1
  176. package/www/dist/frontend/config/IobrokerWebui3DScreenEditor.js +3 -3
  177. package/www/dist/frontend/config/IobrokerWebui3DScreenPropertiesPanel.js +3 -3
  178. package/www/dist/frontend/config/IobrokerWebui3DScreenViewer.js +3 -3
  179. package/www/dist/frontend/config/IobrokerWebuiAppShell.js +8 -4
  180. package/www/dist/frontend/config/IobrokerWebuiBindingsEditor.js +1 -1
  181. package/www/dist/frontend/config/IobrokerWebuiConfirmationWrapper.js +2 -2
  182. package/www/dist/frontend/config/IobrokerWebuiControlPropertiesEditor.js +3 -3
  183. package/www/dist/frontend/config/IobrokerWebuiDynamicPropsEditor.js +1 -1
  184. package/www/dist/frontend/config/IobrokerWebuiEventAssignment.js +1 -1
  185. package/www/dist/frontend/config/IobrokerWebuiIconsView.js +3 -3
  186. package/www/dist/frontend/config/IobrokerWebuiMonacoEditor.js +2 -2
  187. package/www/dist/frontend/config/IobrokerWebuiPlantPaxTypesEditor.js +1 -1
  188. package/www/dist/frontend/config/IobrokerWebuiPropertyGrid.js +1 -1
  189. package/www/dist/frontend/config/IobrokerWebuiScreenEditor.js +1 -1
  190. package/www/dist/frontend/config/IobrokerWebuiScreensView.js +3 -3
  191. package/www/dist/frontend/config/IobrokerWebuiSecurityEditor.js +1 -1
  192. package/www/dist/frontend/config/IobrokerWebuiSignalPropertyEditor.js +1 -1
  193. package/www/dist/frontend/config/IobrokerWebuiSolutionExplorer.js +3 -3
  194. package/www/dist/frontend/config/IobrokerWebuiTranslationEditor.js +1 -1
  195. package/www/dist/frontend/config/IobrokerWebuiWidgetGallery.js +3 -3
  196. package/www/dist/frontend/config/RightDockStrip.js +1 -1
  197. package/www/dist/frontend/config/UprightOverlays.js +1 -1
  198. package/www/dist/frontend/helper/DialogHelper.js +3 -3
  199. package/www/dist/frontend/helper/EditorOfDesignItem.js +1 -1
  200. package/www/dist/frontend/helper/EsprimaHelper.js +1 -1
  201. package/www/dist/frontend/helper/Helper.js +1 -1
  202. package/www/dist/frontend/helper/LayoutHelper.js +1 -1
  203. package/www/dist/frontend/helper/XmlHelper.js +1 -1
  204. package/www/dist/frontend/helper/ZipHelper.js +1 -1
  205. package/www/dist/frontend/runtime/AnimationService.js +1 -1
  206. package/www/dist/frontend/runtime/CustomControls.js +1 -1
  207. package/www/dist/frontend/runtime/DynamicElementProperties.js +1 -1
  208. package/www/dist/frontend/runtime/EChart.js +1 -1
  209. package/www/dist/frontend/runtime/HabPanelLikeMenu.js +2 -2
  210. package/www/dist/frontend/runtime/HistoryDirectives.js +1 -1
  211. package/www/dist/frontend/runtime/NavigationShell.js +1 -1
  212. package/www/dist/frontend/runtime/ReportViewer.js +3 -3
  213. package/www/dist/frontend/runtime/RuntimeTheme.js +1 -1
  214. package/www/dist/frontend/runtime/ScreenViewer.js +2 -2
  215. package/www/dist/frontend/runtime/TranslateableText.js +2 -2
  216. package/www/dist/frontend/runtime/VisibilityService.js +1 -1
  217. package/www/dist/frontend/runtime/controls.js +1 -1
  218. package/www/dist/frontend/runtime/init.js +1 -1
  219. package/www/dist/frontend/scripting/IobrokerWebuiScriptSystem.js +1 -1
  220. package/www/dist/frontend/scripting/blockly/OpenScreen.js +1 -1
  221. package/www/dist/frontend/scripting/blockly/webuiBlocklyToolbox.js +1 -1
  222. package/www/dist/frontend/services/DynamicPropertiesHelper.js +1 -1
  223. package/www/dist/frontend/services/IobrokerWebuiBindableLocalObjectsService.js +1 -1
  224. package/www/dist/frontend/services/IobrokerWebuiBindableObjectDragDropService.js +1 -1
  225. package/www/dist/frontend/services/IobrokerWebuiBindableObjectsForPropertiesService.js +1 -1
  226. package/www/dist/frontend/services/IobrokerWebuiBindableObjectsService.js +1 -1
  227. package/www/dist/frontend/services/IobrokerWebuiConfigButtonProvider.js +1 -1
  228. package/www/dist/frontend/services/IobrokerWebuiCopyPasteService.js +1 -1
  229. package/www/dist/frontend/services/IobrokerWebuiCustomControlEventsService.js +1 -1
  230. package/www/dist/frontend/services/IobrokerWebuiCustomElementContextMenu.js +1 -1
  231. package/www/dist/frontend/services/IobrokerWebuiDemoProviderService.js +1 -1
  232. package/www/dist/frontend/services/IobrokerWebuiDynamicPropertiesService.js +1 -1
  233. package/www/dist/frontend/services/IobrokerWebuiEChartPropertiesService.js +1 -1
  234. package/www/dist/frontend/services/IobrokerWebuiEventsService.js +1 -1
  235. package/www/dist/frontend/services/IobrokerWebuiExternalDragDropService.js +1 -1
  236. package/www/dist/frontend/services/IobrokerWebuiLitPropertiesService.js +1 -1
  237. package/www/dist/frontend/services/IobrokerWebuiModelCommandService.js +1 -1
  238. package/www/dist/frontend/services/IobrokerWebuiPropertiesService.js +1 -1
  239. package/www/dist/frontend/services/IobrokerWebuiPropertyGroupsService.js +1 -1
  240. package/www/dist/frontend/services/IobrokerWebuiRefactorService.js +1 -1
  241. package/www/dist/frontend/services/IobrokerWebuiReportContextMenu.js +1 -1
  242. package/www/dist/frontend/services/IobrokerWebuiScreenContextMenu.js +1 -1
  243. package/www/dist/frontend/services/IobrokerWebuiSpecialPropertiesService.js +1 -1
  244. package/www/dist/frontend/services/IobrokerWebuiSpectrumEditorService.js +1 -1
  245. package/www/dist/frontend/services/IobrokerWebuiVisibilityPropertiesService.js +1 -1
  246. package/www/dist/frontend/services/LayoutComponentsPropertiesService.js +1 -1
  247. package/www/dist/frontend/widgets/OrthoFlowLineTool.js +1 -1
  248. package/www/dist/frontend/widgets/ReportToolbox.js +3 -3
  249. package/www/dist/frontend/widgets/customElementsObserver.js +1 -1
  250. package/www/dist/frontend/widgets/importWidgetFiles.js +1 -1
  251. package/www/dist/frontend/widgets/importWidgetFilesRuntime.js +1 -1
  252. package/www/dist/frontend/widgets/layout-components.js +1 -1
  253. package/www/dist/frontend/widgets/layout-placement-services.js +1 -1
  254. package/www/dist/frontend/widgets/testElement.js +1 -1
  255. package/www/dist/frontend/bundle/HistoryDirectives-Z55QL2UA.js +0 -1
  256. package/www/dist/frontend/bundle/ReportViewer-SHCN5B55.js +0 -197
  257. package/www/dist/frontend/bundle/chunk-AIRLZ2JA.js +0 -1
  258. package/www/dist/frontend/bundle/chunk-KLM273ZH.js +0 -21
package/README.md CHANGED
@@ -1,1924 +1,1948 @@
1
- # ioBroker.mywebui
2
-
3
- ![Number of Installations](https://iobroker.live/badges/mywebui-installed.svg)
4
- ![Stable version](https://iobroker.live/badges/mywebui-stable.svg)
5
- [![NPM version](https://img.shields.io/npm/v/iobroker.mywebui.svg)](https://www.npmjs.com/package/iobroker.mywebui)
6
- [![Downloads](https://img.shields.io/npm/dm/iobroker.mywebui.svg)](https://www.npmjs.com/package/iobroker.mywebui)
7
-
8
- [![NPM](https://nodei.co/npm/iobroker.mywebui.png?downloads=true)](https://nodei.co/npm/iobroker.mywebui/)
9
-
10
- **Custom edited mywebui adapter by gokturk413** - Enhanced version with additional features and optimizations.
11
-
12
- > **⚠️ IMPORTANT: This adapter requires a valid license key to operate.**
13
- > This is a hardware-bound licensed version. Contact **gokturk413** for licensing information.
14
-
15
- mywebui for ioBroker
16
-
17
- ![image](https://raw.githubusercontent.com/iobroker-community-adapters/ioBroker.mywebui/master/screenshot.png)
18
-
19
- ## Documentation
20
-
21
- Authoring guides — building screens, binding live data, writing your own
22
- controls — live in **[docs/README.md](docs/README.md)**. Start with
23
- [Getting started](docs/getting-started.md), then
24
- [Bindings](docs/bindings.md).
25
-
26
- ## Description
27
-
28
- This is a complete visualization system for ioBroker.
29
-
30
- It includes features like:
31
-
32
- - simple scripting language
33
- - binding to ioBroker objects including converters & javascript expressions
34
- - pasting of images from clipboard
35
- - drag&drop of external images
36
- - drag&drop of ioBroker objects to automaticy create bindings
37
- - drag&drop of ioBroker objects to Properties to create Bindings to them
38
- - relative signal paths to ioBroker objects in screens (the full path can be handed over from outside into the screen)
39
- - split view editing of layout and html code
40
- - global stylesheet support
41
- - usage of npm packages containing webcomponents
42
- - screens inside of screens
43
- - use all icon packages from ioBroker
44
- - use charts from ioBroker
45
- - use combined signals object id's e.g. "mywebui.0.test3.{mywebui.0.test3.select}" -> this will use the value from mywebui.0.test3.select for the signal name
46
-
47
- There is more information about specific topics in the [wiki](https://github.com/iobroker-community-adapters/ioBroker.mywebui/wiki) (the German section has a few more articles than the English one).
48
-
49
- ## Installation
50
-
51
- ### Quick Install
52
-
53
- ```bash
54
- iobroker install gokturk413/iobroker.mywebui
55
- ```
56
-
57
- ### Dependencies
58
-
59
- - You need the Web Adapter installed. It works with the following settings: ![image](https://raw.githubusercontent.com/iobroker-community-adapters/ioBroker.mywebui/master/web.png)
60
-
61
- ### License Setup
62
-
63
- This adapter requires a license key to operate. After installation:
64
-
65
- 1. **First Start** - The adapter will fail (this is normal). Check logs for your Hardware ID:
66
- ```bash
67
- iobroker logs mywebui --lines 50
68
- ```
69
-
70
- 2. **Configure License** - Open Admin Panel → Instances → mywebui → Settings
71
- - Enter the license key provided by gokturk413
72
- - Save and restart
73
-
74
- 3. **Auto-Registration** - Your hardware will be automatically registered on first successful start
75
-
76
- For detailed setup instructions, see [LICENSE_SETUP_PUBLIC.md](./LICENSE_SETUP_PUBLIC.md)
77
-
78
- **Note:** This is a hardware-bound license. The adapter will only work on registered hardware. Contact **gokturk413** for licensing.
79
-
80
- **How the machine is recognised.** The Hardware ID comes from the SMBIOS system UUID and the OS machine id: Windows MachineGuid, `/etc/machine-id` on Linux. USB devices, monitors and network adapters do not change it.
81
-
82
- The ID is read again at every licence check, so a VM cloned or moved while it runs is noticed. On Windows it is read straight from the firmware table and the registry, with no helper process. If one of the IDs cannot be read for a moment, its last value is used for up to 24 hours, and a passing hiccup never changes the identity.
83
-
84
- If the SMBIOS UUID stays unreadable, the licence enters a grace period (`identity-unreadable`) while the key still lists this machine. Editing stays possible during grace; the licence becomes *restricted* only when grace runs out.
85
-
86
- ### 🔧 SCADA Utility Functions (Auto-Installed)
87
-
88
- This adapter includes powerful SCADA utility functions for value formatting, unit conversions, and more.
89
-
90
- **Automatic Installation:** SCADA functions are automatically installed when you install this adapter via npm or GitHub. No manual setup required!
91
-
92
- The setup runs automatically during `npm install` (postinstall hook) and copies utility files to your ioBroker data directory.
93
-
94
- **Manual Setup (if needed):**
95
- ```bash
96
- npm run setup-scada
97
- ```
98
-
99
- For detailed usage instructions, see [SCADA_SETUP.md](./SCADA_SETUP.md)
100
-
101
- **Features:**
102
- - Value formatting with decimals, limits, scaling
103
- - Temperature, pressure, flow conversions
104
- - Linear scaling for analog signals (4-20mA, 0-10V)
105
- - Alarm checking with color coding
106
- - Statistical functions (average, moving average)
107
- - Time formatting and deadband/hysteresis functions
108
- - Global access in all Custom Controls and Formulas
109
-
110
- ---
111
-
112
- ## Custom Edition Features (gokturk413)
113
-
114
- This custom edition extends the original mywebui with a SCADA‑oriented feature set. The
115
- items below are the major additions over upstream.
116
-
117
- ### 🧩 Multi‑project support
118
- - Several independent projects in one adapter, each fully self‑contained under
119
- `mywebui.0.projects/<name>/{data,widgets}` (screens, 3D screens, custom controls,
120
- global style/script, installed npm widgets).
121
- - Project selector in the designer toolbar with **create / rename / delete / export /
122
- import** per project. The runtime opens a project via `runtime.html?project=<name>`
123
- (parameter‑less `runtime.html` always shows `default`, kiosk‑safe).
124
-
125
- ### 🟦 3D Editor (Three.js)
126
- - A full 3D screen editor and 3D custom controls alongside the classic 2D designer:
127
- `3D Screens` and `3D Custom Controls` (nested under `Controls`).
128
- - Scene editing with assets, lights, camera, grid, signal bindings and drives; rendered
129
- in the runtime via the embedded 3D viewer.
130
-
131
- ### 📦 Global (platform‑default) custom controls
132
- - A library of project‑independent default controls (2D + a sample 3D control) that ship
133
- with the platform and are seeded on install into `mywebui.0.data/global/`.
134
- - Editable, usable in every project's screens, browsable under the `Global` tree node
135
- (`CustomControls`, `3D Custom Controls`). Project controls with the same name take
136
- precedence over a global one.
137
-
138
- ### 🔐 Group‑based access control (Screen Accessibility)
139
- Server‑enforced (the adapter resolves ioBroker group membership from the DB — the
140
- frontend is not trusted), runtime‑gated visualization access:
141
- - **Runtime (read):** *blacklist* model — ticking a group **blocks** it from a screen at
142
- runtime; unticked groups are allowed; nothing ticked = open to all. Per‑screen
143
- (overrides global) **and** a project‑wide global default. When blocked, the screen shows
144
- an **“Access Denied” message** or **redirects** to another screen (configurable).
145
- - **Editor (write):** the designer is **administrator‑group only**; the built‑in `admin`
146
- user always has editor access and can additionally forbid specific administrator users
147
- from the editor. The built‑in `admin` user can be blocked at *runtime* but never from
148
- the editor.
149
- - Two toolbar panels: **🔐 Permissions** (project‑level groups + editor‑user control) and
150
- **🗂️ Screen Access** (per‑screen). Both mirror the Settings‑tab **Screen Accessibility
151
- Control** and sync on save.
152
- - ioBroker's own file/object ACLs are left at their defaults — access control is purely
153
- app‑level so it does not conflict with the platform's permission system.
154
-
155
- ### 🎨 Theming & branding
156
- - Light/dark/other theme adaptation via `color-scheme` + `light-dark()` + `--ui-*`
157
- design tokens across the whole designer.
158
- - Neon‑glassmorphic solution explorer, branded tab title (**MYWEBUI DESIGNER** /
159
- **MYWEBUI**) and custom favicon.
160
-
161
- ### 🔒 License protection & code obfuscation
162
- - Hardware‑bound license validation (Ed25519‑signed, validated by the obfuscated backend;
163
- the frontend shows a license overlay if invalid).
164
- - **Hybrid build model:** you develop with **readable source** (git, local); the published
165
- npm package ships **obfuscated** backend + own frontend (vendored libraries untouched).
166
- Obfuscation runs in the CI publish workflow on a disposable runner — your source is never
167
- obfuscated in place. License parts are obfuscated locally (their secret keys never enter
168
- CI). Source maps and readable license source are excluded from the npm package.
169
-
170
- ### 🔗 Bindings (signals, states, objects, properties)
171
- Bindings connect an element's attribute/property/content to a data source. In the
172
- designer click the **□ button** next to a property in the property grid to open the
173
- binding editor. A binding is written into the HTML as a `bind-…` attribute.
174
-
175
- **Binding targets** (what is bound on the element):
176
- | Attribute | Effect |
177
- |---|---|
178
- | `bind-prop:<property>` | a DOM/web‑component property (e.g. `bind-prop:hidden`, `bind-prop:disabled`, `bind-prop:value`, `bind-prop:text-content`, `bind-prop:inner-html`) |
179
- | `bind-attr:<attribute>` | an HTML attribute |
180
- | `bind-content:text` / `bind-content:html` | the element's text / HTML content |
181
- | `bind-css:<class>` | toggles a CSS class |
182
- | `bind-cssvar:<--var>` | sets a CSS custom property |
183
- | `bind-style:<prop>` | a single inline style property |
184
-
185
- **Source forms** (where the value comes from — the right‑hand side of the binding):
186
- | Form | Meaning |
187
- |---|---|
188
- | `myAdapter.0.device.STATE` | plain object id → the state **value** (`state.val`); two‑way for inputs |
189
- | `state:myAdapter.0.device.STATE` | the **whole state** object → use `.val`, `.ack`, `.ts`, `.lc`, `.q` (e.g. show quality/timestamp) |
190
- | `object:myAdapter.0.device.STATE` | the ioBroker **object** (`common`, `native`, …) e.g. unit/min/max/role |
191
- | `??propertyName` | a **screen/control property** (instance property declared on the screen or custom control) |
192
- | `.suffix` | **relative** id — prefixed at runtime with the host control's `relativeSignalsPath` (reusable controls) |
193
- | `local_<name>` | a **local** (browser‑only) state, not persisted to ioBroker |
194
-
195
- Special read‑only values `width` / `height` expose the element's live size. Conversions,
196
- format strings and a JavaScript multiplex expression are available in the binding editor
197
- for value transformation.
198
-
199
- ### 🧬 Dynamic properties
200
- Any element on a screen — including installed **npm / Lit package widgets** — can get extra
201
- per‑instance properties without changing the widget's code:
202
- - Select an element → **`dynamic` tab** in the property grid → add/remove a property
203
- (name, type `string|number|boolean|color|enum|signal`, default, optional enum values).
204
- - Stored on the element as the `dynamic-property-defs` attribute (a JSON array).
205
- - At runtime real accessors are created (with `…-changed` events), so dynamic properties
206
- are fully **bindable** (two‑way) and usable from scripts just like native ones.
207
- - Lit/package widgets may also expose webui‑specific editors by declaring a
208
- `static webuiProperties = { name: { type:'signal'|'color'|'screen'|'enum', values? } }`.
209
-
210
- ### Notable fixes
211
- - **OAuth token‑refresh under a subpath:** the socket client refreshed the auth token via a
212
- relative `./oauth/token`, which resolved to `/mywebui/oauth/token` (404) when served under
213
- `/mywebui/` and forced periodic full‑page reloads. It now uses the absolute `/oauth/token`
214
- endpoint, so the runtime/designer no longer auto‑refresh on token expiry.
215
-
216
- ## Concepts
217
-
218
- ### Description
219
-
220
- The Designer uses Web Components, so the HTML you design is inside of a Shadowroot of a Webcomponent. This means, you cannot style <body> or <html> inside of the Stylesheet. To style the outer Layout, use the ":host" selector.
221
- This also means, you cannot use "on..." eventhandlers. Use the "@..." event assignment.
222
-
223
- ### Custom Controls in mywebui
224
-
225
- You can create your own reusable CustomControls in mywebui, each of which can have its own Javascript, Properties and a template.
226
-
227
- You can use Double-Bracket Syntax and Double-Curly-Bracket Syntax of the "BaseCustomWebcomponent" to create bindings from the Template to the properties defined in the Designer. Curylbrackets create two way Bindings.
228
- If you use the Bindings Dialog, you can Bind to a Property with ??Propertyname and to IoBroker Object in the Property via ?Propertyname.
229
- In Scripts you can also write to Signals defined in Custom Properties.
230
-
231
- You can include Javascript in your CustomControl or Screen.
232
- In addition, you can export a function `init(instance)` wich will be called when your CustomControl will be instantiated.
233
- Finally, `connected()` and `disconnected()` functions can be defined to be called when ...
234
-
235
- ## Sponsoring
236
-
237
- If you want to help the development, sponsor this project at https://github.com/sponsors/jogibear9988
238
-
239
- ## Developing
240
- * Install Repository as Adapter in IOBroker
241
- * Download the Repository to an extra "dev" directory, do not develop inside the ioBroker Node_modules directory.
242
- * Do the following steps inside of the "dev" dirctory.
243
-
244
- * Install dependencies
245
- ```
246
- $ npm install
247
- ```
248
-
249
- * Compile Typescript after doing changes (or press Ctrl + Shift + B in VsCode and select "tsc watch")
250
- ```
251
- $ npm run tsc
252
- ```
253
-
254
- * Adjust 'config.js' to match you ip-adress and port for your iobroker
255
- (The config.js in the repository root will be replaced with the one in '/config' when running 'npm build')
256
- ```
257
- window.iobrokerHost = '192.168.1.2';
258
- window.iobrokerPort = '8082';
259
- window.iobrokerSocketScriptUrl = 'http://' + window.iobrokerHost + ':' + window.iobrokerPort + '/lib/js/socket.io.js';
260
- ```
261
-
262
- * Run the app in a local server
263
- ```
264
- $ npm start
265
- ```
266
-
267
- * Navigate Chrome to [localhost:8000]() to see the app.
268
-
269
- ### More about Development
270
-
271
- - Run
272
- ```
273
- $ npm run reflection
274
- ```
275
- to recreate reflection files for Scripting wich are used for the property grid
276
-
277
- - Run
278
- ```
279
- $ npm run build
280
- ```
281
- to copy compiled files and node_modules to www folder so adapter is installable via github
282
-
283
- - Run
284
- ```
285
- $ npm run release
286
- $ npm publish
287
- ```
288
- to create correct release commit for iobroker, Be carefull this also pushes to git repo.
289
- Be sure to edit "CHANGELOG.md" before, the text in "## **WORK IN PROGRESS**" in README.Md will be used for version info
290
-
291
- ## Info about the Adapter.
292
-
293
- The Adapter is based on the following Designer component:
294
- https://github.com/node-projects/web-component-designer
295
-
296
- You need to create a screen "start", this is the first one called when you open runtime.html,
297
- but you can change this via query parameter:
298
- runtime.html?screenName=screen2
299
-
300
- ## Changelog
301
- <!--
302
- Placeholder for next versions:
303
- ### __WORK IN PROGRESS__
304
- -->
305
- ### 1.171.0 (2026-10-01)
306
- * (gokturk413) feat(translations): Translations dock scope "Built-in (runtime)" — the runtime's own texts with their 5 built-in languages as placeholders, reword per language for the project, ↺ back to built-in; a project text in one language no longer replaces the built-in text of the other languages
307
-
308
- ### 1.170.0 (2026-10-01)
309
- * (gokturk413) feat(runtime): state details panel for administrators (click a badge / Alt+click a control: every bound state with read and write status); runtime texts (write feedback, read quality, quality codes, the panel) in az/en/ru/de/tr, overridable by project translations
310
-
311
- ### 1.169.0 (2026-10-01)
312
- * (gokturk413) feat(navigation): Start as — the menu opens full, icons only, hidden, or as this browser left it last time
313
-
314
- ### 1.168.2 (2026-10-01)
315
- * (gokturk413) fix(navigation): with the sidebar on the right the ☰ sits in the app bar's right corner, and the app bar keeps room for it there
316
-
317
- ### 1.168.1 (2026-10-01)
318
- * (gokturk413) fix(designer): Settings splits Navigation into "this screen" and "all screens" (position, layout, theme… are global); a rebuilt sidebar lets go of its listeners and badge subscriptions
319
-
320
- ### 1.168.0 (2026-10-01)
321
- * (gokturk413) feat(navigation): position left/right/top/bottom (top/bottom as a bar with drop-down groups), layout push/overlay, a badge per entry from a state (summed on groups); fix: a control updated live no longer throws in disconnectedCallback
322
-
323
- ### 1.167.1 (2026-10-01)
324
- * (gokturk413) fix(designer): Settings → Navigation → Groups follows Group items at once
325
-
326
- ### 1.167.0 (2026-10-01)
327
- * (gokturk413) feat(navigation): menu groups get their own title (translatable), icon and order (Settings → Navigation → Groups); with icons only, a group opens its entries in a panel beside the sidebar; read-quality and write-feedback layers sit under the navigation
328
-
329
- ### 1.166.0 (2026-10-01)
330
- * (gokturk413) feat(navigation): menu groups by folder or by a group per screen (open/close, nested), SVG menu icons in the theme colour, the screen moves and scales with the sidebar (easing, no jump)
331
-
332
- ### 1.165.1 (2026-10-01)
333
- * (gokturk413) fix(runtime): read quality frames the whole control (content bigger than the host) and watches custom-control properties of type signal (input_with_button); scada_point_panel and ReportSelector no longer overflow their own box
334
-
335
- ### 1.165.0 (2026-10-01)
336
- * (gokturk413) feat(runtime): read quality — every bound control shows when its value cannot be trusted (quality code, driver down, stale, missing); write feedback names the quality code and no longer counts substitute values as errors; docs/status-indicators.md (en + az)
337
-
338
- ### 1.164.0 (2026-10-01)
339
- * (gokturk413) feat(designer): layout toolbar, upright overlays on rotated controls; incremental npm upload
340
-
341
- ### 1.163.1 (2026-09-30)
342
- * (gokturk413) fix(runtime): pending write drawn at once; @click="[[…]]" on a screen threw
343
-
344
- ### 1.163.0 (2026-09-30)
345
- * (gokturk413) feat(runtime): write feedback — every operator write shows whether the driver confirmed it
346
-
347
- ### 1.162.8 (2026-09-30)
348
- * (gokturk413) fix(designer): the right tool-window strip lost its names on a short window
349
-
350
- ### 1.162.7 (2026-09-30)
351
- * (gokturk413) fix(designer): the obfuscated release designer did not load — ReportToolbox
352
-
353
- ### 1.162.6 (2026-09-30)
354
- * (gokturk413) fix(controls): valve_faceplate buttons carried an empty "bind-attr:"
355
-
356
- ### 1.162.5 (2026-09-30)
357
- * (gokturk413) fix(licence): a machine id that stops answering is no longer a tamper
358
-
359
- ### 1.162.4 (2026-09-30)
360
- * (gokturk413) fix(designer): report canvas styles, Report toolbox click, translation key actions
361
-
362
- ### 1.162.3 (2026-09-30)
363
- * (gokturk413) fix(controls): property defaults set before the first binding pass
364
-
365
- ### 1.162.2 (2026-09-30)
366
- * (gokturk413) fix(runtime): two-way bindings write numbers to number states; directive test heading
367
-
368
- ### 1.162.1 (2026-09-30)
369
- * (gokturk413) perf(runtime): the navigation menu appears with the screen
370
-
371
- ### 1.162.0 (2026-09-29)
372
- * (gokturk413) feat(charts): `<iobroker-webui-echart>` — live ECharts in viewer and designer, the same chart in HTML/PDF
373
-
374
- ### 1.161.0 (2026-09-29)
375
- * (gokturk413) feat(designer): History Query builder + Report toolbox; docs/reports.md
376
-
377
- ### 1.160.0 (2026-09-28)
378
- * (gokturk413) feat(reports): report theme, full web platform in the sandbox; app bar steady and responsive
379
-
380
- ### 1.159.0 (2026-09-28)
381
- * (gokturk413) fix(reports): pictures in generated reports — SVG/PNG in HTML and PDF
382
-
383
- ### 1.158.0 (2026-09-28)
384
- * (gokturk413) feat(reports): Output → Languages — one server file per language, {lang} in path or name
385
-
386
- ### 1.157.0 (2026-09-28)
387
- * (gokturk413) feat: engine in the fork; translations in reports; live toolbox; quiet connection monitor
388
-
389
- ### 1.156.0 (2026-09-28)
390
- * (gokturk413) fix(directives): every template directive tested in control, screen and report; 9 bugs fixed
391
-
392
- ### 1.155.0 (2026-09-27)
393
- * (gokturk413) feat(reports): template directives on screen and report pages; history options demo
394
-
395
- ### 1.154.0 (2026-09-27)
396
- * (gokturk413) feat(reports): reports rendered for a user, report scripts in the sandbox, history: directive
397
-
398
- ### 1.153.0 (2026-09-27)
399
- * (gokturk413) feat(reports): the fonts the author picks reach the PDF; toolbox rights set in the designer
400
-
401
- ### 1.152.0 (2026-09-27)
402
- * (gokturk413) feat(reports): history on the backend, five languages in PDF, the dialog's dates applied
403
-
404
- ### 1.151.0 (2026-09-27)
405
- * (gokturk413) feat(reports): PDF painted as the report looks — Takumi replaces pdfmake
406
-
407
- ### 1.150.0 (2026-09-27)
408
- * (gokturk413) feat(reports): live reports, range from states, reports embeddable in screens
409
-
410
- ### 1.149.0 (2026-09-27)
411
- * (gokturk413) fix(reports): print in colour; show the date boxes only for a custom range; icons in the toolbox
412
-
413
- ### 1.148.0 (2026-09-27)
414
- * (gokturk413) feat(reports): the browser's printed date, title, URL and page number are optional
415
-
416
- ### 1.147.0 (2026-09-27)
417
- * (gokturk413) fix(reports): a browser saves on the server through the trigger state, not sendTo
418
-
419
- ### 1.146.1 (2026-09-27)
420
- * (gokturk413) fix(reports): print the report alone, not the whole application
421
-
422
- ### 1.146.0 (2026-09-27)
423
- * (gokturk413) feat(reports): PDF and CSV output, a time range in the viewer, reports in the menu
424
-
425
- ### 1.145.0 (2026-09-26)
426
- * (gokturk413) feat(reports): a bound state starts a server run; theme the Report window
427
-
428
- ### 1.144.0 (2026-09-26)
429
- * (gokturk413) feat(reports): schedule + trigger (task 9), VS-style tool windows (task 10)
430
-
431
- ### 1.143.0 (2026-09-26)
432
- * (gokturk413) feat(reports): generate on the server, download in the browser (task 8)
433
-
434
- ### 1.142.0 (2026-09-26)
435
- * (gokturk413) feat(reports): run control scripts on a DOM inside the sandbox (task 6)
436
-
437
- ### 1.141.0 (2026-09-26)
438
- * (gokturk413) feat(designer): events on the screen / report root, in the Events panel
439
-
440
- ### 1.140.0 (2026-09-26)
441
- * (gokturk413) feat(reports): backend renderer, expression sandbox, report events, screen-only (task 5)
442
-
443
- ### 1.139.0 (2026-09-26)
444
- * (gokturk413) feat(reports): open a report in the browser, with the full screen chrome (task 4)
445
-
446
- ### 1.138.0 (2026-09-26)
447
- * (gokturk413) feat(reports): the page canvas — paper, rulers, bands and page breaks (task 3)
448
-
449
- ### 1.137.0 (2026-09-26)
450
- * (gokturk413) feat(reports): Reports in the solution tree, with its own icons (task 2)
451
-
452
- ### 1.136.1 (2026-09-26)
453
- * (gokturk413) fix(reports): a report keeps every screen setting; only its size comes from the page
454
-
455
- ### 1.136.0 (2026-09-26)
456
- * (gokturk413) feat(reports): the .report object type (task 1 of the report plan)
457
-
458
- ### 1.133.0 (2026-09-25)
459
- * (gokturk413) feat(licence): move mywebui to the scada-core state machine (RFC-005 L3)
460
- * (gokturk413) feat(licence): a host ledger per licence in every candidate directory
461
- * (gokturk413) fix(licence): a key no longer erases the trial history in the adapter's slot
462
- * (gokturk413) fix(licence): a stopped install no longer opens a usage-grace window
463
- * (gokturk413) fix(licence): do not log 'unlocked' for a stopped install
464
- * (gokturk413) feat(admin): explain the trial, the two hardware ids and the per-VM licence
465
-
466
- ### 1.132.0 (2026-09-15)
467
- * (gokturk413) fix(designer): Properties dock tabs wrap onto rows instead of truncating
468
- * (gokturk413) fix(ci): pin Rust to a newer stable broke both aarch64 cross-builds
469
-
470
- ### 1.130.0 (2026-08-04)
471
- * (gokturk413) fix(dist): the public release would have shipped a broken adapter — three ways
472
- * (gokturk413) fix(ci)!: the release workflow would have force-pushed over this repo's own history
473
- * (gokturk413) fix(ci): expect the triple names napi actually produces, and cross-check them
474
-
475
- ### 1.129.0 (2026-08-04)
476
- * (gokturk413) feat(native): main.js permission handlers call the engine
477
- * (gokturk413) fix(dist): ship the engine and its bridge; guard against an engine-less tarball
478
- * (gokturk413) feat(dist): allow-list staging script for the public artifact tree
479
- * (gokturk413) fix(dist): stop shipping scripts/ — it is the build process, not the product
480
- * (gokturk413) feat(dist): independent pre-push audit of the staged public tree
481
- * (gokturk413) fix(dist): stop publishing TypeScript sources and vendored package internals
482
- * (gokturk413) feat(ci): public release workflow — allow-list staging, pre-push audit, dry-run default
483
- * (gokturk413) fix(ci): deliver the cross-built engines into the package
484
- * (gokturk413) fix(ci): publish builds every engine itself, and demands all 8 before shipping
485
-
486
- ### 1.128.0 (2026-08-03)
487
- * (gokturk413) fix(license): gate every deploying command, not just two of them
488
- * (gokturk413) feat(native): group resolution + checkVisibility allow-list
489
- * (gokturk413) feat(native): screen ACL — write allow-rule, read blacklist, new/legacy arbitration
490
- * (gokturk413) fix(native): a non-string in a blocked list denies, matching the JS
491
- * (gokturk413) feat(native): PlantPAx write permission model (action codes + area levels)
492
- * (gokturk413) fix(native): an explicit null area level falls through to the '*' fallback
493
- * (gokturk413) fix(native): model JS falsiness — non-string codes and empty-string levels no longer fail open
494
- * (gokturk413) fix(native): prototype-inherited action keys no longer bypass the permission model
495
- * (gokturk413) feat(native): resolve_screen_access/visibility/sec_write napi entries + parity test
496
-
497
- ### 1.127.0 (2026-08-02)
498
- * (gokturk413) feat(license): surface tag usage + grace/violation state in the designer console
499
- * (gokturk413) fix(license): keep the grace high-water-mark alive when an audit fails
500
-
501
- ### 1.126.0 (2026-08-01)
502
- * (gokturk413) feat(native): run/cache the usage audit and enforce the locked verdict
503
-
504
- ### 1.125.0 (2026-08-01)
505
- * (gokturk413) feat: (deep-fidelity) — P_Gate faceplate rebuilt faithful to real .gfx single-page flow (Inputs→Gate Delay→On/Off Delay→Output); fixes faceplate numeric inputs never populating
506
- * (gokturk413) feat(native): scaffold mywebui_scada_engine crate with version()/ping()
507
- * (gokturk413) feat(native): engineBridge loader as the single engine import point
508
- * (gokturk413) feat(native): load mywebui_scada_engine in adapter main() and log its version
509
- * (gokturk413) feat(native): cross-platform hardware-id (whid2- machine-id/UUID/MachineGuid)
510
- * (gokturk413) feat(native): Ed25519 license verify + payload parse (embedded public key)
511
- * (gokturk413) feat(native): clock-tamper-resistant 30-day trial anchor (monotonic + HMAC + hwid-bound)
512
- * (gokturk413) feat(native): validate_license/hardware_id napi entry points + edition/trial resolution
513
- * (gokturk413) feat(native): main.js uses the engine for license/hardware-id; no-stop trial->free; delete JS validators
514
- * (gokturk413) fix(license): designer allows trial/free editions (was locking them out)
515
- * (gokturk413) fix(build): rebuild committed dist/backend from src-original (Phase 1) + drop orphan validator
516
- * (gokturk413) feat(native): bridge Effect protocol + pure demo handler
517
- * (gokturk413) feat(native): handle_demo napi export + JS effectApplier + mock-host B test
518
- * (gokturk413) feat(native): async host-callback PoC (napi ThreadsafeFunction + awaited JS Promise)
519
- * (gokturk413) feat(native): importmap scaffold — ImportmapBuilder + path helpers + embedded hacks
520
- * (gokturk413) fix(native): importmap uses posix pjoin (not native path join) for web-path parity
521
- * (gokturk413) feat(native): importmap add_to_importmap (exports/main/module resolution)
522
- * (gokturk413) fix(native): pjoin normalizes leading ./ like path.posix.join (once, not per call site)
523
- * (gokturk413) fix(native): add_to_importmap uses plain concat at JS:282/285/293 (not pjoin)
524
- * (gokturk413) feat(native): importmap load_dependency (recursive, deduped, native fs)
525
- * (gokturk413) feat(native): importmap parse_npm_package (custom-elements + esbuild bundle integration)
526
- * (gokturk413) feat(native): importmap build_importmap top-level + writes 5 loader files
527
- * (gokturk413) fix(native): serde_json preserve_order so generated importmap.js matches JS key order
528
- * (gokturk413) feat(native): create_importmap napi async wrapper + Node integration test
529
- * (gokturk413) feat(native): main.js uses engine.create_importmap; delete JS ImportmapCreator
530
- * (gokturk413) fix(native): live-parity fixes — bundle host must resolve a string; JS:86 error text
531
- * (gokturk413) fix(build): rebuild dist/backend after the port + correct the host-callback contract docs
532
- * (gokturk413) feat(native): upload walk + ignore list + progress throttling (pure, tested)
533
- * (gokturk413) feat(native): upload collect_existing_files_to_delete (DB-driven recursion)
534
- * (gokturk413) feat(native): upload erase/upload_internal/driver with effect logging
535
- * (gokturk413) fix(native): normalize source_dir in the upload driver (backslash paths skipped every file)
536
- * (gokturk413) feat(native): upload_widgets napi wrapper + Node integration test
537
- * (gokturk413) feat(native): main.js uses engine.upload_widgets; delete JS UploadHelper
538
- * (gokturk413) feat(native): tag extraction — distinct ioBroker state IDs from screens/controls
539
- * (gokturk413) feat(native): usage counting, limit checking and deterministic allowed-screen selection
540
- * (gokturk413) fix(native): dedupe project names by set, stabilize counted_tags order, document unchecked limits
541
- * (gokturk413) feat(native): 2-day grace anchor — HMAC-signed, hardware-bound, rollback-proof
542
- * (gokturk413) fix(native): saturating arithmetic in grace/trial anchors + explicit blob-persistence contract
543
- * (gokturk413) feat(native): audit_usage napi entry — usage, violations, locked verdict and grace state
544
- * (gokturk413) fix(native): corrupt licence falls back to free tier; degraded audits never unlock or clear the grace anchor
545
- * (gokturk413) fix(native): licence needs a positive marker; a hard lock only clears via a verified licence
546
- * (gokturk413) fix(native)!: audit_usage verifies the licence KEY itself, not a caller-supplied verdict
547
-
548
- ### 1.124.0 (2026-07-07)
549
- * (gokturk413) feat: (deep-fidelity) — P_Motor faceplate audited vs real .gfx: adds Stopped/NotRdy lamps, PermOK/NBPerm/Sim/MaintByp flags, Bypass+OvldNotify maint rows (all adapter-gated)
550
-
551
- ### 1.123.0 (2026-07-07)
552
- * (gokturk413) feat: (deep-fidelity) — PlantPAx-faithful SVG device symbols + adapter-data-gating
553
-
554
- ### 1.122.0 (2026-07-07)
555
- * (gokturk413) feat: (deep-fidelity) — P_AIn alarm-bar uses real Rockwell command-button PNGs (Cmd_AlmAck / Cmd_AlmAckAllReset / Cmd_Reset) instead of text buttons. Verified live: 3 real PNG command buttons
556
-
557
- ### 1.121.0 (2026-07-07)
558
- * (gokturk413) feat: (deep-fidelity) — alarm-row uses REAL Rockwell PNG icons (data-URI)
559
-
560
- ### 1.120.0 (2026-07-07)
561
- * (gokturk413) feat: (wave B) — +8 device types (P_ValveMO/ValveMP/nPos/Motor2Spd/Dose/HiLoSel/DBC/Logic) via data-driven _dev_faceplate + real AOI members extracted from L5X; typeToTag/slug/seeds. Generic-convention faceplates (deep .gfx fidelity to follow)
562
-
563
- ### 1.119.0 (2026-07-07)
564
- * (gokturk413) feat: (wave B start) — new types P_DIn + P_DOut (Discrete I/O)
565
-
566
- ### 1.118.0 (2026-07-07)
567
- * (gokturk413) feat: (wave A COMPLETE) — Valves/PIDE/Infra verified on real tab model + members
568
-
569
- ### 1.115.0 (2026-07-07)
570
- * (gokturk413) feat: (wave A) — Motors group (P_Motor/P_MotorRev/P_VSD): labeled Home/Maint/Alarm tabs + real members (Sts_Running, OCmd_Start...). Shared _dev_faceplate tab-strip now Home+labeled, positioning Valves/PIDE/Infra for Tasks 8-10.
571
-
572
- ### 1.114.4 (2026-07-07)
573
- * (gokturk413) feat: (wave A) — P_AIn Engineering (Advanced) matches the mockup: PV Source & Quality checkboxes + Substitute PV value + Filtering & Thresholds (Fail Hi/Lo, PV decimals) all with real member labels; _cfg_row helper + cfgmem styling; pvDecPlcs seed/meta
574
-
575
- ### 1.114.3 (2026-07-07)
576
- * (gokturk413) feat: (wave A) — alarm-row shows real member labels (HiHi.Alm · HiHi.Ack) + severity-tier colours (HiHi/LoLo/Fail red, Hi/Lo amber) matching the mockup
577
-
578
- ### 1.114.2 (2026-07-06)
579
- * (gokturk413) feat: (wave A) — P_AIn real device-state flags: Sim (Inp_Sim), Maint Byp (Sts_MaintByp), Substitute, Input Fail on Home tab; seed+meta for sim/simPvSet/maintByp/oos
580
-
581
- ### 1.114.1 (2026-07-06)
582
- * (gokturk413) fix: (wave A) — P_AIn faceplate visual fidelity to mockup: labeled tabs (Home/Maint/Diag/Alarm/Trend), description line, Range/Substitute rows, clean card styling (header/tab-underline/kv-rows/flag-pills)
583
-
584
- ### 1.114.0 (2026-07-06)
585
- * (gokturk413) feat: (wave A) — P_AIn symbol colours by threshold-status (Sts_*) to match the MAI + alarm objects; unacked badge tracks real alarm objects. P_AIn REFERENCE COMPLETE (acceptance gate passed vs live P_AIn_01)
586
-
587
- ### 1.113.0 (2026-07-06)
588
- * (gokturk413) feat: (wave A) — P_AIn faceplate rebuilt to real model: Home tab (vertical MAI + PV block + status-flags), Alarm tab composes alarm-row components, Engineering uses scaling-widget; tabs Home/Maintenance/Diagnostics/Alarm/Trend + Advanced
589
-
590
- ### 1.112.0 (2026-07-06)
591
- * (gokturk413) feat: (wave A) - scaling-widget (raw->EU config) + status-flag components
592
-
593
- ### 1.111.0 (2026-07-06)
594
- * (gokturk413) feat: (wave A) — alarm-row component: severity + UNACK/ACK'D/SHELVED/SUPPRESSED/DISABLED chip + ack/shelve buttons
595
-
596
- ### 1.110.0 (2026-07-06)
597
- * (gokturk413) feat: (wave A) — Moving Analog Indicator: vertical scale, PV fill + pointer with value, HiHi/Hi/Lo/LoLo flags with EU value labels, threshold colour
598
-
599
- ### 1.109.0 (2026-07-06)
600
- * (gokturk413) feat: (wave A) — hybrid canonical+member labels in PlantPAx Types editor; P_AIn seed verified vs real AOI members
601
- * (gokturk413) fix: (wave A task1) — alarm meta labels match resolver (HiHi.Alm/.Ack nested); add threshold-status keys hiHiSts/hiSts/loSts/loLoSts -> Sts_* for MAI flags
602
-
603
- ### 1.108.1 (2026-07-06)
604
- * (gokturk413) fix: PlantPAx faceplate/symbol button wiring (imperative ppWireSymbol/ppWireHeader; remove broken @click=[[...]] which no-oped)
605
-
606
- ### 1.108.0 (2026-07-06)
607
- * (gokturk413) feat: (wave3 COMPLETE) — P_MotorRev/CmdSrc/Gate/Intlk/Perm/Alarm/Meta faceplates; all 13 PlantPAx types now shipped (symbol+faceplate each), all composed from 8 reusable wave-1 components; dual-adapter seeds for every type
608
-
609
- ### 1.107.0 (2026-07-06)
610
- * (gokturk413) feat: (wave3) — P_ValveC/P_ValveSO/P_PIDE/P_VSD faceplates via generic _dev_faceplate composing wave-1 components (level-bar+slider+lamps+buttons+sparkline); rich dual-adapter seeds
611
-
612
- ### 1.106.0 (2026-07-06)
613
- * (gokturk413) feat: (wave3 start) — P_Motor symbol + faceplate composed from wave-1 components (4 status-lamp + 2 command-button), P_Motor seed both adapters (15 members)
614
-
615
- ### 1.105.0 (2026-07-06)
616
- * (gokturk413) feat: (wave2) — PlantPAx Types editor as Ignition tag-browser tree (9 collapsible member categories: Process Value/Alarm Limits/Deadbands/Status/Ack/Commands/Scaling/Quality/Identity + counts + per-member test)
617
-
618
- ### 1.104.1 (2026-07-06)
619
- * (gokturk413) feat: enlarge faceplate popup (min-width 320->480, settings 520x600, roomier padding/font)
620
-
621
- ### 1.104.0 (2026-07-06)
622
- * (gokturk413) feat: enriched Alarms tab (unacked count + Ack All/Reset & Ack/Reset via OCmd_ResetAckAll/OCmd_Reset) + 3 alarm-cmd seed fields
623
- * (gokturk413) feat: wave1 primitives — plantpax/components/{status-lamp,command-button} (reusable boolean indicator + secWriteState command button)
624
- * (gokturk413) feat: wave1 input primitives — plantpax/components/{toggle-switch,radio-toggle,std-slider} (read+write via secWriteState, secCan-gated)
625
- * (gokturk413) feat: wave1 tank BlockStyle symbol (fill level = PV%, alarm color, click->faceplate) — 8 reusable plantpax components total
626
-
627
- ### 1.103.0 (2026-07-06)
628
- * (gokturk413) feat: Flintium-style icon tab-strip (Main: Operator/Maintenance/Trends/Diagnostics/Alarms + gear->Advanced: Engineering/HMI/Faults) with Trends/Diagnostics/HMI/Faults panes
629
-
630
- ### 1.102.0 (2026-07-06)
631
- * (gokturk413) feat: real Flintium-style P_AIn faceplate (level-bar component, EU-scaled Moving Analog Indicator, Raw Input Scaling + PV Source/Quality Engineering tab, expanded seed 37 fields)
632
- * (gokturk413) feat: add plantpax/components/sparkline (live mini-trend) + embed in P_AIn Operator
633
-
634
- ### 1.100.0 (2026-07-05)
635
- * (gokturk413) feat: PlantPAx faceplate popup host on IOB (mount/unmount, no display:none leak) + typeToTag
636
- * (gokturk413) feat: PlantPAx generator + P_AIn symbol & 4-tab faceplate controls
637
-
638
- ### 1.99.1 (2026-07-05)
639
- * (gokturk413) fix: Security editor dock had no background (showed white/host-default)
640
- * (gokturk413) feat: add PlantPAx type-mapping resolver with full AOI catalog seed data
641
- * (gokturk413) feat: wire PlantPAx type resolver into IobrokerHandler (IOB) singleton
642
- * (gokturk413) feat: add PlantPAx Types dock editor custom element
643
- * (gokturk413) feat: register PlantPAx Types dock tab in AppShell + rebuild runtime bundle
644
-
645
- ### 1.99.0 (2026-07-04)
646
- * (gokturk413) feat: Area & Permissions dock (assign data-area/data-action per element)
647
-
648
- ### 1.98.0 (2026-07-04)
649
- * (gokturk413) feat: server-enforced permission writes (secWriteState), phase 2
650
-
651
- ### 1.97.0 (2026-07-04)
652
- * (gokturk413) feat: Security editor dock (Users / Areas / Actions matrix / Codes)
653
-
654
- ### 1.96.0 (2026-07-04)
655
- * (gokturk413) feat: PlantPAx-style permission system (codes/actions/areas), phase 1
656
-
657
- ### 1.95.1 (2026-07-04)
658
- * (gokturk413) fix: multi-view injected elements now honor visibility conditions
659
-
660
- ### 1.95.0 (2026-07-04)
661
- * (gokturk413) fix: Monaco drag crash guard + all npm packages editable in Translations dock
662
-
663
- ### 1.94.3 (2026-07-04)
664
- * (gokturk413) fix: multi-view selections were not persisted (raw element writes)
665
-
666
- ### 1.94.2 (2026-07-04)
667
- * (gokturk413) fix: alarm viewers: designer instance also lacks _getDomElements + null-safe template exprs
668
-
669
- ### 1.94.1 (2026-07-03)
670
- * (gokturk413) fix: designer script errors in control editor (missing control APIs)
671
-
672
- ### 1.94.0 (2026-07-03)
673
- * (gokturk413) feat: alarm-history-viewer control (declarative, native datetime range)
674
-
675
- ### 1.93.0 (2026-07-03)
676
- * (gokturk413) feat: alarm-viewer control (Tabulator-free, declarative) + scoped-t fix
677
-
678
- ### 1.92.0 (2026-07-03)
679
- * (gokturk413) fix: translation modal keeps scope + migrate control groups to control-own dicts
680
-
681
- ### 1.91.0 (2026-07-03)
682
- * (gokturk413) feat: scoped translation system (control-own / npm-widget / project)
683
-
684
- ### 1.90.0 (2026-07-03)
685
- * (gokturk413) feat: Glass (glassmorphism) runtime theme + --ui-backdrop token
686
-
687
- ### 1.89.0 (2026-07-03)
688
- * (gokturk413) feat: modern themed logout control (pairs with user-badge)
689
-
690
- ### 1.88.0 (2026-07-03)
691
- * (gokturk413) feat: user-badge control: modern themed user chip for the app bar
692
-
693
- ### 1.87.0 (2026-07-02)
694
- * (gokturk413) feat: nav 'Auto (runtime theme)' preset + level_bar theme tokens
695
-
696
- ### 1.86.0 (2026-07-02)
697
- * (gokturk413) feat: theme-toggle control: segmented icon pill (Auto | Light | Dark)
698
-
699
- ### 1.85.0 (2026-07-02)
700
- * (gokturk413) fix: theme tokens in inline-style/script controls (scada_point_panel, input_with_button, TextViewer)
701
-
702
- ### 1.84.0 (2026-07-02)
703
- * (gokturk413) feat: linear-gauge rebuilt fully declarative (colored scale + pointer, zero render-JS)
704
-
705
- ### 1.83.0 (2026-07-02)
706
- * (gokturk413) feat: semantic theme tokens (--ui-ok/warn/error/info) + map control chrome/status colors to theme tokens
707
-
708
- ### 1.82.0 (2026-07-02)
709
- * (gokturk413) feat: user-definable themes via Global Style (CSS data-attribute model)
710
-
711
- ### 1.81.0 (2026-07-02)
712
- * (gokturk413) fix: linear-gauge reactivity + enum dropdowns + vertical min-tick
713
-
714
- ### 1.80.0 (2026-07-02)
715
- * (gokturk413) feat: runtime theme system + theme-selector control
716
-
717
- ### 1.79.0 (2026-07-02)
718
- * (gokturk413) feat: new mywebui adapter logo (gradient tech mark + wordmark)
719
-
720
- ### 1.78.0 (2026-07-02)
721
- * (gokturk413) fix: setpoint-gauge dark-runtime theming fallbacks
722
-
723
- ### 1.77.0 (2026-07-02)
724
- * (gokturk413) feat: setpoint-gauge control (thermostat-style, declarative bindings)
725
-
726
- ### 1.76.0 (2026-07-02)
727
- * (gokturk413) fix: theme the gauge controls via --ui-* tokens
728
-
729
- ### 1.75.0 (2026-07-02)
730
- * (gokturk413) feat: free linear-gauge + gauge-table controls (MODES-style)
731
-
732
- ### 1.74.0 (2026-07-01)
733
- * (gokturk413) fix: theme the designer context menu (was white/unreadable in dark themes)
734
-
735
- ### 1.73.0 (2026-07-01)
736
- * (gokturk413) feat: dedicated App Bar / Sidebar content editor
737
-
738
- ### 1.72.0 (2026-07-01)
739
- * (gokturk413) fix: settings-tab collapse arrows — right-aligned + bigger
740
-
741
- ### 1.71.0 (2026-07-01)
742
- * (gokturk413) feat: settings-tab menus — Layout collapsible, bigger arrows, collapsed by default
743
-
744
- ### 1.70.0 (2026-07-01)
745
- * (gokturk413) fix: theme the Multi-View dock like the other side panels
746
-
747
- ### 1.69.0 (2026-07-01)
748
- * (gokturk413) fix: multi-view panel — no duplicate + robust home-screen detection
749
-
750
- ### 1.68.0 (2026-07-01)
751
- * (gokturk413) feat: multi-view Stage 3 — ghost preview on target screens in the designer
752
-
753
- ### 1.67.0 (2026-07-01)
754
- * (gokturk413) feat: multi-view — show one element on multiple screens (vis-style)
755
-
756
- ### 1.65.0 (2026-07-01)
757
- * (gokturk413) feat: per-screen transition + fix screen-access disable sync + collapsible settings menus
758
-
759
- ### 1.64.0 (2026-07-01)
760
- * (gokturk413) fix: guard adoptedStyleSheets when control uses global style but none exists
761
-
762
- ### 1.63.0 (2026-07-01)
763
- * (gokturk413) feat: whenScreenReady() + screen-ready event + configurable screen transition
764
-
765
- ### 1.62.0 (2026-06-30)
766
- * (gokturk413) feat: delete slot items in nav app-bar/sidebar from the designer
767
-
768
- ### 1.61.0 (2026-06-30)
769
- * (gokturk413) feat: navigation/app-bar theme system + smooth hide-until-ready screen transitions
770
-
771
- ### 1.60.0 (2026-06-30)
772
- * (gokturk413) feat: navigation named slots for arbitrary controls (#3)
773
-
774
- ### 1.59.0 (2026-06-30)
775
- * (gokturk413) feat: navigation designer preview chrome (#2)
776
-
777
- ### 1.58.0 (2026-06-30)
778
- * (gokturk413) feat: modern-sidebar look for nav controls (#4)
779
-
780
- ### 1.57.0 (2026-06-30)
781
- * (gokturk413) feat: navigation live re-render on save (#1)
782
-
783
- ### 1.56.1 (2026-06-30)
784
- * (gokturk413) feat: nav menu-item/app-bar icons resolve relative project image paths
785
-
786
- ### 1.56.0 (2026-06-30)
787
- * (gokturk413) feat: Navigation Phase 2 — editable nav/app-bar custom controls + runtime mounter
788
-
789
- ### 1.55.0 (2026-06-30)
790
- * (gokturk413) feat: Navigation + Application Bar settings (Phase 1 — config UI + data model)
791
-
792
- ### 1.54.1 (2026-06-30)
793
- * (gokturk413) fix: Global Script editor threw 'IobrokerWebuiMonacoEditor is not defined'
794
-
795
- ### 1.54.0 (2026-06-29)
796
- * (gokturk413) feat: enable Global Script node (startup init() module) in the tree
797
-
798
- ### 1.53.3 (2026-06-29)
799
- * (gokturk413) fix: prover control drops at a normal size and scales on resize
800
-
801
- ### 1.53.2 (2026-06-28)
802
- * (gokturk413) fix: flow-line tool draws straight orthogonal segments (no freehand wavy)
803
-
804
- ### 1.53.1 (2026-06-28)
805
- * (gokturk413) fix: tee — thin centered bands (white space) + pipesize property so it snaps to pipes
806
-
807
- ### 1.53.0 (2026-06-28)
808
- * (gokturk413) feat: SCADA flow-line tool — dedicated toolbar button for orthogonal multi-segment polylines
809
-
810
- ### 1.52.3 (2026-06-28)
811
- * (gokturk413) feat: use the real tee artwork (4 teeTypes) in the tee control, not combined H+V pipes
812
-
813
- ### 1.52.2 (2026-06-28)
814
- * (gokturk413) fix: tee pipe square-tile geometry (generated in its script) so it tiles too
815
-
816
- ### 1.52.1 (2026-06-28)
817
- * (gokturk413) fix: smooth pipe gradient (linear straights + radial curves) instead of layered strokes
818
-
819
- ### 1.52.0 (2026-06-28)
820
- * (gokturk413) feat: pipe magnet-snap in the designer (edge snap + green indicator)
821
-
822
- ### 1.51.0 (2026-06-28)
823
- * (gokturk413) feat: normalize pipe controls to a unified square-tile model (vis-style mouth-to-mouth tiling)
824
-
825
- ### 1.50.1 (2026-06-28)
826
- * (gokturk413) fix: add VisibilityService.applyVisibility — custom controls threw on connect
827
-
828
- ### 1.50.0 (2026-06-28)
829
- * (gokturk413) feat: embedded (elementless) screen-layout tabs — flex-like, no webui-tab-container in code
830
-
831
- ### 1.49.3 (2026-06-27)
832
- * (gokturk413) feat: drop controls into the active tab pane (TabContainerPlacementService)
833
-
834
- ### 1.49.2 (2026-06-26)
835
- * (gokturk413) feat: rich Tabs editor inside the Properties tab (Tabs Layout group), revert broken dock mount
836
-
837
- ### 1.49.1 (2026-06-26)
838
- * (gokturk413) feat: show Layout/Tabs UI in the Properties dock too (split/tabs screens + controls)
839
-
840
- ### 1.49.0 (2026-06-26)
841
- * (gokturk413) feat: tabs designer rework — embedded (non-deletable/movable) container, tab add/remove/active UI, tab-position
842
-
843
- ### 1.48.0 (2026-06-26)
844
- * (gokturk413) fix(layout): strip stale generated split/tab container when type switched to flex/grid/none (save + runtime defensive) - fixes flex/grid props doing nothing after split->flex
845
-
846
- ### 1.47.0 (2026-06-26)
847
- * (gokturk413) feat(layout): alignment guides - red helper lines when a dragged element's edges/center align with siblings (designer + control editor)
848
-
849
- ### 1.46.0 (2026-06-26)
850
- * (gokturk413) feat(layout): penpot-style canvas grid overlay - track lines + draggable resize handles (live, writes settings.layout)
851
- * (gokturk413) feat(layout): flex layout guides overlay (direction arrow + align/justify label)
852
-
853
- ### 1.45.0 (2026-06-26)
854
- * (gokturk413) feat: BroadcastChannel cross-tab command delivery (sync source with shipped bundle)
855
- * (gokturk413) feat(layout): Phase 3 runtime - generate split/tabs container from settings.layout (saved html = panes only)
856
- * (gokturk413) feat(layout): Layout panel uses the visual button-group UI (flex direction/align/justify/wrap icons, split orientation, type) like the webui-flex-container 'Flex Layout' editor
857
- * (gokturk413) feat(layout): Phase 3 designer - split/tabs wrap-on-load + unwrap-on-save (panes-only html + metadata, container never saved/deletable; stable round-trip)
858
-
859
- ### 1.44.2 (2026-06-26)
860
- * (gokturk413) fix: guard disconnectedCallback dispose + resilient for:/repeat: cleanup
861
- * (gokturk413) feat(layout): add layoutToStyle/applyLayoutStyle mapper
862
- * (gokturk413) feat(layout): runtime applies settings.layout to ScreenViewer root host
863
- * (gokturk413) feat(layout): designer applies settings.layout to canvas root host
864
- * (gokturk413) feat(layout): picker returns metadata; new screen/control/global seed settings.layout
865
- * (gokturk413) feat(layout): Layout panel in Settings tab (live edit, type/flex/grid)
866
- * (gokturk413) feat(layout): Convert-to-layout for legacy flex-container roots (project + global)
867
- * (gokturk413) feat(layout): custom controls apply their settings.layout to host at runtime
868
- * (gokturk413) feat: add 'Remove HabPanel Style' action + dedupe Add; broadcast refresh on global style change
869
- * (gokturk413) feat(layout): Phase 2 - interactive grid track editor (per-track value+unit fr/px/%/auto, add/remove) in Layout panel
870
-
871
- ### 1.44.1 (2026-06-25)
872
- * (gokturk413) fix: for: loop never rendered elements due to shared oldValuesSymbol conflict
873
-
874
- ### 1.44.0 (2026-06-25)
875
- * (gokturk413) feat: advanced template directives, eval→new Function, repeat binding fix
876
-
877
- ### 1.43.1 (2026-06-25)
878
- * (gokturk413) perf: 3D gallery renders single control only, never folders/screens
879
- * (gokturk413) feat: for:/repeat: loop var as element prop, new directives, npm fixes
880
- * (gokturk413) fix: revert www/node_modules/ npm exclusion (needed for runtime - GSAP/Monaco/Three)
881
-
882
- ### 1.43.0 (2026-06-25)
883
- * (gokturk413) fix: screen access control now syncs in **real time** across all surfaces — unchecking a group in the global Permissions dialog instantly clears "Access Denied" on open runtime windows (`uiRefresh` broadcast)
884
- * (gokturk413) fix: backend honours `visibilityEnabled` / `accessibility.enabled` — a disabled restriction with a stale group list no longer keeps blocking
885
- * (gokturk413) fix: the Settings‑tab "Screen Accessibility Control" and the Projects "Screen Access" dialog are now mirrored (single source of truth)
886
- * (gokturk413) perf: 3D galleries no longer render whole folders live — 3D **screens** never preview, 3D **custom controls** preview one‑at‑a‑time on click (large memory saving); 2D controls/widgets unchanged
887
- * (gokturk413) docs: README — bindings (signals/state/object/properties), dynamic properties, current changelog
888
-
889
- ### 1.42.99 (2026-06-24)
890
- * (gokturk413) feat: group‑based access control (runtime + editor), hybrid readable‑source / obfuscated‑artifact build & packaging pipeline, branding
891
- * (gokturk413) feat: global (platform‑default) custom controls — shipped under **Global > CustomControls / 3D Custom Controls**, pre‑seeded on install, editable, usable in every project
892
-
893
- ### 1.42.90 (2026-06)
894
- * (gokturk413) feat: self‑contained multi‑project layout — each project under `mywebui.0.projects/<name>/{data,widgets}` with export/import
895
-
896
- ### 1.42.45 (2026-06)
897
- * (gokturk413) design: neon glassmorphic theme for the solution explorer
898
-
899
- ### 1.42.44 (2026-06)
900
- * (gokturk413) feat: multi‑project support — project selector with create/delete; runtime preview passes `?project=`, plain `runtime.html` always shows default (kiosk safe)
901
-
902
- ### 1.42.42 (2026-06)
903
- * (gokturk413) feat: `dynamic` property tab for every element (works with npm manifest widgets too) — per‑instance dynamic properties with two‑way binding
904
-
905
- ### 1.40.0 (2026-06)
906
- * (gokturk413) feat: 3D Editor (Three.js) — 3D screens & 3D custom controls, signal bindings, asset manager, layout planner
907
-
908
- <!-- older custom‑edition versions: see the full per‑version "news" list in io‑package.json -->
909
-
910
- ### 1.37.0 (2025-10-15)
911
- - fix bug in bundled code
912
- - use minified code for config
913
-
914
- ### 1.36.0 (2025-10-15)
915
- - fix some boxQuads edge cases
916
-
917
- ### 1.35.4 (2025-09-23)
918
- - clear cache on reload
919
-
920
- ### 1.35.3 (2025-09-23)
921
- - object changed to all clients
922
-
923
- ### 1.35.2 (2025-09-23)
924
- - forgett to parse bindings
925
-
926
- ### 1.35.1 (2025-09-23)
927
- - fix reload custom controls
928
-
929
- ### 1.35.0 (2025-09-23)
930
- - better nameing
931
- - changed object notification
932
-
933
- ### 1.34.2 (2025-09-21)
934
- - anaother small fix in signal handling
935
-
936
- ### 1.34.1 (2025-09-20)
937
- - script command wrong name fix
938
-
939
- ### 1.34.0 (2025-09-20)
940
- - designer and script updates
941
-
942
- ### 1.33.0 (2025-08-26)
943
- - fix NaN check
944
-
945
- ### 1.32.0 (2025-08-20)
946
- - Support css prop suggestions
947
-
948
- ### 1.31.6 (2025-08-19)
949
- - Test one more release
950
-
951
- ### 1.31.5 (2025-08-19)
952
- - Fix setting Props with simple scripts
953
-
954
- ### 1.31.4 (2025-08-19)
955
- - SimpleScripts should be able to set Properties
956
-
957
- ### 1.31.3 (2025-08-19)
958
- - NaN not NaN
959
-
960
- ### 1.31.2 (2025-08-18)
961
- - update npms
962
-
963
- ### 1.31.1 (2025-08-17)
964
- - remove nod 18 from github actions
965
-
966
- ### 1.31.0 (2025-08-17)
967
- - update packages
968
- - script support for properties
969
-
970
- ### 1.30.0 (2025-05-25)
971
- - starting indirect binding fix
972
-
973
- ### 1.29.0 (2025-05-25)
974
- - complexer indirect bindings
975
-
976
- ### 1.28.0 (2025-05-03)
977
- - update packages
978
-
979
- ### 1.27.1 (2025-03-30)
980
- - fix xml import
981
-
982
- ### 1.27.0 (2025-03-30)
983
- - edit string in visu property grid
984
- - bindings to properties did not work (in designer)
985
- - html setting did not work sometimes
986
-
987
- ### 1.26.0 (2025-03-04)
988
- - fix error in screenviewer
989
- - update npms
990
- - rename global styles
991
- - allow styling of dialog
992
-
993
- ### 1.25.2 (2025-02-05)
994
- - fix null error on props
995
-
996
- ### 1.25.1 (2025-01-24)
997
- - escape xml
998
- - switch to official selector package
999
-
1000
- ### 1.25.0 (2025-01-21)
1001
- - fix bindings in custom controls
1002
-
1003
- ### 1.24.4 (2025-01-20)
1004
- - switch again to old module shims (error in new one)
1005
-
1006
- ### 1.24.3 (2025-01-20)
1007
- - first load of css bindings
1008
- - fix get box quads with slots
1009
- - fix es module shims
1010
-
1011
- ### 1.24.2 (2025-01-19)
1012
- - revert back es module shims, leads to errors
1013
-
1014
- ### 1.24.1 (2025-01-19)
1015
- - hopefully fix package upload by changed name
1016
-
1017
- ### 1.24.0 (2025-01-19)
1018
- - cleanup www dir
1019
-
1020
- ### 1.23.2 (2025-01-19)
1021
- - one more fix in gulpfile
1022
-
1023
- ### 1.23.1 (2025-01-19)
1024
- - fix gulp should work again
1025
-
1026
- ### 1.23.0 (2025-01-19)
1027
- - fix paste in events assignment
1028
- - iobroker Signal Selector
1029
- - binding to width and height in custom controls
1030
-
1031
- ### 1.22.0 (2025-01-15)
1032
- - local signals browser
1033
- - style completition fixes
1034
- - special bindings for "ring" cameras
1035
-
1036
- ### 1.21.0 (2024-12-28)
1037
- - fix scripts with empty names on css
1038
- - css props with only bindings are not shown
1039
- - remove of css prop should remove binding?
1040
- - Open Screen in sub screen command
1041
-
1042
- ### 1.20.1 (2024-12-03)
1043
- - fix in designer with svgs
1044
-
1045
- ### 1.20.0 (2024-12-03)
1046
- - add a few packages
1047
- - run simple script cmd and update get parent screen
1048
- - update packages, downgrade monaco
1049
- - fix backup
1050
-
1051
- ### 1.19.4 (2024-11-03)
1052
- - copy & paste events
1053
-
1054
- ### 1.19.3 (2024-11-03)
1055
- - support null value
1056
-
1057
- ### 1.19.2 (2024-11-03)
1058
- - use name in classlist
1059
-
1060
- ### 1.19.1 (2024-11-02)
1061
- - copy path for screens/controls
1062
-
1063
- ### 1.19.0 (2024-11-02)
1064
- - fix error in script system
1065
-
1066
- ### 1.18.5 (2024-11-02)
1067
- - compile fix
1068
-
1069
- ### 1.18.4 (2024-11-02)
1070
- - fix wrong shadow root used
1071
-
1072
- ### 1.18.3 (2024-11-01)
1073
- - small typo fix
1074
-
1075
- ### 1.18.2 (2024-11-01)
1076
- - better refcatoring
1077
-
1078
- ### 1.18.1 (2024-11-01)
1079
- - fix screen settings
1080
-
1081
- ### 1.18.0 (2024-11-01)
1082
- - screens are now ex- & imported as xml
1083
-
1084
- ### 1.17.3 (2024-11-01)
1085
- - fix compilation
1086
-
1087
- ### 1.17.2 (2024-11-01)
1088
- - switch combo in complex prop editor
1089
-
1090
- ### 1.17.1 (2024-11-01)
1091
- - selector for properties
1092
-
1093
- ### 1.17.0 (2024-11-01)
1094
- - internal control properties
1095
- - internal screen properties
1096
-
1097
- ### 1.16.3 (2024-10-31)
1098
- - raise errors on unimplemented commands
1099
- - wrong script upgrade
1100
-
1101
- ### 1.16.2 (2024-10-31)
1102
- - wrong default in script
1103
-
1104
- ### 1.16.1 (2024-10-31)
1105
- - fix base custom webcomp bindings
1106
-
1107
- ### 1.16.0 (2024-10-30)
1108
- - fix errors with script system, wrong parent used
1109
-
1110
- ### 1.15.1 (2024-10-08)
1111
- - fix typo in screenviewer
1112
-
1113
- ### 1.15.0 (2024-10-08)
1114
- - fixes in margin & padding
1115
- - work on simpleScripts, add conditions
1116
- - fix _getDomElements in screen viewer
1117
-
1118
- ### 1.14.0 (2024-09-18)
1119
- - update npm packages
1120
-
1121
- ### 1.13.2 (2024-08-21)
1122
- - designer updates
1123
- - add find methods
1124
-
1125
- ### 1.13.1 (2024-08-18)
1126
- - small designer tweaks
1127
-
1128
- ### 1.13.0 (2024-08-18)
1129
- - update designer
1130
-
1131
- ### 1.12.4 (2024-07-25)
1132
- - one more designer update
1133
-
1134
- ### 1.12.3 (2024-07-25)
1135
- - update designer
1136
-
1137
- ### 1.12.2 (2024-07-24)
1138
- - fix offset finding in box drawing
1139
-
1140
- ### 1.12.1 (2024-07-24)
1141
- - update edit text in designer
1142
-
1143
- ### 1.12.0 (2024-07-24)
1144
- - update designer
1145
-
1146
- ### 1.11.3 (2024-06-02)
1147
- - fix load subfolders
1148
-
1149
- ### 1.11.2 (2024-06-01)
1150
- - screens grid view
1151
-
1152
- ### 1.11.1 (2024-05-31)
1153
- - fix icons view path
1154
-
1155
- ### 1.11.0 (2024-05-31)
1156
- - add a icons view
1157
-
1158
- ### 1.10.9 (2024-05-30)
1159
- - show undo count
1160
-
1161
- ### 1.10.8 (2024-05-30)
1162
- - better tooltip for multiplex
1163
- - remove unused solution entries
1164
-
1165
- ### 1.10.7 (2024-05-29)
1166
- - fix iframe d&d
1167
-
1168
- ### 1.10.6 (2024-05-29)
1169
- - better evt editor for new events
1170
-
1171
- ### 1.10.5 (2024-05-29)
1172
- - show events on mywebui controls
1173
-
1174
- ### 1.10.4 (2024-05-29)
1175
- - work on events
1176
-
1177
- ### 1.10.3 (2024-05-29)
1178
- - add events service for manifest
1179
-
1180
- ### 1.10.2 (2024-05-28)
1181
- - fix getDomelement
1182
-
1183
- ### 1.10.1 (2024-05-28)
1184
- - support classlist in setElementProperty
1185
-
1186
- ### 1.10.0 (2024-05-28)
1187
- - fix screen & parent screen access
1188
-
1189
- ### 1.9.10 (2024-05-28)
1190
- - fixes for blockly
1191
-
1192
- ### 1.9.9 (2024-05-28)
1193
- - fix firefox
1194
-
1195
- ### 1.9.8 (2024-05-27)
1196
- - try faster loading
1197
-
1198
- ### 1.9.7 (2024-05-27)
1199
- - fix change root style
1200
-
1201
- ### 1.9.6 (2024-05-27)
1202
- - fix null ref
1203
-
1204
- ### 1.9.5 (2024-05-27)
1205
- - few small changes
1206
-
1207
- ### 1.9.4 (2024-05-27)
1208
- - fix scripts not workin
1209
-
1210
- ### 1.9.3 (2024-05-27)
1211
- - update packages
1212
-
1213
- ### 1.9.2 (2024-05-27)
1214
- - fix screenviewer styles
1215
-
1216
- ### 1.9.1 (2024-05-27)
1217
- - fix first div styled from designer when zoom
1218
-
1219
- ### 1.9.0 (2024-05-27)
1220
- - fix zooming of child screens
1221
-
1222
- ### 1.8.9 (2024-05-26)
1223
- - one more spec. calculation fix
1224
-
1225
- ### 1.8.8 (2024-05-26)
1226
- - need to await stylesheet parse
1227
-
1228
- ### 1.8.7 (2024-05-26)
1229
- - fix specificity calculation
1230
-
1231
- ### 1.8.6 (2024-05-21)
1232
- - fix in designer property grid
1233
-
1234
- ### 1.8.5 (2024-05-21)
1235
- - stretch property for screenviewer
1236
- - screennames in property list (property services now async)
1237
-
1238
- ### 1.8.4 (2024-05-20)
1239
- - fix typo in bindingshelper
1240
-
1241
- ### 1.8.3 (2024-05-20)
1242
- - fix style parsing and style bindings at runtime
1243
-
1244
- ### 1.8.2 (2024-05-19)
1245
- - fix in manifest parser of designer
1246
-
1247
- ### 1.8.1 (2024-05-19)
1248
- - fix manifest parsing
1249
-
1250
- ### 1.8.0 (2024-05-19)
1251
- - bindings inside of css
1252
-
1253
- ### 1.7.8 (2024-05-19)
1254
- - fix remove of ctx menu
1255
-
1256
- ### 1.7.7 (2024-05-17)
1257
- - fix stylesheet matching
1258
-
1259
- ### 1.7.6 (2024-05-17)
1260
- - fix edit text in transformed surface
1261
-
1262
- ### 1.7.5 (2024-05-17)
1263
- - more fixes with transformed elements
1264
-
1265
- ### 1.7.4 (2024-05-16)
1266
- - designer transformation fixes
1267
-
1268
- ### 1.7.3 (2024-05-15)
1269
- - fix transform combinations in designer
1270
- - fix treeview jump to
1271
-
1272
- ### 1.7.2 (2024-05-15)
1273
- - few more small designer fixes
1274
-
1275
- ### 1.7.1 (2024-05-15)
1276
- - fix in designer
1277
-
1278
- ### 1.7.0 (2024-05-15)
1279
- - Add screen contextmenu
1280
- - support editing of repeat in grid colum/row templates
1281
- - designer updates
1282
- - force styles
1283
-
1284
- ### 1.6.5 (2024-05-07)
1285
- - designer update
1286
-
1287
- ### 1.6.4 (2024-05-05)
1288
- - expand/collapse of child nodes in tree
1289
- - undock all windows
1290
-
1291
- ### 1.6.3 (2024-05-05)
1292
- - jump to all css declarations
1293
-
1294
- ### 1.6.2 (2024-05-04)
1295
- - jump to styles
1296
-
1297
- ### 1.6.1 (2024-05-02)
1298
- - better icons
1299
-
1300
- ### 1.6.0 (2024-05-02)
1301
- - remove metro ui
1302
-
1303
- ### 1.5.4 (2024-05-02)
1304
- - fix delay command
1305
-
1306
- ### 1.5.3 (2024-05-02)
1307
- - fixes after package updates
1308
-
1309
- ### 1.5.2 (2024-05-02)
1310
- - removed missing prop
1311
-
1312
- ### 1.5.1 (2024-05-02)
1313
- - add delay in blockly & npm updates
1314
-
1315
- ### 1.5.0 (2024-04-28)
1316
- - nicer two way bindings
1317
-
1318
- ### 1.4.9 (2024-04-24)
1319
- - fix toastify
1320
-
1321
- ### 1.4.8 (2024-04-20)
1322
- - fix for controller v6
1323
-
1324
- ### 1.4.7 (2024-04-20)
1325
- - compact mode on controler 6 support
1326
-
1327
- ### 1.4.6 (2024-04-10)
1328
- - fix encoding for all files
1329
-
1330
- ### 1.4.5 (2024-04-10)
1331
- - fix gulp5 copy breaks fonts
1332
-
1333
- ### 1.4.4 (2024-04-10)
1334
- - fix compile error
1335
-
1336
- ### 1.4.3 (2024-04-10)
1337
- - fix copy of font
1338
-
1339
- ### 1.4.2 (2024-04-09)
1340
- - stretch support in screens
1341
-
1342
- ### 1.4.1 (2024-04-09)
1343
- - support relative signal paths in scripts
1344
-
1345
- ### 1.4.0 (2024-04-08)
1346
- - parameter support for scripts
1347
-
1348
- ### 1.3.2 (2024-04-02)
1349
- - designer upd
1350
-
1351
- ### 1.3.1 (2024-04-01)
1352
- - designer updates for toolbars
1353
-
1354
- ### 1.3.0 (2024-04-01)
1355
- - designer update
1356
-
1357
- ### 1.2.13 (2024-03-28)
1358
- - disabled control fix
1359
-
1360
- ### 1.2.12 (2024-03-28)
1361
- - add dayjs for date formating
1362
-
1363
- ### 1.2.11 (2024-03-28)
1364
- - add a indirection level in complex signal binding
1365
-
1366
- ### 1.2.10 (2024-03-28)
1367
- - package upgrades
1368
-
1369
- ### 1.2.9 (2024-03-26)
1370
- - try fix runtime once more
1371
-
1372
- ### 1.2.8 (2024-03-26)
1373
- - runtime should not load designer
1374
-
1375
- ### 1.2.7 (2024-03-26)
1376
- - fix used wrong script system
1377
-
1378
- ### 1.2.6 (2024-03-25)
1379
- - one more small runtime fix
1380
-
1381
- ### 1.2.5 (2024-03-25)
1382
- - fix runtime once more
1383
-
1384
- ### 1.2.4 (2024-03-25)
1385
- - fix runtime
1386
-
1387
- ### 1.2.3 (2024-03-24)
1388
- - designer upgrade for new features
1389
-
1390
- ### 1.2.2 (2024-03-11)
1391
- - fix broken signals selector in scripts
1392
-
1393
- ### 1.2.1 (2024-03-11)
1394
- - build broken after refactoring
1395
-
1396
- ### 1.2.0 (2024-03-11)
1397
- - extracted some code for usability
1398
- - better text edit
1399
- - better split view (selection matches now)
1400
- - round pixel values
1401
-
1402
- ### 1.1.4 (2024-03-02)
1403
- - designer-update: mathML support, svg foreignObject support
1404
- - better text edit support
1405
-
1406
- ### 1.1.3 (2024-02-29)
1407
- - text edit now workin
1408
- - package updates
1409
-
1410
- ### 1.1.2 (2024-02-27)
1411
- - fix broken designer package
1412
-
1413
- ### 1.1.1 (2024-02-27)
1414
- - designer and docking fixes
1415
-
1416
- ### 1.1.0 (2024-02-26)
1417
- - support undock to new browser window
1418
- - preview fixes for position: static in styles
1419
-
1420
- ### 1.0.56 (2024-02-26)
1421
- - screenviewer - add also nodes from domparser head
1422
-
1423
- ### 1.0.55 (2024-02-22)
1424
- - more designer fixes
1425
-
1426
- ### 1.0.54 (2024-02-22)
1427
- - multiple designer fixes
1428
-
1429
- ### 1.0.53 (2024-02-19)
1430
- - fix lazy bound lit event name
1431
-
1432
- ### 1.0.52 (2024-02-19)
1433
- - fix captured local
1434
-
1435
- ### 1.0.51 (2024-02-19)
1436
- - fix lazy loaded lit elments
1437
- - fix script url
1438
-
1439
- ### 1.0.50 (2024-02-18)
1440
- - again fix in class binding
1441
-
1442
- ### 1.0.49 (2024-02-18)
1443
- - class is attribute in bindings
1444
- - fix error logging
1445
-
1446
- ### 1.0.48 (2024-02-17)
1447
- - fix wunderbaum error
1448
-
1449
- ### 1.0.47 (2024-02-15)
1450
- - designer fixes with property grid
1451
-
1452
- ### 1.0.46 (2024-02-15)
1453
- - designer updates
1454
-
1455
- ### 1.0.45 (2024-02-12)
1456
- - update designer with bugfixes
1457
-
1458
- ### 1.0.44 (2024-02-11)
1459
- - fix bindings in designer
1460
-
1461
- ### 1.0.43 (2024-02-11)
1462
- - refresh tree when controls deleted
1463
-
1464
- ### 1.0.42 (2024-02-11)
1465
- - fix grid resize
1466
- - fix grid extension display
1467
-
1468
- ### 1.0.41 (2024-02-10)
1469
- - better element drawing (with undo)
1470
- - better title extension
1471
-
1472
- ### 1.0.40 (2024-02-10)
1473
- - dblclick in solution should not change tool
1474
- - designer update for performance fixes
1475
-
1476
- ### 1.0.39 (2024-02-09)
1477
- - upgrade designer package once more to fix some issues
1478
-
1479
- ### 1.0.38 (2024-02-09)
1480
- - fix blockly
1481
- - add blockly templated string
1482
- - work on adopted styles
1483
- - update designer to fix snaplines
1484
-
1485
- ### 1.0.37 (2024-01-31)
1486
- - designer fix for background
1487
-
1488
- ### 1.0.36 (2024-01-31)
1489
- - upgade to new designer for better style encapsulation
1490
-
1491
- ### 1.0.35 (2024-01-30)
1492
- - package upgrades (fix in designer for css patching)
1493
- - typos
1494
-
1495
- ### 1.0.34 (2024-01-28)
1496
- - indirect signal for $ access
1497
-
1498
- ### 1.0.33 (2024-01-24)
1499
- - one more designer update
1500
-
1501
- ### 1.0.32 (2024-01-24)
1502
- - fix for nested stylesheets
1503
-
1504
- ### 1.0.31 (2024-01-23)
1505
- - string could be null
1506
-
1507
- ### 1.0.30 (2024-01-22)
1508
- - better script errors
1509
-
1510
- ### 1.0.29 (2024-01-22)
1511
- - remove a few errors
1512
-
1513
- ### 1.0.28 (2024-01-22)
1514
- - npm upgrade for error of undoservice
1515
-
1516
- ### 1.0.27 (2024-01-22)
1517
- - toast message on errors
1518
-
1519
- ### 1.0.26 (2024-01-22)
1520
- - npm package upgrades
1521
-
1522
- ### 1.0.25 (2024-01-21)
1523
- - use appendChild
1524
-
1525
- ### 1.0.24 (2024-01-21)
1526
- - fix later loaded scripts
1527
-
1528
- ### 1.0.23 (2024-01-21)
1529
- - twoway should only set first value
1530
- - fix error with noParse
1531
-
1532
- ### 1.0.22 (2024-01-20)
1533
- - fix binding with unit
1534
- - fix refactor service missing command
1535
-
1536
- ### 1.0.21 (2024-01-19)
1537
- - fix designer grid overlay
1538
- - stecil ackage hacks
1539
-
1540
- ### 1.0.20 (2024-01-18)
1541
- - fix broken split view
1542
-
1543
- ### 1.0.19 (2024-01-17)
1544
- - simpler one way bindings with expressions
1545
-
1546
- ### 1.0.18 (2024-01-17)
1547
- - text selection selects in designer
1548
-
1549
- ### 1.0.17 (2024-01-16)
1550
- - fix opacity of D&D node
1551
-
1552
- ### 1.0.16 (2024-01-16)
1553
- - fix drag drop of tree nodes
1554
-
1555
- ### 1.0.15 (2024-01-14)
1556
- - support upper/lowercase and spaces in screens & controls
1557
-
1558
- ### 1.0.13 (2024-01-14)
1559
- - correct event name in lit bindings
1560
-
1561
- ### 1.0.12 (2024-01-14)
1562
- - upgrade baseCustomWebcomp for attribute binding
1563
-
1564
- ### 1.0.11 (2024-01-14)
1565
- - API for reading object lists
1566
-
1567
- ### 1.0.10 (2024-01-14)
1568
- - fix selected tool
1569
-
1570
- ### 1.0.9 (2024-01-14)
1571
- - bugfix controls editor
1572
-
1573
- ### 1.0.8 (2024-01-14)
1574
- - fix import/export
1575
-
1576
- ### 1.0.7 (2024-01-14)
1577
- - bigger formula editor when multiline
1578
-
1579
- ### 1.0.6 (2024-01-14)
1580
- - draw widgets when selected in tree
1581
-
1582
- ### 1.0.5 (2024-01-14)
1583
- - bind to iobroker objects (via $ prefix)
1584
-
1585
- ### 1.0.4 (2024-01-14)
1586
- - fix open screens in folders
1587
-
1588
- ### 1.0.3 (2024-01-14)
1589
- - only lowercase folders
1590
-
1591
- ### 1.0.2 (2024-01-14)
1592
- - variablen in convertern
1593
- - configurable meta tags
1594
-
1595
- ### 1.0.1 (2024-01-13)
1596
- - fix issue with npm
1597
-
1598
- ### 1.0.0 (2024-01-13)
1599
- - new script command: CalculateSignalValue
1600
- - javascript code completition
1601
- - better types in code completition
1602
- - fix writing of child nodes if content is bound at design time
1603
- - use monaco editor in expressions
1604
- - use custom var names in expressions
1605
- - Screens & Controls can have subfolders
1606
- - decl. shadow dom support in screen viewer
1607
- - allow 'local_' as tag prefix for local vars
1608
-
1609
- ### 0.23.3 (2024-01-04)
1610
- - add local valueAsNumber property
1611
-
1612
- ### 0.23.2 (2024-01-03)
1613
- - again fix runtime was not initialized
1614
-
1615
- ### 0.23.1 (2024-01-03)
1616
- - fix runtime was not initialized
1617
-
1618
- ### 0.23.0 (2024-01-03)
1619
- - todo, support 2way bindings too custom properties
1620
- - code completition for iobrokerHandler and runtime
1621
- - simple scripts, access value of event
1622
-
1623
- ### 0.22.7 (2023-12-25)
1624
- - and one more...
1625
-
1626
- ### 0.22.6 (2023-12-25)
1627
- - and one more fix on importmaps
1628
-
1629
- ### 0.22.5 (2023-12-25)
1630
- - more fixes with import map
1631
-
1632
- ### 0.22.4 (2023-12-25)
1633
- - work on export directive
1634
-
1635
- ### 0.22.3 (2023-12-25)
1636
- - fix missing .js extensions
1637
-
1638
- ### 0.22.2 (2023-12-25)
1639
- - fix scripts
1640
-
1641
- ### 0.22.1 (2023-12-25)
1642
- - add open screen in blockly
1643
-
1644
- ### 0.22.0 (2023-12-25)
1645
- - work on esbuild (but not yet ready, delayed till blockly is ESM)
1646
- - bugfixes with scripts
1647
- - remove typescript, use javascript directly
1648
- - typed value on SetValue function
1649
-
1650
- ### 0.21.3 (2023-12-20)
1651
- - fix set style
1652
-
1653
- ### 0.21.2 (2023-12-20)
1654
- - more commands in blockly
1655
-
1656
- ### 0.21.1 (2023-12-19)
1657
- - fixed paths
1658
-
1659
- ### 0.21.0 (2023-12-19)
1660
- - start of blockly support
1661
-
1662
- ### 0.20.7 (2023-12-15)
1663
- - fix importmap creation missed "/"
1664
-
1665
- ### 0.20.6 (2023-12-12)
1666
- - few wunderbaum fixes
1667
-
1668
- ### 0.20.5 (2023-12-11)
1669
- - better custom properties view
1670
-
1671
- ### 0.20.4 (2023-12-11)
1672
- - fix in css prop binding
1673
-
1674
- ### 0.20.3 (2023-12-11)
1675
- - update designer npm
1676
-
1677
- ### 0.20.2 (2023-12-11)
1678
- - fix for class binding
1679
-
1680
- ### 0.20.1 (2023-12-11)
1681
- - binding for classes
1682
-
1683
- ### 0.20.0 (2023-12-11)
1684
- - allow bindings to css vars
1685
-
1686
- ### 0.19.3 (2023-12-10)
1687
- - switch loglevel
1688
-
1689
- ### 0.19.2 (2023-12-10)
1690
- - package updates
1691
-
1692
- ### 0.19.1 (2023-12-07)
1693
- - fix load error
1694
-
1695
- ### 0.19.0 (2023-12-07)
1696
- - waitForReady needs to be awaited
1697
-
1698
- ### 0.18.15 (2023-12-06)
1699
- - fix missing null check
1700
-
1701
- ### 0.18.14 (2023-12-06)
1702
- - fix normal binding unsubscribe
1703
-
1704
- ### 0.18.13 (2023-12-06)
1705
- - fix historic binding unsubscribe
1706
-
1707
- ### 0.18.12 (2023-12-06)
1708
- - remove bindings in customcontrols
1709
-
1710
- ### 0.18.11 (2023-12-06)
1711
- - fix broken load historic
1712
-
1713
- ### 0.18.10 (2023-12-06)
1714
- - load historic only when previous load is finished
1715
-
1716
- ### 0.18.9 (2023-12-05)
1717
- - fix tooltips
1718
-
1719
- ### 0.18.8 (2023-12-05)
1720
- - lazy remove the title
1721
-
1722
- ### 0.18.7 (2023-12-05)
1723
- - better fix for monaco
1724
-
1725
- ### 0.18.6 (2023-12-05)
1726
- - fix for monaco bug
1727
- - title removed
1728
-
1729
- ### 0.18.5 (2023-12-05)
1730
- - code completition for base custom webcomponent
1731
- - object property type
1732
-
1733
- ### 0.18.4 (2023-12-03)
1734
- - better text for historic bindings cancel
1735
-
1736
- ### 0.18.3 (2023-12-03)
1737
- - fix reload in dynamics editor
1738
-
1739
- ### 0.18.2 (2023-12-03)
1740
- - ui for historic binding
1741
- - fixes in refactor view
1742
-
1743
- ### 0.18.1 (2023-12-03)
1744
- - fixes in refactor service
1745
-
1746
- ### 0.18.0 (2023-12-01)
1747
- - tooltip in solution explorer
1748
- - npm upgrade of designer
1749
- - refactor view for bindings and scripts
1750
-
1751
- ### 0.17.0 (2023-11-29)
1752
- - remove 2 uneeded files
1753
- - designer update
1754
-
1755
- ### 0.16.6 (2023-11-28)
1756
- - check for invalid propertynames
1757
- - move properties
1758
-
1759
- ### 0.16.5 (2023-11-27)
1760
- - copy screen and custom controls
1761
-
1762
- ### 0.16.4 (2023-11-27)
1763
- - fix usage of mywebui in windows
1764
-
1765
- ### 0.16.3 (2023-11-24)
1766
- - extra style for font declarations, they are not allowed in shadow dom
1767
-
1768
- ### 0.16.2 (2023-11-23)
1769
- - fix remove script command
1770
-
1771
- ### 0.16.1 (2023-11-23)
1772
- - additional file dnd
1773
-
1774
- ### 0.16.0 (2023-11-23)
1775
- - add additional files node and upload
1776
-
1777
- ### 0.15.1 (2023-11-22)
1778
- - export as xml (screens & controls)
1779
- - binding historic with reload
1780
- - fix dialog
1781
-
1782
- ### 0.15.0 (2023-11-19)
1783
- - uncloseable dialog
1784
- - css properties for dialog
1785
- - binding to historic data
1786
-
1787
- ### 0.14.1 (2023-11-12)
1788
- - dialog centered
1789
-
1790
- ### 0.14.0 (2023-11-12)
1791
- - add simple dialog
1792
-
1793
- ### 0.13.1 (2023-11-11)
1794
- - two way bindings with expressions
1795
-
1796
- ### 0.13.0 (2023-11-09)
1797
- - fix upercase screen names in runtime
1798
- - raster in designer is now adjustable
1799
- - copy object nodes now copies complete string
1800
- - context menu to directly edit custom element
1801
- - fix handler path in script
1802
- - uiChangedView now workin
1803
- - error when importing invalid file (for example html instead of json)
1804
-
1805
- ### 0.12.3 (2023-09-20)
1806
- - after eval removal, functions need a return
1807
-
1808
- ### 0.12.2 (2023-09-20)
1809
- - events names for 2way bindings need a editor
1810
-
1811
- ### 0.12.1 (2023-09-20)
1812
- - two way for indirect bindings
1813
-
1814
- ### 0.12.0 (2023-09-20)
1815
- - support indirect bindings via {...} in signals (like in vis)
1816
-
1817
- ### 0.11.2 (2023-09-17)
1818
- - check npm package name
1819
-
1820
- ### 0.11.1 (2023-09-16)
1821
- - fix build on windows
1822
-
1823
- ### 0.11.0 (2023-09-11)
1824
- - dragdrop fixes
1825
- - screen/control size fixes
1826
- - connected/disconnected callbacks
1827
-
1828
- ### 0.10.0 (2023-09-10)
1829
- - new script commands
1830
- - bugfix with bindings and empty events
1831
- - select exported function in javascript
1832
- - bugfix in save of screens
1833
- - typescript in scripts
1834
- - started work on translateable runtime
1835
-
1836
- ### 0.9.0 (2023-09-06)
1837
- - signal selector in properties
1838
- - screen selector in properties
1839
- - new screen had style in scripts
1840
- - indirect value/property acces from scripts via editor
1841
- - list multiple undo entries (on hold of undo)
1842
-
1843
- ### 0.8.0 (2023-09-03)
1844
- - update designer to add and fix some commands
1845
- - move screen/control scripts out of html code
1846
- - add a javascript editor view
1847
- - bugfix when states where null after a fresh install
1848
- - designer addons do now work again
1849
- - docking framework updated, cause of bugs with undocking
1850
-
1851
- ### 0.7.0 (2023-09-01)
1852
- - screens and controls have now settings (width, height, useGlobalStyle)
1853
-
1854
- ### 0.6.0 (2023-09-01)
1855
- - removed many uneeded files from installation
1856
-
1857
- ### 0.5.1 (2023-09-01)
1858
- - show version in ui
1859
-
1860
- ### 0.5.0 (2023-09-01)
1861
- - signal as property type
1862
- - removed svg-image control
1863
- - shorter custom control tag name
1864
- - better dynamics editor
1865
- - dock ui fixes
1866
- - control ui from backend (switch view, reload)
1867
-
1868
- ### 0.4.0 (2023-08-30)
1869
- - remove uneeded files from upload
1870
- - remove icons into extra iobroker packages
1871
- - support icon adapters
1872
- - rename screens & controls
1873
-
1874
- ### 0.3.0 (2023-08-29)
1875
- - default value for custom properties
1876
- - open screens only once
1877
- - property bindings default one way
1878
-
1879
- ### 0.2.3 (2023-08-28)
1880
- - rework how custom controls are initalized
1881
-
1882
- ### 0.2.2 (2023-08-28)
1883
- - better support & fixes of custom elements
1884
- - enum properties in custom controls
1885
- - sample custom controls
1886
-
1887
- ### 0.2.1 (2023-08-28)
1888
- - null ref fix in bindings
1889
-
1890
- ### 0.2.0 (2023-08-28)
1891
- - Import/Export of Screens/Images/Controls
1892
- - Define your own Controls directly in mywebui
1893
- - Drag/Drop of Icons/Images to Properties
1894
- - Drag/Drop of objects to Bindings-Editor Signalname
1895
- - Basic functionality of CustomControls
1896
-
1897
- ### 0.1.0 (2023-08-27)
1898
- - initial public release
1899
-
1900
- ## Credits
1901
-
1902
- **Original Author:** jogibear9988 (Jochen Kühner)
1903
- **Custom Edition:** gokturk413
1904
-
1905
- This is a custom edited and enhanced version of the original ioBroker.mywebui adapter with additional features and hardware-bound licensing.
1906
-
1907
- ### Original Repository
1908
- https://github.com/iobroker-community-adapters/ioBroker.mywebui
1909
-
1910
- ---
1911
-
1912
- ## License
1913
-
1914
- Creative Commons Attribution-NonCommercial 4.0 International (CC-BY-NC-4.0)
1915
-
1916
- **Original Work:**
1917
- Copyright (c) 2025 jogibear9988 <jochen.kuehner@gmx.de>
1918
-
1919
- **Modified Work:**
1920
- Copyright (c) 2026 gokturk413
1921
-
1922
- See the [LICENSE](./LICENSE) file for the full legal text.
1923
-
1924
- **Note:** This custom edition includes proprietary license validation and hardware binding features.
1
+ # ioBroker.mywebui
2
+
3
+ ![Number of Installations](https://iobroker.live/badges/mywebui-installed.svg)
4
+ ![Stable version](https://iobroker.live/badges/mywebui-stable.svg)
5
+ [![NPM version](https://img.shields.io/npm/v/iobroker.mywebui.svg)](https://www.npmjs.com/package/iobroker.mywebui)
6
+ [![Downloads](https://img.shields.io/npm/dm/iobroker.mywebui.svg)](https://www.npmjs.com/package/iobroker.mywebui)
7
+
8
+ [![NPM](https://nodei.co/npm/iobroker.mywebui.png?downloads=true)](https://nodei.co/npm/iobroker.mywebui/)
9
+
10
+ **Custom edited mywebui adapter by gokturk413** - Enhanced version with additional features and optimizations.
11
+
12
+ > **⚠️ IMPORTANT: This adapter requires a valid license key to operate.**
13
+ > This is a hardware-bound licensed version. Contact **gokturk413** for licensing information.
14
+
15
+ mywebui for ioBroker
16
+
17
+ ![image](https://raw.githubusercontent.com/iobroker-community-adapters/ioBroker.mywebui/master/screenshot.png)
18
+
19
+ ## Documentation
20
+
21
+ Authoring guides — building screens, binding live data, writing your own
22
+ controls — live in **[docs/README.md](docs/README.md)**. Start with
23
+ [Getting started](docs/getting-started.md), then
24
+ [Bindings](docs/bindings.md).
25
+
26
+ ## Description
27
+
28
+ This is a complete visualization system for ioBroker.
29
+
30
+ It includes features like:
31
+
32
+ - simple scripting language
33
+ - binding to ioBroker objects including converters & javascript expressions
34
+ - pasting of images from clipboard
35
+ - drag&drop of external images
36
+ - drag&drop of ioBroker objects to automaticy create bindings
37
+ - drag&drop of ioBroker objects to Properties to create Bindings to them
38
+ - relative signal paths to ioBroker objects in screens (the full path can be handed over from outside into the screen)
39
+ - split view editing of layout and html code
40
+ - global stylesheet support
41
+ - usage of npm packages containing webcomponents
42
+ - screens inside of screens
43
+ - use all icon packages from ioBroker
44
+ - use charts from ioBroker
45
+ - use combined signals object id's e.g. "mywebui.0.test3.{mywebui.0.test3.select}" -> this will use the value from mywebui.0.test3.select for the signal name
46
+
47
+ There is more information about specific topics in the [wiki](https://github.com/iobroker-community-adapters/ioBroker.mywebui/wiki) (the German section has a few more articles than the English one).
48
+
49
+ ## Installation
50
+
51
+ ### Quick Install
52
+
53
+ ```bash
54
+ iobroker install gokturk413/iobroker.mywebui
55
+ ```
56
+
57
+ ### Dependencies
58
+
59
+ - You need the Web Adapter installed. It works with the following settings: ![image](https://raw.githubusercontent.com/iobroker-community-adapters/ioBroker.mywebui/master/web.png)
60
+
61
+ ### License Setup
62
+
63
+ This adapter requires a license key to operate. After installation:
64
+
65
+ 1. **First Start** - The adapter will fail (this is normal). Check logs for your Hardware ID:
66
+ ```bash
67
+ iobroker logs mywebui --lines 50
68
+ ```
69
+
70
+ 2. **Configure License** - Open Admin Panel → Instances → mywebui → Settings
71
+ - Enter the license key provided by gokturk413
72
+ - Save and restart
73
+
74
+ 3. **Auto-Registration** - Your hardware will be automatically registered on first successful start
75
+
76
+ For detailed setup instructions, see [LICENSE_SETUP_PUBLIC.md](./LICENSE_SETUP_PUBLIC.md)
77
+
78
+ **Note:** This is a hardware-bound license. The adapter will only work on registered hardware. Contact **gokturk413** for licensing.
79
+
80
+ **How the machine is recognised.** The Hardware ID comes from the SMBIOS system UUID and the OS machine id: Windows MachineGuid, `/etc/machine-id` on Linux. USB devices, monitors and network adapters do not change it.
81
+
82
+ The ID is read again at every licence check, so a VM cloned or moved while it runs is noticed. On Windows it is read straight from the firmware table and the registry, with no helper process. If one of the IDs cannot be read for a moment, its last value is used for up to 24 hours, and a passing hiccup never changes the identity.
83
+
84
+ If the SMBIOS UUID stays unreadable, the licence enters a grace period (`identity-unreadable`) while the key still lists this machine. Editing stays possible during grace; the licence becomes *restricted* only when grace runs out.
85
+
86
+ ### 🔧 SCADA Utility Functions (Auto-Installed)
87
+
88
+ This adapter includes powerful SCADA utility functions for value formatting, unit conversions, and more.
89
+
90
+ **Automatic Installation:** SCADA functions are automatically installed when you install this adapter via npm or GitHub. No manual setup required!
91
+
92
+ The setup runs automatically during `npm install` (postinstall hook) and copies utility files to your ioBroker data directory.
93
+
94
+ **Manual Setup (if needed):**
95
+ ```bash
96
+ npm run setup-scada
97
+ ```
98
+
99
+ For detailed usage instructions, see [SCADA_SETUP.md](./SCADA_SETUP.md)
100
+
101
+ **Features:**
102
+ - Value formatting with decimals, limits, scaling
103
+ - Temperature, pressure, flow conversions
104
+ - Linear scaling for analog signals (4-20mA, 0-10V)
105
+ - Alarm checking with color coding
106
+ - Statistical functions (average, moving average)
107
+ - Time formatting and deadband/hysteresis functions
108
+ - Global access in all Custom Controls and Formulas
109
+
110
+ ---
111
+
112
+ ## Custom Edition Features (gokturk413)
113
+
114
+ This custom edition extends the original mywebui with a SCADA‑oriented feature set. The
115
+ items below are the major additions over upstream.
116
+
117
+ ### 🧩 Multi‑project support
118
+ - Several independent projects in one adapter, each fully self‑contained under
119
+ `mywebui.0.projects/<name>/{data,widgets}` (screens, 3D screens, custom controls,
120
+ global style/script, installed npm widgets).
121
+ - Project selector in the designer toolbar with **create / rename / delete / export /
122
+ import** per project. The runtime opens a project via `runtime.html?project=<name>`
123
+ (parameter‑less `runtime.html` always shows `default`, kiosk‑safe).
124
+
125
+ ### 🟦 3D Editor (Three.js)
126
+ - A full 3D screen editor and 3D custom controls alongside the classic 2D designer:
127
+ `3D Screens` and `3D Custom Controls` (nested under `Controls`).
128
+ - Scene editing with assets, lights, camera, grid, signal bindings and drives; rendered
129
+ in the runtime via the embedded 3D viewer.
130
+
131
+ ### 📦 Global (platform‑default) custom controls
132
+ - A library of project‑independent default controls (2D + a sample 3D control) that ship
133
+ with the platform and are seeded on install into `mywebui.0.data/global/`.
134
+ - Editable, usable in every project's screens, browsable under the `Global` tree node
135
+ (`CustomControls`, `3D Custom Controls`). Project controls with the same name take
136
+ precedence over a global one.
137
+
138
+ ### 🔐 Group‑based access control (Screen Accessibility)
139
+ Server‑enforced (the adapter resolves ioBroker group membership from the DB — the
140
+ frontend is not trusted), runtime‑gated visualization access:
141
+ - **Runtime (read):** *blacklist* model — ticking a group **blocks** it from a screen at
142
+ runtime; unticked groups are allowed; nothing ticked = open to all. Per‑screen
143
+ (overrides global) **and** a project‑wide global default. When blocked, the screen shows
144
+ an **“Access Denied” message** or **redirects** to another screen (configurable).
145
+ - **Editor (write):** the designer is **administrator‑group only**; the built‑in `admin`
146
+ user always has editor access and can additionally forbid specific administrator users
147
+ from the editor. The built‑in `admin` user can be blocked at *runtime* but never from
148
+ the editor.
149
+ - Two toolbar panels: **🔐 Permissions** (project‑level groups + editor‑user control) and
150
+ **🗂️ Screen Access** (per‑screen). Both mirror the Settings‑tab **Screen Accessibility
151
+ Control** and sync on save.
152
+ - ioBroker's own file/object ACLs are left at their defaults — access control is purely
153
+ app‑level so it does not conflict with the platform's permission system.
154
+
155
+ ### 🎨 Theming & branding
156
+ - Light/dark/other theme adaptation via `color-scheme` + `light-dark()` + `--ui-*`
157
+ design tokens across the whole designer.
158
+ - Neon‑glassmorphic solution explorer, branded tab title (**MYWEBUI DESIGNER** /
159
+ **MYWEBUI**) and custom favicon.
160
+
161
+ ### 🔒 License protection & code obfuscation
162
+ - Hardware‑bound license validation (Ed25519‑signed, validated by the obfuscated backend;
163
+ the frontend shows a license overlay if invalid).
164
+ - **Hybrid build model:** you develop with **readable source** (git, local); the published
165
+ npm package ships **obfuscated** backend + own frontend (vendored libraries untouched).
166
+ Obfuscation runs in the CI publish workflow on a disposable runner — your source is never
167
+ obfuscated in place. License parts are obfuscated locally (their secret keys never enter
168
+ CI). Source maps and readable license source are excluded from the npm package.
169
+
170
+ ### 🔗 Bindings (signals, states, objects, properties)
171
+ Bindings connect an element's attribute/property/content to a data source. In the
172
+ designer click the **□ button** next to a property in the property grid to open the
173
+ binding editor. A binding is written into the HTML as a `bind-…` attribute.
174
+
175
+ **Binding targets** (what is bound on the element):
176
+ | Attribute | Effect |
177
+ |---|---|
178
+ | `bind-prop:<property>` | a DOM/web‑component property (e.g. `bind-prop:hidden`, `bind-prop:disabled`, `bind-prop:value`, `bind-prop:text-content`, `bind-prop:inner-html`) |
179
+ | `bind-attr:<attribute>` | an HTML attribute |
180
+ | `bind-content:text` / `bind-content:html` | the element's text / HTML content |
181
+ | `bind-css:<class>` | toggles a CSS class |
182
+ | `bind-cssvar:<--var>` | sets a CSS custom property |
183
+ | `bind-style:<prop>` | a single inline style property |
184
+
185
+ **Source forms** (where the value comes from — the right‑hand side of the binding):
186
+ | Form | Meaning |
187
+ |---|---|
188
+ | `myAdapter.0.device.STATE` | plain object id → the state **value** (`state.val`); two‑way for inputs |
189
+ | `state:myAdapter.0.device.STATE` | the **whole state** object → use `.val`, `.ack`, `.ts`, `.lc`, `.q` (e.g. show quality/timestamp) |
190
+ | `object:myAdapter.0.device.STATE` | the ioBroker **object** (`common`, `native`, …) e.g. unit/min/max/role |
191
+ | `??propertyName` | a **screen/control property** (instance property declared on the screen or custom control) |
192
+ | `.suffix` | **relative** id — prefixed at runtime with the host control's `relativeSignalsPath` (reusable controls) |
193
+ | `local_<name>` | a **local** (browser‑only) state, not persisted to ioBroker |
194
+
195
+ Special read‑only values `width` / `height` expose the element's live size. Conversions,
196
+ format strings and a JavaScript multiplex expression are available in the binding editor
197
+ for value transformation.
198
+
199
+ ### 🧬 Dynamic properties
200
+ Any element on a screen — including installed **npm / Lit package widgets** — can get extra
201
+ per‑instance properties without changing the widget's code:
202
+ - Select an element → **`dynamic` tab** in the property grid → add/remove a property
203
+ (name, type `string|number|boolean|color|enum|signal`, default, optional enum values).
204
+ - Stored on the element as the `dynamic-property-defs` attribute (a JSON array).
205
+ - At runtime real accessors are created (with `…-changed` events), so dynamic properties
206
+ are fully **bindable** (two‑way) and usable from scripts just like native ones.
207
+ - Lit/package widgets may also expose webui‑specific editors by declaring a
208
+ `static webuiProperties = { name: { type:'signal'|'color'|'screen'|'enum', values? } }`.
209
+
210
+ ### Notable fixes
211
+ - **OAuth token‑refresh under a subpath:** the socket client refreshed the auth token via a
212
+ relative `./oauth/token`, which resolved to `/mywebui/oauth/token` (404) when served under
213
+ `/mywebui/` and forced periodic full‑page reloads. It now uses the absolute `/oauth/token`
214
+ endpoint, so the runtime/designer no longer auto‑refresh on token expiry.
215
+
216
+ ## Concepts
217
+
218
+ ### Description
219
+
220
+ The Designer uses Web Components, so the HTML you design is inside of a Shadowroot of a Webcomponent. This means, you cannot style <body> or <html> inside of the Stylesheet. To style the outer Layout, use the ":host" selector.
221
+ This also means, you cannot use "on..." eventhandlers. Use the "@..." event assignment.
222
+
223
+ ### Custom Controls in mywebui
224
+
225
+ You can create your own reusable CustomControls in mywebui, each of which can have its own Javascript, Properties and a template.
226
+
227
+ You can use Double-Bracket Syntax and Double-Curly-Bracket Syntax of the "BaseCustomWebcomponent" to create bindings from the Template to the properties defined in the Designer. Curylbrackets create two way Bindings.
228
+ If you use the Bindings Dialog, you can Bind to a Property with ??Propertyname and to IoBroker Object in the Property via ?Propertyname.
229
+ In Scripts you can also write to Signals defined in Custom Properties.
230
+
231
+ You can include Javascript in your CustomControl or Screen.
232
+ In addition, you can export a function `init(instance)` wich will be called when your CustomControl will be instantiated.
233
+ Finally, `connected()` and `disconnected()` functions can be defined to be called when ...
234
+
235
+ ## Sponsoring
236
+
237
+ If you want to help the development, sponsor this project at https://github.com/sponsors/jogibear9988
238
+
239
+ ## Developing
240
+ * Install Repository as Adapter in IOBroker
241
+ * Download the Repository to an extra "dev" directory, do not develop inside the ioBroker Node_modules directory.
242
+ * Do the following steps inside of the "dev" dirctory.
243
+
244
+ * Install dependencies
245
+ ```
246
+ $ npm install
247
+ ```
248
+
249
+ * Compile Typescript after doing changes (or press Ctrl + Shift + B in VsCode and select "tsc watch")
250
+ ```
251
+ $ npm run tsc
252
+ ```
253
+
254
+ * Adjust 'config.js' to match you ip-adress and port for your iobroker
255
+ (The config.js in the repository root will be replaced with the one in '/config' when running 'npm build')
256
+ ```
257
+ window.iobrokerHost = '192.168.1.2';
258
+ window.iobrokerPort = '8082';
259
+ window.iobrokerSocketScriptUrl = 'http://' + window.iobrokerHost + ':' + window.iobrokerPort + '/lib/js/socket.io.js';
260
+ ```
261
+
262
+ * Run the app in a local server
263
+ ```
264
+ $ npm start
265
+ ```
266
+
267
+ * Navigate Chrome to [localhost:8000]() to see the app.
268
+
269
+ ### More about Development
270
+
271
+ - Run
272
+ ```
273
+ $ npm run reflection
274
+ ```
275
+ to recreate reflection files for Scripting wich are used for the property grid
276
+
277
+ - Run
278
+ ```
279
+ $ npm run build
280
+ ```
281
+ to copy compiled files and node_modules to www folder so adapter is installable via github
282
+
283
+ - Run
284
+ ```
285
+ $ npm run release
286
+ $ npm publish
287
+ ```
288
+ to create correct release commit for iobroker, Be carefull this also pushes to git repo.
289
+ Be sure to edit "CHANGELOG.md" before, the text in "## **WORK IN PROGRESS**" in README.Md will be used for version info
290
+
291
+ ## Info about the Adapter.
292
+
293
+ The Adapter is based on the following Designer component:
294
+ https://github.com/node-projects/web-component-designer
295
+
296
+ You need to create a screen "start", this is the first one called when you open runtime.html,
297
+ but you can change this via query parameter:
298
+ runtime.html?screenName=screen2
299
+
300
+ ## Changelog
301
+ <!--
302
+ Placeholder for next versions:
303
+ ### __WORK IN PROGRESS__
304
+ -->
305
+ ### 1.176.0 (2026-10-06)
306
+ * (gokturk413) feat(navigation): the sidebar has its own toggle in its header (≡‹ folds to icons, ≡› opens), as in most UIs; the app bar's ☰ only brings back a hidden menu; on a phone the toggle hides the menu
307
+
308
+ ### 1.175.2 (2026-10-06)
309
+ * (gokturk413) feat(navigation): app bar on a phone — the centre and right slots open from a ⋮ button as a panel; the caption shortens
310
+
311
+ ### 1.175.1 (2026-10-06)
312
+ * (gokturk413) feat(controls): dashboard panel-card is a container (controls inside flow and wrap), setpoint-slider keeps room for its value bubble; side menu starts closed on phones; docs: building a dashboard that works on a phone
313
+
314
+ ### 1.175.0 (2026-10-06)
315
+ * (gokturk413) fix: a session that ran out no longer reloads the page forever ("?login&href=" loop): the session is renewed with the refresh token, else web.0's login page brings the user back to the same screen; Global → Designer holds the built-in element sets (mywebui, layout, native), Controls → Designer only the project's npm packages; screen viewer with objectType report lists the reports at once; report Generate → Signal works with local_ values and report properties (watched by the page that shows the report)
316
+
317
+ ### 1.174.0 (2026-10-02)
318
+ * (gokturk413) feat(controls): dashboard controls in global/controls/dashboard — panel-card, kpi-tile, countdown-tile, conveyor, conveyor-box, command-group, setpoint-slider (with range), logic-gate, status-chip, boiler, dial-gauge, time-spinner, notification-bell; demo screen dashboard/demo; Animations window: Start offset (0–1) so several elements on one path run evenly spaced
319
+
320
+ ### 1.173.1 (2026-10-02)
321
+ * (gokturk413) fix(reports): a report asked through the gateway is rendered for the gateway's user; every browser-facing relay (rest-api, webapi …) needs a proven user
322
+
323
+ ### 1.173.0 (2026-10-02)
324
+ * (gokturk413) fix(security): mywebui's user-dependent server calls go through a gateway in web.0 (webExtension.cjs, POST /mywebui-api) that takes the user from the web session and signs it for mywebui.0; secWriteState, listReports and getReportFile no longer accept a user name typed by the browser over sendTo
325
+
326
+ ### 1.172.0 (2026-10-01)
327
+ * (gokturk413) feat(runtime): Confirm & Protect — a rule on a control makes its writes ask first: yes / no, a choice of commands, or the user's own password checked on the server (sendTo protectedWrite; token after a success, lockout after wrong passwords, supervisor approval with their own password, audit in the state's c field); designer window "Confirm" on the right strip; global dialog control dialog/confirm-dialog (new default controls now reach existing installs); optional ACL restriction of the protected states
328
+
329
+ ### 1.171.0 (2026-10-01)
330
+ * (gokturk413) feat(translations): Translations dock scope "Built-in (runtime)" — the runtime's own texts with their 5 built-in languages as placeholders, reword per language for the project, ↺ back to built-in; a project text in one language no longer replaces the built-in text of the other languages
331
+
332
+ ### 1.170.0 (2026-10-01)
333
+ * (gokturk413) feat(runtime): state details panel for administrators (click a badge / Alt+click a control: every bound state with read and write status); runtime texts (write feedback, read quality, quality codes, the panel) in az/en/ru/de/tr, overridable by project translations
334
+
335
+ ### 1.169.0 (2026-10-01)
336
+ * (gokturk413) feat(navigation): Start as — the menu opens full, icons only, hidden, or as this browser left it last time
337
+
338
+ ### 1.168.2 (2026-10-01)
339
+ * (gokturk413) fix(navigation): with the sidebar on the right the ☰ sits in the app bar's right corner, and the app bar keeps room for it there
340
+
341
+ ### 1.168.1 (2026-10-01)
342
+ * (gokturk413) fix(designer): Settings splits Navigation into "this screen" and "all screens" (position, layout, theme… are global); a rebuilt sidebar lets go of its listeners and badge subscriptions
343
+
344
+ ### 1.168.0 (2026-10-01)
345
+ * (gokturk413) feat(navigation): position left/right/top/bottom (top/bottom as a bar with drop-down groups), layout push/overlay, a badge per entry from a state (summed on groups); fix: a control updated live no longer throws in disconnectedCallback
346
+
347
+ ### 1.167.1 (2026-10-01)
348
+ * (gokturk413) fix(designer): Settings → Navigation → Groups follows Group items at once
349
+
350
+ ### 1.167.0 (2026-10-01)
351
+ * (gokturk413) feat(navigation): menu groups get their own title (translatable), icon and order (Settings → Navigation → Groups); with icons only, a group opens its entries in a panel beside the sidebar; read-quality and write-feedback layers sit under the navigation
352
+
353
+ ### 1.166.0 (2026-10-01)
354
+ * (gokturk413) feat(navigation): menu groups by folder or by a group per screen (open/close, nested), SVG menu icons in the theme colour, the screen moves and scales with the sidebar (easing, no jump)
355
+
356
+ ### 1.165.1 (2026-10-01)
357
+ * (gokturk413) fix(runtime): read quality frames the whole control (content bigger than the host) and watches custom-control properties of type signal (input_with_button); scada_point_panel and ReportSelector no longer overflow their own box
358
+
359
+ ### 1.165.0 (2026-10-01)
360
+ * (gokturk413) feat(runtime): read quality — every bound control shows when its value cannot be trusted (quality code, driver down, stale, missing); write feedback names the quality code and no longer counts substitute values as errors; docs/status-indicators.md (en + az)
361
+
362
+ ### 1.164.0 (2026-10-01)
363
+ * (gokturk413) feat(designer): layout toolbar, upright overlays on rotated controls; incremental npm upload
364
+
365
+ ### 1.163.1 (2026-09-30)
366
+ * (gokturk413) fix(runtime): pending write drawn at once; @click="[[…]]" on a screen threw
367
+
368
+ ### 1.163.0 (2026-09-30)
369
+ * (gokturk413) feat(runtime): write feedback — every operator write shows whether the driver confirmed it
370
+
371
+ ### 1.162.8 (2026-09-30)
372
+ * (gokturk413) fix(designer): the right tool-window strip lost its names on a short window
373
+
374
+ ### 1.162.7 (2026-09-30)
375
+ * (gokturk413) fix(designer): the obfuscated release designer did not load — ReportToolbox
376
+
377
+ ### 1.162.6 (2026-09-30)
378
+ * (gokturk413) fix(controls): valve_faceplate buttons carried an empty "bind-attr:"
379
+
380
+ ### 1.162.5 (2026-09-30)
381
+ * (gokturk413) fix(licence): a machine id that stops answering is no longer a tamper
382
+
383
+ ### 1.162.4 (2026-09-30)
384
+ * (gokturk413) fix(designer): report canvas styles, Report toolbox click, translation key actions
385
+
386
+ ### 1.162.3 (2026-09-30)
387
+ * (gokturk413) fix(controls): property defaults set before the first binding pass
388
+
389
+ ### 1.162.2 (2026-09-30)
390
+ * (gokturk413) fix(runtime): two-way bindings write numbers to number states; directive test heading
391
+
392
+ ### 1.162.1 (2026-09-30)
393
+ * (gokturk413) perf(runtime): the navigation menu appears with the screen
394
+
395
+ ### 1.162.0 (2026-09-29)
396
+ * (gokturk413) feat(charts): `<iobroker-webui-echart>` — live ECharts in viewer and designer, the same chart in HTML/PDF
397
+
398
+ ### 1.161.0 (2026-09-29)
399
+ * (gokturk413) feat(designer): History Query builder + Report toolbox; docs/reports.md
400
+
401
+ ### 1.160.0 (2026-09-28)
402
+ * (gokturk413) feat(reports): report theme, full web platform in the sandbox; app bar steady and responsive
403
+
404
+ ### 1.159.0 (2026-09-28)
405
+ * (gokturk413) fix(reports): pictures in generated reports — SVG/PNG in HTML and PDF
406
+
407
+ ### 1.158.0 (2026-09-28)
408
+ * (gokturk413) feat(reports): Output → Languages — one server file per language, {lang} in path or name
409
+
410
+ ### 1.157.0 (2026-09-28)
411
+ * (gokturk413) feat: engine in the fork; translations in reports; live toolbox; quiet connection monitor
412
+
413
+ ### 1.156.0 (2026-09-28)
414
+ * (gokturk413) fix(directives): every template directive tested in control, screen and report; 9 bugs fixed
415
+
416
+ ### 1.155.0 (2026-09-27)
417
+ * (gokturk413) feat(reports): template directives on screen and report pages; history options demo
418
+
419
+ ### 1.154.0 (2026-09-27)
420
+ * (gokturk413) feat(reports): reports rendered for a user, report scripts in the sandbox, history: directive
421
+
422
+ ### 1.153.0 (2026-09-27)
423
+ * (gokturk413) feat(reports): the fonts the author picks reach the PDF; toolbox rights set in the designer
424
+
425
+ ### 1.152.0 (2026-09-27)
426
+ * (gokturk413) feat(reports): history on the backend, five languages in PDF, the dialog's dates applied
427
+
428
+ ### 1.151.0 (2026-09-27)
429
+ * (gokturk413) feat(reports): PDF painted as the report looks — Takumi replaces pdfmake
430
+
431
+ ### 1.150.0 (2026-09-27)
432
+ * (gokturk413) feat(reports): live reports, range from states, reports embeddable in screens
433
+
434
+ ### 1.149.0 (2026-09-27)
435
+ * (gokturk413) fix(reports): print in colour; show the date boxes only for a custom range; icons in the toolbox
436
+
437
+ ### 1.148.0 (2026-09-27)
438
+ * (gokturk413) feat(reports): the browser's printed date, title, URL and page number are optional
439
+
440
+ ### 1.147.0 (2026-09-27)
441
+ * (gokturk413) fix(reports): a browser saves on the server through the trigger state, not sendTo
442
+
443
+ ### 1.146.1 (2026-09-27)
444
+ * (gokturk413) fix(reports): print the report alone, not the whole application
445
+
446
+ ### 1.146.0 (2026-09-27)
447
+ * (gokturk413) feat(reports): PDF and CSV output, a time range in the viewer, reports in the menu
448
+
449
+ ### 1.145.0 (2026-09-26)
450
+ * (gokturk413) feat(reports): a bound state starts a server run; theme the Report window
451
+
452
+ ### 1.144.0 (2026-09-26)
453
+ * (gokturk413) feat(reports): schedule + trigger (task 9), VS-style tool windows (task 10)
454
+
455
+ ### 1.143.0 (2026-09-26)
456
+ * (gokturk413) feat(reports): generate on the server, download in the browser (task 8)
457
+
458
+ ### 1.142.0 (2026-09-26)
459
+ * (gokturk413) feat(reports): run control scripts on a DOM inside the sandbox (task 6)
460
+
461
+ ### 1.141.0 (2026-09-26)
462
+ * (gokturk413) feat(designer): events on the screen / report root, in the Events panel
463
+
464
+ ### 1.140.0 (2026-09-26)
465
+ * (gokturk413) feat(reports): backend renderer, expression sandbox, report events, screen-only (task 5)
466
+
467
+ ### 1.139.0 (2026-09-26)
468
+ * (gokturk413) feat(reports): open a report in the browser, with the full screen chrome (task 4)
469
+
470
+ ### 1.138.0 (2026-09-26)
471
+ * (gokturk413) feat(reports): the page canvas — paper, rulers, bands and page breaks (task 3)
472
+
473
+ ### 1.137.0 (2026-09-26)
474
+ * (gokturk413) feat(reports): Reports in the solution tree, with its own icons (task 2)
475
+
476
+ ### 1.136.1 (2026-09-26)
477
+ * (gokturk413) fix(reports): a report keeps every screen setting; only its size comes from the page
478
+
479
+ ### 1.136.0 (2026-09-26)
480
+ * (gokturk413) feat(reports): the .report object type (task 1 of the report plan)
481
+
482
+ ### 1.133.0 (2026-09-25)
483
+ * (gokturk413) feat(licence): move mywebui to the scada-core state machine (RFC-005 L3)
484
+ * (gokturk413) feat(licence): a host ledger per licence in every candidate directory
485
+ * (gokturk413) fix(licence): a key no longer erases the trial history in the adapter's slot
486
+ * (gokturk413) fix(licence): a stopped install no longer opens a usage-grace window
487
+ * (gokturk413) fix(licence): do not log 'unlocked' for a stopped install
488
+ * (gokturk413) feat(admin): explain the trial, the two hardware ids and the per-VM licence
489
+
490
+ ### 1.132.0 (2026-09-15)
491
+ * (gokturk413) fix(designer): Properties dock tabs wrap onto rows instead of truncating
492
+ * (gokturk413) fix(ci): pin Rust to a newer stable broke both aarch64 cross-builds
493
+
494
+ ### 1.130.0 (2026-08-04)
495
+ * (gokturk413) fix(dist): the public release would have shipped a broken adapter — three ways
496
+ * (gokturk413) fix(ci)!: the release workflow would have force-pushed over this repo's own history
497
+ * (gokturk413) fix(ci): expect the triple names napi actually produces, and cross-check them
498
+
499
+ ### 1.129.0 (2026-08-04)
500
+ * (gokturk413) feat(native): main.js permission handlers call the engine
501
+ * (gokturk413) fix(dist): ship the engine and its bridge; guard against an engine-less tarball
502
+ * (gokturk413) feat(dist): allow-list staging script for the public artifact tree
503
+ * (gokturk413) fix(dist): stop shipping scripts/ — it is the build process, not the product
504
+ * (gokturk413) feat(dist): independent pre-push audit of the staged public tree
505
+ * (gokturk413) fix(dist): stop publishing TypeScript sources and vendored package internals
506
+ * (gokturk413) feat(ci): public release workflow — allow-list staging, pre-push audit, dry-run default
507
+ * (gokturk413) fix(ci): deliver the cross-built engines into the package
508
+ * (gokturk413) fix(ci): publish builds every engine itself, and demands all 8 before shipping
509
+
510
+ ### 1.128.0 (2026-08-03)
511
+ * (gokturk413) fix(license): gate every deploying command, not just two of them
512
+ * (gokturk413) feat(native): group resolution + checkVisibility allow-list
513
+ * (gokturk413) feat(native): screen ACL — write allow-rule, read blacklist, new/legacy arbitration
514
+ * (gokturk413) fix(native): a non-string in a blocked list denies, matching the JS
515
+ * (gokturk413) feat(native): PlantPAx write permission model (action codes + area levels)
516
+ * (gokturk413) fix(native): an explicit null area level falls through to the '*' fallback
517
+ * (gokturk413) fix(native): model JS falsiness — non-string codes and empty-string levels no longer fail open
518
+ * (gokturk413) fix(native): prototype-inherited action keys no longer bypass the permission model
519
+ * (gokturk413) feat(native): resolve_screen_access/visibility/sec_write napi entries + parity test
520
+
521
+ ### 1.127.0 (2026-08-02)
522
+ * (gokturk413) feat(license): surface tag usage + grace/violation state in the designer console
523
+ * (gokturk413) fix(license): keep the grace high-water-mark alive when an audit fails
524
+
525
+ ### 1.126.0 (2026-08-01)
526
+ * (gokturk413) feat(native): run/cache the usage audit and enforce the locked verdict
527
+
528
+ ### 1.125.0 (2026-08-01)
529
+ * (gokturk413) feat: (deep-fidelity) — P_Gate faceplate rebuilt faithful to real .gfx single-page flow (Inputs→Gate Delay→On/Off Delay→Output); fixes faceplate numeric inputs never populating
530
+ * (gokturk413) feat(native): scaffold mywebui_scada_engine crate with version()/ping()
531
+ * (gokturk413) feat(native): engineBridge loader as the single engine import point
532
+ * (gokturk413) feat(native): load mywebui_scada_engine in adapter main() and log its version
533
+ * (gokturk413) feat(native): cross-platform hardware-id (whid2- machine-id/UUID/MachineGuid)
534
+ * (gokturk413) feat(native): Ed25519 license verify + payload parse (embedded public key)
535
+ * (gokturk413) feat(native): clock-tamper-resistant 30-day trial anchor (monotonic + HMAC + hwid-bound)
536
+ * (gokturk413) feat(native): validate_license/hardware_id napi entry points + edition/trial resolution
537
+ * (gokturk413) feat(native): main.js uses the engine for license/hardware-id; no-stop trial->free; delete JS validators
538
+ * (gokturk413) fix(license): designer allows trial/free editions (was locking them out)
539
+ * (gokturk413) fix(build): rebuild committed dist/backend from src-original (Phase 1) + drop orphan validator
540
+ * (gokturk413) feat(native): bridge Effect protocol + pure demo handler
541
+ * (gokturk413) feat(native): handle_demo napi export + JS effectApplier + mock-host B test
542
+ * (gokturk413) feat(native): async host-callback PoC (napi ThreadsafeFunction + awaited JS Promise)
543
+ * (gokturk413) feat(native): importmap scaffold — ImportmapBuilder + path helpers + embedded hacks
544
+ * (gokturk413) fix(native): importmap uses posix pjoin (not native path join) for web-path parity
545
+ * (gokturk413) feat(native): importmap add_to_importmap (exports/main/module resolution)
546
+ * (gokturk413) fix(native): pjoin normalizes leading ./ like path.posix.join (once, not per call site)
547
+ * (gokturk413) fix(native): add_to_importmap uses plain concat at JS:282/285/293 (not pjoin)
548
+ * (gokturk413) feat(native): importmap load_dependency (recursive, deduped, native fs)
549
+ * (gokturk413) feat(native): importmap parse_npm_package (custom-elements + esbuild bundle integration)
550
+ * (gokturk413) feat(native): importmap build_importmap top-level + writes 5 loader files
551
+ * (gokturk413) fix(native): serde_json preserve_order so generated importmap.js matches JS key order
552
+ * (gokturk413) feat(native): create_importmap napi async wrapper + Node integration test
553
+ * (gokturk413) feat(native): main.js uses engine.create_importmap; delete JS ImportmapCreator
554
+ * (gokturk413) fix(native): live-parity fixes — bundle host must resolve a string; JS:86 error text
555
+ * (gokturk413) fix(build): rebuild dist/backend after the port + correct the host-callback contract docs
556
+ * (gokturk413) feat(native): upload walk + ignore list + progress throttling (pure, tested)
557
+ * (gokturk413) feat(native): upload collect_existing_files_to_delete (DB-driven recursion)
558
+ * (gokturk413) feat(native): upload erase/upload_internal/driver with effect logging
559
+ * (gokturk413) fix(native): normalize source_dir in the upload driver (backslash paths skipped every file)
560
+ * (gokturk413) feat(native): upload_widgets napi wrapper + Node integration test
561
+ * (gokturk413) feat(native): main.js uses engine.upload_widgets; delete JS UploadHelper
562
+ * (gokturk413) feat(native): tag extraction — distinct ioBroker state IDs from screens/controls
563
+ * (gokturk413) feat(native): usage counting, limit checking and deterministic allowed-screen selection
564
+ * (gokturk413) fix(native): dedupe project names by set, stabilize counted_tags order, document unchecked limits
565
+ * (gokturk413) feat(native): 2-day grace anchor — HMAC-signed, hardware-bound, rollback-proof
566
+ * (gokturk413) fix(native): saturating arithmetic in grace/trial anchors + explicit blob-persistence contract
567
+ * (gokturk413) feat(native): audit_usage napi entry — usage, violations, locked verdict and grace state
568
+ * (gokturk413) fix(native): corrupt licence falls back to free tier; degraded audits never unlock or clear the grace anchor
569
+ * (gokturk413) fix(native): licence needs a positive marker; a hard lock only clears via a verified licence
570
+ * (gokturk413) fix(native)!: audit_usage verifies the licence KEY itself, not a caller-supplied verdict
571
+
572
+ ### 1.124.0 (2026-07-07)
573
+ * (gokturk413) feat: (deep-fidelity) — P_Motor faceplate audited vs real .gfx: adds Stopped/NotRdy lamps, PermOK/NBPerm/Sim/MaintByp flags, Bypass+OvldNotify maint rows (all adapter-gated)
574
+
575
+ ### 1.123.0 (2026-07-07)
576
+ * (gokturk413) feat: (deep-fidelity) — PlantPAx-faithful SVG device symbols + adapter-data-gating
577
+
578
+ ### 1.122.0 (2026-07-07)
579
+ * (gokturk413) feat: (deep-fidelity) — P_AIn alarm-bar uses real Rockwell command-button PNGs (Cmd_AlmAck / Cmd_AlmAckAllReset / Cmd_Reset) instead of text buttons. Verified live: 3 real PNG command buttons
580
+
581
+ ### 1.121.0 (2026-07-07)
582
+ * (gokturk413) feat: (deep-fidelity) — alarm-row uses REAL Rockwell PNG icons (data-URI)
583
+
584
+ ### 1.120.0 (2026-07-07)
585
+ * (gokturk413) feat: (wave B) — +8 device types (P_ValveMO/ValveMP/nPos/Motor2Spd/Dose/HiLoSel/DBC/Logic) via data-driven _dev_faceplate + real AOI members extracted from L5X; typeToTag/slug/seeds. Generic-convention faceplates (deep .gfx fidelity to follow)
586
+
587
+ ### 1.119.0 (2026-07-07)
588
+ * (gokturk413) feat: (wave B start) — new types P_DIn + P_DOut (Discrete I/O)
589
+
590
+ ### 1.118.0 (2026-07-07)
591
+ * (gokturk413) feat: (wave A COMPLETE) — Valves/PIDE/Infra verified on real tab model + members
592
+
593
+ ### 1.115.0 (2026-07-07)
594
+ * (gokturk413) feat: (wave A) — Motors group (P_Motor/P_MotorRev/P_VSD): labeled Home/Maint/Alarm tabs + real members (Sts_Running, OCmd_Start...). Shared _dev_faceplate tab-strip now Home+labeled, positioning Valves/PIDE/Infra for Tasks 8-10.
595
+
596
+ ### 1.114.4 (2026-07-07)
597
+ * (gokturk413) feat: (wave A) — P_AIn Engineering (Advanced) matches the mockup: PV Source & Quality checkboxes + Substitute PV value + Filtering & Thresholds (Fail Hi/Lo, PV decimals) all with real member labels; _cfg_row helper + cfgmem styling; pvDecPlcs seed/meta
598
+
599
+ ### 1.114.3 (2026-07-07)
600
+ * (gokturk413) feat: (wave A) — alarm-row shows real member labels (HiHi.Alm · HiHi.Ack) + severity-tier colours (HiHi/LoLo/Fail red, Hi/Lo amber) matching the mockup
601
+
602
+ ### 1.114.2 (2026-07-06)
603
+ * (gokturk413) feat: (wave A) — P_AIn real device-state flags: Sim (Inp_Sim), Maint Byp (Sts_MaintByp), Substitute, Input Fail on Home tab; seed+meta for sim/simPvSet/maintByp/oos
604
+
605
+ ### 1.114.1 (2026-07-06)
606
+ * (gokturk413) fix: (wave A) — P_AIn faceplate visual fidelity to mockup: labeled tabs (Home/Maint/Diag/Alarm/Trend), description line, Range/Substitute rows, clean card styling (header/tab-underline/kv-rows/flag-pills)
607
+
608
+ ### 1.114.0 (2026-07-06)
609
+ * (gokturk413) feat: (wave A) — P_AIn symbol colours by threshold-status (Sts_*) to match the MAI + alarm objects; unacked badge tracks real alarm objects. P_AIn REFERENCE COMPLETE (acceptance gate passed vs live P_AIn_01)
610
+
611
+ ### 1.113.0 (2026-07-06)
612
+ * (gokturk413) feat: (wave A) — P_AIn faceplate rebuilt to real model: Home tab (vertical MAI + PV block + status-flags), Alarm tab composes alarm-row components, Engineering uses scaling-widget; tabs Home/Maintenance/Diagnostics/Alarm/Trend + Advanced
613
+
614
+ ### 1.112.0 (2026-07-06)
615
+ * (gokturk413) feat: (wave A) - scaling-widget (raw->EU config) + status-flag components
616
+
617
+ ### 1.111.0 (2026-07-06)
618
+ * (gokturk413) feat: (wave A) — alarm-row component: severity + UNACK/ACK'D/SHELVED/SUPPRESSED/DISABLED chip + ack/shelve buttons
619
+
620
+ ### 1.110.0 (2026-07-06)
621
+ * (gokturk413) feat: (wave A) — Moving Analog Indicator: vertical scale, PV fill + pointer with value, HiHi/Hi/Lo/LoLo flags with EU value labels, threshold colour
622
+
623
+ ### 1.109.0 (2026-07-06)
624
+ * (gokturk413) feat: (wave A) — hybrid canonical+member labels in PlantPAx Types editor; P_AIn seed verified vs real AOI members
625
+ * (gokturk413) fix: (wave A task1) — alarm meta labels match resolver (HiHi.Alm/.Ack nested); add threshold-status keys hiHiSts/hiSts/loSts/loLoSts -> Sts_* for MAI flags
626
+
627
+ ### 1.108.1 (2026-07-06)
628
+ * (gokturk413) fix: PlantPAx faceplate/symbol button wiring (imperative ppWireSymbol/ppWireHeader; remove broken @click=[[...]] which no-oped)
629
+
630
+ ### 1.108.0 (2026-07-06)
631
+ * (gokturk413) feat: (wave3 COMPLETE) — P_MotorRev/CmdSrc/Gate/Intlk/Perm/Alarm/Meta faceplates; all 13 PlantPAx types now shipped (symbol+faceplate each), all composed from 8 reusable wave-1 components; dual-adapter seeds for every type
632
+
633
+ ### 1.107.0 (2026-07-06)
634
+ * (gokturk413) feat: (wave3) — P_ValveC/P_ValveSO/P_PIDE/P_VSD faceplates via generic _dev_faceplate composing wave-1 components (level-bar+slider+lamps+buttons+sparkline); rich dual-adapter seeds
635
+
636
+ ### 1.106.0 (2026-07-06)
637
+ * (gokturk413) feat: (wave3 start) — P_Motor symbol + faceplate composed from wave-1 components (4 status-lamp + 2 command-button), P_Motor seed both adapters (15 members)
638
+
639
+ ### 1.105.0 (2026-07-06)
640
+ * (gokturk413) feat: (wave2) — PlantPAx Types editor as Ignition tag-browser tree (9 collapsible member categories: Process Value/Alarm Limits/Deadbands/Status/Ack/Commands/Scaling/Quality/Identity + counts + per-member test)
641
+
642
+ ### 1.104.1 (2026-07-06)
643
+ * (gokturk413) feat: enlarge faceplate popup (min-width 320->480, settings 520x600, roomier padding/font)
644
+
645
+ ### 1.104.0 (2026-07-06)
646
+ * (gokturk413) feat: enriched Alarms tab (unacked count + Ack All/Reset & Ack/Reset via OCmd_ResetAckAll/OCmd_Reset) + 3 alarm-cmd seed fields
647
+ * (gokturk413) feat: wave1 primitives — plantpax/components/{status-lamp,command-button} (reusable boolean indicator + secWriteState command button)
648
+ * (gokturk413) feat: wave1 input primitives — plantpax/components/{toggle-switch,radio-toggle,std-slider} (read+write via secWriteState, secCan-gated)
649
+ * (gokturk413) feat: wave1 tank BlockStyle symbol (fill level = PV%, alarm color, click->faceplate) — 8 reusable plantpax components total
650
+
651
+ ### 1.103.0 (2026-07-06)
652
+ * (gokturk413) feat: Flintium-style icon tab-strip (Main: Operator/Maintenance/Trends/Diagnostics/Alarms + gear->Advanced: Engineering/HMI/Faults) with Trends/Diagnostics/HMI/Faults panes
653
+
654
+ ### 1.102.0 (2026-07-06)
655
+ * (gokturk413) feat: real Flintium-style P_AIn faceplate (level-bar component, EU-scaled Moving Analog Indicator, Raw Input Scaling + PV Source/Quality Engineering tab, expanded seed 37 fields)
656
+ * (gokturk413) feat: add plantpax/components/sparkline (live mini-trend) + embed in P_AIn Operator
657
+
658
+ ### 1.100.0 (2026-07-05)
659
+ * (gokturk413) feat: PlantPAx faceplate popup host on IOB (mount/unmount, no display:none leak) + typeToTag
660
+ * (gokturk413) feat: PlantPAx generator + P_AIn symbol & 4-tab faceplate controls
661
+
662
+ ### 1.99.1 (2026-07-05)
663
+ * (gokturk413) fix: Security editor dock had no background (showed white/host-default)
664
+ * (gokturk413) feat: add PlantPAx type-mapping resolver with full AOI catalog seed data
665
+ * (gokturk413) feat: wire PlantPAx type resolver into IobrokerHandler (IOB) singleton
666
+ * (gokturk413) feat: add PlantPAx Types dock editor custom element
667
+ * (gokturk413) feat: register PlantPAx Types dock tab in AppShell + rebuild runtime bundle
668
+
669
+ ### 1.99.0 (2026-07-04)
670
+ * (gokturk413) feat: Area & Permissions dock (assign data-area/data-action per element)
671
+
672
+ ### 1.98.0 (2026-07-04)
673
+ * (gokturk413) feat: server-enforced permission writes (secWriteState), phase 2
674
+
675
+ ### 1.97.0 (2026-07-04)
676
+ * (gokturk413) feat: Security editor dock (Users / Areas / Actions matrix / Codes)
677
+
678
+ ### 1.96.0 (2026-07-04)
679
+ * (gokturk413) feat: PlantPAx-style permission system (codes/actions/areas), phase 1
680
+
681
+ ### 1.95.1 (2026-07-04)
682
+ * (gokturk413) fix: multi-view injected elements now honor visibility conditions
683
+
684
+ ### 1.95.0 (2026-07-04)
685
+ * (gokturk413) fix: Monaco drag crash guard + all npm packages editable in Translations dock
686
+
687
+ ### 1.94.3 (2026-07-04)
688
+ * (gokturk413) fix: multi-view selections were not persisted (raw element writes)
689
+
690
+ ### 1.94.2 (2026-07-04)
691
+ * (gokturk413) fix: alarm viewers: designer instance also lacks _getDomElements + null-safe template exprs
692
+
693
+ ### 1.94.1 (2026-07-03)
694
+ * (gokturk413) fix: designer script errors in control editor (missing control APIs)
695
+
696
+ ### 1.94.0 (2026-07-03)
697
+ * (gokturk413) feat: alarm-history-viewer control (declarative, native datetime range)
698
+
699
+ ### 1.93.0 (2026-07-03)
700
+ * (gokturk413) feat: alarm-viewer control (Tabulator-free, declarative) + scoped-t fix
701
+
702
+ ### 1.92.0 (2026-07-03)
703
+ * (gokturk413) fix: translation modal keeps scope + migrate control groups to control-own dicts
704
+
705
+ ### 1.91.0 (2026-07-03)
706
+ * (gokturk413) feat: scoped translation system (control-own / npm-widget / project)
707
+
708
+ ### 1.90.0 (2026-07-03)
709
+ * (gokturk413) feat: Glass (glassmorphism) runtime theme + --ui-backdrop token
710
+
711
+ ### 1.89.0 (2026-07-03)
712
+ * (gokturk413) feat: modern themed logout control (pairs with user-badge)
713
+
714
+ ### 1.88.0 (2026-07-03)
715
+ * (gokturk413) feat: user-badge control: modern themed user chip for the app bar
716
+
717
+ ### 1.87.0 (2026-07-02)
718
+ * (gokturk413) feat: nav 'Auto (runtime theme)' preset + level_bar theme tokens
719
+
720
+ ### 1.86.0 (2026-07-02)
721
+ * (gokturk413) feat: theme-toggle control: segmented icon pill (Auto | Light | Dark)
722
+
723
+ ### 1.85.0 (2026-07-02)
724
+ * (gokturk413) fix: theme tokens in inline-style/script controls (scada_point_panel, input_with_button, TextViewer)
725
+
726
+ ### 1.84.0 (2026-07-02)
727
+ * (gokturk413) feat: linear-gauge rebuilt fully declarative (colored scale + pointer, zero render-JS)
728
+
729
+ ### 1.83.0 (2026-07-02)
730
+ * (gokturk413) feat: semantic theme tokens (--ui-ok/warn/error/info) + map control chrome/status colors to theme tokens
731
+
732
+ ### 1.82.0 (2026-07-02)
733
+ * (gokturk413) feat: user-definable themes via Global Style (CSS data-attribute model)
734
+
735
+ ### 1.81.0 (2026-07-02)
736
+ * (gokturk413) fix: linear-gauge reactivity + enum dropdowns + vertical min-tick
737
+
738
+ ### 1.80.0 (2026-07-02)
739
+ * (gokturk413) feat: runtime theme system + theme-selector control
740
+
741
+ ### 1.79.0 (2026-07-02)
742
+ * (gokturk413) feat: new mywebui adapter logo (gradient tech mark + wordmark)
743
+
744
+ ### 1.78.0 (2026-07-02)
745
+ * (gokturk413) fix: setpoint-gauge dark-runtime theming fallbacks
746
+
747
+ ### 1.77.0 (2026-07-02)
748
+ * (gokturk413) feat: setpoint-gauge control (thermostat-style, declarative bindings)
749
+
750
+ ### 1.76.0 (2026-07-02)
751
+ * (gokturk413) fix: theme the gauge controls via --ui-* tokens
752
+
753
+ ### 1.75.0 (2026-07-02)
754
+ * (gokturk413) feat: free linear-gauge + gauge-table controls (MODES-style)
755
+
756
+ ### 1.74.0 (2026-07-01)
757
+ * (gokturk413) fix: theme the designer context menu (was white/unreadable in dark themes)
758
+
759
+ ### 1.73.0 (2026-07-01)
760
+ * (gokturk413) feat: dedicated App Bar / Sidebar content editor
761
+
762
+ ### 1.72.0 (2026-07-01)
763
+ * (gokturk413) fix: settings-tab collapse arrows — right-aligned + bigger
764
+
765
+ ### 1.71.0 (2026-07-01)
766
+ * (gokturk413) feat: settings-tab menus — Layout collapsible, bigger arrows, collapsed by default
767
+
768
+ ### 1.70.0 (2026-07-01)
769
+ * (gokturk413) fix: theme the Multi-View dock like the other side panels
770
+
771
+ ### 1.69.0 (2026-07-01)
772
+ * (gokturk413) fix: multi-view panel — no duplicate + robust home-screen detection
773
+
774
+ ### 1.68.0 (2026-07-01)
775
+ * (gokturk413) feat: multi-view Stage 3 — ghost preview on target screens in the designer
776
+
777
+ ### 1.67.0 (2026-07-01)
778
+ * (gokturk413) feat: multi-view — show one element on multiple screens (vis-style)
779
+
780
+ ### 1.65.0 (2026-07-01)
781
+ * (gokturk413) feat: per-screen transition + fix screen-access disable sync + collapsible settings menus
782
+
783
+ ### 1.64.0 (2026-07-01)
784
+ * (gokturk413) fix: guard adoptedStyleSheets when control uses global style but none exists
785
+
786
+ ### 1.63.0 (2026-07-01)
787
+ * (gokturk413) feat: whenScreenReady() + screen-ready event + configurable screen transition
788
+
789
+ ### 1.62.0 (2026-06-30)
790
+ * (gokturk413) feat: delete slot items in nav app-bar/sidebar from the designer
791
+
792
+ ### 1.61.0 (2026-06-30)
793
+ * (gokturk413) feat: navigation/app-bar theme system + smooth hide-until-ready screen transitions
794
+
795
+ ### 1.60.0 (2026-06-30)
796
+ * (gokturk413) feat: navigation named slots for arbitrary controls (#3)
797
+
798
+ ### 1.59.0 (2026-06-30)
799
+ * (gokturk413) feat: navigation designer preview chrome (#2)
800
+
801
+ ### 1.58.0 (2026-06-30)
802
+ * (gokturk413) feat: modern-sidebar look for nav controls (#4)
803
+
804
+ ### 1.57.0 (2026-06-30)
805
+ * (gokturk413) feat: navigation live re-render on save (#1)
806
+
807
+ ### 1.56.1 (2026-06-30)
808
+ * (gokturk413) feat: nav menu-item/app-bar icons resolve relative project image paths
809
+
810
+ ### 1.56.0 (2026-06-30)
811
+ * (gokturk413) feat: Navigation Phase 2 — editable nav/app-bar custom controls + runtime mounter
812
+
813
+ ### 1.55.0 (2026-06-30)
814
+ * (gokturk413) feat: Navigation + Application Bar settings (Phase 1 — config UI + data model)
815
+
816
+ ### 1.54.1 (2026-06-30)
817
+ * (gokturk413) fix: Global Script editor threw 'IobrokerWebuiMonacoEditor is not defined'
818
+
819
+ ### 1.54.0 (2026-06-29)
820
+ * (gokturk413) feat: enable Global Script node (startup init() module) in the tree
821
+
822
+ ### 1.53.3 (2026-06-29)
823
+ * (gokturk413) fix: prover control drops at a normal size and scales on resize
824
+
825
+ ### 1.53.2 (2026-06-28)
826
+ * (gokturk413) fix: flow-line tool draws straight orthogonal segments (no freehand wavy)
827
+
828
+ ### 1.53.1 (2026-06-28)
829
+ * (gokturk413) fix: tee — thin centered bands (white space) + pipesize property so it snaps to pipes
830
+
831
+ ### 1.53.0 (2026-06-28)
832
+ * (gokturk413) feat: SCADA flow-line tool — dedicated toolbar button for orthogonal multi-segment polylines
833
+
834
+ ### 1.52.3 (2026-06-28)
835
+ * (gokturk413) feat: use the real tee artwork (4 teeTypes) in the tee control, not combined H+V pipes
836
+
837
+ ### 1.52.2 (2026-06-28)
838
+ * (gokturk413) fix: tee pipe square-tile geometry (generated in its script) so it tiles too
839
+
840
+ ### 1.52.1 (2026-06-28)
841
+ * (gokturk413) fix: smooth pipe gradient (linear straights + radial curves) instead of layered strokes
842
+
843
+ ### 1.52.0 (2026-06-28)
844
+ * (gokturk413) feat: pipe magnet-snap in the designer (edge snap + green indicator)
845
+
846
+ ### 1.51.0 (2026-06-28)
847
+ * (gokturk413) feat: normalize pipe controls to a unified square-tile model (vis-style mouth-to-mouth tiling)
848
+
849
+ ### 1.50.1 (2026-06-28)
850
+ * (gokturk413) fix: add VisibilityService.applyVisibility — custom controls threw on connect
851
+
852
+ ### 1.50.0 (2026-06-28)
853
+ * (gokturk413) feat: embedded (elementless) screen-layout tabs — flex-like, no webui-tab-container in code
854
+
855
+ ### 1.49.3 (2026-06-27)
856
+ * (gokturk413) feat: drop controls into the active tab pane (TabContainerPlacementService)
857
+
858
+ ### 1.49.2 (2026-06-26)
859
+ * (gokturk413) feat: rich Tabs editor inside the Properties tab (Tabs Layout group), revert broken dock mount
860
+
861
+ ### 1.49.1 (2026-06-26)
862
+ * (gokturk413) feat: show Layout/Tabs UI in the Properties dock too (split/tabs screens + controls)
863
+
864
+ ### 1.49.0 (2026-06-26)
865
+ * (gokturk413) feat: tabs designer rework — embedded (non-deletable/movable) container, tab add/remove/active UI, tab-position
866
+
867
+ ### 1.48.0 (2026-06-26)
868
+ * (gokturk413) fix(layout): strip stale generated split/tab container when type switched to flex/grid/none (save + runtime defensive) - fixes flex/grid props doing nothing after split->flex
869
+
870
+ ### 1.47.0 (2026-06-26)
871
+ * (gokturk413) feat(layout): alignment guides - red helper lines when a dragged element's edges/center align with siblings (designer + control editor)
872
+
873
+ ### 1.46.0 (2026-06-26)
874
+ * (gokturk413) feat(layout): penpot-style canvas grid overlay - track lines + draggable resize handles (live, writes settings.layout)
875
+ * (gokturk413) feat(layout): flex layout guides overlay (direction arrow + align/justify label)
876
+
877
+ ### 1.45.0 (2026-06-26)
878
+ * (gokturk413) feat: BroadcastChannel cross-tab command delivery (sync source with shipped bundle)
879
+ * (gokturk413) feat(layout): Phase 3 runtime - generate split/tabs container from settings.layout (saved html = panes only)
880
+ * (gokturk413) feat(layout): Layout panel uses the visual button-group UI (flex direction/align/justify/wrap icons, split orientation, type) like the webui-flex-container 'Flex Layout' editor
881
+ * (gokturk413) feat(layout): Phase 3 designer - split/tabs wrap-on-load + unwrap-on-save (panes-only html + metadata, container never saved/deletable; stable round-trip)
882
+
883
+ ### 1.44.2 (2026-06-26)
884
+ * (gokturk413) fix: guard disconnectedCallback dispose + resilient for:/repeat: cleanup
885
+ * (gokturk413) feat(layout): add layoutToStyle/applyLayoutStyle mapper
886
+ * (gokturk413) feat(layout): runtime applies settings.layout to ScreenViewer root host
887
+ * (gokturk413) feat(layout): designer applies settings.layout to canvas root host
888
+ * (gokturk413) feat(layout): picker returns metadata; new screen/control/global seed settings.layout
889
+ * (gokturk413) feat(layout): Layout panel in Settings tab (live edit, type/flex/grid)
890
+ * (gokturk413) feat(layout): Convert-to-layout for legacy flex-container roots (project + global)
891
+ * (gokturk413) feat(layout): custom controls apply their settings.layout to host at runtime
892
+ * (gokturk413) feat: add 'Remove HabPanel Style' action + dedupe Add; broadcast refresh on global style change
893
+ * (gokturk413) feat(layout): Phase 2 - interactive grid track editor (per-track value+unit fr/px/%/auto, add/remove) in Layout panel
894
+
895
+ ### 1.44.1 (2026-06-25)
896
+ * (gokturk413) fix: for: loop never rendered elements due to shared oldValuesSymbol conflict
897
+
898
+ ### 1.44.0 (2026-06-25)
899
+ * (gokturk413) feat: advanced template directives, eval→new Function, repeat binding fix
900
+
901
+ ### 1.43.1 (2026-06-25)
902
+ * (gokturk413) perf: 3D gallery renders single control only, never folders/screens
903
+ * (gokturk413) feat: for:/repeat: loop var as element prop, new directives, npm fixes
904
+ * (gokturk413) fix: revert www/node_modules/ npm exclusion (needed for runtime - GSAP/Monaco/Three)
905
+
906
+ ### 1.43.0 (2026-06-25)
907
+ * (gokturk413) fix: screen access control now syncs in **real time** across all surfaces — unchecking a group in the global Permissions dialog instantly clears "Access Denied" on open runtime windows (`uiRefresh` broadcast)
908
+ * (gokturk413) fix: backend honours `visibilityEnabled` / `accessibility.enabled` — a disabled restriction with a stale group list no longer keeps blocking
909
+ * (gokturk413) fix: the Settings‑tab "Screen Accessibility Control" and the Projects "Screen Access" dialog are now mirrored (single source of truth)
910
+ * (gokturk413) perf: 3D galleries no longer render whole folders live — 3D **screens** never preview, 3D **custom controls** preview one‑at‑a‑time on click (large memory saving); 2D controls/widgets unchanged
911
+ * (gokturk413) docs: README — bindings (signals/state/object/properties), dynamic properties, current changelog
912
+
913
+ ### 1.42.99 (2026-06-24)
914
+ * (gokturk413) feat: group‑based access control (runtime + editor), hybrid readable‑source / obfuscated‑artifact build & packaging pipeline, branding
915
+ * (gokturk413) feat: global (platform‑default) custom controls — shipped under **Global > CustomControls / 3D Custom Controls**, pre‑seeded on install, editable, usable in every project
916
+
917
+ ### 1.42.90 (2026-06)
918
+ * (gokturk413) feat: self‑contained multi‑project layout — each project under `mywebui.0.projects/<name>/{data,widgets}` with export/import
919
+
920
+ ### 1.42.45 (2026-06)
921
+ * (gokturk413) design: neon glassmorphic theme for the solution explorer
922
+
923
+ ### 1.42.44 (2026-06)
924
+ * (gokturk413) feat: multi‑project support — project selector with create/delete; runtime preview passes `?project=`, plain `runtime.html` always shows default (kiosk safe)
925
+
926
+ ### 1.42.42 (2026-06)
927
+ * (gokturk413) feat: `dynamic` property tab for every element (works with npm manifest widgets too) — per‑instance dynamic properties with two‑way binding
928
+
929
+ ### 1.40.0 (2026-06)
930
+ * (gokturk413) feat: 3D Editor (Three.js) — 3D screens & 3D custom controls, signal bindings, asset manager, layout planner
931
+
932
+ <!-- older custom‑edition versions: see the full per‑version "news" list in io‑package.json -->
933
+
934
+ ### 1.37.0 (2025-10-15)
935
+ - fix bug in bundled code
936
+ - use minified code for config
937
+
938
+ ### 1.36.0 (2025-10-15)
939
+ - fix some boxQuads edge cases
940
+
941
+ ### 1.35.4 (2025-09-23)
942
+ - clear cache on reload
943
+
944
+ ### 1.35.3 (2025-09-23)
945
+ - object changed to all clients
946
+
947
+ ### 1.35.2 (2025-09-23)
948
+ - forgett to parse bindings
949
+
950
+ ### 1.35.1 (2025-09-23)
951
+ - fix reload custom controls
952
+
953
+ ### 1.35.0 (2025-09-23)
954
+ - better nameing
955
+ - changed object notification
956
+
957
+ ### 1.34.2 (2025-09-21)
958
+ - anaother small fix in signal handling
959
+
960
+ ### 1.34.1 (2025-09-20)
961
+ - script command wrong name fix
962
+
963
+ ### 1.34.0 (2025-09-20)
964
+ - designer and script updates
965
+
966
+ ### 1.33.0 (2025-08-26)
967
+ - fix NaN check
968
+
969
+ ### 1.32.0 (2025-08-20)
970
+ - Support css prop suggestions
971
+
972
+ ### 1.31.6 (2025-08-19)
973
+ - Test one more release
974
+
975
+ ### 1.31.5 (2025-08-19)
976
+ - Fix setting Props with simple scripts
977
+
978
+ ### 1.31.4 (2025-08-19)
979
+ - SimpleScripts should be able to set Properties
980
+
981
+ ### 1.31.3 (2025-08-19)
982
+ - NaN not NaN
983
+
984
+ ### 1.31.2 (2025-08-18)
985
+ - update npms
986
+
987
+ ### 1.31.1 (2025-08-17)
988
+ - remove nod 18 from github actions
989
+
990
+ ### 1.31.0 (2025-08-17)
991
+ - update packages
992
+ - script support for properties
993
+
994
+ ### 1.30.0 (2025-05-25)
995
+ - starting indirect binding fix
996
+
997
+ ### 1.29.0 (2025-05-25)
998
+ - complexer indirect bindings
999
+
1000
+ ### 1.28.0 (2025-05-03)
1001
+ - update packages
1002
+
1003
+ ### 1.27.1 (2025-03-30)
1004
+ - fix xml import
1005
+
1006
+ ### 1.27.0 (2025-03-30)
1007
+ - edit string in visu property grid
1008
+ - bindings to properties did not work (in designer)
1009
+ - html setting did not work sometimes
1010
+
1011
+ ### 1.26.0 (2025-03-04)
1012
+ - fix error in screenviewer
1013
+ - update npms
1014
+ - rename global styles
1015
+ - allow styling of dialog
1016
+
1017
+ ### 1.25.2 (2025-02-05)
1018
+ - fix null error on props
1019
+
1020
+ ### 1.25.1 (2025-01-24)
1021
+ - escape xml
1022
+ - switch to official selector package
1023
+
1024
+ ### 1.25.0 (2025-01-21)
1025
+ - fix bindings in custom controls
1026
+
1027
+ ### 1.24.4 (2025-01-20)
1028
+ - switch again to old module shims (error in new one)
1029
+
1030
+ ### 1.24.3 (2025-01-20)
1031
+ - first load of css bindings
1032
+ - fix get box quads with slots
1033
+ - fix es module shims
1034
+
1035
+ ### 1.24.2 (2025-01-19)
1036
+ - revert back es module shims, leads to errors
1037
+
1038
+ ### 1.24.1 (2025-01-19)
1039
+ - hopefully fix package upload by changed name
1040
+
1041
+ ### 1.24.0 (2025-01-19)
1042
+ - cleanup www dir
1043
+
1044
+ ### 1.23.2 (2025-01-19)
1045
+ - one more fix in gulpfile
1046
+
1047
+ ### 1.23.1 (2025-01-19)
1048
+ - fix gulp should work again
1049
+
1050
+ ### 1.23.0 (2025-01-19)
1051
+ - fix paste in events assignment
1052
+ - iobroker Signal Selector
1053
+ - binding to width and height in custom controls
1054
+
1055
+ ### 1.22.0 (2025-01-15)
1056
+ - local signals browser
1057
+ - style completition fixes
1058
+ - special bindings for "ring" cameras
1059
+
1060
+ ### 1.21.0 (2024-12-28)
1061
+ - fix scripts with empty names on css
1062
+ - css props with only bindings are not shown
1063
+ - remove of css prop should remove binding?
1064
+ - Open Screen in sub screen command
1065
+
1066
+ ### 1.20.1 (2024-12-03)
1067
+ - fix in designer with svgs
1068
+
1069
+ ### 1.20.0 (2024-12-03)
1070
+ - add a few packages
1071
+ - run simple script cmd and update get parent screen
1072
+ - update packages, downgrade monaco
1073
+ - fix backup
1074
+
1075
+ ### 1.19.4 (2024-11-03)
1076
+ - copy & paste events
1077
+
1078
+ ### 1.19.3 (2024-11-03)
1079
+ - support null value
1080
+
1081
+ ### 1.19.2 (2024-11-03)
1082
+ - use name in classlist
1083
+
1084
+ ### 1.19.1 (2024-11-02)
1085
+ - copy path for screens/controls
1086
+
1087
+ ### 1.19.0 (2024-11-02)
1088
+ - fix error in script system
1089
+
1090
+ ### 1.18.5 (2024-11-02)
1091
+ - compile fix
1092
+
1093
+ ### 1.18.4 (2024-11-02)
1094
+ - fix wrong shadow root used
1095
+
1096
+ ### 1.18.3 (2024-11-01)
1097
+ - small typo fix
1098
+
1099
+ ### 1.18.2 (2024-11-01)
1100
+ - better refcatoring
1101
+
1102
+ ### 1.18.1 (2024-11-01)
1103
+ - fix screen settings
1104
+
1105
+ ### 1.18.0 (2024-11-01)
1106
+ - screens are now ex- & imported as xml
1107
+
1108
+ ### 1.17.3 (2024-11-01)
1109
+ - fix compilation
1110
+
1111
+ ### 1.17.2 (2024-11-01)
1112
+ - switch combo in complex prop editor
1113
+
1114
+ ### 1.17.1 (2024-11-01)
1115
+ - selector for properties
1116
+
1117
+ ### 1.17.0 (2024-11-01)
1118
+ - internal control properties
1119
+ - internal screen properties
1120
+
1121
+ ### 1.16.3 (2024-10-31)
1122
+ - raise errors on unimplemented commands
1123
+ - wrong script upgrade
1124
+
1125
+ ### 1.16.2 (2024-10-31)
1126
+ - wrong default in script
1127
+
1128
+ ### 1.16.1 (2024-10-31)
1129
+ - fix base custom webcomp bindings
1130
+
1131
+ ### 1.16.0 (2024-10-30)
1132
+ - fix errors with script system, wrong parent used
1133
+
1134
+ ### 1.15.1 (2024-10-08)
1135
+ - fix typo in screenviewer
1136
+
1137
+ ### 1.15.0 (2024-10-08)
1138
+ - fixes in margin & padding
1139
+ - work on simpleScripts, add conditions
1140
+ - fix _getDomElements in screen viewer
1141
+
1142
+ ### 1.14.0 (2024-09-18)
1143
+ - update npm packages
1144
+
1145
+ ### 1.13.2 (2024-08-21)
1146
+ - designer updates
1147
+ - add find methods
1148
+
1149
+ ### 1.13.1 (2024-08-18)
1150
+ - small designer tweaks
1151
+
1152
+ ### 1.13.0 (2024-08-18)
1153
+ - update designer
1154
+
1155
+ ### 1.12.4 (2024-07-25)
1156
+ - one more designer update
1157
+
1158
+ ### 1.12.3 (2024-07-25)
1159
+ - update designer
1160
+
1161
+ ### 1.12.2 (2024-07-24)
1162
+ - fix offset finding in box drawing
1163
+
1164
+ ### 1.12.1 (2024-07-24)
1165
+ - update edit text in designer
1166
+
1167
+ ### 1.12.0 (2024-07-24)
1168
+ - update designer
1169
+
1170
+ ### 1.11.3 (2024-06-02)
1171
+ - fix load subfolders
1172
+
1173
+ ### 1.11.2 (2024-06-01)
1174
+ - screens grid view
1175
+
1176
+ ### 1.11.1 (2024-05-31)
1177
+ - fix icons view path
1178
+
1179
+ ### 1.11.0 (2024-05-31)
1180
+ - add a icons view
1181
+
1182
+ ### 1.10.9 (2024-05-30)
1183
+ - show undo count
1184
+
1185
+ ### 1.10.8 (2024-05-30)
1186
+ - better tooltip for multiplex
1187
+ - remove unused solution entries
1188
+
1189
+ ### 1.10.7 (2024-05-29)
1190
+ - fix iframe d&d
1191
+
1192
+ ### 1.10.6 (2024-05-29)
1193
+ - better evt editor for new events
1194
+
1195
+ ### 1.10.5 (2024-05-29)
1196
+ - show events on mywebui controls
1197
+
1198
+ ### 1.10.4 (2024-05-29)
1199
+ - work on events
1200
+
1201
+ ### 1.10.3 (2024-05-29)
1202
+ - add events service for manifest
1203
+
1204
+ ### 1.10.2 (2024-05-28)
1205
+ - fix getDomelement
1206
+
1207
+ ### 1.10.1 (2024-05-28)
1208
+ - support classlist in setElementProperty
1209
+
1210
+ ### 1.10.0 (2024-05-28)
1211
+ - fix screen & parent screen access
1212
+
1213
+ ### 1.9.10 (2024-05-28)
1214
+ - fixes for blockly
1215
+
1216
+ ### 1.9.9 (2024-05-28)
1217
+ - fix firefox
1218
+
1219
+ ### 1.9.8 (2024-05-27)
1220
+ - try faster loading
1221
+
1222
+ ### 1.9.7 (2024-05-27)
1223
+ - fix change root style
1224
+
1225
+ ### 1.9.6 (2024-05-27)
1226
+ - fix null ref
1227
+
1228
+ ### 1.9.5 (2024-05-27)
1229
+ - few small changes
1230
+
1231
+ ### 1.9.4 (2024-05-27)
1232
+ - fix scripts not workin
1233
+
1234
+ ### 1.9.3 (2024-05-27)
1235
+ - update packages
1236
+
1237
+ ### 1.9.2 (2024-05-27)
1238
+ - fix screenviewer styles
1239
+
1240
+ ### 1.9.1 (2024-05-27)
1241
+ - fix first div styled from designer when zoom
1242
+
1243
+ ### 1.9.0 (2024-05-27)
1244
+ - fix zooming of child screens
1245
+
1246
+ ### 1.8.9 (2024-05-26)
1247
+ - one more spec. calculation fix
1248
+
1249
+ ### 1.8.8 (2024-05-26)
1250
+ - need to await stylesheet parse
1251
+
1252
+ ### 1.8.7 (2024-05-26)
1253
+ - fix specificity calculation
1254
+
1255
+ ### 1.8.6 (2024-05-21)
1256
+ - fix in designer property grid
1257
+
1258
+ ### 1.8.5 (2024-05-21)
1259
+ - stretch property for screenviewer
1260
+ - screennames in property list (property services now async)
1261
+
1262
+ ### 1.8.4 (2024-05-20)
1263
+ - fix typo in bindingshelper
1264
+
1265
+ ### 1.8.3 (2024-05-20)
1266
+ - fix style parsing and style bindings at runtime
1267
+
1268
+ ### 1.8.2 (2024-05-19)
1269
+ - fix in manifest parser of designer
1270
+
1271
+ ### 1.8.1 (2024-05-19)
1272
+ - fix manifest parsing
1273
+
1274
+ ### 1.8.0 (2024-05-19)
1275
+ - bindings inside of css
1276
+
1277
+ ### 1.7.8 (2024-05-19)
1278
+ - fix remove of ctx menu
1279
+
1280
+ ### 1.7.7 (2024-05-17)
1281
+ - fix stylesheet matching
1282
+
1283
+ ### 1.7.6 (2024-05-17)
1284
+ - fix edit text in transformed surface
1285
+
1286
+ ### 1.7.5 (2024-05-17)
1287
+ - more fixes with transformed elements
1288
+
1289
+ ### 1.7.4 (2024-05-16)
1290
+ - designer transformation fixes
1291
+
1292
+ ### 1.7.3 (2024-05-15)
1293
+ - fix transform combinations in designer
1294
+ - fix treeview jump to
1295
+
1296
+ ### 1.7.2 (2024-05-15)
1297
+ - few more small designer fixes
1298
+
1299
+ ### 1.7.1 (2024-05-15)
1300
+ - fix in designer
1301
+
1302
+ ### 1.7.0 (2024-05-15)
1303
+ - Add screen contextmenu
1304
+ - support editing of repeat in grid colum/row templates
1305
+ - designer updates
1306
+ - force styles
1307
+
1308
+ ### 1.6.5 (2024-05-07)
1309
+ - designer update
1310
+
1311
+ ### 1.6.4 (2024-05-05)
1312
+ - expand/collapse of child nodes in tree
1313
+ - undock all windows
1314
+
1315
+ ### 1.6.3 (2024-05-05)
1316
+ - jump to all css declarations
1317
+
1318
+ ### 1.6.2 (2024-05-04)
1319
+ - jump to styles
1320
+
1321
+ ### 1.6.1 (2024-05-02)
1322
+ - better icons
1323
+
1324
+ ### 1.6.0 (2024-05-02)
1325
+ - remove metro ui
1326
+
1327
+ ### 1.5.4 (2024-05-02)
1328
+ - fix delay command
1329
+
1330
+ ### 1.5.3 (2024-05-02)
1331
+ - fixes after package updates
1332
+
1333
+ ### 1.5.2 (2024-05-02)
1334
+ - removed missing prop
1335
+
1336
+ ### 1.5.1 (2024-05-02)
1337
+ - add delay in blockly & npm updates
1338
+
1339
+ ### 1.5.0 (2024-04-28)
1340
+ - nicer two way bindings
1341
+
1342
+ ### 1.4.9 (2024-04-24)
1343
+ - fix toastify
1344
+
1345
+ ### 1.4.8 (2024-04-20)
1346
+ - fix for controller v6
1347
+
1348
+ ### 1.4.7 (2024-04-20)
1349
+ - compact mode on controler 6 support
1350
+
1351
+ ### 1.4.6 (2024-04-10)
1352
+ - fix encoding for all files
1353
+
1354
+ ### 1.4.5 (2024-04-10)
1355
+ - fix gulp5 copy breaks fonts
1356
+
1357
+ ### 1.4.4 (2024-04-10)
1358
+ - fix compile error
1359
+
1360
+ ### 1.4.3 (2024-04-10)
1361
+ - fix copy of font
1362
+
1363
+ ### 1.4.2 (2024-04-09)
1364
+ - stretch support in screens
1365
+
1366
+ ### 1.4.1 (2024-04-09)
1367
+ - support relative signal paths in scripts
1368
+
1369
+ ### 1.4.0 (2024-04-08)
1370
+ - parameter support for scripts
1371
+
1372
+ ### 1.3.2 (2024-04-02)
1373
+ - designer upd
1374
+
1375
+ ### 1.3.1 (2024-04-01)
1376
+ - designer updates for toolbars
1377
+
1378
+ ### 1.3.0 (2024-04-01)
1379
+ - designer update
1380
+
1381
+ ### 1.2.13 (2024-03-28)
1382
+ - disabled control fix
1383
+
1384
+ ### 1.2.12 (2024-03-28)
1385
+ - add dayjs for date formating
1386
+
1387
+ ### 1.2.11 (2024-03-28)
1388
+ - add a indirection level in complex signal binding
1389
+
1390
+ ### 1.2.10 (2024-03-28)
1391
+ - package upgrades
1392
+
1393
+ ### 1.2.9 (2024-03-26)
1394
+ - try fix runtime once more
1395
+
1396
+ ### 1.2.8 (2024-03-26)
1397
+ - runtime should not load designer
1398
+
1399
+ ### 1.2.7 (2024-03-26)
1400
+ - fix used wrong script system
1401
+
1402
+ ### 1.2.6 (2024-03-25)
1403
+ - one more small runtime fix
1404
+
1405
+ ### 1.2.5 (2024-03-25)
1406
+ - fix runtime once more
1407
+
1408
+ ### 1.2.4 (2024-03-25)
1409
+ - fix runtime
1410
+
1411
+ ### 1.2.3 (2024-03-24)
1412
+ - designer upgrade for new features
1413
+
1414
+ ### 1.2.2 (2024-03-11)
1415
+ - fix broken signals selector in scripts
1416
+
1417
+ ### 1.2.1 (2024-03-11)
1418
+ - build broken after refactoring
1419
+
1420
+ ### 1.2.0 (2024-03-11)
1421
+ - extracted some code for usability
1422
+ - better text edit
1423
+ - better split view (selection matches now)
1424
+ - round pixel values
1425
+
1426
+ ### 1.1.4 (2024-03-02)
1427
+ - designer-update: mathML support, svg foreignObject support
1428
+ - better text edit support
1429
+
1430
+ ### 1.1.3 (2024-02-29)
1431
+ - text edit now workin
1432
+ - package updates
1433
+
1434
+ ### 1.1.2 (2024-02-27)
1435
+ - fix broken designer package
1436
+
1437
+ ### 1.1.1 (2024-02-27)
1438
+ - designer and docking fixes
1439
+
1440
+ ### 1.1.0 (2024-02-26)
1441
+ - support undock to new browser window
1442
+ - preview fixes for position: static in styles
1443
+
1444
+ ### 1.0.56 (2024-02-26)
1445
+ - screenviewer - add also nodes from domparser head
1446
+
1447
+ ### 1.0.55 (2024-02-22)
1448
+ - more designer fixes
1449
+
1450
+ ### 1.0.54 (2024-02-22)
1451
+ - multiple designer fixes
1452
+
1453
+ ### 1.0.53 (2024-02-19)
1454
+ - fix lazy bound lit event name
1455
+
1456
+ ### 1.0.52 (2024-02-19)
1457
+ - fix captured local
1458
+
1459
+ ### 1.0.51 (2024-02-19)
1460
+ - fix lazy loaded lit elments
1461
+ - fix script url
1462
+
1463
+ ### 1.0.50 (2024-02-18)
1464
+ - again fix in class binding
1465
+
1466
+ ### 1.0.49 (2024-02-18)
1467
+ - class is attribute in bindings
1468
+ - fix error logging
1469
+
1470
+ ### 1.0.48 (2024-02-17)
1471
+ - fix wunderbaum error
1472
+
1473
+ ### 1.0.47 (2024-02-15)
1474
+ - designer fixes with property grid
1475
+
1476
+ ### 1.0.46 (2024-02-15)
1477
+ - designer updates
1478
+
1479
+ ### 1.0.45 (2024-02-12)
1480
+ - update designer with bugfixes
1481
+
1482
+ ### 1.0.44 (2024-02-11)
1483
+ - fix bindings in designer
1484
+
1485
+ ### 1.0.43 (2024-02-11)
1486
+ - refresh tree when controls deleted
1487
+
1488
+ ### 1.0.42 (2024-02-11)
1489
+ - fix grid resize
1490
+ - fix grid extension display
1491
+
1492
+ ### 1.0.41 (2024-02-10)
1493
+ - better element drawing (with undo)
1494
+ - better title extension
1495
+
1496
+ ### 1.0.40 (2024-02-10)
1497
+ - dblclick in solution should not change tool
1498
+ - designer update for performance fixes
1499
+
1500
+ ### 1.0.39 (2024-02-09)
1501
+ - upgrade designer package once more to fix some issues
1502
+
1503
+ ### 1.0.38 (2024-02-09)
1504
+ - fix blockly
1505
+ - add blockly templated string
1506
+ - work on adopted styles
1507
+ - update designer to fix snaplines
1508
+
1509
+ ### 1.0.37 (2024-01-31)
1510
+ - designer fix for background
1511
+
1512
+ ### 1.0.36 (2024-01-31)
1513
+ - upgade to new designer for better style encapsulation
1514
+
1515
+ ### 1.0.35 (2024-01-30)
1516
+ - package upgrades (fix in designer for css patching)
1517
+ - typos
1518
+
1519
+ ### 1.0.34 (2024-01-28)
1520
+ - indirect signal for $ access
1521
+
1522
+ ### 1.0.33 (2024-01-24)
1523
+ - one more designer update
1524
+
1525
+ ### 1.0.32 (2024-01-24)
1526
+ - fix for nested stylesheets
1527
+
1528
+ ### 1.0.31 (2024-01-23)
1529
+ - string could be null
1530
+
1531
+ ### 1.0.30 (2024-01-22)
1532
+ - better script errors
1533
+
1534
+ ### 1.0.29 (2024-01-22)
1535
+ - remove a few errors
1536
+
1537
+ ### 1.0.28 (2024-01-22)
1538
+ - npm upgrade for error of undoservice
1539
+
1540
+ ### 1.0.27 (2024-01-22)
1541
+ - toast message on errors
1542
+
1543
+ ### 1.0.26 (2024-01-22)
1544
+ - npm package upgrades
1545
+
1546
+ ### 1.0.25 (2024-01-21)
1547
+ - use appendChild
1548
+
1549
+ ### 1.0.24 (2024-01-21)
1550
+ - fix later loaded scripts
1551
+
1552
+ ### 1.0.23 (2024-01-21)
1553
+ - twoway should only set first value
1554
+ - fix error with noParse
1555
+
1556
+ ### 1.0.22 (2024-01-20)
1557
+ - fix binding with unit
1558
+ - fix refactor service missing command
1559
+
1560
+ ### 1.0.21 (2024-01-19)
1561
+ - fix designer grid overlay
1562
+ - stecil ackage hacks
1563
+
1564
+ ### 1.0.20 (2024-01-18)
1565
+ - fix broken split view
1566
+
1567
+ ### 1.0.19 (2024-01-17)
1568
+ - simpler one way bindings with expressions
1569
+
1570
+ ### 1.0.18 (2024-01-17)
1571
+ - text selection selects in designer
1572
+
1573
+ ### 1.0.17 (2024-01-16)
1574
+ - fix opacity of D&D node
1575
+
1576
+ ### 1.0.16 (2024-01-16)
1577
+ - fix drag drop of tree nodes
1578
+
1579
+ ### 1.0.15 (2024-01-14)
1580
+ - support upper/lowercase and spaces in screens & controls
1581
+
1582
+ ### 1.0.13 (2024-01-14)
1583
+ - correct event name in lit bindings
1584
+
1585
+ ### 1.0.12 (2024-01-14)
1586
+ - upgrade baseCustomWebcomp for attribute binding
1587
+
1588
+ ### 1.0.11 (2024-01-14)
1589
+ - API for reading object lists
1590
+
1591
+ ### 1.0.10 (2024-01-14)
1592
+ - fix selected tool
1593
+
1594
+ ### 1.0.9 (2024-01-14)
1595
+ - bugfix controls editor
1596
+
1597
+ ### 1.0.8 (2024-01-14)
1598
+ - fix import/export
1599
+
1600
+ ### 1.0.7 (2024-01-14)
1601
+ - bigger formula editor when multiline
1602
+
1603
+ ### 1.0.6 (2024-01-14)
1604
+ - draw widgets when selected in tree
1605
+
1606
+ ### 1.0.5 (2024-01-14)
1607
+ - bind to iobroker objects (via $ prefix)
1608
+
1609
+ ### 1.0.4 (2024-01-14)
1610
+ - fix open screens in folders
1611
+
1612
+ ### 1.0.3 (2024-01-14)
1613
+ - only lowercase folders
1614
+
1615
+ ### 1.0.2 (2024-01-14)
1616
+ - variablen in convertern
1617
+ - configurable meta tags
1618
+
1619
+ ### 1.0.1 (2024-01-13)
1620
+ - fix issue with npm
1621
+
1622
+ ### 1.0.0 (2024-01-13)
1623
+ - new script command: CalculateSignalValue
1624
+ - javascript code completition
1625
+ - better types in code completition
1626
+ - fix writing of child nodes if content is bound at design time
1627
+ - use monaco editor in expressions
1628
+ - use custom var names in expressions
1629
+ - Screens & Controls can have subfolders
1630
+ - decl. shadow dom support in screen viewer
1631
+ - allow 'local_' as tag prefix for local vars
1632
+
1633
+ ### 0.23.3 (2024-01-04)
1634
+ - add local valueAsNumber property
1635
+
1636
+ ### 0.23.2 (2024-01-03)
1637
+ - again fix runtime was not initialized
1638
+
1639
+ ### 0.23.1 (2024-01-03)
1640
+ - fix runtime was not initialized
1641
+
1642
+ ### 0.23.0 (2024-01-03)
1643
+ - todo, support 2way bindings too custom properties
1644
+ - code completition for iobrokerHandler and runtime
1645
+ - simple scripts, access value of event
1646
+
1647
+ ### 0.22.7 (2023-12-25)
1648
+ - and one more...
1649
+
1650
+ ### 0.22.6 (2023-12-25)
1651
+ - and one more fix on importmaps
1652
+
1653
+ ### 0.22.5 (2023-12-25)
1654
+ - more fixes with import map
1655
+
1656
+ ### 0.22.4 (2023-12-25)
1657
+ - work on export directive
1658
+
1659
+ ### 0.22.3 (2023-12-25)
1660
+ - fix missing .js extensions
1661
+
1662
+ ### 0.22.2 (2023-12-25)
1663
+ - fix scripts
1664
+
1665
+ ### 0.22.1 (2023-12-25)
1666
+ - add open screen in blockly
1667
+
1668
+ ### 0.22.0 (2023-12-25)
1669
+ - work on esbuild (but not yet ready, delayed till blockly is ESM)
1670
+ - bugfixes with scripts
1671
+ - remove typescript, use javascript directly
1672
+ - typed value on SetValue function
1673
+
1674
+ ### 0.21.3 (2023-12-20)
1675
+ - fix set style
1676
+
1677
+ ### 0.21.2 (2023-12-20)
1678
+ - more commands in blockly
1679
+
1680
+ ### 0.21.1 (2023-12-19)
1681
+ - fixed paths
1682
+
1683
+ ### 0.21.0 (2023-12-19)
1684
+ - start of blockly support
1685
+
1686
+ ### 0.20.7 (2023-12-15)
1687
+ - fix importmap creation missed "/"
1688
+
1689
+ ### 0.20.6 (2023-12-12)
1690
+ - few wunderbaum fixes
1691
+
1692
+ ### 0.20.5 (2023-12-11)
1693
+ - better custom properties view
1694
+
1695
+ ### 0.20.4 (2023-12-11)
1696
+ - fix in css prop binding
1697
+
1698
+ ### 0.20.3 (2023-12-11)
1699
+ - update designer npm
1700
+
1701
+ ### 0.20.2 (2023-12-11)
1702
+ - fix for class binding
1703
+
1704
+ ### 0.20.1 (2023-12-11)
1705
+ - binding for classes
1706
+
1707
+ ### 0.20.0 (2023-12-11)
1708
+ - allow bindings to css vars
1709
+
1710
+ ### 0.19.3 (2023-12-10)
1711
+ - switch loglevel
1712
+
1713
+ ### 0.19.2 (2023-12-10)
1714
+ - package updates
1715
+
1716
+ ### 0.19.1 (2023-12-07)
1717
+ - fix load error
1718
+
1719
+ ### 0.19.0 (2023-12-07)
1720
+ - waitForReady needs to be awaited
1721
+
1722
+ ### 0.18.15 (2023-12-06)
1723
+ - fix missing null check
1724
+
1725
+ ### 0.18.14 (2023-12-06)
1726
+ - fix normal binding unsubscribe
1727
+
1728
+ ### 0.18.13 (2023-12-06)
1729
+ - fix historic binding unsubscribe
1730
+
1731
+ ### 0.18.12 (2023-12-06)
1732
+ - remove bindings in customcontrols
1733
+
1734
+ ### 0.18.11 (2023-12-06)
1735
+ - fix broken load historic
1736
+
1737
+ ### 0.18.10 (2023-12-06)
1738
+ - load historic only when previous load is finished
1739
+
1740
+ ### 0.18.9 (2023-12-05)
1741
+ - fix tooltips
1742
+
1743
+ ### 0.18.8 (2023-12-05)
1744
+ - lazy remove the title
1745
+
1746
+ ### 0.18.7 (2023-12-05)
1747
+ - better fix for monaco
1748
+
1749
+ ### 0.18.6 (2023-12-05)
1750
+ - fix for monaco bug
1751
+ - title removed
1752
+
1753
+ ### 0.18.5 (2023-12-05)
1754
+ - code completition for base custom webcomponent
1755
+ - object property type
1756
+
1757
+ ### 0.18.4 (2023-12-03)
1758
+ - better text for historic bindings cancel
1759
+
1760
+ ### 0.18.3 (2023-12-03)
1761
+ - fix reload in dynamics editor
1762
+
1763
+ ### 0.18.2 (2023-12-03)
1764
+ - ui for historic binding
1765
+ - fixes in refactor view
1766
+
1767
+ ### 0.18.1 (2023-12-03)
1768
+ - fixes in refactor service
1769
+
1770
+ ### 0.18.0 (2023-12-01)
1771
+ - tooltip in solution explorer
1772
+ - npm upgrade of designer
1773
+ - refactor view for bindings and scripts
1774
+
1775
+ ### 0.17.0 (2023-11-29)
1776
+ - remove 2 uneeded files
1777
+ - designer update
1778
+
1779
+ ### 0.16.6 (2023-11-28)
1780
+ - check for invalid propertynames
1781
+ - move properties
1782
+
1783
+ ### 0.16.5 (2023-11-27)
1784
+ - copy screen and custom controls
1785
+
1786
+ ### 0.16.4 (2023-11-27)
1787
+ - fix usage of mywebui in windows
1788
+
1789
+ ### 0.16.3 (2023-11-24)
1790
+ - extra style for font declarations, they are not allowed in shadow dom
1791
+
1792
+ ### 0.16.2 (2023-11-23)
1793
+ - fix remove script command
1794
+
1795
+ ### 0.16.1 (2023-11-23)
1796
+ - additional file dnd
1797
+
1798
+ ### 0.16.0 (2023-11-23)
1799
+ - add additional files node and upload
1800
+
1801
+ ### 0.15.1 (2023-11-22)
1802
+ - export as xml (screens & controls)
1803
+ - binding historic with reload
1804
+ - fix dialog
1805
+
1806
+ ### 0.15.0 (2023-11-19)
1807
+ - uncloseable dialog
1808
+ - css properties for dialog
1809
+ - binding to historic data
1810
+
1811
+ ### 0.14.1 (2023-11-12)
1812
+ - dialog centered
1813
+
1814
+ ### 0.14.0 (2023-11-12)
1815
+ - add simple dialog
1816
+
1817
+ ### 0.13.1 (2023-11-11)
1818
+ - two way bindings with expressions
1819
+
1820
+ ### 0.13.0 (2023-11-09)
1821
+ - fix upercase screen names in runtime
1822
+ - raster in designer is now adjustable
1823
+ - copy object nodes now copies complete string
1824
+ - context menu to directly edit custom element
1825
+ - fix handler path in script
1826
+ - uiChangedView now workin
1827
+ - error when importing invalid file (for example html instead of json)
1828
+
1829
+ ### 0.12.3 (2023-09-20)
1830
+ - after eval removal, functions need a return
1831
+
1832
+ ### 0.12.2 (2023-09-20)
1833
+ - events names for 2way bindings need a editor
1834
+
1835
+ ### 0.12.1 (2023-09-20)
1836
+ - two way for indirect bindings
1837
+
1838
+ ### 0.12.0 (2023-09-20)
1839
+ - support indirect bindings via {...} in signals (like in vis)
1840
+
1841
+ ### 0.11.2 (2023-09-17)
1842
+ - check npm package name
1843
+
1844
+ ### 0.11.1 (2023-09-16)
1845
+ - fix build on windows
1846
+
1847
+ ### 0.11.0 (2023-09-11)
1848
+ - dragdrop fixes
1849
+ - screen/control size fixes
1850
+ - connected/disconnected callbacks
1851
+
1852
+ ### 0.10.0 (2023-09-10)
1853
+ - new script commands
1854
+ - bugfix with bindings and empty events
1855
+ - select exported function in javascript
1856
+ - bugfix in save of screens
1857
+ - typescript in scripts
1858
+ - started work on translateable runtime
1859
+
1860
+ ### 0.9.0 (2023-09-06)
1861
+ - signal selector in properties
1862
+ - screen selector in properties
1863
+ - new screen had style in scripts
1864
+ - indirect value/property acces from scripts via editor
1865
+ - list multiple undo entries (on hold of undo)
1866
+
1867
+ ### 0.8.0 (2023-09-03)
1868
+ - update designer to add and fix some commands
1869
+ - move screen/control scripts out of html code
1870
+ - add a javascript editor view
1871
+ - bugfix when states where null after a fresh install
1872
+ - designer addons do now work again
1873
+ - docking framework updated, cause of bugs with undocking
1874
+
1875
+ ### 0.7.0 (2023-09-01)
1876
+ - screens and controls have now settings (width, height, useGlobalStyle)
1877
+
1878
+ ### 0.6.0 (2023-09-01)
1879
+ - removed many uneeded files from installation
1880
+
1881
+ ### 0.5.1 (2023-09-01)
1882
+ - show version in ui
1883
+
1884
+ ### 0.5.0 (2023-09-01)
1885
+ - signal as property type
1886
+ - removed svg-image control
1887
+ - shorter custom control tag name
1888
+ - better dynamics editor
1889
+ - dock ui fixes
1890
+ - control ui from backend (switch view, reload)
1891
+
1892
+ ### 0.4.0 (2023-08-30)
1893
+ - remove uneeded files from upload
1894
+ - remove icons into extra iobroker packages
1895
+ - support icon adapters
1896
+ - rename screens & controls
1897
+
1898
+ ### 0.3.0 (2023-08-29)
1899
+ - default value for custom properties
1900
+ - open screens only once
1901
+ - property bindings default one way
1902
+
1903
+ ### 0.2.3 (2023-08-28)
1904
+ - rework how custom controls are initalized
1905
+
1906
+ ### 0.2.2 (2023-08-28)
1907
+ - better support & fixes of custom elements
1908
+ - enum properties in custom controls
1909
+ - sample custom controls
1910
+
1911
+ ### 0.2.1 (2023-08-28)
1912
+ - null ref fix in bindings
1913
+
1914
+ ### 0.2.0 (2023-08-28)
1915
+ - Import/Export of Screens/Images/Controls
1916
+ - Define your own Controls directly in mywebui
1917
+ - Drag/Drop of Icons/Images to Properties
1918
+ - Drag/Drop of objects to Bindings-Editor Signalname
1919
+ - Basic functionality of CustomControls
1920
+
1921
+ ### 0.1.0 (2023-08-27)
1922
+ - initial public release
1923
+
1924
+ ## Credits
1925
+
1926
+ **Original Author:** jogibear9988 (Jochen Kühner)
1927
+ **Custom Edition:** gokturk413
1928
+
1929
+ This is a custom edited and enhanced version of the original ioBroker.mywebui adapter with additional features and hardware-bound licensing.
1930
+
1931
+ ### Original Repository
1932
+ https://github.com/iobroker-community-adapters/ioBroker.mywebui
1933
+
1934
+ ---
1935
+
1936
+ ## License
1937
+
1938
+ Creative Commons Attribution-NonCommercial 4.0 International (CC-BY-NC-4.0)
1939
+
1940
+ **Original Work:**
1941
+ Copyright (c) 2025 jogibear9988 <jochen.kuehner@gmx.de>
1942
+
1943
+ **Modified Work:**
1944
+ Copyright (c) 2026 gokturk413
1945
+
1946
+ See the [LICENSE](./LICENSE) file for the full legal text.
1947
+
1948
+ **Note:** This custom edition includes proprietary license validation and hardware binding features.