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 au=c;(function(l,m){const as=c,n=l();while(!![]){try{const o=-parseInt(as(0x189))/0x1*(parseInt(as(0xec))/0x2)+parseInt(as(0xbe))/0x3+-parseInt(as(0x1aa))/0x4+parseInt(as(0x1f3))/0x5+-parseInt(as(0x255))/0x6+-parseInt(as(0x1c8))/0x7+parseInt(as(0x12f))/0x8;if(o===m)break;else n['push'](n['shift']());}catch(p){n['push'](n['shift']());}}}(a,0xb7a93));import{BaseCustomWebComponentConstructorAppend as d,css as e,cssFromString as f}from'@gokturk413/base-custom-webcomponent';import{Connection as g}from'@iobroker/socket-client';function c(b,d){b=b-0x85;const e=a();let f=e[b];return f;}import{TypedEvent as h,cssFromString as i}from'@gokturk413/base-custom-webcomponent';function X(l){return new Promise(m=>setTimeout(m,l));}var V=class s{static [au(0x185)]=new s();['host'];['connection'];[au(0x11a)]=au(0x121);['namespace']=au(0xe3);[au(0x26f)]=this['namespace']+'.projects';[au(0x113)]=this['namespace']+'.projects';[au(0x14f)]=this['namespace']+au(0x163);[au(0x1d3)]='global/';#e='default';get[au(0x216)](){return this.#e;}get[au(0xb4)](){return this.#e+'/data/';}get['widgetUrlBase'](){const av=au;return this[av(0x113)]+'/'+this.#e+av(0xaf);}get[au(0x15f)](){const aw=au;return'/'+this['namespaceFiles']+'/'+this['configPath']+aw(0x26e);}get[au(0x1d6)](){const ax=au;return'/'+this['namespaceFiles']+'/'+this['configPath']+ax(0x244);}['config'];[au(0x20c)];[au(0x228)];['globalScriptInstance'];[au(0x22a)]=new h();['imagesChanged']=new h();[au(0x112)]=new h();['configChanged']=new h();['changeView']=new h();['refreshView']=new h();[au(0x89)]=[];[au(0x24a)]='en';['languageChanged']=new h();[au(0x9b)]={};[au(0x11c)]=new h();#t=new Map();['_controlNames']=null;['clientId'];[au(0x1a9)]=null;constructor(){const ay=au;this[ay(0xed)]=Date['now']()[ay(0x1b7)](0x10),this.#t['set']('screen',new Map()),this.#t[ay(0x23e)](ay(0x1cc),new Map()),this.#t['set']('3dscreen',new Map()),this.#t[ay(0x23e)](ay(0xab),new Map());try{let l=new URLSearchParams(window[ay(0x11b)][ay(0xc9)])['get']('project');l?this.#e=this[ay(0x1e5)](l):window['location'][ay(0x10b)][ay(0x233)](ay(0x1db))||(this.#e=this['_cleanProjectName'](localStorage['getItem'](ay(0x1cf))??'default'));}catch(m){console['warn'](ay(0x208),m);}}[au(0x1e5)](l){const az=au;return l=(l??'')[az(0x1b7)]()['trim']()[az(0x15d)]()[az(0x132)]('\x20','-'),/^[a-z0-9_-]+$/[az(0x176)](l)?l:az(0x1ff);}async[au(0xf4)](){const aA=au;this[aA(0x89)]&&await this['waitForReady']();try{let l=await this['_getObjectFromFile'](aA(0x123));if(Array[aA(0x260)](l?.['projects'])){let m=l[aA(0xa4)]['filter'](n=>/^[a-z0-9_-]+$/[aA(0x176)](n));return m[aA(0x164)]('default')||m[aA(0x145)](aA(0x1ff)),m;}}catch{}return[aA(0x1ff)];}async['createProject'](l){const aB=au;if(l=(l??'')[aB(0x1b7)]()['trim']()[aB(0x15d)]()[aB(0x132)]('\x20','-'),!/^[a-z0-9_-]+$/[aB(0x176)](l))throw new Error('invalid\x20project\x20name\x20(use\x20a-z,\x200-9,\x20-,\x20_):\x20'+l);let m=await this['getProjects']();if(m[aB(0x164)](l))throw new Error('project\x20already\x20exists:\x20'+l);m[aB(0xb0)](l),await this['_saveObjectToFile']({'projects':m[aB(0x193)](n=>n!==aB(0x1ff))},aB(0x123)),await this[aB(0xc8)]({'globalStyle':null,'globalScript':null,'globalConfig':null,'fontDeclarations':null},l+aB(0xe5)),await this[aB(0xc8)]({},l+'/widgets/package.json');try{await this['connection']['setState'](this[aB(0x11d)]+aB(0xf7),{'val':l}),await this[aB(0x200)]['setState'](this['namespace']+aB(0x265),{'val':aB(0x15e)});}catch{}return l;}async[au(0xd3)](l){const aC=au;if(l===aC(0x1ff))throw new Error('the\x20\x27default\x27\x20project\x20cannot\x20be\x20deleted');let m=(await this['getProjects']())['filter'](n=>n!==l&&n!==aC(0x1ff));await this[aC(0xc8)]({'projects':m},aC(0x123));try{await this[aC(0x200)][aC(0x1d5)](this['namespaceProjects'],'/'+l);}catch(n){console[aC(0xb1)]('error\x20deleting\x20project\x20folder',n);}this.#e===l&&this['setCurrentProject'](aC(0x1ff));}['setCurrentProject'](l){const aD=au;localStorage['setItem'](aD(0x1cf),this[aD(0x1e5)](l));let m=new URL(window['location'][aD(0xd2)]);m['searchParams'][aD(0xbf)]('project'),m[aD(0x1b7)]()===window['location']['href']?window['location'][aD(0x241)]():window['location'][aD(0xd2)]=m[aD(0x1b7)]();}['getNormalizedSignalName'](l,m,n){return(m??'')+l;}['waitForReady'](){return this['_readyPromises']?new Promise(l=>{const aE=c;this['_readyPromises'][aE(0xb0)](l);}):Promise['resolve']();}async['init'](){const aF=au;for(;!window['io'];)await X(0x5);let l=document[aF(0xc7)]('connectionInfo');l&&(l[aF(0x243)]=aF(0x1e7)),this['connection']=new g({'protocol':'ws','host':window[aF(0xd4)],'port':window['iobrokerPort'],'admin5only':!0x1,'autoSubscribes':[],'onError':A=>{const aG=aF;let C=document[aG(0xc7)](aG(0x144));C&&(C[aG(0x243)]=A);let L=document['getElementById'](aG(0x91));L&&(L['style'][aG(0x138)]=aG(0x240));},'onReady':()=>{const aH=aF;let A=document['getElementById']('connectionInfo');A&&(A[aH(0x243)]='ready');let C=document[aH(0xc7)]('connectionState');C&&(C['style'][aH(0x138)]='lightgreen');}}),await this['connection']['startSocket'](),await this[aF(0x200)][aF(0xfc)]();try{this['userName']=await this[aF(0x200)]['getCurrentUser']();}catch{}let m=await this['_getConfig']();this[aF(0x8b)]=m??{'globalStyle':null,'globalScript':null,'globalConfig':null,'fontDeclarations':null};try{let A=await this[aF(0x200)][aF(0x222)]('system.adapter.mywebui.0');this['grafanaLangSyncEnabled']=!!(A?.['native']?.[aF(0xbc)]&&A?.['native']?.['grafanaLangSyncEnabled']);}catch{this['grafanaLangSyncEnabled']=!0x1;}if(this['config'][aF(0x25f)]==null&&(this[aF(0x8b)]['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[aF(0x8b)]['globalConfig'][aF(0x232)]){let C=document[aF(0x25b)]()[aF(0xa1)](this['config'][aF(0x25f)]['headerTags']);document[aF(0x92)][aF(0x16f)](C);}if(this['config'][aF(0x12b)]&&(this[aF(0x20c)]=i(this['config'][aF(0x12b)])),this['config']['fontDeclarations']&&(this['fontDeclarationsStylesheet']=i(this[aF(0x8b)][aF(0xf0)]),document['adoptedStyleSheets']=[this['fontDeclarationsStylesheet']]),this['config'][aF(0x18a)]){let L=URL['createObjectURL'](new Blob([this['config'][aF(0x18a)]],{'type':'application/javascript'}));this[aF(0xfe)]=await importShim(L),this[aF(0xfe)][aF(0xb6)]&&this[aF(0xfe)][aF(0xb6)]();}let p=localStorage[aF(0x221)]('webui-language');if(p)this['language']=p;else try{let P=await this[aF(0x200)]['getSystemConfig']();P?.['common']?.['language']&&(this['language']=P[aF(0x21d)][aF(0x24a)]);}catch{}this['setState'](aF(0x1d7),{'val':this[aF(0x24a)]}),this[aF(0x15b)]('local_language',(S,T)=>{const aI=aF;T?.['val']&&T[aI(0x14a)]!==this[aI(0x24a)]&&this['setLanguage'](T[aI(0x14a)]);}),await this['loadTranslations'](),window['t']=S=>this['t'](S);for(let S of this[aF(0x89)])S();this[aF(0x89)]=null,console['log'](aF(0x1f1));let u,w;await this['connection'][aF(0x15b)](this['namespace']+aF(0x1d8),(T,Y)=>{const aJ=aF;u=Y?.[aJ(0x14a)];}),await this[aF(0x200)][aF(0x15b)](this['namespace']+'.control.clientIds',(T,Y)=>{w=Y?.['val'];});let y=await this['connection'][aF(0x106)](this['namespace']+aF(0x265));this['connection']['subscribeState'](this['namespace']+aF(0x265),(T,Y)=>{const aK=aF;Y?.[aK(0x16d)]&&Y?.['ts']!=y?.['ts']&&this['handleCommand'](Y?.[aK(0x14a)],u,w);}),this[aF(0xcc)]('uiConnected',''),this['_broadcastChannel']=new BroadcastChannel('mywebui-commands'),this['_broadcastChannel'][aF(0x1de)]=T=>{let {command:Y,data:a0,clientId:a1}=T['data']??{};Y&&this['handleCommand'](Y,a0,a1);};}async['getIconAdapterFoldernames'](){const aL=au;let l=await this[aL(0x200)]['getObjectViewSystem'](aL(0x1cb),''),m=[];for(let n in l)(l[n]?.[aL(0x21d)]?.['type']==aL(0x1e6)||l[n]?.[aL(0x21d)][aL(0x1fd)][aL(0xd9)]('icons-'))&&m['push'](l[n]?.[aL(0x21d)]['name']);return m;}async[au(0x190)](l,m){const aM=au;this['_readyPromises']&&await this['waitForReady']();let n=[];n['push'](this['getObjectNames'](l,m)[aM(0x9f)](u=>u[aM(0x261)](w=>(m?m+'/':'/')[aM(0x1f2)](0x1)+w)));let p=await this[aM(0x229)](l,m);for(let u of p)n['push'](this['getAllNames'](l,(m??'')+'/'+u));return(await Promise['all'](n))['flatMap'](w=>w);}async[au(0x229)](l,m){const aN=au;this['_readyPromises']&&await this[aN(0x1a2)]();try{return(await this['connection'][aN(0x204)](this['namespaceFiles'],this['configPath']+l+'s'+(m??'')))['filter'](o=>o['isDir'])[aN(0x261)](o=>o['file']);}catch(n){console[aN(0xb1)]('error\x20loading\x20subfolders',n);}return[];}async['getObjectNames'](l,m){const aO=au;this['_readyPromises']&&await this[aO(0x1a2)]();try{return(await this[aO(0x200)]['readDir'](this[aO(0x26f)],this[aO(0xb4)]+l+'s'+(m??'')))['filter'](o=>o[aO(0x1e4)]['endsWith']('.'+l))[aO(0x261)](o=>o['file'][aO(0x1f2)](0x0,o['file']['length']-l['length']-0x1));}catch(n){console[aO(0xb1)](aO(0x225)+l+aO(0x207),n);}return[];}async[au(0xf3)](l,m){const aP=au;return l==aP(0x143)?this[aP(0x203)](m):l=='control'?this[aP(0x195)](m):l==aP(0x8d)?this[aP(0x160)](m):l==aP(0xab)?this['get3DControl'](m):null;}async[au(0x203)](l){const aQ=au;l[0x0]=='/'&&(l=l['substring'](0x1));let m=this.#t[aQ(0x1fc)](aQ(0x143))[aQ(0x1fc)](l);if(!m){this[aQ(0x89)]&&await this['waitForReady']();try{m=await this[aQ(0xb9)](this[aQ(0xb4)]+aQ(0x1dc)+l+aQ(0x156));}catch(n){console[aQ(0x186)]('Error\x20reading\x20Screen',m,n);}this.#t['get'](aQ(0x143))[aQ(0x23e)](l,m);}return m;}async[au(0x160)](l){const aR=au;l[0x0]=='/'&&(l=l[aR(0x1f2)](0x1));let m=this.#t[aR(0x1fc)](aR(0x8d))[aR(0x1fc)](l);if(!m){this['_readyPromises']&&await this[aR(0x1a2)]();try{m=await this[aR(0xb9)](this[aR(0xb4)]+aR(0x1c4)+l+aR(0x1d9));}catch(n){console['error'](aR(0x1e2),m,n);}this.#t[aR(0x1fc)](aR(0x8d))[aR(0x23e)](l,m);}return m;}async['get3DControl'](l){const aS=au;l[0x0]=='/'&&(l=l[aS(0x1f2)](0x1));let m=this.#t[aS(0x1fc)]('3dcontrol')[aS(0x1fc)](l);if(!m){this['_readyPromises']&&await this['waitForReady']();try{m=await this[aS(0xb9)](this[aS(0xb4)]+aS(0x26b)+l+aS(0x214));}catch(n){console['error']('Error\x20reading\x203D\x20Control',m,n);}this.#t['get'](aS(0xab))[aS(0x23e)](l,m);}return m;}async[au(0x93)](l,m,n){const aT=au;await this['_saveObjectToFile'](n,'/'+this['configPath']+l+'s/'+m+'.'+l),this.#t['has'](l)&&this.#t['get'](l)['set'](m,n),l==aT(0x1cc)&&(this[aT(0x15c)]=null,this[aT(0x99)]()),this['sendCommand'](aT(0x8a),JSON[aT(0xfa)]({'type':l,'name':m}),'*');}async[au(0x230)](l,m){const aU=au;await this[aU(0x200)]['deleteFile'](this[aU(0x26f)],'/'+this[aU(0xb4)]+l+'s/'+m+'.'+l),this.#t[aU(0xdd)](l)&&this.#t[aU(0x1fc)](l)[aU(0xbf)](m),l==aU(0x1cc)&&(this['_controlNames']=null,this[aU(0x99)]()),this['objectsChanged'][aU(0x11f)]({'type':l,'name':m});}async['renameObject'](l,m,n){const aV=au;m[0x0]=='/'&&(m=m['substring'](0x1)),n[0x0]=='/'&&(n=n['substring'](0x1)),await this['connection'][aV(0x257)](this['namespaceFiles'],'/'+this['configPath']+l+'s/'+m+'.'+l,'/'+this[aV(0xb4)]+l+'s/'+n+'.'+l),this.#t[aV(0xdd)](l)&&(this.#t[aV(0x1fc)](l)['delete'](m),this.#t['get'](l)['delete'](n)),l==aV(0x1cc)&&(this['_controlNames']=null,this['_scheduleControlsAggregate']()),this['getWebuiObject'](l,n),this['objectsChanged']['emit']({'type':l,'name':n});}#n;[au(0x99)](){clearTimeout(this.#n),this.#n=setTimeout(()=>this['_writeControlsAggregate'](),0x2bc);}async['_writeControlsAggregate'](){const aW=au;try{let l=await this[aW(0x190)](aW(0x1cc)),m={};await Promise['all'](l['map'](async n=>{const aX=aW;let p=n['replace'](/^\//,'');m[p]=await this[aX(0x195)](p);})),await this[aW(0xc8)]({'version':0x1,'controls':m},this['configPath']+aW(0x1cd)),console['log']('controls\x20aggregate\x20written\x20('+l[aW(0xb3)]+aW(0x248));}catch(n){console['warn']('error\x20writing\x20controls\x20aggregate',n);}}async['loadAllControlsFast'](){const aY=au;this[aY(0x89)]&&await this[aY(0x1a2)]();try{let l=await this[aY(0xb9)](this['configPath']+'controls-all.dat');if(l?.['controls']){for(let m in l[aY(0x1c7)])this.#t['get']('control')['set'](m,l[aY(0x1c7)][m]);return this['_controlNames']=Object['keys'](l['controls']),l['controls'];}}catch{}return null;}async[au(0x226)](l,m){const aZ=au;try{return(await this['connection'][aZ(0x204)](this['namespaceGlobal'],this['globalPath']+l+'s'+(m??'')))['filter'](n=>n[aZ(0x1e4)][aZ(0x233)]('.'+l))[aZ(0x261)](n=>n[aZ(0x1e4)]['substring'](0x0,n[aZ(0x1e4)]['length']-l['length']-0x1));}catch{return[];}}async['getGlobalSubFolders'](l,m){const b0=au;try{return(await this['connection']['readDir'](this['namespaceGlobal'],this['globalPath']+l+'s'+(m??'')))['filter'](n=>n[b0(0xba)])['map'](n=>n['file']);}catch{return[];}}async[au(0x263)](l,m){const b1=au;let n=[];n['push'](this[b1(0x226)](l,m)[b1(0x9f)](p=>p['map'](r=>(m?m+'/':'/')['substring'](0x1)+r)));for(let p of await this[b1(0x180)](l,m))n['push'](this['getAllGlobalNames'](l,(m??'')+'/'+p));return(await Promise['all'](n))['flatMap'](r=>r);}async[au(0x142)](l,m){const b2=au;m[0x0]==='/'&&(m=m['substring'](0x1));let p='g'+l;this.#t['has'](p)||this.#t['set'](p,new Map());let r=this.#t[b2(0x1fc)](p)['get'](m);if(!r){try{r=await this['_getObjectFromFile'](this[b2(0x1d3)]+l+'s/'+m+'.'+l,this['namespaceGlobal']);}catch(u){console['error'](b2(0xb7)+l,m,u);}this.#t[b2(0x1fc)](p)['set'](m,r);}return r;}async['saveGlobalObject'](l,m,n){const b3=au;await this['_saveObjectToFile'](n,'/'+this['globalPath']+l+'s/'+m+'.'+l,this[b3(0x14f)]);let p='g'+l;this.#t[b3(0xdd)](p)&&this.#t['get'](p)[b3(0x23e)](m,n),this[b3(0xd0)](l),this['objectsChanged']['emit']({'type':l,'name':m,'global':!0x0});}async['removeGlobalObject'](l,m){const b4=au;m[0x0]==='/'&&(m=m[b4(0x1f2)](0x1)),await this[b4(0x200)]['deleteFile'](this[b4(0x14f)],'/'+this[b4(0x1d3)]+l+'s/'+m+'.'+l);let n='g'+l;this.#t[b4(0xdd)](n)&&this.#t['get'](n)['delete'](m),this[b4(0xd0)](l),this['objectsChanged'][b4(0x11f)]({'type':l,'name':null,'global':!0x0});}async['renameGlobalObject'](l,m,n){const b5=au;m[0x0]==='/'&&(m=m['substring'](0x1)),n[0x0]==='/'&&(n=n['substring'](0x1)),await this['connection']['renameFile'](this[b5(0x14f)],'/'+this['globalPath']+l+'s/'+m+'.'+l,'/'+this[b5(0x1d3)]+l+'s/'+n+'.'+l);let p='g'+l;this.#t[b5(0xdd)](p)&&(this.#t['get'](p)[b5(0xbf)](m),this.#t['get'](p)[b5(0xbf)](n)),this['_scheduleGlobalAggregate'](l),this['objectsChanged']['emit']({'type':l,'name':n,'global':!0x0});}#r={};[au(0xd0)](l){clearTimeout(this.#r[l]),this.#r[l]=setTimeout(()=>this['_writeGlobalAggregate'](l),0x2bc);}async['_writeGlobalAggregate'](l){const b6=au;try{let m=await this[b6(0x263)](l);if(!m[b6(0xb3)])return;let n={};await Promise[b6(0x127)](m[b6(0x261)](async p=>{let r=p['replace'](/^\//,'');n[r]=await this['getGlobalObject'](l,r);})),await this[b6(0xc8)]({'version':0x1,'controls':n},this['globalPath']+l+b6(0x133),this[b6(0x14f)]);}catch(o){console['warn'](b6(0x269)+l+'\x20aggregate',o);}}async['loadAllGlobalControls'](l){const b7=au;this[b7(0x89)]&&await this['waitForReady']();try{let n=await this[b7(0xb9)](this[b7(0x1d3)]+l+b7(0x133),this['namespaceGlobal']);if(n?.['controls']&&Object['keys'](n[b7(0x1c7)])[b7(0xb3)])return n['controls'];}catch{}let m={};try{let o=await this['getAllGlobalNames'](l);await Promise['all'](o[b7(0x261)](async p=>{let r=p['replace'](/^\//,'');m[r]=await this['getGlobalObject'](l,r);})),Object['keys'](m)['length']&&this['_scheduleGlobalAggregate'](l);}catch{}return m;}async[au(0x219)](l,m){const b8=au;await this[b8(0xc8)]({},'/'+this['configPath']+l+'s/'+m+'/tmp.fld'),this['objectsChanged']['emit']({'type':l,'name':null});}async[au(0x85)](l,m){const b9=au;await this['connection']['deleteFolder'](this[b9(0x26f)],'/'+this['configPath']+l+'s/'+m),this[b9(0x22a)]['emit']({'type':l,'name':null});}async[au(0x157)](l,m){const ba=au;await this[ba(0xc8)]({},'/'+this[ba(0x1d3)]+l+'s/'+m+ba(0x16a),this['namespaceGlobal']),this[ba(0x22a)][ba(0x11f)]({'type':l,'name':null,'global':!0x0});}async['removeGlobalFolder'](l,m){const bb=au;await this['connection'][bb(0x1d5)](this[bb(0x14f)],'/'+this[bb(0x1d3)]+l+'s/'+m),this[bb(0x22a)][bb(0x11f)]({'type':l,'name':null,'global':!0x0});}async[au(0x12a)](){const bc=au;await b['waitForReady']();let l=await this['getCustomControlNames'](),m=[];for(let n of l)m[bc(0xb0)](this['getCustomControl'](n));await Promise[bc(0x127)](m);}async[au(0x13b)](){const bd=au;if(this[bd(0x15c)])return this['_controlNames'];this[bd(0x89)]&&await this[bd(0x1a2)]();try{let l=await this['getAllNames'](bd(0x1cc));return this[bd(0x15c)]=l,l;}catch(m){console['warn']('no\x20controls\x20loaded',m);}return[];}async[au(0x195)](l){const be=au;l[0x0]=='/'&&(l=l['substring'](0x1));let m=this.#t['get']('control')['get'](l);if(!m){this[be(0x89)]&&await this[be(0x1a2)]();try{if(m=await this[be(0xb9)](this[be(0xb4)]+'controls/'+l+be(0x150)),m['properties']){let p=Object[be(0x131)](m['properties']);if(p['length']&&typeof m['properties'][p[0x0]]=='string')for(let r in m[be(0x271)]){let u=m['properties'][r];u['startsWith']('[')?m['properties'][r]={'type':'enum','values':JSON[be(0x159)](u)}:m['properties'][r]={'type':u};}}}catch(w){console[be(0x186)]('Error\x20reading\x20Control',m,w);}this.#t[be(0x1fc)](be(0x1cc))[be(0x23e)](l,m);}return m;}async['getImageNames'](){const bf=au;this['_readyPromises']&&await this['waitForReady']();try{return(await this[bf(0x200)][bf(0x204)](this['namespaceFiles'],this[bf(0xb4)]+'images'))[bf(0x261)](l=>l[bf(0x1e4)]);}catch{}return[];}async[au(0xbd)](l,m){const bg=au;await this['_saveBinaryToFile'](m,'/'+this[bg(0xb4)]+bg(0x26e)+l),this[bg(0x114)]['emit']();}async['getImage'](l){const bh=au;return await this[bh(0x200)]['readFile'](this['namespaceFiles'],'/'+this['configPath']+bh(0x26e)+l,!0x1);}async['removeImage'](l){const bi=au;await this['connection']['deleteFile'](this['namespaceFiles'],'/'+this['configPath']+bi(0x26e)+l),this['imagesChanged']['emit']();}async[au(0x239)](){const bj=au;this[bj(0x89)]&&await this[bj(0x1a2)]();try{return(await this['connection'][bj(0x204)](this[bj(0x26f)],this['configPath']+'additionalfiles'))[bj(0x261)](l=>l[bj(0x1e4)]);}catch{}return[];}async['saveAdditionalFile'](l,m){const bk=au;await this[bk(0x1d2)](m,'/'+this['configPath']+bk(0x244)+l),this['additionalFilesChanged'][bk(0x11f)]();}async[au(0xc3)](l){const bl=au;return await this['connection']['readFile'](this['namespaceFiles'],'/'+this['configPath']+bl(0x244)+l,!0x1);}async['removeAdditionalFile'](l){const bm=au;await this[bm(0x200)][bm(0x259)](this[bm(0x26f)],'/'+this[bm(0xb4)]+bm(0x244)+l),this['additionalFilesChanged'][bm(0x11f)]();}async[au(0x1fe)](l,m){const bn=au;try{await this['_saveBinaryToFile'](m,'/'+this['configPath']+bn(0x1a3)+l+bn(0x1b8));}catch(n){console['warn'](bn(0x1c1),n);}}async['getThumbnail'](l){const bo=au;try{return await this['connection']['readFile'](this[bo(0x26f)],'/'+this[bo(0xb4)]+'thumbnails/'+l+bo(0x1b8),!0x1);}catch{return null;}}async[au(0x155)](l){const bp=au;try{await this[bp(0x200)]['deleteFile'](this[bp(0x26f)],'/'+this[bp(0xb4)]+'thumbnails/'+l+'.png');}catch(m){console[bp(0xb1)]('Error\x20removing\x20thumbnail:',m);}}#i=new Map();#a=new Map();[au(0x1bf)](){const bq=au;return Array[bq(0xa6)](this.#i['keys']());}async['subscribeState'](l,m){const br=au;if(l[br(0xd9)](br(0x100))){let n=this.#i['get'](l);n||(n=[],this.#i['set'](l,n)),n['push'](m);let p=this.#a['get'](l);p&&m(l,p);}else return this['connection'][br(0x15b)](l,m);}['unsubscribeState'](l,m){const bs=au;if(l['startsWith'](bs(0x100))){let n=this.#i['get'](l);if(n){let p=n['indexOf'](m);p>=0x0&&n[bs(0x1c3)](p,0x1);}}else this[bs(0x200)]['unsubscribeState'](l,m);}[au(0x24f)](l,m){return this['connection']['subscribeObject'](l,m);}[au(0x1ac)](l,m){const bu=au;return this['connection'][bu(0x1ac)](l,m);}[au(0x21b)](l,m){const bv=au;return b[bv(0x200)]['getObjectView'](m,null,l);}[au(0x222)](l){const bw=au;return this['connection'][bw(0x222)](l);}['getState'](l){const bx=au;return l['startsWith']('local_')?Promise[bx(0xfb)](this.#a['get'](l)):this[bx(0x200)]['getState'](l);}[au(0x88)](l,m,p){const by=au;if(l['startsWith']('local_')){typeof m!='object'&&(m={'val':m}),this.#a['set'](l,m);let r=this.#i[by(0x1fc)](l);if(r){for(let u of r)u(l,m);}return Promise['resolve']();}else return this[by(0x200)][by(0x88)](l,m,p);}async['_getConfig'](){const bz=au;try{return await this[bz(0xb9)](this['configPath']+bz(0x129));}catch{return null;}}async['saveConfig'](){const bA=au;if(this[bA(0xc8)](this['config'],this[bA(0xb4)]+bA(0x129)),this[bA(0x20c)]=null,this[bA(0xfe)]=null,this['config']['globalStyle']&&(this[bA(0x20c)]=i(this['config']['globalStyle'])),this[bA(0x8b)][bA(0xf0)]?(this[bA(0x228)]=i(this[bA(0x8b)][bA(0xf0)]),document['adoptedStyleSheets']=[this[bA(0x228)]]):(this['fontDeclarationsStylesheet']=null,document['adoptedStyleSheets']=[]),this['config']['globalScript']){let l=URL['createObjectURL'](new Blob([this['config']['globalScript']],{'type':bA(0x135)}));this['globalScriptInstance']=await importShim(l),this[bA(0xfe)]['init']&&this[bA(0xfe)][bA(0xb6)]();}this['configChanged']['emit']();}async['loadTranslations'](){const bB=au;try{this[bB(0x9b)]=await this['_getObjectFromFile'](this['configPath']+'translations.json');}catch{this['translations']={};}}async[au(0x220)](){const bC=au;await this['_saveObjectToFile'](this[bC(0x9b)],this[bC(0xb4)]+bC(0x1ab)),this['translationsChanged'][bC(0x11f)](this['translations']);}[au(0x130)](l){const bD=au;this[bD(0x24a)]=l,localStorage[bD(0x24c)]('webui-language',l),this['languageChanged']['emit'](l),window[bD(0x154)](new CustomEvent('languageChanged',{'detail':l})),this.#a[bD(0x1fc)]('local_language')?.['val']!==l&&this[bD(0x88)](bD(0x1d7),{'val':l}),this['grafanaLangSyncEnabled']&&fetch('/mywebui-grafana-lang',{'method':'POST','headers':{'Content-Type':'application/json'},'credentials':'include','body':JSON[bD(0xfa)]({'lang':l})})['catch'](()=>{});}['t'](l){let m=this['language']||'en',n=l['split']('.'),p=u=>{const bE=c;let w=this[bE(0x9b)]?.[u];for(let y of n)if(w=w?.[y],w===void 0x0)return;return typeof w=='string'?w:void 0x0;};return p(m)??(m!=='en'?p('en'):void 0x0)??((()=>{const bF=c;for(let u of Object['keys'](this[bF(0x9b)]??{})){let w=p(u);if(w!==void 0x0)return w;}return l;})());}async['_getObjectFromFile'](l,m=this['namespaceFiles']){const bG=au;let n=await this['connection'][bG(0x1c9)](m,l,!0x1),p;return n[bG(0x25e)]=='application/json'||n['mimeType']=='text/javascript'?JSON['parse'](n[bG(0x1e4)]):(n['mimeType']==bG(0x20f)&&n[bG(0x1e4)]instanceof ArrayBuffer?p=new Uint8Array(n['file']):p=Uint8Array[bG(0xa6)](n[bG(0x1e4)]['data']),p[0x0]===0x1f&&p[0x1]===0x8b&&window['DecompressionStream']&&(p=await this['_gunzipBytes'](p)),JSON[bG(0x159)](new TextDecoder()[bG(0xda)](p)));}async[au(0xc8)](l,m,p=this[au(0x26f)]){const bH=au;let r=new TextEncoder()[bH(0xe0)](JSON[bH(0xfa)](l));if(r[bH(0xb3)]>0x200*0x400&&window[bH(0x17a)]){let u=await this[bH(0x238)](r);await this['connection'][bH(0x205)](p,m,u['buffer']);}else await this['connection'][bH(0x205)](p,m,r);}async[au(0x238)](m){const bI=au;let p=new CompressionStream('gzip'),u=p['writable'][bI(0x234)]();u[bI(0xe4)](m),u['close']();let w=p[bI(0x13f)][bI(0xa3)](),y=[],A;for(;!(A=await w['read']())['done'];)y['push'](A[bI(0x270)]);let C=new Uint8Array(y['reduce']((P,S)=>P+S[bI(0xb3)],0x0)),L=0x0;for(let P of y)C[bI(0x23e)](P,L),L+=P[bI(0xb3)];return C;}async[au(0xf8)](m){const bJ=au;let p=new DecompressionStream(bJ(0x1b4)),u=p['writable'][bJ(0x234)]();u['write'](m),u['close']();let w=p['readable'][bJ(0xa3)](),y=[],A;for(;!(A=await w[bJ(0x1b9)]())[bJ(0x111)];)y['push'](A['value']);let C=new Uint8Array(y['reduce']((P,S)=>P+S[bJ(0xb3)],0x0)),L=0x0;for(let P of y)C['set'](P,L),L+=P['length'];return C;}async[au(0x1d2)](l,m){const bK=au;await this['connection']['writeFile64'](this[bK(0x26f)],m,await l['arrayBuffer']());}async['sendCommand'](l,m,n){const bL=au;try{this[bL(0x266)]?.['postMessage']({'command':l,'data':m,'clientId':n??this['clientId']??'*'});}catch{}try{let p=[this[bL(0x200)][bL(0x88)](this['namespace']+bL(0x1d8),{'val':m}),this[bL(0x200)]['setState'](this[bL(0x11d)]+bL(0x20e),{'val':n??this['clientId']}),this['connection']['setState'](this[bL(0x11d)]+bL(0xf7),{'val':this.#e})];await Promise[bL(0x127)](p),await this['connection'][bL(0x88)](this[bL(0x11d)]+bL(0x265),{'val':l});}catch(r){console[bL(0xb1)](bL(0x102),r?.['message']||r);}}async[au(0xf5)](l,m,o=''){const bM=au;if(o==''||o=='*'||o==this[bM(0xed)])switch(l){case bM(0x188):window['location'][bM(0x241)]();break;case'uiRefresh':this.#t['get']('screen')[bM(0x184)](),this.#t[bM(0x1fc)](bM(0x1cc))['clear'](),this[bM(0x15c)]=null,this[bM(0x1ce)][bM(0x11f)](m);break;case bM(0x1da):this['changeView']['emit'](m);break;case'uiOpenDialog':break;case bM(0x1bd):new Audio(m)['play']();break;case'uiRunScript':break;case'uiAlert':alert(m);break;case'uiSetLanguage':m&&this[bM(0x130)](m);break;case bM(0x8a):let p=JSON[bM(0x159)](m);this.#t[bM(0xdd)](p[bM(0xef)])&&this.#t['get'](p['type'])['delete'](p['name']),p[bM(0xef)]=='control'&&p[bM(0x1fd)]&&K(p[bM(0x1fd)],await b['getWebuiObject'](p[bM(0xef)],p[bM(0x1fd)])),this['objectsChanged']['emit'](p);break;}}[au(0x236)](l){const bN=au;let m={'role':l?.['common']?.[bN(0x11e)],'type':l?.[bN(0x21d)]?.['type'],'writeable':l?.[bN(0x21d)]?.[bN(0xe4)]};return(l?.[bN(0x21d)]?.['role']==bN(0xdf)||l?.['common']?.[bN(0x11e)]==='text.url'||l?.['common']?.['role']['includes'](bN(0x254))||l?.['common']?.['role']['includes'](bN(0x1c6)))&&(m['role']='url'),l?.['common']?.['role']=='value.time'&&(m['role']=bN(0x26d)),m;}['getHistoricData'](l,m){return this['connection']['getHistoryEx'](l,m);}#o=null;#s=[];async[au(0xb2)](){const bO=au;if(!this.#o)try{let l=await this[bO(0x200)][bO(0xb2)]();console[bO(0x179)](bO(0x215),l);let m=[],p=bO(0x13a)+l;try{let u=await new Promise((w,y)=>{const bP=bO;this['connection'][bP(0x119)]['emit'](bP(0x116),bP(0x1e8),bP(0x140),{'startkey':bP(0x1a1),'endkey':'system.group.香'},(A,C)=>{A?y(A):w(C);});});if(console['log']('🔐\x20[Visibility]\x20All\x20groups\x20via\x20getObjectView:',u),u&&u['rows'])for(let w of u['rows']){let y=w['value'],A=w['id']['replace']('system.group.','');y['common']?.['members']&&Array[bO(0x260)](y[bO(0x21d)][bO(0x1bb)])&&y['common']['members'][bO(0x164)](p)&&(m[bO(0xb0)](A),console[bO(0x179)](bO(0x170)+A));}}catch(C){console['warn']('⚠️\x20[Visibility]\x20getObjectView\x20failed,\x20trying\x20direct\x20group\x20fetch:',C);let L=['administrator',bO(0x173)];for(let P of L)try{let S=await new Promise((T,Y)=>{const bQ=bO;this[bQ(0x200)]['_socket'][bQ(0x11f)]('getObject',bQ(0x1a1)+P,(a0,a1)=>{a0?Y(a0):T(a1);});});S&&S['common']?.['members']&&Array[bO(0x260)](S[bO(0x21d)][bO(0x1bb)])&&S['common']['members'][bO(0x164)](p)&&(m[bO(0xb0)](P),console[bO(0x179)]('✅\x20[Visibility]\x20User\x20is\x20member\x20of\x20group:\x20'+P));}catch{}}m['length']===0x0&&(console[bO(0xb1)]('⚠️\x20[Visibility]\x20User\x20has\x20no\x20groups,\x20adding\x20administrator\x20as\x20default'),m[bO(0xb0)]('administrator')),this.#o={'id':l,'groups':m},console['log'](bO(0x151),this.#o);}catch(T){console['warn']('⚠️\x20[Visibility]\x20Failed\x20to\x20get\x20current\x20user:',T),this.#o={'id':'admin','groups':[bO(0x192)]};}return this.#o;}async[au(0x1e1)](){const bR=au;if(this.#s['length']===0x0)try{let l=[];try{console[bR(0x179)]('🔍\x20[Visibility]\x20Fetching\x20groups\x20via\x20getObjectView...');let m=await new Promise((p,u)=>{const bS=bR;this['connection']['_socket']['emit'](bS(0x116),'system','group',{'startkey':bS(0x1a1),'endkey':bS(0x202)},(w,y)=>{w?u(w):p(y);});});if(console[bR(0x179)]('🔍\x20[Visibility]\x20getObjectView\x20result:',m),m&&m[bR(0x17b)])for(let p of m['rows']){let u=p['id']['replace']('system.group.',''),w=p['value']?.['common']?.['name']||u;typeof w=='object'&&(w=w['en']||w['de']||w['ru']||Object[bR(0x136)](w)[0x0]||u);let y=p['value']?.[bR(0x21d)]?.['desc']||'';typeof y==bR(0x1e3)&&(y=y['en']||y['de']||y['ru']||Object['values'](y)[0x0]||''),l[bR(0xb0)]({'id':u,'name':w,'desc':y}),console['log']('✅\x20[Visibility]\x20Found\x20group:',u,w);}}catch(A){console['warn'](bR(0x19b),A);}l[bR(0xb3)]===0x0&&(console['warn'](bR(0x1e0)),l[bR(0xb0)]({'id':bR(0x192),'name':'Administrator','desc':'Administrator\x20group'},{'id':'user','name':bR(0x1a7),'desc':bR(0x17d)})),this.#s=l,console[bR(0x179)](bR(0x169),this.#s);}catch(C){console['warn'](bR(0x19c),C),this.#s=[{'id':'administrator','name':bR(0x115),'desc':'Administrator\x20group'},{'id':'user','name':bR(0x1a7),'desc':'User\x20group'}];}return this.#s;}async['checkVisibility'](l){const bT=au;if(!l||!l[bT(0x1ad)])return{'visible':!0x0,'enabled':!0x0};try{if(l['groups']&&l['groups'][bT(0xb3)]>0x0){let m=this[bT(0x1a9)]||await this[bT(0x200)]['getCurrentUser'](),p=new Promise(y=>setTimeout(()=>y({'visible':!0x0,'enabled':!0x0}),0xfa0)),u=this[bT(0x200)]['sendTo'](this['namespace'],bT(0xe2),{'username':m,'allowedGroups':l['groups'],'action':l[bT(0x103)]||bT(0xcf)}),w=await Promise[bT(0x26c)]([u,p]);if(!w[bT(0x9a)]||!w[bT(0x1ad)])return w;}if(l[bT(0x1ea)]&&l['condition']&&l[bT(0x141)]!==void 0x0&&l[bT(0x141)]!==''){let y=(await this[bT(0x200)][bT(0x106)](l['objectId']))?.['val'],A=l['conditionValue'],C=!0x1;switch(l['condition']){case'==':C=y==A;break;case'!=':C=y!=A;break;case'>':C=parseFloat(y)>parseFloat(A);break;case'<':C=parseFloat(y)<parseFloat(A);break;case'>=':C=parseFloat(y)>=parseFloat(A);break;case'<=':C=parseFloat(y)<=parseFloat(A);break;}if(console[bT(0x179)]('📊\x20[Visibility]\x20Datapoint\x20condition\x20check:',{'objectId':l['objectId'],'currentValue':y,'condition':l[bT(0x23c)],'targetValue':A,'conditionMet':C}),C){let L=l[bT(0x103)]||'hide';return console[bT(0x179)](bT(0xd6),L),{'visible':L!==bT(0xcf),'enabled':L!==bT(0x1b6)};}}return console['log'](bT(0x213)),{'visible':!0x0,'enabled':!0x0};}catch(P){return console[bT(0x186)]('❌\x20[Visibility]\x20Check\x20failed:',P),{'visible':!0x0,'enabled':!0x0};}}},b=V['instance'];window[au(0x217)]=b;import{PropertiesHelper as j}from'@gokturk413/web-component-designer/dist/elements/services/propertiesService/services/PropertiesHelper.js';var W=class s{static ['instance']=new s();#e=new WeakMap();#t(l,m){const bU=au;if(!m[bU(0x9a)])l['style']['display']='none',l[bU(0x1b2)][bU(0x1b0)]=bU(0x10c);else{let n=this.#e[bU(0x1fc)](l)||'';l[bU(0x1b2)][bU(0xe1)]=n,l['style'][bU(0x1b0)]='';}m['enabled']?(l[bU(0x1b2)]['pointerEvents']='',l['style']['opacity']=''):(l[bU(0x1b2)]['pointerEvents']='none',l['style'][bU(0xac)]='0.5');}async[au(0x23d)](l,m,n){const bV=au;if(!m||m[bV(0xb3)]===0x0)return;this.#e['has'](l)||this.#e['set'](l,l[bV(0x1b2)]['display']||'');let p=await b[bV(0xe2)]({'enabled':!0x0,'groups':m,'action':n||'hide'});(!p['visible']||!p['enabled'])&&this.#t(l,p);}[au(0x10e)](l){const bW=au;let m=this.#e['get'](l);m!==void 0x0&&(l[bW(0x1b2)]['display']=m,this.#e['delete'](l)),l['style']['visibility']='',l['style'][bW(0x182)]='',l['style'][bW(0xac)]='';}async['scanAndApply'](l=document[au(0x10d)]){const bX=au;let m=l['querySelectorAll'](bX(0x19d));for(let p of m)try{let r=p['getAttribute'](bX(0x1b5))?.[bX(0x1df)](',')['filter'](w=>w)||[],u=p[bX(0x20a)](bX(0x1ca))||'hide';await this['applyGroupVisibility'](p,r,u);}catch(w){console[bX(0x186)](bX(0x20b),w);}}},E=W[au(0x185)],I=null;function rt(l,m){const bZ=au;function n(u){const bY=c;let w=u[bY(0xc7)]?u['getElementById'](m):u['querySelector']('#'+m);if(w)return w;for(let y of u['querySelectorAll']('*'))if(y['shadowRoot']){let A=n(y['shadowRoot']);if(A)return A;}return null;}let p=l[bZ(0xfd)]();for(;p instanceof ShadowRoot;){let r=n(p);if(r)return r;p=p['host']['getRootNode']();}return n(document[bZ(0x10d)])??document[bZ(0xc7)](m);}var R=new URL(au(0x9c),import.meta.url)[au(0xd2)];function lt(l){const c0=au;let m=l['tagName'][c0(0x15d)]();if(m==='circle'){let p=parseFloat(l['getAttribute']('cx')||0x0),r=parseFloat(l[c0(0x20a)]('cy')||0x0),u=parseFloat(l[c0(0x20a)]('r')||0x0);return'M\x20'+(p-u)+','+r+'\x20A\x20'+u+','+u+'\x200\x201,1\x20'+(p+u)+','+r+'\x20A\x20'+u+','+u+c0(0x117)+(p-u)+','+r+'\x20Z';}if(m===c0(0x14b)){let w=parseFloat(l[c0(0x20a)]('cx')||0x0),y=parseFloat(l[c0(0x20a)]('cy')||0x0),A=parseFloat(l[c0(0x20a)]('rx')||0x0),C=parseFloat(l[c0(0x20a)]('ry')||0x0);return'M\x20'+(w-A)+','+y+c0(0xaa)+A+','+C+c0(0x117)+(w+A)+','+y+'\x20A\x20'+A+','+C+'\x200\x201,1\x20'+(w-A)+','+y+'\x20Z';}if(m===c0(0x21c)){let L=parseFloat(l['getAttribute']('x')||0x0),P=parseFloat(l['getAttribute']('y')||0x0),S=parseFloat(l[c0(0x20a)](c0(0x21a))||0x0),T=parseFloat(l[c0(0x20a)]('height')||0x0);return'M\x20'+L+','+P+'\x20H\x20'+(L+S)+c0(0x1d1)+(P+T)+c0(0x26a)+L+'\x20Z';}if(m==='line'){let Y=l['getAttribute']('x1')||0x0,a0=l[c0(0x20a)]('y1')||0x0,a1=l['getAttribute']('x2')||0x0,a2=l['getAttribute']('y2')||0x0;return'M\x20'+Y+','+a0+'\x20L\x20'+a1+','+a2;}if(m===c0(0x206)||m===c0(0x1eb)){let a3=(l[c0(0x20a)](c0(0xf9))||'')['trim']()[c0(0x1df)](/[\s,]+/);if(a3[c0(0xb3)]<0x2)return null;let a4='M\x20'+a3[0x0]+','+a3[0x1];for(let a5=0x2;a5+0x1<a3[c0(0xb3)];a5+=0x2)a4+='\x20L\x20'+a3[a5]+','+a3[a5+0x1];return m==='polygon'&&(a4+='\x20Z'),a4;}return null;}function B(l){const c1=au;if(l['tagName'][c1(0x15d)]()===c1(0x125))return{'pathEl':l,'tempEl':null};let m=lt(l);if(!m)return{'pathEl':l,'tempEl':null};let n=l['closest'](c1(0x18e))??l[c1(0x268)],o=document['createElementNS']('http://www.w3.org/2000/svg',c1(0x125));return o[c1(0x1f6)]('d',m),o['setAttribute'](c1(0x8c),'none'),o[c1(0x1b2)][c1(0x1a5)]=c1(0x24b),n[c1(0x16f)](o),{'pathEl':o,'tempEl':o};}async function q(){return window['gsap']?window['gsap']:I||(I=new Promise(l=>{const c3=c;let m=o=>new Promise((p,u)=>{const c2=c;let w=document['createElement']('script');w['src']=o,w[c2(0x1f0)]=p,w[c2(0x210)]=u,document['head'][c2(0x16f)](w);}),n=window[c3(0x120)];window[c3(0x120)]=void 0x0,m(R+'gsap.min.js')[c3(0x9f)](()=>m(R+'MotionPathPlugin.min.js'))[c3(0x9f)](()=>m(R+'MorphSVGPlugin.min.js'))['then'](()=>{const c4=c3;window[c4(0x120)]=n,window['MotionPathPlugin']&&window[c4(0x177)][c4(0xb5)](window[c4(0x1fb)]),window[c4(0x97)]&&window['gsap'][c4(0xb5)](window['MorphSVGPlugin']),l(window['gsap']);})['catch'](()=>{const c5=c3;window[c5(0x120)]=n,console[c5(0xb1)](c5(0x14d),R),l(window[c5(0x177)]||null);});}),I);}function H(l){const c6=au;if(typeof l==c6(0x20d))return l;if(typeof l=='number')return l!==0x0;if(typeof l=='string'){let m=l[c6(0x15d)]();if(m===c6(0x197)||m==='1')return!0x0;if(m===c6(0x249)||m==='0')return!0x1;}return l;}function Q(l,m,p){const c7=au;if(!m||m==='exists')return!0x0;let u=parseFloat(l),w=parseFloat(p);if(!isNaN(u)&&!isNaN(w))switch(m){case'equal':return u===w;case c7(0x199):return u!==w;case'less_than':return u<w;case'less_equal':return u<=w;case'greater_than':return u>w;case c7(0x101):return u>=w;}let y=H(l),A=H(p);return typeof y==c7(0x20d)&&typeof A=='boolean'?m==='equal'?y===A:y!==A:m==='equal'?String(l)===String(p):String(l)!==String(p);}function ct(m,p){const c8=au;let u=parseFloat(m['duration'])||0x1,w=m['ease']||'power1.inOut',y=m[c8(0x134)]||c8(0xac),A=H(p),C=typeof A=='boolean'?A?0x1:0x0:parseFloat(p)||0x0,L={'duration':u,'ease':w==='none'?'none':w,'paused':!0x0,'repeat':parseInt(m[c8(0x86)])||0x0,'yoyo':m[c8(0xb8)]===!0x0||m['yoyo']===c8(0x197)};switch(y){case'rotation':L[c8(0x1ed)]=m[c8(0x175)]!=null?parseFloat(m[c8(0x175)]):C,m[c8(0x14c)]!=null&&(L['startAt']={'rotation':parseFloat(m['valueFrom'])}),L[c8(0x1c2)]=(m[c8(0x1ef)]||'50')+'%\x20'+(m[c8(0xa9)]||'50')+'%\x20'+(m['transformOriginZ']||'0');break;case'scale':L[c8(0x1ec)]=m[c8(0x175)]!=null?parseFloat(m['valueTo']):typeof A==c8(0x20d)?A?1.5:0x1:C,m['valueFrom']!=null&&(L['startAt']={'scale':parseFloat(m[c8(0x14c)])});break;case c8(0xac):L['opacity']=m['valueTo']!=null?parseFloat(m[c8(0x175)]):typeof A=='boolean'?A?0x1:0x0:C,m[c8(0x14c)]!=null&&(L['startAt']={'opacity':parseFloat(m['valueFrom'])});break;case c8(0x19a):L['x']=m['valueTo']!=null?parseFloat(m['valueTo']):typeof A=='boolean'?A?0x64:0x0:C,m[c8(0x14c)]!=null&&(L[c8(0x201)]={'x':parseFloat(m['valueFrom'])});break;case'translateY':L['y']=m['valueTo']!=null?parseFloat(m['valueTo']):typeof A=='boolean'?A?0x64:0x0:C,m['valueFrom']!=null&&(L[c8(0x201)]={'y':parseFloat(m['valueFrom'])});break;case c8(0x152):{let P=(T,Y)=>{const c9=c8;if(T==null)return{'x':Y,'y':0x0};let a0=String(T)['split'](',');return{'x':parseFloat(a0[0x0])||0x0,'y':a0[c9(0xb3)]>0x1&&parseFloat(a0[0x1])||0x0};},S=P(m[c8(0x175)],typeof A==c8(0x20d)?A?0x64:0x0:C);if(L['x']=S['x'],L['y']=S['y'],m[c8(0x14c)]!=null){let T=P(m['valueFrom'],0x0);L['startAt']={'x':T['x'],'y':T['y']};}break;}case c8(0x12e):L[c8(0x12e)]=m[c8(0x175)]!=null?m[c8(0x175)]:typeof A=='boolean'?A?'100px':'0px':C+'px',m['valueFrom']!=null&&(L[c8(0x201)]={'left':isNaN(m['valueFrom'])?m[c8(0x14c)]:m['valueFrom']+'px'});break;case'top':L['top']=m[c8(0x175)]!=null?m[c8(0x175)]:typeof A=='boolean'?A?'100px':'0px':C+'px',m[c8(0x14c)]!=null&&(L['startAt']={'top':isNaN(m[c8(0x14c)])?m[c8(0x14c)]:m[c8(0x14c)]+'px'});break;case'skew':{let Y=m['valueTo']!=null?parseFloat(m['valueTo']):typeof A=='boolean'?A?0x2d:0x0:C;L[c8(0x18b)]=Y,L['skewY']=Y;break;}case c8(0x8c):L['fill']=m[c8(0x8e)]||c8(0x235),m['fillColorFrom']&&(L['startAt']={'fill':m['fillColorFrom']});break;case c8(0x245):L['color']=m['fillColorTo']||c8(0x235),m[c8(0xe8)]&&(L[c8(0x201)]={'color':m[c8(0xe8)]});break;case'backgroundColor':L['backgroundColor']=m['fillColorTo']||'#ff0000',m[c8(0xe8)]&&(L['startAt']={'backgroundColor':m[c8(0xe8)]});break;case c8(0x209):L['transform']=m['valueTo']||String(p),m['valueFrom']&&(L['startAt']={'transform':m[c8(0x14c)]});break;case c8(0x18e):if(m['svgAttr']){let a0=m['svgAttr'];a0==='fill'||a0==='color'?L[a0]=typeof A=='boolean'?A?m['fillColorTo']||c8(0x235):m['fillColorFrom']||c8(0xdb):m['fillColorTo']||'#ff0000':a0==='stroke-dasharray'?L[a0]=m['valueTo']||'10':L[a0]=m[c8(0x175)]!=null?parseFloat(m[c8(0x175)]):C;}break;default:L[c8(0xac)]=m[c8(0x175)]!=null?parseFloat(m['valueTo']):typeof A=='boolean'?A?0x1:0x0:C;}return L;}function O(l){const ca=au;for(let m of l)try{m[ca(0xef)]==='event'?m['target']['removeEventListener'](m[ca(0x16e)],m['handler']):m['type']===ca(0x1af)?b['connection'][ca(0x211)](m['oid'],m[ca(0xc5)]):m['type']==='delegate'&&O(m['innerSubs']);}catch{}l[ca(0xb3)]=0x0;}async function ht(m,p,u,y){const cb=au;let A=[],C=/\{([^}]+)\}/g,L;for(;(L=C[cb(0xe9)](m))!==null;)A[cb(0xb0)](L[0x1]);if(A['length']===0x0)return;let P={};for(let Y of A)P[Y]=null;let S=[],T=async()=>{if(Object['values'](P)['some'](a1=>a1==null))return;let a0=m;for(let [a1,a2]of Object['entries'](P))a0=a0['replace']('{'+a1+'}',a2);O(S),await F(a0,p,u,S);};for(let a0 of A){let a1=async(a2,a3)=>{a3?.['val']!=null&&(P[a0]=String(a3['val']),await T());};try{b['connection']['subscribeState'](a0,a1),y['push']({'type':cb(0x1af),'oid':a0,'handler':a1});}catch{}try{let a2=await b['connection'][cb(0x106)](a0);a2?.['val']!=null&&(P[a0]=String(a2['val']));}catch{}}await T(),y[cb(0xb0)]({'type':'delegate','innerSubs':S});}async function F(m,p,u,w){const cd=au;if(!m)return;if(m['includes']('{')&&m['includes']('}')){await ht(m,p,u,w);return;}let y=()=>{const cc=c;let A=p[cc(0xfd)]();return A&&A!==document?A[cc(0x1f9)]??null:null;};if(m[cd(0xd9)]('??')){let A=m[cd(0x109)](0x2),C=y();if(!C)return;let L=()=>{const ce=cd;let S=C[A]??C[ce(0x20a)]?.(A);S!=null&&u(S);};L();let P=()=>L();C[cd(0x87)](A+'-changed',P),w[cd(0xb0)]({'type':cd(0x16e),'target':C,'event':A+'-changed','handler':P});}else{if(m['startsWith']('?')){let S=m['slice'](0x1),T=y();if(!T)return;let Y=[],a0=async()=>{O(Y);let a2=T[S]??T['getAttribute']?.(S);a2&&await F(a2,p,u,Y);};await a0();let a1=()=>a0();T['addEventListener'](S+'-changed',a1),w['push']({'type':cd(0x16e),'target':T,'event':S+cd(0x90),'handler':a1}),w[cd(0xb0)]({'type':cd(0x22b),'innerSubs':Y});}else{if(m['startsWith']('state:')){let a2=m['slice'](0x6),a3=(a4,a5)=>{const cf=cd;a5?.['val']!=null&&u(a5[cf(0x14a)]);};try{b['connection']['subscribeState'](a2,a3),w[cd(0xb0)]({'type':cd(0x1af),'oid':a2,'handler':a3});}catch{}try{let a4=await b['connection'][cd(0x106)](a2);a4?.[cd(0x14a)]!=null&&u(a4['val']);}catch{}}else{if(!m['startsWith'](cd(0x1f5))){let a5=m;a5[cd(0xd9)]('.')&&(a5=(y()?.['_getRelativeSignalsPath']?.()??'')+a5[cd(0x109)](0x1));let a6=(a7,a8)=>{a8?.['val']!=null&&u(a8['val']);};try{a5[cd(0xd9)]('local_')?b[cd(0x15b)](a5,a6):b['connection']['subscribeState'](a5,a6),w['push']({'type':'state','oid':a5,'handler':a6});}catch{}try{let a7;a5['startsWith'](cd(0x100))?a7=await b[cd(0x106)](a5):a7=await b['connection']['getState'](a5),a7?.[cd(0x14a)]!=null&&u(a7[cd(0x14a)]);}catch{}}}}}}var U=class{constructor(l,m){const cg=au;this[cg(0x19f)]=l,this['cfg']=m,this[cg(0xa8)]=null,this[cg(0x137)]=[];}async['init'](){const ch=au;if(await q(),!window[ch(0x177)])return;let l=this[ch(0x212)]['controls']||{},m=async(w,y)=>{const ci=ch;let A=l[w];if(!A)return;A['condition_bind']?.[ci(0x24e)]&&await F(A[ci(0x146)][ci(0x24e)],this['element'],L=>{const cj=ci;A[cj(0x23c)]=String(L);},this[ci(0x137)]),A['value_bind']?.['signal']&&await F(A['value_bind']['signal'],this['element'],L=>{A['value']=String(L);},this[ci(0x137)]);let C=A['oid_bind']?.['signal']||A['oid'];C&&await F(C,this['element'],L=>{const ck=ci;Q(L,A[ck(0x23c)]||'equal',A['value']??'true')&&y();},this['_subs']);};await m('play',()=>this['_play']()),await m(ch(0x223),()=>this[ch(0xa8)]?.[ch(0x223)]()),await m(ch(0x22d),()=>this['tween']?.['play']()),await m('stop',()=>this['tween']?.['pause'](0x0)),await m(ch(0x262),()=>this[ch(0xa8)]?.[ch(0x262)]());let p=[ch(0x134),'valueFrom','valueTo',ch(0xc6),ch(0x168),ch(0x86),ch(0xb8),ch(0xe8),ch(0x8e),ch(0x1ef),'transformOriginY','svgAttr',ch(0x256),'alignToPath',ch(0xd1),'dashLen',ch(0xae),'color','direction',ch(0x18f),ch(0x1a4),ch(0x153),ch(0x12c)],u=null;for(let w of p){let y=this[ch(0x212)][w+'_bind'];if(!y?.['signal'])continue;let A=w;await F(y[ch(0x24e)],this['element'],C=>{const cl=ch;if(this['cfg'][A]=C,!!this['tween']){if(A===cl(0xc6)&&this[cl(0xa8)][cl(0x17f)]){let L=parseFloat(this['tween'][cl(0x17f)]['duration'])||0x1,P=parseFloat(C)||0x1;this['tween'][cl(0x128)](L/P);return;}clearTimeout(u),u=setTimeout(()=>{const cm=cl;this[cm(0xa8)]&&!this[cm(0xa8)][cm(0x139)]()&&this['_play']();},0x3c);}},this[ch(0x137)]);}}['_play'](){const cn=au;let L=window['gsap'];if(!L)return;this[cn(0x19f)]['style']['display']===cn(0x18d)&&(this['element']['style'][cn(0xe1)]=''),this['tween']&&this[cn(0xa8)]['kill']();let P=this['cfg'][cn(0x134)];if(P==='motionPath'&&this['cfg']['pathId']){let T=rt(this[cn(0x19f)],this['cfg']['pathId']);if(!T){console[cn(0xb1)]('[AnimationService]\x20motionPath:\x20path\x20element\x20not\x20found:',this['cfg'][cn(0x256)]);return;}T[cn(0x1d0)]['toLowerCase']()===cn(0x18e)&&(T=T['querySelector'](cn(0x23b))??T),this[cn(0x187)]&&(this[cn(0x187)]['remove'](),this['_tempPathEl']=null);let {pathEl:Y,tempEl:a0}=B(T);this['_tempPathEl']=a0,this['tween']=L['to'](this[cn(0x19f)],{'duration':parseFloat(this['cfg'][cn(0xc6)])||0x1,'ease':this['cfg'][cn(0x168)]||'none','repeat':parseInt(this[cn(0x212)]['repeat'])||0x0,'yoyo':this[cn(0x212)]['yoyo']===!0x0,'paused':!0x0,'motionPath':{'path':Y,'align':this['cfg'][cn(0x10f)]?Y:!0x1,'autoRotate':this[cn(0x212)]['orientToPath']===!0x0,'alignOrigin':[0.5,0.5],'start':this[cn(0x212)]['valueFrom']?parseFloat(this['cfg']['valueFrom'])/0x64:0x0,'end':this['cfg'][cn(0x175)]?parseFloat(this[cn(0x212)]['valueTo'])/0x64:0x1}});}else{if(P==='morphSVG'&&this[cn(0x212)][cn(0x175)])this[cn(0xa8)]=L['to'](this['element'],{'duration':parseFloat(this['cfg']['duration'])||0x1,'ease':this['cfg']['ease']||'none','repeat':parseInt(this['cfg']['repeat'])||0x0,'yoyo':this[cn(0x212)][cn(0xb8)]===!0x0,'paused':!0x0,'morphSVG':this['cfg'][cn(0x175)]});else{if(P==='flowDash'){this['_destroyPathFlowEls'](L);let a1=parseFloat(this[cn(0x212)]['dashLen'])||0xa,a2=parseFloat(this[cn(0x212)]['gapLen'])||0x14,a3=this['cfg']['color']||null,a4=this[cn(0x212)][cn(0xe7)]===cn(0x262),a5=this['element'][cn(0x1d0)][cn(0x15d)]()===cn(0x18e)?this['element']['querySelector']('path,line,polyline,polygon,rect,circle,ellipse')||this[cn(0x19f)]:this['element'];a5[cn(0x1b2)][cn(0x107)]=a1+'\x20'+a2,a3&&(a5['style'][cn(0x17e)]=a3);let a6=a4?0x0:a1+a2,a7=a4?a1+a2:0x0;this[cn(0xa8)]=L['fromTo'](a5,{'attr':{'stroke-dashoffset':a6}},{'attr':{'stroke-dashoffset':a7},'duration':parseFloat(this['cfg'][cn(0xc6)])||0x1,'ease':'none','repeat':-0x1,'paused':!0x0});}else{if(P==='pathFlow'){this['_destroyPathFlowEls'](L),this[cn(0x1e9)]=[];let a8=parseInt(this['cfg']['count'])||0x5,a9=this[cn(0x212)][cn(0x153)]||'triangle',aa=this[cn(0x212)]['color']||cn(0x224),ab=parseFloat(this['cfg']['size'])||0x8,ac=this['cfg'][cn(0xe7)]==='reverse',ad=this['cfg'][cn(0x12c)]||'',ae=parseFloat(this['cfg'][cn(0xc6)])||0x2,af=this[cn(0x19f)]['tagName'][cn(0x15d)]()==='svg'?this[cn(0x19f)][cn(0x161)]('path,line,polyline,polygon,rect,circle,ellipse')||this['element']:this['element'],ag=af['ownerSVGElement']||af['closest'](cn(0x18e))||this[cn(0x19f)];if(!ag)return;this['_tempPathEl']&&(this[cn(0x187)]['remove'](),this[cn(0x187)]=null);let {pathEl:ah,tempEl:ai}=B(af);this['_tempPathEl']=ai;let aj='http://www.w3.org/2000/svg',ak=()=>{const co=cn;let am;switch(a9){case'triangle':am=document['createElementNS'](aj,'polygon'),am['setAttribute']('points',ab+co(0x1d4)+-ab/0x2+co(0x149)+ab/0x2);break;case co(0xcd):am=document[co(0x1ae)](aj,co(0x125)),am['setAttribute']('d','M'+ab+co(0xad)+-ab/0x2+'\x20L'+ab*0.35+co(0xad)+ab/0x2+'\x20Z');break;case co(0xde):am=document[co(0x1ae)](aj,co(0xde)),am['setAttribute']('r',String(ab/0x2));break;case'square':am=document[co(0x1ae)](aj,co(0x21c)),am['setAttribute']('width',String(ab)),am[co(0x1f6)]('height',String(ab)),am['setAttribute']('x',String(-ab/0x2)),am[co(0x1f6)]('y',String(-ab/0x2));break;case co(0x194):{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['push'](ap*Math['cos'](aq)+','+ap*Math['sin'](aq));}am['setAttribute'](co(0xf9),an['join']('\x20'));break;}case co(0xa0):am=document['createElementNS'](aj,'path'),am['setAttribute']('d',ad||'M'+ab+co(0xad)+-ab/0x2+co(0x149)+ab/0x2+'\x20Z');break;default:am=document[co(0x1ae)](aj,co(0x21c)),am[co(0x1f6)](co(0x21a),String(ab*0x2)),am[co(0x1f6)]('height',String(ab/0x3)),am['setAttribute']('x',String(-ab)),am['setAttribute']('y',String(-ab/0x6));}return am[co(0x1f6)](co(0x8c),aa),ag['appendChild'](am),this[co(0x1e9)][co(0xb0)](am),am;},al=L['timeline']({'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':cn(0x18d)},0x0);}this[cn(0xa8)]=al;}else{let aq=ct(this[cn(0x212)],!0x0);this[cn(0xa8)]=L['to'](this[cn(0x19f)],aq);}}}}this['tween']&&this['tween'][cn(0x258)]();}[au(0x25a)](l){const cp=au;if(this['_pathFlowEls']){for(let m of this['_pathFlowEls'])l&&l['killTweensOf'](m),m[cp(0x1c0)]();this['_pathFlowEls']=null;}}['destroy'](){const cq=au;let l=window['gsap'];this['tween']&&(this['tween'][cq(0xbb)](),this['tween']=null),this['_tempPathEl']&&(this[cq(0x187)][cq(0x1c0)](),this['_tempPathEl']=null),this[cq(0x25a)](l),O(this['_subs']);}},$=new WeakMap(),D=new WeakMap();async function z(m){const cr=au;await q();let p=(m||document)['querySelectorAll'](cr(0x1f7));for(let u of p)try{let w=JSON['parse'](u['getAttribute'](cr(0x218))),y=Array['isArray'](w)?w:[w],A=$[cr(0x1fc)](u)||[];for(let L of A)L['destroy']();let C=[];for(let P of y){if(!P||typeof P!=cr(0x1e3))continue;let S=new U(u,P);await S['init'](),C['push'](S);}$['set'](u,C);}catch(T){console['warn']('[AnimationService]\x20data-animation\x20parse\x20error\x20on\x20element:',u,T);}}function tt(l){const cs=au;let m=(l||document)['querySelectorAll']('[data-animation]');for(let n of m){let p=$['get'](n)||[];for(let r of p)r[cs(0xeb)]();$['delete'](n);}}async function J(m){const cu=au;await q();let p=(m||document)[cu(0xea)]('[data-effects]');for(let u of p)try{let w=JSON['parse'](u['getAttribute']('data-effects')),y=Array['isArray'](w)?w:[w],A=D[cu(0x1fc)](u)||[];for(let L of A)L?.['cleanup']&&L['cleanup']();let C=[];for(let P of y){if(!P||typeof P!=cu(0x1e3))continue;let S=await ut(u,P);C[cu(0xb0)]({'cleanup':S});}D['set'](u,C);}catch(T){console[cu(0xb1)](cu(0x23a),u,T);}}function et(l){const cv=au;let m=(l||document)['querySelectorAll']('[data-effects]');for(let n of m){let p=D['get'](n)||[];for(let r of p)r?.['cleanup']&&r['cleanup']();D[cv(0xbf)](n);}}async function ut(m,p){const cw=au;let u=window[cw(0x177)];if(!u)return null;let y=parseFloat(p[cw(0xc6)])||0.5,A=parseFloat(p['delay'])||0x0,C=p[cw(0x168)]||'power2.out',L=parseInt(p['repeat'])||0x0,P=()=>{const cx=cw;switch(p['type']){case cx(0x1a6):u[cx(0x1fa)](m,{'opacity':0x0},{'opacity':0x1,'duration':y,'ease':C,'delay':A});break;case'fadeOut':u['to'](m,{'opacity':0x0,'duration':y,'ease':C,'delay':A});break;case'slideInLeft':u[cx(0x1fa)](m,{'x':-0x64,'opacity':0x0},{'x':0x0,'opacity':0x1,'duration':y,'ease':C,'delay':A});break;case cx(0x24d):u[cx(0x1fa)](m,{'x':0x64,'opacity':0x0},{'x':0x0,'opacity':0x1,'duration':y,'ease':C,'delay':A});break;case'slideInTop':u['fromTo'](m,{'y':-0x64,'opacity':0x0},{'y':0x0,'opacity':0x1,'duration':y,'ease':C,'delay':A});break;case cx(0x13e):u['fromTo'](m,{'y':0x64,'opacity':0x0},{'y':0x0,'opacity':0x1,'duration':y,'ease':C,'delay':A});break;case'bounce':u['fromTo'](m,{'y':0x0},{'y':-0x14,'duration':y/0x2,'ease':cx(0x122),'yoyo':!0x0,'repeat':L||0x3,'delay':A});break;case'pulse':u[cx(0x1fa)](m,{'scale':0x1},{'scale':1.1,'duration':y/0x2,'ease':cx(0x22e),'yoyo':!0x0,'repeat':L||0x3,'delay':A});break;case'shake':u[cx(0x1fa)](m,{'x':0x0},{'x':0xa,'duration':y/0x6,'ease':cx(0x18d),'yoyo':!0x0,'repeat':L||0x5,'delay':A});break;case cx(0x13d):u['fromTo'](m,{'filter':cx(0xdc)},{'filter':'drop-shadow(0\x200\x20'+(p['glowSize']||0xa)+cx(0xa7)+(p[cx(0x171)]||cx(0xa5))+')','duration':y,'ease':C,'yoyo':L>0x0,'repeat':L,'delay':A});break;case'blur':u[cx(0x1fa)](m,{'filter':cx(0x174)},{'filter':cx(0x1ee)+(p['blurAmount']||0x5)+cx(0xc1),'duration':y,'ease':C,'delay':A});break;case'spin':u['to'](m,{'rotation':0x168,'duration':y,'ease':cx(0x18d),'repeat':L||-0x1,'delay':A});break;case cx(0x108):u['fromTo'](m,{'rotationY':0x0},{'rotationY':0x168,'duration':y,'ease':C,'delay':A});break;case'pulseRing':{let a2=parseFloat(p['scale'])||2.5,a3=p[cx(0x168)]||'power1.out',a4=!p['trigger']||p[cx(0x19e)]===cx(0xd7),a5=L!==0x0?L:a4?-0x1:0x0;u[cx(0x1fa)](m,{'scale':0x0,'opacity':p['opacityFrom']!=null?parseFloat(p['opacityFrom']):0x1},{'scale':a2,'opacity':0x0,'duration':y,'ease':a3,'repeat':a5,'delay':A,'transformOrigin':'50%\x2050%'});break;}case'flowDash':{let a6=parseFloat(p[cx(0x181)])||0xa,a7=parseFloat(p['gapLen'])||0x14,a8=p[cx(0x245)]||null,a9=p['direction']==='reverse'?cx(0x262):cx(0x1a0),aa=m['tagName']['toLowerCase']()==='svg'&&m[cx(0x161)]('path,line,polyline,polygon,rect,circle,ellipse')||m;aa['style']['strokeDasharray']=a6+'\x20'+a7,a8&&(aa['style']['stroke']=a8),Y=aa['animate']([{'strokeDashoffset':a6+a7},{'strokeDashoffset':0x0}],{'duration':y*0x3e8,'iterations':0x1/0x0,'easing':'linear','direction':a9,'delay':A*0x3e8});break;}case'pathFlow':{let ab=parseInt(p[cx(0x18f)])||0x5,ac=p[cx(0x153)]||'triangle',ad=p[cx(0x245)]||'#0066ff',ae=parseFloat(p[cx(0x1a4)])||0x8,af=p['direction']==='reverse',ag=m['tagName'][cx(0x15d)]()==='svg'&&m[cx(0x161)]('path,line,polyline,polygon,rect,circle,ellipse')||m,ah=ag['ownerSVGElement']||ag[cx(0xcb)]('svg')||m;if(!ah)break;let {pathEl:ai,tempEl:aj}=B(ag);aj&&a0['push'](aj);let ak='http://www.w3.org/2000/svg',al=()=>{const cy=cx;let am;switch(ac){case'triangle':am=document['createElementNS'](ak,'polygon'),am[cy(0x1f6)](cy(0xf9),ae+',0\x200,'+-ae/0x2+'\x200,'+ae/0x2);break;case cy(0xcd):am=document[cy(0x1ae)](ak,cy(0x125)),am['setAttribute']('d','M'+ae+',0\x20L0,'+-ae/0x2+'\x20L'+ae*0.35+cy(0xad)+ae/0x2+'\x20Z');break;case cy(0xde):am=document[cy(0x1ae)](ak,cy(0xde)),am['setAttribute']('r',String(ae/0x2));break;case'square':am=document['createElementNS'](ak,cy(0x21c)),am[cy(0x1f6)](cy(0x21a),String(ae)),am[cy(0x1f6)](cy(0x17c),String(ae)),am['setAttribute']('x',String(-ae/0x2)),am[cy(0x1f6)]('y',String(-ae/0x2));break;case'star':{am=document['createElementNS'](ak,cy(0x1eb));let an=[];for(let ao=0x0;ao<0xa;ao++){let ap=ao%0x2===0x0?ae:ae*0.4,aq=ao*Math['PI']/0x5-Math['PI']/0x2;an['push'](ap*Math[cy(0x96)](aq)+','+ap*Math[cy(0x1b3)](aq));}am['setAttribute']('points',an[cy(0xf1)]('\x20'));break;}case cy(0xa0):{let ar=p[cy(0x12c)]||'M'+ae+cy(0xad)+-ae/0x2+cy(0x149)+ae/0x2+'\x20Z';am=document[cy(0x1ae)](ak,'path'),am['setAttribute']('d',ar);break;}default:am=document[cy(0x1ae)](ak,cy(0x21c)),am[cy(0x1f6)]('width',String(ae*0x2)),am[cy(0x1f6)](cy(0x17c),String(ae/0x3)),am['setAttribute']('x',String(-ae)),am['setAttribute']('y',String(-ae/0x6));break;}return am[cy(0x1f6)](cy(0x8c),ad),ah[cy(0x16f)](am),a0['push'](am),am;};for(let am=0x0;am<ab;am++){let an=al(),ao=af?0x1-am/ab:am/ab,ap=af?-(am/ab):am/ab+0x1;u['to'](an,{'motionPath':{'path':ai,'align':ai,'autoRotate':!0x0,'alignOrigin':[0.5,0.5],'start':ao,'end':ap},'duration':y,'repeat':-0x1,'ease':cx(0x18d),'delay':A});}break;}}},S=null,T=null,Y=null,a0=[],a1=[];if(p[cw(0x19e)]===cw(0xd7))P();else{if(p[cw(0x19e)]==='hover')S=P,m['addEventListener']('mouseenter',S);else{if(p['trigger']==='click')T=P,m[cw(0x87)](cw(0x21e),T);else{if(p[cw(0x19e)]===cw(0x18c)){p['condition_bind']?.[cw(0x24e)]&&await F(p['condition_bind'][cw(0x24e)],m,a3=>{p['condition']=String(a3);},a1),p['conditionValue_bind']?.[cw(0x24e)]&&await F(p[cw(0x231)]['signal'],m,a3=>{p['conditionValue']=String(a3);},a1);let a2=p['oid_bind']?.['signal']||p['oid'];a2&&await F(a2,m,a3=>{const cz=cw;if(Q(a3,p[cz(0x23c)]||cz(0x178),p[cz(0x141)]??'true'))P();else{u['killTweensOf'](m),Y&&(Y[cz(0xa2)](),Y=null);for(let a4 of a0)u[cz(0xff)](a4),a4['remove']();a0['length']=0x0;}},a1);}}}}return()=>{const cA=cw;S&&m['removeEventListener'](cA(0x250),S),T&&m[cA(0x237)]('click',T),O(a1),Y&&Y['cancel']();for(let a3 of a0)u[cA(0xff)](a3),a3['remove']();};}function a(){const cX=['head','saveObject','flex-start','tab-labels','cos','MorphSVGPlugin','defineProperty','_scheduleControlsAggregate','visible','translations','../../vendor/gsap/','padding','flex','then','custom','createContextualFragment','cancel','getReader','projects','yellow','from','px\x20','tween','transformOriginY','\x20A\x20','3dcontrol','opacity',',0\x20L0,','gapLen','/widgets/','push','warn','getCurrentUser','length','configPath','registerPlugin','init','Error\x20reading\x20global\x20','yoyo','_getObjectFromFile','isDir','kill','grafanaEnabled','saveImage','4388748jvXHly','delete','active','px)','position','getAdditionalFile','getOwnPropertyDescriptor','handler','duration','getElementById','_saveObjectToFile','search','assignAllScripts','closest','sendCommand','arrow','applyVisibility','hide','_scheduleGlobalAggregate','orientToPath','href','removeProject','iobrokerHost','visibilityGroups','✅\x20[Visibility]\x20Datapoint\x20condition\x20met\x20→\x20Action:','load','nowrap','startsWith','decode','#000000','drop-shadow(0\x200\x200px\x20rgba(0,0,0,0))','has','circle','url','encode','display','checkVisibility','mywebui.0','write','/data/config.json','settings','direction','fillColorFrom','exec','querySelectorAll','destroy','100042eUirNS','clientId','nodeType','type','fontDeclarations','join','shadowRoot','getWebuiObject','getProjects','handleCommand','gridTemplateRows','.control.project','_gunzipBytes','points','stringify','resolve','waitForFirstConnection','getRootNode','globalScriptInstance','killTweensOf','local_','greater_equal','sendCommand\x20skipped\x20(no\x20write\x20permission\x20on\x20control\x20states):','action','appShell','webuiCustomControlSymbol','getState','strokeDasharray','flip','slice','wrap','pathname','hidden','body','removeVisibility','alignToPath','indexOf','done','additionalFilesChanged','namespaceProjects','imagesChanged','Administrator','getObjectView','\x200\x201,1\x20','number','_socket','adapterName','location','translationsChanged','namespace','role','emit','define','mywebui','power2.out','projects.json','html','path','tabLabels','all','timeScale','config.json','loadAllCustomControls','globalStyle','customShapeD','_setupDynamicProperties','left','9581520jkoPkd','setLanguage','keys','replaceAll','s-all.dat','effect','application/javascript','values','_subs','background','paused','system.user.','getCustomControlNames','dynamic-property-defs','glow','slideInBottom','readable','group','conditionValue','getGlobalObject','screen','connectionInfo','unshift','condition_bind','string','construct','\x200,','val','ellipse','valueFrom','[AnimationService]\x20Failed\x20to\x20load\x20GSAP\x20from\x20local\x20path:','_bindingsRefresh','namespaceGlobal','.control','🔐\x20[Visibility]\x20Final\x20user\x20object:','translate','shape','dispatchEvent','removeThumbnail','.screen','createGlobalFolder','applyAllBindings','parse','prototype','subscribeState','_controlNames','toLowerCase','createImportmap','imagePrefix','get3DScreen','querySelector','flexDirection','.data','includes','gridTemplateColumns','connectedCallback','_assignEvent','ease','👥\x20[Visibility]\x20User\x20groups\x20loaded:','/tmp.fld','relative','layout','ack','event','appendChild','✅\x20[Visibility]\x20User\x20is\x20member\x20of\x20group:\x20','glowColor','orientation','user','blur(0px)','valueTo','test','gsap','equal','log','CompressionStream','rows','height','User\x20group','stroke','vars','getGlobalSubFolders','dashLen','pointerEvents','justifyContent','clear','instance','error','_tempPathEl','uiReload','1oXPUnl','globalScript','skewX','oid','none','svg','count','getAllNames','customControl\x20','administrator','filter','star','getCustomControl','cloneNode','true','call','not_equal','translateX','⚠️\x20[Visibility]\x20getObjectView\x20failed:','⚠️\x20[Visibility]\x20Failed\x20to\x20load\x20user\x20groups:','[data-visibility-groups]','trigger','element','normal','system.group.','waitForReady','thumbnails/','size','cssText','fadeIn','User','alignItems','userName','3277948kFWKJn','translations.json','unsubscribeObject','enabled','createElementNS','state','visibility','internal','style','sin','gzip','data-visibility-groups','disable','toString','.png','read','block','members','addedNodes','uiPlaySound','webui-','getLocalStateNames','remove','Error\x20saving\x20thumbnail:','transformOrigin','splice','3dscreens/','hasAttribute','image','controls','9821637vsZjgu','readFile','data-visibility-action','adapter','control','controls-all.dat','refreshView','webui-current-project','tagName','\x20V\x20','_saveBinaryToFile','globalPath',',0\x200,','deleteFolder','additionalFilePrefix','local_language','.control.data','.3dscreen','uiChangeView','runtime.html','screens/','disconnectedCallback','onmessage','split','⚠️\x20[Visibility]\x20No\x20groups\x20found,\x20using\x20defaults','getUserGroups','Error\x20reading\x203D\x20Screen','object','file','_cleanProjectName','visualization-icons','connecting...','system','_pathFlowEls','objectId','polygon','scale','rotation','blur(','transformOriginX','onload','ioBroker\x20handler\x20ready.','substring','2264020BxoFfl','_getRelativeSignalsPath','object:','setAttribute','[data-animation]','flexWrap','host','fromTo','MotionPathPlugin','get','name','saveThumbnail','default','connection','startAt','system.group.香','getScreen','readDir','writeFile64','polyline','\x20loaded','could\x20not\x20determine\x20current\x20project','transform','getAttribute','[Visibility]\x20Group\x20check\x20error:','globalStylesheet','boolean','.control.clientIds','application/octet-stream','onerror','unsubscribeState','cfg','✅\x20[Visibility]\x20All\x20checks\x20passed\x20→\x20Element\x20visible\x20and\x20enabled','.3dcontrol','🔐\x20[Visibility]\x20Current\x20user\x20name:','currentProject','IOB','data-animation','createFolder','width','getObjectList','rect','common','click','getPrototypeOf','saveTranslations','getItem','getObject','pause','#0066ff','no\x20','getGlobalObjectNames','bindingsHelper','fontDeclarationsStylesheet','getSubFolders','objectsChanged','delegate','visibilityEnabled','resume','power2.inOut','_propertiesDictionary','removeObject','conditionValue_bind','headerTags','endsWith','getWriter','#ff0000','getSignalInformation','removeEventListener','_gzipBytes','getAdditionalFileNames','[AnimationService]\x20data-effects\x20parse\x20error\x20on\x20element:','path,\x20circle,\x20ellipse,\x20rect,\x20polyline,\x20polygon','condition','applyGroupVisibility','set','observe','red','reload','horizontal','innerHTML','additionalfiles/','color','\x20attribute','valueChangedCallbacks','\x20controls)','false','language','visibility:hidden;pointer-events:none;','setItem','slideInRight','signal','subscribeObject','mouseenter','webui-split-container','camelToDashCase','isNaN','icon','531216trrOjD','pathId','renameFile','play','deleteFile','_destroyPathFlowEls','createRange','template','catch','mimeType','globalConfig','isArray','map','reverse','getAllGlobalNames','constructor','.control.command','_broadcastChannel','gap','parentElement','error\x20writing\x20global\x20','\x20H\x20','3dcontrols/','race','datetime','images/','namespaceFiles','value','properties','removeFolder','repeat','addEventListener','setState','_readyPromises','objectChanged','config','fill','3dscreen','fillColorTo','IobrokerWebuiCustomControl','-changed','connectionState'];a=function(){return cX;};return a();}import{PropertiesHelper as k}from'@gokturk413/web-component-designer/dist/elements/services/propertiesService/services/PropertiesHelper.js';var M=au(0x13c);function dt(l){const cB=au;try{let m=l['getAttribute'](M);if(m){let n=JSON['parse'](m);if(Array[cB(0x260)](n))return n[cB(0x193)](o=>o&&o['name']);}}catch(o){console[cB(0xb1)]('invalid\x20'+M+cB(0x246),o,l);}return[];}function pt(l,m){const cC=au;let n=Object['getPrototypeOf'](l);for(;n&&n!==HTMLElement['prototype'];){let o=Object['getOwnPropertyDescriptor'](n,m);if(o)return o;n=Object[cC(0x21f)](n);}return null;}function G(l){const cD=au;let m=dt(l);for(let n of m){let p=n['name'];if(Object[cD(0xc4)](l,p))continue;let u=pt(l,p);u&&(u[cD(0x1fc)]||u['set'])?Object['defineProperty'](l,p,{'get'(){return u['get']?u['get']['call'](this):void 0x0;},'set'(y){const cE=cD;(u[cE(0x1fc)]?u['get'][cE(0x198)](this):void 0x0)!==y&&(u['set']?.['call'](this,y),this[cE(0x14e)]?.(p),this['dispatchEvent'](new CustomEvent(k['camelToDashCase'](p)+cE(0x90),{'detail':{'newValue':y}})));},'enumerable':!0x0,'configurable':!0x0}):Object[cD(0x98)](l,p,{'get'(){return this['_'+p];},'set'(y){const cF=cD;this['_'+p]!==y&&(!Number[cF(0x253)](this['_'+p])||!Number['isNaN'](y))&&(this['_'+p]=y,this[cF(0x14e)]?.(p),this[cF(0x154)](new CustomEvent(k['camelToDashCase'](p)+cF(0x90),{'detail':{'newValue':y}})));},'enumerable':!0x0,'configurable':!0x0});let w=l[cD(0x20a)](k['camelToDashCase'](p))??n['default'];w!=null&&(n['type']===cD(0x118)?w=parseFloat(w):n['type']===cD(0x20d)&&(w=w===''||w===!0x0||w==='true'),u?l[p]=w:l['_'+p]=w);}}function it(l){const cG=au;l instanceof Element&&l[cG(0x1c5)](M)&&G(l);for(let m of l[cG(0xea)]('['+M+']'))G(m);}var ft=[au(0xe1),au(0x162),au(0x1f8),'justifyContent','alignItems',au(0x267),'padding',au(0x165),'gridTemplateRows'];function gt(l){const cH=au;let m={};if(!l||!l[cH(0xef)]||l['type']==='none')return m;if(l['type']==='flex')m[cH(0xe1)]=cH(0x9e),m[cH(0x162)]=l['direction']||'row',m['flexWrap']=l[cH(0x10a)]||cH(0xd8),m['justifyContent']=l[cH(0x183)]||cH(0x94),m[cH(0x1a8)]=l[cH(0x1a8)]||'stretch',l[cH(0x267)]&&(m['gap']=l['gap']),l['padding']&&(m[cH(0x9d)]=l[cH(0x9d)]);else{if(l[cH(0xef)]==='grid'){let n=l[cH(0x165)],o=l[cH(0xf6)];if(!n&&!o)return m;m['display']='grid',n&&(m['gridTemplateColumns']=n),o&&(m[cH(0xf6)]=o),l['gap']&&(m[cH(0x267)]=l[cH(0x267)]),l[cH(0x9d)]&&(m['padding']=l[cH(0x9d)]);}}return m;}function st(l,m){const cI=au;if(!l)return;let n=gt(m);for(let o of ft)l['style'][o]='';for(let p in n)l[cI(0x1b2)][p]=n[p];}function mt(l){return!!l&&(l['type']==='split'||l['type']==='tabs');}function Nt(l,m,p){const cJ=au;if(!l||!mt(m))return null;let r=l['querySelector'](':scope\x20>\x20.__layout-generated'),u=m[cJ(0xef)]==='split'?cJ(0x251):'webui-tab-container';r&&r['tagName']['toLowerCase']()!==u&&(r['remove'](),r=null);let w=y=>{let A=[...l['childNodes']]['filter'](C=>C!==y);for(let C of A)y['appendChild'](C);};return r||(r=document['createElement'](u),r['classList']['add']('__layout-generated'),r[cJ(0x1b2)][cJ(0x1a5)]='width:100%;height:100%;box-sizing:border-box;',w(r),l['appendChild'](r)),m[cJ(0xef)]==='split'?(r[cJ(0x1f6)](cJ(0x172),m['orientation']||cJ(0x242)),r[cJ(0x1f6)]('split-position',String(m['splitPosition']??0x32))):(m[cJ(0x126)]&&r[cJ(0x1f6)](cJ(0x95),m[cJ(0x126)]),r[cJ(0x1f6)]('active-tab',String(m[cJ(0xc0)]??0x0))),p&&(p['style'][cJ(0xc2)]=cJ(0x16b),p['style']['display']=cJ(0x1ba),p[cJ(0x1b2)]['width']||(p['style']['width']='100%'),p[cJ(0x1b2)][cJ(0x17c)]||(p[cJ(0x1b2)]['height']='100%')),r;}var vt=au(0x1be),v=Symbol(au(0x105)),x=class extends d{static ['style']=e`:host { overflow: hidden }`;#e;#t;#n=[];#r;#i;#a;#o;#s=new Map();constructor(){const cK=au;super(),this['_bindingsParse'](null,!0x0),this[cK(0x264)][v]['control'][cK(0xe6)]['useGlobalStyle']&&(this['shadowRoot']['adoptedStyleSheets']=[b[cK(0x20c)],...this['shadowRoot']['adoptedStyleSheets']]),this['constructor'][v]['control'][cK(0xe6)]['bindToSize']&&(this.#r=new ResizeObserver(l=>{const cL=cK;let m=this.#i['valueChangedCallbacks'][cL(0x1fc)](cL(0x21a));if(m){for(let n of m)n();}if(m=this.#i[cL(0x247)][cL(0x1fc)](cL(0x17c)),m){for(let o of m)o();}}));}async['connectedCallback'](){const cM=au;this['_parseAttributesToProperties']();try{st(this,this[cM(0x264)][v]['control'][cM(0xe6)]?.[cM(0x16c)]);}catch{}this[cM(0x12d)](),this[cM(0x14e)](),this.#i={'valueProvider':m=>{const cN=cM;switch(m){case'width':return this['getBoundingClientRect']()['width'];case cN(0x17c):return this['getBoundingClientRect']()[cN(0x17c)];}return null;},'valueChangedCallbacks':new Map()},this.#s=new Map(),this.#o=new MutationObserver(m=>{const cO=cM;for(let p of m){for(let u of p['removedNodes']){if(u[cO(0xee)]!==0x1)continue;let w=this.#s['get'](u);if(w){for(let y of w)y();this.#s['delete'](u);}}for(let A of p[cO(0x1bc)]){if(A[cO(0xee)]!==0x1)continue;let C=this['_getRelativeSignalsPath'](),L=[];try{let S=window['appShell']['bindingsHelper']['getBindings'](A);for(let T of S)L[cO(0xb0)](window['appShell']['bindingsHelper']['applyBinding'](A,T,C,this,this.#i));}catch(Y){console['warn']('repeat\x20binding\x20self-apply\x20error',Y);}let P=window['appShell']['bindingsHelper'][cO(0x158)](A,C,this,this.#i);L['push'](...P),this.#s[cO(0x23e)](A,L),z(A)[cO(0x25d)](()=>{}),J(A)[cO(0x25d)](()=>{});}}}),this.#o[cM(0x23f)](this['shadowRoot'],{'childList':!0x0,'subtree':!0x0}),this.#t=window[cM(0x104)][cM(0x227)]['applyAllBindings'](this[cM(0xf2)],this['_getRelativeSignalsPath'](),this,this.#i),this.#e=await window[cM(0x104)]['scriptSystem'][cM(0xca)](cM(0x191)+this['constructor'][v][cM(0x1fd)],this[cM(0x264)][v][cM(0x1cc)]['script'],this[cM(0xf2)],this,b),this.#e?.[cM(0x166)]?.(this,this[cM(0xf2)]);for(let m of this.#n)this['addEventListener'](m[0x0],m[0x1]);this.#r?.['observe'](this),this.#a=b[cM(0x22a)]['on'](n=>{const cP=cM;let o=this['constructor'][v][cP(0x1fd)];n['type']=='control'&&n[cP(0x1fd)]===o&&(this[cP(0x1dd)](),this['_rootDocumentFragment']=this[cP(0x264)]['template']['content'][cP(0x196)](!0x0),this[cP(0xf2)]['innerHTML']='',this[cP(0xf2)][cP(0x16f)](this['_rootDocumentFragment']),this['_bindingsParse'](null,!0x0),this['connectedCallback']());});let l=this['constructor'][v]['control'][cM(0xe6)];if(l?.[cM(0x22c)]){let n={'enabled':l['visibilityEnabled'],'groups':l[cM(0xd5)]||[],'action':l['visibilityAction']||'hide','redirectScreen':l['visibilityRedirectScreen']||''};await E[cM(0xce)](this,n);}await E['scanAndApply'](this[cM(0xf2)]),z(this[cM(0xf2)])['catch'](()=>{}),J(this[cM(0xf2)])[cM(0x25d)](()=>{});}[au(0x1dd)](){const cQ=au;for(let l of this.#n)this['removeEventListener'](l[0x0],l[0x1]);this.#e?.[cQ(0x1dd)]?.(this,this[cQ(0xf2)]);for(let m of this.#t)m();this.#t=null,this.#o?.['disconnect'](),this.#o=null;for(let n of this.#s[cQ(0x136)]())for(let o of n)o();this.#s['clear'](),this.#r?.['unobserve'](this),this.#a?.['dispose'](),E['removeVisibility'](this),this[cQ(0xf2)]['querySelectorAll']('[data-visibility-controlled=\x22true\x22]')['forEach'](p=>E['removeVisibility'](p)),tt(this['shadowRoot']),et(this[cQ(0xf2)]);}['_setupDynamicProperties'](){G(this),it(this['shadowRoot']);}[au(0x167)](l,m){let n=[l,m];return this.#n['push'](n),this['addEventListener'](l,m),{'remove':()=>{const cR=c;let p=this.#n[cR(0x110)](n);this.#n['splice'](p,0x1),this['removeEventListener'](l,m);}};}[au(0x1f4)](){const cS=au;return this['getRootNode']()?.[cS(0x1f9)]?.['_getRelativeSignalsPath']?.()??'';}};window['BaseCustomControl']=x;function St(l){const cT=au;l[0x0]=='/'&&(l=l[cT(0x1f2)](0x1));let m=j['camelToDashCase'](l['replaceAll']('/','-')['replaceAll']('\x20','-')[cT(0x132)]('--','-'));return m[0x0]==='-'&&(m=m['substring'](0x1)),vt+m;}function K(l,m){const cU=au;let p=St(l),u=document['createElement'](cU(0x25c));u['innerHTML']=m[cU(0x124)];let w=f(m['style']),y={};for(let A in m['properties']){let C=m['properties'][A];C[cU(0x1b1)]||(C[cU(0xef)]==cU(0x147)||C['type']==cU(0x245)?y[A]=String:C[cU(0xef)]=='boolean'?y[A]=Boolean:C['type']==cU(0x118)?y[A]=Number:C[cU(0xef)]=='date'?y[A]=Date:C['type']=='enum'||C[cU(0xef)]==cU(0x24e)||C[cU(0xef)]==cU(0x143)?y[A]=String:(C['type']=='object',y[A]=Object));}if(window[cU(0x8f)+l]){window[cU(0x8f)+l]['template']=u,window[cU(0x8f)+l]['style']=w,window['IobrokerWebuiCustomControl'+l]['properties']=y,window['IobrokerWebuiCustomControl'+l][cU(0x22f)]=null;let L=window['IobrokerWebuiCustomControl'+l][v];L['control']=m;}else{window[cU(0x8f)+l]=function(){const cV=cU;let S=Reflect[cV(0x148)](x,[],window['IobrokerWebuiCustomControl'+l]),T=window[cV(0x8f)+l][v][cV(0x1cc)];for(let Y in T['properties']){let a0;Y in S&&(a0=S[Y],delete S[Y]),Object['defineProperty'](S,Y,{'get'(){return this['_'+Y];},'set'(a1){const cW=cV;this['_'+Y]!==a1&&(!Number[cW(0x253)](this['_'+Y])||!Number[cW(0x253)](a1))&&(this['_'+Y]=a1,this[cW(0x14e)](Y),S[cW(0x154)](new CustomEvent(j[cW(0x252)](Y)+cW(0x90),{'detail':{'newValue':a1}})));},'enumerable':!0x0,'configurable':!0x0}),a0!==void 0x0?S[Y]=a0:T['properties'][Y]['default']!=null&&(S['_'+Y]=T['properties'][Y][cV(0x1ff)]);}return S;};let P={'control':m,'name':l};window[cU(0x8f)+l][v]=P,window['IobrokerWebuiCustomControl'+l]['template']=u,window['IobrokerWebuiCustomControl'+l][cU(0x1b2)]=w,window['IobrokerWebuiCustomControl'+l][cU(0x271)]=y,window[cU(0x8f)+l]['_propertiesDictionary']=null,window[cU(0x8f)+l]['prototype']=Object['create'](x[cU(0x15a)],{'constructor':{'value':window['IobrokerWebuiCustomControl'+l]}}),customElements['get'](p)||customElements['define'](p,window['IobrokerWebuiCustomControl'+l]);}}export{q as a,z as b,tt as c,J as d,et as e,it as f,st as g,mt as h,Nt as i,vt as j,v as k,x as l,St as m,K as n,V as o,b as p};
1
+ const au=c;(function(l,m){const as=c,n=l();while(!![]){try{const o=-parseInt(as(0x25b))/0x1*(-parseInt(as(0x25d))/0x2)+parseInt(as(0x1d9))/0x3*(-parseInt(as(0x195))/0x4)+parseInt(as(0x32b))/0x5+-parseInt(as(0x28e))/0x6*(-parseInt(as(0x200))/0x7)+-parseInt(as(0x1bf))/0x8*(-parseInt(as(0x2df))/0x9)+-parseInt(as(0x1a2))/0xa+-parseInt(as(0x342))/0xb*(parseInt(as(0x240))/0xc);if(o===m)break;else n['push'](n['shift']());}catch(p){n['push'](n['shift']());}}}(a,0x40478));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 i}from'@gokturk413/base-custom-webcomponent';function X(l){return new Promise(m=>setTimeout(m,l));}var V=class s{static [au(0x31e)]=new s();['host'];['connection'];['adapterName']=au(0x205);[au(0x1c2)]='mywebui.0';[au(0x2a0)]=this[au(0x1c2)]+au(0x179);[au(0x1c4)]=this[au(0x1c2)]+'.projects';[au(0x287)]=this[au(0x1c2)]+au(0x1b5);['globalPath']=au(0x2ce);#e=au(0x307);get['currentProject'](){return this.#e;}get['configPath'](){return this.#e+'/data/';}get[au(0x19a)](){const av=au;return this['namespaceProjects']+'/'+this.#e+av(0x28d);}get['imagePrefix'](){const aw=au;return'/'+this['namespaceFiles']+'/'+this['configPath']+aw(0x1bd);}get[au(0x2c1)](){const ax=au;return'/'+this['namespaceFiles']+'/'+this[ax(0x275)]+'additionalfiles/';}['config'];['globalStylesheet'];[au(0x17f)];['globalScriptInstance'];[au(0x1dd)]=new h();[au(0x16d)]=new h();['additionalFilesChanged']=new h();[au(0x24a)]=new h();['changeView']=new h();[au(0x23c)]=new h();[au(0x2af)]=[];['language']='en';[au(0x314)]=new h();['translations']={};['translationsChanged']=new h();#t=new Map();[au(0x234)]=null;[au(0x326)];[au(0x274)]=null;constructor(){const ay=au;this['clientId']=Date[ay(0x1b1)]()[ay(0x243)](0x10),this.#t[ay(0x2e8)]('screen',new Map()),this.#t['set'](ay(0x351),new Map()),this.#t['set']('3dscreen',new Map()),this.#t[ay(0x2e8)](ay(0x223),new Map());try{let l=new URLSearchParams(window[ay(0x2ba)]['search'])[ay(0x192)](ay(0x298));l?this.#e=this[ay(0x27a)](l):window['location']['pathname'][ay(0x1f0)](ay(0x2f0))||(this.#e=this['_cleanProjectName'](localStorage['getItem']('webui-current-project')??'default'));}catch(m){console[ay(0x2d8)](ay(0x33a),m);}}['_cleanProjectName'](l){const az=au;return l=(l??'')[az(0x243)]()['trim']()['toLowerCase']()[az(0x2f4)]('\x20','-'),/^[a-z0-9_-]+$/['test'](l)?l:az(0x307);}async[au(0x23d)](){const aA=au;this[aA(0x2af)]&&await this[aA(0x18e)]();try{let l=await this[aA(0x214)](aA(0x217));if(Array[aA(0x28f)](l?.['projects'])){let m=l[aA(0x2a5)][aA(0x1b3)](n=>/^[a-z0-9_-]+$/[aA(0x19d)](n));return m['includes']('default')||m['unshift'](aA(0x307)),m;}}catch{}return['default'];}async['createProject'](l){const aB=au;if(l=(l??'')[aB(0x243)]()[aB(0x305)]()[aB(0x1a9)]()[aB(0x2f4)]('\x20','-'),!/^[a-z0-9_-]+$/['test'](l))throw new Error('invalid\x20project\x20name\x20(use\x20a-z,\x200-9,\x20-,\x20_):\x20'+l);let m=await this['getProjects']();if(m[aB(0x174)](l))throw new Error(aB(0x1f7)+l);m['push'](l),await this[aB(0x278)]({'projects':m[aB(0x1b3)](n=>n!==aB(0x307))},aB(0x217)),await this[aB(0x278)]({'globalStyle':null,'globalScript':null,'globalConfig':null,'fontDeclarations':null},l+aB(0x266)),await this[aB(0x278)]({},l+aB(0x2d4));try{await this[aB(0x185)]['setState'](this['namespace']+'.control.project',{'val':l}),await this[aB(0x185)][aB(0x30c)](this[aB(0x1c2)]+'.control.command',{'val':'createImportmap'});}catch{}return l;}async[au(0x198)](l){const aC=au;if(l===aC(0x307))throw new Error(aC(0x1f5));let m=(await this['getProjects']())['filter'](n=>n!==l&&n!==aC(0x307));await this['_saveObjectToFile']({'projects':m},aC(0x217));try{await this[aC(0x185)][aC(0x19b)](this['namespaceProjects'],'/'+l);}catch(n){console[aC(0x2d8)](aC(0x168),n);}this.#e===l&&this['setCurrentProject'](aC(0x307));}[au(0x1aa)](l){const aD=au;localStorage['setItem']('webui-current-project',this[aD(0x27a)](l));let m=new URL(window['location'][aD(0x276)]);m[aD(0x1c6)]['delete'](aD(0x298)),m['toString']()===window[aD(0x2ba)][aD(0x276)]?window[aD(0x2ba)]['reload']():window['location']['href']=m['toString']();}['getNormalizedSignalName'](l,m,n){return(m??'')+l;}[au(0x18e)](){const aE=au;return this[aE(0x2af)]?new Promise(l=>{const aF=aE;this[aF(0x2af)][aF(0x347)](l);}):Promise[aE(0x30d)]();}async['init'](){const aG=au;for(;!window['io'];)await X(0x5);let l=document['getElementById']('connectionInfo');l&&(l[aG(0x2ec)]=aG(0x2d0)),this[aG(0x185)]=new g({'protocol':'ws','host':window[aG(0x170)],'port':window['iobrokerPort'],'admin5only':!0x1,'autoSubscribes':[],'onError':A=>{const aH=aG;let C=document[aH(0x33b)](aH(0x1e7));C&&(C['innerHTML']=A);let L=document['getElementById']('connectionState');L&&(L[aH(0x324)][aH(0x1bc)]='red');},'onReady':()=>{const aI=aG;let A=document[aI(0x33b)](aI(0x1e7));A&&(A[aI(0x2ec)]=aI(0x251));let C=document['getElementById']('connectionState');C&&(C[aI(0x324)][aI(0x1bc)]=aI(0x235));}}),await this['connection'][aG(0x21c)](),await this['connection']['waitForFirstConnection']();try{this[aG(0x274)]=await this['connection']['getCurrentUser']();}catch{}let m=await this[aG(0x245)]();this['config']=m??{'globalStyle':null,'globalScript':null,'globalConfig':null,'fontDeclarations':null};try{let A=await this[aG(0x185)]['getObject']('system.adapter.mywebui.0');this['grafanaLangSyncEnabled']=!!(A?.[aG(0x1ea)]?.[aG(0x2f9)]&&A?.[aG(0x1ea)]?.['grafanaLangSyncEnabled']);}catch{this['grafanaLangSyncEnabled']=!0x1;}if(this['config'][aG(0x1c7)]==null&&(this[aG(0x31a)]['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[aG(0x31a)]['globalConfig']['headerTags']){let C=document[aG(0x20a)]()['createContextualFragment'](this['config'][aG(0x1c7)]['headerTags']);document['head']['appendChild'](C);}if(this['config']['globalStyle']&&(this['globalStylesheet']=i(this['config'][aG(0x2e9)])),this[aG(0x31a)][aG(0x31f)]&&(this['fontDeclarationsStylesheet']=i(this['config']['fontDeclarations']),document[aG(0x19f)]=[this[aG(0x17f)]]),this['config']['globalScript']){let L=URL[aG(0x1d5)](new Blob([this[aG(0x31a)]['globalScript']],{'type':aG(0x353)}));this['globalScriptInstance']=await importShim(L),this[aG(0x335)][aG(0x1b6)]&&this[aG(0x335)]['init']();}let p=localStorage[aG(0x180)](aG(0x2ff));if(p)this['language']=p;else try{let P=await this[aG(0x185)][aG(0x2b8)]();P?.['common']?.['language']&&(this[aG(0x2b3)]=P['common'][aG(0x2b3)]);}catch{}this[aG(0x30c)](aG(0x281),{'val':this[aG(0x2b3)]}),this[aG(0x325)]('local_language',(S,T)=>{const aJ=aG;T?.['val']&&T['val']!==this['language']&&this[aJ(0x207)](T[aJ(0x22f)]);}),await this[aG(0x2cd)](),window['t']=S=>this['t'](S);for(let S of this['_readyPromises'])S();this[aG(0x2af)]=null,console[aG(0x17b)](aG(0x322));let u,w;await this['connection'][aG(0x325)](this['namespace']+aG(0x209),(T,Y)=>{const aK=aG;u=Y?.[aK(0x22f)];}),await this[aG(0x185)]['subscribeState'](this['namespace']+aG(0x162),(T,Y)=>{const aL=aG;w=Y?.[aL(0x22f)];});let y=await this[aG(0x185)]['getState'](this['namespace']+aG(0x2b6));this[aG(0x185)][aG(0x325)](this['namespace']+aG(0x2b6),(T,Y)=>{const aM=aG;Y?.[aM(0x24e)]&&Y?.['ts']!=y?.['ts']&&this['handleCommand'](Y?.[aM(0x22f)],u,w);}),this['sendCommand']('uiConnected',''),this[aG(0x310)]=new BroadcastChannel(aG(0x2ae)),this[aG(0x310)]['onmessage']=T=>{const aN=aG;let {command:Y,data:a0,clientId:a1}=T['data']??{};Y&&this[aN(0x1df)](Y,a0,a1);};}async['getIconAdapterFoldernames'](){const aO=au;let l=await this['connection']['getObjectViewSystem'](aO(0x22d),''),m=[];for(let n in l)(l[n]?.['common']?.[aO(0x25e)]==aO(0x1f2)||l[n]?.[aO(0x233)][aO(0x225)][aO(0x1de)]('icons-'))&&m['push'](l[n]?.[aO(0x233)][aO(0x225)]);return m;}async[au(0x24c)](l,m){const aP=au;this[aP(0x2af)]&&await this[aP(0x18e)]();let n=[];n[aP(0x347)](this['getObjectNames'](l,m)[aP(0x227)](u=>u[aP(0x2c0)](w=>(m?m+'/':'/')['substring'](0x1)+w)));let p=await this['getSubFolders'](l,m);for(let u of p)n['push'](this['getAllNames'](l,(m??'')+'/'+u));return(await Promise[aP(0x1e1)](n))[aP(0x272)](w=>w);}async['getSubFolders'](l,m){const aQ=au;this['_readyPromises']&&await this['waitForReady']();try{return(await this[aQ(0x185)]['readDir'](this[aQ(0x2a0)],this[aQ(0x275)]+l+'s'+(m??'')))['filter'](o=>o['isDir'])[aQ(0x2c0)](o=>o['file']);}catch(n){console[aQ(0x2d8)]('error\x20loading\x20subfolders',n);}return[];}async['getObjectNames'](l,m){const aR=au;this['_readyPromises']&&await this[aR(0x18e)]();try{return(await this[aR(0x185)][aR(0x258)](this['namespaceFiles'],this['configPath']+l+'s'+(m??'')))[aR(0x1b3)](o=>o[aR(0x2a9)][aR(0x1f0)]('.'+l))[aR(0x2c0)](o=>o['file'][aR(0x331)](0x0,o[aR(0x2a9)]['length']-l[aR(0x2ee)]-0x1));}catch(n){console['warn']('no\x20'+l+aR(0x1dc),n);}return[];}async['getWebuiObject'](l,m){const aS=au;return l=='screen'?this[aS(0x18b)](m):l=='control'?this['getCustomControl'](m):l==aS(0x2b0)?this[aS(0x2fa)](m):l==aS(0x223)?this[aS(0x34d)](m):null;}async[au(0x18b)](l){const aT=au;l[0x0]=='/'&&(l=l['substring'](0x1));let m=this.#t[aT(0x192)](aT(0x2d3))[aT(0x192)](l);if(!m){this['_readyPromises']&&await this['waitForReady']();try{m=await this['_getObjectFromFile'](this['configPath']+'screens/'+l+'.screen');}catch(n){console[aT(0x1a1)]('Error\x20reading\x20Screen',m,n);}this.#t[aT(0x192)]('screen')['set'](l,m);}return m;}async['get3DScreen'](l){const aU=au;l[0x0]=='/'&&(l=l[aU(0x331)](0x1));let m=this.#t['get'](aU(0x2b0))['get'](l);if(!m){this['_readyPromises']&&await this['waitForReady']();try{m=await this[aU(0x214)](this['configPath']+'3dscreens/'+l+'.3dscreen');}catch(n){console['error']('Error\x20reading\x203D\x20Screen',m,n);}this.#t['get'](aU(0x2b0))['set'](l,m);}return m;}async['get3DControl'](l){const aV=au;l[0x0]=='/'&&(l=l['substring'](0x1));let m=this.#t[aV(0x192)]('3dcontrol')[aV(0x192)](l);if(!m){this[aV(0x2af)]&&await this[aV(0x18e)]();try{m=await this[aV(0x214)](this['configPath']+aV(0x34c)+l+aV(0x19e));}catch(n){console['error']('Error\x20reading\x203D\x20Control',m,n);}this.#t['get']('3dcontrol')['set'](l,m);}return m;}async['saveObject'](l,m,n){const aW=au;await this['_saveObjectToFile'](n,'/'+this['configPath']+l+'s/'+m+'.'+l),this.#t[aW(0x33c)](l)&&this.#t['get'](l)[aW(0x2e8)](m,n),l==aW(0x351)&&(this['_controlNames']=null,this['_scheduleControlsAggregate']()),this['sendCommand']('objectChanged',JSON['stringify']({'type':l,'name':m}),'*');}async['removeObject'](l,m){const aX=au;await this['connection'][aX(0x31c)](this[aX(0x2a0)],'/'+this['configPath']+l+'s/'+m+'.'+l),this.#t['has'](l)&&this.#t[aX(0x192)](l)[aX(0x1c8)](m),l=='control'&&(this['_controlNames']=null,this[aX(0x169)]()),this[aX(0x1dd)][aX(0x1f1)]({'type':l,'name':m});}async['renameObject'](l,m,n){const aY=au;m[0x0]=='/'&&(m=m['substring'](0x1)),n[0x0]=='/'&&(n=n[aY(0x331)](0x1)),await this[aY(0x185)]['renameFile'](this[aY(0x2a0)],'/'+this['configPath']+l+'s/'+m+'.'+l,'/'+this[aY(0x275)]+l+'s/'+n+'.'+l),this.#t[aY(0x33c)](l)&&(this.#t[aY(0x192)](l)['delete'](m),this.#t['get'](l)[aY(0x1c8)](n)),l=='control'&&(this['_controlNames']=null,this['_scheduleControlsAggregate']()),this[aY(0x206)](l,n),this['objectsChanged']['emit']({'type':l,'name':n});}#n;[au(0x169)](){clearTimeout(this.#n),this.#n=setTimeout(()=>this['_writeControlsAggregate'](),0x2bc);}async['_writeControlsAggregate'](){const aZ=au;try{let l=await this['getAllNames'](aZ(0x351)),m={};await Promise[aZ(0x1e1)](l['map'](async n=>{const b0=aZ;let p=n[b0(0x246)](/^\//,'');m[p]=await this[b0(0x261)](p);})),await this['_saveObjectToFile']({'version':0x1,'controls':m},this['configPath']+aZ(0x252)),console['log']('controls\x20aggregate\x20written\x20('+l['length']+'\x20controls)');}catch(n){console[aZ(0x2d8)]('error\x20writing\x20controls\x20aggregate',n);}}async['loadAllControlsFast'](){const b1=au;this['_readyPromises']&&await this['waitForReady']();try{let l=await this[b1(0x214)](this[b1(0x275)]+b1(0x252));if(l?.['controls']){for(let m in l['controls'])this.#t['get']('control')['set'](m,l[b1(0x18f)][m]);return this['_controlNames']=Object['keys'](l['controls']),l['controls'];}}catch{}return null;}async['getGlobalObjectNames'](l,m){const b2=au;try{return(await this['connection'][b2(0x258)](this['namespaceGlobal'],this[b2(0x286)]+l+'s'+(m??'')))[b2(0x1b3)](n=>n['file']['endsWith']('.'+l))['map'](n=>n['file'][b2(0x331)](0x0,n[b2(0x2a9)]['length']-l[b2(0x2ee)]-0x1));}catch{return[];}}async[au(0x1ad)](l,m){const b3=au;try{return(await this['connection']['readDir'](this['namespaceGlobal'],this[b3(0x286)]+l+'s'+(m??'')))['filter'](n=>n[b3(0x2c9)])[b3(0x2c0)](n=>n['file']);}catch{return[];}}async[au(0x1c1)](l,m){const b4=au;let n=[];n['push'](this['getGlobalObjectNames'](l,m)[b4(0x227)](p=>p['map'](r=>(m?m+'/':'/')[b4(0x331)](0x1)+r)));for(let p of await this['getGlobalSubFolders'](l,m))n[b4(0x347)](this['getAllGlobalNames'](l,(m??'')+'/'+p));return(await Promise['all'](n))['flatMap'](r=>r);}async['getGlobalObject'](l,m){const b5=au;m[0x0]==='/'&&(m=m[b5(0x331)](0x1));let p='g'+l;this.#t[b5(0x33c)](p)||this.#t[b5(0x2e8)](p,new Map());let r=this.#t[b5(0x192)](p)[b5(0x192)](m);if(!r){try{r=await this[b5(0x214)](this['globalPath']+l+'s/'+m+'.'+l,this[b5(0x287)]);}catch(u){console[b5(0x1a1)](b5(0x303)+l,m,u);}this.#t[b5(0x192)](p)['set'](m,r);}return r;}async[au(0x1e3)](l,m,n){const b6=au;await this['_saveObjectToFile'](n,'/'+this['globalPath']+l+'s/'+m+'.'+l,this['namespaceGlobal']);let p='g'+l;this.#t[b6(0x33c)](p)&&this.#t[b6(0x192)](p)[b6(0x2e8)](m,n),this[b6(0x262)](l),this['objectsChanged']['emit']({'type':l,'name':m,'global':!0x0});}async['removeGlobalObject'](l,m){const b7=au;m[0x0]==='/'&&(m=m['substring'](0x1)),await this['connection']['deleteFile'](this['namespaceGlobal'],'/'+this['globalPath']+l+'s/'+m+'.'+l);let n='g'+l;this.#t['has'](n)&&this.#t['get'](n)['delete'](m),this['_scheduleGlobalAggregate'](l),this[b7(0x1dd)]['emit']({'type':l,'name':null,'global':!0x0});}async[au(0x29a)](l,m,n){const b8=au;m[0x0]==='/'&&(m=m['substring'](0x1)),n[0x0]==='/'&&(n=n['substring'](0x1)),await this['connection']['renameFile'](this['namespaceGlobal'],'/'+this['globalPath']+l+'s/'+m+'.'+l,'/'+this[b8(0x286)]+l+'s/'+n+'.'+l);let p='g'+l;this.#t['has'](p)&&(this.#t[b8(0x192)](p)['delete'](m),this.#t[b8(0x192)](p)['delete'](n)),this['_scheduleGlobalAggregate'](l),this['objectsChanged']['emit']({'type':l,'name':n,'global':!0x0});}#r={};[au(0x262)](l){const b9=au;clearTimeout(this.#r[l]),this.#r[l]=setTimeout(()=>this[b9(0x34b)](l),0x2bc);}async[au(0x34b)](l){const ba=au;try{let m=await this['getAllGlobalNames'](l);if(!m[ba(0x2ee)])return;let n={};await Promise[ba(0x1e1)](m['map'](async p=>{let r=p['replace'](/^\//,'');n[r]=await this['getGlobalObject'](l,r);})),await this[ba(0x278)]({'version':0x1,'controls':n},this[ba(0x286)]+l+'s-all.dat',this['namespaceGlobal']);}catch(o){console[ba(0x2d8)]('error\x20writing\x20global\x20'+l+ba(0x2a8),o);}}async['loadAllGlobalControls'](l){const bb=au;this['_readyPromises']&&await this[bb(0x18e)]();try{let n=await this[bb(0x214)](this['globalPath']+l+'s-all.dat',this[bb(0x287)]);if(n?.[bb(0x18f)]&&Object['keys'](n['controls'])[bb(0x2ee)])return n[bb(0x18f)];}catch{}let m={};try{let o=await this[bb(0x1c1)](l);await Promise[bb(0x1e1)](o[bb(0x2c0)](async p=>{const bc=bb;let r=p[bc(0x246)](/^\//,'');m[r]=await this[bc(0x20b)](l,r);})),Object['keys'](m)['length']&&this['_scheduleGlobalAggregate'](l);}catch{}return m;}async[au(0x247)](l,m){const bd=au;await this[bd(0x278)]({},'/'+this[bd(0x275)]+l+'s/'+m+'/tmp.fld'),this['objectsChanged']['emit']({'type':l,'name':null});}async[au(0x222)](l,m){const be=au;await this['connection'][be(0x19b)](this[be(0x2a0)],'/'+this['configPath']+l+'s/'+m),this['objectsChanged'][be(0x1f1)]({'type':l,'name':null});}async['createGlobalFolder'](l,m){const bf=au;await this['_saveObjectToFile']({},'/'+this['globalPath']+l+'s/'+m+'/tmp.fld',this['namespaceGlobal']),this['objectsChanged'][bf(0x1f1)]({'type':l,'name':null,'global':!0x0});}async[au(0x349)](l,m){const bg=au;await this[bg(0x185)]['deleteFolder'](this[bg(0x287)],'/'+this['globalPath']+l+'s/'+m),this['objectsChanged'][bg(0x1f1)]({'type':l,'name':null,'global':!0x0});}async[au(0x23b)](){const bh=au;await b[bh(0x18e)]();let l=await this['getCustomControlNames'](),m=[];for(let n of l)m[bh(0x347)](this[bh(0x261)](n));await Promise['all'](m);}async['getCustomControlNames'](){const bi=au;if(this['_controlNames'])return this['_controlNames'];this[bi(0x2af)]&&await this['waitForReady']();try{let l=await this['getAllNames']('control');return this['_controlNames']=l,l;}catch(m){console['warn']('no\x20controls\x20loaded',m);}return[];}async[au(0x261)](l){const bj=au;l[0x0]=='/'&&(l=l['substring'](0x1));let m=this.#t['get'](bj(0x351))[bj(0x192)](l);if(!m){this['_readyPromises']&&await this[bj(0x18e)]();try{if(m=await this['_getObjectFromFile'](this['configPath']+bj(0x1cc)+l+'.control'),m['properties']){let p=Object[bj(0x190)](m['properties']);if(p[bj(0x2ee)]&&typeof m[bj(0x1c5)][p[0x0]]=='string')for(let r in m[bj(0x1c5)]){let u=m['properties'][r];u[bj(0x1de)]('[')?m['properties'][r]={'type':bj(0x1c3),'values':JSON[bj(0x348)](u)}:m['properties'][r]={'type':u};}}}catch(w){console['error'](bj(0x336),m,w);}this.#t['get'](bj(0x351))['set'](l,m);}return m;}async[au(0x29c)](){const bk=au;this['_readyPromises']&&await this[bk(0x18e)]();try{return(await this['connection'][bk(0x258)](this[bk(0x2a0)],this['configPath']+'images'))['map'](l=>l['file']);}catch{}return[];}async[au(0x330)](l,m){const bl=au;await this[bl(0x2eb)](m,'/'+this[bl(0x275)]+bl(0x1bd)+l),this[bl(0x16d)]['emit']();}async[au(0x17d)](l){const bm=au;return await this[bm(0x185)]['readFile'](this['namespaceFiles'],'/'+this[bm(0x275)]+'images/'+l,!0x1);}async['removeImage'](l){const bn=au;await this['connection'][bn(0x31c)](this['namespaceFiles'],'/'+this['configPath']+bn(0x1bd)+l),this['imagesChanged']['emit']();}async[au(0x17e)](){const bo=au;this['_readyPromises']&&await this[bo(0x18e)]();try{return(await this['connection'][bo(0x258)](this['namespaceFiles'],this['configPath']+'additionalfiles'))[bo(0x2c0)](l=>l[bo(0x2a9)]);}catch{}return[];}async[au(0x182)](l,m){const bp=au;await this['_saveBinaryToFile'](m,'/'+this[bp(0x275)]+bp(0x300)+l),this['additionalFilesChanged'][bp(0x1f1)]();}async[au(0x297)](l){const bq=au;return await this[bq(0x185)]['readFile'](this[bq(0x2a0)],'/'+this[bq(0x275)]+'additionalfiles/'+l,!0x1);}async['removeAdditionalFile'](l){const br=au;await this['connection'][br(0x31c)](this[br(0x2a0)],'/'+this['configPath']+'additionalfiles/'+l),this['additionalFilesChanged']['emit']();}async[au(0x316)](l,m){const bs=au;try{await this[bs(0x2eb)](m,'/'+this[bs(0x275)]+bs(0x15f)+l+'.png');}catch(n){console[bs(0x2d8)](bs(0x204),n);}}async['getThumbnail'](l){const bu=au;try{return await this['connection'][bu(0x181)](this['namespaceFiles'],'/'+this['configPath']+'thumbnails/'+l+'.png',!0x1);}catch{return null;}}async[au(0x1f6)](l){const bv=au;try{await this[bv(0x185)][bv(0x31c)](this[bv(0x2a0)],'/'+this[bv(0x275)]+'thumbnails/'+l+'.png');}catch(m){console[bv(0x2d8)](bv(0x28b),m);}}#i=new Map();#a=new Map();['getLocalStateNames'](){const bw=au;return Array[bw(0x16e)](this.#i[bw(0x190)]());}async['subscribeState'](l,m){const bx=au;if(l[bx(0x1de)](bx(0x1ae))){let n=this.#i[bx(0x192)](l);n||(n=[],this.#i['set'](l,n)),n['push'](m);let p=this.#a['get'](l);p&&m(l,p);}else return this[bx(0x185)][bx(0x325)](l,m);}['unsubscribeState'](l,m){const by=au;if(l['startsWith']('local_')){let n=this.#i[by(0x192)](l);if(n){let p=n['indexOf'](m);p>=0x0&&n['splice'](p,0x1);}}else this[by(0x185)]['unsubscribeState'](l,m);}['subscribeObject'](l,m){return this['connection']['subscribeObject'](l,m);}['unsubscribeObject'](l,m){const bz=au;return this[bz(0x185)][bz(0x289)](l,m);}['getObjectList'](l,m){const bA=au;return b['connection'][bA(0x18a)](m,null,l);}['getObject'](l){return this['connection']['getObject'](l);}['getState'](l){const bB=au;return l[bB(0x1de)]('local_')?Promise[bB(0x30d)](this.#a[bB(0x192)](l)):this[bB(0x185)]['getState'](l);}['setState'](l,m,p){const bC=au;if(l['startsWith']('local_')){typeof m!=bC(0x2e0)&&(m={'val':m}),this.#a['set'](l,m);let r=this.#i[bC(0x192)](l);if(r){for(let u of r)u(l,m);}return Promise['resolve']();}else return this[bC(0x185)][bC(0x30c)](l,m,p);}async[au(0x245)](){const bD=au;try{return await this[bD(0x214)](this[bD(0x275)]+bD(0x1af));}catch{return null;}}async[au(0x320)](){const bE=au;if(this[bE(0x278)](this['config'],this['configPath']+'config.json'),this['globalStylesheet']=null,this[bE(0x335)]=null,this['config']['globalStyle']&&(this[bE(0x256)]=i(this['config']['globalStyle'])),this[bE(0x31a)][bE(0x31f)]?(this['fontDeclarationsStylesheet']=i(this['config']['fontDeclarations']),document[bE(0x19f)]=[this[bE(0x17f)]]):(this['fontDeclarationsStylesheet']=null,document['adoptedStyleSheets']=[]),this[bE(0x31a)]['globalScript']){let l=URL['createObjectURL'](new Blob([this['config']['globalScript']],{'type':bE(0x353)}));this[bE(0x335)]=await importShim(l),this[bE(0x335)]['init']&&this[bE(0x335)][bE(0x1b6)]();}this['configChanged']['emit']();}async[au(0x2cd)](){const bF=au;try{this[bF(0x2fc)]=await this['_getObjectFromFile'](this['configPath']+bF(0x267));}catch{this['translations']={};}}async['saveTranslations'](){const bG=au;await this['_saveObjectToFile'](this['translations'],this[bG(0x275)]+bG(0x267)),this[bG(0x1d0)][bG(0x1f1)](this['translations']);}['setLanguage'](l){const bH=au;this['language']=l,localStorage[bH(0x21a)]('webui-language',l),this[bH(0x314)][bH(0x1f1)](l),window[bH(0x1ac)](new CustomEvent(bH(0x314),{'detail':l})),this.#a['get'](bH(0x281))?.['val']!==l&&this[bH(0x30c)]('local_language',{'val':l}),this['grafanaLangSyncEnabled']&&fetch('/mywebui-grafana-lang',{'method':'POST','headers':{'Content-Type':bH(0x2b2)},'credentials':bH(0x323),'body':JSON['stringify']({'lang':l})})['catch'](()=>{});}['t'](l){let m=this['language']||'en',n=l['split']('.'),p=u=>{let w=this['translations']?.[u];for(let y of n)if(w=w?.[y],w===void 0x0)return;return typeof w=='string'?w:void 0x0;};return p(m)??(m!=='en'?p('en'):void 0x0)??((()=>{const bI=c;for(let u of Object[bI(0x190)](this[bI(0x2fc)]??{})){let w=p(u);if(w!==void 0x0)return w;}return l;})());}async[au(0x214)](l,m=this['namespaceFiles']){const bJ=au;let n=await this[bJ(0x185)][bJ(0x181)](m,l,!0x1),p;return n[bJ(0x1fc)]=='application/json'||n['mimeType']=='text/javascript'?JSON['parse'](n['file']):(n[bJ(0x1fc)]==bJ(0x1ce)&&n[bJ(0x2a9)]instanceof ArrayBuffer?p=new Uint8Array(n[bJ(0x2a9)]):p=Uint8Array['from'](n['file']['data']),p[0x0]===0x1f&&p[0x1]===0x8b&&window[bJ(0x25f)]&&(p=await this[bJ(0x189)](p)),JSON[bJ(0x348)](new TextDecoder()[bJ(0x27e)](p)));}async[au(0x278)](l,m,p=this['namespaceFiles']){const bK=au;let r=new TextEncoder()[bK(0x2db)](JSON[bK(0x1b4)](l));if(r['length']>0x200*0x400&&window['CompressionStream']){let u=await this[bK(0x26d)](r);await this[bK(0x185)][bK(0x15c)](p,m,u[bK(0x220)]);}else await this['connection']['writeFile64'](p,m,r);}async['_gzipBytes'](m){const bL=au;let p=new CompressionStream('gzip'),u=p['writable'][bL(0x2bb)]();u['write'](m),u[bL(0x1fb)]();let w=p[bL(0x229)][bL(0x30b)](),y=[],A;for(;!(A=await w[bL(0x17a)]())[bL(0x20c)];)y['push'](A['value']);let C=new Uint8Array(y['reduce']((P,S)=>P+S[bL(0x2ee)],0x0)),L=0x0;for(let P of y)C[bL(0x2e8)](P,L),L+=P['length'];return C;}async['_gunzipBytes'](m){const bM=au;let p=new DecompressionStream('gzip'),u=p[bM(0x306)]['getWriter']();u[bM(0x302)](m),u['close']();let w=p['readable']['getReader'](),y=[],A;for(;!(A=await w[bM(0x17a)]())['done'];)y[bM(0x347)](A['value']);let C=new Uint8Array(y[bM(0x269)]((P,S)=>P+S['length'],0x0)),L=0x0;for(let P of y)C[bM(0x2e8)](P,L),L+=P[bM(0x2ee)];return C;}async[au(0x2eb)](l,m){const bN=au;await this['connection'][bN(0x15c)](this['namespaceFiles'],m,await l['arrayBuffer']());}async[au(0x203)](l,m,n){const bO=au;try{this['_broadcastChannel']?.[bO(0x18d)]({'command':l,'data':m,'clientId':n??this[bO(0x326)]??'*'});}catch{}try{let p=[this['connection'][bO(0x30c)](this['namespace']+bO(0x209),{'val':m}),this['connection']['setState'](this['namespace']+'.control.clientIds',{'val':n??this[bO(0x326)]}),this[bO(0x185)]['setState'](this[bO(0x1c2)]+bO(0x23f),{'val':this.#e})];await Promise[bO(0x1e1)](p),await this['connection']['setState'](this[bO(0x1c2)]+bO(0x2b6),{'val':l});}catch(r){console[bO(0x2d8)]('sendCommand\x20skipped\x20(no\x20write\x20permission\x20on\x20control\x20states):',r?.['message']||r);}}async['handleCommand'](l,m,o=''){const bP=au;if(o==''||o=='*'||o==this[bP(0x326)])switch(l){case bP(0x2e5):window['location']['reload']();break;case'uiRefresh':this.#t[bP(0x192)]('screen')[bP(0x317)](),this.#t['get']('control')['clear'](),this['_controlNames']=null,this[bP(0x23c)]['emit'](m);break;case'uiChangeView':this[bP(0x2cb)][bP(0x1f1)](m);break;case'uiOpenDialog':break;case bP(0x268):new Audio(m)[bP(0x167)]();break;case bP(0x17c):break;case'uiAlert':alert(m);break;case'uiSetLanguage':m&&this[bP(0x207)](m);break;case bP(0x2f3):let p=JSON['parse'](m);this.#t[bP(0x33c)](p['type'])&&this.#t['get'](p['type'])['delete'](p[bP(0x225)]),p[bP(0x25e)]==bP(0x351)&&p['name']&&K(p[bP(0x225)],await b['getWebuiObject'](p[bP(0x25e)],p[bP(0x225)])),this['objectsChanged']['emit'](p);break;}}[au(0x285)](l){const bQ=au;let m={'role':l?.['common']?.['role'],'type':l?.['common']?.['type'],'writeable':l?.[bQ(0x233)]?.['write']};return(l?.['common']?.['role']=='url'||l?.[bQ(0x233)]?.['role']==='text.url'||l?.['common']?.['role']['includes']('icon')||l?.['common']?.['role'][bQ(0x174)]('image'))&&(m[bQ(0x193)]='url'),l?.['common']?.[bQ(0x193)]=='value.time'&&(m['role']='datetime'),m;}['getHistoricData'](l,m){const bR=au;return this[bR(0x185)]['getHistoryEx'](l,m);}#o=null;#s=[];async['getCurrentUser'](){const bS=au;if(!this.#o)try{let l=await this[bS(0x185)][bS(0x1be)]();console[bS(0x17b)]('🔐\x20[Visibility]\x20Current\x20user\x20name:',l);let m=[],p=bS(0x2fd)+l;try{let u=await new Promise((w,y)=>{const bT=bS;this['connection'][bT(0x32c)][bT(0x1f1)]('getObjectView','system',bT(0x21b),{'startkey':'system.group.','endkey':'system.group.香'},(A,C)=>{A?y(A):w(C);});});if(console[bS(0x17b)](bS(0x199),u),u&&u['rows'])for(let w of u['rows']){let y=w['value'],A=w['id'][bS(0x246)](bS(0x313),'');y[bS(0x233)]?.[bS(0x1ee)]&&Array['isArray'](y['common'][bS(0x1ee)])&&y['common']['members'][bS(0x174)](p)&&(m[bS(0x347)](A),console[bS(0x17b)]('✅\x20[Visibility]\x20User\x20is\x20member\x20of\x20group:\x20'+A));}}catch(C){console['warn']('⚠️\x20[Visibility]\x20getObjectView\x20failed,\x20trying\x20direct\x20group\x20fetch:',C);let L=['administrator',bS(0x1e0)];for(let P of L)try{let S=await new Promise((T,Y)=>{const bU=bS;this['connection']['_socket']['emit'](bU(0x1b2),bU(0x313)+P,(a0,a1)=>{a0?Y(a0):T(a1);});});S&&S['common']?.['members']&&Array['isArray'](S['common'][bS(0x1ee)])&&S[bS(0x233)]['members'][bS(0x174)](p)&&(m[bS(0x347)](P),console[bS(0x17b)](bS(0x221)+P));}catch{}}m['length']===0x0&&(console[bS(0x2d8)]('⚠️\x20[Visibility]\x20User\x20has\x20no\x20groups,\x20adding\x20administrator\x20as\x20default'),m[bS(0x347)](bS(0x237))),this.#o={'id':l,'groups':m},console[bS(0x17b)](bS(0x352),this.#o);}catch(T){console[bS(0x2d8)](bS(0x1cf),T),this.#o={'id':'admin','groups':[bS(0x237)]};}return this.#o;}async[au(0x1d2)](){const bV=au;if(this.#s['length']===0x0)try{let l=[];try{console[bV(0x17b)](bV(0x1a0));let m=await new Promise((p,u)=>{const bW=bV;this[bW(0x185)][bW(0x32c)][bW(0x1f1)](bW(0x18a),bW(0x257),'group',{'startkey':'system.group.','endkey':'system.group.香'},(w,y)=>{w?u(w):p(y);});});if(console[bV(0x17b)](bV(0x2ca),m),m&&m['rows'])for(let p of m[bV(0x1b7)]){let u=p['id'][bV(0x246)]('system.group.',''),w=p[bV(0x2a4)]?.['common']?.['name']||u;typeof w==bV(0x2e0)&&(w=w['en']||w['de']||w['ru']||Object['values'](w)[0x0]||u);let y=p['value']?.[bV(0x233)]?.[bV(0x24b)]||'';typeof y=='object'&&(y=y['en']||y['de']||y['ru']||Object[bV(0x164)](y)[0x0]||''),l['push']({'id':u,'name':w,'desc':y}),console[bV(0x17b)](bV(0x166),u,w);}}catch(A){console['warn'](bV(0x18c),A);}l['length']===0x0&&(console[bV(0x2d8)](bV(0x25c)),l['push']({'id':'administrator','name':bV(0x248),'desc':'Administrator\x20group'},{'id':'user','name':bV(0x293),'desc':bV(0x279)})),this.#s=l,console[bV(0x17b)](bV(0x2e4),this.#s);}catch(C){console['warn']('⚠️\x20[Visibility]\x20Failed\x20to\x20load\x20user\x20groups:',C),this.#s=[{'id':bV(0x237),'name':'Administrator','desc':bV(0x2a7)},{'id':'user','name':bV(0x293),'desc':'User\x20group'}];}return this.#s;}async['checkVisibility'](l){const bX=au;if(!l||!l[bX(0x1db)])return{'visible':!0x0,'enabled':!0x0};try{if(l['groups']&&l['groups'][bX(0x2ee)]>0x0){let m=this['userName']||await this['connection'][bX(0x1be)](),p=new Promise(y=>setTimeout(()=>y({'visible':!0x0,'enabled':!0x0}),0xfa0)),u=this[bX(0x185)]['sendTo'](this['namespace'],'checkVisibility',{'username':m,'allowedGroups':l[bX(0x29d)],'action':l[bX(0x244)]||'hide'}),w=await Promise[bX(0x2da)]([u,p]);if(!w[bX(0x32f)]||!w[bX(0x1db)])return w;}if(l['objectId']&&l['condition']&&l[bX(0x271)]!==void 0x0&&l['conditionValue']!==''){let y=(await this['connection']['getState'](l[bX(0x2d1)]))?.[bX(0x22f)],A=l[bX(0x271)],C=!0x1;switch(l[bX(0x265)]){case'==':C=y==A;break;case'!=':C=y!=A;break;case'>':C=parseFloat(y)>parseFloat(A);break;case'<':C=parseFloat(y)<parseFloat(A);break;case'>=':C=parseFloat(y)>=parseFloat(A);break;case'<=':C=parseFloat(y)<=parseFloat(A);break;}if(console['log']('📊\x20[Visibility]\x20Datapoint\x20condition\x20check:',{'objectId':l['objectId'],'currentValue':y,'condition':l['condition'],'targetValue':A,'conditionMet':C}),C){let L=l[bX(0x244)]||bX(0x327);return console[bX(0x17b)]('✅\x20[Visibility]\x20Datapoint\x20condition\x20met\x20→\x20Action:',L),{'visible':L!==bX(0x327),'enabled':L!=='disable'};}}return console['log']('✅\x20[Visibility]\x20All\x20checks\x20passed\x20→\x20Element\x20visible\x20and\x20enabled'),{'visible':!0x0,'enabled':!0x0};}catch(P){return console['error']('❌\x20[Visibility]\x20Check\x20failed:',P),{'visible':!0x0,'enabled':!0x0};}}},b=V['instance'];window['IOB']=b;import{PropertiesHelper as j}from'@gokturk413/web-component-designer/dist/elements/services/propertiesService/services/PropertiesHelper.js';var W=class s{static [au(0x31e)]=new s();#e=new WeakMap();#t(l,m){const bY=au;if(!m['visible'])l[bY(0x324)]['display']='none',l[bY(0x324)][bY(0x15d)]=bY(0x1ca);else{let n=this.#e['get'](l)||'';l[bY(0x324)][bY(0x1eb)]=n,l['style']['visibility']='';}m[bY(0x1db)]?(l['style']['pointerEvents']='',l[bY(0x324)]['opacity']=''):(l['style']['pointerEvents']='none',l[bY(0x324)][bY(0x2dc)]='0.5');}async['applyGroupVisibility'](l,m,n){const bZ=au;if(!m||m[bZ(0x2ee)]===0x0)return;this.#e['has'](l)||this.#e[bZ(0x2e8)](l,l[bZ(0x324)][bZ(0x1eb)]||'');let p=await b['checkVisibility']({'enabled':!0x0,'groups':m,'action':n||bZ(0x327)});(!p[bZ(0x32f)]||!p[bZ(0x1db)])&&this.#t(l,p);}['removeVisibility'](l){const c0=au;let m=this.#e[c0(0x192)](l);m!==void 0x0&&(l[c0(0x324)][c0(0x1eb)]=m,this.#e[c0(0x1c8)](l)),l['style']['visibility']='',l['style'][c0(0x26b)]='',l['style'][c0(0x2dc)]='';}async[au(0x171)](l=document['body']){const c1=au;let m=l['querySelectorAll']('[data-visibility-groups]');for(let p of m)try{let r=p[c1(0x2f8)](c1(0x238))?.['split'](',')['filter'](w=>w)||[],u=p['getAttribute']('data-visibility-action')||c1(0x327);await this[c1(0x2c6)](p,r,u);}catch(w){console['error'](c1(0x22c),w);}}},E=W['instance'],I=null;function rt(l,m){const c3=au;function n(u){const c2=c;let w=u['getElementById']?u[c2(0x33b)](m):u['querySelector']('#'+m);if(w)return w;for(let y of u['querySelectorAll']('*'))if(y[c2(0x27c)]){let A=n(y['shadowRoot']);if(A)return A;}return null;}let p=l['getRootNode']();for(;p instanceof ShadowRoot;){let r=n(p);if(r)return r;p=p[c3(0x2f2)][c3(0x226)]();}return n(document['body'])??document['getElementById'](m);}function c(b,d){b=b-0x15c;const e=a();let f=e[b];return f;}var R=new URL('../../vendor/gsap/',import.meta.url)['href'];function lt(l){const c4=au;let m=l[c4(0x290)]['toLowerCase']();if(m==='circle'){let p=parseFloat(l['getAttribute']('cx')||0x0),r=parseFloat(l[c4(0x2f8)]('cy')||0x0),u=parseFloat(l[c4(0x2f8)]('r')||0x0);return'M\x20'+(p-u)+','+r+c4(0x282)+u+','+u+'\x200\x201,1\x20'+(p+u)+','+r+'\x20A\x20'+u+','+u+'\x200\x201,1\x20'+(p-u)+','+r+'\x20Z';}if(m===c4(0x178)){let w=parseFloat(l['getAttribute']('cx')||0x0),y=parseFloat(l['getAttribute']('cy')||0x0),A=parseFloat(l[c4(0x2f8)]('rx')||0x0),C=parseFloat(l['getAttribute']('ry')||0x0);return'M\x20'+(w-A)+','+y+'\x20A\x20'+A+','+C+'\x200\x201,1\x20'+(w+A)+','+y+c4(0x282)+A+','+C+'\x200\x201,1\x20'+(w-A)+','+y+'\x20Z';}if(m==='rect'){let L=parseFloat(l[c4(0x2f8)]('x')||0x0),P=parseFloat(l[c4(0x2f8)]('y')||0x0),S=parseFloat(l[c4(0x2f8)]('width')||0x0),T=parseFloat(l['getAttribute'](c4(0x2f6))||0x0);return'M\x20'+L+','+P+'\x20H\x20'+(L+S)+c4(0x1fa)+(P+T)+'\x20H\x20'+L+'\x20Z';}if(m===c4(0x29f)){let Y=l[c4(0x2f8)]('x1')||0x0,a0=l[c4(0x2f8)]('y1')||0x0,a1=l['getAttribute']('x2')||0x0,a2=l['getAttribute']('y2')||0x0;return'M\x20'+Y+','+a0+'\x20L\x20'+a1+','+a2;}if(m===c4(0x309)||m===c4(0x212)){let a3=(l['getAttribute']('points')||'')[c4(0x305)]()[c4(0x2a6)](/[\s,]+/);if(a3[c4(0x2ee)]<0x2)return null;let a4='M\x20'+a3[0x0]+','+a3[0x1];for(let a5=0x2;a5+0x1<a3[c4(0x2ee)];a5+=0x2)a4+=c4(0x216)+a3[a5]+','+a3[a5+0x1];return m===c4(0x212)&&(a4+='\x20Z'),a4;}return null;}function B(l){const c5=au;if(l['tagName'][c5(0x1a9)]()===c5(0x1ed))return{'pathEl':l,'tempEl':null};let m=lt(l);if(!m)return{'pathEl':l,'tempEl':null};let n=l['closest'](c5(0x28c))??l[c5(0x333)],o=document['createElementNS']('http://www.w3.org/2000/svg',c5(0x1ed));return o['setAttribute']('d',m),o[c5(0x321)]('fill','none'),o[c5(0x324)]['cssText']=c5(0x187),n[c5(0x1da)](o),{'pathEl':o,'tempEl':o};}async function q(){return window['gsap']?window['gsap']:I||(I=new Promise(l=>{const c7=c;let m=o=>new Promise((p,u)=>{const c6=c;let w=document['createElement']('script');w['src']=o,w[c6(0x15e)]=p,w['onerror']=u,document[c6(0x2a1)][c6(0x1da)](w);}),n=window[c7(0x249)];window[c7(0x249)]=void 0x0,m(R+'gsap.min.js')[c7(0x227)](()=>m(R+c7(0x319)))['then'](()=>m(R+'MorphSVGPlugin.min.js'))[c7(0x227)](()=>{const c8=c7;window[c8(0x249)]=n,window['MotionPathPlugin']&&window['gsap'][c8(0x33e)](window[c8(0x1b0)]),window[c8(0x241)]&&window['gsap'][c8(0x33e)](window['MorphSVGPlugin']),l(window[c8(0x2aa)]);})['catch'](()=>{const c9=c7;window['define']=n,console['warn'](c9(0x334),R),l(window['gsap']||null);});}),I);}function H(l){const ca=au;if(typeof l=='boolean')return l;if(typeof l==ca(0x184))return l!==0x0;if(typeof l=='string'){let m=l['toLowerCase']();if(m==='true'||m==='1')return!0x0;if(m==='false'||m==='0')return!0x1;}return l;}function Q(l,m,p){const cb=au;if(!m||m==='exists')return!0x0;let u=parseFloat(l),w=parseFloat(p);if(!isNaN(u)&&!isNaN(w))switch(m){case cb(0x250):return u===w;case'not_equal':return u!==w;case'less_than':return u<w;case'less_equal':return u<=w;case'greater_than':return u>w;case cb(0x294):return u>=w;}let y=H(l),A=H(p);return typeof y==cb(0x259)&&typeof A=='boolean'?m===cb(0x250)?y===A:y!==A:m==='equal'?String(l)===String(p):String(l)!==String(p);}function ct(m,p){const cc=au;let u=parseFloat(m['duration'])||0x1,w=m['ease']||cc(0x288),y=m[cc(0x2f1)]||cc(0x2dc),A=H(p),C=typeof A==cc(0x259)?A?0x1:0x0:parseFloat(p)||0x0,L={'duration':u,'ease':w===cc(0x191)?'none':w,'paused':!0x0,'repeat':parseInt(m['repeat'])||0x0,'yoyo':m[cc(0x260)]===!0x0||m[cc(0x260)]==='true'};switch(y){case'rotation':L[cc(0x1d1)]=m['valueTo']!=null?parseFloat(m['valueTo']):C,m['valueFrom']!=null&&(L['startAt']={'rotation':parseFloat(m['valueFrom'])}),L['transformOrigin']=(m[cc(0x328)]||'50')+'%\x20'+(m[cc(0x280)]||'50')+'%\x20'+(m[cc(0x2ad)]||'0');break;case cc(0x273):L['scale']=m[cc(0x2bf)]!=null?parseFloat(m[cc(0x2bf)]):typeof A=='boolean'?A?1.5:0x1:C,m[cc(0x22e)]!=null&&(L[cc(0x2e1)]={'scale':parseFloat(m[cc(0x22e)])});break;case'opacity':L['opacity']=m['valueTo']!=null?parseFloat(m['valueTo']):typeof A=='boolean'?A?0x1:0x0:C,m[cc(0x22e)]!=null&&(L[cc(0x2e1)]={'opacity':parseFloat(m[cc(0x22e)])});break;case cc(0x177):L['x']=m['valueTo']!=null?parseFloat(m['valueTo']):typeof A==cc(0x259)?A?0x64:0x0:C,m['valueFrom']!=null&&(L['startAt']={'x':parseFloat(m[cc(0x22e)])});break;case'translateY':L['y']=m[cc(0x2bf)]!=null?parseFloat(m['valueTo']):typeof A=='boolean'?A?0x64:0x0:C,m['valueFrom']!=null&&(L['startAt']={'y':parseFloat(m[cc(0x22e)])});break;case'translate':{let P=(T,Y)=>{const cd=cc;if(T==null)return{'x':Y,'y':0x0};let a0=String(T)[cd(0x2a6)](',');return{'x':parseFloat(a0[0x0])||0x0,'y':a0['length']>0x1&&parseFloat(a0[0x1])||0x0};},S=P(m[cc(0x2bf)],typeof A==cc(0x259)?A?0x64:0x0:C);if(L['x']=S['x'],L['y']=S['y'],m['valueFrom']!=null){let T=P(m['valueFrom'],0x0);L['startAt']={'x':T['x'],'y':T['y']};}break;}case cc(0x239):L['left']=m['valueTo']!=null?m['valueTo']:typeof A==cc(0x259)?A?'100px':cc(0x242):C+'px',m[cc(0x22e)]!=null&&(L[cc(0x2e1)]={'left':isNaN(m[cc(0x22e)])?m['valueFrom']:m[cc(0x22e)]+'px'});break;case cc(0x28a):L[cc(0x28a)]=m['valueTo']!=null?m['valueTo']:typeof A=='boolean'?A?'100px':cc(0x242):C+'px',m[cc(0x22e)]!=null&&(L[cc(0x2e1)]={'top':isNaN(m['valueFrom'])?m[cc(0x22e)]:m[cc(0x22e)]+'px'});break;case'skew':{let Y=m['valueTo']!=null?parseFloat(m[cc(0x2bf)]):typeof A=='boolean'?A?0x2d:0x0:C;L['skewX']=Y,L['skewY']=Y;break;}case'fill':L[cc(0x197)]=m['fillColorTo']||'#ff0000',m['fillColorFrom']&&(L[cc(0x2e1)]={'fill':m[cc(0x2c4)]});break;case'color':L[cc(0x315)]=m['fillColorTo']||cc(0x284),m[cc(0x2c4)]&&(L['startAt']={'color':m[cc(0x2c4)]});break;case'backgroundColor':L[cc(0x329)]=m[cc(0x2c3)]||'#ff0000',m[cc(0x2c4)]&&(L['startAt']={'backgroundColor':m[cc(0x2c4)]});break;case'transform':L['transform']=m['valueTo']||String(p),m['valueFrom']&&(L['startAt']={'transform':m[cc(0x22e)]});break;case cc(0x28c):if(m[cc(0x2cc)]){let a0=m['svgAttr'];a0===cc(0x197)||a0===cc(0x315)?L[a0]=typeof A==cc(0x259)?A?m[cc(0x2c3)]||cc(0x284):m['fillColorFrom']||'#000000':m[cc(0x2c3)]||'#ff0000':a0==='stroke-dasharray'?L[a0]=m[cc(0x2bf)]||'10':L[a0]=m[cc(0x2bf)]!=null?parseFloat(m[cc(0x2bf)]):C;}break;default:L['opacity']=m[cc(0x2bf)]!=null?parseFloat(m[cc(0x2bf)]):typeof A=='boolean'?A?0x1:0x0:C;}return L;}function a(){const db=['translateX','ellipse','.projects','read','log','uiRunScript','getImage','getAdditionalFileNames','fontDeclarationsStylesheet','getItem','readFile','saveAdditionalFile','killTweensOf','number','connection','createElement','visibility:hidden;pointer-events:none;','bindToSize','_gunzipBytes','getObjectView','getScreen','⚠️\x20[Visibility]\x20getObjectView\x20failed:','postMessage','waitForReady','controls','keys','none','get','role','vars','964qxrelY','cleanup','fill','removeProject','🔐\x20[Visibility]\x20All\x20groups\x20via\x20getObjectView:','widgetUrlBase','deleteFolder','oid','test','.3dcontrol','adoptedStyleSheets','🔍\x20[Visibility]\x20Fetching\x20groups\x20via\x20getObjectView...','error','1738310iudXMx','defineProperty','date','_bindingsRefresh','width','delegate','true','toLowerCase','setCurrentProject','bindingsHelper','dispatchEvent','getGlobalSubFolders','local_','config.json','MotionPathPlugin','now','getObject','filter','stringify','.data','init','rows','[data-animation]','grid','splitPosition','count','background','images/','getCurrentUser','147304GbNIvZ','unsubscribeState','getAllGlobalNames','namespace','enum','namespaceProjects','properties','searchParams','globalConfig','delete','getState','hidden','#0066ff','controls/','square','application/octet-stream','⚠️\x20[Visibility]\x20Failed\x20to\x20get\x20current\x20user:','translationsChanged','rotation','getUserGroups','nowrap','row','createObjectURL',',0\x20L0,','duration','createElementNS','1530gEjUKz','appendChild','enabled','\x20loaded','objectsChanged','startsWith','handleCommand','user','all','getBoundingClientRect','saveGlobalObject','hover','-changed','target','connectionInfo','pulseRing','signal','native','display','drop-shadow(0\x200\x200px\x20rgba(0,0,0,0))','path','members','handler','endsWith','emit','visualization-icons','fromTo','webui-split-container','the\x20\x27default\x27\x20project\x20cannot\x20be\x20deleted','removeThumbnail','project\x20already\x20exists:\x20','getPrototypeOf','orientToPath','\x20V\x20','close','mimeType','repeat','reverse','data-animation','1339884XhUXLr','_getRelativeSignalsPath','opacityFrom','sendCommand','Error\x20saving\x20thumbnail:','mywebui','getWebuiObject','setLanguage','BaseCustomControl','.control.data','createRange','getGlobalObject','done','http://www.w3.org/2000/svg','camelToDashCase','removeVisibility','closest','blur','polygon','size','_getObjectFromFile','oid_bind','\x20L\x20','projects.json','applyAllBindings','forEach','setItem','group','startSocket','power2.inOut','constructor','indexOf','buffer','✅\x20[Visibility]\x20User\x20is\x20member\x20of\x20group:\x20','removeFolder','3dcontrol','alignItems','name','getRootNode','then','gridTemplateRows','readable','glowSize','_subs','[Visibility]\x20Group\x20check\x20error:','adapter','valueFrom','val','slideInBottom','kill','querySelector','common','_controlNames','lightgreen','pause','administrator','data-visibility-groups','left','tabLabels','loadAllCustomControls','refreshView','getProjects','appShell','.control.project','768EVDRnP','MorphSVGPlugin','0px','toString','action','_getConfig','replace','createFolder','Administrator','define','configChanged','desc','getAllNames','childNodes','ack','stroke','equal','ready','controls-all.dat','triangle','content','cfg','globalStylesheet','system','readDir','boolean','points','22tIspYa','⚠️\x20[Visibility]\x20No\x20groups\x20found,\x20using\x20defaults','38712hlVhSS','type','DecompressionStream','yoyo','getCustomControl','_scheduleGlobalAggregate','flip','state','condition','/data/config.json','translations.json','uiPlaySound','reduce','orientation','pointerEvents','useGlobalStyle','_gzipBytes','flowDash','_propertiesDictionary','ownerSVGElement','conditionValue','flatMap','scale','userName','configPath','href','join','_saveObjectToFile','User\x20group','_cleanProjectName','shake','shadowRoot','_rootDocumentFragment','decode','_destroyPathFlowEls','transformOriginY','local_language','\x20A\x20','querySelectorAll','#ff0000','getSignalInformation','globalPath','namespaceGlobal','power1.inOut','unsubscribeObject','top','Error\x20removing\x20thumbnail:','svg','/widgets/','6CjtICr','isArray','tagName','addEventListener','prototype','User','greater_equal','stretch','shape','getAdditionalFile','project','IobrokerWebuiCustomControl','renameGlobalObject','cloneNode','getImageNames','groups','circle','line','namespaceFiles','head','path,\x20circle,\x20ellipse,\x20rect,\x20polyline,\x20polygon','removeEventListener','value','projects','split','Administrator\x20group','\x20aggregate','file','gsap','power1.out','classList','transformOriginZ','mywebui-commands','_readyPromises','3dscreen','[data-effects]','application/json','language','resume','condition_bind','.control.command','ease','getSystemConfig','value_bind','location','getWriter','scriptSystem','disconnect','direction','valueTo','map','additionalFilePrefix','split-position','fillColorTo','fillColorFrom','_setupDynamicProperties','applyGroupVisibility','_bindingsParse','pathId','isDir','🔍\x20[Visibility]\x20getObjectView\x20result:','changeView','svgAttr','loadTranslations','global/','active','connecting...','objectId','settings','screen','/widgets/package.json','webui-tab-container','element','call','warn','conditionValue_bind','race','encode','opacity','innerSubs','event','72pkYxHm','object','startAt','arrow','remove','👥\x20[Visibility]\x20User\x20groups\x20loaded:','uiReload','webui-','[AnimationService]\x20motionPath:\x20path\x20element\x20not\x20found:','set','globalStyle','paused','_saveBinaryToFile','innerHTML','rect','length','tween','runtime.html','effect','host','objectChanged','replaceAll','script','height','trigger','getAttribute','grafanaEnabled','get3DScreen','click','translations','system.user.','timeScale','webui-language','additionalfiles/','gridTemplateColumns','write','Error\x20reading\x20global\x20','isNaN','trim','writable','default','_tempPathEl','polyline','_pathFlowEls','getReader','setState','resolve','spin','mouseenter','_broadcastChannel','create','hasAttribute','system.group.','languageChanged','color','saveThumbnail','clear','cos','MotionPathPlugin.min.js','config','observe','deleteFile','customControl\x20','instance','fontDeclarations','saveConfig','setAttribute','ioBroker\x20handler\x20ready.','include','style','subscribeState','clientId','hide','transformOriginX','backgroundColor','splice','868605iHVNRM','_socket','cssText','padding','visible','saveImage','substring','\x200,','parentElement','[AnimationService]\x20Failed\x20to\x20load\x20GSAP\x20from\x20local\x20path:','globalScriptInstance','Error\x20reading\x20Control','sin','load','position','could\x20not\x20determine\x20current\x20project','getElementById','has','webuiCustomControlSymbol','registerPlugin','justifyContent','fadeIn',',0\x200,','65010SSCSRQ','state:','gapLen','morphSVG','pathFlow','push','parse','removeGlobalFolder','catch','_writeGlobalAggregate','3dcontrols/','get3DControl','_play','string','getOwnPropertyDescriptor','control','🔐\x20[Visibility]\x20Final\x20user\x20object:','application/javascript','writeFile64','visibility','onload','thumbnails/','dashLen','repeat\x20binding\x20self-apply\x20error','.control.clientIds','construct','values','flexDirection','✅\x20[Visibility]\x20Found\x20group:','play','error\x20deleting\x20project\x20folder','_scheduleControlsAggregate','path,line,polyline,polygon,rect,circle,ellipse','slice','gap','imagesChanged','from','_assignEvent','iobrokerHost','scanAndApply','template','destroy','includes','visibilityEnabled','[AnimationService]\x20data-animation\x20parse\x20error\x20on\x20element:'];a=function(){return db;};return a();}function O(l){const ce=au;for(let m of l)try{m[ce(0x25e)]==='event'?m[ce(0x1e6)][ce(0x2a3)](m['event'],m['handler']):m['type']==='state'?b['connection'][ce(0x1c0)](m[ce(0x19c)],m[ce(0x1ef)]):m['type']===ce(0x1a7)&&O(m[ce(0x2dd)]);}catch{}l[ce(0x2ee)]=0x0;}async function ht(m,p,u,y){const cf=au;let A=[],C=/\{([^}]+)\}/g,L;for(;(L=C['exec'](m))!==null;)A[cf(0x347)](L[0x1]);if(A['length']===0x0)return;let P={};for(let Y of A)P[Y]=null;let S=[],T=async()=>{const cg=cf;if(Object[cg(0x164)](P)['some'](a1=>a1==null))return;let a0=m;for(let [a1,a2]of Object['entries'](P))a0=a0['replace']('{'+a1+'}',a2);O(S),await F(a0,p,u,S);};for(let a0 of A){let a1=async(a2,a3)=>{const ch=cf;a3?.[ch(0x22f)]!=null&&(P[a0]=String(a3[ch(0x22f)]),await T());};try{b['connection'][cf(0x325)](a0,a1),y[cf(0x347)]({'type':cf(0x264),'oid':a0,'handler':a1});}catch{}try{let a2=await b['connection']['getState'](a0);a2?.[cf(0x22f)]!=null&&(P[a0]=String(a2['val']));}catch{}}await T(),y['push']({'type':'delegate','innerSubs':S});}async function F(m,p,u,w){const ci=au;if(!m)return;if(m[ci(0x174)]('{')&&m[ci(0x174)]('}')){await ht(m,p,u,w);return;}let y=()=>{let A=p['getRootNode']();return A&&A!==document?A['host']??null:null;};if(m[ci(0x1de)]('??')){let A=m['slice'](0x2),C=y();if(!C)return;let L=()=>{const cj=ci;let S=C[A]??C[cj(0x2f8)]?.(A);S!=null&&u(S);};L();let P=()=>L();C['addEventListener'](A+'-changed',P),w['push']({'type':ci(0x2de),'target':C,'event':A+ci(0x1e5),'handler':P});}else{if(m[ci(0x1de)]('?')){let S=m['slice'](0x1),T=y();if(!T)return;let Y=[],a0=async()=>{const ck=ci;O(Y);let a2=T[S]??T[ck(0x2f8)]?.(S);a2&&await F(a2,p,u,Y);};await a0();let a1=()=>a0();T['addEventListener'](S+ci(0x1e5),a1),w['push']({'type':ci(0x2de),'target':T,'event':S+ci(0x1e5),'handler':a1}),w[ci(0x347)]({'type':ci(0x1a7),'innerSubs':Y});}else{if(m['startsWith'](ci(0x343))){let a2=m[ci(0x16b)](0x6),a3=(a4,a5)=>{const cl=ci;a5?.[cl(0x22f)]!=null&&u(a5[cl(0x22f)]);};try{b[ci(0x185)][ci(0x325)](a2,a3),w[ci(0x347)]({'type':ci(0x264),'oid':a2,'handler':a3});}catch{}try{let a4=await b[ci(0x185)][ci(0x1c9)](a2);a4?.['val']!=null&&u(a4['val']);}catch{}}else{if(!m[ci(0x1de)]('object:')){let a5=m;a5['startsWith']('.')&&(a5=(y()?.[ci(0x201)]?.()??'')+a5[ci(0x16b)](0x1));let a6=(a7,a8)=>{const cm=ci;a8?.['val']!=null&&u(a8[cm(0x22f)]);};try{a5['startsWith'](ci(0x1ae))?b['subscribeState'](a5,a6):b[ci(0x185)][ci(0x325)](a5,a6),w['push']({'type':ci(0x264),'oid':a5,'handler':a6});}catch{}try{let a7;a5['startsWith']('local_')?a7=await b['getState'](a5):a7=await b['connection'][ci(0x1c9)](a5),a7?.[ci(0x22f)]!=null&&u(a7['val']);}catch{}}}}}}var U=class{constructor(l,m){const cn=au;this['element']=l,this['cfg']=m,this['tween']=null,this[cn(0x22b)]=[];}async['init'](){const cr=au;if(await q(),!window['gsap'])return;let l=this['cfg']['controls']||{},m=async(w,y)=>{const co=c;let A=l[w];if(!A)return;A['condition_bind']?.['signal']&&await F(A['condition_bind'][co(0x1e9)],this[co(0x2d6)],L=>{A['condition']=String(L);},this[co(0x22b)]),A['value_bind']?.[co(0x1e9)]&&await F(A[co(0x2b9)]['signal'],this[co(0x2d6)],L=>{const cp=co;A[cp(0x2a4)]=String(L);},this['_subs']);let C=A['oid_bind']?.[co(0x1e9)]||A[co(0x19c)];C&&await F(C,this['element'],L=>{const cq=co;Q(L,A['condition']||'equal',A[cq(0x2a4)]??'true')&&y();},this[co(0x22b)]);};await m(cr(0x167),()=>this[cr(0x34e)]()),await m('pause',()=>this[cr(0x2ef)]?.['pause']()),await m(cr(0x2b4),()=>this['tween']?.['play']()),await m('stop',()=>this[cr(0x2ef)]?.[cr(0x236)](0x0)),await m('reverse',()=>this[cr(0x2ef)]?.['reverse']());let p=['effect',cr(0x22e),cr(0x2bf),'duration','ease',cr(0x1fd),cr(0x260),cr(0x2c4),'fillColorTo','transformOriginX','transformOriginY','svgAttr','pathId','alignToPath',cr(0x1f9),cr(0x160),'gapLen','color','direction','count',cr(0x213),'shape','customShapeD'],u=null;for(let w of p){let y=this[cr(0x255)][w+'_bind'];if(!y?.['signal'])continue;let A=w;await F(y['signal'],this['element'],C=>{const cs=cr;if(this['cfg'][A]=C,!!this[cs(0x2ef)]){if(A===cs(0x1d7)&&this[cs(0x2ef)]['vars']){let L=parseFloat(this['tween'][cs(0x194)]['duration'])||0x1,P=parseFloat(C)||0x1;this['tween'][cs(0x2fe)](L/P);return;}clearTimeout(u),u=setTimeout(()=>{const cu=cs;this[cu(0x2ef)]&&!this['tween'][cu(0x2ea)]()&&this[cu(0x34e)]();},0x3c);}},this[cr(0x22b)]);}}['_play'](){const cv=au;let L=window['gsap'];if(!L)return;this['element'][cv(0x324)][cv(0x1eb)]==='none'&&(this[cv(0x2d6)][cv(0x324)]['display']=''),this['tween']&&this[cv(0x2ef)][cv(0x231)]();let P=this[cv(0x255)]['effect'];if(P==='motionPath'&&this['cfg'][cv(0x2c8)]){let T=rt(this[cv(0x2d6)],this[cv(0x255)]['pathId']);if(!T){console[cv(0x2d8)](cv(0x2e7),this['cfg'][cv(0x2c8)]);return;}T['tagName'][cv(0x1a9)]()==='svg'&&(T=T[cv(0x232)](cv(0x2a2))??T),this[cv(0x308)]&&(this[cv(0x308)][cv(0x2e3)](),this[cv(0x308)]=null);let {pathEl:Y,tempEl:a0}=B(T);this['_tempPathEl']=a0,this[cv(0x2ef)]=L['to'](this[cv(0x2d6)],{'duration':parseFloat(this[cv(0x255)]['duration'])||0x1,'ease':this[cv(0x255)][cv(0x2b7)]||cv(0x191),'repeat':parseInt(this['cfg']['repeat'])||0x0,'yoyo':this['cfg']['yoyo']===!0x0,'paused':!0x0,'motionPath':{'path':Y,'align':this['cfg']['alignToPath']?Y:!0x1,'autoRotate':this['cfg']['orientToPath']===!0x0,'alignOrigin':[0.5,0.5],'start':this['cfg']['valueFrom']?parseFloat(this['cfg'][cv(0x22e)])/0x64:0x0,'end':this['cfg']['valueTo']?parseFloat(this['cfg']['valueTo'])/0x64:0x1}});}else{if(P===cv(0x345)&&this['cfg'][cv(0x2bf)])this[cv(0x2ef)]=L['to'](this['element'],{'duration':parseFloat(this['cfg']['duration'])||0x1,'ease':this[cv(0x255)][cv(0x2b7)]||cv(0x191),'repeat':parseInt(this[cv(0x255)][cv(0x1fd)])||0x0,'yoyo':this['cfg']['yoyo']===!0x0,'paused':!0x0,'morphSVG':this[cv(0x255)][cv(0x2bf)]});else{if(P===cv(0x26e)){this['_destroyPathFlowEls'](L);let a1=parseFloat(this[cv(0x255)][cv(0x160)])||0xa,a2=parseFloat(this['cfg'][cv(0x344)])||0x14,a3=this['cfg']['color']||null,a4=this[cv(0x255)][cv(0x2be)]==='reverse',a5=this[cv(0x2d6)][cv(0x290)]['toLowerCase']()==='svg'?this[cv(0x2d6)]['querySelector'](cv(0x16a))||this[cv(0x2d6)]:this[cv(0x2d6)];a5['style']['strokeDasharray']=a1+'\x20'+a2,a3&&(a5[cv(0x324)][cv(0x24f)]=a3);let a6=a4?0x0:a1+a2,a7=a4?a1+a2:0x0;this[cv(0x2ef)]=L[cv(0x1f3)](a5,{'attr':{'stroke-dashoffset':a6}},{'attr':{'stroke-dashoffset':a7},'duration':parseFloat(this['cfg']['duration'])||0x1,'ease':'none','repeat':-0x1,'paused':!0x0});}else{if(P===cv(0x346)){this[cv(0x27f)](L),this['_pathFlowEls']=[];let a8=parseInt(this[cv(0x255)][cv(0x1bb)])||0x5,a9=this[cv(0x255)][cv(0x296)]||'triangle',aa=this[cv(0x255)]['color']||cv(0x1cb),ab=parseFloat(this['cfg'][cv(0x213)])||0x8,ac=this[cv(0x255)][cv(0x2be)]===cv(0x1fe),ad=this['cfg']['customShapeD']||'',ae=parseFloat(this[cv(0x255)]['duration'])||0x2,af=this[cv(0x2d6)]['tagName']['toLowerCase']()===cv(0x28c)?this['element']['querySelector']('path,line,polyline,polygon,rect,circle,ellipse')||this['element']:this['element'],ag=af['ownerSVGElement']||af[cv(0x210)](cv(0x28c))||this['element'];if(!ag)return;this[cv(0x308)]&&(this['_tempPathEl']['remove'](),this['_tempPathEl']=null);let {pathEl:ah,tempEl:ai}=B(af);this['_tempPathEl']=ai;let aj='http://www.w3.org/2000/svg',ak=()=>{const cw=cv;let am;switch(a9){case'triangle':am=document[cw(0x1d8)](aj,'polygon'),am[cw(0x321)]('points',ab+',0\x200,'+-ab/0x2+'\x200,'+ab/0x2);break;case cw(0x2e2):am=document['createElementNS'](aj,cw(0x1ed)),am[cw(0x321)]('d','M'+ab+cw(0x1d6)+-ab/0x2+'\x20L'+ab*0.35+cw(0x1d6)+ab/0x2+'\x20Z');break;case cw(0x29e):am=document[cw(0x1d8)](aj,'circle'),am['setAttribute']('r',String(ab/0x2));break;case cw(0x1cd):am=document['createElementNS'](aj,'rect'),am[cw(0x321)]('width',String(ab)),am['setAttribute']('height',String(ab)),am['setAttribute']('x',String(-ab/0x2)),am['setAttribute']('y',String(-ab/0x2));break;case'star':{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['push'](ap*Math[cw(0x318)](aq)+','+ap*Math['sin'](aq));}am[cw(0x321)](cw(0x25a),an[cw(0x277)]('\x20'));break;}case'custom':am=document['createElementNS'](aj,'path'),am['setAttribute']('d',ad||'M'+ab+',0\x20L0,'+-ab/0x2+cw(0x332)+ab/0x2+'\x20Z');break;default:am=document[cw(0x1d8)](aj,cw(0x2ed)),am['setAttribute'](cw(0x1a6),String(ab*0x2)),am['setAttribute'](cw(0x2f6),String(ab/0x3)),am[cw(0x321)]('x',String(-ab)),am[cw(0x321)]('y',String(-ab/0x6));}return am['setAttribute']('fill',aa),ag[cw(0x1da)](am),this['_pathFlowEls']['push'](am),am;},al=L['timeline']({'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':cv(0x191)},0x0);}this[cv(0x2ef)]=al;}else{let aq=ct(this['cfg'],!0x0);this[cv(0x2ef)]=L['to'](this['element'],aq);}}}}this[cv(0x2ef)]&&this['tween']['play']();}['_destroyPathFlowEls'](l){const cx=au;if(this['_pathFlowEls']){for(let m of this[cx(0x30a)])l&&l[cx(0x183)](m),m[cx(0x2e3)]();this[cx(0x30a)]=null;}}['destroy'](){const cy=au;let l=window[cy(0x2aa)];this['tween']&&(this[cy(0x2ef)][cy(0x231)](),this[cy(0x2ef)]=null),this[cy(0x308)]&&(this['_tempPathEl'][cy(0x2e3)](),this['_tempPathEl']=null),this[cy(0x27f)](l),O(this[cy(0x22b)]);}},$=new WeakMap(),D=new WeakMap();async function z(m){const cz=au;await q();let p=(m||document)[cz(0x283)](cz(0x1b8));for(let u of p)try{let w=JSON[cz(0x348)](u['getAttribute'](cz(0x1ff))),y=Array['isArray'](w)?w:[w],A=$[cz(0x192)](u)||[];for(let L of A)L[cz(0x173)]();let C=[];for(let P of y){if(!P||typeof P!='object')continue;let S=new U(u,P);await S['init'](),C[cz(0x347)](S);}$['set'](u,C);}catch(T){console['warn'](cz(0x176),u,T);}}function tt(l){const cA=au;let m=(l||document)[cA(0x283)]('[data-animation]');for(let n of m){let p=$[cA(0x192)](n)||[];for(let r of p)r[cA(0x173)]();$[cA(0x1c8)](n);}}async function J(m){const cB=au;await q();let p=(m||document)[cB(0x283)](cB(0x2b1));for(let u of p)try{let w=JSON[cB(0x348)](u['getAttribute']('data-effects')),y=Array['isArray'](w)?w:[w],A=D[cB(0x192)](u)||[];for(let L of A)L?.['cleanup']&&L['cleanup']();let C=[];for(let P of y){if(!P||typeof P!='object')continue;let S=await ut(u,P);C[cB(0x347)]({'cleanup':S});}D['set'](u,C);}catch(T){console['warn']('[AnimationService]\x20data-effects\x20parse\x20error\x20on\x20element:',u,T);}}function et(l){const cC=au;let m=(l||document)[cC(0x283)]('[data-effects]');for(let n of m){let p=D[cC(0x192)](n)||[];for(let r of p)r?.[cC(0x196)]&&r[cC(0x196)]();D[cC(0x1c8)](n);}}async function ut(m,p){const cD=au;let u=window[cD(0x2aa)];if(!u)return null;let y=parseFloat(p[cD(0x1d7)])||0.5,A=parseFloat(p['delay'])||0x0,C=p['ease']||'power2.out',L=parseInt(p['repeat'])||0x0,P=()=>{const cE=cD;switch(p[cE(0x25e)]){case cE(0x340):u['fromTo'](m,{'opacity':0x0},{'opacity':0x1,'duration':y,'ease':C,'delay':A});break;case'fadeOut':u['to'](m,{'opacity':0x0,'duration':y,'ease':C,'delay':A});break;case'slideInLeft':u[cE(0x1f3)](m,{'x':-0x64,'opacity':0x0},{'x':0x0,'opacity':0x1,'duration':y,'ease':C,'delay':A});break;case'slideInRight':u[cE(0x1f3)](m,{'x':0x64,'opacity':0x0},{'x':0x0,'opacity':0x1,'duration':y,'ease':C,'delay':A});break;case'slideInTop':u[cE(0x1f3)](m,{'y':-0x64,'opacity':0x0},{'y':0x0,'opacity':0x1,'duration':y,'ease':C,'delay':A});break;case cE(0x230):u['fromTo'](m,{'y':0x64,'opacity':0x0},{'y':0x0,'opacity':0x1,'duration':y,'ease':C,'delay':A});break;case'bounce':u[cE(0x1f3)](m,{'y':0x0},{'y':-0x14,'duration':y/0x2,'ease':'power2.out','yoyo':!0x0,'repeat':L||0x3,'delay':A});break;case'pulse':u['fromTo'](m,{'scale':0x1},{'scale':1.1,'duration':y/0x2,'ease':cE(0x21d),'yoyo':!0x0,'repeat':L||0x3,'delay':A});break;case cE(0x27b):u['fromTo'](m,{'x':0x0},{'x':0xa,'duration':y/0x6,'ease':'none','yoyo':!0x0,'repeat':L||0x5,'delay':A});break;case'glow':u[cE(0x1f3)](m,{'filter':cE(0x1ec)},{'filter':'drop-shadow(0\x200\x20'+(p[cE(0x22a)]||0xa)+'px\x20'+(p['glowColor']||'yellow')+')','duration':y,'ease':C,'yoyo':L>0x0,'repeat':L,'delay':A});break;case cE(0x211):u[cE(0x1f3)](m,{'filter':'blur(0px)'},{'filter':'blur('+(p['blurAmount']||0x5)+'px)','duration':y,'ease':C,'delay':A});break;case cE(0x30e):u['to'](m,{'rotation':0x168,'duration':y,'ease':'none','repeat':L||-0x1,'delay':A});break;case cE(0x263):u[cE(0x1f3)](m,{'rotationY':0x0},{'rotationY':0x168,'duration':y,'ease':C,'delay':A});break;case cE(0x1e8):{let a2=parseFloat(p[cE(0x273)])||2.5,a3=p['ease']||cE(0x2ab),a4=!p[cE(0x2f7)]||p['trigger']==='load',a5=L!==0x0?L:a4?-0x1:0x0;u['fromTo'](m,{'scale':0x0,'opacity':p['opacityFrom']!=null?parseFloat(p[cE(0x202)]):0x1},{'scale':a2,'opacity':0x0,'duration':y,'ease':a3,'repeat':a5,'delay':A,'transformOrigin':'50%\x2050%'});break;}case cE(0x26e):{let a6=parseFloat(p['dashLen'])||0xa,a7=parseFloat(p['gapLen'])||0x14,a8=p[cE(0x315)]||null,a9=p[cE(0x2be)]==='reverse'?cE(0x1fe):'normal',aa=m['tagName'][cE(0x1a9)]()==='svg'&&m[cE(0x232)](cE(0x16a))||m;aa['style']['strokeDasharray']=a6+'\x20'+a7,a8&&(aa[cE(0x324)][cE(0x24f)]=a8),Y=aa['animate']([{'strokeDashoffset':a6+a7},{'strokeDashoffset':0x0}],{'duration':y*0x3e8,'iterations':0x1/0x0,'easing':'linear','direction':a9,'delay':A*0x3e8});break;}case cE(0x346):{let ab=parseInt(p[cE(0x1bb)])||0x5,ac=p[cE(0x296)]||cE(0x253),ad=p[cE(0x315)]||'#0066ff',ae=parseFloat(p[cE(0x213)])||0x8,af=p[cE(0x2be)]===cE(0x1fe),ag=m[cE(0x290)]['toLowerCase']()===cE(0x28c)&&m[cE(0x232)]('path,line,polyline,polygon,rect,circle,ellipse')||m,ah=ag[cE(0x270)]||ag[cE(0x210)]('svg')||m;if(!ah)break;let {pathEl:ai,tempEl:aj}=B(ag);aj&&a0['push'](aj);let ak=cE(0x20d),al=()=>{const cF=cE;let am;switch(ac){case cF(0x253):am=document[cF(0x1d8)](ak,cF(0x212)),am[cF(0x321)]('points',ae+cF(0x341)+-ae/0x2+'\x200,'+ae/0x2);break;case'arrow':am=document['createElementNS'](ak,'path'),am[cF(0x321)]('d','M'+ae+',0\x20L0,'+-ae/0x2+'\x20L'+ae*0.35+',0\x20L0,'+ae/0x2+'\x20Z');break;case'circle':am=document[cF(0x1d8)](ak,cF(0x29e)),am[cF(0x321)]('r',String(ae/0x2));break;case'square':am=document['createElementNS'](ak,cF(0x2ed)),am['setAttribute'](cF(0x1a6),String(ae)),am['setAttribute']('height',String(ae)),am[cF(0x321)]('x',String(-ae/0x2)),am['setAttribute']('y',String(-ae/0x2));break;case'star':{am=document['createElementNS'](ak,cF(0x212));let an=[];for(let ao=0x0;ao<0xa;ao++){let ap=ao%0x2===0x0?ae:ae*0.4,aq=ao*Math['PI']/0x5-Math['PI']/0x2;an['push'](ap*Math[cF(0x318)](aq)+','+ap*Math[cF(0x337)](aq));}am['setAttribute'](cF(0x25a),an['join']('\x20'));break;}case'custom':{let ar=p['customShapeD']||'M'+ae+cF(0x1d6)+-ae/0x2+'\x200,'+ae/0x2+'\x20Z';am=document[cF(0x1d8)](ak,cF(0x1ed)),am[cF(0x321)]('d',ar);break;}default:am=document['createElementNS'](ak,cF(0x2ed)),am[cF(0x321)](cF(0x1a6),String(ae*0x2)),am[cF(0x321)](cF(0x2f6),String(ae/0x3)),am[cF(0x321)]('x',String(-ae)),am[cF(0x321)]('y',String(-ae/0x6));break;}return am['setAttribute'](cF(0x197),ad),ah['appendChild'](am),a0['push'](am),am;};for(let am=0x0;am<ab;am++){let an=al(),ao=af?0x1-am/ab:am/ab,ap=af?-(am/ab):am/ab+0x1;u['to'](an,{'motionPath':{'path':ai,'align':ai,'autoRotate':!0x0,'alignOrigin':[0.5,0.5],'start':ao,'end':ap},'duration':y,'repeat':-0x1,'ease':cE(0x191),'delay':A});}break;}}},S=null,T=null,Y=null,a0=[],a1=[];if(p['trigger']===cD(0x338))P();else{if(p['trigger']===cD(0x1e4))S=P,m[cD(0x291)]('mouseenter',S);else{if(p['trigger']===cD(0x2fb))T=P,m['addEventListener'](cD(0x2fb),T);else{if(p['trigger']==='oid'){p[cD(0x2b5)]?.[cD(0x1e9)]&&await F(p[cD(0x2b5)]['signal'],m,a3=>{const cG=cD;p[cG(0x265)]=String(a3);},a1),p['conditionValue_bind']?.['signal']&&await F(p[cD(0x2d9)][cD(0x1e9)],m,a3=>{const cH=cD;p[cH(0x271)]=String(a3);},a1);let a2=p[cD(0x215)]?.[cD(0x1e9)]||p['oid'];a2&&await F(a2,m,a3=>{const cI=cD;if(Q(a3,p['condition']||'equal',p[cI(0x271)]??cI(0x1a8)))P();else{u['killTweensOf'](m),Y&&(Y['cancel'](),Y=null);for(let a4 of a0)u[cI(0x183)](a4),a4['remove']();a0[cI(0x2ee)]=0x0;}},a1);}}}}return()=>{const cJ=cD;S&&m[cJ(0x2a3)](cJ(0x30f),S),T&&m[cJ(0x2a3)](cJ(0x2fb),T),O(a1),Y&&Y['cancel']();for(let a3 of a0)u[cJ(0x183)](a3),a3['remove']();};}import{PropertiesHelper as k}from'@gokturk413/web-component-designer/dist/elements/services/propertiesService/services/PropertiesHelper.js';var M='dynamic-property-defs';function dt(l){const cK=au;try{let m=l['getAttribute'](M);if(m){let n=JSON[cK(0x348)](m);if(Array[cK(0x28f)](n))return n['filter'](o=>o&&o['name']);}}catch(o){console['warn']('invalid\x20'+M+'\x20attribute',o,l);}return[];}function pt(l,m){const cL=au;let n=Object[cL(0x1f8)](l);for(;n&&n!==HTMLElement['prototype'];){let o=Object['getOwnPropertyDescriptor'](n,m);if(o)return o;n=Object['getPrototypeOf'](n);}return null;}function G(l){const cM=au;let m=dt(l);for(let n of m){let p=n['name'];if(Object[cM(0x350)](l,p))continue;let u=pt(l,p);u&&(u['get']||u[cM(0x2e8)])?Object['defineProperty'](l,p,{'get'(){const cN=cM;return u['get']?u['get'][cN(0x2d7)](this):void 0x0;},'set'(y){const cO=cM;(u['get']?u[cO(0x192)]['call'](this):void 0x0)!==y&&(u['set']?.['call'](this,y),this['_bindingsRefresh']?.(p),this['dispatchEvent'](new CustomEvent(k[cO(0x20e)](p)+cO(0x1e5),{'detail':{'newValue':y}})));},'enumerable':!0x0,'configurable':!0x0}):Object['defineProperty'](l,p,{'get'(){return this['_'+p];},'set'(y){const cP=cM;this['_'+p]!==y&&(!Number[cP(0x304)](this['_'+p])||!Number[cP(0x304)](y))&&(this['_'+p]=y,this[cP(0x1a5)]?.(p),this[cP(0x1ac)](new CustomEvent(k['camelToDashCase'](p)+cP(0x1e5),{'detail':{'newValue':y}})));},'enumerable':!0x0,'configurable':!0x0});let w=l[cM(0x2f8)](k['camelToDashCase'](p))??n['default'];w!=null&&(n[cM(0x25e)]==='number'?w=parseFloat(w):n[cM(0x25e)]==='boolean'&&(w=w===''||w===!0x0||w===cM(0x1a8)),u?l[p]=w:l['_'+p]=w);}}function it(l){const cQ=au;l instanceof Element&&l[cQ(0x312)](M)&&G(l);for(let m of l['querySelectorAll']('['+M+']'))G(m);}var ft=[au(0x1eb),au(0x165),'flexWrap',au(0x33f),'alignItems',au(0x16c),'padding',au(0x301),au(0x228)];function gt(l){const cR=au;let m={};if(!l||!l[cR(0x25e)]||l[cR(0x25e)]==='none')return m;if(l[cR(0x25e)]==='flex')m['display']='flex',m['flexDirection']=l[cR(0x2be)]||cR(0x1d4),m['flexWrap']=l['wrap']||cR(0x1d3),m[cR(0x33f)]=l[cR(0x33f)]||'flex-start',m[cR(0x224)]=l['alignItems']||cR(0x295),l['gap']&&(m[cR(0x16c)]=l[cR(0x16c)]),l[cR(0x32e)]&&(m['padding']=l[cR(0x32e)]);else{if(l[cR(0x25e)]==='grid'){let n=l['gridTemplateColumns'],o=l[cR(0x228)];if(!n&&!o)return m;m['display']=cR(0x1b9),n&&(m['gridTemplateColumns']=n),o&&(m['gridTemplateRows']=o),l[cR(0x16c)]&&(m[cR(0x16c)]=l['gap']),l[cR(0x32e)]&&(m[cR(0x32e)]=l[cR(0x32e)]);}}return m;}function st(l,m){const cS=au;if(!l)return;let n=gt(m);for(let o of ft)l[cS(0x324)][o]='';for(let p in n)l['style'][p]=n[p];}function mt(l){const cT=au;return!!l&&(l['type']===cT(0x2a6)||l['type']==='tabs');}function Nt(l,m,p){const cU=au;if(!l||!mt(m))return null;let r=l[cU(0x232)](':scope\x20>\x20.__layout-generated'),u=m[cU(0x25e)]==='split'?cU(0x1f4):cU(0x2d5);r&&r[cU(0x290)]['toLowerCase']()!==u&&(r['remove'](),r=null);let w=y=>{const cV=cU;let A=[...l[cV(0x24d)]][cV(0x1b3)](C=>C!==y);for(let C of A)y['appendChild'](C);};return r||(r=document[cU(0x186)](u),r[cU(0x2ac)]['add']('__layout-generated'),r['style'][cU(0x32d)]='width:100%;height:100%;box-sizing:border-box;',w(r),l[cU(0x1da)](r)),m[cU(0x25e)]==='split'?(r['setAttribute'](cU(0x26a),m[cU(0x26a)]||'horizontal'),r['setAttribute'](cU(0x2c2),String(m[cU(0x1ba)]??0x32))):(m[cU(0x23a)]&&r['setAttribute']('tab-labels',m[cU(0x23a)]),r[cU(0x321)]('active-tab',String(m[cU(0x2cf)]??0x0))),p&&(p['style'][cU(0x339)]='relative',p['style']['display']='block',p['style'][cU(0x1a6)]||(p[cU(0x324)]['width']='100%'),p['style'][cU(0x2f6)]||(p[cU(0x324)]['height']='100%')),r;}var vt=au(0x2e6),v=Symbol(au(0x33d)),x=class extends d{static [au(0x324)]=e`:host { overflow: hidden }`;#e;#t;#n=[];#r;#i;#a;#o;#s=new Map();constructor(){const cW=au;super(),this[cW(0x2c7)](null,!0x0),this[cW(0x21e)][v]['control']['settings'][cW(0x26c)]&&(this[cW(0x27c)]['adoptedStyleSheets']=[b['globalStylesheet'],...this['shadowRoot'][cW(0x19f)]]),this[cW(0x21e)][v][cW(0x351)]['settings'][cW(0x188)]&&(this.#r=new ResizeObserver(l=>{const cX=cW;let m=this.#i['valueChangedCallbacks'][cX(0x192)]('width');if(m){for(let n of m)n();}if(m=this.#i['valueChangedCallbacks'][cX(0x192)]('height'),m){for(let o of m)o();}}));}async['connectedCallback'](){const cY=au;this['_parseAttributesToProperties']();try{st(this,this['constructor'][v][cY(0x351)][cY(0x2d2)]?.['layout']);}catch{}this['_setupDynamicProperties'](),this[cY(0x1a5)](),this.#i={'valueProvider':m=>{const cZ=cY;switch(m){case'width':return this['getBoundingClientRect']()[cZ(0x1a6)];case'height':return this[cZ(0x1e2)]()['height'];}return null;},'valueChangedCallbacks':new Map()},this.#s=new Map(),this.#o=new MutationObserver(m=>{const d0=cY;for(let p of m){for(let u of p['removedNodes']){if(u['nodeType']!==0x1)continue;let w=this.#s['get'](u);if(w){for(let y of w)y();this.#s[d0(0x1c8)](u);}}for(let A of p['addedNodes']){if(A['nodeType']!==0x1)continue;let C=this['_getRelativeSignalsPath'](),L=[];try{let S=window[d0(0x23e)][d0(0x1ab)]['getBindings'](A);for(let T of S)L['push'](window[d0(0x23e)]['bindingsHelper']['applyBinding'](A,T,C,this,this.#i));}catch(Y){console[d0(0x2d8)](d0(0x161),Y);}let P=window['appShell'][d0(0x1ab)][d0(0x218)](A,C,this,this.#i);L['push'](...P),this.#s['set'](A,L),z(A)[d0(0x34a)](()=>{}),J(A)['catch'](()=>{});}}}),this.#o[cY(0x31b)](this[cY(0x27c)],{'childList':!0x0,'subtree':!0x0}),this.#t=window[cY(0x23e)][cY(0x1ab)][cY(0x218)](this['shadowRoot'],this['_getRelativeSignalsPath'](),this,this.#i),this.#e=await window['appShell'][cY(0x2bc)]['assignAllScripts'](cY(0x31d)+this['constructor'][v]['name'],this['constructor'][v][cY(0x351)][cY(0x2f5)],this['shadowRoot'],this,b),this.#e?.['connectedCallback']?.(this,this[cY(0x27c)]);for(let m of this.#n)this[cY(0x291)](m[0x0],m[0x1]);this.#r?.[cY(0x31b)](this),this.#a=b[cY(0x1dd)]['on'](n=>{const d1=cY;let o=this[d1(0x21e)][v][d1(0x225)];n[d1(0x25e)]==d1(0x351)&&n[d1(0x225)]===o&&(this['disconnectedCallback'](),this[d1(0x27d)]=this['constructor']['template'][d1(0x254)][d1(0x29b)](!0x0),this['shadowRoot'][d1(0x2ec)]='',this[d1(0x27c)][d1(0x1da)](this[d1(0x27d)]),this[d1(0x2c7)](null,!0x0),this['connectedCallback']());});let l=this['constructor'][v][cY(0x351)]['settings'];if(l?.[cY(0x175)]){let n={'enabled':l[cY(0x175)],'groups':l['visibilityGroups']||[],'action':l['visibilityAction']||'hide','redirectScreen':l['visibilityRedirectScreen']||''};await E['applyVisibility'](this,n);}await E['scanAndApply'](this[cY(0x27c)]),z(this[cY(0x27c)])['catch'](()=>{}),J(this['shadowRoot'])[cY(0x34a)](()=>{});}['disconnectedCallback'](){const d2=au;for(let l of this.#n)this['removeEventListener'](l[0x0],l[0x1]);this.#e?.['disconnectedCallback']?.(this,this[d2(0x27c)]);for(let m of this.#t)m();this.#t=null,this.#o?.[d2(0x2bd)](),this.#o=null;for(let n of this.#s['values']())for(let o of n)o();this.#s['clear'](),this.#r?.['unobserve'](this),this.#a?.['dispose'](),E[d2(0x20f)](this),this[d2(0x27c)]['querySelectorAll']('[data-visibility-controlled=\x22true\x22]')[d2(0x219)](p=>E['removeVisibility'](p)),tt(this['shadowRoot']),et(this[d2(0x27c)]);}[au(0x2c5)](){const d3=au;G(this),it(this[d3(0x27c)]);}[au(0x16f)](l,m){const d4=au;let n=[l,m];return this.#n[d4(0x347)](n),this[d4(0x291)](l,m),{'remove':()=>{const d5=d4;let p=this.#n[d5(0x21f)](n);this.#n[d5(0x32a)](p,0x1),this['removeEventListener'](l,m);}};}[au(0x201)](){const d6=au;return this[d6(0x226)]()?.['host']?.['_getRelativeSignalsPath']?.()??'';}};window[au(0x208)]=x;function St(l){const d7=au;l[0x0]=='/'&&(l=l['substring'](0x1));let m=j['camelToDashCase'](l[d7(0x2f4)]('/','-')['replaceAll']('\x20','-')[d7(0x2f4)]('--','-'));return m[0x0]==='-'&&(m=m['substring'](0x1)),vt+m;}function K(l,m){const d8=au;let p=St(l),u=document['createElement']('template');u['innerHTML']=m['html'];let w=f(m[d8(0x324)]),y={};for(let A in m[d8(0x1c5)]){let C=m[d8(0x1c5)][A];C['internal']||(C[d8(0x25e)]==d8(0x34f)||C['type']==d8(0x315)?y[A]=String:C[d8(0x25e)]==d8(0x259)?y[A]=Boolean:C['type']=='number'?y[A]=Number:C['type']==d8(0x1a4)?y[A]=Date:C['type']==d8(0x1c3)||C[d8(0x25e)]==d8(0x1e9)||C[d8(0x25e)]=='screen'?y[A]=String:(C[d8(0x25e)]=='object',y[A]=Object));}if(window['IobrokerWebuiCustomControl'+l]){window['IobrokerWebuiCustomControl'+l]['template']=u,window[d8(0x299)+l]['style']=w,window[d8(0x299)+l][d8(0x1c5)]=y,window[d8(0x299)+l][d8(0x26f)]=null;let L=window[d8(0x299)+l][v];L[d8(0x351)]=m;}else{window['IobrokerWebuiCustomControl'+l]=function(){const d9=d8;let S=Reflect[d9(0x163)](x,[],window[d9(0x299)+l]),T=window['IobrokerWebuiCustomControl'+l][v][d9(0x351)];for(let Y in T['properties']){let a0;Y in S&&(a0=S[Y],delete S[Y]),Object[d9(0x1a3)](S,Y,{'get'(){return this['_'+Y];},'set'(a1){const da=d9;this['_'+Y]!==a1&&(!Number['isNaN'](this['_'+Y])||!Number['isNaN'](a1))&&(this['_'+Y]=a1,this['_bindingsRefresh'](Y),S[da(0x1ac)](new CustomEvent(j[da(0x20e)](Y)+'-changed',{'detail':{'newValue':a1}})));},'enumerable':!0x0,'configurable':!0x0}),a0!==void 0x0?S[Y]=a0:T[d9(0x1c5)][Y]['default']!=null&&(S['_'+Y]=T['properties'][Y]['default']);}return S;};let P={'control':m,'name':l};window['IobrokerWebuiCustomControl'+l][v]=P,window['IobrokerWebuiCustomControl'+l][d8(0x172)]=u,window['IobrokerWebuiCustomControl'+l][d8(0x324)]=w,window[d8(0x299)+l]['properties']=y,window[d8(0x299)+l]['_propertiesDictionary']=null,window[d8(0x299)+l][d8(0x292)]=Object[d8(0x311)](x[d8(0x292)],{'constructor':{'value':window[d8(0x299)+l]}}),customElements[d8(0x192)](p)||customElements['define'](p,window[d8(0x299)+l]);}}export{q as a,z as b,tt as c,J as d,et as e,it as f,st as g,mt as h,Nt as i,vt as j,v as k,x as l,St as m,K as n,V as o,b as p};
@@ -1,4 +1,4 @@
1
- const ak=c;(function(K,L){const aj=c,M=K();while(!![]){try{const Q=-parseInt(aj(0x1f4))/0x1*(parseInt(aj(0x1d4))/0x2)+parseInt(aj(0x1a6))/0x3*(parseInt(aj(0x19c))/0x4)+-parseInt(aj(0x20e))/0x5+-parseInt(aj(0x20a))/0x6+-parseInt(aj(0x1ee))/0x7+-parseInt(aj(0x1cb))/0x8*(parseInt(aj(0x1da))/0x9)+parseInt(aj(0x1cc))/0xa;if(Q===L)break;else M['push'](M['shift']());}catch(R){M['push'](M['shift']());}}}(a,0x3b07b));import{a as d,b as e,c as h,d as i,e as n,f as o,m as p}from'./chunk-MECWXZRN.js';function c(b,d){b=b-0x199;const e=a();let f=e[b];return f;}import{__decorate as q}from'tslib';import{BaseCustomWebComponentConstructorAppend as s,css as t,cssFromString as v,customElement as y,DomHelper as z,html as B,property as D}from'@gokturk413/base-custom-webcomponent';import{convertCssUnitToPixel as G}from'@gokturk413/web-component-designer/dist/elements/helper/CssUnitConverter.js';import{isFirefox as I}from'@gokturk413/web-component-designer/dist/elements/helper/Browser.js';import{PropertiesHelper as J}from'@gokturk413/web-component-designer/dist/elements/services/propertiesService/services/PropertiesHelper.js';var _;window[ak(0x209)]=d;function a(){const aN=['visible','_editorAnimationsEnabled','uniform','screen','head','_assignEvent','querySelectorAll','stretch','currentProject','get','_root','uniformToFill','removeBindings','filter','connection','stretchHeight','❌\x20[ScreenViewer]\x20Error\x20loading\x20screen\x20\x22','_loadScreen','YES','replaceSync','_rootShadow','bindingsHelper','relativeSignalsPath','_resizeObserver','width','waitForReady','40hLOYfg','10806840BRvyOf','applyAllBindings','prototype','data-visibility-action','push','useStyleFromScreenForViewer','location','childNodes','58Ebeqru','_stretchHeight','userName','stretchWidth','error\x20loading\x203d\x20viewer','script','741402hgIlKS','objects','_relativeSignalsPath','message','connectedCallback','defineProperty','translate','appendChild','_iobBindings','_screenName','disconnectedCallback','loadScreenData','appShell','removeEventListener','log','action','globalStyle','redirectScreen','attachShadow','dispose','1100211jPbnDI','_useStyleFromScreenForViewer','display','_loading','default','offsetHeight','3097YqeeOe','enabled','shadowRoot','allowed','_onEditorAnimationsChanged','_refreshViewSubscription','_timeout','screenName','objectsChanged','checkScreenAccess','createDocumentFragment','observe','getAttribute','offsetWidth','webui-editor-animations-changed','addEventListener','_editorPauseSheet','opacity','⛔\x20[Screen\x20Visibility]\x20Server\x20denied\x20access\x20to:','error','hidden','ensureGSAP','1238868MHkERM','✅\x20[ScreenViewer]\x20Screen\x20loaded\x20successfully:','connectedCallback\x20error\x20for\x20\x22','setHTMLUnsafe','1280405nYeBsw','[ScreenViewer]\x20Group\x20visibility\x20check\x20error:','redirect','_stretch','height','dispatchEvent','0\x200','[bind-prop\x5c:hidden]','_scriptObject','disable','childElementCount','8VQqxiB','catch','0.5','_applyEditorAnimationState','globalStylesheet','styleIfFromScreen','📥\x20[ScreenViewer]\x20Screen\x20object\x20received:','📥\x20[ScreenViewer]\x20Getting\x20screen\x20object\x20for:','adoptedStyleSheets','name','423807KndkYA','*,\x20::before,\x20::after\x20{\x20animation-play-state:\x20paused\x20!important;\x20transition:\x20none\x20!important;\x20}','includes','none','_stretchWidth','_isEditorAnimationsPaused','getElementById','_getDomElement','warn','style','screenviewer\x20-\x20'];a=function(){return aN;};return a();}var l=class extends s{static{_=this;}static [ak(0x1af)]=t`
1
+ const ak=c;(function(K,L){const aj=c,M=K();while(!![]){try{const Q=-parseInt(aj(0x114))/0x1+parseInt(aj(0x177))/0x2*(parseInt(aj(0x147))/0x3)+-parseInt(aj(0x144))/0x4+parseInt(aj(0x129))/0x5+-parseInt(aj(0x181))/0x6+-parseInt(aj(0x15c))/0x7+parseInt(aj(0x12b))/0x8;if(Q===L)break;else M['push'](M['shift']());}catch(R){M['push'](M['shift']());}}}(a,0x6b2a4));import{a as d,b as e,c as h,d as i,e as n,f as o,m as p}from'./chunk-MECWXZRN.js';import{__decorate as q}from'tslib';import{BaseCustomWebComponentConstructorAppend as s,css as t,cssFromString as v,customElement as y,DomHelper as z,html as B,property as D}from'@gokturk413/base-custom-webcomponent';function c(b,d){b=b-0x107;const e=a();let f=e[b];return f;}import{convertCssUnitToPixel as G}from'@gokturk413/web-component-designer/dist/elements/helper/CssUnitConverter.js';import{isFirefox as I}from'@gokturk413/web-component-designer/dist/elements/helper/Browser.js';import{PropertiesHelper as J}from'@gokturk413/web-component-designer/dist/elements/services/propertiesService/services/PropertiesHelper.js';var _;window[ak(0x107)]=d;function a(){const aR=['_root','iobroker-webui-3dscreen-viewer','runtime.html','_stretchWidth','[Screen\x20Visibility]\x20Backend\x20timeout\x20—\x20fail-open','log','*,\x20::before,\x20::after\x20{\x20animation-play-state:\x20paused\x20!important;\x20transition:\x20none\x20!important;\x20}','YES','_refreshViewSubscription','_relativeSignalsPath','useStyleFromScreenForViewer','childNodes','prototype','attachShadow','hidden','connectedCallback\x20error\x20for\x20\x22','90556fXYEhj','observe','none','split','_iobBindings','html','namespace','setScreenNameAndLoad','stretch','stretchWidth','1000482TNuAPY','dispatchEvent','_loading','translate','body','_applyEditorAnimationState','pointerEvents','adoptedStyleSheets','ensureGSAP','✅\x20[Screen\x20Visibility]\x20Server\x20granted\x20access\x20to:','push','0\x200','remove','webui-editor-animations-changed','error\x20loading\x203d\x20viewer','_stretch','parseHTMLUnsafe','_resizeObserver','opacity','defineProperty','offsetWidth','424323ftiYkB','addEventListener','data-visibility-action','checkScreenAccess','_rootShadow','catch','redirectScreen','_timeout','_parseAttributesToProperties','splice','applyAllBindings','connection','querySelectorAll','script','transformOrigin','includes','innerHTML','appShell','_screensChangedSubscription','location','get','2029535kCNRQg','dist/frontend/config/IobrokerWebui3DScreenViewer.js','7678936XFEUDD','_loadScreen','_editorPauseSheet','hide','screen','removeEventListener','_isEditorAnimationsPaused','screenName','connectedCallback','stretchHeight','scriptSystem','appendChild','removeBindings','warn','name','createDocumentFragment','_restoreCachedInititalValues','href','data-visibility-groups','visible','disconnect','_useStyleFromScreenForViewer','_stretchHeight','_scriptObject','[bind-prop\x5c:disable]','1573452ObcmfV','\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:flex;align-items:center;justify-content:center;height:100%;font-family:sans-serif;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22text-align:center;padding:40px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:48px;margin-bottom:20px;\x22>🔒</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<h2\x20style=\x22margin:0\x200\x2010px\x200;color:#666;\x22>Access\x20Denied</h2>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<p\x20style=\x22color:#999;\x22>You\x20don\x27t\x20have\x20permission\x20to\x20view\x20this\x20screen.</p>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20','removeAllChildnodes','6fzTYeO','style','[bind-prop\x5c:hidden]','⚠️\x20[ScreenViewer]\x20Screen\x20object\x20is\x20null\x20for:','default','[data-visibility-groups]','getCurrentUser','template','_screenName','🔄\x20[ScreenViewer]\x20_loadScreen\x20called\x20for:','_getDomElements','0.5','getElementById','length','_stretchView','relativeSignalsPath','offsetHeight','userName','_getDomElement','parseCssBindings','checkVisibility','230643kHJxYG','error','_onEditorAnimationsChanged','scale','globalStylesheet','filter','iobroker-webui-screen-viewer','disable','assignAllScripts','bindingsHelper','redirect'];a=function(){return aR;};return a();}var l=class extends s{static{_=this;}static ['style']=t`
2
2
  :host {
3
3
  height: 100%;
4
4
  position: relative;
@@ -7,7 +7,7 @@ const ak=c;(function(K,L){const aj=c,M=K();while(!![]){try{const Q=-parseInt(aj(
7
7
 
8
8
  *[node-projects-hide-at-run-time] {
9
9
  display: none !important;
10
- }`;static [ak(0x1a1)]=t`
10
+ }`;static ['styleIfFromScreen']=t`
11
11
  :host {
12
12
  background: transparent;
13
13
  border: none;
@@ -18,4 +18,4 @@ const ak=c;(function(K,L){const aj=c,M=K();while(!![]){try{const Q=-parseInt(aj(
18
18
 
19
19
  *[node-projects-hide-at-run-time] {
20
20
  display: none !important;
21
- }`;static ['template']=B`<div id="root"></div>`;['_iobBindings'];['_loading'];['_refreshViewSubscription'];['_screensChangedSubscription'];[ak(0x199)];[ak(0x1c8)];[ak(0x1bb)];['_rootShadow'];#e=[];['_stretch'];get['stretch'](){return this['_stretch'];}set['stretch'](K){const al=ak;this[al(0x211)]!=K&&(this[al(0x211)]=K,this['_loadScreen']());}[ak(0x1aa)];get[ak(0x1d7)](){return this['_stretchWidth'];}set['stretchWidth'](K){const am=ak;this['_stretchWidth']!=K&&(this['_stretchWidth']=K,this[am(0x1c2)]());}['_stretchHeight'];get[ak(0x1c0)](){const an=ak;return this[an(0x1d5)];}set[ak(0x1c0)](K){const ao=ak;this[ao(0x1d5)]!=K&&(this['_stretchHeight']=K,this['_loadScreen']());}['_relativeSignalsPath'];get[ak(0x1c7)](){const ap=ak;return this[ap(0x1dc)];}set[ak(0x1c7)](K){this['_relativeSignalsPath']!=K&&(this['_relativeSignalsPath']=K);}[ak(0x1e3)];get[ak(0x1fb)](){const aq=ak;return this[aq(0x1e3)];}set['screenName'](K){const ar=ak;this[ar(0x1e3)]!=K&&(this['_screenName']=K,this['_loadScreen']());}async['setScreenNameAndLoad'](K){const as=ak;this['_screenName']!=K&&(this[as(0x1e3)]=K,await this['_loadScreen']());}[ak(0x1db)];[ak(0x1ef)];get['useStyleFromScreenForViewer'](){const at=ak;return this[at(0x1ef)];}set[ak(0x1d1)](K){const au=ak;this[au(0x1ef)]!=K&&(this['_useStyleFromScreenForViewer']=K,this['_loadScreen']());}constructor(){const av=ak;super(),this[av(0x1bb)]=super[av(0x1ad)]('root'),this['_rootShadow']=this['_root'][av(0x1ec)]({'mode':'open'}),this['_restoreCachedInititalValues']();}[ak(0x1ad)](K){const aw=ak;return this['_rootShadow'][aw(0x1ac)](K);}['_getDomElements'](K){const ax=ak;return this[ax(0x1c5)]['querySelectorAll'](K);}['ready'](){const ay=ak;this['_parseAttributesToProperties'](),this[ay(0x1e3)]&&this[ay(0x1c2)]();}[ak(0x1bd)](){const az=ak;this[az(0x1e2)]&&this[az(0x1e2)]['forEach'](K=>K()),this[az(0x1e2)]=null,h(this[az(0x1c5)]),n(this['_rootShadow']);}async[ak(0x1c2)](){const aA=ak;if(console[aA(0x1e8)]('🔄\x20[ScreenViewer]\x20_loadScreen\x20called\x20for:',this['screenName']),this[aA(0x1fb)]&&!this['_loading']){this[aA(0x1f1)]=!0x0,console[aA(0x1e8)]('🔄\x20[ScreenViewer]\x20Starting\x20to\x20load\x20screen:',this['screenName']),await p[aA(0x1ca)](),this[aA(0x1f1)]=!0x1,this['removeBindings']();try{console[aA(0x1e8)](aA(0x1a3),this[aA(0x1fb)]);let K=await p['getWebuiObject']('screen',this['screenName']);console[aA(0x1e8)](aA(0x1a2),K?aA(0x1c3):'NO'),z['removeAllChildnodes'](this[aA(0x1c5)]),K?(console[aA(0x1e8)]('🚀\x20[ScreenViewer]\x20Loading\x20screen\x20data...'),await this['loadScreenData'](K['html'],K[aA(0x1af)],K[aA(0x1d9)],K['settings'],K['properties']),console['log'](aA(0x20b),this[aA(0x1fb)])):console['warn']('⚠️\x20[ScreenViewer]\x20Screen\x20object\x20is\x20null\x20for:',this['screenName']);}catch(L){console[aA(0x207)](aA(0x1c1)+this[aA(0x1fb)]+'\x22:',L),this[aA(0x1c5)]['innerHTML']='<div\x20style=\x22padding:20px;color:red;\x22>Error\x20loading\x20screen:\x20'+L[aA(0x1dd)]+'</div>';}}}async[ak(0x1e5)](K,L,M,Q,R){const aB=ak;if(this[aB(0x1fb)])try{let Z=p[aB(0x1d6)]||(await p['getCurrentUser']())?.[aB(0x1a5)],a0=p[aB(0x1bf)]['sendTo'](p['namespace'],aB(0x1fd),{'screenName':this[aB(0x1fb)],'username':Z,'project':p[aB(0x1b9)]}),a1=new Promise(a3=>setTimeout(()=>a3({'allowed':!0x0,'_timeout':!0x0}),0x1388)),a2=await Promise['race']([a0,a1]);if(!a2[aB(0x1f7)]){if(console['warn'](aB(0x206),this[aB(0x1fb)]),(a2[aB(0x1e9)]||'hide')===aB(0x210)&&a2[aB(0x1eb)]){this['screenName']=a2[aB(0x1eb)],this[aB(0x1c2)]();return;}this['_rootShadow']['innerHTML']='\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22display:flex;align-items:center;justify-content:center;height:100%;font-family:sans-serif;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22text-align:center;padding:40px;\x22>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<div\x20style=\x22font-size:48px;margin-bottom:20px;\x22>🔒</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<h2\x20style=\x22margin:0\x200\x2010px\x200;color:#666;\x22>Access\x20Denied</h2>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20<p\x20style=\x22color:#999;\x22>You\x20don\x27t\x20have\x20permission\x20to\x20view\x20this\x20screen.</p>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20</div>\x0a\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20\x20';return;}a2[aB(0x1fa)]?console['warn']('[Screen\x20Visibility]\x20Backend\x20timeout\x20—\x20fail-open'):console['log']('✅\x20[Screen\x20Visibility]\x20Server\x20granted\x20access\x20to:',this['screenName']);}catch(a3){console['error']('❌\x20[Screen\x20Visibility]\x20Server\x20check\x20failed:',a3);}if(R)for(let a4 in R){let a5=R[a4];Object[aB(0x1df)](this,a4,{'get'(){return this['_'+a4];},'set'(a6){const aC=aB;this['_'+a4]!==a6&&(this['_'+a4]=a6,this[aC(0x213)](new CustomEvent(J['camelToDashCase'](a4)+'-changed',{'detail':{'newValue':a6}})));},'enumerable':!0x0,'configurable':!0x0}),a5['default']&&(this['_'+a4]=a5[aB(0x1f2)]);}let T=p['config']?.[aB(0x1ea)]??'';this['_stretchView'](Q);let U=null;if(L)try{let a6=await window[aB(0x1e6)][aB(0x1c6)]['parseCssBindings'](L,this,this[aB(0x1c7)],this);U=a6[0x0],this[aB(0x1e2)]=a6[0x1];}catch(a7){console[aB(0x1ae)](a7),U=v(L);}else this['_iobBindings']=null;T&&L?this[aB(0x1c5)]['adoptedStyleSheets']=[_['style'],p['globalStylesheet'],U]:T?this[aB(0x1c5)]['adoptedStyleSheets']=[_[aB(0x1af)],p[aB(0x1a0)]]:L?this[aB(0x1c5)]['adoptedStyleSheets']=[_[aB(0x1af)],U]:this['_rootShadow']['adoptedStyleSheets']=[_['style']],this['_useStyleFromScreenForViewer']&&(this[aB(0x1f6)]['adoptedStyleSheets']=[_[aB(0x1a1)],...this['_rootShadow'][aB(0x1a4)]]);let W;if(Document['parseHTMLUnsafe']&&!I)this[aB(0x1c5)][aB(0x20d)](K);else{W=new DOMParser()['parseFromString'](K,'text/html',{'includeShadowRoots':!0x0});let a8=document[aB(0x1fe)]();for(let a9 of W[aB(0x1b5)]['childNodes'])a8[aB(0x1e1)](a9);for(let aa of W['body'][aB(0x1d3)])a8[aB(0x1e1)](aa);this['_rootShadow']['appendChild'](a8);}let X=[...this['_rootShadow']['querySelectorAll']('[data-visibility-groups]')];for(let ab of X){let ac=ab[aB(0x200)]('data-visibility-groups')?.['split'](',')['filter'](ae=>ae)||[],ad=ab[aB(0x200)](aB(0x1cf))||'hide';if(ac['length']>0x0)try{let ae=await p['checkVisibility']({'enabled':!0x0,'groups':ac,'action':ad});ad===aB(0x19a)&&!ae[aB(0x1f5)]?(ab[aB(0x1af)]['pointerEvents']='none',ab[aB(0x1af)]['opacity']=aB(0x19e)):ad!==aB(0x19a)&&!ae[aB(0x1b1)]&&ab['remove']();}catch(af){console[aB(0x207)](aB(0x20f),af);}}for(let ag of this['_rootShadow'][aB(0x1b7)](aB(0x215)))Object['defineProperty'](ag,aB(0x208),{'configurable':!0x0,'set'(ah){ag['style']['display']=ah?'none':'';},'get'(){const aD=aB;return ag['style'][aD(0x1f0)]===aD(0x1a9);}});for(let ah of this[aB(0x1c5)]['querySelectorAll']('[bind-prop\x5c:disable]'))Object[aB(0x1df)](ah,aB(0x19a),{'configurable':!0x0,'set'(ai){const aE=aB;ah['style']['pointerEvents']=ai?aE(0x1a9):'',ah[aE(0x1af)][aE(0x205)]=ai?aE(0x19e):'';},'get'(){const aF=aB;return ah[aF(0x1af)]['pointerEvents']==='none';}});!customElements[aB(0x1ba)]('iobroker-webui-3dscreen-viewer')&&this[aB(0x1c5)]['querySelector']('iobroker-webui-3dscreen-viewer')&&importShim(window['iobrokerWebuiRootUrl']+'dist/frontend/config/IobrokerWebui3DScreenViewer.js')['catch'](ai=>console['warn'](aB(0x1d8),ai)),o(this[aB(0x1c5)]);let Y=window['appShell']['bindingsHelper'][aB(0x1cd)](this[aB(0x1c5)],this[aB(0x1c7)],this);if(this['_iobBindings']?this[aB(0x1e2)][aB(0x1d0)](...Y):this[aB(0x1e2)]=Y,this[aB(0x199)]=await window[aB(0x1e6)]['scriptSystem']['assignAllScripts'](aB(0x1b0)+this[aB(0x1fb)],M,this['_rootShadow'],this,p),this[aB(0x199)]?.['default']&&!this['_scriptObject']?.['connectedCallback']&&(this[aB(0x199)]=this[aB(0x199)]['default']),this[aB(0x199)]?.['connectedCallback'])try{this['_scriptObject']['connectedCallback'](this,this[aB(0x1c5)]);}catch(ai){console[aB(0x207)](aB(0x20c)+this[aB(0x1fb)]+'\x22:',ai);}this[aB(0x1ab)]()||(e(this['_rootShadow'])[aB(0x19d)](()=>{}),i(this['_rootShadow'])[aB(0x19d)](()=>{})),this[aB(0x19f)]();}['_stretchView'](K){const aG=ak;let L=this[aG(0x1b8)]??K?.[aG(0x1b8)];if(!L||L===aG(0x1a9))return;let M=this['_stretchWidth']??G(K['width'],this,'width'),Q=this['_stretchHeight']??G(K[aG(0x212)],this,'height');this[aG(0x1bb)]['style'][aG(0x1c9)]=M+'px',this['_root'][aG(0x1af)][aG(0x212)]=Q+'px';let R=this[aG(0x201)]/M,T=this[aG(0x1f3)]/Q,U=0x0,V=0x0;L==aG(0x1b3)?R>T?(R=T,U=(this[aG(0x201)]-M*R)/0x2):(T=R,V=(this[aG(0x1f3)]-Q*T)/0x2):L==aG(0x1bc)&&(R>T?(T=R,V=(this['offsetHeight']-Q*T)/0x2):(R=T,U=(this['offsetWidth']-M*R)/0x2)),this[aG(0x1bb)][aG(0x1af)]['transformOrigin']=aG(0x214),this[aG(0x1bb)][aG(0x1af)]['scale']=R+'\x20'+T,this[aG(0x1bb)]['style'][aG(0x1e0)]=U+'px\x20'+V+'px',this[aG(0x1c8)]||(this[aG(0x1c8)]=new ResizeObserver(()=>{this['_stretchView'](K);}),this['_resizeObserver'][aG(0x1ff)](this));}['_getRelativeSignalsPath'](){return this['_relativeSignalsPath'];}[ak(0x1ab)](){const aH=ak;return!window[aH(0x1d2)]['href'][aH(0x1a8)]('runtime.html')&&window['appShell']?.[aH(0x1b2)]===!0x0;}['_editorPauseSheet']=null;[ak(0x19f)](){const aI=ak;if(window[aI(0x1d2)]['href'][aI(0x1a8)]('runtime.html'))return;window['appShell']?.['_editorAnimationsEnabled']===!0x0?(h(this[aI(0x1c5)]),n(this['_rootShadow']),this[aI(0x204)]||(this[aI(0x204)]=new CSSStyleSheet(),this[aI(0x204)][aI(0x1c4)](aI(0x1a7))),this['_rootShadow'][aI(0x1a4)]['includes'](this[aI(0x204)])||(this[aI(0x1c5)]['adoptedStyleSheets']=[...this[aI(0x1c5)][aI(0x1a4)],this['_editorPauseSheet']])):(this['_editorPauseSheet']&&(this['_rootShadow']['adoptedStyleSheets']=this['_rootShadow']['adoptedStyleSheets'][aI(0x1be)](K=>K!==this['_editorPauseSheet'])),this[aI(0x1c5)][aI(0x19b)]>0x0&&(e(this[aI(0x1c5)])['catch'](()=>{}),i(this['_rootShadow'])['catch'](()=>{})));}[ak(0x1f8)]=K=>this['_applyEditorAnimationState']();['connectedCallback'](){const aJ=ak;window['addEventListener'](aJ(0x202),this[aJ(0x1f8)]),this[aJ(0x1f9)]=p['refreshView']['on'](()=>this[aJ(0x1c2)]()),this['_screensChangedSubscription']=p[aJ(0x1fc)]['on'](L=>{const aK=aJ;this[aK(0x1e3)]&&L['type']==aK(0x1b4)&&L[aK(0x1a5)]===this[aK(0x1e3)]&&this['_loadScreen']();});let K=this[aJ(0x199)];K?.[aJ(0x1f2)]&&!K?.[aJ(0x1de)]&&(K=K[aJ(0x1f2)]),K?.['connectedCallback']&&K['connectedCallback'](this,this['_rootShadow']);for(let L of this.#e)this[aJ(0x203)](L[0x0],L[0x1]);this[aJ(0x1c8)]&&this[aJ(0x1c8)]['observe'](this);}[ak(0x1e4)](){const aL=ak;window[aL(0x1e7)]('webui-editor-animations-changed',this['_onEditorAnimationsChanged']);for(let K of this.#e)this['removeEventListener'](K[0x0],K[0x1]);this[aL(0x1f9)]?.['dispose'](),this['_screensChangedSubscription']?.[aL(0x1ed)](),this[aL(0x199)]?.[aL(0x1e4)]?.(this,this['_rootShadow']),this['_resizeObserver']&&this['_resizeObserver']['disconnect']();}[ak(0x1b6)](K,L){let M=[K,L];return this.#e['push'](M),this['addEventListener'](K,L),{'remove':()=>{const aM=c;let Q=this.#e['indexOf'](M);this.#e['splice'](Q,0x1),this[aM(0x1e7)](K,L);}};}};q([D()],l['prototype'],ak(0x1b8),null),q([D()],l[ak(0x1ce)],'stretchWidth',null),q([D()],l['prototype'],ak(0x1c0),null),q([D()],l[ak(0x1ce)],ak(0x1c7),null),q([D()],l['prototype'],'screenName',null),q([D(Boolean)],l[ak(0x1ce)],'useStyleFromScreenForViewer',null),l=_=q([y('iobroker-webui-screen-viewer')],l),window['ScreenViewer']=l;export{l as a};
21
+ }`;static [ak(0x14e)]=B`<div id="root"></div>`;['_iobBindings'];['_loading'];[ak(0x16f)];[ak(0x126)];[ak(0x142)];[ak(0x110)];[ak(0x167)];[ak(0x118)];#e=[];['_stretch'];get[ak(0x17f)](){const al=ak;return this[al(0x10e)];}set['stretch'](K){const am=ak;this[am(0x10e)]!=K&&(this['_stretch']=K,this[am(0x12c)]());}[ak(0x16a)];get[ak(0x180)](){const an=ak;return this[an(0x16a)];}set[ak(0x180)](K){const ao=ak;this[ao(0x16a)]!=K&&(this['_stretchWidth']=K,this['_loadScreen']());}['_stretchHeight'];get['stretchHeight'](){const ap=ak;return this[ap(0x141)];}set[ak(0x134)](K){const aq=ak;this['_stretchHeight']!=K&&(this[aq(0x141)]=K,this['_loadScreen']());}['_relativeSignalsPath'];get[ak(0x156)](){return this['_relativeSignalsPath'];}set[ak(0x156)](K){const ar=ak;this[ar(0x170)]!=K&&(this['_relativeSignalsPath']=K);}['_screenName'];get['screenName'](){const as=ak;return this[as(0x14f)];}set['screenName'](K){const at=ak;this[at(0x14f)]!=K&&(this['_screenName']=K,this[at(0x12c)]());}async[ak(0x17e)](K){const au=ak;this[au(0x14f)]!=K&&(this['_screenName']=K,await this['_loadScreen']());}['objects'];['_useStyleFromScreenForViewer'];get[ak(0x171)](){return this['_useStyleFromScreenForViewer'];}set[ak(0x171)](K){const av=ak;this['_useStyleFromScreenForViewer']!=K&&(this['_useStyleFromScreenForViewer']=K,this[av(0x12c)]());}constructor(){const aw=ak;super(),this['_root']=super['_getDomElement']('root'),this['_rootShadow']=this['_root'][aw(0x174)]({'mode':'open'}),this[aw(0x13b)]();}[ak(0x159)](K){const ax=ak;return this[ax(0x118)][ax(0x153)](K);}[ak(0x151)](K){const ay=ak;return this[ay(0x118)]['querySelectorAll'](K);}['ready'](){const az=ak;this[az(0x11c)](),this['_screenName']&&this['_loadScreen']();}['removeBindings'](){const aA=ak;this['_iobBindings']&&this[aA(0x17b)]['forEach'](K=>K()),this[aA(0x17b)]=null,h(this[aA(0x118)]),n(this[aA(0x118)]);}async[ak(0x12c)](){const aB=ak;if(console[aB(0x16c)](aB(0x150),this[aB(0x132)]),this[aB(0x132)]&&!this[aB(0x183)]){this[aB(0x183)]=!0x0,console['log']('🔄\x20[ScreenViewer]\x20Starting\x20to\x20load\x20screen:',this[aB(0x132)]),await p['waitForReady'](),this['_loading']=!0x1,this[aB(0x137)]();try{console[aB(0x16c)]('📥\x20[ScreenViewer]\x20Getting\x20screen\x20object\x20for:',this[aB(0x132)]);let K=await p['getWebuiObject'](aB(0x12f),this['screenName']);console[aB(0x16c)]('📥\x20[ScreenViewer]\x20Screen\x20object\x20received:',K?aB(0x16e):'NO'),z[aB(0x146)](this['_rootShadow']),K?(console[aB(0x16c)]('🚀\x20[ScreenViewer]\x20Loading\x20screen\x20data...'),await this['loadScreenData'](K[aB(0x17c)],K['style'],K[aB(0x121)],K['settings'],K['properties']),console[aB(0x16c)]('✅\x20[ScreenViewer]\x20Screen\x20loaded\x20successfully:',this[aB(0x132)])):console[aB(0x138)](aB(0x14a),this['screenName']);}catch(L){console[aB(0x15d)]('❌\x20[ScreenViewer]\x20Error\x20loading\x20screen\x20\x22'+this['screenName']+'\x22:',L),this['_rootShadow'][aB(0x124)]='<div\x20style=\x22padding:20px;color:red;\x22>Error\x20loading\x20screen:\x20'+L['message']+'</div>';}}}async['loadScreenData'](K,L,M,Q,R){const aC=ak;if(this['screenName'])try{let Z=p[aC(0x158)]||(await p[aC(0x14d)]())?.[aC(0x139)],a0=p[aC(0x11f)]['sendTo'](p[aC(0x17d)],aC(0x117),{'screenName':this[aC(0x132)],'username':Z,'project':p['currentProject']}),a1=new Promise(a3=>setTimeout(()=>a3({'allowed':!0x0,'_timeout':!0x0}),0x1388)),a2=await Promise['race']([a0,a1]);if(!a2['allowed']){if(console[aC(0x138)]('⛔\x20[Screen\x20Visibility]\x20Server\x20denied\x20access\x20to:',this['screenName']),(a2['action']||'hide')===aC(0x166)&&a2[aC(0x11a)]){this[aC(0x132)]=a2[aC(0x11a)],this['_loadScreen']();return;}this[aC(0x118)]['innerHTML']=aC(0x145);return;}a2[aC(0x11b)]?console[aC(0x138)](aC(0x16b)):console['log'](aC(0x108),this['screenName']);}catch(a3){console[aC(0x15d)]('❌\x20[Screen\x20Visibility]\x20Server\x20check\x20failed:',a3);}if(R)for(let a4 in R){let a5=R[a4];Object['defineProperty'](this,a4,{'get'(){return this['_'+a4];},'set'(a6){const aD=aC;this['_'+a4]!==a6&&(this['_'+a4]=a6,this[aD(0x182)](new CustomEvent(J['camelToDashCase'](a4)+'-changed',{'detail':{'newValue':a6}})));},'enumerable':!0x0,'configurable':!0x0}),a5[aC(0x14b)]&&(this['_'+a4]=a5['default']);}let T=p['config']?.['globalStyle']??'';this[aC(0x155)](Q);let U=null;if(L)try{let a6=await window[aC(0x125)][aC(0x165)][aC(0x15a)](L,this,this['relativeSignalsPath'],this);U=a6[0x0],this['_iobBindings']=a6[0x1];}catch(a7){console[aC(0x138)](a7),U=v(L);}else this[aC(0x17b)]=null;T&&L?this[aC(0x118)][aC(0x188)]=[_['style'],p[aC(0x160)],U]:T?this[aC(0x118)]['adoptedStyleSheets']=[_['style'],p['globalStylesheet']]:L?this['_rootShadow'][aC(0x188)]=[_['style'],U]:this[aC(0x118)][aC(0x188)]=[_[aC(0x148)]],this[aC(0x140)]&&(this['shadowRoot']['adoptedStyleSheets']=[_['styleIfFromScreen'],...this[aC(0x118)]['adoptedStyleSheets']]);let W;if(Document[aC(0x10f)]&&!I)this['_rootShadow']['setHTMLUnsafe'](K);else{W=new DOMParser()['parseFromString'](K,'text/html',{'includeShadowRoots':!0x0});let a8=document[aC(0x13a)]();for(let a9 of W['head'][aC(0x172)])a8['appendChild'](a9);for(let aa of W[aC(0x185)][aC(0x172)])a8[aC(0x136)](aa);this['_rootShadow'][aC(0x136)](a8);}let X=[...this['_rootShadow'][aC(0x120)](aC(0x14c))];for(let ab of X){let ac=ab['getAttribute'](aC(0x13d))?.[aC(0x17a)](',')[aC(0x161)](ae=>ae)||[],ad=ab['getAttribute'](aC(0x116))||aC(0x12e);if(ac[aC(0x154)]>0x0)try{let ae=await p[aC(0x15b)]({'enabled':!0x0,'groups':ac,'action':ad});ad===aC(0x163)&&!ae['enabled']?(ab['style']['pointerEvents']=aC(0x179),ab[aC(0x148)][aC(0x111)]=aC(0x152)):ad!=='disable'&&!ae[aC(0x13e)]&&ab[aC(0x10b)]();}catch(af){console[aC(0x15d)]('[ScreenViewer]\x20Group\x20visibility\x20check\x20error:',af);}}for(let ag of this[aC(0x118)][aC(0x120)](aC(0x149)))Object[aC(0x112)](ag,aC(0x175),{'configurable':!0x0,'set'(ah){const aE=aC;ag[aE(0x148)]['display']=ah?'none':'';},'get'(){const aF=aC;return ag[aF(0x148)]['display']==='none';}});for(let ah of this['_rootShadow']['querySelectorAll'](aC(0x143)))Object[aC(0x112)](ah,aC(0x163),{'configurable':!0x0,'set'(ai){const aG=aC;ah['style']['pointerEvents']=ai?'none':'',ah['style']['opacity']=ai?aG(0x152):'';},'get'(){const aH=aC;return ah[aH(0x148)][aH(0x187)]==='none';}});!customElements[aC(0x128)](aC(0x168))&&this['_rootShadow']['querySelector']('iobroker-webui-3dscreen-viewer')&&importShim(window['iobrokerWebuiRootUrl']+aC(0x12a))[aC(0x119)](ai=>console[aC(0x138)](aC(0x10d),ai)),o(this['_rootShadow']);let Y=window['appShell'][aC(0x165)][aC(0x11e)](this[aC(0x118)],this['relativeSignalsPath'],this);if(this['_iobBindings']?this['_iobBindings']['push'](...Y):this['_iobBindings']=Y,this[aC(0x142)]=await window['appShell'][aC(0x135)][aC(0x164)]('screenviewer\x20-\x20'+this[aC(0x132)],M,this['_rootShadow'],this,p),this[aC(0x142)]?.['default']&&!this[aC(0x142)]?.['connectedCallback']&&(this['_scriptObject']=this['_scriptObject'][aC(0x14b)]),this['_scriptObject']?.['connectedCallback'])try{this[aC(0x142)][aC(0x133)](this,this[aC(0x118)]);}catch(ai){console['error'](aC(0x176)+this['screenName']+'\x22:',ai);}this[aC(0x131)]()||(e(this['_rootShadow'])[aC(0x119)](()=>{}),i(this[aC(0x118)])['catch'](()=>{})),this['_applyEditorAnimationState']();}['_stretchView'](K){const aI=ak;let L=this[aI(0x17f)]??K?.['stretch'];if(!L||L==='none')return;let M=this['_stretchWidth']??G(K['width'],this,'width'),Q=this[aI(0x141)]??G(K['height'],this,'height');this['_root'][aI(0x148)]['width']=M+'px',this['_root']['style']['height']=Q+'px';let R=this['offsetWidth']/M,T=this[aI(0x157)]/Q,U=0x0,V=0x0;L=='uniform'?R>T?(R=T,U=(this['offsetWidth']-M*R)/0x2):(T=R,V=(this['offsetHeight']-Q*T)/0x2):L=='uniformToFill'&&(R>T?(T=R,V=(this[aI(0x157)]-Q*T)/0x2):(R=T,U=(this[aI(0x113)]-M*R)/0x2)),this['_root'][aI(0x148)][aI(0x122)]=aI(0x10a),this[aI(0x167)]['style'][aI(0x15f)]=R+'\x20'+T,this[aI(0x167)]['style'][aI(0x184)]=U+'px\x20'+V+'px',this[aI(0x110)]||(this['_resizeObserver']=new ResizeObserver(()=>{this['_stretchView'](K);}),this[aI(0x110)][aI(0x178)](this));}['_getRelativeSignalsPath'](){const aJ=ak;return this[aJ(0x170)];}['_isEditorAnimationsPaused'](){const aK=ak;return!window['location'][aK(0x13c)][aK(0x123)](aK(0x169))&&window['appShell']?.['_editorAnimationsEnabled']===!0x0;}['_editorPauseSheet']=null;[ak(0x186)](){const aL=ak;if(window[aL(0x127)]['href']['includes']('runtime.html'))return;window['appShell']?.['_editorAnimationsEnabled']===!0x0?(h(this[aL(0x118)]),n(this['_rootShadow']),this[aL(0x12d)]||(this[aL(0x12d)]=new CSSStyleSheet(),this['_editorPauseSheet']['replaceSync'](aL(0x16d))),this['_rootShadow']['adoptedStyleSheets']['includes'](this[aL(0x12d)])||(this['_rootShadow'][aL(0x188)]=[...this[aL(0x118)]['adoptedStyleSheets'],this[aL(0x12d)]])):(this[aL(0x12d)]&&(this['_rootShadow']['adoptedStyleSheets']=this['_rootShadow']['adoptedStyleSheets'][aL(0x161)](K=>K!==this[aL(0x12d)])),this[aL(0x118)]['childElementCount']>0x0&&(e(this['_rootShadow'])[aL(0x119)](()=>{}),i(this[aL(0x118)])[aL(0x119)](()=>{})));}['_onEditorAnimationsChanged']=K=>this[ak(0x186)]();[ak(0x133)](){const aM=ak;window['addEventListener'](aM(0x10c),this['_onEditorAnimationsChanged']),this['_refreshViewSubscription']=p['refreshView']['on'](()=>this[aM(0x12c)]()),this[aM(0x126)]=p['objectsChanged']['on'](L=>{const aN=aM;this[aN(0x14f)]&&L['type']=='screen'&&L['name']===this['_screenName']&&this['_loadScreen']();});let K=this[aM(0x142)];K?.['default']&&!K?.['connectedCallback']&&(K=K['default']),K?.['connectedCallback']&&K['connectedCallback'](this,this[aM(0x118)]);for(let L of this.#e)this[aM(0x115)](L[0x0],L[0x1]);this['_resizeObserver']&&this['_resizeObserver']['observe'](this);}['disconnectedCallback'](){const aO=ak;window[aO(0x130)]('webui-editor-animations-changed',this[aO(0x15e)]);for(let K of this.#e)this['removeEventListener'](K[0x0],K[0x1]);this[aO(0x16f)]?.['dispose'](),this['_screensChangedSubscription']?.['dispose'](),this[aO(0x142)]?.['disconnectedCallback']?.(this,this[aO(0x118)]),this['_resizeObserver']&&this[aO(0x110)][aO(0x13f)]();}['_assignEvent'](K,L){const aP=ak;let M=[K,L];return this.#e[aP(0x109)](M),this[aP(0x115)](K,L),{'remove':()=>{const aQ=aP;let Q=this.#e['indexOf'](M);this.#e[aQ(0x11d)](Q,0x1),this['removeEventListener'](K,L);}};}};q([D()],l[ak(0x173)],'stretch',null),q([D()],l['prototype'],ak(0x180),null),q([D()],l[ak(0x173)],ak(0x134),null),q([D()],l['prototype'],ak(0x156),null),q([D()],l['prototype'],'screenName',null),q([D(Boolean)],l[ak(0x173)],ak(0x171),null),l=_=q([y(ak(0x162))],l),window['ScreenViewer']=l;export{l as a};