@camera.ui/server 2.0.17 → 2.0.19
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/dist/interface/assets/{404-BWRNG7e3.js → 404-CG23ZpFv.js} +1 -1
- package/dist/interface/assets/{About-CWvfgUA-.js → About-Dawv7dKP.js} +1 -1
- package/dist/interface/assets/{Adminpanel-Cat_euTC.js → Adminpanel-529Hf8yC.js} +1 -1
- package/dist/interface/assets/{Automation-cp0lTCAv.js → Automation-BaF8MdrF.js} +3 -3
- package/dist/interface/assets/{AutomationImport-mCGSgys2.js → AutomationImport-CXXYinR0.js} +2 -2
- package/dist/interface/assets/{AutomationStore-udNOn3FR.js → AutomationStore-DOdwMUIP.js} +2 -2
- package/dist/interface/assets/{AutomationStoreDetail-CcVksadt.js → AutomationStoreDetail-CkNGHRNU.js} +2 -2
- package/dist/interface/assets/{Automations-CcQLbmoN.js → Automations-sO0qi27q.js} +2 -2
- package/dist/interface/assets/Camera-DW__aloL.js +2 -0
- package/dist/interface/assets/{CameraConsole-A414-zXW.js → CameraConsole-D06gEm91.js} +1 -1
- package/dist/interface/assets/{Cameras-CW5XnJ1g.js → Cameras-BNBi1F0q.js} +1 -1
- package/dist/interface/assets/Camview-Djtm5hEO.js +1 -0
- package/dist/interface/assets/{Config-R2N_QUER.js → Config-DioQs8yK.js} +1 -1
- package/dist/interface/assets/{ConfigActionCameraControl-DdW92QxO.js → ConfigActionCameraControl-4E0E0_fY.js} +1 -1
- package/dist/interface/assets/{ConfigActionDelay-BiCLaHDd.js → ConfigActionDelay-Cjmjm7gn.js} +1 -1
- package/dist/interface/assets/{ConfigActionHttp-BvM-8hTt.js → ConfigActionHttp-W-_LXPpQ.js} +1 -1
- package/dist/interface/assets/{ConfigActionImageInput-CoyrNloo.js → ConfigActionImageInput-D20ulIj4.js} +1 -1
- package/dist/interface/assets/{ConfigActionMqtt-CY8HOoug.js → ConfigActionMqtt-PGVLgx6J.js} +1 -1
- package/dist/interface/assets/{ConfigActionNotification-DP3dTyFB.js → ConfigActionNotification-DtE9vlwt.js} +1 -1
- package/dist/interface/assets/{ConfigActionOutput-BwYwuQ1w.js → ConfigActionOutput-Cb0Ik5Lg.js} +1 -1
- package/dist/interface/assets/{ConfigActionPlugin-DbhT4kyF.js → ConfigActionPlugin-DeXj_Qku.js} +1 -1
- package/dist/interface/assets/{ConfigActionSensor-_zmPKdhz.js → ConfigActionSensor-DH03MD04.js} +1 -1
- package/dist/interface/assets/{ConfigActionSnapshot-Bc3eukMk.js → ConfigActionSnapshot-bEiIuVkE.js} +1 -1
- package/dist/interface/assets/{ConfigActionVariable-BeQy6W8G.js → ConfigActionVariable-6xpPwfGg.js} +1 -1
- package/dist/interface/assets/{ConfigConditionIfElse-CiFC5fLv.js → ConfigConditionIfElse-CnUdhYBw.js} +1 -1
- package/dist/interface/assets/{ConfigConditionSensorState-CGeGdh0d.js → ConfigConditionSensorState-Cpod48bM.js} +1 -1
- package/dist/interface/assets/{ConfigConditionSwitch-BjR776j5.js → ConfigConditionSwitch-CrcDpdeO.js} +1 -1
- package/dist/interface/assets/{ConfigConditionTime-BAypML9_.js → ConfigConditionTime-BK18wRIR.js} +1 -1
- package/dist/interface/assets/{ConfigSensorValueInput-Dis2Kr1r.js → ConfigSensorValueInput-BDJSe4AD.js} +1 -1
- package/dist/interface/assets/{ConfigTriggerDetection-CqS3IAqj.js → ConfigTriggerDetection-CLY_l8WB.js} +1 -1
- package/dist/interface/assets/{ConfigTriggerGeofence-BbNpW2l0.js → ConfigTriggerGeofence-CAHirXSm.js} +1 -1
- package/dist/interface/assets/{ConfigTriggerManual-DiyFl_g-.js → ConfigTriggerManual-BifyCaS9.js} +1 -1
- package/dist/interface/assets/{ConfigTriggerMqtt-ZXEft2Hi.js → ConfigTriggerMqtt-DVxJJ1Ii.js} +1 -1
- package/dist/interface/assets/{ConfigTriggerSchedule-Dy3NCMvo.js → ConfigTriggerSchedule-C5apVQ3A.js} +1 -1
- package/dist/interface/assets/{ConfigTriggerSensor-CnSSEh4s.js → ConfigTriggerSensor-CtU2-Ebe.js} +1 -1
- package/dist/interface/assets/{ConfigTriggerSystem-CuKwsM8D.js → ConfigTriggerSystem-P_hogQ3_.js} +1 -1
- package/dist/interface/assets/{ConfigTriggerWebhook-DJPepSlC.js → ConfigTriggerWebhook-D4lYvM7m.js} +1 -1
- package/dist/interface/assets/Console-DgwnUKDQ.js +1 -0
- package/dist/interface/assets/{CuiAutomationRunsDialog-o2aLvK5K.js → CuiAutomationRunsDialog-D8DfgOlE.js} +1 -1
- package/dist/interface/assets/{CuiBottomSheet-v2xnKGrr.js → CuiBottomSheet-BzKu50hx.js} +1 -1
- package/dist/interface/assets/CuiBottomSheet-d46jCJeG.js +1 -0
- package/dist/interface/assets/{CuiCameraPipCard-CId6q8WW.js → CuiCameraPipCard-RB60OEgF.js} +1 -1
- package/dist/interface/assets/CuiCameraRecordings-DSeBoMKj.js +1 -0
- package/dist/interface/assets/{CuiCameraShares-DW_hDX2f.js → CuiCameraShares-8Mo2XwFD.js} +1 -1
- package/dist/interface/assets/{CuiCameraTable-BXzZ-gIg.js → CuiCameraTable-MjJctqrJ.js} +1 -1
- package/dist/interface/assets/{CuiDataTable-CrL6zx3I.js → CuiDataTable-DQRKmdcE.js} +1 -1
- package/dist/interface/assets/{CuiPluginCard-C38Fk0bQ.js → CuiPluginCard-4NsvwvgQ.js} +2 -2
- package/dist/interface/assets/{CuiPluginCategoryChip-B3XVum_D.js → CuiPluginCategoryChip-AsMNaK01.js} +1 -1
- package/dist/interface/assets/{CuiPluginOAuthButton-DRJnVV4F.js → CuiPluginOAuthButton-7mwBhBzg.js} +2 -2
- package/dist/interface/assets/{CuiPluginTrustBadge-4xCyAUBM.js → CuiPluginTrustBadge-tIqjoCDz.js} +1 -1
- package/dist/interface/assets/{CuiQRCode-DmsP4eAY.js → CuiQRCode-l-PLLptq.js} +1 -1
- package/dist/interface/assets/{CuiRecordingsGrid-BnL8kQ29.js → CuiRecordingsGrid-BeOP2hpR.js} +1 -1
- package/dist/interface/assets/{CuiSchema-D2yLW853.js → CuiSchema-TojDO40O.js} +1 -1
- package/dist/interface/assets/{CuiTopNavbarItem-_7UaVuQT.js → CuiTopNavbarItem-BhUA2MiU.js} +1 -1
- package/dist/interface/assets/{Faces-BPgUsyT0.js → Faces-DW0RFypU.js} +1 -1
- package/dist/interface/assets/FirstSteps-BgNqGgK1.js +1 -0
- package/dist/interface/assets/{Instances-BS4UPlay.js → Instances-Cllek48f.js} +1 -1
- package/dist/interface/assets/{Logs-UPgu6TsC.js → Logs-ic15Mp_h.js} +1 -1
- package/dist/interface/assets/{Menu-CdewzDV4.js → Menu-By6NRK44.js} +1 -1
- package/dist/interface/assets/{OAuthDeviceFlow-SGgJTWAU.js → OAuthDeviceFlow-BpeJI0ad.js} +1 -1
- package/dist/interface/assets/{Plugin-BSSYZcyQ.js → Plugin-B_ANQppI.js} +1 -1
- package/dist/interface/assets/{PluginConsole-Bm0ify7V.js → PluginConsole-BaPz9Ag3.js} +1 -1
- package/dist/interface/assets/{PluginDetail-DY6Uvu3V.js → PluginDetail-j7srfPSY.js} +2 -2
- package/dist/interface/assets/{PluginSchema-BkM5iKma.js → PluginSchema-Cb_F8uew.js} +1 -1
- package/dist/interface/assets/{PluginSearch-4q_vZHJc.js → PluginSearch-C4JY7Iwj.js} +2 -2
- package/dist/interface/assets/PluginSearch-CTAtKAK4.js +1 -0
- package/dist/interface/assets/{Plugins-B1tZxl7k.js → Plugins-RVhaBdkA.js} +1 -1
- package/dist/interface/assets/Recordings-frQ3fb5P.js +1 -0
- package/dist/interface/assets/{Settings-CXWxt73x.js → Settings-DQgp2tgH.js} +1 -1
- package/dist/interface/assets/{SettingsAccount-MLkJU79V.js → SettingsAccount-BhCf1XAp.js} +1 -1
- package/dist/interface/assets/SettingsAccount-BhseUwL4.js +1 -0
- package/dist/interface/assets/SettingsAppearance--SabFiHj.js +1 -0
- package/dist/interface/assets/{SettingsAppearance-CHRnfQ4O.js → SettingsAppearance-YNXseOYk.js} +1 -1
- package/dist/interface/assets/{SettingsBackup-Xjb4i_YZ.js → SettingsBackup-DIWxITfi.js} +1 -1
- package/dist/interface/assets/{SettingsMqtt-CW0uvXrU.js → SettingsMqtt-Bf23ZOH-.js} +1 -1
- package/dist/interface/assets/{SettingsNotifications-BbyXpyHK.js → SettingsNotifications-Dv9Fixz_.js} +1 -1
- package/dist/interface/assets/{SettingsRecordings-DVZPpunU.js → SettingsRecordings-Dxdxayym.js} +1 -1
- package/dist/interface/assets/{SettingsRemote-BnFHx9_s.js → SettingsRemote-CGMwCx4y.js} +1 -1
- package/dist/interface/assets/{SettingsSystem-C1ne-w59.js → SettingsSystem-ZHz6-3eN.js} +2 -2
- package/dist/interface/assets/{SettingsUsers-91m0163s.js → SettingsUsers-Dxj65vMx.js} +1 -1
- package/dist/interface/assets/{Terminal-D_E-kRbN.js → Terminal-DFGD9NeS.js} +1 -1
- package/dist/interface/assets/{VariableInput-BHvGHE7o.js → VariableInput-Br6YY5HX.js} +1 -1
- package/dist/interface/assets/{VariableSuggestions-uJAwwX7y.js → VariableSuggestions-D898dM5K.js} +1 -1
- package/dist/interface/assets/{VersionsHandler-DJ00TTHi.js → VersionsHandler-J51M6nHE.js} +1 -1
- package/dist/interface/assets/{Workers-BCBrqShK.js → Workers-BHibnYvL.js} +1 -1
- package/dist/interface/assets/api-BwUGcpse.js +2 -0
- package/dist/interface/assets/{api-ByMXkaIi.js → api-CkxuZ9lw.js} +1 -1
- package/dist/interface/assets/{auth-B-MND66x.js → auth-Dgn4npDp.js} +1 -1
- package/dist/interface/assets/{automations-DvpxT4Pa.js → automations-Dab1-eSY.js} +1 -1
- package/dist/interface/assets/{cameras.schema-2VoKYyFS.js → cameras.schema-CwGkDyzk.js} +1 -1
- package/dist/interface/assets/cloudHandoff-CpMzGP4H.js +1 -0
- package/dist/interface/assets/{config-UED3wn2k.js → config-BYU9LRQr.js} +1 -1
- package/dist/interface/assets/{flowSchema-DyobL8Pg.js → flowSchema-BuhMrSRP.js} +1 -1
- package/dist/interface/assets/{main-DbPnvfcp.css → main-Dchuz606.css} +1 -1
- package/dist/interface/assets/main-DvYnQiyf.js +3 -0
- package/dist/interface/assets/{mqtt-BltdxiuG.js → mqtt-Bj9HWVr-.js} +1 -1
- package/dist/interface/assets/{notifications-D4Mi4q8n.js → notifications-B2GVNEL7.js} +1 -1
- package/dist/interface/assets/{plugins-DmgMSZSt.js → plugins-Ct1tFRqH.js} +1 -1
- package/dist/interface/assets/{round-restart-alt-D1SwcyIw.js → round-restart-alt-COgLKyfG.js} +1 -1
- package/dist/interface/assets/{server-BBvLLocT.js → server-CmHQA2OF.js} +1 -1
- package/dist/interface/assets/{theme-CHyA8uCs.js → theme-BdlqMboH.js} +1 -1
- package/dist/interface/assets/{types-ByD7R6WC.js → types-Du61QgCF.js} +1 -1
- package/dist/interface/assets/{types-DRsoZjsP.js → types-o57RMLy1.js} +1 -1
- package/dist/interface/assets/{useAppVersion-dQkatyRF.js → useAppVersion-GqkuhLFI.js} +1 -1
- package/dist/interface/assets/useBackupRestore-xqzQKAfT.js +1 -0
- package/dist/interface/assets/{useCameraOptions-zPRiut_S.js → useCameraOptions-CAu9scRL.js} +1 -1
- package/dist/interface/assets/{useLogsSocket-DzKSWAVf.js → useLogsSocket-B_EbSIOU.js} +1 -1
- package/dist/interface/assets/{useServerRestart-DjaOOudi.js → useServerRestart-CZj3Y0Gh.js} +1 -1
- package/dist/interface/assets/{useStreamStatus-DpXFSeOf.js → useStreamStatus-B12LRLX9.js} +1 -1
- package/dist/interface/assets/{useUserOptions-B8T0ROJS.js → useUserOptions-BycuHkS6.js} +1 -1
- package/dist/interface/assets/vendor-cameraui-CywDBRLD.js +2040 -0
- package/dist/interface/assets/{vendor-core-M6N9PctY.js → vendor-core-0Lu3l40a.js} +1 -1
- package/dist/interface/assets/{vendor-gridstack-DHPnER0W.js → vendor-gridstack-9ka60QnT.js} +1 -1
- package/dist/interface/assets/{vendor-gridstack-Dxwp3vpP.css → vendor-gridstack-Chv4ms9g.css} +1 -1
- package/dist/interface/assets/{vendor-primevue-BynQnxoR.js → vendor-primevue-Cm1rEh62.js} +1 -1
- package/dist/interface/index.html +19 -19
- package/dist/interface/sw.js +1 -1
- package/dist/server/package.json +13 -10
- package/dist/server/requirements.txt +1 -1
- package/dist/server/src/api/controllers/auth.controller.js +13 -3
- package/dist/server/src/api/controllers/auth.controller.js.map +1 -1
- package/dist/server/src/api/controllers/backup.controller.js +1 -0
- package/dist/server/src/api/controllers/backup.controller.js.map +1 -1
- package/dist/server/src/api/database/selfcheck.js +5 -3
- package/dist/server/src/api/database/selfcheck.js.map +1 -1
- package/dist/server/src/api/index.js +1 -0
- package/dist/server/src/api/index.js.map +1 -1
- package/dist/server/src/api/middlewares/authValidation.middleware.js +1 -1
- package/dist/server/src/api/middlewares/authValidation.middleware.js.map +1 -1
- package/dist/server/src/api/plugins/proxy.plugin.js +22 -16
- package/dist/server/src/api/plugins/proxy.plugin.js.map +1 -1
- package/dist/server/src/api/services/auth.service.d.ts +9 -2
- package/dist/server/src/api/services/auth.service.js +28 -12
- package/dist/server/src/api/services/auth.service.js.map +1 -1
- package/dist/server/src/api/services/remote.service.js +2 -1
- package/dist/server/src/api/services/remote.service.js.map +1 -1
- package/dist/server/src/api/types/index.d.ts +5 -0
- package/dist/server/src/api/types/index.js +5 -3
- package/dist/server/src/api/types/index.js.map +1 -1
- package/dist/server/src/api/utils/utils.d.ts +1 -0
- package/dist/server/src/api/utils/utils.js +8 -0
- package/dist/server/src/api/utils/utils.js.map +1 -0
- package/dist/server/src/api/websocket/index.js +2 -2
- package/dist/server/src/api/websocket/index.js.map +1 -1
- package/dist/server/src/camera/controller.d.ts +1 -1
- package/dist/server/src/camera/controller.js +13 -15
- package/dist/server/src/camera/controller.js.map +1 -1
- package/dist/server/src/camera/decoder/detection-coordinator.js +20 -8
- package/dist/server/src/camera/decoder/detection-coordinator.js.map +1 -1
- package/dist/server/src/camera/decoder/stationary-suppressor.d.ts +1 -0
- package/dist/server/src/camera/decoder/stationary-suppressor.js +49 -13
- package/dist/server/src/camera/decoder/stationary-suppressor.js.map +1 -1
- package/dist/server/src/main.js +3 -5
- package/dist/server/src/main.js.map +1 -1
- package/dist/server/src/rpc/interfaces/device.d.ts +1 -1
- package/dist/server/src/rpc/server.js +3 -0
- package/dist/server/src/rpc/server.js.map +1 -1
- package/dist/server/src/services/mdns/index.js +1 -3
- package/dist/server/src/services/mdns/index.js.map +1 -1
- package/dist/server/src/types.d.ts +2 -4
- package/dist/server/src/utils/ipc.d.ts +3 -0
- package/dist/server/src/utils/ipc.js +33 -0
- package/dist/server/src/utils/ipc.js.map +1 -1
- package/package.json +13 -10
- package/dist/interface/assets/Camera-Cq466-gT.js +0 -2
- package/dist/interface/assets/Camview-zK6fnWI0.js +0 -1
- package/dist/interface/assets/Console-tfkkZnFl.js +0 -1
- package/dist/interface/assets/CuiBottomSheet-m_HX6x4G.js +0 -1
- package/dist/interface/assets/CuiCameraRecordings-C_1UfpAJ.js +0 -1
- package/dist/interface/assets/FirstSteps-CKXlbFN-.js +0 -1
- package/dist/interface/assets/PluginSearch-BvhNP9WQ.js +0 -1
- package/dist/interface/assets/Recordings-XY32_Jjt.js +0 -1
- package/dist/interface/assets/SettingsAccount-RGvmNkwD.js +0 -1
- package/dist/interface/assets/SettingsAppearance-CyaOt4lL.js +0 -1
- package/dist/interface/assets/api-ChlkJnEG.js +0 -2
- package/dist/interface/assets/cloudHandoff-o_0n9cgb.js +0 -1
- package/dist/interface/assets/main-Cd1DVdC9.js +0 -3
- package/dist/interface/assets/useBackupRestore-D6Vxck9i.js +0 -1
- package/dist/interface/assets/vendor-cameraui-D7o3alq7.js +0 -2039
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{C as e,Dr as t,E as n,Lr as r,O as i,Ot as a,Pt as o,S as s,_ as c,fr as l,gt as u,hi as d,kr as f,mi as p,n as m,o as h,pr as g,t as _,v,vi as y,vr as b,w as ee,wt as te,y as ne}from"./vendor-cameraui-D7o3alq7.js";import{$t as re,B as x,G as S,Gn as C,H as w,I as T,Ot as ie,U as ae,V as E,_n as oe,an as se,en as D,nn as O,nt as k,on as A,qt as ce,rn as le,sn as ue,z as de}from"./api-ChlkJnEG.js";import{$n as j,Bn as M,In as fe,Qn as N,Rn as P,Sr as pe,Tn as F,Tr as I,Wn as L,Xn as me,_n as he,an as R,bn as z,cr as B,dn as V,dr as H,fn as U,gr as ge,ln as W,lr as G,nr as _e,pn as K,pr as q,sn as ve,tr as J,un as Y,vn as X,wr as ye,xr as Z,zn as be}from"./vendor-CdGy-Xet.js";import{C as xe,K as Se,a as Ce,i as we,j as Te,l as Ee,z as De}from"./vendor-primevue-BynQnxoR.js";import{t as Oe}from"./ring-resize-peEJMXPl.js";import{n as ke,t as Ae}from"./CuiRecordingsGrid-BnL8kQ29.js";import{n as je,t as Me}from"./round-alt-arrow-left-bold-BcL7KVCG.js";var Ne={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function Pe(e,t){return P(),K(`svg`,Ne,[...t[0]||=[Y(`path`,{fill:`currentColor`,d:`M3 11h8V3H3m2 2h4v4H5m8 12h8v-8h-8m2 2h4v4h-4M3 21h8v-8H3m2 2h4v4H5m8-16v8h8V3m-2 6h-4V5h4Z`},null,-1)]])}var Fe=G({name:`mdi-view-grid-outline`,render:Pe}),Q={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function Ie(e,t){return P(),K(`svg`,Q,[...t[0]||=[Y(`path`,{fill:`currentColor`,d:`M22 18.605a.75.75 0 0 1-.75.75h-5.1a2.93 2.93 0 0 1-5.66 0H2.75a.75.75 0 1 1 0-1.5h7.74a2.93 2.93 0 0 1 5.66 0h5.1a.75.75 0 0 1 .75.75m0-13.21a.75.75 0 0 1-.75.75H18.8a2.93 2.93 0 0 1-5.66 0H2.75a.75.75 0 1 1 0-1.5h10.39a2.93 2.93 0 0 1 5.66 0h2.45a.74.74 0 0 1 .75.75m0 6.6a.74.74 0 0 1-.75.75H9.55a2.93 2.93 0 0 1-5.66 0H2.75a.75.75 0 1 1 0-1.5h1.14a2.93 2.93 0 0 1 5.66 0h11.7a.75.75 0 0 1 .75.75`},null,-1)]])}var Le=G({name:`mage-filter-fill`,render:Ie}),$={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function Re(e,t){return P(),K(`svg`,$,[...t[0]||=[Y(`path`,{fill:`none`,stroke:`currentColor`,"stroke-linecap":`round`,"stroke-miterlimit":`10`,"stroke-width":`1.5`,d:`M21.25 12H8.895m-4.361 0H2.75m18.5 6.607h-5.748m-4.361 0H2.75m18.5-13.214h-3.105m-4.361 0H2.75m13.214 2.18a2.18 2.18 0 1 0 0-4.36a2.18 2.18 0 0 0 0 4.36Zm-9.25 6.607a2.18 2.18 0 1 0 0-4.36a2.18 2.18 0 0 0 0 4.36Zm6.607 6.608a2.18 2.18 0 1 0 0-4.361a2.18 2.18 0 0 0 0 4.36Z`},null,-1)]])}var ze=G({name:`mage-filter`,render:Re}),Be={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function Ve(e,t){return P(),K(`svg`,Be,[...t[0]||=[Y(`path`,{fill:`currentColor`,d:`m14 2l6 6v12a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2zm4 18V9h-5V4H6v16zm-2-2l-2.5-1.7V18H8v-5h5.5v1.7L16 13z`},null,-1)]])}var He=G({name:`mdi-file-video-outline`,render:Ve}),Ue={class:`flex flex-col gap-6`},We={class:`flex flex-col field-gap`},Ge={class:`cui-label`},Ke={class:`flex flex-col field-gap`},qe={class:`cui-label`},Je={class:`grid grid-cols-1 xs:grid-cols-2 gap-3`},Ye={class:`flex flex-col gap-1`},Xe={class:`text-xs text-muted`},Ze={class:`flex flex-col gap-1`},Qe={class:`text-xs text-muted`},$e={class:`grid grid-cols-1 xs:grid-cols-2 gap-x-6 gap-y-4`},et={class:`flex flex-col field-gap`},tt={class:`cui-label`},nt={class:`flex flex-col field-gap`},rt={class:`cui-label`},it={class:`flex flex-col field-gap`},at={class:`flex items-center gap-3`},ot={class:`cui-label !mb-0`},st={key:0,class:`ml-auto flex items-center gap-2.5 text-sm tabular-nums`},ct={class:`font-semibold`},lt={class:`font-semibold`},ut={class:`border border-color rounded-xl card-background overflow-hidden`},dt={class:`flex flex-col gap-3 max-h-[240px] overflow-y-auto p-2.5`},ft={key:0,class:`flex items-center justify-center gap-2 text-muted text-sm py-6`},pt={key:1,class:`text-center text-muted text-sm py-6`},mt={class:`text-xs text-muted px-0.5`},ht={class:`font-mono text-xs truncate flex-1`},gt={class:`text-xs text-muted tabular-nums shrink-0`},_t={class:`font-mono text-xs text-muted tabular-nums shrink-0 min-w-[58px] text-right`},vt=30,yt=z({__name:`ExportRecordings`,props:{cameras:{},preselect:{}},setup(e,{expose:t}){let r=e,{t:i}=f(),a=C(),o=F(`dialogRefProps`),{plugin:s}=u(`@camera.ui/camera-ui-nvr`),c=q([]),l=q(!1),d=q(r.preselect?.length?[...r.preselect]:[]),p=q(`best`),m=q(0),h=q(new Date(new Date().setHours(0,0,0,0))),g=q(new Date),_=W(()=>[{label:i(`views.recordings.export.quality_best`),value:`best`},{label:i(`views.recordings.export.quality_smallest`),value:`smallest`}]),v=W(()=>[0,1,2,5,10,30,60,120,180,240,300].map(e=>({label:e===0?i(`views.recordings.export.timelapse_off`):e<60?`${e} s`:`${e/60} min`,value:e}))),b=W(()=>m.value>0),ne=W(()=>b.value?`~`:``),re=W(()=>new Map(r.cameras.map(e=>[e.id,e.name]))),x=W(()=>h.value instanceof Date&&g.value instanceof Date&&h.value<g.value),S=W(()=>{if(!x.value)return[];let e=[],t=h.value.getTime(),n=g.value.getTime(),r=new Date(h.value);r.setHours(0,0,0,0);let i=new Date(g.value);for(i.setHours(0,0,0,0);r.getTime()<=i.getTime();){let i=new Date(r),a=new Date(r);a.setDate(a.getDate()+1);let o=Math.max(i.getTime(),t),s=Math.min(a.getTime(),n);s>o&&e.push({day:oe(i),startUs:o*1e3,endUs:s*1e3}),r.setDate(r.getDate()+1)}return e}),w=W(()=>c.value.map(e=>{let t=re.value.get(e.cameraId)??e.cameraId,n=new Date(e.startUs/1e3),r=new Date(e.endUs/1e3),a=n.getHours()===0&&n.getMinutes()===0&&e.endUs-e.startUs===24*3600*1e6,o=r.getHours()===0&&r.getMinutes()===0?`24:00`:se(r);return{cameraId:e.cameraId,cameraName:t,name:`${O(t)}_${e.day}${b.value?`_timelapse`:``}.mp4`,span:a?i(`views.recordings.export.whole_day`):`${se(n)}–${o}`,bytes:b.value?e.bytes/vt:e.bytes}})),T=W(()=>{let e=new Map;for(let t of w.value){let n=e.get(t.cameraId);n||(n={cameraId:t.cameraId,cameraName:t.cameraName,files:[],bytes:0},e.set(t.cameraId,n)),n.files.push(t),n.bytes+=t.bytes}return[...e.values()]}),ie=W(()=>w.value.reduce((e,t)=>e+t.bytes,0)),ae=W(()=>d.value.length===0?i(`views.recordings.export.no_cameras`):x.value?i(`views.recordings.export.no_footage`):i(`views.recordings.export.no_range`));function E(e){return String(e).padStart(2,`0`)}function oe(e){return`${e.getFullYear()}-${E(e.getMonth()+1)}-${E(e.getDate())}`}function se(e){return`${E(e.getHours())}:${E(e.getMinutes())}`}function O(e){return e.replace(/[^a-zA-Z0-9-_]/g,`_`)}function k(e){if(e<=0)return`0 MB`;let t=e/1e6;if(t<1e3)return`${t<10?t.toFixed(1):Math.round(t)} MB`;let n=e/1e9;return`${n.toFixed(+(n<10))} GB`}async function A(){let e=s.value;if(!e?.nvrExportEstimate||d.value.length===0||S.value.length===0){c.value=[],l.value=!1;return}l.value=!0;try{let t=await e.nvrExportEstimate({cameras:d.value,slices:S.value,quality:p.value});c.value=t.files??[]}catch{c.value=[]}finally{l.value=!1}}async function ce(){if(!x.value||d.value.length===0||S.value.length===0)return null;let e=s.value;if(!e?.nvrExportBatch)return a.add({severity:`error`,detail:i(`views.recordings.export.plugin_missing`),life:3e3}),null;let t=await e.nvrExportBatch({cameras:d.value,slices:S.value,quality:p.value,timelapseIntervalSec:b.value?m.value:0});await D({url:t.url,filename:t.filename})}return y([d,S,p],A,{debounce:350,immediate:!0,deep:!0}),j(()=>{o.disabled&&(o.disabled.value=!x.value||d.value.length===0||!l.value&&w.value.length===0)}),t({onConfirm:ce}),(t,r)=>{let i=Ee,a=n,o=De,s=ee,c=Te,u=Ce,f=te,y=He;return P(),K(`div`,Ue,[Y(`div`,We,[Y(`label`,Ge,I(t.$t(`views.recordings.export.cameras`)),1),X(i,{modelValue:Z(d),"onUpdate:modelValue":r[0]||=e=>B(d)?d.value=e:null,options:e.cameras,"option-label":`name`,"option-value":`id`,display:`chip`,filter:``,placeholder:t.$t(`views.recordings.export.cameras_placeholder`),class:`w-full`},null,8,[`modelValue`,`options`,`placeholder`])]),Y(`div`,Ke,[Y(`label`,qe,I(t.$t(`views.recordings.export.range`)),1),Y(`div`,Je,[Y(`div`,Ye,[Y(`span`,Xe,I(t.$t(`views.recordings.export.from`)),1),X(a,{modelValue:Z(h),"onUpdate:modelValue":r[1]||=e=>B(h)?h.value=e:null,"show-time":``,"hour-format":`24`,fluid:``,"max-date":Z(g)},null,8,[`modelValue`,`max-date`])]),Y(`div`,Ze,[Y(`span`,Qe,I(t.$t(`views.recordings.export.to`)),1),X(a,{modelValue:Z(g),"onUpdate:modelValue":r[2]||=e=>B(g)?g.value=e:null,"show-time":``,"hour-format":`24`,fluid:``,"min-date":Z(h)},null,8,[`modelValue`,`min-date`])])]),Z(x)?(P(),V(o,{key:1,severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:J(()=>[he(I(t.$t(`views.recordings.export.range_hint`)),1)]),_:1})):(P(),V(o,{key:0,severity:`error`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:J(()=>[he(I(t.$t(`views.recordings.export.invalid_range`)),1)]),_:1}))]),Y(`div`,$e,[Y(`div`,et,[Y(`label`,tt,I(t.$t(`views.recordings.export.quality`)),1),X(s,{modelValue:Z(p),"onUpdate:modelValue":r[3]||=e=>B(p)?p.value=e:null,options:Z(_),"option-label":`label`,"option-value":`value`,"allow-empty":!1,pt:{root:{class:`flex w-full`},pcToggleButton:{root:{class:`flex-1`}}}},null,8,[`modelValue`,`options`])]),Y(`div`,nt,[Y(`label`,rt,I(t.$t(`views.recordings.export.timelapse`)),1),X(c,{modelValue:Z(m),"onUpdate:modelValue":r[4]||=e=>B(m)?m.value=e:null,options:Z(v),"option-label":`label`,"option-value":`value`,class:`w-full`},null,8,[`modelValue`,`options`])])]),Y(`div`,it,[Y(`div`,at,[Y(`label`,ot,I(t.$t(`views.recordings.export.result`)),1),Z(w).length?(P(),K(`div`,st,[Y(`span`,ct,I(Z(w).length)+` `+I(Z(w).length===1?t.$t(`views.recordings.export.file`):t.$t(`views.recordings.export.files`)),1),r[5]||=Y(`span`,{class:`text-muted`},`·`,-1),Y(`span`,lt,I(Z(ne))+I(k(Z(ie))),1),X(u,{value:Z(w).length===1?`MP4`:`ZIP`,severity:`info`},null,8,[`value`])])):U(``,!0)]),Y(`div`,ut,[Y(`div`,dt,[Z(l)&&!Z(w).length?(P(),K(`div`,ft,[X(f,{style:{width:`1rem`,height:`1rem`},"stroke-width":`4`,class:`m-0`}),Y(`span`,null,I(t.$t(`views.recordings.export.estimating`)),1)])):Z(w).length?(P(!0),K(R,{key:2},M(Z(T),e=>(P(),K(`div`,{key:e.cameraId,class:`flex flex-col gap-1`},[Y(`span`,mt,I(e.cameraName)+` · `+I(e.files.length)+` · `+I(Z(ne))+I(k(e.bytes)),1),(P(!0),K(R,null,M(e.files,e=>(P(),K(`div`,{key:e.name,class:`flex items-center gap-3 card-inner-background border border-color rounded-lg px-3 py-2`},[X(y,{class:`w-4 h-4 text-muted shrink-0`}),Y(`span`,ht,I(e.name),1),Y(`span`,gt,I(e.span),1),Y(`span`,_t,I(Z(ne))+I(k(e.bytes)),1)]))),128))]))),128)):(P(),K(`div`,pt,I(Z(ae)),1))])])])])}}}),bt={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function xt(e,t){return P(),K(`svg`,bt,[...t[0]||=[Y(`path`,{fill:`none`,stroke:`currentColor`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`2`,d:`m6 9l6 6l6-6`},null,-1)]])}var St=G({name:`tabler-chevron-down`,render:xt}),Ct={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function wt(e,t){return P(),K(`svg`,Ct,[...t[0]||=[Y(`path`,{fill:`none`,stroke:`currentColor`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`2`,d:`m6 15l6-6l6 6`},null,-1)]])}var Tt=G({name:`tabler-chevron-up`,render:wt}),Et={class:`flex flex-col gap-2`},Dt={class:`sidebar-section-title`},Ot={class:`p-input-icon-left w-full`},kt={class:`flex items-center justify-between gap-2`},At={class:`sidebar-section-title !mb-0`},jt={class:`flex flex-col gap-2`},Mt={class:`sidebar-section-title flex items-center gap-1.5`},Nt={key:0,class:`flex flex-col gap-1.5 mt-1`},Pt={class:`text-xs text-muted`},Ft={class:`flex items-center gap-3`},It={class:`text-xs font-mono w-8 text-right shrink-0`},Lt={class:`flex flex-col gap-2`},Rt={class:`sidebar-section-title`},zt={class:`flex flex-col gap-2`},Bt={class:`sidebar-section-title`},Vt={class:`relative rounded-md overflow-hidden`},Ht={class:`flex flex-col gap-2`},Ut={class:`sidebar-section-title`},Wt={class:`flex items-center gap-3`},Gt={class:`text-xs font-mono w-8 text-right shrink-0`},Kt={class:`flex flex-col gap-2`},qt={class:`sidebar-section-title`},Jt={class:`flex flex-wrap gap-1`},Yt={class:`flex flex-col gap-2`},Xt={key:0,class:`flex flex-col gap-2`},Zt={class:`flex items-center gap-2 cursor-pointer text-sm`},Qt={key:0,class:`flex flex-col gap-2 ml-6`},$t={class:`filter-logic-divider`},en={class:`flex flex-col gap-2`},tn={key:0,class:`flex flex-col gap-2`},nn={class:`filter-logic-divider`},rn={class:`flex flex-col gap-2`},an={key:0,class:`flex flex-col gap-2`},on={class:`flex items-center gap-2 cursor-pointer text-sm`},sn=288,cn=O(z({__name:`RecordingsFilterSidebar`,props:{filters:{},cameras:{},isOpen:{type:Boolean},isOverlay:{type:Boolean},semanticSearchAvailable:{type:Boolean},semanticSearchLoading:{type:Boolean}},emits:[`update:filters`,`semantic-search`,`close`],setup(n,{expose:o,emit:s}){let c={doorbell:`views.recordings.audio_doorbell`,glass_break:`views.recordings.audio_glass_break`,siren:`views.recordings.audio_siren`,speaking:`views.recordings.audio_speaking`,gunshot:`views.recordings.audio_gunshot`,dog_bark:`views.recordings.audio_dog_bark`,baby_cry:`views.recordings.audio_baby_cry`,alarm:`views.recordings.audio_alarm`,scream:`views.recordings.audio_scream`,cat:`views.recordings.audio_cat`,car_alarm:`views.recordings.audio_car_alarm`,smoke_alarm:`views.recordings.audio_smoke_alarm`},u={face:`views.recordings.attr_face`,license_plate:`views.recordings.attr_license_plate`},p={motion:`views.recordings.sensor_motion`,audio:`views.recordings.sensor_audio`,contact:`views.recordings.sensor_contact`,doorbell:`views.recordings.sensor_doorbell`,switch:`views.recordings.sensor_switch`,light:`views.recordings.sensor_light`,siren:`views.recordings.sensor_siren`,security_system:`views.recordings.sensor_security_system`,"line-crossing":`views.recordings.sensor_line_crossing`},m=new Set([`motion`,`audio`]),_=n,v=s,{t:y}=f(),{xlBreakpoint:te}=se(),{topbarHeight:ne,bottombarHeight:x}=A(),{icons:S,generic:C}=E(),w=S,T=Tt,ae=St,oe=me(`sidebarRef`),D=q(_.filters.semanticQuery??``),O=H({eventTypes:!0,attributes:!0,sensorEvents:!0}),k=W(()=>_.isOpen?sn:0),le=W(()=>_.cameras.map(e=>({id:e.id,name:e.name}))),ue=W(()=>{if(_.filters.cameraIds.length===1)return _.cameras.find(e=>e.id===_.filters.cameraIds[0])?.name}),de=W(()=>[{label:y(`views.recordings.filter_and`),value:`and`},{label:y(`views.recordings.filter_or`),value:`or`}]),j=W(()=>[{label:y(`views.recordings.time_1h`),value:`1h`},{label:y(`views.recordings.time_1d`),value:`1d`},{label:y(`views.recordings.time_1w`),value:`1w`},{label:y(`views.recordings.time_1m`),value:`1m`}]),fe=W(()=>g.filter(e=>!m.has(e)).map(e=>({label:y(`views.recordings.type_${e}`),value:e,icon:S[e]??C}))),pe=W(()=>({label:y(`views.recordings.type_other`),value:h,icon:S.other??C})),F=W(()=>t.map(e=>({label:y(p[e]??`views.recordings.sensor_${e}`),value:e,icon:w[e]??C}))),z=W(()=>b.map(e=>({label:y(c[e]??e),value:e,icon:S[e]??C}))),ge=W(()=>l.map(e=>({label:y(u[e]??`views.recordings.attr_${e}`),value:e,icon:S[e]??C})));function G(e,t){v(`update:filters`,{..._.filters,[e]:t})}let _e=d(e=>{G(`search`,e)},300);function ve(){let e=D.value.trim();G(`semanticQuery`,e),v(`semantic-search`,e)}function J(e){let t=[..._.filters.eventTypes],n=t.indexOf(e);n>=0?t.splice(n,1):t.push(e),G(`eventTypes`,t)}function be(e){let t=[..._.filters.audioLabels],n=t.indexOf(e);n>=0?t.splice(n,1):t.push(e),G(`audioLabels`,t)}function Ce(e){let t=[..._.filters.sensorEvents],n=t.indexOf(e);n>=0?t.splice(n,1):t.push(e),G(`sensorEvents`,t)}function Te(e){let t=[..._.filters.hasAttributes],n=t.indexOf(e);n>=0?t.splice(n,1):t.push(e),G(`hasAttributes`,t)}function De(e){O[e]=!O[e]}return N(D,e=>{!e?.trim()&&_.filters.semanticQuery&&G(`semanticQuery`,``)}),r(oe,e=>{let t=e.target;t.closest(`#recordings-sidebar-toggle`)||t.closest(`[data-pc-section="overlay"], [data-pc-section="panel"], .p-connected-overlay`)||_.isOpen&&(_.isOverlay||!te.value)&&v(`close`)}),o({sidebarWidth:k}),(t,r)=>{let o=i,s=Se,c=ce,l=we,u=a,d=e,f=Ee,p=re,m=ie,h=xe,g=ee;return P(),K(`nav`,{ref_key:`sidebarRef`,ref:oe,class:`recordings-sidebar fixed transition-all duration-200 overflow-x-hidden overflow-y-auto md:!pl-0 pl-safe pb-safe flex flex-col z-4`,style:ye({width:`${Z(k)}px`,borderRightWidth:n.isOpen?`1px`:`0px`,paddingBottom:`calc(env(safe-area-inset-top, 0px) + env(safe-area-inset-bottom, 0px) + ${Z(x)}px + ${Z(ne)}px)`})},[Y(`div`,{class:`flex flex-col gap-4 p-4`,style:ye({width:`${sn}px`})},[Y(`div`,Et,[Y(`label`,Dt,I(t.$t(`views.recordings.search`)),1),Y(`span`,Ot,[X(o,{"model-value":n.filters.search,placeholder:t.$t(`views.recordings.search_placeholder`),class:`w-full text-sm`,"onUpdate:modelValue":r[0]||=e=>Z(_e)(e)},null,8,[`model-value`,`placeholder`])])]),r[19]||=Y(`div`,{class:`sidebar-divider`},null,-1),Y(`div`,kt,[Y(`label`,At,I(t.$t(`views.recordings.only_with_recordings`)),1),X(s,{"model-value":n.filters.onlyWithRecordings,class:`shrink-0`,"onUpdate:modelValue":r[1]||=e=>G(`onlyWithRecordings`,e)},null,8,[`model-value`])]),r[20]||=Y(`div`,{class:`sidebar-divider`},null,-1),Y(`div`,jt,[Y(`label`,Mt,[X(c,{class:`w-3.5 h-3.5`}),he(` `+I(t.$t(`views.recordings.semantic_search`)),1)]),X(l,{modelValue:Z(D),"onUpdate:modelValue":r[2]||=e=>B(D)?D.value=e:null,placeholder:t.$t(`views.recordings.semantic_search_placeholder`),class:`w-full text-sm semantic-textarea`,rows:`3`,disabled:!n.semanticSearchAvailable},null,8,[`modelValue`,`placeholder`,`disabled`]),X(u,{label:t.$t(`views.recordings.semantic_search_button`),severity:`secondary`,outlined:``,size:`small`,class:`w-full text-xs`,loading:n.semanticSearchLoading,disabled:!n.semanticSearchAvailable||!Z(D)?.trim(),onClick:ve},null,8,[`label`,`loading`,`disabled`]),n.filters.semanticQuery?(P(),K(`div`,Nt,[Y(`label`,Pt,I(t.$t(`views.recordings.min_match_score`)),1),Y(`div`,Ft,[X(d,{"model-value":n.filters.minSemanticScore,min:0,max:1,step:.05,class:`flex-1`,"onUpdate:modelValue":r[3]||=e=>G(`minSemanticScore`,e)},null,8,[`model-value`]),Y(`span`,It,I(Math.round(n.filters.minSemanticScore*100))+`%`,1)])])):U(``,!0)]),r[21]||=Y(`div`,{class:`sidebar-divider`},null,-1),Y(`div`,Lt,[Y(`label`,Rt,I(t.$t(`views.recordings.cameras`)),1),X(f,{"model-value":n.filters.cameraIds,options:Z(le),"option-label":`name`,"option-value":`id`,placeholder:t.$t(`views.recordings.all_cameras`),class:`w-full text-sm`,"max-selected-labels":2,"show-toggle-all":!1,pt:{overlay:{style:`position: fixed`}},"onUpdate:modelValue":r[4]||=e=>G(`cameraIds`,e)},null,8,[`model-value`,`options`,`placeholder`])]),Z(ue)?(P(),K(R,{key:0},[r[14]||=Y(`div`,{class:`sidebar-divider`},null,-1),Y(`div`,zt,[Y(`label`,Bt,I(t.$t(`views.recordings.grid_search`)),1),Y(`div`,Vt,[X(p,{camera:Z(ue),"object-fit":`cover`},null,8,[`camera`]),X(m,{"model-value":n.filters.gridRegions,"onUpdate:modelValue":r[5]||=e=>G(`gridRegions`,e)},null,8,[`model-value`])]),X(u,{label:t.$t(`views.recordings.grid_clear`),severity:`secondary`,outlined:``,size:`small`,class:`w-full text-xs`,disabled:n.filters.gridRegions.length===0,onClick:r[6]||=e=>G(`gridRegions`,[])},null,8,[`label`,`disabled`])])],64)):U(``,!0),r[22]||=Y(`div`,{class:`sidebar-divider`},null,-1),Y(`div`,Ht,[Y(`label`,Ut,I(t.$t(`views.recordings.confidence`)),1),Y(`div`,Wt,[X(d,{"model-value":n.filters.minConfidence,min:0,max:1,step:.05,class:`flex-1`,"onUpdate:modelValue":r[7]||=e=>G(`minConfidence`,e)},null,8,[`model-value`]),Y(`span`,Gt,I(Math.round(n.filters.minConfidence*100))+`%`,1)])]),r[23]||=Y(`div`,{class:`sidebar-divider`},null,-1),Y(`div`,Kt,[Y(`label`,qt,I(t.$t(`views.recordings.time_range`)),1),Y(`div`,Jt,[(P(!0),K(R,null,M(Z(j),e=>(P(),V(u,{key:e.value,label:e.label,severity:n.filters.timeRange===e.value?void 0:`secondary`,outlined:n.filters.timeRange!==e.value,size:`small`,class:`text-xs flex-1 min-w-0`,onClick:t=>G(`timeRange`,n.filters.timeRange===e.value?null:e.value)},null,8,[`label`,`severity`,`outlined`,`onClick`]))),128))])]),r[24]||=Y(`div`,{class:`sidebar-divider`},null,-1),Y(`div`,Yt,[Y(`button`,{class:`sidebar-section-title flex items-center justify-between w-full cursor-pointer`,onClick:r[8]||=e=>De(`sensorEvents`)},[Y(`span`,null,I(t.$t(`views.recordings.sensor_events`)),1),(P(),V(L(Z(O).sensorEvents?Z(T):Z(ae)),{class:`w-4 h-4 text-muted`}))]),Z(O).sensorEvents?(P(),K(`div`,Xt,[(P(!0),K(R,null,M(Z(F),e=>(P(),K(R,{key:e.value},[Y(`label`,Zt,[X(h,{"model-value":n.filters.sensorEvents.includes(e.value),binary:!0,"onUpdate:modelValue":t=>Ce(e.value)},null,8,[`model-value`,`onUpdate:modelValue`]),(P(),V(L(e.icon),{class:`w-4 h-4 text-muted`})),Y(`span`,null,I(e.label),1)]),e.value===`audio`&&n.filters.sensorEvents.includes(`audio`)?(P(),K(`div`,Qt,[(P(!0),K(R,null,M(Z(z),e=>(P(),K(`label`,{key:e.value,class:`flex items-center gap-2 cursor-pointer text-sm`},[X(h,{"model-value":n.filters.audioLabels.includes(e.value),binary:!0,"onUpdate:modelValue":t=>be(e.value)},null,8,[`model-value`,`onUpdate:modelValue`]),(P(),V(L(e.icon),{class:`w-4 h-4 text-muted`})),Y(`span`,null,I(e.label),1)]))),128))])):U(``,!0)],64))),128))])):U(``,!0)]),Y(`div`,$t,[r[15]||=Y(`div`,{class:`filter-logic-line`},null,-1),X(g,{"model-value":n.filters.filterLogicTriggers,options:Z(de),"option-label":`label`,"option-value":`value`,"allow-empty":!1,class:`filter-logic-toggle`,"onUpdate:modelValue":r[9]||=e=>G(`filterLogicTriggers`,e)},null,8,[`model-value`,`options`]),r[16]||=Y(`div`,{class:`filter-logic-line`},null,-1)]),Y(`div`,en,[Y(`button`,{class:`sidebar-section-title flex items-center justify-between w-full cursor-pointer`,onClick:r[10]||=e=>De(`eventTypes`)},[Y(`span`,null,I(t.$t(`views.recordings.event_type`)),1),(P(),V(L(Z(O).eventTypes?Z(T):Z(ae)),{class:`w-4 h-4 text-muted`}))]),Z(O).eventTypes?(P(),K(`div`,tn,[(P(!0),K(R,null,M(Z(fe),e=>(P(),K(`label`,{key:e.value,class:`flex items-center gap-2 cursor-pointer text-sm`},[X(h,{"model-value":n.filters.eventTypes.includes(e.value),binary:!0,"onUpdate:modelValue":t=>J(e.value)},null,8,[`model-value`,`onUpdate:modelValue`]),(P(),V(L(e.icon),{class:`w-4 h-4 text-muted`})),Y(`span`,null,I(e.label),1)]))),128))])):U(``,!0)]),Y(`div`,nn,[r[17]||=Y(`div`,{class:`filter-logic-line`},null,-1),X(g,{"model-value":n.filters.filterLogicAttributes,options:Z(de),"option-label":`label`,"option-value":`value`,"allow-empty":!1,class:`filter-logic-toggle`,"onUpdate:modelValue":r[11]||=e=>G(`filterLogicAttributes`,e)},null,8,[`model-value`,`options`]),r[18]||=Y(`div`,{class:`filter-logic-line`},null,-1)]),Y(`div`,rn,[Y(`button`,{class:`sidebar-section-title flex items-center justify-between w-full cursor-pointer`,onClick:r[12]||=e=>De(`attributes`)},[Y(`span`,null,I(t.$t(`views.recordings.attributes`)),1),(P(),V(L(Z(O).attributes?Z(T):Z(ae)),{class:`w-4 h-4 text-muted`}))]),Z(O).attributes?(P(),K(`div`,an,[(P(!0),K(R,null,M(Z(ge),e=>(P(),K(`label`,{key:e.value,class:`flex items-center gap-2 cursor-pointer text-sm`},[X(h,{"model-value":n.filters.hasAttributes.includes(e.value),binary:!0,"onUpdate:modelValue":t=>Te(e.value)},null,8,[`model-value`,`onUpdate:modelValue`]),(P(),V(L(e.icon),{class:`w-4 h-4 text-muted`})),Y(`span`,null,I(e.label),1)]))),128)),Y(`label`,on,[X(h,{"model-value":n.filters.eventTypes.includes(Z(pe).value),binary:!0,"onUpdate:modelValue":r[13]||=e=>J(Z(pe).value)},null,8,[`model-value`]),(P(),V(L(Z(pe).icon),{class:`w-4 h-4 text-muted`})),Y(`span`,null,I(Z(pe).label),1)])])):U(``,!0)])],4)],4)}}}),[[`__scopeId`,`data-v-a1b07102`]]),ln={class:`font-semibold text-xl truncate`},un={class:`w-full h-full relative`},dn={key:0,class:`w-full flex flex-row h-[calc(40px+1rem)] py-2 items-center fixed z-10`},fn={class:`relative z-2 page-title !m-0`},pn={key:0,class:`flex items-center gap-2 mb-2 text-xs text-muted ml-auto`},mn={key:0,class:`inline-flex items-center gap-1`},hn={key:2,class:`flex justify-center py-4`},gn={key:3,class:`flex flex-1 min-h-0 flex-col items-center justify-center w-full gap-4`},_n={class:`text-muted text-sm`},vn=288,yn=10,bn=11,xn=z({__name:`Recordings`,setup(e){let t=new k,n=S(),{t:r}=f(),{smBreakpoint:i,xlBreakpoint:l,mdBreakpoint:u}=se(),{isTouch:d}=ue(),{registerScrollToTop:h}=x();if(!d.value&&typeof VideoDecoder<`u`){let e=v({cacheSize:20});be(c,e),p(()=>e.dispose())}let{results:g,isSearching:y,isAvailable:b,hasSearched:ee,search:te,clear:re}=ne(),{data:C}=t.getCamerasQuery({page:1,pageSize:-1}),ie={"1h":3600*1e3,"1d":1440*60*1e3,"1w":10080*60*1e3,"1m":720*60*60*1e3},E=me(`gridRef`),D=q(`closed`),O=q(!1),A=q({search:``,semanticQuery:``,filterLogicTriggers:`or`,filterLogicAttributes:`or`,cameraIds:[],timeRange:null,customDateRange:null,eventTypes:[],audioLabels:[],hasAttributes:[],sensorEvents:[],gridRegions:[],minConfidence:.5,minSemanticScore:.5,onlyWithRecordings:!0}),j=ge({state:`ended`,hasDetections:!0,withRecordingInfo:!0,hasRecording:!0}),M=JSON.stringify(j.value),F=q(!1),L=ge([]),R=W(()=>l.value?!0:D.value===`opened`),z=W(()=>u.value),B=W(()=>u.value?`0px`:R.value?`${vn}px`:`0px`),H=W(()=>(C.value?.result??[]).map(e=>({id:e._id,name:e.name}))),G=W(()=>{let e=new Map;for(let t of H.value)e.set(t.id,t.name);return e}),xe=W(()=>{let e=new Map;for(let t of C.value?.result??[])e.set(t._id,t);return e}),Se=W(()=>A.value.cameraIds),Ce=W(()=>H.value.map(e=>e.id));h(()=>E.value?.scrollToTop());let{events:we,isLoading:Te,hasMore:Ee,loadMore:De,loadThumbnails:Ne,getCachedThumbnails:Pe}=s({availableCameraIds:Ce,cameraIds:Se,realtime:!0,pageSize:40,filter:j}),Q=W(()=>{let e=new Map;for(let t of g.value??[]){let n=e.get(t.eventId);(!n||t.score>n)&&e.set(t.eventId,t.score)}return e}),Ie=W(()=>ee.value),$=W(()=>{let e=we.value.filter(e=>e.state===`ended`),t=A.value;if(t.timeRange&&ie[t.timeRange]){let n=Date.now()-ie[t.timeRange];e=e.filter(e=>e.startTime>=n)}if(t.gridRegions.length>0&&(e=e.filter(e=>e.segments.some(e=>e.detections.some(e=>e.box&&Ue(e.box,t.gridRegions))))),Ie.value){let n=.15,r=t.minSemanticScore*(.38-n)+n;e=e.filter(e=>{let t=Q.value.get(e.id);return t!=null&&t>=r}),e.sort((e,t)=>(Q.value.get(t.id)??0)-(Q.value.get(e.id)??0))}return e}),Re=W(()=>F.value&&L.value.length?L.value:$.value.map(e=>({event:e,key:e.id})));function Be(){n.openComponentDialog(yt,{data:{title:r(`views.recordings.export.title`),contentProps:{cameras:H.value,preselect:A.value.cameraIds?.length?A.value.cameraIds:[]},confirmText:r(`views.recordings.export.confirm`)}})}function Ve(){let e=D.value;D.value=e===`opened`?`closed`:`opened`}function He(){D.value=`closed`}function Ue(e,t){if(t.length===0)return!0;let n=1/yn,r=1/bn,i=e.x/n,a=(e.x+e.width)/n,o=e.y/r,s=(e.y+e.height)/r;for(let e of t)if(a>e.col&&i<e.col+e.w&&s>e.row&&o<e.row+e.h)return!0;return!1}function We(e,t){let n=[];if(e.attributes)for(let[r,i]of Object.entries(e.attributes)){let e=m(i);if(!e)continue;let a=r.indexOf(`:`);n.push({key:`${t.id}:attr:${r}`,url:e,type:a>=0?r.substring(0,a):r,label:a>=0?r.substring(a+1):void 0})}if(e.detections)for(let[r,i]of Object.entries(e.detections)){let e=m(i);if(!e)continue;let a=r.includes(`:`)?r.split(`:`).slice(1).join(`:`):r;n.push({key:`${t.id}:det:${r}`,url:e,type:a})}if(e.scenes)for(let[r,i]of Object.entries(e.scenes)){let e=m(i);e&&n.push({key:`${t.id}:scene:${r}`,url:e,type:`scene`})}let r=new Set;return n.filter(e=>r.has(e.url)?!1:(r.add(e.url),!0))}function Ge(e){let t=[];for(let n of e){let e=Pe(n.id);if(!e){t.push({event:n,key:n.id});continue}let r=We(e,n),i=_(e,n);if(i.url){let e=r.findIndex(e=>e.url===i.url);e>0&&r.unshift(...r.splice(e,1))}r.length<=1?t.push({event:n,key:n.id}):r.forEach((e,r)=>{t.push({event:n,key:r===0?n.id:e.key,thumbnailOverride:{url:e.url,type:e.type,label:e.label}})})}return t}function Ke(e){!e.semanticQuery?.trim()&&A.value.semanticQuery?.trim()&&re(),A.value=e}function qe(e){if(!e.trim()){re();return}te(e)}function Je(e){let t=xe.value.get(e.cameraId);t&&n.openComponentDialog(w,{data:{title:t.name,stayActive:!0,hideCancelButton:!0,hideConfirmButton:!0,contentProps:{camera:t,eventTimestamp:e.startTime},headerActions:e.segments?.some(e=>e?.description)?[{icon:ce,toggle:!0,onClick:()=>{}}]:void 0,draggable:!0,blockDragOnSelectors:[`.p-dialog-body`],dismissableMask:!1,modal:!1,dialogContentClass:`!px-0 h-full`,goTo:`/cameras/${t.name}?startTs=${e.startTime}`},dialogSize:{desktop:{maxWidth:`800px`,maxHeight:`calc(100vh - max(1rem, env(safe-area-inset-top, 0px)) - max(1rem, env(safe-area-inset-bottom, 0px)))`,width:`50vw`}}})}return N(l,e=>{e&&(D.value=`closed`)}),N(A,e=>{let t=e.eventTypes.length>0||e.sensorEvents.length>0||e.audioLabels.length>0||e.hasAttributes.length>0,n={types:e.eventTypes.length>0?e.eventTypes:void 0,triggers:e.sensorEvents.length>0?e.sensorEvents:void 0,triggerLabels:e.audioLabels.length>0?e.audioLabels:void 0,attributes:e.hasAttributes.length>0?e.hasAttributes:void 0,filterLogicTriggers:t?e.filterLogicTriggers:void 0,filterLogicAttributes:t?e.filterLogicAttributes:void 0,search:e.search||void 0,minConfidence:e.minConfidence>0?e.minConfidence:void 0,state:`ended`,hasDetections:!t,withRecordingInfo:!0,hasRecording:e.onlyWithRecordings||void 0},r=JSON.stringify(n);r!==M&&(M=r,j.value=n)},{deep:!0,immediate:!0}),N(F,e=>{e?L.value=Ge($.value):L.value=[]}),N($,e=>{if(!F.value)return;let t=new Set(e.map(e=>e.id)),n=new Set(L.value.map(e=>e.event.id)),r=L.value.filter(e=>t.has(e.event.id)),i=e.filter(e=>!n.has(e.id));i.length&&(r=[...Ge(i),...r]),L.value=r}),N(()=>A.value.cameraIds,e=>{e.length!==1&&A.value.gridRegions.length>0&&(A.value={...A.value,gridRegions:[]})}),fe(()=>{requestAnimationFrame(()=>{O.value=!0})}),(e,t)=>{let n=de,r=ze,s=Le,c=a,u=Me,d=je,f=Fe,p=T,m=ce,h=ke,g=Ae,_=Oe,v=oe,ee=le,te=o;return P(),K(`div`,null,[X(n,{position:`center`},{default:J(()=>[Y(`span`,ln,I(e.$t(`views.recordings.title`)),1)]),_:1}),X(n,{position:`left`},{default:J(()=>[X(c,{id:`recordings-sidebar-toggle`,severity:`secondary`,class:`cui-button p-2 text-color`,text:``,rounded:``,onClick:Ve},{icon:J(()=>[Z(D)===`closed`?(P(),V(r,{key:0,width:`100%`,height:`100%`})):(P(),V(s,{key:1,width:`100%`,height:`100%`}))]),_:1})]),_:1}),X(cn,{filters:Z(A),cameras:Z(H),"is-open":Z(R),"is-overlay":Z(z),"semantic-search-available":Z(b),"semantic-search-loading":Z(y),"onUpdate:filters":Ke,onSemanticSearch:qe,onClose:He},null,8,[`filters`,`cameras`,`is-open`,`is-overlay`,`semantic-search-available`,`semantic-search-loading`]),(P(),V(ve,{to:`#container`,defer:``},[Z(R)&&Z(z)?(P(),K(`div`,{key:0,class:`fixed top-0 left-0 right-0 bottom-0 w-full h-full bg-black/50 z-1`,onClick:He})):U(``,!0)])),Y(`main`,{class:`relative w-full h-full`,style:ye({paddingLeft:Z(B),transition:Z(O)?`padding-left 200ms`:void 0})},[Y(`div`,un,[Z(i)?U(``,!0):(P(),K(`div`,dn,[t[1]||=Y(`div`,{class:`ml-2`},null,-1),Z(l)?U(``,!0):(P(),V(c,{key:0,id:`recordings-sidebar-toggle`,severity:`secondary`,class:`mr-2 cui-icon-lg relative z-2`,text:``,rounded:``,onClick:Ve},{icon:J(()=>[Z(R)?(P(),V(u,{key:0,width:`100%`,height:`100%`})):(P(),V(d,{key:1,width:`100%`,height:`100%`}))]),_:1})),Y(`h1`,fn,I(e.$t(`views.recordings.title`)),1),t[2]||=Y(`div`,{class:`gradient-blur rotate-180 !h-[70px]`},[Y(`div`),Y(`div`),Y(`div`),Y(`div`),Y(`div`),Y(`div`)],-1)])),Y(`div`,{class:pe([`px-2 h-full w-full flex flex-col`,{"pt-4":Z(i),"pt-[calc(40px+2rem)]":!Z(i)}])},[Z($).length||Z(Ie)?(P(),K(`div`,pn,[_e((P(),V(c,{severity:Z(F)?`primary`:`secondary`,text:``,rounded:``,class:`cui-icon-sm`,onClick:t[0]||=e=>F.value=!Z(F)},{icon:J(()=>[Z(F)?(P(),V(p,{key:1,width:`100%`,height:`100%`})):(P(),V(f,{key:0,width:`100%`,height:`100%`}))]),_:1},8,[`severity`])),[[te,{value:e.$t(`views.recordings.ungroup`)},void 0,{bottom:!0}]]),Y(`span`,null,I(e.$t(`views.recordings.result_count`,{count:Z(Re).length})),1),Z(Ie)?(P(),K(`span`,mn,[X(m,{class:`w-3 h-3`}),he(` `+I(e.$t(`views.recordings.semantic_results`,{count:Z(Q).size})),1)])):U(``,!0)])):U(``,!0),Z(Re).length?(P(),V(g,{key:1,ref_key:`gridRef`,ref:E,items:Z(Re),"min-item-width":Z(i)?160:180,gap:8,"has-more":Z(Ee),"load-more":Z(De),"item-key":e=>e.key,class:`flex-1 min-h-0`},{item:J(({item:e})=>[X(h,{event:e.event,"camera-name":Z(G).get(e.event.cameraId),camera:Z(xe).get(e.event.cameraId),"load-thumbnails":Z(Ne),"semantic-score":Z(Q).get(e.event.id),"thumbnail-override":e.thumbnailOverride,onScrollToEvent:()=>Je(e.event)},null,8,[`event`,`camera-name`,`camera`,`load-thumbnails`,`semantic-score`,`thumbnail-override`,`onScrollToEvent`])]),_:1},8,[`items`,`min-item-width`,`has-more`,`load-more`,`item-key`])):U(``,!0),Z(Te)||Z(y)?(P(),K(`div`,hn,[X(_,{width:`24px`,height:`24px`,class:`text-muted`})])):U(``,!0),!Z($).length&&!Z(Te)&&!Z(y)?(P(),K(`div`,gn,[X(v,{class:`w-12 h-12 text-muted`}),Y(`span`,_n,I(e.$t(`views.recordings.no_recordings`)),1)])):U(``,!0)],2)])],4),Z(H).length?(P(),V(ee,{key:0,"tooltip-props":{value:e.$t(`views.recordings.export.title`)},"button-props":{class:`text-white`},icon:Z(ae),"icon-props":{width:`26px`,height:`26px`},"force-visible":``,onClick:Be},null,8,[`tooltip-props`,`icon`])):U(``,!0)])}}});export{xn as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./SettingsAccount-MLkJU79V.js";export{e as default};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{t as e}from"./SettingsAppearance-CHRnfQ4O.js";export{e as default};
|