iobroker.mywebui 1.43.0 → 1.44.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 (221) hide show
  1. package/README.md +68 -0
  2. package/dist/backend/3d-editor-integration.js +1 -1
  3. package/dist/backend/ImportmapCreator.js +1 -1
  4. package/dist/backend/LicenseValidator.js +1 -1
  5. package/dist/backend/UploadHelper.js +1 -1
  6. package/dist/backend/main.js +1 -1
  7. package/io-package.json +9 -2
  8. package/package.json +2 -1
  9. package/www/3d-editor/js/Animation.js +1 -1
  10. package/www/3d-editor/js/AnimationResizer.js +1 -1
  11. package/www/3d-editor/js/Command.js +1 -1
  12. package/www/3d-editor/js/Config.js +1 -1
  13. package/www/3d-editor/js/Editor.js +1 -1
  14. package/www/3d-editor/js/EditorControls.js +1 -1
  15. package/www/3d-editor/js/GLTFImportDialog.js +1 -1
  16. package/www/3d-editor/js/History.js +1 -1
  17. package/www/3d-editor/js/Loader.js +1 -1
  18. package/www/3d-editor/js/LoaderUtils.js +1 -1
  19. package/www/3d-editor/js/Menubar.Add.js +1 -1
  20. package/www/3d-editor/js/Menubar.Edit.js +1 -1
  21. package/www/3d-editor/js/Menubar.File.js +1 -1
  22. package/www/3d-editor/js/Menubar.Help.js +1 -1
  23. package/www/3d-editor/js/Menubar.Render.js +1 -1
  24. package/www/3d-editor/js/Menubar.Status.js +1 -1
  25. package/www/3d-editor/js/Menubar.View.js +1 -1
  26. package/www/3d-editor/js/Menubar.js +1 -1
  27. package/www/3d-editor/js/Player.js +1 -1
  28. package/www/3d-editor/js/Resizer.js +1 -1
  29. package/www/3d-editor/js/Script.js +1 -1
  30. package/www/3d-editor/js/Selector.js +1 -1
  31. package/www/3d-editor/js/Sidebar.Geometry.BoxGeometry.js +1 -1
  32. package/www/3d-editor/js/Sidebar.Geometry.BufferGeometry.js +1 -1
  33. package/www/3d-editor/js/Sidebar.Geometry.CapsuleGeometry.js +1 -1
  34. package/www/3d-editor/js/Sidebar.Geometry.CircleGeometry.js +1 -1
  35. package/www/3d-editor/js/Sidebar.Geometry.CylinderGeometry.js +1 -1
  36. package/www/3d-editor/js/Sidebar.Geometry.DodecahedronGeometry.js +1 -1
  37. package/www/3d-editor/js/Sidebar.Geometry.ExtrudeGeometry.js +1 -1
  38. package/www/3d-editor/js/Sidebar.Geometry.IcosahedronGeometry.js +1 -1
  39. package/www/3d-editor/js/Sidebar.Geometry.LatheGeometry.js +1 -1
  40. package/www/3d-editor/js/Sidebar.Geometry.Modifiers.js +1 -1
  41. package/www/3d-editor/js/Sidebar.Geometry.OctahedronGeometry.js +1 -1
  42. package/www/3d-editor/js/Sidebar.Geometry.PlaneGeometry.js +1 -1
  43. package/www/3d-editor/js/Sidebar.Geometry.RingGeometry.js +1 -1
  44. package/www/3d-editor/js/Sidebar.Geometry.ShapeGeometry.js +1 -1
  45. package/www/3d-editor/js/Sidebar.Geometry.SphereGeometry.js +1 -1
  46. package/www/3d-editor/js/Sidebar.Geometry.TetrahedronGeometry.js +1 -1
  47. package/www/3d-editor/js/Sidebar.Geometry.TextGeometry.js +1 -1
  48. package/www/3d-editor/js/Sidebar.Geometry.TorusGeometry.js +1 -1
  49. package/www/3d-editor/js/Sidebar.Geometry.TorusKnotGeometry.js +1 -1
  50. package/www/3d-editor/js/Sidebar.Geometry.TubeGeometry.js +1 -1
  51. package/www/3d-editor/js/Sidebar.Geometry.js +1 -1
  52. package/www/3d-editor/js/Sidebar.Material.BooleanProperty.js +1 -1
  53. package/www/3d-editor/js/Sidebar.Material.ColorProperty.js +1 -1
  54. package/www/3d-editor/js/Sidebar.Material.ConstantProperty.js +1 -1
  55. package/www/3d-editor/js/Sidebar.Material.MapProperty.js +1 -1
  56. package/www/3d-editor/js/Sidebar.Material.NumberProperty.js +1 -1
  57. package/www/3d-editor/js/Sidebar.Material.Program.js +1 -1
  58. package/www/3d-editor/js/Sidebar.Material.RangeValueProperty.js +1 -1
  59. package/www/3d-editor/js/Sidebar.Material.js +1 -1
  60. package/www/3d-editor/js/Sidebar.Object.js +1 -1
  61. package/www/3d-editor/js/Sidebar.Project.App.js +1 -1
  62. package/www/3d-editor/js/Sidebar.Project.Materials.js +1 -1
  63. package/www/3d-editor/js/Sidebar.Project.Renderer.js +1 -1
  64. package/www/3d-editor/js/Sidebar.Project.Resources.js +1 -1
  65. package/www/3d-editor/js/Sidebar.Project.js +1 -1
  66. package/www/3d-editor/js/Sidebar.Properties.js +1 -1
  67. package/www/3d-editor/js/Sidebar.Scene.js +1 -1
  68. package/www/3d-editor/js/Sidebar.Script.js +1 -1
  69. package/www/3d-editor/js/Sidebar.Settings.History.js +1 -1
  70. package/www/3d-editor/js/Sidebar.Settings.Shortcuts.js +1 -1
  71. package/www/3d-editor/js/Sidebar.Settings.js +1 -1
  72. package/www/3d-editor/js/Sidebar.js +1 -1
  73. package/www/3d-editor/js/Storage.js +1 -1
  74. package/www/3d-editor/js/Strings.js +1 -1
  75. package/www/3d-editor/js/TextureParametersDialog.js +1 -1
  76. package/www/3d-editor/js/Toolbar.js +1 -1
  77. package/www/3d-editor/js/Viewport.Controls.js +1 -1
  78. package/www/3d-editor/js/Viewport.Info.js +1 -1
  79. package/www/3d-editor/js/Viewport.Pathtracer.js +1 -1
  80. package/www/3d-editor/js/Viewport.ViewHelper.js +1 -1
  81. package/www/3d-editor/js/Viewport.XR.js +1 -1
  82. package/www/3d-editor/js/Viewport.js +1 -1
  83. package/www/3d-editor/js/commands/AddObjectCommand.js +1 -1
  84. package/www/3d-editor/js/commands/AddScriptCommand.js +1 -1
  85. package/www/3d-editor/js/commands/Commands.js +1 -1
  86. package/www/3d-editor/js/commands/MoveObjectCommand.js +1 -1
  87. package/www/3d-editor/js/commands/MultiCmdsCommand.js +1 -1
  88. package/www/3d-editor/js/commands/RemoveObjectCommand.js +1 -1
  89. package/www/3d-editor/js/commands/RemoveScriptCommand.js +1 -1
  90. package/www/3d-editor/js/commands/SetColorCommand.js +1 -1
  91. package/www/3d-editor/js/commands/SetGeometryCommand.js +1 -1
  92. package/www/3d-editor/js/commands/SetGeometryValueCommand.js +1 -1
  93. package/www/3d-editor/js/commands/SetMaterialColorCommand.js +1 -1
  94. package/www/3d-editor/js/commands/SetMaterialCommand.js +1 -1
  95. package/www/3d-editor/js/commands/SetMaterialMapCommand.js +1 -1
  96. package/www/3d-editor/js/commands/SetMaterialRangeCommand.js +1 -1
  97. package/www/3d-editor/js/commands/SetMaterialValueCommand.js +1 -1
  98. package/www/3d-editor/js/commands/SetMaterialVectorCommand.js +1 -1
  99. package/www/3d-editor/js/commands/SetPositionCommand.js +1 -1
  100. package/www/3d-editor/js/commands/SetRotationCommand.js +1 -1
  101. package/www/3d-editor/js/commands/SetScaleCommand.js +1 -1
  102. package/www/3d-editor/js/commands/SetSceneCommand.js +1 -1
  103. package/www/3d-editor/js/commands/SetScriptValueCommand.js +1 -1
  104. package/www/3d-editor/js/commands/SetShadowValueCommand.js +1 -1
  105. package/www/3d-editor/js/commands/SetTextureParametersCommand.js +1 -1
  106. package/www/3d-editor/js/commands/SetUuidCommand.js +1 -1
  107. package/www/3d-editor/js/commands/SetValueCommand.js +1 -1
  108. package/www/assets/icons/neon/folder-bindables.svg +1 -0
  109. package/www/assets/icons/neon/folder-charts.svg +1 -0
  110. package/www/assets/icons/neon/folder-controls.svg +1 -0
  111. package/www/assets/icons/neon/folder-global.svg +1 -0
  112. package/www/assets/icons/neon/folder-images.svg +1 -0
  113. package/www/dist/frontend/bundle/chunk-3C6XC7RW.js +1 -1
  114. package/www/dist/frontend/bundle/chunk-5MUGMRXU.js +1 -0
  115. package/www/dist/frontend/bundle/chunk-5UBRCTRX.js +3 -3
  116. package/www/dist/frontend/bundle/chunk-AWKVUUKN.js +3 -3
  117. package/www/dist/frontend/bundle/chunk-BHSHNRXW.js +1 -1
  118. package/www/dist/frontend/bundle/chunk-BVONDEOL.js +21 -0
  119. package/www/dist/frontend/bundle/chunk-FHF6DL5U.js +1 -0
  120. package/www/dist/frontend/bundle/chunk-FO56TEZH.js +21 -0
  121. package/www/dist/frontend/bundle/chunk-MECWXZRN.js +1 -1
  122. package/www/dist/frontend/bundle/chunk-PJYK24KZ.js +1 -1
  123. package/www/dist/frontend/bundle/chunk-R6IQDPAP.js +3 -3
  124. package/www/dist/frontend/bundle/chunk-SE6N4ZEN.js +1 -1
  125. package/www/dist/frontend/bundle/chunk-V4C5FGJL.js +2 -2
  126. package/www/dist/frontend/bundle/chunk-WED7CGWA.js +3 -3
  127. package/www/dist/frontend/bundle/chunk-WQ5H5LTG.js +3 -3
  128. package/www/dist/frontend/bundle/common/IobrokerHandler.js +1 -1
  129. package/www/dist/frontend/bundle/runtime/CustomControls.js +1 -1
  130. package/www/dist/frontend/bundle/runtime/ScreenViewer.js +1 -1
  131. package/www/dist/frontend/bundle/runtime/controls.js +4 -4
  132. package/www/dist/frontend/bundle/runtime/init.js +2 -2
  133. package/www/dist/frontend/common/Common.globals.js +1 -1
  134. package/www/dist/frontend/common/IobrokerHandler.js +1 -1
  135. package/www/dist/frontend/common/Runtime.js +1 -1
  136. package/www/dist/frontend/config/CommandHandling.js +1 -1
  137. package/www/dist/frontend/config/ConfigureWebcomponentDesigner.js +1 -1
  138. package/www/dist/frontend/config/DockHelper.js +1 -1
  139. package/www/dist/frontend/config/IobrokerWebui3DDriveEngine.js +1 -1
  140. package/www/dist/frontend/config/IobrokerWebui3DScreenEditor.js +3 -3
  141. package/www/dist/frontend/config/IobrokerWebui3DScreenPropertiesPanel.js +3 -3
  142. package/www/dist/frontend/config/IobrokerWebui3DScreenViewer.js +3 -3
  143. package/www/dist/frontend/config/IobrokerWebuiAppShell.js +3 -3
  144. package/www/dist/frontend/config/IobrokerWebuiBindingsEditor.js +1 -1
  145. package/www/dist/frontend/config/IobrokerWebuiConfirmationWrapper.js +3 -3
  146. package/www/dist/frontend/config/IobrokerWebuiControlPropertiesEditor.js +3 -3
  147. package/www/dist/frontend/config/IobrokerWebuiDynamicPropsEditor.js +1 -1
  148. package/www/dist/frontend/config/IobrokerWebuiEventAssignment.js +1 -1
  149. package/www/dist/frontend/config/IobrokerWebuiIconsView.js +2 -2
  150. package/www/dist/frontend/config/IobrokerWebuiMonacoEditor.js +3 -3
  151. package/www/dist/frontend/config/IobrokerWebuiPropertyGrid.js +1 -1
  152. package/www/dist/frontend/config/IobrokerWebuiScreenEditor.js +1 -1
  153. package/www/dist/frontend/config/IobrokerWebuiScreensView.js +3 -3
  154. package/www/dist/frontend/config/IobrokerWebuiSignalPropertyEditor.js +1 -1
  155. package/www/dist/frontend/config/IobrokerWebuiSolutionExplorer.js +32 -3
  156. package/www/dist/frontend/config/IobrokerWebuiTranslationEditor.js +1 -1
  157. package/www/dist/frontend/config/IobrokerWebuiWidgetGallery.js +3 -3
  158. package/www/dist/frontend/helper/DialogHelper.js +3 -3
  159. package/www/dist/frontend/helper/EsprimaHelper.js +1 -1
  160. package/www/dist/frontend/helper/Helper.js +1 -1
  161. package/www/dist/frontend/helper/XmlHelper.js +1 -1
  162. package/www/dist/frontend/helper/ZipHelper.js +1 -1
  163. package/www/dist/frontend/runtime/AnimationService.js +1 -1
  164. package/www/dist/frontend/runtime/CustomControls.js +1 -1
  165. package/www/dist/frontend/runtime/DynamicElementProperties.js +1 -1
  166. package/www/dist/frontend/runtime/HabPanelLikeMenu.js +3 -3
  167. package/www/dist/frontend/runtime/ScreenViewer.js +3 -3
  168. package/www/dist/frontend/runtime/TranslateableText.js +2 -2
  169. package/www/dist/frontend/runtime/VisibilityService.js +1 -1
  170. package/www/dist/frontend/runtime/controls.js +1 -1
  171. package/www/dist/frontend/runtime/init.js +1 -1
  172. package/www/dist/frontend/scripting/IobrokerWebuiScriptSystem.js +1 -1
  173. package/www/dist/frontend/scripting/blockly/OpenScreen.js +1 -1
  174. package/www/dist/frontend/scripting/blockly/webuiBlocklyToolbox.js +1 -1
  175. package/www/dist/frontend/services/DynamicPropertiesHelper.js +1 -1
  176. package/www/dist/frontend/services/IobrokerWebuiBindableLocalObjectsService.js +1 -1
  177. package/www/dist/frontend/services/IobrokerWebuiBindableObjectDragDropService.js +1 -1
  178. package/www/dist/frontend/services/IobrokerWebuiBindableObjectsForPropertiesService.js +1 -1
  179. package/www/dist/frontend/services/IobrokerWebuiBindableObjectsService.js +1 -1
  180. package/www/dist/frontend/services/IobrokerWebuiConfigButtonProvider.js +1 -1
  181. package/www/dist/frontend/services/IobrokerWebuiCopyPasteService.js +1 -1
  182. package/www/dist/frontend/services/IobrokerWebuiCustomControlEventsService.js +1 -1
  183. package/www/dist/frontend/services/IobrokerWebuiCustomElementContextMenu.js +1 -1
  184. package/www/dist/frontend/services/IobrokerWebuiDemoProviderService.js +1 -1
  185. package/www/dist/frontend/services/IobrokerWebuiDynamicPropertiesService.js +1 -1
  186. package/www/dist/frontend/services/IobrokerWebuiEventsService.js +1 -1
  187. package/www/dist/frontend/services/IobrokerWebuiExternalDragDropService.js +1 -1
  188. package/www/dist/frontend/services/IobrokerWebuiLitPropertiesService.js +1 -1
  189. package/www/dist/frontend/services/IobrokerWebuiPropertiesService.js +1 -1
  190. package/www/dist/frontend/services/IobrokerWebuiPropertyGroupsService.js +1 -1
  191. package/www/dist/frontend/services/IobrokerWebuiRefactorService.js +1 -1
  192. package/www/dist/frontend/services/IobrokerWebuiScreenContextMenu.js +1 -1
  193. package/www/dist/frontend/services/IobrokerWebuiSpecialPropertiesService.js +1 -1
  194. package/www/dist/frontend/services/IobrokerWebuiSpectrumEditorService.js +1 -1
  195. package/www/dist/frontend/services/IobrokerWebuiVisibilityPropertiesService.js +1 -1
  196. package/www/dist/frontend/services/LayoutComponentsPropertiesService.js +1 -1
  197. package/www/dist/frontend/widgets/customElementsObserver.js +1 -1
  198. package/www/dist/frontend/widgets/importWidgetFiles.js +1 -1
  199. package/www/dist/frontend/widgets/importWidgetFilesRuntime.js +1 -1
  200. package/www/dist/frontend/widgets/layout-components.js +1 -1
  201. package/www/dist/frontend/widgets/layout-placement-services.js +1 -1
  202. package/www/dist/frontend/widgets/testElement.js +1 -1
  203. package/www/libs/@gokturk413/base-custom-webcomponent/dist/BaseCustomWebComponent.js +204 -61
  204. package/www/license-check.obf.js +1 -1
  205. package/www/3d-editor/src/core/3d-editor.ts +0 -241
  206. package/www/3d-editor/src/core/asset-manager.ts +0 -321
  207. package/www/3d-editor/src/core/glb-loader.ts +0 -112
  208. package/www/3d-editor/src/core/property-panel-adapter.ts +0 -252
  209. package/www/3d-editor/src/core/property-store.ts +0 -107
  210. package/www/3d-editor/src/core/scene-manager.ts +0 -253
  211. package/www/3d-editor/src/core/selection-manager.ts +0 -185
  212. package/www/3d-editor/src/core/signal-store.ts +0 -144
  213. package/www/3d-editor/src/core/snap-points.ts +0 -404
  214. package/www/3d-editor/src/examples/mywebui-integration-example.ts +0 -295
  215. package/www/3d-editor/src/index.ts +0 -40
  216. package/www/3d-editor/src/styles/3d-editor.css +0 -518
  217. package/www/3d-editor/src/styles/asset-manager.css +0 -418
  218. package/www/3d-editor/src/ui/3d-editor-element.ts +0 -341
  219. package/www/3d-editor/src/ui/3d-editor-wrapper.ts +0 -183
  220. package/www/3d-editor/src/ui/asset-manager-panel.ts +0 -305
  221. package/www/3d-editor/src/ui/layout-planner.ts +0 -375
package/README.md CHANGED
@@ -158,6 +158,46 @@ frontend is not trusted), runtime‑gated visualization access:
158
158
  obfuscated in place. License parts are obfuscated locally (their secret keys never enter
159
159
  CI). Source maps and readable license source are excluded from the npm package.
160
160
 
161
+ ### 🔗 Bindings (signals, states, objects, properties)
162
+ Bindings connect an element's attribute/property/content to a data source. In the
163
+ designer click the **□ button** next to a property in the property grid to open the
164
+ binding editor. A binding is written into the HTML as a `bind-…` attribute.
165
+
166
+ **Binding targets** (what is bound on the element):
167
+ | Attribute | Effect |
168
+ |---|---|
169
+ | `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`) |
170
+ | `bind-attr:<attribute>` | an HTML attribute |
171
+ | `bind-content:text` / `bind-content:html` | the element's text / HTML content |
172
+ | `bind-css:<class>` | toggles a CSS class |
173
+ | `bind-cssvar:<--var>` | sets a CSS custom property |
174
+ | `bind-style:<prop>` | a single inline style property |
175
+
176
+ **Source forms** (where the value comes from — the right‑hand side of the binding):
177
+ | Form | Meaning |
178
+ |---|---|
179
+ | `myAdapter.0.device.STATE` | plain object id → the state **value** (`state.val`); two‑way for inputs |
180
+ | `state:myAdapter.0.device.STATE` | the **whole state** object → use `.val`, `.ack`, `.ts`, `.lc`, `.q` (e.g. show quality/timestamp) |
181
+ | `object:myAdapter.0.device.STATE` | the ioBroker **object** (`common`, `native`, …) e.g. unit/min/max/role |
182
+ | `??propertyName` | a **screen/control property** (instance property declared on the screen or custom control) |
183
+ | `.suffix` | **relative** id — prefixed at runtime with the host control's `relativeSignalsPath` (reusable controls) |
184
+ | `local_<name>` | a **local** (browser‑only) state, not persisted to ioBroker |
185
+
186
+ Special read‑only values `width` / `height` expose the element's live size. Conversions,
187
+ format strings and a JavaScript multiplex expression are available in the binding editor
188
+ for value transformation.
189
+
190
+ ### 🧬 Dynamic properties
191
+ Any element on a screen — including installed **npm / Lit package widgets** — can get extra
192
+ per‑instance properties without changing the widget's code:
193
+ - Select an element → **`dynamic` tab** in the property grid → add/remove a property
194
+ (name, type `string|number|boolean|color|enum|signal`, default, optional enum values).
195
+ - Stored on the element as the `dynamic-property-defs` attribute (a JSON array).
196
+ - At runtime real accessors are created (with `…-changed` events), so dynamic properties
197
+ are fully **bindable** (two‑way) and usable from scripts just like native ones.
198
+ - Lit/package widgets may also expose webui‑specific editors by declaring a
199
+ `static webuiProperties = { name: { type:'signal'|'color'|'screen'|'enum', values? } }`.
200
+
161
201
  ### Notable fixes
162
202
  - **OAuth token‑refresh under a subpath:** the socket client refreshed the auth token via a
163
203
  relative `./oauth/token`, which resolved to `/mywebui/oauth/token` (404) when served under
@@ -253,6 +293,34 @@ runtime.html?screenName=screen2
253
293
  Placeholder for next versions:
254
294
  ### __WORK IN PROGRESS__
255
295
  -->
296
+ ### 1.43.0 (2026-06-25)
297
+ * (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)
298
+ * (gokturk413) fix: backend honours `visibilityEnabled` / `accessibility.enabled` — a disabled restriction with a stale group list no longer keeps blocking
299
+ * (gokturk413) fix: the Settings‑tab "Screen Accessibility Control" and the Projects "Screen Access" dialog are now mirrored (single source of truth)
300
+ * (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
301
+ * (gokturk413) docs: README — bindings (signals/state/object/properties), dynamic properties, current changelog
302
+
303
+ ### 1.42.99 (2026-06-24)
304
+ * (gokturk413) feat: group‑based access control (runtime + editor), hybrid readable‑source / obfuscated‑artifact build & packaging pipeline, branding
305
+ * (gokturk413) feat: global (platform‑default) custom controls — shipped under **Global > CustomControls / 3D Custom Controls**, pre‑seeded on install, editable, usable in every project
306
+
307
+ ### 1.42.90 (2026-06)
308
+ * (gokturk413) feat: self‑contained multi‑project layout — each project under `mywebui.0.projects/<name>/{data,widgets}` with export/import
309
+
310
+ ### 1.42.45 (2026-06)
311
+ * (gokturk413) design: neon glassmorphic theme for the solution explorer
312
+
313
+ ### 1.42.44 (2026-06)
314
+ * (gokturk413) feat: multi‑project support — project selector with create/delete; runtime preview passes `?project=`, plain `runtime.html` always shows default (kiosk safe)
315
+
316
+ ### 1.42.42 (2026-06)
317
+ * (gokturk413) feat: `dynamic` property tab for every element (works with npm manifest widgets too) — per‑instance dynamic properties with two‑way binding
318
+
319
+ ### 1.40.0 (2026-06)
320
+ * (gokturk413) feat: 3D Editor (Three.js) — 3D screens & 3D custom controls, signal bindings, asset manager, layout planner
321
+
322
+ <!-- older custom‑edition versions: see the full per‑version "news" list in io‑package.json -->
323
+
256
324
  ### 1.37.0 (2025-10-15)
257
325
  - fix bug in bundled code
258
326
  - use minified code for config