@camera.ui/server 2.0.17 → 2.0.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (158) hide show
  1. package/dist/interface/assets/{404-BWRNG7e3.js → 404-hjvRJoie.js} +1 -1
  2. package/dist/interface/assets/{About-CWvfgUA-.js → About-CXK9lps9.js} +1 -1
  3. package/dist/interface/assets/{Adminpanel-Cat_euTC.js → Adminpanel-D1bsiC_B.js} +1 -1
  4. package/dist/interface/assets/{Automation-cp0lTCAv.js → Automation-BE-lA9i2.js} +3 -3
  5. package/dist/interface/assets/{AutomationImport-mCGSgys2.js → AutomationImport-B1Wsf3O1.js} +2 -2
  6. package/dist/interface/assets/{AutomationStore-udNOn3FR.js → AutomationStore-BUmTKbR8.js} +2 -2
  7. package/dist/interface/assets/{AutomationStoreDetail-CcVksadt.js → AutomationStoreDetail-DfENt4wG.js} +2 -2
  8. package/dist/interface/assets/{Automations-CcQLbmoN.js → Automations-3SibYydl.js} +2 -2
  9. package/dist/interface/assets/{Camera-Cq466-gT.js → Camera-ByUigyg3.js} +2 -2
  10. package/dist/interface/assets/{CameraConsole-A414-zXW.js → CameraConsole-D_1E2i7a.js} +1 -1
  11. package/dist/interface/assets/{Cameras-CW5XnJ1g.js → Cameras-Co54hUIY.js} +1 -1
  12. package/dist/interface/assets/{Camview-zK6fnWI0.js → Camview-D83wwTUB.js} +1 -1
  13. package/dist/interface/assets/{Config-R2N_QUER.js → Config-CZ3qg4V7.js} +1 -1
  14. package/dist/interface/assets/{ConfigActionCameraControl-DdW92QxO.js → ConfigActionCameraControl-BkP4KpkL.js} +1 -1
  15. package/dist/interface/assets/{ConfigActionDelay-BiCLaHDd.js → ConfigActionDelay-CW3x89X3.js} +1 -1
  16. package/dist/interface/assets/{ConfigActionHttp-BvM-8hTt.js → ConfigActionHttp-CqRThGAM.js} +1 -1
  17. package/dist/interface/assets/{ConfigActionImageInput-CoyrNloo.js → ConfigActionImageInput-D-wCYFc9.js} +1 -1
  18. package/dist/interface/assets/{ConfigActionMqtt-CY8HOoug.js → ConfigActionMqtt-50Oit6xb.js} +1 -1
  19. package/dist/interface/assets/{ConfigActionNotification-DP3dTyFB.js → ConfigActionNotification-CV4TZpsD.js} +1 -1
  20. package/dist/interface/assets/{ConfigActionOutput-BwYwuQ1w.js → ConfigActionOutput-DDCdD_nG.js} +1 -1
  21. package/dist/interface/assets/{ConfigActionPlugin-DbhT4kyF.js → ConfigActionPlugin-3BiyEJsy.js} +1 -1
  22. package/dist/interface/assets/{ConfigActionSensor-_zmPKdhz.js → ConfigActionSensor-kkHOn3aC.js} +1 -1
  23. package/dist/interface/assets/{ConfigActionSnapshot-Bc3eukMk.js → ConfigActionSnapshot-O4nan24K.js} +1 -1
  24. package/dist/interface/assets/{ConfigActionVariable-BeQy6W8G.js → ConfigActionVariable-Ci3wXMYZ.js} +1 -1
  25. package/dist/interface/assets/{ConfigConditionIfElse-CiFC5fLv.js → ConfigConditionIfElse-CPzw54yv.js} +1 -1
  26. package/dist/interface/assets/{ConfigConditionSensorState-CGeGdh0d.js → ConfigConditionSensorState-DcV8-3Tj.js} +1 -1
  27. package/dist/interface/assets/{ConfigConditionSwitch-BjR776j5.js → ConfigConditionSwitch-b0ikuhC6.js} +1 -1
  28. package/dist/interface/assets/{ConfigConditionTime-BAypML9_.js → ConfigConditionTime-q7GYSoQk.js} +1 -1
  29. package/dist/interface/assets/{ConfigSensorValueInput-Dis2Kr1r.js → ConfigSensorValueInput-Ba_ZC14J.js} +1 -1
  30. package/dist/interface/assets/{ConfigTriggerDetection-CqS3IAqj.js → ConfigTriggerDetection-CF-C3A-0.js} +1 -1
  31. package/dist/interface/assets/{ConfigTriggerGeofence-BbNpW2l0.js → ConfigTriggerGeofence-CW5W3lot.js} +1 -1
  32. package/dist/interface/assets/{ConfigTriggerManual-DiyFl_g-.js → ConfigTriggerManual-B7UGIwE2.js} +1 -1
  33. package/dist/interface/assets/{ConfigTriggerMqtt-ZXEft2Hi.js → ConfigTriggerMqtt-DL1MIwBs.js} +1 -1
  34. package/dist/interface/assets/{ConfigTriggerSchedule-Dy3NCMvo.js → ConfigTriggerSchedule-DCUXevkw.js} +1 -1
  35. package/dist/interface/assets/{ConfigTriggerSensor-CnSSEh4s.js → ConfigTriggerSensor-DRX68f5E.js} +1 -1
  36. package/dist/interface/assets/{ConfigTriggerSystem-CuKwsM8D.js → ConfigTriggerSystem-BOt8AI3a.js} +1 -1
  37. package/dist/interface/assets/{ConfigTriggerWebhook-DJPepSlC.js → ConfigTriggerWebhook-CFeWElXX.js} +1 -1
  38. package/dist/interface/assets/Console-Cxs29skk.js +1 -0
  39. package/dist/interface/assets/{CuiAutomationRunsDialog-o2aLvK5K.js → CuiAutomationRunsDialog-yXyj7vrL.js} +1 -1
  40. package/dist/interface/assets/CuiBottomSheet-DVzVzs8p.js +1 -0
  41. package/dist/interface/assets/{CuiBottomSheet-v2xnKGrr.js → CuiBottomSheet-SnWWgn5I.js} +1 -1
  42. package/dist/interface/assets/{CuiCameraPipCard-CId6q8WW.js → CuiCameraPipCard-BmmyPCOP.js} +1 -1
  43. package/dist/interface/assets/{CuiCameraRecordings-C_1UfpAJ.js → CuiCameraRecordings-DLfMPUOL.js} +1 -1
  44. package/dist/interface/assets/{CuiCameraShares-DW_hDX2f.js → CuiCameraShares-BE9d09pX.js} +1 -1
  45. package/dist/interface/assets/{CuiCameraTable-BXzZ-gIg.js → CuiCameraTable-TiUZNpga.js} +1 -1
  46. package/dist/interface/assets/{CuiDataTable-CrL6zx3I.js → CuiDataTable-DqtFJKC6.js} +1 -1
  47. package/dist/interface/assets/{CuiPluginCard-C38Fk0bQ.js → CuiPluginCard-C8eDXMRg.js} +2 -2
  48. package/dist/interface/assets/{CuiPluginCategoryChip-B3XVum_D.js → CuiPluginCategoryChip-BX0xg3py.js} +1 -1
  49. package/dist/interface/assets/{CuiPluginOAuthButton-DRJnVV4F.js → CuiPluginOAuthButton-DZS31TnY.js} +2 -2
  50. package/dist/interface/assets/{CuiPluginTrustBadge-4xCyAUBM.js → CuiPluginTrustBadge-rZePqROi.js} +1 -1
  51. package/dist/interface/assets/{CuiQRCode-DmsP4eAY.js → CuiQRCode-BqMd2Oh6.js} +1 -1
  52. package/dist/interface/assets/{CuiRecordingsGrid-BnL8kQ29.js → CuiRecordingsGrid-Dkpe799a.js} +1 -1
  53. package/dist/interface/assets/{CuiSchema-D2yLW853.js → CuiSchema-J_b00DYu.js} +1 -1
  54. package/dist/interface/assets/{CuiTopNavbarItem-_7UaVuQT.js → CuiTopNavbarItem-CXxnNN1s.js} +1 -1
  55. package/dist/interface/assets/{Faces-BPgUsyT0.js → Faces-CaGWFf-y.js} +1 -1
  56. package/dist/interface/assets/{FirstSteps-CKXlbFN-.js → FirstSteps-fOhI977X.js} +1 -1
  57. package/dist/interface/assets/{Instances-BS4UPlay.js → Instances-BD727wNP.js} +1 -1
  58. package/dist/interface/assets/{Logs-UPgu6TsC.js → Logs-DK8-ilEl.js} +1 -1
  59. package/dist/interface/assets/{Menu-CdewzDV4.js → Menu-Cn0dBf4v.js} +1 -1
  60. package/dist/interface/assets/{OAuthDeviceFlow-SGgJTWAU.js → OAuthDeviceFlow-C6aER-P5.js} +1 -1
  61. package/dist/interface/assets/{Plugin-BSSYZcyQ.js → Plugin-Cq_hIp8V.js} +1 -1
  62. package/dist/interface/assets/{PluginConsole-Bm0ify7V.js → PluginConsole-cQBNvsGp.js} +1 -1
  63. package/dist/interface/assets/{PluginDetail-DY6Uvu3V.js → PluginDetail-9-jofn3X.js} +2 -2
  64. package/dist/interface/assets/{PluginSchema-BkM5iKma.js → PluginSchema-DhNpD_HM.js} +1 -1
  65. package/dist/interface/assets/{PluginSearch-4q_vZHJc.js → PluginSearch-CYEjSopJ.js} +2 -2
  66. package/dist/interface/assets/PluginSearch-Cy8JvNJD.js +1 -0
  67. package/dist/interface/assets/{Plugins-B1tZxl7k.js → Plugins-YyemYjP4.js} +1 -1
  68. package/dist/interface/assets/{Recordings-XY32_Jjt.js → Recordings-Cwns8Zzj.js} +1 -1
  69. package/dist/interface/assets/{Settings-CXWxt73x.js → Settings-CDH3BeuL.js} +1 -1
  70. package/dist/interface/assets/SettingsAccount-BoWR0DKm.js +1 -0
  71. package/dist/interface/assets/{SettingsAccount-MLkJU79V.js → SettingsAccount-CycVwV2K.js} +1 -1
  72. package/dist/interface/assets/{SettingsAppearance-CHRnfQ4O.js → SettingsAppearance-BnuFyX8o.js} +1 -1
  73. package/dist/interface/assets/SettingsAppearance-DHSpEmup.js +1 -0
  74. package/dist/interface/assets/{SettingsBackup-Xjb4i_YZ.js → SettingsBackup-CBF2IQN_.js} +1 -1
  75. package/dist/interface/assets/{SettingsMqtt-CW0uvXrU.js → SettingsMqtt-CChS0s5J.js} +1 -1
  76. package/dist/interface/assets/{SettingsNotifications-BbyXpyHK.js → SettingsNotifications-D-2v9oM8.js} +1 -1
  77. package/dist/interface/assets/{SettingsRecordings-DVZPpunU.js → SettingsRecordings-Ui2Xd5Ye.js} +1 -1
  78. package/dist/interface/assets/{SettingsRemote-BnFHx9_s.js → SettingsRemote-D2nKjVHR.js} +1 -1
  79. package/dist/interface/assets/{SettingsSystem-C1ne-w59.js → SettingsSystem-C1vJGmFo.js} +2 -2
  80. package/dist/interface/assets/{SettingsUsers-91m0163s.js → SettingsUsers-DTFIKS6H.js} +1 -1
  81. package/dist/interface/assets/{Terminal-D_E-kRbN.js → Terminal-DDsjIhe7.js} +1 -1
  82. package/dist/interface/assets/{VariableInput-BHvGHE7o.js → VariableInput-BEjTv8xz.js} +1 -1
  83. package/dist/interface/assets/{VariableSuggestions-uJAwwX7y.js → VariableSuggestions-DcgHR-OY.js} +1 -1
  84. package/dist/interface/assets/{VersionsHandler-DJ00TTHi.js → VersionsHandler-DrVcvut6.js} +1 -1
  85. package/dist/interface/assets/{Workers-BCBrqShK.js → Workers-xyas5_sn.js} +1 -1
  86. package/dist/interface/assets/{api-ByMXkaIi.js → api-B1n4M73U.js} +1 -1
  87. package/dist/interface/assets/api-CdJDEL3z.js +2 -0
  88. package/dist/interface/assets/{auth-B-MND66x.js → auth-DOnr6Mc1.js} +1 -1
  89. package/dist/interface/assets/{automations-DvpxT4Pa.js → automations-B-tYtR3y.js} +1 -1
  90. package/dist/interface/assets/{cameras.schema-2VoKYyFS.js → cameras.schema-C-xz1hwq.js} +1 -1
  91. package/dist/interface/assets/cloudHandoff-zt3rCB3J.js +1 -0
  92. package/dist/interface/assets/{config-UED3wn2k.js → config-CYmKCSzU.js} +1 -1
  93. package/dist/interface/assets/{flowSchema-DyobL8Pg.js → flowSchema-CsPTDyH8.js} +1 -1
  94. package/dist/interface/assets/main-DILs_jYV.js +3 -0
  95. package/dist/interface/assets/{main-DbPnvfcp.css → main-Dchuz606.css} +1 -1
  96. package/dist/interface/assets/{mqtt-BltdxiuG.js → mqtt-BrTLJ_eM.js} +1 -1
  97. package/dist/interface/assets/{notifications-D4Mi4q8n.js → notifications-Dt6ygmRP.js} +1 -1
  98. package/dist/interface/assets/{plugins-DmgMSZSt.js → plugins-BcJnIPJC.js} +1 -1
  99. package/dist/interface/assets/{round-restart-alt-D1SwcyIw.js → round-restart-alt-B6N0m8oC.js} +1 -1
  100. package/dist/interface/assets/{server-BBvLLocT.js → server-_ByAktOF.js} +1 -1
  101. package/dist/interface/assets/{theme-CHyA8uCs.js → theme-CORL_-pn.js} +1 -1
  102. package/dist/interface/assets/{types-ByD7R6WC.js → types-CGqXKLKp.js} +1 -1
  103. package/dist/interface/assets/{types-DRsoZjsP.js → types-DDSlYw6n.js} +1 -1
  104. package/dist/interface/assets/{useAppVersion-dQkatyRF.js → useAppVersion-CWa09Ql5.js} +1 -1
  105. package/dist/interface/assets/{useBackupRestore-D6Vxck9i.js → useBackupRestore-5tZ-awcr.js} +1 -1
  106. package/dist/interface/assets/{useCameraOptions-zPRiut_S.js → useCameraOptions-L0smaaZz.js} +1 -1
  107. package/dist/interface/assets/{useLogsSocket-DzKSWAVf.js → useLogsSocket-DQSgBMsw.js} +1 -1
  108. package/dist/interface/assets/{useServerRestart-DjaOOudi.js → useServerRestart-lPp2ZiX-.js} +1 -1
  109. package/dist/interface/assets/{useStreamStatus-DpXFSeOf.js → useStreamStatus-BroqI_Eh.js} +1 -1
  110. package/dist/interface/assets/{useUserOptions-B8T0ROJS.js → useUserOptions-BB451w9I.js} +1 -1
  111. package/dist/interface/assets/vendor-cameraui-Bq-hQsT7.js +2040 -0
  112. package/dist/interface/assets/{vendor-core-M6N9PctY.js → vendor-core-CoiYJRqo.js} +1 -1
  113. package/dist/interface/assets/{vendor-gridstack-DHPnER0W.js → vendor-gridstack-9ka60QnT.js} +1 -1
  114. package/dist/interface/assets/{vendor-gridstack-Dxwp3vpP.css → vendor-gridstack-Chv4ms9g.css} +1 -1
  115. package/dist/interface/assets/{vendor-primevue-BynQnxoR.js → vendor-primevue-B3sIO6X2.js} +1 -1
  116. package/dist/interface/index.html +19 -19
  117. package/dist/interface/sw.js +1 -1
  118. package/dist/server/package.json +7 -7
  119. package/dist/server/requirements.txt +1 -1
  120. package/dist/server/src/api/controllers/auth.controller.js +13 -3
  121. package/dist/server/src/api/controllers/auth.controller.js.map +1 -1
  122. package/dist/server/src/api/index.js +1 -0
  123. package/dist/server/src/api/index.js.map +1 -1
  124. package/dist/server/src/api/middlewares/authValidation.middleware.js +1 -1
  125. package/dist/server/src/api/middlewares/authValidation.middleware.js.map +1 -1
  126. package/dist/server/src/api/plugins/proxy.plugin.js +22 -16
  127. package/dist/server/src/api/plugins/proxy.plugin.js.map +1 -1
  128. package/dist/server/src/api/services/auth.service.d.ts +9 -2
  129. package/dist/server/src/api/services/auth.service.js +28 -12
  130. package/dist/server/src/api/services/auth.service.js.map +1 -1
  131. package/dist/server/src/api/services/remote.service.js +2 -1
  132. package/dist/server/src/api/services/remote.service.js.map +1 -1
  133. package/dist/server/src/api/types/index.d.ts +5 -0
  134. package/dist/server/src/api/types/index.js +5 -3
  135. package/dist/server/src/api/types/index.js.map +1 -1
  136. package/dist/server/src/api/utils/utils.d.ts +1 -0
  137. package/dist/server/src/api/utils/utils.js +8 -0
  138. package/dist/server/src/api/utils/utils.js.map +1 -0
  139. package/dist/server/src/api/websocket/index.js +2 -2
  140. package/dist/server/src/api/websocket/index.js.map +1 -1
  141. package/dist/server/src/camera/decoder/stationary-suppressor.d.ts +1 -0
  142. package/dist/server/src/camera/decoder/stationary-suppressor.js +49 -13
  143. package/dist/server/src/camera/decoder/stationary-suppressor.js.map +1 -1
  144. package/dist/server/src/rpc/server.js +3 -0
  145. package/dist/server/src/rpc/server.js.map +1 -1
  146. package/dist/server/src/services/mdns/index.js +1 -3
  147. package/dist/server/src/services/mdns/index.js.map +1 -1
  148. package/dist/server/src/types.d.ts +1 -4
  149. package/package.json +7 -7
  150. package/dist/interface/assets/Console-tfkkZnFl.js +0 -1
  151. package/dist/interface/assets/CuiBottomSheet-m_HX6x4G.js +0 -1
  152. package/dist/interface/assets/PluginSearch-BvhNP9WQ.js +0 -1
  153. package/dist/interface/assets/SettingsAccount-RGvmNkwD.js +0 -1
  154. package/dist/interface/assets/SettingsAppearance-CyaOt4lL.js +0 -1
  155. package/dist/interface/assets/api-ChlkJnEG.js +0 -2
  156. package/dist/interface/assets/cloudHandoff-o_0n9cgb.js +0 -1
  157. package/dist/interface/assets/main-Cd1DVdC9.js +0 -3
  158. package/dist/interface/assets/vendor-cameraui-D7o3alq7.js +0 -2039
@@ -1 +1 @@
1
- .app-lock-overlay[data-v-baef4383]{z-index:9999;background:var(--ground-background);-webkit-backdrop-filter:blur(20px);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.cui-restore-overlay[data-v-0c1a6c8d]{z-index:10000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0009;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.cui-restore-overlay__card[data-v-0c1a6c8d]{background:var(--card-background);border:1px solid var(--border-color);text-align:center;border-radius:.75rem;flex-direction:column;align-items:center;gap:1rem;width:100%;max-width:360px;padding:2rem 1.5rem;display:flex}.fade-enter-active[data-v-0c1a6c8d],.fade-leave-active[data-v-0c1a6c8d]{transition:opacity .3s}.fade-enter-from[data-v-0c1a6c8d],.fade-leave-to[data-v-0c1a6c8d]{opacity:0}.cui-update-indicator[data-v-8ce1000d]{z-index:9999;background:var(--card-background);border:1px solid var(--border-color);border-radius:.5rem;padding:.75rem 1rem;position:fixed;left:50%;transform:translate(-50%)}.cui-update-indicator__content[data-v-8ce1000d]{align-items:center;gap:.5rem;display:flex}.cui-update-indicator__spinner[data-v-8ce1000d]{width:20px!important;height:20px!important}.cui-update-indicator__icon[data-v-8ce1000d]{width:20px;height:20px;color:var(--text-color)}.cui-update-indicator__text[data-v-8ce1000d]{color:var(--text-color);white-space:nowrap;font-size:.875rem}.cui-update-indicator__button[data-v-8ce1000d]{white-space:nowrap;margin-left:.5rem}.fade-enter-active[data-v-8ce1000d],.fade-leave-active[data-v-8ce1000d]{transition:opacity .3s}.fade-enter-from[data-v-8ce1000d],.fade-leave-to[data-v-8ce1000d]{opacity:0}.cui-connection-indicator[data-v-7f082560]{z-index:9999;background:var(--card-background);border:1px solid var(--border-color);border-radius:.5rem;max-width:calc(100vw - 2rem);padding:.75rem 1rem;position:fixed;left:50%;transform:translate(-50%)}.cui-connection-indicator__content[data-v-7f082560]{align-items:center;gap:.5rem;display:flex}.cui-connection-indicator__text[data-v-7f082560]{color:var(--text-color);white-space:nowrap;font-size:.875rem}.cui-connection-indicator__button[data-v-7f082560]{margin-left:.5rem}.fade-enter-active[data-v-7f082560],.fade-leave-active[data-v-7f082560]{transition:opacity .3s}.fade-enter-from[data-v-7f082560],.fade-leave-to[data-v-7f082560]{opacity:0}.close-button[data-v-d1e31a06],.minify-button[data-v-d1e31a06],.expand-button[data-v-d1e31a06],.disabled-button[data-v-d1e31a06]{-webkit-app-region:no-drag;border-radius:20px;width:12px;height:12px;transition:all .2s ease-in-out}.close-button[data-v-d1e31a06]:hover,.minify-button[data-v-d1e31a06]:hover,.expand-button[data-v-d1e31a06]:hover,.disabled-button[data-v-d1e31a06]:hover{cursor:default}.close-button[data-v-d1e31a06]{background-color:#ff5954;border:0 solid #df302a}.close-button[data-v-d1e31a06]:active{background-color:#d63f3a;border:0 solid #c12e26}.minify-button[data-v-d1e31a06]{background-color:#fdbd30;border:0 solid #c18b17}.minify-button[data-v-d1e31a06]:active{background-color:#c18b17;border:0 solid #a27613}.expand-button[data-v-d1e31a06]{background-color:#00ca3b;border:0 solid #02a934}.expand-button[data-v-d1e31a06]:active{background-color:#02a934;border:0 solid #028b2b}.disabled-button[data-v-d1e31a06]{background-color:#3d3d3d;border:0 solid #282828}.navitem-active[data-v-9e0c467b]{background:var(--navitem-active-color,var(--p-button-text-primary-active-background));border-color:#0000;border-top:1px solid var(--navitem-active-color,var(--p-button-outlined-danger-hover-background))}.navbar-group-enter-active[data-v-d2e83278],.navbar-group-leave-active[data-v-d2e83278]{transition:all .2s;overflow:hidden}.navbar-group-enter-from[data-v-d2e83278],.navbar-group-leave-to[data-v-d2e83278]{opacity:0;max-height:0}.navbar-group-enter-to[data-v-d2e83278],.navbar-group-leave-from[data-v-d2e83278]{opacity:1;max-height:400px}.cui-bottombar[data-v-b0d768aa]:before{content:"";background:linear-gradient(#0000000d,#0000);height:1px;position:absolute;top:-1px;left:0;right:0}.notification-menu{left:auto!important;right:calc(env(safe-area-inset-right,0px) + .5rem)!important;top:calc(env(safe-area-inset-top,0px) + 3.3rem)!important}.cui-topbar[data-v-1c767220]{background:var(--topbar-background);border-bottom:1px solid var(--border-color)}.playground-container[data-v-5f061a75]{z-index:100;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;flex:1;justify-content:center;position:relative}@media (width>=800px){.playground-container[data-v-5f061a75]{border-radius:0 0 2px 2px}}.playground-container .playground[data-v-5f061a75]{position:relative}.playground-container .playground:hover .handle[data-v-5f061a75]{opacity:1}.playground-container .playground.customizing[data-v-5f061a75]{cursor:crosshair}.playground-container .playground.start .custom-notice[data-v-5f061a75]{opacity:1}.playground-container .playground .custom-notice[data-v-5f061a75]{pointer-events:none;opacity:0;background:#fff0;justify-content:center;align-items:center;transition:background .25s;display:flex;position:absolute;inset:0 0 1rem}.playground-container .playground .custom-notice div[data-v-5f061a75]{text-align:center;opacity:1;background:#ffffffe6;border-radius:2px;width:100%;margin:0 2rem;padding:1rem;transition:opacity .25s;box-shadow:0 1px 2px #100a0926}.playground-container .playground .custom-notice div .touchy[data-v-5f061a75]:after{content:"Click"}.playground-container .playground .sandbox[data-v-5f061a75]{touch-action:none;width:100%;height:100%;position:relative;inset:0}.playground-container .playground .sandbox .shadowboard[data-v-5f061a75]{z-index:11;pointer-events:none;opacity:0;background:#df2a4c4d 50%/cover;transition:opacity .375s;position:absolute;inset:10px}.playground-container .playground .sandbox .shadowboard.on[data-v-5f061a75]{opacity:0}.playground-container .playground.customizing .handle[data-v-5f061a75]{pointer-events:none}.handles[data-v-5f061a75]{z-index:10;position:absolute;inset:0}.handles .clipboard[data-v-5f061a75]{z-index:1;position:absolute;inset:0}.handles .clipboard .polygon-container[data-v-5f061a75]{position:absolute}.handles .clipboard .polygon-container path.selected[data-v-5f061a75]{stroke-width:2px}.handles .clipboard .polygon-container path.dash[data-v-5f061a75]{stroke-dasharray:5 5}.handles .delete-point[data-v-5f061a75],.handles .handle[data-v-5f061a75]{z-index:2;width:20px;height:20px;position:absolute}.handles .handle[data-v-5f061a75]{opacity:.8;border-radius:50%;transition:opacity .25s;box-shadow:inset 0 0 0 10px #fff}.handles .handle.is-dragging[data-v-5f061a75],.handles .handle.is-pointer-down[data-v-5f061a75]{z-index:100;cursor:none;transition:box-shadow;box-shadow:inset 0 0 0 10px #d0d0d0}.handles .handle.draggable[data-v-5f061a75]{cursor:grab}.handles .handle.show-delete .delete-point[data-v-5f061a75]{opacity:1;transition:transform .25s cubic-bezier(.15,1,.3,1.1),opacity .25s;transform:scale3d(.9,.9,.9)}.handles .handle[data-v-5f061a75]:after{content:"";display:block;position:absolute;inset:-8px}.handles .handle .delete-point[data-v-5f061a75]{transform-origin:0;cursor:pointer;opacity:.75;clip-path:polygon(25% 0,100% 1%,100% 100%,25% 100%,0 50%);background:#d3d0c9;border-radius:3px;width:25px;padding-left:5px;transition:transform .25s,opacity .25s;position:absolute;top:0;left:22px;transform:scale3d(0,0,0)}.handles .handle .delete-point[data-v-5f061a75]:after{content:"";clip-path:polygon(20% 10%,10% 20%,40% 50%,10% 80%,20% 90%,50% 60%,80% 90%,90% 80%,60% 50%,90% 20%,80% 10%,50% 40%);background:#100a09;display:block;position:absolute;inset:4px 4px 4px 9px}.cui-battery-info[data-v-c181f3d4]{border-radius:.5rem;flex-direction:column;gap:.5rem;padding:.75rem;display:flex}.cui-battery-info--disabled[data-v-c181f3d4]{opacity:.6}.cui-battery-info__header[data-v-c181f3d4]{align-items:center;gap:.5rem;display:flex}.cui-battery-info__icon[data-v-c181f3d4]{justify-content:center;align-items:center;width:1.75rem;height:1.75rem;display:flex}.cui-battery-info__icon-svg[data-v-c181f3d4]{width:1.5rem;height:1.5rem;transition:color .2s,filter .2s}.cui-battery-info__icon-svg--critical[data-v-c181f3d4]{animation:1s ease-in-out infinite battery-pulse-c181f3d4}@keyframes battery-pulse-c181f3d4{0%,to{opacity:1}50%{opacity:.5}}.cui-battery-info__info[data-v-c181f3d4]{flex-direction:column;flex:1;gap:0;display:flex}.cui-battery-info__label[data-v-c181f3d4]{color:var(--text-color);font-size:.875rem;font-weight:500}.cui-battery-info__status[data-v-c181f3d4]{color:var(--text-secondary-color);font-size:.75rem;font-weight:500}.cui-battery-info__status--charging[data-v-c181f3d4]{color:#3b82f6}.cui-battery-info__status--full[data-v-c181f3d4]{color:#22c55e}.cui-battery-info__status--low[data-v-c181f3d4]{color:#eab308}.cui-battery-info__status--critical[data-v-c181f3d4]{color:#ef4444;animation:.5s ease-in-out infinite alternate status-blink-c181f3d4}@keyframes status-blink-c181f3d4{0%{opacity:1}to{opacity:.6}}.cui-battery-info__level[data-v-c181f3d4]{color:var(--text-color);font-size:.875rem;font-weight:600}.cui-battery-info__level--charging[data-v-c181f3d4]{color:#3b82f6}.cui-battery-info__level--full[data-v-c181f3d4]{color:#22c55e}.cui-battery-info__level--low[data-v-c181f3d4]{color:#eab308}.cui-battery-info__level--critical[data-v-c181f3d4]{color:#ef4444}.cui-battery-info__bar[data-v-c181f3d4]{border-radius:.125rem;height:.25rem;overflow:hidden}.cui-battery-info__bar-fill[data-v-c181f3d4]{border-radius:.125rem;height:100%;transition:width .3s,background-color .3s}.cui-battery-info--small[data-v-c181f3d4]{gap:.375rem;padding:.5rem}.cui-battery-info--small .cui-battery-info__icon[data-v-c181f3d4]{width:1.25rem;height:1.25rem}.cui-battery-info--small .cui-battery-info__icon-svg[data-v-c181f3d4]{width:1.125rem;height:1.125rem}.cui-battery-info--small .cui-battery-info__label[data-v-c181f3d4]{font-size:.75rem}.cui-battery-info--small .cui-battery-info__status[data-v-c181f3d4]{font-size:.625rem}.cui-battery-info--small .cui-battery-info__level[data-v-c181f3d4]{font-size:.75rem}.cui-battery-info--small .cui-battery-info__bar[data-v-c181f3d4]{height:.1875rem}.cui-battery-info--large[data-v-c181f3d4]{gap:.75rem;padding:1rem}.cui-battery-info--large .cui-battery-info__icon[data-v-c181f3d4]{width:2.25rem;height:2.25rem}.cui-battery-info--large .cui-battery-info__icon-svg[data-v-c181f3d4]{width:2rem;height:2rem}.cui-battery-info--large .cui-battery-info__label[data-v-c181f3d4]{font-size:1rem}.cui-battery-info--large .cui-battery-info__status[data-v-c181f3d4]{font-size:.875rem}.cui-battery-info--large .cui-battery-info__level[data-v-c181f3d4]{font-size:1rem}.cui-battery-info--large .cui-battery-info__bar[data-v-c181f3d4]{height:.375rem}.cui-humidity-info[data-v-1f41d794]{border-radius:.5rem;flex-direction:column;gap:.5rem;padding:.75rem;display:flex}.cui-humidity-info--disabled[data-v-1f41d794]{opacity:.6}.cui-humidity-info__header[data-v-1f41d794]{align-items:center;gap:.5rem;display:flex}.cui-humidity-info__icon[data-v-1f41d794]{justify-content:center;align-items:center;width:1.75rem;height:1.75rem;display:flex}.cui-humidity-info__icon-svg[data-v-1f41d794]{width:1.5rem;height:1.5rem;transition:color .2s,filter .2s}.cui-humidity-info__info[data-v-1f41d794]{flex-direction:column;flex:1;gap:0;display:flex}.cui-humidity-info__label[data-v-1f41d794]{color:var(--text-color);font-size:.875rem;font-weight:500}.cui-humidity-info__status[data-v-1f41d794]{font-size:.75rem;font-weight:500;transition:color .2s}.cui-humidity-info__value[data-v-1f41d794]{white-space:nowrap;font-size:.875rem;font-weight:600;transition:color .2s}.cui-humidity-info--small[data-v-1f41d794]{gap:.375rem;padding:.5rem}.cui-humidity-info--small .cui-humidity-info__icon[data-v-1f41d794]{width:1.25rem;height:1.25rem}.cui-humidity-info--small .cui-humidity-info__icon-svg[data-v-1f41d794]{width:1.125rem;height:1.125rem}.cui-humidity-info--small .cui-humidity-info__label[data-v-1f41d794]{font-size:.75rem}.cui-humidity-info--small .cui-humidity-info__status[data-v-1f41d794]{font-size:.625rem}.cui-humidity-info--small .cui-humidity-info__value[data-v-1f41d794]{font-size:.75rem}.cui-humidity-info--large[data-v-1f41d794]{gap:.75rem;padding:1rem}.cui-humidity-info--large .cui-humidity-info__icon[data-v-1f41d794]{width:2.25rem;height:2.25rem}.cui-humidity-info--large .cui-humidity-info__icon-svg[data-v-1f41d794]{width:2rem;height:2rem}.cui-humidity-info--large .cui-humidity-info__label[data-v-1f41d794]{font-size:1rem}.cui-humidity-info--large .cui-humidity-info__status[data-v-1f41d794]{font-size:.875rem}.cui-humidity-info--large .cui-humidity-info__value[data-v-1f41d794]{font-size:1rem}.cui-temperature-info[data-v-0edddec9]{border-radius:.5rem;flex-direction:column;gap:.5rem;padding:.75rem;display:flex}.cui-temperature-info--disabled[data-v-0edddec9]{opacity:.6}.cui-temperature-info__header[data-v-0edddec9]{align-items:center;gap:.5rem;display:flex}.cui-temperature-info__icon[data-v-0edddec9]{justify-content:center;align-items:center;width:1.75rem;height:1.75rem;display:flex}.cui-temperature-info__icon-svg[data-v-0edddec9]{width:1.5rem;height:1.5rem;transition:color .2s,filter .2s}.cui-temperature-info__info[data-v-0edddec9]{flex-direction:column;flex:1;gap:0;display:flex}.cui-temperature-info__label[data-v-0edddec9]{color:var(--text-color);font-size:.875rem;font-weight:500}.cui-temperature-info__status[data-v-0edddec9]{font-size:.75rem;font-weight:500;transition:color .2s}.cui-temperature-info__value[data-v-0edddec9]{white-space:nowrap;font-size:.875rem;font-weight:600;transition:color .2s}.cui-temperature-info--small[data-v-0edddec9]{gap:.375rem;padding:.5rem}.cui-temperature-info--small .cui-temperature-info__icon[data-v-0edddec9]{width:1.25rem;height:1.25rem}.cui-temperature-info--small .cui-temperature-info__icon-svg[data-v-0edddec9]{width:1.125rem;height:1.125rem}.cui-temperature-info--small .cui-temperature-info__label[data-v-0edddec9]{font-size:.75rem}.cui-temperature-info--small .cui-temperature-info__status[data-v-0edddec9]{font-size:.625rem}.cui-temperature-info--small .cui-temperature-info__value[data-v-0edddec9]{font-size:.75rem}.cui-temperature-info--large[data-v-0edddec9]{gap:.75rem;padding:1rem}.cui-temperature-info--large .cui-temperature-info__icon[data-v-0edddec9]{width:2.25rem;height:2.25rem}.cui-temperature-info--large .cui-temperature-info__icon-svg[data-v-0edddec9]{width:2rem;height:2rem}.cui-temperature-info--large .cui-temperature-info__label[data-v-0edddec9]{font-size:1rem}.cui-temperature-info--large .cui-temperature-info__status[data-v-0edddec9]{font-size:.875rem}.cui-temperature-info--large .cui-temperature-info__value[data-v-0edddec9]{font-size:1rem}.cui-garage-control[data-v-4c6505c2]{border-radius:.5rem;flex-direction:column;gap:.5rem;padding:.75rem;display:flex}.cui-garage-control--disabled[data-v-4c6505c2]{opacity:.6;pointer-events:none}.cui-garage-control__header[data-v-4c6505c2]{align-items:center;gap:.5rem;display:flex}.cui-garage-control__icon[data-v-4c6505c2]{justify-content:center;align-items:center;width:1.75rem;height:1.75rem;display:flex;position:relative}.cui-garage-control__icon-svg[data-v-4c6505c2]{width:1.5rem;height:1.5rem;color:var(--text-secondary-color);transition:color .2s,filter .2s}.cui-garage-control__obstruction[data-v-4c6505c2]{background-color:#ef4444;border-radius:50%;width:8px;height:8px;position:absolute;top:-2px;right:-2px;box-shadow:0 0 6px #ef444499}.cui-garage-control__info[data-v-4c6505c2]{flex-direction:column;gap:0;display:flex}.cui-garage-control__label[data-v-4c6505c2]{color:var(--text-color);font-size:.875rem;font-weight:500}.cui-garage-control__status[data-v-4c6505c2]{color:var(--text-secondary-color);font-size:.75rem;font-weight:500}.cui-garage-control__status--open[data-v-4c6505c2]{color:#22c55e}.cui-garage-control__status--transitioning[data-v-4c6505c2]{color:#facc15;animation:1s ease-in-out infinite cui-garage-pulse-text-4c6505c2}.cui-garage-control__status--stopped[data-v-4c6505c2]{color:#fb923c}@keyframes cui-garage-pulse-text-4c6505c2{0%,to{opacity:1}50%{opacity:.5}}.cui-garage-control--small[data-v-4c6505c2]{gap:.375rem;padding:.5rem}.cui-garage-control--small .cui-garage-control__icon[data-v-4c6505c2]{width:1.25rem;height:1.25rem}.cui-garage-control--small .cui-garage-control__icon-svg[data-v-4c6505c2]{width:1.125rem;height:1.125rem}.cui-garage-control--small .cui-garage-control__label[data-v-4c6505c2]{font-size:.75rem}.cui-garage-control--small .cui-garage-control__status[data-v-4c6505c2]{font-size:.625rem}.cui-garage-control--small .cui-garage-control__obstruction[data-v-4c6505c2]{width:6px;height:6px}.cui-garage-control--large[data-v-4c6505c2]{gap:.75rem;padding:1rem}.cui-garage-control--large .cui-garage-control__icon[data-v-4c6505c2]{width:2.25rem;height:2.25rem}.cui-garage-control--large .cui-garage-control__icon-svg[data-v-4c6505c2]{width:2rem;height:2rem}.cui-garage-control--large .cui-garage-control__label[data-v-4c6505c2]{font-size:1rem}.cui-garage-control--large .cui-garage-control__status[data-v-4c6505c2]{font-size:.875rem}.cui-leak-sensor[data-v-14a46a3f]{border-radius:.5rem;flex-direction:column;gap:.5rem;padding:.75rem;display:flex}.cui-leak-sensor--disabled[data-v-14a46a3f]{opacity:.6}.cui-leak-sensor__header[data-v-14a46a3f]{align-items:center;gap:.5rem;display:flex}.cui-leak-sensor__icon[data-v-14a46a3f]{justify-content:center;align-items:center;width:1.75rem;height:1.75rem;display:flex}.cui-leak-sensor__icon-svg[data-v-14a46a3f]{width:1.5rem;height:1.5rem;transition:color .2s,filter .2s}.cui-leak-sensor__info[data-v-14a46a3f]{flex-direction:column;flex:1;gap:0;display:flex}.cui-leak-sensor__label[data-v-14a46a3f]{color:var(--text-color);font-size:.875rem;font-weight:500}.cui-leak-sensor__status[data-v-14a46a3f]{font-size:.75rem;font-weight:500}.cui-leak-sensor__status--detected[data-v-14a46a3f]{color:#3b82f6}.cui-leak-sensor__status--clear[data-v-14a46a3f]{color:var(--text-secondary-color)}.cui-leak-sensor__indicator[data-v-14a46a3f]{border-radius:50%;width:.5rem;height:.5rem;transition:background-color .2s}.cui-leak-sensor__indicator--detected[data-v-14a46a3f]{background-color:#3b82f6;animation:1.5s ease-in-out infinite pulse-indicator-14a46a3f;box-shadow:0 0 6px #3b82f699}.cui-leak-sensor__indicator--clear[data-v-14a46a3f]{background-color:var(--text-secondary-color)}@keyframes pulse-indicator-14a46a3f{0%,to{opacity:1}50%{opacity:.5}}.cui-leak-sensor--small[data-v-14a46a3f]{gap:.375rem;padding:.5rem}.cui-leak-sensor--small .cui-leak-sensor__icon[data-v-14a46a3f]{width:1.25rem;height:1.25rem}.cui-leak-sensor--small .cui-leak-sensor__icon-svg[data-v-14a46a3f]{width:1.125rem;height:1.125rem}.cui-leak-sensor--small .cui-leak-sensor__label[data-v-14a46a3f]{font-size:.75rem}.cui-leak-sensor--small .cui-leak-sensor__status[data-v-14a46a3f]{font-size:.625rem}.cui-leak-sensor--small .cui-leak-sensor__indicator[data-v-14a46a3f]{width:.375rem;height:.375rem}.cui-leak-sensor--large[data-v-14a46a3f]{gap:.75rem;padding:1rem}.cui-leak-sensor--large .cui-leak-sensor__icon[data-v-14a46a3f]{width:2.25rem;height:2.25rem}.cui-leak-sensor--large .cui-leak-sensor__icon-svg[data-v-14a46a3f]{width:2rem;height:2rem}.cui-leak-sensor--large .cui-leak-sensor__label[data-v-14a46a3f]{font-size:1rem}.cui-leak-sensor--large .cui-leak-sensor__status[data-v-14a46a3f]{font-size:.875rem}.cui-leak-sensor--large .cui-leak-sensor__indicator[data-v-14a46a3f]{width:.625rem;height:.625rem}.cui-smoke-sensor[data-v-4db50b68]{border-radius:.5rem;flex-direction:column;gap:.5rem;padding:.75rem;display:flex}.cui-smoke-sensor--disabled[data-v-4db50b68]{opacity:.6}.cui-smoke-sensor__header[data-v-4db50b68]{align-items:center;gap:.5rem;display:flex}.cui-smoke-sensor__icon[data-v-4db50b68]{justify-content:center;align-items:center;width:1.75rem;height:1.75rem;display:flex}.cui-smoke-sensor__icon-svg[data-v-4db50b68]{width:1.5rem;height:1.5rem;transition:color .2s,filter .2s}.cui-smoke-sensor__info[data-v-4db50b68]{flex-direction:column;flex:1;gap:0;display:flex}.cui-smoke-sensor__label[data-v-4db50b68]{color:var(--text-color);font-size:.875rem;font-weight:500}.cui-smoke-sensor__status[data-v-4db50b68]{font-size:.75rem;font-weight:500}.cui-smoke-sensor__status--detected[data-v-4db50b68]{color:#ef4444}.cui-smoke-sensor__status--clear[data-v-4db50b68]{color:var(--text-secondary-color)}.cui-smoke-sensor__indicator[data-v-4db50b68]{border-radius:50%;width:.5rem;height:.5rem;transition:background-color .2s}.cui-smoke-sensor__indicator--detected[data-v-4db50b68]{background-color:#ef4444;animation:1.5s ease-in-out infinite pulse-indicator-4db50b68;box-shadow:0 0 6px #ef444499}.cui-smoke-sensor__indicator--clear[data-v-4db50b68]{background-color:var(--text-secondary-color)}@keyframes pulse-indicator-4db50b68{0%,to{opacity:1}50%{opacity:.5}}.cui-smoke-sensor--small[data-v-4db50b68]{gap:.375rem;padding:.5rem}.cui-smoke-sensor--small .cui-smoke-sensor__icon[data-v-4db50b68]{width:1.25rem;height:1.25rem}.cui-smoke-sensor--small .cui-smoke-sensor__icon-svg[data-v-4db50b68]{width:1.125rem;height:1.125rem}.cui-smoke-sensor--small .cui-smoke-sensor__label[data-v-4db50b68]{font-size:.75rem}.cui-smoke-sensor--small .cui-smoke-sensor__status[data-v-4db50b68]{font-size:.625rem}.cui-smoke-sensor--small .cui-smoke-sensor__indicator[data-v-4db50b68]{width:.375rem;height:.375rem}.cui-smoke-sensor--large[data-v-4db50b68]{gap:.75rem;padding:1rem}.cui-smoke-sensor--large .cui-smoke-sensor__icon[data-v-4db50b68]{width:2.25rem;height:2.25rem}.cui-smoke-sensor--large .cui-smoke-sensor__icon-svg[data-v-4db50b68]{width:2rem;height:2rem}.cui-smoke-sensor--large .cui-smoke-sensor__label[data-v-4db50b68]{font-size:1rem}.cui-smoke-sensor--large .cui-smoke-sensor__status[data-v-4db50b68]{font-size:.875rem}.cui-smoke-sensor--large .cui-smoke-sensor__indicator[data-v-4db50b68]{width:.625rem;height:.625rem}.cui-occupancy-sensor[data-v-8ca5a1ce]{border-radius:.5rem;flex-direction:column;gap:.5rem;padding:.75rem;display:flex}.cui-occupancy-sensor--disabled[data-v-8ca5a1ce]{opacity:.6}.cui-occupancy-sensor__header[data-v-8ca5a1ce]{align-items:center;gap:.5rem;display:flex}.cui-occupancy-sensor__icon[data-v-8ca5a1ce]{justify-content:center;align-items:center;width:1.75rem;height:1.75rem;display:flex}.cui-occupancy-sensor__icon-svg[data-v-8ca5a1ce]{width:1.5rem;height:1.5rem;transition:color .2s,filter .2s}.cui-occupancy-sensor__info[data-v-8ca5a1ce]{flex-direction:column;flex:1;gap:0;display:flex}.cui-occupancy-sensor__label[data-v-8ca5a1ce]{color:var(--text-color);font-size:.875rem;font-weight:500}.cui-occupancy-sensor__status[data-v-8ca5a1ce]{font-size:.75rem;font-weight:500}.cui-occupancy-sensor__status--occupied[data-v-8ca5a1ce]{color:#22c55e}.cui-occupancy-sensor__status--empty[data-v-8ca5a1ce]{color:var(--text-secondary-color)}.cui-occupancy-sensor__indicator[data-v-8ca5a1ce]{border-radius:50%;width:.5rem;height:.5rem;transition:background-color .2s}.cui-occupancy-sensor__indicator--occupied[data-v-8ca5a1ce]{background-color:#22c55e;box-shadow:0 0 6px #22c55e99}.cui-occupancy-sensor__indicator--empty[data-v-8ca5a1ce]{background-color:var(--text-secondary-color)}.cui-occupancy-sensor--small[data-v-8ca5a1ce]{gap:.375rem;padding:.5rem}.cui-occupancy-sensor--small .cui-occupancy-sensor__icon[data-v-8ca5a1ce]{width:1.25rem;height:1.25rem}.cui-occupancy-sensor--small .cui-occupancy-sensor__icon-svg[data-v-8ca5a1ce]{width:1.125rem;height:1.125rem}.cui-occupancy-sensor--small .cui-occupancy-sensor__label[data-v-8ca5a1ce]{font-size:.75rem}.cui-occupancy-sensor--small .cui-occupancy-sensor__status[data-v-8ca5a1ce]{font-size:.625rem}.cui-occupancy-sensor--small .cui-occupancy-sensor__indicator[data-v-8ca5a1ce]{width:.375rem;height:.375rem}.cui-occupancy-sensor--large[data-v-8ca5a1ce]{gap:.75rem;padding:1rem}.cui-occupancy-sensor--large .cui-occupancy-sensor__icon[data-v-8ca5a1ce]{width:2.25rem;height:2.25rem}.cui-occupancy-sensor--large .cui-occupancy-sensor__icon-svg[data-v-8ca5a1ce]{width:2rem;height:2rem}.cui-occupancy-sensor--large .cui-occupancy-sensor__label[data-v-8ca5a1ce]{font-size:1rem}.cui-occupancy-sensor--large .cui-occupancy-sensor__status[data-v-8ca5a1ce]{font-size:.875rem}.cui-occupancy-sensor--large .cui-occupancy-sensor__indicator[data-v-8ca5a1ce]{width:.625rem;height:.625rem}.cui-contact-sensor[data-v-0cc50676]{border-radius:.5rem;flex-direction:column;gap:.5rem;padding:.75rem;display:flex}.cui-contact-sensor--disabled[data-v-0cc50676]{opacity:.6}.cui-contact-sensor__header[data-v-0cc50676]{align-items:center;gap:.5rem;display:flex}.cui-contact-sensor__icon[data-v-0cc50676]{justify-content:center;align-items:center;width:1.75rem;height:1.75rem;display:flex}.cui-contact-sensor__icon-svg[data-v-0cc50676]{width:1.5rem;height:1.5rem;transition:color .2s,filter .2s}.cui-contact-sensor__info[data-v-0cc50676]{flex-direction:column;flex:1;gap:0;display:flex}.cui-contact-sensor__label[data-v-0cc50676]{color:var(--text-color);font-size:.875rem;font-weight:500}.cui-contact-sensor__status[data-v-0cc50676]{font-size:.75rem;font-weight:500}.cui-contact-sensor__status--closed[data-v-0cc50676]{color:#22c55e}.cui-contact-sensor__status--open[data-v-0cc50676]{color:#fb923c}.cui-contact-sensor__indicator[data-v-0cc50676]{border-radius:50%;width:.5rem;height:.5rem;transition:background-color .2s}.cui-contact-sensor__indicator--closed[data-v-0cc50676]{background-color:#22c55e;box-shadow:0 0 6px #22c55e99}.cui-contact-sensor__indicator--open[data-v-0cc50676]{background-color:#fb923c;animation:1.5s ease-in-out infinite pulse-indicator-0cc50676;box-shadow:0 0 6px #fb923c99}@keyframes pulse-indicator-0cc50676{0%,to{opacity:1}50%{opacity:.5}}.cui-contact-sensor--small[data-v-0cc50676]{gap:.375rem;padding:.5rem}.cui-contact-sensor--small .cui-contact-sensor__icon[data-v-0cc50676]{width:1.25rem;height:1.25rem}.cui-contact-sensor--small .cui-contact-sensor__icon-svg[data-v-0cc50676]{width:1.125rem;height:1.125rem}.cui-contact-sensor--small .cui-contact-sensor__label[data-v-0cc50676]{font-size:.75rem}.cui-contact-sensor--small .cui-contact-sensor__status[data-v-0cc50676]{font-size:.625rem}.cui-contact-sensor--small .cui-contact-sensor__indicator[data-v-0cc50676]{width:.375rem;height:.375rem}.cui-contact-sensor--large[data-v-0cc50676]{gap:.75rem;padding:1rem}.cui-contact-sensor--large .cui-contact-sensor__icon[data-v-0cc50676]{width:2.25rem;height:2.25rem}.cui-contact-sensor--large .cui-contact-sensor__icon-svg[data-v-0cc50676]{width:2rem;height:2rem}.cui-contact-sensor--large .cui-contact-sensor__label[data-v-0cc50676]{font-size:1rem}.cui-contact-sensor--large .cui-contact-sensor__status[data-v-0cc50676]{font-size:.875rem}.cui-contact-sensor--large .cui-contact-sensor__indicator[data-v-0cc50676]{width:.625rem;height:.625rem}.cui-doorbell[data-v-b227d18a]{border-radius:.5rem;flex-direction:column;gap:.5rem;padding:.75rem;transition:all .2s;display:flex}.cui-doorbell--disabled[data-v-b227d18a]{opacity:.6;pointer-events:none}.cui-doorbell__header[data-v-b227d18a]{align-items:center;gap:.5rem;display:flex}.cui-doorbell__icon[data-v-b227d18a]{justify-content:center;align-items:center;width:1.75rem;height:1.75rem;display:flex}.cui-doorbell__icon-svg[data-v-b227d18a]{width:1.5rem;height:1.5rem;color:var(--text-secondary-color);transition:color .2s,filter .2s}.cui-doorbell__icon-svg--ringing[data-v-b227d18a]{animation:.15s ease-in-out infinite doorbell-shake-b227d18a}@keyframes doorbell-shake-b227d18a{0%,to{transform:rotate(-15deg)}50%{transform:rotate(15deg)}}.cui-doorbell__info[data-v-b227d18a]{flex-direction:column;flex:1;gap:0;display:flex}.cui-doorbell__label[data-v-b227d18a]{color:var(--text-color);font-size:.875rem;font-weight:500}.cui-doorbell__status[data-v-b227d18a]{color:var(--text-secondary-color);font-size:.75rem}.cui-doorbell__status--ringing[data-v-b227d18a]{color:#eab308;font-weight:600;animation:.3s ease-in-out infinite alternate blink-b227d18a}@keyframes blink-b227d18a{0%{opacity:1}to{opacity:.5}}.cui-doorbell__button[data-v-b227d18a]{margin-left:auto}.cui-doorbell__button-icon[data-v-b227d18a]{width:1rem;height:1rem}.cui-doorbell--small[data-v-b227d18a]{gap:.375rem;padding:.5rem}.cui-doorbell--small .cui-doorbell__icon[data-v-b227d18a]{width:1.25rem;height:1.25rem}.cui-doorbell--small .cui-doorbell__icon-svg[data-v-b227d18a]{width:1.125rem;height:1.125rem}.cui-doorbell--small .cui-doorbell__label[data-v-b227d18a]{font-size:.75rem}.cui-doorbell--small .cui-doorbell__status[data-v-b227d18a]{font-size:.625rem}.cui-doorbell--large[data-v-b227d18a]{gap:.75rem;padding:1rem}.cui-doorbell--large .cui-doorbell__icon[data-v-b227d18a]{width:2.25rem;height:2.25rem}.cui-doorbell--large .cui-doorbell__icon-svg[data-v-b227d18a]{width:2rem;height:2rem}.cui-doorbell--large .cui-doorbell__label[data-v-b227d18a]{font-size:1rem}.cui-doorbell--large .cui-doorbell__status[data-v-b227d18a]{font-size:.875rem}.cui-security-system[data-v-67cacde3]{border-radius:.5rem;flex-direction:column;gap:.5rem;padding:.75rem;display:flex}.cui-security-system--disabled[data-v-67cacde3]{opacity:.6;pointer-events:none}.cui-security-system__header[data-v-67cacde3]{align-items:center;gap:.5rem;display:flex}.cui-security-system__icon[data-v-67cacde3]{justify-content:center;align-items:center;width:1.75rem;height:1.75rem;display:flex}.cui-security-system__icon-svg[data-v-67cacde3]{width:1.5rem;height:1.5rem;color:var(--text-secondary-color);transition:color .2s,filter .2s}.cui-security-system__info[data-v-67cacde3]{flex-direction:column;gap:0;display:flex}.cui-security-system__label[data-v-67cacde3]{color:var(--text-color);font-size:.875rem;font-weight:500}.cui-security-system__status[data-v-67cacde3]{font-size:.75rem;font-weight:500}.cui-security-system__status--disarmed[data-v-67cacde3]{color:var(--text-secondary-color)}.cui-security-system__status--armed[data-v-67cacde3]{color:#22c55e}.cui-security-system__status--transitioning[data-v-67cacde3]{color:#eab308;animation:1s ease-in-out infinite pulse-text-67cacde3}@keyframes pulse-text-67cacde3{0%,to{opacity:1}50%{opacity:.5}}.cui-security-system__status--alarm[data-v-67cacde3]{color:#ef4444;animation:.5s ease-in-out infinite alternate blink-67cacde3}@keyframes blink-67cacde3{0%{opacity:1}to{opacity:.5}}@keyframes pulse-67cacde3{0%{transform:scale(1)}to{transform:scale(1.1)}}.cui-security-system__alarm[data-v-67cacde3]{color:#ef4444;background-color:#ef44441a;border:1px solid #ef44444d;border-radius:.375rem;align-items:center;gap:.375rem;padding:.5rem;font-size:.75rem;font-weight:500;display:flex}.cui-security-system__alarm-icon[data-v-67cacde3]{width:1rem;height:1rem;animation:.5s ease-in-out infinite alternate pulse-67cacde3}.cui-security-system__alarm[data-v-67cacde3] .p-button{margin-left:auto}.cui-security-system__modes[data-v-67cacde3]{grid-template-columns:repeat(4,1fr);gap:.375rem;display:grid}.cui-security-system__mode[data-v-67cacde3]{border:1px solid var(--surface-border);background-color:var(--surface-ground);color:var(--text-secondary-color);cursor:pointer;border-radius:.375rem;flex-direction:column;align-items:center;gap:.125rem;padding:.5rem .25rem;font-size:.625rem;font-weight:500;transition:all .2s;display:flex}.cui-security-system__mode[data-v-67cacde3]:disabled{opacity:.5;cursor:not-allowed}.cui-security-system__mode--active[data-v-67cacde3]{background-color:var(--primary-500);border-color:var(--primary-500);color:#fff}.cui-security-system__mode--active[data-v-67cacde3]:hover:not(:disabled){background-color:var(--primary-600)}.cui-security-system__mode-icon[data-v-67cacde3]{width:1.125rem;height:1.125rem}.cui-security-system--small[data-v-67cacde3]{gap:.375rem;padding:.5rem}.cui-security-system--small .cui-security-system__icon[data-v-67cacde3]{width:1.25rem;height:1.25rem}.cui-security-system--small .cui-security-system__icon-svg[data-v-67cacde3]{width:1.125rem;height:1.125rem}.cui-security-system--small .cui-security-system__label[data-v-67cacde3]{font-size:.75rem}.cui-security-system--small .cui-security-system__status[data-v-67cacde3]{font-size:.625rem}.cui-security-system--small .cui-security-system__mode[data-v-67cacde3]{padding:.375rem .125rem;font-size:.5rem}.cui-security-system--small .cui-security-system__mode-icon[data-v-67cacde3]{width:.875rem;height:.875rem}.cui-security-system--large[data-v-67cacde3]{gap:.75rem;padding:1rem}.cui-security-system--large .cui-security-system__icon[data-v-67cacde3]{width:2.25rem;height:2.25rem}.cui-security-system--large .cui-security-system__icon-svg[data-v-67cacde3]{width:2rem;height:2rem}.cui-security-system--large .cui-security-system__label[data-v-67cacde3]{font-size:1rem}.cui-security-system--large .cui-security-system__status[data-v-67cacde3]{font-size:.875rem}.cui-security-system--large .cui-security-system__mode[data-v-67cacde3]{padding:.625rem .375rem;font-size:.75rem}.cui-security-system--large .cui-security-system__mode-icon[data-v-67cacde3]{width:1.375rem;height:1.375rem}.cui-siren-control[data-v-7f88e563]{border-radius:.75rem;flex-direction:column;gap:.75rem;padding:1rem;display:flex}.cui-siren-control--disabled[data-v-7f88e563]{opacity:.6;pointer-events:none}.cui-siren-control__header[data-v-7f88e563]{align-items:center;gap:.75rem;display:flex}.cui-siren-control__icon[data-v-7f88e563]{justify-content:center;align-items:center;width:2rem;height:2rem;display:flex}.cui-siren-control__icon-svg[data-v-7f88e563]{width:1.5rem;height:1.5rem;color:var(--text-secondary-color);transition:color .2s,filter .2s,opacity .2s}.cui-siren-control__icon-svg--active[data-v-7f88e563]{animation:.5s ease-in-out infinite alternate siren-pulse-7f88e563}@keyframes siren-pulse-7f88e563{0%{transform:scale(1)}to{transform:scale(1.1)}}.cui-siren-control__label[data-v-7f88e563]{color:var(--text-color);flex:1;font-weight:500}.cui-siren-control__toggle[data-v-7f88e563]{margin-left:auto}.cui-siren-control__volume[data-v-7f88e563]{flex-direction:column;gap:.5rem;padding-top:.5rem;display:flex}.cui-siren-control__volume-header[data-v-7f88e563]{align-items:center;gap:.5rem;display:flex}.cui-siren-control__volume-icon[data-v-7f88e563]{width:1rem;height:1rem;color:var(--text-secondary-color)}.cui-siren-control__volume-value[data-v-7f88e563]{color:var(--text-secondary-color);margin-left:auto;font-size:.875rem}.cui-siren-control__slider[data-v-7f88e563]{width:100%}.cui-siren-control--small[data-v-7f88e563]{gap:.5rem;padding:.75rem}.cui-siren-control--small .cui-siren-control__icon[data-v-7f88e563]{width:1.5rem;height:1.5rem}.cui-siren-control--small .cui-siren-control__icon-svg[data-v-7f88e563]{width:1.25rem;height:1.25rem}.cui-siren-control--small .cui-siren-control__label[data-v-7f88e563]{font-size:.875rem}.cui-siren-control--large[data-v-7f88e563]{gap:1rem;padding:1.25rem}.cui-siren-control--large .cui-siren-control__icon[data-v-7f88e563]{width:2.5rem;height:2.5rem}.cui-siren-control--large .cui-siren-control__icon-svg[data-v-7f88e563]{width:2rem;height:2rem}.cui-siren-control--large .cui-siren-control__label[data-v-7f88e563]{font-size:1.125rem}.cui-lock-control[data-v-4b2a60ff]{border-radius:.5rem;flex-direction:column;gap:.5rem;padding:.75rem;display:flex}.cui-lock-control--disabled[data-v-4b2a60ff]{opacity:.6;pointer-events:none}.cui-lock-control__header[data-v-4b2a60ff]{align-items:center;gap:.5rem;display:flex}.cui-lock-control__icon[data-v-4b2a60ff]{justify-content:center;align-items:center;width:1.75rem;height:1.75rem;display:flex}.cui-lock-control__icon-svg[data-v-4b2a60ff]{width:1.5rem;height:1.5rem;color:var(--text-secondary-color);transition:color .2s,filter .2s}.cui-lock-control__info[data-v-4b2a60ff]{flex-direction:column;gap:0;display:flex}.cui-lock-control__label[data-v-4b2a60ff]{color:var(--text-color);font-size:.875rem;font-weight:500}.cui-lock-control__status[data-v-4b2a60ff]{color:var(--text-secondary-color);font-size:.75rem;font-weight:500}.cui-lock-control__status--secured[data-v-4b2a60ff]{color:#22c55e}.cui-lock-control__status--unsecured[data-v-4b2a60ff]{color:#eab308}.cui-lock-control__status--transitioning[data-v-4b2a60ff]{color:#eab308;animation:1s ease-in-out infinite pulse-text-4b2a60ff}@keyframes pulse-text-4b2a60ff{0%,to{opacity:1}50%{opacity:.5}}.cui-lock-control--small[data-v-4b2a60ff]{gap:.375rem;padding:.5rem}.cui-lock-control--small .cui-lock-control__icon[data-v-4b2a60ff]{width:1.25rem;height:1.25rem}.cui-lock-control--small .cui-lock-control__icon-svg[data-v-4b2a60ff]{width:1.125rem;height:1.125rem}.cui-lock-control--small .cui-lock-control__label[data-v-4b2a60ff]{font-size:.75rem}.cui-lock-control--small .cui-lock-control__status[data-v-4b2a60ff]{font-size:.625rem}.cui-lock-control--large[data-v-4b2a60ff]{gap:.75rem;padding:1rem}.cui-lock-control--large .cui-lock-control__icon[data-v-4b2a60ff]{width:2.25rem;height:2.25rem}.cui-lock-control--large .cui-lock-control__icon-svg[data-v-4b2a60ff]{width:2rem;height:2rem}.cui-lock-control--large .cui-lock-control__label[data-v-4b2a60ff]{font-size:1rem}.cui-lock-control--large .cui-lock-control__status[data-v-4b2a60ff]{font-size:.875rem}.cui-switch-control[data-v-86992927]{border-radius:.75rem;flex-direction:column;gap:.75rem;padding:1rem;display:flex}.cui-switch-control--disabled[data-v-86992927]{opacity:.6;pointer-events:none}.cui-switch-control__header[data-v-86992927]{align-items:center;gap:.75rem;display:flex}.cui-switch-control__icon[data-v-86992927]{justify-content:center;align-items:center;width:2rem;height:2rem;display:flex}.cui-switch-control__icon-svg[data-v-86992927]{width:1.5rem;height:1.5rem;color:var(--text-secondary-color);transition:color .2s,filter .2s}.cui-switch-control__label[data-v-86992927]{color:var(--text-color);flex:1;font-weight:500}.cui-switch-control__toggle[data-v-86992927]{margin-left:auto}.cui-switch-control--small[data-v-86992927]{gap:.5rem;padding:.75rem}.cui-switch-control--small .cui-switch-control__icon[data-v-86992927]{width:1.5rem;height:1.5rem}.cui-switch-control--small .cui-switch-control__icon-svg[data-v-86992927]{width:1.25rem;height:1.25rem}.cui-switch-control--small .cui-switch-control__label[data-v-86992927]{font-size:.875rem}.cui-switch-control--large[data-v-86992927]{gap:1rem;padding:1.25rem}.cui-switch-control--large .cui-switch-control__icon[data-v-86992927]{width:2.5rem;height:2.5rem}.cui-switch-control--large .cui-switch-control__icon-svg[data-v-86992927]{width:2rem;height:2rem}.cui-switch-control--large .cui-switch-control__label[data-v-86992927]{font-size:1.125rem}.cui-light-control[data-v-231e0be1]{border-radius:.75rem;flex-direction:column;gap:.75rem;padding:1rem;display:flex}.cui-light-control--disabled[data-v-231e0be1]{opacity:.6;pointer-events:none}.cui-light-control__header[data-v-231e0be1]{align-items:center;gap:.75rem;display:flex}.cui-light-control__icon[data-v-231e0be1]{justify-content:center;align-items:center;width:2rem;height:2rem;display:flex}.cui-light-control__icon-svg[data-v-231e0be1]{width:1.5rem;height:1.5rem;color:var(--text-secondary-color);transition:color .2s,filter .2s,opacity .2s}.cui-light-control__icon-svg--on[data-v-231e0be1]{color:var(--yellow-400)}.cui-light-control__label[data-v-231e0be1]{color:var(--text-color);flex:1;font-weight:500}.cui-light-control__toggle[data-v-231e0be1]{margin-left:auto}.cui-light-control__brightness[data-v-231e0be1]{flex-direction:column;gap:.5rem;padding-top:.5rem;display:flex}.cui-light-control__brightness-header[data-v-231e0be1]{align-items:center;gap:.5rem;display:flex}.cui-light-control__brightness-icon[data-v-231e0be1]{width:1rem;height:1rem;color:var(--text-secondary-color)}.cui-light-control__brightness-value[data-v-231e0be1]{color:var(--text-secondary-color);margin-left:auto;font-size:.875rem}.cui-light-control__slider[data-v-231e0be1]{width:100%}.cui-light-control--small[data-v-231e0be1]{gap:.5rem;padding:.75rem}.cui-light-control--small .cui-light-control__icon[data-v-231e0be1]{width:1.5rem;height:1.5rem}.cui-light-control--small .cui-light-control__icon-svg[data-v-231e0be1]{width:1.25rem;height:1.25rem}.cui-light-control--small .cui-light-control__label[data-v-231e0be1]{font-size:.875rem}.cui-light-control--large[data-v-231e0be1]{gap:1rem;padding:1.25rem}.cui-light-control--large .cui-light-control__icon[data-v-231e0be1]{width:2.5rem;height:2.5rem}.cui-light-control--large .cui-light-control__icon-svg[data-v-231e0be1]{width:2rem;height:2rem}.cui-light-control--large .cui-light-control__label[data-v-231e0be1]{font-size:1.125rem}.cui-detection[data-v-4bdc871b]{border-radius:.5rem;flex-direction:column;gap:.5rem;padding:.75rem;display:flex}.cui-detection--detected[data-v-4bdc871b]{border-color:#22c55e4d}.cui-detection--disabled[data-v-4bdc871b]{opacity:.6}.cui-detection__header[data-v-4bdc871b]{align-items:center;gap:.5rem;display:flex}.cui-detection__icon[data-v-4bdc871b]{justify-content:center;align-items:center;width:1.75rem;height:1.75rem;display:flex}.cui-detection__icon-svg[data-v-4bdc871b]{width:1.5rem;height:1.5rem;color:var(--text-secondary-color);transition:color .2s}.cui-detection__icon--detected .cui-detection__icon-svg[data-v-4bdc871b]{color:#22c55e}.cui-detection__info[data-v-4bdc871b]{flex-direction:column;flex:1;gap:0;display:flex}.cui-detection__label[data-v-4bdc871b]{color:var(--text-color);font-size:.875rem;font-weight:500}.cui-detection__status[data-v-4bdc871b]{color:var(--text-secondary-color);font-size:.75rem;font-weight:500}.cui-detection__status--detected[data-v-4bdc871b]{color:#22c55e}.cui-detection__indicator[data-v-4bdc871b]{background-color:var(--surface-300);border-radius:50%;width:.5rem;height:.5rem;transition:all .2s}.cui-detection__indicator--detected[data-v-4bdc871b]{background-color:#22c55e;animation:1.5s ease-in-out infinite pulse-indicator-4bdc871b;box-shadow:0 0 6px #22c55e99}@keyframes pulse-indicator-4bdc871b{0%,to{opacity:1}50%{opacity:.5}}.cui-detection__detections[data-v-4bdc871b]{flex-wrap:wrap;gap:.25rem;padding-top:.5rem;display:flex}.cui-detection__detection-tag[data-v-4bdc871b]{color:#22c55e;text-transform:capitalize;background:#22c55e26;border-radius:1rem;align-items:center;padding:.125rem .5rem;font-size:.625rem;font-weight:500;display:inline-flex}.cui-detection--small[data-v-4bdc871b]{gap:.375rem;padding:.5rem}.cui-detection--small .cui-detection__icon[data-v-4bdc871b]{width:1.25rem;height:1.25rem}.cui-detection--small .cui-detection__icon-svg[data-v-4bdc871b]{width:1.125rem;height:1.125rem}.cui-detection--small .cui-detection__label[data-v-4bdc871b]{font-size:.75rem}.cui-detection--small .cui-detection__status[data-v-4bdc871b]{font-size:.625rem}.cui-detection--small .cui-detection__indicator[data-v-4bdc871b]{width:.375rem;height:.375rem}.cui-detection--small .cui-detection__detection-tag[data-v-4bdc871b]{padding:.0625rem .375rem;font-size:.5rem}.cui-detection--large[data-v-4bdc871b]{gap:.75rem;padding:1rem}.cui-detection--large .cui-detection__icon[data-v-4bdc871b]{width:2.25rem;height:2.25rem}.cui-detection--large .cui-detection__icon-svg[data-v-4bdc871b]{width:2rem;height:2rem}.cui-detection--large .cui-detection__label[data-v-4bdc871b]{font-size:1rem}.cui-detection--large .cui-detection__status[data-v-4bdc871b]{font-size:.875rem}.cui-detection--large .cui-detection__indicator[data-v-4bdc871b]{width:.625rem;height:.625rem}.cui-detection--large .cui-detection__detection-tag[data-v-4bdc871b]{padding:.1875rem .625rem;font-size:.75rem}.overview-container[data-v-5d86732a]{flex-direction:column;display:flex}.overview-section[data-v-5d86732a]{border-bottom:1px solid var(--surface-border);padding:1rem}.overview-section[data-v-5d86732a]:last-child{border-bottom:none}.overview-section-title[data-v-5d86732a]{text-transform:uppercase;color:var(--text-secondary-color);letter-spacing:.05em;margin-bottom:.75rem;font-size:.75rem;font-weight:600}[data-v-5d86732a] .p-datatable-tbody>tr>td{height:50px}.no-sensors[data-v-5d86732a]{text-align:center;color:var(--text-secondary-color);padding:1.5rem;font-size:.875rem}.drawer-header[data-v-24ee7633]{background:var(--p-drawer-background)}.loader[data-v-839ba1ea]{background:var(--ground-background);width:100dvw;min-width:100dvw;max-width:100dvw;height:100dvh;min-height:100dvh;max-height:100dvh}div[data-v-839ba1ea] .cameraLens{transform-origin:35% 55%;animation:.8s cubic-bezier(.47,1.84,.21,.8) forwards lensMove-839ba1ea,.8s ease-in-out .4s forwards lensRotate-839ba1ea,.6s cubic-bezier(.47,1.84,.21,.8) 1.3s forwards lensMoveBack-839ba1ea}div[data-v-839ba1ea] .cameraLetter{transform-origin:50%;animation:.4s cubic-bezier(.47,1.84,.21,.8) forwards letterScale-839ba1ea,.4s cubic-bezier(.47,1.84,.21,.8) 1.2s forwards letterScaleBack-839ba1ea}@keyframes letterScale-839ba1ea{0%{transform:scale(1)}to{transform:scale(.8)}}@keyframes letterScaleBack-839ba1ea{0%{transform:scale(.8)}to{transform:scale(1)}}@keyframes lensMove-839ba1ea{0%{transform:translateY(0)}to{transform:translateY(-40px)}}@keyframes lensMoveBack-839ba1ea{0%{transform:translateY(-40px)}to{transform:translateY(0)}}@keyframes lensRotate-839ba1ea{0%{transform:translateY(-40px)rotate(0)}to{transform:translateY(-40px)rotate(-360deg)}}.fixed-bg[data-v-d25eaf46]{top:calc(0px - env(safe-area-inset-top,0px) - 10px);left:calc(0px - env(safe-area-inset-left,0px) - 10px);right:calc(0px - env(safe-area-inset-right,0px) - 10px);bottom:calc(0px - env(safe-area-inset-bottom,0px) - 10px);z-index:0;position:fixed}
1
+ .app-lock-overlay[data-v-baef4383]{z-index:9999;background:var(--ground-background);-webkit-backdrop-filter:blur(20px);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.cui-restore-overlay[data-v-0c1a6c8d]{z-index:10000;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#0009;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.cui-restore-overlay__card[data-v-0c1a6c8d]{background:var(--card-background);border:1px solid var(--border-color);text-align:center;border-radius:.75rem;flex-direction:column;align-items:center;gap:1rem;width:100%;max-width:360px;padding:2rem 1.5rem;display:flex}.fade-enter-active[data-v-0c1a6c8d],.fade-leave-active[data-v-0c1a6c8d]{transition:opacity .3s}.fade-enter-from[data-v-0c1a6c8d],.fade-leave-to[data-v-0c1a6c8d]{opacity:0}.cui-update-indicator[data-v-8ce1000d]{z-index:9999;background:var(--card-background);border:1px solid var(--border-color);border-radius:.5rem;padding:.75rem 1rem;position:fixed;left:50%;transform:translate(-50%)}.cui-update-indicator__content[data-v-8ce1000d]{align-items:center;gap:.5rem;display:flex}.cui-update-indicator__spinner[data-v-8ce1000d]{width:20px!important;height:20px!important}.cui-update-indicator__icon[data-v-8ce1000d]{width:20px;height:20px;color:var(--text-color)}.cui-update-indicator__text[data-v-8ce1000d]{color:var(--text-color);white-space:nowrap;font-size:.875rem}.cui-update-indicator__button[data-v-8ce1000d]{white-space:nowrap;margin-left:.5rem}.fade-enter-active[data-v-8ce1000d],.fade-leave-active[data-v-8ce1000d]{transition:opacity .3s}.fade-enter-from[data-v-8ce1000d],.fade-leave-to[data-v-8ce1000d]{opacity:0}.cui-connection-indicator[data-v-0204ee57]{z-index:9999;background:var(--card-background);border:1px solid var(--border-color);border-radius:.5rem;max-width:calc(100vw - 2rem);padding:.75rem 1rem;position:fixed;left:50%;transform:translate(-50%)}.cui-connection-indicator__content[data-v-0204ee57]{align-items:center;gap:.5rem;display:flex}.cui-connection-indicator__text[data-v-0204ee57]{color:var(--text-color);white-space:nowrap;font-size:.875rem}.cui-connection-indicator__button[data-v-0204ee57]{margin-left:.5rem}.fade-enter-active[data-v-0204ee57],.fade-leave-active[data-v-0204ee57]{transition:opacity .3s}.fade-enter-from[data-v-0204ee57],.fade-leave-to[data-v-0204ee57]{opacity:0}.close-button[data-v-d1e31a06],.minify-button[data-v-d1e31a06],.expand-button[data-v-d1e31a06],.disabled-button[data-v-d1e31a06]{-webkit-app-region:no-drag;border-radius:20px;width:12px;height:12px;transition:all .2s ease-in-out}.close-button[data-v-d1e31a06]:hover,.minify-button[data-v-d1e31a06]:hover,.expand-button[data-v-d1e31a06]:hover,.disabled-button[data-v-d1e31a06]:hover{cursor:default}.close-button[data-v-d1e31a06]{background-color:#ff5954;border:0 solid #df302a}.close-button[data-v-d1e31a06]:active{background-color:#d63f3a;border:0 solid #c12e26}.minify-button[data-v-d1e31a06]{background-color:#fdbd30;border:0 solid #c18b17}.minify-button[data-v-d1e31a06]:active{background-color:#c18b17;border:0 solid #a27613}.expand-button[data-v-d1e31a06]{background-color:#00ca3b;border:0 solid #02a934}.expand-button[data-v-d1e31a06]:active{background-color:#02a934;border:0 solid #028b2b}.disabled-button[data-v-d1e31a06]{background-color:#3d3d3d;border:0 solid #282828}.navitem-active[data-v-9e0c467b]{background:var(--navitem-active-color,var(--p-button-text-primary-active-background));border-color:#0000;border-top:1px solid var(--navitem-active-color,var(--p-button-outlined-danger-hover-background))}.navbar-group-enter-active[data-v-d2e83278],.navbar-group-leave-active[data-v-d2e83278]{transition:all .2s;overflow:hidden}.navbar-group-enter-from[data-v-d2e83278],.navbar-group-leave-to[data-v-d2e83278]{opacity:0;max-height:0}.navbar-group-enter-to[data-v-d2e83278],.navbar-group-leave-from[data-v-d2e83278]{opacity:1;max-height:400px}.cui-bottombar[data-v-b0d768aa]:before{content:"";background:linear-gradient(#0000000d,#0000);height:1px;position:absolute;top:-1px;left:0;right:0}.notification-menu{left:auto!important;right:calc(env(safe-area-inset-right,0px) + .5rem)!important;top:calc(env(safe-area-inset-top,0px) + 3.3rem)!important}.cui-topbar[data-v-1c767220]{background:var(--topbar-background);border-bottom:1px solid var(--border-color)}.playground-container[data-v-5f061a75]{z-index:100;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;flex:1;justify-content:center;position:relative}@media (width>=800px){.playground-container[data-v-5f061a75]{border-radius:0 0 2px 2px}}.playground-container .playground[data-v-5f061a75]{position:relative}.playground-container .playground:hover .handle[data-v-5f061a75]{opacity:1}.playground-container .playground.customizing[data-v-5f061a75]{cursor:crosshair}.playground-container .playground.start .custom-notice[data-v-5f061a75]{opacity:1}.playground-container .playground .custom-notice[data-v-5f061a75]{pointer-events:none;opacity:0;background:#fff0;justify-content:center;align-items:center;transition:background .25s;display:flex;position:absolute;inset:0 0 1rem}.playground-container .playground .custom-notice div[data-v-5f061a75]{text-align:center;opacity:1;background:#ffffffe6;border-radius:2px;width:100%;margin:0 2rem;padding:1rem;transition:opacity .25s;box-shadow:0 1px 2px #100a0926}.playground-container .playground .custom-notice div .touchy[data-v-5f061a75]:after{content:"Click"}.playground-container .playground .sandbox[data-v-5f061a75]{touch-action:none;width:100%;height:100%;position:relative;inset:0}.playground-container .playground .sandbox .shadowboard[data-v-5f061a75]{z-index:11;pointer-events:none;opacity:0;background:#df2a4c4d 50%/cover;transition:opacity .375s;position:absolute;inset:10px}.playground-container .playground .sandbox .shadowboard.on[data-v-5f061a75]{opacity:0}.playground-container .playground.customizing .handle[data-v-5f061a75]{pointer-events:none}.handles[data-v-5f061a75]{z-index:10;position:absolute;inset:0}.handles .clipboard[data-v-5f061a75]{z-index:1;position:absolute;inset:0}.handles .clipboard .polygon-container[data-v-5f061a75]{position:absolute}.handles .clipboard .polygon-container path.selected[data-v-5f061a75]{stroke-width:2px}.handles .clipboard .polygon-container path.dash[data-v-5f061a75]{stroke-dasharray:5 5}.handles .delete-point[data-v-5f061a75],.handles .handle[data-v-5f061a75]{z-index:2;width:20px;height:20px;position:absolute}.handles .handle[data-v-5f061a75]{opacity:.8;border-radius:50%;transition:opacity .25s;box-shadow:inset 0 0 0 10px #fff}.handles .handle.is-dragging[data-v-5f061a75],.handles .handle.is-pointer-down[data-v-5f061a75]{z-index:100;cursor:none;transition:box-shadow;box-shadow:inset 0 0 0 10px #d0d0d0}.handles .handle.draggable[data-v-5f061a75]{cursor:grab}.handles .handle.show-delete .delete-point[data-v-5f061a75]{opacity:1;transition:transform .25s cubic-bezier(.15,1,.3,1.1),opacity .25s;transform:scale3d(.9,.9,.9)}.handles .handle[data-v-5f061a75]:after{content:"";display:block;position:absolute;inset:-8px}.handles .handle .delete-point[data-v-5f061a75]{transform-origin:0;cursor:pointer;opacity:.75;clip-path:polygon(25% 0,100% 1%,100% 100%,25% 100%,0 50%);background:#d3d0c9;border-radius:3px;width:25px;padding-left:5px;transition:transform .25s,opacity .25s;position:absolute;top:0;left:22px;transform:scale3d(0,0,0)}.handles .handle .delete-point[data-v-5f061a75]:after{content:"";clip-path:polygon(20% 10%,10% 20%,40% 50%,10% 80%,20% 90%,50% 60%,80% 90%,90% 80%,60% 50%,90% 20%,80% 10%,50% 40%);background:#100a09;display:block;position:absolute;inset:4px 4px 4px 9px}.cui-battery-info[data-v-c181f3d4]{border-radius:.5rem;flex-direction:column;gap:.5rem;padding:.75rem;display:flex}.cui-battery-info--disabled[data-v-c181f3d4]{opacity:.6}.cui-battery-info__header[data-v-c181f3d4]{align-items:center;gap:.5rem;display:flex}.cui-battery-info__icon[data-v-c181f3d4]{justify-content:center;align-items:center;width:1.75rem;height:1.75rem;display:flex}.cui-battery-info__icon-svg[data-v-c181f3d4]{width:1.5rem;height:1.5rem;transition:color .2s,filter .2s}.cui-battery-info__icon-svg--critical[data-v-c181f3d4]{animation:1s ease-in-out infinite battery-pulse-c181f3d4}@keyframes battery-pulse-c181f3d4{0%,to{opacity:1}50%{opacity:.5}}.cui-battery-info__info[data-v-c181f3d4]{flex-direction:column;flex:1;gap:0;display:flex}.cui-battery-info__label[data-v-c181f3d4]{color:var(--text-color);font-size:.875rem;font-weight:500}.cui-battery-info__status[data-v-c181f3d4]{color:var(--text-secondary-color);font-size:.75rem;font-weight:500}.cui-battery-info__status--charging[data-v-c181f3d4]{color:#3b82f6}.cui-battery-info__status--full[data-v-c181f3d4]{color:#22c55e}.cui-battery-info__status--low[data-v-c181f3d4]{color:#eab308}.cui-battery-info__status--critical[data-v-c181f3d4]{color:#ef4444;animation:.5s ease-in-out infinite alternate status-blink-c181f3d4}@keyframes status-blink-c181f3d4{0%{opacity:1}to{opacity:.6}}.cui-battery-info__level[data-v-c181f3d4]{color:var(--text-color);font-size:.875rem;font-weight:600}.cui-battery-info__level--charging[data-v-c181f3d4]{color:#3b82f6}.cui-battery-info__level--full[data-v-c181f3d4]{color:#22c55e}.cui-battery-info__level--low[data-v-c181f3d4]{color:#eab308}.cui-battery-info__level--critical[data-v-c181f3d4]{color:#ef4444}.cui-battery-info__bar[data-v-c181f3d4]{border-radius:.125rem;height:.25rem;overflow:hidden}.cui-battery-info__bar-fill[data-v-c181f3d4]{border-radius:.125rem;height:100%;transition:width .3s,background-color .3s}.cui-battery-info--small[data-v-c181f3d4]{gap:.375rem;padding:.5rem}.cui-battery-info--small .cui-battery-info__icon[data-v-c181f3d4]{width:1.25rem;height:1.25rem}.cui-battery-info--small .cui-battery-info__icon-svg[data-v-c181f3d4]{width:1.125rem;height:1.125rem}.cui-battery-info--small .cui-battery-info__label[data-v-c181f3d4]{font-size:.75rem}.cui-battery-info--small .cui-battery-info__status[data-v-c181f3d4]{font-size:.625rem}.cui-battery-info--small .cui-battery-info__level[data-v-c181f3d4]{font-size:.75rem}.cui-battery-info--small .cui-battery-info__bar[data-v-c181f3d4]{height:.1875rem}.cui-battery-info--large[data-v-c181f3d4]{gap:.75rem;padding:1rem}.cui-battery-info--large .cui-battery-info__icon[data-v-c181f3d4]{width:2.25rem;height:2.25rem}.cui-battery-info--large .cui-battery-info__icon-svg[data-v-c181f3d4]{width:2rem;height:2rem}.cui-battery-info--large .cui-battery-info__label[data-v-c181f3d4]{font-size:1rem}.cui-battery-info--large .cui-battery-info__status[data-v-c181f3d4]{font-size:.875rem}.cui-battery-info--large .cui-battery-info__level[data-v-c181f3d4]{font-size:1rem}.cui-battery-info--large .cui-battery-info__bar[data-v-c181f3d4]{height:.375rem}.cui-humidity-info[data-v-1f41d794]{border-radius:.5rem;flex-direction:column;gap:.5rem;padding:.75rem;display:flex}.cui-humidity-info--disabled[data-v-1f41d794]{opacity:.6}.cui-humidity-info__header[data-v-1f41d794]{align-items:center;gap:.5rem;display:flex}.cui-humidity-info__icon[data-v-1f41d794]{justify-content:center;align-items:center;width:1.75rem;height:1.75rem;display:flex}.cui-humidity-info__icon-svg[data-v-1f41d794]{width:1.5rem;height:1.5rem;transition:color .2s,filter .2s}.cui-humidity-info__info[data-v-1f41d794]{flex-direction:column;flex:1;gap:0;display:flex}.cui-humidity-info__label[data-v-1f41d794]{color:var(--text-color);font-size:.875rem;font-weight:500}.cui-humidity-info__status[data-v-1f41d794]{font-size:.75rem;font-weight:500;transition:color .2s}.cui-humidity-info__value[data-v-1f41d794]{white-space:nowrap;font-size:.875rem;font-weight:600;transition:color .2s}.cui-humidity-info--small[data-v-1f41d794]{gap:.375rem;padding:.5rem}.cui-humidity-info--small .cui-humidity-info__icon[data-v-1f41d794]{width:1.25rem;height:1.25rem}.cui-humidity-info--small .cui-humidity-info__icon-svg[data-v-1f41d794]{width:1.125rem;height:1.125rem}.cui-humidity-info--small .cui-humidity-info__label[data-v-1f41d794]{font-size:.75rem}.cui-humidity-info--small .cui-humidity-info__status[data-v-1f41d794]{font-size:.625rem}.cui-humidity-info--small .cui-humidity-info__value[data-v-1f41d794]{font-size:.75rem}.cui-humidity-info--large[data-v-1f41d794]{gap:.75rem;padding:1rem}.cui-humidity-info--large .cui-humidity-info__icon[data-v-1f41d794]{width:2.25rem;height:2.25rem}.cui-humidity-info--large .cui-humidity-info__icon-svg[data-v-1f41d794]{width:2rem;height:2rem}.cui-humidity-info--large .cui-humidity-info__label[data-v-1f41d794]{font-size:1rem}.cui-humidity-info--large .cui-humidity-info__status[data-v-1f41d794]{font-size:.875rem}.cui-humidity-info--large .cui-humidity-info__value[data-v-1f41d794]{font-size:1rem}.cui-temperature-info[data-v-0edddec9]{border-radius:.5rem;flex-direction:column;gap:.5rem;padding:.75rem;display:flex}.cui-temperature-info--disabled[data-v-0edddec9]{opacity:.6}.cui-temperature-info__header[data-v-0edddec9]{align-items:center;gap:.5rem;display:flex}.cui-temperature-info__icon[data-v-0edddec9]{justify-content:center;align-items:center;width:1.75rem;height:1.75rem;display:flex}.cui-temperature-info__icon-svg[data-v-0edddec9]{width:1.5rem;height:1.5rem;transition:color .2s,filter .2s}.cui-temperature-info__info[data-v-0edddec9]{flex-direction:column;flex:1;gap:0;display:flex}.cui-temperature-info__label[data-v-0edddec9]{color:var(--text-color);font-size:.875rem;font-weight:500}.cui-temperature-info__status[data-v-0edddec9]{font-size:.75rem;font-weight:500;transition:color .2s}.cui-temperature-info__value[data-v-0edddec9]{white-space:nowrap;font-size:.875rem;font-weight:600;transition:color .2s}.cui-temperature-info--small[data-v-0edddec9]{gap:.375rem;padding:.5rem}.cui-temperature-info--small .cui-temperature-info__icon[data-v-0edddec9]{width:1.25rem;height:1.25rem}.cui-temperature-info--small .cui-temperature-info__icon-svg[data-v-0edddec9]{width:1.125rem;height:1.125rem}.cui-temperature-info--small .cui-temperature-info__label[data-v-0edddec9]{font-size:.75rem}.cui-temperature-info--small .cui-temperature-info__status[data-v-0edddec9]{font-size:.625rem}.cui-temperature-info--small .cui-temperature-info__value[data-v-0edddec9]{font-size:.75rem}.cui-temperature-info--large[data-v-0edddec9]{gap:.75rem;padding:1rem}.cui-temperature-info--large .cui-temperature-info__icon[data-v-0edddec9]{width:2.25rem;height:2.25rem}.cui-temperature-info--large .cui-temperature-info__icon-svg[data-v-0edddec9]{width:2rem;height:2rem}.cui-temperature-info--large .cui-temperature-info__label[data-v-0edddec9]{font-size:1rem}.cui-temperature-info--large .cui-temperature-info__status[data-v-0edddec9]{font-size:.875rem}.cui-temperature-info--large .cui-temperature-info__value[data-v-0edddec9]{font-size:1rem}.cui-garage-control[data-v-4c6505c2]{border-radius:.5rem;flex-direction:column;gap:.5rem;padding:.75rem;display:flex}.cui-garage-control--disabled[data-v-4c6505c2]{opacity:.6;pointer-events:none}.cui-garage-control__header[data-v-4c6505c2]{align-items:center;gap:.5rem;display:flex}.cui-garage-control__icon[data-v-4c6505c2]{justify-content:center;align-items:center;width:1.75rem;height:1.75rem;display:flex;position:relative}.cui-garage-control__icon-svg[data-v-4c6505c2]{width:1.5rem;height:1.5rem;color:var(--text-secondary-color);transition:color .2s,filter .2s}.cui-garage-control__obstruction[data-v-4c6505c2]{background-color:#ef4444;border-radius:50%;width:8px;height:8px;position:absolute;top:-2px;right:-2px;box-shadow:0 0 6px #ef444499}.cui-garage-control__info[data-v-4c6505c2]{flex-direction:column;gap:0;display:flex}.cui-garage-control__label[data-v-4c6505c2]{color:var(--text-color);font-size:.875rem;font-weight:500}.cui-garage-control__status[data-v-4c6505c2]{color:var(--text-secondary-color);font-size:.75rem;font-weight:500}.cui-garage-control__status--open[data-v-4c6505c2]{color:#22c55e}.cui-garage-control__status--transitioning[data-v-4c6505c2]{color:#facc15;animation:1s ease-in-out infinite cui-garage-pulse-text-4c6505c2}.cui-garage-control__status--stopped[data-v-4c6505c2]{color:#fb923c}@keyframes cui-garage-pulse-text-4c6505c2{0%,to{opacity:1}50%{opacity:.5}}.cui-garage-control--small[data-v-4c6505c2]{gap:.375rem;padding:.5rem}.cui-garage-control--small .cui-garage-control__icon[data-v-4c6505c2]{width:1.25rem;height:1.25rem}.cui-garage-control--small .cui-garage-control__icon-svg[data-v-4c6505c2]{width:1.125rem;height:1.125rem}.cui-garage-control--small .cui-garage-control__label[data-v-4c6505c2]{font-size:.75rem}.cui-garage-control--small .cui-garage-control__status[data-v-4c6505c2]{font-size:.625rem}.cui-garage-control--small .cui-garage-control__obstruction[data-v-4c6505c2]{width:6px;height:6px}.cui-garage-control--large[data-v-4c6505c2]{gap:.75rem;padding:1rem}.cui-garage-control--large .cui-garage-control__icon[data-v-4c6505c2]{width:2.25rem;height:2.25rem}.cui-garage-control--large .cui-garage-control__icon-svg[data-v-4c6505c2]{width:2rem;height:2rem}.cui-garage-control--large .cui-garage-control__label[data-v-4c6505c2]{font-size:1rem}.cui-garage-control--large .cui-garage-control__status[data-v-4c6505c2]{font-size:.875rem}.cui-leak-sensor[data-v-14a46a3f]{border-radius:.5rem;flex-direction:column;gap:.5rem;padding:.75rem;display:flex}.cui-leak-sensor--disabled[data-v-14a46a3f]{opacity:.6}.cui-leak-sensor__header[data-v-14a46a3f]{align-items:center;gap:.5rem;display:flex}.cui-leak-sensor__icon[data-v-14a46a3f]{justify-content:center;align-items:center;width:1.75rem;height:1.75rem;display:flex}.cui-leak-sensor__icon-svg[data-v-14a46a3f]{width:1.5rem;height:1.5rem;transition:color .2s,filter .2s}.cui-leak-sensor__info[data-v-14a46a3f]{flex-direction:column;flex:1;gap:0;display:flex}.cui-leak-sensor__label[data-v-14a46a3f]{color:var(--text-color);font-size:.875rem;font-weight:500}.cui-leak-sensor__status[data-v-14a46a3f]{font-size:.75rem;font-weight:500}.cui-leak-sensor__status--detected[data-v-14a46a3f]{color:#3b82f6}.cui-leak-sensor__status--clear[data-v-14a46a3f]{color:var(--text-secondary-color)}.cui-leak-sensor__indicator[data-v-14a46a3f]{border-radius:50%;width:.5rem;height:.5rem;transition:background-color .2s}.cui-leak-sensor__indicator--detected[data-v-14a46a3f]{background-color:#3b82f6;animation:1.5s ease-in-out infinite pulse-indicator-14a46a3f;box-shadow:0 0 6px #3b82f699}.cui-leak-sensor__indicator--clear[data-v-14a46a3f]{background-color:var(--text-secondary-color)}@keyframes pulse-indicator-14a46a3f{0%,to{opacity:1}50%{opacity:.5}}.cui-leak-sensor--small[data-v-14a46a3f]{gap:.375rem;padding:.5rem}.cui-leak-sensor--small .cui-leak-sensor__icon[data-v-14a46a3f]{width:1.25rem;height:1.25rem}.cui-leak-sensor--small .cui-leak-sensor__icon-svg[data-v-14a46a3f]{width:1.125rem;height:1.125rem}.cui-leak-sensor--small .cui-leak-sensor__label[data-v-14a46a3f]{font-size:.75rem}.cui-leak-sensor--small .cui-leak-sensor__status[data-v-14a46a3f]{font-size:.625rem}.cui-leak-sensor--small .cui-leak-sensor__indicator[data-v-14a46a3f]{width:.375rem;height:.375rem}.cui-leak-sensor--large[data-v-14a46a3f]{gap:.75rem;padding:1rem}.cui-leak-sensor--large .cui-leak-sensor__icon[data-v-14a46a3f]{width:2.25rem;height:2.25rem}.cui-leak-sensor--large .cui-leak-sensor__icon-svg[data-v-14a46a3f]{width:2rem;height:2rem}.cui-leak-sensor--large .cui-leak-sensor__label[data-v-14a46a3f]{font-size:1rem}.cui-leak-sensor--large .cui-leak-sensor__status[data-v-14a46a3f]{font-size:.875rem}.cui-leak-sensor--large .cui-leak-sensor__indicator[data-v-14a46a3f]{width:.625rem;height:.625rem}.cui-smoke-sensor[data-v-4db50b68]{border-radius:.5rem;flex-direction:column;gap:.5rem;padding:.75rem;display:flex}.cui-smoke-sensor--disabled[data-v-4db50b68]{opacity:.6}.cui-smoke-sensor__header[data-v-4db50b68]{align-items:center;gap:.5rem;display:flex}.cui-smoke-sensor__icon[data-v-4db50b68]{justify-content:center;align-items:center;width:1.75rem;height:1.75rem;display:flex}.cui-smoke-sensor__icon-svg[data-v-4db50b68]{width:1.5rem;height:1.5rem;transition:color .2s,filter .2s}.cui-smoke-sensor__info[data-v-4db50b68]{flex-direction:column;flex:1;gap:0;display:flex}.cui-smoke-sensor__label[data-v-4db50b68]{color:var(--text-color);font-size:.875rem;font-weight:500}.cui-smoke-sensor__status[data-v-4db50b68]{font-size:.75rem;font-weight:500}.cui-smoke-sensor__status--detected[data-v-4db50b68]{color:#ef4444}.cui-smoke-sensor__status--clear[data-v-4db50b68]{color:var(--text-secondary-color)}.cui-smoke-sensor__indicator[data-v-4db50b68]{border-radius:50%;width:.5rem;height:.5rem;transition:background-color .2s}.cui-smoke-sensor__indicator--detected[data-v-4db50b68]{background-color:#ef4444;animation:1.5s ease-in-out infinite pulse-indicator-4db50b68;box-shadow:0 0 6px #ef444499}.cui-smoke-sensor__indicator--clear[data-v-4db50b68]{background-color:var(--text-secondary-color)}@keyframes pulse-indicator-4db50b68{0%,to{opacity:1}50%{opacity:.5}}.cui-smoke-sensor--small[data-v-4db50b68]{gap:.375rem;padding:.5rem}.cui-smoke-sensor--small .cui-smoke-sensor__icon[data-v-4db50b68]{width:1.25rem;height:1.25rem}.cui-smoke-sensor--small .cui-smoke-sensor__icon-svg[data-v-4db50b68]{width:1.125rem;height:1.125rem}.cui-smoke-sensor--small .cui-smoke-sensor__label[data-v-4db50b68]{font-size:.75rem}.cui-smoke-sensor--small .cui-smoke-sensor__status[data-v-4db50b68]{font-size:.625rem}.cui-smoke-sensor--small .cui-smoke-sensor__indicator[data-v-4db50b68]{width:.375rem;height:.375rem}.cui-smoke-sensor--large[data-v-4db50b68]{gap:.75rem;padding:1rem}.cui-smoke-sensor--large .cui-smoke-sensor__icon[data-v-4db50b68]{width:2.25rem;height:2.25rem}.cui-smoke-sensor--large .cui-smoke-sensor__icon-svg[data-v-4db50b68]{width:2rem;height:2rem}.cui-smoke-sensor--large .cui-smoke-sensor__label[data-v-4db50b68]{font-size:1rem}.cui-smoke-sensor--large .cui-smoke-sensor__status[data-v-4db50b68]{font-size:.875rem}.cui-smoke-sensor--large .cui-smoke-sensor__indicator[data-v-4db50b68]{width:.625rem;height:.625rem}.cui-occupancy-sensor[data-v-8ca5a1ce]{border-radius:.5rem;flex-direction:column;gap:.5rem;padding:.75rem;display:flex}.cui-occupancy-sensor--disabled[data-v-8ca5a1ce]{opacity:.6}.cui-occupancy-sensor__header[data-v-8ca5a1ce]{align-items:center;gap:.5rem;display:flex}.cui-occupancy-sensor__icon[data-v-8ca5a1ce]{justify-content:center;align-items:center;width:1.75rem;height:1.75rem;display:flex}.cui-occupancy-sensor__icon-svg[data-v-8ca5a1ce]{width:1.5rem;height:1.5rem;transition:color .2s,filter .2s}.cui-occupancy-sensor__info[data-v-8ca5a1ce]{flex-direction:column;flex:1;gap:0;display:flex}.cui-occupancy-sensor__label[data-v-8ca5a1ce]{color:var(--text-color);font-size:.875rem;font-weight:500}.cui-occupancy-sensor__status[data-v-8ca5a1ce]{font-size:.75rem;font-weight:500}.cui-occupancy-sensor__status--occupied[data-v-8ca5a1ce]{color:#22c55e}.cui-occupancy-sensor__status--empty[data-v-8ca5a1ce]{color:var(--text-secondary-color)}.cui-occupancy-sensor__indicator[data-v-8ca5a1ce]{border-radius:50%;width:.5rem;height:.5rem;transition:background-color .2s}.cui-occupancy-sensor__indicator--occupied[data-v-8ca5a1ce]{background-color:#22c55e;box-shadow:0 0 6px #22c55e99}.cui-occupancy-sensor__indicator--empty[data-v-8ca5a1ce]{background-color:var(--text-secondary-color)}.cui-occupancy-sensor--small[data-v-8ca5a1ce]{gap:.375rem;padding:.5rem}.cui-occupancy-sensor--small .cui-occupancy-sensor__icon[data-v-8ca5a1ce]{width:1.25rem;height:1.25rem}.cui-occupancy-sensor--small .cui-occupancy-sensor__icon-svg[data-v-8ca5a1ce]{width:1.125rem;height:1.125rem}.cui-occupancy-sensor--small .cui-occupancy-sensor__label[data-v-8ca5a1ce]{font-size:.75rem}.cui-occupancy-sensor--small .cui-occupancy-sensor__status[data-v-8ca5a1ce]{font-size:.625rem}.cui-occupancy-sensor--small .cui-occupancy-sensor__indicator[data-v-8ca5a1ce]{width:.375rem;height:.375rem}.cui-occupancy-sensor--large[data-v-8ca5a1ce]{gap:.75rem;padding:1rem}.cui-occupancy-sensor--large .cui-occupancy-sensor__icon[data-v-8ca5a1ce]{width:2.25rem;height:2.25rem}.cui-occupancy-sensor--large .cui-occupancy-sensor__icon-svg[data-v-8ca5a1ce]{width:2rem;height:2rem}.cui-occupancy-sensor--large .cui-occupancy-sensor__label[data-v-8ca5a1ce]{font-size:1rem}.cui-occupancy-sensor--large .cui-occupancy-sensor__status[data-v-8ca5a1ce]{font-size:.875rem}.cui-occupancy-sensor--large .cui-occupancy-sensor__indicator[data-v-8ca5a1ce]{width:.625rem;height:.625rem}.cui-contact-sensor[data-v-0cc50676]{border-radius:.5rem;flex-direction:column;gap:.5rem;padding:.75rem;display:flex}.cui-contact-sensor--disabled[data-v-0cc50676]{opacity:.6}.cui-contact-sensor__header[data-v-0cc50676]{align-items:center;gap:.5rem;display:flex}.cui-contact-sensor__icon[data-v-0cc50676]{justify-content:center;align-items:center;width:1.75rem;height:1.75rem;display:flex}.cui-contact-sensor__icon-svg[data-v-0cc50676]{width:1.5rem;height:1.5rem;transition:color .2s,filter .2s}.cui-contact-sensor__info[data-v-0cc50676]{flex-direction:column;flex:1;gap:0;display:flex}.cui-contact-sensor__label[data-v-0cc50676]{color:var(--text-color);font-size:.875rem;font-weight:500}.cui-contact-sensor__status[data-v-0cc50676]{font-size:.75rem;font-weight:500}.cui-contact-sensor__status--closed[data-v-0cc50676]{color:#22c55e}.cui-contact-sensor__status--open[data-v-0cc50676]{color:#fb923c}.cui-contact-sensor__indicator[data-v-0cc50676]{border-radius:50%;width:.5rem;height:.5rem;transition:background-color .2s}.cui-contact-sensor__indicator--closed[data-v-0cc50676]{background-color:#22c55e;box-shadow:0 0 6px #22c55e99}.cui-contact-sensor__indicator--open[data-v-0cc50676]{background-color:#fb923c;animation:1.5s ease-in-out infinite pulse-indicator-0cc50676;box-shadow:0 0 6px #fb923c99}@keyframes pulse-indicator-0cc50676{0%,to{opacity:1}50%{opacity:.5}}.cui-contact-sensor--small[data-v-0cc50676]{gap:.375rem;padding:.5rem}.cui-contact-sensor--small .cui-contact-sensor__icon[data-v-0cc50676]{width:1.25rem;height:1.25rem}.cui-contact-sensor--small .cui-contact-sensor__icon-svg[data-v-0cc50676]{width:1.125rem;height:1.125rem}.cui-contact-sensor--small .cui-contact-sensor__label[data-v-0cc50676]{font-size:.75rem}.cui-contact-sensor--small .cui-contact-sensor__status[data-v-0cc50676]{font-size:.625rem}.cui-contact-sensor--small .cui-contact-sensor__indicator[data-v-0cc50676]{width:.375rem;height:.375rem}.cui-contact-sensor--large[data-v-0cc50676]{gap:.75rem;padding:1rem}.cui-contact-sensor--large .cui-contact-sensor__icon[data-v-0cc50676]{width:2.25rem;height:2.25rem}.cui-contact-sensor--large .cui-contact-sensor__icon-svg[data-v-0cc50676]{width:2rem;height:2rem}.cui-contact-sensor--large .cui-contact-sensor__label[data-v-0cc50676]{font-size:1rem}.cui-contact-sensor--large .cui-contact-sensor__status[data-v-0cc50676]{font-size:.875rem}.cui-contact-sensor--large .cui-contact-sensor__indicator[data-v-0cc50676]{width:.625rem;height:.625rem}.cui-doorbell[data-v-b227d18a]{border-radius:.5rem;flex-direction:column;gap:.5rem;padding:.75rem;transition:all .2s;display:flex}.cui-doorbell--disabled[data-v-b227d18a]{opacity:.6;pointer-events:none}.cui-doorbell__header[data-v-b227d18a]{align-items:center;gap:.5rem;display:flex}.cui-doorbell__icon[data-v-b227d18a]{justify-content:center;align-items:center;width:1.75rem;height:1.75rem;display:flex}.cui-doorbell__icon-svg[data-v-b227d18a]{width:1.5rem;height:1.5rem;color:var(--text-secondary-color);transition:color .2s,filter .2s}.cui-doorbell__icon-svg--ringing[data-v-b227d18a]{animation:.15s ease-in-out infinite doorbell-shake-b227d18a}@keyframes doorbell-shake-b227d18a{0%,to{transform:rotate(-15deg)}50%{transform:rotate(15deg)}}.cui-doorbell__info[data-v-b227d18a]{flex-direction:column;flex:1;gap:0;display:flex}.cui-doorbell__label[data-v-b227d18a]{color:var(--text-color);font-size:.875rem;font-weight:500}.cui-doorbell__status[data-v-b227d18a]{color:var(--text-secondary-color);font-size:.75rem}.cui-doorbell__status--ringing[data-v-b227d18a]{color:#eab308;font-weight:600;animation:.3s ease-in-out infinite alternate blink-b227d18a}@keyframes blink-b227d18a{0%{opacity:1}to{opacity:.5}}.cui-doorbell__button[data-v-b227d18a]{margin-left:auto}.cui-doorbell__button-icon[data-v-b227d18a]{width:1rem;height:1rem}.cui-doorbell--small[data-v-b227d18a]{gap:.375rem;padding:.5rem}.cui-doorbell--small .cui-doorbell__icon[data-v-b227d18a]{width:1.25rem;height:1.25rem}.cui-doorbell--small .cui-doorbell__icon-svg[data-v-b227d18a]{width:1.125rem;height:1.125rem}.cui-doorbell--small .cui-doorbell__label[data-v-b227d18a]{font-size:.75rem}.cui-doorbell--small .cui-doorbell__status[data-v-b227d18a]{font-size:.625rem}.cui-doorbell--large[data-v-b227d18a]{gap:.75rem;padding:1rem}.cui-doorbell--large .cui-doorbell__icon[data-v-b227d18a]{width:2.25rem;height:2.25rem}.cui-doorbell--large .cui-doorbell__icon-svg[data-v-b227d18a]{width:2rem;height:2rem}.cui-doorbell--large .cui-doorbell__label[data-v-b227d18a]{font-size:1rem}.cui-doorbell--large .cui-doorbell__status[data-v-b227d18a]{font-size:.875rem}.cui-security-system[data-v-67cacde3]{border-radius:.5rem;flex-direction:column;gap:.5rem;padding:.75rem;display:flex}.cui-security-system--disabled[data-v-67cacde3]{opacity:.6;pointer-events:none}.cui-security-system__header[data-v-67cacde3]{align-items:center;gap:.5rem;display:flex}.cui-security-system__icon[data-v-67cacde3]{justify-content:center;align-items:center;width:1.75rem;height:1.75rem;display:flex}.cui-security-system__icon-svg[data-v-67cacde3]{width:1.5rem;height:1.5rem;color:var(--text-secondary-color);transition:color .2s,filter .2s}.cui-security-system__info[data-v-67cacde3]{flex-direction:column;gap:0;display:flex}.cui-security-system__label[data-v-67cacde3]{color:var(--text-color);font-size:.875rem;font-weight:500}.cui-security-system__status[data-v-67cacde3]{font-size:.75rem;font-weight:500}.cui-security-system__status--disarmed[data-v-67cacde3]{color:var(--text-secondary-color)}.cui-security-system__status--armed[data-v-67cacde3]{color:#22c55e}.cui-security-system__status--transitioning[data-v-67cacde3]{color:#eab308;animation:1s ease-in-out infinite pulse-text-67cacde3}@keyframes pulse-text-67cacde3{0%,to{opacity:1}50%{opacity:.5}}.cui-security-system__status--alarm[data-v-67cacde3]{color:#ef4444;animation:.5s ease-in-out infinite alternate blink-67cacde3}@keyframes blink-67cacde3{0%{opacity:1}to{opacity:.5}}@keyframes pulse-67cacde3{0%{transform:scale(1)}to{transform:scale(1.1)}}.cui-security-system__alarm[data-v-67cacde3]{color:#ef4444;background-color:#ef44441a;border:1px solid #ef44444d;border-radius:.375rem;align-items:center;gap:.375rem;padding:.5rem;font-size:.75rem;font-weight:500;display:flex}.cui-security-system__alarm-icon[data-v-67cacde3]{width:1rem;height:1rem;animation:.5s ease-in-out infinite alternate pulse-67cacde3}.cui-security-system__alarm[data-v-67cacde3] .p-button{margin-left:auto}.cui-security-system__modes[data-v-67cacde3]{grid-template-columns:repeat(4,1fr);gap:.375rem;display:grid}.cui-security-system__mode[data-v-67cacde3]{border:1px solid var(--surface-border);background-color:var(--surface-ground);color:var(--text-secondary-color);cursor:pointer;border-radius:.375rem;flex-direction:column;align-items:center;gap:.125rem;padding:.5rem .25rem;font-size:.625rem;font-weight:500;transition:all .2s;display:flex}.cui-security-system__mode[data-v-67cacde3]:disabled{opacity:.5;cursor:not-allowed}.cui-security-system__mode--active[data-v-67cacde3]{background-color:var(--primary-500);border-color:var(--primary-500);color:#fff}.cui-security-system__mode--active[data-v-67cacde3]:hover:not(:disabled){background-color:var(--primary-600)}.cui-security-system__mode-icon[data-v-67cacde3]{width:1.125rem;height:1.125rem}.cui-security-system--small[data-v-67cacde3]{gap:.375rem;padding:.5rem}.cui-security-system--small .cui-security-system__icon[data-v-67cacde3]{width:1.25rem;height:1.25rem}.cui-security-system--small .cui-security-system__icon-svg[data-v-67cacde3]{width:1.125rem;height:1.125rem}.cui-security-system--small .cui-security-system__label[data-v-67cacde3]{font-size:.75rem}.cui-security-system--small .cui-security-system__status[data-v-67cacde3]{font-size:.625rem}.cui-security-system--small .cui-security-system__mode[data-v-67cacde3]{padding:.375rem .125rem;font-size:.5rem}.cui-security-system--small .cui-security-system__mode-icon[data-v-67cacde3]{width:.875rem;height:.875rem}.cui-security-system--large[data-v-67cacde3]{gap:.75rem;padding:1rem}.cui-security-system--large .cui-security-system__icon[data-v-67cacde3]{width:2.25rem;height:2.25rem}.cui-security-system--large .cui-security-system__icon-svg[data-v-67cacde3]{width:2rem;height:2rem}.cui-security-system--large .cui-security-system__label[data-v-67cacde3]{font-size:1rem}.cui-security-system--large .cui-security-system__status[data-v-67cacde3]{font-size:.875rem}.cui-security-system--large .cui-security-system__mode[data-v-67cacde3]{padding:.625rem .375rem;font-size:.75rem}.cui-security-system--large .cui-security-system__mode-icon[data-v-67cacde3]{width:1.375rem;height:1.375rem}.cui-siren-control[data-v-7f88e563]{border-radius:.75rem;flex-direction:column;gap:.75rem;padding:1rem;display:flex}.cui-siren-control--disabled[data-v-7f88e563]{opacity:.6;pointer-events:none}.cui-siren-control__header[data-v-7f88e563]{align-items:center;gap:.75rem;display:flex}.cui-siren-control__icon[data-v-7f88e563]{justify-content:center;align-items:center;width:2rem;height:2rem;display:flex}.cui-siren-control__icon-svg[data-v-7f88e563]{width:1.5rem;height:1.5rem;color:var(--text-secondary-color);transition:color .2s,filter .2s,opacity .2s}.cui-siren-control__icon-svg--active[data-v-7f88e563]{animation:.5s ease-in-out infinite alternate siren-pulse-7f88e563}@keyframes siren-pulse-7f88e563{0%{transform:scale(1)}to{transform:scale(1.1)}}.cui-siren-control__label[data-v-7f88e563]{color:var(--text-color);flex:1;font-weight:500}.cui-siren-control__toggle[data-v-7f88e563]{margin-left:auto}.cui-siren-control__volume[data-v-7f88e563]{flex-direction:column;gap:.5rem;padding-top:.5rem;display:flex}.cui-siren-control__volume-header[data-v-7f88e563]{align-items:center;gap:.5rem;display:flex}.cui-siren-control__volume-icon[data-v-7f88e563]{width:1rem;height:1rem;color:var(--text-secondary-color)}.cui-siren-control__volume-value[data-v-7f88e563]{color:var(--text-secondary-color);margin-left:auto;font-size:.875rem}.cui-siren-control__slider[data-v-7f88e563]{width:100%}.cui-siren-control--small[data-v-7f88e563]{gap:.5rem;padding:.75rem}.cui-siren-control--small .cui-siren-control__icon[data-v-7f88e563]{width:1.5rem;height:1.5rem}.cui-siren-control--small .cui-siren-control__icon-svg[data-v-7f88e563]{width:1.25rem;height:1.25rem}.cui-siren-control--small .cui-siren-control__label[data-v-7f88e563]{font-size:.875rem}.cui-siren-control--large[data-v-7f88e563]{gap:1rem;padding:1.25rem}.cui-siren-control--large .cui-siren-control__icon[data-v-7f88e563]{width:2.5rem;height:2.5rem}.cui-siren-control--large .cui-siren-control__icon-svg[data-v-7f88e563]{width:2rem;height:2rem}.cui-siren-control--large .cui-siren-control__label[data-v-7f88e563]{font-size:1.125rem}.cui-lock-control[data-v-4b2a60ff]{border-radius:.5rem;flex-direction:column;gap:.5rem;padding:.75rem;display:flex}.cui-lock-control--disabled[data-v-4b2a60ff]{opacity:.6;pointer-events:none}.cui-lock-control__header[data-v-4b2a60ff]{align-items:center;gap:.5rem;display:flex}.cui-lock-control__icon[data-v-4b2a60ff]{justify-content:center;align-items:center;width:1.75rem;height:1.75rem;display:flex}.cui-lock-control__icon-svg[data-v-4b2a60ff]{width:1.5rem;height:1.5rem;color:var(--text-secondary-color);transition:color .2s,filter .2s}.cui-lock-control__info[data-v-4b2a60ff]{flex-direction:column;gap:0;display:flex}.cui-lock-control__label[data-v-4b2a60ff]{color:var(--text-color);font-size:.875rem;font-weight:500}.cui-lock-control__status[data-v-4b2a60ff]{color:var(--text-secondary-color);font-size:.75rem;font-weight:500}.cui-lock-control__status--secured[data-v-4b2a60ff]{color:#22c55e}.cui-lock-control__status--unsecured[data-v-4b2a60ff]{color:#eab308}.cui-lock-control__status--transitioning[data-v-4b2a60ff]{color:#eab308;animation:1s ease-in-out infinite pulse-text-4b2a60ff}@keyframes pulse-text-4b2a60ff{0%,to{opacity:1}50%{opacity:.5}}.cui-lock-control--small[data-v-4b2a60ff]{gap:.375rem;padding:.5rem}.cui-lock-control--small .cui-lock-control__icon[data-v-4b2a60ff]{width:1.25rem;height:1.25rem}.cui-lock-control--small .cui-lock-control__icon-svg[data-v-4b2a60ff]{width:1.125rem;height:1.125rem}.cui-lock-control--small .cui-lock-control__label[data-v-4b2a60ff]{font-size:.75rem}.cui-lock-control--small .cui-lock-control__status[data-v-4b2a60ff]{font-size:.625rem}.cui-lock-control--large[data-v-4b2a60ff]{gap:.75rem;padding:1rem}.cui-lock-control--large .cui-lock-control__icon[data-v-4b2a60ff]{width:2.25rem;height:2.25rem}.cui-lock-control--large .cui-lock-control__icon-svg[data-v-4b2a60ff]{width:2rem;height:2rem}.cui-lock-control--large .cui-lock-control__label[data-v-4b2a60ff]{font-size:1rem}.cui-lock-control--large .cui-lock-control__status[data-v-4b2a60ff]{font-size:.875rem}.cui-switch-control[data-v-86992927]{border-radius:.75rem;flex-direction:column;gap:.75rem;padding:1rem;display:flex}.cui-switch-control--disabled[data-v-86992927]{opacity:.6;pointer-events:none}.cui-switch-control__header[data-v-86992927]{align-items:center;gap:.75rem;display:flex}.cui-switch-control__icon[data-v-86992927]{justify-content:center;align-items:center;width:2rem;height:2rem;display:flex}.cui-switch-control__icon-svg[data-v-86992927]{width:1.5rem;height:1.5rem;color:var(--text-secondary-color);transition:color .2s,filter .2s}.cui-switch-control__label[data-v-86992927]{color:var(--text-color);flex:1;font-weight:500}.cui-switch-control__toggle[data-v-86992927]{margin-left:auto}.cui-switch-control--small[data-v-86992927]{gap:.5rem;padding:.75rem}.cui-switch-control--small .cui-switch-control__icon[data-v-86992927]{width:1.5rem;height:1.5rem}.cui-switch-control--small .cui-switch-control__icon-svg[data-v-86992927]{width:1.25rem;height:1.25rem}.cui-switch-control--small .cui-switch-control__label[data-v-86992927]{font-size:.875rem}.cui-switch-control--large[data-v-86992927]{gap:1rem;padding:1.25rem}.cui-switch-control--large .cui-switch-control__icon[data-v-86992927]{width:2.5rem;height:2.5rem}.cui-switch-control--large .cui-switch-control__icon-svg[data-v-86992927]{width:2rem;height:2rem}.cui-switch-control--large .cui-switch-control__label[data-v-86992927]{font-size:1.125rem}.cui-light-control[data-v-231e0be1]{border-radius:.75rem;flex-direction:column;gap:.75rem;padding:1rem;display:flex}.cui-light-control--disabled[data-v-231e0be1]{opacity:.6;pointer-events:none}.cui-light-control__header[data-v-231e0be1]{align-items:center;gap:.75rem;display:flex}.cui-light-control__icon[data-v-231e0be1]{justify-content:center;align-items:center;width:2rem;height:2rem;display:flex}.cui-light-control__icon-svg[data-v-231e0be1]{width:1.5rem;height:1.5rem;color:var(--text-secondary-color);transition:color .2s,filter .2s,opacity .2s}.cui-light-control__icon-svg--on[data-v-231e0be1]{color:var(--yellow-400)}.cui-light-control__label[data-v-231e0be1]{color:var(--text-color);flex:1;font-weight:500}.cui-light-control__toggle[data-v-231e0be1]{margin-left:auto}.cui-light-control__brightness[data-v-231e0be1]{flex-direction:column;gap:.5rem;padding-top:.5rem;display:flex}.cui-light-control__brightness-header[data-v-231e0be1]{align-items:center;gap:.5rem;display:flex}.cui-light-control__brightness-icon[data-v-231e0be1]{width:1rem;height:1rem;color:var(--text-secondary-color)}.cui-light-control__brightness-value[data-v-231e0be1]{color:var(--text-secondary-color);margin-left:auto;font-size:.875rem}.cui-light-control__slider[data-v-231e0be1]{width:100%}.cui-light-control--small[data-v-231e0be1]{gap:.5rem;padding:.75rem}.cui-light-control--small .cui-light-control__icon[data-v-231e0be1]{width:1.5rem;height:1.5rem}.cui-light-control--small .cui-light-control__icon-svg[data-v-231e0be1]{width:1.25rem;height:1.25rem}.cui-light-control--small .cui-light-control__label[data-v-231e0be1]{font-size:.875rem}.cui-light-control--large[data-v-231e0be1]{gap:1rem;padding:1.25rem}.cui-light-control--large .cui-light-control__icon[data-v-231e0be1]{width:2.5rem;height:2.5rem}.cui-light-control--large .cui-light-control__icon-svg[data-v-231e0be1]{width:2rem;height:2rem}.cui-light-control--large .cui-light-control__label[data-v-231e0be1]{font-size:1.125rem}.cui-detection[data-v-4bdc871b]{border-radius:.5rem;flex-direction:column;gap:.5rem;padding:.75rem;display:flex}.cui-detection--detected[data-v-4bdc871b]{border-color:#22c55e4d}.cui-detection--disabled[data-v-4bdc871b]{opacity:.6}.cui-detection__header[data-v-4bdc871b]{align-items:center;gap:.5rem;display:flex}.cui-detection__icon[data-v-4bdc871b]{justify-content:center;align-items:center;width:1.75rem;height:1.75rem;display:flex}.cui-detection__icon-svg[data-v-4bdc871b]{width:1.5rem;height:1.5rem;color:var(--text-secondary-color);transition:color .2s}.cui-detection__icon--detected .cui-detection__icon-svg[data-v-4bdc871b]{color:#22c55e}.cui-detection__info[data-v-4bdc871b]{flex-direction:column;flex:1;gap:0;display:flex}.cui-detection__label[data-v-4bdc871b]{color:var(--text-color);font-size:.875rem;font-weight:500}.cui-detection__status[data-v-4bdc871b]{color:var(--text-secondary-color);font-size:.75rem;font-weight:500}.cui-detection__status--detected[data-v-4bdc871b]{color:#22c55e}.cui-detection__indicator[data-v-4bdc871b]{background-color:var(--surface-300);border-radius:50%;width:.5rem;height:.5rem;transition:all .2s}.cui-detection__indicator--detected[data-v-4bdc871b]{background-color:#22c55e;animation:1.5s ease-in-out infinite pulse-indicator-4bdc871b;box-shadow:0 0 6px #22c55e99}@keyframes pulse-indicator-4bdc871b{0%,to{opacity:1}50%{opacity:.5}}.cui-detection__detections[data-v-4bdc871b]{flex-wrap:wrap;gap:.25rem;padding-top:.5rem;display:flex}.cui-detection__detection-tag[data-v-4bdc871b]{color:#22c55e;text-transform:capitalize;background:#22c55e26;border-radius:1rem;align-items:center;padding:.125rem .5rem;font-size:.625rem;font-weight:500;display:inline-flex}.cui-detection--small[data-v-4bdc871b]{gap:.375rem;padding:.5rem}.cui-detection--small .cui-detection__icon[data-v-4bdc871b]{width:1.25rem;height:1.25rem}.cui-detection--small .cui-detection__icon-svg[data-v-4bdc871b]{width:1.125rem;height:1.125rem}.cui-detection--small .cui-detection__label[data-v-4bdc871b]{font-size:.75rem}.cui-detection--small .cui-detection__status[data-v-4bdc871b]{font-size:.625rem}.cui-detection--small .cui-detection__indicator[data-v-4bdc871b]{width:.375rem;height:.375rem}.cui-detection--small .cui-detection__detection-tag[data-v-4bdc871b]{padding:.0625rem .375rem;font-size:.5rem}.cui-detection--large[data-v-4bdc871b]{gap:.75rem;padding:1rem}.cui-detection--large .cui-detection__icon[data-v-4bdc871b]{width:2.25rem;height:2.25rem}.cui-detection--large .cui-detection__icon-svg[data-v-4bdc871b]{width:2rem;height:2rem}.cui-detection--large .cui-detection__label[data-v-4bdc871b]{font-size:1rem}.cui-detection--large .cui-detection__status[data-v-4bdc871b]{font-size:.875rem}.cui-detection--large .cui-detection__indicator[data-v-4bdc871b]{width:.625rem;height:.625rem}.cui-detection--large .cui-detection__detection-tag[data-v-4bdc871b]{padding:.1875rem .625rem;font-size:.75rem}.overview-container[data-v-5d86732a]{flex-direction:column;display:flex}.overview-section[data-v-5d86732a]{border-bottom:1px solid var(--surface-border);padding:1rem}.overview-section[data-v-5d86732a]:last-child{border-bottom:none}.overview-section-title[data-v-5d86732a]{text-transform:uppercase;color:var(--text-secondary-color);letter-spacing:.05em;margin-bottom:.75rem;font-size:.75rem;font-weight:600}[data-v-5d86732a] .p-datatable-tbody>tr>td{height:50px}.no-sensors[data-v-5d86732a]{text-align:center;color:var(--text-secondary-color);padding:1.5rem;font-size:.875rem}.drawer-header[data-v-24ee7633]{background:var(--p-drawer-background)}.loader[data-v-839ba1ea]{background:var(--ground-background);width:100dvw;min-width:100dvw;max-width:100dvw;height:100dvh;min-height:100dvh;max-height:100dvh}div[data-v-839ba1ea] .cameraLens{transform-origin:35% 55%;animation:.8s cubic-bezier(.47,1.84,.21,.8) forwards lensMove-839ba1ea,.8s ease-in-out .4s forwards lensRotate-839ba1ea,.6s cubic-bezier(.47,1.84,.21,.8) 1.3s forwards lensMoveBack-839ba1ea}div[data-v-839ba1ea] .cameraLetter{transform-origin:50%;animation:.4s cubic-bezier(.47,1.84,.21,.8) forwards letterScale-839ba1ea,.4s cubic-bezier(.47,1.84,.21,.8) 1.2s forwards letterScaleBack-839ba1ea}@keyframes letterScale-839ba1ea{0%{transform:scale(1)}to{transform:scale(.8)}}@keyframes letterScaleBack-839ba1ea{0%{transform:scale(.8)}to{transform:scale(1)}}@keyframes lensMove-839ba1ea{0%{transform:translateY(0)}to{transform:translateY(-40px)}}@keyframes lensMoveBack-839ba1ea{0%{transform:translateY(-40px)}to{transform:translateY(0)}}@keyframes lensRotate-839ba1ea{0%{transform:translateY(-40px)rotate(0)}to{transform:translateY(-40px)rotate(-360deg)}}.fixed-bg[data-v-d25eaf46]{top:calc(0px - env(safe-area-inset-top,0px) - 10px);left:calc(0px - env(safe-area-inset-left,0px) - 10px);right:calc(0px - env(safe-area-inset-right,0px) - 10px);bottom:calc(0px - env(safe-area-inset-bottom,0px) - 10px);z-index:0;position:fixed}
@@ -1 +1 @@
1
- import{$n as e,Gn as t,Kn as n,Un as r}from"./api-ChlkJnEG.js";import{J as i,Q as a}from"./vendor-CdGy-Xet.js";async function o({signal:t}){return(await e.get(`/mqtt`,{signal:t})).data}async function s(t){return(await e.patch(`/mqtt`,t)).data}async function c({signal:t}){return(await e.get(`/mqtt/topics`,{signal:t})).data}async function l(t){return(await e.post(`/mqtt/test`,t)).data}var u=class{_queryClient=a();t=n.global.t;toast=t();get queryClient(){return this._queryClient}getMqttInfoQuery(){return r({queryKey:[`mqtt`],queryFn:({signal:e})=>o({signal:e}),staleTime:1e3})}patchMqttInfoMutation(){return i({mutationFn:s,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`mqtt`],exact:!0}),this.toast.add({severity:`success`,detail:this.t(`components.toast.mqtt_updated`),life:3e3})}})}getMqttTopicsQuery(){return r({queryKey:[`mqtt`,`topics`],queryFn:({signal:e})=>c({signal:e}),staleTime:1e4})}testMqttConnectionMutation(){return i({mutationFn:l})}};export{u as t};
1
+ import{$n as e,Gn as t,Kn as n,Un as r}from"./api-CdJDEL3z.js";import{J as i,Q as a}from"./vendor-CdGy-Xet.js";async function o({signal:t}){return(await e.get(`/mqtt`,{signal:t})).data}async function s(t){return(await e.patch(`/mqtt`,t)).data}async function c({signal:t}){return(await e.get(`/mqtt/topics`,{signal:t})).data}async function l(t){return(await e.post(`/mqtt/test`,t)).data}var u=class{_queryClient=a();t=n.global.t;toast=t();get queryClient(){return this._queryClient}getMqttInfoQuery(){return r({queryKey:[`mqtt`],queryFn:({signal:e})=>o({signal:e}),staleTime:1e3})}patchMqttInfoMutation(){return i({mutationFn:s,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`mqtt`],exact:!0}),this.toast.add({severity:`success`,detail:this.t(`components.toast.mqtt_updated`),life:3e3})}})}getMqttTopicsQuery(){return r({queryKey:[`mqtt`,`topics`],queryFn:({signal:e})=>c({signal:e}),staleTime:1e4})}testMqttConnectionMutation(){return i({mutationFn:l})}};export{u as t};
@@ -1 +1 @@
1
- import{$n as e,Gn as t,Kn as n,Un as r}from"./api-ChlkJnEG.js";import{J as i,Q as a,pr as o}from"./vendor-CdGy-Xet.js";async function s({signal:t}){return(await e.get(`/notifications/settings`,{signal:t})).data}async function c({settings:t}){return(await e.put(`/notifications/settings`,t)).data}async function l({signal:t}){return(await e.get(`/notifications/devices`,{signal:t})).data}async function u({signal:t}){return(await e.get(`/notifications/sources`,{signal:t})).data}async function d({signal:t}){return(await e.get(`/notifications/history`,{signal:t})).data}async function f(){await e.delete(`/notifications/history`)}async function p({deviceId:t}){await e.delete(`/notifications/devices/${encodeURIComponent(t)}`)}async function m(t){return(await e.post(`/notifications/devices`,t)).data}async function h({deviceId:t,patch:n}){return(await e.patch(`/notifications/devices/${encodeURIComponent(t)}`,n)).data}var g=class{_queryClient=a();t=n.global.t;toast=t();queryActivator=o([{name:`getSettingsQuery`,enabled:!0},{name:`listDevicesQuery`,enabled:!0},{name:`listSourcesQuery`,enabled:!0},{name:`getHistoryQuery`,enabled:!0}]);get queryClient(){return this._queryClient}getSettingsQuery(){return r({queryKey:[`notifications`,`settings`],queryFn:({signal:e})=>s({signal:e}),enabled:()=>this.queryActivator.value.some(e=>e.name===`getSettingsQuery`&&e.enabled)})}setSettingsQuery(){return i({mutationFn:c,onSuccess:e=>{this._queryClient.setQueryData([`notifications`,`settings`],e),this.toast.add({severity:`success`,detail:this.t(`views.settings.notifications.saved`),life:3e3})},onError:e=>{this.toast.add({severity:`error`,detail:e,life:3e3})}})}setSettingsQuerySilent(){return i({mutationFn:c,onSuccess:e=>{this._queryClient.setQueryData([`notifications`,`settings`],e)}})}listDevicesQuery(e){return r({queryKey:[`notifications`,`devices`],queryFn:({signal:e})=>l({signal:e}),enabled:()=>(e?.()??!0)&&this.queryActivator.value.some(e=>e.name===`listDevicesQuery`&&e.enabled)})}listSourcesQuery(){return r({queryKey:[`notifications`,`sources`],queryFn:({signal:e})=>u({signal:e}),enabled:()=>this.queryActivator.value.some(e=>e.name===`listSourcesQuery`&&e.enabled)})}getHistoryQuery(){return r({queryKey:[`notifications`,`history`],queryFn:({signal:e})=>d({signal:e}),enabled:()=>this.queryActivator.value.some(e=>e.name===`getHistoryQuery`&&e.enabled)})}clearHistoryQuery(){return i({mutationFn:f,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`notifications`,`history`]})}})}revokeDeviceQuery(){return i({mutationFn:p,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`notifications`,`devices`]}),this.toast.add({severity:`success`,detail:this.t(`views.settings.notifications.device_revoked`),life:3e3})},onError:e=>{this.toast.add({severity:`error`,detail:e,life:3e3})}})}updateDeviceQuery(){return i({mutationFn:h,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`notifications`,`devices`]})},onError:e=>{this.toast.add({severity:`error`,detail:e,life:3e3})}})}toggleQueryActivator(e,t){let n=this.queryActivator.value.find(t=>t.name===e);return n&&(n.enabled=t),this}};export{m as n,g as t};
1
+ import{$n as e,Gn as t,Kn as n,Un as r}from"./api-CdJDEL3z.js";import{J as i,Q as a,pr as o}from"./vendor-CdGy-Xet.js";async function s({signal:t}){return(await e.get(`/notifications/settings`,{signal:t})).data}async function c({settings:t}){return(await e.put(`/notifications/settings`,t)).data}async function l({signal:t}){return(await e.get(`/notifications/devices`,{signal:t})).data}async function u({signal:t}){return(await e.get(`/notifications/sources`,{signal:t})).data}async function d({signal:t}){return(await e.get(`/notifications/history`,{signal:t})).data}async function f(){await e.delete(`/notifications/history`)}async function p({deviceId:t}){await e.delete(`/notifications/devices/${encodeURIComponent(t)}`)}async function m(t){return(await e.post(`/notifications/devices`,t)).data}async function h({deviceId:t,patch:n}){return(await e.patch(`/notifications/devices/${encodeURIComponent(t)}`,n)).data}var g=class{_queryClient=a();t=n.global.t;toast=t();queryActivator=o([{name:`getSettingsQuery`,enabled:!0},{name:`listDevicesQuery`,enabled:!0},{name:`listSourcesQuery`,enabled:!0},{name:`getHistoryQuery`,enabled:!0}]);get queryClient(){return this._queryClient}getSettingsQuery(){return r({queryKey:[`notifications`,`settings`],queryFn:({signal:e})=>s({signal:e}),enabled:()=>this.queryActivator.value.some(e=>e.name===`getSettingsQuery`&&e.enabled)})}setSettingsQuery(){return i({mutationFn:c,onSuccess:e=>{this._queryClient.setQueryData([`notifications`,`settings`],e),this.toast.add({severity:`success`,detail:this.t(`views.settings.notifications.saved`),life:3e3})},onError:e=>{this.toast.add({severity:`error`,detail:e,life:3e3})}})}setSettingsQuerySilent(){return i({mutationFn:c,onSuccess:e=>{this._queryClient.setQueryData([`notifications`,`settings`],e)}})}listDevicesQuery(e){return r({queryKey:[`notifications`,`devices`],queryFn:({signal:e})=>l({signal:e}),enabled:()=>(e?.()??!0)&&this.queryActivator.value.some(e=>e.name===`listDevicesQuery`&&e.enabled)})}listSourcesQuery(){return r({queryKey:[`notifications`,`sources`],queryFn:({signal:e})=>u({signal:e}),enabled:()=>this.queryActivator.value.some(e=>e.name===`listSourcesQuery`&&e.enabled)})}getHistoryQuery(){return r({queryKey:[`notifications`,`history`],queryFn:({signal:e})=>d({signal:e}),enabled:()=>this.queryActivator.value.some(e=>e.name===`getHistoryQuery`&&e.enabled)})}clearHistoryQuery(){return i({mutationFn:f,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`notifications`,`history`]})}})}revokeDeviceQuery(){return i({mutationFn:p,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`notifications`,`devices`]}),this.toast.add({severity:`success`,detail:this.t(`views.settings.notifications.device_revoked`),life:3e3})},onError:e=>{this.toast.add({severity:`error`,detail:e,life:3e3})}})}updateDeviceQuery(){return i({mutationFn:h,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`notifications`,`devices`]})},onError:e=>{this.toast.add({severity:`error`,detail:e,life:3e3})}})}toggleQueryActivator(e,t){let n=this.queryActivator.value.find(t=>t.name===e);return n&&(n.enabled=t),this}};export{m as n,g as t};
@@ -1 +1 @@
1
- import{$n as e,Gn as t,Kn as n,Un as r}from"./api-ChlkJnEG.js";import{J as i,Q as a,pr as o,xr as s}from"./vendor-CdGy-Xet.js";var c=6e5,l=12e4;async function u({pluginData:t}){return(await e.post(`/plugins`,t,{timeout:c})).data}async function d({pluginName:t,signal:n}){return(await e.get(`/plugins/${t}`,{signal:n})).data}async function f({pluginname:t,signal:n}){return(await e.get(`/plugins/${t}/versions`,{signal:n})).data}async function p({pluginName:t,signal:n}){return(await e.get(`/plugins/${t}/update`,{signal:n})).data}async function m({pluginName:t,signal:n}){return(await e.get(`/plugins/${t}/logo`,{signal:n})).data}async function h({pluginName:t,signal:n}){return(await e.get(`/plugins/${t}/config`,{signal:n})).data}async function g({pluginName:t,signal:n}){return(await e.get(`/plugins/${t}/contract`,{signal:n})).data}async function _({pluginName:t,signal:n}){return(await e.get(`/plugins/${t}/readme`,{signal:n})).data}async function v({pluginName:t,query:n,signal:r}){return(await e.get(`/plugins/${t}/changelog`,{params:n,signal:r})).data}async function y({pluginName:t,query:n,signal:r}){return(await e.get(`/plugins/${t}/compat`,{params:n,signal:r})).data}async function b({pluginName:t,signal:n}){return(await e.get(`/plugins/${t}/interface`,{signal:n})).data}async function x({parameter:t,signal:n}){return(await e.get(`/plugins`,{params:t,signal:n})).data}async function S({parameter:t,signal:n}){return(await e.get(`/plugins/extensions`,{params:t,signal:n})).data}async function C({pluginName:t}){return(await e.delete(`/plugins/${t}/log`)).data}async function w({pluginName:t,signal:n}){return(await e.get(`/plugins/${t}/log/download`,{signal:n})).data}async function T({parameter:t,signal:n}){return(await e.get(`/plugins/progress`,{params:t,signal:n})).data}async function E({query:t,parameter:n,refresh:r,signal:i}){return(await e.get(`/plugins/search`,{params:{...t,...n,...r?{refresh:!0}:{}},signal:i})).data}async function D({pluginName:t}){return(await e.put(`/plugins/${t}/enable`)).data}async function O({pluginName:t,configData:n}){return(await e.patch(`/plugins/${t}/config`,n)).data}async function k({pluginname:t,configData:n}){return(await e.put(`/plugins/${t}/config`,n)).data}async function A({pluginname:t,configData:n}){return(await e.post(`/plugins/${t}/config`,n)).data}async function j({pluginName:t}){return(await e.put(`/plugins/${t}/disable`)).data}async function M({pluginName:t}){return(await e.put(`/plugins/${t}/start`)).data}async function N({pluginName:t}){return(await e.put(`/plugins/${t}/stop`)).data}async function P({pluginName:t}){return(await e.put(`/plugins/${t}/restart`)).data}async function F({pluginName:t,removeStorage:n}){return(await e.delete(`/plugins/${t}`,{params:{removeStorage:n},timeout:l})).data}async function I(){return(await e.delete(`/plugins`,{timeout:l})).data}var L=class{_queryClient=a();t=n.global.t;toast=t();queryActivator=o([{name:`getPluginQuery`,enabled:!0},{name:`getPluginsQuery`,enabled:!0},{name:`getPluginsExtensionsQuery`,enabled:!0},{name:`searchPluginsQuery`,enabled:!0},{name:`getPluginVersionsQuery`,enabled:!0},{name:`getPluginUpdateQuery`,enabled:!0},{name:`getPluginLogoQuery`,enabled:!0},{name:`getPluginConfigQuery`,enabled:!0},{name:`getPluginContractQuery`,enabled:!0},{name:`getPluginReadmeQuery`,enabled:!0},{name:`getPluginInterfaceQuery`,enabled:!0},{name:`getPluginChangelogQuery`,enabled:!0},{name:`getPluginCompatQuery`,enabled:!0},{name:`getPluginsProgressQuery`,enabled:!0},{name:`installPluginQuery`,enabled:!0},{name:`enablePluginQuery`,enabled:!0},{name:`disablePluginQuery`,enabled:!0},{name:`patchPluginConfigQuery`,enabled:!0},{name:`setPluginConfigQuery`,enabled:!0},{name:`submitPluginConfigQuery`,enabled:!0},{name:`startPluginQuery`,enabled:!0},{name:`stopPluginQuery`,enabled:!0},{name:`restartPluginQuery`,enabled:!0},{name:`uninstallPluginQuery`,enabled:!0},{name:`uninstallPluginsQuery`,enabled:!0},{name:`downloadLogQuery`,enabled:!0}]);get queryClient(){return this._queryClient}installPluginQuery(){return i({mutationFn:u,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`pluginsList`]}),await this._queryClient.refetchQueries({queryKey:[`plugins`]}),await this._queryClient.refetchQueries({queryKey:[`pluginsSearch`]}),await this._queryClient.refetchQueries({queryKey:[`pluginsProgress`]}),this.toast.add({severity:`success`,detail:this.t(`components.toast.plugin_installed`),life:3e3})}})}getPluginQuery(e){return r({queryKey:[`plugins`,e],queryFn:({signal:t})=>d({pluginName:s(e),signal:t}),enabled:()=>this.queryActivator.value.some(e=>e.name===`getPluginQuery`&&e.enabled)})}getPluginsQuery(e){return r({queryKey:[`pluginsList`,e],queryFn:({signal:t})=>x({parameter:s(e),signal:t}),placeholderData:e=>e,enabled:()=>this.queryActivator.value.some(e=>e.name===`getPluginsQuery`&&e.enabled)})}getPluginsExtensionsQuery(e){return r({queryKey:[`extensionsList`,e],queryFn:({signal:t})=>S({parameter:s(e),signal:t}),placeholderData:e=>e,enabled:()=>this.queryActivator.value.some(e=>e.name===`getPluginsExtensionsQuery`&&e.enabled)})}getPluginsProgressQuery(e){return r({queryKey:[`pluginsProgress`,e],queryFn:({signal:t})=>T({parameter:s(e),signal:t}),enabled:()=>this.queryActivator.value.some(e=>e.name===`getPluginsProgressQuery`&&e.enabled)})}searchPluginsQuery(e,t,n){return r({queryKey:[`pluginsSearch`,e,t],queryFn:({signal:r})=>E({query:s(e),parameter:s(t),refresh:s(n),signal:r}),placeholderData:e=>e,enabled:()=>this.queryActivator.value.some(e=>e.name===`searchPluginsQuery`&&e.enabled)})}getPluginVersionsQuery(e){return r({queryKey:[`plugins`,e,`versions`],queryFn:({signal:t})=>f({pluginname:s(e),signal:t}),enabled:()=>this.queryActivator.value.some(e=>e.name===`getPluginVersionsQuery`&&e.enabled)})}getPluginUpdateQuery(e){return r({queryKey:[`plugins`,e,`update`],queryFn:({signal:t})=>p({pluginName:s(e),signal:t}),enabled:()=>this.queryActivator.value.some(e=>e.name===`getPluginUpdateQuery`&&e.enabled)})}getPluginLogoQuery(e){return r({queryKey:[`plugins`,e,`logo`],queryFn:({signal:t})=>m({pluginName:s(e),signal:t}),enabled:()=>this.queryActivator.value.some(e=>e.name===`getPluginLogoQuery`&&e.enabled)})}getPluginConfigQuery(e){return r({queryKey:[`plugins`,e,`config`],queryFn:({signal:t})=>h({pluginName:s(e),signal:t}),enabled:()=>this.queryActivator.value.some(e=>e.name===`getPluginConfigQuery`&&e.enabled)})}getPluginContractQuery(e){return r({queryKey:[`plugins`,e,`contract`],queryFn:({signal:t})=>g({pluginName:s(e),signal:t}),enabled:()=>this.queryActivator.value.some(e=>e.name===`getPluginContractQuery`&&e.enabled)})}getPluginReadmeQuery(e){return r({queryKey:[`plugins`,e,`readme`],queryFn:({signal:t})=>_({pluginName:s(e),signal:t}),enabled:()=>this.queryActivator.value.some(e=>e.name===`getPluginReadmeQuery`&&e.enabled),retry:(e,t)=>t instanceof Error&&t.message.includes(`404`)?!1:e<3})}getPluginInterfaceQuery(e){return r({queryKey:[`plugins`,e,`interface`],queryFn:({signal:t})=>b({pluginName:s(e),signal:t}),enabled:()=>this.queryActivator.value.some(e=>e.name===`getPluginInterfaceQuery`&&e.enabled)})}getPluginChangelogQuery(e,t){return r({queryKey:[`plugins`,e,`changelog`],queryFn:({signal:n})=>v({pluginName:s(e),query:s(t),signal:n}),enabled:()=>this.queryActivator.value.some(e=>e.name===`getPluginChangelogQuery`&&e.enabled),retry:(e,t)=>t instanceof Error&&t.message.includes(`404`)?!1:e<3})}getPluginCompatQuery(e,t){return r({queryKey:[`plugins`,e,`compat`],queryFn:({signal:n})=>y({pluginName:s(e),query:s(t),signal:n}),enabled:()=>this.queryActivator.value.some(e=>e.name===`getPluginCompatQuery`&&e.enabled)})}patchPluginConfigQuery(){return i({mutationFn:O,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`plugins`,t.pluginName]}),this.toast.add({severity:`success`,detail:this.t(`components.toast.plugin_config_updated`),life:3e3})}})}startPluginQuery(){return i({mutationFn:M,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`plugins`,t.pluginName]}),this.toast.add({severity:`success`,detail:this.t(`components.toast.plugin_started`),life:3e3})}})}stopPluginQuery(){return i({mutationFn:N,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`plugins`,t.pluginName]}),this.toast.add({severity:`success`,detail:this.t(`components.toast.plugin_stopped`),life:3e3})}})}restartPluginQuery(){return i({mutationFn:P,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`plugins`,t.pluginName]}),await this._queryClient.refetchQueries({queryKey:[`pluginsList`]}),this.toast.add({severity:`success`,detail:this.t(`components.toast.plugin_restarted`),life:3e3})}})}setPluginConfigQuery(){return i({mutationFn:k,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`plugins`,t.pluginname,t.configData]})}})}submitPluginConfigQuery(){return i({mutationFn:A,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`plugins`,t.pluginname,t.configData]})}})}enablePluginQuery(){return i({mutationFn:D,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`pluginsList`]}),await this._queryClient.refetchQueries({queryKey:[`plugins`,t.pluginName]}),this.toast.add({severity:`success`,detail:this.t(`components.toast.plugin_enabled`),life:3e3})}})}disablePluginQuery(){return i({mutationFn:j,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`pluginsList`]}),await this._queryClient.refetchQueries({queryKey:[`plugins`,t.pluginName]}),this.toast.add({severity:`success`,detail:this.t(`components.toast.plugin_disabled`),life:3e3})}})}uninstallPluginQuery(){return i({mutationFn:F,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`pluginsList`]}),await this._queryClient.refetchQueries({queryKey:[`pluginsSearch`]}),await this._queryClient.refetchQueries({queryKey:[`pluginsProgress`]}),this.toast.add({severity:`success`,detail:this.t(`components.toast.plugin_removed`),life:3e3})}})}uninstallPluginsQuery(){return i({mutationFn:I,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`pluginsList`]}),await this._queryClient.refetchQueries({queryKey:[`pluginsSearch`]}),this.toast.add({severity:`success`,detail:this.t(`components.toast.plugins_removed`),life:3e3})}})}downloadLogQuery(e){return r({queryKey:[`logs`,e],queryFn:({signal:t})=>w({pluginName:s(e),signal:t}),enabled:()=>this.queryActivator.value.some(e=>e.name===`downloadLogQuery`&&e.enabled)})}clearLogQuery(){return i({mutationFn:C,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`logs`,t.pluginName],exact:!0}),this.toast.add({severity:`success`,detail:this.t(`components.toast.log_cleared`),life:3e3})}})}toggleQueryActivator(e,t){let n=this.queryActivator.value.find(t=>t.name===e);return n&&(n.enabled=t),this}};export{C as n,w as r,L as t};
1
+ import{$n as e,Gn as t,Kn as n,Un as r}from"./api-CdJDEL3z.js";import{J as i,Q as a,pr as o,xr as s}from"./vendor-CdGy-Xet.js";var c=6e5,l=12e4;async function u({pluginData:t}){return(await e.post(`/plugins`,t,{timeout:c})).data}async function d({pluginName:t,signal:n}){return(await e.get(`/plugins/${t}`,{signal:n})).data}async function f({pluginname:t,signal:n}){return(await e.get(`/plugins/${t}/versions`,{signal:n})).data}async function p({pluginName:t,signal:n}){return(await e.get(`/plugins/${t}/update`,{signal:n})).data}async function m({pluginName:t,signal:n}){return(await e.get(`/plugins/${t}/logo`,{signal:n})).data}async function h({pluginName:t,signal:n}){return(await e.get(`/plugins/${t}/config`,{signal:n})).data}async function g({pluginName:t,signal:n}){return(await e.get(`/plugins/${t}/contract`,{signal:n})).data}async function _({pluginName:t,signal:n}){return(await e.get(`/plugins/${t}/readme`,{signal:n})).data}async function v({pluginName:t,query:n,signal:r}){return(await e.get(`/plugins/${t}/changelog`,{params:n,signal:r})).data}async function y({pluginName:t,query:n,signal:r}){return(await e.get(`/plugins/${t}/compat`,{params:n,signal:r})).data}async function b({pluginName:t,signal:n}){return(await e.get(`/plugins/${t}/interface`,{signal:n})).data}async function x({parameter:t,signal:n}){return(await e.get(`/plugins`,{params:t,signal:n})).data}async function S({parameter:t,signal:n}){return(await e.get(`/plugins/extensions`,{params:t,signal:n})).data}async function C({pluginName:t}){return(await e.delete(`/plugins/${t}/log`)).data}async function w({pluginName:t,signal:n}){return(await e.get(`/plugins/${t}/log/download`,{signal:n})).data}async function T({parameter:t,signal:n}){return(await e.get(`/plugins/progress`,{params:t,signal:n})).data}async function E({query:t,parameter:n,refresh:r,signal:i}){return(await e.get(`/plugins/search`,{params:{...t,...n,...r?{refresh:!0}:{}},signal:i})).data}async function D({pluginName:t}){return(await e.put(`/plugins/${t}/enable`)).data}async function O({pluginName:t,configData:n}){return(await e.patch(`/plugins/${t}/config`,n)).data}async function k({pluginname:t,configData:n}){return(await e.put(`/plugins/${t}/config`,n)).data}async function A({pluginname:t,configData:n}){return(await e.post(`/plugins/${t}/config`,n)).data}async function j({pluginName:t}){return(await e.put(`/plugins/${t}/disable`)).data}async function M({pluginName:t}){return(await e.put(`/plugins/${t}/start`)).data}async function N({pluginName:t}){return(await e.put(`/plugins/${t}/stop`)).data}async function P({pluginName:t}){return(await e.put(`/plugins/${t}/restart`)).data}async function F({pluginName:t,removeStorage:n}){return(await e.delete(`/plugins/${t}`,{params:{removeStorage:n},timeout:l})).data}async function I(){return(await e.delete(`/plugins`,{timeout:l})).data}var L=class{_queryClient=a();t=n.global.t;toast=t();queryActivator=o([{name:`getPluginQuery`,enabled:!0},{name:`getPluginsQuery`,enabled:!0},{name:`getPluginsExtensionsQuery`,enabled:!0},{name:`searchPluginsQuery`,enabled:!0},{name:`getPluginVersionsQuery`,enabled:!0},{name:`getPluginUpdateQuery`,enabled:!0},{name:`getPluginLogoQuery`,enabled:!0},{name:`getPluginConfigQuery`,enabled:!0},{name:`getPluginContractQuery`,enabled:!0},{name:`getPluginReadmeQuery`,enabled:!0},{name:`getPluginInterfaceQuery`,enabled:!0},{name:`getPluginChangelogQuery`,enabled:!0},{name:`getPluginCompatQuery`,enabled:!0},{name:`getPluginsProgressQuery`,enabled:!0},{name:`installPluginQuery`,enabled:!0},{name:`enablePluginQuery`,enabled:!0},{name:`disablePluginQuery`,enabled:!0},{name:`patchPluginConfigQuery`,enabled:!0},{name:`setPluginConfigQuery`,enabled:!0},{name:`submitPluginConfigQuery`,enabled:!0},{name:`startPluginQuery`,enabled:!0},{name:`stopPluginQuery`,enabled:!0},{name:`restartPluginQuery`,enabled:!0},{name:`uninstallPluginQuery`,enabled:!0},{name:`uninstallPluginsQuery`,enabled:!0},{name:`downloadLogQuery`,enabled:!0}]);get queryClient(){return this._queryClient}installPluginQuery(){return i({mutationFn:u,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`pluginsList`]}),await this._queryClient.refetchQueries({queryKey:[`plugins`]}),await this._queryClient.refetchQueries({queryKey:[`pluginsSearch`]}),await this._queryClient.refetchQueries({queryKey:[`pluginsProgress`]}),this.toast.add({severity:`success`,detail:this.t(`components.toast.plugin_installed`),life:3e3})}})}getPluginQuery(e){return r({queryKey:[`plugins`,e],queryFn:({signal:t})=>d({pluginName:s(e),signal:t}),enabled:()=>this.queryActivator.value.some(e=>e.name===`getPluginQuery`&&e.enabled)})}getPluginsQuery(e){return r({queryKey:[`pluginsList`,e],queryFn:({signal:t})=>x({parameter:s(e),signal:t}),placeholderData:e=>e,enabled:()=>this.queryActivator.value.some(e=>e.name===`getPluginsQuery`&&e.enabled)})}getPluginsExtensionsQuery(e){return r({queryKey:[`extensionsList`,e],queryFn:({signal:t})=>S({parameter:s(e),signal:t}),placeholderData:e=>e,enabled:()=>this.queryActivator.value.some(e=>e.name===`getPluginsExtensionsQuery`&&e.enabled)})}getPluginsProgressQuery(e){return r({queryKey:[`pluginsProgress`,e],queryFn:({signal:t})=>T({parameter:s(e),signal:t}),enabled:()=>this.queryActivator.value.some(e=>e.name===`getPluginsProgressQuery`&&e.enabled)})}searchPluginsQuery(e,t,n){return r({queryKey:[`pluginsSearch`,e,t],queryFn:({signal:r})=>E({query:s(e),parameter:s(t),refresh:s(n),signal:r}),placeholderData:e=>e,enabled:()=>this.queryActivator.value.some(e=>e.name===`searchPluginsQuery`&&e.enabled)})}getPluginVersionsQuery(e){return r({queryKey:[`plugins`,e,`versions`],queryFn:({signal:t})=>f({pluginname:s(e),signal:t}),enabled:()=>this.queryActivator.value.some(e=>e.name===`getPluginVersionsQuery`&&e.enabled)})}getPluginUpdateQuery(e){return r({queryKey:[`plugins`,e,`update`],queryFn:({signal:t})=>p({pluginName:s(e),signal:t}),enabled:()=>this.queryActivator.value.some(e=>e.name===`getPluginUpdateQuery`&&e.enabled)})}getPluginLogoQuery(e){return r({queryKey:[`plugins`,e,`logo`],queryFn:({signal:t})=>m({pluginName:s(e),signal:t}),enabled:()=>this.queryActivator.value.some(e=>e.name===`getPluginLogoQuery`&&e.enabled)})}getPluginConfigQuery(e){return r({queryKey:[`plugins`,e,`config`],queryFn:({signal:t})=>h({pluginName:s(e),signal:t}),enabled:()=>this.queryActivator.value.some(e=>e.name===`getPluginConfigQuery`&&e.enabled)})}getPluginContractQuery(e){return r({queryKey:[`plugins`,e,`contract`],queryFn:({signal:t})=>g({pluginName:s(e),signal:t}),enabled:()=>this.queryActivator.value.some(e=>e.name===`getPluginContractQuery`&&e.enabled)})}getPluginReadmeQuery(e){return r({queryKey:[`plugins`,e,`readme`],queryFn:({signal:t})=>_({pluginName:s(e),signal:t}),enabled:()=>this.queryActivator.value.some(e=>e.name===`getPluginReadmeQuery`&&e.enabled),retry:(e,t)=>t instanceof Error&&t.message.includes(`404`)?!1:e<3})}getPluginInterfaceQuery(e){return r({queryKey:[`plugins`,e,`interface`],queryFn:({signal:t})=>b({pluginName:s(e),signal:t}),enabled:()=>this.queryActivator.value.some(e=>e.name===`getPluginInterfaceQuery`&&e.enabled)})}getPluginChangelogQuery(e,t){return r({queryKey:[`plugins`,e,`changelog`],queryFn:({signal:n})=>v({pluginName:s(e),query:s(t),signal:n}),enabled:()=>this.queryActivator.value.some(e=>e.name===`getPluginChangelogQuery`&&e.enabled),retry:(e,t)=>t instanceof Error&&t.message.includes(`404`)?!1:e<3})}getPluginCompatQuery(e,t){return r({queryKey:[`plugins`,e,`compat`],queryFn:({signal:n})=>y({pluginName:s(e),query:s(t),signal:n}),enabled:()=>this.queryActivator.value.some(e=>e.name===`getPluginCompatQuery`&&e.enabled)})}patchPluginConfigQuery(){return i({mutationFn:O,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`plugins`,t.pluginName]}),this.toast.add({severity:`success`,detail:this.t(`components.toast.plugin_config_updated`),life:3e3})}})}startPluginQuery(){return i({mutationFn:M,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`plugins`,t.pluginName]}),this.toast.add({severity:`success`,detail:this.t(`components.toast.plugin_started`),life:3e3})}})}stopPluginQuery(){return i({mutationFn:N,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`plugins`,t.pluginName]}),this.toast.add({severity:`success`,detail:this.t(`components.toast.plugin_stopped`),life:3e3})}})}restartPluginQuery(){return i({mutationFn:P,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`plugins`,t.pluginName]}),await this._queryClient.refetchQueries({queryKey:[`pluginsList`]}),this.toast.add({severity:`success`,detail:this.t(`components.toast.plugin_restarted`),life:3e3})}})}setPluginConfigQuery(){return i({mutationFn:k,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`plugins`,t.pluginname,t.configData]})}})}submitPluginConfigQuery(){return i({mutationFn:A,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`plugins`,t.pluginname,t.configData]})}})}enablePluginQuery(){return i({mutationFn:D,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`pluginsList`]}),await this._queryClient.refetchQueries({queryKey:[`plugins`,t.pluginName]}),this.toast.add({severity:`success`,detail:this.t(`components.toast.plugin_enabled`),life:3e3})}})}disablePluginQuery(){return i({mutationFn:j,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`pluginsList`]}),await this._queryClient.refetchQueries({queryKey:[`plugins`,t.pluginName]}),this.toast.add({severity:`success`,detail:this.t(`components.toast.plugin_disabled`),life:3e3})}})}uninstallPluginQuery(){return i({mutationFn:F,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`pluginsList`]}),await this._queryClient.refetchQueries({queryKey:[`pluginsSearch`]}),await this._queryClient.refetchQueries({queryKey:[`pluginsProgress`]}),this.toast.add({severity:`success`,detail:this.t(`components.toast.plugin_removed`),life:3e3})}})}uninstallPluginsQuery(){return i({mutationFn:I,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`pluginsList`]}),await this._queryClient.refetchQueries({queryKey:[`pluginsSearch`]}),this.toast.add({severity:`success`,detail:this.t(`components.toast.plugins_removed`),life:3e3})}})}downloadLogQuery(e){return r({queryKey:[`logs`,e],queryFn:({signal:t})=>w({pluginName:s(e),signal:t}),enabled:()=>this.queryActivator.value.some(e=>e.name===`downloadLogQuery`&&e.enabled)})}clearLogQuery(){return i({mutationFn:C,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`logs`,t.pluginName],exact:!0}),this.toast.add({severity:`success`,detail:this.t(`components.toast.log_cleared`),life:3e3})}})}toggleQueryActivator(e,t){let n=this.queryActivator.value.find(t=>t.name===e);return n&&(n.enabled=t),this}};export{C as n,w as r,L as t};
@@ -1 +1 @@
1
- import{At as e,F as t,Ot as n,Pt as r,Wr as i,wt as a}from"./vendor-cameraui-D7o3alq7.js";import{nn as o}from"./api-ChlkJnEG.js";import{Bn as s,Dn as c,Qt as ee,Rn as l,Sr as u,Tr as d,Wn as f,Xn as p,an as m,bn as h,dn as g,fn as _,kn as v,ln as y,lr as b,nr as x,pn as S,tr as C,un as w,vn as T,wr as E,xr as D,yr as O}from"./vendor-CdGy-Xet.js";import{p as k}from"./vendor-core-M6N9PctY.js";import{T as te}from"./vendor-primevue-BynQnxoR.js";import{t as A}from"./theme-CHyA8uCs.js";import{t as ne}from"./arrow-right-outline-BrpH6MGt.js";import{a as j,c as M,i as N,l as P,o as F,t as I}from"./vendor-chart-BDu4sN9x.js";import{t as L}from"./chevron-right-Crha-j7O.js";var R={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function z(e,t){return l(),S(`svg`,R,[...t[0]||=[w(`path`,{fill:`currentColor`,d:`M5.59 7.41L7 6l6 6l-6 6l-1.41-1.41L10.17 12zm6 0L13 6l6 6l-6 6l-1.41-1.41L16.17 12z`},null,-1)]])}var re=b({name:`mdi-chevron-double-right`,render:z}),B={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function V(e,t){return l(),S(`svg`,B,[...t[0]||=[w(`path`,{fill:`currentColor`,d:`M15.41 16.58L10.83 12l4.58-4.59L14 6l-6 6l6 6z`},null,-1)]])}var ie=b({name:`mdi-chevron-left`,render:V}),H={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function U(e,t){return l(),S(`svg`,H,[...t[0]||=[w(`path`,{fill:`currentColor`,d:`M18.41 7.41L17 6l-6 6l6 6l1.41-1.41L13.83 12zm-6 0L11 6l-6 6l6 6l1.41-1.41L7.83 12z`},null,-1)]])}var W=b({name:`mdi-chevron-double-left`,render:U}),G=e=>e.type===`category`,K=e=>e.type===`action`,q=e=>e.type===`chart`,J=e=>e.type===`indicator`,Y={width:200,height:25},X={key:0,class:`text-muted`},ae=o(h({__name:`ChartWrapper`,props:c({data:{},options:{},width:{},height:{}},Y),setup(e){F.register(j,M,N,P);let{data:t,options:n,width:r,height:i}=O(e),a=p(`barRef`),o=y(()=>t.value.datasets?.[0].data??[]);function s(){let e=a.value?.chart;e&&(e.options.events=[`mousemove`,`mouseout`],e.options.plugins.tooltip.enabled=!0,e.update(`none`))}function c(){let e=a.value?.chart;e&&(e.options.events=[],e.options.plugins.tooltip.enabled=!1,e.update(`none`))}return(e,ee)=>D(o).length?(l(),g(D(I),{key:1,ref_key:`barRef`,ref:a,data:D(t),options:D(n),height:D(i),width:D(r),style:E({contain:`strict`,contentVisibility:`auto`,containIntrinsicSize:`${D(r)}px ${D(i)}px`,maxWidth:`${D(r)}px`,minWidth:`${D(r)}px`,minHeight:`${D(i)}px`,maxHeight:`${D(i)}px`}),onMouseenter:s,onMouseleave:c},null,8,[`data`,`options`,`height`,`width`,`style`])):(l(),S(`span`,X,d(e.$t(`components.charts.no_data`)),1))}}),[[`__scopeId`,`data-v-71d295c5`]]),oe={key:0,class:`absolute right-[20px] top-[5px] z-2`},se={key:0,class:`flex justify-center p-8`},ce={key:1,class:`cui-chart-table w-full`},le={key:0,class:`text-sm text-secondary`},ue=[`colspan`],de={key:0},fe={key:1},pe={key:0},me={key:2,class:`flex items-center justify-center gap-1 p-2 border-t border-surface`},he={class:`text-xs text-muted px-2`},Z=o(h({__name:`CuiChartTable`,props:{headers:{},items:{},loading:{type:Boolean},paginator:{type:Boolean},totalRecords:{},rows:{default:5},pagination:{},chartData:{},emptyMessage:{}},emits:[`update:page`],setup(o,{emit:c}){let h=o,b=c,{theme:j}=k(A()),{headers:M,items:N,loading:P,chartData:F,paginator:I,pagination:R,totalRecords:z,rows:B}=O(h),V=p(`endMarker`),H=p(`scrollTarget`),U=i(V,{scrollTarget:H}),Y=y(()=>R.value?.page??1),X=y(()=>!z.value||!B.value?1:Math.max(1,Math.ceil(z.value/B.value))),Z=y(()=>{if(!N.value)return[];if(!I.value)return N.value;let e=B.value??5,t=Y.value-1;return N.value.slice(t*e,(t+1)*e)});function Q(e){let t=B.value??5;b(`update:page`,{page:e-1,rows:t,first:(e-1)*t})}function $(e,t){let n=`${t.name}_${e.for}`,r=(F.value?.[n])?.datasets?.[0]?.data??[],i=Math.max(...r.map(e=>Number(e)||0)),a=Math.ceil(i/10)*10;return{responsive:!1,maintainAspectRatio:!1,devicePixelRatio:1,animation:!1,events:[],plugins:{legend:{display:!1},tooltip:{enabled:!1,mode:`point`,intersect:!1,backgroundColor:j.value===`dark`?`#2e2e2e`:`#f1f5f9`,titleColor:j.value===`dark`?`#ffffff`:`#000000`,bodyColor:j.value===`dark`?`#ffffff`:`#000000`,displayColors:!1,padding:8,callbacks:{title:e=>{let t=e[0].label;if(t&&!isNaN(Number(t))){let n=new Date(Number(t)).toLocaleTimeString([],{hour:`2-digit`,minute:`2-digit`}),r=e[0].raw;return[`${n}`,`${r.toFixed(2)}%`].join(` - `)}return``}}}},scales:{x:{display:!1,grid:{display:!1}},y:{display:!1,min:0,max:a||100,grid:{display:!1}}}}}return(i,c)=>{let p=ne,h=a,y=e,b=te,O=ae,k=n,A=W,j=ie,N=L,R=re,z=t,B=r;return l(),S(`div`,null,[T(z,{class:`cui-card`},{content:C(()=>[T(ee,{name:`fade`},{default:C(()=>[D(U)?_(``,!0):(l(),S(`div`,oe,[T(p,{width:`20px`,height:`20px`,class:`opacity-15`})]))]),_:1}),w(`div`,{ref_key:`scrollTarget`,ref:H,class:`overflow-x-auto relative`},[D(P)?(l(),S(`div`,se,[T(h,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):(l(),S(`table`,ce,[w(`thead`,null,[w(`tr`,null,[(l(!0),S(m,null,s(D(M),(e,t)=>(l(),S(`th`,{key:t,class:u([e.columnProps?.headerClass,`p-2 h-7 min-h-7 max-h-7 text-sm`])},d(e.name??``),3))),128)),w(`th`,{ref_key:`endMarker`,ref:V,class:`w-0 p-0 m-0`},null,512)])]),w(`tbody`,null,[D(Z).length?(l(!0),S(m,{key:1},s(D(Z),(e,t)=>(l(),S(`tr`,{key:t,class:`text-sm text-secondary`},[(l(!0),S(m,null,s(D(M),(t,n)=>(l(),S(`td`,{key:n,class:u([t.columnProps?.class,`p-2 h-7 min-h-7 max-h-7`])},[D(J)(t)?(l(),S(`div`,v({key:0,ref_for:!0},t.props),[x(T(y,{style:E({background:t.color?.(e)??`gray`})},null,8,[`style`]),[[B,{value:t.tooltip?.(e)}]])],16)):D(G)(t)?(l(),S(`div`,v({key:1,ref_for:!0},t.props),[t.asChip?(l(),g(b,v({key:0,ref_for:!0},t.chipProps),{default:C(()=>[w(`span`,null,d(t.altName?t.altName:typeof t.field==`string`?e[t.field]:t.field(e)),1),t.suffix?(l(),S(`span`,de,d(t.suffix),1)):_(``,!0)]),_:2},1040)):(l(),S(`span`,fe,[w(`span`,null,d(t.altName?t.altName:typeof t.field==`string`?e[t.field]:t.field(e)),1),t.suffix?(l(),S(`span`,pe,d(t.suffix),1)):_(``,!0)]))],16)):D(q)(t)&&D(F)&&D(F)[`${e.name}_${t.for}`]?(l(),S(`div`,v({key:2,ref_for:!0},t.props),[T(O,{data:D(F)[`${e.name}_${t.for}`],options:$(t,e),height:25},null,8,[`data`,`options`])],16)):D(K)(t)?(l(),S(`div`,v({key:3,ref_for:!0},t.props,{class:`flex items-center justify-end gap-1`}),[t.buttons?.length?(l(!0),S(m,{key:0},s(t.buttons,(t,n)=>(l(),S(m,{key:n},[t.disabled?.(e)?_(``,!0):(l(),g(k,v({key:0,rounded:``,loading:t.loading?.(e)},{ref_for:!0},t.buttonProps,{class:`text-white cui-icon-md`,onClick:n=>t.action(e)}),{icon:C(()=>[(l(),g(f(t.icon)))]),_:2},1040,[`loading`,`onClick`]))],64))),128)):t.disabled?.(e)?_(``,!0):(l(),g(k,v({key:1,rounded:``,loading:t.loading?.(e)},{ref_for:!0},t.buttonProps,{class:`text-white cui-icon-md`,onClick:n=>t.action?.(e)}),{icon:C(()=>[(l(),g(f(t.icon)))]),_:2},1040,[`loading`,`onClick`]))],16)):_(``,!0)],2))),128)),c[4]||=w(`td`,{class:`w-0 p-0 m-0`},null,-1)]))),128)):(l(),S(`tr`,le,[w(`td`,{colspan:D(M).length+1,class:`p-4 text-center text-muted`},d(o.emptyMessage??i.$t(`components.process_table.empty`)),9,ue)]))])])),D(I)&&D(X)>1?(l(),S(`div`,me,[T(k,{text:``,rounded:``,class:`cui-icon-sm`,disabled:D(Y)<=1,onClick:c[0]||=e=>Q(1)},{icon:C(()=>[T(A,{width:`100%`,height:`100%`})]),_:1},8,[`disabled`]),T(k,{text:``,rounded:``,class:`cui-icon-sm`,disabled:D(Y)<=1,onClick:c[1]||=e=>Q(D(Y)-1)},{icon:C(()=>[T(j,{width:`100%`,height:`100%`})]),_:1},8,[`disabled`]),w(`span`,he,d(D(Y))+` / `+d(D(X)),1),T(k,{text:``,rounded:``,class:`cui-icon-sm`,disabled:D(Y)>=D(X),onClick:c[2]||=e=>Q(D(Y)+1)},{icon:C(()=>[T(N,{width:`100%`,height:`100%`})]),_:1},8,[`disabled`]),T(k,{text:``,rounded:``,class:`cui-icon-sm`,disabled:D(Y)>=D(X),onClick:c[3]||=e=>Q(D(X))},{icon:C(()=>[T(R,{width:`100%`,height:`100%`})]),_:1},8,[`disabled`])])):_(``,!0)],512)]),_:1})])}}}),[[`__scopeId`,`data-v-0b0bd4a5`]]),Q={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function $(e,t){return l(),S(`svg`,Q,[...t[0]||=[w(`path`,{fill:`currentColor`,d:`M12 5V3.21c0-.45-.54-.67-.85-.35l-2.8 2.79c-.2.2-.2.51 0 .71l2.79 2.79c.32.31.86.09.86-.36V7c3.31 0 6 2.69 6 6c0 2.72-1.83 5.02-4.31 5.75c-.42.12-.69.52-.69.95c0 .65.62 1.16 1.25.97A7.99 7.99 0 0 0 20 13c0-4.42-3.58-8-8-8m-6 8c0-1.34.44-2.58 1.19-3.59c.3-.4.26-.95-.09-1.31c-.42-.42-1.14-.38-1.5.1a7.99 7.99 0 0 0 4.15 12.47c.63.19 1.25-.32 1.25-.97c0-.43-.27-.83-.69-.95C7.83 18.02 6 15.72 6 13`},null,-1)]])}var ge=b({name:`ic-round-restart-alt`,render:$});export{Z as n,q as r,ge as t};
1
+ import{At as e,F as t,Ot as n,Pt as r,Wr as i,wt as a}from"./vendor-cameraui-Bq-hQsT7.js";import{nn as o}from"./api-CdJDEL3z.js";import{Bn as s,Dn as c,Qt as ee,Rn as l,Sr as u,Tr as d,Wn as f,Xn as p,an as m,bn as h,dn as g,fn as _,kn as v,ln as y,lr as b,nr as x,pn as S,tr as C,un as w,vn as T,wr as E,xr as D,yr as O}from"./vendor-CdGy-Xet.js";import{p as k}from"./vendor-core-CoiYJRqo.js";import{T as te}from"./vendor-primevue-B3sIO6X2.js";import{t as A}from"./theme-CORL_-pn.js";import{t as ne}from"./arrow-right-outline-BrpH6MGt.js";import{a as j,c as M,i as N,l as P,o as F,t as I}from"./vendor-chart-BDu4sN9x.js";import{t as L}from"./chevron-right-Crha-j7O.js";var R={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function z(e,t){return l(),S(`svg`,R,[...t[0]||=[w(`path`,{fill:`currentColor`,d:`M5.59 7.41L7 6l6 6l-6 6l-1.41-1.41L10.17 12zm6 0L13 6l6 6l-6 6l-1.41-1.41L16.17 12z`},null,-1)]])}var re=b({name:`mdi-chevron-double-right`,render:z}),B={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function V(e,t){return l(),S(`svg`,B,[...t[0]||=[w(`path`,{fill:`currentColor`,d:`M15.41 16.58L10.83 12l4.58-4.59L14 6l-6 6l6 6z`},null,-1)]])}var ie=b({name:`mdi-chevron-left`,render:V}),H={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function U(e,t){return l(),S(`svg`,H,[...t[0]||=[w(`path`,{fill:`currentColor`,d:`M18.41 7.41L17 6l-6 6l6 6l1.41-1.41L13.83 12zm-6 0L11 6l-6 6l6 6l1.41-1.41L7.83 12z`},null,-1)]])}var W=b({name:`mdi-chevron-double-left`,render:U}),G=e=>e.type===`category`,K=e=>e.type===`action`,q=e=>e.type===`chart`,J=e=>e.type===`indicator`,Y={width:200,height:25},X={key:0,class:`text-muted`},ae=o(h({__name:`ChartWrapper`,props:c({data:{},options:{},width:{},height:{}},Y),setup(e){F.register(j,M,N,P);let{data:t,options:n,width:r,height:i}=O(e),a=p(`barRef`),o=y(()=>t.value.datasets?.[0].data??[]);function s(){let e=a.value?.chart;e&&(e.options.events=[`mousemove`,`mouseout`],e.options.plugins.tooltip.enabled=!0,e.update(`none`))}function c(){let e=a.value?.chart;e&&(e.options.events=[],e.options.plugins.tooltip.enabled=!1,e.update(`none`))}return(e,ee)=>D(o).length?(l(),g(D(I),{key:1,ref_key:`barRef`,ref:a,data:D(t),options:D(n),height:D(i),width:D(r),style:E({contain:`strict`,contentVisibility:`auto`,containIntrinsicSize:`${D(r)}px ${D(i)}px`,maxWidth:`${D(r)}px`,minWidth:`${D(r)}px`,minHeight:`${D(i)}px`,maxHeight:`${D(i)}px`}),onMouseenter:s,onMouseleave:c},null,8,[`data`,`options`,`height`,`width`,`style`])):(l(),S(`span`,X,d(e.$t(`components.charts.no_data`)),1))}}),[[`__scopeId`,`data-v-71d295c5`]]),oe={key:0,class:`absolute right-[20px] top-[5px] z-2`},se={key:0,class:`flex justify-center p-8`},ce={key:1,class:`cui-chart-table w-full`},le={key:0,class:`text-sm text-secondary`},ue=[`colspan`],de={key:0},fe={key:1},pe={key:0},me={key:2,class:`flex items-center justify-center gap-1 p-2 border-t border-surface`},he={class:`text-xs text-muted px-2`},Z=o(h({__name:`CuiChartTable`,props:{headers:{},items:{},loading:{type:Boolean},paginator:{type:Boolean},totalRecords:{},rows:{default:5},pagination:{},chartData:{},emptyMessage:{}},emits:[`update:page`],setup(o,{emit:c}){let h=o,b=c,{theme:j}=k(A()),{headers:M,items:N,loading:P,chartData:F,paginator:I,pagination:R,totalRecords:z,rows:B}=O(h),V=p(`endMarker`),H=p(`scrollTarget`),U=i(V,{scrollTarget:H}),Y=y(()=>R.value?.page??1),X=y(()=>!z.value||!B.value?1:Math.max(1,Math.ceil(z.value/B.value))),Z=y(()=>{if(!N.value)return[];if(!I.value)return N.value;let e=B.value??5,t=Y.value-1;return N.value.slice(t*e,(t+1)*e)});function Q(e){let t=B.value??5;b(`update:page`,{page:e-1,rows:t,first:(e-1)*t})}function $(e,t){let n=`${t.name}_${e.for}`,r=(F.value?.[n])?.datasets?.[0]?.data??[],i=Math.max(...r.map(e=>Number(e)||0)),a=Math.ceil(i/10)*10;return{responsive:!1,maintainAspectRatio:!1,devicePixelRatio:1,animation:!1,events:[],plugins:{legend:{display:!1},tooltip:{enabled:!1,mode:`point`,intersect:!1,backgroundColor:j.value===`dark`?`#2e2e2e`:`#f1f5f9`,titleColor:j.value===`dark`?`#ffffff`:`#000000`,bodyColor:j.value===`dark`?`#ffffff`:`#000000`,displayColors:!1,padding:8,callbacks:{title:e=>{let t=e[0].label;if(t&&!isNaN(Number(t))){let n=new Date(Number(t)).toLocaleTimeString([],{hour:`2-digit`,minute:`2-digit`}),r=e[0].raw;return[`${n}`,`${r.toFixed(2)}%`].join(` - `)}return``}}}},scales:{x:{display:!1,grid:{display:!1}},y:{display:!1,min:0,max:a||100,grid:{display:!1}}}}}return(i,c)=>{let p=ne,h=a,y=e,b=te,O=ae,k=n,A=W,j=ie,N=L,R=re,z=t,B=r;return l(),S(`div`,null,[T(z,{class:`cui-card`},{content:C(()=>[T(ee,{name:`fade`},{default:C(()=>[D(U)?_(``,!0):(l(),S(`div`,oe,[T(p,{width:`20px`,height:`20px`,class:`opacity-15`})]))]),_:1}),w(`div`,{ref_key:`scrollTarget`,ref:H,class:`overflow-x-auto relative`},[D(P)?(l(),S(`div`,se,[T(h,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):(l(),S(`table`,ce,[w(`thead`,null,[w(`tr`,null,[(l(!0),S(m,null,s(D(M),(e,t)=>(l(),S(`th`,{key:t,class:u([e.columnProps?.headerClass,`p-2 h-7 min-h-7 max-h-7 text-sm`])},d(e.name??``),3))),128)),w(`th`,{ref_key:`endMarker`,ref:V,class:`w-0 p-0 m-0`},null,512)])]),w(`tbody`,null,[D(Z).length?(l(!0),S(m,{key:1},s(D(Z),(e,t)=>(l(),S(`tr`,{key:t,class:`text-sm text-secondary`},[(l(!0),S(m,null,s(D(M),(t,n)=>(l(),S(`td`,{key:n,class:u([t.columnProps?.class,`p-2 h-7 min-h-7 max-h-7`])},[D(J)(t)?(l(),S(`div`,v({key:0,ref_for:!0},t.props),[x(T(y,{style:E({background:t.color?.(e)??`gray`})},null,8,[`style`]),[[B,{value:t.tooltip?.(e)}]])],16)):D(G)(t)?(l(),S(`div`,v({key:1,ref_for:!0},t.props),[t.asChip?(l(),g(b,v({key:0,ref_for:!0},t.chipProps),{default:C(()=>[w(`span`,null,d(t.altName?t.altName:typeof t.field==`string`?e[t.field]:t.field(e)),1),t.suffix?(l(),S(`span`,de,d(t.suffix),1)):_(``,!0)]),_:2},1040)):(l(),S(`span`,fe,[w(`span`,null,d(t.altName?t.altName:typeof t.field==`string`?e[t.field]:t.field(e)),1),t.suffix?(l(),S(`span`,pe,d(t.suffix),1)):_(``,!0)]))],16)):D(q)(t)&&D(F)&&D(F)[`${e.name}_${t.for}`]?(l(),S(`div`,v({key:2,ref_for:!0},t.props),[T(O,{data:D(F)[`${e.name}_${t.for}`],options:$(t,e),height:25},null,8,[`data`,`options`])],16)):D(K)(t)?(l(),S(`div`,v({key:3,ref_for:!0},t.props,{class:`flex items-center justify-end gap-1`}),[t.buttons?.length?(l(!0),S(m,{key:0},s(t.buttons,(t,n)=>(l(),S(m,{key:n},[t.disabled?.(e)?_(``,!0):(l(),g(k,v({key:0,rounded:``,loading:t.loading?.(e)},{ref_for:!0},t.buttonProps,{class:`text-white cui-icon-md`,onClick:n=>t.action(e)}),{icon:C(()=>[(l(),g(f(t.icon)))]),_:2},1040,[`loading`,`onClick`]))],64))),128)):t.disabled?.(e)?_(``,!0):(l(),g(k,v({key:1,rounded:``,loading:t.loading?.(e)},{ref_for:!0},t.buttonProps,{class:`text-white cui-icon-md`,onClick:n=>t.action?.(e)}),{icon:C(()=>[(l(),g(f(t.icon)))]),_:2},1040,[`loading`,`onClick`]))],16)):_(``,!0)],2))),128)),c[4]||=w(`td`,{class:`w-0 p-0 m-0`},null,-1)]))),128)):(l(),S(`tr`,le,[w(`td`,{colspan:D(M).length+1,class:`p-4 text-center text-muted`},d(o.emptyMessage??i.$t(`components.process_table.empty`)),9,ue)]))])])),D(I)&&D(X)>1?(l(),S(`div`,me,[T(k,{text:``,rounded:``,class:`cui-icon-sm`,disabled:D(Y)<=1,onClick:c[0]||=e=>Q(1)},{icon:C(()=>[T(A,{width:`100%`,height:`100%`})]),_:1},8,[`disabled`]),T(k,{text:``,rounded:``,class:`cui-icon-sm`,disabled:D(Y)<=1,onClick:c[1]||=e=>Q(D(Y)-1)},{icon:C(()=>[T(j,{width:`100%`,height:`100%`})]),_:1},8,[`disabled`]),w(`span`,he,d(D(Y))+` / `+d(D(X)),1),T(k,{text:``,rounded:``,class:`cui-icon-sm`,disabled:D(Y)>=D(X),onClick:c[2]||=e=>Q(D(Y)+1)},{icon:C(()=>[T(N,{width:`100%`,height:`100%`})]),_:1},8,[`disabled`]),T(k,{text:``,rounded:``,class:`cui-icon-sm`,disabled:D(Y)>=D(X),onClick:c[3]||=e=>Q(D(X))},{icon:C(()=>[T(R,{width:`100%`,height:`100%`})]),_:1},8,[`disabled`])])):_(``,!0)],512)]),_:1})])}}}),[[`__scopeId`,`data-v-0b0bd4a5`]]),Q={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function $(e,t){return l(),S(`svg`,Q,[...t[0]||=[w(`path`,{fill:`currentColor`,d:`M12 5V3.21c0-.45-.54-.67-.85-.35l-2.8 2.79c-.2.2-.2.51 0 .71l2.79 2.79c.32.31.86.09.86-.36V7c3.31 0 6 2.69 6 6c0 2.72-1.83 5.02-4.31 5.75c-.42.12-.69.52-.69.95c0 .65.62 1.16 1.25.97A7.99 7.99 0 0 0 20 13c0-4.42-3.58-8-8-8m-6 8c0-1.34.44-2.58 1.19-3.59c.3-.4.26-.95-.09-1.31c-.42-.42-1.14-.38-1.5.1a7.99 7.99 0 0 0 4.15 12.47c.63.19 1.25-.32 1.25-.97c0-.43-.27-.83-.69-.95C7.83 18.02 6 15.72 6 13`},null,-1)]])}var ge=b({name:`ic-round-restart-alt`,render:$});export{Z as n,q as r,ge as t};
@@ -1 +1 @@
1
- import{$n as e,Gn as t,Kn as n,Un as r}from"./api-ChlkJnEG.js";import{J as i,Q as a,pr as o,xr as s}from"./vendor-CdGy-Xet.js";async function c(){return(await e.get(`/server`)).data}async function l(t){return(await e.patch(`/server`,t)).data}async function u({serverData:t}){return(await e.post(`/server/update`,t,{timeout:36e4})).data}async function d({signal:t}){return(await e.get(`/server/version`,{signal:t})).data}async function f({version:t,signal:n}){return(await e.get(`/server/changelog`,{params:{version:t},signal:n})).data}async function p(t){let n=t&&t!==`all`?{source:t}:void 0;return(await e.delete(`/server/log`,{params:n})).data}async function m({signal:t,source:n}){let r=n&&n!==`all`?{source:n}:void 0;return(await e.get(`/server/log/download`,{signal:t,params:r})).data}async function h(){return(await e.post(`/server/cert`,{responseType:`arraybuffer`})).data}async function g({signal:t}){return(await e.get(`/server/go2rtc`,{signal:t})).data}async function _(){return(await e.put(`/server/restart`)).data}async function v(){return(await e.put(`/server/restart/go2rtc`)).data}async function y(){return(await e.put(`/server/reset`)).data}var b=class{_queryClient=a();t=n.global.t;toast=t();queryActivator=o([{name:`downloadLogQuery`,enabled:!0},{name:`getGo2RtcInfoQuery`,enabled:!0},{name:`checkVersionQuery`,enabled:!0},{name:`getServerChangelogQuery`,enabled:!0},{name:`getServerInfoQuery`,enabled:!0}]);get queryClient(){return this._queryClient}getServerInfoQuery(){return r({queryKey:[`server`],queryFn:c})}patchSystemInfoQuery(){return i({mutationFn:l,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`server`],exact:!0}),this.toast.add({severity:`success`,detail:this.t(`components.toast.server_updated`),life:3e3})}})}updateServerQuery(){return i({mutationFn:u,onSuccess:async()=>{this.toast.add({severity:`success`,detail:this.t(`components.toast.server_updated`),life:3e3})}})}downloadLogQuery(e){return r({queryKey:[`logs`,`server`,e??`all`],queryFn:({signal:t})=>m({signal:t,source:s(e)}),enabled:()=>this.queryActivator.value.some(e=>e.name===`downloadLogQuery`&&e.enabled)})}downloadCertQuery(){return i({mutationFn:h})}clearLogQuery(){return i({mutationFn:e=>p(e),onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`logs`,`server`],exact:!1}),this.toast.add({severity:`success`,detail:this.t(`components.toast.log_cleared`),life:3e3})}})}checkVersionQuery(){return r({queryKey:[`version`],queryFn:({signal:e})=>d({signal:e}),enabled:()=>this.queryActivator.value.some(e=>e.name===`checkVersionQuery`&&e.enabled)})}getServerChangelogQuery(e){return r({queryKey:[`version`,`changelog`,e],queryFn:({signal:t})=>f({version:s(e),signal:t}),enabled:()=>this.queryActivator.value.some(e=>e.name===`getServerChangelogQuery`&&e.enabled),retry:(e,t)=>t instanceof Error&&t.message.includes(`404`)?!1:e<3})}getGo2RtcInfoQuery(){return r({queryKey:[`go2rtc`],queryFn:({signal:e})=>g({signal:e}),enabled:()=>this.queryActivator.value.some(e=>e.name===`getGo2RtcInfoQuery`&&e.enabled)})}restartGo2RtcQuery(){return i({mutationFn:v,onSuccess:async()=>{this.toast.add({severity:`success`,detail:this.t(`components.toast.go2rtc_restarted`),life:3e3})}})}restartServerQuery(){return i({mutationFn:_,onSuccess:async()=>{this.toast.add({severity:`success`,detail:this.t(`components.toast.server_restarted`),life:3e3})},onError:e=>{let t=e?.response?.status;if(t===void 0||t>=500){this.toast.add({severity:`success`,detail:this.t(`components.toast.server_restarted`),life:3e3});return}this.toast.add({severity:`error`,detail:e,life:3e3})}})}resetServerQuery(){return i({mutationFn:y,onSuccess:async()=>{this.toast.add({severity:`success`,detail:this.t(`components.toast.server_resetted`),life:3e3})}})}toggleQueryActivator(e,t){let n=this.queryActivator.value.find(t=>t.name===e);return n&&(n.enabled=t),this}};export{_ as a,m as i,p as n,h as r,b as t};
1
+ import{$n as e,Gn as t,Kn as n,Un as r}from"./api-CdJDEL3z.js";import{J as i,Q as a,pr as o,xr as s}from"./vendor-CdGy-Xet.js";async function c(){return(await e.get(`/server`)).data}async function l(t){return(await e.patch(`/server`,t)).data}async function u({serverData:t}){return(await e.post(`/server/update`,t,{timeout:36e4})).data}async function d({signal:t}){return(await e.get(`/server/version`,{signal:t})).data}async function f({version:t,signal:n}){return(await e.get(`/server/changelog`,{params:{version:t},signal:n})).data}async function p(t){let n=t&&t!==`all`?{source:t}:void 0;return(await e.delete(`/server/log`,{params:n})).data}async function m({signal:t,source:n}){let r=n&&n!==`all`?{source:n}:void 0;return(await e.get(`/server/log/download`,{signal:t,params:r})).data}async function h(){return(await e.post(`/server/cert`,{responseType:`arraybuffer`})).data}async function g({signal:t}){return(await e.get(`/server/go2rtc`,{signal:t})).data}async function _(){return(await e.put(`/server/restart`)).data}async function v(){return(await e.put(`/server/restart/go2rtc`)).data}async function y(){return(await e.put(`/server/reset`)).data}var b=class{_queryClient=a();t=n.global.t;toast=t();queryActivator=o([{name:`downloadLogQuery`,enabled:!0},{name:`getGo2RtcInfoQuery`,enabled:!0},{name:`checkVersionQuery`,enabled:!0},{name:`getServerChangelogQuery`,enabled:!0},{name:`getServerInfoQuery`,enabled:!0}]);get queryClient(){return this._queryClient}getServerInfoQuery(){return r({queryKey:[`server`],queryFn:c})}patchSystemInfoQuery(){return i({mutationFn:l,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`server`],exact:!0}),this.toast.add({severity:`success`,detail:this.t(`components.toast.server_updated`),life:3e3})}})}updateServerQuery(){return i({mutationFn:u,onSuccess:async()=>{this.toast.add({severity:`success`,detail:this.t(`components.toast.server_updated`),life:3e3})}})}downloadLogQuery(e){return r({queryKey:[`logs`,`server`,e??`all`],queryFn:({signal:t})=>m({signal:t,source:s(e)}),enabled:()=>this.queryActivator.value.some(e=>e.name===`downloadLogQuery`&&e.enabled)})}downloadCertQuery(){return i({mutationFn:h})}clearLogQuery(){return i({mutationFn:e=>p(e),onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`logs`,`server`],exact:!1}),this.toast.add({severity:`success`,detail:this.t(`components.toast.log_cleared`),life:3e3})}})}checkVersionQuery(){return r({queryKey:[`version`],queryFn:({signal:e})=>d({signal:e}),enabled:()=>this.queryActivator.value.some(e=>e.name===`checkVersionQuery`&&e.enabled)})}getServerChangelogQuery(e){return r({queryKey:[`version`,`changelog`,e],queryFn:({signal:t})=>f({version:s(e),signal:t}),enabled:()=>this.queryActivator.value.some(e=>e.name===`getServerChangelogQuery`&&e.enabled),retry:(e,t)=>t instanceof Error&&t.message.includes(`404`)?!1:e<3})}getGo2RtcInfoQuery(){return r({queryKey:[`go2rtc`],queryFn:({signal:e})=>g({signal:e}),enabled:()=>this.queryActivator.value.some(e=>e.name===`getGo2RtcInfoQuery`&&e.enabled)})}restartGo2RtcQuery(){return i({mutationFn:v,onSuccess:async()=>{this.toast.add({severity:`success`,detail:this.t(`components.toast.go2rtc_restarted`),life:3e3})}})}restartServerQuery(){return i({mutationFn:_,onSuccess:async()=>{this.toast.add({severity:`success`,detail:this.t(`components.toast.server_restarted`),life:3e3})},onError:e=>{let t=e?.response?.status;if(t===void 0||t>=500){this.toast.add({severity:`success`,detail:this.t(`components.toast.server_restarted`),life:3e3});return}this.toast.add({severity:`error`,detail:e,life:3e3})}})}resetServerQuery(){return i({mutationFn:y,onSuccess:async()=>{this.toast.add({severity:`success`,detail:this.t(`components.toast.server_resetted`),life:3e3})}})}toggleQueryActivator(e,t){let n=this.queryActivator.value.find(t=>t.name===e);return n&&(n.enabled=t),this}};export{_ as a,m as i,p as n,h as r,b as t};
@@ -1 +1 @@
1
- import{Xr as e,pi as t}from"./vendor-cameraui-D7o3alq7.js";import"./api-ChlkJnEG.js";import{An as n,Qn as r,dr as i,pr as a}from"./vendor-CdGy-Xet.js";import{f as o}from"./vendor-core-M6N9PctY.js";async function s(e){}function c(){if(typeof window>`u`)return null;let e=new URLSearchParams(window.location.search).get(`cui_theme`);return e===`dark`||e===`light`?e:null}var l=o(`theme`,()=>{let o=localStorage.getItem(`theme`),l=o?JSON.parse(o):{theme:`dark`,autoMode:!0},u=c();u&&(l.theme=u,l.autoMode=!1);let d=t(l.theme,{onBeforeChange(){if(!p.value)return!1},onChanged(e){l.theme=e,localStorage.setItem(`theme`,JSON.stringify(l))}}),f=t(l.autoMode,{onBeforeChange(e){if(e&&!p.value)return!1},onChanged(e){l.autoMode=e,localStorage.setItem(`theme`,JSON.stringify(l))}}),p=a(!0),m=i([`light`,`dark`]);function h(){return window.matchMedia(`(prefers-color-scheme: dark)`).matches?`dark`:`light`}function g(){return f.value?h():d.value}function _(e){switch(document.documentElement.setAttribute(`data-mode`,e),e){case`light`:document.documentElement.classList.remove(`dark-mode`),document.documentElement.classList.add(`light-mode`);break;case`dark`:document.documentElement.classList.remove(`light-mode`),document.documentElement.classList.add(`dark-mode`);break}s(e)}function v(e){f.value=!1,d.value=e}function y(){f.value?(f.value=!1,d.value=`light`):d.value===`light`?d.value=`dark`:f.value=!0}let b=e(`(prefers-color-scheme: dark)`);return r(f,e=>{e&&(d.value=h())},{immediate:!0,deep:!0}),r(d,e=>{n(()=>{_(e),p.value=!0}),p.value=!1}),r(b,e=>{f.value&&(d.value=e?`dark`:`light`)}),_(g()),{colors:m,theme:d,autoMode:f,setAppTheme:_,getSystemMode:h,toggleTheme:y,applyHostTheme:v}});export{l as t};
1
+ import{Xr as e,pi as t}from"./vendor-cameraui-Bq-hQsT7.js";import"./api-CdJDEL3z.js";import{An as n,Qn as r,dr as i,pr as a}from"./vendor-CdGy-Xet.js";import{f as o}from"./vendor-core-CoiYJRqo.js";async function s(e){}function c(){if(typeof window>`u`)return null;let e=new URLSearchParams(window.location.search).get(`cui_theme`);return e===`dark`||e===`light`?e:null}var l=o(`theme`,()=>{let o=localStorage.getItem(`theme`),l=o?JSON.parse(o):{theme:`dark`,autoMode:!0},u=c();u&&(l.theme=u,l.autoMode=!1);let d=t(l.theme,{onBeforeChange(){if(!p.value)return!1},onChanged(e){l.theme=e,localStorage.setItem(`theme`,JSON.stringify(l))}}),f=t(l.autoMode,{onBeforeChange(e){if(e&&!p.value)return!1},onChanged(e){l.autoMode=e,localStorage.setItem(`theme`,JSON.stringify(l))}}),p=a(!0),m=i([`light`,`dark`]);function h(){return window.matchMedia(`(prefers-color-scheme: dark)`).matches?`dark`:`light`}function g(){return f.value?h():d.value}function _(e){switch(document.documentElement.setAttribute(`data-mode`,e),e){case`light`:document.documentElement.classList.remove(`dark-mode`),document.documentElement.classList.add(`light-mode`);break;case`dark`:document.documentElement.classList.remove(`light-mode`),document.documentElement.classList.add(`dark-mode`);break}s(e)}function v(e){f.value=!1,d.value=e}function y(){f.value?(f.value=!1,d.value=`light`):d.value===`light`?d.value=`dark`:f.value=!0}let b=e(`(prefers-color-scheme: dark)`);return r(f,e=>{e&&(d.value=h())},{immediate:!0,deep:!0}),r(d,e=>{n(()=>{_(e),p.value=!0}),p.value=!1}),r(b,e=>{f.value&&(d.value=e?`dark`:`light`)}),_(g()),{colors:m,theme:d,autoMode:f,setAppTheme:_,getSystemMode:h,toggleTheme:y,applyHostTheme:v}});export{l as t};
@@ -1 +1 @@
1
- import{Ar as e,Mr as t,Nr as n,jr as r}from"./vendor-cameraui-D7o3alq7.js";import{C as i,S as a,_ as o,a as s,b as c,c as l,d as u,f as ee,g as d,h as f,i as p,l as m,m as te,o as ne,p as re,s as h,u as g,v as ie,w as _,x as ae,y as v}from"./vendor-zod-BaT-dXMv.js";o({tempToken:c().trim().min(1,`Temporary token is required`),code:c().trim().min(1,`Code is required`)}).strict(),o({code:c().trim().length(6,`Code must be 6 digits`)}).strict(),o({code:c().trim().min(1,`Code is required`)}).strict(),o({code:c().trim().min(1,`Code is required`)}).strict(),o({grant_type:c().optional(),username:c().trim().min(1,`Username is required`),password:c().min(1,`Password is required`),scope:c().optional(),client_id:c().optional(),client_secret:c().optional()}),o({refresh_token:c().min(1,`Refresh token is required`)}),o({id:c()}),o({name:c().trim().min(1,`Name is required`).max(64,`Name is too long`)}).strict(),o({id:c()});function oe(e){let t=[`kasa://`,`nest:`,`ring:`,`tapo://`];return e.some(e=>t.some(t=>e.startsWith(t)))}var se=[`#df2a4c`,`#2a7fdf`,`#2adf7f`,`#df7f2a`,`#7f2adf`,`#2adfdf`,`#df2adf`,`#7fdf2a`];function ce(){return se[Math.floor(Math.random()*se.length)]}function le(){return{name:`Default Zone`,points:[[0,0],[100,0],[100,100],[0,100]],type:`contain`,filter:`include`,labels:[`motion`,`person`,`vehicle`,`animal`],isPrivacyMask:!1,color:ce()}}var ue=o({enabled:g().default(!0),mode:h([`continuous`,`event`,`adhoc`]).default(`continuous`),preBuffer:d().min(0).max(60).default(10),sources:m(h([`high`,`mid`,`low`])).default([`high`,`mid`,`low`])}).strict(),de={enabled:!0,mode:`continuous`,preBuffer:10,sources:[`high`,`mid`,`low`]},fe=c().trim().min(1,`Detection label is required`),y=ae([d(),d()]),b=o({name:c().trim().min(1,`Zone Name is required`),points:y.array().min(3,`At least 3 points are required`),type:a([f(`intersect`),f(`contain`)]),filter:a([f(`include`),f(`exclude`)]),labels:fe.array(),isPrivacyMask:g(),color:c().trim().regex(/^#([0-9A-Fa-f]{3}){1,2}$/,`Must be a valid hex color (e.g. #FF0000 or #F00)`).default(`#df2a4c`)}).array(),x=o({name:c().trim().min(1,`Line Name is required`),points:ae([y,y]),direction:a([f(`both`),f(`a-to-b`),f(`b-to-a`)]),labels:fe.array(),color:c().trim().regex(/^#([0-9A-Fa-f]{3}){1,2}$/,`Must be a valid hex color (e.g. #FF0000 or #F00)`).default(`#df2a4c`)}).array(),pe=o({motion:o({resolution:a([f(`low`),f(`medium`),f(`high`)]),timeout:d().min(10,`Minimum 10 seconds`)}),object:o({confidence:d().min(.3,`Minimum 0.3`).max(1,`Maximum 1`),suppressStatic:g().default(!0)}),audio:o({minDecibels:d().min(-100,`Minimum -100 dBFS`).max(0,`Maximum 0 dBFS`),timeout:d().min(10,`Minimum 10 seconds`)}),face:o({confidence:d().min(0,`Minimum 0`).max(1,`Maximum 1`).default(.5)}).default({confidence:.5}),licensePlate:o({confidence:d().min(0,`Minimum 0`).max(1,`Maximum 1`).default(.9),minLength:d().int().min(1,`Minimum 1`).max(10,`Maximum 10`).default(4)}).default({confidence:.9,minLength:4}),sensor:o({timeout:d().min(10,`Minimum 10 seconds`),triggers:m(o({sensorType:c().trim().min(1,`Sensor type is required`),sensorName:c().trim().min(1,`Sensor name is required`),pluginId:c().trim().min(1,`Plugin ID is required`)})).default([])}),cascadeDetection:g().default(!0),cascadeTimeout:d().min(1,`Minimum 1 second`).max(300,`Maximum 300 seconds`).default(10),snooze:g().default(!1)}),me={enabled:!1,targetLabels:[`person`],minConfidence:.5,triggerDeadZone:.05,trackingSpeed:2,leadMs:1800,panRate:.85,returnToHome:!1,homeWaitMs:1e4},he=o({enabled:g().default(!1),targetLabels:c().trim().min(1,`Target label is required`).array().default([`person`]),minConfidence:d().min(.3,`Minimum 0.3`).max(1,`Maximum 1`).default(.5),triggerDeadZone:d().min(0,`Minimum 0`).max(.3,`Maximum 0.3`).default(.05),trackingSpeed:d().min(1,`Minimum 1`).max(5,`Maximum 5`).default(2),leadMs:d().min(0,`Minimum 0`).max(4e3,`Maximum 4000 ms`).default(1800),panRate:d().min(.1,`Minimum 0.1`).max(3,`Maximum 3`).default(.85),returnToHome:g().default(!1),homeWaitMs:d().min(1e3,`Minimum 1000 ms`).max(6e4,`Maximum 60000 ms`).default(1e4)}),S=a([f(`high-resolution`),f(`mid-resolution`),f(`low-resolution`),f(`snapshot`)]),ge=a([f(`high-resolution`),f(`mid-resolution`),f(`low-resolution`)]),_e=a([f(`bubble://`),f(`cui://`),f(`doorbird://`),f(`dvrip://`),f(`eseecloud://`),f(`ffmpeg:`),f(`flussonic://`),f(`gopro://`),f(`hass:`),f(`homekit://`),f(`http://`),f(`https://`),f(`httpx://`),f(`isapi://`),f(`ivideon:`),f(`kasa://`),f(`nest:`),f(`onvif://`),f(`ring:`),f(`roborock://`),f(`rtmp://`),f(`rtsp://`),f(`rtspx://`),f(`tapo://`),f(`tcp://`),f(`tuya://`),f(`xiaomi://`),f(`yandex:`),f(`webrtc:`),f(`webtorrent:`),f(`wyze://`)]).options.map(e=>e.value),ve=RegExp(`^(${_e.join(`|`)})`),C=c().refine(e=>{if(!ve.test(e))return!1;try{return new URL(e),!0}catch{return!1}},{message:`Invalid URL format or unsupported protocol`}),ye=o({_id:c().default(r()).transform(()=>r()),name:c().trim().min(1,`Camera Source Name is required`).transform(e=>e.replace(/ /g,`_`).toLowerCase()),role:S,useForSnapshot:g().default(!1),hotMode:g().default(!0),preload:g().default(!0),muted:g().default(!1),urls:C.array().min(1,`At least one valid URL is required`),childSourceId:c().trim().min(1,`Child Source ID is required`).optional()}).strict().transform(e=>e.role===`snapshot`?{...e,useForSnapshot:!1,hotMode:!1,preload:!1}:e),be=o({_id:c().default(r()).transform(()=>r()),name:c().trim().min(1,`Camera Source Name is required`).transform(e=>e.replace(/ /g,`_`).toLowerCase()),role:S,useForSnapshot:g().default(!1),hotMode:g().default(!0),preload:g().default(!0),muted:g().default(!1),urls:C.array().min(1,`At least one valid URL is required`),childSourceId:c().trim().min(1,`Child Source ID is required`).optional()}).strict().transform(e=>e.role===`snapshot`?{...e,useForSnapshot:!1,hotMode:!1,preload:!1}:e),w=o({id:c(),name:c().trim()}),T=o({motion:w.optional(),object:w.optional(),audio:w.optional(),face:w.optional(),licensePlate:w.optional(),ptz:w.optional(),battery:w.optional(),cameraController:w.optional(),clip:w.optional(),classifier:w.array().optional(),light:w.array().optional(),siren:w.array().optional(),switch:w.array().optional(),securitySystem:w.array().optional(),contact:w.array().optional(),doorbell:w.array().optional(),lock:w.array().optional(),temperature:w.array().optional(),humidity:w.array().optional(),occupancy:w.array().optional(),smoke:w.array().optional(),leak:w.array().optional(),garage:w.array().optional(),hub:w.array().optional()}).strict(),xe=a([f(`auto`),f(`mse`),f(`webrtc`),f(`webrtc/tcp`)]),Se=c().regex(/^\d+(?:\.\d+)?:\d+(?:\.\d+)?$/,`Use a width:height ratio, e.g. 16:9`).refine(e=>{let[t,n]=e.split(`:`).map(Number);return Number.isFinite(t)&&Number.isFinite(n)&&t>0&&n>0},`Both sides must be greater than 0`).transform(e=>e),E=o({fps:d().min(0,`Minimum 0 fps`).max(30,`Maximum 30 fps`),hqSnapshots:g().default(!1)}),D=a([f(`camera`),f(`doorbell`)]),O=o({streamingMode:xe,streamingSource:ge,aspectRatio:Se}),k=o({model:c().trim().optional(),manufacturer:c().trim().optional(),hardware:c().trim().optional(),serialNumber:c().trim().optional(),firmwareVersion:c().trim().optional(),supportUrl:c().trim().optional()}),Ce=o({id:c(),name:c().trim()}).strict(),A=o({autoRefresh:g().default(!0),ttl:d().min(10,`Minimum 10 seconds`).max(60,`Maximum 60 seconds`).default(50),interval:d().min(10,`Minimum 10 seconds`).max(60,`Maximum 60 seconds`).default(60)}).strict(),j=o({_id:c().default(r()).transform(()=>r()),nativeId:c().trim().optional(),pluginInfo:Ce.optional(),disabled:g().default(!1),name:c().trim().min(1,`Camera name is required`),room:c().trim().min(1,`Room is required`).default(`Default`),type:D.default(`camera`),isCloud:g().default(!1),snapshotSettings:A.default({autoRefresh:!0,ttl:50,interval:60}),info:k.default({model:`IP Camera`,manufacturer:`camera.ui`,hardware:`Camera`,serialNumber:`Unknown`,firmwareVersion:`Unknown`,supportUrl:`Unknown`}),sources:ye.array().refine(e=>e.some(e=>e.role===`high-resolution`||e.role===`mid-resolution`||e.role===`low-resolution`),{path:[`sources[].role`],message:`One of the roles "high-resolution", "mid-resolution" or "low-resolution" is required`}).refine(e=>e.filter(e=>e.useForSnapshot).length<=1,{message:`Only one source can be used for snapshot`,path:[`sources`]}).refine(e=>{let t=e.map(e=>e.role).filter(Boolean);return new Set(t).size===t.length},{message:`Each source role can be assigned to only one source`,path:[`sources`]}),plugins:w.array().default([]),assignments:T.default({}),interfaceSettings:O.default({streamingMode:`webrtc`,streamingSource:`high-resolution`,aspectRatio:`16:9`}),detectionZones:b.default([]),detectionLines:x.default([]),detectionSettings:pe.default({motion:{resolution:`low`,timeout:30},object:{confidence:.5,suppressStatic:!0},audio:{minDecibels:-40,timeout:30},face:{confidence:.5},licensePlate:{confidence:.9,minLength:4},sensor:{timeout:30,triggers:[]},cascadeDetection:!0,cascadeTimeout:10,snooze:!1}),ptzAutotrack:he.default(me),recordingSettings:ue.default(de),frameWorkerSettings:E.default({fps:10,hqSnapshots:!1})}).strict();j.transform(e=>{let t=e.sources.flatMap(e=>e.urls),n=e.detectionZones.length===0?[le()]:e.detectionZones;return e.isCloud||oe(t)?{...e,isCloud:!0,detectionZones:n}:{...e,detectionZones:n}});var we=o({disabled:g().optional(),type:D.optional(),name:c().trim().min(1,`Camera name is required`).optional(),room:c().trim().min(1,`Room is required`).optional(),isCloud:g().optional(),snapshotSettings:A.partial().optional(),info:k.partial().optional(),sources:be.array().refine(e=>e.some(e=>e.role===`high-resolution`||e.role===`mid-resolution`||e.role===`low-resolution`),{path:[`sources[].role`],message:`One of the roles "high-resolution", "mid-resolution" or "low-resolution" is required`}).refine(e=>e.filter(e=>e.useForSnapshot).length<=1,{message:`Only one source can be used for snapshot`,path:[`sources`]}).refine(e=>{let t=e.map(e=>e.role).filter(Boolean);return new Set(t).size===t.length},{message:`Each source role can be assigned to only one source`,path:[`sources`]}).optional(),plugins:w.array().optional(),assignments:T.partial().optional(),interfaceSettings:O.partial().optional(),detectionZones:b.optional(),detectionLines:x.optional(),detectionSettings:pe.partial().optional(),ptzAutotrack:he.partial().optional(),recordingSettings:ue.partial().optional(),frameWorkerSettings:E.partial().optional()}).strict().transform(e=>{if(e.sources){let t=e.sources.flatMap(e=>e.urls);if(e.isCloud===!0||oe(t))return{...e,isCloud:!0}}return e});o({url:c().trim().refine(e=>!/^\s*(exec|echo|expr):/i.test(e),`Command-execution stream sources are not allowed`)}).strict(),o({cameraname:c()}),o({cameraname:c(),sourcename:c()}),o({cameraid:c(),sourcename:c()}),o({cameraname:c(),pluginname:c()}),o({cameraname:c(),scope:c(),pluginname:c()}),o({cameraname:c(),pluginname:c(),sensorId:c()}),o({cameraname:c(),stableId:c()}),o({property:c(),value:i()}),o({cameraname:c(),scope:c(),pluginname:c(),sensorId:c()}),o({type:c().optional()}),o({video:p().optional(),audio:p().optional(),microphone:p().optional(),refresh:p().optional()}),o({forceNew:p().optional()}),o({name:c().trim().min(1,`Name is required`).max(100,`Name cannot be more than 100 characters`),url:_(`Must be a valid URL`).trim(),credentials:o({username:c().trim().min(1,`Username is required`),password:c().min(1,`Password is required`)})}),o({name:c().trim().min(1,`Name is required`).max(100,`Name cannot be more than 100 characters`).optional(),url:_(`Must be a valid URL`).trim().optional(),credentials:o({username:c().trim().min(1,`Username is required`),password:c().min(1,`Password is required`)}).nullable().optional()}),o({id:c().min(1,`ID is required`)}),o({code:c().trim().min(1,`Code is required`).optional()}).optional();var M=/^[\w-]+(\/[\w-]+)*$/,Te=o({enabled:g().optional(),mode:h([`external`,`embedded`]).optional(),broker:o({port:d().int().min(1).max(65535).optional(),username:c().trim().max(200,`Username cannot be more than 200 characters`).nullable().optional(),password:c().max(500,`Password cannot be more than 500 characters`).nullable().optional()}).strict().optional(),host:c().trim().min(1,`Host is required`).max(253,`Host cannot be more than 253 characters`).nullable().optional(),port:d().int().min(1).max(65535).optional(),protocol:h([`mqtt`,`mqtts`]).optional(),username:c().trim().max(200,`Username cannot be more than 200 characters`).nullable().optional(),password:c().max(500,`Password cannot be more than 500 characters`).nullable().optional(),clientId:c().trim().min(1,`Client ID is required`).max(128,`Client ID cannot be more than 128 characters`).optional(),topicPrefix:c().trim().min(1,`Topic prefix is required`).max(128,`Topic prefix cannot be more than 128 characters`).regex(M,`Topic prefix may only contain letters, numbers, "_", "-" and "/" separators`).optional(),tls:o({rejectUnauthorized:g().optional(),ca:c().trim().nullable().optional(),cert:c().trim().nullable().optional(),key:c().trim().nullable().optional()}).strict().optional(),haDiscovery:o({enabled:g().optional(),prefix:c().trim().min(1,`Discovery prefix is required`).max(128,`Discovery prefix cannot be more than 128 characters`).regex(M,`Discovery prefix may only contain letters, numbers, "_", "-" and "/" separators`).optional()}).strict().optional()}).strict(),Ee=/^((@[\w-.]*)\/)?(camera-ui-[\w-]*)$/,De=function(e){return e.READY=`ready`,e.STARTING=`starting`,e.STARTED=`started`,e.STOPPING=`stopping`,e.STOPPED=`stopped`,e.ERROR=`error`,e.UNKNOWN=`unknown`,e.DISABLED=`disabled`,e.INCOMPATIBLE=`incompatible`,e}({});function N(e){return e.mimetype!==void 0}function Oe(e){return N(e)?Buffer.byteLength(e._buf):e.size}function ke(e){return N(e)?e.mimetype:e.type}function P(e,t,n,r){return u().refine(t=>Oe(t)<=e,n).refine(e=>t.includes(ke(e)),r)}var Ae=o({start:s().optional(),page:s().optional(),pageSize:s().optional()}),F=[`image/jpeg`,`image/png`],je=1024*1024*2,I=[`video/mp4`,`video/quicktime`],L=1024*1024*10,R=[`audio/mpeg`,`audio/wav`,`audio/ogg`],z=1024*1024*2,B=()=>P(je,F,`Max file size is 2 MB`,`.jpeg and .png files are accepted`),V=u().transform(e=>JSON.parse(e.value)),H=u().transform(e=>JSON.parse(e.value)),Me=u().transform(e=>JSON.parse(e.value));o({pluginname:c().trim().refine(e=>Ee.test(e),`Not a valid plugin name`),pluginversion:c().trim().refine(e=>/^[a-z][\w-]*$/i.test(e)||/^v?\d+\.\d+\.\d+(?:[-+][\w.-]+)?$/i.test(e),`Not a valid plugin version (expected a dist-tag or exact semver)`).optional().default(`latest`)}).strict(),o({actionId:c(),payload:l()}).strict(),v(l(),l()),o({upload:B(),metadata:H,config:V}),o({upload:P(z,R,`Max file size is 2 MB`,`.mp3, .wav and .ogg files are accepted`),metadata:Me,config:V}),o({upload:P(L,I,`Max file size is 5 MB`,`.mp4 files are accepted`),config:V}),o({upload:B(),metadata:H,config:V}),o({upload:B(),metadata:H,config:V}),o({upload:B(),metadata:H,config:V}),o({pluginname:c()}),o({scope:c(),pluginname:c()}),Ae.extend({pluginname:c().trim().optional(),refresh:p().optional()}),o({removeStorage:p().optional()}),o({pluginversion:c().trim().optional()});var Ne=o({enabled:g().optional(),directEnabled:g().optional(),directMode:h([`cloudflare`,`customDomain`]).optional(),customDomain:o({url:_(`Must be a valid URL`).trim().nullable()}).strict().optional(),cloudflare:o({mode:h([`quick`,`token`,`managed`]).optional(),hostname:c().trim().min(1,`Hostname is required`).max(253,`Hostname cannot be more than 253 characters`).nullable().optional(),token:c().trim().min(1,`Token is required`).nullable().optional()}).strict().optional()}).strict().refine(e=>!(e.directMode===`customDomain`&&!e.customDomain?.url),{message:`Custom domain URL is required when directMode is "customDomain"`,path:[`customDomain`,`url`]}).refine(e=>!(e.cloudflare?.mode&&e.cloudflare.mode!==`quick`&&!e.cloudflare?.hostname),{message:`Hostname is required when cloudflare.mode is "token" or "managed"`,path:[`cloudflare`,`hostname`]});o({mode:h([`cloudflare`,`customDomain`])}).strict(),o({hostname:c().trim().min(1,`Hostname is required`).max(253,`Hostname cannot be more than 253 characters`).regex(/^[a-z0-9.-]+\.[a-z]{2,}$/i,`Invalid hostname`)}).strict(),o({name:c().trim().min(1,`Name is required`).max(100,`Name cannot be more than 100 characters`).optional()}).strict(),o({name:c().trim().min(1,`Name is required`).max(100,`Name cannot be more than 100 characters`).optional()}).strict(),o({name:c().trim().min(1,`Server name is required`).max(100,`Server name cannot be more than 100 characters`)}).strict(),o({version:c().trim().optional().default(`latest`)}).strict();var Pe=o({serverAddresses:a([re().trim(),te().trim()]).array().default([])}).strict();o({version:c().trim()}).strict(),v(c(),l()),o({key:c()}).strict(),o({key:c(),payload:l()}).strict();var Fe=[`de`,`en`],Ie=[`image/jpeg`,`image/jpg`,`image/png`],Le=1024*1024*5,U=o({index:d(),cameraId:c(),colSpan:d().optional(),rowSpan:d().optional(),x:d().optional(),y:d().optional()}),Re=a([f(1),f(4),f(6),f(7),f(9),f(10),f(12),f(13),f(15),f(16),f(20),f(26)]),ze=a([f(`dnd`),f(`view`)]),Be=o({_id:c().default(r()).transform(()=>r()),name:c().trim().min(1,`Layout name is required`),viewSize:Re,cameras:U.array(),type:ze});o({name:c().trim().min(1,`Layout name is required`),viewSize:Re,cameras:U.array()}).partial().optional();var Ve=o({views:Be.array()}),He=h(t.filter(e=>e.shortcutable).map(e=>String(e.type))),Ue=ee(`type`,[o({_id:c().default(r()).transform(()=>r()),type:f(`camera`),cameraId:c(),points:y}),o({_id:c().default(r()).transform(()=>r()),type:f(`sensor`),sensorType:He,sensorName:c(),sensorPluginId:c(),sensorCameraId:c(),points:y})]);a([o({type:f(`camera`),cameraId:c(),points:y}).partial(),o({type:f(`sensor`),sensorType:He,sensorName:c(),sensorPluginId:c(),sensorCameraId:c(),points:y}).partial()]).optional();var We=o({shortcuts:Ue.array()}),Ge=o({language:h([`auto`,...Fe]).optional(),camview:Ve,cameras:v(c().trim(),We)}),W=c().trim().min(10,`Password must be at least 10 characters long`).regex(/[A-Z]/,`Password must contain at least one uppercase letter`).regex(/[!@#$%^&*()_+\-=[\]{};':"\\|,.<>/?]/,`Password must contain at least one special character (!@#$%^&*()_+-=[]{};:'"\\|,.<>/?)`).max(32,`Password cannot be more than 32 characters`),Ke=o({_id:c().default(r()).transform(()=>r()),username:c().trim().min(1,`Username is required`),password:W,passwordConfirm:c().trim().min(1,`Please confirm your password`),role:a([f(`admin`),f(`user`)]),firstLogin:g().default(!0),preferences:Ge.default({language:`auto`,camview:{views:[]},cameras:{}})}).strict().refine(e=>e.password===e.passwordConfirm,{path:[`passwordConfirm`],message:`Passwords do not match`});o({username:c().trim().min(1,`Username is required`),password:c().trim().min(1,`Password is required`),kind:h([`native`,`web`]),persistent:g().default(!1),device:o({id:c().min(1,`Device id is required`).max(128,`Device id cannot be more than 128 characters`),name:c().trim().min(1,`Device name is required`).max(100,`Device name cannot be more than 100 characters`)})}).strict();var qe=o({username:c().trim().min(1,`Username is required`).optional(),password:W.optional(),passwordConfirm:c().trim().optional(),role:a([f(`admin`),f(`user`)]).optional(),upload:ie(P(Le,Ie,`Max file size is 5MB.`,`.jpg, .jpeg, .png files are accepted.`)),firstLogin:g().optional(),preferences:Ge.partial().optional()}).strict().refine(e=>e.password===e.passwordConfirm,{path:[`passwordConfirm`],message:`Passwords do not match`});o({username:c()}),o({username:c(),cameraname:c()}),o({username:c(),cameraname:c(),shortcutid:c()}),o({username:c(),viewid:c()}),o({username:c()});function Je(){let e={};for(let n of t)e[n.type]={category:n.category,assignmentKey:n.assignmentKey,multiProvider:n.multiProvider,isDetectionType:n.isDetectionType,...n.cascadeTrigger?{cascadeTrigger:n.cascadeTrigger}:{}};return e}var G=Je();Object.fromEntries(t.filter(e=>e.propertyCapabilities).map(e=>[e.type,e.propertyCapabilities]));function Ye(){return Object.entries(G).filter(([,e])=>e.multiProvider).map(([e])=>e)}function Xe(){return t.filter(e=>e.shortcutable).map(e=>e.type)}function Ze(){return Object.entries(G).filter(([,e])=>e.isDetectionType).map(([e])=>e)}function Qe(e){return G[e].assignmentKey}function $e(){return Object.entries(G).filter(([,e])=>e.category===n.Sensor&&!e.multiProvider).map(([e])=>e)}function et(){return Object.entries(G).filter(([,e])=>!e.multiProvider&&e.category!==n.Sensor).map(([e])=>e)}function tt(){return Object.entries(G).filter(([,e])=>e.multiProvider).map(([e])=>e)}function nt(e){return!G[e].multiProvider}Object.fromEntries(t.map(e=>[e.type,Object.keys(e.properties)]));var K=Object.fromEntries(t.map(e=>[e.type,e.properties]));function rt(e,t){return K[e]?.[t]}function it(e){let t=K[e];return t?Object.entries(t).filter(([,e])=>!e.internal).map(([e])=>e):[]}function at(e){let t=K[e];return t?Object.entries(t).filter(([,e])=>e.writable).map(([e])=>e):[]}new Set(Ye()),new Set(Ze());var ot=`cameraui.virtual`,st=t.filter(e=>e.virtual).map(e=>e.type);Object.fromEntries(t.filter(e=>e.virtual).map(e=>[e.type,e.virtual?.properties??{}])),Object.fromEntries(t.filter(e=>e.virtual?.capabilities).map(e=>[e.type,e.virtual?.capabilities]));var ct=o({cameraId:c().min(1,`Camera ID is required`),type:h(st),name:c().trim().min(1,`Name is required`).max(100,`Name cannot be more than 100 characters`)});o({displayName:c().trim().min(1,`Display name is required`).max(100,`Display name cannot be more than 100 characters`)}),o({id:c().min(1,`ID is required`)});function lt(e){return e.type===`string`&&!(`enum`in e)}function ut(e){return e.type===`number`}function dt(e){return e.type===`boolean`}function q(e){return e.type===`string`&&`enum`in e}function ft(e){return e.type===`array`}function J(e){return e.type===`button`}function Y(e){return e.type===`submit`}function pt(e){return lt(e)&&(!e.format||e.format!==`qrCode`&&e.format!==`image`)}var mt=(e,t)=>{let n=Q(t,e.key),r=e.value;switch(e.operator??`eq`){case`eq`:return n===r;case`neq`:return n==null||n===``?!1:n!==r;case`gt`:return typeof n==`number`&&typeof r==`number`&&n>r;case`lt`:return typeof n==`number`&&typeof r==`number`&&n<r;case`in`:return(Array.isArray(r)?r:[r]).includes(n);case`nin`:return n==null||n===``?!1:!(Array.isArray(r)?r:[r]).includes(n);default:return!0}};function X(e,t){return Array.isArray(e)?e.every(e=>mt(e,t)):mt(e,t)}function ht(t,n){if(!t||Object.keys(t).length===0)return!0;let r=n.filter(e=>!J(e)&&!Y(e));for(let n of r){let r=Q(t,n.key),i=Z(n);if(r!==void 0&&!e(r,i,!0))return!1}return!0}function Z(e){if(`defaultValue`in e&&e.defaultValue!==void 0)return e.defaultValue;switch(e.type){case`string`:return q(e)?e.multiple?[]:e.required?e.enum[0]:``:``;case`number`:return 0;case`boolean`:return!1;case`array`:return[];default:return}}function gt(e){let t={};for(let n of e)J(n)||Y(n)||(t[n.key]=Z(n));return t}function _t(e){return e.split(`.`).reduce((e,t)=>{if(t.includes(`[`)){let[n,r]=t.split(`[`);e.push(n,r.slice(0,-1))}else e.push(t);return e},[])}function vt(e){return!isNaN(Number(e))}function Q(e={},t){if(!t.includes(`.`)&&!t.includes(`[`))return e[t];let n=e;for(let e of _t(t)){if(n==null)return;n=n[e]}return n}function yt(e,t,n){if(!t.includes(`.`)&&!t.includes(`[`)){e[t]=n;return}let r=_t(t),i=r.pop();if(!i)return;let a=e;for(let e=0;e<r.length;e++){let t=r[e];(typeof a[t]!=`object`||a[t]===null)&&(a[t]=vt(r[e+1]??i)?[]:{}),a=a[t]}a[i]=n}function bt(e,t){let n={};for(let r of e)if(`store`in r&&r.store&&!J(r)&&!Y(r)){let e=Q(t,r.key);e!==void 0&&(n[r.key]=e)}return n}function xt(e,t){return t?e.filter(e=>`group`in e&&e.group===t):e}function St(e,t){let n=xt(e,t);return n.length>0&&n.every(e=>`readonly`in e&&e.readonly)}function Ct(e,t){let n=xt(e,t);return n.length>0&&n.some(e=>`store`in e&&e.store)}function wt(e,t){if(!t)return!0;let n={"date-time":e=>/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(.\d+)?(Z|[+-]\d{2}:\d{2})?$/.test(e),date:e=>/^\d{4}-\d{2}-\d{2}$/.test(e),time:e=>/^([01]?[0-9]|2[0-3]):([0-5][0-9])(:([0-5][0-9]))?$/.test(e),email:e=>/^\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,7}\b$/.test(e),uuid:e=>/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$/.test(e),ipv4:e=>/^(?:[0-9]{1,3}\.){3}[0-9]{1,3}$/.test(e),ipv6:e=>/^\s*([0-9a-fA-F]{1,4}:){7}([0-9a-fA-F]{1,4})\s*$/.test(e)};return t in n?n[t](e):!0}function $(e){if(J(e)||Y(e))return l();switch(e.type){case`string`:if(q(e))if(e.multiple){let t=m(c().trim().refine(t=>e.enum.includes(t),{error:`Invalid selection`}));return e.required&&(t=t.min(1,{error:`Required`})),e.required?t:t.optional()}else{let t=h(e.enum);return e.required?t:t.optional()}let t=c().trim();return e.required&&(t=t.nonempty(`Required`)),e.minLength!==void 0&&(t=t.min(e.minLength)),e.maxLength!==void 0&&(t=t.max(e.maxLength)),e.format&&(t=t.refine(t=>!t||t.trim()===``||wt(t,e.format),{message:`Invalid ${e.format} format`})),e.required?t:t.optional();case`number`:let n=d();return e.minimum!==void 0&&(n=n.min(e.minimum)),e.maximum!==void 0&&(n=n.max(e.maximum)),e.required&&(n=n.refine(e=>e!=null,{error:`Required`})),e.required?n:n.optional();case`boolean`:return e.required?g():g().optional();case`array`:let r=m(e.items?$(e.items):l());return e.required?r:r.optional();default:return e.required?l():l().optional()}}var Tt=(e,t,n)=>t.filter(e=>`group`in e&&e.group===n).some(t=>{let n=e[t.key];return n!=null&&n!==``});function Et(e){let t={},n=new Set;e.forEach(e=>{`group`in e&&e.group&&n.add(e.group)}),e.forEach(e=>{if(!J(e)&&!Y(e)){let n=`group`in e&&e.group,r=`condition`in e&&e.condition;(n||r)&&e.required?t[e.key]=$({...e,required:!1}):t[e.key]=$(e)}});let r=o(t),i=e.filter(e=>`condition`in e&&e.condition&&`required`in e&&e.required&&!J(e)&&!Y(e));return(n.size>0||i.length>0)&&(r=r.superRefine((t,r)=>{for(let i of n)if(Tt(t,e,i)){let n=e.filter(e=>`group`in e&&e.group===i);for(let e of n)if(`required`in e&&e.required){if(`condition`in e&&e.condition&&!X(e.condition,t))continue;let n=t[e.key];(n==null||n===``)&&r.addIssue({code:ne.custom,message:`Required`,path:[e.key]})}}for(let e of i)if(!(`group`in e&&e.group)&&`condition`in e&&e.condition&&X(e.condition,t)){let n=t[e.key];(n==null||n===``)&&r.addIssue({code:ne.custom,message:`Required`,path:[e.key]})}})),r}export{at as A,R as B,tt as C,it as D,$e as E,W as F,De as G,F as H,qe as I,j as J,Te as K,Be as L,Le as M,Fe as N,rt as O,Ke as P,we as Q,Pe as R,st as S,et as T,z as U,I as V,L as W,b as X,x as Y,S as Z,Ct as _,Et as a,G as b,dt as c,q as d,ut as f,St as g,pt as h,bt as i,nt as j,Xe as k,J as l,Y as m,gt as n,Q as o,lt as p,_e as q,Z as r,ft as s,X as t,ht as u,yt as v,Qe as w,ot as x,ct as y,Ne as z};
1
+ import{Ar as e,Mr as t,Nr as n,jr as r}from"./vendor-cameraui-Bq-hQsT7.js";import{C as i,S as a,_ as o,a as s,b as c,c as l,d as u,f as ee,g as d,h as f,i as p,l as m,m as te,o as ne,p as re,s as h,u as g,v as ie,w as _,x as ae,y as v}from"./vendor-zod-BaT-dXMv.js";o({tempToken:c().trim().min(1,`Temporary token is required`),code:c().trim().min(1,`Code is required`)}).strict(),o({code:c().trim().length(6,`Code must be 6 digits`)}).strict(),o({code:c().trim().min(1,`Code is required`)}).strict(),o({code:c().trim().min(1,`Code is required`)}).strict(),o({grant_type:c().optional(),username:c().trim().min(1,`Username is required`),password:c().min(1,`Password is required`),scope:c().optional(),client_id:c().optional(),client_secret:c().optional()}),o({refresh_token:c().min(1,`Refresh token is required`)}),o({id:c()}),o({name:c().trim().min(1,`Name is required`).max(64,`Name is too long`)}).strict(),o({id:c()});function oe(e){let t=[`kasa://`,`nest:`,`ring:`,`tapo://`];return e.some(e=>t.some(t=>e.startsWith(t)))}var se=[`#df2a4c`,`#2a7fdf`,`#2adf7f`,`#df7f2a`,`#7f2adf`,`#2adfdf`,`#df2adf`,`#7fdf2a`];function ce(){return se[Math.floor(Math.random()*se.length)]}function le(){return{name:`Default Zone`,points:[[0,0],[100,0],[100,100],[0,100]],type:`contain`,filter:`include`,labels:[`motion`,`person`,`vehicle`,`animal`],isPrivacyMask:!1,color:ce()}}var ue=o({enabled:g().default(!0),mode:h([`continuous`,`event`,`adhoc`]).default(`continuous`),preBuffer:d().min(0).max(60).default(10),sources:m(h([`high`,`mid`,`low`])).default([`high`,`mid`,`low`])}).strict(),de={enabled:!0,mode:`continuous`,preBuffer:10,sources:[`high`,`mid`,`low`]},fe=c().trim().min(1,`Detection label is required`),y=ae([d(),d()]),b=o({name:c().trim().min(1,`Zone Name is required`),points:y.array().min(3,`At least 3 points are required`),type:a([f(`intersect`),f(`contain`)]),filter:a([f(`include`),f(`exclude`)]),labels:fe.array(),isPrivacyMask:g(),color:c().trim().regex(/^#([0-9A-Fa-f]{3}){1,2}$/,`Must be a valid hex color (e.g. #FF0000 or #F00)`).default(`#df2a4c`)}).array(),x=o({name:c().trim().min(1,`Line Name is required`),points:ae([y,y]),direction:a([f(`both`),f(`a-to-b`),f(`b-to-a`)]),labels:fe.array(),color:c().trim().regex(/^#([0-9A-Fa-f]{3}){1,2}$/,`Must be a valid hex color (e.g. #FF0000 or #F00)`).default(`#df2a4c`)}).array(),pe=o({motion:o({resolution:a([f(`low`),f(`medium`),f(`high`)]),timeout:d().min(10,`Minimum 10 seconds`)}),object:o({confidence:d().min(.3,`Minimum 0.3`).max(1,`Maximum 1`),suppressStatic:g().default(!0)}),audio:o({minDecibels:d().min(-100,`Minimum -100 dBFS`).max(0,`Maximum 0 dBFS`),timeout:d().min(10,`Minimum 10 seconds`)}),face:o({confidence:d().min(0,`Minimum 0`).max(1,`Maximum 1`).default(.5)}).default({confidence:.5}),licensePlate:o({confidence:d().min(0,`Minimum 0`).max(1,`Maximum 1`).default(.9),minLength:d().int().min(1,`Minimum 1`).max(10,`Maximum 10`).default(4)}).default({confidence:.9,minLength:4}),sensor:o({timeout:d().min(10,`Minimum 10 seconds`),triggers:m(o({sensorType:c().trim().min(1,`Sensor type is required`),sensorName:c().trim().min(1,`Sensor name is required`),pluginId:c().trim().min(1,`Plugin ID is required`)})).default([])}),cascadeDetection:g().default(!0),cascadeTimeout:d().min(1,`Minimum 1 second`).max(300,`Maximum 300 seconds`).default(10),snooze:g().default(!1)}),me={enabled:!1,targetLabels:[`person`],minConfidence:.5,triggerDeadZone:.05,trackingSpeed:2,leadMs:1800,panRate:.85,returnToHome:!1,homeWaitMs:1e4},he=o({enabled:g().default(!1),targetLabels:c().trim().min(1,`Target label is required`).array().default([`person`]),minConfidence:d().min(.3,`Minimum 0.3`).max(1,`Maximum 1`).default(.5),triggerDeadZone:d().min(0,`Minimum 0`).max(.3,`Maximum 0.3`).default(.05),trackingSpeed:d().min(1,`Minimum 1`).max(5,`Maximum 5`).default(2),leadMs:d().min(0,`Minimum 0`).max(4e3,`Maximum 4000 ms`).default(1800),panRate:d().min(.1,`Minimum 0.1`).max(3,`Maximum 3`).default(.85),returnToHome:g().default(!1),homeWaitMs:d().min(1e3,`Minimum 1000 ms`).max(6e4,`Maximum 60000 ms`).default(1e4)}),S=a([f(`high-resolution`),f(`mid-resolution`),f(`low-resolution`),f(`snapshot`)]),ge=a([f(`high-resolution`),f(`mid-resolution`),f(`low-resolution`)]),_e=a([f(`bubble://`),f(`cui://`),f(`doorbird://`),f(`dvrip://`),f(`eseecloud://`),f(`ffmpeg:`),f(`flussonic://`),f(`gopro://`),f(`hass:`),f(`homekit://`),f(`http://`),f(`https://`),f(`httpx://`),f(`isapi://`),f(`ivideon:`),f(`kasa://`),f(`nest:`),f(`onvif://`),f(`ring:`),f(`roborock://`),f(`rtmp://`),f(`rtsp://`),f(`rtspx://`),f(`tapo://`),f(`tcp://`),f(`tuya://`),f(`xiaomi://`),f(`yandex:`),f(`webrtc:`),f(`webtorrent:`),f(`wyze://`)]).options.map(e=>e.value),ve=RegExp(`^(${_e.join(`|`)})`),C=c().refine(e=>{if(!ve.test(e))return!1;try{return new URL(e),!0}catch{return!1}},{message:`Invalid URL format or unsupported protocol`}),ye=o({_id:c().default(r()).transform(()=>r()),name:c().trim().min(1,`Camera Source Name is required`).transform(e=>e.replace(/ /g,`_`).toLowerCase()),role:S,useForSnapshot:g().default(!1),hotMode:g().default(!0),preload:g().default(!0),muted:g().default(!1),urls:C.array().min(1,`At least one valid URL is required`),childSourceId:c().trim().min(1,`Child Source ID is required`).optional()}).strict().transform(e=>e.role===`snapshot`?{...e,useForSnapshot:!1,hotMode:!1,preload:!1}:e),be=o({_id:c().default(r()).transform(()=>r()),name:c().trim().min(1,`Camera Source Name is required`).transform(e=>e.replace(/ /g,`_`).toLowerCase()),role:S,useForSnapshot:g().default(!1),hotMode:g().default(!0),preload:g().default(!0),muted:g().default(!1),urls:C.array().min(1,`At least one valid URL is required`),childSourceId:c().trim().min(1,`Child Source ID is required`).optional()}).strict().transform(e=>e.role===`snapshot`?{...e,useForSnapshot:!1,hotMode:!1,preload:!1}:e),w=o({id:c(),name:c().trim()}),T=o({motion:w.optional(),object:w.optional(),audio:w.optional(),face:w.optional(),licensePlate:w.optional(),ptz:w.optional(),battery:w.optional(),cameraController:w.optional(),clip:w.optional(),classifier:w.array().optional(),light:w.array().optional(),siren:w.array().optional(),switch:w.array().optional(),securitySystem:w.array().optional(),contact:w.array().optional(),doorbell:w.array().optional(),lock:w.array().optional(),temperature:w.array().optional(),humidity:w.array().optional(),occupancy:w.array().optional(),smoke:w.array().optional(),leak:w.array().optional(),garage:w.array().optional(),hub:w.array().optional()}).strict(),xe=a([f(`auto`),f(`mse`),f(`webrtc`),f(`webrtc/tcp`)]),Se=c().regex(/^\d+(?:\.\d+)?:\d+(?:\.\d+)?$/,`Use a width:height ratio, e.g. 16:9`).refine(e=>{let[t,n]=e.split(`:`).map(Number);return Number.isFinite(t)&&Number.isFinite(n)&&t>0&&n>0},`Both sides must be greater than 0`).transform(e=>e),E=o({fps:d().min(0,`Minimum 0 fps`).max(30,`Maximum 30 fps`),hqSnapshots:g().default(!1)}),D=a([f(`camera`),f(`doorbell`)]),O=o({streamingMode:xe,streamingSource:ge,aspectRatio:Se}),k=o({model:c().trim().optional(),manufacturer:c().trim().optional(),hardware:c().trim().optional(),serialNumber:c().trim().optional(),firmwareVersion:c().trim().optional(),supportUrl:c().trim().optional()}),Ce=o({id:c(),name:c().trim()}).strict(),A=o({autoRefresh:g().default(!0),ttl:d().min(10,`Minimum 10 seconds`).max(60,`Maximum 60 seconds`).default(50),interval:d().min(10,`Minimum 10 seconds`).max(60,`Maximum 60 seconds`).default(60)}).strict(),j=o({_id:c().default(r()).transform(()=>r()),nativeId:c().trim().optional(),pluginInfo:Ce.optional(),disabled:g().default(!1),name:c().trim().min(1,`Camera name is required`),room:c().trim().min(1,`Room is required`).default(`Default`),type:D.default(`camera`),isCloud:g().default(!1),snapshotSettings:A.default({autoRefresh:!0,ttl:50,interval:60}),info:k.default({model:`IP Camera`,manufacturer:`camera.ui`,hardware:`Camera`,serialNumber:`Unknown`,firmwareVersion:`Unknown`,supportUrl:`Unknown`}),sources:ye.array().refine(e=>e.some(e=>e.role===`high-resolution`||e.role===`mid-resolution`||e.role===`low-resolution`),{path:[`sources[].role`],message:`One of the roles "high-resolution", "mid-resolution" or "low-resolution" is required`}).refine(e=>e.filter(e=>e.useForSnapshot).length<=1,{message:`Only one source can be used for snapshot`,path:[`sources`]}).refine(e=>{let t=e.map(e=>e.role).filter(Boolean);return new Set(t).size===t.length},{message:`Each source role can be assigned to only one source`,path:[`sources`]}),plugins:w.array().default([]),assignments:T.default({}),interfaceSettings:O.default({streamingMode:`webrtc`,streamingSource:`high-resolution`,aspectRatio:`16:9`}),detectionZones:b.default([]),detectionLines:x.default([]),detectionSettings:pe.default({motion:{resolution:`low`,timeout:30},object:{confidence:.5,suppressStatic:!0},audio:{minDecibels:-40,timeout:30},face:{confidence:.5},licensePlate:{confidence:.9,minLength:4},sensor:{timeout:30,triggers:[]},cascadeDetection:!0,cascadeTimeout:10,snooze:!1}),ptzAutotrack:he.default(me),recordingSettings:ue.default(de),frameWorkerSettings:E.default({fps:10,hqSnapshots:!1})}).strict();j.transform(e=>{let t=e.sources.flatMap(e=>e.urls),n=e.detectionZones.length===0?[le()]:e.detectionZones;return e.isCloud||oe(t)?{...e,isCloud:!0,detectionZones:n}:{...e,detectionZones:n}});var we=o({disabled:g().optional(),type:D.optional(),name:c().trim().min(1,`Camera name is required`).optional(),room:c().trim().min(1,`Room is required`).optional(),isCloud:g().optional(),snapshotSettings:A.partial().optional(),info:k.partial().optional(),sources:be.array().refine(e=>e.some(e=>e.role===`high-resolution`||e.role===`mid-resolution`||e.role===`low-resolution`),{path:[`sources[].role`],message:`One of the roles "high-resolution", "mid-resolution" or "low-resolution" is required`}).refine(e=>e.filter(e=>e.useForSnapshot).length<=1,{message:`Only one source can be used for snapshot`,path:[`sources`]}).refine(e=>{let t=e.map(e=>e.role).filter(Boolean);return new Set(t).size===t.length},{message:`Each source role can be assigned to only one source`,path:[`sources`]}).optional(),plugins:w.array().optional(),assignments:T.partial().optional(),interfaceSettings:O.partial().optional(),detectionZones:b.optional(),detectionLines:x.optional(),detectionSettings:pe.partial().optional(),ptzAutotrack:he.partial().optional(),recordingSettings:ue.partial().optional(),frameWorkerSettings:E.partial().optional()}).strict().transform(e=>{if(e.sources){let t=e.sources.flatMap(e=>e.urls);if(e.isCloud===!0||oe(t))return{...e,isCloud:!0}}return e});o({url:c().trim().refine(e=>!/^\s*(exec|echo|expr):/i.test(e),`Command-execution stream sources are not allowed`)}).strict(),o({cameraname:c()}),o({cameraname:c(),sourcename:c()}),o({cameraid:c(),sourcename:c()}),o({cameraname:c(),pluginname:c()}),o({cameraname:c(),scope:c(),pluginname:c()}),o({cameraname:c(),pluginname:c(),sensorId:c()}),o({cameraname:c(),stableId:c()}),o({property:c(),value:i()}),o({cameraname:c(),scope:c(),pluginname:c(),sensorId:c()}),o({type:c().optional()}),o({video:p().optional(),audio:p().optional(),microphone:p().optional(),refresh:p().optional()}),o({forceNew:p().optional()}),o({name:c().trim().min(1,`Name is required`).max(100,`Name cannot be more than 100 characters`),url:_(`Must be a valid URL`).trim(),credentials:o({username:c().trim().min(1,`Username is required`),password:c().min(1,`Password is required`)})}),o({name:c().trim().min(1,`Name is required`).max(100,`Name cannot be more than 100 characters`).optional(),url:_(`Must be a valid URL`).trim().optional(),credentials:o({username:c().trim().min(1,`Username is required`),password:c().min(1,`Password is required`)}).nullable().optional()}),o({id:c().min(1,`ID is required`)}),o({code:c().trim().min(1,`Code is required`).optional()}).optional();var M=/^[\w-]+(\/[\w-]+)*$/,Te=o({enabled:g().optional(),mode:h([`external`,`embedded`]).optional(),broker:o({port:d().int().min(1).max(65535).optional(),username:c().trim().max(200,`Username cannot be more than 200 characters`).nullable().optional(),password:c().max(500,`Password cannot be more than 500 characters`).nullable().optional()}).strict().optional(),host:c().trim().min(1,`Host is required`).max(253,`Host cannot be more than 253 characters`).nullable().optional(),port:d().int().min(1).max(65535).optional(),protocol:h([`mqtt`,`mqtts`]).optional(),username:c().trim().max(200,`Username cannot be more than 200 characters`).nullable().optional(),password:c().max(500,`Password cannot be more than 500 characters`).nullable().optional(),clientId:c().trim().min(1,`Client ID is required`).max(128,`Client ID cannot be more than 128 characters`).optional(),topicPrefix:c().trim().min(1,`Topic prefix is required`).max(128,`Topic prefix cannot be more than 128 characters`).regex(M,`Topic prefix may only contain letters, numbers, "_", "-" and "/" separators`).optional(),tls:o({rejectUnauthorized:g().optional(),ca:c().trim().nullable().optional(),cert:c().trim().nullable().optional(),key:c().trim().nullable().optional()}).strict().optional(),haDiscovery:o({enabled:g().optional(),prefix:c().trim().min(1,`Discovery prefix is required`).max(128,`Discovery prefix cannot be more than 128 characters`).regex(M,`Discovery prefix may only contain letters, numbers, "_", "-" and "/" separators`).optional()}).strict().optional()}).strict(),Ee=/^((@[\w-.]*)\/)?(camera-ui-[\w-]*)$/,De=function(e){return e.READY=`ready`,e.STARTING=`starting`,e.STARTED=`started`,e.STOPPING=`stopping`,e.STOPPED=`stopped`,e.ERROR=`error`,e.UNKNOWN=`unknown`,e.DISABLED=`disabled`,e.INCOMPATIBLE=`incompatible`,e}({});function N(e){return e.mimetype!==void 0}function Oe(e){return N(e)?Buffer.byteLength(e._buf):e.size}function ke(e){return N(e)?e.mimetype:e.type}function P(e,t,n,r){return u().refine(t=>Oe(t)<=e,n).refine(e=>t.includes(ke(e)),r)}var Ae=o({start:s().optional(),page:s().optional(),pageSize:s().optional()}),F=[`image/jpeg`,`image/png`],je=1024*1024*2,I=[`video/mp4`,`video/quicktime`],L=1024*1024*10,R=[`audio/mpeg`,`audio/wav`,`audio/ogg`],z=1024*1024*2,B=()=>P(je,F,`Max file size is 2 MB`,`.jpeg and .png files are accepted`),V=u().transform(e=>JSON.parse(e.value)),H=u().transform(e=>JSON.parse(e.value)),Me=u().transform(e=>JSON.parse(e.value));o({pluginname:c().trim().refine(e=>Ee.test(e),`Not a valid plugin name`),pluginversion:c().trim().refine(e=>/^[a-z][\w-]*$/i.test(e)||/^v?\d+\.\d+\.\d+(?:[-+][\w.-]+)?$/i.test(e),`Not a valid plugin version (expected a dist-tag or exact semver)`).optional().default(`latest`)}).strict(),o({actionId:c(),payload:l()}).strict(),v(l(),l()),o({upload:B(),metadata:H,config:V}),o({upload:P(z,R,`Max file size is 2 MB`,`.mp3, .wav and .ogg files are accepted`),metadata:Me,config:V}),o({upload:P(L,I,`Max file size is 5 MB`,`.mp4 files are accepted`),config:V}),o({upload:B(),metadata:H,config:V}),o({upload:B(),metadata:H,config:V}),o({upload:B(),metadata:H,config:V}),o({pluginname:c()}),o({scope:c(),pluginname:c()}),Ae.extend({pluginname:c().trim().optional(),refresh:p().optional()}),o({removeStorage:p().optional()}),o({pluginversion:c().trim().optional()});var Ne=o({enabled:g().optional(),directEnabled:g().optional(),directMode:h([`cloudflare`,`customDomain`]).optional(),customDomain:o({url:_(`Must be a valid URL`).trim().nullable()}).strict().optional(),cloudflare:o({mode:h([`quick`,`token`,`managed`]).optional(),hostname:c().trim().min(1,`Hostname is required`).max(253,`Hostname cannot be more than 253 characters`).nullable().optional(),token:c().trim().min(1,`Token is required`).nullable().optional()}).strict().optional()}).strict().refine(e=>!(e.directMode===`customDomain`&&!e.customDomain?.url),{message:`Custom domain URL is required when directMode is "customDomain"`,path:[`customDomain`,`url`]}).refine(e=>!(e.cloudflare?.mode&&e.cloudflare.mode!==`quick`&&!e.cloudflare?.hostname),{message:`Hostname is required when cloudflare.mode is "token" or "managed"`,path:[`cloudflare`,`hostname`]});o({mode:h([`cloudflare`,`customDomain`])}).strict(),o({hostname:c().trim().min(1,`Hostname is required`).max(253,`Hostname cannot be more than 253 characters`).regex(/^[a-z0-9.-]+\.[a-z]{2,}$/i,`Invalid hostname`)}).strict(),o({name:c().trim().min(1,`Name is required`).max(100,`Name cannot be more than 100 characters`).optional()}).strict(),o({name:c().trim().min(1,`Name is required`).max(100,`Name cannot be more than 100 characters`).optional()}).strict(),o({name:c().trim().min(1,`Server name is required`).max(100,`Server name cannot be more than 100 characters`)}).strict(),o({version:c().trim().optional().default(`latest`)}).strict();var Pe=o({serverAddresses:a([re().trim(),te().trim()]).array().default([])}).strict();o({version:c().trim()}).strict(),v(c(),l()),o({key:c()}).strict(),o({key:c(),payload:l()}).strict();var Fe=[`de`,`en`],Ie=[`image/jpeg`,`image/jpg`,`image/png`],Le=1024*1024*5,U=o({index:d(),cameraId:c(),colSpan:d().optional(),rowSpan:d().optional(),x:d().optional(),y:d().optional()}),Re=a([f(1),f(4),f(6),f(7),f(9),f(10),f(12),f(13),f(15),f(16),f(20),f(26)]),ze=a([f(`dnd`),f(`view`)]),Be=o({_id:c().default(r()).transform(()=>r()),name:c().trim().min(1,`Layout name is required`),viewSize:Re,cameras:U.array(),type:ze});o({name:c().trim().min(1,`Layout name is required`),viewSize:Re,cameras:U.array()}).partial().optional();var Ve=o({views:Be.array()}),He=h(t.filter(e=>e.shortcutable).map(e=>String(e.type))),Ue=ee(`type`,[o({_id:c().default(r()).transform(()=>r()),type:f(`camera`),cameraId:c(),points:y}),o({_id:c().default(r()).transform(()=>r()),type:f(`sensor`),sensorType:He,sensorName:c(),sensorPluginId:c(),sensorCameraId:c(),points:y})]);a([o({type:f(`camera`),cameraId:c(),points:y}).partial(),o({type:f(`sensor`),sensorType:He,sensorName:c(),sensorPluginId:c(),sensorCameraId:c(),points:y}).partial()]).optional();var We=o({shortcuts:Ue.array()}),Ge=o({language:h([`auto`,...Fe]).optional(),camview:Ve,cameras:v(c().trim(),We)}),W=c().trim().min(10,`Password must be at least 10 characters long`).regex(/[A-Z]/,`Password must contain at least one uppercase letter`).regex(/[!@#$%^&*()_+\-=[\]{};':"\\|,.<>/?]/,`Password must contain at least one special character (!@#$%^&*()_+-=[]{};:'"\\|,.<>/?)`).max(32,`Password cannot be more than 32 characters`),Ke=o({_id:c().default(r()).transform(()=>r()),username:c().trim().min(1,`Username is required`),password:W,passwordConfirm:c().trim().min(1,`Please confirm your password`),role:a([f(`admin`),f(`user`)]),firstLogin:g().default(!0),preferences:Ge.default({language:`auto`,camview:{views:[]},cameras:{}})}).strict().refine(e=>e.password===e.passwordConfirm,{path:[`passwordConfirm`],message:`Passwords do not match`});o({username:c().trim().min(1,`Username is required`),password:c().trim().min(1,`Password is required`),kind:h([`native`,`web`]),persistent:g().default(!1),device:o({id:c().min(1,`Device id is required`).max(128,`Device id cannot be more than 128 characters`),name:c().trim().min(1,`Device name is required`).max(100,`Device name cannot be more than 100 characters`)})}).strict();var qe=o({username:c().trim().min(1,`Username is required`).optional(),password:W.optional(),passwordConfirm:c().trim().optional(),role:a([f(`admin`),f(`user`)]).optional(),upload:ie(P(Le,Ie,`Max file size is 5MB.`,`.jpg, .jpeg, .png files are accepted.`)),firstLogin:g().optional(),preferences:Ge.partial().optional()}).strict().refine(e=>e.password===e.passwordConfirm,{path:[`passwordConfirm`],message:`Passwords do not match`});o({username:c()}),o({username:c(),cameraname:c()}),o({username:c(),cameraname:c(),shortcutid:c()}),o({username:c(),viewid:c()}),o({username:c()});function Je(){let e={};for(let n of t)e[n.type]={category:n.category,assignmentKey:n.assignmentKey,multiProvider:n.multiProvider,isDetectionType:n.isDetectionType,...n.cascadeTrigger?{cascadeTrigger:n.cascadeTrigger}:{}};return e}var G=Je();Object.fromEntries(t.filter(e=>e.propertyCapabilities).map(e=>[e.type,e.propertyCapabilities]));function Ye(){return Object.entries(G).filter(([,e])=>e.multiProvider).map(([e])=>e)}function Xe(){return t.filter(e=>e.shortcutable).map(e=>e.type)}function Ze(){return Object.entries(G).filter(([,e])=>e.isDetectionType).map(([e])=>e)}function Qe(e){return G[e].assignmentKey}function $e(){return Object.entries(G).filter(([,e])=>e.category===n.Sensor&&!e.multiProvider).map(([e])=>e)}function et(){return Object.entries(G).filter(([,e])=>!e.multiProvider&&e.category!==n.Sensor).map(([e])=>e)}function tt(){return Object.entries(G).filter(([,e])=>e.multiProvider).map(([e])=>e)}function nt(e){return!G[e].multiProvider}Object.fromEntries(t.map(e=>[e.type,Object.keys(e.properties)]));var K=Object.fromEntries(t.map(e=>[e.type,e.properties]));function rt(e,t){return K[e]?.[t]}function it(e){let t=K[e];return t?Object.entries(t).filter(([,e])=>!e.internal).map(([e])=>e):[]}function at(e){let t=K[e];return t?Object.entries(t).filter(([,e])=>e.writable).map(([e])=>e):[]}new Set(Ye()),new Set(Ze());var ot=`cameraui.virtual`,st=t.filter(e=>e.virtual).map(e=>e.type);Object.fromEntries(t.filter(e=>e.virtual).map(e=>[e.type,e.virtual?.properties??{}])),Object.fromEntries(t.filter(e=>e.virtual?.capabilities).map(e=>[e.type,e.virtual?.capabilities]));var ct=o({cameraId:c().min(1,`Camera ID is required`),type:h(st),name:c().trim().min(1,`Name is required`).max(100,`Name cannot be more than 100 characters`)});o({displayName:c().trim().min(1,`Display name is required`).max(100,`Display name cannot be more than 100 characters`)}),o({id:c().min(1,`ID is required`)});function lt(e){return e.type===`string`&&!(`enum`in e)}function ut(e){return e.type===`number`}function dt(e){return e.type===`boolean`}function q(e){return e.type===`string`&&`enum`in e}function ft(e){return e.type===`array`}function J(e){return e.type===`button`}function Y(e){return e.type===`submit`}function pt(e){return lt(e)&&(!e.format||e.format!==`qrCode`&&e.format!==`image`)}var mt=(e,t)=>{let n=Q(t,e.key),r=e.value;switch(e.operator??`eq`){case`eq`:return n===r;case`neq`:return n==null||n===``?!1:n!==r;case`gt`:return typeof n==`number`&&typeof r==`number`&&n>r;case`lt`:return typeof n==`number`&&typeof r==`number`&&n<r;case`in`:return(Array.isArray(r)?r:[r]).includes(n);case`nin`:return n==null||n===``?!1:!(Array.isArray(r)?r:[r]).includes(n);default:return!0}};function X(e,t){return Array.isArray(e)?e.every(e=>mt(e,t)):mt(e,t)}function ht(t,n){if(!t||Object.keys(t).length===0)return!0;let r=n.filter(e=>!J(e)&&!Y(e));for(let n of r){let r=Q(t,n.key),i=Z(n);if(r!==void 0&&!e(r,i,!0))return!1}return!0}function Z(e){if(`defaultValue`in e&&e.defaultValue!==void 0)return e.defaultValue;switch(e.type){case`string`:return q(e)?e.multiple?[]:e.required?e.enum[0]:``:``;case`number`:return 0;case`boolean`:return!1;case`array`:return[];default:return}}function gt(e){let t={};for(let n of e)J(n)||Y(n)||(t[n.key]=Z(n));return t}function _t(e){return e.split(`.`).reduce((e,t)=>{if(t.includes(`[`)){let[n,r]=t.split(`[`);e.push(n,r.slice(0,-1))}else e.push(t);return e},[])}function vt(e){return!isNaN(Number(e))}function Q(e={},t){if(!t.includes(`.`)&&!t.includes(`[`))return e[t];let n=e;for(let e of _t(t)){if(n==null)return;n=n[e]}return n}function yt(e,t,n){if(!t.includes(`.`)&&!t.includes(`[`)){e[t]=n;return}let r=_t(t),i=r.pop();if(!i)return;let a=e;for(let e=0;e<r.length;e++){let t=r[e];(typeof a[t]!=`object`||a[t]===null)&&(a[t]=vt(r[e+1]??i)?[]:{}),a=a[t]}a[i]=n}function bt(e,t){let n={};for(let r of e)if(`store`in r&&r.store&&!J(r)&&!Y(r)){let e=Q(t,r.key);e!==void 0&&(n[r.key]=e)}return n}function xt(e,t){return t?e.filter(e=>`group`in e&&e.group===t):e}function St(e,t){let n=xt(e,t);return n.length>0&&n.every(e=>`readonly`in e&&e.readonly)}function Ct(e,t){let n=xt(e,t);return n.length>0&&n.some(e=>`store`in e&&e.store)}function wt(e,t){if(!t)return!0;let n={"date-time":e=>/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(.\d+)?(Z|[+-]\d{2}:\d{2})?$/.test(e),date:e=>/^\d{4}-\d{2}-\d{2}$/.test(e),time:e=>/^([01]?[0-9]|2[0-3]):([0-5][0-9])(:([0-5][0-9]))?$/.test(e),email:e=>/^\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Z|a-z]{2,7}\b$/.test(e),uuid:e=>/^[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-5][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}$/.test(e),ipv4:e=>/^(?:[0-9]{1,3}\.){3}[0-9]{1,3}$/.test(e),ipv6:e=>/^\s*([0-9a-fA-F]{1,4}:){7}([0-9a-fA-F]{1,4})\s*$/.test(e)};return t in n?n[t](e):!0}function $(e){if(J(e)||Y(e))return l();switch(e.type){case`string`:if(q(e))if(e.multiple){let t=m(c().trim().refine(t=>e.enum.includes(t),{error:`Invalid selection`}));return e.required&&(t=t.min(1,{error:`Required`})),e.required?t:t.optional()}else{let t=h(e.enum);return e.required?t:t.optional()}let t=c().trim();return e.required&&(t=t.nonempty(`Required`)),e.minLength!==void 0&&(t=t.min(e.minLength)),e.maxLength!==void 0&&(t=t.max(e.maxLength)),e.format&&(t=t.refine(t=>!t||t.trim()===``||wt(t,e.format),{message:`Invalid ${e.format} format`})),e.required?t:t.optional();case`number`:let n=d();return e.minimum!==void 0&&(n=n.min(e.minimum)),e.maximum!==void 0&&(n=n.max(e.maximum)),e.required&&(n=n.refine(e=>e!=null,{error:`Required`})),e.required?n:n.optional();case`boolean`:return e.required?g():g().optional();case`array`:let r=m(e.items?$(e.items):l());return e.required?r:r.optional();default:return e.required?l():l().optional()}}var Tt=(e,t,n)=>t.filter(e=>`group`in e&&e.group===n).some(t=>{let n=e[t.key];return n!=null&&n!==``});function Et(e){let t={},n=new Set;e.forEach(e=>{`group`in e&&e.group&&n.add(e.group)}),e.forEach(e=>{if(!J(e)&&!Y(e)){let n=`group`in e&&e.group,r=`condition`in e&&e.condition;(n||r)&&e.required?t[e.key]=$({...e,required:!1}):t[e.key]=$(e)}});let r=o(t),i=e.filter(e=>`condition`in e&&e.condition&&`required`in e&&e.required&&!J(e)&&!Y(e));return(n.size>0||i.length>0)&&(r=r.superRefine((t,r)=>{for(let i of n)if(Tt(t,e,i)){let n=e.filter(e=>`group`in e&&e.group===i);for(let e of n)if(`required`in e&&e.required){if(`condition`in e&&e.condition&&!X(e.condition,t))continue;let n=t[e.key];(n==null||n===``)&&r.addIssue({code:ne.custom,message:`Required`,path:[e.key]})}}for(let e of i)if(!(`group`in e&&e.group)&&`condition`in e&&e.condition&&X(e.condition,t)){let n=t[e.key];(n==null||n===``)&&r.addIssue({code:ne.custom,message:`Required`,path:[e.key]})}})),r}export{at as A,R as B,tt as C,it as D,$e as E,W as F,De as G,F as H,qe as I,j as J,Te as K,Be as L,Le as M,Fe as N,rt as O,Ke as P,we as Q,Pe as R,st as S,et as T,z as U,I as V,L as W,b as X,x as Y,S as Z,Ct as _,Et as a,G as b,dt as c,q as d,ut as f,St as g,pt as h,bt as i,nt as j,Xe as k,J as l,Y as m,gt as n,Q as o,lt as p,_e as q,Z as r,ft as s,X as t,ht as u,yt as v,Qe as w,ot as x,ct as y,Ne as z};
@@ -1 +1 @@
1
- import{ht as e,nn as t}from"./api-ChlkJnEG.js";import{Rn as n,Tr as r,Wn as i,bn as a,dn as o,fn as s,ln as c,lr as l,pn as u,un as d,xr as f}from"./vendor-CdGy-Xet.js";import{n as p}from"./lightbulb-outline-BGFG7wv-.js";import{t as m}from"./bell-ring-D0h1GDrU.js";import{n as h,t as g}from"./webhook-CQl989bo.js";import{i as _,n as v,r as y}from"./CuiPluginTrustBadge-4xCyAUBM.js";var b={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function x(e,t){return n(),u(`svg`,b,[...t[0]||=[d(`path`,{fill:`currentColor`,d:`M15 13h1.5v2.82l2.44 1.41l-.75 1.3L15 16.69zm4-5H5v11h4.67c-.43-.91-.67-1.93-.67-3a7 7 0 0 1 7-7c1.07 0 2.09.24 3 .67zM5 21a2 2 0 0 1-2-2V5c0-1.11.89-2 2-2h1V1h2v2h8V1h2v2h1a2 2 0 0 1 2 2v6.1c1.24 1.26 2 2.99 2 4.9a7 7 0 0 1-7 7c-1.91 0-3.64-.76-4.9-2zm11-9.85A4.85 4.85 0 0 0 11.15 16c0 2.68 2.17 4.85 4.85 4.85A4.85 4.85 0 0 0 20.85 16c0-2.68-2.17-4.85-4.85-4.85`},null,-1)]])}var S=l({name:`mdi-calendar-clock`,render:x}),C={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function w(e,t){return n(),u(`svg`,C,[...t[0]||=[d(`path`,{fill:`currentColor`,d:`m20.84 2.18l-3.93.78l2.74 3.54l1.97-.4zm-6.87 1.36L12 3.93l2.75 3.53l1.96-.39zm-4.9.96l-1.97.41l2.75 3.53l1.96-.39zm-4.91 1l-.98.19a2 2 0 0 0-1.57 2.35L2 10l4.9-.97zM2 10v10a2 2 0 0 0 2 2h16c1.11 0 2-.89 2-2V10z`},null,-1)]])}var T=l({name:`mdi-movie-open`,render:w}),E={notification:{icon:m,labelKey:`components.automation_store.category_notification`},recording:{icon:y,labelKey:`components.automation_store.category_recording`},presence:{icon:h,labelKey:`components.automation_store.category_presence`},detection:{icon:e,labelKey:`components.automation_store.category_detection`},schedule:{icon:S,labelKey:`components.automation_store.category_schedule`},webhook:{icon:g,labelKey:`components.automation_store.category_webhook`},mqtt:{icon:p,labelKey:`components.automation_store.category_mqtt`},scene:{icon:T,labelKey:`components.automation_store.category_scene`},utility:{icon:v,labelKey:`components.automation_store.category_utility`},other:{icon:_,labelKey:`components.automation_store.category_other`}},D=[`notification`,`recording`,`presence`,`detection`,`schedule`,`webhook`,`mqtt`,`scene`,`utility`,`other`];function O(e){return e&&e in E?E[e]:E.other}var k={key:0,class:`cui-category-chip`},A={class:`cui-category-chip-label`},j=t(a({__name:`CuiAutomationCategoryChip`,props:{category:{}},setup(e){let t=e,a=c(()=>O(t.category));return(t,c)=>e.category?(n(),u(`span`,k,[(n(),o(i(f(a).icon),{class:`cui-category-chip-icon`})),d(`span`,A,r(t.$t(f(a).labelKey)),1)])):s(``,!0)}}),[[`__scopeId`,`data-v-ea2e312f`]]),M={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function N(e,t){return n(),u(`svg`,M,[...t[0]||=[d(`path`,{fill:`currentColor`,d:`M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.62L12 2L9.19 8.62L2 9.24l5.45 4.73L5.82 21z`},null,-1)]])}var P=l({name:`mdi-star`,render:N}),F={camera:`components.automation_store.input_camera`,plugin:`components.automation_store.input_plugin`,sensor:`components.automation_store.input_sensor`,"notification-targets":`components.automation_store.input_notification_targets`,"system-target":`components.automation_store.input_system_target`,text:`components.automation_store.input_text`};function I(e,t){return e?.length?e.map(e=>t(F[e.type],{count:e.count??1})):[]}export{D as a,E as i,P as n,j as r,I as t};
1
+ import{ht as e,nn as t}from"./api-CdJDEL3z.js";import{Rn as n,Tr as r,Wn as i,bn as a,dn as o,fn as s,ln as c,lr as l,pn as u,un as d,xr as f}from"./vendor-CdGy-Xet.js";import{n as p}from"./lightbulb-outline-BGFG7wv-.js";import{t as m}from"./bell-ring-D0h1GDrU.js";import{n as h,t as g}from"./webhook-CQl989bo.js";import{i as _,n as v,r as y}from"./CuiPluginTrustBadge-rZePqROi.js";var b={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function x(e,t){return n(),u(`svg`,b,[...t[0]||=[d(`path`,{fill:`currentColor`,d:`M15 13h1.5v2.82l2.44 1.41l-.75 1.3L15 16.69zm4-5H5v11h4.67c-.43-.91-.67-1.93-.67-3a7 7 0 0 1 7-7c1.07 0 2.09.24 3 .67zM5 21a2 2 0 0 1-2-2V5c0-1.11.89-2 2-2h1V1h2v2h8V1h2v2h1a2 2 0 0 1 2 2v6.1c1.24 1.26 2 2.99 2 4.9a7 7 0 0 1-7 7c-1.91 0-3.64-.76-4.9-2zm11-9.85A4.85 4.85 0 0 0 11.15 16c0 2.68 2.17 4.85 4.85 4.85A4.85 4.85 0 0 0 20.85 16c0-2.68-2.17-4.85-4.85-4.85`},null,-1)]])}var S=l({name:`mdi-calendar-clock`,render:x}),C={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function w(e,t){return n(),u(`svg`,C,[...t[0]||=[d(`path`,{fill:`currentColor`,d:`m20.84 2.18l-3.93.78l2.74 3.54l1.97-.4zm-6.87 1.36L12 3.93l2.75 3.53l1.96-.39zm-4.9.96l-1.97.41l2.75 3.53l1.96-.39zm-4.91 1l-.98.19a2 2 0 0 0-1.57 2.35L2 10l4.9-.97zM2 10v10a2 2 0 0 0 2 2h16c1.11 0 2-.89 2-2V10z`},null,-1)]])}var T=l({name:`mdi-movie-open`,render:w}),E={notification:{icon:m,labelKey:`components.automation_store.category_notification`},recording:{icon:y,labelKey:`components.automation_store.category_recording`},presence:{icon:h,labelKey:`components.automation_store.category_presence`},detection:{icon:e,labelKey:`components.automation_store.category_detection`},schedule:{icon:S,labelKey:`components.automation_store.category_schedule`},webhook:{icon:g,labelKey:`components.automation_store.category_webhook`},mqtt:{icon:p,labelKey:`components.automation_store.category_mqtt`},scene:{icon:T,labelKey:`components.automation_store.category_scene`},utility:{icon:v,labelKey:`components.automation_store.category_utility`},other:{icon:_,labelKey:`components.automation_store.category_other`}},D=[`notification`,`recording`,`presence`,`detection`,`schedule`,`webhook`,`mqtt`,`scene`,`utility`,`other`];function O(e){return e&&e in E?E[e]:E.other}var k={key:0,class:`cui-category-chip`},A={class:`cui-category-chip-label`},j=t(a({__name:`CuiAutomationCategoryChip`,props:{category:{}},setup(e){let t=e,a=c(()=>O(t.category));return(t,c)=>e.category?(n(),u(`span`,k,[(n(),o(i(f(a).icon),{class:`cui-category-chip-icon`})),d(`span`,A,r(t.$t(f(a).labelKey)),1)])):s(``,!0)}}),[[`__scopeId`,`data-v-ea2e312f`]]),M={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function N(e,t){return n(),u(`svg`,M,[...t[0]||=[d(`path`,{fill:`currentColor`,d:`M12 17.27L18.18 21l-1.64-7.03L22 9.24l-7.19-.62L12 2L9.19 8.62L2 9.24l5.45 4.73L5.82 21z`},null,-1)]])}var P=l({name:`mdi-star`,render:N}),F={camera:`components.automation_store.input_camera`,plugin:`components.automation_store.input_plugin`,sensor:`components.automation_store.input_sensor`,"notification-targets":`components.automation_store.input_notification_targets`,"system-target":`components.automation_store.input_system_target`,text:`components.automation_store.input_text`};function I(e,t){return e?.length?e.map(e=>t(F[e.type],{count:e.count??1})):[]}export{D as a,E as i,P as n,j as r,I as t};
@@ -1 +1 @@
1
- import{K as e}from"./api-ChlkJnEG.js";import{pr as t}from"./vendor-CdGy-Xet.js";function n(){let{electron:n}=e(),r=t(null);return{uiVersion:`2.0.0`,appVersion:r,nativeVersion:t(null),refreshAppVersion:async()=>{if(n)try{let e=await n.invoke(`get-app-version`);r.value=typeof e==`string`?e:null}catch{r.value=null}}}}export{n as t};
1
+ import{K as e}from"./api-CdJDEL3z.js";import{pr as t}from"./vendor-CdGy-Xet.js";function n(){let{electron:n}=e(),r=t(null);return{uiVersion:`2.0.0`,appVersion:r,nativeVersion:t(null),refreshAppVersion:async()=>{if(n)try{let e=await n.invoke(`get-app-version`);r.value=typeof e==`string`?e:null}catch{r.value=null}}}}export{n as t};
@@ -1 +1 @@
1
- import{$n as e,Gn as t,h as n,s as r}from"./api-ChlkJnEG.js";import{pr as i}from"./vendor-CdGy-Xet.js";import{a}from"./server-BBvLLocT.js";import{n as o}from"./useServerRestart-DjaOOudi.js";var s=3e5;async function c(t){return(await e.post(`/backup/download`,{localStorage:t},{responseType:`arraybuffer`,timeout:s})).data}async function l(t,n){return(await e.post(`/backup/restore`,t,{timeout:s,onUploadProgress:e=>{e.total&&n?.(Math.round(e.loaded/e.total*100))}})).data}async function u(){return(await e.get(`/backup/scheduler`)).data}async function d(t){return(await e.patch(`/backup/scheduler`,t)).data}async function f(){return(await e.post(`/backup/scheduler/run`)).data}async function p(t){return(await e.get(`/backup/scheduler/backups/${encodeURIComponent(t)}`,{responseType:`arraybuffer`,timeout:s})).data}async function m(t){await e.delete(`/backup/scheduler/backups/${encodeURIComponent(t)}`)}var h=i(!1),g=i(`idle`),_=i(0),v=h;function y(e){e.theme&&localStorage.setItem(`theme`,JSON.stringify(e.theme)),e.language&&localStorage.setItem(`language`,e.language),e.ui&&localStorage.setItem(`ui`,JSON.stringify(e.ui))}function b(){async function e(e){let i=t();h.value=!0,g.value=`uploading`,_.value=0;try{let t=new FormData;t.append(`upload`,e),y(await l(t,e=>{_.value=e,e>=100&&(g.value=`restoring`)}))}catch(e){return h.value=!1,g.value=`idle`,i.add({severity:`error`,detail:r(e),life:3e3}),!1}g.value=`restarting`;let{beginServerRestart:s}=o();return s(),await a().catch(()=>{}),await n().logout(),h.value=!1,g.value=`idle`,!0}return{active:h,phase:g,uploadPercent:_,restoreLocalStorage:y,run:e}}export{p as a,f as c,c as i,b as n,u as o,m as r,d as s,v as t};
1
+ import{$n as e,Gn as t,h as n,s as r}from"./api-CdJDEL3z.js";import{pr as i}from"./vendor-CdGy-Xet.js";import{a}from"./server-_ByAktOF.js";import{n as o}from"./useServerRestart-lPp2ZiX-.js";var s=3e5;async function c(t){return(await e.post(`/backup/download`,{localStorage:t},{responseType:`arraybuffer`,timeout:s})).data}async function l(t,n){return(await e.post(`/backup/restore`,t,{timeout:s,onUploadProgress:e=>{e.total&&n?.(Math.round(e.loaded/e.total*100))}})).data}async function u(){return(await e.get(`/backup/scheduler`)).data}async function d(t){return(await e.patch(`/backup/scheduler`,t)).data}async function f(){return(await e.post(`/backup/scheduler/run`)).data}async function p(t){return(await e.get(`/backup/scheduler/backups/${encodeURIComponent(t)}`,{responseType:`arraybuffer`,timeout:s})).data}async function m(t){await e.delete(`/backup/scheduler/backups/${encodeURIComponent(t)}`)}var h=i(!1),g=i(`idle`),_=i(0),v=h;function y(e){e.theme&&localStorage.setItem(`theme`,JSON.stringify(e.theme)),e.language&&localStorage.setItem(`language`,e.language),e.ui&&localStorage.setItem(`ui`,JSON.stringify(e.ui))}function b(){async function e(e){let i=t();h.value=!0,g.value=`uploading`,_.value=0;try{let t=new FormData;t.append(`upload`,e),y(await l(t,e=>{_.value=e,e>=100&&(g.value=`restoring`)}))}catch(e){return h.value=!1,g.value=`idle`,i.add({severity:`error`,detail:r(e),life:3e3}),!1}g.value=`restarting`;let{beginServerRestart:s}=o();return s(),await a().catch(()=>{}),await n().logout(),h.value=!1,g.value=`idle`,!0}return{active:h,phase:g,uploadPercent:_,restoreLocalStorage:y,run:e}}export{p as a,f as c,c as i,b as n,u as o,m as r,d as s,v as t};
@@ -1 +1 @@
1
- import{Tr as e,bt as t,kr as n}from"./vendor-cameraui-D7o3alq7.js";import{nt as r}from"./api-ChlkJnEG.js";import{ln as i}from"./vendor-CdGy-Xet.js";import{A as a,D as o,b as s,w as c}from"./types-ByD7R6WC.js";function l(){let{data:e}=new r().getCamerasQuery({page:1,pageSize:-1});function t(t){return e.value?.result?.find(e=>e._id===t)?.name}return{cameraName:t}}function u(){let l=new r,{t:u}=n(),{data:d}=l.getCamerasQuery({page:1,pageSize:-1}),f=i(()=>d.value?.result??[]),p=i(()=>f.value.map(e=>({label:e.name,value:e._id})));function m(t){let n=f.value.find(e=>e._id===t);return n?.assignments?Object.values(e).filter(e=>{let t=c(e),r=n.assignments[t];return r?!Array.isArray(r)||r.length>0:!1}).map(e=>{let t=c(e),r=n.assignments[t];return{label:e,value:e,meta:s[e],hasVirtual:Array.isArray(r)&&r.some(e=>e.id===`cameraui.virtual`)}}):[]}function h(e,n){let{sensors:r,isLoading:a}=t(e,n);return{instanceOptions:i(()=>r.value.map(e=>({label:e.displayName.value||e.name,sensorName:e.name,pluginId:e.pluginId}))),isLoading:a}}function g(e,t=`observable`){return(t===`writable`?a(e):o(e)).map(e=>({label:u(`components.automation_nodes.sensor_property_${e}`),value:e}))}return{cameras:f,cameraOptions:p,getSensorTypes:m,useSensorInstances:h,getPropertiesForSensor:g}}export{u as n,l as t};
1
+ import{Tr as e,bt as t,kr as n}from"./vendor-cameraui-Bq-hQsT7.js";import{nt as r}from"./api-CdJDEL3z.js";import{ln as i}from"./vendor-CdGy-Xet.js";import{A as a,D as o,b as s,w as c}from"./types-CGqXKLKp.js";function l(){let{data:e}=new r().getCamerasQuery({page:1,pageSize:-1});function t(t){return e.value?.result?.find(e=>e._id===t)?.name}return{cameraName:t}}function u(){let l=new r,{t:u}=n(),{data:d}=l.getCamerasQuery({page:1,pageSize:-1}),f=i(()=>d.value?.result??[]),p=i(()=>f.value.map(e=>({label:e.name,value:e._id})));function m(t){let n=f.value.find(e=>e._id===t);return n?.assignments?Object.values(e).filter(e=>{let t=c(e),r=n.assignments[t];return r?!Array.isArray(r)||r.length>0:!1}).map(e=>{let t=c(e),r=n.assignments[t];return{label:e,value:e,meta:s[e],hasVirtual:Array.isArray(r)&&r.some(e=>e.id===`cameraui.virtual`)}}):[]}function h(e,n){let{sensors:r,isLoading:a}=t(e,n);return{instanceOptions:i(()=>r.value.map(e=>({label:e.displayName.value||e.name,sensorName:e.name,pluginId:e.pluginId}))),isLoading:a}}function g(e,t=`observable`){return(t===`writable`?a(e):o(e)).map(e=>({label:u(`components.automation_nodes.sensor_property_${e}`),value:e}))}return{cameras:f,cameraOptions:p,getSensorTypes:m,useSensorInstances:h,getPropertiesForSensor:g}}export{u as n,l as t};
@@ -1,4 +1,4 @@
1
- import{Kr as e,Ot as t,Pt as n,Ur as r,_i as i,hi as a,kr as o}from"./vendor-cameraui-D7o3alq7.js";import{Gn as s,Ln as c,a as l,an as u,i as d,nn as f}from"./api-ChlkJnEG.js";import{In as p,Ln as m,Qn as h,Rn as g,Sr as _,Xn as v,bn as y,dn as b,gr as x,ln as ee,lr as S,nr as te,pn as C,pr as w,tr as ne,un as T,vn as re,xr as E,yr as ie}from"./vendor-CdGy-Xet.js";import{a as ae,i as oe,n as se,r as ce,t as le}from"./vendor-xterm-IIYDrBG1.js";var D={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function O(e,t){return g(),C(`svg`,D,[...t[0]||=[T(`path`,{fill:`currentColor`,d:`M19 21H8V7h11m0-2H8a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h11a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2m-3-4H4a2 2 0 0 0-2 2v14h2V3h12z`},null,-1)]])}var k=S({name:`mdi-content-copy`,render:O}),A=f(y({__name:`CuiConsole`,props:{options:{default:()=>({fontSize:14})},ignoreBreakpoint:{type:Boolean}},emits:[`resize`],setup(c,{expose:f,emit:y}){let S=c,T=y,{smBreakpoint:D}=u(),{t:O}=o(),A=s(),{options:j,ignoreBreakpoint:ue}=ie(S),de={fontSize:14,scrollback:5e3,allowTransparency:!1,smoothScrollDuration:0,disableStdin:!0,allowProposedApi:!0},M=v(`terminalContainerRef`),N=w(0),P=x(null),F=w(!1),I=w(!1),L=null,R=null,z=null,B=null,V,H=``,U=!1,W=!0,G=r(M),fe=ee(()=>{if(!P.value)return!0;let e=P.value.buffer.active.length-P.value.rows;return N.value>=e});function K(){P.value&&(N.value=P.value.buffer.active.viewportY)}function pe(){!P.value||!L||(L.fit(),K(),P.value.cols&&T(`resize`,P.value.cols))}function q(){pe(),P.value?.scrollToBottom(),K()}let J=a(K,16),Y=a(q,100),{start:me,stop:he,isPending:ge}=i(()=>{P.value&&H&&(P.value.write(H),H=``,J())},16,{immediate:!1});function _e(e){if(W){if(e=e.replace(/^[\r\n]+/,``),!e)return;W=!1}U&&=(H+=`
1
+ import{Kr as e,Ot as t,Pt as n,Ur as r,_i as i,hi as a,kr as o}from"./vendor-cameraui-Bq-hQsT7.js";import{Gn as s,Ln as c,a as l,an as u,i as d,nn as f}from"./api-CdJDEL3z.js";import{In as p,Ln as m,Qn as h,Rn as g,Sr as _,Xn as v,bn as y,dn as b,gr as x,ln as ee,lr as S,nr as te,pn as C,pr as w,tr as ne,un as T,vn as re,xr as E,yr as ie}from"./vendor-CdGy-Xet.js";import{a as ae,i as oe,n as se,r as ce,t as le}from"./vendor-xterm-IIYDrBG1.js";var D={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function O(e,t){return g(),C(`svg`,D,[...t[0]||=[T(`path`,{fill:`currentColor`,d:`M19 21H8V7h11m0-2H8a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h11a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2m-3-4H4a2 2 0 0 0-2 2v14h2V3h12z`},null,-1)]])}var k=S({name:`mdi-content-copy`,render:O}),A=f(y({__name:`CuiConsole`,props:{options:{default:()=>({fontSize:14})},ignoreBreakpoint:{type:Boolean}},emits:[`resize`],setup(c,{expose:f,emit:y}){let S=c,T=y,{smBreakpoint:D}=u(),{t:O}=o(),A=s(),{options:j,ignoreBreakpoint:ue}=ie(S),de={fontSize:14,scrollback:5e3,allowTransparency:!1,smoothScrollDuration:0,disableStdin:!0,allowProposedApi:!0},M=v(`terminalContainerRef`),N=w(0),P=x(null),F=w(!1),I=w(!1),L=null,R=null,z=null,B=null,V,H=``,U=!1,W=!0,G=r(M),fe=ee(()=>{if(!P.value)return!0;let e=P.value.buffer.active.length-P.value.rows;return N.value>=e});function K(){P.value&&(N.value=P.value.buffer.active.viewportY)}function pe(){!P.value||!L||(L.fit(),K(),P.value.cols&&T(`resize`,P.value.cols))}function q(){pe(),P.value?.scrollToBottom(),K()}let J=a(K,16),Y=a(q,100),{start:me,stop:he,isPending:ge}=i(()=>{P.value&&H&&(P.value.write(H),H=``,J())},16,{immediate:!1});function _e(e){if(W){if(e=e.replace(/^[\r\n]+/,``),!e)return;W=!1}U&&=(H+=`
2
2
  `,!1),e.endsWith(`
3
3
  `)?(H+=e.slice(0,-1),U=!0):e.endsWith(`\r
4
4
  `)?(H+=e.slice(0,-2),U=!0):H+=e,ge.value||me()}function ve(){requestAnimationFrame(()=>{P.value?.scrollToBottom(),J()})}function ye(){he(),H=``,U=!1,W=!0,P.value?.reset(),J()}function be(){if(!P.value)return``;let e=P.value.buffer.active,t=[];for(let n=0;n<e.length;n++)t.push(e.getLine(n)?.translateToString(!0)??``);return t.join(`
@@ -1 +1 @@
1
- import{qn as e}from"./api-ChlkJnEG.js";import{Qn as t,ir as n,pr as r}from"./vendor-CdGy-Xet.js";var i=r(!1),a=null,o;function s(){a||(a=n(!0),a.run(()=>{t(e().bannerMode,e=>{e!==null&&i.value&&(clearTimeout(o),i.value=!1)})}));function r(){i.value=!0,clearTimeout(o),o=setTimeout(()=>{i.value=!1},15e3)}return{restarting:i,beginServerRestart:r}}export{s as n,i as t};
1
+ import{qn as e}from"./api-CdJDEL3z.js";import{Qn as t,ir as n,pr as r}from"./vendor-CdGy-Xet.js";var i=r(!1),a=null,o;function s(){a||(a=n(!0),a.run(()=>{t(e().bannerMode,e=>{e!==null&&i.value&&(clearTimeout(o),i.value=!1)})}));function r(){i.value=!0,clearTimeout(o),o=setTimeout(()=>{i.value=!1},15e3)}return{restarting:i,beginServerRestart:r}}export{s as n,i as t};
@@ -1 +1 @@
1
- import{Ln as e}from"./api-ChlkJnEG.js";import{dr as t,ir as n,ln as r}from"./vendor-CdGy-Xet.js";var i=1e4,a=t({streamStatus:{}}),o=null,s=null,c;function l(){s?.emit(`get-stream-status`)}function u(){return s||(o=n(!0),o.run(()=>{let t=e(`/camera.ui`);s=t,t.on(`stream-status`,e=>{a.streamStatus=e}),t.onReady(()=>{l()})}),c||=setInterval(l,i),s)}function d(e){let t=Object.values(e);if(t.length===0)return`idle`;let n=t.filter(e=>e===`connected`).length,r=t.filter(e=>e===`error`).length,i=t.filter(e=>e===`connecting`).length;return n===t.length?`connected`:r===t.length?`error`:i>0&&n===0&&r===0?`connecting`:n>0&&(r>0||t.some(e=>e===`idle`))?`partial`:n>0?`connected`:i>0?`connecting`:`idle`}function f(){function e(){u()}function t(){}function n(e){let t=a.streamStatus[e];return t?d(t):`idle`}function i(e){return a.streamStatus[e]}function o(e,t){return a.streamStatus[e]?.[t]??`idle`}return{streamStatus:r(()=>a.streamStatus),getCameraStatus:n,getCameraSources:i,getSourceStatus:o,connect:e,disconnect:t,refresh:l}}export{f as t};
1
+ import{Ln as e}from"./api-CdJDEL3z.js";import{dr as t,ir as n,ln as r}from"./vendor-CdGy-Xet.js";var i=1e4,a=t({streamStatus:{}}),o=null,s=null,c;function l(){s?.emit(`get-stream-status`)}function u(){return s||(o=n(!0),o.run(()=>{let t=e(`/camera.ui`);s=t,t.on(`stream-status`,e=>{a.streamStatus=e}),t.onReady(()=>{l()})}),c||=setInterval(l,i),s)}function d(e){let t=Object.values(e);if(t.length===0)return`idle`;let n=t.filter(e=>e===`connected`).length,r=t.filter(e=>e===`error`).length,i=t.filter(e=>e===`connecting`).length;return n===t.length?`connected`:r===t.length?`error`:i>0&&n===0&&r===0?`connecting`:n>0&&(r>0||t.some(e=>e===`idle`))?`partial`:n>0?`connected`:i>0?`connecting`:`idle`}function f(){function e(){u()}function t(){}function n(e){let t=a.streamStatus[e];return t?d(t):`idle`}function i(e){return a.streamStatus[e]}function o(e,t){return a.streamStatus[e]?.[t]??`idle`}return{streamStatus:r(()=>a.streamStatus),getCameraStatus:n,getCameraSources:i,getSourceStatus:o,connect:e,disconnect:t,refresh:l}}export{f as t};