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.
- package/default-controls/controls/gauges/setpoint-gauge.control +1 -0
- package/dist/backend/3d-editor-integration.js +1 -1
- package/dist/backend/ImportmapCreator.js +1 -1
- package/dist/backend/UploadHelper.js +1 -1
- package/dist/backend/main.js +1 -1
- package/io-package.json +1 -1
- package/package.json +1 -1
- package/www/3d-editor/js/Animation.js +1 -1
- package/www/3d-editor/js/AnimationResizer.js +1 -1
- package/www/3d-editor/js/Command.js +1 -1
- package/www/3d-editor/js/Config.js +1 -1
- package/www/3d-editor/js/Editor.js +1 -1
- package/www/3d-editor/js/EditorControls.js +1 -1
- package/www/3d-editor/js/GLTFImportDialog.js +1 -1
- package/www/3d-editor/js/History.js +1 -1
- package/www/3d-editor/js/Loader.js +1 -1
- package/www/3d-editor/js/LoaderUtils.js +1 -1
- package/www/3d-editor/js/Menubar.Add.js +1 -1
- package/www/3d-editor/js/Menubar.Edit.js +1 -1
- package/www/3d-editor/js/Menubar.File.js +1 -1
- package/www/3d-editor/js/Menubar.Help.js +1 -1
- package/www/3d-editor/js/Menubar.Render.js +1 -1
- package/www/3d-editor/js/Menubar.Status.js +1 -1
- package/www/3d-editor/js/Menubar.View.js +1 -1
- package/www/3d-editor/js/Menubar.js +1 -1
- package/www/3d-editor/js/Player.js +1 -1
- package/www/3d-editor/js/Resizer.js +1 -1
- package/www/3d-editor/js/Script.js +1 -1
- package/www/3d-editor/js/Selector.js +1 -1
- package/www/3d-editor/js/Sidebar.Geometry.BoxGeometry.js +1 -1
- package/www/3d-editor/js/Sidebar.Geometry.BufferGeometry.js +1 -1
- package/www/3d-editor/js/Sidebar.Geometry.CapsuleGeometry.js +1 -1
- package/www/3d-editor/js/Sidebar.Geometry.CircleGeometry.js +1 -1
- package/www/3d-editor/js/Sidebar.Geometry.CylinderGeometry.js +1 -1
- package/www/3d-editor/js/Sidebar.Geometry.DodecahedronGeometry.js +1 -1
- package/www/3d-editor/js/Sidebar.Geometry.ExtrudeGeometry.js +1 -1
- package/www/3d-editor/js/Sidebar.Geometry.IcosahedronGeometry.js +1 -1
- package/www/3d-editor/js/Sidebar.Geometry.LatheGeometry.js +1 -1
- package/www/3d-editor/js/Sidebar.Geometry.Modifiers.js +1 -1
- package/www/3d-editor/js/Sidebar.Geometry.OctahedronGeometry.js +1 -1
- package/www/3d-editor/js/Sidebar.Geometry.PlaneGeometry.js +1 -1
- package/www/3d-editor/js/Sidebar.Geometry.RingGeometry.js +1 -1
- package/www/3d-editor/js/Sidebar.Geometry.ShapeGeometry.js +1 -1
- package/www/3d-editor/js/Sidebar.Geometry.SphereGeometry.js +1 -1
- package/www/3d-editor/js/Sidebar.Geometry.TetrahedronGeometry.js +1 -1
- package/www/3d-editor/js/Sidebar.Geometry.TextGeometry.js +1 -1
- package/www/3d-editor/js/Sidebar.Geometry.TorusGeometry.js +1 -1
- package/www/3d-editor/js/Sidebar.Geometry.TorusKnotGeometry.js +1 -1
- package/www/3d-editor/js/Sidebar.Geometry.TubeGeometry.js +1 -1
- package/www/3d-editor/js/Sidebar.Geometry.js +1 -1
- package/www/3d-editor/js/Sidebar.Material.BooleanProperty.js +1 -1
- package/www/3d-editor/js/Sidebar.Material.ColorProperty.js +1 -1
- package/www/3d-editor/js/Sidebar.Material.ConstantProperty.js +1 -1
- package/www/3d-editor/js/Sidebar.Material.MapProperty.js +1 -1
- package/www/3d-editor/js/Sidebar.Material.NumberProperty.js +1 -1
- package/www/3d-editor/js/Sidebar.Material.Program.js +1 -1
- package/www/3d-editor/js/Sidebar.Material.RangeValueProperty.js +1 -1
- package/www/3d-editor/js/Sidebar.Material.js +1 -1
- package/www/3d-editor/js/Sidebar.Object.js +1 -1
- package/www/3d-editor/js/Sidebar.Project.App.js +1 -1
- package/www/3d-editor/js/Sidebar.Project.Materials.js +1 -1
- package/www/3d-editor/js/Sidebar.Project.Renderer.js +1 -1
- package/www/3d-editor/js/Sidebar.Project.Resources.js +1 -1
- package/www/3d-editor/js/Sidebar.Project.js +1 -1
- package/www/3d-editor/js/Sidebar.Properties.js +1 -1
- package/www/3d-editor/js/Sidebar.Scene.js +1 -1
- package/www/3d-editor/js/Sidebar.Script.js +1 -1
- package/www/3d-editor/js/Sidebar.Settings.History.js +1 -1
- package/www/3d-editor/js/Sidebar.Settings.Shortcuts.js +1 -1
- package/www/3d-editor/js/Sidebar.Settings.js +1 -1
- package/www/3d-editor/js/Sidebar.js +1 -1
- package/www/3d-editor/js/Storage.js +1 -1
- package/www/3d-editor/js/Strings.js +1 -1
- package/www/3d-editor/js/TextureParametersDialog.js +1 -1
- package/www/3d-editor/js/Toolbar.js +1 -1
- package/www/3d-editor/js/Viewport.Controls.js +1 -1
- package/www/3d-editor/js/Viewport.Info.js +1 -1
- package/www/3d-editor/js/Viewport.Pathtracer.js +1 -1
- package/www/3d-editor/js/Viewport.ViewHelper.js +1 -1
- package/www/3d-editor/js/Viewport.XR.js +1 -1
- package/www/3d-editor/js/Viewport.js +1 -1
- package/www/3d-editor/js/commands/AddObjectCommand.js +1 -1
- package/www/3d-editor/js/commands/AddScriptCommand.js +1 -1
- package/www/3d-editor/js/commands/Commands.js +1 -1
- package/www/3d-editor/js/commands/MoveObjectCommand.js +1 -1
- package/www/3d-editor/js/commands/MultiCmdsCommand.js +1 -1
- package/www/3d-editor/js/commands/RemoveObjectCommand.js +1 -1
- package/www/3d-editor/js/commands/RemoveScriptCommand.js +1 -1
- package/www/3d-editor/js/commands/SetColorCommand.js +1 -1
- package/www/3d-editor/js/commands/SetGeometryCommand.js +1 -1
- package/www/3d-editor/js/commands/SetGeometryValueCommand.js +1 -1
- package/www/3d-editor/js/commands/SetMaterialColorCommand.js +1 -1
- package/www/3d-editor/js/commands/SetMaterialCommand.js +1 -1
- package/www/3d-editor/js/commands/SetMaterialMapCommand.js +1 -1
- package/www/3d-editor/js/commands/SetMaterialRangeCommand.js +1 -1
- package/www/3d-editor/js/commands/SetMaterialValueCommand.js +1 -1
- package/www/3d-editor/js/commands/SetMaterialVectorCommand.js +1 -1
- package/www/3d-editor/js/commands/SetPositionCommand.js +1 -1
- package/www/3d-editor/js/commands/SetRotationCommand.js +1 -1
- package/www/3d-editor/js/commands/SetScaleCommand.js +1 -1
- package/www/3d-editor/js/commands/SetSceneCommand.js +1 -1
- package/www/3d-editor/js/commands/SetScriptValueCommand.js +1 -1
- package/www/3d-editor/js/commands/SetShadowValueCommand.js +1 -1
- package/www/3d-editor/js/commands/SetTextureParametersCommand.js +1 -1
- package/www/3d-editor/js/commands/SetUuidCommand.js +1 -1
- package/www/3d-editor/js/commands/SetValueCommand.js +1 -1
- package/www/dist/frontend/bundle/chunk-3C6XC7RW.js +1 -1
- package/www/dist/frontend/bundle/chunk-3WGNLIWJ.js +3 -3
- package/www/dist/frontend/bundle/chunk-3YK3Y2SJ.js +1 -1
- package/www/dist/frontend/bundle/chunk-43HEBO5G.js +2 -2
- package/www/dist/frontend/bundle/chunk-5MUGMRXU.js +1 -1
- package/www/dist/frontend/bundle/chunk-5UBRCTRX.js +3 -3
- package/www/dist/frontend/bundle/chunk-65A3PNMG.js +1 -1
- package/www/dist/frontend/bundle/chunk-7CWDQGAG.js +3 -3
- package/www/dist/frontend/bundle/chunk-7PT7IGUJ.js +3 -3
- package/www/dist/frontend/bundle/chunk-AI5PDLDE.js +2 -2
- package/www/dist/frontend/bundle/chunk-AWKVUUKN.js +3 -3
- package/www/dist/frontend/bundle/chunk-B6NXWGSB.js +1 -1
- package/www/dist/frontend/bundle/chunk-BHSHNRXW.js +1 -1
- package/www/dist/frontend/bundle/chunk-BVONDEOL.js +3 -3
- package/www/dist/frontend/bundle/chunk-CHDKROX5.js +3 -3
- package/www/dist/frontend/bundle/chunk-DNCD2F6X.js +3 -3
- package/www/dist/frontend/bundle/chunk-FHF6DL5U.js +1 -1
- package/www/dist/frontend/bundle/chunk-FO56TEZH.js +3 -3
- package/www/dist/frontend/bundle/chunk-FSRRPQMX.js +3 -3
- package/www/dist/frontend/bundle/chunk-GLQNGCFL.js +1 -1
- package/www/dist/frontend/bundle/chunk-JBDSDK2C.js +3 -3
- package/www/dist/frontend/bundle/chunk-JSC66ZLQ.js +1 -1
- package/www/dist/frontend/bundle/chunk-K6IV7LKW.js +1 -1
- package/www/dist/frontend/bundle/chunk-KY73TL6O.js +2 -2
- package/www/dist/frontend/bundle/chunk-M6VVTDVX.js +3 -3
- package/www/dist/frontend/bundle/chunk-MECWXZRN.js +1 -1
- package/www/dist/frontend/bundle/chunk-N2YIZTB2.js +1 -1
- package/www/dist/frontend/bundle/chunk-NQ7L7KNT.js +3 -3
- package/www/dist/frontend/bundle/chunk-P7EOR36H.js +1 -1
- package/www/dist/frontend/bundle/chunk-PJYK24KZ.js +1 -1
- package/www/dist/frontend/bundle/chunk-PYLAW6UA.js +3 -3
- package/www/dist/frontend/bundle/chunk-QJJGP23I.js +1 -1
- package/www/dist/frontend/bundle/chunk-QV4IBWXA.js +1 -1
- package/www/dist/frontend/bundle/chunk-R6IQDPAP.js +3 -3
- package/www/dist/frontend/bundle/chunk-RTTBZOQU.js +3 -3
- package/www/dist/frontend/bundle/chunk-S4TLNW5D.js +1 -1
- package/www/dist/frontend/bundle/chunk-SE6N4ZEN.js +1 -1
- package/www/dist/frontend/bundle/chunk-SQHXO2IT.js +3 -3
- package/www/dist/frontend/bundle/chunk-T4AIQBBH.js +3 -3
- package/www/dist/frontend/bundle/chunk-U5Q332OH.js +1 -1
- package/www/dist/frontend/bundle/chunk-UIP324PP.js +1 -1
- package/www/dist/frontend/bundle/chunk-V27IRYSL.js +1 -1
- package/www/dist/frontend/bundle/chunk-V4C5FGJL.js +2 -2
- package/www/dist/frontend/bundle/chunk-WED7CGWA.js +2 -2
- package/www/dist/frontend/bundle/chunk-WQ5H5LTG.js +3 -3
- package/www/dist/frontend/bundle/chunk-WU54NCEU.js +1 -1
- package/www/dist/frontend/bundle/chunk-XFO5FUCN.js +1 -1
- package/www/dist/frontend/bundle/chunk-XWAQ2BWM.js +3 -3
- package/www/dist/frontend/bundle/chunk-YTQCHNRQ.js +3 -3
- package/www/dist/frontend/bundle/chunk-YUSK4FN3.js +3 -3
- package/www/dist/frontend/bundle/chunk-Z34BSG5O.js +3 -3
- package/www/dist/frontend/bundle/common/IobrokerHandler.js +1 -1
- package/www/dist/frontend/bundle/runtime/CustomControls.js +1 -1
- package/www/dist/frontend/bundle/runtime/ScreenViewer.js +1 -1
- package/www/dist/frontend/bundle/runtime/controls.js +4 -4
- package/www/dist/frontend/bundle/runtime/init.js +2 -2
- package/www/dist/frontend/common/Common.globals.js +1 -1
- package/www/dist/frontend/common/IobrokerHandler.js +1 -1
- package/www/dist/frontend/common/Runtime.js +1 -1
- package/www/dist/frontend/config/CommandHandling.js +1 -1
- package/www/dist/frontend/config/ConfigureWebcomponentDesigner.js +1 -1
- package/www/dist/frontend/config/DockHelper.js +1 -1
- package/www/dist/frontend/config/IobrokerWebui3DDriveEngine.js +1 -1
- package/www/dist/frontend/config/IobrokerWebui3DScreenEditor.js +3 -3
- package/www/dist/frontend/config/IobrokerWebui3DScreenPropertiesPanel.js +3 -3
- package/www/dist/frontend/config/IobrokerWebui3DScreenViewer.js +2 -2
- package/www/dist/frontend/config/IobrokerWebuiAppShell.js +3 -3
- package/www/dist/frontend/config/IobrokerWebuiBindingsEditor.js +1 -1
- package/www/dist/frontend/config/IobrokerWebuiConfirmationWrapper.js +3 -3
- package/www/dist/frontend/config/IobrokerWebuiControlPropertiesEditor.js +3 -3
- package/www/dist/frontend/config/IobrokerWebuiDynamicPropsEditor.js +1 -1
- package/www/dist/frontend/config/IobrokerWebuiEventAssignment.js +1 -1
- package/www/dist/frontend/config/IobrokerWebuiIconsView.js +2 -2
- package/www/dist/frontend/config/IobrokerWebuiMonacoEditor.js +2 -2
- package/www/dist/frontend/config/IobrokerWebuiPropertyGrid.js +1 -1
- package/www/dist/frontend/config/IobrokerWebuiScreenEditor.js +1 -1
- package/www/dist/frontend/config/IobrokerWebuiScreensView.js +3 -3
- package/www/dist/frontend/config/IobrokerWebuiSignalPropertyEditor.js +1 -1
- package/www/dist/frontend/config/IobrokerWebuiSolutionExplorer.js +3 -3
- package/www/dist/frontend/config/IobrokerWebuiTranslationEditor.js +1 -1
- package/www/dist/frontend/config/IobrokerWebuiWidgetGallery.js +3 -3
- package/www/dist/frontend/helper/DialogHelper.js +2 -2
- package/www/dist/frontend/helper/EsprimaHelper.js +1 -1
- package/www/dist/frontend/helper/Helper.js +1 -1
- package/www/dist/frontend/helper/LayoutHelper.js +1 -1
- package/www/dist/frontend/helper/XmlHelper.js +1 -1
- package/www/dist/frontend/helper/ZipHelper.js +1 -1
- package/www/dist/frontend/runtime/AnimationService.js +1 -1
- package/www/dist/frontend/runtime/CustomControls.js +1 -1
- package/www/dist/frontend/runtime/DynamicElementProperties.js +1 -1
- package/www/dist/frontend/runtime/HabPanelLikeMenu.js +3 -3
- package/www/dist/frontend/runtime/NavigationShell.js +1 -1
- package/www/dist/frontend/runtime/ScreenViewer.js +3 -3
- package/www/dist/frontend/runtime/TranslateableText.js +2 -2
- package/www/dist/frontend/runtime/VisibilityService.js +1 -1
- package/www/dist/frontend/runtime/controls.js +1 -1
- package/www/dist/frontend/runtime/init.js +1 -1
- package/www/dist/frontend/scripting/IobrokerWebuiScriptSystem.js +1 -1
- package/www/dist/frontend/scripting/blockly/OpenScreen.js +1 -1
- package/www/dist/frontend/scripting/blockly/webuiBlocklyToolbox.js +1 -1
- package/www/dist/frontend/services/DynamicPropertiesHelper.js +1 -1
- package/www/dist/frontend/services/IobrokerWebuiBindableLocalObjectsService.js +1 -1
- package/www/dist/frontend/services/IobrokerWebuiBindableObjectDragDropService.js +1 -1
- package/www/dist/frontend/services/IobrokerWebuiBindableObjectsForPropertiesService.js +1 -1
- package/www/dist/frontend/services/IobrokerWebuiBindableObjectsService.js +1 -1
- package/www/dist/frontend/services/IobrokerWebuiConfigButtonProvider.js +1 -1
- package/www/dist/frontend/services/IobrokerWebuiCopyPasteService.js +1 -1
- package/www/dist/frontend/services/IobrokerWebuiCustomControlEventsService.js +1 -1
- package/www/dist/frontend/services/IobrokerWebuiCustomElementContextMenu.js +1 -1
- package/www/dist/frontend/services/IobrokerWebuiDemoProviderService.js +1 -1
- package/www/dist/frontend/services/IobrokerWebuiDynamicPropertiesService.js +1 -1
- package/www/dist/frontend/services/IobrokerWebuiEventsService.js +1 -1
- package/www/dist/frontend/services/IobrokerWebuiExternalDragDropService.js +1 -1
- package/www/dist/frontend/services/IobrokerWebuiLitPropertiesService.js +1 -1
- package/www/dist/frontend/services/IobrokerWebuiPropertiesService.js +1 -1
- package/www/dist/frontend/services/IobrokerWebuiPropertyGroupsService.js +1 -1
- package/www/dist/frontend/services/IobrokerWebuiRefactorService.js +1 -1
- package/www/dist/frontend/services/IobrokerWebuiScreenContextMenu.js +1 -1
- package/www/dist/frontend/services/IobrokerWebuiSpecialPropertiesService.js +1 -1
- package/www/dist/frontend/services/IobrokerWebuiSpectrumEditorService.js +1 -1
- package/www/dist/frontend/services/IobrokerWebuiVisibilityPropertiesService.js +1 -1
- package/www/dist/frontend/services/LayoutComponentsPropertiesService.js +1 -1
- package/www/dist/frontend/widgets/OrthoFlowLineTool.js +1 -1
- package/www/dist/frontend/widgets/customElementsObserver.js +1 -1
- package/www/dist/frontend/widgets/importWidgetFiles.js +1 -1
- package/www/dist/frontend/widgets/importWidgetFilesRuntime.js +1 -1
- package/www/dist/frontend/widgets/layout-components.js +1 -1
- package/www/dist/frontend/widgets/layout-placement-services.js +1 -1
- package/www/dist/frontend/widgets/testElement.js +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
const au=b;(function(k,l){const as=b,n=k();while(!![]){try{const o=-parseInt(as(0x2fc))/0x1+parseInt(as(0x35a))/0x2*(-parseInt(as(0x221))/0x3)+parseInt(as(0x373))/0x4*(-parseInt(as(0x1be))/0x5)+-parseInt(as(0x35d))/0x6*(-parseInt(as(0x2aa))/0x7)+-parseInt(as(0x384))/0x8+-parseInt(as(0x36a))/0x9+parseInt(as(0x374))/0xa*(parseInt(as(0x234))/0xb);if(o===l)break;else n['push'](n['shift']());}catch(p){n['push'](n['shift']());}}}(a,0x85833));import{BaseCustomWebComponentConstructorAppend as c,css as d,cssFromString as e}from'@gokturk413/base-custom-webcomponent';import{Connection as f}from'@iobroker/socket-client';import{TypedEvent as g,cssFromString as h}from'@gokturk413/base-custom-webcomponent';function X(k){return new Promise(l=>setTimeout(l,k));}var V=class s{static ['instance']=new s();[au(0x196)];['connection'];['adapterName']=au(0x2d7);['namespace']='mywebui.0';['namespaceFiles']=this[au(0x27a)]+au(0x378);['namespaceProjects']=this['namespace']+au(0x378);['namespaceGlobal']=this['namespace']+au(0x1b5);['globalPath']='global/';#e='default';get[au(0x29d)](){return this.#e;}get[au(0x351)](){const av=au;return this.#e+av(0x31b);}get[au(0x270)](){return this['namespaceProjects']+'/'+this.#e+'/widgets/';}get['imagePrefix'](){const aw=au;return'/'+this[aw(0x2d8)]+'/'+this[aw(0x351)]+'images/';}get['additionalFilePrefix'](){const ax=au;return'/'+this['namespaceFiles']+'/'+this[ax(0x351)]+'additionalfiles/';}[au(0x2ef)];['globalStylesheet'];[au(0x230)];['globalScriptInstance'];[au(0x1e1)]=new g();[au(0x1a4)]=new g();['additionalFilesChanged']=new g();[au(0x368)]=new g();['changeView']=new g();[au(0x399)]=new g();['_readyPromises']=[];[au(0x1c6)]='en';[au(0x343)]=new g();[au(0x1c8)]={};['translationsChanged']=new g();#t=new Map();[au(0x268)]=null;[au(0x284)];['userName']=null;constructor(){const ay=au;this[ay(0x284)]=Date[ay(0x289)]()['toString'](0x10),this.#t[ay(0x379)]('screen',new Map()),this.#t['set'](ay(0x1bf),new Map()),this.#t[ay(0x379)](ay(0x1d3),new Map()),this.#t[ay(0x379)](ay(0x207),new Map());try{let k=new URLSearchParams(window[ay(0x245)]['search'])[ay(0x2b2)](ay(0x1d7));k?this.#e=this[ay(0x295)](k):window[ay(0x245)]['pathname'][ay(0x2b6)](ay(0x2d3))||(this.#e=this[ay(0x295)](localStorage[ay(0x18e)]('webui-current-project')??ay(0x337)));}catch(l){console[ay(0x292)]('could\x20not\x20determine\x20current\x20project',l);}}['_cleanProjectName'](k){const az=au;return k=(k??'')[az(0x225)]()[az(0x1b7)]()['toLowerCase']()[az(0x19a)]('\x20','-'),/^[a-z0-9_-]+$/[az(0x1d8)](k)?k:az(0x337);}async['getProjects'](){const aA=au;this['_readyPromises']&&await this['waitForReady']();try{let k=await this[aA(0x325)](aA(0x276));if(Array[aA(0x2a8)](k?.['projects'])){let l=k['projects']['filter'](n=>/^[a-z0-9_-]+$/['test'](n));return l[aA(0x273)](aA(0x337))||l[aA(0x358)](aA(0x337)),l;}}catch{}return[aA(0x337)];}async[au(0x356)](k){const aB=au;if(k=(k??'')['toString']()[aB(0x1b7)]()['toLowerCase']()['replaceAll']('\x20','-'),!/^[a-z0-9_-]+$/['test'](k))throw new Error('invalid\x20project\x20name\x20(use\x20a-z,\x200-9,\x20-,\x20_):\x20'+k);let l=await this['getProjects']();if(l['includes'](k))throw new Error('project\x20already\x20exists:\x20'+k);l[aB(0x2a5)](k),await this['_saveObjectToFile']({'projects':l['filter'](n=>n!=='default')},'projects.json'),await this['_saveObjectToFile']({'globalStyle':null,'globalScript':null,'globalConfig':null,'fontDeclarations':null},k+aB(0x37f)),await this[aB(0x1cf)]({},k+'/widgets/package.json');try{await this[aB(0x35f)]['setState'](this[aB(0x27a)]+aB(0x243),{'val':k}),await this['connection']['setState'](this[aB(0x27a)]+aB(0x26f),{'val':aB(0x299)});}catch{}return k;}async['removeProject'](k){const aC=au;if(k===aC(0x337))throw new Error('the\x20\x27default\x27\x20project\x20cannot\x20be\x20deleted');let l=(await this['getProjects']())['filter'](n=>n!==k&&n!=='default');await this['_saveObjectToFile']({'projects':l},aC(0x276));try{await this['connection'][aC(0x23b)](this['namespaceProjects'],'/'+k);}catch(n){console[aC(0x292)](aC(0x310),n);}this.#e===k&&this['setCurrentProject'](aC(0x337));}[au(0x1ce)](k){const aD=au;localStorage[aD(0x345)](aD(0x353),this[aD(0x295)](k));let l=new URL(window['location']['href']);l[aD(0x239)][aD(0x2a9)](aD(0x1d7)),l[aD(0x225)]()===window[aD(0x245)][aD(0x37e)]?window['location']['reload']():window[aD(0x245)][aD(0x37e)]=l[aD(0x225)]();}['getNormalizedSignalName'](k,l,n){return(l??'')+k;}['waitForReady'](){const aE=au;return this[aE(0x365)]?new Promise(k=>{const aF=aE;this[aF(0x365)]['push'](k);}):Promise[aE(0x1ac)]();}async['init'](){const aG=au;for(;!window['io'];)await X(0x5);let k=document[aG(0x33d)](aG(0x271));k&&(k['innerHTML']='connecting...'),this['connection']=new f({'protocol':'ws','host':window[aG(0x320)],'port':window[aG(0x308)],'admin5only':!0x1,'autoSubscribes':[],'onError':y=>{const aH=aG;let A=document['getElementById'](aH(0x271));A&&(A['innerHTML']=y);let F=document['getElementById'](aH(0x30e));F&&(F[aH(0x22e)][aH(0x24a)]=aH(0x294));},'onReady':()=>{const aI=aG;let y=document[aI(0x33d)](aI(0x271));y&&(y[aI(0x2f1)]=aI(0x37a));let A=document['getElementById'](aI(0x30e));A&&(A['style'][aI(0x24a)]='lightgreen');}}),await this[aG(0x35f)][aG(0x253)](),await this[aG(0x35f)]['waitForFirstConnection']();try{this[aG(0x255)]=await this['connection'][aG(0x285)]();}catch{}let l=await this[aG(0x349)]();this[aG(0x2ef)]=l??{'globalStyle':null,'globalScript':null,'globalConfig':null,'fontDeclarations':null};try{let y=await this['connection'][aG(0x236)]('system.adapter.mywebui.0');this[aG(0x2d4)]=!!(y?.['native']?.[aG(0x27d)]&&y?.[aG(0x204)]?.['grafanaLangSyncEnabled']);}catch{this['grafanaLangSyncEnabled']=!0x1;}if(this[aG(0x2ef)][aG(0x334)]==null&&(this[aG(0x2ef)][aG(0x334)]={'headerTags':'<meta\x20name=\x22apple-mobile-web-app-capable\x22\x20content=\x22yes\x22\x20/>\x0a<meta\x20name=\x22viewport\x22\x20content=\x22width=device-width,\x20initial-scale=1.0,\x20shrink-to-fit=no,\x20maximum-scale=1.0,\x20user-scalable=no,\x20viewport-fit=cover\x22>'}),this['config']['globalConfig']['headerTags']){let A=document[aG(0x34e)]()[aG(0x2f9)](this['config'][aG(0x334)]['headerTags']);document[aG(0x34c)][aG(0x1eb)](A);}if(this['config']['navigation']==null&&(this['config']['navigation']={'orientation':aG(0x33c),'bgColor':'','bgColorSelected':'','textColorSelected':'','menuHeaderTextColor':'','textColor':'','hideMenu':!0x1,'menuHeaderText':'','menuWidth':'','hideAfterSelection':!0x1,'doNotHideCompletely':!0x1,'showButtonColor':'','showButtonBg':'','theme':aG(0x337),'slots':{'top':'','bottom':''}}),this['config']['navigation']['theme']==null&&(this[aG(0x2ef)][aG(0x20d)]['theme']='default'),this[aG(0x2ef)][aG(0x20d)]['slots']==null&&(this[aG(0x2ef)][aG(0x20d)][aG(0x346)]={'top':'','bottom':''}),this[aG(0x2ef)][aG(0x315)]==null&&(this[aG(0x2ef)][aG(0x315)]={'show':!0x1,'bgColor':'','caption':'','icon':'','slots':{'left':'','center':'','right':''}}),this['config'][aG(0x315)][aG(0x346)]==null&&(this['config'][aG(0x315)][aG(0x346)]={'left':'','center':'','right':''}),Array['isArray'](this['config'][aG(0x262)])||(this['config']['multiViews']=[]),this[aG(0x2ef)][aG(0x252)]&&(this['globalStylesheet']=h(this[aG(0x2ef)][aG(0x252)])),this['config']['fontDeclarations']&&(this['fontDeclarationsStylesheet']=h(this[aG(0x2ef)][aG(0x364)]),document['adoptedStyleSheets']=[this[aG(0x230)]]),this[aG(0x2ef)]['globalScript']){let F=URL['createObjectURL'](new Blob([this['config'][aG(0x2fd)]],{'type':'application/javascript'}));this['globalScriptInstance']=await importShim(F),this['globalScriptInstance'][aG(0x377)]&&this['globalScriptInstance'][aG(0x377)]();}let p=localStorage['getItem']('webui-language');if(p)this[aG(0x1c6)]=p;else try{let P=await this['connection']['getSystemConfig']();P?.['common']?.[aG(0x1c6)]&&(this['language']=P['common']['language']);}catch{}this[aG(0x209)](aG(0x229),{'val':this['language']}),this[aG(0x357)](aG(0x229),(S,T)=>{const aJ=aG;T?.[aJ(0x307)]&&T['val']!==this[aJ(0x1c6)]&&this['setLanguage'](T[aJ(0x307)]);}),await this[aG(0x272)](),window['t']=S=>this['t'](S);for(let S of this[aG(0x365)])S();this[aG(0x365)]=null,console['log'](aG(0x1ae));let u,w;await this['connection']['subscribeState'](this[aG(0x27a)]+'.control.data',(T,Y)=>{const aK=aG;u=Y?.[aK(0x307)];}),await this[aG(0x35f)][aG(0x357)](this['namespace']+'.control.clientIds',(T,Y)=>{w=Y?.['val'];});let x=await this['connection']['getState'](this[aG(0x27a)]+aG(0x26f));this[aG(0x35f)]['subscribeState'](this['namespace']+'.control.command',(T,Y)=>{const aL=aG;Y?.['ack']&&Y?.['ts']!=x?.['ts']&&this[aL(0x360)](Y?.[aL(0x307)],u,w);}),this['sendCommand'](aG(0x2d2),''),this[aG(0x371)]=new BroadcastChannel('mywebui-commands'),this[aG(0x371)]['onmessage']=T=>{const aM=aG;let {command:Y,data:a0,clientId:a1}=T[aM(0x37c)]??{};Y&&this[aM(0x360)](Y,a0,a1);};}async[au(0x28d)](){const aN=au;let k=await this['connection'][aN(0x197)]('adapter',''),l=[];for(let n in k)(k[n]?.['common']?.['type']=='visualization-icons'||k[n]?.[aN(0x341)][aN(0x19b)][aN(0x27e)](aN(0x249)))&&l[aN(0x2a5)](k[n]?.[aN(0x341)]['name']);return l;}async['getAllNames'](k,l){const aO=au;this['_readyPromises']&&await this['waitForReady']();let n=[];n[aO(0x2a5)](this[aO(0x380)](k,l)['then'](u=>u[aO(0x190)](w=>(l?l+'/':'/')[aO(0x25c)](0x1)+w)));let p=await this['getSubFolders'](k,l);for(let u of p)n['push'](this['getAllNames'](k,(l??'')+'/'+u));return(await Promise['all'](n))['flatMap'](w=>w);}async[au(0x1fb)](k,l){const aP=au;this[aP(0x365)]&&await this[aP(0x336)]();try{return(await this[aP(0x35f)]['readDir'](this[aP(0x2d8)],this['configPath']+k+'s'+(l??'')))[aP(0x372)](o=>o['isDir'])['map'](o=>o['file']);}catch(n){console['warn']('error\x20loading\x20subfolders',n);}return[];}async['getObjectNames'](k,l){const aQ=au;this[aQ(0x365)]&&await this['waitForReady']();try{return(await this[aQ(0x35f)]['readDir'](this['namespaceFiles'],this['configPath']+k+'s'+(l??'')))[aQ(0x372)](o=>o['file'][aQ(0x2b6)]('.'+k))[aQ(0x190)](o=>o[aQ(0x18f)]['substring'](0x0,o['file']['length']-k[aQ(0x321)]-0x1));}catch(n){console[aQ(0x292)]('no\x20'+k+aQ(0x22f),n);}return[];}async[au(0x29e)](k,l){const aR=au;return k=='screen'?this['getScreen'](l):k==aR(0x1bf)?this['getCustomControl'](l):k=='3dscreen'?this['get3DScreen'](l):k=='3dcontrol'?this['get3DControl'](l):null;}async['getScreen'](k){const aS=au;k[0x0]=='/'&&(k=k['substring'](0x1));let l=this.#t['get']('screen')['get'](k);if(!l){this['_readyPromises']&&await this[aS(0x336)]();try{l=await this['_getObjectFromFile'](this[aS(0x351)]+aS(0x2bb)+k+'.screen');}catch(n){console[aS(0x2a6)]('Error\x20reading\x20Screen',l,n);}this.#t[aS(0x2b2)]('screen')['set'](k,l);}return l;}async[au(0x361)](k){const aT=au;k[0x0]=='/'&&(k=k[aT(0x25c)](0x1));let l=this.#t[aT(0x2b2)](aT(0x1d3))['get'](k);if(!l){this[aT(0x365)]&&await this['waitForReady']();try{l=await this['_getObjectFromFile'](this['configPath']+aT(0x30a)+k+'.3dscreen');}catch(n){console[aT(0x2a6)]('Error\x20reading\x203D\x20Screen',l,n);}this.#t['get']('3dscreen')['set'](k,l);}return l;}async['get3DControl'](k){const aU=au;k[0x0]=='/'&&(k=k['substring'](0x1));let l=this.#t[aU(0x2b2)](aU(0x207))[aU(0x2b2)](k);if(!l){this['_readyPromises']&&await this['waitForReady']();try{l=await this[aU(0x325)](this[aU(0x351)]+aU(0x19d)+k+aU(0x25e));}catch(n){console['error'](aU(0x202),l,n);}this.#t['get'](aU(0x207))[aU(0x379)](k,l);}return l;}async[au(0x263)](k,l,n){const aV=au;await this[aV(0x1cf)](n,'/'+this['configPath']+k+'s/'+l+'.'+k),this.#t['has'](k)&&this.#t[aV(0x2b2)](k)[aV(0x379)](l,n),k=='control'&&(this[aV(0x268)]=null,this['_scheduleControlsAggregate']()),this['sendCommand'](aV(0x21f),JSON['stringify']({'type':k,'name':l}),'*');}async[au(0x375)](k,l){const aW=au;await this['connection']['deleteFile'](this['namespaceFiles'],'/'+this['configPath']+k+'s/'+l+'.'+k),this.#t[aW(0x359)](k)&&this.#t['get'](k)[aW(0x2a9)](l),k=='control'&&(this[aW(0x268)]=null,this['_scheduleControlsAggregate']()),this[aW(0x1e1)][aW(0x2e8)]({'type':k,'name':l});}async[au(0x1c3)](k,l,n){const aX=au;l[0x0]=='/'&&(l=l['substring'](0x1)),n[0x0]=='/'&&(n=n[aX(0x25c)](0x1)),await this[aX(0x35f)][aX(0x367)](this['namespaceFiles'],'/'+this[aX(0x351)]+k+'s/'+l+'.'+k,'/'+this[aX(0x351)]+k+'s/'+n+'.'+k),this.#t[aX(0x359)](k)&&(this.#t['get'](k)[aX(0x2a9)](l),this.#t['get'](k)['delete'](n)),k=='control'&&(this[aX(0x268)]=null,this['_scheduleControlsAggregate']()),this['getWebuiObject'](k,n),this[aX(0x1e1)][aX(0x2e8)]({'type':k,'name':n});}#n;[au(0x2c2)](){const aY=au;clearTimeout(this.#n),this.#n=setTimeout(()=>this[aY(0x1a6)](),0x2bc);}async['_writeControlsAggregate'](){const aZ=au;try{let k=await this[aZ(0x238)](aZ(0x1bf)),l={};await Promise[aZ(0x397)](k['map'](async n=>{const b0=aZ;let p=n[b0(0x33f)](/^\//,'');l[p]=await this['getCustomControl'](p);})),await this[aZ(0x1cf)]({'version':0x1,'controls':l},this['configPath']+'controls-all.dat'),console[aZ(0x283)]('controls\x20aggregate\x20written\x20('+k[aZ(0x321)]+'\x20controls)');}catch(n){console[aZ(0x292)](aZ(0x2b7),n);}}async[au(0x2c5)](){const b1=au;this['_readyPromises']&&await this[b1(0x336)]();try{let k=await this[b1(0x325)](this[b1(0x351)]+b1(0x297));if(k?.[b1(0x2f4)]){for(let l in k[b1(0x2f4)])this.#t['get']('control')['set'](l,k[b1(0x2f4)][l]);return this['_controlNames']=Object['keys'](k[b1(0x2f4)]),k[b1(0x2f4)];}}catch{}return null;}async[au(0x30d)](k,l){const b2=au;try{return(await this['connection']['readDir'](this[b2(0x31f)],this[b2(0x2de)]+k+'s'+(l??'')))['filter'](n=>n[b2(0x18f)]['endsWith']('.'+k))['map'](n=>n[b2(0x18f)][b2(0x25c)](0x0,n['file']['length']-k[b2(0x321)]-0x1));}catch{return[];}}async['getGlobalSubFolders'](k,l){const b3=au;try{return(await this['connection'][b3(0x1ab)](this['namespaceGlobal'],this['globalPath']+k+'s'+(l??'')))[b3(0x372)](n=>n[b3(0x2b5)])['map'](n=>n[b3(0x18f)]);}catch{return[];}}async['getAllGlobalNames'](k,l){const b4=au;let n=[];n['push'](this[b4(0x30d)](k,l)['then'](p=>p['map'](r=>(l?l+'/':'/')['substring'](0x1)+r)));for(let p of await this[b4(0x35e)](k,l))n[b4(0x2a5)](this[b4(0x2dd)](k,(l??'')+'/'+p));return(await Promise['all'](n))[b4(0x25a)](r=>r);}async['getGlobalObject'](k,l){const b5=au;l[0x0]==='/'&&(l=l['substring'](0x1));let p='g'+k;this.#t[b5(0x359)](p)||this.#t['set'](p,new Map());let r=this.#t[b5(0x2b2)](p)[b5(0x2b2)](l);if(!r){try{r=await this['_getObjectFromFile'](this['globalPath']+k+'s/'+l+'.'+k,this['namespaceGlobal']);}catch(u){console['error']('Error\x20reading\x20global\x20'+k,l,u);}this.#t[b5(0x2b2)](p)['set'](l,r);}return r;}async['saveGlobalObject'](k,l,n){const b6=au;await this['_saveObjectToFile'](n,'/'+this['globalPath']+k+'s/'+l+'.'+k,this[b6(0x31f)]);let p='g'+k;this.#t[b6(0x359)](p)&&this.#t[b6(0x2b2)](p)[b6(0x379)](l,n),this[b6(0x391)](k),this['objectsChanged'][b6(0x2e8)]({'type':k,'name':l,'global':!0x0});}async[au(0x2d9)](k,l){const b7=au;l[0x0]==='/'&&(l=l[b7(0x25c)](0x1)),await this[b7(0x35f)][b7(0x1f1)](this[b7(0x31f)],'/'+this[b7(0x2de)]+k+'s/'+l+'.'+k);let n='g'+k;this.#t['has'](n)&&this.#t[b7(0x2b2)](n)['delete'](l),this[b7(0x391)](k),this[b7(0x1e1)]['emit']({'type':k,'name':null,'global':!0x0});}async[au(0x274)](k,l,n){const b8=au;l[0x0]==='/'&&(l=l[b8(0x25c)](0x1)),n[0x0]==='/'&&(n=n[b8(0x25c)](0x1)),await this['connection'][b8(0x367)](this[b8(0x31f)],'/'+this[b8(0x2de)]+k+'s/'+l+'.'+k,'/'+this['globalPath']+k+'s/'+n+'.'+k);let p='g'+k;this.#t['has'](p)&&(this.#t['get'](p)['delete'](l),this.#t['get'](p)['delete'](n)),this['_scheduleGlobalAggregate'](k),this[b8(0x1e1)]['emit']({'type':k,'name':n,'global':!0x0});}#r={};[au(0x391)](k){const b9=au;clearTimeout(this.#r[k]),this.#r[k]=setTimeout(()=>this[b9(0x280)](k),0x2bc);}async['_writeGlobalAggregate'](k){const ba=au;try{let l=await this[ba(0x2dd)](k);if(!l[ba(0x321)])return;let n={};await Promise['all'](l[ba(0x190)](async p=>{const bb=ba;let r=p[bb(0x33f)](/^\//,'');n[r]=await this[bb(0x2a1)](k,r);})),await this[ba(0x1cf)]({'version':0x1,'controls':n},this['globalPath']+k+ba(0x279),this['namespaceGlobal']);}catch(o){console[ba(0x292)](ba(0x281)+k+ba(0x23d),o);}}async[au(0x215)](k){const bc=au;this[bc(0x365)]&&await this['waitForReady']();try{let n=await this[bc(0x325)](this[bc(0x2de)]+k+bc(0x279),this[bc(0x31f)]);if(n?.['controls']&&Object[bc(0x34a)](n['controls'])[bc(0x321)])return n['controls'];}catch{}let l={};try{let o=await this[bc(0x2dd)](k);await Promise['all'](o['map'](async p=>{const bd=bc;let r=p['replace'](/^\//,'');l[r]=await this[bd(0x2a1)](k,r);})),Object[bc(0x34a)](l)[bc(0x321)]&&this['_scheduleGlobalAggregate'](k);}catch{}return l;}async['createFolder'](k,l){const be=au;await this['_saveObjectToFile']({},'/'+this[be(0x351)]+k+'s/'+l+be(0x241)),this['objectsChanged']['emit']({'type':k,'name':null});}async['removeFolder'](k,l){const bf=au;await this[bf(0x35f)]['deleteFolder'](this['namespaceFiles'],'/'+this[bf(0x351)]+k+'s/'+l),this['objectsChanged'][bf(0x2e8)]({'type':k,'name':null});}async[au(0x383)](k,l){const bg=au;await this['_saveObjectToFile']({},'/'+this[bg(0x2de)]+k+'s/'+l+'/tmp.fld',this['namespaceGlobal']),this[bg(0x1e1)]['emit']({'type':k,'name':null,'global':!0x0});}async['removeGlobalFolder'](k,l){const bh=au;await this['connection'][bh(0x23b)](this[bh(0x31f)],'/'+this[bh(0x2de)]+k+'s/'+l),this[bh(0x1e1)][bh(0x2e8)]({'type':k,'name':null,'global':!0x0});}async['loadAllCustomControls'](){const bi=au;await m['waitForReady']();let k=await this[bi(0x2ac)](),l=[];for(let n of k)l['push'](this[bi(0x1a8)](n));await Promise['all'](l);}async['getCustomControlNames'](){const bj=au;if(this['_controlNames'])return this['_controlNames'];this[bj(0x365)]&&await this['waitForReady']();try{let k=await this[bj(0x238)]('control');return this['_controlNames']=k,k;}catch(l){console[bj(0x292)]('no\x20controls\x20loaded',l);}return[];}async['getCustomControl'](k){const bk=au;k[0x0]=='/'&&(k=k[bk(0x25c)](0x1));let l=this.#t[bk(0x2b2)]('control')[bk(0x2b2)](k);if(!l){this['_readyPromises']&&await this[bk(0x336)]();try{if(l=await this[bk(0x325)](this[bk(0x351)]+'controls/'+k+'.control'),l[bk(0x2fa)]){let p=Object[bk(0x34a)](l[bk(0x2fa)]);if(p['length']&&typeof l[bk(0x2fa)][p[0x0]]=='string')for(let r in l[bk(0x2fa)]){let u=l[bk(0x2fa)][r];u['startsWith']('[')?l[bk(0x2fa)][r]={'type':'enum','values':JSON['parse'](u)}:l['properties'][r]={'type':u};}}}catch(w){console['error']('Error\x20reading\x20Control',l,w);}this.#t[bk(0x2b2)]('control')['set'](k,l);}return l;}async['getImageNames'](){const bl=au;this[bl(0x365)]&&await this[bl(0x336)]();try{return(await this['connection'][bl(0x1ab)](this[bl(0x2d8)],this['configPath']+bl(0x1d4)))['map'](k=>k[bl(0x18f)]);}catch{}return[];}async['saveImage'](k,l){const bm=au;await this['_saveBinaryToFile'](l,'/'+this[bm(0x351)]+bm(0x38d)+k),this[bm(0x1a4)][bm(0x2e8)]();}async['getImage'](k){const bn=au;return await this['connection']['readFile'](this[bn(0x2d8)],'/'+this[bn(0x351)]+bn(0x38d)+k,!0x1);}async[au(0x2f8)](k){const bo=au;await this[bo(0x35f)]['deleteFile'](this['namespaceFiles'],'/'+this['configPath']+'images/'+k),this['imagesChanged']['emit']();}async[au(0x247)](){const bp=au;this[bp(0x365)]&&await this[bp(0x336)]();try{return(await this['connection'][bp(0x1ab)](this[bp(0x2d8)],this[bp(0x351)]+'additionalfiles'))[bp(0x190)](k=>k['file']);}catch{}return[];}async['saveAdditionalFile'](k,l){const bq=au;await this[bq(0x201)](l,'/'+this['configPath']+'additionalfiles/'+k),this['additionalFilesChanged']['emit']();}async[au(0x2c1)](k){const br=au;return await this['connection'][br(0x2ed)](this[br(0x2d8)],'/'+this['configPath']+'additionalfiles/'+k,!0x1);}async[au(0x269)](k){const bs=au;await this[bs(0x35f)][bs(0x1f1)](this[bs(0x2d8)],'/'+this['configPath']+'additionalfiles/'+k),this[bs(0x30f)][bs(0x2e8)]();}async['saveThumbnail'](k,l){const bu=au;try{await this[bu(0x201)](l,'/'+this['configPath']+bu(0x300)+k+'.png');}catch(n){console[bu(0x292)]('Error\x20saving\x20thumbnail:',n);}}async['getThumbnail'](k){const bv=au;try{return await this[bv(0x35f)]['readFile'](this['namespaceFiles'],'/'+this[bv(0x351)]+bv(0x300)+k+bv(0x293),!0x1);}catch{return null;}}async['removeThumbnail'](k){const bw=au;try{await this[bw(0x35f)]['deleteFile'](this[bw(0x2d8)],'/'+this['configPath']+bw(0x300)+k+'.png');}catch(l){console[bw(0x292)](bw(0x38f),l);}}#i=new Map();#a=new Map();[au(0x26d)](){const bx=au;return Array[bx(0x1c1)](this.#i['keys']());}async['subscribeState'](k,l){const by=au;if(k[by(0x27e)]('local_')){let n=this.#i[by(0x2b2)](k);n||(n=[],this.#i['set'](k,n)),n[by(0x2a5)](l);let p=this.#a['get'](k);p&&l(k,p);}else return this[by(0x35f)]['subscribeState'](k,l);}['unsubscribeState'](k,l){const bz=au;if(k[bz(0x27e)]('local_')){let n=this.#i[bz(0x2b2)](k);if(n){let p=n[bz(0x24d)](l);p>=0x0&&n['splice'](p,0x1);}}else this['connection'][bz(0x26b)](k,l);}['subscribeObject'](k,l){const bA=au;return this[bA(0x35f)]['subscribeObject'](k,l);}['unsubscribeObject'](k,l){const bB=au;return this['connection'][bB(0x1f7)](k,l);}['getObjectList'](k,l){const bC=au;return m['connection'][bC(0x1f0)](l,null,k);}['getObject'](k){const bD=au;return this[bD(0x35f)]['getObject'](k);}[au(0x2ca)](k){const bE=au;return k[bE(0x27e)](bE(0x208))?Promise['resolve'](this.#a[bE(0x2b2)](k)):this[bE(0x35f)]['getState'](k);}[au(0x209)](k,l,p){const bF=au;if(k[bF(0x27e)](bF(0x208))){typeof l!='object'&&(l={'val':l}),this.#a[bF(0x379)](k,l);let r=this.#i['get'](k);if(r){for(let u of r)u(k,l);}return Promise[bF(0x1ac)]();}else return this[bF(0x35f)]['setState'](k,l,p);}async['_getConfig'](){try{return await this['_getObjectFromFile'](this['configPath']+'config.json');}catch{return null;}}async['saveConfig'](){const bG=au;if(this[bG(0x1cf)](this['config'],this['configPath']+'config.json'),this[bG(0x2ea)]=null,this[bG(0x1f3)]=null,this['config'][bG(0x252)]&&(this[bG(0x2ea)]=h(this[bG(0x2ef)][bG(0x252)])),this[bG(0x2ef)]['fontDeclarations']?(this['fontDeclarationsStylesheet']=h(this['config'][bG(0x364)]),document[bG(0x1f4)]=[this['fontDeclarationsStylesheet']]):(this['fontDeclarationsStylesheet']=null,document['adoptedStyleSheets']=[]),this[bG(0x2ef)][bG(0x2fd)]){let k=URL[bG(0x1d2)](new Blob([this[bG(0x2ef)][bG(0x2fd)]],{'type':bG(0x2cd)}));this['globalScriptInstance']=await importShim(k),this['globalScriptInstance'][bG(0x377)]&&this['globalScriptInstance'][bG(0x377)]();}this['configChanged']['emit']();}async[au(0x272)](){const bH=au;try{this[bH(0x1c8)]=await this['_getObjectFromFile'](this['configPath']+'translations.json');}catch{this[bH(0x1c8)]={};}}async[au(0x36d)](){const bI=au;await this['_saveObjectToFile'](this[bI(0x1c8)],this['configPath']+bI(0x33b)),this[bI(0x1d9)]['emit'](this[bI(0x1c8)]);}[au(0x340)](k){const bJ=au;this['language']=k,localStorage[bJ(0x345)]('webui-language',k),this[bJ(0x343)]['emit'](k),window[bJ(0x324)](new CustomEvent(bJ(0x343),{'detail':k})),this.#a['get']('local_language')?.[bJ(0x307)]!==k&&this[bJ(0x209)]('local_language',{'val':k}),this['grafanaLangSyncEnabled']&&fetch('/mywebui-grafana-lang',{'method':bJ(0x2c3),'headers':{'Content-Type':'application/json'},'credentials':'include','body':JSON['stringify']({'lang':k})})['catch'](()=>{});}['t'](k){const bK=au;let l=this[bK(0x1c6)]||'en',n=k['split']('.'),p=u=>{const bL=bK;let w=this[bL(0x1c8)]?.[u];for(let x of n)if(w=w?.[x],w===void 0x0)return;return typeof w==bL(0x2eb)?w:void 0x0;};return p(l)??(l!=='en'?p('en'):void 0x0)??((()=>{const bM=bK;for(let u of Object[bM(0x34a)](this[bM(0x1c8)]??{})){let w=p(u);if(w!==void 0x0)return w;}return k;})());}async['_getObjectFromFile'](k,l=this['namespaceFiles']){const bN=au;let n=await this[bN(0x35f)]['readFile'](l,k,!0x1),p;return n['mimeType']=='application/json'||n['mimeType']=='text/javascript'?JSON[bN(0x1a1)](n[bN(0x18f)]):(n['mimeType']=='application/octet-stream'&&n['file']instanceof ArrayBuffer?p=new Uint8Array(n[bN(0x18f)]):p=Uint8Array['from'](n['file'][bN(0x37c)]),p[0x0]===0x1f&&p[0x1]===0x8b&&window['DecompressionStream']&&(p=await this['_gunzipBytes'](p)),JSON['parse'](new TextDecoder()[bN(0x29b)](p)));}async[au(0x1cf)](k,l,p=this[au(0x2d8)]){const bO=au;let r=new TextEncoder()['encode'](JSON[bO(0x212)](k));if(r[bO(0x321)]>0x200*0x400&&window[bO(0x214)]){let u=await this[bO(0x290)](r);await this[bO(0x35f)][bO(0x1f6)](p,l,u[bO(0x227)]);}else await this[bO(0x35f)][bO(0x1f6)](p,l,r);}async['_gzipBytes'](k){const bP=au;let p=new CompressionStream('gzip'),u=p['writable'][bP(0x1bd)]();u[bP(0x296)](k),u['close']();let w=p['readable'][bP(0x1ea)](),x=[],y;for(;!(y=await w['read']())['done'];)x['push'](y[bP(0x355)]);let A=new Uint8Array(x['reduce']((P,S)=>P+S['length'],0x0)),F=0x0;for(let P of x)A[bP(0x379)](P,F),F+=P[bP(0x321)];return A;}async[au(0x2dc)](k){const bQ=au;let p=new DecompressionStream('gzip'),u=p[bQ(0x352)][bQ(0x1bd)]();u['write'](k),u[bQ(0x2ce)]();let w=p[bQ(0x28b)][bQ(0x1ea)](),x=[],y;for(;!(y=await w['read']())[bQ(0x287)];)x['push'](y[bQ(0x355)]);let A=new Uint8Array(x['reduce']((P,S)=>P+S[bQ(0x321)],0x0)),F=0x0;for(let P of x)A['set'](P,F),F+=P['length'];return A;}async[au(0x201)](k,l){const bR=au;await this[bR(0x35f)][bR(0x1f6)](this['namespaceFiles'],l,await k['arrayBuffer']());}async['sendCommand'](k,l,n){const bS=au;try{this['_broadcastChannel']?.['postMessage']({'command':k,'data':l,'clientId':n??this['clientId']??'*'});}catch{}try{let p=[this['connection']['setState'](this['namespace']+'.control.data',{'val':l}),this[bS(0x35f)][bS(0x209)](this[bS(0x27a)]+'.control.clientIds',{'val':n??this[bS(0x284)]}),this['connection']['setState'](this[bS(0x27a)]+bS(0x243),{'val':this.#e})];await Promise['all'](p),await this['connection']['setState'](this['namespace']+'.control.command',{'val':k});}catch(r){console['warn']('sendCommand\x20skipped\x20(no\x20write\x20permission\x20on\x20control\x20states):',r?.['message']||r);}}async[au(0x360)](k,l,o=''){const bT=au;if(o==''||o=='*'||o==this['clientId'])switch(k){case'uiReload':window[bT(0x245)]['reload']();break;case bT(0x1f2):this.#t[bT(0x2b2)]('screen')['clear'](),this.#t[bT(0x2b2)](bT(0x1bf))['clear'](),this['_controlNames']=null,this[bT(0x399)][bT(0x2e8)](l);break;case'uiChangeView':this['changeView']['emit'](l);break;case'uiOpenDialog':break;case'uiPlaySound':new Audio(l)['play']();break;case bT(0x1dd):break;case'uiAlert':alert(l);break;case bT(0x206):l&&this['setLanguage'](l);break;case'objectChanged':let p=JSON['parse'](l);this.#t[bT(0x359)](p[bT(0x305)])&&this.#t[bT(0x2b2)](p['type'])['delete'](p['name']),p[bT(0x305)]=='control'&&p[bT(0x19b)]&&K(p[bT(0x19b)],await m['getWebuiObject'](p['type'],p['name'])),this['objectsChanged'][bT(0x2e8)](p);break;}}['getSignalInformation'](k){const bU=au;let l={'role':k?.[bU(0x341)]?.[bU(0x338)],'type':k?.[bU(0x341)]?.[bU(0x305)],'writeable':k?.[bU(0x341)]?.[bU(0x296)]};return(k?.['common']?.['role']=='url'||k?.['common']?.[bU(0x338)]===bU(0x2f5)||k?.[bU(0x341)]?.[bU(0x338)][bU(0x273)]('icon')||k?.['common']?.[bU(0x338)][bU(0x273)](bU(0x304)))&&(l[bU(0x338)]=bU(0x2a2)),k?.[bU(0x341)]?.[bU(0x338)]=='value.time'&&(l[bU(0x338)]=bU(0x233)),l;}[au(0x311)](k,l){const bV=au;return this['connection'][bV(0x260)](k,l);}#o=null;#s=[];async[au(0x285)](){const bW=au;if(!this.#o)try{let k=await this['connection'][bW(0x285)]();console['log'](bW(0x2bd),k);let l=[],p=bW(0x2d0)+k;try{let u=await new Promise((w,x)=>{const bX=bW;this[bX(0x35f)][bX(0x35b)][bX(0x2e8)](bX(0x1f0),'system','group',{'startkey':'system.group.','endkey':bX(0x1d6)},(y,A)=>{y?x(y):w(A);});});if(console[bW(0x283)]('🔐\x20[Visibility]\x20All\x20groups\x20via\x20getObjectView:',u),u&&u['rows'])for(let w of u['rows']){let x=w['value'],y=w['id']['replace'](bW(0x232),'');x['common']?.['members']&&Array['isArray'](x[bW(0x341)]['members'])&&x['common']['members']['includes'](p)&&(l[bW(0x2a5)](y),console[bW(0x283)]('✅\x20[Visibility]\x20User\x20is\x20member\x20of\x20group:\x20'+y));}}catch(A){console[bW(0x292)]('⚠️\x20[Visibility]\x20getObjectView\x20failed,\x20trying\x20direct\x20group\x20fetch:',A);let F=[bW(0x1e7),'user'];for(let P of F)try{let S=await new Promise((T,Y)=>{const bY=bW;this['connection']['_socket'][bY(0x2e8)](bY(0x236),bY(0x232)+P,(a0,a1)=>{a0?Y(a0):T(a1);});});S&&S['common']?.[bW(0x2a0)]&&Array[bW(0x2a8)](S[bW(0x341)]['members'])&&S['common'][bW(0x2a0)]['includes'](p)&&(l['push'](P),console['log']('✅\x20[Visibility]\x20User\x20is\x20member\x20of\x20group:\x20'+P));}catch{}}l[bW(0x321)]===0x0&&(console[bW(0x292)](bW(0x23a)),l['push']('administrator')),this.#o={'id':k,'groups':l},console[bW(0x283)](bW(0x306),this.#o);}catch(T){console['warn'](bW(0x20b),T),this.#o={'id':'admin','groups':['administrator']};}return this.#o;}async[au(0x2fb)](){const bZ=au;if(this.#s['length']===0x0)try{let k=[];try{console[bZ(0x283)](bZ(0x2ae));let l=await new Promise((p,u)=>{const c0=bZ;this['connection']['_socket'][c0(0x2e8)](c0(0x1f0),'system',c0(0x2c0),{'startkey':'system.group.','endkey':c0(0x1d6)},(w,x)=>{w?u(w):p(x);});});if(console[bZ(0x283)]('🔍\x20[Visibility]\x20getObjectView\x20result:',l),l&&l[bZ(0x1dc)])for(let p of l[bZ(0x1dc)]){let u=p['id'][bZ(0x33f)](bZ(0x232),''),w=p[bZ(0x355)]?.[bZ(0x341)]?.[bZ(0x19b)]||u;typeof w=='object'&&(w=w['en']||w['de']||w['ru']||Object[bZ(0x309)](w)[0x0]||u);let x=p[bZ(0x355)]?.['common']?.[bZ(0x22b)]||'';typeof x==bZ(0x331)&&(x=x['en']||x['de']||x['ru']||Object[bZ(0x309)](x)[0x0]||''),k['push']({'id':u,'name':w,'desc':x}),console[bZ(0x283)](bZ(0x2c9),u,w);}}catch(y){console['warn']('⚠️\x20[Visibility]\x20getObjectView\x20failed:',y);}k['length']===0x0&&(console['warn'](bZ(0x28a)),k[bZ(0x2a5)]({'id':'administrator','name':'Administrator','desc':bZ(0x1b2)},{'id':'user','name':bZ(0x312),'desc':'User\x20group'})),this.#s=k,console[bZ(0x283)](bZ(0x32f),this.#s);}catch(A){console[bZ(0x292)]('⚠️\x20[Visibility]\x20Failed\x20to\x20load\x20user\x20groups:',A),this.#s=[{'id':bZ(0x1e7),'name':bZ(0x322),'desc':'Administrator\x20group'},{'id':bZ(0x22d),'name':'User','desc':'User\x20group'}];}return this.#s;}async[au(0x1cb)](k){const c1=au;if(!k||!k[c1(0x21b)])return{'visible':!0x0,'enabled':!0x0};try{if(k['groups']&&k[c1(0x1ec)]['length']>0x0){let l=this[c1(0x255)]||await this[c1(0x35f)][c1(0x285)](),p=new Promise(x=>setTimeout(()=>x({'visible':!0x0,'enabled':!0x0}),0xfa0)),u=this['connection'][c1(0x39a)](this[c1(0x27a)],c1(0x1cb),{'username':l,'allowedGroups':k['groups'],'action':k['action']||c1(0x282)}),w=await Promise['race']([u,p]);if(!w['visible']||!w['enabled'])return w;}if(k[c1(0x195)]&&k['condition']&&k[c1(0x23f)]!==void 0x0&&k[c1(0x23f)]!==''){let x=(await this['connection'][c1(0x2ca)](k['objectId']))?.[c1(0x307)],y=k['conditionValue'],A=!0x1;switch(k[c1(0x250)]){case'==':A=x==y;break;case'!=':A=x!=y;break;case'>':A=parseFloat(x)>parseFloat(y);break;case'<':A=parseFloat(x)<parseFloat(y);break;case'>=':A=parseFloat(x)>=parseFloat(y);break;case'<=':A=parseFloat(x)<=parseFloat(y);break;}if(console[c1(0x283)](c1(0x392),{'objectId':k[c1(0x195)],'currentValue':x,'condition':k[c1(0x250)],'targetValue':y,'conditionMet':A}),A){let F=k['action']||'hide';return console['log'](c1(0x2ee),F),{'visible':F!==c1(0x282),'enabled':F!==c1(0x31e)};}}return console['log']('✅\x20[Visibility]\x20All\x20checks\x20passed\x20→\x20Element\x20visible\x20and\x20enabled'),{'visible':!0x0,'enabled':!0x0};}catch(P){return console['error'](c1(0x28c),P),{'visible':!0x0,'enabled':!0x0};}}},m=V['instance'];window['IOB']=m;import{PropertiesHelper as i}from'@gokturk413/web-component-designer/dist/elements/services/propertiesService/services/PropertiesHelper.js';var B=class s{static ['instance']=new s();#e=new WeakMap();#t(k,l){const c2=au;if(!l['visible'])k[c2(0x22e)]['display']='none',k['style'][c2(0x25b)]=c2(0x2a4);else{let n=this.#e[c2(0x2b2)](k)||'';k[c2(0x22e)][c2(0x394)]=n,k['style'][c2(0x25b)]='';}l[c2(0x21b)]?(k['style'][c2(0x1a5)]='',k[c2(0x22e)]['opacity']=''):(k['style'][c2(0x1a5)]=c2(0x20a),k['style'][c2(0x382)]='0.5');}async['applyGroupVisibility'](k,l,n){const c3=au;if(!l||l[c3(0x321)]===0x0)return;this.#e[c3(0x359)](k)||this.#e['set'](k,k[c3(0x22e)][c3(0x394)]||'');let p=await m['checkVisibility']({'enabled':!0x0,'groups':l,'action':n||'hide'});(!p[c3(0x347)]||!p['enabled'])&&this.#t(k,p);}async[au(0x1b9)](k,l){const c4=au;!l||!l['enabled']||await this[c4(0x326)](k,l[c4(0x1ec)]||[],l['action']||'hide');}['removeVisibility'](k){const c5=au;let l=this.#e[c5(0x2b2)](k);l!==void 0x0&&(k[c5(0x22e)][c5(0x394)]=l,this.#e['delete'](k)),k['style']['visibility']='',k[c5(0x22e)][c5(0x1a5)]='',k[c5(0x22e)][c5(0x382)]='';}async[au(0x26e)](k=document[au(0x23e)]){const c6=au;let l=k[c6(0x339)](c6(0x314));for(let p of l)try{let r=p[c6(0x1bc)](c6(0x1fa))?.['split'](',')[c6(0x372)](w=>w)||[],u=p[c6(0x1bc)]('data-visibility-action')||'hide';await this[c6(0x326)](p,r,u);}catch(w){console['error']('[Visibility]\x20Group\x20check\x20error:',w);}}},E=B[au(0x2e4)],R=null;function rt(k,l){const c8=au;function n(u){const c7=b;let w=u['getElementById']?u[c7(0x33d)](l):u[c7(0x30c)]('#'+l);if(w)return w;for(let x of u['querySelectorAll']('*'))if(x['shadowRoot']){let y=n(x['shadowRoot']);if(y)return y;}return null;}let p=k['getRootNode']();for(;p instanceof ShadowRoot;){let r=n(p);if(r)return r;p=p[c8(0x196)][c8(0x2da)]();}return n(document[c8(0x23e)])??document['getElementById'](l);}var I=new URL(au(0x2b4),import.meta.url)['href'];function lt(k){const c9=au;let l=k[c9(0x235)][c9(0x38b)]();if(l===c9(0x329)){let p=parseFloat(k[c9(0x1bc)]('cx')||0x0),r=parseFloat(k['getAttribute']('cy')||0x0),u=parseFloat(k[c9(0x1bc)]('r')||0x0);return'M\x20'+(p-u)+','+r+c9(0x381)+u+','+u+'\x200\x201,1\x20'+(p+u)+','+r+c9(0x381)+u+','+u+c9(0x1ed)+(p-u)+','+r+'\x20Z';}if(l===c9(0x2bc)){let w=parseFloat(k[c9(0x1bc)]('cx')||0x0),x=parseFloat(k[c9(0x1bc)]('cy')||0x0),y=parseFloat(k[c9(0x1bc)]('rx')||0x0),A=parseFloat(k['getAttribute']('ry')||0x0);return'M\x20'+(w-y)+','+x+c9(0x381)+y+','+A+'\x200\x201,1\x20'+(w+y)+','+x+'\x20A\x20'+y+','+A+'\x200\x201,1\x20'+(w-y)+','+x+'\x20Z';}if(l==='rect'){let F=parseFloat(k[c9(0x1bc)]('x')||0x0),P=parseFloat(k[c9(0x1bc)]('y')||0x0),S=parseFloat(k['getAttribute'](c9(0x362))||0x0),T=parseFloat(k[c9(0x1bc)]('height')||0x0);return'M\x20'+F+','+P+'\x20H\x20'+(F+S)+c9(0x1c9)+(P+T)+c9(0x2fe)+F+'\x20Z';}if(l===c9(0x19f)){let Y=k[c9(0x1bc)]('x1')||0x0,a0=k[c9(0x1bc)]('y1')||0x0,a1=k[c9(0x1bc)]('x2')||0x0,a2=k['getAttribute']('y2')||0x0;return'M\x20'+Y+','+a0+'\x20L\x20'+a1+','+a2;}if(l===c9(0x1ad)||l==='polygon'){let a3=(k[c9(0x1bc)]('points')||'')['trim']()[c9(0x27b)](/[\s,]+/);if(a3['length']<0x2)return null;let a4='M\x20'+a3[0x0]+','+a3[0x1];for(let a5=0x2;a5+0x1<a3[c9(0x321)];a5+=0x2)a4+=c9(0x2b1)+a3[a5]+','+a3[a5+0x1];return l==='polygon'&&(a4+='\x20Z'),a4;}return null;}function W(k){const ca=au;if(k[ca(0x235)]['toLowerCase']()===ca(0x2e6))return{'pathEl':k,'tempEl':null};let l=lt(k);if(!l)return{'pathEl':k,'tempEl':null};let n=k['closest']('svg')??k['parentElement'],o=document[ca(0x32b)]('http://www.w3.org/2000/svg',ca(0x2e6));return o['setAttribute']('d',l),o[ca(0x366)](ca(0x1f9),ca(0x20a)),o[ca(0x22e)]['cssText']='visibility:hidden;pointer-events:none;',n['appendChild'](o),{'pathEl':o,'tempEl':o};}async function U(){return window['gsap']?window['gsap']:R||(R=new Promise(k=>{const cc=b;let l=o=>new Promise((p,u)=>{const cb=b;let w=document[cb(0x303)]('script');w['src']=o,w['onload']=p,w['onerror']=u,document[cb(0x34c)][cb(0x1eb)](w);}),n=window['define'];window[cc(0x313)]=void 0x0,l(I+cc(0x39b))['then'](()=>l(I+cc(0x2cf)))['then'](()=>l(I+cc(0x21d)))['then'](()=>{const cd=cc;window[cd(0x313)]=n,window[cd(0x2ec)]&&window[cd(0x2e5)][cd(0x1b4)](window[cd(0x2ec)]),window['MorphSVGPlugin']&&window[cd(0x2e5)]['registerPlugin'](window[cd(0x28e)]),k(window['gsap']);})['catch'](()=>{const ce=cc;window[ce(0x313)]=n,console['warn']('[AnimationService]\x20Failed\x20to\x20load\x20GSAP\x20from\x20local\x20path:',I),k(window['gsap']||null);});}),R);}function H(k){const cf=au;if(typeof k=='boolean')return k;if(typeof k==cf(0x1d1))return k!==0x0;if(typeof k==cf(0x2eb)){let l=k[cf(0x38b)]();if(l===cf(0x278)||l==='1')return!0x0;if(l==='false'||l==='0')return!0x1;}return k;}function b(c,d){c=c-0x18e;const e=a();let f=e[c];return f;}function Q(k,l,p){const cg=au;if(!l||l===cg(0x26a))return!0x0;let u=parseFloat(k),w=parseFloat(p);if(!isNaN(u)&&!isNaN(w))switch(l){case'equal':return u===w;case cg(0x1a0):return u!==w;case'less_than':return u<w;case'less_equal':return u<=w;case cg(0x2b3):return u>w;case'greater_equal':return u>=w;}let x=H(k),y=H(p);return typeof x=='boolean'&&typeof y==cg(0x298)?l===cg(0x1f5)?x===y:x!==y:l===cg(0x1f5)?String(k)===String(p):String(k)!==String(p);}function ct(k,p){const ch=au;let u=parseFloat(k['duration'])||0x1,w=k[ch(0x36c)]||ch(0x1ca),x=k[ch(0x396)]||'opacity',y=H(p),A=typeof y=='boolean'?y?0x1:0x0:parseFloat(p)||0x0,F={'duration':u,'ease':w===ch(0x20a)?ch(0x20a):w,'paused':!0x0,'repeat':parseInt(k[ch(0x318)])||0x0,'yoyo':k['yoyo']===!0x0||k[ch(0x1b3)]===ch(0x278)};switch(x){case ch(0x224):F['rotation']=k['valueTo']!=null?parseFloat(k[ch(0x211)]):A,k['valueFrom']!=null&&(F[ch(0x23c)]={'rotation':parseFloat(k['valueFrom'])}),F[ch(0x2b0)]=(k['transformOriginX']||'50')+'%\x20'+(k[ch(0x27f)]||'50')+'%\x20'+(k[ch(0x319)]||'0');break;case'scale':F[ch(0x354)]=k['valueTo']!=null?parseFloat(k['valueTo']):typeof y==ch(0x298)?y?1.5:0x1:A,k['valueFrom']!=null&&(F[ch(0x23c)]={'scale':parseFloat(k[ch(0x21c)])});break;case'opacity':F['opacity']=k['valueTo']!=null?parseFloat(k[ch(0x211)]):typeof y=='boolean'?y?0x1:0x0:A,k['valueFrom']!=null&&(F[ch(0x23c)]={'opacity':parseFloat(k['valueFrom'])});break;case ch(0x288):F['x']=k['valueTo']!=null?parseFloat(k[ch(0x211)]):typeof y=='boolean'?y?0x64:0x0:A,k[ch(0x21c)]!=null&&(F[ch(0x23c)]={'x':parseFloat(k['valueFrom'])});break;case ch(0x21a):F['y']=k[ch(0x211)]!=null?parseFloat(k[ch(0x211)]):typeof y==ch(0x298)?y?0x64:0x0:A,k['valueFrom']!=null&&(F[ch(0x23c)]={'y':parseFloat(k[ch(0x21c)])});break;case'translate':{let P=(T,Y)=>{const ci=ch;if(T==null)return{'x':Y,'y':0x0};let a0=String(T)[ci(0x27b)](',');return{'x':parseFloat(a0[0x0])||0x0,'y':a0[ci(0x321)]>0x1&&parseFloat(a0[0x1])||0x0};},S=P(k[ch(0x211)],typeof y==ch(0x298)?y?0x64:0x0:A);if(F['x']=S['x'],F['y']=S['y'],k[ch(0x21c)]!=null){let T=P(k['valueFrom'],0x0);F[ch(0x23c)]={'x':T['x'],'y':T['y']};}break;}case'left':F['left']=k[ch(0x211)]!=null?k['valueTo']:typeof y==ch(0x298)?y?ch(0x335):'0px':A+'px',k['valueFrom']!=null&&(F[ch(0x23c)]={'left':isNaN(k[ch(0x21c)])?k[ch(0x21c)]:k[ch(0x21c)]+'px'});break;case'top':F[ch(0x251)]=k['valueTo']!=null?k[ch(0x211)]:typeof y=='boolean'?y?'100px':'0px':A+'px',k[ch(0x21c)]!=null&&(F['startAt']={'top':isNaN(k['valueFrom'])?k[ch(0x21c)]:k['valueFrom']+'px'});break;case ch(0x2c7):{let Y=k['valueTo']!=null?parseFloat(k[ch(0x211)]):typeof y=='boolean'?y?0x2d:0x0:A;F[ch(0x203)]=Y,F[ch(0x333)]=Y;break;}case'fill':F['fill']=k['fillColorTo']||'#ff0000',k['fillColorFrom']&&(F['startAt']={'fill':k['fillColorFrom']});break;case ch(0x200):F[ch(0x200)]=k[ch(0x1c5)]||ch(0x2c6),k['fillColorFrom']&&(F[ch(0x23c)]={'color':k[ch(0x19c)]});break;case'backgroundColor':F[ch(0x228)]=k['fillColorTo']||'#ff0000',k[ch(0x19c)]&&(F['startAt']={'backgroundColor':k['fillColorFrom']});break;case'transform':F['transform']=k[ch(0x211)]||String(p),k['valueFrom']&&(F[ch(0x23c)]={'transform':k[ch(0x21c)]});break;case'svg':if(k['svgAttr']){let a0=k[ch(0x277)];a0==='fill'||a0==='color'?F[a0]=typeof y==ch(0x298)?y?k[ch(0x1c5)]||'#ff0000':k['fillColorFrom']||'#000000':k[ch(0x1c5)]||'#ff0000':a0==='stroke-dasharray'?F[a0]=k['valueTo']||'10':F[a0]=k['valueTo']!=null?parseFloat(k[ch(0x211)]):A;}break;default:F[ch(0x382)]=k[ch(0x211)]!=null?parseFloat(k['valueTo']):typeof y=='boolean'?y?0x1:0x0:A;}return F;}function O(k){const cj=au;for(let l of k)try{l['type']==='event'?l[cj(0x2df)][cj(0x1a7)](l[cj(0x385)],l['handler']):l['type']===cj(0x33a)?m['connection']['unsubscribeState'](l['oid'],l['handler']):l['type']==='delegate'&&O(l[cj(0x20f)]);}catch{}k[cj(0x321)]=0x0;}async function ht(k,p,u,x){const ck=au;let y=[],A=/\{([^}]+)\}/g,F;for(;(F=A[ck(0x2bf)](k))!==null;)y['push'](F[0x1]);if(y['length']===0x0)return;let P={};for(let Y of y)P[Y]=null;let S=[],T=async()=>{const cl=ck;if(Object[cl(0x309)](P)['some'](a1=>a1==null))return;let a0=k;for(let [a1,a2]of Object[cl(0x1ff)](P))a0=a0[cl(0x33f)]('{'+a1+'}',a2);O(S),await C(a0,p,u,S);};for(let a0 of y){let a1=async(a2,a3)=>{a3?.['val']!=null&&(P[a0]=String(a3['val']),await T());};try{m[ck(0x35f)]['subscribeState'](a0,a1),x[ck(0x2a5)]({'type':'state','oid':a0,'handler':a1});}catch{}try{let a2=await m[ck(0x35f)]['getState'](a0);a2?.[ck(0x307)]!=null&&(P[a0]=String(a2['val']));}catch{}}await T(),x['push']({'type':'delegate','innerSubs':S});}async function C(k,p,u,w){const cn=au;if(!k)return;if(k['includes']('{')&&k['includes']('}')){await ht(k,p,u,w);return;}let x=()=>{const cm=b;let y=p[cm(0x2da)]();return y&&y!==document?y['host']??null:null;};if(k[cn(0x27e)]('??')){let y=k['slice'](0x2),A=x();if(!A)return;let F=()=>{const co=cn;let S=A[y]??A[co(0x1bc)]?.(y);S!=null&&u(S);};F();let P=()=>F();A['addEventListener'](y+'-changed',P),w['push']({'type':'event','target':A,'event':y+'-changed','handler':P});}else{if(k['startsWith']('?')){let S=k[cn(0x2cb)](0x1),T=x();if(!T)return;let Y=[],a0=async()=>{const cp=cn;O(Y);let a2=T[S]??T[cp(0x1bc)]?.(S);a2&&await C(a2,p,u,Y);};await a0();let a1=()=>a0();T[cn(0x275)](S+'-changed',a1),w['push']({'type':cn(0x385),'target':T,'event':S+'-changed','handler':a1}),w['push']({'type':cn(0x1df),'innerSubs':Y});}else{if(k['startsWith'](cn(0x29a))){let a2=k['slice'](0x6),a3=(a4,a5)=>{a5?.['val']!=null&&u(a5['val']);};try{m['connection']['subscribeState'](a2,a3),w[cn(0x2a5)]({'type':cn(0x33a),'oid':a2,'handler':a3});}catch{}try{let a4=await m[cn(0x35f)][cn(0x2ca)](a2);a4?.[cn(0x307)]!=null&&u(a4['val']);}catch{}}else{if(!k['startsWith'](cn(0x28f))){let a5=k;a5[cn(0x27e)]('.')&&(a5=(x()?.[cn(0x2db)]?.()??'')+a5['slice'](0x1));let a6=(a7,a8)=>{const cq=cn;a8?.[cq(0x307)]!=null&&u(a8['val']);};try{a5['startsWith'](cn(0x208))?m[cn(0x357)](a5,a6):m['connection']['subscribeState'](a5,a6),w['push']({'type':cn(0x33a),'oid':a5,'handler':a6});}catch{}try{let a7;a5[cn(0x27e)]('local_')?a7=await m[cn(0x2ca)](a5):a7=await m[cn(0x35f)][cn(0x2ca)](a5),a7?.[cn(0x307)]!=null&&u(a7[cn(0x307)]);}catch{}}}}}}var q=class{constructor(k,l){const cr=au;this[cr(0x342)]=k,this['cfg']=l,this[cr(0x237)]=null,this[cr(0x223)]=[];}async[au(0x377)](){const cs=au;if(await U(),!window[cs(0x2e5)])return;let k=this[cs(0x291)][cs(0x2f4)]||{},l=async(w,x)=>{const cu=cs;let y=k[w];if(!y)return;y['condition_bind']?.[cu(0x36e)]&&await C(y[cu(0x231)][cu(0x36e)],this[cu(0x342)],F=>{const cv=cu;y[cv(0x250)]=String(F);},this['_subs']),y[cu(0x330)]?.['signal']&&await C(y[cu(0x330)]['signal'],this['element'],F=>{const cw=cu;y[cw(0x355)]=String(F);},this[cu(0x223)]);let A=y[cu(0x257)]?.['signal']||y[cu(0x266)];A&&await C(A,this['element'],F=>{const cx=cu;Q(F,y[cx(0x250)]||'equal',y['value']??'true')&&x();},this['_subs']);};await l(cs(0x34d),()=>this[cs(0x37d)]()),await l('pause',()=>this[cs(0x237)]?.[cs(0x1db)]()),await l('resume',()=>this['tween']?.['play']()),await l('stop',()=>this[cs(0x237)]?.['pause'](0x0)),await l(cs(0x1e4),()=>this[cs(0x237)]?.[cs(0x1e4)]());let p=['effect','valueFrom','valueTo','duration',cs(0x36c),'repeat',cs(0x1b3),'fillColorFrom',cs(0x1c5),'transformOriginX','transformOriginY',cs(0x277),'pathId','alignToPath',cs(0x2b9),cs(0x1ee),cs(0x370),'color',cs(0x395),cs(0x1ba),cs(0x2e9),cs(0x26c),cs(0x2a7)],u=null;for(let w of p){let x=this[cs(0x291)][w+cs(0x2a3)];if(!x?.['signal'])continue;let y=w;await C(x[cs(0x36e)],this['element'],A=>{const cy=cs;if(this[cy(0x291)][y]=A,!!this[cy(0x237)]){if(y===cy(0x219)&&this[cy(0x237)]['vars']){let F=parseFloat(this[cy(0x237)]['vars']['duration'])||0x1,P=parseFloat(A)||0x1;this[cy(0x237)]['timeScale'](F/P);return;}clearTimeout(u),u=setTimeout(()=>{const cz=cy;this['tween']&&!this[cz(0x237)][cz(0x2f6)]()&&this[cz(0x37d)]();},0x3c);}},this['_subs']);}}[au(0x37d)](){const cA=au;let k=window['gsap'];if(!k)return;this['element']['style']['display']===cA(0x20a)&&(this[cA(0x342)]['style'][cA(0x394)]=''),this['tween']&&this['tween']['kill']();let x=this[cA(0x291)]['effect'];if(x===cA(0x267)&&this['cfg'][cA(0x242)]){let P=rt(this['element'],this['cfg'][cA(0x242)]);if(!P){console[cA(0x292)]('[AnimationService]\x20motionPath:\x20path\x20element\x20not\x20found:',this['cfg'][cA(0x242)]);return;}P[cA(0x235)]['toLowerCase']()==='svg'&&(P=P[cA(0x30c)]('path,\x20circle,\x20ellipse,\x20rect,\x20polyline,\x20polygon')??P),this[cA(0x2cc)]&&(this['_tempPathEl'][cA(0x1d5)](),this['_tempPathEl']=null);let {pathEl:T,tempEl:Y}=W(P);this[cA(0x2cc)]=Y,this['tween']=k['to'](this['element'],{'duration':parseFloat(this[cA(0x291)][cA(0x219)])||0x1,'ease':this['cfg'][cA(0x36c)]||'none','repeat':parseInt(this[cA(0x291)][cA(0x318)])||0x0,'yoyo':this['cfg']['yoyo']===!0x0,'paused':!0x0,'motionPath':{'path':T,'align':this['cfg'][cA(0x2ab)]?T:!0x1,'autoRotate':this[cA(0x291)][cA(0x2b9)]===!0x0,'alignOrigin':[0.5,0.5],'start':this['cfg']['valueFrom']?parseFloat(this[cA(0x291)]['valueFrom'])/0x64:0x0,'end':this[cA(0x291)]['valueTo']?parseFloat(this['cfg'][cA(0x211)])/0x64:0x1}});}else{if(x===cA(0x25f)&&this['cfg'][cA(0x211)])this[cA(0x237)]=k['to'](this[cA(0x342)],{'duration':parseFloat(this['cfg'][cA(0x219)])||0x1,'ease':this['cfg'][cA(0x36c)]||cA(0x20a),'repeat':parseInt(this['cfg'][cA(0x318)])||0x0,'yoyo':this['cfg'][cA(0x1b3)]===!0x0,'paused':!0x0,'morphSVG':this['cfg'][cA(0x211)]});else{if(x==='flowDash'){this[cA(0x2d5)](k);let a0=parseFloat(this['cfg']['dashLen'])||0xa,a1=parseFloat(this['cfg'][cA(0x370)])||0x14,a2=this['cfg']['color']||null,a3=this['cfg']['direction']===cA(0x1e4),a4=this[cA(0x342)]['tagName'][cA(0x38b)]()===cA(0x27c)?this['element'][cA(0x30c)]('path,line,polyline,polygon,rect,circle,ellipse')||this[cA(0x342)]:this[cA(0x342)];a4[cA(0x22e)][cA(0x386)]=a0+'\x20'+a1,a2&&(a4['style'][cA(0x38c)]=a2);let a5=a3?0x0:a0+a1,a6=a3?a0+a1:0x0;this[cA(0x237)]=k['fromTo'](a4,{'attr':{'stroke-dashoffset':a5}},{'attr':{'stroke-dashoffset':a6},'duration':parseFloat(this['cfg'][cA(0x219)])||0x1,'ease':'none','repeat':-0x1,'paused':!0x0});}else{if(x==='pathFlow'){this[cA(0x2d5)](k),this['_pathFlowEls']=[];let a7=parseInt(this['cfg'][cA(0x1ba)])||0x5,a8=this[cA(0x291)]['shape']||cA(0x2e0),a9=this[cA(0x291)][cA(0x200)]||cA(0x198),aa=parseFloat(this[cA(0x291)]['size'])||0x8,ab=this[cA(0x291)]['direction']==='reverse',ac=this['cfg']['customShapeD']||'',ad=parseFloat(this[cA(0x291)][cA(0x219)])||0x2,ae=this['element']['tagName']['toLowerCase']()===cA(0x27c)?this['element']['querySelector']('path,line,polyline,polygon,rect,circle,ellipse')||this['element']:this['element'],af=ae[cA(0x323)]||ae['closest']('svg')||this[cA(0x342)];if(!af)return;this['_tempPathEl']&&(this['_tempPathEl'][cA(0x1d5)](),this[cA(0x2cc)]=null);let {pathEl:ag,tempEl:ah}=W(ae);this[cA(0x2cc)]=ah;let ai='http://www.w3.org/2000/svg',aj=()=>{const cB=cA;let al;switch(a8){case'triangle':al=document['createElementNS'](ai,cB(0x2ba)),al[cB(0x366)]('points',aa+',0\x200,'+-aa/0x2+'\x200,'+aa/0x2);break;case'arrow':al=document['createElementNS'](ai,'path'),al[cB(0x366)]('d','M'+aa+',0\x20L0,'+-aa/0x2+'\x20L'+aa*0.35+cB(0x192)+aa/0x2+'\x20Z');break;case'circle':al=document[cB(0x32b)](ai,'circle'),al['setAttribute']('r',String(aa/0x2));break;case'square':al=document[cB(0x32b)](ai,cB(0x194)),al['setAttribute'](cB(0x362),String(aa)),al[cB(0x366)](cB(0x2e3),String(aa)),al['setAttribute']('x',String(-aa/0x2)),al[cB(0x366)]('y',String(-aa/0x2));break;case'star':{al=document[cB(0x32b)](ai,cB(0x2ba));let am=[];for(let an=0x0;an<0xa;an++){let ao=an%0x2===0x0?aa:aa*0.4,ap=an*Math['PI']/0x5-Math['PI']/0x2;am['push'](ao*Math['cos'](ap)+','+ao*Math[cB(0x218)](ap));}al['setAttribute'](cB(0x24e),am['join']('\x20'));break;}case cB(0x240):al=document['createElementNS'](ai,cB(0x2e6)),al['setAttribute']('d',ac||'M'+aa+',0\x20L0,'+-aa/0x2+'\x200,'+aa/0x2+'\x20Z');break;default:al=document[cB(0x32b)](ai,cB(0x194)),al['setAttribute'](cB(0x362),String(aa*0x2)),al[cB(0x366)]('height',String(aa/0x3)),al['setAttribute']('x',String(-aa)),al['setAttribute']('y',String(-aa/0x6));}return al[cB(0x366)]('fill',a9),af['appendChild'](al),this['_pathFlowEls'][cB(0x2a5)](al),al;},ak=k[cA(0x36b)]({'repeat':-0x1,'paused':!0x0});for(let al=0x0;al<a7;al++){let am=aj(),an=ab?0x1-al/a7:al/a7,ao=ab?-(al/a7):al/a7+0x1;ak['to'](am,{'motionPath':{'path':ag,'align':ag,'autoRotate':!0x0,'alignOrigin':[0.5,0.5],'start':an,'end':ao},'duration':ad,'ease':'none'},0x0);}this[cA(0x237)]=ak;}else{let ap=ct(this['cfg'],!0x0);this['tween']=k['to'](this[cA(0x342)],ap);}}}}this[cA(0x237)]&&this[cA(0x237)][cA(0x34d)]();}[au(0x2d5)](k){if(this['_pathFlowEls']){for(let l of this['_pathFlowEls'])k&&k['killTweensOf'](l),l['remove']();this['_pathFlowEls']=null;}}['destroy'](){const cC=au;let k=window[cC(0x2e5)];this[cC(0x237)]&&(this['tween']['kill'](),this[cC(0x237)]=null),this[cC(0x2cc)]&&(this[cC(0x2cc)]['remove'](),this['_tempPathEl']=null),this['_destroyPathFlowEls'](k),O(this[cC(0x223)]);}},$=new WeakMap(),D=new WeakMap();async function z(k){const cD=au;await U();let p=(k||document)[cD(0x339)](cD(0x205));for(let u of p)try{let w=JSON['parse'](u[cD(0x1bc)]('data-animation')),x=Array[cD(0x2a8)](w)?w:[w],y=$['get'](u)||[];for(let F of y)F[cD(0x1e0)]();let A=[];for(let P of x){if(!P||typeof P!='object')continue;let S=new q(u,P);await S['init'](),A['push'](S);}$[cD(0x379)](u,A);}catch(T){console['warn']('[AnimationService]\x20data-animation\x20parse\x20error\x20on\x20element:',u,T);}}function tt(k){const cE=au;let l=(k||document)['querySelectorAll']('[data-animation]');for(let n of l){let p=$[cE(0x2b2)](n)||[];for(let r of p)r[cE(0x1e0)]();$[cE(0x2a9)](n);}}async function J(k){const cF=au;await U();let p=(k||document)[cF(0x339)](cF(0x199));for(let u of p)try{let w=JSON['parse'](u['getAttribute'](cF(0x38a))),x=Array[cF(0x2a8)](w)?w:[w],y=D[cF(0x2b2)](u)||[];for(let F of y)F?.['cleanup']&&F[cF(0x191)]();let A=[];for(let P of x){if(!P||typeof P!=cF(0x331))continue;let S=await ut(u,P);A['push']({'cleanup':S});}D[cF(0x379)](u,A);}catch(T){console['warn']('[AnimationService]\x20data-effects\x20parse\x20error\x20on\x20element:',u,T);}}function et(k){const cG=au;let l=(k||document)[cG(0x339)](cG(0x199));for(let n of l){let p=D['get'](n)||[];for(let r of p)r?.['cleanup']&&r['cleanup']();D[cG(0x2a9)](n);}}async function ut(k,p){const cH=au;let u=window['gsap'];if(!u)return null;let x=parseFloat(p[cH(0x219)])||0.5,y=parseFloat(p[cH(0x265)])||0x0,A=p['ease']||cH(0x328),F=parseInt(p['repeat'])||0x0,P=()=>{const cI=cH;switch(p['type']){case'fadeIn':u['fromTo'](k,{'opacity':0x0},{'opacity':0x1,'duration':x,'ease':A,'delay':y});break;case cI(0x2c8):u['to'](k,{'opacity':0x0,'duration':x,'ease':A,'delay':y});break;case cI(0x1aa):u['fromTo'](k,{'x':-0x64,'opacity':0x0},{'x':0x0,'opacity':0x1,'duration':x,'ease':A,'delay':y});break;case'slideInRight':u[cI(0x332)](k,{'x':0x64,'opacity':0x0},{'x':0x0,'opacity':0x1,'duration':x,'ease':A,'delay':y});break;case cI(0x1b6):u[cI(0x332)](k,{'y':-0x64,'opacity':0x0},{'y':0x0,'opacity':0x1,'duration':x,'ease':A,'delay':y});break;case cI(0x259):u[cI(0x332)](k,{'y':0x64,'opacity':0x0},{'y':0x0,'opacity':0x1,'duration':x,'ease':A,'delay':y});break;case'bounce':u['fromTo'](k,{'y':0x0},{'y':-0x14,'duration':x/0x2,'ease':'power2.out','yoyo':!0x0,'repeat':F||0x3,'delay':y});break;case'pulse':u['fromTo'](k,{'scale':0x1},{'scale':1.1,'duration':x/0x2,'ease':'power2.inOut','yoyo':!0x0,'repeat':F||0x3,'delay':y});break;case cI(0x1c7):u['fromTo'](k,{'x':0x0},{'x':0xa,'duration':x/0x6,'ease':'none','yoyo':!0x0,'repeat':F||0x5,'delay':y});break;case cI(0x2c4):u['fromTo'](k,{'filter':cI(0x2be)},{'filter':cI(0x34f)+(p[cI(0x258)]||0xa)+cI(0x20e)+(p['glowColor']||cI(0x2af))+')','duration':x,'ease':A,'yoyo':F>0x0,'repeat':F,'delay':y});break;case cI(0x264):u['fromTo'](k,{'filter':cI(0x1e5)},{'filter':'blur('+(p[cI(0x246)]||0x5)+'px)','duration':x,'ease':A,'delay':y});break;case cI(0x222):u['to'](k,{'rotation':0x168,'duration':x,'ease':cI(0x20a),'repeat':F||-0x1,'delay':y});break;case'flip':u[cI(0x332)](k,{'rotationY':0x0},{'rotationY':0x168,'duration':x,'ease':A,'delay':y});break;case cI(0x1fe):{let a2=parseFloat(p[cI(0x354)])||2.5,a3=p['ease']||'power1.out',a4=!p['trigger']||p[cI(0x317)]==='load',a5=F!==0x0?F:a4?-0x1:0x0;u['fromTo'](k,{'scale':0x0,'opacity':p['opacityFrom']!=null?parseFloat(p[cI(0x38e)]):0x1},{'scale':a2,'opacity':0x0,'duration':x,'ease':a3,'repeat':a5,'delay':y,'transformOrigin':'50%\x2050%'});break;}case'flowDash':{let a6=parseFloat(p[cI(0x1ee)])||0xa,a7=parseFloat(p['gapLen'])||0x14,a8=p[cI(0x200)]||null,a9=p['direction']===cI(0x1e4)?cI(0x1e4):'normal',aa=k['tagName']['toLowerCase']()==='svg'&&k['querySelector']('path,line,polyline,polygon,rect,circle,ellipse')||k;aa[cI(0x22e)][cI(0x386)]=a6+'\x20'+a7,a8&&(aa[cI(0x22e)][cI(0x38c)]=a8),Y=aa[cI(0x22a)]([{'strokeDashoffset':a6+a7},{'strokeDashoffset':0x0}],{'duration':x*0x3e8,'iterations':0x1/0x0,'easing':cI(0x35c),'direction':a9,'delay':y*0x3e8});break;}case'pathFlow':{let ab=parseInt(p['count'])||0x5,ac=p[cI(0x26c)]||'triangle',ad=p['color']||'#0066ff',ae=parseFloat(p[cI(0x2e9)])||0x8,af=p[cI(0x395)]==='reverse',ag=k['tagName'][cI(0x38b)]()==='svg'&&k[cI(0x30c)]('path,line,polyline,polygon,rect,circle,ellipse')||k,ah=ag[cI(0x323)]||ag[cI(0x1f8)](cI(0x27c))||k;if(!ah)break;let {pathEl:ai,tempEl:aj}=W(ag);aj&&a0['push'](aj);let ak=cI(0x261),al=()=>{const cJ=cI;let am;switch(ac){case cJ(0x2e0):am=document[cJ(0x32b)](ak,'polygon'),am[cJ(0x366)]('points',ae+',0\x200,'+-ae/0x2+'\x200,'+ae/0x2);break;case'arrow':am=document[cJ(0x32b)](ak,cJ(0x2e6)),am[cJ(0x366)]('d','M'+ae+cJ(0x192)+-ae/0x2+'\x20L'+ae*0.35+cJ(0x192)+ae/0x2+'\x20Z');break;case'circle':am=document['createElementNS'](ak,'circle'),am['setAttribute']('r',String(ae/0x2));break;case'square':am=document[cJ(0x32b)](ak,'rect'),am['setAttribute']('width',String(ae)),am[cJ(0x366)](cJ(0x2e3),String(ae)),am['setAttribute']('x',String(-ae/0x2)),am['setAttribute']('y',String(-ae/0x2));break;case'star':{am=document[cJ(0x32b)](ak,cJ(0x2ba));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['cos'](aq)+','+ap*Math[cJ(0x218)](aq));}am['setAttribute'](cJ(0x24e),an[cJ(0x1a9)]('\x20'));break;}case cJ(0x240):{let ar=p[cJ(0x2a7)]||'M'+ae+',0\x20L0,'+-ae/0x2+cJ(0x29c)+ae/0x2+'\x20Z';am=document['createElementNS'](ak,cJ(0x2e6)),am[cJ(0x366)]('d',ar);break;}default:am=document[cJ(0x32b)](ak,cJ(0x194)),am[cJ(0x366)](cJ(0x362),String(ae*0x2)),am[cJ(0x366)]('height',String(ae/0x3)),am['setAttribute']('x',String(-ae)),am['setAttribute']('y',String(-ae/0x6));break;}return am['setAttribute']('fill',ad),ah[cJ(0x1eb)](am),a0[cJ(0x2a5)](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':x,'repeat':-0x1,'ease':'none','delay':y});}break;}}},S=null,T=null,Y=null,a0=[],a1=[];if(p[cH(0x317)]==='load')P();else{if(p[cH(0x317)]===cH(0x1e6))S=P,k[cH(0x275)](cH(0x344),S);else{if(p[cH(0x317)]===cH(0x2f3))T=P,k['addEventListener']('click',T);else{if(p[cH(0x317)]===cH(0x266)){p[cH(0x231)]?.[cH(0x36e)]&&await C(p[cH(0x231)][cH(0x36e)],k,a3=>{const cK=cH;p[cK(0x250)]=String(a3);},a1),p[cH(0x1a3)]?.[cH(0x36e)]&&await C(p[cH(0x1a3)]['signal'],k,a3=>{p['conditionValue']=String(a3);},a1);let a2=p[cH(0x257)]?.[cH(0x36e)]||p[cH(0x266)];a2&&await C(a2,k,a3=>{const cL=cH;if(Q(a3,p['condition']||'equal',p[cL(0x23f)]??cL(0x278)))P();else{u[cL(0x1c2)](k),Y&&(Y['cancel'](),Y=null);for(let a4 of a0)u['killTweensOf'](a4),a4['remove']();a0['length']=0x0;}},a1);}}}}return()=>{const cM=cH;S&&k['removeEventListener'](cM(0x344),S),T&&k[cM(0x1a7)]('click',T),O(a1),Y&&Y[cM(0x2b8)]();for(let a3 of a0)u['killTweensOf'](a3),a3[cM(0x1d5)]();};}import{PropertiesHelper as j}from'@gokturk413/web-component-designer/dist/elements/services/propertiesService/services/PropertiesHelper.js';var M=au(0x21e);function dt(k){const cN=au;try{let l=k[cN(0x1bc)](M);if(l){let n=JSON['parse'](l);if(Array['isArray'](n))return n['filter'](o=>o&&o[cN(0x19b)]);}}catch(o){console['warn']('invalid\x20'+M+'\x20attribute',o,k);}return[];}function pt(k,l){const cO=au;let n=Object[cO(0x30b)](k);for(;n&&n!==HTMLElement['prototype'];){let o=Object[cO(0x2f0)](n,l);if(o)return o;n=Object[cO(0x30b)](n);}return null;}function G(k){const cP=au;let l=dt(k);for(let n of l){let p=n[cP(0x19b)];if(Object['getOwnPropertyDescriptor'](k,p))continue;let u=pt(k,p);u&&(u[cP(0x2b2)]||u[cP(0x379)])?Object['defineProperty'](k,p,{'get'(){const cQ=cP;return u['get']?u[cQ(0x2b2)][cQ(0x286)](this):void 0x0;},'set'(x){const cR=cP;(u[cR(0x2b2)]?u['get'][cR(0x286)](this):void 0x0)!==x&&(u['set']?.['call'](this,x),this['_bindingsRefresh']?.(p),this['dispatchEvent'](new CustomEvent(j[cR(0x31c)](p)+cR(0x244),{'detail':{'newValue':x}})));},'enumerable':!0x0,'configurable':!0x0}):Object['defineProperty'](k,p,{'get'(){return this['_'+p];},'set'(x){const cS=cP;this['_'+p]!==x&&(!Number['isNaN'](this['_'+p])||!Number['isNaN'](x))&&(this['_'+p]=x,this[cS(0x398)]?.(p),this[cS(0x324)](new CustomEvent(j['camelToDashCase'](p)+cS(0x244),{'detail':{'newValue':x}})));},'enumerable':!0x0,'configurable':!0x0});let w=k['getAttribute'](j[cP(0x31c)](p))??n[cP(0x337)];w!=null&&(n[cP(0x305)]==='number'?w=parseFloat(w):n[cP(0x305)]===cP(0x298)&&(w=w===''||w===!0x0||w==='true'),u?k[p]=w:k['_'+p]=w);}}function it(k){const cT=au;k instanceof Element&&k[cT(0x327)](M)&&G(k);for(let l of k['querySelectorAll']('['+M+']'))G(l);}var ft=[au(0x394),'flexDirection','flexWrap','justifyContent',au(0x1e8),au(0x1ef),'padding',au(0x376),'gridTemplateRows'];function gt(k){const cU=au;let l={};if(!k||!k[cU(0x305)]||k[cU(0x305)]==='none')return l;if(k[cU(0x305)]==='flex')l['display']=cU(0x2f7),l[cU(0x36f)]=k['direction']||cU(0x210),l['flexWrap']=k['wrap']||cU(0x24f),l[cU(0x19e)]=k[cU(0x19e)]||cU(0x2d1),l['alignItems']=k[cU(0x1e8)]||'stretch',k['gap']&&(l[cU(0x1ef)]=k[cU(0x1ef)]),k['padding']&&(l[cU(0x32d)]=k['padding']);else{if(k[cU(0x305)]==='grid'){let n=k[cU(0x376)],o=k['gridTemplateRows'];if(!n&&!o)return l;l['display']=cU(0x1e3),n&&(l['gridTemplateColumns']=n),o&&(l[cU(0x220)]=o),k[cU(0x1ef)]&&(l['gap']=k[cU(0x1ef)]),k['padding']&&(l[cU(0x32d)]=k[cU(0x32d)]);}}return l;}function st(k,l){const cV=au;if(!k)return;let n=gt(l);for(let o of ft)k[cV(0x22e)][o]='';for(let p in n)k[cV(0x22e)][p]=n[p];}function mt(k){const cW=au;return!!k&&(k['type']===cW(0x27b)||k[cW(0x305)]===cW(0x1e2));}function Nt(k){const cX=au;if(!k||!/__layout-generated/['test'](k))return k;let l=document['createElement']('div');l['innerHTML']=k;let n=l['querySelector']('.__layout-generated');if(!n)return k;let p;if(n[cX(0x235)]['toLowerCase']()===cX(0x1fc)){let r=u=>{const cY=cX;if(!u)return'<div></div>';let w=[...u['children']];return w['length']===0x1?w[0x0][cY(0x2e1)]:w['length']===0x0?cY(0x302):'<div>'+u[cY(0x2f1)]+'</div>';};p=r(n['querySelector']('[data-split-pane=\x221\x22]'))+r(n[cX(0x30c)]('[data-split-pane=\x222\x22]'));}else p=[...n['children']]['map'](u=>(u['classList']['remove'](cX(0x301)),u['outerHTML']))[cX(0x1a9)]('');return n['outerHTML']=p,l[cX(0x2f1)];}function Rt(k,l,p){const cZ=au;if(!k||!mt(l))return null;let r=k['querySelector'](':scope\x20>\x20.__layout-generated'),u=l['type']===cZ(0x27b)?'webui-split-container':'webui-tab-container';r&&r['tagName']['toLowerCase']()!==u&&(r[cZ(0x1d5)](),r=null);let w=x=>{const d0=cZ;let y=[...k['childNodes']][d0(0x372)](A=>A!==x);for(let A of y)x[d0(0x1eb)](A);};return r||(r=document['createElement'](u),r[cZ(0x1d0)][cZ(0x193)](cZ(0x213)),r[cZ(0x22e)]['cssText']='width:100%;height:100%;box-sizing:border-box;',w(r),k[cZ(0x1eb)](r)),l[cZ(0x305)]==='split'?(r[cZ(0x366)]('orientation',l['orientation']||'horizontal'),r['setAttribute']('split-position',String(l['splitPosition']??0x32))):(l[cZ(0x1a2)]&&r['setAttribute'](cZ(0x348),l['tabLabels']),r['setAttribute']('active-tab',String(l['active']??0x0)),r[cZ(0x366)](cZ(0x1b8),l[cZ(0x2d6)]||'top')),p&&(p[cZ(0x22e)]['position']=cZ(0x389),p[cZ(0x22e)][cZ(0x394)]=cZ(0x217),p['style']['width']||(p[cZ(0x22e)]['width']='100%'),p[cZ(0x22e)][cZ(0x2e3)]||(p['style'][cZ(0x2e3)]=cZ(0x2e7))),r;}function a(){const dh=['split','svg','grafanaEnabled','startsWith','transformOriginY','_writeGlobalAggregate','error\x20writing\x20global\x20','hide','log','clientId','getCurrentUser','call','done','translateX','now','⚠️\x20[Visibility]\x20No\x20groups\x20found,\x20using\x20defaults','readable','❌\x20[Visibility]\x20Check\x20failed:','getIconAdapterFoldernames','MorphSVGPlugin','object:','_gzipBytes','cfg','warn','.png','red','_cleanProjectName','write','controls-all.dat','boolean','createImportmap','state:','decode','\x200,','currentProject','getWebuiObject','applyBinding','members','getGlobalObject','url','_bind','hidden','push','error','customShapeD','isArray','delete','53830TGBXvL','alignToPath','getCustomControlNames','_rootDocumentFragment','🔍\x20[Visibility]\x20Fetching\x20groups\x20via\x20getObjectView...','yellow','transformOrigin','\x20L\x20','get','greater_than','../../vendor/gsap/','isDir','endsWith','error\x20writing\x20controls\x20aggregate','cancel','orientToPath','polygon','screens/','ellipse','🔐\x20[Visibility]\x20Current\x20user\x20name:','drop-shadow(0\x200\x200px\x20rgba(0,0,0,0))','exec','group','getAdditionalFile','_scheduleControlsAggregate','POST','glow','loadAllControlsFast','#ff0000','skew','fadeOut','✅\x20[Visibility]\x20Found\x20group:','getState','slice','_tempPathEl','application/javascript','close','MotionPathPlugin.min.js','system.user.','flex-start','uiConnected','runtime.html','grafanaLangSyncEnabled','_destroyPathFlowEls','tabPosition','mywebui','namespaceFiles','removeGlobalObject','getRootNode','_getRelativeSignalsPath','_gunzipBytes','getAllGlobalNames','globalPath','target','triangle','outerHTML','template','height','instance','gsap','path','100%','emit','size','globalStylesheet','string','MotionPathPlugin','readFile','✅\x20[Visibility]\x20Datapoint\x20condition\x20met\x20→\x20Action:','config','getOwnPropertyDescriptor','innerHTML','disconnect','click','controls','text.url','paused','flex','removeImage','createContextualFragment','properties','getUserGroups','707775Nchbci','globalScript','\x20H\x20','_propertiesDictionary','thumbnails/','webui-tab-active','<div></div>','createElement','image','type','🔐\x20[Visibility]\x20Final\x20user\x20object:','val','iobrokerPort','values','3dscreens/','getPrototypeOf','querySelector','getGlobalObjectNames','connectionState','additionalFilesChanged','error\x20deleting\x20project\x20folder','getHistoricData','User','define','[data-visibility-groups]','appBar','addedNodes','trigger','repeat','transformOriginZ','custom\x20control\x20connectedCallback\x20error','/data/','camelToDashCase','webui-','disable','namespaceGlobal','iobrokerHost','length','Administrator','ownerSVGElement','dispatchEvent','_getObjectFromFile','applyGroupVisibility','hasAttribute','power2.out','circle','scriptSystem','createElementNS','IobrokerWebuiCustomControl','padding','create','👥\x20[Visibility]\x20User\x20groups\x20loaded:','value_bind','object','fromTo','skewY','globalConfig','100px','waitForReady','default','role','querySelectorAll','state','translations.json','vertical','getElementById','observe','replace','setLanguage','common','element','languageChanged','mouseenter','setItem','slots','visible','tab-labels','_getConfig','keys','visibilityRedirectScreen','head','play','createRange','drop-shadow(0\x200\x20','__readyResolve','configPath','writable','webui-current-project','scale','value','createProject','subscribeState','unshift','has','66122HWHVYP','_socket','linear','558oQMuiY','getGlobalSubFolders','connection','handleCommand','get3DScreen','width','date','fontDeclarations','_readyPromises','setAttribute','renameFile','configChanged','settings','8405361JyQCal','timeline','ease','saveTranslations','signal','flexDirection','gapLen','_broadcastChannel','filter','184JuCSue','32363390tsSYYT','removeObject','gridTemplateColumns','init','.projects','set','ready','bindingsHelper','data','_play','href','/data/config.json','getObjectNames','\x20A\x20','opacity','createGlobalFolder','889656ooFinu','event','strokeDasharray','disconnectedCallback','valueChangedCallbacks','relative','data-effects','toLowerCase','stroke','images/','opacityFrom','Error\x20removing\x20thumbnail:','getBoundingClientRect','_scheduleGlobalAggregate','📊\x20[Visibility]\x20Datapoint\x20condition\x20check:','appShell','display','direction','effect','all','_bindingsRefresh','refreshView','sendTo','gsap.min.js','shadowRoot','getItem','file','map','cleanup',',0\x20L0,','add','rect','objectId','host','getObjectViewSystem','#0066ff','[data-effects]','replaceAll','name','fillColorFrom','3dcontrols/','justifyContent','line','not_equal','parse','tabLabels','conditionValue_bind','imagesChanged','pointerEvents','_writeControlsAggregate','removeEventListener','getCustomControl','join','slideInLeft','readDir','resolve','polyline','ioBroker\x20handler\x20ready.','visibilityEnabled','catch','_parseAttributesToProperties','Administrator\x20group','yoyo','registerPlugin','.data','slideInTop','trim','tab-position','applyVisibility','count','clear','getAttribute','getWriter','118445lZtwIf','control','constructor','from','killTweensOf','renameObject','nodeType','fillColorTo','language','shake','translations','\x20V\x20','power1.inOut','checkVisibility','componentReady','applyAllBindings','setCurrentProject','_saveObjectToFile','classList','number','createObjectURL','3dscreen','images','remove','system.group.香','project','test','translationsChanged','layout','pause','rows','uiRunScript','_bindingsParse','delegate','destroy','objectsChanged','tabs','grid','reverse','blur(0px)','hover','administrator','alignItems','__resolved','getReader','appendChild','groups','\x200\x201,1\x20','dashLen','gap','getObjectView','deleteFile','uiRefresh','globalScriptInstance','adoptedStyleSheets','equal','writeFile64','unsubscribeObject','closest','fill','data-visibility-groups','getSubFolders','webui-split-container','forEach','pulseRing','entries','color','_saveBinaryToFile','Error\x20reading\x203D\x20Control','skewX','native','[data-animation]','uiSetLanguage','3dcontrol','local_','setState','none','⚠️\x20[Visibility]\x20Failed\x20to\x20get\x20current\x20user:','repeat\x20binding\x20self-apply\x20error','navigation','px\x20','innerSubs','row','valueTo','stringify','__layout-generated','CompressionStream','loadAllGlobalControls','cloneNode','block','sin','duration','translateY','enabled','valueFrom','MorphSVGPlugin.min.js','dynamic-property-defs','objectChanged','gridTemplateRows','51itnfbq','spin','_subs','rotation','toString','prototype','buffer','backgroundColor','local_language','animate','desc','_setupDynamicProperties','user','style','\x20loaded','fontDeclarationsStylesheet','condition_bind','system.group.','datetime','11YnGyAg','tagName','getObject','tween','getAllNames','searchParams','⚠️\x20[Visibility]\x20User\x20has\x20no\x20groups,\x20adding\x20administrator\x20as\x20default','deleteFolder','startAt','\x20aggregate','body','conditionValue','custom','/tmp.fld','pathId','.control.project','-changed','location','blurAmount','getAdditionalFileNames','bindToSize','icons-','background','customControl\x20','useGlobalStyle','indexOf','points','nowrap','condition','top','globalStyle','startSocket','unobserve','userName','html','oid_bind','glowSize','slideInBottom','flatMap','visibility','substring','internal','.3dcontrol','morphSVG','getHistoryEx','http://www.w3.org/2000/svg','multiViews','saveObject','blur','delay','oid','motionPath','_controlNames','removeAdditionalFile','exists','unsubscribeState','shape','getLocalStateNames','scanAndApply','.control.command','widgetUrlBase','connectionInfo','loadTranslations','includes','renameGlobalObject','addEventListener','projects.json','svgAttr','true','s-all.dat','namespace'];a=function(){return dh;};return a();}var vt=au(0x31d),v=Symbol('webuiCustomControlSymbol'),L=class extends c{static [au(0x22e)]=d`:host { overflow: hidden }`;#e;#t;#n=[];#r;#i;#a;#o;#s=new Map();constructor(){const d1=au;super(),this['_bindingsParse'](null,!0x0),this['constructor'][v]['control']['settings'][d1(0x24c)]&&m['globalStylesheet']instanceof CSSStyleSheet&&(this[d1(0x39c)][d1(0x1f4)]=[m[d1(0x2ea)],...this['shadowRoot'][d1(0x1f4)]]),this['constructor'][v]['control']['settings'][d1(0x248)]&&(this.#r=new ResizeObserver(k=>{const d2=d1;let l=this.#i['valueChangedCallbacks']['get'](d2(0x362));if(l){for(let n of l)n();}if(l=this.#i[d2(0x388)][d2(0x2b2)]('height'),l){for(let o of l)o();}}));}async['connectedCallback'](){const d4=au;this['componentReady']=new Promise(l=>{const d3=b;this[d3(0x350)]=l;}),this[d4(0x1cc)][d4(0x1e9)]=!0x1,this[d4(0x1b1)]();try{st(this,this[d4(0x1c0)][v]['control'][d4(0x369)]?.[d4(0x1da)]);}catch{}this['_setupDynamicProperties'](),this[d4(0x398)](),this.#i={'valueProvider':l=>{const d5=d4;switch(l){case d5(0x362):return this['getBoundingClientRect']()[d5(0x362)];case'height':return this[d5(0x390)]()[d5(0x2e3)];}return null;},'valueChangedCallbacks':new Map()},this.#s=new Map(),this.#o=new MutationObserver(p=>{const d6=d4;for(let u of p){for(let w of u['removedNodes']){if(w['nodeType']!==0x1)continue;let x=this.#s[d6(0x2b2)](w);if(x){for(let y of x)y();this.#s[d6(0x2a9)](w);}}for(let A of u[d6(0x316)]){if(A[d6(0x1c4)]!==0x1)continue;let F=this['_getRelativeSignalsPath'](),P=[];try{let T=window[d6(0x393)]['bindingsHelper']['getBindings'](A);for(let Y of T)P[d6(0x2a5)](window[d6(0x393)][d6(0x37b)][d6(0x29f)](A,Y,F,this,this.#i));}catch(a0){console['warn'](d6(0x20c),a0);}let S=window['appShell'][d6(0x37b)][d6(0x1cd)](A,F,this,this.#i);P[d6(0x2a5)](...S),this.#s[d6(0x379)](A,P),z(A)['catch'](()=>{}),J(A)[d6(0x1b0)](()=>{});}}}),this.#o[d4(0x33e)](this['shadowRoot'],{'childList':!0x0,'subtree':!0x0}),this.#t=window['appShell']['bindingsHelper']['applyAllBindings'](this[d4(0x39c)],this[d4(0x2db)](),this,this.#i),this.#e=await window[d4(0x393)][d4(0x32a)]['assignAllScripts'](d4(0x24b)+this['constructor'][v]['name'],this[d4(0x1c0)][v][d4(0x1bf)]['script'],this['shadowRoot'],this,m);try{this.#e?.['connectedCallback']?.(this,this[d4(0x39c)]);}catch(l){console[d4(0x2a6)](d4(0x31a),l);}this[d4(0x1cc)][d4(0x1e9)]=!0x0;try{this['__readyResolve']?.(this);}catch{}for(let n of this.#n)this['addEventListener'](n[0x0],n[0x1]);this.#r?.['observe'](this),this.#a=m[d4(0x1e1)]['on'](o=>{const d7=d4;let p=this['constructor'][v][d7(0x19b)];o[d7(0x305)]=='control'&&o[d7(0x19b)]===p&&(this[d7(0x387)](),this[d7(0x2ad)]=this[d7(0x1c0)][d7(0x2e2)]['content'][d7(0x216)](!0x0),this[d7(0x39c)][d7(0x2f1)]='',this[d7(0x39c)]['appendChild'](this['_rootDocumentFragment']),this[d7(0x1de)](null,!0x0),this['connectedCallback']());});let k=this[d4(0x1c0)][v][d4(0x1bf)]['settings'];if(k?.[d4(0x1af)]){let o={'enabled':k['visibilityEnabled'],'groups':k['visibilityGroups']||[],'action':k['visibilityAction']||d4(0x282),'redirectScreen':k[d4(0x34b)]||''};await E[d4(0x1b9)](this,o);}await E['scanAndApply'](this[d4(0x39c)]),z(this['shadowRoot'])[d4(0x1b0)](()=>{}),J(this[d4(0x39c)])[d4(0x1b0)](()=>{});}['disconnectedCallback'](){const d8=au;for(let k of this.#n)this[d8(0x1a7)](k[0x0],k[0x1]);this.#e?.[d8(0x387)]?.(this,this['shadowRoot']);for(let l of this.#t)l();this.#t=null,this.#o?.[d8(0x2f2)](),this.#o=null;for(let n of this.#s['values']())for(let o of n)o();this.#s[d8(0x1bb)](),this.#r?.[d8(0x254)](this),this.#a?.['dispose'](),E['removeVisibility'](this),this[d8(0x39c)][d8(0x339)]('[data-visibility-controlled=\x22true\x22]')[d8(0x1fd)](p=>E['removeVisibility'](p)),tt(this[d8(0x39c)]),et(this[d8(0x39c)]);}[au(0x22c)](){const d9=au;G(this),it(this[d9(0x39c)]);}['_assignEvent'](k,l){const da=au;let n=[k,l];return this.#n[da(0x2a5)](n),this['addEventListener'](k,l),{'remove':()=>{const db=da;let p=this.#n[db(0x24d)](n);this.#n['splice'](p,0x1),this['removeEventListener'](k,l);}};}[au(0x2db)](){const dc=au;return this['getRootNode']()?.[dc(0x196)]?.[dc(0x2db)]?.()??'';}};window['BaseCustomControl']=L;function St(k){const dd=au;k[0x0]=='/'&&(k=k['substring'](0x1));let l=i['camelToDashCase'](k[dd(0x19a)]('/','-')['replaceAll']('\x20','-')['replaceAll']('--','-'));return l[0x0]==='-'&&(l=l['substring'](0x1)),vt+l;}function K(k,l){const de=au;let p=St(k),u=document[de(0x303)](de(0x2e2));u['innerHTML']=l[de(0x256)];let w=e(l[de(0x22e)]),x={};for(let y in l[de(0x2fa)]){let A=l[de(0x2fa)][y];A[de(0x25d)]||(A[de(0x305)]==de(0x2eb)||A['type']==de(0x200)?x[y]=String:A[de(0x305)]==de(0x298)?x[y]=Boolean:A[de(0x305)]=='number'?x[y]=Number:A[de(0x305)]==de(0x363)?x[y]=Date:A['type']=='enum'||A['type']==de(0x36e)||A[de(0x305)]=='screen'?x[y]=String:(A[de(0x305)]==de(0x331),x[y]=Object));}if(window['IobrokerWebuiCustomControl'+k]){window['IobrokerWebuiCustomControl'+k][de(0x2e2)]=u,window[de(0x32c)+k][de(0x22e)]=w,window['IobrokerWebuiCustomControl'+k]['properties']=x,window[de(0x32c)+k]['_propertiesDictionary']=null;let F=window[de(0x32c)+k][v];F[de(0x1bf)]=l;}else{window[de(0x32c)+k]=function(){const df=de;let S=Reflect['construct'](L,[],window[df(0x32c)+k]),T=window[df(0x32c)+k][v][df(0x1bf)];for(let Y in T[df(0x2fa)]){let a0;Y in S&&(a0=S[Y],delete S[Y]),Object['defineProperty'](S,Y,{'get'(){return this['_'+Y];},'set'(a1){const dg=df;this['_'+Y]!==a1&&(!Number['isNaN'](this['_'+Y])||!Number['isNaN'](a1))&&(this['_'+Y]=a1,this[dg(0x398)](Y),S['dispatchEvent'](new CustomEvent(i[dg(0x31c)](Y)+dg(0x244),{'detail':{'newValue':a1}})));},'enumerable':!0x0,'configurable':!0x0}),a0!==void 0x0?S[Y]=a0:T['properties'][Y][df(0x337)]!=null&&(S['_'+Y]=T['properties'][Y]['default']);}return S;};let P={'control':l,'name':k};window['IobrokerWebuiCustomControl'+k][v]=P,window['IobrokerWebuiCustomControl'+k][de(0x2e2)]=u,window['IobrokerWebuiCustomControl'+k]['style']=w,window[de(0x32c)+k]['properties']=x,window[de(0x32c)+k][de(0x2ff)]=null,window[de(0x32c)+k][de(0x226)]=Object[de(0x32e)](L[de(0x226)],{'constructor':{'value':window['IobrokerWebuiCustomControl'+k]}}),customElements[de(0x2b2)](p)||customElements[de(0x313)](p,window[de(0x32c)+k]);}}export{U 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,Rt as j,vt as k,v as l,L as m,St as n,K as o,V as p,m as q};
|
|
1
|
+
const au=b;(function(k,l){const as=b,n=k();while(!![]){try{const o=parseInt(as(0x257))/0x1*(-parseInt(as(0x248))/0x2)+parseInt(as(0x2c5))/0x3+parseInt(as(0x27b))/0x4*(-parseInt(as(0x2b8))/0x5)+parseInt(as(0x23a))/0x6*(parseInt(as(0x24d))/0x7)+-parseInt(as(0x372))/0x8*(parseInt(as(0x277))/0x9)+-parseInt(as(0x291))/0xa*(-parseInt(as(0x183))/0xb)+parseInt(as(0x20b))/0xc*(parseInt(as(0x219))/0xd);if(o===l)break;else n['push'](n['shift']());}catch(p){n['push'](n['shift']());}}}(a,0x36ed9));import{BaseCustomWebComponentConstructorAppend as c,css as d,cssFromString as e}from'@gokturk413/base-custom-webcomponent';import{Connection as f}from'@iobroker/socket-client';import{TypedEvent as g,cssFromString as h}from'@gokturk413/base-custom-webcomponent';function X(k){return new Promise(l=>setTimeout(l,k));}var V=class s{static [au(0x1ea)]=new s();[au(0x332)];[au(0x296)];['adapterName']=au(0x2e5);[au(0x33d)]=au(0x236);[au(0x262)]=this['namespace']+'.projects';['namespaceProjects']=this['namespace']+'.projects';[au(0x2c8)]=this['namespace']+'.data';[au(0x1d2)]=au(0x2a0);#e='default';get[au(0x30b)](){return this.#e;}get[au(0x2fd)](){return this.#e+'/data/';}get['widgetUrlBase'](){const av=au;return this[av(0x190)]+'/'+this.#e+av(0x1f0);}get[au(0x218)](){const aw=au;return'/'+this['namespaceFiles']+'/'+this['configPath']+aw(0x329);}get[au(0x1a5)](){const ax=au;return'/'+this['namespaceFiles']+'/'+this['configPath']+ax(0x1d6);}[au(0x1b5)];[au(0x175)];['fontDeclarationsStylesheet'];['globalScriptInstance'];['objectsChanged']=new g();['imagesChanged']=new g();[au(0x200)]=new g();['configChanged']=new g();[au(0x2a5)]=new g();['refreshView']=new g();[au(0x1ce)]=[];['language']='en';[au(0x230)]=new g();[au(0x367)]={};[au(0x1eb)]=new g();#t=new Map();['_controlNames']=null;[au(0x25e)];[au(0x28c)]=null;constructor(){const ay=au;this['clientId']=Date[ay(0x17e)]()[ay(0x173)](0x10),this.#t[ay(0x24e)](ay(0x301),new Map()),this.#t[ay(0x24e)](ay(0x289),new Map()),this.#t[ay(0x24e)]('3dscreen',new Map()),this.#t[ay(0x24e)]('3dcontrol',new Map());try{let k=new URLSearchParams(window['location'][ay(0x286)])[ay(0x326)](ay(0x1bd));k?this.#e=this[ay(0x1ef)](k):window[ay(0x2aa)]['pathname']['endsWith'](ay(0x358))||(this.#e=this['_cleanProjectName'](localStorage['getItem'](ay(0x1ff))??'default'));}catch(l){console['warn']('could\x20not\x20determine\x20current\x20project',l);}}[au(0x1ef)](k){const az=au;return k=(k??'')['toString']()['trim']()['toLowerCase']()[az(0x26e)]('\x20','-'),/^[a-z0-9_-]+$/[az(0x359)](k)?k:'default';}async['getProjects'](){const aA=au;this['_readyPromises']&&await this['waitForReady']();try{let k=await this[aA(0x351)](aA(0x2e7));if(Array['isArray'](k?.['projects'])){let l=k['projects'][aA(0x1b4)](n=>/^[a-z0-9_-]+$/['test'](n));return l[aA(0x341)]('default')||l['unshift'](aA(0x1cc)),l;}}catch{}return['default'];}async[au(0x22f)](k){const aB=au;if(k=(k??'')[aB(0x173)]()['trim']()[aB(0x29d)]()[aB(0x26e)]('\x20','-'),!/^[a-z0-9_-]+$/[aB(0x359)](k))throw new Error(aB(0x16b)+k);let l=await this[aB(0x24b)]();if(l['includes'](k))throw new Error(aB(0x2a9)+k);l['push'](k),await this['_saveObjectToFile']({'projects':l['filter'](n=>n!=='default')},'projects.json'),await this['_saveObjectToFile']({'globalStyle':null,'globalScript':null,'globalConfig':null,'fontDeclarations':null},k+aB(0x2be)),await this['_saveObjectToFile']({},k+'/widgets/package.json');try{await this['connection'][aB(0x19f)](this[aB(0x33d)]+aB(0x2c6),{'val':k}),await this['connection'][aB(0x19f)](this['namespace']+'.control.command',{'val':aB(0x177)});}catch{}return k;}async['removeProject'](k){const aC=au;if(k===aC(0x1cc))throw new Error(aC(0x34e));let l=(await this['getProjects']())['filter'](n=>n!==k&&n!=='default');await this['_saveObjectToFile']({'projects':l},aC(0x2e7));try{await this['connection'][aC(0x23c)](this['namespaceProjects'],'/'+k);}catch(n){console[aC(0x1a0)]('error\x20deleting\x20project\x20folder',n);}this.#e===k&&this['setCurrentProject'](aC(0x1cc));}['setCurrentProject'](k){const aD=au;localStorage[aD(0x246)](aD(0x1ff),this['_cleanProjectName'](k));let l=new URL(window[aD(0x2aa)]['href']);l[aD(0x307)][aD(0x18f)]('project'),l[aD(0x173)]()===window['location'][aD(0x22d)]?window['location'][aD(0x2f2)]():window[aD(0x2aa)][aD(0x22d)]=l['toString']();}[au(0x36f)](k,l,n){return(l??'')+k;}['waitForReady'](){const aE=au;return this[aE(0x1ce)]?new Promise(k=>{const aF=aE;this[aF(0x1ce)][aF(0x235)](k);}):Promise['resolve']();}async[au(0x2b5)](){const aG=au;for(;!window['io'];)await X(0x5);let k=document[aG(0x29c)](aG(0x22e));k&&(k['innerHTML']='connecting...'),this[aG(0x296)]=new f({'protocol':'ws','host':window[aG(0x2e1)],'port':window['iobrokerPort'],'admin5only':!0x1,'autoSubscribes':[],'onError':y=>{const aH=aG;let A=document[aH(0x29c)](aH(0x22e));A&&(A['innerHTML']=y);let F=document['getElementById']('connectionState');F&&(F[aH(0x265)]['background']='red');},'onReady':()=>{const aI=aG;let y=document[aI(0x29c)](aI(0x22e));y&&(y[aI(0x309)]=aI(0x35b));let A=document['getElementById'](aI(0x369));A&&(A[aI(0x265)]['background']='lightgreen');}}),await this['connection']['startSocket'](),await this[aG(0x296)][aG(0x279)]();try{this[aG(0x28c)]=await this['connection'][aG(0x2ad)]();}catch{}let l=await this['_getConfig']();this[aG(0x1b5)]=l??{'globalStyle':null,'globalScript':null,'globalConfig':null,'fontDeclarations':null};try{let y=await this[aG(0x296)][aG(0x180)](aG(0x35a));this['grafanaLangSyncEnabled']=!!(y?.[aG(0x30e)]?.['grafanaEnabled']&&y?.[aG(0x30e)]?.[aG(0x2c7)]);}catch{this['grafanaLangSyncEnabled']=!0x1;}if(this['config'][aG(0x2e8)]==null&&(this['config']['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(0x1b5)][aG(0x2e8)][aG(0x323)]){let A=document[aG(0x172)]()['createContextualFragment'](this['config'][aG(0x2e8)][aG(0x323)]);document[aG(0x16e)][aG(0x269)](A);}if(this[aG(0x1b5)][aG(0x1ca)]==null&&(this[aG(0x1b5)][aG(0x1ca)]={'orientation':aG(0x2fc),'bgColor':'','bgColorSelected':'','textColorSelected':'','menuHeaderTextColor':'','textColor':'','hideMenu':!0x1,'menuHeaderText':'','menuWidth':'','hideAfterSelection':!0x1,'doNotHideCompletely':!0x1,'showButtonColor':'','showButtonBg':'','theme':aG(0x1cc),'slots':{'top':'','bottom':''}}),this['config']['navigation'][aG(0x324)]==null&&(this[aG(0x1b5)]['navigation'][aG(0x324)]='default'),this['config']['navigation'][aG(0x325)]==null&&(this[aG(0x1b5)][aG(0x1ca)]['slots']={'top':'','bottom':''}),this['config']['appBar']==null&&(this[aG(0x1b5)][aG(0x2f4)]={'show':!0x1,'bgColor':'','caption':'','icon':'','slots':{'left':'','center':'','right':''}}),this[aG(0x1b5)][aG(0x2f4)][aG(0x325)]==null&&(this['config'][aG(0x2f4)]['slots']={'left':'','center':'','right':''}),Array[aG(0x365)](this[aG(0x1b5)]['multiViews'])||(this['config'][aG(0x1df)]=[]),this['config']['globalStyle']&&(this[aG(0x175)]=h(this[aG(0x1b5)]['globalStyle'])),this[aG(0x1b5)]['fontDeclarations']&&(this['fontDeclarationsStylesheet']=h(this[aG(0x1b5)]['fontDeclarations']),document[aG(0x27d)]=[this[aG(0x30a)]]),this[aG(0x1b5)][aG(0x1fd)]){let F=URL[aG(0x2ce)](new Blob([this[aG(0x1b5)]['globalScript']],{'type':'application/javascript'}));this[aG(0x17f)]=await importShim(F),this['globalScriptInstance'][aG(0x2b5)]&&this['globalScriptInstance'][aG(0x2b5)]();}let p=localStorage['getItem'](aG(0x233));if(p)this['language']=p;else try{let P=await this['connection']['getSystemConfig']();P?.['common']?.['language']&&(this['language']=P[aG(0x21a)]['language']);}catch{}this[aG(0x19f)]('local_language',{'val':this['language']}),this[aG(0x26b)](aG(0x1c3),(S,T)=>{const aJ=aG;T?.[aJ(0x310)]&&T[aJ(0x310)]!==this['language']&&this['setLanguage'](T['val']);}),await this['loadTranslations'](),window['t']=S=>this['t'](S);for(let S of this[aG(0x1ce)])S();this['_readyPromises']=null,console['log'](aG(0x1c1));let u,w;await this[aG(0x296)][aG(0x26b)](this[aG(0x33d)]+aG(0x254),(T,Y)=>{u=Y?.['val'];}),await this['connection']['subscribeState'](this['namespace']+'.control.clientIds',(T,Y)=>{const aK=aG;w=Y?.[aK(0x310)];});let x=await this['connection']['getState'](this['namespace']+'.control.command');this['connection'][aG(0x26b)](this[aG(0x33d)]+aG(0x319),(T,Y)=>{const aL=aG;Y?.['ack']&&Y?.['ts']!=x?.['ts']&&this[aL(0x2b4)](Y?.['val'],u,w);}),this['sendCommand'](aG(0x25a),''),this['_broadcastChannel']=new BroadcastChannel('mywebui-commands'),this[aG(0x349)][aG(0x32e)]=T=>{const aM=aG;let {command:Y,data:a0,clientId:a1}=T[aM(0x2c9)]??{};Y&&this[aM(0x2b4)](Y,a0,a1);};}async[au(0x209)](){const aN=au;let k=await this[aN(0x296)]['getObjectViewSystem']('adapter',''),l=[];for(let n in k)(k[n]?.[aN(0x21a)]?.['type']==aN(0x215)||k[n]?.['common']['name'][aN(0x2b1)]('icons-'))&&l['push'](k[n]?.[aN(0x21a)][aN(0x1b2)]);return l;}async['getAllNames'](k,l){const aO=au;this['_readyPromises']&&await this['waitForReady']();let n=[];n['push'](this[aO(0x344)](k,l)['then'](u=>u['map'](w=>(l?l+'/':'/')['substring'](0x1)+w)));let p=await this[aO(0x353)](k,l);for(let u of p)n[aO(0x235)](this[aO(0x2fa)](k,(l??'')+'/'+u));return(await Promise[aO(0x1f2)](n))[aO(0x196)](w=>w);}async['getSubFolders'](k,l){const aP=au;this[aP(0x1ce)]&&await this[aP(0x357)]();try{return(await this[aP(0x296)]['readDir'](this['namespaceFiles'],this['configPath']+k+'s'+(l??'')))['filter'](o=>o[aP(0x364)])['map'](o=>o['file']);}catch(n){console[aP(0x1a0)](aP(0x275),n);}return[];}async[au(0x344)](k,l){const aQ=au;this[aQ(0x1ce)]&&await this[aQ(0x357)]();try{return(await this['connection'][aQ(0x1bb)](this['namespaceFiles'],this['configPath']+k+'s'+(l??'')))['filter'](o=>o[aQ(0x29f)][aQ(0x1ab)]('.'+k))[aQ(0x244)](o=>o['file']['substring'](0x0,o[aQ(0x29f)][aQ(0x362)]-k[aQ(0x362)]-0x1));}catch(n){console['warn'](aQ(0x17d)+k+'\x20loaded',n);}return[];}async[au(0x1e0)](k,l){const aR=au;return k==aR(0x301)?this['getScreen'](l):k==aR(0x289)?this[aR(0x293)](l):k=='3dscreen'?this[aR(0x197)](l):k==aR(0x36a)?this[aR(0x302)](l):null;}async[au(0x1e5)](k){const aS=au;k[0x0]=='/'&&(k=k['substring'](0x1));let l=this.#t['get'](aS(0x301))['get'](k);if(!l){this['_readyPromises']&&await this['waitForReady']();try{l=await this[aS(0x351)](this['configPath']+aS(0x18b)+k+aS(0x21c));}catch(n){console[aS(0x2ab)]('Error\x20reading\x20Screen',l,n);}this.#t[aS(0x326)](aS(0x301))['set'](k,l);}return l;}async['get3DScreen'](k){const aT=au;k[0x0]=='/'&&(k=k[aT(0x318)](0x1));let l=this.#t['get'](aT(0x28a))[aT(0x326)](k);if(!l){this[aT(0x1ce)]&&await this[aT(0x357)]();try{l=await this['_getObjectFromFile'](this['configPath']+'3dscreens/'+k+aT(0x199));}catch(n){console[aT(0x2ab)](aT(0x188),l,n);}this.#t['get']('3dscreen')['set'](k,l);}return l;}async[au(0x302)](k){const aU=au;k[0x0]=='/'&&(k=k['substring'](0x1));let l=this.#t[aU(0x326)](aU(0x36a))['get'](k);if(!l){this[aU(0x1ce)]&&await this['waitForReady']();try{l=await this['_getObjectFromFile'](this[aU(0x2fd)]+'3dcontrols/'+k+'.3dcontrol');}catch(n){console['error']('Error\x20reading\x203D\x20Control',l,n);}this.#t['get']('3dcontrol')[aU(0x24e)](k,l);}return l;}async[au(0x18e)](k,l,n){const aV=au;await this[aV(0x356)](n,'/'+this['configPath']+k+'s/'+l+'.'+k),this.#t[aV(0x1e9)](k)&&this.#t['get'](k)[aV(0x24e)](l,n),k=='control'&&(this['_controlNames']=null,this['_scheduleControlsAggregate']()),this[aV(0x226)](aV(0x285),JSON['stringify']({'type':k,'name':l}),'*');}async[au(0x19a)](k,l){const aW=au;await this[aW(0x296)][aW(0x193)](this['namespaceFiles'],'/'+this['configPath']+k+'s/'+l+'.'+k),this.#t[aW(0x1e9)](k)&&this.#t['get'](k)['delete'](l),k==aW(0x289)&&(this['_controlNames']=null,this[aW(0x1bc)]()),this[aW(0x1fc)]['emit']({'type':k,'name':l});}async['renameObject'](k,l,n){const aX=au;l[0x0]=='/'&&(l=l['substring'](0x1)),n[0x0]=='/'&&(n=n[aX(0x318)](0x1)),await this['connection']['renameFile'](this[aX(0x262)],'/'+this['configPath']+k+'s/'+l+'.'+k,'/'+this['configPath']+k+'s/'+n+'.'+k),this.#t[aX(0x1e9)](k)&&(this.#t[aX(0x326)](k)[aX(0x18f)](l),this.#t['get'](k)[aX(0x18f)](n)),k=='control'&&(this['_controlNames']=null,this['_scheduleControlsAggregate']()),this[aX(0x1e0)](k,n),this['objectsChanged']['emit']({'type':k,'name':n});}#n;['_scheduleControlsAggregate'](){clearTimeout(this.#n),this.#n=setTimeout(()=>this['_writeControlsAggregate'](),0x2bc);}async[au(0x2d2)](){const aY=au;try{let k=await this['getAllNames'](aY(0x289)),l={};await Promise[aY(0x1f2)](k[aY(0x244)](async n=>{const aZ=aY;let p=n['replace'](/^\//,'');l[p]=await this[aZ(0x293)](p);})),await this['_saveObjectToFile']({'version':0x1,'controls':l},this[aY(0x2fd)]+aY(0x1e1)),console['log'](aY(0x268)+k[aY(0x362)]+aY(0x31e));}catch(n){console[aY(0x1a0)]('error\x20writing\x20controls\x20aggregate',n);}}async['loadAllControlsFast'](){const b0=au;this['_readyPromises']&&await this[b0(0x357)]();try{let k=await this['_getObjectFromFile'](this['configPath']+b0(0x1e1));if(k?.['controls']){for(let l in k['controls'])this.#t[b0(0x326)](b0(0x289))[b0(0x24e)](l,k[b0(0x2d7)][l]);return this[b0(0x2f1)]=Object['keys'](k['controls']),k[b0(0x2d7)];}}catch{}return null;}async[au(0x2d3)](k,l){const b1=au;try{return(await this[b1(0x296)]['readDir'](this['namespaceGlobal'],this['globalPath']+k+'s'+(l??'')))[b1(0x1b4)](n=>n[b1(0x29f)]['endsWith']('.'+k))['map'](n=>n[b1(0x29f)]['substring'](0x0,n['file']['length']-k['length']-0x1));}catch{return[];}}async['getGlobalSubFolders'](k,l){const b2=au;try{return(await this[b2(0x296)]['readDir'](this[b2(0x2c8)],this['globalPath']+k+'s'+(l??'')))[b2(0x1b4)](n=>n['isDir'])[b2(0x244)](n=>n[b2(0x29f)]);}catch{return[];}}async[au(0x181)](k,l){const b3=au;let n=[];n[b3(0x235)](this['getGlobalObjectNames'](k,l)[b3(0x21d)](p=>p[b3(0x244)](r=>(l?l+'/':'/')['substring'](0x1)+r)));for(let p of await this['getGlobalSubFolders'](k,l))n['push'](this[b3(0x181)](k,(l??'')+'/'+p));return(await Promise['all'](n))[b3(0x196)](r=>r);}async[au(0x304)](k,l){const b4=au;l[0x0]==='/'&&(l=l['substring'](0x1));let p='g'+k;this.#t['has'](p)||this.#t[b4(0x24e)](p,new Map());let r=this.#t['get'](p)[b4(0x326)](l);if(!r){try{r=await this[b4(0x351)](this['globalPath']+k+'s/'+l+'.'+k,this[b4(0x2c8)]);}catch(u){console['error'](b4(0x207)+k,l,u);}this.#t[b4(0x326)](p)['set'](l,r);}return r;}async['saveGlobalObject'](k,l,n){const b5=au;await this[b5(0x356)](n,'/'+this['globalPath']+k+'s/'+l+'.'+k,this['namespaceGlobal']);let p='g'+k;this.#t['has'](p)&&this.#t['get'](p)[b5(0x24e)](l,n),this[b5(0x33f)](k),this['objectsChanged'][b5(0x170)]({'type':k,'name':l,'global':!0x0});}async[au(0x213)](k,l){const b6=au;l[0x0]==='/'&&(l=l['substring'](0x1)),await this[b6(0x296)][b6(0x193)](this['namespaceGlobal'],'/'+this[b6(0x1d2)]+k+'s/'+l+'.'+k);let n='g'+k;this.#t['has'](n)&&this.#t[b6(0x326)](n)['delete'](l),this['_scheduleGlobalAggregate'](k),this[b6(0x1fc)][b6(0x170)]({'type':k,'name':null,'global':!0x0});}async['renameGlobalObject'](k,l,n){const b7=au;l[0x0]==='/'&&(l=l[b7(0x318)](0x1)),n[0x0]==='/'&&(n=n[b7(0x318)](0x1)),await this[b7(0x296)][b7(0x343)](this[b7(0x2c8)],'/'+this[b7(0x1d2)]+k+'s/'+l+'.'+k,'/'+this[b7(0x1d2)]+k+'s/'+n+'.'+k);let p='g'+k;this.#t[b7(0x1e9)](p)&&(this.#t['get'](p)[b7(0x18f)](l),this.#t['get'](p)['delete'](n)),this[b7(0x33f)](k),this[b7(0x1fc)][b7(0x170)]({'type':k,'name':n,'global':!0x0});}#r={};['_scheduleGlobalAggregate'](k){const b8=au;clearTimeout(this.#r[k]),this.#r[k]=setTimeout(()=>this[b8(0x1e6)](k),0x2bc);}async[au(0x1e6)](k){const ba=au;try{let l=await this['getAllGlobalNames'](k);if(!l['length'])return;let n={};await Promise['all'](l['map'](async p=>{const b9=b;let r=p[b9(0x1a2)](/^\//,'');n[r]=await this[b9(0x304)](k,r);})),await this['_saveObjectToFile']({'version':0x1,'controls':n},this[ba(0x1d2)]+k+ba(0x1f3),this[ba(0x2c8)]);}catch(o){console[ba(0x1a0)](ba(0x239)+k+ba(0x313),o);}}async['loadAllGlobalControls'](k){const bb=au;this[bb(0x1ce)]&&await this[bb(0x357)]();try{let n=await this['_getObjectFromFile'](this[bb(0x1d2)]+k+bb(0x1f3),this['namespaceGlobal']);if(n?.[bb(0x2d7)]&&Object['keys'](n['controls'])[bb(0x362)])return n[bb(0x2d7)];}catch{}let l={};try{let o=await this[bb(0x181)](k);await Promise['all'](o[bb(0x244)](async p=>{const bc=bb;let r=p[bc(0x1a2)](/^\//,'');l[r]=await this[bc(0x304)](k,r);})),Object['keys'](l)[bb(0x362)]&&this['_scheduleGlobalAggregate'](k);}catch{}return l;}async[au(0x251)](k,l){const bd=au;await this[bd(0x356)]({},'/'+this['configPath']+k+'s/'+l+bd(0x1d4)),this['objectsChanged']['emit']({'type':k,'name':null});}async['removeFolder'](k,l){const be=au;await this[be(0x296)][be(0x23c)](this['namespaceFiles'],'/'+this[be(0x2fd)]+k+'s/'+l),this['objectsChanged']['emit']({'type':k,'name':null});}async['createGlobalFolder'](k,l){const bf=au;await this[bf(0x356)]({},'/'+this[bf(0x1d2)]+k+'s/'+l+bf(0x1d4),this['namespaceGlobal']),this['objectsChanged']['emit']({'type':k,'name':null,'global':!0x0});}async[au(0x22a)](k,l){const bg=au;await this[bg(0x296)][bg(0x23c)](this['namespaceGlobal'],'/'+this[bg(0x1d2)]+k+'s/'+l),this['objectsChanged'][bg(0x170)]({'type':k,'name':null,'global':!0x0});}async['loadAllCustomControls'](){const bh=au;await m['waitForReady']();let k=await this['getCustomControlNames'](),l=[];for(let n of k)l['push'](this[bh(0x293)](n));await Promise['all'](l);}async[au(0x189)](){const bi=au;if(this[bi(0x2f1)])return this['_controlNames'];this['_readyPromises']&&await this['waitForReady']();try{let k=await this[bi(0x2fa)](bi(0x289));return this['_controlNames']=k,k;}catch(l){console['warn'](bi(0x178),l);}return[];}async[au(0x293)](k){const bj=au;k[0x0]=='/'&&(k=k['substring'](0x1));let l=this.#t[bj(0x326)](bj(0x289))['get'](k);if(!l){this['_readyPromises']&&await this['waitForReady']();try{if(l=await this['_getObjectFromFile'](this['configPath']+'controls/'+k+'.control'),l['properties']){let p=Object['keys'](l['properties']);if(p[bj(0x362)]&&typeof l[bj(0x2c3)][p[0x0]]=='string')for(let r in l[bj(0x2c3)]){let u=l[bj(0x2c3)][r];u['startsWith']('[')?l['properties'][r]={'type':bj(0x23f),'values':JSON[bj(0x23e)](u)}:l['properties'][r]={'type':u};}}}catch(w){console[bj(0x2ab)](bj(0x2fb),l,w);}this.#t['get']('control')['set'](k,l);}return l;}async['getImageNames'](){const bk=au;this['_readyPromises']&&await this[bk(0x357)]();try{return(await this['connection']['readDir'](this[bk(0x262)],this['configPath']+bk(0x2ee)))['map'](k=>k[bk(0x29f)]);}catch{}return[];}async['saveImage'](k,l){const bl=au;await this['_saveBinaryToFile'](l,'/'+this[bl(0x2fd)]+bl(0x329)+k),this['imagesChanged']['emit']();}async['getImage'](k){return await this['connection']['readFile'](this['namespaceFiles'],'/'+this['configPath']+'images/'+k,!0x1);}async['removeImage'](k){const bm=au;await this[bm(0x296)][bm(0x193)](this['namespaceFiles'],'/'+this[bm(0x2fd)]+'images/'+k),this['imagesChanged'][bm(0x170)]();}async['getAdditionalFileNames'](){const bn=au;this['_readyPromises']&&await this['waitForReady']();try{return(await this[bn(0x296)][bn(0x1bb)](this['namespaceFiles'],this[bn(0x2fd)]+bn(0x1b0)))[bn(0x244)](k=>k[bn(0x29f)]);}catch{}return[];}async[au(0x1c6)](k,l){const bo=au;await this['_saveBinaryToFile'](l,'/'+this['configPath']+bo(0x1d6)+k),this['additionalFilesChanged'][bo(0x170)]();}async['getAdditionalFile'](k){const bp=au;return await this[bp(0x296)]['readFile'](this[bp(0x262)],'/'+this[bp(0x2fd)]+'additionalfiles/'+k,!0x1);}async[au(0x2b0)](k){const bq=au;await this['connection'][bq(0x193)](this[bq(0x262)],'/'+this['configPath']+bq(0x1d6)+k),this['additionalFilesChanged']['emit']();}async[au(0x327)](k,l){const br=au;try{await this['_saveBinaryToFile'](l,'/'+this[br(0x2fd)]+br(0x373)+k+br(0x1a8));}catch(n){console['warn']('Error\x20saving\x20thumbnail:',n);}}async['getThumbnail'](k){const bs=au;try{return await this['connection'][bs(0x316)](this['namespaceFiles'],'/'+this['configPath']+'thumbnails/'+k+'.png',!0x1);}catch{return null;}}async[au(0x20a)](k){const bu=au;try{await this['connection'][bu(0x193)](this['namespaceFiles'],'/'+this[bu(0x2fd)]+'thumbnails/'+k+bu(0x1a8));}catch(l){console[bu(0x1a0)](bu(0x338),l);}}#i=new Map();#a=new Map();['getLocalStateNames'](){const bv=au;return Array['from'](this.#i[bv(0x206)]());}async['subscribeState'](k,l){const bw=au;if(k[bw(0x2b1)](bw(0x1fa))){let n=this.#i[bw(0x326)](k);n||(n=[],this.#i['set'](k,n)),n['push'](l);let p=this.#a['get'](k);p&&l(k,p);}else return this[bw(0x296)]['subscribeState'](k,l);}['unsubscribeState'](k,l){const bx=au;if(k['startsWith']('local_')){let n=this.#i[bx(0x326)](k);if(n){let p=n[bx(0x223)](l);p>=0x0&&n['splice'](p,0x1);}}else this['connection']['unsubscribeState'](k,l);}['subscribeObject'](k,l){const by=au;return this[by(0x296)][by(0x32d)](k,l);}[au(0x26c)](k,l){const bz=au;return this[bz(0x296)]['unsubscribeObject'](k,l);}[au(0x1e8)](k,l){const bA=au;return m[bA(0x296)]['getObjectView'](l,null,k);}['getObject'](k){const bB=au;return this['connection'][bB(0x180)](k);}['getState'](k){const bC=au;return k[bC(0x2b1)]('local_')?Promise[bC(0x194)](this.#a['get'](k)):this['connection'][bC(0x355)](k);}[au(0x19f)](k,l,p){const bD=au;if(k['startsWith'](bD(0x1fa))){typeof l!=bD(0x350)&&(l={'val':l}),this.#a['set'](k,l);let r=this.#i['get'](k);if(r){for(let u of r)u(k,l);}return Promise['resolve']();}else return this['connection']['setState'](k,l,p);}async[au(0x2ed)](){const bE=au;try{return await this['_getObjectFromFile'](this['configPath']+bE(0x1ec));}catch{return null;}}async['saveConfig'](){const bF=au;if(this[bF(0x356)](this['config'],this[bF(0x2fd)]+'config.json'),this[bF(0x175)]=null,this['globalScriptInstance']=null,this[bF(0x1b5)][bF(0x2cf)]&&(this[bF(0x175)]=h(this['config'][bF(0x2cf)])),this['config']['fontDeclarations']?(this['fontDeclarationsStylesheet']=h(this[bF(0x1b5)]['fontDeclarations']),document['adoptedStyleSheets']=[this['fontDeclarationsStylesheet']]):(this['fontDeclarationsStylesheet']=null,document[bF(0x27d)]=[]),this['config']['globalScript']){let k=URL[bF(0x2ce)](new Blob([this['config'][bF(0x1fd)]],{'type':bF(0x371)}));this[bF(0x17f)]=await importShim(k),this[bF(0x17f)][bF(0x2b5)]&&this[bF(0x17f)]['init']();}this[bF(0x30c)]['emit']();}async['loadTranslations'](){try{this['translations']=await this['_getObjectFromFile'](this['configPath']+'translations.json');}catch{this['translations']={};}}async[au(0x2c1)](){const bG=au;await this[bG(0x356)](this['translations'],this[bG(0x2fd)]+'translations.json'),this[bG(0x1eb)][bG(0x170)](this[bG(0x367)]);}['setLanguage'](k){const bH=au;this['language']=k,localStorage[bH(0x246)](bH(0x233),k),this['languageChanged'][bH(0x170)](k),window[bH(0x1c9)](new CustomEvent(bH(0x230),{'detail':k})),this.#a['get']('local_language')?.[bH(0x310)]!==k&&this['setState'](bH(0x1c3),{'val':k}),this['grafanaLangSyncEnabled']&&fetch(bH(0x217),{'method':bH(0x18d),'headers':{'Content-Type':'application/json'},'credentials':bH(0x33b),'body':JSON[bH(0x258)]({'lang':k})})['catch'](()=>{});}['t'](k){const bI=au;let l=this[bI(0x2bd)]||'en',n=k['split']('.'),p=u=>{let w=this['translations']?.[u];for(let x of n)if(w=w?.[x],w===void 0x0)return;return typeof w=='string'?w:void 0x0;};return p(l)??(l!=='en'?p('en'):void 0x0)??((()=>{for(let u of Object['keys'](this['translations']??{})){let w=p(u);if(w!==void 0x0)return w;}return k;})());}async[au(0x351)](k,l=this[au(0x262)]){const bJ=au;let n=await this['connection'][bJ(0x316)](l,k,!0x1),p;return n['mimeType']==bJ(0x2d1)||n[bJ(0x27f)]==bJ(0x30f)?JSON[bJ(0x23e)](n['file']):(n[bJ(0x27f)]==bJ(0x2cc)&&n['file']instanceof ArrayBuffer?p=new Uint8Array(n[bJ(0x29f)]):p=Uint8Array['from'](n['file']['data']),p[0x0]===0x1f&&p[0x1]===0x8b&&window['DecompressionStream']&&(p=await this[bJ(0x330)](p)),JSON[bJ(0x23e)](new TextDecoder()['decode'](p)));}async[au(0x356)](k,l,p=this['namespaceFiles']){const bK=au;let r=new TextEncoder()['encode'](JSON['stringify'](k));if(r[bK(0x362)]>0x200*0x400&&window[bK(0x1cd)]){let u=await this[bK(0x2f0)](r);await this[bK(0x296)][bK(0x1a3)](p,l,u['buffer']);}else await this[bK(0x296)][bK(0x1a3)](p,l,r);}async['_gzipBytes'](k){const bL=au;let p=new CompressionStream('gzip'),u=p['writable']['getWriter']();u['write'](k),u[bL(0x241)]();let w=p['readable'][bL(0x227)](),x=[],y;for(;!(y=await w['read']())['done'];)x[bL(0x235)](y[bL(0x32a)]);let A=new Uint8Array(x['reduce']((P,S)=>P+S['length'],0x0)),F=0x0;for(let P of x)A['set'](P,F),F+=P['length'];return A;}async[au(0x330)](k){const bM=au;let p=new DecompressionStream('gzip'),u=p[bM(0x292)]['getWriter']();u[bM(0x1ed)](k),u[bM(0x241)]();let w=p['readable']['getReader'](),x=[],y;for(;!(y=await w[bM(0x2ea)]())['done'];)x[bM(0x235)](y['value']);let A=new Uint8Array(x['reduce']((P,S)=>P+S[bM(0x362)],0x0)),F=0x0;for(let P of x)A['set'](P,F),F+=P[bM(0x362)];return A;}async['_saveBinaryToFile'](k,l){const bN=au;await this[bN(0x296)]['writeFile64'](this[bN(0x262)],l,await k['arrayBuffer']());}async[au(0x226)](k,l,n){const bO=au;try{this[bO(0x349)]?.['postMessage']({'command':k,'data':l,'clientId':n??this[bO(0x25e)]??'*'});}catch{}try{let p=[this[bO(0x296)]['setState'](this['namespace']+bO(0x254),{'val':l}),this['connection']['setState'](this[bO(0x33d)]+bO(0x1c0),{'val':n??this[bO(0x25e)]}),this[bO(0x296)][bO(0x19f)](this[bO(0x33d)]+bO(0x2c6),{'val':this.#e})];await Promise['all'](p),await this['connection']['setState'](this[bO(0x33d)]+bO(0x319),{'val':k});}catch(r){console[bO(0x1a0)]('sendCommand\x20skipped\x20(no\x20write\x20permission\x20on\x20control\x20states):',r?.[bO(0x179)]||r);}}async['handleCommand'](k,l,o=''){const bP=au;if(o==''||o=='*'||o==this[bP(0x25e)])switch(k){case'uiReload':window[bP(0x2aa)][bP(0x2f2)]();break;case bP(0x1ae):this.#t[bP(0x326)](bP(0x301))['clear'](),this.#t[bP(0x326)]('control')[bP(0x2b6)](),this['_controlNames']=null,this['refreshView']['emit'](l);break;case'uiChangeView':this[bP(0x2a5)]['emit'](l);break;case bP(0x1b6):break;case bP(0x35c):new Audio(l)['play']();break;case'uiRunScript':break;case'uiAlert':alert(l);break;case bP(0x282):l&&this[bP(0x29e)](l);break;case bP(0x285):let p=JSON[bP(0x23e)](l);this.#t[bP(0x1e9)](p['type'])&&this.#t['get'](p[bP(0x288)])['delete'](p['name']),p[bP(0x288)]=='control'&&p['name']&&K(p[bP(0x1b2)],await m['getWebuiObject'](p['type'],p['name'])),this[bP(0x1fc)]['emit'](p);break;}}['getSignalInformation'](k){const bQ=au;let l={'role':k?.[bQ(0x21a)]?.[bQ(0x1a4)],'type':k?.[bQ(0x21a)]?.['type'],'writeable':k?.['common']?.['write']};return(k?.['common']?.[bQ(0x1a4)]==bQ(0x1cb)||k?.[bQ(0x21a)]?.[bQ(0x1a4)]===bQ(0x1dd)||k?.['common']?.['role'][bQ(0x341)]('icon')||k?.['common']?.['role'][bQ(0x341)](bQ(0x259)))&&(l[bQ(0x1a4)]='url'),k?.[bQ(0x21a)]?.[bQ(0x1a4)]=='value.time'&&(l['role']='datetime'),l;}['getHistoricData'](k,l){const bR=au;return this['connection'][bR(0x2eb)](k,l);}#o=null;#s=[];async['getCurrentUser'](){const bS=au;if(!this.#o)try{let k=await this['connection'][bS(0x2ad)]();console['log']('🔐\x20[Visibility]\x20Current\x20user\x20name:',k);let l=[],p=bS(0x25b)+k;try{let u=await new Promise((w,x)=>{const bT=bS;this['connection'][bT(0x25c)][bT(0x170)]('getObjectView',bT(0x2cb),'group',{'startkey':'system.group.','endkey':'system.group.香'},(y,A)=>{y?x(y):w(A);});});if(console[bS(0x2f6)]('🔐\x20[Visibility]\x20All\x20groups\x20via\x20getObjectView:',u),u&&u['rows'])for(let w of u['rows']){let x=w[bS(0x32a)],y=w['id']['replace'](bS(0x2f9),'');x['common']?.[bS(0x33c)]&&Array['isArray'](x['common']['members'])&&x['common']['members'][bS(0x341)](p)&&(l['push'](y),console[bS(0x2f6)]('✅\x20[Visibility]\x20User\x20is\x20member\x20of\x20group:\x20'+y));}}catch(A){console[bS(0x1a0)](bS(0x21e),A);let F=['administrator',bS(0x22b)];for(let P of F)try{let S=await new Promise((T,Y)=>{const bU=bS;this[bU(0x296)][bU(0x25c)]['emit']('getObject','system.group.'+P,(a0,a1)=>{a0?Y(a0):T(a1);});});S&&S['common']?.['members']&&Array['isArray'](S[bS(0x21a)][bS(0x33c)])&&S[bS(0x21a)]['members']['includes'](p)&&(l[bS(0x235)](P),console['log'](bS(0x1dc)+P));}catch{}}l[bS(0x362)]===0x0&&(console[bS(0x1a0)]('⚠️\x20[Visibility]\x20User\x20has\x20no\x20groups,\x20adding\x20administrator\x20as\x20default'),l['push'](bS(0x315))),this.#o={'id':k,'groups':l},console[bS(0x2f6)]('🔐\x20[Visibility]\x20Final\x20user\x20object:',this.#o);}catch(T){console['warn'](bS(0x334),T),this.#o={'id':'admin','groups':['administrator']};}return this.#o;}async['getUserGroups'](){const bV=au;if(this.#s['length']===0x0)try{let k=[];try{console[bV(0x2f6)]('🔍\x20[Visibility]\x20Fetching\x20groups\x20via\x20getObjectView...');let l=await new Promise((p,u)=>{const bW=bV;this['connection'][bW(0x25c)][bW(0x170)](bW(0x31d),'system','group',{'startkey':bW(0x2f9),'endkey':'system.group.香'},(w,x)=>{w?u(w):p(x);});});if(console['log'](bV(0x337),l),l&&l[bV(0x2f5)])for(let p of l[bV(0x2f5)]){let u=p['id'][bV(0x1a2)]('system.group.',''),w=p['value']?.['common']?.['name']||u;typeof w=='object'&&(w=w['en']||w['de']||w['ru']||Object['values'](w)[0x0]||u);let x=p[bV(0x32a)]?.['common']?.[bV(0x1ac)]||'';typeof x==bV(0x350)&&(x=x['en']||x['de']||x['ru']||Object['values'](x)[0x0]||''),k['push']({'id':u,'name':w,'desc':x}),console[bV(0x2f6)]('✅\x20[Visibility]\x20Found\x20group:',u,w);}}catch(y){console[bV(0x1a0)](bV(0x2a8),y);}k['length']===0x0&&(console[bV(0x1a0)]('⚠️\x20[Visibility]\x20No\x20groups\x20found,\x20using\x20defaults'),k[bV(0x235)]({'id':'administrator','name':'Administrator','desc':bV(0x340)},{'id':bV(0x22b),'name':'User','desc':'User\x20group'})),this.#s=k,console[bV(0x2f6)]('👥\x20[Visibility]\x20User\x20groups\x20loaded:',this.#s);}catch(A){console['warn']('⚠️\x20[Visibility]\x20Failed\x20to\x20load\x20user\x20groups:',A),this.#s=[{'id':bV(0x315),'name':bV(0x2ef),'desc':'Administrator\x20group'},{'id':bV(0x22b),'name':bV(0x2fe),'desc':bV(0x245)}];}return this.#s;}async['checkVisibility'](k){const bX=au;if(!k||!k[bX(0x2f3)])return{'visible':!0x0,'enabled':!0x0};try{if(k[bX(0x186)]&&k['groups']['length']>0x0){let l=this[bX(0x28c)]||await this['connection']['getCurrentUser'](),p=new Promise(x=>setTimeout(()=>x({'visible':!0x0,'enabled':!0x0}),0xfa0)),u=this['connection']['sendTo'](this[bX(0x33d)],'checkVisibility',{'username':l,'allowedGroups':k[bX(0x186)],'action':k[bX(0x1ba)]||'hide'}),w=await Promise[bX(0x320)]([u,p]);if(!w['visible']||!w[bX(0x2f3)])return w;}if(k['objectId']&&k['condition']&&k['conditionValue']!==void 0x0&&k['conditionValue']!==''){let x=(await this['connection']['getState'](k['objectId']))?.['val'],y=k['conditionValue'],A=!0x1;switch(k['condition']){case'==':A=x==y;break;case'!=':A=x!=y;break;case'>':A=parseFloat(x)>parseFloat(y);break;case'<':A=parseFloat(x)<parseFloat(y);break;case'>=':A=parseFloat(x)>=parseFloat(y);break;case'<=':A=parseFloat(x)<=parseFloat(y);break;}if(console['log']('📊\x20[Visibility]\x20Datapoint\x20condition\x20check:',{'objectId':k['objectId'],'currentValue':x,'condition':k['condition'],'targetValue':y,'conditionMet':A}),A){let F=k['action']||bX(0x253);return console['log']('✅\x20[Visibility]\x20Datapoint\x20condition\x20met\x20→\x20Action:',F),{'visible':F!=='hide','enabled':F!=='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};}}},m=V['instance'];window['IOB']=m;import{PropertiesHelper as i}from'@gokturk413/web-component-designer/dist/elements/services/propertiesService/services/PropertiesHelper.js';var B=class s{static ['instance']=new s();#e=new WeakMap();#t(k,l){const bY=au;if(!l['visible'])k['style'][bY(0x1c2)]='none',k['style']['visibility']=bY(0x1fe);else{let n=this.#e[bY(0x326)](k)||'';k['style']['display']=n,k['style'][bY(0x1d1)]='';}l['enabled']?(k[bY(0x265)]['pointerEvents']='',k[bY(0x265)]['opacity']=''):(k[bY(0x265)][bY(0x1c7)]='none',k['style']['opacity']='0.5');}async['applyGroupVisibility'](k,l,n){const bZ=au;if(!l||l[bZ(0x362)]===0x0)return;this.#e[bZ(0x1e9)](k)||this.#e['set'](k,k[bZ(0x265)][bZ(0x1c2)]||'');let p=await m['checkVisibility']({'enabled':!0x0,'groups':l,'action':n||bZ(0x253)});(!p['visible']||!p['enabled'])&&this.#t(k,p);}async[au(0x36b)](k,l){const c0=au;!l||!l['enabled']||await this[c0(0x274)](k,l['groups']||[],l['action']||c0(0x253));}[au(0x256)](k){const c1=au;let l=this.#e['get'](k);l!==void 0x0&&(k['style'][c1(0x1c2)]=l,this.#e['delete'](k)),k[c1(0x265)][c1(0x1d1)]='',k['style']['pointerEvents']='',k['style']['opacity']='';}async[au(0x232)](k=document['body']){const c2=au;let l=k['querySelectorAll']('[data-visibility-groups]');for(let p of l)try{let r=p[c2(0x295)]('data-visibility-groups')?.['split'](',')['filter'](w=>w)||[],u=p[c2(0x295)](c2(0x1d8))||c2(0x253);await this['applyGroupVisibility'](p,r,u);}catch(w){console[c2(0x2ab)](c2(0x195),w);}}},E=B[au(0x1ea)],R=null;function rt(k,l){const c4=au;function n(u){const c3=b;let w=u['getElementById']?u[c3(0x29c)](l):u[c3(0x336)]('#'+l);if(w)return w;for(let x of u['querySelectorAll']('*'))if(x[c3(0x312)]){let y=n(x['shadowRoot']);if(y)return y;}return null;}let p=k['getRootNode']();for(;p instanceof ShadowRoot;){let r=n(p);if(r)return r;p=p[c4(0x332)]['getRootNode']();}return n(document['body'])??document['getElementById'](l);}var I=new URL('../../vendor/gsap/',import.meta.url)['href'];function lt(k){const c5=au;let l=k[c5(0x368)]['toLowerCase']();if(l===c5(0x1f9)){let p=parseFloat(k['getAttribute']('cx')||0x0),r=parseFloat(k['getAttribute']('cy')||0x0),u=parseFloat(k['getAttribute']('r')||0x0);return'M\x20'+(p-u)+','+r+c5(0x1a6)+u+','+u+'\x200\x201,1\x20'+(p+u)+','+r+'\x20A\x20'+u+','+u+c5(0x225)+(p-u)+','+r+'\x20Z';}if(l===c5(0x1e7)){let w=parseFloat(k['getAttribute']('cx')||0x0),x=parseFloat(k['getAttribute']('cy')||0x0),y=parseFloat(k[c5(0x295)]('rx')||0x0),A=parseFloat(k['getAttribute']('ry')||0x0);return'M\x20'+(w-y)+','+x+c5(0x1a6)+y+','+A+'\x200\x201,1\x20'+(w+y)+','+x+c5(0x1a6)+y+','+A+c5(0x225)+(w-y)+','+x+'\x20Z';}if(l==='rect'){let F=parseFloat(k['getAttribute']('x')||0x0),P=parseFloat(k[c5(0x295)]('y')||0x0),S=parseFloat(k[c5(0x295)](c5(0x24f))||0x0),T=parseFloat(k[c5(0x295)](c5(0x192))||0x0);return'M\x20'+F+','+P+c5(0x306)+(F+S)+'\x20V\x20'+(P+T)+'\x20H\x20'+F+'\x20Z';}if(l===c5(0x264)){let Y=k[c5(0x295)]('x1')||0x0,a0=k[c5(0x295)]('y1')||0x0,a1=k['getAttribute']('x2')||0x0,a2=k['getAttribute']('y2')||0x0;return'M\x20'+Y+','+a0+c5(0x314)+a1+','+a2;}if(l===c5(0x171)||l==='polygon'){let a3=(k['getAttribute']('points')||'')[c5(0x298)]()['split'](/[\s,]+/);if(a3[c5(0x362)]<0x2)return null;let a4='M\x20'+a3[0x0]+','+a3[0x1];for(let a5=0x2;a5+0x1<a3['length'];a5+=0x2)a4+='\x20L\x20'+a3[a5]+','+a3[a5+0x1];return l===c5(0x2ba)&&(a4+='\x20Z'),a4;}return null;}function a(){const de=['opacityFrom','_subs','controls','square','drop-shadow(0\x200\x200px\x20rgba(0,0,0,0))','remove','childNodes','slice','\x20attribute','glow','row','value_bind','iobrokerHost','getPrototypeOf','element','path,\x20circle,\x20ellipse,\x20rect,\x20polyline,\x20polygon','mywebui','classList','projects.json','globalConfig','assignAllScripts','read','getHistoryEx','webui-split-container','_getConfig','images','Administrator','_gzipBytes','_controlNames','reload','enabled','appBar','rows','log','_bindingsRefresh','splice','system.group.','getAllNames','Error\x20reading\x20Control','vertical','configPath','User','call','applyBinding','screen','get3DControl','oid_bind','getGlobalObject','cleanup','\x20H\x20','searchParams','transform','innerHTML','fontDeclarationsStylesheet','currentProject','configChanged','alignItems','native','text/javascript','val','div','shadowRoot','\x20aggregate','\x20L\x20','administrator','readFile','gsap','substring','.control.command','shape','unobserve','condition','getObjectView','\x20controls)','slideInTop','race','flowDash','invalid\x20','headerTags','theme','slots','get','saveThumbnail','mouseenter','images/','value','_play','connectedCallback','subscribeObject','onmessage','html','_gunzipBytes','valueTo','host','effect','⚠️\x20[Visibility]\x20Failed\x20to\x20get\x20current\x20user:','active','querySelector','🔍\x20[Visibility]\x20getObjectView\x20result:','Error\x20removing\x20thumbnail:','_pathFlowEls','constructor','include','members','namespace','</div>','_scheduleGlobalAggregate','Administrator\x20group','includes','padding','renameFile','getObjectNames','equal','_rootDocumentFragment','startAt','stretch','_broadcastChannel','state','svgAttr','webui-','entries','the\x20\x27default\x27\x20project\x20cannot\x20be\x20deleted','drop-shadow(0\x200\x20','object','_getObjectFromFile','strokeDasharray','getSubFolders','reverse','getState','_saveObjectToFile','waitForReady','runtime.html','test','system.adapter.mywebui.0','ready','uiPlaySound','removedNodes','transformOriginY','power1.out','path,line,polyline,polygon,rect,circle,ellipse','visibility:hidden;pointer-events:none;','length','appShell','isDir','isArray','custom\x20control\x20connectedCallback\x20error','translations','tagName','connectionState','3dcontrol','applyVisibility','block','fromTo','cos','getNormalizedSignalName','resume','application/javascript','48SJwQnH','thumbnails/','condition_bind','invalid\x20project\x20name\x20(use\x20a-z,\x200-9,\x20-,\x20_):\x20','flip','delegate','head','_setupDynamicProperties','emit','polyline','createRange','toString','[AnimationService]\x20data-animation\x20parse\x20error\x20on\x20element:','globalStylesheet','fadeIn','createImportmap','no\x20controls\x20loaded','message','flexWrap',',0\x200,','normal','no\x20','now','globalScriptInstance','getObject','getAllGlobalNames','construct','118558CJrPSB','getBindings','#ff0000','groups','backgroundColor','Error\x20reading\x203D\x20Screen','getCustomControlNames','createElement','screens/','pathId','POST','saveObject','delete','namespaceProjects','yoyo','height','deleteFile','resolve','[Visibility]\x20Group\x20check\x20error:','flatMap','get3DScreen','exec','.3dscreen','removeObject','ease','cancel','points','shake','setState','warn','true','replace','writeFile64','role','additionalFilePrefix','\x20A\x20','less_than','.png','greater_equal','tween','endsWith','desc','transformOrigin','uiRefresh','componentReady','additionalfiles','BaseCustomControl','name','querySelectorAll','filter','config','uiOpenDialog','_tempPathEl','cssText','visibilityGroups','action','readDir','_scheduleControlsAggregate','project','split','createElementNS','.control.clientIds','ioBroker\x20handler\x20ready.','display','local_language','webuiCustomControlSymbol','string','saveAdditionalFile','pointerEvents','#000000','dispatchEvent','navigation','url','default','CompressionStream','_readyPromises','duration','killTweensOf','visibility','globalPath','sin','/tmp.fld','slideInLeft','additionalfiles/','gridTemplateColumns','data-visibility-action','glowColor','orientation','position','✅\x20[Visibility]\x20User\x20is\x20member\x20of\x20group:\x20','text.url','transformOriginX','multiViews','getWebuiObject','controls-all.dat','_getRelativeSignalsPath','_bind','scriptSystem','getScreen','_writeGlobalAggregate','ellipse','getObjectList','has','instance','translationsChanged','config.json','write','glowSize','_cleanProjectName','/widgets/','power2.inOut','all','s-all.dat','\x200,','gridTemplateRows','join','svg','-changed','circle','local_','destroy','objectsChanged','globalScript','hidden','webui-current-project','additionalFilesChanged','outerHTML','gap','trigger',',0\x20L0,','star','keys','Error\x20reading\x20global\x20','_destroyPathFlowEls','getIconAdapterFoldernames','removeThumbnail','20076iirDJz','repeat','cfg','paused','__resolved','[data-effects]','<div></div>','width:100%;height:100%;box-sizing:border-box;','removeGlobalObject','prototype','visualization-icons','path','/mywebui-grafana-lang','imagePrefix','52OFwrJi','common','template','.screen','then','⚠️\x20[Visibility]\x20getObjectView\x20failed,\x20trying\x20direct\x20group\x20fetch:','cloneNode','__readyResolve','100px','left','indexOf','dashLen','\x200\x201,1\x20','sendCommand','getReader','catch','closest','removeGlobalFolder','user','direction','href','connectionInfo','createProject','languageChanged','settings','scanAndApply','webui-language','conditionValue','push','mywebui.0','greater_than','orientToPath','error\x20writing\x20global\x20','6sWbRRW','px)','deleteFolder','boolean','parse','enum','signal','close','[data-split-pane=\x221\x22]','webui-tab-active','map','User\x20group','setItem','size','46eVIbql','visibilityEnabled','some','getProjects','ownerSVGElement','1802647ElfXzz','set','width','_bindingsParse','createFolder','blurAmount','hide','.control.data','opacity','removeVisibility','1994YuUxBK','stringify','image','uiConnected','system.user.','_socket','kill','clientId','yellow','getBoundingClientRect','[data-visibility-controlled=\x22true\x22]','namespaceFiles','getRootNode','line','style','fillColorTo','conditionValue_bind','controls\x20aggregate\x20written\x20(','appendChild','registerPlugin','subscribeState','unsubscribeObject','MotionPathPlugin','replaceAll','script','0px','tabLabels','alignToPath','removeEventListener','applyGroupVisibility','error\x20loading\x20subfolders','justifyContent','291258CyACBi','translateY','waitForFirstConnection','skewY','1777840oGApRz','http://www.w3.org/2000/svg','adoptedStyleSheets','[AnimationService]\x20Failed\x20to\x20load\x20GSAP\x20from\x20local\x20path:','mimeType','disconnectedCallback','valueFrom','uiSetLanguage','triangle','event','objectChanged','search','vars','type','control','3dscreen','play','userName','none','IobrokerWebuiCustomControl','rect','gapLen','230ZXQsQK','writable','getCustomControl','setAttribute','getAttribute','connection','fillColorFrom','trim',':scope\x20>\x20.__layout-generated','spin','defineProperty','getElementById','toLowerCase','setLanguage','file','global/','camelToDashCase','fill','oid','bounce','changeView','addEventListener','pause','⚠️\x20[Visibility]\x20getObjectView\x20failed:','project\x20already\x20exists:\x20','location','error','state:','getCurrentUser','onload','arrow','removeAdditionalFile','startsWith','tab-position','disconnect','handleCommand','init','clear','visibilityRedirectScreen','5Ukdmfk','top','polygon','innerSubs','customShapeD','language','/data/config.json','exists','pulseRing','saveTranslations','count','properties','[AnimationService]\x20data-effects\x20parse\x20error\x20on\x20element:','1192116woTjEE','.control.project','grafanaLangSyncEnabled','namespaceGlobal','data','less_equal','system','application/octet-stream','color','createObjectURL','globalStyle','define','application/json','_writeControlsAggregate','getGlobalObjectNames','__layout-generated'];a=function(){return de;};return a();}function W(k){const c6=au;if(k['tagName'][c6(0x29d)]()===c6(0x216))return{'pathEl':k,'tempEl':null};let l=lt(k);if(!l)return{'pathEl':k,'tempEl':null};let n=k[c6(0x229)]('svg')??k['parentElement'],o=document['createElementNS']('http://www.w3.org/2000/svg','path');return o['setAttribute']('d',l),o['setAttribute']('fill','none'),o['style'][c6(0x1b8)]=c6(0x361),n['appendChild'](o),{'pathEl':o,'tempEl':o};}async function U(){const c7=au;return window[c7(0x317)]?window['gsap']:R||(R=new Promise(k=>{const c9=c7;let l=o=>new Promise((p,u)=>{const c8=b;let w=document['createElement'](c8(0x26f));w['src']=o,w[c8(0x2ae)]=p,w['onerror']=u,document[c8(0x16e)]['appendChild'](w);}),n=window['define'];window[c9(0x2d0)]=void 0x0,l(I+'gsap.min.js')[c9(0x21d)](()=>l(I+'MotionPathPlugin.min.js'))[c9(0x21d)](()=>l(I+'MorphSVGPlugin.min.js'))[c9(0x21d)](()=>{const ca=c9;window[ca(0x2d0)]=n,window['MotionPathPlugin']&&window['gsap'][ca(0x26a)](window[ca(0x26d)]),window['MorphSVGPlugin']&&window['gsap']['registerPlugin'](window['MorphSVGPlugin']),k(window['gsap']);})['catch'](()=>{const cb=c9;window['define']=n,console['warn'](cb(0x27e),I),k(window[cb(0x317)]||null);});}),R);}function H(k){const cc=au;if(typeof k==cc(0x23d))return k;if(typeof k=='number')return k!==0x0;if(typeof k=='string'){let l=k[cc(0x29d)]();if(l==='true'||l==='1')return!0x0;if(l==='false'||l==='0')return!0x1;}return k;}function Q(k,l,p){const cd=au;if(!l||l===cd(0x2bf))return!0x0;let u=parseFloat(k),w=parseFloat(p);if(!isNaN(u)&&!isNaN(w))switch(l){case cd(0x345):return u===w;case'not_equal':return u!==w;case cd(0x1a7):return u<w;case cd(0x2ca):return u<=w;case cd(0x237):return u>w;case cd(0x1a9):return u>=w;}let x=H(k),y=H(p);return typeof x==cd(0x23d)&&typeof y==cd(0x23d)?l==='equal'?x===y:x!==y:l===cd(0x345)?String(k)===String(p):String(k)!==String(p);}function ct(k,p){const ce=au;let u=parseFloat(k[ce(0x1cf)])||0x1,w=k['ease']||'power1.inOut',x=k[ce(0x333)]||'opacity',y=H(p),A=typeof y=='boolean'?y?0x1:0x0:parseFloat(p)||0x0,F={'duration':u,'ease':w==='none'?ce(0x28d):w,'paused':!0x0,'repeat':parseInt(k['repeat'])||0x0,'yoyo':k[ce(0x191)]===!0x0||k[ce(0x191)]===ce(0x1a1)};switch(x){case'rotation':F['rotation']=k['valueTo']!=null?parseFloat(k[ce(0x331)]):A,k[ce(0x281)]!=null&&(F[ce(0x347)]={'rotation':parseFloat(k['valueFrom'])}),F[ce(0x1ad)]=(k['transformOriginX']||'50')+'%\x20'+(k[ce(0x35e)]||'50')+'%\x20'+(k['transformOriginZ']||'0');break;case'scale':F['scale']=k['valueTo']!=null?parseFloat(k['valueTo']):typeof y==ce(0x23d)?y?1.5:0x1:A,k['valueFrom']!=null&&(F[ce(0x347)]={'scale':parseFloat(k['valueFrom'])});break;case ce(0x255):F['opacity']=k[ce(0x331)]!=null?parseFloat(k['valueTo']):typeof y=='boolean'?y?0x1:0x0:A,k[ce(0x281)]!=null&&(F[ce(0x347)]={'opacity':parseFloat(k['valueFrom'])});break;case'translateX':F['x']=k['valueTo']!=null?parseFloat(k['valueTo']):typeof y=='boolean'?y?0x64:0x0:A,k[ce(0x281)]!=null&&(F['startAt']={'x':parseFloat(k['valueFrom'])});break;case ce(0x278):F['y']=k[ce(0x331)]!=null?parseFloat(k[ce(0x331)]):typeof y==ce(0x23d)?y?0x64:0x0:A,k[ce(0x281)]!=null&&(F[ce(0x347)]={'y':parseFloat(k['valueFrom'])});break;case'translate':{let P=(T,Y)=>{const cf=ce;if(T==null)return{'x':Y,'y':0x0};let a0=String(T)[cf(0x1be)](',');return{'x':parseFloat(a0[0x0])||0x0,'y':a0[cf(0x362)]>0x1&&parseFloat(a0[0x1])||0x0};},S=P(k[ce(0x331)],typeof y==ce(0x23d)?y?0x64:0x0:A);if(F['x']=S['x'],F['y']=S['y'],k['valueFrom']!=null){let T=P(k[ce(0x281)],0x0);F[ce(0x347)]={'x':T['x'],'y':T['y']};}break;}case ce(0x222):F['left']=k['valueTo']!=null?k[ce(0x331)]:typeof y=='boolean'?y?ce(0x221):ce(0x270):A+'px',k[ce(0x281)]!=null&&(F['startAt']={'left':isNaN(k['valueFrom'])?k[ce(0x281)]:k[ce(0x281)]+'px'});break;case'top':F[ce(0x2b9)]=k['valueTo']!=null?k['valueTo']:typeof y==ce(0x23d)?y?'100px':'0px':A+'px',k['valueFrom']!=null&&(F[ce(0x347)]={'top':isNaN(k[ce(0x281)])?k['valueFrom']:k['valueFrom']+'px'});break;case'skew':{let Y=k['valueTo']!=null?parseFloat(k['valueTo']):typeof y=='boolean'?y?0x2d:0x0:A;F['skewX']=Y,F[ce(0x27a)]=Y;break;}case ce(0x2a2):F['fill']=k[ce(0x266)]||'#ff0000',k[ce(0x297)]&&(F['startAt']={'fill':k['fillColorFrom']});break;case'color':F['color']=k[ce(0x266)]||'#ff0000',k['fillColorFrom']&&(F['startAt']={'color':k[ce(0x297)]});break;case ce(0x187):F['backgroundColor']=k[ce(0x266)]||ce(0x185),k['fillColorFrom']&&(F[ce(0x347)]={'backgroundColor':k[ce(0x297)]});break;case ce(0x308):F['transform']=k['valueTo']||String(p),k['valueFrom']&&(F[ce(0x347)]={'transform':k['valueFrom']});break;case'svg':if(k[ce(0x34b)]){let a0=k[ce(0x34b)];a0==='fill'||a0===ce(0x2cd)?F[a0]=typeof y==ce(0x23d)?y?k['fillColorTo']||ce(0x185):k['fillColorFrom']||ce(0x1c8):k['fillColorTo']||'#ff0000':a0==='stroke-dasharray'?F[a0]=k[ce(0x331)]||'10':F[a0]=k[ce(0x331)]!=null?parseFloat(k[ce(0x331)]):A;}break;default:F['opacity']=k['valueTo']!=null?parseFloat(k['valueTo']):typeof y==ce(0x23d)?y?0x1:0x0:A;}return F;}function O(k){const cg=au;for(let l of k)try{l['type']==='event'?l['target']['removeEventListener'](l[cg(0x284)],l['handler']):l['type']===cg(0x34a)?m['connection']['unsubscribeState'](l['oid'],l['handler']):l[cg(0x288)]==='delegate'&&O(l[cg(0x2bb)]);}catch{}k[cg(0x362)]=0x0;}async function ht(k,p,u,x){const ch=au;let y=[],A=/\{([^}]+)\}/g,F;for(;(F=A[ch(0x198)](k))!==null;)y[ch(0x235)](F[0x1]);if(y[ch(0x362)]===0x0)return;let P={};for(let Y of y)P[Y]=null;let S=[],T=async()=>{const ci=ch;if(Object['values'](P)[ci(0x24a)](a1=>a1==null))return;let a0=k;for(let [a1,a2]of Object[ci(0x34d)](P))a0=a0[ci(0x1a2)]('{'+a1+'}',a2);O(S),await C(a0,p,u,S);};for(let a0 of y){let a1=async(a2,a3)=>{const cj=ch;a3?.[cj(0x310)]!=null&&(P[a0]=String(a3['val']),await T());};try{m[ch(0x296)]['subscribeState'](a0,a1),x['push']({'type':ch(0x34a),'oid':a0,'handler':a1});}catch{}try{let a2=await m['connection'][ch(0x355)](a0);a2?.[ch(0x310)]!=null&&(P[a0]=String(a2['val']));}catch{}}await T(),x['push']({'type':ch(0x16d),'innerSubs':S});}async function C(k,p,u,w){const cl=au;if(!k)return;if(k['includes']('{')&&k['includes']('}')){await ht(k,p,u,w);return;}let x=()=>{const ck=b;let y=p[ck(0x263)]();return y&&y!==document?y['host']??null:null;};if(k[cl(0x2b1)]('??')){let y=k[cl(0x2dc)](0x2),A=x();if(!A)return;let F=()=>{const cm=cl;let S=A[y]??A[cm(0x295)]?.(y);S!=null&&u(S);};F();let P=()=>F();A['addEventListener'](y+cl(0x1f8),P),w[cl(0x235)]({'type':'event','target':A,'event':y+cl(0x1f8),'handler':P});}else{if(k['startsWith']('?')){let S=k[cl(0x2dc)](0x1),T=x();if(!T)return;let Y=[],a0=async()=>{O(Y);let a2=T[S]??T['getAttribute']?.(S);a2&&await C(a2,p,u,Y);};await a0();let a1=()=>a0();T['addEventListener'](S+cl(0x1f8),a1),w[cl(0x235)]({'type':cl(0x284),'target':T,'event':S+'-changed','handler':a1}),w[cl(0x235)]({'type':'delegate','innerSubs':Y});}else{if(k['startsWith'](cl(0x2ac))){let a2=k['slice'](0x6),a3=(a4,a5)=>{const cn=cl;a5?.[cn(0x310)]!=null&&u(a5['val']);};try{m[cl(0x296)][cl(0x26b)](a2,a3),w['push']({'type':'state','oid':a2,'handler':a3});}catch{}try{let a4=await m[cl(0x296)]['getState'](a2);a4?.[cl(0x310)]!=null&&u(a4[cl(0x310)]);}catch{}}else{if(!k[cl(0x2b1)]('object:')){let a5=k;a5[cl(0x2b1)]('.')&&(a5=(x()?.['_getRelativeSignalsPath']?.()??'')+a5[cl(0x2dc)](0x1));let a6=(a7,a8)=>{const co=cl;a8?.[co(0x310)]!=null&&u(a8['val']);};try{a5['startsWith'](cl(0x1fa))?m[cl(0x26b)](a5,a6):m[cl(0x296)][cl(0x26b)](a5,a6),w['push']({'type':'state','oid':a5,'handler':a6});}catch{}try{let a7;a5['startsWith'](cl(0x1fa))?a7=await m['getState'](a5):a7=await m[cl(0x296)]['getState'](a5),a7?.[cl(0x310)]!=null&&u(a7[cl(0x310)]);}catch{}}}}}}var q=class{constructor(k,l){const cp=au;this[cp(0x2e3)]=k,this[cp(0x20d)]=l,this['tween']=null,this['_subs']=[];}async['init'](){const cq=au;if(await U(),!window['gsap'])return;let k=this[cq(0x20d)]['controls']||{},l=async(w,x)=>{const cr=cq;let y=k[w];if(!y)return;y[cr(0x374)]?.[cr(0x240)]&&await C(y[cr(0x374)][cr(0x240)],this['element'],F=>{y['condition']=String(F);},this['_subs']),y[cr(0x2e0)]?.['signal']&&await C(y['value_bind'][cr(0x240)],this['element'],F=>{const cs=cr;y[cs(0x32a)]=String(F);},this['_subs']);let A=y['oid_bind']?.['signal']||y['oid'];A&&await C(A,this[cr(0x2e3)],F=>{const cu=cr;Q(F,y[cu(0x31c)]||'equal',y['value']??cu(0x1a1))&&x();},this['_subs']);};await l(cq(0x28b),()=>this[cq(0x32b)]()),await l('pause',()=>this['tween']?.[cq(0x2a7)]()),await l(cq(0x370),()=>this['tween']?.[cq(0x28b)]()),await l('stop',()=>this['tween']?.['pause'](0x0)),await l('reverse',()=>this['tween']?.[cq(0x354)]());let p=[cq(0x333),'valueFrom',cq(0x331),cq(0x1cf),cq(0x19b),'repeat',cq(0x191),'fillColorFrom',cq(0x266),cq(0x1de),'transformOriginY',cq(0x34b),'pathId',cq(0x272),cq(0x238),cq(0x224),cq(0x290),'color',cq(0x22c),cq(0x2c2),'size',cq(0x31a),'customShapeD'],u=null;for(let w of p){let x=this['cfg'][w+cq(0x1e3)];if(!x?.['signal'])continue;let y=w;await C(x[cq(0x240)],this['element'],A=>{const cv=cq;if(this['cfg'][y]=A,!!this[cv(0x1aa)]){if(y==='duration'&&this['tween'][cv(0x287)]){let F=parseFloat(this['tween'][cv(0x287)][cv(0x1cf)])||0x1,P=parseFloat(A)||0x1;this[cv(0x1aa)]['timeScale'](F/P);return;}clearTimeout(u),u=setTimeout(()=>{const cw=cv;this[cw(0x1aa)]&&!this['tween'][cw(0x20e)]()&&this[cw(0x32b)]();},0x3c);}},this['_subs']);}}[au(0x32b)](){const cx=au;let k=window['gsap'];if(!k)return;this[cx(0x2e3)][cx(0x265)]['display']===cx(0x28d)&&(this[cx(0x2e3)][cx(0x265)]['display']=''),this[cx(0x1aa)]&&this[cx(0x1aa)][cx(0x25d)]();let x=this[cx(0x20d)]['effect'];if(x==='motionPath'&&this[cx(0x20d)][cx(0x18c)]){let P=rt(this[cx(0x2e3)],this[cx(0x20d)]['pathId']);if(!P){console['warn']('[AnimationService]\x20motionPath:\x20path\x20element\x20not\x20found:',this['cfg']['pathId']);return;}P['tagName']['toLowerCase']()==='svg'&&(P=P['querySelector'](cx(0x2e4))??P),this['_tempPathEl']&&(this[cx(0x1b7)][cx(0x2da)](),this['_tempPathEl']=null);let {pathEl:T,tempEl:Y}=W(P);this[cx(0x1b7)]=Y,this[cx(0x1aa)]=k['to'](this['element'],{'duration':parseFloat(this[cx(0x20d)][cx(0x1cf)])||0x1,'ease':this['cfg']['ease']||'none','repeat':parseInt(this[cx(0x20d)][cx(0x20c)])||0x0,'yoyo':this['cfg'][cx(0x191)]===!0x0,'paused':!0x0,'motionPath':{'path':T,'align':this['cfg']['alignToPath']?T:!0x1,'autoRotate':this['cfg'][cx(0x238)]===!0x0,'alignOrigin':[0.5,0.5],'start':this['cfg']['valueFrom']?parseFloat(this['cfg']['valueFrom'])/0x64:0x0,'end':this['cfg']['valueTo']?parseFloat(this['cfg'][cx(0x331)])/0x64:0x1}});}else{if(x==='morphSVG'&&this[cx(0x20d)]['valueTo'])this[cx(0x1aa)]=k['to'](this['element'],{'duration':parseFloat(this[cx(0x20d)]['duration'])||0x1,'ease':this['cfg'][cx(0x19b)]||'none','repeat':parseInt(this['cfg']['repeat'])||0x0,'yoyo':this[cx(0x20d)][cx(0x191)]===!0x0,'paused':!0x0,'morphSVG':this['cfg']['valueTo']});else{if(x===cx(0x321)){this[cx(0x208)](k);let a0=parseFloat(this[cx(0x20d)]['dashLen'])||0xa,a1=parseFloat(this[cx(0x20d)]['gapLen'])||0x14,a2=this[cx(0x20d)][cx(0x2cd)]||null,a3=this['cfg']['direction']===cx(0x354),a4=this[cx(0x2e3)][cx(0x368)][cx(0x29d)]()==='svg'?this[cx(0x2e3)][cx(0x336)](cx(0x360))||this[cx(0x2e3)]:this['element'];a4[cx(0x265)][cx(0x352)]=a0+'\x20'+a1,a2&&(a4[cx(0x265)]['stroke']=a2);let a5=a3?0x0:a0+a1,a6=a3?a0+a1:0x0;this[cx(0x1aa)]=k['fromTo'](a4,{'attr':{'stroke-dashoffset':a5}},{'attr':{'stroke-dashoffset':a6},'duration':parseFloat(this[cx(0x20d)]['duration'])||0x1,'ease':'none','repeat':-0x1,'paused':!0x0});}else{if(x==='pathFlow'){this[cx(0x208)](k),this['_pathFlowEls']=[];let a7=parseInt(this[cx(0x20d)][cx(0x2c2)])||0x5,a8=this['cfg']['shape']||'triangle',a9=this[cx(0x20d)]['color']||'#0066ff',aa=parseFloat(this['cfg']['size'])||0x8,ab=this['cfg'][cx(0x22c)]==='reverse',ac=this['cfg'][cx(0x2bc)]||'',ad=parseFloat(this[cx(0x20d)][cx(0x1cf)])||0x2,ae=this[cx(0x2e3)]['tagName']['toLowerCase']()===cx(0x1f7)?this['element'][cx(0x336)]('path,line,polyline,polygon,rect,circle,ellipse')||this[cx(0x2e3)]:this['element'],af=ae[cx(0x24c)]||ae[cx(0x229)](cx(0x1f7))||this[cx(0x2e3)];if(!af)return;this[cx(0x1b7)]&&(this['_tempPathEl'][cx(0x2da)](),this['_tempPathEl']=null);let {pathEl:ag,tempEl:ah}=W(ae);this[cx(0x1b7)]=ah;let ai=cx(0x27c),aj=()=>{const cy=cx;let al;switch(a8){case'triangle':al=document[cy(0x1bf)](ai,cy(0x2ba)),al['setAttribute'](cy(0x19d),aa+',0\x200,'+-aa/0x2+cy(0x1f4)+aa/0x2);break;case'arrow':al=document[cy(0x1bf)](ai,'path'),al[cy(0x294)]('d','M'+aa+',0\x20L0,'+-aa/0x2+'\x20L'+aa*0.35+',0\x20L0,'+aa/0x2+'\x20Z');break;case'circle':al=document['createElementNS'](ai,cy(0x1f9)),al['setAttribute']('r',String(aa/0x2));break;case cy(0x2d8):al=document['createElementNS'](ai,cy(0x28f)),al['setAttribute']('width',String(aa)),al['setAttribute']('height',String(aa)),al['setAttribute']('x',String(-aa/0x2)),al[cy(0x294)]('y',String(-aa/0x2));break;case cy(0x205):{al=document['createElementNS'](ai,'polygon');let am=[];for(let an=0x0;an<0xa;an++){let ao=an%0x2===0x0?aa:aa*0.4,ap=an*Math['PI']/0x5-Math['PI']/0x2;am['push'](ao*Math[cy(0x36e)](ap)+','+ao*Math[cy(0x1d3)](ap));}al[cy(0x294)](cy(0x19d),am[cy(0x1f6)]('\x20'));break;}case'custom':al=document[cy(0x1bf)](ai,'path'),al[cy(0x294)]('d',ac||'M'+aa+cy(0x204)+-aa/0x2+'\x200,'+aa/0x2+'\x20Z');break;default:al=document[cy(0x1bf)](ai,cy(0x28f)),al[cy(0x294)](cy(0x24f),String(aa*0x2)),al[cy(0x294)](cy(0x192),String(aa/0x3)),al[cy(0x294)]('x',String(-aa)),al[cy(0x294)]('y',String(-aa/0x6));}return al['setAttribute'](cy(0x2a2),a9),af[cy(0x269)](al),this[cy(0x339)]['push'](al),al;},ak=k['timeline']({'repeat':-0x1,'paused':!0x0});for(let al=0x0;al<a7;al++){let am=aj(),an=ab?0x1-al/a7:al/a7,ao=ab?-(al/a7):al/a7+0x1;ak['to'](am,{'motionPath':{'path':ag,'align':ag,'autoRotate':!0x0,'alignOrigin':[0.5,0.5],'start':an,'end':ao},'duration':ad,'ease':cx(0x28d)},0x0);}this[cx(0x1aa)]=ak;}else{let ap=ct(this['cfg'],!0x0);this['tween']=k['to'](this[cx(0x2e3)],ap);}}}}this[cx(0x1aa)]&&this['tween']['play']();}['_destroyPathFlowEls'](k){const cz=au;if(this['_pathFlowEls']){for(let l of this[cz(0x339)])k&&k['killTweensOf'](l),l['remove']();this[cz(0x339)]=null;}}['destroy'](){const cA=au;let k=window[cA(0x317)];this['tween']&&(this[cA(0x1aa)]['kill'](),this[cA(0x1aa)]=null),this['_tempPathEl']&&(this[cA(0x1b7)][cA(0x2da)](),this['_tempPathEl']=null),this[cA(0x208)](k),O(this[cA(0x2d6)]);}},$=new WeakMap(),D=new WeakMap();async function z(k){const cB=au;await U();let p=(k||document)[cB(0x1b3)]('[data-animation]');for(let u of p)try{let w=JSON['parse'](u['getAttribute']('data-animation')),x=Array[cB(0x365)](w)?w:[w],y=$['get'](u)||[];for(let F of y)F['destroy']();let A=[];for(let P of x){if(!P||typeof P!=cB(0x350))continue;let S=new q(u,P);await S[cB(0x2b5)](),A['push'](S);}$[cB(0x24e)](u,A);}catch(T){console['warn'](cB(0x174),u,T);}}function tt(k){const cC=au;let l=(k||document)['querySelectorAll']('[data-animation]');for(let n of l){let p=$['get'](n)||[];for(let r of p)r[cC(0x1fb)]();$[cC(0x18f)](n);}}async function J(k){const cD=au;await U();let p=(k||document)['querySelectorAll']('[data-effects]');for(let u of p)try{let w=JSON['parse'](u[cD(0x295)]('data-effects')),x=Array['isArray'](w)?w:[w],y=D['get'](u)||[];for(let F of y)F?.['cleanup']&&F['cleanup']();let A=[];for(let P of x){if(!P||typeof P!='object')continue;let S=await ut(u,P);A[cD(0x235)]({'cleanup':S});}D['set'](u,A);}catch(T){console[cD(0x1a0)](cD(0x2c4),u,T);}}function et(k){const cE=au;let l=(k||document)[cE(0x1b3)](cE(0x210));for(let n of l){let p=D['get'](n)||[];for(let r of p)r?.[cE(0x305)]&&r[cE(0x305)]();D[cE(0x18f)](n);}}function b(c,d){c=c-0x16b;const e=a();let f=e[c];return f;}async function ut(k,p){const cF=au;let u=window[cF(0x317)];if(!u)return null;let x=parseFloat(p['duration'])||0.5,y=parseFloat(p['delay'])||0x0,A=p['ease']||'power2.out',F=parseInt(p[cF(0x20c)])||0x0,P=()=>{const cG=cF;switch(p['type']){case cG(0x176):u['fromTo'](k,{'opacity':0x0},{'opacity':0x1,'duration':x,'ease':A,'delay':y});break;case'fadeOut':u['to'](k,{'opacity':0x0,'duration':x,'ease':A,'delay':y});break;case cG(0x1d5):u['fromTo'](k,{'x':-0x64,'opacity':0x0},{'x':0x0,'opacity':0x1,'duration':x,'ease':A,'delay':y});break;case'slideInRight':u['fromTo'](k,{'x':0x64,'opacity':0x0},{'x':0x0,'opacity':0x1,'duration':x,'ease':A,'delay':y});break;case cG(0x31f):u['fromTo'](k,{'y':-0x64,'opacity':0x0},{'y':0x0,'opacity':0x1,'duration':x,'ease':A,'delay':y});break;case'slideInBottom':u[cG(0x36d)](k,{'y':0x64,'opacity':0x0},{'y':0x0,'opacity':0x1,'duration':x,'ease':A,'delay':y});break;case cG(0x2a4):u[cG(0x36d)](k,{'y':0x0},{'y':-0x14,'duration':x/0x2,'ease':'power2.out','yoyo':!0x0,'repeat':F||0x3,'delay':y});break;case'pulse':u['fromTo'](k,{'scale':0x1},{'scale':1.1,'duration':x/0x2,'ease':cG(0x1f1),'yoyo':!0x0,'repeat':F||0x3,'delay':y});break;case cG(0x19e):u[cG(0x36d)](k,{'x':0x0},{'x':0xa,'duration':x/0x6,'ease':cG(0x28d),'yoyo':!0x0,'repeat':F||0x5,'delay':y});break;case cG(0x2de):u[cG(0x36d)](k,{'filter':cG(0x2d9)},{'filter':cG(0x34f)+(p[cG(0x1ee)]||0xa)+'px\x20'+(p[cG(0x1d9)]||cG(0x25f))+')','duration':x,'ease':A,'yoyo':F>0x0,'repeat':F,'delay':y});break;case'blur':u['fromTo'](k,{'filter':'blur(0px)'},{'filter':'blur('+(p[cG(0x252)]||0x5)+cG(0x23b),'duration':x,'ease':A,'delay':y});break;case cG(0x29a):u['to'](k,{'rotation':0x168,'duration':x,'ease':cG(0x28d),'repeat':F||-0x1,'delay':y});break;case cG(0x16c):u[cG(0x36d)](k,{'rotationY':0x0},{'rotationY':0x168,'duration':x,'ease':A,'delay':y});break;case cG(0x2c0):{let a2=parseFloat(p['scale'])||2.5,a3=p[cG(0x19b)]||cG(0x35f),a4=!p['trigger']||p['trigger']==='load',a5=F!==0x0?F:a4?-0x1:0x0;u['fromTo'](k,{'scale':0x0,'opacity':p[cG(0x2d5)]!=null?parseFloat(p['opacityFrom']):0x1},{'scale':a2,'opacity':0x0,'duration':x,'ease':a3,'repeat':a5,'delay':y,'transformOrigin':'50%\x2050%'});break;}case cG(0x321):{let a6=parseFloat(p[cG(0x224)])||0xa,a7=parseFloat(p['gapLen'])||0x14,a8=p['color']||null,a9=p['direction']===cG(0x354)?cG(0x354):cG(0x17c),aa=k[cG(0x368)][cG(0x29d)]()===cG(0x1f7)&&k[cG(0x336)](cG(0x360))||k;aa[cG(0x265)][cG(0x352)]=a6+'\x20'+a7,a8&&(aa['style']['stroke']=a8),Y=aa['animate']([{'strokeDashoffset':a6+a7},{'strokeDashoffset':0x0}],{'duration':x*0x3e8,'iterations':0x1/0x0,'easing':'linear','direction':a9,'delay':y*0x3e8});break;}case'pathFlow':{let ab=parseInt(p['count'])||0x5,ac=p['shape']||cG(0x283),ad=p['color']||'#0066ff',ae=parseFloat(p[cG(0x247)])||0x8,af=p['direction']===cG(0x354),ag=k['tagName']['toLowerCase']()==='svg'&&k['querySelector'](cG(0x360))||k,ah=ag[cG(0x24c)]||ag[cG(0x229)](cG(0x1f7))||k;if(!ah)break;let {pathEl:ai,tempEl:aj}=W(ag);aj&&a0[cG(0x235)](aj);let ak='http://www.w3.org/2000/svg',al=()=>{const cH=cG;let am;switch(ac){case cH(0x283):am=document[cH(0x1bf)](ak,'polygon'),am[cH(0x294)]('points',ae+cH(0x17b)+-ae/0x2+'\x200,'+ae/0x2);break;case cH(0x2af):am=document['createElementNS'](ak,'path'),am['setAttribute']('d','M'+ae+cH(0x204)+-ae/0x2+'\x20L'+ae*0.35+',0\x20L0,'+ae/0x2+'\x20Z');break;case'circle':am=document[cH(0x1bf)](ak,cH(0x1f9)),am[cH(0x294)]('r',String(ae/0x2));break;case'square':am=document['createElementNS'](ak,cH(0x28f)),am['setAttribute'](cH(0x24f),String(ae)),am['setAttribute']('height',String(ae)),am['setAttribute']('x',String(-ae/0x2)),am['setAttribute']('y',String(-ae/0x2));break;case cH(0x205):{am=document['createElementNS'](ak,cH(0x2ba));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[cH(0x235)](ap*Math['cos'](aq)+','+ap*Math[cH(0x1d3)](aq));}am[cH(0x294)](cH(0x19d),an[cH(0x1f6)]('\x20'));break;}case'custom':{let ar=p[cH(0x2bc)]||'M'+ae+',0\x20L0,'+-ae/0x2+cH(0x1f4)+ae/0x2+'\x20Z';am=document['createElementNS'](ak,cH(0x216)),am[cH(0x294)]('d',ar);break;}default:am=document[cH(0x1bf)](ak,cH(0x28f)),am[cH(0x294)]('width',String(ae*0x2)),am['setAttribute']('height',String(ae/0x3)),am[cH(0x294)]('x',String(-ae)),am[cH(0x294)]('y',String(-ae/0x6));break;}return am['setAttribute'](cH(0x2a2),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':x,'repeat':-0x1,'ease':'none','delay':y});}break;}}},S=null,T=null,Y=null,a0=[],a1=[];if(p[cF(0x203)]==='load')P();else{if(p[cF(0x203)]==='hover')S=P,k['addEventListener']('mouseenter',S);else{if(p['trigger']==='click')T=P,k['addEventListener']('click',T);else{if(p['trigger']===cF(0x2a3)){p['condition_bind']?.['signal']&&await C(p[cF(0x374)][cF(0x240)],k,a3=>{const cI=cF;p[cI(0x31c)]=String(a3);},a1),p['conditionValue_bind']?.[cF(0x240)]&&await C(p[cF(0x267)][cF(0x240)],k,a3=>{const cJ=cF;p[cJ(0x234)]=String(a3);},a1);let a2=p[cF(0x303)]?.[cF(0x240)]||p[cF(0x2a3)];a2&&await C(a2,k,a3=>{const cK=cF;if(Q(a3,p[cK(0x31c)]||cK(0x345),p[cK(0x234)]??cK(0x1a1)))P();else{u['killTweensOf'](k),Y&&(Y[cK(0x19c)](),Y=null);for(let a4 of a0)u[cK(0x1d0)](a4),a4['remove']();a0['length']=0x0;}},a1);}}}}return()=>{const cL=cF;S&&k[cL(0x273)](cL(0x328),S),T&&k['removeEventListener']('click',T),O(a1),Y&&Y[cL(0x19c)]();for(let a3 of a0)u['killTweensOf'](a3),a3['remove']();};}import{PropertiesHelper as j}from'@gokturk413/web-component-designer/dist/elements/services/propertiesService/services/PropertiesHelper.js';var M='dynamic-property-defs';function dt(k){const cM=au;try{let l=k[cM(0x295)](M);if(l){let n=JSON['parse'](l);if(Array[cM(0x365)](n))return n['filter'](o=>o&&o['name']);}}catch(o){console[cM(0x1a0)](cM(0x322)+M+cM(0x2dd),o,k);}return[];}function pt(k,l){const cN=au;let n=Object[cN(0x2e2)](k);for(;n&&n!==HTMLElement[cN(0x214)];){let o=Object['getOwnPropertyDescriptor'](n,l);if(o)return o;n=Object['getPrototypeOf'](n);}return null;}function G(k){const cO=au;let l=dt(k);for(let n of l){let p=n[cO(0x1b2)];if(Object['getOwnPropertyDescriptor'](k,p))continue;let u=pt(k,p);u&&(u['get']||u[cO(0x24e)])?Object['defineProperty'](k,p,{'get'(){const cP=cO;return u[cP(0x326)]?u['get']['call'](this):void 0x0;},'set'(x){const cQ=cO;(u[cQ(0x326)]?u[cQ(0x326)][cQ(0x2ff)](this):void 0x0)!==x&&(u['set']?.['call'](this,x),this['_bindingsRefresh']?.(p),this['dispatchEvent'](new CustomEvent(j['camelToDashCase'](p)+cQ(0x1f8),{'detail':{'newValue':x}})));},'enumerable':!0x0,'configurable':!0x0}):Object[cO(0x29b)](k,p,{'get'(){return this['_'+p];},'set'(x){const cR=cO;this['_'+p]!==x&&(!Number['isNaN'](this['_'+p])||!Number['isNaN'](x))&&(this['_'+p]=x,this[cR(0x2f7)]?.(p),this['dispatchEvent'](new CustomEvent(j[cR(0x2a1)](p)+cR(0x1f8),{'detail':{'newValue':x}})));},'enumerable':!0x0,'configurable':!0x0});let w=k[cO(0x295)](j['camelToDashCase'](p))??n['default'];w!=null&&(n['type']==='number'?w=parseFloat(w):n[cO(0x288)]==='boolean'&&(w=w===''||w===!0x0||w==='true'),u?k[p]=w:k['_'+p]=w);}}function it(k){k instanceof Element&&k['hasAttribute'](M)&&G(k);for(let l of k['querySelectorAll']('['+M+']'))G(l);}var ft=['display','flexDirection',au(0x17a),'justifyContent','alignItems',au(0x202),'padding',au(0x1d7),au(0x1f5)];function gt(k){const cS=au;let l={};if(!k||!k['type']||k[cS(0x288)]==='none')return l;if(k['type']==='flex')l[cS(0x1c2)]='flex',l['flexDirection']=k['direction']||cS(0x2df),l[cS(0x17a)]=k['wrap']||'nowrap',l['justifyContent']=k[cS(0x276)]||'flex-start',l['alignItems']=k[cS(0x30d)]||cS(0x348),k[cS(0x202)]&&(l['gap']=k[cS(0x202)]),k['padding']&&(l['padding']=k['padding']);else{if(k['type']==='grid'){let n=k[cS(0x1d7)],o=k[cS(0x1f5)];if(!n&&!o)return l;l['display']='grid',n&&(l['gridTemplateColumns']=n),o&&(l['gridTemplateRows']=o),k[cS(0x202)]&&(l['gap']=k['gap']),k['padding']&&(l[cS(0x342)]=k[cS(0x342)]);}}return l;}function st(k,l){const cT=au;if(!k)return;let n=gt(l);for(let o of ft)k[cT(0x265)][o]='';for(let p in n)k[cT(0x265)][p]=n[p];}function mt(k){const cU=au;return!!k&&(k[cU(0x288)]===cU(0x1be)||k['type']==='tabs');}function Nt(k){const cV=au;if(!k||!/__layout-generated/[cV(0x359)](k))return k;let l=document[cV(0x18a)](cV(0x311));l['innerHTML']=k;let n=l['querySelector']('.__layout-generated');if(!n)return k;let p;if(n['tagName'][cV(0x29d)]()===cV(0x2ec)){let r=u=>{const cW=cV;if(!u)return cW(0x211);let w=[...u['children']];return w['length']===0x1?w[0x0][cW(0x201)]:w['length']===0x0?cW(0x211):'<div>'+u['innerHTML']+cW(0x33e);};p=r(n['querySelector'](cV(0x242)))+r(n['querySelector']('[data-split-pane=\x222\x22]'));}else p=[...n['children']]['map'](u=>(u['classList']['remove'](cV(0x243)),u['outerHTML']))['join']('');return n[cV(0x201)]=p,l[cV(0x309)];}function Rt(k,l,p){const cX=au;if(!k||!mt(l))return null;let r=k[cX(0x336)](cX(0x299)),u=l[cX(0x288)]==='split'?cX(0x2ec):'webui-tab-container';r&&r[cX(0x368)][cX(0x29d)]()!==u&&(r[cX(0x2da)](),r=null);let w=x=>{const cY=cX;let y=[...k[cY(0x2db)]][cY(0x1b4)](A=>A!==x);for(let A of y)x[cY(0x269)](A);};return r||(r=document[cX(0x18a)](u),r[cX(0x2e6)]['add'](cX(0x2d4)),r[cX(0x265)][cX(0x1b8)]=cX(0x212),w(r),k['appendChild'](r)),l[cX(0x288)]===cX(0x1be)?(r[cX(0x294)](cX(0x1da),l[cX(0x1da)]||'horizontal'),r[cX(0x294)]('split-position',String(l['splitPosition']??0x32))):(l[cX(0x271)]&&r['setAttribute']('tab-labels',l['tabLabels']),r['setAttribute']('active-tab',String(l[cX(0x335)]??0x0)),r['setAttribute'](cX(0x2b2),l['tabPosition']||'top')),p&&(p['style'][cX(0x1db)]='relative',p[cX(0x265)]['display']=cX(0x36c),p['style'][cX(0x24f)]||(p[cX(0x265)]['width']='100%'),p[cX(0x265)][cX(0x192)]||(p['style'][cX(0x192)]='100%')),r;}var vt=au(0x34c),v=Symbol(au(0x1c4)),L=class extends c{static ['style']=d`:host { overflow: hidden }`;#e;#t;#n=[];#r;#i;#a;#o;#s=new Map();constructor(){const cZ=au;super(),this[cZ(0x250)](null,!0x0),this[cZ(0x33a)][v]['control'][cZ(0x231)]['useGlobalStyle']&&m[cZ(0x175)]instanceof CSSStyleSheet&&(this[cZ(0x312)][cZ(0x27d)]=[m['globalStylesheet'],...this['shadowRoot']['adoptedStyleSheets']]),this[cZ(0x33a)][v][cZ(0x289)][cZ(0x231)]['bindToSize']&&(this.#r=new ResizeObserver(k=>{const d0=cZ;let l=this.#i['valueChangedCallbacks'][d0(0x326)](d0(0x24f));if(l){for(let n of l)n();}if(l=this.#i['valueChangedCallbacks']['get'](d0(0x192)),l){for(let o of l)o();}}));}async['connectedCallback'](){const d1=au;this[d1(0x1af)]=new Promise(l=>{const d2=d1;this[d2(0x220)]=l;}),this[d1(0x1af)][d1(0x20f)]=!0x1,this['_parseAttributesToProperties']();try{st(this,this['constructor'][v][d1(0x289)]['settings']?.['layout']);}catch{}this['_setupDynamicProperties'](),this['_bindingsRefresh'](),this.#i={'valueProvider':l=>{const d3=d1;switch(l){case'width':return this[d3(0x260)]()['width'];case'height':return this[d3(0x260)]()[d3(0x192)];}return null;},'valueChangedCallbacks':new Map()},this.#s=new Map(),this.#o=new MutationObserver(p=>{const d4=d1;for(let u of p){for(let w of u[d4(0x35d)]){if(w['nodeType']!==0x1)continue;let x=this.#s['get'](w);if(x){for(let y of x)y();this.#s['delete'](w);}}for(let A of u['addedNodes']){if(A['nodeType']!==0x1)continue;let F=this['_getRelativeSignalsPath'](),P=[];try{let T=window['appShell']['bindingsHelper'][d4(0x184)](A);for(let Y of T)P[d4(0x235)](window['appShell']['bindingsHelper'][d4(0x300)](A,Y,F,this,this.#i));}catch(a0){console[d4(0x1a0)]('repeat\x20binding\x20self-apply\x20error',a0);}let S=window[d4(0x363)]['bindingsHelper']['applyAllBindings'](A,F,this,this.#i);P['push'](...S),this.#s['set'](A,P),z(A)[d4(0x228)](()=>{}),J(A)[d4(0x228)](()=>{});}}}),this.#o['observe'](this['shadowRoot'],{'childList':!0x0,'subtree':!0x0}),this.#t=window['appShell']['bindingsHelper']['applyAllBindings'](this['shadowRoot'],this['_getRelativeSignalsPath'](),this,this.#i),this.#e=await window['appShell'][d1(0x1e4)][d1(0x2e9)]('customControl\x20'+this[d1(0x33a)][v][d1(0x1b2)],this['constructor'][v][d1(0x289)][d1(0x26f)],this['shadowRoot'],this,m);try{this.#e?.['connectedCallback']?.(this,this['shadowRoot']);}catch(l){console['error'](d1(0x366),l);}this['componentReady']['__resolved']=!0x0;try{this['__readyResolve']?.(this);}catch{}for(let n of this.#n)this['addEventListener'](n[0x0],n[0x1]);this.#r?.['observe'](this),this.#a=m[d1(0x1fc)]['on'](o=>{const d5=d1;let p=this[d5(0x33a)][v][d5(0x1b2)];o[d5(0x288)]==d5(0x289)&&o['name']===p&&(this['disconnectedCallback'](),this['_rootDocumentFragment']=this[d5(0x33a)]['template']['content'][d5(0x21f)](!0x0),this['shadowRoot']['innerHTML']='',this[d5(0x312)][d5(0x269)](this[d5(0x346)]),this[d5(0x250)](null,!0x0),this[d5(0x32c)]());});let k=this[d1(0x33a)][v]['control'][d1(0x231)];if(k?.['visibilityEnabled']){let o={'enabled':k[d1(0x249)],'groups':k[d1(0x1b9)]||[],'action':k['visibilityAction']||'hide','redirectScreen':k[d1(0x2b7)]||''};await E['applyVisibility'](this,o);}await E[d1(0x232)](this[d1(0x312)]),z(this[d1(0x312)])['catch'](()=>{}),J(this[d1(0x312)])['catch'](()=>{});}[au(0x280)](){const d6=au;for(let k of this.#n)this['removeEventListener'](k[0x0],k[0x1]);this.#e?.['disconnectedCallback']?.(this,this[d6(0x312)]);for(let l of this.#t)l();this.#t=null,this.#o?.[d6(0x2b3)](),this.#o=null;for(let n of this.#s['values']())for(let o of n)o();this.#s[d6(0x2b6)](),this.#r?.[d6(0x31b)](this),this.#a?.['dispose'](),E[d6(0x256)](this),this['shadowRoot']['querySelectorAll'](d6(0x261))['forEach'](p=>E[d6(0x256)](p)),tt(this[d6(0x312)]),et(this['shadowRoot']);}[au(0x16f)](){G(this),it(this['shadowRoot']);}['_assignEvent'](k,l){const d7=au;let n=[k,l];return this.#n['push'](n),this[d7(0x2a6)](k,l),{'remove':()=>{const d8=d7;let p=this.#n[d8(0x223)](n);this.#n[d8(0x2f8)](p,0x1),this[d8(0x273)](k,l);}};}[au(0x1e2)](){const d9=au;return this['getRootNode']()?.['host']?.[d9(0x1e2)]?.()??'';}};window[au(0x1b1)]=L;function St(k){const da=au;k[0x0]=='/'&&(k=k['substring'](0x1));let l=i[da(0x2a1)](k['replaceAll']('/','-')['replaceAll']('\x20','-')['replaceAll']('--','-'));return l[0x0]==='-'&&(l=l[da(0x318)](0x1)),vt+l;}function K(k,l){const db=au;let p=St(k),u=document['createElement']('template');u[db(0x309)]=l[db(0x32f)];let w=e(l['style']),x={};for(let y in l['properties']){let A=l['properties'][y];A['internal']||(A[db(0x288)]==db(0x1c5)||A[db(0x288)]==db(0x2cd)?x[y]=String:A['type']==db(0x23d)?x[y]=Boolean:A[db(0x288)]=='number'?x[y]=Number:A[db(0x288)]=='date'?x[y]=Date:A['type']==db(0x23f)||A[db(0x288)]==db(0x240)||A[db(0x288)]=='screen'?x[y]=String:(A['type']==db(0x350),x[y]=Object));}if(window[db(0x28e)+k]){window[db(0x28e)+k][db(0x21b)]=u,window[db(0x28e)+k]['style']=w,window[db(0x28e)+k]['properties']=x,window['IobrokerWebuiCustomControl'+k]['_propertiesDictionary']=null;let F=window[db(0x28e)+k][v];F[db(0x289)]=l;}else{window[db(0x28e)+k]=function(){const dc=db;let S=Reflect[dc(0x182)](L,[],window[dc(0x28e)+k]),T=window[dc(0x28e)+k][v][dc(0x289)];for(let Y in T[dc(0x2c3)]){let a0;Y in S&&(a0=S[Y],delete S[Y]),Object['defineProperty'](S,Y,{'get'(){return this['_'+Y];},'set'(a1){const dd=dc;this['_'+Y]!==a1&&(!Number['isNaN'](this['_'+Y])||!Number['isNaN'](a1))&&(this['_'+Y]=a1,this['_bindingsRefresh'](Y),S[dd(0x1c9)](new CustomEvent(i[dd(0x2a1)](Y)+'-changed',{'detail':{'newValue':a1}})));},'enumerable':!0x0,'configurable':!0x0}),a0!==void 0x0?S[Y]=a0:T[dc(0x2c3)][Y]['default']!=null&&(S['_'+Y]=T['properties'][Y][dc(0x1cc)]);}return S;};let P={'control':l,'name':k};window['IobrokerWebuiCustomControl'+k][v]=P,window['IobrokerWebuiCustomControl'+k]['template']=u,window[db(0x28e)+k][db(0x265)]=w,window['IobrokerWebuiCustomControl'+k][db(0x2c3)]=x,window['IobrokerWebuiCustomControl'+k]['_propertiesDictionary']=null,window[db(0x28e)+k][db(0x214)]=Object['create'](L['prototype'],{'constructor':{'value':window['IobrokerWebuiCustomControl'+k]}}),customElements['get'](p)||customElements['define'](p,window['IobrokerWebuiCustomControl'+k]);}}export{U 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,Rt as j,vt as k,v as l,L as m,St as n,K as o,V as p,m as q};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
const ak=c;
|
|
1
|
+
const ak=c;(function(K,L){const aj=c,M=K();while(!![]){try{const Q=parseInt(aj(0x1be))/0x1*(parseInt(aj(0x1de))/0x2)+parseInt(aj(0x1db))/0x3+-parseInt(aj(0x182))/0x4*(-parseInt(aj(0x1c1))/0x5)+-parseInt(aj(0x1e8))/0x6*(parseInt(aj(0x1b0))/0x7)+parseInt(aj(0x1c7))/0x8+-parseInt(aj(0x1bc))/0x9*(-parseInt(aj(0x198))/0xa)+-parseInt(aj(0x18c))/0xb*(parseInt(aj(0x1ae))/0xc);if(Q===L)break;else M['push'](M['shift']());}catch(R){M['push'](M['shift']());}}}(a,0x8c278));import{a as d,b as e,c as h,d as i,e as n,f as o,m as p}from'./chunk-PJYK24KZ.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';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';function a(){const aQ=['stretchWidth','getWebuiObject','push','_resizeObserver','none','🔄\x20[ScreenViewer]\x20_loadScreen\x20called\x20for:','filter','pointerEvents','bindingsHelper','_stretch','iobrokerWebuiRootUrl','93460Qncoiv','ScreenViewer','innerHTML','data-visibility-groups','applyAllBindings','dispose','px\x20','🔄\x20[ScreenViewer]\x20Starting\x20to\x20load\x20screen:','_relativeSignalsPath','width','_scriptObject','objects','globalStyle','removeAllChildnodes','❌\x20[Screen\x20Visibility]\x20Server\x20check\x20failed:','appendChild','get','transformOrigin','getCurrentUser','action','error','href','132ZtUpmv','stretch','7669319qryzIU','adoptedStyleSheets','_editorAnimationsEnabled','connectedCallback','observe','objectsChanged','setHTMLUnsafe','_rootShadow','[data-visibility-groups]','screenName','0.5','[bind-prop\x5c:hidden]','486kFlbqG','stretchHeight','107743cHvTVj','⛔\x20[Screen\x20Visibility]\x20Server\x20denied\x20access\x20to:','indexOf','215prIryk','checkScreenAccess','_screenName','_iobBindings','_loadScreen','createDocumentFragment','3520016MMBZJQ','iobroker-webui-3dscreen-viewer','-changed','attachShadow','useStyleFromScreenForViewer','_screensChangedSubscription','appShell','runtime.html','camelToDashCase','dispatchEvent','parseHTMLUnsafe','refreshView','_applyEditorAnimationState','head','_editorPauseSheet','location','redirectScreen','_stretchWidth','default','_getDomElements','146076hPCqlk','_stretchView','_root','16oPHVjD','_loading','display','parseCssBindings','_useStyleFromScreenForViewer','root','relativeSignalsPath','removeEventListener','style','message','6ObEfrV','namespace','remove','defineProperty','_stretchHeight','*,\x20::before,\x20::after\x20{\x20animation-play-state:\x20paused\x20!important;\x20transition:\x20none\x20!important;\x20}','loadScreenData','_getDomElement','error\x20loading\x203d\x20viewer','[ScreenViewer]\x20Group\x20visibility\x20check\x20error:','name','enabled','_isEditorAnimationsPaused','visible','screen','catch','prototype','log','offsetWidth','addEventListener','80068UWXkGe','disable','replaceSync','disconnectedCallback','📥\x20[ScreenViewer]\x20Screen\x20object\x20received:','split','warn','<div\x20style=\x22padding:20px;color:red;\x22>Error\x20loading\x20screen:\x20','✅\x20[ScreenViewer]\x20Screen\x20loaded\x20successfully:','_refreshViewSubscription','1046364tmhJYU'];a=function(){return aQ;};return a();}function c(b,d){b=b-0x170;const e=a();let f=e[b];return f;}var _;window['ensureGSAP']=d;var l=class extends s{static{_=this;}static ['style']=t`
|
|
2
2
|
:host {
|
|
3
3
|
height: 100%;
|
|
4
4
|
position: relative;
|
|
@@ -18,4 +18,4 @@ const ak=c;function c(b,d){b=b-0x1cb;const e=a();let f=e[b];return f;}(function(
|
|
|
18
18
|
|
|
19
19
|
*[node-projects-hide-at-run-time] {
|
|
20
20
|
display: none !important;
|
|
21
|
-
}`;static [ak(0x1de)]=B`<div id="root"></div>`;[ak(0x229)];['_loading'];['_refreshViewSubscription'];[ak(0x232)];[ak(0x224)];[ak(0x207)];[ak(0x200)];['_rootShadow'];#e=[];[ak(0x23f)];get[ak(0x1df)](){const al=ak;return this[al(0x23f)];}set[ak(0x1df)](K){const am=ak;this[am(0x23f)]!=K&&(this[am(0x23f)]=K,this['_loadScreen']());}['_stretchWidth'];get[ak(0x1d9)](){return this['_stretchWidth'];}set['stretchWidth'](K){const an=ak;this[an(0x238)]!=K&&(this[an(0x238)]=K,this['_loadScreen']());}['_stretchHeight'];get['stretchHeight'](){return this['_stretchHeight'];}set[ak(0x20f)](K){const ao=ak;this[ao(0x22b)]!=K&&(this[ao(0x22b)]=K,this['_loadScreen']());}[ak(0x23b)];get['relativeSignalsPath'](){const ap=ak;return this[ap(0x23b)];}set['relativeSignalsPath'](K){const aq=ak;this[aq(0x23b)]!=K&&(this[aq(0x23b)]=K);}[ak(0x1e9)];get[ak(0x1f9)](){const ar=ak;return this[ar(0x1e9)];}set[ak(0x1f9)](K){const as=ak;this[as(0x1e9)]!=K&&(this['_screenName']=K,this[as(0x1ef)]());}async[ak(0x1cc)](K){const at=ak;this['_screenName']!=K&&(this[at(0x1e9)]=K,await this['_loadScreen']());}['objects'];['_useStyleFromScreenForViewer'];get[ak(0x1fe)](){return this['_useStyleFromScreenForViewer'];}set[ak(0x1fe)](K){const au=ak;this[au(0x202)]!=K&&(this['_useStyleFromScreenForViewer']=K,this['_loadScreen']());}constructor(){const av=ak;super(),this[av(0x200)]=super[av(0x235)](av(0x241)),this['_rootShadow']=this[av(0x200)]['attachShadow']({'mode':'open'}),this[av(0x233)]();}['_getDomElement'](K){return this['_rootShadow']['getElementById'](K);}['_getDomElements'](K){return this['_rootShadow']['querySelectorAll'](K);}['ready'](){const aw=ak;this[aw(0x1dd)](),this['_screenName']&&this['_loadScreen']();}['removeBindings'](){const ax=ak;this['_iobBindings']&&this[ax(0x229)][ax(0x220)](K=>K()),this[ax(0x229)]=null,h(this[ax(0x1ea)]),n(this[ax(0x1ea)]);}async['_loadScreen'](){const ay=ak;if(console['log'](ay(0x1d0),this[ay(0x1f9)]),this['screenName']&&!this[ay(0x1fd)]){this['_loading']=!0x0,console[ay(0x21f)](ay(0x1f8),this['screenName']),await p['waitForReady'](),this[ay(0x1fd)]=!0x1,this[ay(0x214)]();try{console[ay(0x21f)]('📥\x20[ScreenViewer]\x20Getting\x20screen\x20object\x20for:',this['screenName']);let K=await p['getWebuiObject'](ay(0x21c),this[ay(0x1f9)]);console[ay(0x21f)]('📥\x20[ScreenViewer]\x20Screen\x20object\x20received:',K?'YES':'NO'),z[ay(0x1ec)](this['_rootShadow']),K?(console['log']('🚀\x20[ScreenViewer]\x20Loading\x20screen\x20data...'),await this['loadScreenData'](K['html'],K['style'],K[ay(0x212)],K[ay(0x231)],K[ay(0x1d8)]),console[ay(0x21f)](ay(0x240),this['screenName'])):console['warn']('⚠️\x20[ScreenViewer]\x20Screen\x20object\x20is\x20null\x20for:',this[ay(0x1f9)]);}catch(L){console[ay(0x1f7)]('❌\x20[ScreenViewer]\x20Error\x20loading\x20screen\x20\x22'+this[ay(0x1f9)]+'\x22:',L),this[ay(0x1ea)][ay(0x1e7)]=ay(0x1e3)+L[ay(0x239)]+'</div>';}}}async[ak(0x1e5)](K,L,M,Q,R){const az=ak;if(this[az(0x1f9)])try{let Z=p[az(0x234)]||(await p['getCurrentUser']())?.['name'],a0=p['connection'][az(0x22e)](p['namespace'],az(0x208),{'screenName':this[az(0x1f9)],'username':Z,'project':p['currentProject'],'mode':'read','type':az(0x21c)}),a1=new Promise(a3=>setTimeout(()=>a3({'allowed':!0x0,'_timeout':!0x0}),0x1388)),a2=await Promise[az(0x20c)]([a0,a1]);if(!a2['allowed']){if(console['warn']('⛔\x20[Screen\x20Visibility]\x20Server\x20denied\x20access\x20to:',this[az(0x1f9)]),(a2['action']||'hide')===az(0x1d7)&&a2[az(0x1f3)]){this['screenName']=a2[az(0x1f3)],this[az(0x1ef)]();return;}this['_rootShadow'][az(0x1e7)]='\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['_timeout']?console[az(0x1fc)]('[Screen\x20Visibility]\x20Backend\x20timeout\x20—\x20fail-open'):console['log'](az(0x225),this[az(0x1f9)]);}catch(a3){console[az(0x1f7)](az(0x244),a3);}if(R)for(let a4 in R){let a5=R[a4];Object[az(0x1fa)](this,a4,{'get'(){return this['_'+a4];},'set'(a6){const aA=az;this['_'+a4]!==a6&&(this['_'+a4]=a6,this[aA(0x1ed)](new CustomEvent(J[aA(0x203)](a4)+'-changed',{'detail':{'newValue':a6}})));},'enumerable':!0x0,'configurable':!0x0}),a5[az(0x1e1)]&&(this['_'+a4]=a5[az(0x1e1)]);}let T=p['config']?.[az(0x209)]??'';this[az(0x237)](Q);let U=null;if(L)try{let a6=await window['appShell']['bindingsHelper'][az(0x211)](L,this,this[az(0x20b)],this);U=a6[0x0],this['_iobBindings']=a6[0x1];}catch(a7){console['warn'](a7),U=v(L);}else this[az(0x229)]=null;T&&L?this[az(0x1ea)]['adoptedStyleSheets']=[_['style'],p['globalStylesheet'],U]:T?this[az(0x1ea)][az(0x1f6)]=[_[az(0x1e8)],p['globalStylesheet']]:L?this[az(0x1ea)]['adoptedStyleSheets']=[_[az(0x1e8)],U]:this[az(0x1ea)][az(0x1f6)]=[_[az(0x1e8)]],this[az(0x202)]&&(this['shadowRoot'][az(0x1f6)]=[_[az(0x1db)],...this['_rootShadow']['adoptedStyleSheets']]);let W;if(Document[az(0x201)]&&!I)this[az(0x1ea)]['setHTMLUnsafe'](K);else{W=new DOMParser()[az(0x1d2)](K,'text/html',{'includeShadowRoots':!0x0});let a8=document['createDocumentFragment']();for(let a9 of W['head']['childNodes'])a8[az(0x1dc)](a9);for(let aa of W['body'][az(0x21b)])a8[az(0x1dc)](aa);this['_rootShadow'][az(0x1dc)](a8);}let X=[...this['_rootShadow'][az(0x1cd)](az(0x205))];for(let ab of X){let ac=ab['getAttribute']('data-visibility-groups')?.['split'](',')[az(0x1d3)](ae=>ae)||[],ad=ab['getAttribute']('data-visibility-action')||az(0x221);if(ac['length']>0x0)try{let ae=await p['checkVisibility']({'enabled':!0x0,'groups':ac,'action':ad});ad==='disable'&&!ae['enabled']?(ab['style'][az(0x1d5)]='none',ab[az(0x1e8)][az(0x1e2)]='0.5'):ad!==az(0x1cf)&&!ae['visible']&&ab[az(0x217)]();}catch(af){console['error']('[ScreenViewer]\x20Group\x20visibility\x20check\x20error:',af);}}for(let ag of this[az(0x1ea)]['querySelectorAll'](az(0x1ee)))Object['defineProperty'](ag,az(0x226),{'configurable':!0x0,'set'(ah){const aB=az;ag[aB(0x1e8)][aB(0x218)]=ah?'none':'';},'get'(){return ag['style']['display']==='none';}});for(let ah of this['_rootShadow'][az(0x1cd)]('[bind-prop\x5c:disable]'))Object[az(0x1fa)](ah,'disable',{'configurable':!0x0,'set'(ai){const aC=az;ah['style']['pointerEvents']=ai?'none':'',ah[aC(0x1e8)][aC(0x1e2)]=ai?'0.5':'';},'get'(){const aD=az;return ah['style']['pointerEvents']===aD(0x227);}});!customElements[az(0x1d1)]('iobroker-webui-3dscreen-viewer')&&this[az(0x1ea)]['querySelector'](az(0x23c))&&importShim(window[az(0x213)]+az(0x1f4))[az(0x1e4)](ai=>console[az(0x1fc)](az(0x1d6),ai)),o(this['_rootShadow']);let Y=window['appShell'][az(0x1ff)]['applyAllBindings'](this[az(0x1ea)],this['relativeSignalsPath'],this);if(this[az(0x229)]?this[az(0x229)]['push'](...Y):this[az(0x229)]=Y,this['_scriptObject']=await window['appShell']['scriptSystem']['assignAllScripts']('screenviewer\x20-\x20'+this['screenName'],M,this[az(0x1ea)],this,p),this[az(0x224)]?.[az(0x1e1)]&&!this[az(0x224)]?.[az(0x243)]&&(this[az(0x224)]=this['_scriptObject']['default']),this['_scriptObject']?.['connectedCallback'])try{this['_scriptObject'][az(0x243)](this,this[az(0x1ea)]);}catch(ai){console['error']('connectedCallback\x20error\x20for\x20\x22'+this['screenName']+'\x22:',ai);}this['_isEditorAnimationsPaused']()||(e(this[az(0x1ea)])['catch'](()=>{}),i(this[az(0x1ea)])[az(0x1e4)](()=>{})),this[az(0x1f2)]();}['_stretchView'](K){const aE=ak;let L=this['stretch']??K?.[aE(0x1df)];if(!L||L===aE(0x227))return;let M=this[aE(0x238)]??G(K['width'],this,aE(0x23e)),Q=this[aE(0x22b)]??G(K['height'],this,'height');this['_root'][aE(0x1e8)]['width']=M+'px',this['_root']['style'][aE(0x215)]=Q+'px';let R=this['offsetWidth']/M,T=this[aE(0x1f1)]/Q,U=0x0,V=0x0;L=='uniform'?R>T?(R=T,U=(this[aE(0x20a)]-M*R)/0x2):(T=R,V=(this[aE(0x1f1)]-Q*T)/0x2):L==aE(0x222)&&(R>T?(T=R,V=(this[aE(0x1f1)]-Q*T)/0x2):(R=T,U=(this['offsetWidth']-M*R)/0x2)),this['_root']['style'][aE(0x1da)]=aE(0x1d4),this['_root']['style']['scale']=R+'\x20'+T,this[aE(0x200)][aE(0x1e8)]['translate']=U+aE(0x247)+V+'px',this[aE(0x207)]||(this[aE(0x207)]=new ResizeObserver(()=>{this['_stretchView'](K);}),this[aE(0x207)][aE(0x216)](this));}['_getRelativeSignalsPath'](){const aF=ak;return this[aF(0x23b)];}[ak(0x204)](){const aG=ak;return!window['location']['href']['includes'](aG(0x21a))&&window[aG(0x210)]?.[aG(0x21d)]===!0x0;}['_editorPauseSheet']=null;[ak(0x1f2)](){const aH=ak;if(window[aH(0x228)][aH(0x1e6)]['includes']('runtime.html'))return;window['appShell']?.['_editorAnimationsEnabled']===!0x0?(h(this[aH(0x1ea)]),n(this['_rootShadow']),this['_editorPauseSheet']||(this['_editorPauseSheet']=new CSSStyleSheet(),this['_editorPauseSheet'][aH(0x242)]('*,\x20::before,\x20::after\x20{\x20animation-play-state:\x20paused\x20!important;\x20transition:\x20none\x20!important;\x20}')),this[aH(0x1ea)][aH(0x1f6)][aH(0x219)](this['_editorPauseSheet'])||(this[aH(0x1ea)]['adoptedStyleSheets']=[...this['_rootShadow'][aH(0x1f6)],this['_editorPauseSheet']])):(this['_editorPauseSheet']&&(this['_rootShadow'][aH(0x1f6)]=this['_rootShadow']['adoptedStyleSheets'][aH(0x1d3)](K=>K!==this['_editorPauseSheet'])),this[aH(0x1ea)]['childElementCount']>0x0&&(e(this[aH(0x1ea)])['catch'](()=>{}),i(this['_rootShadow'])['catch'](()=>{})));}['_onEditorAnimationsChanged']=K=>this['_applyEditorAnimationState']();['connectedCallback'](){const aI=ak;window['addEventListener'](aI(0x20e),this['_onEditorAnimationsChanged']),this['_refreshViewSubscription']=p['refreshView']['on'](()=>this['_loadScreen']()),this[aI(0x232)]=p['objectsChanged']['on'](L=>{const aJ=aI;this['_screenName']&&L[aJ(0x22f)]==aJ(0x21c)&&L['name']===this['_screenName']&&this['_loadScreen']();});let K=this['_scriptObject'];K?.[aI(0x1e1)]&&!K?.[aI(0x243)]&&(K=K['default']),K?.[aI(0x243)]&&K[aI(0x243)](this,this['_rootShadow']);for(let L of this.#e)this['addEventListener'](L[0x0],L[0x1]);this['_resizeObserver']&&this[aI(0x207)]['observe'](this);}['disconnectedCallback'](){const aK=ak;window[aK(0x1cb)]('webui-editor-animations-changed',this[aK(0x249)]);for(let K of this.#e)this['removeEventListener'](K[0x0],K[0x1]);this['_refreshViewSubscription']?.[aK(0x22a)](),this['_screensChangedSubscription']?.['dispose'](),this['_scriptObject']?.[aK(0x22c)]?.(this,this[aK(0x1ea)]),this[aK(0x207)]&&this['_resizeObserver'][aK(0x22d)]();}[ak(0x23a)](K,L){const aL=ak;let M=[K,L];return this.#e[aL(0x1eb)](M),this['addEventListener'](K,L),{'remove':()=>{const aM=aL;let Q=this.#e['indexOf'](M);this.#e[aM(0x248)](Q,0x1),this['removeEventListener'](K,L);}};}};q([D()],l[ak(0x206)],'stretch',null),q([D()],l[ak(0x206)],ak(0x1d9),null),q([D()],l[ak(0x206)],ak(0x20f),null),q([D()],l['prototype'],'relativeSignalsPath',null),q([D()],l['prototype'],ak(0x1f9),null),q([D(Boolean)],l['prototype'],ak(0x1fe),null),l=_=q([y(ak(0x1ce))],l),window['ScreenViewer']=l;export{l as a};
|
|
21
|
+
}`;static ['template']=B`<div id="root"></div>`;[ak(0x1c4)];['_loading'];['_refreshViewSubscription'];[ak(0x1cc)];['_scriptObject'];[ak(0x190)];['_root'];['_rootShadow'];#e=[];[ak(0x196)];get[ak(0x1af)](){const al=ak;return this[al(0x196)];}set[ak(0x1af)](K){this['_stretch']!=K&&(this['_stretch']=K,this['_loadScreen']());}['_stretchWidth'];get['stretchWidth'](){const am=ak;return this[am(0x1d8)];}set['stretchWidth'](K){const an=ak;this[an(0x1d8)]!=K&&(this['_stretchWidth']=K,this['_loadScreen']());}['_stretchHeight'];get[ak(0x1bd)](){const ao=ak;return this[ao(0x172)];}set['stretchHeight'](K){const ap=ak;this['_stretchHeight']!=K&&(this[ap(0x172)]=K,this[ap(0x1c5)]());}[ak(0x1a0)];get[ak(0x1e4)](){const aq=ak;return this[aq(0x1a0)];}set['relativeSignalsPath'](K){const ar=ak;this[ar(0x1a0)]!=K&&(this[ar(0x1a0)]=K);}[ak(0x1c3)];get['screenName'](){const as=ak;return this[as(0x1c3)];}set['screenName'](K){const at=ak;this['_screenName']!=K&&(this['_screenName']=K,this[at(0x1c5)]());}async['setScreenNameAndLoad'](K){const au=ak;this['_screenName']!=K&&(this[au(0x1c3)]=K,await this['_loadScreen']());}[ak(0x1a3)];[ak(0x1e2)];get[ak(0x1cb)](){return this['_useStyleFromScreenForViewer'];}set['useStyleFromScreenForViewer'](K){const av=ak;this[av(0x1e2)]!=K&&(this[av(0x1e2)]=K,this['_loadScreen']());}constructor(){const aw=ak;super(),this[aw(0x1dd)]=super['_getDomElement'](aw(0x1e3)),this['_rootShadow']=this['_root'][aw(0x1ca)]({'mode':'open'}),this['_restoreCachedInititalValues']();}[ak(0x175)](K){return this['_rootShadow']['getElementById'](K);}[ak(0x1da)](K){return this['_rootShadow']['querySelectorAll'](K);}['ready'](){const ax=ak;this['_parseAttributesToProperties'](),this['_screenName']&&this[ax(0x1c5)]();}['removeBindings'](){const ay=ak;this[ay(0x1c4)]&&this['_iobBindings']['forEach'](K=>K()),this[ay(0x1c4)]=null,h(this['_rootShadow']),n(this[ay(0x1b7)]);}async['_loadScreen'](){const az=ak;if(console['log'](az(0x192),this['screenName']),this['screenName']&&!this['_loading']){this[az(0x1df)]=!0x0,console['log'](az(0x19f),this['screenName']),await p['waitForReady'](),this['_loading']=!0x1,this['removeBindings']();try{console[az(0x17f)]('📥\x20[ScreenViewer]\x20Getting\x20screen\x20object\x20for:',this['screenName']);let K=await p[az(0x18e)]('screen',this['screenName']);console[az(0x17f)](az(0x186),K?'YES':'NO'),z[az(0x1a5)](this[az(0x1b7)]),K?(console[az(0x17f)]('🚀\x20[ScreenViewer]\x20Loading\x20screen\x20data...'),await this['loadScreenData'](K['html'],K['style'],K['script'],K['settings'],K['properties']),console[az(0x17f)](az(0x18a),this[az(0x1b9)])):console[az(0x188)]('⚠️\x20[ScreenViewer]\x20Screen\x20object\x20is\x20null\x20for:',this[az(0x1b9)]);}catch(L){console[az(0x1ac)]('❌\x20[ScreenViewer]\x20Error\x20loading\x20screen\x20\x22'+this[az(0x1b9)]+'\x22:',L),this['_rootShadow']['innerHTML']=az(0x189)+L[az(0x1e7)]+'</div>';}}}async[ak(0x174)](K,L,M,Q,R){const aA=ak;if(this['screenName'])try{let Z=p['userName']||(await p[aA(0x1aa)]())?.[aA(0x178)],a0=p['connection']['sendTo'](p[aA(0x1e9)],aA(0x1c2),{'screenName':this[aA(0x1b9)],'username':Z,'project':p['currentProject'],'mode':'read','type':aA(0x17c)}),a1=new Promise(a3=>setTimeout(()=>a3({'allowed':!0x0,'_timeout':!0x0}),0x1388)),a2=await Promise['race']([a0,a1]);if(!a2['allowed']){if(console['warn'](aA(0x1bf),this[aA(0x1b9)]),(a2[aA(0x1ab)]||'hide')==='redirect'&&a2[aA(0x1d7)]){this[aA(0x1b9)]=a2[aA(0x1d7)],this['_loadScreen']();return;}this['_rootShadow'][aA(0x19a)]='\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['_timeout']?console['warn']('[Screen\x20Visibility]\x20Backend\x20timeout\x20—\x20fail-open'):console[aA(0x17f)]('✅\x20[Screen\x20Visibility]\x20Server\x20granted\x20access\x20to:',this['screenName']);}catch(a3){console['error'](aA(0x1a6),a3);}if(R)for(let a4 in R){let a5=R[a4];Object['defineProperty'](this,a4,{'get'(){return this['_'+a4];},'set'(a6){const aB=aA;this['_'+a4]!==a6&&(this['_'+a4]=a6,this[aB(0x1d0)](new CustomEvent(J[aB(0x1cf)](a4)+aB(0x1c9),{'detail':{'newValue':a6}})));},'enumerable':!0x0,'configurable':!0x0}),a5['default']&&(this['_'+a4]=a5['default']);}let T=p['config']?.[aA(0x1a4)]??'';this[aA(0x1dc)](Q);let U=null;if(L)try{let a6=await window['appShell']['bindingsHelper'][aA(0x1e1)](L,this,this['relativeSignalsPath'],this);U=a6[0x0],this['_iobBindings']=a6[0x1];}catch(a7){console['warn'](a7),U=v(L);}else this['_iobBindings']=null;T&&L?this['_rootShadow'][aA(0x1b1)]=[_[aA(0x1e6)],p['globalStylesheet'],U]:T?this['_rootShadow'][aA(0x1b1)]=[_['style'],p['globalStylesheet']]:L?this[aA(0x1b7)]['adoptedStyleSheets']=[_['style'],U]:this['_rootShadow'][aA(0x1b1)]=[_['style']],this[aA(0x1e2)]&&(this['shadowRoot'][aA(0x1b1)]=[_['styleIfFromScreen'],...this['_rootShadow'][aA(0x1b1)]]);let W;if(Document[aA(0x1d1)]&&!I)this[aA(0x1b7)][aA(0x1b6)](K);else{W=new DOMParser()['parseFromString'](K,'text/html',{'includeShadowRoots':!0x0});let a8=document[aA(0x1c6)]();for(let a9 of W[aA(0x1d4)]['childNodes'])a8[aA(0x1a7)](a9);for(let aa of W['body']['childNodes'])a8['appendChild'](aa);this[aA(0x1b7)]['appendChild'](a8);}let X=[...this[aA(0x1b7)]['querySelectorAll'](aA(0x1b8))];for(let ab of X){let ac=ab['getAttribute'](aA(0x19b))?.[aA(0x187)](',')['filter'](ae=>ae)||[],ad=ab['getAttribute']('data-visibility-action')||'hide';if(ac['length']>0x0)try{let ae=await p['checkVisibility']({'enabled':!0x0,'groups':ac,'action':ad});ad==='disable'&&!ae[aA(0x179)]?(ab['style'][aA(0x194)]='none',ab[aA(0x1e6)]['opacity']='0.5'):ad!==aA(0x183)&&!ae[aA(0x17b)]&&ab[aA(0x170)]();}catch(af){console[aA(0x1ac)](aA(0x177),af);}}for(let ag of this['_rootShadow']['querySelectorAll'](aA(0x1bb)))Object['defineProperty'](ag,'hidden',{'configurable':!0x0,'set'(ah){const aC=aA;ag[aC(0x1e6)][aC(0x1e0)]=ah?aC(0x191):'';},'get'(){const aD=aA;return ag[aD(0x1e6)][aD(0x1e0)]===aD(0x191);}});for(let ah of this[aA(0x1b7)]['querySelectorAll']('[bind-prop\x5c:disable]'))Object[aA(0x171)](ah,aA(0x183),{'configurable':!0x0,'set'(ai){const aE=aA;ah[aE(0x1e6)][aE(0x194)]=ai?'none':'',ah['style']['opacity']=ai?aE(0x1ba):'';},'get'(){const aF=aA;return ah['style'][aF(0x194)]===aF(0x191);}});!customElements[aA(0x1a8)](aA(0x1c8))&&this[aA(0x1b7)]['querySelector'](aA(0x1c8))&&importShim(window[aA(0x197)]+'dist/frontend/config/IobrokerWebui3DScreenViewer.js')['catch'](ai=>console['warn'](aA(0x176),ai)),o(this[aA(0x1b7)]);let Y=window[aA(0x1cd)][aA(0x195)][aA(0x19c)](this[aA(0x1b7)],this[aA(0x1e4)],this);if(this['_iobBindings']?this['_iobBindings']['push'](...Y):this[aA(0x1c4)]=Y,this['_scriptObject']=await window['appShell']['scriptSystem']['assignAllScripts']('screenviewer\x20-\x20'+this[aA(0x1b9)],M,this[aA(0x1b7)],this,p),this['_scriptObject']?.[aA(0x1d9)]&&!this['_scriptObject']?.['connectedCallback']&&(this[aA(0x1a2)]=this[aA(0x1a2)]['default']),this[aA(0x1a2)]?.['connectedCallback'])try{this['_scriptObject'][aA(0x1b3)](this,this[aA(0x1b7)]);}catch(ai){console[aA(0x1ac)]('connectedCallback\x20error\x20for\x20\x22'+this['screenName']+'\x22:',ai);}this['_isEditorAnimationsPaused']()||(e(this[aA(0x1b7)])[aA(0x17d)](()=>{}),i(this[aA(0x1b7)])['catch'](()=>{})),this[aA(0x1d3)]();}[ak(0x1dc)](K){const aG=ak;let L=this[aG(0x1af)]??K?.['stretch'];if(!L||L==='none')return;let M=this[aG(0x1d8)]??G(K[aG(0x1a1)],this,'width'),Q=this['_stretchHeight']??G(K['height'],this,'height');this[aG(0x1dd)][aG(0x1e6)]['width']=M+'px',this[aG(0x1dd)]['style']['height']=Q+'px';let R=this['offsetWidth']/M,T=this['offsetHeight']/Q,U=0x0,V=0x0;L=='uniform'?R>T?(R=T,U=(this[aG(0x180)]-M*R)/0x2):(T=R,V=(this['offsetHeight']-Q*T)/0x2):L=='uniformToFill'&&(R>T?(T=R,V=(this['offsetHeight']-Q*T)/0x2):(R=T,U=(this['offsetWidth']-M*R)/0x2)),this['_root']['style'][aG(0x1a9)]='0\x200',this['_root']['style']['scale']=R+'\x20'+T,this[aG(0x1dd)][aG(0x1e6)]['translate']=U+aG(0x19e)+V+'px',this[aG(0x190)]||(this['_resizeObserver']=new ResizeObserver(()=>{const aH=aG;this[aH(0x1dc)](K);}),this['_resizeObserver']['observe'](this));}['_getRelativeSignalsPath'](){const aI=ak;return this[aI(0x1a0)];}[ak(0x17a)](){const aJ=ak;return!window[aJ(0x1d6)][aJ(0x1ad)]['includes'](aJ(0x1ce))&&window['appShell']?.[aJ(0x1b2)]===!0x0;}['_editorPauseSheet']=null;['_applyEditorAnimationState'](){const aK=ak;if(window[aK(0x1d6)]['href']['includes'](aK(0x1ce)))return;window[aK(0x1cd)]?.[aK(0x1b2)]===!0x0?(h(this['_rootShadow']),n(this['_rootShadow']),this[aK(0x1d5)]||(this[aK(0x1d5)]=new CSSStyleSheet(),this[aK(0x1d5)][aK(0x184)](aK(0x173))),this['_rootShadow']['adoptedStyleSheets']['includes'](this[aK(0x1d5)])||(this['_rootShadow'][aK(0x1b1)]=[...this['_rootShadow']['adoptedStyleSheets'],this[aK(0x1d5)]])):(this[aK(0x1d5)]&&(this['_rootShadow'][aK(0x1b1)]=this[aK(0x1b7)][aK(0x1b1)][aK(0x193)](K=>K!==this[aK(0x1d5)])),this['_rootShadow']['childElementCount']>0x0&&(e(this[aK(0x1b7)])[aK(0x17d)](()=>{}),i(this['_rootShadow'])['catch'](()=>{})));}['_onEditorAnimationsChanged']=K=>this['_applyEditorAnimationState']();['connectedCallback'](){const aL=ak;window[aL(0x181)]('webui-editor-animations-changed',this['_onEditorAnimationsChanged']),this[aL(0x18b)]=p[aL(0x1d2)]['on'](()=>this[aL(0x1c5)]()),this['_screensChangedSubscription']=p[aL(0x1b5)]['on'](L=>{const aM=aL;this[aM(0x1c3)]&&L['type']=='screen'&&L['name']===this[aM(0x1c3)]&&this['_loadScreen']();});let K=this[aL(0x1a2)];K?.[aL(0x1d9)]&&!K?.[aL(0x1b3)]&&(K=K['default']),K?.['connectedCallback']&&K['connectedCallback'](this,this[aL(0x1b7)]);for(let L of this.#e)this['addEventListener'](L[0x0],L[0x1]);this[aL(0x190)]&&this[aL(0x190)][aL(0x1b4)](this);}[ak(0x185)](){const aN=ak;window[aN(0x1e5)]('webui-editor-animations-changed',this['_onEditorAnimationsChanged']);for(let K of this.#e)this['removeEventListener'](K[0x0],K[0x1]);this['_refreshViewSubscription']?.[aN(0x19d)](),this['_screensChangedSubscription']?.['dispose'](),this['_scriptObject']?.['disconnectedCallback']?.(this,this[aN(0x1b7)]),this[aN(0x190)]&&this['_resizeObserver']['disconnect']();}['_assignEvent'](K,L){const aO=ak;let M=[K,L];return this.#e[aO(0x18f)](M),this['addEventListener'](K,L),{'remove':()=>{const aP=aO;let Q=this.#e[aP(0x1c0)](M);this.#e['splice'](Q,0x1),this[aP(0x1e5)](K,L);}};}};q([D()],l['prototype'],'stretch',null),q([D()],l[ak(0x17e)],ak(0x18d),null),q([D()],l['prototype'],'stretchHeight',null),q([D()],l['prototype'],'relativeSignalsPath',null),q([D()],l['prototype'],'screenName',null),q([D(Boolean)],l[ak(0x17e)],'useStyleFromScreenForViewer',null),l=_=q([y('iobroker-webui-screen-viewer')],l),window[ak(0x199)]=l;export{l as a};
|