@camera.ui/server 2.2.8 → 2.3.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 +8 -1
- package/dist/interface/assets/{404-BYV0u5qE.js → 404-C0X5UBF4.js} +1 -1
- package/dist/interface/assets/About-Ctp_u5qK.js +1 -0
- package/dist/interface/assets/Assistant-Bj2bAUHD.css +1 -0
- package/dist/interface/assets/Assistant-CDrBV_mg.js +1 -0
- package/dist/interface/assets/Automation-Dp6V80Iz.js +3 -0
- package/dist/interface/assets/{Automation-BSicfOGF.css → Automation-R5o9sXYY.css} +1 -1
- package/dist/interface/assets/{AutomationImport-Iu-K82Os.js → AutomationImport-DKgg7atE.js} +2 -2
- package/dist/interface/assets/AutomationStore-CU-m5VC8.js +2 -0
- package/dist/interface/assets/{AutomationStoreDetail-BbvLRJ5u.js → AutomationStoreDetail-CiyIs8Iu.js} +2 -2
- package/dist/interface/assets/Automations-Dljh-sWu.js +2 -0
- package/dist/interface/assets/Camera-0p0P_mbp.css +1 -0
- package/dist/interface/assets/Camera-Bvovab-8.js +2 -0
- package/dist/interface/assets/{CameraConsole-JBD3ZmJ6.js → CameraConsole-D_Fv-MAi.js} +1 -1
- package/dist/interface/assets/{Cameras-R5mJGMK9.js → Cameras-Cq7Gw-fk.js} +2 -2
- package/dist/interface/assets/{Camview-DH6_8CxH.css → Camview-Bs2VvmUS.css} +1 -1
- package/dist/interface/assets/Camview-CP6PA20C.js +1 -0
- package/dist/interface/assets/{CertificateUpload-B9S4EOQs.js → CertificateUpload-DjzNMFc3.js} +1 -1
- package/dist/interface/assets/{Config-CbFl5Wcp.js → Config-Dl2TlyFe.js} +1 -1
- package/dist/interface/assets/{ConfigActionAssistant-DIOh6-np.js → ConfigActionAssistant-DCkJ_Iqq.js} +1 -1
- package/dist/interface/assets/ConfigActionCameraControl-2pzl59gR.js +1 -0
- package/dist/interface/assets/{ConfigActionDelay-B9i4YZjy.js → ConfigActionDelay-BAp1dr0N.js} +1 -1
- package/dist/interface/assets/{ConfigActionHttp-DFtxAa3U.js → ConfigActionHttp-_kqgEuun.js} +1 -1
- package/dist/interface/assets/{ConfigActionImageInput-CuTH4Nw2.js → ConfigActionImageInput-BgtACnCm.js} +1 -1
- package/dist/interface/assets/{ConfigActionMqtt-B9SfWP-G.js → ConfigActionMqtt-z7UzccW5.js} +1 -1
- package/dist/interface/assets/{ConfigActionNotification-BGMIByJT.js → ConfigActionNotification-bhbb5AqU.js} +1 -1
- package/dist/interface/assets/{ConfigActionNotificationControl-Cz72szMd.js → ConfigActionNotificationControl-BbvX8MFu.js} +1 -1
- package/dist/interface/assets/{ConfigActionOutput-BG6DoIRe.js → ConfigActionOutput-DdgSg3FU.js} +1 -1
- package/dist/interface/assets/{ConfigActionPlugin-B5oRSE9n.js → ConfigActionPlugin-DGjZd1L0.js} +1 -1
- package/dist/interface/assets/ConfigActionSensor-DmImWFAo.js +1 -0
- package/dist/interface/assets/{ConfigActionSnapshot-Di-uxMrg.js → ConfigActionSnapshot-hVHSfdtS.js} +1 -1
- package/dist/interface/assets/{ConfigActionVariable-BBpUti5A.js → ConfigActionVariable-BIpruwsx.js} +1 -1
- package/dist/interface/assets/{ConfigConditionIfElse-DjOKPXQw.js → ConfigConditionIfElse-DRSpsoR4.js} +1 -1
- package/dist/interface/assets/{ConfigConditionSensorState-BzvvZvD0.js → ConfigConditionSensorState-C2SNARH7.js} +1 -1
- package/dist/interface/assets/{ConfigConditionSwitch-DQvdfUxR.js → ConfigConditionSwitch-4SbQcU7N.js} +1 -1
- package/dist/interface/assets/{ConfigConditionTime-BqOElX5C.js → ConfigConditionTime-ESX3shbg.js} +1 -1
- package/dist/interface/assets/{ConfigSensorValueInput-BT-0LhSH.js → ConfigSensorValueInput-CTUdAA-R.js} +1 -1
- package/dist/interface/assets/{ConfigTriggerDetection-1OkudUah.js → ConfigTriggerDetection-BRr6ixxQ.js} +1 -1
- package/dist/interface/assets/{ConfigTriggerGeofence-HGatk3C5.js → ConfigTriggerGeofence-D-xRMGrT.js} +1 -1
- package/dist/interface/assets/{ConfigTriggerManual-DpRr_vVq.js → ConfigTriggerManual-aXD6k1qa.js} +1 -1
- package/dist/interface/assets/{ConfigTriggerMqtt-C_MId3BY.js → ConfigTriggerMqtt-pjHW4yOL.js} +1 -1
- package/dist/interface/assets/{ConfigTriggerSchedule-BmwDqd6N.js → ConfigTriggerSchedule-CYOt57qg.js} +1 -1
- package/dist/interface/assets/{ConfigTriggerSensor-Rgx8q4g8.js → ConfigTriggerSensor-BwJ_cAqd.js} +1 -1
- package/dist/interface/assets/{ConfigTriggerSystem-4VsHPmbn.js → ConfigTriggerSystem-DBXIrjzU.js} +1 -1
- package/dist/interface/assets/{ConfigTriggerWebhook-Bs7zEfY0.js → ConfigTriggerWebhook-CccBmMCb.js} +1 -1
- package/dist/interface/assets/Console-DWAaz1C6.js +1 -0
- package/dist/interface/assets/CuiAssistantConversation-B3xEiNNt.js +5 -0
- package/dist/interface/assets/{CuiAssistantConversation-BmBhwrNh.css → CuiAssistantConversation-C5ca1lgX.css} +1 -1
- package/dist/interface/assets/CuiAutomationRunsDialog-CfylVPLI.js +1 -0
- package/dist/interface/assets/CuiBottomSheet-ACN23VLS.js +1 -0
- package/dist/interface/assets/{CuiBottomSheet-Dd3uOtnC.js → CuiBottomSheet-DEVNeDqa.js} +1 -1
- package/dist/interface/assets/CuiCameraPipCard-rR_FW9zq.js +1 -0
- package/dist/interface/assets/CuiCameraRecordings-CnorhPhf.js +1 -0
- package/dist/interface/assets/CuiCameraShares-BxUgedC_.js +1 -0
- package/dist/interface/assets/{CuiCameraTable-C7WLZ2pA.js → CuiCameraTable-C3GB4Q2y.js} +2 -2
- package/dist/interface/assets/CuiCameraTable-MHfnZSyK.js +1 -0
- package/dist/interface/assets/CuiChartTable-TAzZgetO.js +1 -0
- package/dist/interface/assets/{CuiConsole-CkZML0iY.js → CuiConsole-Cf5lOCE1.js} +2 -2
- package/dist/interface/assets/{CuiDataTable-BFIhx1D3.js → CuiDataTable-DfjXa0C1.js} +1 -1
- package/dist/interface/assets/CuiLightControl-ChK-SvJp.js +1 -0
- package/dist/interface/assets/CuiList-C4fxd9lD.js +1 -0
- package/dist/interface/assets/CuiPluginCard-DMpANIQj.js +2 -0
- package/dist/interface/assets/CuiPluginCategoryChip-BKxJMid7.js +1 -0
- package/dist/interface/assets/{CuiPluginOAuthButton-BQZkTcgo.js → CuiPluginOAuthButton-DnQ838JJ.js} +2 -2
- package/dist/interface/assets/{CuiPluginTrustBadge-DbqdfdaL.js → CuiPluginTrustBadge-DyYDUWV6.js} +1 -1
- package/dist/interface/assets/{CuiQRCode-2WsWJQFi.js → CuiQRCode-S9fPi0_l.js} +1 -1
- package/dist/interface/assets/CuiSchema-DScmDQsh.js +1 -0
- package/dist/interface/assets/CuiTopNavbarItem-CT10aAlO.js +1 -0
- package/dist/interface/assets/Faces-Coy-tUVM.js +1 -0
- package/dist/interface/assets/FirstSteps-CrMJC049.js +1 -0
- package/dist/interface/assets/Floorplan-Bj_mVrxp.js +1 -0
- package/dist/interface/assets/{Floorplan-Ci63Zd8W.css → Floorplan-CT5TrMSD.css} +1 -1
- package/dist/interface/assets/Instances-B_mpKAng.js +1 -0
- package/dist/interface/assets/{Logs-DMehPk0t.js → Logs-fY1dpQk4.js} +2 -2
- package/dist/interface/assets/Menu-Bgi-NLdg.js +1 -0
- package/dist/interface/assets/Metrics-DnMeIrkf.css +1 -0
- package/dist/interface/assets/Metrics-k9KACiwh.js +12 -0
- package/dist/interface/assets/OAuthDeviceFlow-xTh83xmc.js +1 -0
- package/dist/interface/assets/Plugin-BB7x7UHw.css +1 -0
- package/dist/interface/assets/Plugin-VWq7sONB.js +1 -0
- package/dist/interface/assets/{PluginConsole-D1BRQCO9.js → PluginConsole-LnnDOVBL.js} +2 -2
- package/dist/interface/assets/PluginDetail-CKD9sbDx.js +2 -0
- package/dist/interface/assets/{PluginSchema-B9VsBHOU.js → PluginSchema-BnB0_6Sk.js} +1 -1
- package/dist/interface/assets/PluginSearch-BoBZLLbr.js +1 -0
- package/dist/interface/assets/PluginSearch-kGhweU1J.js +2 -0
- package/dist/interface/assets/{PluginUpdateProgress-uj0XPV-_.js → PluginUpdateProgress-DMx0QlgE.js} +1 -1
- package/dist/interface/assets/{Plugins-CPx9Hszm.js → Plugins-Ekmr6aVa.js} +1 -1
- package/dist/interface/assets/RecentEventsFilter-StLJNuks.js +1 -0
- package/dist/interface/assets/Recordings-8PqxJOI3.css +1 -0
- package/dist/interface/assets/Recordings-Bvkuk_TV.js +1 -0
- package/dist/interface/assets/SensorEdit-CAf9Nb01.js +1 -0
- package/dist/interface/assets/SensorHistory-il8bDErX.js +1 -0
- package/dist/interface/assets/Sensors-sxQ6HLKo.js +2 -0
- package/dist/interface/assets/Settings-Bu0G7Ebx.js +1 -0
- package/dist/interface/assets/{Settings-D7495zbV.css → Settings-DtCSaLPb.css} +1 -1
- package/dist/interface/assets/SettingsAccount-8OZJLQi-.js +1 -0
- package/dist/interface/assets/SettingsAccount-bSfFi9YH.js +1 -0
- package/dist/interface/assets/SettingsAppearance-CnvN_Tzr.js +1 -0
- package/dist/interface/assets/SettingsAppearance-EvPWgF4c.js +1 -0
- package/dist/interface/assets/SettingsAssistant-B6s6pHCx.js +1 -0
- package/dist/interface/assets/SettingsBackup-Dd2FaUcN.js +1 -0
- package/dist/interface/assets/SettingsList-SvCO_gfG.js +1 -0
- package/dist/interface/assets/SettingsMqtt-BXBzHX84.js +1 -0
- package/dist/interface/assets/SettingsNotifications-CV-jJwFV.js +1 -0
- package/dist/interface/assets/SettingsPermissions-GchFaWjz.js +1 -0
- package/dist/interface/assets/SettingsRecordings-C4Ch_jmV.js +1 -0
- package/dist/interface/assets/SettingsRemote-OZHDJKSq.js +2 -0
- package/dist/interface/assets/SettingsSystem-BJlHXwVs.js +2 -0
- package/dist/interface/assets/SettingsUsers-RGOkOzx0.js +1 -0
- package/dist/interface/assets/Terminal-DX-ECC91.js +4 -0
- package/dist/interface/assets/Training-B8my7vka.js +1 -0
- package/dist/interface/assets/Training-D1DDjCCD.css +1 -0
- package/dist/interface/assets/Updates-DmavyhAn.js +2 -0
- package/dist/interface/assets/{VariableInput-CcILik4M.js → VariableInput-DQJle67Y.js} +1 -1
- package/dist/interface/assets/{VariableSuggestions-Bj0HdrYW.js → VariableSuggestions-D8V739dF.js} +1 -1
- package/dist/interface/assets/{VersionsHandler-BA8Lcysg.js → VersionsHandler-B41TJhgY.js} +1 -1
- package/dist/interface/assets/{VirtualSensorCreate-DvHyw7I2.js → VirtualSensorCreate-MfLh-LpH.js} +1 -1
- package/dist/interface/assets/Workers-CafDeRhH.js +2 -0
- package/dist/interface/assets/api-By0v6EeA.css +2 -0
- package/dist/interface/assets/api-D1iULsSy.js +4 -0
- package/dist/interface/assets/{api-CKbL5jC7.js → api-DbUdfXO_.js} +1 -1
- package/dist/interface/assets/{assistant-CwmHp5bB.js → assistant-7hqP6OpA.js} +1 -1
- package/dist/interface/assets/{auth-AfZrkJ2f.js → auth-CDxrn7fe.js} +1 -1
- package/dist/interface/assets/{automations-DOCG0q8-.js → automations-CTTQlGCW.js} +1 -1
- package/dist/interface/assets/{cameraSources-mHEz9ROa.js → cameraSources-MOiE_1-W.js} +1 -1
- package/dist/interface/assets/cloudHandoff-CJzFH7CW.js +1 -0
- package/dist/interface/assets/{config-AG0SnOiY.js → config-6EiGxiYm.js} +1 -1
- package/dist/interface/assets/eventLabels-idFWh3Y_.js +1 -0
- package/dist/interface/assets/{flowSchema-B0d3VjU7.js → flowSchema-Dp_-p9WA.js} +1 -1
- package/dist/interface/assets/{intercomService-DG3EeZ6s.js → intercomService-BQYzjnAi.js} +1 -1
- package/dist/interface/assets/main-0oXl_8v7.js +3 -0
- package/dist/interface/assets/main-CdvAniEp.css +1 -0
- package/dist/interface/assets/mqtt-ChvXxMhR.js +1 -0
- package/dist/interface/assets/{notifications-8FH4ApEz.js → notifications-CbL-1oMs.js} +1 -1
- package/dist/interface/assets/{plugins-2JLUEMYc.js → plugins-lsoAntRQ.js} +1 -1
- package/dist/interface/assets/{rooms-DoAfzA8W.js → rooms-P8WrRIco.js} +1 -1
- package/dist/interface/assets/sensorIcons-BRTtoaHX.js +1 -0
- package/dist/interface/assets/{sensorSlots-biaL-O8E.js → sensorSlots-BTj-IM7z.js} +1 -1
- package/dist/interface/assets/{sensors-DyAMdS-H.js → sensors-Dxc7HgjZ.js} +1 -1
- package/dist/interface/assets/{server-BDRUGj61.js → server-DlK8gUoE.js} +1 -1
- package/dist/interface/assets/{theme-CLxrnR60.js → theme-BOppzzar.js} +1 -1
- package/dist/interface/assets/types-CeruGCb8.js +1 -0
- package/dist/interface/assets/{types-8JXzkoC8.js → types-J1Drrxo1.js} +1 -1
- package/dist/interface/assets/types-U4AuTNLR.js +1 -0
- package/dist/interface/assets/ungrouped-ING_JAuK.js +1 -0
- package/dist/interface/assets/{updates-F-veEP1I.js → updates-DtVp84Y0.js} +1 -1
- package/dist/interface/assets/{useAppVersion-BjUQmB7M.js → useAppVersion-BGgCk5GD.js} +1 -1
- package/dist/interface/assets/{useAssistantActions-CNEJol4o.js → useAssistantActions-C13O5EHU.js} +1 -1
- package/dist/interface/assets/useBackupRestore-vrhmc9i-.js +1 -0
- package/dist/interface/assets/{useCameraOptions-D_oduve2.js → useCameraOptions-CI1baRmm.js} +1 -1
- package/dist/interface/assets/{useKeyboardInset-CPWSVYlA.js → useKeyboardInset-CvgJp091.js} +1 -1
- package/dist/interface/assets/{useLogsSocket-B_jXUqv8.js → useLogsSocket-Bf0BI8ET.js} +1 -1
- package/dist/interface/assets/{useNavLayout-DEngIIeU.js → useNavLayout-6zM1Y-7B.js} +1 -1
- package/dist/interface/assets/{usePermissions-DAO92InI.js → usePermissions-DZitFsBQ.js} +1 -1
- package/dist/interface/assets/{usePluginUpdates-CJi8Y_wl.js → usePluginUpdates-VZdpJ_Ax.js} +1 -1
- package/dist/interface/assets/{usePushRegistration-j9WCeFbv.js → usePushRegistration-vcbMrTxZ.js} +1 -1
- package/dist/interface/assets/{useServerRestart-BVks5tuC.js → useServerRestart-DrpuNbIu.js} +1 -1
- package/dist/interface/assets/{useStreamStatus-DQ0NSyU8.js → useStreamStatus-l3Pfk1H4.js} +1 -1
- package/dist/interface/assets/{useTabSwipe-CVq7EcIY.js → useTabSwipe-BSpi25WV.js} +1 -1
- package/dist/interface/assets/{useUpdateChannel-C0fjDvNP.js → useUpdateChannel-kAl-5UNY.js} +1 -1
- package/dist/interface/assets/{useUpdatesSocket-DXKF9hzc.js → useUpdatesSocket-CaFz_fEb.js} +1 -1
- package/dist/interface/assets/{useUserOptions-UjMeAL5n.js → useUserOptions-BKteXnmU.js} +1 -1
- package/dist/interface/assets/vendor-cameraui-K1Nw4PvF.js +2326 -0
- package/dist/interface/assets/vendor-core-CJdfpB0I.js +1 -0
- package/dist/interface/assets/{vendor-primevue-Zx6t06A4.js → vendor-primevue-DoA2Rwcb.js} +871 -871
- package/dist/interface/assets/walk-B8FNhXuj.js +1 -0
- package/dist/interface/ha/{404-D5gfy0Cd.js → 404-RtgPpD9N.js} +1 -1
- package/dist/interface/ha/{About-JzlpCzBN.js → About-0PRv9bU0.js} +4 -4
- package/dist/interface/ha/{Assistant-DgOfGesf.js → Assistant-DbwxVfpl.js} +1021 -1021
- package/dist/interface/ha/{Automation-BDaWYiBu.js → Automation-D3HomdH7.js} +159 -155
- package/dist/interface/ha/{AutomationImport-BNB_PJ9R.js → AutomationImport-nQUUvZcv.js} +6 -6
- package/dist/interface/ha/{AutomationStore-_TeOt1wz.js → AutomationStore-BXDD92wZ.js} +8 -8
- package/dist/interface/ha/{AutomationStoreDetail-jjIEZoRi.js → AutomationStoreDetail-BYeq7FID.js} +19 -19
- package/dist/interface/ha/{Automations-DM6FEVOw.js → Automations-CJlGqmSP.js} +74 -74
- package/dist/interface/ha/Camera-Ai4BxVh_.js +747 -0
- package/dist/interface/ha/{CameraConsole-BoVql05l.js → CameraConsole-UMNOX3dE.js} +4 -4
- package/dist/interface/ha/{Cameras-cQBGvXq7.js → Cameras-BW-AEXYi.js} +266 -266
- package/dist/interface/ha/{Camview-mkG5FXZM.js → Camview-jikpVEE0.js} +195 -194
- package/dist/interface/ha/{Config-BNPDzo_h.js → Config-BOxwBH2D.js} +111 -111
- package/dist/interface/ha/{ConfigActionAssistant-C-8P3DYz.js → ConfigActionAssistant--3iWk9sq.js} +4 -4
- package/dist/interface/ha/{ConfigActionCameraControl-x1ksGL7m.js → ConfigActionCameraControl-DbVXWTeA.js} +3 -3
- package/dist/interface/ha/{ConfigActionHttp-DzCJp85z.js → ConfigActionHttp-Du3n2Yj0.js} +2 -2
- package/dist/interface/ha/{ConfigActionImageInput-C5C5U_2z.js → ConfigActionImageInput-BrJrTZTY.js} +4 -4
- package/dist/interface/ha/{ConfigActionMqtt-T29xb75r.js → ConfigActionMqtt-DZd1BNUt.js} +4 -4
- package/dist/interface/ha/{ConfigActionNotification-BcnyilF9.js → ConfigActionNotification-CJWW10gt.js} +3 -3
- package/dist/interface/ha/{ConfigActionNotificationControl-D3wIVKuU.js → ConfigActionNotificationControl-Bl41AVv1.js} +2 -2
- package/dist/interface/ha/{ConfigActionOutput-hD-yVczw.js → ConfigActionOutput-OTj7Lwgq.js} +1 -1
- package/dist/interface/ha/{ConfigActionPlugin-Bz1O-O4Q.js → ConfigActionPlugin-B790PEk0.js} +8 -8
- package/dist/interface/ha/{ConfigActionSensor-FOz-PYl_.js → ConfigActionSensor-BG3jZxge.js} +5 -5
- package/dist/interface/ha/{ConfigActionSnapshot-CmxEOuK1.js → ConfigActionSnapshot-fGmLl6jb.js} +2 -2
- package/dist/interface/ha/{ConfigActionVariable-BCvkrdCh.js → ConfigActionVariable-CK3vYDsr.js} +1 -1
- package/dist/interface/ha/{ConfigConditionIfElse-icfTG9OA.js → ConfigConditionIfElse-DyFLGg3y.js} +3 -3
- package/dist/interface/ha/{ConfigConditionSensorState-ClUAsm0d.js → ConfigConditionSensorState-BUTfeFO2.js} +7 -7
- package/dist/interface/ha/{ConfigConditionSwitch-C8AMCkn6.js → ConfigConditionSwitch-iDG_ubif.js} +5 -5
- package/dist/interface/ha/{ConfigSensorValueInput-ChvDQzGd.js → ConfigSensorValueInput-BmRIGUKB.js} +5 -5
- package/dist/interface/ha/{ConfigTriggerDetection-aUSyaClu.js → ConfigTriggerDetection-DyPQGt9M.js} +24 -24
- package/dist/interface/ha/{ConfigTriggerGeofence-DsJeJWP4.js → ConfigTriggerGeofence-CGE-bH_t.js} +6 -6
- package/dist/interface/ha/{ConfigTriggerMqtt-CsAxA7QZ.js → ConfigTriggerMqtt-CM3KZqBc.js} +1 -1
- package/dist/interface/ha/{ConfigTriggerSensor-CTxr9cfU.js → ConfigTriggerSensor-DoHMcwP4.js} +1 -1
- package/dist/interface/ha/{ConfigTriggerSystem-C8UEfpfs.js → ConfigTriggerSystem-BYKbW4Zr.js} +2 -2
- package/dist/interface/ha/{ConfigTriggerWebhook-frEE-SCB.js → ConfigTriggerWebhook-5PBAadG8.js} +2 -2
- package/dist/interface/ha/{Console-A3VtbsLg.js → Console-BEXzl4p1.js} +7 -7
- package/dist/interface/ha/{CuiAutomationRunsDialog-BlJvhBiX.js → CuiAutomationRunsDialog-DkK_ar5G.js} +3 -3
- package/dist/interface/ha/{CuiBottomSheet-Cu-t3H0Z.js → CuiBottomSheet-CYNvQV4T.js} +2 -2
- package/dist/interface/ha/{CuiCameraRecordings-R5ArEmqJ.js → CuiCameraRecordings-DYjecmE_.js} +30 -48
- package/dist/interface/ha/{CuiCameraShares-B9pfRkM4.js → CuiCameraShares-C0H60nZS.js} +7 -7
- package/dist/interface/ha/{CuiCameraTable-CKjGKaMC.js → CuiCameraTable-CQNMyBaq.js} +5 -5
- package/dist/interface/ha/{CuiChartTable-BxWjRe-k.js → CuiChartTable-Bhv1p9zj.js} +1161 -1161
- package/dist/interface/ha/{CuiConsole-C5fzsR7t.js → CuiConsole-DtXorGF5.js} +20 -20
- package/dist/interface/ha/{CuiDataTable-BOdQDY8J.js → CuiDataTable-Cy8EjCk9.js} +7 -7
- package/dist/interface/ha/{CuiList-CU2NJ1K6.js → CuiList-DnW6Q5m2.js} +1 -1
- package/dist/interface/ha/{CuiPluginCard-BT71RRAD.js → CuiPluginCard-B4SCUblV.js} +125 -125
- package/dist/interface/ha/{CuiPluginOAuthButton-moh9uS7G.js → CuiPluginOAuthButton-BKg9SftQ.js} +5 -5
- package/dist/interface/ha/{CuiPluginTrustBadge-F_pVWkPJ.js → CuiPluginTrustBadge-CEtUJhCJ.js} +1 -1
- package/dist/interface/ha/{CuiQRCode-BNuj-nJ4.js → CuiQRCode-gp-9hqyk.js} +7 -7
- package/dist/interface/ha/{CuiSchema-Cb_8Ks-I.js → CuiSchema-CYpr_dD7.js} +161 -161
- package/dist/interface/ha/{CuiTopNavbarItem-BGzrrTls.js → CuiTopNavbarItem-CM-1oPxf.js} +1 -1
- package/dist/interface/ha/Faces-pa60ySng.js +1575 -0
- package/dist/interface/ha/{FirstSteps-BFX0-EEi.js → FirstSteps-D42yZm7R.js} +68 -68
- package/dist/interface/ha/{Floorplan-D6MGqSJT.js → Floorplan-BvE546pE.js} +512 -511
- package/dist/interface/ha/{Instances-CHzIUyyA.js → Instances-CAGCyfbB.js} +64 -64
- package/dist/interface/ha/{Logs-DZKM3dWv.js → Logs-RB3Ba8WM.js} +12 -12
- package/dist/interface/ha/{Menu-BQz4dfQi.js → Menu-hAnHu_jq.js} +17 -17
- package/dist/interface/ha/{Metrics-CdpWJ1mm.js → Metrics-ChYTebkX.js} +94 -93
- package/dist/interface/ha/{OAuthDeviceFlow-DUELtx3X.js → OAuthDeviceFlow-C05pH-9o.js} +3 -3
- package/dist/interface/ha/{Plugin-5bbTF0Rv.js → Plugin-D7XwcXkW.js} +647 -439
- package/dist/interface/ha/{PluginConsole-C__0lzsS.js → PluginConsole-DphEIOlL.js} +4 -4
- package/dist/interface/ha/{PluginDetail-Blrktk9W.js → PluginDetail-DfMl-yCl.js} +9 -9
- package/dist/interface/ha/{PluginSearch-BKbdwHQ1.js → PluginSearch-BPN4Opg5.js} +34 -34
- package/dist/interface/ha/{PluginUpdateProgress-IsNiecu3.js → PluginUpdateProgress-ByJ0R5sW.js} +3 -3
- package/dist/interface/ha/{Plugins-CC2Dwlx5.js → Plugins-BhKmjjNn.js} +59 -59
- package/dist/interface/ha/{RecentEventsFilter-9ZkDHD1g.js → RecentEventsFilter-BkLMlGVJ.js} +5 -6
- package/dist/interface/ha/Recordings-BaU7M1OW.js +1836 -0
- package/dist/interface/ha/{SensorEdit-Bi2Yx_ji.js → SensorEdit-DWxcCJ0F.js} +88 -88
- package/dist/interface/ha/{SensorHistory-sqG_6eav.js → SensorHistory-DuA9E9wT.js} +2 -2
- package/dist/interface/ha/{Sensors-DLtOh1p4.js → Sensors-CVpIHcgG.js} +438 -435
- package/dist/interface/ha/{Settings-DI3_zenm.js → Settings-BO2eBGEn.js} +61 -61
- package/dist/interface/ha/{SettingsAccount-pS86Qyr-.js → SettingsAccount-BQZZfoSM.js} +255 -255
- package/dist/interface/ha/{SettingsAppearance-tS3bubKQ.js → SettingsAppearance-B_yGl89u.js} +16 -16
- package/dist/interface/ha/{SettingsAssistant-LejCRXsF.js → SettingsAssistant-kMOixl9g.js} +501 -501
- package/dist/interface/ha/{SettingsBackup-CkhD1Kze.js → SettingsBackup-BpG-W4j-.js} +24 -24
- package/dist/interface/ha/{SettingsList-bibwvPSM.js → SettingsList-Btnkzu94.js} +6 -6
- package/dist/interface/ha/{SettingsMqtt-DSt0B4Qg.js → SettingsMqtt-C4DX9cNC.js} +23 -23
- package/dist/interface/ha/{SettingsNotifications-BF7ajNwE.js → SettingsNotifications-DI6ImggH.js} +6 -6
- package/dist/interface/ha/{SettingsPermissions-Jh0FuIF7.js → SettingsPermissions-BCDyCFcb.js} +2 -2
- package/dist/interface/ha/{SettingsRecordings-BTIdncxg.js → SettingsRecordings-Bq5NkJhd.js} +10 -10
- package/dist/interface/ha/{SettingsRemote-Cba4P1-O.js → SettingsRemote-CtncaPIA.js} +308 -308
- package/dist/interface/ha/{SettingsSystem-_Nnh2ZF5.js → SettingsSystem-BJXuA7xA.js} +11 -11
- package/dist/interface/ha/{SettingsUsers-BfHFoxJi.js → SettingsUsers-BF0rDluv.js} +91 -91
- package/dist/interface/ha/{Terminal-Dv_7oWmS.js → Terminal-kTCe2jP3.js} +11 -11
- package/dist/interface/ha/Training-BM2Xb8Ef.js +1754 -0
- package/dist/interface/ha/{Updates-BHl5H7zE.js → Updates-Cv1EY_T0.js} +6 -6
- package/dist/interface/ha/{VariableInput-DtLo7-Nw.js → VariableInput-BO2zZu4N.js} +1 -1
- package/dist/interface/ha/{VersionsHandler-CF0DSeol.js → VersionsHandler-CRnT9-K7.js} +10 -10
- package/dist/interface/ha/{VirtualSensorCreate-C907EgIz.js → VirtualSensorCreate-6dVRxPjw.js} +8 -8
- package/dist/interface/ha/{Workers-Dz1d9gEQ.js → Workers-MHia86lu.js} +97 -97
- package/dist/interface/ha/{api-DUqpDJ2N.js → api-CH_Y8Hee.js} +17459 -14633
- package/dist/interface/ha/{api-gId1nlMj.js → api-DylRa66V.js} +3 -3
- package/dist/interface/ha/{assistant-BaR65gIY.js → assistant-smRQYA6p.js} +53 -53
- package/dist/interface/ha/{auth-Btsz_KxO.js → auth-BXj5Fm6s.js} +38 -38
- package/dist/interface/ha/{automationBlueprint-CuO3iOiM.js → automationBlueprint-DGjftXFC.js} +4 -4
- package/dist/interface/ha/cameraui-cards.js +1 -1
- package/dist/interface/ha/{cards-DWhezIPP.js → cards-E0zw1UVg.js} +114 -113
- package/dist/interface/ha/{config-BKStpoEQ.js → config-dG_DA6XL.js} +16 -16
- package/dist/interface/ha/{dist-CM7R4_Gj.js → dist-BQf9ANPx.js} +77 -77
- package/dist/interface/ha/{dist-BIngHzHx.js → dist-euRmladF.js} +4 -4
- package/dist/interface/ha/{eventIcons-BFNUgeGr.js → eventLabels-B5GrM5jO.js} +291 -233
- package/dist/interface/ha/{intercomService-B7HkLs6z.js → intercomService-BtJ_zUNd.js} +250 -264
- package/dist/interface/ha/{mqtt-ajcSmTB-.js → mqtt-CP3vVkRJ.js} +12 -12
- package/dist/interface/ha/{notifications-Cf9dXHEO.js → notifications-CZNwSXTg.js} +22 -22
- package/dist/interface/ha/{pinia-DIKO5lnE.js → pinia-CVnHHb-s.js} +533 -501
- package/dist/interface/ha/{plugins-ml823dJV.js → plugins--eatOIaI.js} +66 -66
- package/dist/interface/ha/{protocol-BB4jdtUC-DW3jl2tV.js → protocol-BB4jdtUC-BhEwymva.js} +129 -48
- package/dist/interface/ha/{rooms-C5gUErBi.js → rooms-D5E6K75d.js} +8 -8
- package/dist/interface/ha/{server-dArenpJI.js → server-D1BqEY7i.js} +31 -31
- package/dist/interface/ha/{types-DYymuACA.js → types-CWogEoya.js} +36 -36
- package/dist/interface/ha/ungrouped-Ch4UX4dy.js +58 -0
- package/dist/interface/ha/{updates-D5sFzGtC.js → updates-B48Owi1w.js} +28 -28
- package/dist/interface/ha/{useAppVersion-C5x3Ap4_.js → useAppVersion-D95sKTJR.js} +2 -2
- package/dist/interface/ha/{useAssistantActions-S1FrNe9b.js → useAssistantActions-kDwiO-u5.js} +1 -1
- package/dist/interface/ha/{useKeyboardInset-Cj0T2AFX.js → useKeyboardInset-C2R51vsC.js} +1 -1
- package/dist/interface/ha/{useLogsSocket-DtvfQlPh.js → useLogsSocket-BzNWa2y2.js} +1 -1
- package/dist/interface/ha/{useNavLayout-HSFBA4JV.js → useNavLayout-228cwwqA.js} +19 -19
- package/dist/interface/ha/{usePermissions-DaE_wFch.js → usePermissions-CfA5x7Df.js} +1 -1
- package/dist/interface/ha/{useServerRestart-Ci0SppGW.js → useServerRestart-B0c40zs5.js} +1 -1
- package/dist/interface/ha/{useTabSwipe-CPKkRmaH.js → useTabSwipe-CfZg5hWj.js} +2 -2
- package/dist/interface/ha/{useUpdateChannel-CXHHovK3.js → useUpdateChannel-DQxI7FrD.js} +2 -2
- package/dist/interface/ha/{useUpdatesSocket-DVST2YXV.js → useUpdatesSocket-B8LqBBd3.js} +1 -1
- package/dist/interface/ha/{useUserOptions-BYcYI6QA.js → useUserOptions-dZf6ejlz.js} +1 -1
- package/dist/interface/ha/walk-CsSXaeJw.js +33 -0
- package/dist/interface/index.html +35 -36
- package/dist/interface/sw.js +1 -1
- package/dist/interface/workbox-5f52ac45.js +1 -0
- package/dist/server/package.json +11 -11
- package/dist/server/requirements.txt +2 -2
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/__init__.py +22 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/camera/config.py +4 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/plugin/__init__.py +10 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/plugin/contract.py +6 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/plugin/interfaces.py +92 -4
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/__init__.py +16 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/base.py +4 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/face_embedder.py +1 -1
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/object.py +3 -3
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/person_embedder.py +65 -0
- package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/segmenter.py +81 -0
- package/dist/server/src/api/database/index.d.ts +2 -1
- package/dist/server/src/api/database/index.js +31 -7
- package/dist/server/src/api/database/index.js.map +1 -1
- package/dist/server/src/api/database/migrations/v2-2-9.d.ts +3 -0
- package/dist/server/src/api/database/migrations/v2-2-9.js +28 -0
- package/dist/server/src/api/database/migrations/v2-2-9.js.map +1 -0
- package/dist/server/src/api/database/record-schemas.d.ts +1 -1
- package/dist/server/src/api/database/types.d.ts +17 -1
- package/dist/server/src/api/schemas/assistant.schema.d.ts +1 -1
- package/dist/server/src/api/schemas/cameras.schema.d.ts +140 -76
- package/dist/server/src/api/schemas/cameras.schema.js +4 -2
- package/dist/server/src/api/schemas/cameras.schema.js.map +1 -1
- package/dist/server/src/api/schemas/training.schema.d.ts +15 -3
- package/dist/server/src/api/schemas/training.schema.js +4 -1
- package/dist/server/src/api/schemas/training.schema.js.map +1 -1
- package/dist/server/src/api/websocket/nsp/worker-perf.js +2 -0
- package/dist/server/src/api/websocket/nsp/worker-perf.js.map +1 -1
- package/dist/server/src/api/websocket/types.d.ts +1 -0
- package/dist/server/src/assistant/search.d.ts +17 -0
- package/dist/server/src/assistant/search.js +10 -2
- package/dist/server/src/assistant/search.js.map +1 -1
- package/dist/server/src/assistant/tools/plugins.js +7 -3
- package/dist/server/src/assistant/tools/plugins.js.map +1 -1
- package/dist/server/src/assistant/types.d.ts +2 -0
- package/dist/server/src/automations/actions/plugin.js +5 -9
- package/dist/server/src/automations/actions/plugin.js.map +1 -1
- package/dist/server/src/automations/pluginMethodRegistry.d.ts +6 -0
- package/dist/server/src/automations/pluginMethodRegistry.js +39 -0
- package/dist/server/src/automations/pluginMethodRegistry.js.map +1 -1
- package/dist/server/src/automations/segment-picture.d.ts +16 -0
- package/dist/server/src/automations/segment-picture.js +152 -0
- package/dist/server/src/automations/segment-picture.js.map +1 -0
- package/dist/server/src/camera/decoder/detection-coordinator.d.ts +5 -2
- package/dist/server/src/camera/decoder/detection-coordinator.js +45 -22
- package/dist/server/src/camera/decoder/detection-coordinator.js.map +1 -1
- package/dist/server/src/camera/decoder/detection-pipeline.d.ts +30 -2
- package/dist/server/src/camera/decoder/detection-pipeline.js +81 -21
- package/dist/server/src/camera/decoder/detection-pipeline.js.map +1 -1
- package/dist/server/src/camera/decoder/event-manager.d.ts +12 -2
- package/dist/server/src/camera/decoder/event-manager.js +77 -75
- package/dist/server/src/camera/decoder/event-manager.js.map +1 -1
- package/dist/server/src/camera/decoder/event-trace.d.ts +41 -1
- package/dist/server/src/camera/decoder/event-trace.js +63 -8
- package/dist/server/src/camera/decoder/event-trace.js.map +1 -1
- package/dist/server/src/camera/decoder/face-tracks.d.ts +26 -0
- package/dist/server/src/camera/decoder/face-tracks.js +199 -0
- package/dist/server/src/camera/decoder/face-tracks.js.map +1 -0
- package/dist/server/src/camera/decoder/frame-scaler.d.ts +3 -1
- package/dist/server/src/camera/decoder/frame-scaler.js +36 -8
- package/dist/server/src/camera/decoder/frame-scaler.js.map +1 -1
- package/dist/server/src/camera/decoder/nvr-sink.d.ts +6 -0
- package/dist/server/src/camera/decoder/nvr-sink.js +1 -1
- package/dist/server/src/camera/decoder/nvr-sink.js.map +1 -1
- package/dist/server/src/camera/decoder/perf-tracker.d.ts +2 -0
- package/dist/server/src/camera/decoder/perf-tracker.js +4 -0
- package/dist/server/src/camera/decoder/perf-tracker.js.map +1 -1
- package/dist/server/src/camera/decoder/ptz/autotracker.d.ts +6 -1
- package/dist/server/src/camera/decoder/ptz/autotracker.js +107 -25
- package/dist/server/src/camera/decoder/ptz/autotracker.js.map +1 -1
- package/dist/server/src/camera/decoder/secondary-stage.d.ts +10 -8
- package/dist/server/src/camera/decoder/secondary-stage.js +145 -125
- package/dist/server/src/camera/decoder/secondary-stage.js.map +1 -1
- package/dist/server/src/camera/decoder/training-sink.d.ts +5 -2
- package/dist/server/src/camera/decoder/training-sink.js +30 -6
- package/dist/server/src/camera/decoder/training-sink.js.map +1 -1
- package/dist/server/src/camera/decoder/types.d.ts +6 -2
- package/dist/server/src/camera/decoder/types.js +4 -2
- package/dist/server/src/camera/decoder/types.js.map +1 -1
- package/dist/server/src/manager/trainingCandidateManager.d.ts +2 -1
- package/dist/server/src/manager/trainingCandidateManager.js +25 -3
- package/dist/server/src/manager/trainingCandidateManager.js.map +1 -1
- package/dist/server/src/manager/trainingSubmission.d.ts +5 -0
- package/dist/server/src/manager/trainingSubmission.js +73 -0
- package/dist/server/src/manager/trainingSubmission.js.map +1 -0
- package/dist/server/src/manager/types.d.ts +8 -2
- package/dist/server/src/manager/types.js.map +1 -1
- package/dist/server/src/plugins/runtime/python/proxy/sensor.py +2 -0
- package/dist/server/src/remote/api/routes/train.d.ts +44 -3
- package/dist/server/src/remote/api/routes/train.js +2 -2
- package/dist/server/src/remote/api/routes/train.js.map +1 -1
- package/dist/server/src/rpc/interfaces/core.d.ts +6 -2
- package/dist/server/src/rpc/interfaces/detection.d.ts +20 -3
- package/dist/server/src/rpc/server.d.ts +2 -0
- package/dist/server/src/rpc/server.js +8 -5
- package/dist/server/src/rpc/server.js.map +1 -1
- package/dist/server/src/sensors/registry.d.ts +1 -0
- package/dist/server/src/sensors/registry.js +20 -11
- package/dist/server/src/sensors/registry.js.map +1 -1
- package/dist/server/src/sensors/types.d.ts +1 -0
- package/dist/server/src/sensors/types.js +3 -0
- package/dist/server/src/sensors/types.js.map +1 -1
- package/dist/server/src/services/config/index.d.ts +1 -0
- package/dist/server/src/services/config/index.js +2 -0
- package/dist/server/src/services/config/index.js.map +1 -1
- package/dist/server/src/utils/image.d.ts +6 -0
- package/dist/server/src/utils/image.js +58 -22
- package/dist/server/src/utils/image.js.map +1 -1
- package/npm-shrinkwrap.json +115 -74
- package/package.json +11 -11
- package/dist/interface/assets/About-DBOS1rfw.js +0 -1
- package/dist/interface/assets/Assistant-BQ6Ld-bt.css +0 -1
- package/dist/interface/assets/Assistant-BRcHj8hq.js +0 -1
- package/dist/interface/assets/Automation-C0Emde7z.js +0 -3
- package/dist/interface/assets/AutomationStore-C2G0Bk8c.js +0 -2
- package/dist/interface/assets/Automations-D-vfqRnZ.js +0 -2
- package/dist/interface/assets/Camera-BpurrgAr.js +0 -2
- package/dist/interface/assets/Camera-D0B7yyVD.css +0 -1
- package/dist/interface/assets/Camview-IbOVRx20.js +0 -1
- package/dist/interface/assets/ConfigActionCameraControl-Bw_egtpP.js +0 -1
- package/dist/interface/assets/ConfigActionSensor-BErRRYfl.js +0 -1
- package/dist/interface/assets/Console-oCuuVKET.js +0 -1
- package/dist/interface/assets/CuiAssistantConversation-Bsyxau9v.js +0 -5
- package/dist/interface/assets/CuiAutomationRunsDialog-sRh_K6JI.js +0 -1
- package/dist/interface/assets/CuiBottomSheet-DWoSHzC7.js +0 -1
- package/dist/interface/assets/CuiCameraPipCard-D6REm8uT.js +0 -1
- package/dist/interface/assets/CuiCameraRecordings-C2tvrbbw.js +0 -1
- package/dist/interface/assets/CuiCameraShares-jrrUEHoZ.js +0 -1
- package/dist/interface/assets/CuiCameraTable-BOzTWLwd.js +0 -1
- package/dist/interface/assets/CuiChartTable-BYrIX7LV.js +0 -1
- package/dist/interface/assets/CuiLightControl-DitIWqUr.js +0 -1
- package/dist/interface/assets/CuiList-BewTNr2X.js +0 -1
- package/dist/interface/assets/CuiPluginCard-Bd2HFduI.js +0 -2
- package/dist/interface/assets/CuiPluginCategoryChip-DlzOwRgc.js +0 -1
- package/dist/interface/assets/CuiSchema-BL0QZmP2.js +0 -1
- package/dist/interface/assets/CuiTopNavbarItem-Ti2TueU1.js +0 -1
- package/dist/interface/assets/Faces-DARrGLXf.js +0 -1
- package/dist/interface/assets/FirstSteps-DBYPBvGr.js +0 -1
- package/dist/interface/assets/Floorplan-BaZvzoyv.js +0 -1
- package/dist/interface/assets/Instances-r0xReURi.js +0 -1
- package/dist/interface/assets/Menu-C34RRyLd.js +0 -1
- package/dist/interface/assets/Metrics-BjoC71_O.js +0 -12
- package/dist/interface/assets/Metrics-DsHBab6t.css +0 -1
- package/dist/interface/assets/OAuthDeviceFlow-CdZxelf2.js +0 -1
- package/dist/interface/assets/Plugin-Qr_Q_Qfi.css +0 -1
- package/dist/interface/assets/Plugin-npx7CnwV.js +0 -1
- package/dist/interface/assets/PluginDetail-nwTrJmO6.js +0 -2
- package/dist/interface/assets/PluginSearch-CP2kQWKf.js +0 -1
- package/dist/interface/assets/PluginSearch-WEvbKMRs.js +0 -2
- package/dist/interface/assets/RecentEventsFilter-D5VSH2K1.js +0 -1
- package/dist/interface/assets/Recordings-BEKAn6QK.css +0 -1
- package/dist/interface/assets/Recordings-De6Zcv0M.js +0 -1
- package/dist/interface/assets/SensorEdit-SD_oHBRo.js +0 -1
- package/dist/interface/assets/SensorHistory-SxiLOloa.js +0 -1
- package/dist/interface/assets/Sensors-Djl64M-W.js +0 -2
- package/dist/interface/assets/Settings-CAf2reGs.js +0 -1
- package/dist/interface/assets/SettingsAccount-BGj5Ni91.js +0 -1
- package/dist/interface/assets/SettingsAccount-Dy6WC8ql.js +0 -1
- package/dist/interface/assets/SettingsAppearance-BGFhMlRk.js +0 -1
- package/dist/interface/assets/SettingsAppearance-DQzQmVzE.js +0 -1
- package/dist/interface/assets/SettingsAssistant-BwYVyuN3.js +0 -1
- package/dist/interface/assets/SettingsBackup-CVExGnOo.js +0 -1
- package/dist/interface/assets/SettingsList-vo7sz_MY.js +0 -1
- package/dist/interface/assets/SettingsMqtt-B1CuOcML.js +0 -1
- package/dist/interface/assets/SettingsNotifications-CCQ6eiq8.js +0 -1
- package/dist/interface/assets/SettingsPermissions-BlOf6HEy.js +0 -1
- package/dist/interface/assets/SettingsRecordings-7tTBg6m1.js +0 -1
- package/dist/interface/assets/SettingsRemote-DBgKmIdv.js +0 -2
- package/dist/interface/assets/SettingsSystem-DaFMsZpN.js +0 -2
- package/dist/interface/assets/SettingsUsers-DXACwVPi.js +0 -1
- package/dist/interface/assets/Terminal-DtGqlHbk.js +0 -4
- package/dist/interface/assets/Training-C-ToeAl4.css +0 -1
- package/dist/interface/assets/Training-Ca11D1Vj.js +0 -1
- package/dist/interface/assets/Updates-yenwuqnD.js +0 -2
- package/dist/interface/assets/Workers-Dyo44zxe.js +0 -2
- package/dist/interface/assets/api-CHQlxVtZ.css +0 -2
- package/dist/interface/assets/api-CLazgL-g.js +0 -4
- package/dist/interface/assets/cloudHandoff-zJCrDmwk.js +0 -1
- package/dist/interface/assets/eventIcons-C3JWChgS.js +0 -1
- package/dist/interface/assets/eventLabels-BsPoPWS9.js +0 -1
- package/dist/interface/assets/main-CGY9cVyi.css +0 -1
- package/dist/interface/assets/main-DkHV6YgB.js +0 -3
- package/dist/interface/assets/mqtt-DE2VbNdt.js +0 -1
- package/dist/interface/assets/sensorIcons-BntiOPX7.js +0 -1
- package/dist/interface/assets/types-B4LLKzDW.js +0 -1
- package/dist/interface/assets/types-a7Nw-P-m.js +0 -1
- package/dist/interface/assets/ungrouped-BoAbb9w3.js +0 -1
- package/dist/interface/assets/ungrouped-ChmBvcXp.css +0 -1
- package/dist/interface/assets/useBackupRestore-Biqn_lhh.js +0 -1
- package/dist/interface/assets/vendor-cameraui-GmMRyJ2R.js +0 -2326
- package/dist/interface/assets/vendor-core-BeAannbA.js +0 -1
- package/dist/interface/ha/Camera-sH9fRv18.js +0 -670
- package/dist/interface/ha/Faces-CsM5VO8Q.js +0 -1441
- package/dist/interface/ha/Recordings-B1XsJrzs.js +0 -1539
- package/dist/interface/ha/Training-CaSFA5oH.js +0 -1699
- package/dist/interface/ha/eventLabels-B4C1_4vT.js +0 -42
- package/dist/interface/ha/ungrouped-BHLAySWP.js +0 -1312
- package/dist/interface/workbox-778a14ff.js +0 -1
|
@@ -2,25 +2,25 @@ import { c as e, m as t } from "./ripple-ZDATPc2w.js";
|
|
|
2
2
|
import { B as n, D as r, Dt as i, G as a, H as o, Jt as s, K as c, M as l, Wt as u, _t as d, bt as f, d as p, f as m, ft as h, gt as g, kt as _, l as v, lt as y, ot as b, p as x, qt as S, r as C, rt as w, u as T, ut as E, v as D, x as O, xt as k, y as A, yt as j, z as M } from "./runtime-core.esm-bundler-_TfE0DWz.js";
|
|
3
3
|
import { t as ee } from "./tooltip-BDrlgLof.js";
|
|
4
4
|
import { t as te } from "./message-D6dIy_hz.js";
|
|
5
|
-
import {
|
|
6
|
-
import { M as
|
|
7
|
-
import { i as
|
|
8
|
-
import { $ as
|
|
9
|
-
import { n as
|
|
10
|
-
import { n as
|
|
5
|
+
import { Ar as N, D as P, E as F, Ei as I, F as L, I as R, Mn as ne, O as z, On as re, Or as ie, P as B, Pr as ae, _t as V, a as H, di as oe, gi as se, gt as U, hn as ce, jr as le, k as W, m as G, ut as ue, xn as de, yr as fe } from "./api-CH_Y8Hee.js";
|
|
6
|
+
import { M as pe } from "./protocol-BB4jdtUC-BhEwymva.js";
|
|
7
|
+
import { i as me, o as he } from "./intercomService-BtJ_zUNd.js";
|
|
8
|
+
import { $ as ge, et as _e, it as ve, nt as ye, rt as be, tt as xe } from "./pinia-CVnHHb-s.js";
|
|
9
|
+
import { n as K } from "./vue-i18n-D5EAy78K.js";
|
|
10
|
+
import { n as Se, t as q } from "./button-BouAFgf5.js";
|
|
11
11
|
import { t as J } from "./inputtext-C_ygnPrC.js";
|
|
12
|
-
import { t as Ce } from "./
|
|
13
|
-
import { t as we } from "./
|
|
12
|
+
import { t as Ce } from "./select-DV7p2EDj.js";
|
|
13
|
+
import { t as we } from "./close-CxFbonhd.js";
|
|
14
14
|
import { i as Te, n as Ee, r as De, t as Oe } from "./accordion-BylV-jUK.js";
|
|
15
15
|
import { t as ke } from "./chip-BTHURsTF.js";
|
|
16
|
-
import { i as Ae, t as je } from "./CuiDataTable-
|
|
17
|
-
import { n as Me, r as Ne, t as Pe } from "./CuiSchema-
|
|
18
|
-
import { t as Fe } from "./CuiCameraTable-
|
|
19
|
-
import { u as Ie } from "./cards-
|
|
16
|
+
import { i as Ae, t as je } from "./CuiDataTable-Cy8EjCk9.js";
|
|
17
|
+
import { n as Me, r as Ne, t as Pe } from "./CuiSchema-CYpr_dD7.js";
|
|
18
|
+
import { t as Fe } from "./CuiCameraTable-CQNMyBaq.js";
|
|
19
|
+
import { u as Ie } from "./cards-E0zw1UVg.js";
|
|
20
20
|
import { t as Le } from "./plus-CgxY7W0L.js";
|
|
21
21
|
import { t as Re } from "./radar-BG-Tcwg_.js";
|
|
22
22
|
import { n as ze, t as Be } from "./eye-off-UG_p9nl8.js";
|
|
23
|
-
import { t as Ve } from "./rooms-
|
|
23
|
+
import { t as Ve } from "./rooms-D5E6K75d.js";
|
|
24
24
|
//#region ~icons/material-symbols/camera-rounded
|
|
25
25
|
var He = {
|
|
26
26
|
viewBox: "0 0 24 24",
|
|
@@ -42,12 +42,12 @@ var We = d({
|
|
|
42
42
|
"yandex:",
|
|
43
43
|
"webtorrent:"
|
|
44
44
|
];
|
|
45
|
-
function
|
|
45
|
+
function Y(e) {
|
|
46
46
|
let t = e.trim(), n;
|
|
47
|
-
for (let e of
|
|
47
|
+
for (let e of ge) t.startsWith(e) && (!n || e.length > n.length) && (n = e);
|
|
48
48
|
return n;
|
|
49
49
|
}
|
|
50
|
-
function
|
|
50
|
+
function bt(e) {
|
|
51
51
|
let t = e.trim();
|
|
52
52
|
if (!t) return "";
|
|
53
53
|
for (let e of yt) if (t.startsWith(e)) {
|
|
@@ -56,15 +56,15 @@ function xt(e) {
|
|
|
56
56
|
}
|
|
57
57
|
return t;
|
|
58
58
|
}
|
|
59
|
-
function
|
|
59
|
+
function xt(e) {
|
|
60
60
|
return e.startsWith("cui://") && e.includes("/api/cameras/streams/");
|
|
61
61
|
}
|
|
62
62
|
//#endregion
|
|
63
63
|
//#region src/components/CuiCameraSources/CuiCameraSources.vue?vue&type=script&setup=true&lang.ts
|
|
64
|
-
var
|
|
64
|
+
var St = { class: "flex flex-col gap-6" }, Ct = { class: "flex gap-2 items-center w-full" }, wt = { class: "flex gap-2 items-center w-full" }, Tt = { class: "text-color text-sm" }, Et = { class: "flex flex-col gap-6" }, Dt = ["for"], Ot = ["for"], kt = { class: "w-full flex flex-col gap-2" }, At = { class: "flex items-center gap-4" }, jt = { class: "flex flex-col field-switch-gap" }, Mt = ["for"], Nt = { class: "flex items-center gap-4" }, Pt = { class: "flex flex-col field-switch-gap" }, Ft = ["for"], It = { class: "flex items-center gap-4" }, Lt = { class: "flex flex-col field-switch-gap" }, Rt = ["for"], zt = { class: "flex items-center gap-4" }, Bt = { class: "flex flex-col field-switch-gap" }, Vt = ["for"], Ht = { class: "flex flex-col gap-6" }, Ut = { class: "flex flex-col field-gap" }, Wt = ["for"], Gt = {
|
|
65
65
|
key: 0,
|
|
66
66
|
class: "w-full flex flex-row gap-2"
|
|
67
|
-
},
|
|
67
|
+
}, Kt = "rtsp://user:pass@192.168.1.50:554/stream", qt = /* @__PURE__ */ O({
|
|
68
68
|
__name: "CuiCameraSources",
|
|
69
69
|
props: {
|
|
70
70
|
sources: {},
|
|
@@ -75,7 +75,7 @@ var Ct = { class: "flex flex-col gap-6" }, wt = { class: "flex gap-2 items-cente
|
|
|
75
75
|
}
|
|
76
76
|
},
|
|
77
77
|
setup(n, { expose: r }) {
|
|
78
|
-
let i = new
|
|
78
|
+
let i = new ce(), c = n, d = de(), { t: f } = K(), { mutateAsync: h, isPending: b } = i.previewCameraQuery(), S = /* #__PURE__ */ Object.assign({
|
|
79
79
|
"../../markdowns/bubble.md": Ge,
|
|
80
80
|
"../../markdowns/cui.md": Ke,
|
|
81
81
|
"../../markdowns/doorbird.md": qe,
|
|
@@ -111,30 +111,30 @@ var Ct = { class: "flex flex-col gap-6" }, wt = { class: "flex gap-2 items-cente
|
|
|
111
111
|
"snapshot"
|
|
112
112
|
]), O = k(c.sources.map((e, t) => t)), j = v(() => c.isLoading || b.value);
|
|
113
113
|
function M(e) {
|
|
114
|
-
return e.urls.some(
|
|
114
|
+
return e.urls.some(xt);
|
|
115
115
|
}
|
|
116
|
-
function
|
|
117
|
-
let t =
|
|
116
|
+
function N(e) {
|
|
117
|
+
let t = Y(e);
|
|
118
118
|
if (!t) return;
|
|
119
119
|
let n = t.replace(/[:/]+$/, "");
|
|
120
120
|
return S[`../../markdowns/${n}.md`];
|
|
121
121
|
}
|
|
122
|
-
function
|
|
123
|
-
return !!
|
|
122
|
+
function P(e) {
|
|
123
|
+
return !!N(e);
|
|
124
124
|
}
|
|
125
|
-
function
|
|
125
|
+
function F(e) {
|
|
126
126
|
c.sources[e].urls.push("");
|
|
127
127
|
}
|
|
128
|
-
function
|
|
128
|
+
function I(e, t) {
|
|
129
129
|
c.sources[e].urls.splice(t, 1);
|
|
130
130
|
}
|
|
131
|
-
function
|
|
131
|
+
function R(e, t, n) {
|
|
132
132
|
c.sources[e].urls[t] = n;
|
|
133
133
|
}
|
|
134
|
-
function
|
|
134
|
+
function ne(e, t) {
|
|
135
135
|
e.role = t, t === "snapshot" && (e.useForSnapshot = !1, e.hotMode = !1, e.preload = !1);
|
|
136
136
|
}
|
|
137
|
-
function
|
|
137
|
+
function z() {
|
|
138
138
|
c.sources.push({
|
|
139
139
|
_id: G(8),
|
|
140
140
|
name: "",
|
|
@@ -146,11 +146,11 @@ var Ct = { class: "flex flex-col gap-6" }, wt = { class: "flex gap-2 items-cente
|
|
|
146
146
|
muted: !1
|
|
147
147
|
}), O.value = [c.sources.length];
|
|
148
148
|
}
|
|
149
|
-
function
|
|
149
|
+
function ie(e) {
|
|
150
150
|
c.sources.splice(e, 1);
|
|
151
151
|
}
|
|
152
|
-
function
|
|
153
|
-
let t =
|
|
152
|
+
function ae(e) {
|
|
153
|
+
let t = N(e);
|
|
154
154
|
t && d.openTextDialog({ data: {
|
|
155
155
|
title: f("components.dialog.title.information"),
|
|
156
156
|
hideConfirmButton: !0,
|
|
@@ -158,8 +158,8 @@ var Ct = { class: "flex flex-col gap-6" }, wt = { class: "flex gap-2 items-cente
|
|
|
158
158
|
markdown: !0
|
|
159
159
|
} });
|
|
160
160
|
}
|
|
161
|
-
async function
|
|
162
|
-
let t =
|
|
161
|
+
async function H(e) {
|
|
162
|
+
let t = bt(e);
|
|
163
163
|
if (t) try {
|
|
164
164
|
let e = await h({ cameraData: { url: t } });
|
|
165
165
|
d.openImageDialog({ data: {
|
|
@@ -169,14 +169,14 @@ var Ct = { class: "flex flex-col gap-6" }, wt = { class: "flex gap-2 items-cente
|
|
|
169
169
|
} });
|
|
170
170
|
} catch {}
|
|
171
171
|
}
|
|
172
|
-
return r({ newSource:
|
|
173
|
-
let c = ke, d =
|
|
174
|
-
return o(), x("div",
|
|
172
|
+
return r({ newSource: z }), (r, i) => {
|
|
173
|
+
let c = ke, d = we, f = q, h = De, v = J, b = V, S = te, k = Ce, N = re, z = Me, oe = We, se = U, ce = Te, le = Ee, W = Oe, G = ee;
|
|
174
|
+
return o(), x("div", St, [A(W, {
|
|
175
175
|
value: _(O),
|
|
176
176
|
"onUpdate:value": i[0] ||= (e) => g(O) ? O.value = e : null,
|
|
177
177
|
multiple: ""
|
|
178
178
|
}, {
|
|
179
|
-
default: y(() => [(o(!0), x(C, null, a(n.sources, (i, g) => (o(), p(
|
|
179
|
+
default: y(() => [(o(!0), x(C, null, a(n.sources, (i, g) => (o(), p(le, {
|
|
180
180
|
key: i._id,
|
|
181
181
|
value: g,
|
|
182
182
|
class: u({ "border-b-0": g === n.sources.length - 1 })
|
|
@@ -186,7 +186,7 @@ var Ct = { class: "flex flex-col gap-6" }, wt = { class: "flex gap-2 items-cente
|
|
|
186
186
|
"px-0": g !== 0,
|
|
187
187
|
"pb-5": g === n.sources.length - 1
|
|
188
188
|
}) }, {
|
|
189
|
-
default: y(() => [T("div",
|
|
189
|
+
default: y(() => [T("div", Ct, [T("div", wt, [T("span", Tt, s(r.$t("components.dialog.components.new_camera.source") + ": "), 1), A(c, {
|
|
190
190
|
class: "text-color text-xs border-[1px] bg-primary-500/20 border-primary-500/30 py-2 px-3 rounded-full overflow-hidden",
|
|
191
191
|
label: i.name === "" ? r.$t("components.dialog.components.new_camera.unknown") : i.name
|
|
192
192
|
}, null, 8, ["label"])]), n.allowAddRemoveSources && n.sources.length > 1 ? (o(), p(f, {
|
|
@@ -196,7 +196,7 @@ var Ct = { class: "flex flex-col gap-6" }, wt = { class: "flex gap-2 items-cente
|
|
|
196
196
|
severity: "danger",
|
|
197
197
|
class: "cui-icon-md ml-auto mr-2",
|
|
198
198
|
loading: _(j),
|
|
199
|
-
onClick: (e) =>
|
|
199
|
+
onClick: (e) => ie(g)
|
|
200
200
|
}, {
|
|
201
201
|
icon: y(() => [A(d, {
|
|
202
202
|
width: "100%",
|
|
@@ -205,12 +205,12 @@ var Ct = { class: "flex flex-col gap-6" }, wt = { class: "flex gap-2 items-cente
|
|
|
205
205
|
_: 1
|
|
206
206
|
}, 8, ["loading", "onClick"])) : m("", !0)])]),
|
|
207
207
|
_: 2
|
|
208
|
-
}, 1032, ["class"]), A(
|
|
208
|
+
}, 1032, ["class"]), A(ce, { pt: { content: { class: {
|
|
209
209
|
"px-0": !0,
|
|
210
210
|
"pb-5": g === n.sources.length - 1
|
|
211
211
|
} } } }, {
|
|
212
|
-
default: y(() => [T("div",
|
|
213
|
-
A(_(
|
|
212
|
+
default: y(() => [T("div", Et, [
|
|
213
|
+
A(_(L), {
|
|
214
214
|
modelValue: i.name,
|
|
215
215
|
"onUpdate:modelValue": (e) => i.name = e,
|
|
216
216
|
modelModifiers: { trim: !0 },
|
|
@@ -222,7 +222,7 @@ var Ct = { class: "flex flex-col gap-6" }, wt = { class: "flex gap-2 items-cente
|
|
|
222
222
|
T("label", {
|
|
223
223
|
for: `sources[${g}].name`,
|
|
224
224
|
class: "cui-label"
|
|
225
|
-
}, s(r.$t("components.form.label.source_name")), 9,
|
|
225
|
+
}, s(r.$t("components.form.label.source_name")), 9, Dt),
|
|
226
226
|
A(b, null, {
|
|
227
227
|
default: y(() => [A(v, l({ ref_for: !0 }, t, {
|
|
228
228
|
invalid: n.length > 0,
|
|
@@ -232,7 +232,7 @@ var Ct = { class: "flex flex-col gap-6" }, wt = { class: "flex gap-2 items-cente
|
|
|
232
232
|
_: 2
|
|
233
233
|
}, 1024),
|
|
234
234
|
A(e, { name: "fade" }, {
|
|
235
|
-
default: y(() => [A(_(
|
|
235
|
+
default: y(() => [A(_(B), {
|
|
236
236
|
name: `sources[${g}].name`,
|
|
237
237
|
class: "cui-input-error"
|
|
238
238
|
}, null, 8, ["name"])]),
|
|
@@ -255,7 +255,7 @@ var Ct = { class: "flex flex-col gap-6" }, wt = { class: "flex gap-2 items-cente
|
|
|
255
255
|
"onUpdate:modelValue",
|
|
256
256
|
"name"
|
|
257
257
|
]),
|
|
258
|
-
A(_(
|
|
258
|
+
A(_(L), {
|
|
259
259
|
"model-value": i.role,
|
|
260
260
|
name: `sources[${g}].role`,
|
|
261
261
|
as: "div",
|
|
@@ -265,14 +265,14 @@ var Ct = { class: "flex flex-col gap-6" }, wt = { class: "flex gap-2 items-cente
|
|
|
265
265
|
T("label", {
|
|
266
266
|
for: `sources[${g}].role`,
|
|
267
267
|
class: "cui-label"
|
|
268
|
-
}, s(r.$t("components.form.label.source_role")), 9,
|
|
268
|
+
}, s(r.$t("components.form.label.source_role")), 9, Ot),
|
|
269
269
|
A(b, null, {
|
|
270
270
|
default: y(() => [A(k, {
|
|
271
271
|
"model-value": i.role,
|
|
272
272
|
options: _(w).filter((e) => !n.sources.some((t) => t.role === e && t._id !== i._id)),
|
|
273
273
|
invalid: t.length > 0,
|
|
274
274
|
loading: _(j),
|
|
275
|
-
onValueChange: (e) =>
|
|
275
|
+
onValueChange: (e) => ne(i, e)
|
|
276
276
|
}, null, 8, [
|
|
277
277
|
"model-value",
|
|
278
278
|
"options",
|
|
@@ -283,7 +283,7 @@ var Ct = { class: "flex flex-col gap-6" }, wt = { class: "flex gap-2 items-cente
|
|
|
283
283
|
_: 2
|
|
284
284
|
}, 1024),
|
|
285
285
|
A(e, { name: "fade" }, {
|
|
286
|
-
default: y(() => [A(_(
|
|
286
|
+
default: y(() => [A(_(B), {
|
|
287
287
|
name: `sources[${g}].role`,
|
|
288
288
|
class: "cui-input-error"
|
|
289
289
|
}, null, 8, ["name"])]),
|
|
@@ -302,8 +302,8 @@ var Ct = { class: "flex flex-col gap-6" }, wt = { class: "flex gap-2 items-cente
|
|
|
302
302
|
]),
|
|
303
303
|
_: 2
|
|
304
304
|
}, 1032, ["model-value", "name"]),
|
|
305
|
-
T("div",
|
|
306
|
-
i.role !== "snapshot" && n.sources.length > 1 ? (o(), p(_(
|
|
305
|
+
T("div", kt, [
|
|
306
|
+
i.role !== "snapshot" && n.sources.length > 1 ? (o(), p(_(L), {
|
|
307
307
|
key: 0,
|
|
308
308
|
"model-value": i.useForSnapshot,
|
|
309
309
|
value: !0,
|
|
@@ -313,11 +313,11 @@ var Ct = { class: "flex flex-col gap-6" }, wt = { class: "flex gap-2 items-cente
|
|
|
313
313
|
as: "div",
|
|
314
314
|
class: "flex flex-col field-gap cui-toggle-switch"
|
|
315
315
|
}, {
|
|
316
|
-
default: y(({ field: t, errors: a }) => [T("div",
|
|
316
|
+
default: y(({ field: t, errors: a }) => [T("div", At, [T("div", jt, [
|
|
317
317
|
T("label", {
|
|
318
318
|
for: `sources[${g}].useForSnapshot`,
|
|
319
319
|
class: "cui-label-switch"
|
|
320
|
-
}, s(r.$t("components.form.label.use_for_snapshot")), 9,
|
|
320
|
+
}, s(r.$t("components.form.label.use_for_snapshot")), 9, Mt),
|
|
321
321
|
A(S, {
|
|
322
322
|
severity: "secondary",
|
|
323
323
|
variant: "simple",
|
|
@@ -328,13 +328,13 @@ var Ct = { class: "flex flex-col gap-6" }, wt = { class: "flex gap-2 items-cente
|
|
|
328
328
|
_: 1
|
|
329
329
|
}),
|
|
330
330
|
A(e, { name: "fade" }, {
|
|
331
|
-
default: y(() => [A(_(
|
|
331
|
+
default: y(() => [A(_(B), {
|
|
332
332
|
name: `sources[${g}].useForSnapshot`,
|
|
333
333
|
class: "cui-input-switch-error"
|
|
334
334
|
}, null, 8, ["name"])]),
|
|
335
335
|
_: 2
|
|
336
336
|
}, 1024)
|
|
337
|
-
]), A(
|
|
337
|
+
]), A(N, l({ "model-value": i.useForSnapshot }, { ref_for: !0 }, t, {
|
|
338
338
|
invalid: a.length > 0,
|
|
339
339
|
loading: _(j),
|
|
340
340
|
disabled: n.sources.some((e) => (e.useForSnapshot || e.role === "snapshot") && e._id !== i._id),
|
|
@@ -349,7 +349,7 @@ var Ct = { class: "flex flex-col gap-6" }, wt = { class: "flex gap-2 items-cente
|
|
|
349
349
|
])])]),
|
|
350
350
|
_: 2
|
|
351
351
|
}, 1032, ["model-value", "name"])) : m("", !0),
|
|
352
|
-
i.role === "snapshot" ? m("", !0) : (o(), p(_(
|
|
352
|
+
i.role === "snapshot" ? m("", !0) : (o(), p(_(L), {
|
|
353
353
|
key: 1,
|
|
354
354
|
"model-value": i.hotMode,
|
|
355
355
|
value: !0,
|
|
@@ -359,11 +359,11 @@ var Ct = { class: "flex flex-col gap-6" }, wt = { class: "flex gap-2 items-cente
|
|
|
359
359
|
as: "div",
|
|
360
360
|
class: "flex flex-col field-gap cui-toggle-switch"
|
|
361
361
|
}, {
|
|
362
|
-
default: y(({ field: t, errors: n }) => [T("div",
|
|
362
|
+
default: y(({ field: t, errors: n }) => [T("div", Nt, [T("div", Pt, [
|
|
363
363
|
T("label", {
|
|
364
364
|
for: `sources[${g}].hotMode`,
|
|
365
365
|
class: "cui-label-switch"
|
|
366
|
-
}, s(r.$t("components.form.label.hot_mode")), 9,
|
|
366
|
+
}, s(r.$t("components.form.label.hot_mode")), 9, Ft),
|
|
367
367
|
A(S, {
|
|
368
368
|
severity: "secondary",
|
|
369
369
|
variant: "simple",
|
|
@@ -374,13 +374,13 @@ var Ct = { class: "flex flex-col gap-6" }, wt = { class: "flex gap-2 items-cente
|
|
|
374
374
|
_: 1
|
|
375
375
|
}),
|
|
376
376
|
A(e, { name: "fade" }, {
|
|
377
|
-
default: y(() => [A(_(
|
|
377
|
+
default: y(() => [A(_(B), {
|
|
378
378
|
name: `sources[${g}].hotMode`,
|
|
379
379
|
class: "cui-input-switch-error"
|
|
380
380
|
}, null, 8, ["name"])]),
|
|
381
381
|
_: 2
|
|
382
382
|
}, 1024)
|
|
383
|
-
]), A(
|
|
383
|
+
]), A(N, l({ "model-value": i.hotMode }, { ref_for: !0 }, t, {
|
|
384
384
|
invalid: n.length > 0,
|
|
385
385
|
loading: _(j),
|
|
386
386
|
class: "ml-auto shrink-0",
|
|
@@ -393,7 +393,7 @@ var Ct = { class: "flex flex-col gap-6" }, wt = { class: "flex gap-2 items-cente
|
|
|
393
393
|
])])]),
|
|
394
394
|
_: 2
|
|
395
395
|
}, 1032, ["model-value", "name"])),
|
|
396
|
-
i.role === "snapshot" ? m("", !0) : (o(), p(_(
|
|
396
|
+
i.role === "snapshot" ? m("", !0) : (o(), p(_(L), {
|
|
397
397
|
key: 2,
|
|
398
398
|
"model-value": i.preload,
|
|
399
399
|
value: !0,
|
|
@@ -403,11 +403,11 @@ var Ct = { class: "flex flex-col gap-6" }, wt = { class: "flex gap-2 items-cente
|
|
|
403
403
|
as: "div",
|
|
404
404
|
class: "flex flex-col field-gap cui-toggle-switch"
|
|
405
405
|
}, {
|
|
406
|
-
default: y(({ field: t, errors: n }) => [T("div",
|
|
406
|
+
default: y(({ field: t, errors: n }) => [T("div", It, [T("div", Lt, [
|
|
407
407
|
T("label", {
|
|
408
408
|
for: `sources[${g}].preload`,
|
|
409
409
|
class: "cui-label-switch"
|
|
410
|
-
}, s(r.$t("components.form.label.preload")), 9,
|
|
410
|
+
}, s(r.$t("components.form.label.preload")), 9, Rt),
|
|
411
411
|
A(S, {
|
|
412
412
|
severity: "secondary",
|
|
413
413
|
variant: "simple",
|
|
@@ -418,13 +418,13 @@ var Ct = { class: "flex flex-col gap-6" }, wt = { class: "flex gap-2 items-cente
|
|
|
418
418
|
_: 1
|
|
419
419
|
}),
|
|
420
420
|
A(e, { name: "fade" }, {
|
|
421
|
-
default: y(() => [A(_(
|
|
421
|
+
default: y(() => [A(_(B), {
|
|
422
422
|
name: `sources[${g}].preload`,
|
|
423
423
|
class: "cui-input-switch-error"
|
|
424
424
|
}, null, 8, ["name"])]),
|
|
425
425
|
_: 2
|
|
426
426
|
}, 1024)
|
|
427
|
-
]), A(
|
|
427
|
+
]), A(N, l({ "model-value": i.preload }, { ref_for: !0 }, t, {
|
|
428
428
|
invalid: n.length > 0,
|
|
429
429
|
loading: _(j),
|
|
430
430
|
class: "ml-auto shrink-0",
|
|
@@ -437,7 +437,7 @@ var Ct = { class: "flex flex-col gap-6" }, wt = { class: "flex gap-2 items-cente
|
|
|
437
437
|
])])]),
|
|
438
438
|
_: 2
|
|
439
439
|
}, 1032, ["model-value", "name"])),
|
|
440
|
-
i.role === "snapshot" ? m("", !0) : (o(), p(_(
|
|
440
|
+
i.role === "snapshot" ? m("", !0) : (o(), p(_(L), {
|
|
441
441
|
key: 3,
|
|
442
442
|
"model-value": i.muted,
|
|
443
443
|
value: !0,
|
|
@@ -447,11 +447,11 @@ var Ct = { class: "flex flex-col gap-6" }, wt = { class: "flex gap-2 items-cente
|
|
|
447
447
|
as: "div",
|
|
448
448
|
class: "flex flex-col field-gap cui-toggle-switch"
|
|
449
449
|
}, {
|
|
450
|
-
default: y(({ field: t, errors: n }) => [T("div",
|
|
450
|
+
default: y(({ field: t, errors: n }) => [T("div", zt, [T("div", Bt, [
|
|
451
451
|
T("label", {
|
|
452
452
|
for: `sources[${g}].muted`,
|
|
453
453
|
class: "cui-label-switch"
|
|
454
|
-
}, s(r.$t("components.form.label.muted")), 9,
|
|
454
|
+
}, s(r.$t("components.form.label.muted")), 9, Vt),
|
|
455
455
|
A(S, {
|
|
456
456
|
severity: "secondary",
|
|
457
457
|
variant: "simple",
|
|
@@ -462,13 +462,13 @@ var Ct = { class: "flex flex-col gap-6" }, wt = { class: "flex gap-2 items-cente
|
|
|
462
462
|
_: 1
|
|
463
463
|
}),
|
|
464
464
|
A(e, { name: "fade" }, {
|
|
465
|
-
default: y(() => [A(_(
|
|
465
|
+
default: y(() => [A(_(B), {
|
|
466
466
|
name: `sources[${g}].muted`,
|
|
467
467
|
class: "cui-input-switch-error"
|
|
468
468
|
}, null, 8, ["name"])]),
|
|
469
469
|
_: 2
|
|
470
470
|
}, 1024)
|
|
471
|
-
]), A(
|
|
471
|
+
]), A(N, l({ "model-value": i.muted }, { ref_for: !0 }, t, {
|
|
472
472
|
invalid: n.length > 0,
|
|
473
473
|
loading: _(j),
|
|
474
474
|
class: "ml-auto shrink-0",
|
|
@@ -482,11 +482,11 @@ var Ct = { class: "flex flex-col gap-6" }, wt = { class: "flex gap-2 items-cente
|
|
|
482
482
|
_: 2
|
|
483
483
|
}, 1032, ["model-value", "name"]))
|
|
484
484
|
]),
|
|
485
|
-
T("div",
|
|
486
|
-
T("div",
|
|
485
|
+
T("div", Ht, [
|
|
486
|
+
T("div", Ut, [T("label", {
|
|
487
487
|
for: `sources[${g}].urls[]`,
|
|
488
488
|
class: "cui-label"
|
|
489
|
-
}, s(r.$t("components.form.label.sources")), 9,
|
|
489
|
+
}, s(r.$t("components.form.label.sources")), 9, Wt), A(S, {
|
|
490
490
|
severity: "secondary",
|
|
491
491
|
variant: "simple",
|
|
492
492
|
size: "small",
|
|
@@ -495,7 +495,7 @@ var Ct = { class: "flex flex-col gap-6" }, wt = { class: "flex gap-2 items-cente
|
|
|
495
495
|
default: y(() => [D(s(M(i) ? r.$t("views.devices.managed_source_hint") : r.$t("components.form.hint.source_urls")), 1)]),
|
|
496
496
|
_: 2
|
|
497
497
|
}, 1024)]),
|
|
498
|
-
(o(!0), x(C, null, a(i.urls, (n, a) => (o(), x(C, { key: a }, [_(
|
|
498
|
+
(o(!0), x(C, null, a(i.urls, (n, a) => (o(), x(C, { key: a }, [_(xt)(n) ? (o(), x("div", Gt, [A(b, null, {
|
|
499
499
|
default: y(() => [A(v, {
|
|
500
500
|
"model-value": n,
|
|
501
501
|
readonly: "",
|
|
@@ -503,7 +503,7 @@ var Ct = { class: "flex flex-col gap-6" }, wt = { class: "flex gap-2 items-cente
|
|
|
503
503
|
type: "text"
|
|
504
504
|
}, null, 8, ["model-value", "loading"])]),
|
|
505
505
|
_: 2
|
|
506
|
-
}, 1024)])) : (o(), p(_(
|
|
506
|
+
}, 1024)])) : (o(), p(_(L), {
|
|
507
507
|
key: 1,
|
|
508
508
|
"model-value": n,
|
|
509
509
|
name: `sources[${g}].urls[${a}]`,
|
|
@@ -517,24 +517,24 @@ var Ct = { class: "flex flex-col gap-6" }, wt = { class: "flex gap-2 items-cente
|
|
|
517
517
|
invalid: c.length > 0,
|
|
518
518
|
loading: _(j),
|
|
519
519
|
type: "text",
|
|
520
|
-
placeholder:
|
|
521
|
-
"onUpdate:modelValue": (e) =>
|
|
520
|
+
placeholder: Kt,
|
|
521
|
+
"onUpdate:modelValue": (e) => R(g, a, e ?? "")
|
|
522
522
|
}, null, 8, [
|
|
523
523
|
"model-value",
|
|
524
524
|
"invalid",
|
|
525
525
|
"loading",
|
|
526
526
|
"onUpdate:modelValue"
|
|
527
|
-
]), A(
|
|
527
|
+
]), A(se, null, {
|
|
528
528
|
default: y(() => [
|
|
529
529
|
E((o(), p(f, {
|
|
530
530
|
text: "",
|
|
531
531
|
rounded: "",
|
|
532
532
|
severity: "secondary",
|
|
533
|
-
disabled: _(j) || !
|
|
533
|
+
disabled: _(j) || !P(n),
|
|
534
534
|
class: "border-right-color",
|
|
535
|
-
onClick: (e) =>
|
|
535
|
+
onClick: (e) => ae(n)
|
|
536
536
|
}, {
|
|
537
|
-
icon: y(() => [A(
|
|
537
|
+
icon: y(() => [A(z, {
|
|
538
538
|
width: "100%",
|
|
539
539
|
height: "100%"
|
|
540
540
|
})]),
|
|
@@ -549,11 +549,11 @@ var Ct = { class: "flex flex-col gap-6" }, wt = { class: "flex gap-2 items-cente
|
|
|
549
549
|
text: "",
|
|
550
550
|
rounded: "",
|
|
551
551
|
severity: "secondary",
|
|
552
|
-
disabled: _(j) || !_(
|
|
552
|
+
disabled: _(j) || !_(Y)(n),
|
|
553
553
|
class: "border-right-color",
|
|
554
|
-
onClick: (e) =>
|
|
554
|
+
onClick: (e) => H(n)
|
|
555
555
|
}, {
|
|
556
|
-
icon: y(() => [A(
|
|
556
|
+
icon: y(() => [A(oe, {
|
|
557
557
|
width: "100%",
|
|
558
558
|
height: "100%"
|
|
559
559
|
})]),
|
|
@@ -570,7 +570,7 @@ var Ct = { class: "flex flex-col gap-6" }, wt = { class: "flex gap-2 items-cente
|
|
|
570
570
|
rounded: "",
|
|
571
571
|
severity: "danger",
|
|
572
572
|
disabled: _(j),
|
|
573
|
-
onClick: t((e) =>
|
|
573
|
+
onClick: t((e) => I(g, a), ["prevent"])
|
|
574
574
|
}, {
|
|
575
575
|
icon: y(() => [A(d, {
|
|
576
576
|
width: "100%",
|
|
@@ -584,7 +584,7 @@ var Ct = { class: "flex flex-col gap-6" }, wt = { class: "flex gap-2 items-cente
|
|
|
584
584
|
_: 2
|
|
585
585
|
}, 1024),
|
|
586
586
|
A(e, { name: "fade" }, {
|
|
587
|
-
default: y(() => [A(_(
|
|
587
|
+
default: y(() => [A(_(B), {
|
|
588
588
|
name: `sources[${g}].urls[${a}]`,
|
|
589
589
|
class: "cui-input-error"
|
|
590
590
|
}, null, 8, ["name"])]),
|
|
@@ -596,7 +596,7 @@ var Ct = { class: "flex flex-col gap-6" }, wt = { class: "flex gap-2 items-cente
|
|
|
596
596
|
size: "small",
|
|
597
597
|
class: "cui-input-hint"
|
|
598
598
|
}, {
|
|
599
|
-
default: y(() => [D(s(_(
|
|
599
|
+
default: y(() => [D(s(_(Y)(n) ? r.$t("components.form.hint.source_detected_protocol", { protocol: _(Y)(n) }) : r.$t("components.form.hint.source_url")), 1)]),
|
|
600
600
|
_: 2
|
|
601
601
|
}, 1024)
|
|
602
602
|
]),
|
|
@@ -607,7 +607,7 @@ var Ct = { class: "flex flex-col gap-6" }, wt = { class: "flex gap-2 items-cente
|
|
|
607
607
|
loading: _(j),
|
|
608
608
|
label: r.$t("components.form.button.add_source"),
|
|
609
609
|
class: "ml-auto cui-button-medium",
|
|
610
|
-
onClick: (e) =>
|
|
610
|
+
onClick: (e) => F(g)
|
|
611
611
|
}, null, 8, [
|
|
612
612
|
"loading",
|
|
613
613
|
"label",
|
|
@@ -623,16 +623,16 @@ var Ct = { class: "flex flex-col gap-6" }, wt = { class: "flex gap-2 items-cente
|
|
|
623
623
|
}, 8, ["value"])]);
|
|
624
624
|
};
|
|
625
625
|
}
|
|
626
|
-
}),
|
|
626
|
+
}), Jt = { class: "flex flex-col gap-2 w-full" }, Yt = {
|
|
627
627
|
for: "roomName",
|
|
628
628
|
class: "cui-label"
|
|
629
|
-
},
|
|
629
|
+
}, Xt = /* @__PURE__ */ O({
|
|
630
630
|
__name: "CreateRoom",
|
|
631
631
|
setup(e, { expose: t }) {
|
|
632
632
|
let n = k("");
|
|
633
633
|
return t({ onConfirm: async () => n.value.trim() || null }), (e, t) => {
|
|
634
634
|
let r = J;
|
|
635
|
-
return o(), x("div",
|
|
635
|
+
return o(), x("div", Jt, [T("label", Yt, s(e.$t("components.form.label.name")), 1), A(r, {
|
|
636
636
|
id: "roomName",
|
|
637
637
|
modelValue: _(n),
|
|
638
638
|
"onUpdate:modelValue": t[0] ||= (e) => g(n) ? n.value = e : null,
|
|
@@ -645,7 +645,7 @@ var Ct = { class: "flex flex-col gap-6" }, wt = { class: "flex gap-2 items-cente
|
|
|
645
645
|
});
|
|
646
646
|
//#endregion
|
|
647
647
|
//#region src/components/CuiCameraDetailsFields/rooms.ts
|
|
648
|
-
function
|
|
648
|
+
function Zt(e, t) {
|
|
649
649
|
let n = e?.rooms ?? [], r = [...e?.levels ?? []].sort((e, t) => e.order - t.order), i = (e) => ({
|
|
650
650
|
label: e.name === "Default" ? t("components.form.label.room_default") : e.name,
|
|
651
651
|
value: e.id
|
|
@@ -667,46 +667,46 @@ function Qt(e, t) {
|
|
|
667
667
|
}
|
|
668
668
|
//#endregion
|
|
669
669
|
//#region src/components/CuiCameraDetailsFields/CuiCameraDetailsFields.vue?vue&type=script&setup=true&lang.ts
|
|
670
|
-
var
|
|
670
|
+
var Qt = { class: "flex flex-col gap-6" }, $t = {
|
|
671
671
|
for: "name",
|
|
672
672
|
class: "cui-label"
|
|
673
|
-
},
|
|
673
|
+
}, en = { class: "flex flex-col field-gap" }, tn = {
|
|
674
674
|
for: "type",
|
|
675
675
|
class: "cui-label"
|
|
676
|
-
},
|
|
676
|
+
}, nn = { class: "flex flex-col field-gap" }, rn = {
|
|
677
677
|
for: "room",
|
|
678
678
|
class: "cui-label"
|
|
679
|
-
},
|
|
679
|
+
}, an = { class: "flex gap-2" }, on = { class: "text-color font-normal" }, sn = { class: "flex flex-col gap-6" }, cn = {
|
|
680
680
|
for: "info.manufacturer",
|
|
681
681
|
class: "cui-label"
|
|
682
|
-
},
|
|
682
|
+
}, ln = {
|
|
683
683
|
for: "info.model",
|
|
684
684
|
class: "cui-label"
|
|
685
|
-
},
|
|
685
|
+
}, un = {
|
|
686
686
|
for: "info.hardware",
|
|
687
687
|
class: "cui-label"
|
|
688
|
-
},
|
|
688
|
+
}, dn = {
|
|
689
689
|
for: "info.serialNumber",
|
|
690
690
|
class: "cui-label"
|
|
691
|
-
},
|
|
691
|
+
}, fn = {
|
|
692
692
|
for: "info.firmwareVersion",
|
|
693
693
|
class: "cui-label"
|
|
694
|
-
},
|
|
694
|
+
}, pn = {
|
|
695
695
|
for: "info.supportUrl",
|
|
696
696
|
class: "cui-label"
|
|
697
|
-
},
|
|
697
|
+
}, mn = /* @__PURE__ */ O({
|
|
698
698
|
__name: "CuiCameraDetailsFields",
|
|
699
699
|
props: {
|
|
700
700
|
form: {},
|
|
701
701
|
isLoading: { type: Boolean }
|
|
702
702
|
},
|
|
703
703
|
setup(t) {
|
|
704
|
-
let n = new Ve(), r = t, i =
|
|
704
|
+
let n = new Ve(), r = t, i = de(), { t: a } = K(), { data: u, isBusy: d } = n.getRoomsQuery(), { mutateAsync: f } = n.createRoomMutation(), h = k(["camera", "doorbell"]), g = v(() => (u.value?.levels.length ?? 0) > 0), b = v(() => Zt(u.value, a));
|
|
705
705
|
function S(e) {
|
|
706
706
|
r.form.roomId = e;
|
|
707
707
|
}
|
|
708
708
|
function C() {
|
|
709
|
-
i.openComponentDialog(
|
|
709
|
+
i.openComponentDialog(Xt, {
|
|
710
710
|
data: {
|
|
711
711
|
title: a("components.dialog.title.create_room"),
|
|
712
712
|
confirmText: a("components.form.button.add"),
|
|
@@ -724,9 +724,9 @@ var $t = { class: "flex flex-col gap-6" }, en = {
|
|
|
724
724
|
});
|
|
725
725
|
}
|
|
726
726
|
return (n, r) => {
|
|
727
|
-
let i = J, a =
|
|
728
|
-
return o(), x("div",
|
|
729
|
-
A(_(
|
|
727
|
+
let i = J, a = V, u = te, f = Ce, v = Ie, w = q, O = De, k = Te, j = Ee, M = Oe, N = ee;
|
|
728
|
+
return o(), x("div", Qt, [
|
|
729
|
+
A(_(L), {
|
|
730
730
|
modelValue: t.form.name,
|
|
731
731
|
"onUpdate:modelValue": r[0] ||= (e) => t.form.name = e,
|
|
732
732
|
modelModifiers: { trim: !0 },
|
|
@@ -735,7 +735,7 @@ var $t = { class: "flex flex-col gap-6" }, en = {
|
|
|
735
735
|
class: "flex flex-col field-gap"
|
|
736
736
|
}, {
|
|
737
737
|
default: y(({ field: r, errors: c }) => [
|
|
738
|
-
T("label",
|
|
738
|
+
T("label", $t, s(n.$t("components.form.label.name")), 1),
|
|
739
739
|
A(a, null, {
|
|
740
740
|
default: y(() => [A(i, l(r, {
|
|
741
741
|
invalid: c.length > 0,
|
|
@@ -745,7 +745,7 @@ var $t = { class: "flex flex-col gap-6" }, en = {
|
|
|
745
745
|
_: 2
|
|
746
746
|
}, 1024),
|
|
747
747
|
A(e, { name: "fade" }, {
|
|
748
|
-
default: y(() => [A(_(
|
|
748
|
+
default: y(() => [A(_(B), {
|
|
749
749
|
name: "name",
|
|
750
750
|
class: "cui-input-error"
|
|
751
751
|
})]),
|
|
@@ -764,7 +764,7 @@ var $t = { class: "flex flex-col gap-6" }, en = {
|
|
|
764
764
|
]),
|
|
765
765
|
_: 1
|
|
766
766
|
}, 8, ["modelValue"]),
|
|
767
|
-
T("div",
|
|
767
|
+
T("div", en, [T("label", tn, s(n.$t("components.form.label.type")), 1), A(a, null, {
|
|
768
768
|
default: y(() => [A(f, {
|
|
769
769
|
"model-value": t.form.type,
|
|
770
770
|
options: _(h),
|
|
@@ -778,9 +778,9 @@ var $t = { class: "flex flex-col gap-6" }, en = {
|
|
|
778
778
|
])]),
|
|
779
779
|
_: 1
|
|
780
780
|
})]),
|
|
781
|
-
T("div",
|
|
782
|
-
T("label",
|
|
783
|
-
T("div",
|
|
781
|
+
T("div", nn, [
|
|
782
|
+
T("label", rn, s(n.$t("components.form.label.room")), 1),
|
|
783
|
+
T("div", an, [A(f, {
|
|
784
784
|
"model-value": t.form.roomId,
|
|
785
785
|
options: _(b),
|
|
786
786
|
"option-label": "label",
|
|
@@ -824,11 +824,11 @@ var $t = { class: "flex flex-col gap-6" }, en = {
|
|
|
824
824
|
A(M, null, {
|
|
825
825
|
default: y(() => [A(j, { value: "branding" }, {
|
|
826
826
|
default: y(() => [A(O, { class: "px-0 pt-0" }, {
|
|
827
|
-
default: y(() => [T("span",
|
|
827
|
+
default: y(() => [T("span", on, s(n.$t("components.camera_options.branding")), 1)]),
|
|
828
828
|
_: 1
|
|
829
829
|
}), A(k, { pt: { content: { class: "px-0" } } }, {
|
|
830
|
-
default: y(() => [T("div",
|
|
831
|
-
A(_(
|
|
830
|
+
default: y(() => [T("div", sn, [
|
|
831
|
+
A(_(L), {
|
|
832
832
|
modelValue: t.form.info.manufacturer,
|
|
833
833
|
"onUpdate:modelValue": r[3] ||= (e) => t.form.info.manufacturer = e,
|
|
834
834
|
modelModifiers: { trim: !0 },
|
|
@@ -837,7 +837,7 @@ var $t = { class: "flex flex-col gap-6" }, en = {
|
|
|
837
837
|
class: "flex flex-col field-gap"
|
|
838
838
|
}, {
|
|
839
839
|
default: y(({ field: r, errors: o }) => [
|
|
840
|
-
T("label",
|
|
840
|
+
T("label", cn, s(n.$t("components.form.label.manufacturer")), 1),
|
|
841
841
|
A(a, null, {
|
|
842
842
|
default: y(() => [A(i, l(r, {
|
|
843
843
|
invalid: o.length > 0,
|
|
@@ -847,7 +847,7 @@ var $t = { class: "flex flex-col gap-6" }, en = {
|
|
|
847
847
|
_: 2
|
|
848
848
|
}, 1024),
|
|
849
849
|
A(e, { name: "fade" }, {
|
|
850
|
-
default: y(() => [A(_(
|
|
850
|
+
default: y(() => [A(_(B), {
|
|
851
851
|
name: "info.manufacturer",
|
|
852
852
|
class: "cui-input-error"
|
|
853
853
|
})]),
|
|
@@ -856,7 +856,7 @@ var $t = { class: "flex flex-col gap-6" }, en = {
|
|
|
856
856
|
]),
|
|
857
857
|
_: 1
|
|
858
858
|
}, 8, ["modelValue"]),
|
|
859
|
-
A(_(
|
|
859
|
+
A(_(L), {
|
|
860
860
|
modelValue: t.form.info.model,
|
|
861
861
|
"onUpdate:modelValue": r[4] ||= (e) => t.form.info.model = e,
|
|
862
862
|
modelModifiers: { trim: !0 },
|
|
@@ -865,7 +865,7 @@ var $t = { class: "flex flex-col gap-6" }, en = {
|
|
|
865
865
|
class: "flex flex-col field-gap"
|
|
866
866
|
}, {
|
|
867
867
|
default: y(({ field: r, errors: o }) => [
|
|
868
|
-
T("label",
|
|
868
|
+
T("label", ln, s(n.$t("components.form.label.model")), 1),
|
|
869
869
|
A(a, null, {
|
|
870
870
|
default: y(() => [A(i, l(r, {
|
|
871
871
|
invalid: o.length > 0,
|
|
@@ -875,7 +875,7 @@ var $t = { class: "flex flex-col gap-6" }, en = {
|
|
|
875
875
|
_: 2
|
|
876
876
|
}, 1024),
|
|
877
877
|
A(e, { name: "fade" }, {
|
|
878
|
-
default: y(() => [A(_(
|
|
878
|
+
default: y(() => [A(_(B), {
|
|
879
879
|
name: "info.model",
|
|
880
880
|
class: "cui-input-error"
|
|
881
881
|
})]),
|
|
@@ -884,7 +884,7 @@ var $t = { class: "flex flex-col gap-6" }, en = {
|
|
|
884
884
|
]),
|
|
885
885
|
_: 1
|
|
886
886
|
}, 8, ["modelValue"]),
|
|
887
|
-
A(_(
|
|
887
|
+
A(_(L), {
|
|
888
888
|
modelValue: t.form.info.hardware,
|
|
889
889
|
"onUpdate:modelValue": r[5] ||= (e) => t.form.info.hardware = e,
|
|
890
890
|
modelModifiers: { trim: !0 },
|
|
@@ -893,7 +893,7 @@ var $t = { class: "flex flex-col gap-6" }, en = {
|
|
|
893
893
|
class: "flex flex-col field-gap"
|
|
894
894
|
}, {
|
|
895
895
|
default: y(({ field: r, errors: o }) => [
|
|
896
|
-
T("label",
|
|
896
|
+
T("label", un, s(n.$t("components.form.label.hardware_version")), 1),
|
|
897
897
|
A(a, null, {
|
|
898
898
|
default: y(() => [A(i, l(r, {
|
|
899
899
|
invalid: o.length > 0,
|
|
@@ -903,7 +903,7 @@ var $t = { class: "flex flex-col gap-6" }, en = {
|
|
|
903
903
|
_: 2
|
|
904
904
|
}, 1024),
|
|
905
905
|
A(e, { name: "fade" }, {
|
|
906
|
-
default: y(() => [A(_(
|
|
906
|
+
default: y(() => [A(_(B), {
|
|
907
907
|
name: "info.hardware",
|
|
908
908
|
class: "cui-input-error"
|
|
909
909
|
})]),
|
|
@@ -912,7 +912,7 @@ var $t = { class: "flex flex-col gap-6" }, en = {
|
|
|
912
912
|
]),
|
|
913
913
|
_: 1
|
|
914
914
|
}, 8, ["modelValue"]),
|
|
915
|
-
A(_(
|
|
915
|
+
A(_(L), {
|
|
916
916
|
modelValue: t.form.info.serialNumber,
|
|
917
917
|
"onUpdate:modelValue": r[6] ||= (e) => t.form.info.serialNumber = e,
|
|
918
918
|
modelModifiers: { trim: !0 },
|
|
@@ -921,7 +921,7 @@ var $t = { class: "flex flex-col gap-6" }, en = {
|
|
|
921
921
|
class: "flex flex-col field-gap"
|
|
922
922
|
}, {
|
|
923
923
|
default: y(({ field: r, errors: o }) => [
|
|
924
|
-
T("label",
|
|
924
|
+
T("label", dn, s(n.$t("components.form.label.serial_number")), 1),
|
|
925
925
|
A(a, null, {
|
|
926
926
|
default: y(() => [A(i, l(r, {
|
|
927
927
|
invalid: o.length > 0,
|
|
@@ -931,7 +931,7 @@ var $t = { class: "flex flex-col gap-6" }, en = {
|
|
|
931
931
|
_: 2
|
|
932
932
|
}, 1024),
|
|
933
933
|
A(e, { name: "fade" }, {
|
|
934
|
-
default: y(() => [A(_(
|
|
934
|
+
default: y(() => [A(_(B), {
|
|
935
935
|
name: "info.serialNumber",
|
|
936
936
|
class: "cui-input-error"
|
|
937
937
|
})]),
|
|
@@ -940,7 +940,7 @@ var $t = { class: "flex flex-col gap-6" }, en = {
|
|
|
940
940
|
]),
|
|
941
941
|
_: 1
|
|
942
942
|
}, 8, ["modelValue"]),
|
|
943
|
-
A(_(
|
|
943
|
+
A(_(L), {
|
|
944
944
|
modelValue: t.form.info.firmwareVersion,
|
|
945
945
|
"onUpdate:modelValue": r[7] ||= (e) => t.form.info.firmwareVersion = e,
|
|
946
946
|
modelModifiers: { trim: !0 },
|
|
@@ -949,7 +949,7 @@ var $t = { class: "flex flex-col gap-6" }, en = {
|
|
|
949
949
|
class: "flex flex-col field-gap"
|
|
950
950
|
}, {
|
|
951
951
|
default: y(({ field: r, errors: o }) => [
|
|
952
|
-
T("label",
|
|
952
|
+
T("label", fn, s(n.$t("components.form.label.firmware_version")), 1),
|
|
953
953
|
A(a, null, {
|
|
954
954
|
default: y(() => [A(i, l(r, {
|
|
955
955
|
invalid: o.length > 0,
|
|
@@ -959,7 +959,7 @@ var $t = { class: "flex flex-col gap-6" }, en = {
|
|
|
959
959
|
_: 2
|
|
960
960
|
}, 1024),
|
|
961
961
|
A(e, { name: "fade" }, {
|
|
962
|
-
default: y(() => [A(_(
|
|
962
|
+
default: y(() => [A(_(B), {
|
|
963
963
|
name: "info.firmwareVersion",
|
|
964
964
|
class: "cui-input-error"
|
|
965
965
|
})]),
|
|
@@ -968,7 +968,7 @@ var $t = { class: "flex flex-col gap-6" }, en = {
|
|
|
968
968
|
]),
|
|
969
969
|
_: 1
|
|
970
970
|
}, 8, ["modelValue"]),
|
|
971
|
-
A(_(
|
|
971
|
+
A(_(L), {
|
|
972
972
|
modelValue: t.form.info.supportUrl,
|
|
973
973
|
"onUpdate:modelValue": r[8] ||= (e) => t.form.info.supportUrl = e,
|
|
974
974
|
modelModifiers: { trim: !0 },
|
|
@@ -977,7 +977,7 @@ var $t = { class: "flex flex-col gap-6" }, en = {
|
|
|
977
977
|
class: "flex flex-col field-gap"
|
|
978
978
|
}, {
|
|
979
979
|
default: y(({ field: r, errors: o }) => [
|
|
980
|
-
T("label",
|
|
980
|
+
T("label", pn, s(n.$t("components.form.label.support_url")), 1),
|
|
981
981
|
A(a, null, {
|
|
982
982
|
default: y(() => [A(i, l(r, {
|
|
983
983
|
invalid: o.length > 0,
|
|
@@ -987,7 +987,7 @@ var $t = { class: "flex flex-col gap-6" }, en = {
|
|
|
987
987
|
_: 2
|
|
988
988
|
}, 1024),
|
|
989
989
|
A(e, { name: "fade" }, {
|
|
990
|
-
default: y(() => [A(_(
|
|
990
|
+
default: y(() => [A(_(B), {
|
|
991
991
|
name: "info.supportUrl",
|
|
992
992
|
class: "cui-input-error"
|
|
993
993
|
})]),
|
|
@@ -1006,10 +1006,10 @@ var $t = { class: "flex flex-col gap-6" }, en = {
|
|
|
1006
1006
|
]);
|
|
1007
1007
|
};
|
|
1008
1008
|
}
|
|
1009
|
-
}),
|
|
1009
|
+
}), hn = RegExp(`^(${ge.join("|")})`), gn = W().trim().min(1, "Camera Source is required").regex(hn, "Unsupported protocol — start the URL with a supported one (e.g. rtsp://)"), _n = z({
|
|
1010
1010
|
name: W().trim().min(1, "Camera Source Name is required"),
|
|
1011
|
-
urls:
|
|
1012
|
-
role:
|
|
1011
|
+
urls: gn.array(),
|
|
1012
|
+
role: ye,
|
|
1013
1013
|
useForSnapshot: F().default(!1),
|
|
1014
1014
|
hotMode: F().default(!0),
|
|
1015
1015
|
preload: F().default(!0),
|
|
@@ -1019,15 +1019,15 @@ var $t = { class: "flex flex-col gap-6" }, en = {
|
|
|
1019
1019
|
handshakeTimeout: P().int().min(1).max(60).nullish(),
|
|
1020
1020
|
childSourceId: W().trim().nullish(),
|
|
1021
1021
|
childCameraId: W().trim().nullish(),
|
|
1022
|
-
childCameraRole:
|
|
1022
|
+
childCameraRole: ve.nullish()
|
|
1023
1023
|
}).strict().transform((e) => e.role === "snapshot" ? {
|
|
1024
1024
|
...e,
|
|
1025
1025
|
useForSnapshot: !1,
|
|
1026
1026
|
hotMode: !1,
|
|
1027
1027
|
preload: !1
|
|
1028
|
-
} : e),
|
|
1029
|
-
...
|
|
1030
|
-
sources:
|
|
1028
|
+
} : e), vn = z({
|
|
1029
|
+
..._e.shape,
|
|
1030
|
+
sources: _n.array().refine((e) => e.some((e) => e.role === "high-resolution" || e.role === "mid-resolution" || e.role === "low-resolution"), {
|
|
1031
1031
|
path: ["sources[].role"],
|
|
1032
1032
|
message: "One of the roles \"high-resolution\", \"mid-resolution\" or \"low-resolution\" is required"
|
|
1033
1033
|
}).refine((e) => e.filter((e) => e.useForSnapshot).length <= 1, {
|
|
@@ -1039,8 +1039,8 @@ var $t = { class: "flex flex-col gap-6" }, en = {
|
|
|
1039
1039
|
}, {
|
|
1040
1040
|
message: "Each source role can be assigned to only one source",
|
|
1041
1041
|
path: ["sources"]
|
|
1042
|
-
}).superRefine(
|
|
1043
|
-
}).strict(),
|
|
1042
|
+
}).superRefine(be)
|
|
1043
|
+
}).strict(), yn = {
|
|
1044
1044
|
disabled: !1,
|
|
1045
1045
|
name: "",
|
|
1046
1046
|
type: "camera",
|
|
@@ -1074,11 +1074,11 @@ var $t = { class: "flex flex-col gap-6" }, en = {
|
|
|
1074
1074
|
},
|
|
1075
1075
|
plugins: [],
|
|
1076
1076
|
assignments: {}
|
|
1077
|
-
},
|
|
1077
|
+
}, bn = { class: "card-title" }, xn = { class: "card-title" }, Sn = { class: "w-full flex items-center justify-center mt-4" }, Cn = /* @__PURE__ */ O({
|
|
1078
1078
|
__name: "AddCamera",
|
|
1079
|
-
props: { camera: { default: () =>
|
|
1079
|
+
props: { camera: { default: () => yn } },
|
|
1080
1080
|
setup(e, { expose: t }) {
|
|
1081
|
-
let n = new
|
|
1081
|
+
let n = new ce(), r = e, a = I(), { t: c } = K(), { mutateAsync: l, isPending: u } = n.createCameraQuery(), { camera: d } = i(r), f = w("formRef"), p = w("sourcesRef"), m = k(H(d.value)), h = v(() => u.value);
|
|
1082
1082
|
async function g() {
|
|
1083
1083
|
if (!(await f.value?.validate())?.valid) return a.add({
|
|
1084
1084
|
severity: "error",
|
|
@@ -1086,13 +1086,13 @@ var $t = { class: "flex flex-col gap-6" }, en = {
|
|
|
1086
1086
|
life: 3e3
|
|
1087
1087
|
}), null;
|
|
1088
1088
|
let e = H(m.value), t = {
|
|
1089
|
-
...
|
|
1089
|
+
...xe(),
|
|
1090
1090
|
...e,
|
|
1091
1091
|
sources: e.sources.map((e) => ({
|
|
1092
1092
|
...e,
|
|
1093
1093
|
muted: e.muted ?? !1,
|
|
1094
1094
|
backchannelDisabled: e.backchannelDisabled ?? !1,
|
|
1095
|
-
urls: e.urls.map(
|
|
1095
|
+
urls: e.urls.map(bt).filter(Boolean)
|
|
1096
1096
|
}))
|
|
1097
1097
|
};
|
|
1098
1098
|
await l({ cameraData: t });
|
|
@@ -1102,21 +1102,21 @@ var $t = { class: "flex flex-col gap-6" }, en = {
|
|
|
1102
1102
|
onSave: g,
|
|
1103
1103
|
onConfirm: g
|
|
1104
1104
|
}), (e, t) => {
|
|
1105
|
-
let n =
|
|
1106
|
-
return o(), x("div", null, [A(_(
|
|
1105
|
+
let n = mn, r = me, i = qt, a = Ne, c = q;
|
|
1106
|
+
return o(), x("div", null, [A(_(R), {
|
|
1107
1107
|
ref_key: "formRef",
|
|
1108
1108
|
ref: f,
|
|
1109
1109
|
class: "flex flex-col w-full gap-6",
|
|
1110
|
-
"validation-schema": _(
|
|
1110
|
+
"validation-schema": _(vn)
|
|
1111
1111
|
}, {
|
|
1112
|
-
default: y(() => [T("div", null, [T("span",
|
|
1112
|
+
default: y(() => [T("div", null, [T("span", bn, s(e.$t("components.dialog.components.new_camera.camera")), 1), A(r, { class: "cui-card" }, {
|
|
1113
1113
|
content: y(() => [A(n, {
|
|
1114
1114
|
form: _(m),
|
|
1115
1115
|
"is-loading": _(h)
|
|
1116
1116
|
}, null, 8, ["form", "is-loading"])]),
|
|
1117
1117
|
_: 1
|
|
1118
1118
|
})]), T("div", null, [
|
|
1119
|
-
T("span",
|
|
1119
|
+
T("span", xn, s(e.$t("components.form.label.sources")), 1),
|
|
1120
1120
|
A(r, {
|
|
1121
1121
|
class: "cui-card border-color-inner",
|
|
1122
1122
|
pt: { body: { class: "pb-0" } }
|
|
@@ -1130,7 +1130,7 @@ var $t = { class: "flex flex-col gap-6" }, en = {
|
|
|
1130
1130
|
}, null, 8, ["sources", "is-loading"])]),
|
|
1131
1131
|
_: 1
|
|
1132
1132
|
}),
|
|
1133
|
-
T("div",
|
|
1133
|
+
T("div", Sn, [A(c, {
|
|
1134
1134
|
text: "",
|
|
1135
1135
|
rounded: "",
|
|
1136
1136
|
loading: _(h),
|
|
@@ -1148,17 +1148,17 @@ var $t = { class: "flex flex-col gap-6" }, en = {
|
|
|
1148
1148
|
}, 8, ["validation-schema"])]);
|
|
1149
1149
|
};
|
|
1150
1150
|
}
|
|
1151
|
-
}),
|
|
1151
|
+
}), wn = { class: "card-title" }, Tn = {
|
|
1152
1152
|
key: 0,
|
|
1153
1153
|
class: "flex flex-col gap-6"
|
|
1154
|
-
},
|
|
1154
|
+
}, En = { class: "cui-label" }, Dn = { class: "card-title" }, On = /* @__PURE__ */ O({
|
|
1155
1155
|
__name: "ConfirmCamera",
|
|
1156
1156
|
props: {
|
|
1157
1157
|
draft: {},
|
|
1158
1158
|
onConfirm: { type: Function }
|
|
1159
1159
|
},
|
|
1160
1160
|
setup(e, { expose: t }) {
|
|
1161
|
-
let n = z({ name: W().trim().min(1) }).passthrough(), r = e, i =
|
|
1161
|
+
let n = z({ name: W().trim().min(1) }).passthrough(), r = e, i = I(), { t: c } = K(), l = w("formRef"), u = k(H(r.draft)), d = k({
|
|
1162
1162
|
name: u.value.name,
|
|
1163
1163
|
type: u.value.type,
|
|
1164
1164
|
room: u.value.room,
|
|
@@ -1195,7 +1195,7 @@ var $t = { class: "flex flex-col gap-6" }, en = {
|
|
|
1195
1195
|
info: d.value.info,
|
|
1196
1196
|
sources: d.value.sources.map((e) => ({
|
|
1197
1197
|
...e,
|
|
1198
|
-
urls: e.urls.map(
|
|
1198
|
+
urls: e.urls.map(bt).filter(Boolean)
|
|
1199
1199
|
}))
|
|
1200
1200
|
};
|
|
1201
1201
|
await r.onConfirm(e);
|
|
@@ -1214,22 +1214,22 @@ var $t = { class: "flex flex-col gap-6" }, en = {
|
|
|
1214
1214
|
isLoading: h,
|
|
1215
1215
|
onConfirm: g
|
|
1216
1216
|
}), (e, t) => {
|
|
1217
|
-
let r = J, i =
|
|
1218
|
-
return o(), x("div", null, [A(_(
|
|
1217
|
+
let r = J, i = V, c = mn, u = me, f = qt;
|
|
1218
|
+
return o(), x("div", null, [A(_(R), {
|
|
1219
1219
|
ref_key: "formRef",
|
|
1220
1220
|
ref: l,
|
|
1221
1221
|
class: "flex flex-col w-full gap-6",
|
|
1222
1222
|
"validation-schema": _(n)
|
|
1223
1223
|
}, {
|
|
1224
|
-
default: y(() => [T("div", null, [T("span",
|
|
1224
|
+
default: y(() => [T("div", null, [T("span", wn, s(e.$t("components.dialog.components.new_camera.camera")), 1), A(u, { class: "cui-card" }, {
|
|
1225
1225
|
content: y(() => [A(c, {
|
|
1226
1226
|
form: _(d),
|
|
1227
1227
|
"is-loading": _(h)
|
|
1228
1228
|
}, {
|
|
1229
|
-
default: y(() => [_(p).length ? (o(), x("div",
|
|
1229
|
+
default: y(() => [_(p).length ? (o(), x("div", Tn, [(o(!0), x(C, null, a(_(p), (e) => (o(), x("div", {
|
|
1230
1230
|
key: e.label,
|
|
1231
1231
|
class: "flex flex-col field-gap"
|
|
1232
|
-
}, [T("label",
|
|
1232
|
+
}, [T("label", En, s(e.label), 1), A(i, null, {
|
|
1233
1233
|
default: y(() => [A(r, {
|
|
1234
1234
|
"model-value": e.value,
|
|
1235
1235
|
readonly: "",
|
|
@@ -1240,7 +1240,7 @@ var $t = { class: "flex flex-col gap-6" }, en = {
|
|
|
1240
1240
|
_: 1
|
|
1241
1241
|
}, 8, ["form", "is-loading"])]),
|
|
1242
1242
|
_: 1
|
|
1243
|
-
})]), T("div", null, [T("span",
|
|
1243
|
+
})]), T("div", null, [T("span", Dn, s(e.$t("components.form.label.sources")), 1), A(u, {
|
|
1244
1244
|
class: "cui-card border-color-inner",
|
|
1245
1245
|
pt: { body: { class: "pb-0" } }
|
|
1246
1246
|
}, {
|
|
@@ -1255,13 +1255,13 @@ var $t = { class: "flex flex-col gap-6" }, en = {
|
|
|
1255
1255
|
}, 8, ["validation-schema"])]);
|
|
1256
1256
|
};
|
|
1257
1257
|
}
|
|
1258
|
-
}),
|
|
1258
|
+
}), kn = { class: "flex flex-col gap-6" }, An = {
|
|
1259
1259
|
key: 0,
|
|
1260
1260
|
class: "flex flex-col field-gap"
|
|
1261
|
-
},
|
|
1261
|
+
}, jn = { class: "cui-label" }, Mn = {
|
|
1262
1262
|
key: 1,
|
|
1263
1263
|
class: "text-center py-4"
|
|
1264
|
-
},
|
|
1264
|
+
}, Nn = { class: "text-muted" }, Pn = /* @__PURE__ */ O({
|
|
1265
1265
|
__name: "ConnectionSchema",
|
|
1266
1266
|
props: {
|
|
1267
1267
|
camera: {},
|
|
@@ -1269,7 +1269,7 @@ var $t = { class: "flex flex-col gap-6" }, en = {
|
|
|
1269
1269
|
onConnect: { type: Function }
|
|
1270
1270
|
},
|
|
1271
1271
|
setup(e, { expose: t }) {
|
|
1272
|
-
let n = e, a =
|
|
1272
|
+
let n = e, a = he(), c = I(), { t: l } = K(), u = r("dialogRefProps"), { schema: d } = i(n), f = w("schemaFormRef"), h = k(!1), g = v(() => ({
|
|
1273
1273
|
schema: d.value,
|
|
1274
1274
|
config: {}
|
|
1275
1275
|
})), y = v(() => !!(u.loading?.value || h.value));
|
|
@@ -1303,10 +1303,10 @@ var $t = { class: "flex flex-col gap-6" }, en = {
|
|
|
1303
1303
|
onConfirm: b
|
|
1304
1304
|
}), (t, n) => {
|
|
1305
1305
|
let r = J, i = Pe;
|
|
1306
|
-
return o(), x("div",
|
|
1306
|
+
return o(), x("div", kn, [e.camera.address ? (o(), x("div", An, [T("label", jn, s(t.$t("views.devices.address")), 1), A(r, {
|
|
1307
1307
|
"model-value": e.camera.address,
|
|
1308
1308
|
readonly: ""
|
|
1309
|
-
}, null, 8, ["model-value"])])) : m("", !0), _(d).length === 0 ? (o(), x("div",
|
|
1309
|
+
}, null, 8, ["model-value"])])) : m("", !0), _(d).length === 0 ? (o(), x("div", Mn, [T("p", Nn, s(t.$t("views.devices.no_settings_required")), 1)])) : (o(), p(i, {
|
|
1310
1310
|
key: 2,
|
|
1311
1311
|
ref_key: "schemaFormRef",
|
|
1312
1312
|
ref: f,
|
|
@@ -1315,98 +1315,98 @@ var $t = { class: "flex flex-col gap-6" }, en = {
|
|
|
1315
1315
|
}, null, 8, ["schema-form", "loading"]))]);
|
|
1316
1316
|
};
|
|
1317
1317
|
}
|
|
1318
|
-
}),
|
|
1318
|
+
}), Fn = 5e3, X = j({
|
|
1319
1319
|
isLoading: !0,
|
|
1320
1320
|
devices: [],
|
|
1321
1321
|
isScanning: !1,
|
|
1322
1322
|
hiddenDevices: [],
|
|
1323
1323
|
showHidden: !1,
|
|
1324
1324
|
error: null
|
|
1325
|
-
}),
|
|
1325
|
+
}), In = null, Z = null, Q = !1, $ = 0, Ln = null;
|
|
1326
1326
|
function Rn() {
|
|
1327
|
-
|
|
1327
|
+
X.isLoading = !0, X.devices = [], X.isScanning = !1, X.hiddenDevices = [], X.showHidden = !1, X.error = null;
|
|
1328
1328
|
}
|
|
1329
1329
|
function zn() {
|
|
1330
|
-
return
|
|
1331
|
-
let e =
|
|
1332
|
-
|
|
1330
|
+
return Z || (In = h(!0), In.run(() => {
|
|
1331
|
+
let e = se("/cameras");
|
|
1332
|
+
Z = e, e.onReady(() => {
|
|
1333
1333
|
Bn();
|
|
1334
1334
|
}), b(e.connected, (e, t) => {
|
|
1335
|
-
!e && t && (
|
|
1335
|
+
!e && t && (Q = !1);
|
|
1336
1336
|
}), e.on("cameras:discovered", (e) => {
|
|
1337
1337
|
for (let t of e.devices) {
|
|
1338
|
-
let e =
|
|
1339
|
-
e >= 0 ?
|
|
1338
|
+
let e = X.devices.findIndex((e) => e.id === t.id);
|
|
1339
|
+
e >= 0 ? X.devices[e] = t : X.devices.push(t);
|
|
1340
1340
|
}
|
|
1341
1341
|
}), e.on("cameras:scanning", (e) => {
|
|
1342
|
-
|
|
1342
|
+
X.isScanning = e.isScanning;
|
|
1343
1343
|
}), e.on("cameras:connection-status", (e) => {
|
|
1344
|
-
let t =
|
|
1345
|
-
t && (e.status === "connecting" ? t.status = "adopting" : e.status === "error" ? (t.status = "error", t.errorMessage = e.errorMessage) : e.status === "connected" && (
|
|
1344
|
+
let t = X.devices.find((t) => t.discoveredId === e.discoveredId);
|
|
1345
|
+
t && (e.status === "connecting" ? t.status = "adopting" : e.status === "error" ? (t.status = "error", t.errorMessage = e.errorMessage) : e.status === "connected" && (X.devices = X.devices.filter((t) => t.discoveredId !== e.discoveredId)));
|
|
1346
1346
|
}), e.on("cameras:camera-connected", (e) => {
|
|
1347
|
-
|
|
1347
|
+
X.devices = X.devices.filter((t) => t.discoveredId !== e.discoveredId);
|
|
1348
1348
|
}), e.on("cameras:deleted", (e) => {
|
|
1349
|
-
|
|
1349
|
+
X.devices = X.devices.filter((t) => t.cameraId !== e.cameraId);
|
|
1350
1350
|
});
|
|
1351
|
-
}),
|
|
1351
|
+
}), Z);
|
|
1352
1352
|
}
|
|
1353
1353
|
async function Bn() {
|
|
1354
|
-
if (!
|
|
1355
|
-
success:
|
|
1356
|
-
devices:
|
|
1357
|
-
isScanning:
|
|
1358
|
-
hiddenDevices:
|
|
1354
|
+
if (!Z || Q) return {
|
|
1355
|
+
success: Q,
|
|
1356
|
+
devices: X.devices,
|
|
1357
|
+
isScanning: X.isScanning,
|
|
1358
|
+
hiddenDevices: X.hiddenDevices
|
|
1359
1359
|
};
|
|
1360
1360
|
try {
|
|
1361
|
-
let e = await
|
|
1362
|
-
return
|
|
1361
|
+
let e = await Z.request("cameras:subscribe", {});
|
|
1362
|
+
return Q = e.success, e.devices && (X.devices = e.devices), e.isScanning !== void 0 && (X.isScanning = e.isScanning), e.hiddenDevices && (X.hiddenDevices = e.hiddenDevices), X.isLoading = !1, e;
|
|
1363
1363
|
} catch (e) {
|
|
1364
|
-
return
|
|
1364
|
+
return X.isLoading = !1, X.error = e instanceof Error ? e.message : "subscribe failed", { success: !1 };
|
|
1365
1365
|
}
|
|
1366
1366
|
}
|
|
1367
1367
|
async function Vn() {
|
|
1368
|
-
if (!
|
|
1368
|
+
if (!Z || !Q) return { success: !0 };
|
|
1369
1369
|
try {
|
|
1370
|
-
let e = await
|
|
1371
|
-
return
|
|
1370
|
+
let e = await Z.request("cameras:unsubscribe", {});
|
|
1371
|
+
return Q = !e.success, e;
|
|
1372
1372
|
} catch {
|
|
1373
1373
|
return { success: !1 };
|
|
1374
1374
|
}
|
|
1375
1375
|
}
|
|
1376
1376
|
function Hn() {
|
|
1377
|
-
|
|
1377
|
+
Q && Vn(), In?.stop(), In = null, Z = null, Q = !1, Rn();
|
|
1378
1378
|
}
|
|
1379
1379
|
function Un() {
|
|
1380
|
-
|
|
1380
|
+
Ln &&= (clearTimeout(Ln), null), $++;
|
|
1381
1381
|
function e() {
|
|
1382
|
-
zn(),
|
|
1382
|
+
zn(), Z?.connected.value && !Q && Bn();
|
|
1383
1383
|
}
|
|
1384
1384
|
function t() {
|
|
1385
|
-
|
|
1385
|
+
Q && Vn();
|
|
1386
1386
|
}
|
|
1387
1387
|
async function n() {
|
|
1388
|
-
if (!
|
|
1388
|
+
if (!Z?.ready.value) return {
|
|
1389
1389
|
success: !1,
|
|
1390
1390
|
error: "Not connected"
|
|
1391
1391
|
};
|
|
1392
|
-
|
|
1392
|
+
X.devices = [], X.isScanning = !0;
|
|
1393
1393
|
try {
|
|
1394
|
-
let e = await
|
|
1395
|
-
return e.success || (
|
|
1394
|
+
let e = await Z.request("cameras:rescan", {});
|
|
1395
|
+
return e.success || (X.isScanning = !1), e;
|
|
1396
1396
|
} catch (e) {
|
|
1397
|
-
return
|
|
1397
|
+
return X.isScanning = !1, {
|
|
1398
1398
|
success: !1,
|
|
1399
1399
|
error: e instanceof Error ? e.message : "rescan failed"
|
|
1400
1400
|
};
|
|
1401
1401
|
}
|
|
1402
1402
|
}
|
|
1403
1403
|
async function r(e) {
|
|
1404
|
-
if (!
|
|
1404
|
+
if (!Z?.ready.value) return {
|
|
1405
1405
|
success: !1,
|
|
1406
1406
|
error: "Not connected"
|
|
1407
1407
|
};
|
|
1408
1408
|
try {
|
|
1409
|
-
return await
|
|
1409
|
+
return await Z.request("cameras:get-schema", { discoveredId: e });
|
|
1410
1410
|
} catch (e) {
|
|
1411
1411
|
return {
|
|
1412
1412
|
success: !1,
|
|
@@ -1415,12 +1415,12 @@ function Un() {
|
|
|
1415
1415
|
}
|
|
1416
1416
|
}
|
|
1417
1417
|
async function i(e, t) {
|
|
1418
|
-
if (!
|
|
1418
|
+
if (!Z?.ready.value) return {
|
|
1419
1419
|
success: !1,
|
|
1420
1420
|
error: "Not connected"
|
|
1421
1421
|
};
|
|
1422
1422
|
try {
|
|
1423
|
-
return await
|
|
1423
|
+
return await Z.request("cameras:connect", {
|
|
1424
1424
|
discoveredId: e,
|
|
1425
1425
|
credentials: t
|
|
1426
1426
|
});
|
|
@@ -1432,8 +1432,8 @@ function Un() {
|
|
|
1432
1432
|
}
|
|
1433
1433
|
}
|
|
1434
1434
|
async function a(e, t) {
|
|
1435
|
-
if (!
|
|
1436
|
-
let n = await
|
|
1435
|
+
if (!Z?.ready.value) throw Error("Not connected");
|
|
1436
|
+
let n = await Z.request("cameras:prepare", {
|
|
1437
1437
|
discoveredId: e,
|
|
1438
1438
|
credentials: t
|
|
1439
1439
|
});
|
|
@@ -1441,8 +1441,8 @@ function Un() {
|
|
|
1441
1441
|
return n.draft;
|
|
1442
1442
|
}
|
|
1443
1443
|
async function o(e, t) {
|
|
1444
|
-
if (!
|
|
1445
|
-
let n = await
|
|
1444
|
+
if (!Z?.ready.value) throw Error("Not connected");
|
|
1445
|
+
let n = await Z.request("cameras:confirm", {
|
|
1446
1446
|
draft: e,
|
|
1447
1447
|
discoveredId: t
|
|
1448
1448
|
});
|
|
@@ -1453,7 +1453,7 @@ function Un() {
|
|
|
1453
1453
|
};
|
|
1454
1454
|
}
|
|
1455
1455
|
async function s(e) {
|
|
1456
|
-
if (!
|
|
1456
|
+
if (!Z?.ready.value) return {
|
|
1457
1457
|
success: !1,
|
|
1458
1458
|
error: "Not connected"
|
|
1459
1459
|
};
|
|
@@ -1463,8 +1463,8 @@ function Un() {
|
|
|
1463
1463
|
model: e.model
|
|
1464
1464
|
};
|
|
1465
1465
|
try {
|
|
1466
|
-
let e = await
|
|
1467
|
-
return e.success && e.hiddenDevices && (
|
|
1466
|
+
let e = await Z.request("cameras:hide-device", { device: t });
|
|
1467
|
+
return e.success && e.hiddenDevices && (X.hiddenDevices = e.hiddenDevices), e;
|
|
1468
1468
|
} catch (e) {
|
|
1469
1469
|
return {
|
|
1470
1470
|
success: !1,
|
|
@@ -1473,13 +1473,13 @@ function Un() {
|
|
|
1473
1473
|
}
|
|
1474
1474
|
}
|
|
1475
1475
|
async function c(e) {
|
|
1476
|
-
if (!
|
|
1476
|
+
if (!Z?.ready.value) return {
|
|
1477
1477
|
success: !1,
|
|
1478
1478
|
error: "Not connected"
|
|
1479
1479
|
};
|
|
1480
1480
|
try {
|
|
1481
|
-
let t = await
|
|
1482
|
-
return t.success && t.hiddenDevices && (
|
|
1481
|
+
let t = await Z.request("cameras:unhide-device", { deviceId: e });
|
|
1482
|
+
return t.success && t.hiddenDevices && (X.hiddenDevices = t.hiddenDevices), t;
|
|
1483
1483
|
} catch (e) {
|
|
1484
1484
|
return {
|
|
1485
1485
|
success: !1,
|
|
@@ -1488,32 +1488,32 @@ function Un() {
|
|
|
1488
1488
|
}
|
|
1489
1489
|
}
|
|
1490
1490
|
function l() {
|
|
1491
|
-
|
|
1491
|
+
X.showHidden = !X.showHidden;
|
|
1492
1492
|
}
|
|
1493
1493
|
function u(e) {
|
|
1494
|
-
return e.type !== "discovered" || !e.discoveredId ? !1 :
|
|
1494
|
+
return e.type !== "discovered" || !e.discoveredId ? !1 : X.hiddenDevices.some((t) => t.id === e.discoveredId);
|
|
1495
1495
|
}
|
|
1496
1496
|
let d = v(() => {
|
|
1497
|
-
let e = new Set(
|
|
1497
|
+
let e = new Set(X.hiddenDevices.map((e) => e.id)), t = (e, t) => e.name.localeCompare(t.name), n = X.devices.filter((e) => e.type === "camera").sort(t), r = X.devices.filter((t) => t.type === "discovered" && !e.has(t.discoveredId)).sort(t), i = X.showHidden ? X.devices.filter((t) => t.type === "discovered" && e.has(t.discoveredId)).sort(t) : [];
|
|
1498
1498
|
return [
|
|
1499
1499
|
...n,
|
|
1500
1500
|
...r,
|
|
1501
1501
|
...i
|
|
1502
1502
|
];
|
|
1503
1503
|
});
|
|
1504
|
-
return
|
|
1505
|
-
|
|
1506
|
-
|
|
1507
|
-
},
|
|
1504
|
+
return pe(() => {
|
|
1505
|
+
$--, !($ > 0) && ($ = 0, Ln = setTimeout(() => {
|
|
1506
|
+
$ <= 0 && (Hn(), Ln = null);
|
|
1507
|
+
}, Fn));
|
|
1508
1508
|
}), {
|
|
1509
|
-
state: f(
|
|
1510
|
-
isConnected: v(() =>
|
|
1511
|
-
isLoading: v(() =>
|
|
1512
|
-
devices: v(() =>
|
|
1513
|
-
isScanning: v(() =>
|
|
1514
|
-
hiddenDevices: v(() =>
|
|
1515
|
-
showHidden: v(() =>
|
|
1516
|
-
error: v(() =>
|
|
1509
|
+
state: f(X),
|
|
1510
|
+
isConnected: v(() => Z?.connected.value ?? !1),
|
|
1511
|
+
isLoading: v(() => X.isLoading),
|
|
1512
|
+
devices: v(() => X.devices),
|
|
1513
|
+
isScanning: v(() => X.isScanning),
|
|
1514
|
+
hiddenDevices: v(() => X.hiddenDevices),
|
|
1515
|
+
showHidden: v(() => X.showHidden),
|
|
1516
|
+
error: v(() => X.error),
|
|
1517
1517
|
sortedDevices: d,
|
|
1518
1518
|
connect: e,
|
|
1519
1519
|
disconnect: t,
|
|
@@ -1556,14 +1556,14 @@ var Wn = { class: "flex flex-col" }, Gn = {
|
|
|
1556
1556
|
}, sr = { class: "flex items-center justify-center" }, cr = { class: "flex items-center justify-center" }, lr = {
|
|
1557
1557
|
key: 1,
|
|
1558
1558
|
class: "flex flex-col items-center justify-center py-6 gap-2"
|
|
1559
|
-
}, ur = { class: "text-muted text-sm" }, dr = { class: "flex flex-wrap items-center gap-2 mt-4" }, fr = /*#__PURE__*/
|
|
1559
|
+
}, ur = { class: "text-muted text-sm" }, dr = { class: "flex flex-wrap items-center gap-2 mt-4" }, fr = /*#__PURE__*/ N(/* @__PURE__ */ O({
|
|
1560
1560
|
__name: "Cameras",
|
|
1561
1561
|
setup(e) {
|
|
1562
|
-
let { t } =
|
|
1562
|
+
let { t } = K(), r = I(), i = de(), a = ue(), { smBreakpoint: c } = ae(), l = Un(), d = {
|
|
1563
1563
|
bodyRow: { class: "text-sm text-secondary" },
|
|
1564
1564
|
column: { columnTitle: { class: "text-sm" } },
|
|
1565
1565
|
datatable: { class: "z-0" }
|
|
1566
|
-
}, f = v(() =>
|
|
1566
|
+
}, f = v(() => fe(void 0, "admin")), h = v(() => l.sortedDevices.value), g = v(() => h.value.filter((e) => e.type === "camera")), b = v(() => h.value.filter((e) => e.type === "discovered")), w = v(() => l.isLoading.value), D = v(() => l.isScanning.value), O = v(() => l.hiddenDevices.value), k = v(() => l.showHidden.value), j = v(() => O.value.length);
|
|
1567
1567
|
function te(e) {
|
|
1568
1568
|
switch (e) {
|
|
1569
1569
|
case "added": return "green";
|
|
@@ -1585,7 +1585,7 @@ var Wn = { class: "flex flex-col" }, Gn = {
|
|
|
1585
1585
|
function P(e) {
|
|
1586
1586
|
return l.isHidden(e);
|
|
1587
1587
|
}
|
|
1588
|
-
async function
|
|
1588
|
+
async function F(e) {
|
|
1589
1589
|
if (!P(e)) {
|
|
1590
1590
|
if (e.type === "camera") {
|
|
1591
1591
|
a.open({ cameraName: e.name });
|
|
@@ -1604,7 +1604,7 @@ var Wn = { class: "flex flex-col" }, Gn = {
|
|
|
1604
1604
|
});
|
|
1605
1605
|
return;
|
|
1606
1606
|
}
|
|
1607
|
-
i.openComponentDialog(
|
|
1607
|
+
i.openComponentDialog(Pn, { data: {
|
|
1608
1608
|
title: `${t("views.devices.connect")}: ${e.name}`,
|
|
1609
1609
|
confirmText: t("views.devices.connect"),
|
|
1610
1610
|
contentProps: {
|
|
@@ -1618,7 +1618,7 @@ var Wn = { class: "flex flex-col" }, Gn = {
|
|
|
1618
1618
|
},
|
|
1619
1619
|
schema: n.schema ?? [],
|
|
1620
1620
|
onConnect: async (t) => {
|
|
1621
|
-
|
|
1621
|
+
L(await l.prepareDevice(e.discoveredId, t), e.discoveredId);
|
|
1622
1622
|
}
|
|
1623
1623
|
}
|
|
1624
1624
|
} });
|
|
@@ -1633,8 +1633,8 @@ var Wn = { class: "flex flex-col" }, Gn = {
|
|
|
1633
1633
|
}
|
|
1634
1634
|
}
|
|
1635
1635
|
}
|
|
1636
|
-
function
|
|
1637
|
-
i.openComponentDialog(
|
|
1636
|
+
function L(e, n) {
|
|
1637
|
+
i.openComponentDialog(On, { data: {
|
|
1638
1638
|
title: t("views.devices.confirm_title"),
|
|
1639
1639
|
confirmText: t("views.devices.confirm"),
|
|
1640
1640
|
fullscreen: !0,
|
|
@@ -1651,7 +1651,7 @@ var Wn = { class: "flex flex-col" }, Gn = {
|
|
|
1651
1651
|
}
|
|
1652
1652
|
} });
|
|
1653
1653
|
}
|
|
1654
|
-
async function
|
|
1654
|
+
async function R() {
|
|
1655
1655
|
try {
|
|
1656
1656
|
let e = await l.forceRescan();
|
|
1657
1657
|
e.success ? r.add({
|
|
@@ -1674,14 +1674,14 @@ var Wn = { class: "flex flex-col" }, Gn = {
|
|
|
1674
1674
|
});
|
|
1675
1675
|
}
|
|
1676
1676
|
}
|
|
1677
|
-
function
|
|
1678
|
-
i.openComponentDialog(
|
|
1677
|
+
function z() {
|
|
1678
|
+
i.openComponentDialog(Cn, { data: {
|
|
1679
1679
|
title: t("components.dialog.components.new_camera.add_camera"),
|
|
1680
1680
|
fullscreen: !0,
|
|
1681
1681
|
contentProps: {}
|
|
1682
1682
|
} });
|
|
1683
1683
|
}
|
|
1684
|
-
async function
|
|
1684
|
+
async function re(e, n) {
|
|
1685
1685
|
e.stopPropagation();
|
|
1686
1686
|
try {
|
|
1687
1687
|
let e = await l.hideDevice(n);
|
|
@@ -1705,7 +1705,7 @@ var Wn = { class: "flex flex-col" }, Gn = {
|
|
|
1705
1705
|
});
|
|
1706
1706
|
}
|
|
1707
1707
|
}
|
|
1708
|
-
async function
|
|
1708
|
+
async function B(e, n) {
|
|
1709
1709
|
e.stopPropagation();
|
|
1710
1710
|
try {
|
|
1711
1711
|
let e = await l.unhideDevice(n.discoveredId);
|
|
@@ -1729,10 +1729,10 @@ var Wn = { class: "flex flex-col" }, Gn = {
|
|
|
1729
1729
|
});
|
|
1730
1730
|
}
|
|
1731
1731
|
}
|
|
1732
|
-
function
|
|
1732
|
+
function V() {
|
|
1733
1733
|
l.toggleShowHidden();
|
|
1734
1734
|
}
|
|
1735
|
-
function
|
|
1735
|
+
function H(e) {
|
|
1736
1736
|
return P(e) ? "opacity-50 cursor-not-allowed" : "";
|
|
1737
1737
|
}
|
|
1738
1738
|
return M(() => {
|
|
@@ -1740,7 +1740,7 @@ var Wn = { class: "flex flex-col" }, Gn = {
|
|
|
1740
1740
|
}), n(() => {
|
|
1741
1741
|
f.value && l.unsubscribe();
|
|
1742
1742
|
}), (e, t) => {
|
|
1743
|
-
let n = Fe, r =
|
|
1743
|
+
let n = Fe, r = me, i = ie, a = oe, l = q, v = Se, O = Ae, M = ke, I = je, L = ne, ae = Re, se = le, U = ee;
|
|
1744
1744
|
return o(), x("div", Wn, [
|
|
1745
1745
|
_(c) ? m("", !0) : (o(), x("h1", Gn, s(e.$t(`views.${String(e.$route.name).toLowerCase()}.title`)), 1)),
|
|
1746
1746
|
_(f) ? (o(), x(C, { key: 2 }, [
|
|
@@ -1756,16 +1756,16 @@ var Wn = { class: "flex flex-col" }, Gn = {
|
|
|
1756
1756
|
severity: "secondary",
|
|
1757
1757
|
label: e.$t("views.devices.rescan"),
|
|
1758
1758
|
loading: _(D),
|
|
1759
|
-
onClick:
|
|
1759
|
+
onClick: R
|
|
1760
1760
|
}, null, 8, ["label", "loading"])
|
|
1761
1761
|
])) : m("", !0),
|
|
1762
1762
|
!_(w) && _(g).length ? (o(), x("div", $n, [T("span", er, s(e.$t("views.devices.status_adopted_cameras")), 1), A(r, { class: "cui-card" }, {
|
|
1763
|
-
content: y(() => [A(
|
|
1763
|
+
content: y(() => [A(I, {
|
|
1764
1764
|
value: _(g),
|
|
1765
1765
|
"striped-rows": "",
|
|
1766
1766
|
pt: d,
|
|
1767
1767
|
class: "w-full",
|
|
1768
|
-
onRowClick: t[0] ||= (e) =>
|
|
1768
|
+
onRowClick: t[0] ||= (e) => F(e.data)
|
|
1769
1769
|
}, {
|
|
1770
1770
|
default: y(() => [
|
|
1771
1771
|
A(O, {
|
|
@@ -1823,12 +1823,12 @@ var Wn = { class: "flex flex-col" }, Gn = {
|
|
|
1823
1823
|
key: 3,
|
|
1824
1824
|
class: u(["flex min-h-0 flex-col", { "mt-6": _(g).length }])
|
|
1825
1825
|
}, [T("span", ar, s(e.$t("views.devices.status_discovered")), 1), A(r, { class: "cui-card" }, {
|
|
1826
|
-
content: y(() => [_(b).length ? (o(), x("div", or, [A(
|
|
1826
|
+
content: y(() => [_(b).length ? (o(), x("div", or, [A(I, {
|
|
1827
1827
|
value: _(b),
|
|
1828
1828
|
"striped-rows": "",
|
|
1829
1829
|
pt: d,
|
|
1830
1830
|
class: "w-full",
|
|
1831
|
-
onRowClick: t[1] ||= (e) =>
|
|
1831
|
+
onRowClick: t[1] ||= (e) => F(e.data)
|
|
1832
1832
|
}, {
|
|
1833
1833
|
default: y(() => [
|
|
1834
1834
|
A(O, {
|
|
@@ -1845,7 +1845,7 @@ var Wn = { class: "flex flex-col" }, Gn = {
|
|
|
1845
1845
|
"header-class": "p-2",
|
|
1846
1846
|
class: "p-2 w-full min-w-[200px] max-w-0"
|
|
1847
1847
|
}, {
|
|
1848
|
-
body: y(({ data: t }) => [T("div", { class: u(["font-bold text-color truncate",
|
|
1848
|
+
body: y(({ data: t }) => [T("div", { class: u(["font-bold text-color truncate", H(t)]) }, s(t.name), 3), T("div", { class: u(["text-xs text-muted truncate", H(t)]) }, s(t.manufacturer || e.$t("views.devices.unknown")) + " · " + s(t.model || e.$t("views.devices.unknown")), 3)]),
|
|
1849
1849
|
_: 1
|
|
1850
1850
|
}, 8, ["header"]),
|
|
1851
1851
|
A(O, {
|
|
@@ -1856,7 +1856,7 @@ var Wn = { class: "flex flex-col" }, Gn = {
|
|
|
1856
1856
|
}, {
|
|
1857
1857
|
body: y(({ data: e }) => [e.address ? (o(), x("span", {
|
|
1858
1858
|
key: 0,
|
|
1859
|
-
class: u(["text-xs text-muted whitespace-nowrap",
|
|
1859
|
+
class: u(["text-xs text-muted whitespace-nowrap", H(e)])
|
|
1860
1860
|
}, s(e.address), 3)) : m("", !0)]),
|
|
1861
1861
|
_: 1
|
|
1862
1862
|
}, 8, ["header"]),
|
|
@@ -1868,7 +1868,7 @@ var Wn = { class: "flex flex-col" }, Gn = {
|
|
|
1868
1868
|
}, {
|
|
1869
1869
|
body: y(({ data: e }) => [A(M, {
|
|
1870
1870
|
label: e.provider,
|
|
1871
|
-
class: u(["text-xs whitespace-nowrap",
|
|
1871
|
+
class: u(["text-xs whitespace-nowrap", H(e)])
|
|
1872
1872
|
}, null, 8, ["label", "class"])]),
|
|
1873
1873
|
_: 1
|
|
1874
1874
|
}, 8, ["header"]),
|
|
@@ -1882,7 +1882,7 @@ var Wn = { class: "flex flex-col" }, Gn = {
|
|
|
1882
1882
|
text: "",
|
|
1883
1883
|
rounded: "",
|
|
1884
1884
|
class: "cui-icon-md",
|
|
1885
|
-
onClick: (e) =>
|
|
1885
|
+
onClick: (e) => B(e, t)
|
|
1886
1886
|
}, {
|
|
1887
1887
|
icon: y(() => [A(_(ze), {
|
|
1888
1888
|
width: "100%",
|
|
@@ -1901,7 +1901,7 @@ var Wn = { class: "flex flex-col" }, Gn = {
|
|
|
1901
1901
|
text: "",
|
|
1902
1902
|
rounded: "",
|
|
1903
1903
|
class: "cui-icon-md",
|
|
1904
|
-
onClick: (e) =>
|
|
1904
|
+
onClick: (e) => re(e, t)
|
|
1905
1905
|
}, {
|
|
1906
1906
|
icon: y(() => [A(_(Be), {
|
|
1907
1907
|
width: "100%",
|
|
@@ -1919,12 +1919,12 @@ var Wn = { class: "flex flex-col" }, Gn = {
|
|
|
1919
1919
|
})
|
|
1920
1920
|
]),
|
|
1921
1921
|
_: 1
|
|
1922
|
-
}, 8, ["value"])])) : (o(), x("div", lr, [_(D) ? (o(), p(
|
|
1922
|
+
}, 8, ["value"])])) : (o(), x("div", lr, [_(D) ? (o(), p(L, {
|
|
1923
1923
|
key: 0,
|
|
1924
1924
|
width: "24px",
|
|
1925
1925
|
height: "24px",
|
|
1926
1926
|
class: "text-muted"
|
|
1927
|
-
})) : (o(), p(
|
|
1927
|
+
})) : (o(), p(ae, {
|
|
1928
1928
|
key: 1,
|
|
1929
1929
|
width: "32px",
|
|
1930
1930
|
height: "32px",
|
|
@@ -1936,14 +1936,14 @@ var Wn = { class: "flex flex-col" }, Gn = {
|
|
|
1936
1936
|
severity: "secondary",
|
|
1937
1937
|
class: "cui-button-medium",
|
|
1938
1938
|
label: _(k) ? e.$t("views.devices.hide_hidden") : `${e.$t("views.devices.show_hidden")} (${_(j)})`,
|
|
1939
|
-
onClick:
|
|
1939
|
+
onClick: V
|
|
1940
1940
|
}, null, 8, ["label"])) : m("", !0),
|
|
1941
1941
|
A(l, {
|
|
1942
1942
|
severity: "secondary",
|
|
1943
1943
|
class: "cui-button-medium",
|
|
1944
1944
|
label: e.$t("views.devices.rescan"),
|
|
1945
1945
|
loading: _(D),
|
|
1946
|
-
onClick:
|
|
1946
|
+
onClick: R
|
|
1947
1947
|
}, null, 8, ["label", "loading"])
|
|
1948
1948
|
])]),
|
|
1949
1949
|
_: 1
|
|
@@ -1952,7 +1952,7 @@ var Wn = { class: "flex flex-col" }, Gn = {
|
|
|
1952
1952
|
content: y(() => [A(n)]),
|
|
1953
1953
|
_: 1
|
|
1954
1954
|
})])),
|
|
1955
|
-
("hasPermission" in e ? e.hasPermission : _(
|
|
1955
|
+
("hasPermission" in e ? e.hasPermission : _(fe))(void 0, "admin") ? (o(), p(se, {
|
|
1956
1956
|
key: 3,
|
|
1957
1957
|
"tooltip-props": { value: e.$t("views.cameras.add_camera") },
|
|
1958
1958
|
"button-props": { class: "text-white" },
|
|
@@ -1961,7 +1961,7 @@ var Wn = { class: "flex flex-col" }, Gn = {
|
|
|
1961
1961
|
width: "30px",
|
|
1962
1962
|
height: "30px"
|
|
1963
1963
|
},
|
|
1964
|
-
onClick:
|
|
1964
|
+
onClick: z
|
|
1965
1965
|
}, null, 8, ["tooltip-props", "icon"])) : m("", !0)
|
|
1966
1966
|
]);
|
|
1967
1967
|
};
|