@camera.ui/server 0.0.118 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +22 -0
- package/dist/interface/assets/{404-CSM1LQTy.js → 404-DJX3UbV-.js} +1 -1
- package/dist/interface/assets/{About-DW0VRkIT.js → About-DQ6WSO7r.js} +1 -1
- package/dist/interface/assets/Adminpanel-DxLW1rCs.js +1 -0
- package/dist/interface/assets/{Automation-B7VrswCa.js → Automation-BcVjslEh.js} +2 -2
- package/dist/interface/assets/{AutomationImport-DcYlyZox.js → AutomationImport-5iVVujX3.js} +2 -2
- package/dist/interface/assets/{AutomationStore-D8581gkV.js → AutomationStore-DhqKuRyE.js} +2 -2
- package/dist/interface/assets/{AutomationStoreDetail-B9wqU6x2.js → AutomationStoreDetail-DIisz84k.js} +2 -2
- package/dist/interface/assets/{Automations-DuFT8gP5.js → Automations-CGzalEbP.js} +2 -2
- package/dist/interface/assets/{Camera-DIJwEILe.js → Camera-BHXvCaFW.js} +2 -2
- package/dist/interface/assets/{CameraConsole-DMik1jGU.js → CameraConsole-BNgiQRUz.js} +1 -1
- package/dist/interface/assets/{Cameras-BdWxXDXz.js → Cameras-Bt93Z349.js} +1 -1
- package/dist/interface/assets/{Camview-C3xFqdVX.js → Camview-BI4pB_3O.js} +1 -1
- package/dist/interface/assets/Config-BqLcctpj.js +2 -0
- package/dist/interface/assets/{ConfigActionCameraControl-BJ_UwBz6.js → ConfigActionCameraControl-DcZjUnCp.js} +1 -1
- package/dist/interface/assets/{ConfigActionDelay-CaDlbspl.js → ConfigActionDelay-Rnxk--Qt.js} +1 -1
- package/dist/interface/assets/{ConfigActionHttp-C2QE-zvg.js → ConfigActionHttp-BF8vrrHR.js} +1 -1
- package/dist/interface/assets/{ConfigActionImageInput-DKCT6N6f.js → ConfigActionImageInput-C8_H3ubM.js} +1 -1
- package/dist/interface/assets/{ConfigActionNotification-zNgmCkHu.js → ConfigActionNotification-fsySdAUa.js} +1 -1
- package/dist/interface/assets/{ConfigActionOutput-FBT-ggWK.js → ConfigActionOutput-CxB3eLLl.js} +1 -1
- package/dist/interface/assets/{ConfigActionPlugin-BrM12KRN.js → ConfigActionPlugin-t0Hwqnko.js} +1 -1
- package/dist/interface/assets/{ConfigActionSensor-DPsN06k4.js → ConfigActionSensor-Bb_DZEvQ.js} +1 -1
- package/dist/interface/assets/{ConfigActionSnapshot-D9PK7z3r.js → ConfigActionSnapshot-Bt8qbAd-.js} +1 -1
- package/dist/interface/assets/{ConfigActionVariable-CdmOr4Au.js → ConfigActionVariable-DIlUMHDy.js} +1 -1
- package/dist/interface/assets/{ConfigConditionIfElse-BXb8L2g-.js → ConfigConditionIfElse-0XRDQcTw.js} +1 -1
- package/dist/interface/assets/{ConfigConditionSensorState-qP76Cl19.js → ConfigConditionSensorState-CkDJdqeG.js} +1 -1
- package/dist/interface/assets/{ConfigConditionSwitch-jc_HYXwV.js → ConfigConditionSwitch-C7pp1EZI.js} +1 -1
- package/dist/interface/assets/{ConfigConditionTime-Cqrlb4AI.js → ConfigConditionTime-B0zctDc4.js} +1 -1
- package/dist/interface/assets/{ConfigTriggerDetection-DeI3_uqx.js → ConfigTriggerDetection-743jYUtE.js} +1 -1
- package/dist/interface/assets/{ConfigTriggerGeofence-BXUb2ySj.js → ConfigTriggerGeofence-B5ELSF1m.js} +1 -1
- package/dist/interface/assets/{ConfigTriggerManual-2E4mPgx3.js → ConfigTriggerManual-BpBTh3CS.js} +1 -1
- package/dist/interface/assets/{ConfigTriggerSchedule-DQvRNl2k.js → ConfigTriggerSchedule-DZG10NcA.js} +1 -1
- package/dist/interface/assets/{ConfigTriggerSensor-DhXdi2dk.js → ConfigTriggerSensor-B4KivSaD.js} +1 -1
- package/dist/interface/assets/{ConfigTriggerSystem-D7oT6EIw.js → ConfigTriggerSystem-4SqHM0K0.js} +1 -1
- package/dist/interface/assets/{ConfigTriggerWebhook-DINvjXno.js → ConfigTriggerWebhook-BKPOGAs3.js} +1 -1
- package/dist/interface/assets/{Console-B12edXC2.js → Console-CPRQKDnv.js} +1 -1
- package/dist/interface/assets/{CuiActionButton-9d3EJRNQ.js → CuiActionButton-BSy6VaJ6.js} +1 -1
- package/dist/interface/assets/{CuiAvatar-WODQnaJC.js → CuiAvatar-BITC_i7F.js} +1 -1
- package/dist/interface/assets/{CuiBBoxPlayground-BetN0tW2.js → CuiBBoxPlayground-BUPzZ0sI.js} +1 -1
- package/dist/interface/assets/CuiBottomSheet-75za6hfC.js +1 -0
- package/dist/interface/assets/{CuiBottomSheet-BdL-yL3_.js → CuiBottomSheet-BYqD4f-x.js} +1 -1
- package/dist/interface/assets/{CuiCameraCard-BS8hHy3Z.js → CuiCameraCard-BNkuRuLu.js} +1 -1
- package/dist/interface/assets/{CuiCameraPipCard-Dp6l9Qta.js → CuiCameraPipCard-CJW8npwB.js} +1 -1
- package/dist/interface/assets/{CuiCameraRecordings-Dp-czcfz.js → CuiCameraRecordings-DnxkRaSx.js} +1 -1
- package/dist/interface/assets/{CuiCameraShares-DetlNMV8.js → CuiCameraShares-DCp0khG9.js} +1 -1
- package/dist/interface/assets/{CuiCameraSnapshot-D8iqKEgR.js → CuiCameraSnapshot-DyWMxJ_b.js} +1 -1
- package/dist/interface/assets/{CuiCameraTable-BElSaiwr.js → CuiCameraTable-J8DTuGL7.js} +1 -1
- package/dist/interface/assets/{CuiDataTable-TQj7XKmm.js → CuiDataTable-DhnQRMXG.js} +1 -1
- package/dist/interface/assets/{CuiFloatingButton-CPJEROyi.js → CuiFloatingButton-DRKyDsPh.js} +1 -1
- package/dist/interface/assets/{CuiImage-CaY6wa96.js → CuiImage-BF_KZMN5.js} +1 -1
- package/dist/interface/assets/{CuiMenu-BpJnEST9.js → CuiMenu-viLO0ld2.js} +1 -1
- package/dist/interface/assets/{CuiPluginCard-LxNHYHxa.css → CuiPluginCard-BBV_hV1R.css} +1 -1
- package/dist/interface/assets/{CuiPluginCard-ZomOmncI.js → CuiPluginCard-Cd5PHC6u.js} +2 -2
- package/dist/interface/assets/{CuiPluginCategoryChip-DBkOOuOw.js → CuiPluginCategoryChip-BwL2qCTM.js} +1 -1
- package/dist/interface/assets/{CuiPluginOAuthButton-CVPKBDQG.js → CuiPluginOAuthButton-BoDtKc8B.js} +2 -2
- package/dist/interface/assets/{CuiPluginTrustBadge-B7i0mSm4.js → CuiPluginTrustBadge-KcOasEJH.js} +1 -1
- package/dist/interface/assets/{CuiQRCode-w59vwfKJ.js → CuiQRCode-Ua34bgqs.js} +1 -1
- package/dist/interface/assets/{CuiRecordingsGrid-Bse6vBPF.js → CuiRecordingsGrid-DpdjaAbN.js} +1 -1
- package/dist/interface/assets/{CuiSchema-CCC7t6rW.js → CuiSchema-DUZvDo-O.js} +1 -1
- package/dist/interface/assets/{CuiTopNavbarItem-D46R07u_.js → CuiTopNavbarItem-DVwItfbG.js} +1 -1
- package/dist/interface/assets/{CuiTopbarSlot-DRdosjKK.js → CuiTopbarSlot-BT6XOANB.js} +1 -1
- package/dist/interface/assets/{Faces-DlZ65U7F.js → Faces-BV84bAWb.js} +1 -1
- package/dist/interface/assets/FirstSteps-DQjKWeS2.js +1 -0
- package/dist/interface/assets/{Instances-B5fIcevx.js → Instances-CRRI7aV9.js} +1 -1
- package/dist/interface/assets/{Logs-CWohWl77.js → Logs-C9rcuuEG.js} +1 -1
- package/dist/interface/assets/{Menu-B6-vgX_P.js → Menu-DH7cisMb.js} +1 -1
- package/dist/interface/assets/{OAuthDeviceFlow-Dw5sVEZ3.js → OAuthDeviceFlow-BE0F_wSj.js} +1 -1
- package/dist/interface/assets/{Plugin-z1CvTAfo.js → Plugin-DiT_GtZR.js} +1 -1
- package/dist/interface/assets/{PluginConsole-BaySvqEo.js → PluginConsole-Bh-mjW3e.js} +1 -1
- package/dist/interface/assets/PluginDetail-BDxqKNdr.js +2 -0
- package/dist/interface/assets/{PluginSchema-B4MIbPMv.js → PluginSchema-UCS3djwW.js} +1 -1
- package/dist/interface/assets/PluginSearch-BIyD0zZ_.js +1 -0
- package/dist/interface/assets/PluginSearch-DKoFTxQg.js +2 -0
- package/dist/interface/assets/{Plugins-C5b7DvHk.js → Plugins-BMhycl8Y.js} +1 -1
- package/dist/interface/assets/{Recordings-DNwXSuAB.js → Recordings-DqmN8qEZ.js} +1 -1
- package/dist/interface/assets/{Settings-CTDpOQ64.js → Settings-BGOicemE.js} +1 -1
- package/dist/interface/assets/SettingsAccount-BzfhidWM.js +1 -0
- package/dist/interface/assets/{SettingsAccount-Cku3GtlT.js → SettingsAccount-CDO_SYk9.js} +1 -1
- package/dist/interface/assets/{SettingsAppearance-yKzjpSRA.js → SettingsAppearance-BH7FP8hw.js} +1 -1
- package/dist/interface/assets/SettingsAppearance-By3V3Ie-.js +1 -0
- package/dist/interface/assets/SettingsBackup-DXGT9UuI.js +1 -0
- package/dist/interface/assets/{SettingsNotifications-DUlRMqK1.js → SettingsNotifications-BxwmGXxn.js} +1 -1
- package/dist/interface/assets/{SettingsRecordings-pz2vBC2X.js → SettingsRecordings-BTCu3ylw.js} +1 -1
- package/dist/interface/assets/{SettingsRemote-BMdxvnDJ.js → SettingsRemote-DOKSy7sY.js} +1 -1
- package/dist/interface/assets/SettingsSystem-DoI8bTfR.js +2 -0
- package/dist/interface/assets/{SettingsUsers-DdWyYrr9.js → SettingsUsers-BU_VbaRr.js} +1 -1
- package/dist/interface/assets/{Terminal-5_MS_w4C.js → Terminal-Djc8UaxN.js} +1 -1
- package/dist/interface/assets/{VariableInput-DFg1DrbL.js → VariableInput-DmE1m9Il.js} +1 -1
- package/dist/interface/assets/{VariableSuggestions-CE2vN1ue.js → VariableSuggestions-eII-1Bd_.js} +1 -1
- package/dist/interface/assets/VersionsHandler-WkuaVJ5k.js +7 -0
- package/dist/interface/assets/{Workers-CJvJst8s.js → Workers-Dkt-gagi.js} +1 -1
- package/dist/interface/assets/{api-B2uELRff.js → api--rcpPrlB.js} +1 -1
- package/dist/interface/assets/api-D0NuC-H6.js +2 -0
- package/dist/interface/assets/{auth-Cxl-edIx.js → auth-BQpB-nql.js} +1 -1
- package/dist/interface/assets/{automations-D9vhPouY.js → automations-73X55Wxy.js} +1 -1
- package/dist/interface/assets/{automations-CFURp2eE.js → automations-Bc4SsIAN.js} +1 -1
- package/dist/interface/assets/{backup-DTBFGImP.js → backup-_Yy2MMVh.js} +1 -1
- package/dist/interface/assets/{cameras-Dd6P1_YK.js → cameras-BbOwPvf2.js} +1 -1
- package/dist/interface/assets/{cameras.schema-bzS0WJKa.js → cameras.schema-Dvg_2JpP.js} +1 -1
- package/dist/interface/assets/cloudHandoff-CcOjEGqw.js +1 -0
- package/dist/interface/assets/{deviceId-CnWrJnG5.js → deviceId-D3MkKSlF.js} +1 -1
- package/dist/interface/assets/{hasPermission-5qPWobFN.js → hasPermission-GDMFAeTg.js} +1 -1
- package/dist/interface/assets/{instances-CGND5LJQ.js → instances-DJA9uQdT.js} +1 -1
- package/dist/interface/assets/{main-DYLy_5Pn.css → main-D8ZyVvgT.css} +1 -1
- package/dist/interface/assets/{main-kOTiGppJ.js → main-w5xY04uq.js} +3 -3
- package/dist/interface/assets/{notifications-D2qpvGZY.js → notifications-ClsBSpzj.js} +1 -1
- package/dist/interface/assets/{plugins-CjE6KAm2.js → plugins-DlqQYARr.js} +1 -1
- package/dist/interface/assets/{round-restart-alt-BOiYIOkT.js → round-restart-alt-B5uqHdpI.js} +1 -1
- package/dist/interface/assets/{router-DuwjtmeP.js → router-DDl_0xbb.js} +2 -2
- package/dist/interface/assets/{routerState-DrUMvQeh.js → routerState-DxipV4mY.js} +1 -1
- package/dist/interface/assets/{server-CgCt2EwN.js → server-CQ0S5GKX.js} +1 -1
- package/dist/interface/assets/{shares-BV8MESxJ.js → shares-B6dgMhMc.js} +1 -1
- package/dist/interface/assets/{theme-CqlV1_TD.js → theme-DGDB5cpZ.js} +1 -1
- package/dist/interface/assets/{types-Ba7lpaB_.js → types-CAW47AJe.js} +1 -1
- package/dist/interface/assets/{ui-CdkKRm2h.js → ui-CH55JEcY.js} +1 -1
- package/dist/interface/assets/{useBiometricCredentials-l5SpgUpj.js → useBiometricCredentials-ofQBgSP0.js} +1 -1
- package/dist/interface/assets/{useCameraOptions-DnIAYnJQ.js → useCameraOptions-D7Oo8Uxy.js} +1 -1
- package/dist/interface/assets/{useCuiCameraDrawer-D-S4VfvR.js → useCuiCameraDrawer-DwlhaZ2i.js} +1 -1
- package/dist/interface/assets/{useCuiDialog-CmKWBtPJ.js → useCuiDialog-DUmWy0l-.js} +1 -1
- package/dist/interface/assets/{useFileDownload-VbrDf93a.js → useFileDownload-AHFL1-lh.js} +1 -1
- package/dist/interface/assets/{useLogsSocket-B8Tsn5-U.js → useLogsSocket-aUO625SP.js} +1 -1
- package/dist/interface/assets/useServerRestart-ByJ_CNqz.js +1 -0
- package/dist/interface/assets/{useSharedComposables-cET9iPFv.js → useSharedComposables-CWxbvFAw.js} +1 -1
- package/dist/interface/assets/{useStreamStatus-Bx8i0Bu5.js → useStreamStatus-DkVGizaG.js} +1 -1
- package/dist/interface/assets/{useUserOptions-BWATxS_O.js → useUserOptions-CIRN1ekW.js} +1 -1
- package/dist/interface/assets/{users.schema-n6QIkt3F.js → users.schema-BU8dC7Cz.js} +1 -1
- package/dist/interface/assets/{vendor-cameraui-BW07WHCL.js → vendor-cameraui-DhctzD3V.js} +1 -1
- package/dist/interface/assets/{vendor-core-DIDAOE43.js → vendor-core-DnC_SdtD.js} +1 -1
- package/dist/interface/assets/{vendor-primevue-DxQMduzV.js → vendor-primevue-OV61z06m.js} +1 -1
- package/dist/interface/assets/{view-grid-CaLSG5Og.js → view-grid-D5RfHd3R.js} +1 -1
- package/dist/interface/index.html +40 -39
- package/dist/interface/pwa/pwa-120x120.png +0 -0
- package/dist/interface/pwa/pwa-144x144.png +0 -0
- package/dist/interface/pwa/pwa-152x152.png +0 -0
- package/dist/interface/pwa/pwa-167x167.png +0 -0
- package/dist/interface/pwa/pwa-192x192.png +0 -0
- package/dist/interface/pwa/pwa-24x24.png +0 -0
- package/dist/interface/pwa/pwa-36x36.png +0 -0
- package/dist/interface/pwa/pwa-48x48.png +0 -0
- package/dist/interface/pwa/pwa-50x50.png +0 -0
- package/dist/interface/pwa/pwa-64x64.png +0 -0
- package/dist/interface/pwa/pwa-72x72.png +0 -0
- package/dist/interface/pwa/pwa-88x88.png +0 -0
- package/dist/interface/pwa/pwa-96x96.png +0 -0
- package/dist/interface/sw.js +1 -1
- package/dist/server/package.json +6 -6
- package/dist/server/requirements.txt +1 -1
- package/dist/server/src/api/index.js +2 -2
- package/dist/server/src/api/index.js.map +1 -1
- package/dist/server/src/api/types/index.d.ts +1 -0
- package/dist/server/src/plugins/plugin.d.ts +2 -0
- package/dist/server/src/plugins/plugin.js +6 -0
- package/dist/server/src/plugins/plugin.js.map +1 -1
- package/dist/server/src/plugins/worker.js +6 -0
- package/dist/server/src/plugins/worker.js.map +1 -1
- package/package.json +6 -6
- package/dist/interface/assets/Adminpanel-CLx4_t1j.js +0 -1
- package/dist/interface/assets/Config-Bf8JgIP_.js +0 -2
- package/dist/interface/assets/CuiBottomSheet-BVSLlcFo.js +0 -1
- package/dist/interface/assets/FirstSteps-CIcSBgda.js +0 -1
- package/dist/interface/assets/PluginDetail-D6EK3aT5.js +0 -2
- package/dist/interface/assets/PluginSearch-DLGaDsQB.js +0 -2
- package/dist/interface/assets/PluginSearch-Dr3buE9P.js +0 -1
- package/dist/interface/assets/SettingsAccount-BRf4WdFJ.js +0 -1
- package/dist/interface/assets/SettingsAppearance-iy_D_nOw.js +0 -1
- package/dist/interface/assets/SettingsBackup-BKg5ox_X.js +0 -1
- package/dist/interface/assets/SettingsSystem-BoXcTzBM.js +0 -2
- package/dist/interface/assets/VersionsHandler-B-W6mhHE.js +0 -7
- package/dist/interface/assets/api-BYHmEN-k.js +0 -2
- package/dist/interface/assets/cloudHandoff-CWS6X5c5.js +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
import{D as e,O as t,Pt as n,T as r}from"./api-BYHmEN-k.js";import{J as i,Q as a,Sr as o,mr as s}from"./vendor-c9Zhw4pk.js";async function c({cameraData:e}){return(await n.post(`/cameras`,e)).data}async function l({cameraData:e}){return(await n.post(`/cameras/preview`,e)).data}async function u({signal:e}){return(await n.get(`/cameras/rooms`,{signal:e})).data}async function d({cameraname:e,signal:t}){return(await n.get(`/cameras/${e}`,{signal:t})).data}async function f({cameraname:e}){return(await n.delete(`/cameras/${e}/log`)).data}async function p({cameraname:e,signal:t}){return(await n.get(`/cameras/${e}/log/download`,{signal:t})).data}async function m({cameraname:e,sourcename:t,signal:r}){return(await n.get(`/cameras/${e}/info/${t}`,{signal:r})).data}async function h({cameraname:e,sourcename:t,probeConfig:r,force:i,signal:a}){return(await n.get(`/cameras/${e}/probe/${t}`,{params:{...r,...i?{refresh:!0}:{}},signal:a})).data}async function g({cameraname:e,forceNew:t,signal:r}){return(await n.get(`/cameras/${e}/snapshot`,{signal:r,params:{forceNew:t}})).data}async function _({parameter:e,signal:t}){return(await n.get(`/cameras`,{params:e,signal:t})).data}async function v({cameraname:e,cameraData:t}){return(await n.patch(`/cameras/${e}`,t)).data}async function y({cameraname:e,signal:t}){return(await n.get(`/cameras/${e}/extensions`,{signal:t})).data}async function b({cameraname:e,pluginname:t,signal:r}){return(await n.get(`/cameras/${e}/${t}/config`,{signal:r})).data}async function x({cameraname:e,pluginname:t,configData:r}){return(await n.patch(`/cameras/${e}/${t}/config`,r)).data}async function S({cameraname:e,pluginname:t,configData:r}){return(await n.put(`/cameras/${e}/${t}/config`,r)).data}async function C({cameraname:e,pluginname:t,configData:r}){return(await n.post(`/cameras/${e}/${t}/config`,r)).data}async function w({cameraname:e,pluginname:t,sensorId:r,signal:i}){return(await n.get(`/cameras/${e}/${t}/sensor/${r}/config`,{signal:i})).data}async function T({cameraname:e,pluginname:t,sensorId:r,configData:i}){return(await n.patch(`/cameras/${e}/${t}/sensor/${r}/config`,i)).data}async function E({cameraname:e,pluginname:t,sensorId:r,configData:i}){return(await n.put(`/cameras/${e}/${t}/sensor/${r}/config`,i)).data}async function D({cameraname:e,pluginname:t,sensorId:r,configData:i}){return(await n.post(`/cameras/${e}/${t}/sensor/${r}/config`,i)).data}async function O({cameraname:e,pluginname:t,type:r}){return(await n.put(`/cameras/${e}/${t}/enable`,null,{params:{type:r}})).data}async function k({cameraname:e,pluginname:t,type:r}){return(await n.put(`/cameras/${e}/${t}/disable`,null,{params:{type:r}})).data}async function A({cameraname:e,pluginname:t,type:r}){return(await n.post(`/cameras/${e}/${t}`,null,{params:{type:r}})).data}async function j({cameraname:e,pluginname:t,type:r}){return(await n.delete(`/cameras/${e}/${t}`,{params:{type:r}})).data}async function M({cameraname:e,pluginname:t}){return(await n.post(`/cameras/${e}/${t}/activate`)).data}async function N({cameraname:e,pluginname:t}){return(await n.delete(`/cameras/${e}/${t}/deactivate`)).data}async function P({cameraname:e,signal:t}){return(await n.get(`/cameras/${e}/zones`,{signal:t})).data}async function F({cameraname:e,zoneData:t}){return(await n.patch(`/cameras/${e}/zones`,t)).data}async function I({cameraname:e,lineData:t}){return(await n.patch(`/cameras/${e}/lines`,t)).data}async function L({cameraname:e}){return(await n.delete(`/cameras/${e}`)).data}async function R(){return(await n.delete(`/cameras`)).data}var z=class{_queryClient=a();t=t.global.t;toast=e();queryActivator=s([{name:`getCameraQuery`,enabled:!0},{name:`getCamerasQuery`,enabled:!0},{name:`getCameraSnapshotQuery`,enabled:!0},{name:`getCameraExtensionsQuery`,enabled:!0},{name:`getCameraExtensionConfigQuery`,enabled:!0},{name:`getZonesQuery`,enabled:!0},{name:`streamSourceInfoQuery`,enabled:!0},{name:`probeCameraSourceQuery`,enabled:!0},{name:`downloadLogQuery`,enabled:!0},{name:`getSensorConfigQuery`,enabled:!0}]);get queryClient(){return this._queryClient}createCameraQuery(){return i({mutationFn:c,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`camerasList`]}),this.toast.add({severity:`success`,detail:this.t(`components.toast.camera_added`),life:3e3})}})}previewCameraQuery(){return i({mutationFn:l})}getCameraQuery(e){return r({queryKey:[`cameras`,e],queryFn:({signal:t})=>d({cameraname:o(e),signal:t}),initialData:()=>{let t=o(e),n=this._queryClient.getQueriesData({queryKey:[`camerasList`]});for(let[,e]of n){let n=e?.result?.find(e=>e.name===t);if(n)return n}},initialDataUpdatedAt:0,enabled:()=>this.queryActivator.value.some(e=>e.name===`getCameraQuery`&&e.enabled)})}getCameraExtensionsQuery(e){return r({queryKey:[`camerasExtensions`,e],queryFn:({signal:t})=>y({cameraname:o(e),signal:t}),enabled:()=>this.queryActivator.value.some(e=>e.name===`getCameraExtensionsQuery`&&e.enabled)})}streamSourceInfoQuery(e,t){return r({queryKey:[`cameras`,e,`info`,t],queryFn:({signal:n})=>m({cameraname:o(e),sourcename:o(t),signal:n}),enabled:()=>this.queryActivator.value.some(e=>e.name===`streamSourceInfoQuery`&&e.enabled)})}probeCameraSourceQuery(e,t,n){return r({queryKey:[`cameras`,e,`probe`,t],queryFn:({signal:r})=>h({cameraname:o(e),sourcename:o(t),probeConfig:o(n),signal:r}),enabled:()=>this.queryActivator.value.some(e=>e.name===`probeCameraSourceQuery`&&e.enabled)})}getCameraSnapshotQuery(e,t){return r({queryKey:[`camerasSnapshot`,e],queryFn:({signal:n})=>g({cameraname:o(e),forceNew:o(t),signal:n}),enabled:()=>this.queryActivator.value.some(e=>e.name===`getCameraSnapshotQuery`&&e.enabled),retry:!1})}getCamerasQuery(e){return r({queryKey:[`camerasList`,e],queryFn:({signal:t})=>_({parameter:o(e),signal:t}),placeholderData:e=>e,enabled:()=>this.queryActivator.value.some(e=>e.name===`getCamerasQuery`&&e.enabled)})}getRoomsQuery(){return r({queryKey:[`camerasRooms`],queryFn:({signal:e})=>u({signal:e})})}patchCameraQuery(){return i({mutationFn:v,onSuccess:async(e,t)=>{let n=t.cameraData.name&&t.cameraData.name!==t.cameraname,r=t.cameraData.room!==void 0;if(n){let e=t.cameraname;await this._queryClient.invalidateQueries({queryKey:[e]}),await this._queryClient.refetchQueries({queryKey:[`camerasList`]})}else await this._queryClient.refetchQueries({queryKey:[`cameras`,t.cameraname],exact:!0}),await this._queryClient.refetchQueries({queryKey:[`camerasExtensions`,t.cameraname]}),await this._queryClient.refetchQueries({queryKey:[`cameras`,`extensions`,t.cameraname],type:`active`}),r&&(await this._queryClient.refetchQueries({queryKey:[`camerasList`]}),await this._queryClient.refetchQueries({queryKey:[`camerasRooms`]}));this.toast.add({severity:`success`,detail:this.t(`components.toast.camera_updated`),life:3e3})}})}getCameraExtensionConfigQuery(e,t,n){return r({queryKey:[`cameras`,`extensions`,e,t],queryFn:({signal:n})=>b({cameraname:o(e),pluginname:o(t),signal:n}),enabled:()=>!!o(t)&&this.queryActivator.value.some(e=>e.name===`getCameraExtensionConfigQuery`&&e.enabled),refetchInterval(){if(n.value)return 1e4},retry:10,retryDelay:500,staleTime:0})}patchCameraExtensionConfigQuery(){return i({mutationFn:x,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`cameras`,t.cameraname],exact:!0}),await this._queryClient.refetchQueries({queryKey:[`cameras`,`extensions`,t.cameraname],type:`active`}),await this._queryClient.refetchQueries({queryKey:[`camerasExtensions`,t.cameraname]})}})}setCameraExtensionConfigQuery(){return i({mutationFn:S,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`cameras`,t.cameraname],exact:!0}),await this._queryClient.refetchQueries({queryKey:[`cameras`,`extensions`,t.cameraname],type:`active`}),await this._queryClient.refetchQueries({queryKey:[`camerasExtensions`,t.cameraname]})}})}submitCameraExtensionConfigQuery(){return i({mutationFn:C,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`cameras`,t.cameraname],exact:!0}),await this._queryClient.refetchQueries({queryKey:[`cameras`,`extensions`,t.cameraname],type:`active`}),await this._queryClient.refetchQueries({queryKey:[`camerasExtensions`,t.cameraname]})}})}getSensorConfigQuery(e,t,n,i){return r({queryKey:[`cameras`,`sensor`,e,t,n],queryFn:({signal:r})=>w({cameraname:o(e),pluginname:o(t),sensorId:o(n),signal:r}),enabled:()=>{let e=o(t),r=o(n);return!e||!r?!1:this.queryActivator.value.some(e=>e.name===`getSensorConfigQuery`&&e.enabled)},refetchInterval(){if(i.value)return 1e4},retry:3,retryDelay:500,staleTime:0})}patchSensorConfigQuery(){return i({mutationFn:T,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`cameras`,t.cameraname],exact:!0}),await this._queryClient.refetchQueries({queryKey:[`cameras`,`sensor`,t.cameraname,t.pluginname,t.sensorId]})}})}setSensorConfigQuery(){return i({mutationFn:E,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`cameras`,t.cameraname],exact:!0}),await this._queryClient.refetchQueries({queryKey:[`cameras`,`sensor`,t.cameraname,t.pluginname,t.sensorId]})}})}submitSensorConfigQuery(){return i({mutationFn:D,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`cameras`,t.cameraname],exact:!0}),await this._queryClient.refetchQueries({queryKey:[`cameras`,`sensor`,t.cameraname,t.pluginname,t.sensorId]})}})}enableCameraExtensionQuery(){return i({mutationFn:O,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`cameras`,t.cameraname],exact:!0}),await this._queryClient.refetchQueries({queryKey:[`camerasExtensions`,t.cameraname]})}})}disableCameraExtensionQuery(){return i({mutationFn:k,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`cameras`,t.cameraname],exact:!0}),await this._queryClient.refetchQueries({queryKey:[`camerasExtensions`,t.cameraname]})}})}addCameraExtensionQuery(){return i({mutationFn:A,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`cameras`,t.cameraname],exact:!0}),await this._queryClient.refetchQueries({queryKey:[`camerasExtensions`,t.cameraname]})}})}activateCameraExtensionQuery(){return i({mutationFn:M,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`cameras`,t.cameraname],exact:!0}),await this._queryClient.refetchQueries({queryKey:[`camerasExtensions`,t.cameraname]})}})}deactivateCameraExtensionQuery(){return i({mutationFn:N,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`cameras`,t.cameraname],exact:!0}),await this._queryClient.refetchQueries({queryKey:[`camerasExtensions`,t.cameraname]})}})}getZonesQuery(e){return r({queryKey:[`cameras`,e,`zones`],queryFn:({signal:t})=>P({cameraname:o(e),signal:t}),enabled:()=>this.queryActivator.value.some(e=>e.name===`getZonesQuery`&&e.enabled)})}patchZonesQuery(){return i({mutationFn:F,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`cameras`,t.cameraname],exact:!0}),this.toast.add({severity:`success`,detail:this.t(`components.toast.zone_updated`),life:3e3})}})}patchLinesQuery(){return i({mutationFn:I,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`cameras`,t.cameraname],exact:!0}),this.toast.add({severity:`success`,detail:this.t(`components.toast.line_updated`),life:3e3})}})}removeCameraExtensionQuery(){return i({mutationFn:j,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`cameras`,t.cameraname],exact:!0}),await this._queryClient.refetchQueries({queryKey:[`camerasExtensions`,t.cameraname]})}})}removeCameraQuery(){return i({mutationFn:L,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`camerasList`]}),this.toast.add({severity:`success`,detail:this.t(`components.toast.camera_removed`),life:3e3})}})}removeCamerasQuery(){return i({mutationFn:R,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`camerasList`]}),this.toast.add({severity:`success`,detail:this.t(`components.toast.cameras_removed`),life:3e3})}})}downloadLogQuery(e){return r({queryKey:[`logs`,e],queryFn:({signal:t})=>p({cameraname:o(e),signal:t}),enabled:()=>this.queryActivator.value.some(e=>e.name===`downloadLogQuery`&&e.enabled)})}clearLogQuery(){return i({mutationFn:f,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`logs`,t.cameraname],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{h as a,d as i,f as n,p as r,z as t};
|
|
1
|
+
import{D as e,O as t,Pt as n,T as r}from"./api-D0NuC-H6.js";import{J as i,Q as a,Sr as o,mr as s}from"./vendor-c9Zhw4pk.js";async function c({cameraData:e}){return(await n.post(`/cameras`,e)).data}async function l({cameraData:e}){return(await n.post(`/cameras/preview`,e)).data}async function u({signal:e}){return(await n.get(`/cameras/rooms`,{signal:e})).data}async function d({cameraname:e,signal:t}){return(await n.get(`/cameras/${e}`,{signal:t})).data}async function f({cameraname:e}){return(await n.delete(`/cameras/${e}/log`)).data}async function p({cameraname:e,signal:t}){return(await n.get(`/cameras/${e}/log/download`,{signal:t})).data}async function m({cameraname:e,sourcename:t,signal:r}){return(await n.get(`/cameras/${e}/info/${t}`,{signal:r})).data}async function h({cameraname:e,sourcename:t,probeConfig:r,force:i,signal:a}){return(await n.get(`/cameras/${e}/probe/${t}`,{params:{...r,...i?{refresh:!0}:{}},signal:a})).data}async function g({cameraname:e,forceNew:t,signal:r}){return(await n.get(`/cameras/${e}/snapshot`,{signal:r,params:{forceNew:t}})).data}async function _({parameter:e,signal:t}){return(await n.get(`/cameras`,{params:e,signal:t})).data}async function v({cameraname:e,cameraData:t}){return(await n.patch(`/cameras/${e}`,t)).data}async function y({cameraname:e,signal:t}){return(await n.get(`/cameras/${e}/extensions`,{signal:t})).data}async function b({cameraname:e,pluginname:t,signal:r}){return(await n.get(`/cameras/${e}/${t}/config`,{signal:r})).data}async function x({cameraname:e,pluginname:t,configData:r}){return(await n.patch(`/cameras/${e}/${t}/config`,r)).data}async function S({cameraname:e,pluginname:t,configData:r}){return(await n.put(`/cameras/${e}/${t}/config`,r)).data}async function C({cameraname:e,pluginname:t,configData:r}){return(await n.post(`/cameras/${e}/${t}/config`,r)).data}async function w({cameraname:e,pluginname:t,sensorId:r,signal:i}){return(await n.get(`/cameras/${e}/${t}/sensor/${r}/config`,{signal:i})).data}async function T({cameraname:e,pluginname:t,sensorId:r,configData:i}){return(await n.patch(`/cameras/${e}/${t}/sensor/${r}/config`,i)).data}async function E({cameraname:e,pluginname:t,sensorId:r,configData:i}){return(await n.put(`/cameras/${e}/${t}/sensor/${r}/config`,i)).data}async function D({cameraname:e,pluginname:t,sensorId:r,configData:i}){return(await n.post(`/cameras/${e}/${t}/sensor/${r}/config`,i)).data}async function O({cameraname:e,pluginname:t,type:r}){return(await n.put(`/cameras/${e}/${t}/enable`,null,{params:{type:r}})).data}async function k({cameraname:e,pluginname:t,type:r}){return(await n.put(`/cameras/${e}/${t}/disable`,null,{params:{type:r}})).data}async function A({cameraname:e,pluginname:t,type:r}){return(await n.post(`/cameras/${e}/${t}`,null,{params:{type:r}})).data}async function j({cameraname:e,pluginname:t,type:r}){return(await n.delete(`/cameras/${e}/${t}`,{params:{type:r}})).data}async function M({cameraname:e,pluginname:t}){return(await n.post(`/cameras/${e}/${t}/activate`)).data}async function N({cameraname:e,pluginname:t}){return(await n.delete(`/cameras/${e}/${t}/deactivate`)).data}async function P({cameraname:e,signal:t}){return(await n.get(`/cameras/${e}/zones`,{signal:t})).data}async function F({cameraname:e,zoneData:t}){return(await n.patch(`/cameras/${e}/zones`,t)).data}async function I({cameraname:e,lineData:t}){return(await n.patch(`/cameras/${e}/lines`,t)).data}async function L({cameraname:e}){return(await n.delete(`/cameras/${e}`)).data}async function R(){return(await n.delete(`/cameras`)).data}var z=class{_queryClient=a();t=t.global.t;toast=e();queryActivator=s([{name:`getCameraQuery`,enabled:!0},{name:`getCamerasQuery`,enabled:!0},{name:`getCameraSnapshotQuery`,enabled:!0},{name:`getCameraExtensionsQuery`,enabled:!0},{name:`getCameraExtensionConfigQuery`,enabled:!0},{name:`getZonesQuery`,enabled:!0},{name:`streamSourceInfoQuery`,enabled:!0},{name:`probeCameraSourceQuery`,enabled:!0},{name:`downloadLogQuery`,enabled:!0},{name:`getSensorConfigQuery`,enabled:!0}]);get queryClient(){return this._queryClient}createCameraQuery(){return i({mutationFn:c,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`camerasList`]}),this.toast.add({severity:`success`,detail:this.t(`components.toast.camera_added`),life:3e3})}})}previewCameraQuery(){return i({mutationFn:l})}getCameraQuery(e){return r({queryKey:[`cameras`,e],queryFn:({signal:t})=>d({cameraname:o(e),signal:t}),initialData:()=>{let t=o(e),n=this._queryClient.getQueriesData({queryKey:[`camerasList`]});for(let[,e]of n){let n=e?.result?.find(e=>e.name===t);if(n)return n}},initialDataUpdatedAt:0,enabled:()=>this.queryActivator.value.some(e=>e.name===`getCameraQuery`&&e.enabled)})}getCameraExtensionsQuery(e){return r({queryKey:[`camerasExtensions`,e],queryFn:({signal:t})=>y({cameraname:o(e),signal:t}),enabled:()=>this.queryActivator.value.some(e=>e.name===`getCameraExtensionsQuery`&&e.enabled)})}streamSourceInfoQuery(e,t){return r({queryKey:[`cameras`,e,`info`,t],queryFn:({signal:n})=>m({cameraname:o(e),sourcename:o(t),signal:n}),enabled:()=>this.queryActivator.value.some(e=>e.name===`streamSourceInfoQuery`&&e.enabled)})}probeCameraSourceQuery(e,t,n){return r({queryKey:[`cameras`,e,`probe`,t],queryFn:({signal:r})=>h({cameraname:o(e),sourcename:o(t),probeConfig:o(n),signal:r}),enabled:()=>this.queryActivator.value.some(e=>e.name===`probeCameraSourceQuery`&&e.enabled)})}getCameraSnapshotQuery(e,t){return r({queryKey:[`camerasSnapshot`,e],queryFn:({signal:n})=>g({cameraname:o(e),forceNew:o(t),signal:n}),enabled:()=>this.queryActivator.value.some(e=>e.name===`getCameraSnapshotQuery`&&e.enabled),retry:!1})}getCamerasQuery(e){return r({queryKey:[`camerasList`,e],queryFn:({signal:t})=>_({parameter:o(e),signal:t}),placeholderData:e=>e,enabled:()=>this.queryActivator.value.some(e=>e.name===`getCamerasQuery`&&e.enabled)})}getRoomsQuery(){return r({queryKey:[`camerasRooms`],queryFn:({signal:e})=>u({signal:e})})}patchCameraQuery(){return i({mutationFn:v,onSuccess:async(e,t)=>{let n=t.cameraData.name&&t.cameraData.name!==t.cameraname,r=t.cameraData.room!==void 0;if(n){let e=t.cameraname;await this._queryClient.invalidateQueries({queryKey:[e]}),await this._queryClient.refetchQueries({queryKey:[`camerasList`]})}else await this._queryClient.refetchQueries({queryKey:[`cameras`,t.cameraname],exact:!0}),await this._queryClient.refetchQueries({queryKey:[`camerasExtensions`,t.cameraname]}),await this._queryClient.refetchQueries({queryKey:[`cameras`,`extensions`,t.cameraname],type:`active`}),r&&(await this._queryClient.refetchQueries({queryKey:[`camerasList`]}),await this._queryClient.refetchQueries({queryKey:[`camerasRooms`]}));this.toast.add({severity:`success`,detail:this.t(`components.toast.camera_updated`),life:3e3})}})}getCameraExtensionConfigQuery(e,t,n){return r({queryKey:[`cameras`,`extensions`,e,t],queryFn:({signal:n})=>b({cameraname:o(e),pluginname:o(t),signal:n}),enabled:()=>!!o(t)&&this.queryActivator.value.some(e=>e.name===`getCameraExtensionConfigQuery`&&e.enabled),refetchInterval(){if(n.value)return 1e4},retry:10,retryDelay:500,staleTime:0})}patchCameraExtensionConfigQuery(){return i({mutationFn:x,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`cameras`,t.cameraname],exact:!0}),await this._queryClient.refetchQueries({queryKey:[`cameras`,`extensions`,t.cameraname],type:`active`}),await this._queryClient.refetchQueries({queryKey:[`camerasExtensions`,t.cameraname]})}})}setCameraExtensionConfigQuery(){return i({mutationFn:S,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`cameras`,t.cameraname],exact:!0}),await this._queryClient.refetchQueries({queryKey:[`cameras`,`extensions`,t.cameraname],type:`active`}),await this._queryClient.refetchQueries({queryKey:[`camerasExtensions`,t.cameraname]})}})}submitCameraExtensionConfigQuery(){return i({mutationFn:C,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`cameras`,t.cameraname],exact:!0}),await this._queryClient.refetchQueries({queryKey:[`cameras`,`extensions`,t.cameraname],type:`active`}),await this._queryClient.refetchQueries({queryKey:[`camerasExtensions`,t.cameraname]})}})}getSensorConfigQuery(e,t,n,i){return r({queryKey:[`cameras`,`sensor`,e,t,n],queryFn:({signal:r})=>w({cameraname:o(e),pluginname:o(t),sensorId:o(n),signal:r}),enabled:()=>{let e=o(t),r=o(n);return!e||!r?!1:this.queryActivator.value.some(e=>e.name===`getSensorConfigQuery`&&e.enabled)},refetchInterval(){if(i.value)return 1e4},retry:3,retryDelay:500,staleTime:0})}patchSensorConfigQuery(){return i({mutationFn:T,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`cameras`,t.cameraname],exact:!0}),await this._queryClient.refetchQueries({queryKey:[`cameras`,`sensor`,t.cameraname,t.pluginname,t.sensorId]})}})}setSensorConfigQuery(){return i({mutationFn:E,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`cameras`,t.cameraname],exact:!0}),await this._queryClient.refetchQueries({queryKey:[`cameras`,`sensor`,t.cameraname,t.pluginname,t.sensorId]})}})}submitSensorConfigQuery(){return i({mutationFn:D,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`cameras`,t.cameraname],exact:!0}),await this._queryClient.refetchQueries({queryKey:[`cameras`,`sensor`,t.cameraname,t.pluginname,t.sensorId]})}})}enableCameraExtensionQuery(){return i({mutationFn:O,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`cameras`,t.cameraname],exact:!0}),await this._queryClient.refetchQueries({queryKey:[`camerasExtensions`,t.cameraname]})}})}disableCameraExtensionQuery(){return i({mutationFn:k,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`cameras`,t.cameraname],exact:!0}),await this._queryClient.refetchQueries({queryKey:[`camerasExtensions`,t.cameraname]})}})}addCameraExtensionQuery(){return i({mutationFn:A,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`cameras`,t.cameraname],exact:!0}),await this._queryClient.refetchQueries({queryKey:[`camerasExtensions`,t.cameraname]})}})}activateCameraExtensionQuery(){return i({mutationFn:M,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`cameras`,t.cameraname],exact:!0}),await this._queryClient.refetchQueries({queryKey:[`camerasExtensions`,t.cameraname]})}})}deactivateCameraExtensionQuery(){return i({mutationFn:N,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`cameras`,t.cameraname],exact:!0}),await this._queryClient.refetchQueries({queryKey:[`camerasExtensions`,t.cameraname]})}})}getZonesQuery(e){return r({queryKey:[`cameras`,e,`zones`],queryFn:({signal:t})=>P({cameraname:o(e),signal:t}),enabled:()=>this.queryActivator.value.some(e=>e.name===`getZonesQuery`&&e.enabled)})}patchZonesQuery(){return i({mutationFn:F,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`cameras`,t.cameraname],exact:!0}),this.toast.add({severity:`success`,detail:this.t(`components.toast.zone_updated`),life:3e3})}})}patchLinesQuery(){return i({mutationFn:I,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`cameras`,t.cameraname],exact:!0}),this.toast.add({severity:`success`,detail:this.t(`components.toast.line_updated`),life:3e3})}})}removeCameraExtensionQuery(){return i({mutationFn:j,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`cameras`,t.cameraname],exact:!0}),await this._queryClient.refetchQueries({queryKey:[`camerasExtensions`,t.cameraname]})}})}removeCameraQuery(){return i({mutationFn:L,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`camerasList`]}),this.toast.add({severity:`success`,detail:this.t(`components.toast.camera_removed`),life:3e3})}})}removeCamerasQuery(){return i({mutationFn:R,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`camerasList`]}),this.toast.add({severity:`success`,detail:this.t(`components.toast.cameras_removed`),life:3e3})}})}downloadLogQuery(e){return r({queryKey:[`logs`,e],queryFn:({signal:t})=>p({cameraname:o(e),signal:t}),enabled:()=>this.queryActivator.value.some(e=>e.name===`downloadLogQuery`&&e.enabled)})}clearLogQuery(){return i({mutationFn:f,onSuccess:async(e,t)=>{await this._queryClient.refetchQueries({queryKey:[`logs`,t.cameraname],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{h as a,d as i,f as n,p as r,z as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{O as e}from"./vendor-cameraui-
|
|
1
|
+
import{O as e}from"./vendor-cameraui-DhctzD3V.js";import{Ct as t,Dt as n,Et as r,St as i,Tt as a,wt as o}from"./api-D0NuC-H6.js";import{Er as s,Sr as c,dn as l,lr as u,mn as d,mr as f,xn as p,yn as m,zn as h}from"./vendor-c9Zhw4pk.js";import{n as g,r as _,t as v}from"./vendor-zod-XsuaxHRY.js";var y={class:`flex flex-col gap-2 w-full`},b={for:`roomName`,class:`cui-label`},x=p({__name:`CreateRoom`,setup(t,{expose:n}){let r=f(``);return n({onConfirm:async()=>r.value.trim()||null}),(t,n)=>{let i=e;return h(),d(`div`,y,[l(`label`,b,s(t.$t(`components.form.label.name`)),1),m(i,{id:`roomName`,modelValue:c(r),"onUpdate:modelValue":n[0]||=e=>u(r)?r.value=e:null,class:`w-full`,placeholder:t.$t(`components.form.hint.room_select`),autofocus:``},null,8,[`modelValue`,`placeholder`])])}}}),S=g({protocol:a,url:_().trim().min(1,`Camera Source is required`).array().nonempty(`Camera Source is required`)}).strict(),C=g({name:_().trim().min(1,`Camera Source Name is required`),urls:S.array(),role:r,useForSnapshot:v().default(!1),hotMode:v().default(!0),preload:v().default(!0),childSourceId:_().trim().optional()}).strict(),w=g({...i.shape,sources:C.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=>e.filter(e=>e.role===`snapshot`).every(e=>!e.useForSnapshot),{message:`Snapshot source can not be used with useForSnapshot`,path:[`sources`]}).refine(e=>e.filter(e=>e.role===`snapshot`).every(e=>!e.hotMode),{message:`Snapshot source can not be used with hotMode`}).refine(e=>e.filter(e=>e.role===`snapshot`).every(e=>!e.preload),{message:`Snapshot source can not be used with preload`}).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`]})}).strict(),T=n,E=o,D=t;export{x as a,T as i,E as n,w as r,D as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{_ as e}from"./api-D0NuC-H6.js";export{e as bounceToCloudFrontend};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import"./api-
|
|
1
|
+
import"./api-D0NuC-H6.js";import"./vendor-c9Zhw4pk.js";var e=`cameraui:web-push-id`;function t(){if(typeof crypto<`u`&&typeof crypto.randomUUID==`function`)return crypto.randomUUID();if(typeof window<`u`&&window.crypto!==void 0&&typeof window.crypto.randomUUID==`function`)return window.crypto.randomUUID();let e=new Uint8Array(16);crypto.getRandomValues(e),e[6]=e[6]&15|64,e[8]=e[8]&63|128;let t=[...e].map(e=>e.toString(16).padStart(2,`0`)).join(``);return`${t.slice(0,8)}-${t.slice(8,12)}-${t.slice(12,16)}-${t.slice(16,20)}-${t.slice(20)}`}async function n(){let n=localStorage.getItem(e);return n||(n=t(),localStorage.setItem(e,n)),n}export{n,t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{m as e}from"./api-
|
|
1
|
+
import{m as e}from"./api-D0NuC-H6.js";import{c as t,f as n}from"./vendor-core-DnC_SdtD.js";var r={user:0,admin:1,master:2};function i(e,t){return(r[e]??0)>=(r[t]??0)}function a(r,a,o){let{user:s}=n(e()),c=s.value?.role??`user`;if(a&&!r)return o?c===a:i(c,a);r??=t();let l=!r?.meta?.auth||r?.meta?.auth.requiresAuth===!1,u=a??r.meta?.auth?.role??`user`;return l||u===`none`?!0:o?c===u:i(c,u)}export{a as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{Oi as e,Ri as t,o as n,rt as r,y as i}from"./vendor-cameraui-BW07WHCL.js";import{At as a,D as o,Ft as s,Lt as c,O as l,Pt as u,T as d,m as f}from"./api-BYHmEN-k.js";import{J as p,Q as m,Y as h,dn as g,mn as _,mr as v,pr as y,un as b,ur as x,xr as S,zn as C}from"./vendor-c9Zhw4pk.js";import{d as w,l as ee}from"./vendor-core-DIDAOE43.js";import{t as te}from"./hasPermission-5qPWobFN.js";import{t as T}from"./useCuiDialog-CmKWBtPJ.js";var E={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function D(e,t){return C(),_(`svg`,E,[...t[0]||=[g(`path`,{fill:`currentColor`,d:`M20.916 9.564a1 1 0 0 0-.513-1.316L7.328 2.492c-.995-.438-2.22.051-2.645 1.042l-2.21 5.154a2 2 0 0 0 1.052 2.624L9.563 13.9L8.323 17H4v-3H2v8h2v-3h4.323c.823 0 1.552-.494 1.856-1.258l1.222-3.054l5.205 2.23a1 1 0 0 0 1.31-.517l.312-.71l1.701.68l2-5l-1.536-.613zm-4.434 5.126L4.313 9.475l2.208-5.152l12.162 5.354z`},null,-1)]])}var O=x({name:`bx-cctv`,render:D}),k={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function A(e,t){return C(),_(`svg`,k,[...t[0]||=[g(`path`,{fill:`currentColor`,d:`M20 3H4a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2m-5 5h-2V6h2zm4 0h-2V6h2zm1 5H4a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-4a2 2 0 0 0-2-2m-5 5h-2v-2h2zm4 0h-2v-2h2z`},null,-1)]])}var j=x({name:`bxs-server`,render:A});async function M(e){return(await u.get(`/instances`,{signal:e})).data}async function N(e){return(await u.post(`/instances`,e)).data}async function P({id:e,data:t}){return(await u.put(`/instances/${e}`,t)).data}async function F(e){await u.delete(`/instances/${e}`)}async function I(e){return(await u.patch(`/instances/${e}/favorite`)).data}async function L(e){return(await u.post(`/instances/${e}/login`)).data}async function R(e,t){return(await u.get(`/instances/${e}/status`,{signal:t})).data}var z=class{_queryClient=m();toast=o();t=l.global.t;listQuery(){return d({queryKey:[`instances`],queryFn:({signal:e})=>M(e)})}statusQueries(e){return h({queries:b(()=>S(e).map(e=>({queryKey:[`instances`,e.id,`status`],queryFn:({signal:t})=>R(e.id,t),refetchInterval:15e3,retry:!1})))})}createMutation(){return p({mutationFn:N,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`instances`]}),this.toast.add({severity:`success`,detail:this.t(`views.settings.instances.added`),life:3e3})}})}updateMutation(){return p({mutationFn:P,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`instances`]}),this.toast.add({severity:`success`,detail:this.t(`views.settings.instances.updated`),life:3e3})}})}deleteMutation(){return p({mutationFn:async e=>{await F(e),await this._queryClient.cancelQueries({queryKey:[`instances`,e,`status`]}),this._queryClient.removeQueries({queryKey:[`instances`,e,`status`]})},onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`instances`]}),this.toast.add({severity:`success`,detail:this.t(`views.settings.instances.removed`),life:3e3})}})}toggleFavoriteMutation(){return p({mutationFn:I,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`instances`]})}})}loginMutation(){return p({mutationFn:L,onError:()=>{}})}},B=3e4,V=5e3,H=`__home__`,U=new Set([`localhost`,`127.0.0.1`,`::1`]),W=a(`Instances`);async function G(e,t){try{let n=AbortSignal.timeout(V),r=t?AbortSignal.any([n,t]):n,i=await fetch(`${e}/api/health`,{signal:r});return W.debug(`[probe]`,`${e} → ${i.ok?`OK`:`HTTP ${i.status}`}`),i.ok}catch(t){let n=t instanceof Error?t.message:String(t);return W.debug(`[probe]`,`${e} → FAIL`,n),!1}}function K(e){return{access:e.access_token,accessExpiresAt:e.access_token_expires_at,refresh:e.refresh_token,refreshExpiresAt:e.refresh_token_expires_at}}function ne(e,t){return{_id:t?._id??``,username:t?.username??``,email:t?.email,role:t?.role??``,firstLogin:t?.firstLogin,avatar:t?.avatar,language:`auto`,access_token:e.access,refresh_token:e.refresh??``,token_type:`Bearer`,access_token_expires_at:e.accessExpiresAt??0,refresh_token_expires_at:e.refreshExpiresAt??0,internalAddresses:[],externalAddresses:[]}}var q=w(`instances`,()=>{let a=f(),u=ee(),d=o(),p=T(),h=m(),{t:g}=l.global,_=e(`instanceTokens`,{}),x=e(`activeInstanceId`,null),S=v(!1),C=v(null),w=v(0),E=0,D=v(null),O=v([]),k=t(`redirectInfo`,null,{serializer:{read:e=>e?JSON.parse(e):null,write:e=>JSON.stringify(e)}}),A=b(()=>x.value===null),j=b(()=>x.value===null?null:O.value.find(e=>e.id===x.value)?.url??null);async function R(){try{if(!te(void 0,`admin`))return;let e=await M();O.value=e.instances,D.value=e.homeId,W.debug(`[fetch]`,`loaded ${e.instances.length} instances`,{homeId:e.homeId})}catch(e){W.warn(`[fetch]`,`failed`,e)}}let z=b(()=>{let e=D.value;return O.value.filter(t=>!(e&&t.remoteHomeId&&t.remoteHomeId===e)).map(e=>{let t=_.value[e.id];return{id:e.id,name:e.name,url:e.url,hasCredentials:!!e.credentials,favorite:e.favorite??!0,userData:t?.userData??null,lastConnectedAt:t?.lastConnectedAt??null,isHome:!1}})});function V(){let e=_.value[H],t=x.value===null?s().target.value?.endpoint.url??e?.url??window.location.origin:e?.url??window.location.origin;return{id:`home`,name:g(`navigation.home`),url:t,hasCredentials:!1,favorite:!1,userData:e?.userData??null,lastConnectedAt:e?.lastConnectedAt??null,isHome:!0}}let q=b(()=>{if(x.value!==null){let e=z.value.find(e=>e.id===x.value);if(e)return e}return V()}),J=b(()=>z.value.filter(e=>e.favorite)),Y=b(()=>J.value.length>0||x.value!==null||k.value!==null);function X(e){return O.value.find(t=>t.id===e)?.favorite??!0}async function re(e){let{favorite:t}=await I(e),n=O.value.find(t=>t.id===e);n&&(n.favorite=t)}async function ie(e){let t=await N(e);return O.value=[...O.value,t],t}async function ae(e){await F(e),O.value=O.value.filter(t=>t.id!==e),delete _.value[e]}async function oe(e,t){let n=await P({id:e,data:t}),r=O.value.findIndex(t=>t.id===e);r!==-1&&(O.value[r]=n)}async function se(e,t){let n=O.value.find(t=>t.id===e);return n?G(n.url,t):!1}function Z(){let e=s().target.value;if(!e?.tokens.access){W.debug(`[save-tokens]`,`skipped — no live access token`);return}let t=x.value??H;_.value[t]={userData:ne(e.tokens,a.user??void 0),lastConnectedAt:Date.now(),url:e.endpoint.url},W.debug(`[save-tokens]`,`slot=${t} url=${e.endpoint.url}`)}function ce(){if(x.value===null){c.value=null,W.debug(`[restore-override]`,`no active instance — home target`);return}let e=_.value[x.value],t=e?.url??e?.userData?.internalAddresses?.[0]??e?.userData?.externalAddresses?.[0]??null;c.value=t,W.debug(`[restore-override]`,`activeId=${x.value} → ${t??`no cached url`}`)}async function Q(e){if(S.value){W.warn(`[switch]`,`ignored — another switch is already in progress`);return}let t=e===null?V():z.value.find(t=>t.id===e)??V();if(e!==null&&$(t.url)&&!await ue(t.name)){W.debug(`[switch]`,`URL handoff declined by user`);return}let o=++E;S.value=!0,C.value=t.name,W.debug(`[switch]`,`START targetId=${e??`home`} gen=${o}`),W.debug(`[switch]`,`target resolved — name="${t.name}" url=${t.url} hasCreds=${t.hasCredentials}`);try{if(e!==null){let e=await G(t.url);if(o!==E){W.debug(`[switch]`,`aborted after probe — newer gen=${E}`);return}if(!e){W.warn(`[switch]`,`target unreachable — ${t.url}`),d.add({severity:`warn`,detail:g(`instances.unreachable`,{name:t.name}),life:3e3});return}}let l=null;if(e!==null&&t.hasCredentials)try{l=await L(e),W.debug(`[switch]`,`backend relay login OK`)}catch(e){W.warn(`[switch]`,`backend relay login FAILED — will try cached tokens`,e)}if(o!==E){W.debug(`[switch]`,`aborted after relay-login — newer gen=${E}`);return}Z();let f=e??H,p=l?K(l):le(f);if(W.debug(`[switch]`,`tokens source: ${l?`fresh`:p?`cached`:`none`} (slot=${f})`),e!==null&&$(t.url)){W.debug(`[switch]`,`URL handoff required — leaving SPA`),await de(t,l);return}let m=s();if(m.reset(),W.debug(`[switch]`,`kernel RESET`),r(),i(),n(),h.clear(),W.debug(`[switch]`,`vue-query cleared`),x.value=e,c.value=e===null?null:t.url,W.debug(`[switch]`,`activeId=${e} instanceOverride=${c.value??`null`}`),p&&l&&(_.value[f]={userData:l,lastConnectedAt:Date.now(),url:t.url},a.user={_id:l._id,username:l.username,role:l.role,firstLogin:l.firstLogin,avatar:l.avatar}),p){let n={url:t.url,mode:`direct-lan`,priority:0};W.debug(`[switch]`,`seedAndRetry → ${n.url}`),await Promise.race([m.seedAndRetry({endpoint:n,tokens:p},e??`home`),new Promise((e,t)=>setTimeout(()=>t(Error(`switch_timeout`)),B))])}else{W.warn(`[switch]`,`no tokens — boot + route to login`),m.boot(e??`home`),a.user=null,u.push(`/`);return}if(o!==E){W.debug(`[switch]`,`aborted after seedAndRetry — newer gen=${E}`);return}w.value++,W.debug(`[switch]`,`DONE gen=${o} → /home`),u.push(`/home`)}catch(e){(e instanceof Error?e.message:String(e))===`switch_timeout`?(W.error(`[switch]`,`TIMEOUT after ${B}ms`),d.add({severity:`error`,detail:g(`instances.switch_timeout`,{name:C.value??``}),life:3e3})):(W.error(`[switch]`,`failed`,e),d.add({severity:`error`,detail:e,life:3e3}))}finally{o===E&&(S.value=!1,C.value=null)}}function le(e){let t=_.value[e];return t?.userData?.access_token?K(t.userData):null}function $(e){try{let t=new URL(e),n=new URL(window.location.origin),r=n.protocol===`https:`&&t.protocol===`http:`,i=U.has(t.hostname)&&!U.has(n.hostname);return r||i}catch{return!1}}function ue(e){return W.warn(`[switch]`,`target "${e}" requires URL handoff — asking user confirmation`),new Promise(t=>{let n=!1,r=e=>{n||(n=!0,t(e))};p.openTextDialog({data:{title:g(`instances.insecure_handoff_title`),confirmText:g(`instances.insecure_handoff_confirm`),contentText:g(`instances.insecure_handoff_message`,{name:e}),confirmButtonProps:{severity:`danger`}},onConfirm:()=>r(!0),onCancel:()=>r(!1)})})}async function de(e,t){let n={_reset:!0,_sourceUrl:window.location.origin,_instanceName:e.name};t&&Object.assign(n,t);let r=encodeURIComponent(btoa(JSON.stringify(n))),i=`${e.url.split(`#`)[0]}#auth=${r}`;W.debug(`[url-handoff]`,`→ ${e.url} (with token=${t?`yes`:`no`})`),window.location.href=i}function fe(){_.value={},x.value=null,c.value=null,k.value=null,O.value=[],D.value=null,W.debug(`[reset]`,`store cleared`)}return{instances:z,activeInstance:q,activeId:x,activeUrl:j,isHomeActive:A,isMultiInstance:Y,isSwitching:y(S),switchTargetName:y(C),switchKey:y(w),serverHomeId:D,redirectInfo:k,serverInstances:O,instanceTokens:_,favoriteInstances:J,isFavorite:X,toggleFavorite:re,fetchInstances:R,addInstance:ie,removeInstance:ae,updateInstance:oe,switchInstance:Q,probeInstance:se,reset:fe,saveCurrentTokens:Z,restoreActiveOverride:ce}});export{O as i,z as n,j as r,q as t};
|
|
1
|
+
import{Oi as e,Ri as t,o as n,rt as r,y as i}from"./vendor-cameraui-DhctzD3V.js";import{At as a,D as o,Ft as s,Lt as c,O as l,Pt as u,T as d,m as f}from"./api-D0NuC-H6.js";import{J as p,Q as m,Y as h,dn as g,mn as _,mr as v,pr as y,un as b,ur as x,xr as S,zn as C}from"./vendor-c9Zhw4pk.js";import{d as w,l as ee}from"./vendor-core-DnC_SdtD.js";import{t as te}from"./hasPermission-GDMFAeTg.js";import{t as T}from"./useCuiDialog-DUmWy0l-.js";var E={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function D(e,t){return C(),_(`svg`,E,[...t[0]||=[g(`path`,{fill:`currentColor`,d:`M20.916 9.564a1 1 0 0 0-.513-1.316L7.328 2.492c-.995-.438-2.22.051-2.645 1.042l-2.21 5.154a2 2 0 0 0 1.052 2.624L9.563 13.9L8.323 17H4v-3H2v8h2v-3h4.323c.823 0 1.552-.494 1.856-1.258l1.222-3.054l5.205 2.23a1 1 0 0 0 1.31-.517l.312-.71l1.701.68l2-5l-1.536-.613zm-4.434 5.126L4.313 9.475l2.208-5.152l12.162 5.354z`},null,-1)]])}var O=x({name:`bx-cctv`,render:D}),k={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function A(e,t){return C(),_(`svg`,k,[...t[0]||=[g(`path`,{fill:`currentColor`,d:`M20 3H4a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2m-5 5h-2V6h2zm4 0h-2V6h2zm1 5H4a2 2 0 0 0-2 2v4a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-4a2 2 0 0 0-2-2m-5 5h-2v-2h2zm4 0h-2v-2h2z`},null,-1)]])}var j=x({name:`bxs-server`,render:A});async function M(e){return(await u.get(`/instances`,{signal:e})).data}async function N(e){return(await u.post(`/instances`,e)).data}async function P({id:e,data:t}){return(await u.put(`/instances/${e}`,t)).data}async function F(e){await u.delete(`/instances/${e}`)}async function I(e){return(await u.patch(`/instances/${e}/favorite`)).data}async function L(e){return(await u.post(`/instances/${e}/login`)).data}async function R(e,t){return(await u.get(`/instances/${e}/status`,{signal:t})).data}var z=class{_queryClient=m();toast=o();t=l.global.t;listQuery(){return d({queryKey:[`instances`],queryFn:({signal:e})=>M(e)})}statusQueries(e){return h({queries:b(()=>S(e).map(e=>({queryKey:[`instances`,e.id,`status`],queryFn:({signal:t})=>R(e.id,t),refetchInterval:15e3,retry:!1})))})}createMutation(){return p({mutationFn:N,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`instances`]}),this.toast.add({severity:`success`,detail:this.t(`views.settings.instances.added`),life:3e3})}})}updateMutation(){return p({mutationFn:P,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`instances`]}),this.toast.add({severity:`success`,detail:this.t(`views.settings.instances.updated`),life:3e3})}})}deleteMutation(){return p({mutationFn:async e=>{await F(e),await this._queryClient.cancelQueries({queryKey:[`instances`,e,`status`]}),this._queryClient.removeQueries({queryKey:[`instances`,e,`status`]})},onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`instances`]}),this.toast.add({severity:`success`,detail:this.t(`views.settings.instances.removed`),life:3e3})}})}toggleFavoriteMutation(){return p({mutationFn:I,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`instances`]})}})}loginMutation(){return p({mutationFn:L,onError:()=>{}})}},B=3e4,V=5e3,H=`__home__`,U=new Set([`localhost`,`127.0.0.1`,`::1`]),W=a(`Instances`);async function G(e,t){try{let n=AbortSignal.timeout(V),r=t?AbortSignal.any([n,t]):n,i=await fetch(`${e}/api/health`,{signal:r});return W.debug(`[probe]`,`${e} → ${i.ok?`OK`:`HTTP ${i.status}`}`),i.ok}catch(t){let n=t instanceof Error?t.message:String(t);return W.debug(`[probe]`,`${e} → FAIL`,n),!1}}function K(e){return{access:e.access_token,accessExpiresAt:e.access_token_expires_at,refresh:e.refresh_token,refreshExpiresAt:e.refresh_token_expires_at}}function ne(e,t){return{_id:t?._id??``,username:t?.username??``,email:t?.email,role:t?.role??``,firstLogin:t?.firstLogin,avatar:t?.avatar,language:`auto`,access_token:e.access,refresh_token:e.refresh??``,token_type:`Bearer`,access_token_expires_at:e.accessExpiresAt??0,refresh_token_expires_at:e.refreshExpiresAt??0,internalAddresses:[],externalAddresses:[]}}var q=w(`instances`,()=>{let a=f(),u=ee(),d=o(),p=T(),h=m(),{t:g}=l.global,_=e(`instanceTokens`,{}),x=e(`activeInstanceId`,null),S=v(!1),C=v(null),w=v(0),E=0,D=v(null),O=v([]),k=t(`redirectInfo`,null,{serializer:{read:e=>e?JSON.parse(e):null,write:e=>JSON.stringify(e)}}),A=b(()=>x.value===null),j=b(()=>x.value===null?null:O.value.find(e=>e.id===x.value)?.url??null);async function R(){try{if(!te(void 0,`admin`))return;let e=await M();O.value=e.instances,D.value=e.homeId,W.debug(`[fetch]`,`loaded ${e.instances.length} instances`,{homeId:e.homeId})}catch(e){W.warn(`[fetch]`,`failed`,e)}}let z=b(()=>{let e=D.value;return O.value.filter(t=>!(e&&t.remoteHomeId&&t.remoteHomeId===e)).map(e=>{let t=_.value[e.id];return{id:e.id,name:e.name,url:e.url,hasCredentials:!!e.credentials,favorite:e.favorite??!0,userData:t?.userData??null,lastConnectedAt:t?.lastConnectedAt??null,isHome:!1}})});function V(){let e=_.value[H],t=x.value===null?s().target.value?.endpoint.url??e?.url??window.location.origin:e?.url??window.location.origin;return{id:`home`,name:g(`navigation.home`),url:t,hasCredentials:!1,favorite:!1,userData:e?.userData??null,lastConnectedAt:e?.lastConnectedAt??null,isHome:!0}}let q=b(()=>{if(x.value!==null){let e=z.value.find(e=>e.id===x.value);if(e)return e}return V()}),J=b(()=>z.value.filter(e=>e.favorite)),Y=b(()=>J.value.length>0||x.value!==null||k.value!==null);function X(e){return O.value.find(t=>t.id===e)?.favorite??!0}async function re(e){let{favorite:t}=await I(e),n=O.value.find(t=>t.id===e);n&&(n.favorite=t)}async function ie(e){let t=await N(e);return O.value=[...O.value,t],t}async function ae(e){await F(e),O.value=O.value.filter(t=>t.id!==e),delete _.value[e]}async function oe(e,t){let n=await P({id:e,data:t}),r=O.value.findIndex(t=>t.id===e);r!==-1&&(O.value[r]=n)}async function se(e,t){let n=O.value.find(t=>t.id===e);return n?G(n.url,t):!1}function Z(){let e=s().target.value;if(!e?.tokens.access){W.debug(`[save-tokens]`,`skipped — no live access token`);return}let t=x.value??H;_.value[t]={userData:ne(e.tokens,a.user??void 0),lastConnectedAt:Date.now(),url:e.endpoint.url},W.debug(`[save-tokens]`,`slot=${t} url=${e.endpoint.url}`)}function ce(){if(x.value===null){c.value=null,W.debug(`[restore-override]`,`no active instance — home target`);return}let e=_.value[x.value],t=e?.url??e?.userData?.internalAddresses?.[0]??e?.userData?.externalAddresses?.[0]??null;c.value=t,W.debug(`[restore-override]`,`activeId=${x.value} → ${t??`no cached url`}`)}async function Q(e){if(S.value){W.warn(`[switch]`,`ignored — another switch is already in progress`);return}let t=e===null?V():z.value.find(t=>t.id===e)??V();if(e!==null&&$(t.url)&&!await ue(t.name)){W.debug(`[switch]`,`URL handoff declined by user`);return}let o=++E;S.value=!0,C.value=t.name,W.debug(`[switch]`,`START targetId=${e??`home`} gen=${o}`),W.debug(`[switch]`,`target resolved — name="${t.name}" url=${t.url} hasCreds=${t.hasCredentials}`);try{if(e!==null){let e=await G(t.url);if(o!==E){W.debug(`[switch]`,`aborted after probe — newer gen=${E}`);return}if(!e){W.warn(`[switch]`,`target unreachable — ${t.url}`),d.add({severity:`warn`,detail:g(`instances.unreachable`,{name:t.name}),life:3e3});return}}let l=null;if(e!==null&&t.hasCredentials)try{l=await L(e),W.debug(`[switch]`,`backend relay login OK`)}catch(e){W.warn(`[switch]`,`backend relay login FAILED — will try cached tokens`,e)}if(o!==E){W.debug(`[switch]`,`aborted after relay-login — newer gen=${E}`);return}Z();let f=e??H,p=l?K(l):le(f);if(W.debug(`[switch]`,`tokens source: ${l?`fresh`:p?`cached`:`none`} (slot=${f})`),e!==null&&$(t.url)){W.debug(`[switch]`,`URL handoff required — leaving SPA`),await de(t,l);return}let m=s();if(m.reset(),W.debug(`[switch]`,`kernel RESET`),r(),i(),n(),h.clear(),W.debug(`[switch]`,`vue-query cleared`),x.value=e,c.value=e===null?null:t.url,W.debug(`[switch]`,`activeId=${e} instanceOverride=${c.value??`null`}`),p&&l&&(_.value[f]={userData:l,lastConnectedAt:Date.now(),url:t.url},a.user={_id:l._id,username:l.username,role:l.role,firstLogin:l.firstLogin,avatar:l.avatar}),p){let n={url:t.url,mode:`direct-lan`,priority:0};W.debug(`[switch]`,`seedAndRetry → ${n.url}`),await Promise.race([m.seedAndRetry({endpoint:n,tokens:p},e??`home`),new Promise((e,t)=>setTimeout(()=>t(Error(`switch_timeout`)),B))])}else{W.warn(`[switch]`,`no tokens — boot + route to login`),m.boot(e??`home`),a.user=null,u.push(`/`);return}if(o!==E){W.debug(`[switch]`,`aborted after seedAndRetry — newer gen=${E}`);return}w.value++,W.debug(`[switch]`,`DONE gen=${o} → /home`),u.push(`/home`)}catch(e){(e instanceof Error?e.message:String(e))===`switch_timeout`?(W.error(`[switch]`,`TIMEOUT after ${B}ms`),d.add({severity:`error`,detail:g(`instances.switch_timeout`,{name:C.value??``}),life:3e3})):(W.error(`[switch]`,`failed`,e),d.add({severity:`error`,detail:e,life:3e3}))}finally{o===E&&(S.value=!1,C.value=null)}}function le(e){let t=_.value[e];return t?.userData?.access_token?K(t.userData):null}function $(e){try{let t=new URL(e),n=new URL(window.location.origin),r=n.protocol===`https:`&&t.protocol===`http:`,i=U.has(t.hostname)&&!U.has(n.hostname);return r||i}catch{return!1}}function ue(e){return W.warn(`[switch]`,`target "${e}" requires URL handoff — asking user confirmation`),new Promise(t=>{let n=!1,r=e=>{n||(n=!0,t(e))};p.openTextDialog({data:{title:g(`instances.insecure_handoff_title`),confirmText:g(`instances.insecure_handoff_confirm`),contentText:g(`instances.insecure_handoff_message`,{name:e}),confirmButtonProps:{severity:`danger`}},onConfirm:()=>r(!0),onCancel:()=>r(!1)})})}async function de(e,t){let n={_reset:!0,_sourceUrl:window.location.origin,_instanceName:e.name};t&&Object.assign(n,t);let r=encodeURIComponent(btoa(JSON.stringify(n))),i=`${e.url.split(`#`)[0]}#auth=${r}`;W.debug(`[url-handoff]`,`→ ${e.url} (with token=${t?`yes`:`no`})`),window.location.href=i}function fe(){_.value={},x.value=null,c.value=null,k.value=null,O.value=[],D.value=null,W.debug(`[reset]`,`store cleared`)}return{instances:z,activeInstance:q,activeId:x,activeUrl:j,isHomeActive:A,isMultiInstance:Y,isSwitching:y(S),switchTargetName:y(C),switchKey:y(w),serverHomeId:D,redirectInfo:k,serverInstances:O,instanceTokens:_,favoriteInstances:J,isFavorite:X,toggleFavorite:re,fetchInstances:R,addInstance:ie,removeInstance:ae,updateInstance:oe,switchInstance:Q,probeInstance:se,reset:fe,saveCurrentTokens:Z,restoreActiveOverride:ce}});export{O as i,z as n,j as r,q as t};
|
|
@@ -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-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-89935ae5]{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-89935ae5]{align-items:center;gap:.5rem;display:flex}.cui-connection-indicator__text[data-v-89935ae5]{color:var(--text-color);white-space:nowrap;font-size:.875rem}.cui-connection-indicator__button[data-v-89935ae5]{margin-left:.5rem}.fade-enter-active[data-v-89935ae5],.fade-leave-active[data-v-89935ae5]{transition:opacity .3s}.fade-enter-from[data-v-89935ae5],.fade-leave-to[data-v-89935ae5]{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-6870cf26],.navbar-group-leave-active[data-v-6870cf26]{transition:all .2s;overflow:hidden}.navbar-group-enter-from[data-v-6870cf26],.navbar-group-leave-to[data-v-6870cf26]{opacity:0;max-height:0}.navbar-group-enter-to[data-v-6870cf26],.navbar-group-leave-from[data-v-6870cf26]{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-20013c43]{background:var(--topbar-background);border-bottom:1px solid var(--border-color)}.playground-container[data-v-e02167ca]{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-e02167ca]{border-radius:0 0 2px 2px}}.playground-container .playground[data-v-e02167ca]{position:relative}.playground-container .playground:hover .handle[data-v-e02167ca]{opacity:1}.playground-container .playground.customizing[data-v-e02167ca]{cursor:crosshair}.playground-container .playground.start .custom-notice[data-v-e02167ca]{opacity:1}.playground-container .playground .custom-notice[data-v-e02167ca]{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-e02167ca]{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-e02167ca]:after{content:"Click"}.playground-container .playground .sandbox[data-v-e02167ca]{touch-action:none;width:100%;height:100%;position:relative;inset:0}.playground-container .playground .sandbox .shadowboard[data-v-e02167ca]{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-e02167ca]{opacity:0}.playground-container .playground.customizing .handle[data-v-e02167ca]{pointer-events:none}.handles[data-v-e02167ca]{z-index:10;position:absolute;inset:0}.handles .clipboard[data-v-e02167ca]{z-index:1;position:absolute;inset:0}.handles .clipboard .polygon-container[data-v-e02167ca]{position:absolute}.handles .clipboard .polygon-container path.selected[data-v-e02167ca]{stroke-width:2px}.handles .clipboard .polygon-container path.dash[data-v-e02167ca]{stroke-dasharray:5 5}.handles .delete-point[data-v-e02167ca],.handles .handle[data-v-e02167ca]{z-index:2;width:20px;height:20px;position:absolute}.handles .handle[data-v-e02167ca]{opacity:.8;border-radius:50%;transition:opacity .25s;box-shadow:inset 0 0 0 10px #fff}.handles .handle.is-dragging[data-v-e02167ca],.handles .handle.is-pointer-down[data-v-e02167ca]{z-index:100;cursor:none;transition:box-shadow;box-shadow:inset 0 0 0 10px #d0d0d0}.handles .handle.draggable[data-v-e02167ca]{cursor:grab}.handles .handle.show-delete .delete-point[data-v-e02167ca]{opacity:1;transition:transform .25s cubic-bezier(.15,1,.3,1.1),opacity .25s;transform:scale3d(.9,.9,.9)}.handles .handle[data-v-e02167ca]:after{content:"";display:block;position:absolute;inset:-8px}.handles .handle .delete-point[data-v-e02167ca]{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-e02167ca]: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-38cd7548]{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-371c30fc]{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-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-6870cf26],.navbar-group-leave-active[data-v-6870cf26]{transition:all .2s;overflow:hidden}.navbar-group-enter-from[data-v-6870cf26],.navbar-group-leave-to[data-v-6870cf26]{opacity:0;max-height:0}.navbar-group-enter-to[data-v-6870cf26],.navbar-group-leave-from[data-v-6870cf26]{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-20013c43]{background:var(--topbar-background);border-bottom:1px solid var(--border-color)}.playground-container[data-v-e02167ca]{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-e02167ca]{border-radius:0 0 2px 2px}}.playground-container .playground[data-v-e02167ca]{position:relative}.playground-container .playground:hover .handle[data-v-e02167ca]{opacity:1}.playground-container .playground.customizing[data-v-e02167ca]{cursor:crosshair}.playground-container .playground.start .custom-notice[data-v-e02167ca]{opacity:1}.playground-container .playground .custom-notice[data-v-e02167ca]{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-e02167ca]{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-e02167ca]:after{content:"Click"}.playground-container .playground .sandbox[data-v-e02167ca]{touch-action:none;width:100%;height:100%;position:relative;inset:0}.playground-container .playground .sandbox .shadowboard[data-v-e02167ca]{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-e02167ca]{opacity:0}.playground-container .playground.customizing .handle[data-v-e02167ca]{pointer-events:none}.handles[data-v-e02167ca]{z-index:10;position:absolute;inset:0}.handles .clipboard[data-v-e02167ca]{z-index:1;position:absolute;inset:0}.handles .clipboard .polygon-container[data-v-e02167ca]{position:absolute}.handles .clipboard .polygon-container path.selected[data-v-e02167ca]{stroke-width:2px}.handles .clipboard .polygon-container path.dash[data-v-e02167ca]{stroke-dasharray:5 5}.handles .delete-point[data-v-e02167ca],.handles .handle[data-v-e02167ca]{z-index:2;width:20px;height:20px;position:absolute}.handles .handle[data-v-e02167ca]{opacity:.8;border-radius:50%;transition:opacity .25s;box-shadow:inset 0 0 0 10px #fff}.handles .handle.is-dragging[data-v-e02167ca],.handles .handle.is-pointer-down[data-v-e02167ca]{z-index:100;cursor:none;transition:box-shadow;box-shadow:inset 0 0 0 10px #d0d0d0}.handles .handle.draggable[data-v-e02167ca]{cursor:grab}.handles .handle.show-delete .delete-point[data-v-e02167ca]{opacity:1;transition:transform .25s cubic-bezier(.15,1,.3,1.1),opacity .25s;transform:scale3d(.9,.9,.9)}.handles .handle[data-v-e02167ca]:after{content:"";display:block;position:absolute;inset:-8px}.handles .handle .delete-point[data-v-e02167ca]{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-e02167ca]: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-38cd7548]{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-371c30fc]{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}
|