iobroker.mywebui 1.76.0 → 1.78.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 (235) hide show
  1. package/default-controls/controls/gauges/setpoint-gauge.control +1 -0
  2. package/dist/backend/3d-editor-integration.js +1 -1
  3. package/dist/backend/ImportmapCreator.js +1 -1
  4. package/dist/backend/UploadHelper.js +1 -1
  5. package/dist/backend/main.js +1 -1
  6. package/io-package.json +1 -1
  7. package/package.json +1 -1
  8. package/www/3d-editor/js/Animation.js +1 -1
  9. package/www/3d-editor/js/AnimationResizer.js +1 -1
  10. package/www/3d-editor/js/Command.js +1 -1
  11. package/www/3d-editor/js/Config.js +1 -1
  12. package/www/3d-editor/js/Editor.js +1 -1
  13. package/www/3d-editor/js/EditorControls.js +1 -1
  14. package/www/3d-editor/js/GLTFImportDialog.js +1 -1
  15. package/www/3d-editor/js/History.js +1 -1
  16. package/www/3d-editor/js/Loader.js +1 -1
  17. package/www/3d-editor/js/LoaderUtils.js +1 -1
  18. package/www/3d-editor/js/Menubar.Add.js +1 -1
  19. package/www/3d-editor/js/Menubar.Edit.js +1 -1
  20. package/www/3d-editor/js/Menubar.File.js +1 -1
  21. package/www/3d-editor/js/Menubar.Help.js +1 -1
  22. package/www/3d-editor/js/Menubar.Render.js +1 -1
  23. package/www/3d-editor/js/Menubar.Status.js +1 -1
  24. package/www/3d-editor/js/Menubar.View.js +1 -1
  25. package/www/3d-editor/js/Menubar.js +1 -1
  26. package/www/3d-editor/js/Player.js +1 -1
  27. package/www/3d-editor/js/Resizer.js +1 -1
  28. package/www/3d-editor/js/Script.js +1 -1
  29. package/www/3d-editor/js/Selector.js +1 -1
  30. package/www/3d-editor/js/Sidebar.Geometry.BoxGeometry.js +1 -1
  31. package/www/3d-editor/js/Sidebar.Geometry.BufferGeometry.js +1 -1
  32. package/www/3d-editor/js/Sidebar.Geometry.CapsuleGeometry.js +1 -1
  33. package/www/3d-editor/js/Sidebar.Geometry.CircleGeometry.js +1 -1
  34. package/www/3d-editor/js/Sidebar.Geometry.CylinderGeometry.js +1 -1
  35. package/www/3d-editor/js/Sidebar.Geometry.DodecahedronGeometry.js +1 -1
  36. package/www/3d-editor/js/Sidebar.Geometry.ExtrudeGeometry.js +1 -1
  37. package/www/3d-editor/js/Sidebar.Geometry.IcosahedronGeometry.js +1 -1
  38. package/www/3d-editor/js/Sidebar.Geometry.LatheGeometry.js +1 -1
  39. package/www/3d-editor/js/Sidebar.Geometry.Modifiers.js +1 -1
  40. package/www/3d-editor/js/Sidebar.Geometry.OctahedronGeometry.js +1 -1
  41. package/www/3d-editor/js/Sidebar.Geometry.PlaneGeometry.js +1 -1
  42. package/www/3d-editor/js/Sidebar.Geometry.RingGeometry.js +1 -1
  43. package/www/3d-editor/js/Sidebar.Geometry.ShapeGeometry.js +1 -1
  44. package/www/3d-editor/js/Sidebar.Geometry.SphereGeometry.js +1 -1
  45. package/www/3d-editor/js/Sidebar.Geometry.TetrahedronGeometry.js +1 -1
  46. package/www/3d-editor/js/Sidebar.Geometry.TextGeometry.js +1 -1
  47. package/www/3d-editor/js/Sidebar.Geometry.TorusGeometry.js +1 -1
  48. package/www/3d-editor/js/Sidebar.Geometry.TorusKnotGeometry.js +1 -1
  49. package/www/3d-editor/js/Sidebar.Geometry.TubeGeometry.js +1 -1
  50. package/www/3d-editor/js/Sidebar.Geometry.js +1 -1
  51. package/www/3d-editor/js/Sidebar.Material.BooleanProperty.js +1 -1
  52. package/www/3d-editor/js/Sidebar.Material.ColorProperty.js +1 -1
  53. package/www/3d-editor/js/Sidebar.Material.ConstantProperty.js +1 -1
  54. package/www/3d-editor/js/Sidebar.Material.MapProperty.js +1 -1
  55. package/www/3d-editor/js/Sidebar.Material.NumberProperty.js +1 -1
  56. package/www/3d-editor/js/Sidebar.Material.Program.js +1 -1
  57. package/www/3d-editor/js/Sidebar.Material.RangeValueProperty.js +1 -1
  58. package/www/3d-editor/js/Sidebar.Material.js +1 -1
  59. package/www/3d-editor/js/Sidebar.Object.js +1 -1
  60. package/www/3d-editor/js/Sidebar.Project.App.js +1 -1
  61. package/www/3d-editor/js/Sidebar.Project.Materials.js +1 -1
  62. package/www/3d-editor/js/Sidebar.Project.Renderer.js +1 -1
  63. package/www/3d-editor/js/Sidebar.Project.Resources.js +1 -1
  64. package/www/3d-editor/js/Sidebar.Project.js +1 -1
  65. package/www/3d-editor/js/Sidebar.Properties.js +1 -1
  66. package/www/3d-editor/js/Sidebar.Scene.js +1 -1
  67. package/www/3d-editor/js/Sidebar.Script.js +1 -1
  68. package/www/3d-editor/js/Sidebar.Settings.History.js +1 -1
  69. package/www/3d-editor/js/Sidebar.Settings.Shortcuts.js +1 -1
  70. package/www/3d-editor/js/Sidebar.Settings.js +1 -1
  71. package/www/3d-editor/js/Sidebar.js +1 -1
  72. package/www/3d-editor/js/Storage.js +1 -1
  73. package/www/3d-editor/js/Strings.js +1 -1
  74. package/www/3d-editor/js/TextureParametersDialog.js +1 -1
  75. package/www/3d-editor/js/Toolbar.js +1 -1
  76. package/www/3d-editor/js/Viewport.Controls.js +1 -1
  77. package/www/3d-editor/js/Viewport.Info.js +1 -1
  78. package/www/3d-editor/js/Viewport.Pathtracer.js +1 -1
  79. package/www/3d-editor/js/Viewport.ViewHelper.js +1 -1
  80. package/www/3d-editor/js/Viewport.XR.js +1 -1
  81. package/www/3d-editor/js/Viewport.js +1 -1
  82. package/www/3d-editor/js/commands/AddObjectCommand.js +1 -1
  83. package/www/3d-editor/js/commands/AddScriptCommand.js +1 -1
  84. package/www/3d-editor/js/commands/Commands.js +1 -1
  85. package/www/3d-editor/js/commands/MoveObjectCommand.js +1 -1
  86. package/www/3d-editor/js/commands/MultiCmdsCommand.js +1 -1
  87. package/www/3d-editor/js/commands/RemoveObjectCommand.js +1 -1
  88. package/www/3d-editor/js/commands/RemoveScriptCommand.js +1 -1
  89. package/www/3d-editor/js/commands/SetColorCommand.js +1 -1
  90. package/www/3d-editor/js/commands/SetGeometryCommand.js +1 -1
  91. package/www/3d-editor/js/commands/SetGeometryValueCommand.js +1 -1
  92. package/www/3d-editor/js/commands/SetMaterialColorCommand.js +1 -1
  93. package/www/3d-editor/js/commands/SetMaterialCommand.js +1 -1
  94. package/www/3d-editor/js/commands/SetMaterialMapCommand.js +1 -1
  95. package/www/3d-editor/js/commands/SetMaterialRangeCommand.js +1 -1
  96. package/www/3d-editor/js/commands/SetMaterialValueCommand.js +1 -1
  97. package/www/3d-editor/js/commands/SetMaterialVectorCommand.js +1 -1
  98. package/www/3d-editor/js/commands/SetPositionCommand.js +1 -1
  99. package/www/3d-editor/js/commands/SetRotationCommand.js +1 -1
  100. package/www/3d-editor/js/commands/SetScaleCommand.js +1 -1
  101. package/www/3d-editor/js/commands/SetSceneCommand.js +1 -1
  102. package/www/3d-editor/js/commands/SetScriptValueCommand.js +1 -1
  103. package/www/3d-editor/js/commands/SetShadowValueCommand.js +1 -1
  104. package/www/3d-editor/js/commands/SetTextureParametersCommand.js +1 -1
  105. package/www/3d-editor/js/commands/SetUuidCommand.js +1 -1
  106. package/www/3d-editor/js/commands/SetValueCommand.js +1 -1
  107. package/www/dist/frontend/bundle/chunk-3C6XC7RW.js +1 -1
  108. package/www/dist/frontend/bundle/chunk-3WGNLIWJ.js +3 -3
  109. package/www/dist/frontend/bundle/chunk-3YK3Y2SJ.js +1 -1
  110. package/www/dist/frontend/bundle/chunk-43HEBO5G.js +2 -2
  111. package/www/dist/frontend/bundle/chunk-5MUGMRXU.js +1 -1
  112. package/www/dist/frontend/bundle/chunk-5UBRCTRX.js +3 -3
  113. package/www/dist/frontend/bundle/chunk-65A3PNMG.js +1 -1
  114. package/www/dist/frontend/bundle/chunk-7CWDQGAG.js +3 -3
  115. package/www/dist/frontend/bundle/chunk-7PT7IGUJ.js +3 -3
  116. package/www/dist/frontend/bundle/chunk-AI5PDLDE.js +2 -2
  117. package/www/dist/frontend/bundle/chunk-AWKVUUKN.js +3 -3
  118. package/www/dist/frontend/bundle/chunk-B6NXWGSB.js +1 -1
  119. package/www/dist/frontend/bundle/chunk-BHSHNRXW.js +1 -1
  120. package/www/dist/frontend/bundle/chunk-BVONDEOL.js +3 -3
  121. package/www/dist/frontend/bundle/chunk-CHDKROX5.js +3 -3
  122. package/www/dist/frontend/bundle/chunk-DNCD2F6X.js +3 -3
  123. package/www/dist/frontend/bundle/chunk-FHF6DL5U.js +1 -1
  124. package/www/dist/frontend/bundle/chunk-FO56TEZH.js +3 -3
  125. package/www/dist/frontend/bundle/chunk-FSRRPQMX.js +3 -3
  126. package/www/dist/frontend/bundle/chunk-GLQNGCFL.js +1 -1
  127. package/www/dist/frontend/bundle/chunk-JBDSDK2C.js +3 -3
  128. package/www/dist/frontend/bundle/chunk-JSC66ZLQ.js +1 -1
  129. package/www/dist/frontend/bundle/chunk-K6IV7LKW.js +1 -1
  130. package/www/dist/frontend/bundle/chunk-KY73TL6O.js +2 -2
  131. package/www/dist/frontend/bundle/chunk-M6VVTDVX.js +3 -3
  132. package/www/dist/frontend/bundle/chunk-MECWXZRN.js +1 -1
  133. package/www/dist/frontend/bundle/chunk-N2YIZTB2.js +1 -1
  134. package/www/dist/frontend/bundle/chunk-NQ7L7KNT.js +3 -3
  135. package/www/dist/frontend/bundle/chunk-P7EOR36H.js +1 -1
  136. package/www/dist/frontend/bundle/chunk-PJYK24KZ.js +1 -1
  137. package/www/dist/frontend/bundle/chunk-PYLAW6UA.js +3 -3
  138. package/www/dist/frontend/bundle/chunk-QJJGP23I.js +1 -1
  139. package/www/dist/frontend/bundle/chunk-QV4IBWXA.js +1 -1
  140. package/www/dist/frontend/bundle/chunk-R6IQDPAP.js +3 -3
  141. package/www/dist/frontend/bundle/chunk-RTTBZOQU.js +3 -3
  142. package/www/dist/frontend/bundle/chunk-S4TLNW5D.js +1 -1
  143. package/www/dist/frontend/bundle/chunk-SE6N4ZEN.js +1 -1
  144. package/www/dist/frontend/bundle/chunk-SQHXO2IT.js +3 -3
  145. package/www/dist/frontend/bundle/chunk-T4AIQBBH.js +3 -3
  146. package/www/dist/frontend/bundle/chunk-U5Q332OH.js +1 -1
  147. package/www/dist/frontend/bundle/chunk-UIP324PP.js +1 -1
  148. package/www/dist/frontend/bundle/chunk-V27IRYSL.js +1 -1
  149. package/www/dist/frontend/bundle/chunk-V4C5FGJL.js +2 -2
  150. package/www/dist/frontend/bundle/chunk-WED7CGWA.js +2 -2
  151. package/www/dist/frontend/bundle/chunk-WQ5H5LTG.js +3 -3
  152. package/www/dist/frontend/bundle/chunk-WU54NCEU.js +1 -1
  153. package/www/dist/frontend/bundle/chunk-XFO5FUCN.js +1 -1
  154. package/www/dist/frontend/bundle/chunk-XWAQ2BWM.js +3 -3
  155. package/www/dist/frontend/bundle/chunk-YTQCHNRQ.js +3 -3
  156. package/www/dist/frontend/bundle/chunk-YUSK4FN3.js +3 -3
  157. package/www/dist/frontend/bundle/chunk-Z34BSG5O.js +3 -3
  158. package/www/dist/frontend/bundle/common/IobrokerHandler.js +1 -1
  159. package/www/dist/frontend/bundle/runtime/CustomControls.js +1 -1
  160. package/www/dist/frontend/bundle/runtime/ScreenViewer.js +1 -1
  161. package/www/dist/frontend/bundle/runtime/controls.js +4 -4
  162. package/www/dist/frontend/bundle/runtime/init.js +2 -2
  163. package/www/dist/frontend/common/Common.globals.js +1 -1
  164. package/www/dist/frontend/common/IobrokerHandler.js +1 -1
  165. package/www/dist/frontend/common/Runtime.js +1 -1
  166. package/www/dist/frontend/config/CommandHandling.js +1 -1
  167. package/www/dist/frontend/config/ConfigureWebcomponentDesigner.js +1 -1
  168. package/www/dist/frontend/config/DockHelper.js +1 -1
  169. package/www/dist/frontend/config/IobrokerWebui3DDriveEngine.js +1 -1
  170. package/www/dist/frontend/config/IobrokerWebui3DScreenEditor.js +3 -3
  171. package/www/dist/frontend/config/IobrokerWebui3DScreenPropertiesPanel.js +3 -3
  172. package/www/dist/frontend/config/IobrokerWebui3DScreenViewer.js +2 -2
  173. package/www/dist/frontend/config/IobrokerWebuiAppShell.js +3 -3
  174. package/www/dist/frontend/config/IobrokerWebuiBindingsEditor.js +1 -1
  175. package/www/dist/frontend/config/IobrokerWebuiConfirmationWrapper.js +3 -3
  176. package/www/dist/frontend/config/IobrokerWebuiControlPropertiesEditor.js +3 -3
  177. package/www/dist/frontend/config/IobrokerWebuiDynamicPropsEditor.js +1 -1
  178. package/www/dist/frontend/config/IobrokerWebuiEventAssignment.js +1 -1
  179. package/www/dist/frontend/config/IobrokerWebuiIconsView.js +2 -2
  180. package/www/dist/frontend/config/IobrokerWebuiMonacoEditor.js +2 -2
  181. package/www/dist/frontend/config/IobrokerWebuiPropertyGrid.js +1 -1
  182. package/www/dist/frontend/config/IobrokerWebuiScreenEditor.js +1 -1
  183. package/www/dist/frontend/config/IobrokerWebuiScreensView.js +3 -3
  184. package/www/dist/frontend/config/IobrokerWebuiSignalPropertyEditor.js +1 -1
  185. package/www/dist/frontend/config/IobrokerWebuiSolutionExplorer.js +3 -3
  186. package/www/dist/frontend/config/IobrokerWebuiTranslationEditor.js +1 -1
  187. package/www/dist/frontend/config/IobrokerWebuiWidgetGallery.js +3 -3
  188. package/www/dist/frontend/helper/DialogHelper.js +2 -2
  189. package/www/dist/frontend/helper/EsprimaHelper.js +1 -1
  190. package/www/dist/frontend/helper/Helper.js +1 -1
  191. package/www/dist/frontend/helper/LayoutHelper.js +1 -1
  192. package/www/dist/frontend/helper/XmlHelper.js +1 -1
  193. package/www/dist/frontend/helper/ZipHelper.js +1 -1
  194. package/www/dist/frontend/runtime/AnimationService.js +1 -1
  195. package/www/dist/frontend/runtime/CustomControls.js +1 -1
  196. package/www/dist/frontend/runtime/DynamicElementProperties.js +1 -1
  197. package/www/dist/frontend/runtime/HabPanelLikeMenu.js +3 -3
  198. package/www/dist/frontend/runtime/NavigationShell.js +1 -1
  199. package/www/dist/frontend/runtime/ScreenViewer.js +3 -3
  200. package/www/dist/frontend/runtime/TranslateableText.js +2 -2
  201. package/www/dist/frontend/runtime/VisibilityService.js +1 -1
  202. package/www/dist/frontend/runtime/controls.js +1 -1
  203. package/www/dist/frontend/runtime/init.js +1 -1
  204. package/www/dist/frontend/scripting/IobrokerWebuiScriptSystem.js +1 -1
  205. package/www/dist/frontend/scripting/blockly/OpenScreen.js +1 -1
  206. package/www/dist/frontend/scripting/blockly/webuiBlocklyToolbox.js +1 -1
  207. package/www/dist/frontend/services/DynamicPropertiesHelper.js +1 -1
  208. package/www/dist/frontend/services/IobrokerWebuiBindableLocalObjectsService.js +1 -1
  209. package/www/dist/frontend/services/IobrokerWebuiBindableObjectDragDropService.js +1 -1
  210. package/www/dist/frontend/services/IobrokerWebuiBindableObjectsForPropertiesService.js +1 -1
  211. package/www/dist/frontend/services/IobrokerWebuiBindableObjectsService.js +1 -1
  212. package/www/dist/frontend/services/IobrokerWebuiConfigButtonProvider.js +1 -1
  213. package/www/dist/frontend/services/IobrokerWebuiCopyPasteService.js +1 -1
  214. package/www/dist/frontend/services/IobrokerWebuiCustomControlEventsService.js +1 -1
  215. package/www/dist/frontend/services/IobrokerWebuiCustomElementContextMenu.js +1 -1
  216. package/www/dist/frontend/services/IobrokerWebuiDemoProviderService.js +1 -1
  217. package/www/dist/frontend/services/IobrokerWebuiDynamicPropertiesService.js +1 -1
  218. package/www/dist/frontend/services/IobrokerWebuiEventsService.js +1 -1
  219. package/www/dist/frontend/services/IobrokerWebuiExternalDragDropService.js +1 -1
  220. package/www/dist/frontend/services/IobrokerWebuiLitPropertiesService.js +1 -1
  221. package/www/dist/frontend/services/IobrokerWebuiPropertiesService.js +1 -1
  222. package/www/dist/frontend/services/IobrokerWebuiPropertyGroupsService.js +1 -1
  223. package/www/dist/frontend/services/IobrokerWebuiRefactorService.js +1 -1
  224. package/www/dist/frontend/services/IobrokerWebuiScreenContextMenu.js +1 -1
  225. package/www/dist/frontend/services/IobrokerWebuiSpecialPropertiesService.js +1 -1
  226. package/www/dist/frontend/services/IobrokerWebuiSpectrumEditorService.js +1 -1
  227. package/www/dist/frontend/services/IobrokerWebuiVisibilityPropertiesService.js +1 -1
  228. package/www/dist/frontend/services/LayoutComponentsPropertiesService.js +1 -1
  229. package/www/dist/frontend/widgets/OrthoFlowLineTool.js +1 -1
  230. package/www/dist/frontend/widgets/customElementsObserver.js +1 -1
  231. package/www/dist/frontend/widgets/importWidgetFiles.js +1 -1
  232. package/www/dist/frontend/widgets/importWidgetFilesRuntime.js +1 -1
  233. package/www/dist/frontend/widgets/layout-components.js +1 -1
  234. package/www/dist/frontend/widgets/layout-placement-services.js +1 -1
  235. package/www/dist/frontend/widgets/testElement.js +1 -1
@@ -1 +1 @@
1
- const av=c;(function(m,n){const au=c,o=m();while(!![]){try{const p=parseInt(au(0x26f))/0x1+parseInt(au(0x286))/0x2*(-parseInt(au(0x1e9))/0x3)+parseInt(au(0x1d0))/0x4+-parseInt(au(0x1f3))/0x5*(parseInt(au(0x1c7))/0x6)+parseInt(au(0x1c3))/0x7*(parseInt(au(0xfd))/0x8)+parseInt(au(0x247))/0x9*(-parseInt(au(0x158))/0xa)+parseInt(au(0x281))/0xb;if(p===n)break;else o['push'](o['shift']());}catch(r){o['push'](o['shift']());}}}(a,0xd2589));import{BaseCustomWebComponentConstructorAppend as d,css as e,cssFromString as f}from'@gokturk413/base-custom-webcomponent';import{Connection as g}from'@iobroker/socket-client';import{TypedEvent as h,cssFromString as j}from'@gokturk413/base-custom-webcomponent';function X(m){return new Promise(n=>setTimeout(n,m));}var V=class i{static ['instance']=new i();[av(0x20a)];['connection'];['adapterName']='mywebui';[av(0x278)]=av(0x207);[av(0x1eb)]=this[av(0x278)]+'.projects';['namespaceProjects']=this['namespace']+'.projects';[av(0x20c)]=this[av(0x278)]+av(0x119);['globalPath']=av(0x287);#e='default';get['currentProject'](){return this.#e;}get[av(0x280)](){const aw=av;return this.#e+aw(0x264);}get['widgetUrlBase'](){const ax=av;return this['namespaceProjects']+'/'+this.#e+ax(0x22a);}get['imagePrefix'](){const ay=av;return'/'+this[ay(0x1eb)]+'/'+this[ay(0x280)]+ay(0x227);}get['additionalFilePrefix'](){const az=av;return'/'+this[az(0x1eb)]+'/'+this['configPath']+'additionalfiles/';}['config'];[av(0x18b)];[av(0x1ba)];[av(0x25b)];[av(0x1f2)]=new h();[av(0x294)]=new h();['additionalFilesChanged']=new h();[av(0x218)]=new h();['changeView']=new h();['refreshView']=new h();['_readyPromises']=[];['language']='en';['languageChanged']=new h();['translations']={};[av(0xf0)]=new h();#t=new Map();['_controlNames']=null;[av(0xf2)];[av(0x2c2)]=null;constructor(){const aA=av;this[aA(0xf2)]=Date[aA(0x139)]()['toString'](0x10),this.#t['set']('screen',new Map()),this.#t[aA(0x2be)]('control',new Map()),this.#t[aA(0x2be)]('3dscreen',new Map()),this.#t['set']('3dcontrol',new Map());try{let m=new URLSearchParams(window['location']['search'])[aA(0x224)]('project');m?this.#e=this[aA(0x195)](m):window['location']['pathname'][aA(0x1b7)]('runtime.html')||(this.#e=this[aA(0x195)](localStorage[aA(0x2b5)]('webui-current-project')??aA(0x138)));}catch(n){console[aA(0x29d)]('could\x20not\x20determine\x20current\x20project',n);}}[av(0x195)](m){const aB=av;return m=(m??'')['toString']()[aB(0x298)]()['toLowerCase']()[aB(0x176)]('\x20','-'),/^[a-z0-9_-]+$/['test'](m)?m:'default';}async[av(0x26a)](){const aC=av;this[aC(0x166)]&&await this['waitForReady']();try{let m=await this[aC(0x234)]('projects.json');if(Array['isArray'](m?.[aC(0x27d)])){let n=m['projects'][aC(0x248)](o=>/^[a-z0-9_-]+$/['test'](o));return n['includes']('default')||n['unshift']('default'),n;}}catch{}return['default'];}async['createProject'](m){const aD=av;if(m=(m??'')[aD(0x198)]()[aD(0x298)]()['toLowerCase']()['replaceAll']('\x20','-'),!/^[a-z0-9_-]+$/['test'](m))throw new Error(aD(0x289)+m);let n=await this[aD(0x26a)]();if(n[aD(0x104)](m))throw new Error('project\x20already\x20exists:\x20'+m);n['push'](m),await this[aD(0x15b)]({'projects':n['filter'](o=>o!==aD(0x138))},'projects.json'),await this['_saveObjectToFile']({'globalStyle':null,'globalScript':null,'globalConfig':null,'fontDeclarations':null},m+aD(0x22e)),await this['_saveObjectToFile']({},m+aD(0x20b));try{await this['connection'][aD(0x230)](this['namespace']+'.control.project',{'val':m}),await this[aD(0x11e)]['setState'](this['namespace']+'.control.command',{'val':'createImportmap'});}catch{}return m;}async[av(0x17f)](m){const aE=av;if(m==='default')throw new Error('the\x20\x27default\x27\x20project\x20cannot\x20be\x20deleted');let n=(await this[aE(0x26a)]())[aE(0x248)](o=>o!==m&&o!=='default');await this[aE(0x15b)]({'projects':n},'projects.json');try{await this['connection'][aE(0x253)](this['namespaceProjects'],'/'+m);}catch(o){console['warn'](aE(0x1f5),o);}this.#e===m&&this['setCurrentProject'](aE(0x138));}['setCurrentProject'](m){const aF=av;localStorage[aF(0x1df)]('webui-current-project',this[aF(0x195)](m));let n=new URL(window[aF(0x113)]['href']);n['searchParams']['delete']('project'),n['toString']()===window['location'][aF(0x2bb)]?window[aF(0x113)][aF(0x255)]():window['location'][aF(0x2bb)]=n[aF(0x198)]();}[av(0x2cb)](m,n,o){return(n??'')+m;}['waitForReady'](){return this['_readyPromises']?new Promise(m=>{const aG=c;this['_readyPromises'][aG(0xf6)](m);}):Promise['resolve']();}async[av(0x273)](){const aH=av;for(;!window['io'];)await X(0x5);let m=document['getElementById'](aH(0xfc));m&&(m[aH(0x24c)]='connecting...'),this[aH(0x11e)]=new g({'protocol':'ws','host':window['iobrokerHost'],'port':window[aH(0x2c6)],'admin5only':!0x1,'autoSubscribes':[],'onError':y=>{const aI=aH;let A=document[aI(0x143)](aI(0xfc));A&&(A[aI(0x24c)]=y);let C=document[aI(0x143)]('connectionState');C&&(C[aI(0x2ac)]['background']='red');},'onReady':()=>{const aJ=aH;let y=document[aJ(0x143)]('connectionInfo');y&&(y[aJ(0x24c)]='ready');let A=document[aJ(0x143)](aJ(0x261));A&&(A['style'][aJ(0xf4)]=aJ(0x243));}}),await this[aH(0x11e)]['startSocket'](),await this['connection']['waitForFirstConnection']();try{this['userName']=await this[aH(0x11e)]['getCurrentUser']();}catch{}let p=await this['_getConfig']();this['config']=p??{'globalStyle':null,'globalScript':null,'globalConfig':null,'fontDeclarations':null};try{let y=await this[aH(0x11e)][aH(0x18c)](aH(0x1ca));this['grafanaLangSyncEnabled']=!!(y?.[aH(0x1e0)]?.[aH(0x22b)]&&y?.[aH(0x1e0)]?.['grafanaLangSyncEnabled']);}catch{this['grafanaLangSyncEnabled']=!0x1;}if(this['config']['globalConfig']==null&&(this['config'][aH(0x169)]={'headerTags':aH(0x185)}),this['config']['globalConfig']['headerTags']){let A=document[aH(0x28c)]()[aH(0x27e)](this[aH(0x183)]['globalConfig'][aH(0x205)]);document[aH(0x1bf)][aH(0x19d)](A);}if(this[aH(0x183)]['globalStyle']&&(this[aH(0x18b)]=j(this[aH(0x183)][aH(0x21f)])),this[aH(0x183)][aH(0x25d)]&&(this[aH(0x1ba)]=j(this[aH(0x183)]['fontDeclarations']),document[aH(0x154)]=[this[aH(0x1ba)]]),this['config']['globalScript']){let C=URL[aH(0x150)](new Blob([this['config'][aH(0x129)]],{'type':'application/javascript'}));this['globalScriptInstance']=await importShim(C),this['globalScriptInstance'][aH(0x273)]&&this[aH(0x25b)][aH(0x273)]();}let u=localStorage['getItem'](aH(0x23d));if(u)this['language']=u;else try{let T=await this['connection']['getSystemConfig']();T?.[aH(0x1d6)]?.['language']&&(this['language']=T[aH(0x1d6)][aH(0x1e7)]);}catch{}this[aH(0x230)]('local_language',{'val':this['language']}),this['subscribeState'](aH(0x1f7),(Y,a0)=>{const aK=aH;a0?.[aK(0x14b)]&&a0[aK(0x14b)]!==this[aK(0x1e7)]&&this['setLanguage'](a0['val']);}),await this[aH(0x157)](),window['t']=Y=>this['t'](Y);for(let Y of this['_readyPromises'])Y();this[aH(0x166)]=null,console['log']('ioBroker\x20handler\x20ready.');let v,w;await this[aH(0x11e)]['subscribeState'](this['namespace']+'.control.data',(a0,a1)=>{v=a1?.['val'];}),await this[aH(0x11e)]['subscribeState'](this['namespace']+'.control.clientIds',(a0,a1)=>{w=a1?.['val'];});let x=await this[aH(0x11e)][aH(0x238)](this['namespace']+'.control.command');this['connection'][aH(0x123)](this[aH(0x278)]+aH(0x1c4),(a0,a1)=>{const aL=aH;a1?.[aL(0x201)]&&a1?.['ts']!=x?.['ts']&&this[aL(0x1da)](a1?.[aL(0x14b)],v,w);}),this['sendCommand']('uiConnected',''),this[aH(0x2b4)]=new BroadcastChannel(aH(0x187)),this['_broadcastChannel']['onmessage']=a0=>{const aM=aH;let {command:a1,data:a2,clientId:a3}=a0[aM(0x146)]??{};a1&&this['handleCommand'](a1,a2,a3);};}async['getIconAdapterFoldernames'](){const aN=av;let m=await this[aN(0x11e)]['getObjectViewSystem'](aN(0x16d),''),n=[];for(let o in m)(m[o]?.['common']?.[aN(0x29c)]==aN(0x155)||m[o]?.['common']['name']['startsWith']('icons-'))&&n['push'](m[o]?.[aN(0x1d6)][aN(0x1b2)]);return n;}async['getAllNames'](m,n){const aO=av;this['_readyPromises']&&await this['waitForReady']();let p=[];p['push'](this[aO(0x124)](m,n)[aO(0x16a)](v=>v['map'](w=>(n?n+'/':'/')['substring'](0x1)+w)));let u=await this['getSubFolders'](m,n);for(let v of u)p['push'](this['getAllNames'](m,(n??'')+'/'+v));return(await Promise[aO(0x28a)](p))['flatMap'](w=>w);}async['getSubFolders'](m,n){const aP=av;this[aP(0x166)]&&await this[aP(0x1be)]();try{return(await this['connection'][aP(0x1bc)](this[aP(0x1eb)],this[aP(0x280)]+m+'s'+(n??'')))['filter'](o=>o['isDir'])[aP(0x148)](o=>o['file']);}catch(o){console[aP(0x29d)](aP(0x122),o);}return[];}async['getObjectNames'](m,n){const aQ=av;this[aQ(0x166)]&&await this['waitForReady']();try{return(await this[aQ(0x11e)]['readDir'](this[aQ(0x1eb)],this['configPath']+m+'s'+(n??'')))['filter'](o=>o['file']['endsWith']('.'+m))[aQ(0x148)](o=>o['file'][aQ(0x1a7)](0x0,o[aQ(0x116)]['length']-m[aQ(0x2a0)]-0x1));}catch(o){console['warn']('no\x20'+m+aQ(0x12a),o);}return[];}async[av(0x16f)](m,n){const aR=av;return m==aR(0x13f)?this[aR(0x164)](n):m=='control'?this['getCustomControl'](n):m==aR(0x1ce)?this['get3DScreen'](n):m==aR(0x222)?this['get3DControl'](n):null;}async['getScreen'](m){const aS=av;m[0x0]=='/'&&(m=m['substring'](0x1));let n=this.#t['get'](aS(0x13f))['get'](m);if(!n){this[aS(0x166)]&&await this['waitForReady']();try{n=await this['_getObjectFromFile'](this['configPath']+aS(0x1e4)+m+'.screen');}catch(o){console[aS(0x106)](aS(0x144),n,o);}this.#t[aS(0x224)]('screen')[aS(0x2be)](m,n);}return n;}async['get3DScreen'](m){const aT=av;m[0x0]=='/'&&(m=m[aT(0x1a7)](0x1));let n=this.#t['get']('3dscreen')['get'](m);if(!n){this['_readyPromises']&&await this['waitForReady']();try{n=await this['_getObjectFromFile'](this['configPath']+aT(0x167)+m+aT(0x1cc));}catch(o){console['error']('Error\x20reading\x203D\x20Screen',n,o);}this.#t[aT(0x224)](aT(0x1ce))[aT(0x2be)](m,n);}return n;}async['get3DControl'](m){const aU=av;m[0x0]=='/'&&(m=m['substring'](0x1));let n=this.#t['get'](aU(0x222))['get'](m);if(!n){this[aU(0x166)]&&await this['waitForReady']();try{n=await this['_getObjectFromFile'](this['configPath']+'3dcontrols/'+m+'.3dcontrol');}catch(o){console['error'](aU(0x23a),n,o);}this.#t['get'](aU(0x222))['set'](m,n);}return n;}async[av(0x270)](m,n,o){const aV=av;await this['_saveObjectToFile'](o,'/'+this[aV(0x280)]+m+'s/'+n+'.'+m),this.#t[aV(0x204)](m)&&this.#t[aV(0x224)](m)[aV(0x2be)](n,o),m==aV(0x128)&&(this[aV(0x1af)]=null,this['_scheduleControlsAggregate']()),this['sendCommand'](aV(0x28d),JSON['stringify']({'type':m,'name':n}),'*');}async['removeObject'](m,n){const aW=av;await this[aW(0x11e)][aW(0x10e)](this[aW(0x1eb)],'/'+this['configPath']+m+'s/'+n+'.'+m),this.#t[aW(0x204)](m)&&this.#t['get'](m)[aW(0x1c5)](n),m=='control'&&(this[aW(0x1af)]=null,this['_scheduleControlsAggregate']()),this['objectsChanged'][aW(0x14f)]({'type':m,'name':n});}async['renameObject'](m,n,o){const aX=av;n[0x0]=='/'&&(n=n[aX(0x1a7)](0x1)),o[0x0]=='/'&&(o=o['substring'](0x1)),await this['connection']['renameFile'](this['namespaceFiles'],'/'+this['configPath']+m+'s/'+n+'.'+m,'/'+this[aX(0x280)]+m+'s/'+o+'.'+m),this.#t['has'](m)&&(this.#t[aX(0x224)](m)['delete'](n),this.#t['get'](m)['delete'](o)),m==aX(0x128)&&(this[aX(0x1af)]=null,this['_scheduleControlsAggregate']()),this['getWebuiObject'](m,o),this['objectsChanged']['emit']({'type':m,'name':o});}#n;[av(0x192)](){const aY=av;clearTimeout(this.#n),this.#n=setTimeout(()=>this[aY(0x136)](),0x2bc);}async['_writeControlsAggregate'](){const aZ=av;try{let m=await this['getAllNames']('control'),n={};await Promise[aZ(0x28a)](m[aZ(0x148)](async p=>{let r=p['replace'](/^\//,'');n[r]=await this['getCustomControl'](r);})),await this[aZ(0x15b)]({'version':0x1,'controls':n},this[aZ(0x280)]+aZ(0x1b0)),console['log']('controls\x20aggregate\x20written\x20('+m[aZ(0x2a0)]+aZ(0x1b4));}catch(o){console[aZ(0x29d)](aZ(0x225),o);}}async[av(0x173)](){const b0=av;this['_readyPromises']&&await this[b0(0x1be)]();try{let m=await this[b0(0x234)](this[b0(0x280)]+'controls-all.dat');if(m?.[b0(0x282)]){for(let n in m['controls'])this.#t['get']('control')['set'](n,m[b0(0x282)][n]);return this['_controlNames']=Object['keys'](m['controls']),m[b0(0x282)];}}catch{}return null;}async['getGlobalObjectNames'](m,n){const b1=av;try{return(await this[b1(0x11e)][b1(0x1bc)](this['namespaceGlobal'],this[b1(0x2a6)]+m+'s'+(n??'')))['filter'](p=>p[b1(0x116)][b1(0x1b7)]('.'+m))['map'](p=>p[b1(0x116)]['substring'](0x0,p[b1(0x116)]['length']-m['length']-0x1));}catch{return[];}}async[av(0x1c8)](m,n){const b2=av;try{return(await this[b2(0x11e)][b2(0x1bc)](this['namespaceGlobal'],this[b2(0x2a6)]+m+'s'+(n??'')))['filter'](p=>p[b2(0x145)])[b2(0x148)](p=>p['file']);}catch{return[];}}async['getAllGlobalNames'](m,n){const b3=av;let p=[];p[b3(0xf6)](this[b3(0x2ad)](m,n)['then'](r=>r[b3(0x148)](u=>(n?n+'/':'/')['substring'](0x1)+u)));for(let r of await this['getGlobalSubFolders'](m,n))p[b3(0xf6)](this[b3(0x1b1)](m,(n??'')+'/'+r));return(await Promise['all'](p))['flatMap'](u=>u);}async[av(0x159)](m,p){const b4=av;p[0x0]==='/'&&(p=p[b4(0x1a7)](0x1));let r='g'+m;this.#t['has'](r)||this.#t[b4(0x2be)](r,new Map());let u=this.#t[b4(0x224)](r)[b4(0x224)](p);if(!u){try{u=await this['_getObjectFromFile'](this['globalPath']+m+'s/'+p+'.'+m,this['namespaceGlobal']);}catch(v){console[b4(0x106)]('Error\x20reading\x20global\x20'+m,p,v);}this.#t['get'](r)['set'](p,u);}return u;}async[av(0x12c)](m,n,p){const b5=av;await this['_saveObjectToFile'](p,'/'+this['globalPath']+m+'s/'+n+'.'+m,this['namespaceGlobal']);let r='g'+m;this.#t[b5(0x204)](r)&&this.#t[b5(0x224)](r)['set'](n,p),this['_scheduleGlobalAggregate'](m),this['objectsChanged']['emit']({'type':m,'name':n,'global':!0x0});}async[av(0x118)](m,n){const b6=av;n[0x0]==='/'&&(n=n[b6(0x1a7)](0x1)),await this['connection'][b6(0x10e)](this['namespaceGlobal'],'/'+this[b6(0x2a6)]+m+'s/'+n+'.'+m);let o='g'+m;this.#t[b6(0x204)](o)&&this.#t[b6(0x224)](o)['delete'](n),this['_scheduleGlobalAggregate'](m),this[b6(0x1f2)]['emit']({'type':m,'name':null,'global':!0x0});}async[av(0x21d)](m,n,p){const b7=av;n[0x0]==='/'&&(n=n['substring'](0x1)),p[0x0]==='/'&&(p=p[b7(0x1a7)](0x1)),await this[b7(0x11e)][b7(0x13e)](this[b7(0x20c)],'/'+this[b7(0x2a6)]+m+'s/'+n+'.'+m,'/'+this['globalPath']+m+'s/'+p+'.'+m);let r='g'+m;this.#t[b7(0x204)](r)&&(this.#t[b7(0x224)](r)[b7(0x1c5)](n),this.#t['get'](r)[b7(0x1c5)](p)),this['_scheduleGlobalAggregate'](m),this['objectsChanged']['emit']({'type':m,'name':p,'global':!0x0});}#r={};[av(0x15a)](m){const b8=av;clearTimeout(this.#r[m]),this.#r[m]=setTimeout(()=>this[b8(0x21a)](m),0x2bc);}async[av(0x21a)](m){const b9=av;try{let n=await this['getAllGlobalNames'](m);if(!n[b9(0x2a0)])return;let o={};await Promise[b9(0x28a)](n[b9(0x148)](async p=>{let r=p['replace'](/^\//,'');o[r]=await this['getGlobalObject'](m,r);})),await this[b9(0x15b)]({'version':0x1,'controls':o},this['globalPath']+m+b9(0x102),this['namespaceGlobal']);}catch(p){console['warn'](b9(0x26e)+m+'\x20aggregate',p);}}async[av(0x11d)](m){const ba=av;this[ba(0x166)]&&await this['waitForReady']();try{let o=await this['_getObjectFromFile'](this[ba(0x2a6)]+m+ba(0x102),this[ba(0x20c)]);if(o?.[ba(0x282)]&&Object[ba(0x1f4)](o[ba(0x282)])['length'])return o[ba(0x282)];}catch{}let n={};try{let p=await this['getAllGlobalNames'](m);await Promise[ba(0x28a)](p['map'](async r=>{let u=r['replace'](/^\//,'');n[u]=await this['getGlobalObject'](m,u);})),Object['keys'](n)['length']&&this['_scheduleGlobalAggregate'](m);}catch{}return n;}async['createFolder'](m,n){const bb=av;await this['_saveObjectToFile']({},'/'+this['configPath']+m+'s/'+n+'/tmp.fld'),this[bb(0x1f2)][bb(0x14f)]({'type':m,'name':null});}async['removeFolder'](m,n){const bc=av;await this['connection'][bc(0x253)](this['namespaceFiles'],'/'+this[bc(0x280)]+m+'s/'+n),this[bc(0x1f2)][bc(0x14f)]({'type':m,'name':null});}async[av(0x1fe)](m,n){const bd=av;await this[bd(0x15b)]({},'/'+this['globalPath']+m+'s/'+n+bd(0x1cd),this['namespaceGlobal']),this[bd(0x1f2)]['emit']({'type':m,'name':null,'global':!0x0});}async[av(0xf1)](m,n){const be=av;await this[be(0x11e)][be(0x253)](this['namespaceGlobal'],'/'+this['globalPath']+m+'s/'+n),this['objectsChanged'][be(0x14f)]({'type':m,'name':null,'global':!0x0});}async['loadAllCustomControls'](){const bf=av;await b[bf(0x1be)]();let m=await this['getCustomControlNames'](),n=[];for(let o of m)n['push'](this['getCustomControl'](o));await Promise['all'](n);}async[av(0x27b)](){const bg=av;if(this[bg(0x1af)])return this[bg(0x1af)];this[bg(0x166)]&&await this[bg(0x1be)]();try{let m=await this['getAllNames'](bg(0x128));return this[bg(0x1af)]=m,m;}catch(n){console['warn'](bg(0x170),n);}return[];}async[av(0x202)](m){const bh=av;m[0x0]=='/'&&(m=m[bh(0x1a7)](0x1));let p=this.#t[bh(0x224)]('control')['get'](m);if(!p){this['_readyPromises']&&await this[bh(0x1be)]();try{if(p=await this['_getObjectFromFile'](this[bh(0x280)]+bh(0x13a)+m+'.control'),p[bh(0x1e2)]){let r=Object[bh(0x1f4)](p['properties']);if(r['length']&&typeof p[bh(0x1e2)][r[0x0]]=='string')for(let u in p[bh(0x1e2)]){let v=p[bh(0x1e2)][u];v['startsWith']('[')?p['properties'][u]={'type':bh(0x160),'values':JSON['parse'](v)}:p['properties'][u]={'type':v};}}}catch(w){console['error']('Error\x20reading\x20Control',p,w);}this.#t[bh(0x224)]('control')['set'](m,p);}return p;}async['getImageNames'](){const bi=av;this[bi(0x166)]&&await this['waitForReady']();try{return(await this[bi(0x11e)]['readDir'](this[bi(0x1eb)],this['configPath']+'images'))[bi(0x148)](m=>m['file']);}catch{}return[];}async[av(0x142)](m,n){const bj=av;await this['_saveBinaryToFile'](n,'/'+this['configPath']+bj(0x227)+m),this[bj(0x294)][bj(0x14f)]();}async[av(0x1bd)](m){const bk=av;return await this['connection'][bk(0x147)](this[bk(0x1eb)],'/'+this[bk(0x280)]+bk(0x227)+m,!0x1);}async['removeImage'](m){const bl=av;await this[bl(0x11e)][bl(0x10e)](this[bl(0x1eb)],'/'+this['configPath']+bl(0x227)+m),this[bl(0x294)][bl(0x14f)]();}async[av(0x29b)](){const bm=av;this['_readyPromises']&&await this[bm(0x1be)]();try{return(await this['connection'][bm(0x1bc)](this['namespaceFiles'],this['configPath']+bm(0x105)))['map'](m=>m[bm(0x116)]);}catch{}return[];}async[av(0x17e)](m,n){const bn=av;await this[bn(0x249)](n,'/'+this['configPath']+bn(0x219)+m),this['additionalFilesChanged'][bn(0x14f)]();}async[av(0x20d)](m){const bo=av;return await this[bo(0x11e)]['readFile'](this[bo(0x1eb)],'/'+this[bo(0x280)]+bo(0x219)+m,!0x1);}async['removeAdditionalFile'](m){const bp=av;await this['connection']['deleteFile'](this[bp(0x1eb)],'/'+this['configPath']+bp(0x219)+m),this['additionalFilesChanged'][bp(0x14f)]();}async['saveThumbnail'](m,n){const bq=av;try{await this[bq(0x249)](n,'/'+this['configPath']+bq(0x2a1)+m+'.png');}catch(o){console[bq(0x29d)]('Error\x20saving\x20thumbnail:',o);}}async['getThumbnail'](m){const br=av;try{return await this['connection'][br(0x147)](this[br(0x1eb)],'/'+this[br(0x280)]+'thumbnails/'+m+br(0x2ba),!0x1);}catch{return null;}}async[av(0x203)](m){const bs=av;try{await this['connection'][bs(0x10e)](this[bs(0x1eb)],'/'+this[bs(0x280)]+'thumbnails/'+m+'.png');}catch(n){console[bs(0x29d)](bs(0x262),n);}}#s=new Map();#a=new Map();[av(0x17a)](){const bu=av;return Array[bu(0x24b)](this.#s[bu(0x1f4)]());}async['subscribeState'](m,n){const bv=av;if(m[bv(0x1fd)](bv(0x2bc))){let p=this.#s[bv(0x224)](m);p||(p=[],this.#s['set'](m,p)),p[bv(0xf6)](n);let r=this.#a['get'](m);r&&n(m,r);}else return this[bv(0x11e)]['subscribeState'](m,n);}['unsubscribeState'](m,n){if(m['startsWith']('local_')){let p=this.#s['get'](m);if(p){let r=p['indexOf'](n);r>=0x0&&p['splice'](r,0x1);}}else this['connection']['unsubscribeState'](m,n);}[av(0x2b9)](m,n){const bw=av;return this['connection'][bw(0x2b9)](m,n);}['unsubscribeObject'](m,n){const bx=av;return this[bx(0x11e)]['unsubscribeObject'](m,n);}['getObjectList'](m,n){const by=av;return b[by(0x11e)]['getObjectView'](n,null,m);}[av(0x18c)](m){const bz=av;return this['connection'][bz(0x18c)](m);}['getState'](m){const bA=av;return m[bA(0x1fd)]('local_')?Promise['resolve'](this.#a['get'](m)):this[bA(0x11e)][bA(0x238)](m);}['setState'](m,p,r){const bB=av;if(m[bB(0x1fd)](bB(0x2bc))){typeof p!='object'&&(p={'val':p}),this.#a['set'](m,p);let u=this.#s['get'](m);if(u){for(let v of u)v(m,p);}return Promise['resolve']();}else return this[bB(0x11e)]['setState'](m,p,r);}async[av(0x14d)](){const bC=av;try{return await this['_getObjectFromFile'](this[bC(0x280)]+bC(0x237));}catch{return null;}}async['saveConfig'](){const bD=av;if(this['_saveObjectToFile'](this['config'],this['configPath']+bD(0x237)),this['globalStylesheet']=null,this['globalScriptInstance']=null,this[bD(0x183)]['globalStyle']&&(this[bD(0x18b)]=j(this['config'][bD(0x21f)])),this[bD(0x183)][bD(0x25d)]?(this['fontDeclarationsStylesheet']=j(this['config']['fontDeclarations']),document['adoptedStyleSheets']=[this['fontDeclarationsStylesheet']]):(this['fontDeclarationsStylesheet']=null,document[bD(0x154)]=[]),this[bD(0x183)]['globalScript']){let m=URL['createObjectURL'](new Blob([this['config']['globalScript']],{'type':'application/javascript'}));this['globalScriptInstance']=await importShim(m),this[bD(0x25b)][bD(0x273)]&&this['globalScriptInstance']['init']();}this['configChanged']['emit']();}async[av(0x157)](){const bE=av;try{this[bE(0x244)]=await this[bE(0x234)](this[bE(0x280)]+'translations.json');}catch{this[bE(0x244)]={};}}async[av(0x115)](){const bF=av;await this['_saveObjectToFile'](this[bF(0x244)],this[bF(0x280)]+'translations.json'),this['translationsChanged'][bF(0x14f)](this[bF(0x244)]);}[av(0x200)](m){const bG=av;this['language']=m,localStorage[bG(0x1df)]('webui-language',m),this[bG(0x251)]['emit'](m),window[bG(0x206)](new CustomEvent(bG(0x251),{'detail':m})),this.#a['get']('local_language')?.['val']!==m&&this[bG(0x230)]('local_language',{'val':m}),this['grafanaLangSyncEnabled']&&fetch(bG(0x263),{'method':bG(0x1c2),'headers':{'Content-Type':bG(0x2b1)},'credentials':bG(0x126),'body':JSON['stringify']({'lang':m})})['catch'](()=>{});}['t'](m){const bH=av;let n=this[bH(0x1e7)]||'en',p=m[bH(0x23f)]('.'),r=u=>{const bI=bH;let v=this['translations']?.[u];for(let w of p)if(v=v?.[w],v===void 0x0)return;return typeof v==bI(0x272)?v:void 0x0;};return r(n)??(n!=='en'?r('en'):void 0x0)??((()=>{const bJ=bH;for(let u of Object[bJ(0x1f4)](this[bJ(0x244)]??{})){let v=r(u);if(v!==void 0x0)return v;}return m;})());}async['_getObjectFromFile'](m,n=this['namespaceFiles']){const bK=av;let p=await this['connection'][bK(0x147)](n,m,!0x1),r;return p[bK(0x1c9)]=='application/json'||p[bK(0x1c9)]=='text/javascript'?JSON[bK(0x182)](p[bK(0x116)]):(p['mimeType']==bK(0x2af)&&p['file']instanceof ArrayBuffer?r=new Uint8Array(p[bK(0x116)]):r=Uint8Array[bK(0x24b)](p[bK(0x116)]['data']),r[0x0]===0x1f&&r[0x1]===0x8b&&window[bK(0x199)]&&(r=await this[bK(0x226)](r)),JSON['parse'](new TextDecoder()['decode'](r)));}async[av(0x15b)](m,p,r=this[av(0x1eb)]){const bL=av;let u=new TextEncoder()['encode'](JSON[bL(0x1a1)](m));if(u['length']>0x200*0x400&&window['CompressionStream']){let v=await this['_gzipBytes'](u);await this['connection']['writeFile64'](r,p,v[bL(0x178)]);}else await this[bL(0x11e)][bL(0x1db)](r,p,u);}async[av(0x1fc)](m){const bM=av;let p=new CompressionStream(bM(0x214)),u=p[bM(0x109)]['getWriter']();u[bM(0x2aa)](m),u[bM(0x209)]();let v=p[bM(0x1f1)][bM(0x1b8)](),w=[],x;for(;!(x=await v['read']())['done'];)w['push'](x['value']);let y=new Uint8Array(w['reduce']((C,T)=>C+T['length'],0x0)),A=0x0;for(let C of w)y['set'](C,A),A+=C[bM(0x2a0)];return y;}async[av(0x226)](m){const bN=av;let p=new DecompressionStream('gzip'),u=p['writable'][bN(0x120)]();u[bN(0x2aa)](m),u['close']();let v=p['readable'][bN(0x1b8)](),w=[],x;for(;!(x=await v['read']())['done'];)w['push'](x[bN(0x23b)]);let y=new Uint8Array(w['reduce']((C,T)=>C+T[bN(0x2a0)],0x0)),A=0x0;for(let C of w)y[bN(0x2be)](C,A),A+=C[bN(0x2a0)];return y;}async['_saveBinaryToFile'](m,n){await this['connection']['writeFile64'](this['namespaceFiles'],n,await m['arrayBuffer']());}async['sendCommand'](m,n,p){const bO=av;try{this['_broadcastChannel']?.[bO(0x20f)]({'command':m,'data':n,'clientId':p??this[bO(0xf2)]??'*'});}catch{}try{let r=[this['connection'][bO(0x230)](this[bO(0x278)]+'.control.data',{'val':n}),this[bO(0x11e)]['setState'](this['namespace']+'.control.clientIds',{'val':p??this[bO(0xf2)]}),this['connection']['setState'](this[bO(0x278)]+'.control.project',{'val':this.#e})];await Promise['all'](r),await this[bO(0x11e)]['setState'](this[bO(0x278)]+bO(0x1c4),{'val':m});}catch(u){console['warn']('sendCommand\x20skipped\x20(no\x20write\x20permission\x20on\x20control\x20states):',u?.['message']||u);}}async['handleCommand'](m,o,p=''){const bP=av;if(p==''||p=='*'||p==this[bP(0xf2)])switch(m){case'uiReload':window['location']['reload']();break;case'uiRefresh':this.#t[bP(0x224)](bP(0x13f))[bP(0x2c3)](),this.#t[bP(0x224)]('control')['clear'](),this['_controlNames']=null,this[bP(0x2b7)][bP(0x14f)](o);break;case bP(0x137):this['changeView']['emit'](o);break;case bP(0x13c):break;case'uiPlaySound':new Audio(o)[bP(0x268)]();break;case bP(0xf8):break;case'uiAlert':alert(o);break;case'uiSetLanguage':o&&this[bP(0x200)](o);break;case'objectChanged':let r=JSON[bP(0x182)](o);this.#t[bP(0x204)](r[bP(0x29c)])&&this.#t['get'](r[bP(0x29c)])[bP(0x1c5)](r[bP(0x1b2)]),r[bP(0x29c)]=='control'&&r[bP(0x1b2)]&&K(r[bP(0x1b2)],await b[bP(0x16f)](r[bP(0x29c)],r['name'])),this['objectsChanged'][bP(0x14f)](r);break;}}['getSignalInformation'](m){const bQ=av;let n={'role':m?.['common']?.[bQ(0x259)],'type':m?.['common']?.['type'],'writeable':m?.[bQ(0x1d6)]?.['write']};return(m?.[bQ(0x1d6)]?.[bQ(0x259)]==bQ(0x26c)||m?.[bQ(0x1d6)]?.['role']==='text.url'||m?.[bQ(0x1d6)]?.['role'][bQ(0x104)]('icon')||m?.['common']?.[bQ(0x259)][bQ(0x104)]('image'))&&(n['role']=bQ(0x26c)),m?.[bQ(0x1d6)]?.[bQ(0x259)]==bQ(0x12b)&&(n['role']='datetime'),n;}['getHistoricData'](m,n){const bR=av;return this[bR(0x11e)][bR(0x103)](m,n);}#i=null;#o=[];async['getCurrentUser'](){const bS=av;if(!this.#i)try{let m=await this['connection']['getCurrentUser']();console['log'](bS(0x210),m);let p=[],u='system.user.'+m;try{let v=await new Promise((w,x)=>{const bT=bS;this['connection'][bT(0x1a2)][bT(0x14f)]('getObjectView','system',bT(0x239),{'startkey':bT(0x284),'endkey':bT(0x25e)},(y,A)=>{y?x(y):w(A);});});if(console['log']('🔐\x20[Visibility]\x20All\x20groups\x20via\x20getObjectView:',v),v&&v['rows'])for(let w of v[bS(0x193)]){let x=w['value'],y=w['id'][bS(0x16e)]('system.group.','');x['common']?.[bS(0x28b)]&&Array['isArray'](x[bS(0x1d6)]['members'])&&x[bS(0x1d6)]['members'][bS(0x104)](u)&&(p['push'](y),console[bS(0x17c)]('✅\x20[Visibility]\x20User\x20is\x20member\x20of\x20group:\x20'+y));}}catch(A){console[bS(0x29d)](bS(0x153),A);let C=[bS(0x292),'user'];for(let T of C)try{let Y=await new Promise((a0,a1)=>{this['connection']['_socket']['emit']('getObject','system.group.'+T,(a2,a3)=>{a2?a1(a2):a0(a3);});});Y&&Y['common']?.[bS(0x28b)]&&Array['isArray'](Y[bS(0x1d6)][bS(0x28b)])&&Y['common']['members'][bS(0x104)](u)&&(p[bS(0xf6)](T),console['log'](bS(0x1c0)+T));}catch{}}p[bS(0x2a0)]===0x0&&(console[bS(0x29d)](bS(0x21e)),p['push']('administrator')),this.#i={'id':m,'groups':p},console['log']('🔐\x20[Visibility]\x20Final\x20user\x20object:',this.#i);}catch(a0){console[bS(0x29d)](bS(0x20e),a0),this.#i={'id':'admin','groups':['administrator']};}return this.#i;}async[av(0x184)](){const bU=av;if(this.#o[bU(0x2a0)]===0x0)try{let m=[];try{console['log']('🔍\x20[Visibility]\x20Fetching\x20groups\x20via\x20getObjectView...');let p=await new Promise((u,v)=>{const bV=bU;this['connection'][bV(0x1a2)][bV(0x14f)]('getObjectView','system',bV(0x239),{'startkey':'system.group.','endkey':'system.group.香'},(w,x)=>{w?v(w):u(x);});});if(console[bU(0x17c)](bU(0x112),p),p&&p[bU(0x193)])for(let u of p['rows']){let v=u['id'][bU(0x16e)](bU(0x284),''),w=u['value']?.[bU(0x1d6)]?.['name']||v;typeof w==bU(0x1d8)&&(w=w['en']||w['de']||w['ru']||Object[bU(0x1ab)](w)[0x0]||v);let x=u[bU(0x23b)]?.['common']?.[bU(0x189)]||'';typeof x==bU(0x1d8)&&(x=x['en']||x['de']||x['ru']||Object['values'](x)[0x0]||''),m['push']({'id':v,'name':w,'desc':x}),console[bU(0x17c)](bU(0x27c),v,w);}}catch(y){console[bU(0x29d)]('⚠️\x20[Visibility]\x20getObjectView\x20failed:',y);}m['length']===0x0&&(console['warn']('⚠️\x20[Visibility]\x20No\x20groups\x20found,\x20using\x20defaults'),m['push']({'id':bU(0x292),'name':'Administrator','desc':bU(0x299)},{'id':bU(0x13d),'name':'User','desc':'User\x20group'})),this.#o=m,console['log'](bU(0x1f9),this.#o);}catch(A){console[bU(0x29d)]('⚠️\x20[Visibility]\x20Failed\x20to\x20load\x20user\x20groups:',A),this.#o=[{'id':'administrator','name':'Administrator','desc':bU(0x299)},{'id':'user','name':'User','desc':'User\x20group'}];}return this.#o;}async['checkVisibility'](m){const bW=av;if(!m||!m[bW(0x16b)])return{'visible':!0x0,'enabled':!0x0};try{if(m[bW(0x27a)]&&m['groups'][bW(0x2a0)]>0x0){let p=this[bW(0x2c2)]||await this[bW(0x11e)]['getCurrentUser'](),u=new Promise(x=>setTimeout(()=>x({'visible':!0x0,'enabled':!0x0}),0xfa0)),v=this['connection']['sendTo'](this[bW(0x278)],bW(0x1fb),{'username':p,'allowedGroups':m['groups'],'action':m[bW(0x275)]||bW(0x228)}),w=await Promise['race']([v,u]);if(!w[bW(0x1ac)]||!w['enabled'])return w;}if(m[bW(0x1d1)]&&m[bW(0x293)]&&m[bW(0x121)]!==void 0x0&&m[bW(0x121)]!==''){let x=(await this[bW(0x11e)]['getState'](m['objectId']))?.['val'],y=m[bW(0x121)],A=!0x1;switch(m[bW(0x293)]){case'==':A=x==y;break;case'!=':A=x!=y;break;case'>':A=parseFloat(x)>parseFloat(y);break;case'<':A=parseFloat(x)<parseFloat(y);break;case'>=':A=parseFloat(x)>=parseFloat(y);break;case'<=':A=parseFloat(x)<=parseFloat(y);break;}if(console['log']('📊\x20[Visibility]\x20Datapoint\x20condition\x20check:',{'objectId':m['objectId'],'currentValue':x,'condition':m['condition'],'targetValue':y,'conditionMet':A}),A){let C=m[bW(0x275)]||'hide';return console[bW(0x17c)](bW(0x257),C),{'visible':C!==bW(0x228),'enabled':C!=='disable'};}}return console[bW(0x17c)](bW(0x135)),{'visible':!0x0,'enabled':!0x0};}catch(T){return console[bW(0x106)]('❌\x20[Visibility]\x20Check\x20failed:',T),{'visible':!0x0,'enabled':!0x0};}}},b=V[av(0x100)];window['IOB']=b;import{PropertiesHelper as k}from'@gokturk413/web-component-designer/dist/elements/services/propertiesService/services/PropertiesHelper.js';var B=class i{static ['instance']=new i();#e=new WeakMap();#t(m,n){const bX=av;if(!n[bX(0x1ac)])m[bX(0x2ac)]['display']=bX(0x24f),m['style']['visibility']='hidden';else{let o=this.#e[bX(0x224)](m)||'';m['style']['display']=o,m['style']['visibility']='';}n['enabled']?(m[bX(0x2ac)][bX(0x2b8)]='',m['style']['opacity']=''):(m[bX(0x2ac)][bX(0x2b8)]=bX(0x24f),m[bX(0x2ac)]['opacity']=bX(0x1ae));}async[av(0x11a)](m,n,p){const bY=av;if(!n||n[bY(0x2a0)]===0x0)return;this.#e['has'](m)||this.#e['set'](m,m[bY(0x2ac)]['display']||'');let r=await b[bY(0x1fb)]({'enabled':!0x0,'groups':n,'action':p||'hide'});(!r['visible']||!r[bY(0x16b)])&&this.#t(m,r);}['removeVisibility'](m){const bZ=av;let n=this.#e['get'](m);n!==void 0x0&&(m['style']['display']=n,this.#e[bZ(0x1c5)](m)),m[bZ(0x2ac)]['visibility']='',m[bZ(0x2ac)][bZ(0x2b8)]='',m[bZ(0x2ac)]['opacity']='';}async[av(0x221)](m=document['body']){const c0=av;let p=m['querySelectorAll'](c0(0x2ae));for(let r of p)try{let u=r['getAttribute']('data-visibility-groups')?.['split'](',')[c0(0x248)](w=>w)||[],v=r['getAttribute'](c0(0x252))||'hide';await this[c0(0x11a)](r,u,v);}catch(w){console[c0(0x106)]('[Visibility]\x20Group\x20check\x20error:',w);}}},E=B[av(0x100)],R=null;function c(b,d){b=b-0xf0;const e=a();let f=e[b];return f;}function at(m,n){const c1=av;function p(u){let v=u['getElementById']?u['getElementById'](n):u['querySelector']('#'+n);if(v)return v;for(let w of u['querySelectorAll']('*'))if(w['shadowRoot']){let x=p(w['shadowRoot']);if(x)return x;}return null;}let r=m['getRootNode']();for(;r instanceof ShadowRoot;){let u=p(r);if(u)return u;r=r['host']['getRootNode']();}return p(document[c1(0x1dc)])??document['getElementById'](n);}var D=new URL(av(0x2bf),import.meta.url)['href'];function rt(m){const c2=av;let p=m[c2(0x1d2)][c2(0x175)]();if(p==='circle'){let r=parseFloat(m['getAttribute']('cx')||0x0),u=parseFloat(m['getAttribute']('cy')||0x0),v=parseFloat(m['getAttribute']('r')||0x0);return'M\x20'+(r-v)+','+u+'\x20A\x20'+v+','+v+c2(0x208)+(r+v)+','+u+'\x20A\x20'+v+','+v+'\x200\x201,1\x20'+(r-v)+','+u+'\x20Z';}if(p===c2(0x24d)){let w=parseFloat(m[c2(0x29e)]('cx')||0x0),x=parseFloat(m['getAttribute']('cy')||0x0),y=parseFloat(m['getAttribute']('rx')||0x0),A=parseFloat(m[c2(0x29e)]('ry')||0x0);return'M\x20'+(w-y)+','+x+c2(0x1e5)+y+','+A+c2(0x208)+(w+y)+','+x+'\x20A\x20'+y+','+A+c2(0x208)+(w-y)+','+x+'\x20Z';}if(p===c2(0x22d)){let C=parseFloat(m[c2(0x29e)]('x')||0x0),T=parseFloat(m['getAttribute']('y')||0x0),Y=parseFloat(m[c2(0x29e)](c2(0x1ad))||0x0),a0=parseFloat(m[c2(0x29e)]('height')||0x0);return'M\x20'+C+','+T+'\x20H\x20'+(C+Y)+c2(0xfe)+(T+a0)+c2(0x1de)+C+'\x20Z';}if(p===c2(0x165)){let a1=m[c2(0x29e)]('x1')||0x0,a2=m['getAttribute']('y1')||0x0,a3=m['getAttribute']('x2')||0x0,a4=m['getAttribute']('y2')||0x0;return'M\x20'+a1+','+a2+c2(0x285)+a3+','+a4;}if(p==='polyline'||p==='polygon'){let a5=(m[c2(0x29e)](c2(0x1cb))||'')[c2(0x298)]()['split'](/[\s,]+/);if(a5[c2(0x2a0)]<0x2)return null;let a6='M\x20'+a5[0x0]+','+a5[0x1];for(let a7=0x2;a7+0x1<a5[c2(0x2a0)];a7+=0x2)a6+=c2(0x285)+a5[a7]+','+a5[a7+0x1];return p==='polygon'&&(a6+='\x20Z'),a6;}return null;}function W(m){const c3=av;if(m['tagName']['toLowerCase']()==='path')return{'pathEl':m,'tempEl':null};let n=rt(m);if(!n)return{'pathEl':m,'tempEl':null};let o=m[c3(0x229)]('svg')??m[c3(0xf7)],p=document['createElementNS'](c3(0x25c),c3(0x223));return p[c3(0xfb)]('d',n),p['setAttribute'](c3(0x22f),'none'),p['style']['cssText']=c3(0x2c0),o['appendChild'](p),{'pathEl':p,'tempEl':p};}async function z(){return window['gsap']?window['gsap']:R||(R=new Promise(m=>{const c5=c;let n=p=>new Promise((u,v)=>{const c4=c;let w=document[c4(0x1c1)](c4(0x11f));w['src']=p,w[c4(0x1d3)]=u,w['onerror']=v,document['head']['appendChild'](w);}),o=window[c5(0x163)];window['define']=void 0x0,n(D+'gsap.min.js')['then'](()=>n(D+c5(0x196)))[c5(0x16a)](()=>n(D+c5(0x1e8)))[c5(0x16a)](()=>{const c6=c5;window[c6(0x163)]=o,window[c6(0x1e1)]&&window[c6(0x231)]['registerPlugin'](window[c6(0x1e1)]),window['MorphSVGPlugin']&&window[c6(0x231)][c6(0x2a5)](window['MorphSVGPlugin']),m(window[c6(0x231)]);})['catch'](()=>{const c7=c5;window['define']=o,console['warn'](c7(0x2b3),D),m(window['gsap']||null);});}),R);}function U(m){const c8=av;if(typeof m==c8(0x131))return m;if(typeof m==c8(0x1a3))return m!==0x0;if(typeof m=='string'){let n=m['toLowerCase']();if(n===c8(0x10a)||n==='1')return!0x0;if(n===c8(0x23e)||n==='0')return!0x1;}return m;}function Q(m,p,u){const c9=av;if(!p||p==='exists')return!0x0;let v=parseFloat(m),w=parseFloat(u);if(!isNaN(v)&&!isNaN(w))switch(p){case c9(0x108):return v===w;case c9(0x19a):return v!==w;case'less_than':return v<w;case c9(0x1cf):return v<=w;case'greater_than':return v>w;case'greater_equal':return v>=w;}let x=U(m),y=U(u);return typeof x==c9(0x131)&&typeof y==c9(0x131)?p===c9(0x108)?x===y:x!==y:p===c9(0x108)?String(m)===String(u):String(m)!==String(u);}function lt(m,p){const ca=av;let u=parseFloat(m['duration'])||0x1,v=m['ease']||ca(0x14c),w=m[ca(0x19b)]||'opacity',x=U(p),y=typeof x==ca(0x131)?x?0x1:0x0:parseFloat(p)||0x0,A={'duration':u,'ease':v==='none'?ca(0x24f):v,'paused':!0x0,'repeat':parseInt(m[ca(0x16c)])||0x0,'yoyo':m[ca(0x233)]===!0x0||m[ca(0x233)]===ca(0x10a)};switch(w){case ca(0x1b6):A[ca(0x1b6)]=m[ca(0x15f)]!=null?parseFloat(m[ca(0x15f)]):y,m[ca(0x215)]!=null&&(A[ca(0x1a4)]={'rotation':parseFloat(m[ca(0x215)])}),A['transformOrigin']=(m['transformOriginX']||'50')+'%\x20'+(m[ca(0x290)]||'50')+'%\x20'+(m['transformOriginZ']||'0');break;case'scale':A[ca(0x29a)]=m['valueTo']!=null?parseFloat(m[ca(0x15f)]):typeof x==ca(0x131)?x?1.5:0x1:y,m['valueFrom']!=null&&(A[ca(0x1a4)]={'scale':parseFloat(m[ca(0x215)])});break;case ca(0x1ec):A['opacity']=m['valueTo']!=null?parseFloat(m['valueTo']):typeof x==ca(0x131)?x?0x1:0x0:y,m['valueFrom']!=null&&(A['startAt']={'opacity':parseFloat(m['valueFrom'])});break;case ca(0x2ab):A['x']=m['valueTo']!=null?parseFloat(m['valueTo']):typeof x==ca(0x131)?x?0x64:0x0:y,m[ca(0x215)]!=null&&(A[ca(0x1a4)]={'x':parseFloat(m[ca(0x215)])});break;case'translateY':A['y']=m[ca(0x15f)]!=null?parseFloat(m[ca(0x15f)]):typeof x==ca(0x131)?x?0x64:0x0:y,m[ca(0x215)]!=null&&(A[ca(0x1a4)]={'y':parseFloat(m['valueFrom'])});break;case'translate':{let C=(Y,a0)=>{if(Y==null)return{'x':a0,'y':0x0};let a1=String(Y)['split'](',');return{'x':parseFloat(a1[0x0])||0x0,'y':a1['length']>0x1&&parseFloat(a1[0x1])||0x0};},T=C(m[ca(0x15f)],typeof x==ca(0x131)?x?0x64:0x0:y);if(A['x']=T['x'],A['y']=T['y'],m['valueFrom']!=null){let Y=C(m['valueFrom'],0x0);A[ca(0x1a4)]={'x':Y['x'],'y':Y['y']};}break;}case ca(0x241):A[ca(0x241)]=m['valueTo']!=null?m['valueTo']:typeof x=='boolean'?x?'100px':'0px':y+'px',m['valueFrom']!=null&&(A['startAt']={'left':isNaN(m['valueFrom'])?m['valueFrom']:m['valueFrom']+'px'});break;case'top':A[ca(0x283)]=m['valueTo']!=null?m['valueTo']:typeof x=='boolean'?x?ca(0x117):'0px':y+'px',m[ca(0x215)]!=null&&(A['startAt']={'top':isNaN(m['valueFrom'])?m[ca(0x215)]:m[ca(0x215)]+'px'});break;case ca(0x13b):{let a0=m['valueTo']!=null?parseFloat(m[ca(0x15f)]):typeof x==ca(0x131)?x?0x2d:0x0:y;A['skewX']=a0,A['skewY']=a0;break;}case'fill':A[ca(0x22f)]=m['fillColorTo']||ca(0x180),m[ca(0xf3)]&&(A[ca(0x1a4)]={'fill':m['fillColorFrom']});break;case ca(0x162):A['color']=m[ca(0x2c7)]||ca(0x180),m['fillColorFrom']&&(A[ca(0x1a4)]={'color':m[ca(0xf3)]});break;case ca(0x125):A[ca(0x125)]=m[ca(0x2c7)]||ca(0x180),m['fillColorFrom']&&(A['startAt']={'backgroundColor':m['fillColorFrom']});break;case'transform':A['transform']=m[ca(0x15f)]||String(p),m['valueFrom']&&(A['startAt']={'transform':m['valueFrom']});break;case'svg':if(m[ca(0x22c)]){let a1=m[ca(0x22c)];a1==='fill'||a1===ca(0x162)?A[a1]=typeof x==ca(0x131)?x?m['fillColorTo']||ca(0x180):m[ca(0xf3)]||'#000000':m['fillColorTo']||'#ff0000':a1===ca(0x277)?A[a1]=m[ca(0x15f)]||'10':A[a1]=m['valueTo']!=null?parseFloat(m[ca(0x15f)]):y;}break;default:A[ca(0x1ec)]=m['valueTo']!=null?parseFloat(m[ca(0x15f)]):typeof x==ca(0x131)?x?0x1:0x0:y;}return A;}function O(m){const cb=av;for(let n of m)try{n[cb(0x29c)]==='event'?n[cb(0x235)][cb(0x2c5)](n['event'],n[cb(0x107)]):n['type']==='state'?b['connection']['unsubscribeState'](n[cb(0x2a7)],n['handler']):n['type']==='delegate'&&O(n[cb(0x295)]);}catch{}m['length']=0x0;}async function ct(m,p,u,v){const cc=av;let x=[],y=/\{([^}]+)\}/g,A;for(;(A=y['exec'](m))!==null;)x['push'](A[0x1]);if(x[cc(0x2a0)]===0x0)return;let C={};for(let a0 of x)C[a0]=null;let T=[],Y=async()=>{const cd=cc;if(Object['values'](C)[cd(0x28f)](a2=>a2==null))return;let a1=m;for(let [a2,a3]of Object['entries'](C))a1=a1[cd(0x16e)]('{'+a2+'}',a3);O(T),await S(a1,p,u,T);};for(let a1 of x){let a2=async(a3,a4)=>{const ce=cc;a4?.['val']!=null&&(C[a1]=String(a4[ce(0x14b)]),await Y());};try{b[cc(0x11e)]['subscribeState'](a1,a2),v['push']({'type':cc(0x18a),'oid':a1,'handler':a2});}catch{}try{let a3=await b['connection']['getState'](a1);a3?.[cc(0x14b)]!=null&&(C[a1]=String(a3['val']));}catch{}}await Y(),v[cc(0xf6)]({'type':cc(0x1fa),'innerSubs':T});}async function S(m,p,u,v){const cf=av;if(!m)return;if(m[cf(0x104)]('{')&&m[cf(0x104)]('}')){await ct(m,p,u,v);return;}let w=()=>{const cg=cf;let x=p[cg(0x101)]();return x&&x!==document?x[cg(0x20a)]??null:null;};if(m['startsWith']('??')){let x=m[cf(0x258)](0x2),y=w();if(!y)return;let A=()=>{const ch=cf;let T=y[x]??y[ch(0x29e)]?.(x);T!=null&&u(T);};A();let C=()=>A();y['addEventListener'](x+cf(0x1a0),C),v[cf(0xf6)]({'type':cf(0x21c),'target':y,'event':x+cf(0x1a0),'handler':C});}else{if(m[cf(0x1fd)]('?')){let T=m[cf(0x258)](0x1),Y=w();if(!Y)return;let a0=[],a1=async()=>{const ci=cf;O(a0);let a3=Y[T]??Y[ci(0x29e)]?.(T);a3&&await S(a3,p,u,a0);};await a1();let a2=()=>a1();Y[cf(0x236)](T+cf(0x1a0),a2),v['push']({'type':'event','target':Y,'event':T+cf(0x1a0),'handler':a2}),v['push']({'type':cf(0x1fa),'innerSubs':a0});}else{if(m['startsWith']('state:')){let a3=m['slice'](0x6),a4=(a5,a6)=>{const cj=cf;a6?.[cj(0x14b)]!=null&&u(a6['val']);};try{b['connection']['subscribeState'](a3,a4),v['push']({'type':cf(0x18a),'oid':a3,'handler':a4});}catch{}try{let a5=await b[cf(0x11e)]['getState'](a3);a5?.[cf(0x14b)]!=null&&u(a5[cf(0x14b)]);}catch{}}else{if(!m[cf(0x1fd)]('object:')){let a6=m;a6[cf(0x1fd)]('.')&&(a6=(w()?.[cf(0x21b)]?.()??'')+a6['slice'](0x1));let a7=(a8,a9)=>{a9?.['val']!=null&&u(a9['val']);};try{a6[cf(0x1fd)](cf(0x2bc))?b[cf(0x123)](a6,a7):b[cf(0x11e)]['subscribeState'](a6,a7),v['push']({'type':'state','oid':a6,'handler':a7});}catch{}try{let a8;a6['startsWith'](cf(0x2bc))?a8=await b['getState'](a6):a8=await b['connection'][cf(0x238)](a6),a8?.[cf(0x14b)]!=null&&u(a8['val']);}catch{}}}}}}var q=class{constructor(m,n){const ck=av;this['element']=m,this[ck(0x242)]=n,this[ck(0x1e6)]=null,this[ck(0x177)]=[];}async[av(0x273)](){const cl=av;if(await z(),!window['gsap'])return;let m=this[cl(0x242)]['controls']||{},p=async(w,x)=>{const cm=cl;let y=m[w];if(!y)return;y['condition_bind']?.[cm(0x29f)]&&await S(y['condition_bind']['signal'],this['element'],C=>{y['condition']=String(C);},this['_subs']),y['value_bind']?.['signal']&&await S(y[cm(0x11b)]['signal'],this['element'],C=>{y['value']=String(C);},this[cm(0x177)]);let A=y[cm(0x127)]?.[cm(0x29f)]||y['oid'];A&&await S(A,this['element'],C=>{const cn=cm;Q(C,y[cn(0x293)]||'equal',y[cn(0x23b)]??cn(0x10a))&&x();},this[cm(0x177)]);};await p(cl(0x268),()=>this[cl(0x1ed)]()),await p('pause',()=>this['tween']?.['pause']()),await p('resume',()=>this['tween']?.['play']()),await p(cl(0x25f),()=>this[cl(0x1e6)]?.['pause'](0x0)),await p('reverse',()=>this[cl(0x1e6)]?.['reverse']());let u=[cl(0x19b),cl(0x215),cl(0x15f),cl(0x288),'ease','repeat',cl(0x233),'fillColorFrom','fillColorTo','transformOriginX',cl(0x290),cl(0x22c),'pathId','alignToPath','orientToPath',cl(0x171),cl(0x25a),cl(0x162),cl(0x1f6),cl(0x133),'size',cl(0x297),'customShapeD'],v=null;for(let w of u){let x=this[cl(0x242)][w+cl(0xf5)];if(!x?.[cl(0x29f)])continue;let y=w;await S(x['signal'],this[cl(0x181)],A=>{const co=cl;if(this['cfg'][y]=A,!!this[co(0x1e6)]){if(y===co(0x288)&&this['tween'][co(0x11c)]){let C=parseFloat(this[co(0x1e6)][co(0x11c)]['duration'])||0x1,T=parseFloat(A)||0x1;this[co(0x1e6)]['timeScale'](C/T);return;}clearTimeout(v),v=setTimeout(()=>{const cp=co;this['tween']&&!this[cp(0x1e6)][cp(0x23c)]()&&this['_play']();},0x3c);}},this['_subs']);}}[av(0x1ed)](){const cq=av;let x=window[cq(0x231)];if(!x)return;this[cq(0x181)]['style']['display']===cq(0x24f)&&(this['element']['style'][cq(0xf9)]=''),this['tween']&&this[cq(0x1e6)]['kill']();let A=this['cfg']['effect'];if(A===cq(0x1dd)&&this['cfg'][cq(0x2c8)]){let T=at(this[cq(0x181)],this[cq(0x242)][cq(0x2c8)]);if(!T){console[cq(0x29d)]('[AnimationService]\x20motionPath:\x20path\x20element\x20not\x20found:',this[cq(0x242)]['pathId']);return;}T['tagName'][cq(0x175)]()===cq(0x1aa)&&(T=T['querySelector']('path,\x20circle,\x20ellipse,\x20rect,\x20polyline,\x20polygon')??T),this[cq(0x1b9)]&&(this[cq(0x1b9)]['remove'](),this[cq(0x1b9)]=null);let {pathEl:Y,tempEl:a0}=W(T);this[cq(0x1b9)]=a0,this['tween']=x['to'](this['element'],{'duration':parseFloat(this['cfg']['duration'])||0x1,'ease':this[cq(0x242)]['ease']||'none','repeat':parseInt(this[cq(0x242)][cq(0x16c)])||0x0,'yoyo':this['cfg']['yoyo']===!0x0,'paused':!0x0,'motionPath':{'path':Y,'align':this[cq(0x242)][cq(0x15c)]?Y:!0x1,'autoRotate':this['cfg'][cq(0x1c6)]===!0x0,'alignOrigin':[0.5,0.5],'start':this[cq(0x242)]['valueFrom']?parseFloat(this[cq(0x242)]['valueFrom'])/0x64:0x0,'end':this[cq(0x242)][cq(0x15f)]?parseFloat(this[cq(0x242)]['valueTo'])/0x64:0x1}});}else{if(A==='morphSVG'&&this['cfg']['valueTo'])this[cq(0x1e6)]=x['to'](this[cq(0x181)],{'duration':parseFloat(this[cq(0x242)]['duration'])||0x1,'ease':this[cq(0x242)][cq(0x211)]||'none','repeat':parseInt(this[cq(0x242)][cq(0x16c)])||0x0,'yoyo':this[cq(0x242)][cq(0x233)]===!0x0,'paused':!0x0,'morphSVG':this['cfg']['valueTo']});else{if(A===cq(0x190)){this['_destroyPathFlowEls'](x);let a1=parseFloat(this['cfg'][cq(0x171)])||0xa,a2=parseFloat(this[cq(0x242)]['gapLen'])||0x14,a3=this['cfg'][cq(0x162)]||null,a4=this['cfg'][cq(0x1f6)]===cq(0x2a9),a5=this['element'][cq(0x1d2)]['toLowerCase']()===cq(0x1aa)?this[cq(0x181)]['querySelector']('path,line,polyline,polygon,rect,circle,ellipse')||this['element']:this['element'];a5[cq(0x2ac)][cq(0x161)]=a1+'\x20'+a2,a3&&(a5['style'][cq(0x2a3)]=a3);let a6=a4?0x0:a1+a2,a7=a4?a1+a2:0x0;this['tween']=x['fromTo'](a5,{'attr':{'stroke-dashoffset':a6}},{'attr':{'stroke-dashoffset':a7},'duration':parseFloat(this[cq(0x242)][cq(0x288)])||0x1,'ease':cq(0x24f),'repeat':-0x1,'paused':!0x0});}else{if(A===cq(0x18d)){this[cq(0x28e)](x),this['_pathFlowEls']=[];let a8=parseInt(this['cfg']['count'])||0x5,a9=this['cfg'][cq(0x297)]||'triangle',aa=this['cfg'][cq(0x162)]||'#0066ff',ab=parseFloat(this['cfg']['size'])||0x8,ac=this['cfg']['direction']==='reverse',ad=this['cfg']['customShapeD']||'',ae=parseFloat(this[cq(0x242)][cq(0x288)])||0x2,af=this['element']['tagName']['toLowerCase']()==='svg'?this['element']['querySelector'](cq(0x179))||this[cq(0x181)]:this[cq(0x181)],ag=af[cq(0x27f)]||af[cq(0x229)]('svg')||this[cq(0x181)];if(!ag)return;this['_tempPathEl']&&(this['_tempPathEl'][cq(0x17b)](),this['_tempPathEl']=null);let {pathEl:ah,tempEl:ai}=W(af);this['_tempPathEl']=ai;let aj=cq(0x25c),ak=()=>{const cr=cq;let am;switch(a9){case'triangle':am=document[cr(0x265)](aj,cr(0x186)),am['setAttribute'](cr(0x1cb),ab+cr(0x26d)+-ab/0x2+cr(0x130)+ab/0x2);break;case'arrow':am=document['createElementNS'](aj,'path'),am[cr(0xfb)]('d','M'+ab+cr(0x250)+-ab/0x2+'\x20L'+ab*0.35+',0\x20L0,'+ab/0x2+'\x20Z');break;case cr(0x10c):am=document['createElementNS'](aj,'circle'),am['setAttribute']('r',String(ab/0x2));break;case cr(0x24a):am=document[cr(0x265)](aj,cr(0x22d)),am[cr(0xfb)](cr(0x1ad),String(ab)),am['setAttribute'](cr(0x2c1),String(ab)),am[cr(0xfb)]('x',String(-ab/0x2)),am['setAttribute']('y',String(-ab/0x2));break;case cr(0x2c9):{am=document['createElementNS'](aj,'polygon');let an=[];for(let ao=0x0;ao<0xa;ao++){let ap=ao%0x2===0x0?ab:ab*0.4,aq=ao*Math['PI']/0x5-Math['PI']/0x2;an[cr(0xf6)](ap*Math['cos'](aq)+','+ap*Math[cr(0x141)](aq));}am[cr(0xfb)]('points',an[cr(0x217)]('\x20'));break;}case cr(0x18f):am=document[cr(0x265)](aj,cr(0x223)),am['setAttribute']('d',ad||'M'+ab+',0\x20L0,'+-ab/0x2+'\x200,'+ab/0x2+'\x20Z');break;default:am=document['createElementNS'](aj,cr(0x22d)),am['setAttribute']('width',String(ab*0x2)),am['setAttribute'](cr(0x2c1),String(ab/0x3)),am['setAttribute']('x',String(-ab)),am['setAttribute']('y',String(-ab/0x6));}return am[cr(0xfb)]('fill',aa),ag['appendChild'](am),this[cr(0x24e)]['push'](am),am;},al=x[cq(0x14e)]({'repeat':-0x1,'paused':!0x0});for(let am=0x0;am<a8;am++){let an=ak(),ao=ac?0x1-am/a8:am/a8,ap=ac?-(am/a8):am/a8+0x1;al['to'](an,{'motionPath':{'path':ah,'align':ah,'autoRotate':!0x0,'alignOrigin':[0.5,0.5],'start':ao,'end':ap},'duration':ae,'ease':'none'},0x0);}this[cq(0x1e6)]=al;}else{let aq=lt(this[cq(0x242)],!0x0);this[cq(0x1e6)]=x['to'](this['element'],aq);}}}}this[cq(0x1e6)]&&this[cq(0x1e6)][cq(0x268)]();}['_destroyPathFlowEls'](m){const cs=av;if(this[cs(0x24e)]){for(let n of this[cs(0x24e)])m&&m[cs(0x240)](n),n[cs(0x17b)]();this['_pathFlowEls']=null;}}[av(0x1b5)](){const cu=av;let m=window['gsap'];this[cu(0x1e6)]&&(this[cu(0x1e6)]['kill'](),this['tween']=null),this['_tempPathEl']&&(this['_tempPathEl']['remove'](),this[cu(0x1b9)]=null),this['_destroyPathFlowEls'](m),O(this[cu(0x177)]);}},$=new WeakMap(),L=new WeakMap();function a(){const d1=['.data','applyGroupVisibility','value_bind','vars','loadAllGlobalControls','connection','script','getWriter','conditionValue','error\x20loading\x20subfolders','subscribeState','getObjectNames','backgroundColor','include','oid_bind','control','globalScript','\x20loaded','value.time','saveGlobalObject','invalid\x20','yellow','click','\x200,','boolean','constructor','count','IobrokerWebuiCustomControl','✅\x20[Visibility]\x20All\x20checks\x20passed\x20→\x20Element\x20visible\x20and\x20enabled','_writeControlsAggregate','uiChangeView','default','now','controls/','skew','uiOpenDialog','user','renameFile','screen','appShell','sin','saveImage','getElementById','Error\x20reading\x20Screen','isDir','data','readFile','map','template','conditionValue_bind','val','power1.inOut','_getConfig','timeline','emit','createObjectURL','_parseAttributesToProperties','scriptSystem','⚠️\x20[Visibility]\x20getObjectView\x20failed,\x20trying\x20direct\x20group\x20fetch:','adoptedStyleSheets','visualization-icons','glowSize','loadTranslations','139070ghWjWb','getGlobalObject','_scheduleGlobalAggregate','_saveObjectToFile','alignToPath','_bindingsRefresh','opacityFrom','valueTo','enum','strokeDasharray','color','define','getScreen','line','_readyPromises','3dscreens/','blur','globalConfig','then','enabled','repeat','adapter','replace','getWebuiObject','no\x20controls\x20loaded','dashLen','removeVisibility','loadAllControlsFast','50%\x2050%','toLowerCase','replaceAll','_subs','buffer','path,line,polyline,polygon,rect,circle,ellipse','getLocalStateNames','remove','log','bindingsHelper','saveAdditionalFile','removeProject','#ff0000','element','parse','config','getUserGroups','<meta\x20name=\x22apple-mobile-web-app-capable\x22\x20content=\x22yes\x22\x20/>\x0a<meta\x20name=\x22viewport\x22\x20content=\x22width=device-width,\x20initial-scale=1.0,\x20shrink-to-fit=no,\x20maximum-scale=1.0,\x20user-scalable=no,\x20viewport-fit=cover\x22>','polygon','mywebui-commands','drop-shadow(0\x200\x20','desc','state','globalStylesheet','getObject','pathFlow','connectedCallback','custom','flowDash','normal','_scheduleControlsAggregate','rows','cos','_cleanProjectName','MotionPathPlugin.min.js','power1.out','toString','DecompressionStream','not_equal','effect','construct','appendChild','applyAllBindings','cleanup','-changed','stringify','_socket','number','startAt','getOwnPropertyDescriptor','settings','substring','shake','visibilityGroups','svg','values','visible','width','0.5','_controlNames','controls-all.dat','getAllGlobalNames','name','bounce','\x20controls)','destroy','rotation','endsWith','getReader','_tempPathEl','fontDeclarationsStylesheet','observe','readDir','getImage','waitForReady','head','✅\x20[Visibility]\x20User\x20is\x20member\x20of\x20group:\x20','createElement','POST','18151oqXQAS','.control.command','delete','orientToPath','60246bnWbwY','getGlobalSubFolders','mimeType','system.adapter.mywebui.0','points','.3dscreen','/tmp.fld','3dscreen','less_equal','4935664mdlDGu','objectId','tagName','onload','querySelector','bindToSize','common','disconnectedCallback','object','mouseenter','handleCommand','writeFile64','body','motionPath','\x20H\x20','setItem','native','MotionPathPlugin','properties','dynamic-property-defs','screens/','\x20A\x20','tween','language','MorphSVGPlugin.min.js','2400966OAYWuy','dispose','namespaceFiles','opacity','_play','shadowRoot','cancel','querySelectorAll','readable','objectsChanged','635KwFnNo','keys','error\x20deleting\x20project\x20folder','direction','local_language','BaseCustomControl','👥\x20[Visibility]\x20User\x20groups\x20loaded:','delegate','checkVisibility','_gzipBytes','startsWith','createGlobalFolder','visibilityAction','setLanguage','ack','getCustomControl','removeThumbnail','has','headerTags','dispatchEvent','mywebui.0','\x200\x201,1\x20','close','host','/widgets/package.json','namespaceGlobal','getAdditionalFile','⚠️\x20[Visibility]\x20Failed\x20to\x20get\x20current\x20user:','postMessage','🔐\x20[Visibility]\x20Current\x20user\x20name:','ease','load','px\x20','gzip','valueFrom','hasAttribute','join','configChanged','additionalfiles/','_writeGlobalAggregate','_getRelativeSignalsPath','event','renameGlobalObject','⚠️\x20[Visibility]\x20User\x20has\x20no\x20groups,\x20adding\x20administrator\x20as\x20default','globalStyle','[data-effects]','scanAndApply','3dcontrol','path','get','error\x20writing\x20controls\x20aggregate','_gunzipBytes','images/','hide','closest','/widgets/','grafanaEnabled','svgAttr','rect','/data/config.json','fill','setState','gsap','_rootDocumentFragment','yoyo','_getObjectFromFile','target','addEventListener','config.json','getState','group','Error\x20reading\x203D\x20Control','value','paused','webui-language','false','split','killTweensOf','left','cfg','lightgreen','translations','nodeType','getPrototypeOf','396ZhkTOn','filter','_saveBinaryToFile','square','from','innerHTML','ellipse','_pathFlowEls','none',',0\x20L0,','languageChanged','data-visibility-action','deleteFolder','isNaN','reload','splice','✅\x20[Visibility]\x20Datapoint\x20condition\x20met\x20→\x20Action:','slice','role','gapLen','globalScriptInstance','http://www.w3.org/2000/svg','fontDeclarations','system.group.香','stop','spin','connectionState','Error\x20removing\x20thumbnail:','/mywebui-grafana-lang','/data/','createElementNS','cloneNode','_assignEvent','play','repeat\x20binding\x20self-apply\x20error','getProjects','valueChangedCallbacks','url',',0\x200,','error\x20writing\x20global\x20','889278wVssLy','saveObject','data-animation','string','init','_setupDynamicProperties','action','camelToDashCase','stroke-dasharray','namespace','_bindingsParse','groups','getCustomControlNames','✅\x20[Visibility]\x20Found\x20group:','projects','createContextualFragment','ownerSVGElement','configPath','7184166OBPYEv','controls','top','system.group.','\x20L\x20','2mBoTPS','global/','duration','invalid\x20project\x20name\x20(use\x20a-z,\x200-9,\x20-,\x20_):\x20','all','members','createRange','objectChanged','_destroyPathFlowEls','some','transformOriginY','slideInRight','administrator','condition','imagesChanged','innerSubs','catch','shape','trim','Administrator\x20group','scale','getAdditionalFileNames','type','warn','getAttribute','signal','length','thumbnails/','assignAllScripts','stroke','visibilityRedirectScreen','registerPlugin','globalPath','oid','flip','reverse','write','translateX','style','getGlobalObjectNames','[data-visibility-groups]','application/octet-stream','animate','application/json','addedNodes','[AnimationService]\x20Failed\x20to\x20load\x20GSAP\x20from\x20local\x20path:','_broadcastChannel','getItem','trigger','refreshView','pointerEvents','subscribeObject','.png','href','local_','indexOf','set','../../vendor/gsap/','visibility:hidden;pointer-events:none;','height','userName','clear','isArray','removeEventListener','iobrokerPort','fillColorTo','pathId','star','defineProperty','getNormalizedSignalName','translationsChanged','removeGlobalFolder','clientId','fillColorFrom','background','_bind','push','parentElement','uiRunScript','display','_propertiesDictionary','setAttribute','connectionInfo','2384fWYBEu','\x20V\x20','triangle','instance','getRootNode','s-all.dat','getHistoryEx','includes','additionalfiles','error','handler','equal','writable','true','webui-','circle','fadeIn','deleteFile','fromTo','getBoundingClientRect','create','🔍\x20[Visibility]\x20getObjectView\x20result:','location','webuiCustomControlSymbol','saveTranslations','file','100px','removeGlobalObject'];a=function(){return d1;};return a();}async function H(m){const cv=av;await z();let p=(m||document)['querySelectorAll']('[data-animation]');for(let u of p)try{let v=JSON[cv(0x182)](u['getAttribute'](cv(0x271))),w=Array[cv(0x2c4)](v)?v:[v],x=$[cv(0x224)](u)||[];for(let A of x)A['destroy']();let y=[];for(let C of w){if(!C||typeof C!='object')continue;let T=new q(u,C);await T['init'](),y['push'](T);}$[cv(0x2be)](u,y);}catch(Y){console['warn']('[AnimationService]\x20data-animation\x20parse\x20error\x20on\x20element:',u,Y);}}function tt(m){const cw=av;let n=(m||document)['querySelectorAll']('[data-animation]');for(let p of n){let r=$['get'](p)||[];for(let u of r)u[cw(0x1b5)]();$['delete'](p);}}async function J(m){const cx=av;await z();let p=(m||document)['querySelectorAll'](cx(0x220));for(let u of p)try{let v=JSON[cx(0x182)](u['getAttribute']('data-effects')),w=Array[cx(0x2c4)](v)?v:[v],x=L[cx(0x224)](u)||[];for(let A of x)A?.[cx(0x19f)]&&A[cx(0x19f)]();let y=[];for(let C of w){if(!C||typeof C!=cx(0x1d8))continue;let T=await ht(u,C);y[cx(0xf6)]({'cleanup':T});}L['set'](u,y);}catch(Y){console['warn']('[AnimationService]\x20data-effects\x20parse\x20error\x20on\x20element:',u,Y);}}function et(m){const cy=av;let n=(m||document)[cy(0x1f0)](cy(0x220));for(let p of n){let r=L[cy(0x224)](p)||[];for(let u of r)u?.[cy(0x19f)]&&u[cy(0x19f)]();L['delete'](p);}}async function ht(m,p){const cz=av;let u=window['gsap'];if(!u)return null;let v=parseFloat(p[cz(0x288)])||0.5,x=parseFloat(p['delay'])||0x0,y=p['ease']||'power2.out',A=parseInt(p['repeat'])||0x0,C=()=>{const cA=cz;switch(p['type']){case cA(0x10d):u[cA(0x10f)](m,{'opacity':0x0},{'opacity':0x1,'duration':v,'ease':y,'delay':x});break;case'fadeOut':u['to'](m,{'opacity':0x0,'duration':v,'ease':y,'delay':x});break;case'slideInLeft':u['fromTo'](m,{'x':-0x64,'opacity':0x0},{'x':0x0,'opacity':0x1,'duration':v,'ease':y,'delay':x});break;case cA(0x291):u['fromTo'](m,{'x':0x64,'opacity':0x0},{'x':0x0,'opacity':0x1,'duration':v,'ease':y,'delay':x});break;case'slideInTop':u['fromTo'](m,{'y':-0x64,'opacity':0x0},{'y':0x0,'opacity':0x1,'duration':v,'ease':y,'delay':x});break;case'slideInBottom':u[cA(0x10f)](m,{'y':0x64,'opacity':0x0},{'y':0x0,'opacity':0x1,'duration':v,'ease':y,'delay':x});break;case cA(0x1b3):u[cA(0x10f)](m,{'y':0x0},{'y':-0x14,'duration':v/0x2,'ease':'power2.out','yoyo':!0x0,'repeat':A||0x3,'delay':x});break;case'pulse':u['fromTo'](m,{'scale':0x1},{'scale':1.1,'duration':v/0x2,'ease':'power2.inOut','yoyo':!0x0,'repeat':A||0x3,'delay':x});break;case cA(0x1a8):u['fromTo'](m,{'x':0x0},{'x':0xa,'duration':v/0x6,'ease':'none','yoyo':!0x0,'repeat':A||0x5,'delay':x});break;case'glow':u[cA(0x10f)](m,{'filter':'drop-shadow(0\x200\x200px\x20rgba(0,0,0,0))'},{'filter':cA(0x188)+(p[cA(0x156)]||0xa)+cA(0x213)+(p['glowColor']||cA(0x12e))+')','duration':v,'ease':y,'yoyo':A>0x0,'repeat':A,'delay':x});break;case cA(0x168):u[cA(0x10f)](m,{'filter':'blur(0px)'},{'filter':'blur('+(p['blurAmount']||0x5)+'px)','duration':v,'ease':y,'delay':x});break;case cA(0x260):u['to'](m,{'rotation':0x168,'duration':v,'ease':cA(0x24f),'repeat':A||-0x1,'delay':x});break;case cA(0x2a8):u[cA(0x10f)](m,{'rotationY':0x0},{'rotationY':0x168,'duration':v,'ease':y,'delay':x});break;case'pulseRing':{let a3=parseFloat(p['scale'])||2.5,a4=p['ease']||cA(0x197),a5=!p['trigger']||p[cA(0x2b6)]==='load',a6=A!==0x0?A:a5?-0x1:0x0;u['fromTo'](m,{'scale':0x0,'opacity':p[cA(0x15e)]!=null?parseFloat(p['opacityFrom']):0x1},{'scale':a3,'opacity':0x0,'duration':v,'ease':a4,'repeat':a6,'delay':x,'transformOrigin':cA(0x174)});break;}case'flowDash':{let a7=parseFloat(p[cA(0x171)])||0xa,a8=parseFloat(p['gapLen'])||0x14,a9=p['color']||null,aa=p['direction']==='reverse'?cA(0x2a9):cA(0x191),ab=m['tagName']['toLowerCase']()==='svg'&&m[cA(0x1d4)](cA(0x179))||m;ab['style']['strokeDasharray']=a7+'\x20'+a8,a9&&(ab[cA(0x2ac)][cA(0x2a3)]=a9),a0=ab[cA(0x2b0)]([{'strokeDashoffset':a7+a8},{'strokeDashoffset':0x0}],{'duration':v*0x3e8,'iterations':0x1/0x0,'easing':'linear','direction':aa,'delay':x*0x3e8});break;}case cA(0x18d):{let ac=parseInt(p[cA(0x133)])||0x5,ad=p[cA(0x297)]||cA(0xff),ae=p[cA(0x162)]||'#0066ff',af=parseFloat(p['size'])||0x8,ag=p[cA(0x1f6)]==='reverse',ah=m['tagName']['toLowerCase']()==='svg'&&m[cA(0x1d4)](cA(0x179))||m,ai=ah[cA(0x27f)]||ah[cA(0x229)]('svg')||m;if(!ai)break;let {pathEl:aj,tempEl:ak}=W(ah);ak&&a1[cA(0xf6)](ak);let al='http://www.w3.org/2000/svg',am=()=>{const cB=cA;let an;switch(ad){case'triangle':an=document['createElementNS'](al,'polygon'),an[cB(0xfb)](cB(0x1cb),af+',0\x200,'+-af/0x2+cB(0x130)+af/0x2);break;case'arrow':an=document[cB(0x265)](al,'path'),an['setAttribute']('d','M'+af+',0\x20L0,'+-af/0x2+'\x20L'+af*0.35+',0\x20L0,'+af/0x2+'\x20Z');break;case'circle':an=document['createElementNS'](al,cB(0x10c)),an['setAttribute']('r',String(af/0x2));break;case'square':an=document[cB(0x265)](al,cB(0x22d)),an['setAttribute'](cB(0x1ad),String(af)),an['setAttribute']('height',String(af)),an['setAttribute']('x',String(-af/0x2)),an['setAttribute']('y',String(-af/0x2));break;case'star':{an=document[cB(0x265)](al,cB(0x186));let ao=[];for(let ap=0x0;ap<0xa;ap++){let aq=ap%0x2===0x0?af:af*0.4,ar=ap*Math['PI']/0x5-Math['PI']/0x2;ao[cB(0xf6)](aq*Math[cB(0x194)](ar)+','+aq*Math[cB(0x141)](ar));}an[cB(0xfb)]('points',ao[cB(0x217)]('\x20'));break;}case cB(0x18f):{let as=p['customShapeD']||'M'+af+cB(0x250)+-af/0x2+cB(0x130)+af/0x2+'\x20Z';an=document[cB(0x265)](al,'path'),an[cB(0xfb)]('d',as);break;}default:an=document[cB(0x265)](al,cB(0x22d)),an[cB(0xfb)](cB(0x1ad),String(af*0x2)),an['setAttribute']('height',String(af/0x3)),an['setAttribute']('x',String(-af)),an[cB(0xfb)]('y',String(-af/0x6));break;}return an[cB(0xfb)](cB(0x22f),ae),ai[cB(0x19d)](an),a1[cB(0xf6)](an),an;};for(let an=0x0;an<ac;an++){let ao=am(),ap=ag?0x1-an/ac:an/ac,aq=ag?-(an/ac):an/ac+0x1;u['to'](ao,{'motionPath':{'path':aj,'align':aj,'autoRotate':!0x0,'alignOrigin':[0.5,0.5],'start':ap,'end':aq},'duration':v,'repeat':-0x1,'ease':cA(0x24f),'delay':x});}break;}}},T=null,Y=null,a0=null,a1=[],a2=[];if(p['trigger']===cz(0x212))C();else{if(p[cz(0x2b6)]==='hover')T=C,m['addEventListener']('mouseenter',T);else{if(p[cz(0x2b6)]==='click')Y=C,m[cz(0x236)](cz(0x12f),Y);else{if(p[cz(0x2b6)]==='oid'){p['condition_bind']?.[cz(0x29f)]&&await S(p['condition_bind']['signal'],m,a4=>{const cC=cz;p[cC(0x293)]=String(a4);},a2),p['conditionValue_bind']?.[cz(0x29f)]&&await S(p[cz(0x14a)]['signal'],m,a4=>{const cD=cz;p[cD(0x121)]=String(a4);},a2);let a3=p['oid_bind']?.['signal']||p['oid'];a3&&await S(a3,m,a4=>{const cE=cz;if(Q(a4,p[cE(0x293)]||cE(0x108),p['conditionValue']??cE(0x10a)))C();else{u[cE(0x240)](m),a0&&(a0[cE(0x1ef)](),a0=null);for(let a5 of a1)u['killTweensOf'](a5),a5[cE(0x17b)]();a1['length']=0x0;}},a2);}}}}return()=>{const cF=cz;T&&m[cF(0x2c5)](cF(0x1d9),T),Y&&m[cF(0x2c5)]('click',Y),O(a2),a0&&a0['cancel']();for(let a4 of a1)u[cF(0x240)](a4),a4[cF(0x17b)]();};}import{PropertiesHelper as l}from'@gokturk413/web-component-designer/dist/elements/services/propertiesService/services/PropertiesHelper.js';var G=av(0x1e3);function ut(m){const cG=av;try{let n=m['getAttribute'](G);if(n){let o=JSON[cG(0x182)](n);if(Array['isArray'](o))return o['filter'](p=>p&&p[cG(0x1b2)]);}}catch(p){console['warn'](cG(0x12d)+G+'\x20attribute',p,m);}return[];}function dt(m,n){const cH=av;let o=Object[cH(0x246)](m);for(;o&&o!==HTMLElement['prototype'];){let p=Object[cH(0x1a5)](o,n);if(p)return p;o=Object[cH(0x246)](o);}return null;}function M(m){const cI=av;let n=ut(m);for(let p of n){let u=p['name'];if(Object[cI(0x1a5)](m,u))continue;let v=dt(m,u);v&&(v[cI(0x224)]||v['set'])?Object[cI(0x2ca)](m,u,{'get'(){return v['get']?v['get']['call'](this):void 0x0;},'set'(x){const cJ=cI;(v['get']?v[cJ(0x224)]['call'](this):void 0x0)!==x&&(v['set']?.['call'](this,x),this[cJ(0x15d)]?.(u),this['dispatchEvent'](new CustomEvent(l[cJ(0x276)](u)+cJ(0x1a0),{'detail':{'newValue':x}})));},'enumerable':!0x0,'configurable':!0x0}):Object['defineProperty'](m,u,{'get'(){return this['_'+u];},'set'(x){const cK=cI;this['_'+u]!==x&&(!Number['isNaN'](this['_'+u])||!Number['isNaN'](x))&&(this['_'+u]=x,this[cK(0x15d)]?.(u),this[cK(0x206)](new CustomEvent(l[cK(0x276)](u)+'-changed',{'detail':{'newValue':x}})));},'enumerable':!0x0,'configurable':!0x0});let w=m[cI(0x29e)](l['camelToDashCase'](u))??p['default'];w!=null&&(p[cI(0x29c)]==='number'?w=parseFloat(w):p[cI(0x29c)]==='boolean'&&(w=w===''||w===!0x0||w==='true'),v?m[u]=w:m['_'+u]=w);}}function st(m){const cL=av;m instanceof Element&&m[cL(0x216)](G)&&M(m);for(let n of m[cL(0x1f0)]('['+G+']'))M(n);}var mt=av(0x10b),F=Symbol(av(0x114)),N=class extends d{static [av(0x2ac)]=e`:host { overflow: hidden }`;#e;#t;#n=[];#r;#s;#a;#i;#o=new Map();constructor(){const cM=av;super(),this[cM(0x279)](null,!0x0),this['constructor'][F][cM(0x128)]['settings']['useGlobalStyle']&&(this[cM(0x1ee)][cM(0x154)]=[b[cM(0x18b)],...this['shadowRoot']['adoptedStyleSheets']]),this['constructor'][F]['control']['settings'][cM(0x1d5)]&&(this.#r=new ResizeObserver(m=>{const cN=cM;let n=this.#s[cN(0x26b)]['get']('width');if(n){for(let o of n)o();}if(n=this.#s['valueChangedCallbacks'][cN(0x224)](cN(0x2c1)),n){for(let p of n)p();}}));}async[av(0x18e)](){const cO=av;this[cO(0x151)](),this['_setupDynamicProperties'](),this['_bindingsRefresh'](),this.#s={'valueProvider':n=>{const cP=cO;switch(n){case cP(0x1ad):return this[cP(0x110)]()[cP(0x1ad)];case'height':return this[cP(0x110)]()['height'];}return null;},'valueChangedCallbacks':new Map()},this.#o=new Map(),this.#i=new MutationObserver(p=>{const cQ=cO;for(let u of p){for(let v of u['removedNodes']){if(v[cQ(0x245)]!==0x1)continue;let w=this.#o[cQ(0x224)](v);if(w){for(let x of w)x();this.#o['delete'](v);}}for(let y of u[cQ(0x2b2)]){if(y['nodeType']!==0x1)continue;let A=this['_getRelativeSignalsPath'](),C=[];try{let Y=window[cQ(0x140)]['bindingsHelper']['getBindings'](y);for(let a0 of Y)C['push'](window[cQ(0x140)]['bindingsHelper']['applyBinding'](y,a0,A,this,this.#s));}catch(a1){console[cQ(0x29d)](cQ(0x269),a1);}let T=window['appShell']['bindingsHelper'][cQ(0x19e)](y,A,this,this.#s);C['push'](...T),this.#o['set'](y,C),H(y)['catch'](()=>{}),J(y)[cQ(0x296)](()=>{});}}}),this.#i[cO(0x1bb)](this[cO(0x1ee)],{'childList':!0x0,'subtree':!0x0}),this.#t=window['appShell'][cO(0x17d)]['applyAllBindings'](this['shadowRoot'],this['_getRelativeSignalsPath'](),this,this.#s),this.#e=await window[cO(0x140)][cO(0x152)][cO(0x2a2)]('customControl\x20'+this['constructor'][F][cO(0x1b2)],this['constructor'][F][cO(0x128)]['script'],this[cO(0x1ee)],this,b),this.#e?.[cO(0x18e)]?.(this,this[cO(0x1ee)]);for(let n of this.#n)this['addEventListener'](n[0x0],n[0x1]);this.#r?.[cO(0x1bb)](this),this.#a=b['objectsChanged']['on'](o=>{const cR=cO;let p=this[cR(0x132)][F][cR(0x1b2)];o['type']=='control'&&o[cR(0x1b2)]===p&&(this[cR(0x1d7)](),this['_rootDocumentFragment']=this['constructor']['template']['content'][cR(0x266)](!0x0),this[cR(0x1ee)][cR(0x24c)]='',this[cR(0x1ee)][cR(0x19d)](this[cR(0x232)]),this[cR(0x279)](null,!0x0),this['connectedCallback']());});let m=this[cO(0x132)][F][cO(0x128)][cO(0x1a6)];if(m?.['visibilityEnabled']){let o={'enabled':m['visibilityEnabled'],'groups':m[cO(0x1a9)]||[],'action':m[cO(0x1ff)]||cO(0x228),'redirectScreen':m[cO(0x2a4)]||''};await E['applyVisibility'](this,o);}await E[cO(0x221)](this[cO(0x1ee)]),H(this[cO(0x1ee)])[cO(0x296)](()=>{}),J(this[cO(0x1ee)])[cO(0x296)](()=>{});}[av(0x1d7)](){const cS=av;for(let m of this.#n)this['removeEventListener'](m[0x0],m[0x1]);this.#e?.['disconnectedCallback']?.(this,this['shadowRoot']);for(let n of this.#t)n();this.#t=null,this.#i?.['disconnect'](),this.#i=null;for(let o of this.#o[cS(0x1ab)]())for(let p of o)p();this.#o[cS(0x2c3)](),this.#r?.['unobserve'](this),this.#a?.[cS(0x1ea)](),E['removeVisibility'](this),this['shadowRoot'][cS(0x1f0)]('[data-visibility-controlled=\x22true\x22]')['forEach'](r=>E[cS(0x172)](r)),tt(this[cS(0x1ee)]),et(this['shadowRoot']);}[av(0x274)](){const cT=av;M(this),st(this[cT(0x1ee)]);}[av(0x267)](m,n){const cU=av;let o=[m,n];return this.#n[cU(0xf6)](o),this['addEventListener'](m,n),{'remove':()=>{const cV=cU;let p=this.#n[cV(0x2bd)](o);this.#n[cV(0x256)](p,0x1),this['removeEventListener'](m,n);}};}['_getRelativeSignalsPath'](){const cW=av;return this[cW(0x101)]()?.[cW(0x20a)]?.['_getRelativeSignalsPath']?.()??'';}};window[av(0x1f8)]=N;function bt(m){const cX=av;m[0x0]=='/'&&(m=m[cX(0x1a7)](0x1));let n=k[cX(0x276)](m[cX(0x176)]('/','-')[cX(0x176)]('\x20','-')['replaceAll']('--','-'));return n[0x0]==='-'&&(n=n['substring'](0x1)),mt+n;}function K(m,p){const cY=av;let u=bt(m),v=document['createElement'](cY(0x149));v[cY(0x24c)]=p['html'];let w=f(p['style']),x={};for(let y in p[cY(0x1e2)]){let A=p['properties'][y];A['internal']||(A[cY(0x29c)]=='string'||A[cY(0x29c)]==cY(0x162)?x[y]=String:A['type']==cY(0x131)?x[y]=Boolean:A['type']==cY(0x1a3)?x[y]=Number:A[cY(0x29c)]=='date'?x[y]=Date:A[cY(0x29c)]=='enum'||A['type']==cY(0x29f)||A['type']=='screen'?x[y]=String:(A['type']==cY(0x1d8),x[y]=Object));}if(window[cY(0x134)+m]){window[cY(0x134)+m][cY(0x149)]=v,window['IobrokerWebuiCustomControl'+m]['style']=w,window['IobrokerWebuiCustomControl'+m]['properties']=x,window['IobrokerWebuiCustomControl'+m][cY(0xfa)]=null;let C=window['IobrokerWebuiCustomControl'+m][F];C['control']=p;}else{window[cY(0x134)+m]=function(){const cZ=cY;let Y=Reflect[cZ(0x19c)](N,[],window['IobrokerWebuiCustomControl'+m]),a0=window['IobrokerWebuiCustomControl'+m][F]['control'];for(let a1 in a0[cZ(0x1e2)]){let a2;a1 in Y&&(a2=Y[a1],delete Y[a1]),Object[cZ(0x2ca)](Y,a1,{'get'(){return this['_'+a1];},'set'(a3){const d0=cZ;this['_'+a1]!==a3&&(!Number[d0(0x254)](this['_'+a1])||!Number['isNaN'](a3))&&(this['_'+a1]=a3,this[d0(0x15d)](a1),Y['dispatchEvent'](new CustomEvent(k[d0(0x276)](a1)+'-changed',{'detail':{'newValue':a3}})));},'enumerable':!0x0,'configurable':!0x0}),a2!==void 0x0?Y[a1]=a2:a0['properties'][a1][cZ(0x138)]!=null&&(Y['_'+a1]=a0['properties'][a1][cZ(0x138)]);}return Y;};let T={'control':p,'name':m};window['IobrokerWebuiCustomControl'+m][F]=T,window['IobrokerWebuiCustomControl'+m][cY(0x149)]=v,window[cY(0x134)+m][cY(0x2ac)]=w,window[cY(0x134)+m]['properties']=x,window[cY(0x134)+m]['_propertiesDictionary']=null,window[cY(0x134)+m]['prototype']=Object[cY(0x111)](N['prototype'],{'constructor':{'value':window['IobrokerWebuiCustomControl'+m]}}),customElements[cY(0x224)](u)||customElements[cY(0x163)](u,window[cY(0x134)+m]);}}export{z as a,H as b,tt as c,J as d,et as e,st as f,mt as g,F as h,N as i,bt as j,K as k,V as l,b as m};
1
+ const av=c;(function(m,n){const au=c,o=m();while(!![]){try{const p=parseInt(au(0x328))/0x1*(parseInt(au(0x1b2))/0x2)+parseInt(au(0x33f))/0x3+parseInt(au(0x32d))/0x4+parseInt(au(0x255))/0x5+-parseInt(au(0x347))/0x6+parseInt(au(0x1fa))/0x7+-parseInt(au(0x228))/0x8;if(p===n)break;else o['push'](o['shift']());}catch(r){o['push'](o['shift']());}}}(a,0xa4620));import{BaseCustomWebComponentConstructorAppend as d,css as e,cssFromString as f}from'@gokturk413/base-custom-webcomponent';import{Connection as g}from'@iobroker/socket-client';import{TypedEvent as h,cssFromString as j}from'@gokturk413/base-custom-webcomponent';function X(m){return new Promise(n=>setTimeout(n,m));}var V=class i{static ['instance']=new i();[av(0x257)];['connection'];[av(0x21d)]=av(0x2af);['namespace']='mywebui.0';['namespaceFiles']=this['namespace']+av(0x363);['namespaceProjects']=this['namespace']+av(0x363);[av(0x23e)]=this['namespace']+'.data';['globalPath']='global/';#e=av(0x20e);get[av(0x2de)](){return this.#e;}get[av(0x290)](){const aw=av;return this.#e+aw(0x336);}get[av(0x310)](){return this['namespaceProjects']+'/'+this.#e+'/widgets/';}get[av(0x24c)](){const ax=av;return'/'+this[ax(0x1dd)]+'/'+this['configPath']+'images/';}get['additionalFilePrefix'](){const ay=av;return'/'+this[ay(0x1dd)]+'/'+this[ay(0x290)]+ay(0x1a3);}[av(0x1cd)];[av(0x302)];[av(0x2f5)];[av(0x365)];[av(0x256)]=new h();['imagesChanged']=new h();['additionalFilesChanged']=new h();['configChanged']=new h();[av(0x287)]=new h();[av(0x276)]=new h();['_readyPromises']=[];['language']='en';['languageChanged']=new h();['translations']={};['translationsChanged']=new h();#t=new Map();[av(0x366)]=null;[av(0x258)];[av(0x218)]=null;constructor(){const az=av;this['clientId']=Date['now']()['toString'](0x10),this.#t[az(0x248)](az(0x296),new Map()),this.#t['set'](az(0x1cf),new Map()),this.#t['set'](az(0x26c),new Map()),this.#t['set'](az(0x204),new Map());try{let m=new URLSearchParams(window['location']['search'])['get'](az(0x30a));m?this.#e=this['_cleanProjectName'](m):window['location'][az(0x213)][az(0x1f0)]('runtime.html')||(this.#e=this['_cleanProjectName'](localStorage['getItem'](az(0x1ba))??'default'));}catch(n){console[az(0x271)]('could\x20not\x20determine\x20current\x20project',n);}}['_cleanProjectName'](m){const aA=av;return m=(m??'')['toString']()[aA(0x32f)]()[aA(0x2f7)]()[aA(0x354)]('\x20','-'),/^[a-z0-9_-]+$/[aA(0x373)](m)?m:aA(0x20e);}async['getProjects'](){const aB=av;this['_readyPromises']&&await this[aB(0x284)]();try{let m=await this[aB(0x24f)]('projects.json');if(Array[aB(0x376)](m?.['projects'])){let n=m['projects'][aB(0x355)](o=>/^[a-z0-9_-]+$/[aB(0x373)](o));return n['includes'](aB(0x20e))||n[aB(0x292)](aB(0x20e)),n;}}catch{}return[aB(0x20e)];}async[av(0x2f9)](m){const aC=av;if(m=(m??'')['toString']()[aC(0x32f)]()['toLowerCase']()[aC(0x354)]('\x20','-'),!/^[a-z0-9_-]+$/['test'](m))throw new Error(aC(0x250)+m);let n=await this[aC(0x304)]();if(n['includes'](m))throw new Error('project\x20already\x20exists:\x20'+m);n['push'](m),await this[aC(0x235)]({'projects':n[aC(0x355)](o=>o!=='default')},'projects.json'),await this['_saveObjectToFile']({'globalStyle':null,'globalScript':null,'globalConfig':null,'fontDeclarations':null},m+'/data/config.json'),await this['_saveObjectToFile']({},m+aC(0x35d));try{await this[aC(0x20a)]['setState'](this['namespace']+aC(0x25d),{'val':m}),await this[aC(0x20a)]['setState'](this['namespace']+'.control.command',{'val':aC(0x22b)});}catch{}return m;}async['removeProject'](m){const aD=av;if(m==='default')throw new Error('the\x20\x27default\x27\x20project\x20cannot\x20be\x20deleted');let n=(await this[aD(0x304)]())['filter'](o=>o!==m&&o!==aD(0x20e));await this['_saveObjectToFile']({'projects':n},'projects.json');try{await this['connection'][aD(0x359)](this['namespaceProjects'],'/'+m);}catch(o){console[aD(0x271)](aD(0x2ad),o);}this.#e===m&&this['setCurrentProject']('default');}['setCurrentProject'](m){const aE=av;localStorage[aE(0x2f4)]('webui-current-project',this[aE(0x1c5)](m));let n=new URL(window['location'][aE(0x28d)]);n[aE(0x1d4)][aE(0x1f8)](aE(0x30a)),n[aE(0x225)]()===window['location']['href']?window[aE(0x26e)][aE(0x1b8)]():window['location'][aE(0x28d)]=n[aE(0x225)]();}['getNormalizedSignalName'](m,n,o){return(n??'')+m;}['waitForReady'](){return this['_readyPromises']?new Promise(m=>{const aF=c;this['_readyPromises'][aF(0x1a8)](m);}):Promise['resolve']();}async['init'](){const aG=av;for(;!window['io'];)await X(0x5);let m=document[aG(0x358)](aG(0x37b));m&&(m['innerHTML']='connecting...'),this[aG(0x20a)]=new g({'protocol':'ws','host':window['iobrokerHost'],'port':window[aG(0x32e)],'admin5only':!0x1,'autoSubscribes':[],'onError':y=>{const aH=aG;let A=document[aH(0x358)]('connectionInfo');A&&(A['innerHTML']=y);let C=document['getElementById'](aH(0x234));C&&(C['style']['background']=aH(0x319));},'onReady':()=>{const aI=aG;let y=document[aI(0x358)](aI(0x37b));y&&(y['innerHTML']=aI(0x29f));let A=document['getElementById'](aI(0x234));A&&(A[aI(0x26a)][aI(0x2a9)]='lightgreen');}}),await this[aG(0x20a)]['startSocket'](),await this[aG(0x20a)][aG(0x1dc)]();try{this[aG(0x218)]=await this[aG(0x20a)][aG(0x1ec)]();}catch{}let p=await this['_getConfig']();this['config']=p??{'globalStyle':null,'globalScript':null,'globalConfig':null,'fontDeclarations':null};try{let y=await this['connection'][aG(0x202)](aG(0x2bc));this[aG(0x34b)]=!!(y?.['native']?.[aG(0x34f)]&&y?.[aG(0x29e)]?.[aG(0x34b)]);}catch{this['grafanaLangSyncEnabled']=!0x1;}if(this[aG(0x1cd)][aG(0x279)]==null&&(this[aG(0x1cd)]['globalConfig']={'headerTags':'<meta\x20name=\x22apple-mobile-web-app-capable\x22\x20content=\x22yes\x22\x20/>\x0a<meta\x20name=\x22viewport\x22\x20content=\x22width=device-width,\x20initial-scale=1.0,\x20shrink-to-fit=no,\x20maximum-scale=1.0,\x20user-scalable=no,\x20viewport-fit=cover\x22>'}),this['config'][aG(0x279)][aG(0x378)]){let A=document[aG(0x1ab)]()[aG(0x38d)](this['config'][aG(0x279)]['headerTags']);document[aG(0x29b)]['appendChild'](A);}if(this[aG(0x1cd)][aG(0x1b3)]&&(this[aG(0x302)]=j(this['config']['globalStyle'])),this[aG(0x1cd)][aG(0x223)]&&(this['fontDeclarationsStylesheet']=j(this[aG(0x1cd)]['fontDeclarations']),document['adoptedStyleSheets']=[this['fontDeclarationsStylesheet']]),this['config']['globalScript']){let C=URL['createObjectURL'](new Blob([this[aG(0x1cd)][aG(0x370)]],{'type':aG(0x20f)}));this[aG(0x365)]=await importShim(C),this['globalScriptInstance']['init']&&this['globalScriptInstance'][aG(0x31f)]();}let u=localStorage['getItem'](aG(0x335));if(u)this['language']=u;else try{let T=await this[aG(0x20a)]['getSystemConfig']();T?.[aG(0x24b)]?.['language']&&(this['language']=T[aG(0x24b)]['language']);}catch{}this[aG(0x33e)](aG(0x1b7),{'val':this[aG(0x27a)]}),this[aG(0x1d1)]('local_language',(Y,a0)=>{const aJ=aG;a0?.['val']&&a0[aJ(0x2db)]!==this['language']&&this[aJ(0x230)](a0[aJ(0x2db)]);}),await this[aG(0x203)](),window['t']=Y=>this['t'](Y);for(let Y of this[aG(0x21e)])Y();this[aG(0x21e)]=null,console['log']('ioBroker\x20handler\x20ready.');let v,w;await this[aG(0x20a)][aG(0x1d1)](this['namespace']+aG(0x29d),(a0,a1)=>{v=a1?.['val'];}),await this[aG(0x20a)][aG(0x1d1)](this['namespace']+'.control.clientIds',(a0,a1)=>{const aK=aG;w=a1?.[aK(0x2db)];});let x=await this['connection'][aG(0x23c)](this[aG(0x1b9)]+aG(0x388));this['connection'][aG(0x1d1)](this[aG(0x1b9)]+aG(0x388),(a0,a1)=>{const aL=aG;a1?.[aL(0x2c1)]&&a1?.['ts']!=x?.['ts']&&this['handleCommand'](a1?.[aL(0x2db)],v,w);}),this[aG(0x357)]('uiConnected',''),this['_broadcastChannel']=new BroadcastChannel(aG(0x1a5)),this[aG(0x209)]['onmessage']=a0=>{const aM=aG;let {command:a1,data:a2,clientId:a3}=a0[aM(0x367)]??{};a1&&this[aM(0x1d3)](a1,a2,a3);};}async[av(0x201)](){const aN=av;let m=await this['connection']['getObjectViewSystem']('adapter',''),n=[];for(let o in m)(m[o]?.[aN(0x24b)]?.[aN(0x281)]=='visualization-icons'||m[o]?.['common'][aN(0x2c5)][aN(0x2a4)]('icons-'))&&n['push'](m[o]?.[aN(0x24b)]['name']);return n;}async['getAllNames'](m,n){const aO=av;this['_readyPromises']&&await this[aO(0x284)]();let p=[];p['push'](this[aO(0x305)](m,n)[aO(0x1b6)](v=>v[aO(0x2c6)](w=>(n?n+'/':'/')[aO(0x350)](0x1)+w)));let u=await this[aO(0x323)](m,n);for(let v of u)p['push'](this['getAllNames'](m,(n??'')+'/'+v));return(await Promise[aO(0x1e9)](p))[aO(0x309)](w=>w);}async[av(0x323)](m,n){const aP=av;this['_readyPromises']&&await this['waitForReady']();try{return(await this['connection'][aP(0x260)](this['namespaceFiles'],this['configPath']+m+'s'+(n??'')))[aP(0x355)](o=>o[aP(0x2ac)])[aP(0x2c6)](o=>o[aP(0x2d1)]);}catch(o){console['warn'](aP(0x36f),o);}return[];}async['getObjectNames'](m,n){const aQ=av;this['_readyPromises']&&await this[aQ(0x284)]();try{return(await this['connection']['readDir'](this[aQ(0x1dd)],this['configPath']+m+'s'+(n??'')))[aQ(0x355)](o=>o['file'][aQ(0x1f0)]('.'+m))['map'](o=>o['file'][aQ(0x350)](0x0,o[aQ(0x2d1)][aQ(0x241)]-m[aQ(0x241)]-0x1));}catch(o){console[aQ(0x271)]('no\x20'+m+aQ(0x2d4),o);}return[];}async[av(0x368)](m,n){return m=='screen'?this['getScreen'](n):m=='control'?this['getCustomControl'](n):m=='3dscreen'?this['get3DScreen'](n):m=='3dcontrol'?this['get3DControl'](n):null;}async[av(0x244)](m){const aR=av;m[0x0]=='/'&&(m=m['substring'](0x1));let n=this.#t[aR(0x31e)]('screen')[aR(0x31e)](m);if(!n){this[aR(0x21e)]&&await this['waitForReady']();try{n=await this[aR(0x24f)](this['configPath']+aR(0x33a)+m+aR(0x2ab));}catch(o){console['error']('Error\x20reading\x20Screen',n,o);}this.#t['get'](aR(0x296))['set'](m,n);}return n;}async[av(0x313)](m){const aS=av;m[0x0]=='/'&&(m=m[aS(0x350)](0x1));let n=this.#t['get'](aS(0x26c))[aS(0x31e)](m);if(!n){this[aS(0x21e)]&&await this['waitForReady']();try{n=await this[aS(0x24f)](this[aS(0x290)]+aS(0x31c)+m+aS(0x262));}catch(o){console['error'](aS(0x1da),n,o);}this.#t[aS(0x31e)](aS(0x26c))[aS(0x248)](m,n);}return n;}async[av(0x291)](m){const aT=av;m[0x0]=='/'&&(m=m[aT(0x350)](0x1));let n=this.#t[aT(0x31e)]('3dcontrol')[aT(0x31e)](m);if(!n){this['_readyPromises']&&await this[aT(0x284)]();try{n=await this[aT(0x24f)](this[aT(0x290)]+'3dcontrols/'+m+'.3dcontrol');}catch(o){console[aT(0x379)]('Error\x20reading\x203D\x20Control',n,o);}this.#t['get'](aT(0x204))[aT(0x248)](m,n);}return n;}async['saveObject'](m,n,o){const aU=av;await this['_saveObjectToFile'](o,'/'+this[aU(0x290)]+m+'s/'+n+'.'+m),this.#t[aU(0x1c3)](m)&&this.#t[aU(0x31e)](m)['set'](n,o),m=='control'&&(this['_controlNames']=null,this['_scheduleControlsAggregate']()),this[aU(0x357)]('objectChanged',JSON['stringify']({'type':m,'name':n}),'*');}async[av(0x2d6)](m,n){const aV=av;await this[aV(0x20a)][aV(0x35c)](this['namespaceFiles'],'/'+this[aV(0x290)]+m+'s/'+n+'.'+m),this.#t[aV(0x1c3)](m)&&this.#t[aV(0x31e)](m)['delete'](n),m=='control'&&(this[aV(0x366)]=null,this[aV(0x36c)]()),this['objectsChanged'][aV(0x236)]({'type':m,'name':n});}async['renameObject'](m,n,o){const aW=av;n[0x0]=='/'&&(n=n['substring'](0x1)),o[0x0]=='/'&&(o=o[aW(0x350)](0x1)),await this['connection']['renameFile'](this[aW(0x1dd)],'/'+this[aW(0x290)]+m+'s/'+n+'.'+m,'/'+this['configPath']+m+'s/'+o+'.'+m),this.#t[aW(0x1c3)](m)&&(this.#t[aW(0x31e)](m)[aW(0x1f8)](n),this.#t[aW(0x31e)](m)[aW(0x1f8)](o)),m==aW(0x1cf)&&(this[aW(0x366)]=null,this['_scheduleControlsAggregate']()),this[aW(0x368)](m,o),this['objectsChanged'][aW(0x236)]({'type':m,'name':o});}#n;['_scheduleControlsAggregate'](){const aX=av;clearTimeout(this.#n),this.#n=setTimeout(()=>this[aX(0x1e6)](),0x2bc);}async[av(0x1e6)](){const aY=av;try{let m=await this[aY(0x1a1)](aY(0x1cf)),n={};await Promise[aY(0x1e9)](m['map'](async p=>{let r=p['replace'](/^\//,'');n[r]=await this['getCustomControl'](r);})),await this['_saveObjectToFile']({'version':0x1,'controls':n},this['configPath']+aY(0x2fc)),console[aY(0x337)]('controls\x20aggregate\x20written\x20('+m['length']+aY(0x1c2));}catch(o){console[aY(0x271)]('error\x20writing\x20controls\x20aggregate',o);}}async[av(0x1bf)](){const aZ=av;this['_readyPromises']&&await this['waitForReady']();try{let m=await this['_getObjectFromFile'](this[aZ(0x290)]+'controls-all.dat');if(m?.['controls']){for(let n in m[aZ(0x237)])this.#t['get']('control')['set'](n,m[aZ(0x237)][n]);return this['_controlNames']=Object['keys'](m[aZ(0x237)]),m[aZ(0x237)];}}catch{}return null;}async['getGlobalObjectNames'](m,n){const b0=av;try{return(await this['connection']['readDir'](this['namespaceGlobal'],this[b0(0x264)]+m+'s'+(n??'')))['filter'](p=>p['file']['endsWith']('.'+m))[b0(0x2c6)](p=>p[b0(0x2d1)]['substring'](0x0,p[b0(0x2d1)][b0(0x241)]-m[b0(0x241)]-0x1));}catch{return[];}}async[av(0x272)](m,n){const b1=av;try{return(await this['connection'][b1(0x260)](this[b1(0x23e)],this[b1(0x264)]+m+'s'+(n??'')))[b1(0x355)](p=>p['isDir'])['map'](p=>p['file']);}catch{return[];}}async['getAllGlobalNames'](m,n){const b2=av;let p=[];p[b2(0x1a8)](this['getGlobalObjectNames'](m,n)[b2(0x1b6)](r=>r[b2(0x2c6)](u=>(n?n+'/':'/')[b2(0x350)](0x1)+u)));for(let r of await this[b2(0x272)](m,n))p[b2(0x1a8)](this[b2(0x27e)](m,(n??'')+'/'+r));return(await Promise['all'](p))['flatMap'](u=>u);}async['getGlobalObject'](m,p){const b3=av;p[0x0]==='/'&&(p=p[b3(0x350)](0x1));let r='g'+m;this.#t[b3(0x1c3)](r)||this.#t['set'](r,new Map());let u=this.#t[b3(0x31e)](r)['get'](p);if(!u){try{u=await this[b3(0x24f)](this[b3(0x264)]+m+'s/'+p+'.'+m,this['namespaceGlobal']);}catch(v){console[b3(0x379)]('Error\x20reading\x20global\x20'+m,p,v);}this.#t[b3(0x31e)](r)['set'](p,u);}return u;}async['saveGlobalObject'](m,n,p){const b4=av;await this['_saveObjectToFile'](p,'/'+this[b4(0x264)]+m+'s/'+n+'.'+m,this['namespaceGlobal']);let r='g'+m;this.#t['has'](r)&&this.#t[b4(0x31e)](r)['set'](n,p),this[b4(0x249)](m),this[b4(0x256)]['emit']({'type':m,'name':n,'global':!0x0});}async['removeGlobalObject'](m,n){const b5=av;n[0x0]==='/'&&(n=n['substring'](0x1)),await this[b5(0x20a)][b5(0x35c)](this[b5(0x23e)],'/'+this['globalPath']+m+'s/'+n+'.'+m);let o='g'+m;this.#t[b5(0x1c3)](o)&&this.#t[b5(0x31e)](o)[b5(0x1f8)](n),this['_scheduleGlobalAggregate'](m),this['objectsChanged'][b5(0x236)]({'type':m,'name':null,'global':!0x0});}async[av(0x28e)](m,n,p){const b6=av;n[0x0]==='/'&&(n=n[b6(0x350)](0x1)),p[0x0]==='/'&&(p=p['substring'](0x1)),await this[b6(0x20a)]['renameFile'](this['namespaceGlobal'],'/'+this['globalPath']+m+'s/'+n+'.'+m,'/'+this[b6(0x264)]+m+'s/'+p+'.'+m);let r='g'+m;this.#t[b6(0x1c3)](r)&&(this.#t['get'](r)['delete'](n),this.#t[b6(0x31e)](r)[b6(0x1f8)](p)),this['_scheduleGlobalAggregate'](m),this['objectsChanged'][b6(0x236)]({'type':m,'name':p,'global':!0x0});}#r={};['_scheduleGlobalAggregate'](m){const b7=av;clearTimeout(this.#r[m]),this.#r[m]=setTimeout(()=>this[b7(0x1c1)](m),0x2bc);}async['_writeGlobalAggregate'](m){const b8=av;try{let n=await this[b8(0x27e)](m);if(!n['length'])return;let o={};await Promise['all'](n['map'](async p=>{const b9=b8;let r=p[b9(0x2e1)](/^\//,'');o[r]=await this[b9(0x2f6)](m,r);})),await this['_saveObjectToFile']({'version':0x1,'controls':o},this['globalPath']+m+b8(0x2ee),this['namespaceGlobal']);}catch(p){console[b8(0x271)]('error\x20writing\x20global\x20'+m+'\x20aggregate',p);}}async[av(0x311)](m){const ba=av;this[ba(0x21e)]&&await this[ba(0x284)]();try{let o=await this['_getObjectFromFile'](this['globalPath']+m+ba(0x2ee),this[ba(0x23e)]);if(o?.[ba(0x237)]&&Object['keys'](o['controls'])[ba(0x241)])return o['controls'];}catch{}let n={};try{let p=await this[ba(0x27e)](m);await Promise['all'](p[ba(0x2c6)](async r=>{let u=r['replace'](/^\//,'');n[u]=await this['getGlobalObject'](m,u);})),Object[ba(0x297)](n)['length']&&this[ba(0x249)](m);}catch{}return n;}async[av(0x30d)](m,n){const bb=av;await this['_saveObjectToFile']({},'/'+this['configPath']+m+'s/'+n+bb(0x32c)),this[bb(0x256)][bb(0x236)]({'type':m,'name':null});}async[av(0x266)](m,n){const bc=av;await this['connection'][bc(0x359)](this['namespaceFiles'],'/'+this[bc(0x290)]+m+'s/'+n),this['objectsChanged']['emit']({'type':m,'name':null});}async[av(0x2dc)](m,n){const bd=av;await this[bd(0x235)]({},'/'+this[bd(0x264)]+m+'s/'+n+'/tmp.fld',this['namespaceGlobal']),this['objectsChanged'][bd(0x236)]({'type':m,'name':null,'global':!0x0});}async[av(0x2d8)](m,n){const be=av;await this[be(0x20a)][be(0x359)](this['namespaceGlobal'],'/'+this[be(0x264)]+m+'s/'+n),this['objectsChanged'][be(0x236)]({'type':m,'name':null,'global':!0x0});}async[av(0x1f5)](){const bf=av;await b['waitForReady']();let m=await this[bf(0x227)](),n=[];for(let o of m)n[bf(0x1a8)](this['getCustomControl'](o));await Promise['all'](n);}async[av(0x227)](){const bg=av;if(this[bg(0x366)])return this[bg(0x366)];this['_readyPromises']&&await this[bg(0x284)]();try{let m=await this['getAllNames']('control');return this[bg(0x366)]=m,m;}catch(n){console['warn']('no\x20controls\x20loaded',n);}return[];}async[av(0x316)](m){const bh=av;m[0x0]=='/'&&(m=m[bh(0x350)](0x1));let p=this.#t[bh(0x31e)](bh(0x1cf))['get'](m);if(!p){this[bh(0x21e)]&&await this[bh(0x284)]();try{if(p=await this[bh(0x24f)](this['configPath']+bh(0x1e2)+m+bh(0x1e3)),p['properties']){let r=Object[bh(0x297)](p['properties']);if(r[bh(0x241)]&&typeof p[bh(0x1ad)][r[0x0]]==bh(0x1ff))for(let u in p['properties']){let v=p[bh(0x1ad)][u];v['startsWith']('[')?p[bh(0x1ad)][u]={'type':'enum','values':JSON[bh(0x37d)](v)}:p['properties'][u]={'type':v};}}}catch(w){console[bh(0x379)]('Error\x20reading\x20Control',p,w);}this.#t[bh(0x31e)](bh(0x1cf))[bh(0x248)](m,p);}return p;}async[av(0x339)](){const bi=av;this[bi(0x21e)]&&await this['waitForReady']();try{return(await this['connection']['readDir'](this['namespaceFiles'],this['configPath']+bi(0x2b9)))[bi(0x2c6)](m=>m[bi(0x2d1)]);}catch{}return[];}async[av(0x2b8)](m,n){const bj=av;await this['_saveBinaryToFile'](n,'/'+this['configPath']+'images/'+m),this['imagesChanged'][bj(0x236)]();}async['getImage'](m){const bk=av;return await this[bk(0x20a)]['readFile'](this['namespaceFiles'],'/'+this[bk(0x290)]+bk(0x1fb)+m,!0x1);}async[av(0x1f7)](m){const bl=av;await this[bl(0x20a)][bl(0x35c)](this[bl(0x1dd)],'/'+this[bl(0x290)]+bl(0x1fb)+m),this['imagesChanged'][bl(0x236)]();}async[av(0x2ec)](){const bm=av;this[bm(0x21e)]&&await this['waitForReady']();try{return(await this['connection']['readDir'](this['namespaceFiles'],this[bm(0x290)]+'additionalfiles'))[bm(0x2c6)](m=>m['file']);}catch{}return[];}async[av(0x2f2)](m,n){const bn=av;await this['_saveBinaryToFile'](n,'/'+this['configPath']+bn(0x1a3)+m),this['additionalFilesChanged'][bn(0x236)]();}async['getAdditionalFile'](m){const bo=av;return await this['connection']['readFile'](this[bo(0x1dd)],'/'+this['configPath']+'additionalfiles/'+m,!0x1);}async['removeAdditionalFile'](m){const bp=av;await this[bp(0x20a)]['deleteFile'](this[bp(0x1dd)],'/'+this['configPath']+'additionalfiles/'+m),this['additionalFilesChanged'][bp(0x236)]();}async['saveThumbnail'](m,n){const bq=av;try{await this['_saveBinaryToFile'](n,'/'+this[bq(0x290)]+'thumbnails/'+m+bq(0x1fd));}catch(o){console['warn']('Error\x20saving\x20thumbnail:',o);}}async[av(0x214)](m){const br=av;try{return await this['connection']['readFile'](this[br(0x1dd)],'/'+this[br(0x290)]+'thumbnails/'+m+'.png',!0x1);}catch{return null;}}async[av(0x2fe)](m){const bs=av;try{await this[bs(0x20a)]['deleteFile'](this[bs(0x1dd)],'/'+this['configPath']+'thumbnails/'+m+'.png');}catch(n){console['warn']('Error\x20removing\x20thumbnail:',n);}}#s=new Map();#a=new Map();['getLocalStateNames'](){const bu=av;return Array['from'](this.#s[bu(0x297)]());}async[av(0x1d1)](m,n){const bv=av;if(m['startsWith']('local_')){let p=this.#s['get'](m);p||(p=[],this.#s[bv(0x248)](m,p)),p[bv(0x1a8)](n);let r=this.#a['get'](m);r&&n(m,r);}else return this['connection'][bv(0x1d1)](m,n);}[av(0x38a)](m,n){const bw=av;if(m['startsWith'](bw(0x1db))){let p=this.#s[bw(0x31e)](m);if(p){let r=p['indexOf'](n);r>=0x0&&p['splice'](r,0x1);}}else this['connection']['unsubscribeState'](m,n);}[av(0x29a)](m,n){const bx=av;return this[bx(0x20a)][bx(0x29a)](m,n);}['unsubscribeObject'](m,n){const by=av;return this[by(0x20a)]['unsubscribeObject'](m,n);}['getObjectList'](m,n){return b['connection']['getObjectView'](n,null,m);}[av(0x202)](m){const bz=av;return this['connection'][bz(0x202)](m);}[av(0x23c)](m){const bA=av;return m['startsWith']('local_')?Promise['resolve'](this.#a['get'](m)):this[bA(0x20a)][bA(0x23c)](m);}['setState'](m,p,r){const bB=av;if(m['startsWith'](bB(0x1db))){typeof p!='object'&&(p={'val':p}),this.#a[bB(0x248)](m,p);let u=this.#s[bB(0x31e)](m);if(u){for(let v of u)v(m,p);}return Promise[bB(0x1d9)]();}else return this[bB(0x20a)]['setState'](m,p,r);}async[av(0x25b)](){const bC=av;try{return await this['_getObjectFromFile'](this[bC(0x290)]+'config.json');}catch{return null;}}async['saveConfig'](){const bD=av;if(this[bD(0x235)](this['config'],this['configPath']+'config.json'),this['globalStylesheet']=null,this[bD(0x365)]=null,this[bD(0x1cd)]['globalStyle']&&(this['globalStylesheet']=j(this[bD(0x1cd)][bD(0x1b3)])),this[bD(0x1cd)]['fontDeclarations']?(this['fontDeclarationsStylesheet']=j(this[bD(0x1cd)][bD(0x223)]),document['adoptedStyleSheets']=[this[bD(0x2f5)]]):(this[bD(0x2f5)]=null,document['adoptedStyleSheets']=[]),this['config']['globalScript']){let m=URL[bD(0x2b6)](new Blob([this['config'][bD(0x370)]],{'type':'application/javascript'}));this['globalScriptInstance']=await importShim(m),this[bD(0x365)][bD(0x31f)]&&this[bD(0x365)][bD(0x31f)]();}this['configChanged'][bD(0x236)]();}async['loadTranslations'](){const bE=av;try{this[bE(0x301)]=await this[bE(0x24f)](this['configPath']+'translations.json');}catch{this['translations']={};}}async['saveTranslations'](){const bF=av;await this['_saveObjectToFile'](this['translations'],this['configPath']+'translations.json'),this[bF(0x300)][bF(0x236)](this[bF(0x301)]);}[av(0x230)](m){const bG=av;this['language']=m,localStorage['setItem']('webui-language',m),this[bG(0x2b3)]['emit'](m),window['dispatchEvent'](new CustomEvent(bG(0x2b3),{'detail':m})),this.#a['get'](bG(0x1b7))?.[bG(0x2db)]!==m&&this['setState'](bG(0x1b7),{'val':m}),this[bG(0x34b)]&&fetch('/mywebui-grafana-lang',{'method':'POST','headers':{'Content-Type':'application/json'},'credentials':'include','body':JSON['stringify']({'lang':m})})['catch'](()=>{});}['t'](m){let n=this['language']||'en',p=m['split']('.'),r=u=>{const bH=c;let v=this[bH(0x301)]?.[u];for(let w of p)if(v=v?.[w],v===void 0x0)return;return typeof v=='string'?v:void 0x0;};return r(n)??(n!=='en'?r('en'):void 0x0)??((()=>{for(let u of Object['keys'](this['translations']??{})){let v=r(u);if(v!==void 0x0)return v;}return m;})());}async['_getObjectFromFile'](m,n=this[av(0x1dd)]){const bI=av;let p=await this['connection']['readFile'](n,m,!0x1),r;return p[bI(0x28f)]==bI(0x2cd)||p[bI(0x28f)]=='text/javascript'?JSON[bI(0x37d)](p['file']):(p[bI(0x28f)]=='application/octet-stream'&&p['file']instanceof ArrayBuffer?r=new Uint8Array(p['file']):r=Uint8Array[bI(0x2d7)](p[bI(0x2d1)]['data']),r[0x0]===0x1f&&r[0x1]===0x8b&&window[bI(0x1ae)]&&(r=await this[bI(0x215)](r)),JSON['parse'](new TextDecoder()[bI(0x1ce)](r)));}async[av(0x235)](m,p,r=this['namespaceFiles']){const bJ=av;let u=new TextEncoder()['encode'](JSON['stringify'](m));if(u[bJ(0x241)]>0x200*0x400&&window['CompressionStream']){let v=await this[bJ(0x2d9)](u);await this[bJ(0x20a)]['writeFile64'](r,p,v['buffer']);}else await this['connection'][bJ(0x2ae)](r,p,u);}async['_gzipBytes'](m){const bK=av;let p=new CompressionStream(bK(0x1ea)),u=p[bK(0x278)][bK(0x252)]();u['write'](m),u['close']();let v=p['readable']['getReader'](),w=[],x;for(;!(x=await v['read']())['done'];)w['push'](x[bK(0x1c4)]);let y=new Uint8Array(w['reduce']((C,T)=>C+T[bK(0x241)],0x0)),A=0x0;for(let C of w)y[bK(0x248)](C,A),A+=C['length'];return y;}async[av(0x215)](m){const bL=av;let p=new DecompressionStream(bL(0x1ea)),u=p[bL(0x278)]['getWriter']();u['write'](m),u[bL(0x306)]();let v=p['readable'][bL(0x207)](),w=[],x;for(;!(x=await v['read']())['done'];)w['push'](x[bL(0x1c4)]);let y=new Uint8Array(w[bL(0x32b)]((C,T)=>C+T['length'],0x0)),A=0x0;for(let C of w)y['set'](C,A),A+=C[bL(0x241)];return y;}async[av(0x307)](m,n){const bM=av;await this['connection'][bM(0x2ae)](this[bM(0x1dd)],n,await m[bM(0x2bd)]());}async[av(0x357)](m,n,p){const bN=av;try{this[bN(0x209)]?.['postMessage']({'command':m,'data':n,'clientId':p??this[bN(0x258)]??'*'});}catch{}try{let r=[this['connection'][bN(0x33e)](this['namespace']+'.control.data',{'val':n}),this[bN(0x20a)]['setState'](this[bN(0x1b9)]+'.control.clientIds',{'val':p??this[bN(0x258)]}),this[bN(0x20a)]['setState'](this[bN(0x1b9)]+bN(0x25d),{'val':this.#e})];await Promise['all'](r),await this[bN(0x20a)][bN(0x33e)](this[bN(0x1b9)]+'.control.command',{'val':m});}catch(u){console[bN(0x271)](bN(0x28b),u?.['message']||u);}}async[av(0x1d3)](m,o,p=''){const bO=av;if(p==''||p=='*'||p==this[bO(0x258)])switch(m){case bO(0x224):window[bO(0x26e)]['reload']();break;case'uiRefresh':this.#t[bO(0x31e)](bO(0x296))['clear'](),this.#t['get'](bO(0x1cf))[bO(0x35b)](),this[bO(0x366)]=null,this[bO(0x276)][bO(0x236)](o);break;case'uiChangeView':this[bO(0x287)]['emit'](o);break;case'uiOpenDialog':break;case'uiPlaySound':new Audio(o)['play']();break;case bO(0x1e4):break;case bO(0x35f):alert(o);break;case'uiSetLanguage':o&&this[bO(0x230)](o);break;case bO(0x318):let r=JSON[bO(0x37d)](o);this.#t['has'](r[bO(0x281)])&&this.#t[bO(0x31e)](r[bO(0x281)])['delete'](r['name']),r[bO(0x281)]==bO(0x1cf)&&r['name']&&K(r['name'],await b['getWebuiObject'](r[bO(0x281)],r['name'])),this[bO(0x256)]['emit'](r);break;}}[av(0x2b0)](m){const bP=av;let n={'role':m?.[bP(0x24b)]?.['role'],'type':m?.[bP(0x24b)]?.[bP(0x281)],'writeable':m?.['common']?.[bP(0x334)]};return(m?.['common']?.['role']==bP(0x211)||m?.['common']?.[bP(0x2b2)]===bP(0x2a8)||m?.[bP(0x24b)]?.[bP(0x2b2)]['includes'](bP(0x2e9))||m?.['common']?.['role']['includes'](bP(0x1a2)))&&(n['role']=bP(0x211)),m?.['common']?.['role']=='value.time'&&(n[bP(0x2b2)]='datetime'),n;}['getHistoricData'](m,n){const bQ=av;return this['connection'][bQ(0x1bd)](m,n);}#i=null;#o=[];async[av(0x1ec)](){const bR=av;if(!this.#i)try{let m=await this[bR(0x20a)]['getCurrentUser']();console[bR(0x337)](bR(0x38b),m);let p=[],u=bR(0x1fe)+m;try{let v=await new Promise((w,x)=>{const bS=bR;this['connection']['_socket'][bS(0x236)](bS(0x1eb),'system','group',{'startkey':'system.group.','endkey':'system.group.香'},(y,A)=>{y?x(y):w(A);});});if(console['log']('🔐\x20[Visibility]\x20All\x20groups\x20via\x20getObjectView:',v),v&&v['rows'])for(let w of v['rows']){let x=w['value'],y=w['id'][bR(0x2e1)]('system.group.','');x['common']?.[bR(0x200)]&&Array[bR(0x376)](x[bR(0x24b)]['members'])&&x['common'][bR(0x200)][bR(0x37e)](u)&&(p['push'](y),console[bR(0x337)](bR(0x38e)+y));}}catch(A){console['warn']('⚠️\x20[Visibility]\x20getObjectView\x20failed,\x20trying\x20direct\x20group\x20fetch:',A);let C=['administrator','user'];for(let T of C)try{let Y=await new Promise((a0,a1)=>{const bT=bR;this['connection']['_socket'][bT(0x236)](bT(0x202),'system.group.'+T,(a2,a3)=>{a2?a1(a2):a0(a3);});});Y&&Y[bR(0x24b)]?.['members']&&Array['isArray'](Y[bR(0x24b)]['members'])&&Y['common'][bR(0x200)][bR(0x37e)](u)&&(p['push'](T),console['log'](bR(0x38e)+T));}catch{}}p['length']===0x0&&(console[bR(0x271)](bR(0x384)),p['push']('administrator')),this.#i={'id':m,'groups':p},console['log'](bR(0x289),this.#i);}catch(a0){console['warn']('⚠️\x20[Visibility]\x20Failed\x20to\x20get\x20current\x20user:',a0),this.#i={'id':bR(0x233),'groups':[bR(0x1f6)]};}return this.#i;}async[av(0x29c)](){const bU=av;if(this.#o['length']===0x0)try{let m=[];try{console['log'](bU(0x375));let p=await new Promise((u,v)=>{const bV=bU;this['connection'][bV(0x36d)][bV(0x236)](bV(0x1eb),'system','group',{'startkey':'system.group.','endkey':'system.group.香'},(w,x)=>{w?v(w):u(x);});});if(console['log'](bU(0x21b),p),p&&p['rows'])for(let u of p[bU(0x27d)]){let v=u['id']['replace'](bU(0x1aa),''),w=u['value']?.['common']?.[bU(0x2c5)]||v;typeof w=='object'&&(w=w['en']||w['de']||w['ru']||Object[bU(0x30f)](w)[0x0]||v);let x=u['value']?.[bU(0x24b)]?.['desc']||'';typeof x=='object'&&(x=x['en']||x['de']||x['ru']||Object['values'](x)[0x0]||''),m['push']({'id':v,'name':w,'desc':x}),console['log'](bU(0x1e5),v,w);}}catch(y){console[bU(0x271)]('⚠️\x20[Visibility]\x20getObjectView\x20failed:',y);}m['length']===0x0&&(console['warn'](bU(0x28c)),m['push']({'id':'administrator','name':'Administrator','desc':bU(0x2c8)},{'id':bU(0x22d),'name':'User','desc':'User\x20group'})),this.#o=m,console['log'](bU(0x2ce),this.#o);}catch(A){console[bU(0x271)]('⚠️\x20[Visibility]\x20Failed\x20to\x20load\x20user\x20groups:',A),this.#o=[{'id':bU(0x1f6),'name':bU(0x1a0),'desc':bU(0x2c8)},{'id':bU(0x22d),'name':bU(0x345),'desc':bU(0x2bb)}];}return this.#o;}async[av(0x2e4)](m){const bW=av;if(!m||!m[bW(0x275)])return{'visible':!0x0,'enabled':!0x0};try{if(m[bW(0x21f)]&&m['groups'][bW(0x241)]>0x0){let p=this[bW(0x218)]||await this['connection'][bW(0x1ec)](),u=new Promise(x=>setTimeout(()=>x({'visible':!0x0,'enabled':!0x0}),0xfa0)),v=this['connection'][bW(0x27b)](this[bW(0x1b9)],'checkVisibility',{'username':p,'allowedGroups':m['groups'],'action':m['action']||'hide'}),w=await Promise['race']([v,u]);if(!w[bW(0x2cf)]||!w[bW(0x275)])return w;}if(m['objectId']&&m['condition']&&m['conditionValue']!==void 0x0&&m[bW(0x2bf)]!==''){let x=(await this[bW(0x20a)]['getState'](m[bW(0x35e)]))?.['val'],y=m['conditionValue'],A=!0x1;switch(m['condition']){case'==':A=x==y;break;case'!=':A=x!=y;break;case'>':A=parseFloat(x)>parseFloat(y);break;case'<':A=parseFloat(x)<parseFloat(y);break;case'>=':A=parseFloat(x)>=parseFloat(y);break;case'<=':A=parseFloat(x)<=parseFloat(y);break;}if(console['log'](bW(0x314),{'objectId':m['objectId'],'currentValue':x,'condition':m['condition'],'targetValue':y,'conditionMet':A}),A){let C=m[bW(0x20c)]||'hide';return console['log'](bW(0x1b5),C),{'visible':C!==bW(0x21c),'enabled':C!==bW(0x2ca)};}}return console[bW(0x337)]('✅\x20[Visibility]\x20All\x20checks\x20passed\x20→\x20Element\x20visible\x20and\x20enabled'),{'visible':!0x0,'enabled':!0x0};}catch(T){return console['error']('❌\x20[Visibility]\x20Check\x20failed:',T),{'visible':!0x0,'enabled':!0x0};}}},b=V['instance'];window[av(0x2e2)]=b;import{PropertiesHelper as k}from'@gokturk413/web-component-designer/dist/elements/services/propertiesService/services/PropertiesHelper.js';function a(){const d3=['getGlobalObject','toLowerCase','size','createProject','false','svgAttr','controls-all.dat','visibility','removeThumbnail','resume','translationsChanged','translations','globalStylesheet','shadowRoot','getProjects','getObjectNames','close','_saveBinaryToFile','svg','flatMap','project','width','arrow','createFolder','removeEventListener','values','widgetUrlBase','loadAllGlobalControls','getOwnPropertyDescriptor','get3DScreen','📊\x20[Visibility]\x20Datapoint\x20condition\x20check:','sin','getCustomControl','rect','objectChanged','red','pointerEvents','direction','3dscreens/','0.5','get','init','event','power2.out','shape','getSubFolders','conditionValue_bind','settings','drop-shadow(0\x200\x20','greater_equal','13bFlCVR','dispatchEvent','data-visibility-action','reduce','/tmp.fld','3441356iGqBMn','iobrokerPort','trim','transformOriginX','alignToPath','linear','true','write','webui-language','/data/','log','some','getImageNames','screens/','MotionPathPlugin.min.js','less_than','scanAndApply','setState','1984896fMZnrt','yoyo','ellipse','points','vars','fillColorTo','User','cos','7014846IhLHQV','ownerSVGElement','effect','closest','grafanaLangSyncEnabled','destroy','\x20L\x20','tween','grafanaEnabled','substring','condition','registerPlugin','element','replaceAll','filter','MorphSVGPlugin','sendCommand','getElementById','deleteFolder','\x200\x201,1\x20','clear','deleteFile','/widgets/package.json','objectId','uiAlert','adoptedStyleSheets','path','createElement','.projects','date','globalScriptInstance','_controlNames','data','getWebuiObject','\x20H\x20','addEventListener','_tempPathEl','_scheduleControlsAggregate','_socket','blur','error\x20loading\x20subfolders','globalScript','fadeOut',',0\x20L0,','test','object','🔍\x20[Visibility]\x20Fetching\x20groups\x20via\x20getObjectView...','isArray','pathFlow','headerTags','error','applyAllBindings','connectionInfo','dashLen','parse','includes','_pathFlowEls','MotionPathPlugin','onerror','[AnimationService]\x20data-animation\x20parse\x20error\x20on\x20element:','repeat','⚠️\x20[Visibility]\x20User\x20has\x20no\x20groups,\x20adding\x20administrator\x20as\x20default','play','top','exists','.control.command','equal','unsubscribeState','🔐\x20[Visibility]\x20Current\x20user\x20name:','forEach','createContextualFragment','✅\x20[Visibility]\x20User\x20is\x20member\x20of\x20group:\x20','backgroundColor','_rootDocumentFragment','Administrator','getAllNames','image','additionalfiles/','greater_than','mywebui-commands','connectedCallback','px\x20','push','_setupDynamicProperties','system.group.','createRange','applyVisibility','properties','DecompressionStream','bindToSize','define','onload','115658ojQHhD','globalStyle','#ff0000','✅\x20[Visibility]\x20Datapoint\x20condition\x20met\x20→\x20Action:','then','local_language','reload','namespace','webui-current-project','number','hasAttribute','getHistoryEx','star','loadAllControlsFast','camelToDashCase','_writeGlobalAggregate','\x20controls)','has','value','_cleanProjectName','display','MorphSVGPlugin.min.js','transform','innerHTML','template','condition_bind','slideInBottom','config','decode','control','none','subscribeState','drop-shadow(0\x200\x200px\x20rgba(0,0,0,0))','handleCommand','searchParams','-changed','pulseRing','reverse','create','resolve','Error\x20reading\x203D\x20Screen','local_','waitForFirstConnection','namespaceFiles','_assignEvent','hover','fill','click','controls/','.control','uiRunScript','✅\x20[Visibility]\x20Found\x20group:','_writeControlsAggregate','visibilityRedirectScreen','splice','all','gzip','getObjectView','getCurrentUser','internal','defineProperty','oid','endsWith','stop',',0\x200,','cleanup','transformOriginZ','loadAllCustomControls','administrator','removeImage','delete','duration','6088600UvFlpE','images/','_bindingsParse','.png','system.user.','string','members','getIconAdapterFoldernames','getObject','loadTranslations','3dcontrol','constructor','gsap.min.js','getReader','valueFrom','_broadcastChannel','connection','height','action','delay','default','application/javascript','path,line,polyline,polygon,rect,circle,ellipse','url','remove','pathname','getThumbnail','_gunzipBytes','cloneNode','#000000','userName','useGlobalStyle','fillColorFrom','🔍\x20[Visibility]\x20getObjectView\x20result:','hide','adapterName','_readyPromises','groups','getBindings','circle','addedNodes','fontDeclarations','uiReload','toString','cfg','getCustomControlNames','15097400zyzjjd','stroke-dasharray','yellow','createImportmap','getPrototypeOf','user','../../vendor/gsap/','object:','setLanguage','visibilityAction','[data-effects]','admin','connectionState','_saveObjectToFile','emit','controls','querySelectorAll','webui-','instance','catch','getState','delegate','namespaceGlobal','slice','setAttribute','length','getAttribute','transformOriginY','getScreen','getRootNode','shake','_getRelativeSignalsPath','set','_scheduleGlobalAggregate','blur(0px)','common','imagePrefix','glow','translateY','_getObjectFromFile','invalid\x20project\x20name\x20(use\x20a-z,\x200-9,\x20-,\x20_):\x20','_parseAttributesToProperties','getWriter','path,\x20circle,\x20ellipse,\x20rect,\x20polyline,\x20polygon','[data-animation]','2930400HJzgeZ','objectsChanged','host','clientId','ease','data-effects','_getConfig','join','.control.project','#0066ff','_bindingsRefresh','readDir','disconnectedCallback','.3dscreen','visibility:hidden;pointer-events:none;','globalPath','cssText','removeFolder','http://www.w3.org/2000/svg','less_equal','createElementNS','style','[Visibility]\x20Group\x20check\x20error:','3dscreen','blur(','location','fromTo','appShell','warn','getGlobalSubFolders','tagName','mouseenter','enabled','refreshView','glowColor','writable','globalConfig','language','sendTo','_bind','rows','getAllGlobalNames','polygon','querySelector','type','\x20A\x20','count','waitForReady','translateX','slideInTop','changeView','_destroyPathFlowEls','🔐\x20[Visibility]\x20Final\x20user\x20object:','strokeDasharray','sendCommand\x20skipped\x20(no\x20write\x20permission\x20on\x20control\x20states):','⚠️\x20[Visibility]\x20No\x20groups\x20found,\x20using\x20defaults','href','renameGlobalObject','mimeType','configPath','get3DControl','unshift','body','innerSubs','triangle','screen','keys','IobrokerWebuiCustomControl','valueTo','subscribeObject','head','getUserGroups','.control.data','native','ready','50%\x2050%','flowDash','bindingsHelper','rotation','startsWith','_play','startAt','customShapeD','text.url','background','removeVisibility','.screen','isDir','error\x20deleting\x20project\x20folder','writeFile64','mywebui','getSignalInformation','disconnect','role','languageChanged','opacityFrom','invalid\x20','createObjectURL','data-visibility-groups','saveImage','images','applyGroupVisibility','User\x20group','system.adapter.mywebui.0','arrayBuffer','orientToPath','conditionValue','stroke','ack','getBoundingClientRect','cancel','src','name','map','pathId','Administrator\x20group','trigger','disable','scale','dispose','application/json','👥\x20[Visibility]\x20User\x20groups\x20loaded:','visible','color','file','dynamic-property-defs','killTweensOf','\x20loaded','visibilityEnabled','removeObject','from','removeGlobalFolder','_gzipBytes','signal','val','createGlobalFolder','BaseCustomControl','currentProject','bounce','_subs','replace','IOB','opacity','checkVisibility','boolean','skewX','gsap','spin','icon','gapLen','appendChild','getAdditionalFileNames','\x200,','s-all.dat','timeline','square','prototype','saveAdditionalFile','removedNodes','setItem','fontDeclarationsStylesheet'];a=function(){return d3;};return a();}var B=class i{static [av(0x23a)]=new i();#e=new WeakMap();#t(m,n){const bX=av;if(!n['visible'])m['style']['display']=bX(0x1d0),m[bX(0x26a)]['visibility']='hidden';else{let o=this.#e['get'](m)||'';m['style']['display']=o,m[bX(0x26a)][bX(0x2fd)]='';}n['enabled']?(m['style'][bX(0x31a)]='',m[bX(0x26a)][bX(0x2e3)]=''):(m[bX(0x26a)][bX(0x31a)]='none',m['style']['opacity']=bX(0x31d));}async[av(0x2ba)](m,n,p){const bY=av;if(!n||n[bY(0x241)]===0x0)return;this.#e[bY(0x1c3)](m)||this.#e['set'](m,m[bY(0x26a)]['display']||'');let r=await b['checkVisibility']({'enabled':!0x0,'groups':n,'action':p||bY(0x21c)});(!r['visible']||!r[bY(0x275)])&&this.#t(m,r);}[av(0x2aa)](m){const bZ=av;let n=this.#e[bZ(0x31e)](m);n!==void 0x0&&(m[bZ(0x26a)][bZ(0x1c6)]=n,this.#e[bZ(0x1f8)](m)),m[bZ(0x26a)][bZ(0x2fd)]='',m[bZ(0x26a)][bZ(0x31a)]='',m['style']['opacity']='';}async[av(0x33d)](m=document[av(0x293)]){const c0=av;let p=m['querySelectorAll']('[data-visibility-groups]');for(let r of p)try{let u=r[c0(0x242)](c0(0x2b7))?.['split'](',')['filter'](w=>w)||[],v=r[c0(0x242)](c0(0x32a))||'hide';await this[c0(0x2ba)](r,u,v);}catch(w){console['error'](c0(0x26b),w);}}},E=B['instance'],R=null;function at(m,n){const c2=av;function p(u){const c1=c;let v=u['getElementById']?u[c1(0x358)](n):u['querySelector']('#'+n);if(v)return v;for(let w of u[c1(0x238)]('*'))if(w[c1(0x303)]){let x=p(w['shadowRoot']);if(x)return x;}return null;}let r=m['getRootNode']();for(;r instanceof ShadowRoot;){let u=p(r);if(u)return u;r=r['host'][c2(0x245)]();}return p(document['body'])??document['getElementById'](n);}var D=new URL(av(0x22e),import.meta.url)[av(0x28d)];function rt(m){const c3=av;let p=m[c3(0x273)]['toLowerCase']();if(p===c3(0x221)){let r=parseFloat(m['getAttribute']('cx')||0x0),u=parseFloat(m['getAttribute']('cy')||0x0),v=parseFloat(m[c3(0x242)]('r')||0x0);return'M\x20'+(r-v)+','+u+'\x20A\x20'+v+','+v+c3(0x35a)+(r+v)+','+u+c3(0x282)+v+','+v+c3(0x35a)+(r-v)+','+u+'\x20Z';}if(p===c3(0x341)){let w=parseFloat(m['getAttribute']('cx')||0x0),x=parseFloat(m['getAttribute']('cy')||0x0),y=parseFloat(m[c3(0x242)]('rx')||0x0),A=parseFloat(m[c3(0x242)]('ry')||0x0);return'M\x20'+(w-y)+','+x+'\x20A\x20'+y+','+A+c3(0x35a)+(w+y)+','+x+'\x20A\x20'+y+','+A+c3(0x35a)+(w-y)+','+x+'\x20Z';}if(p==='rect'){let C=parseFloat(m[c3(0x242)]('x')||0x0),T=parseFloat(m[c3(0x242)]('y')||0x0),Y=parseFloat(m['getAttribute']('width')||0x0),a0=parseFloat(m['getAttribute'](c3(0x20b))||0x0);return'M\x20'+C+','+T+'\x20H\x20'+(C+Y)+'\x20V\x20'+(T+a0)+c3(0x369)+C+'\x20Z';}if(p==='line'){let a1=m['getAttribute']('x1')||0x0,a2=m[c3(0x242)]('y1')||0x0,a3=m['getAttribute']('x2')||0x0,a4=m[c3(0x242)]('y2')||0x0;return'M\x20'+a1+','+a2+c3(0x34d)+a3+','+a4;}if(p==='polyline'||p===c3(0x27f)){let a5=(m[c3(0x242)]('points')||'')['trim']()['split'](/[\s,]+/);if(a5['length']<0x2)return null;let a6='M\x20'+a5[0x0]+','+a5[0x1];for(let a7=0x2;a7+0x1<a5['length'];a7+=0x2)a6+='\x20L\x20'+a5[a7]+','+a5[a7+0x1];return p==='polygon'&&(a6+='\x20Z'),a6;}return null;}function W(m){const c4=av;if(m['tagName']['toLowerCase']()==='path')return{'pathEl':m,'tempEl':null};let n=rt(m);if(!n)return{'pathEl':m,'tempEl':null};let o=m[c4(0x34a)](c4(0x308))??m['parentElement'],p=document[c4(0x269)]('http://www.w3.org/2000/svg','path');return p[c4(0x240)]('d',n),p[c4(0x240)]('fill',c4(0x1d0)),p[c4(0x26a)][c4(0x265)]=c4(0x263),o['appendChild'](p),{'pathEl':p,'tempEl':p};}async function z(){const c5=av;return window[c5(0x2e7)]?window[c5(0x2e7)]:R||(R=new Promise(m=>{const c7=c5;let n=p=>new Promise((u,v)=>{const c6=c;let w=document[c6(0x362)]('script');w[c6(0x2c4)]=p,w[c6(0x1b1)]=u,w[c6(0x381)]=v,document['head'][c6(0x2eb)](w);}),o=window[c7(0x1b0)];window[c7(0x1b0)]=void 0x0,n(D+c7(0x206))[c7(0x1b6)](()=>n(D+c7(0x33b)))[c7(0x1b6)](()=>n(D+c7(0x1c7)))['then'](()=>{const c8=c7;window[c8(0x1b0)]=o,window[c8(0x380)]&&window['gsap']['registerPlugin'](window[c8(0x380)]),window['MorphSVGPlugin']&&window['gsap'][c8(0x352)](window[c8(0x356)]),m(window['gsap']);})[c7(0x23b)](()=>{const c9=c7;window[c9(0x1b0)]=o,console[c9(0x271)]('[AnimationService]\x20Failed\x20to\x20load\x20GSAP\x20from\x20local\x20path:',D),m(window[c9(0x2e7)]||null);});}),R);}function U(m){const ca=av;if(typeof m==ca(0x2e5))return m;if(typeof m==ca(0x1bb))return m!==0x0;if(typeof m=='string'){let n=m[ca(0x2f7)]();if(n===ca(0x333)||n==='1')return!0x0;if(n===ca(0x2fa)||n==='0')return!0x1;}return m;}function Q(m,p,u){const cb=av;if(!p||p===cb(0x387))return!0x0;let v=parseFloat(m),w=parseFloat(u);if(!isNaN(v)&&!isNaN(w))switch(p){case cb(0x389):return v===w;case'not_equal':return v!==w;case cb(0x33c):return v<w;case cb(0x268):return v<=w;case cb(0x1a4):return v>w;case cb(0x327):return v>=w;}let x=U(m),y=U(u);return typeof x==cb(0x2e5)&&typeof y==cb(0x2e5)?p==='equal'?x===y:x!==y:p===cb(0x389)?String(m)===String(u):String(m)!==String(u);}function lt(m,p){const cc=av;let u=parseFloat(m['duration'])||0x1,v=m[cc(0x259)]||'power1.inOut',w=m[cc(0x349)]||cc(0x2e3),x=U(p),y=typeof x=='boolean'?x?0x1:0x0:parseFloat(p)||0x0,A={'duration':u,'ease':v===cc(0x1d0)?cc(0x1d0):v,'paused':!0x0,'repeat':parseInt(m['repeat'])||0x0,'yoyo':m[cc(0x340)]===!0x0||m[cc(0x340)]===cc(0x333)};switch(w){case cc(0x2a3):A['rotation']=m[cc(0x299)]!=null?parseFloat(m[cc(0x299)]):y,m['valueFrom']!=null&&(A['startAt']={'rotation':parseFloat(m['valueFrom'])}),A['transformOrigin']=(m[cc(0x330)]||'50')+'%\x20'+(m['transformOriginY']||'50')+'%\x20'+(m[cc(0x1f4)]||'0');break;case cc(0x2cb):A['scale']=m[cc(0x299)]!=null?parseFloat(m['valueTo']):typeof x=='boolean'?x?1.5:0x1:y,m['valueFrom']!=null&&(A['startAt']={'scale':parseFloat(m['valueFrom'])});break;case cc(0x2e3):A[cc(0x2e3)]=m['valueTo']!=null?parseFloat(m['valueTo']):typeof x=='boolean'?x?0x1:0x0:y,m['valueFrom']!=null&&(A[cc(0x2a6)]={'opacity':parseFloat(m[cc(0x208)])});break;case cc(0x285):A['x']=m[cc(0x299)]!=null?parseFloat(m['valueTo']):typeof x=='boolean'?x?0x64:0x0:y,m['valueFrom']!=null&&(A[cc(0x2a6)]={'x':parseFloat(m[cc(0x208)])});break;case cc(0x24e):A['y']=m[cc(0x299)]!=null?parseFloat(m[cc(0x299)]):typeof x=='boolean'?x?0x64:0x0:y,m[cc(0x208)]!=null&&(A['startAt']={'y':parseFloat(m[cc(0x208)])});break;case'translate':{let C=(Y,a0)=>{if(Y==null)return{'x':a0,'y':0x0};let a1=String(Y)['split'](',');return{'x':parseFloat(a1[0x0])||0x0,'y':a1['length']>0x1&&parseFloat(a1[0x1])||0x0};},T=C(m['valueTo'],typeof x=='boolean'?x?0x64:0x0:y);if(A['x']=T['x'],A['y']=T['y'],m['valueFrom']!=null){let Y=C(m['valueFrom'],0x0);A[cc(0x2a6)]={'x':Y['x'],'y':Y['y']};}break;}case'left':A['left']=m[cc(0x299)]!=null?m[cc(0x299)]:typeof x==cc(0x2e5)?x?'100px':'0px':y+'px',m[cc(0x208)]!=null&&(A['startAt']={'left':isNaN(m[cc(0x208)])?m['valueFrom']:m['valueFrom']+'px'});break;case'top':A[cc(0x386)]=m[cc(0x299)]!=null?m['valueTo']:typeof x==cc(0x2e5)?x?'100px':'0px':y+'px',m[cc(0x208)]!=null&&(A[cc(0x2a6)]={'top':isNaN(m['valueFrom'])?m[cc(0x208)]:m[cc(0x208)]+'px'});break;case'skew':{let a0=m['valueTo']!=null?parseFloat(m['valueTo']):typeof x=='boolean'?x?0x2d:0x0:y;A[cc(0x2e6)]=a0,A['skewY']=a0;break;}case cc(0x1e0):A[cc(0x1e0)]=m[cc(0x344)]||'#ff0000',m[cc(0x21a)]&&(A['startAt']={'fill':m['fillColorFrom']});break;case'color':A['color']=m['fillColorTo']||cc(0x1b4),m[cc(0x21a)]&&(A[cc(0x2a6)]={'color':m[cc(0x21a)]});break;case cc(0x38f):A[cc(0x38f)]=m['fillColorTo']||'#ff0000',m['fillColorFrom']&&(A['startAt']={'backgroundColor':m['fillColorFrom']});break;case'transform':A[cc(0x1c8)]=m['valueTo']||String(p),m['valueFrom']&&(A['startAt']={'transform':m[cc(0x208)]});break;case cc(0x308):if(m[cc(0x2fb)]){let a1=m['svgAttr'];a1==='fill'||a1==='color'?A[a1]=typeof x=='boolean'?x?m['fillColorTo']||'#ff0000':m['fillColorFrom']||cc(0x217):m['fillColorTo']||'#ff0000':a1===cc(0x229)?A[a1]=m['valueTo']||'10':A[a1]=m['valueTo']!=null?parseFloat(m['valueTo']):y;}break;default:A['opacity']=m['valueTo']!=null?parseFloat(m[cc(0x299)]):typeof x==cc(0x2e5)?x?0x1:0x0:y;}return A;}function O(m){const cd=av;for(let n of m)try{n[cd(0x281)]===cd(0x320)?n['target'][cd(0x30e)](n['event'],n['handler']):n['type']==='state'?b['connection']['unsubscribeState'](n[cd(0x1ef)],n['handler']):n['type']==='delegate'&&O(n[cd(0x294)]);}catch{}m[cd(0x241)]=0x0;}async function ct(m,p,u,v){const cg=av;let x=[],y=/\{([^}]+)\}/g,A;for(;(A=y['exec'](m))!==null;)x['push'](A[0x1]);if(x['length']===0x0)return;let C={};for(let a0 of x)C[a0]=null;let T=[],Y=async()=>{const ce=c;if(Object[ce(0x30f)](C)[ce(0x338)](a2=>a2==null))return;let a1=m;for(let [a2,a3]of Object['entries'](C))a1=a1['replace']('{'+a2+'}',a3);O(T),await S(a1,p,u,T);};for(let a1 of x){let a2=async(a3,a4)=>{const cf=c;a4?.[cf(0x2db)]!=null&&(C[a1]=String(a4['val']),await Y());};try{b['connection']['subscribeState'](a1,a2),v['push']({'type':'state','oid':a1,'handler':a2});}catch{}try{let a3=await b['connection']['getState'](a1);a3?.['val']!=null&&(C[a1]=String(a3[cg(0x2db)]));}catch{}}await Y(),v[cg(0x1a8)]({'type':cg(0x23d),'innerSubs':T});}async function S(m,p,u,v){const ch=av;if(!m)return;if(m[ch(0x37e)]('{')&&m[ch(0x37e)]('}')){await ct(m,p,u,v);return;}let w=()=>{const ci=ch;let x=p[ci(0x245)]();return x&&x!==document?x[ci(0x257)]??null:null;};if(m['startsWith']('??')){let x=m['slice'](0x2),y=w();if(!y)return;let A=()=>{const cj=ch;let T=y[x]??y[cj(0x242)]?.(x);T!=null&&u(T);};A();let C=()=>A();y[ch(0x36a)](x+ch(0x1d5),C),v[ch(0x1a8)]({'type':'event','target':y,'event':x+'-changed','handler':C});}else{if(m[ch(0x2a4)]('?')){let T=m[ch(0x23f)](0x1),Y=w();if(!Y)return;let a0=[],a1=async()=>{const ck=ch;O(a0);let a3=Y[T]??Y[ck(0x242)]?.(T);a3&&await S(a3,p,u,a0);};await a1();let a2=()=>a1();Y[ch(0x36a)](T+'-changed',a2),v[ch(0x1a8)]({'type':ch(0x320),'target':Y,'event':T+ch(0x1d5),'handler':a2}),v['push']({'type':'delegate','innerSubs':a0});}else{if(m[ch(0x2a4)]('state:')){let a3=m[ch(0x23f)](0x6),a4=(a5,a6)=>{a6?.['val']!=null&&u(a6['val']);};try{b['connection']['subscribeState'](a3,a4),v['push']({'type':'state','oid':a3,'handler':a4});}catch{}try{let a5=await b['connection']['getState'](a3);a5?.['val']!=null&&u(a5['val']);}catch{}}else{if(!m[ch(0x2a4)](ch(0x22f))){let a6=m;a6[ch(0x2a4)]('.')&&(a6=(w()?.[ch(0x247)]?.()??'')+a6[ch(0x23f)](0x1));let a7=(a8,a9)=>{const cl=ch;a9?.['val']!=null&&u(a9[cl(0x2db)]);};try{a6[ch(0x2a4)](ch(0x1db))?b[ch(0x1d1)](a6,a7):b[ch(0x20a)]['subscribeState'](a6,a7),v[ch(0x1a8)]({'type':'state','oid':a6,'handler':a7});}catch{}try{let a8;a6['startsWith'](ch(0x1db))?a8=await b[ch(0x23c)](a6):a8=await b['connection'][ch(0x23c)](a6),a8?.['val']!=null&&u(a8[ch(0x2db)]);}catch{}}}}}}var q=class{constructor(m,n){const cm=av;this[cm(0x353)]=m,this[cm(0x226)]=n,this[cm(0x34e)]=null,this[cm(0x2e0)]=[];}async[av(0x31f)](){const cn=av;if(await z(),!window['gsap'])return;let m=this[cn(0x226)]['controls']||{},p=async(w,x)=>{const co=cn;let y=m[w];if(!y)return;y[co(0x1cb)]?.[co(0x2da)]&&await S(y['condition_bind'][co(0x2da)],this[co(0x353)],C=>{const cp=co;y[cp(0x351)]=String(C);},this[co(0x2e0)]),y['value_bind']?.[co(0x2da)]&&await S(y['value_bind']['signal'],this['element'],C=>{y['value']=String(C);},this['_subs']);let A=y['oid_bind']?.['signal']||y[co(0x1ef)];A&&await S(A,this['element'],C=>{const cq=co;Q(C,y['condition']||cq(0x389),y[cq(0x1c4)]??cq(0x333))&&x();},this['_subs']);};await p(cn(0x385),()=>this['_play']()),await p('pause',()=>this['tween']?.['pause']()),await p(cn(0x2ff),()=>this['tween']?.['play']()),await p(cn(0x1f1),()=>this['tween']?.['pause'](0x0)),await p('reverse',()=>this['tween']?.[cn(0x1d7)]());let u=[cn(0x349),cn(0x208),'valueTo',cn(0x1f9),'ease','repeat','yoyo',cn(0x21a),'fillColorTo','transformOriginX',cn(0x243),'svgAttr',cn(0x2c7),cn(0x331),cn(0x2be),'dashLen','gapLen',cn(0x2d0),'direction',cn(0x283),cn(0x2f8),'shape',cn(0x2a7)],v=null;for(let w of u){let x=this['cfg'][w+cn(0x27c)];if(!x?.['signal'])continue;let y=w;await S(x['signal'],this[cn(0x353)],A=>{const cr=cn;if(this['cfg'][y]=A,!!this[cr(0x34e)]){if(y==='duration'&&this['tween']['vars']){let C=parseFloat(this['tween'][cr(0x343)]['duration'])||0x1,T=parseFloat(A)||0x1;this[cr(0x34e)]['timeScale'](C/T);return;}clearTimeout(v),v=setTimeout(()=>{const cs=cr;this[cs(0x34e)]&&!this[cs(0x34e)]['paused']()&&this['_play']();},0x3c);}},this['_subs']);}}[av(0x2a5)](){const cu=av;let x=window['gsap'];if(!x)return;this['element'][cu(0x26a)]['display']==='none'&&(this[cu(0x353)]['style'][cu(0x1c6)]=''),this['tween']&&this['tween']['kill']();let A=this['cfg'][cu(0x349)];if(A==='motionPath'&&this[cu(0x226)][cu(0x2c7)]){let T=at(this['element'],this['cfg']['pathId']);if(!T){console['warn']('[AnimationService]\x20motionPath:\x20path\x20element\x20not\x20found:',this[cu(0x226)]['pathId']);return;}T['tagName']['toLowerCase']()==='svg'&&(T=T['querySelector'](cu(0x253))??T),this[cu(0x36b)]&&(this[cu(0x36b)]['remove'](),this['_tempPathEl']=null);let {pathEl:Y,tempEl:a0}=W(T);this[cu(0x36b)]=a0,this[cu(0x34e)]=x['to'](this[cu(0x353)],{'duration':parseFloat(this[cu(0x226)]['duration'])||0x1,'ease':this[cu(0x226)][cu(0x259)]||'none','repeat':parseInt(this[cu(0x226)][cu(0x383)])||0x0,'yoyo':this[cu(0x226)][cu(0x340)]===!0x0,'paused':!0x0,'motionPath':{'path':Y,'align':this['cfg']['alignToPath']?Y:!0x1,'autoRotate':this[cu(0x226)][cu(0x2be)]===!0x0,'alignOrigin':[0.5,0.5],'start':this['cfg'][cu(0x208)]?parseFloat(this['cfg']['valueFrom'])/0x64:0x0,'end':this['cfg']['valueTo']?parseFloat(this[cu(0x226)]['valueTo'])/0x64:0x1}});}else{if(A==='morphSVG'&&this[cu(0x226)][cu(0x299)])this[cu(0x34e)]=x['to'](this['element'],{'duration':parseFloat(this['cfg'][cu(0x1f9)])||0x1,'ease':this['cfg'][cu(0x259)]||cu(0x1d0),'repeat':parseInt(this[cu(0x226)]['repeat'])||0x0,'yoyo':this[cu(0x226)]['yoyo']===!0x0,'paused':!0x0,'morphSVG':this[cu(0x226)]['valueTo']});else{if(A==='flowDash'){this[cu(0x288)](x);let a1=parseFloat(this[cu(0x226)]['dashLen'])||0xa,a2=parseFloat(this[cu(0x226)][cu(0x2ea)])||0x14,a3=this[cu(0x226)]['color']||null,a4=this['cfg']['direction']===cu(0x1d7),a5=this[cu(0x353)][cu(0x273)][cu(0x2f7)]()==='svg'?this['element'][cu(0x280)]('path,line,polyline,polygon,rect,circle,ellipse')||this[cu(0x353)]:this['element'];a5['style'][cu(0x28a)]=a1+'\x20'+a2,a3&&(a5[cu(0x26a)][cu(0x2c0)]=a3);let a6=a4?0x0:a1+a2,a7=a4?a1+a2:0x0;this['tween']=x['fromTo'](a5,{'attr':{'stroke-dashoffset':a6}},{'attr':{'stroke-dashoffset':a7},'duration':parseFloat(this['cfg']['duration'])||0x1,'ease':'none','repeat':-0x1,'paused':!0x0});}else{if(A===cu(0x377)){this[cu(0x288)](x),this[cu(0x37f)]=[];let a8=parseInt(this[cu(0x226)]['count'])||0x5,a9=this['cfg'][cu(0x322)]||cu(0x295),aa=this['cfg'][cu(0x2d0)]||cu(0x25e),ab=parseFloat(this['cfg']['size'])||0x8,ac=this['cfg'][cu(0x31b)]===cu(0x1d7),ad=this[cu(0x226)]['customShapeD']||'',ae=parseFloat(this['cfg']['duration'])||0x2,af=this[cu(0x353)]['tagName'][cu(0x2f7)]()==='svg'?this['element']['querySelector'](cu(0x210))||this['element']:this[cu(0x353)],ag=af[cu(0x348)]||af['closest'](cu(0x308))||this[cu(0x353)];if(!ag)return;this['_tempPathEl']&&(this['_tempPathEl']['remove'](),this['_tempPathEl']=null);let {pathEl:ah,tempEl:ai}=W(af);this[cu(0x36b)]=ai;let aj=cu(0x267),ak=()=>{const cv=cu;let am;switch(a9){case'triangle':am=document['createElementNS'](aj,'polygon'),am['setAttribute'](cv(0x342),ab+',0\x200,'+-ab/0x2+'\x200,'+ab/0x2);break;case cv(0x30c):am=document['createElementNS'](aj,'path'),am[cv(0x240)]('d','M'+ab+',0\x20L0,'+-ab/0x2+'\x20L'+ab*0.35+cv(0x372)+ab/0x2+'\x20Z');break;case'circle':am=document['createElementNS'](aj,'circle'),am['setAttribute']('r',String(ab/0x2));break;case cv(0x2f0):am=document[cv(0x269)](aj,'rect'),am[cv(0x240)](cv(0x30b),String(ab)),am['setAttribute'](cv(0x20b),String(ab)),am['setAttribute']('x',String(-ab/0x2)),am[cv(0x240)]('y',String(-ab/0x2));break;case'star':{am=document[cv(0x269)](aj,'polygon');let an=[];for(let ao=0x0;ao<0xa;ao++){let ap=ao%0x2===0x0?ab:ab*0.4,aq=ao*Math['PI']/0x5-Math['PI']/0x2;an['push'](ap*Math[cv(0x346)](aq)+','+ap*Math[cv(0x315)](aq));}am[cv(0x240)]('points',an[cv(0x25c)]('\x20'));break;}case'custom':am=document['createElementNS'](aj,cv(0x361)),am[cv(0x240)]('d',ad||'M'+ab+cv(0x372)+-ab/0x2+cv(0x2ed)+ab/0x2+'\x20Z');break;default:am=document['createElementNS'](aj,cv(0x317)),am['setAttribute']('width',String(ab*0x2)),am['setAttribute'](cv(0x20b),String(ab/0x3)),am['setAttribute']('x',String(-ab)),am['setAttribute']('y',String(-ab/0x6));}return am['setAttribute']('fill',aa),ag['appendChild'](am),this['_pathFlowEls']['push'](am),am;},al=x[cu(0x2ef)]({'repeat':-0x1,'paused':!0x0});for(let am=0x0;am<a8;am++){let an=ak(),ao=ac?0x1-am/a8:am/a8,ap=ac?-(am/a8):am/a8+0x1;al['to'](an,{'motionPath':{'path':ah,'align':ah,'autoRotate':!0x0,'alignOrigin':[0.5,0.5],'start':ao,'end':ap},'duration':ae,'ease':cu(0x1d0)},0x0);}this[cu(0x34e)]=al;}else{let aq=lt(this['cfg'],!0x0);this['tween']=x['to'](this[cu(0x353)],aq);}}}}this[cu(0x34e)]&&this['tween']['play']();}[av(0x288)](m){const cw=av;if(this['_pathFlowEls']){for(let n of this[cw(0x37f)])m&&m['killTweensOf'](n),n[cw(0x212)]();this[cw(0x37f)]=null;}}[av(0x34c)](){const cx=av;let m=window[cx(0x2e7)];this[cx(0x34e)]&&(this[cx(0x34e)]['kill'](),this[cx(0x34e)]=null),this[cx(0x36b)]&&(this['_tempPathEl'][cx(0x212)](),this['_tempPathEl']=null),this[cx(0x288)](m),O(this[cx(0x2e0)]);}},$=new WeakMap(),L=new WeakMap();async function H(m){const cy=av;await z();let p=(m||document)[cy(0x238)](cy(0x254));for(let u of p)try{let v=JSON[cy(0x37d)](u[cy(0x242)]('data-animation')),w=Array[cy(0x376)](v)?v:[v],x=$['get'](u)||[];for(let A of x)A['destroy']();let y=[];for(let C of w){if(!C||typeof C!='object')continue;let T=new q(u,C);await T['init'](),y['push'](T);}$[cy(0x248)](u,y);}catch(Y){console[cy(0x271)](cy(0x382),u,Y);}}function tt(m){const cz=av;let n=(m||document)[cz(0x238)](cz(0x254));for(let p of n){let r=$['get'](p)||[];for(let u of r)u[cz(0x34c)]();$['delete'](p);}}async function J(m){const cA=av;await z();let p=(m||document)['querySelectorAll'](cA(0x232));for(let u of p)try{let v=JSON['parse'](u[cA(0x242)](cA(0x25a))),w=Array['isArray'](v)?v:[v],x=L['get'](u)||[];for(let A of x)A?.['cleanup']&&A[cA(0x1f3)]();let y=[];for(let C of w){if(!C||typeof C!='object')continue;let T=await ht(u,C);y['push']({'cleanup':T});}L['set'](u,y);}catch(Y){console['warn']('[AnimationService]\x20data-effects\x20parse\x20error\x20on\x20element:',u,Y);}}function et(m){const cB=av;let n=(m||document)[cB(0x238)](cB(0x232));for(let p of n){let r=L['get'](p)||[];for(let u of r)u?.[cB(0x1f3)]&&u[cB(0x1f3)]();L['delete'](p);}}async function ht(m,p){const cC=av;let u=window['gsap'];if(!u)return null;let v=parseFloat(p['duration'])||0.5,x=parseFloat(p[cC(0x20d)])||0x0,y=p['ease']||cC(0x321),A=parseInt(p['repeat'])||0x0,C=()=>{const cD=cC;switch(p['type']){case'fadeIn':u['fromTo'](m,{'opacity':0x0},{'opacity':0x1,'duration':v,'ease':y,'delay':x});break;case cD(0x371):u['to'](m,{'opacity':0x0,'duration':v,'ease':y,'delay':x});break;case'slideInLeft':u['fromTo'](m,{'x':-0x64,'opacity':0x0},{'x':0x0,'opacity':0x1,'duration':v,'ease':y,'delay':x});break;case'slideInRight':u['fromTo'](m,{'x':0x64,'opacity':0x0},{'x':0x0,'opacity':0x1,'duration':v,'ease':y,'delay':x});break;case cD(0x286):u[cD(0x26f)](m,{'y':-0x64,'opacity':0x0},{'y':0x0,'opacity':0x1,'duration':v,'ease':y,'delay':x});break;case cD(0x1cc):u[cD(0x26f)](m,{'y':0x64,'opacity':0x0},{'y':0x0,'opacity':0x1,'duration':v,'ease':y,'delay':x});break;case cD(0x2df):u[cD(0x26f)](m,{'y':0x0},{'y':-0x14,'duration':v/0x2,'ease':cD(0x321),'yoyo':!0x0,'repeat':A||0x3,'delay':x});break;case'pulse':u[cD(0x26f)](m,{'scale':0x1},{'scale':1.1,'duration':v/0x2,'ease':'power2.inOut','yoyo':!0x0,'repeat':A||0x3,'delay':x});break;case cD(0x246):u[cD(0x26f)](m,{'x':0x0},{'x':0xa,'duration':v/0x6,'ease':'none','yoyo':!0x0,'repeat':A||0x5,'delay':x});break;case cD(0x24d):u[cD(0x26f)](m,{'filter':cD(0x1d2)},{'filter':cD(0x326)+(p['glowSize']||0xa)+cD(0x1a7)+(p[cD(0x277)]||cD(0x22a))+')','duration':v,'ease':y,'yoyo':A>0x0,'repeat':A,'delay':x});break;case cD(0x36e):u['fromTo'](m,{'filter':cD(0x24a)},{'filter':cD(0x26d)+(p['blurAmount']||0x5)+'px)','duration':v,'ease':y,'delay':x});break;case cD(0x2e8):u['to'](m,{'rotation':0x168,'duration':v,'ease':'none','repeat':A||-0x1,'delay':x});break;case'flip':u['fromTo'](m,{'rotationY':0x0},{'rotationY':0x168,'duration':v,'ease':y,'delay':x});break;case cD(0x1d6):{let a3=parseFloat(p[cD(0x2cb)])||2.5,a4=p['ease']||'power1.out',a5=!p[cD(0x2c9)]||p[cD(0x2c9)]==='load',a6=A!==0x0?A:a5?-0x1:0x0;u[cD(0x26f)](m,{'scale':0x0,'opacity':p[cD(0x2b4)]!=null?parseFloat(p[cD(0x2b4)]):0x1},{'scale':a3,'opacity':0x0,'duration':v,'ease':a4,'repeat':a6,'delay':x,'transformOrigin':cD(0x2a0)});break;}case cD(0x2a1):{let a7=parseFloat(p[cD(0x37c)])||0xa,a8=parseFloat(p['gapLen'])||0x14,a9=p['color']||null,aa=p[cD(0x31b)]===cD(0x1d7)?cD(0x1d7):'normal',ab=m['tagName']['toLowerCase']()==='svg'&&m[cD(0x280)]('path,line,polyline,polygon,rect,circle,ellipse')||m;ab['style']['strokeDasharray']=a7+'\x20'+a8,a9&&(ab['style'][cD(0x2c0)]=a9),a0=ab['animate']([{'strokeDashoffset':a7+a8},{'strokeDashoffset':0x0}],{'duration':v*0x3e8,'iterations':0x1/0x0,'easing':cD(0x332),'direction':aa,'delay':x*0x3e8});break;}case cD(0x377):{let ac=parseInt(p['count'])||0x5,ad=p[cD(0x322)]||cD(0x295),ae=p[cD(0x2d0)]||'#0066ff',af=parseFloat(p['size'])||0x8,ag=p[cD(0x31b)]==='reverse',ah=m['tagName'][cD(0x2f7)]()===cD(0x308)&&m[cD(0x280)]('path,line,polyline,polygon,rect,circle,ellipse')||m,ai=ah[cD(0x348)]||ah['closest']('svg')||m;if(!ai)break;let {pathEl:aj,tempEl:ak}=W(ah);ak&&a1['push'](ak);let al=cD(0x267),am=()=>{const cE=cD;let an;switch(ad){case cE(0x295):an=document['createElementNS'](al,cE(0x27f)),an['setAttribute']('points',af+cE(0x1f2)+-af/0x2+cE(0x2ed)+af/0x2);break;case'arrow':an=document['createElementNS'](al,'path'),an['setAttribute']('d','M'+af+cE(0x372)+-af/0x2+'\x20L'+af*0.35+',0\x20L0,'+af/0x2+'\x20Z');break;case cE(0x221):an=document[cE(0x269)](al,'circle'),an['setAttribute']('r',String(af/0x2));break;case'square':an=document['createElementNS'](al,cE(0x317)),an['setAttribute']('width',String(af)),an[cE(0x240)]('height',String(af)),an['setAttribute']('x',String(-af/0x2)),an[cE(0x240)]('y',String(-af/0x2));break;case cE(0x1be):{an=document['createElementNS'](al,'polygon');let ao=[];for(let ap=0x0;ap<0xa;ap++){let aq=ap%0x2===0x0?af:af*0.4,ar=ap*Math['PI']/0x5-Math['PI']/0x2;ao['push'](aq*Math[cE(0x346)](ar)+','+aq*Math[cE(0x315)](ar));}an[cE(0x240)](cE(0x342),ao[cE(0x25c)]('\x20'));break;}case'custom':{let as=p['customShapeD']||'M'+af+',0\x20L0,'+-af/0x2+'\x200,'+af/0x2+'\x20Z';an=document['createElementNS'](al,'path'),an[cE(0x240)]('d',as);break;}default:an=document[cE(0x269)](al,cE(0x317)),an['setAttribute'](cE(0x30b),String(af*0x2)),an['setAttribute']('height',String(af/0x3)),an['setAttribute']('x',String(-af)),an['setAttribute']('y',String(-af/0x6));break;}return an[cE(0x240)](cE(0x1e0),ae),ai[cE(0x2eb)](an),a1['push'](an),an;};for(let an=0x0;an<ac;an++){let ao=am(),ap=ag?0x1-an/ac:an/ac,aq=ag?-(an/ac):an/ac+0x1;u['to'](ao,{'motionPath':{'path':aj,'align':aj,'autoRotate':!0x0,'alignOrigin':[0.5,0.5],'start':ap,'end':aq},'duration':v,'repeat':-0x1,'ease':cD(0x1d0),'delay':x});}break;}}},T=null,Y=null,a0=null,a1=[],a2=[];if(p[cC(0x2c9)]==='load')C();else{if(p[cC(0x2c9)]===cC(0x1df))T=C,m[cC(0x36a)](cC(0x274),T);else{if(p[cC(0x2c9)]==='click')Y=C,m[cC(0x36a)]('click',Y);else{if(p[cC(0x2c9)]==='oid'){p[cC(0x1cb)]?.['signal']&&await S(p['condition_bind']['signal'],m,a4=>{const cF=cC;p[cF(0x351)]=String(a4);},a2),p[cC(0x324)]?.[cC(0x2da)]&&await S(p['conditionValue_bind']['signal'],m,a4=>{const cG=cC;p[cG(0x2bf)]=String(a4);},a2);let a3=p['oid_bind']?.['signal']||p[cC(0x1ef)];a3&&await S(a3,m,a4=>{const cH=cC;if(Q(a4,p[cH(0x351)]||'equal',p['conditionValue']??cH(0x333)))C();else{u['killTweensOf'](m),a0&&(a0[cH(0x2c3)](),a0=null);for(let a5 of a1)u[cH(0x2d3)](a5),a5['remove']();a1['length']=0x0;}},a2);}}}}return()=>{const cI=cC;T&&m['removeEventListener'](cI(0x274),T),Y&&m['removeEventListener'](cI(0x1e1),Y),O(a2),a0&&a0['cancel']();for(let a4 of a1)u[cI(0x2d3)](a4),a4[cI(0x212)]();};}import{PropertiesHelper as l}from'@gokturk413/web-component-designer/dist/elements/services/propertiesService/services/PropertiesHelper.js';var G=av(0x2d2);function ut(m){const cJ=av;try{let n=m['getAttribute'](G);if(n){let o=JSON['parse'](n);if(Array[cJ(0x376)](o))return o[cJ(0x355)](p=>p&&p['name']);}}catch(p){console['warn'](cJ(0x2b5)+G+'\x20attribute',p,m);}return[];}function dt(m,n){const cK=av;let o=Object['getPrototypeOf'](m);for(;o&&o!==HTMLElement[cK(0x2f1)];){let p=Object[cK(0x312)](o,n);if(p)return p;o=Object[cK(0x22c)](o);}return null;}function M(m){const cL=av;let n=ut(m);for(let p of n){let u=p['name'];if(Object[cL(0x312)](m,u))continue;let v=dt(m,u);v&&(v['get']||v['set'])?Object['defineProperty'](m,u,{'get'(){const cM=cL;return v[cM(0x31e)]?v['get']['call'](this):void 0x0;},'set'(x){const cN=cL;(v['get']?v[cN(0x31e)]['call'](this):void 0x0)!==x&&(v['set']?.['call'](this,x),this['_bindingsRefresh']?.(u),this[cN(0x329)](new CustomEvent(l[cN(0x1c0)](u)+cN(0x1d5),{'detail':{'newValue':x}})));},'enumerable':!0x0,'configurable':!0x0}):Object[cL(0x1ee)](m,u,{'get'(){return this['_'+u];},'set'(x){const cO=cL;this['_'+u]!==x&&(!Number['isNaN'](this['_'+u])||!Number['isNaN'](x))&&(this['_'+u]=x,this['_bindingsRefresh']?.(u),this['dispatchEvent'](new CustomEvent(l[cO(0x1c0)](u)+'-changed',{'detail':{'newValue':x}})));},'enumerable':!0x0,'configurable':!0x0});let w=m[cL(0x242)](l[cL(0x1c0)](u))??p['default'];w!=null&&(p[cL(0x281)]===cL(0x1bb)?w=parseFloat(w):p[cL(0x281)]==='boolean'&&(w=w===''||w===!0x0||w==='true'),v?m[u]=w:m['_'+u]=w);}}function st(m){const cP=av;m instanceof Element&&m[cP(0x1bc)](G)&&M(m);for(let n of m[cP(0x238)]('['+G+']'))M(n);}var mt=av(0x239),F=Symbol('webuiCustomControlSymbol'),N=class extends d{static [av(0x26a)]=e`:host { overflow: hidden }`;#e;#t;#n=[];#r;#s;#a;#i;#o=new Map();constructor(){const cQ=av;super(),this[cQ(0x1fc)](null,!0x0),this[cQ(0x205)][F][cQ(0x1cf)][cQ(0x325)][cQ(0x219)]&&(this[cQ(0x303)][cQ(0x360)]=[b['globalStylesheet'],...this[cQ(0x303)][cQ(0x360)]]),this['constructor'][F][cQ(0x1cf)][cQ(0x325)][cQ(0x1af)]&&(this.#r=new ResizeObserver(m=>{const cR=cQ;let n=this.#s['valueChangedCallbacks'][cR(0x31e)]('width');if(n){for(let o of n)o();}if(n=this.#s['valueChangedCallbacks']['get']('height'),n){for(let p of n)p();}}));}async[av(0x1a6)](){const cS=av;this[cS(0x251)](),this[cS(0x1a9)](),this[cS(0x25f)](),this.#s={'valueProvider':n=>{const cT=cS;switch(n){case cT(0x30b):return this[cT(0x2c2)]()[cT(0x30b)];case cT(0x20b):return this[cT(0x2c2)]()[cT(0x20b)];}return null;},'valueChangedCallbacks':new Map()},this.#o=new Map(),this.#i=new MutationObserver(p=>{const cU=cS;for(let u of p){for(let v of u[cU(0x2f3)]){if(v['nodeType']!==0x1)continue;let w=this.#o[cU(0x31e)](v);if(w){for(let x of w)x();this.#o['delete'](v);}}for(let y of u[cU(0x222)]){if(y['nodeType']!==0x1)continue;let A=this['_getRelativeSignalsPath'](),C=[];try{let Y=window[cU(0x270)]['bindingsHelper'][cU(0x220)](y);for(let a0 of Y)C[cU(0x1a8)](window[cU(0x270)][cU(0x2a2)]['applyBinding'](y,a0,A,this,this.#s));}catch(a1){console[cU(0x271)]('repeat\x20binding\x20self-apply\x20error',a1);}let T=window['appShell']['bindingsHelper'][cU(0x37a)](y,A,this,this.#s);C[cU(0x1a8)](...T),this.#o['set'](y,C),H(y)['catch'](()=>{}),J(y)['catch'](()=>{});}}}),this.#i['observe'](this[cS(0x303)],{'childList':!0x0,'subtree':!0x0}),this.#t=window['appShell']['bindingsHelper'][cS(0x37a)](this[cS(0x303)],this[cS(0x247)](),this,this.#s),this.#e=await window['appShell']['scriptSystem']['assignAllScripts']('customControl\x20'+this['constructor'][F]['name'],this['constructor'][F]['control']['script'],this['shadowRoot'],this,b),this.#e?.[cS(0x1a6)]?.(this,this[cS(0x303)]);for(let n of this.#n)this['addEventListener'](n[0x0],n[0x1]);this.#r?.['observe'](this),this.#a=b['objectsChanged']['on'](o=>{const cV=cS;let p=this[cV(0x205)][F]['name'];o['type']=='control'&&o[cV(0x2c5)]===p&&(this[cV(0x261)](),this[cV(0x390)]=this[cV(0x205)]['template']['content'][cV(0x216)](!0x0),this[cV(0x303)][cV(0x1c9)]='',this['shadowRoot']['appendChild'](this[cV(0x390)]),this['_bindingsParse'](null,!0x0),this[cV(0x1a6)]());});let m=this[cS(0x205)][F][cS(0x1cf)]['settings'];if(m?.['visibilityEnabled']){let o={'enabled':m[cS(0x2d5)],'groups':m['visibilityGroups']||[],'action':m[cS(0x231)]||'hide','redirectScreen':m[cS(0x1e7)]||''};await E[cS(0x1ac)](this,o);}await E['scanAndApply'](this[cS(0x303)]),H(this[cS(0x303)])['catch'](()=>{}),J(this['shadowRoot'])[cS(0x23b)](()=>{});}[av(0x261)](){const cW=av;for(let m of this.#n)this['removeEventListener'](m[0x0],m[0x1]);this.#e?.['disconnectedCallback']?.(this,this['shadowRoot']);for(let n of this.#t)n();this.#t=null,this.#i?.[cW(0x2b1)](),this.#i=null;for(let o of this.#o['values']())for(let p of o)p();this.#o['clear'](),this.#r?.['unobserve'](this),this.#a?.[cW(0x2cc)](),E[cW(0x2aa)](this),this[cW(0x303)][cW(0x238)]('[data-visibility-controlled=\x22true\x22]')[cW(0x38c)](r=>E['removeVisibility'](r)),tt(this[cW(0x303)]),et(this[cW(0x303)]);}[av(0x1a9)](){M(this),st(this['shadowRoot']);}[av(0x1de)](m,n){let o=[m,n];return this.#n['push'](o),this['addEventListener'](m,n),{'remove':()=>{const cX=c;let p=this.#n['indexOf'](o);this.#n[cX(0x1e8)](p,0x1),this[cX(0x30e)](m,n);}};}['_getRelativeSignalsPath'](){const cY=av;return this[cY(0x245)]()?.['host']?.[cY(0x247)]?.()??'';}};window[av(0x2dd)]=N;function bt(m){const cZ=av;m[0x0]=='/'&&(m=m['substring'](0x1));let n=k[cZ(0x1c0)](m['replaceAll']('/','-')[cZ(0x354)]('\x20','-')['replaceAll']('--','-'));return n[0x0]==='-'&&(n=n['substring'](0x1)),mt+n;}function c(b,d){b=b-0x1a0;const e=a();let f=e[b];return f;}function K(m,p){const d0=av;let u=bt(m),v=document[d0(0x362)](d0(0x1ca));v['innerHTML']=p['html'];let w=f(p[d0(0x26a)]),x={};for(let y in p[d0(0x1ad)]){let A=p[d0(0x1ad)][y];A[d0(0x1ed)]||(A[d0(0x281)]=='string'||A[d0(0x281)]==d0(0x2d0)?x[y]=String:A[d0(0x281)]=='boolean'?x[y]=Boolean:A['type']==d0(0x1bb)?x[y]=Number:A['type']==d0(0x364)?x[y]=Date:A[d0(0x281)]=='enum'||A[d0(0x281)]==d0(0x2da)||A['type']==d0(0x296)?x[y]=String:(A[d0(0x281)]==d0(0x374),x[y]=Object));}if(window['IobrokerWebuiCustomControl'+m]){window['IobrokerWebuiCustomControl'+m][d0(0x1ca)]=v,window['IobrokerWebuiCustomControl'+m][d0(0x26a)]=w,window['IobrokerWebuiCustomControl'+m]['properties']=x,window['IobrokerWebuiCustomControl'+m]['_propertiesDictionary']=null;let C=window['IobrokerWebuiCustomControl'+m][F];C['control']=p;}else{window['IobrokerWebuiCustomControl'+m]=function(){const d2=d0;let Y=Reflect['construct'](N,[],window['IobrokerWebuiCustomControl'+m]),a0=window['IobrokerWebuiCustomControl'+m][F]['control'];for(let a1 in a0['properties']){let a2;a1 in Y&&(a2=Y[a1],delete Y[a1]),Object['defineProperty'](Y,a1,{'get'(){return this['_'+a1];},'set'(a3){const d1=c;this['_'+a1]!==a3&&(!Number['isNaN'](this['_'+a1])||!Number['isNaN'](a3))&&(this['_'+a1]=a3,this[d1(0x25f)](a1),Y[d1(0x329)](new CustomEvent(k[d1(0x1c0)](a1)+'-changed',{'detail':{'newValue':a3}})));},'enumerable':!0x0,'configurable':!0x0}),a2!==void 0x0?Y[a1]=a2:a0[d2(0x1ad)][a1][d2(0x20e)]!=null&&(Y['_'+a1]=a0['properties'][a1]['default']);}return Y;};let T={'control':p,'name':m};window[d0(0x298)+m][F]=T,window['IobrokerWebuiCustomControl'+m][d0(0x1ca)]=v,window[d0(0x298)+m]['style']=w,window['IobrokerWebuiCustomControl'+m]['properties']=x,window[d0(0x298)+m]['_propertiesDictionary']=null,window[d0(0x298)+m][d0(0x2f1)]=Object[d0(0x1d8)](N[d0(0x2f1)],{'constructor':{'value':window['IobrokerWebuiCustomControl'+m]}}),customElements[d0(0x31e)](u)||customElements[d0(0x1b0)](u,window['IobrokerWebuiCustomControl'+m]);}}export{z as a,H as b,tt as c,J as d,et as e,st as f,mt as g,F as h,N as i,bt as j,K as k,V as l,b as m};