@camera.ui/server 2.1.16 → 2.1.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (345) hide show
  1. package/dist/interface/assets/{404-CqZDSHs_.js → 404-Cg1J2LX8.js} +1 -1
  2. package/dist/interface/assets/{About-Dk4SUTxo.js → About-CW7G6onF.js} +1 -1
  3. package/dist/interface/assets/Automation-CIwBJK1Y.js +3 -0
  4. package/dist/interface/assets/{AutomationImport-DDywNuRK.js → AutomationImport-CHkNv7C-.js} +2 -2
  5. package/dist/interface/assets/{AutomationStore-o0JYwGRr.js → AutomationStore-5bTym-Gl.js} +2 -2
  6. package/dist/interface/assets/{AutomationStoreDetail-DeAGahaF.js → AutomationStoreDetail-BF8UoG_l.js} +2 -2
  7. package/dist/interface/assets/Automations-CaX2fHhJ.js +2 -0
  8. package/dist/interface/assets/Camera-1zdmJnP-.js +2 -0
  9. package/dist/interface/assets/Camera-DSyI4J5-.css +1 -0
  10. package/dist/interface/assets/{CameraConsole-32WtMX1a.js → CameraConsole-CB1HEFKJ.js} +2 -2
  11. package/dist/interface/assets/{Cameras-zffI0fD9.js → Cameras-CyCY0rW9.js} +2 -2
  12. package/dist/interface/assets/Camview-Dia7G1u_.js +1 -0
  13. package/dist/interface/assets/{CertificateUpload-Dg0V9Hei.js → CertificateUpload-jP-JIxmY.js} +1 -1
  14. package/dist/interface/assets/{Config-CKrqFe-g.js → Config-DOa7WHyQ.js} +1 -1
  15. package/dist/interface/assets/{ConfigActionCameraControl-sbvBJQr3.js → ConfigActionCameraControl-BmCE3XLC.js} +1 -1
  16. package/dist/interface/assets/{ConfigActionDelay-CiPxydTn.js → ConfigActionDelay-CfHCZ0uf.js} +1 -1
  17. package/dist/interface/assets/{ConfigActionHttp-UqiZm0kq.js → ConfigActionHttp-DdM7gEb0.js} +1 -1
  18. package/dist/interface/assets/{ConfigActionImageInput-DkGVZ-ti.js → ConfigActionImageInput-CrPPNT4K.js} +1 -1
  19. package/dist/interface/assets/{ConfigActionMqtt-DQu5H4bY.js → ConfigActionMqtt-D7-u4zri.js} +1 -1
  20. package/dist/interface/assets/ConfigActionNotification-BSuUI2FP.js +1 -0
  21. package/dist/interface/assets/{ConfigActionNotificationControl-B_EpM5m9.js → ConfigActionNotificationControl-DfvAxKnx.js} +1 -1
  22. package/dist/interface/assets/{ConfigActionOutput-DeOsk0T1.js → ConfigActionOutput-DPplSpm_.js} +1 -1
  23. package/dist/interface/assets/{ConfigActionPlugin-CSZHcNQ6.js → ConfigActionPlugin-BnRn_p26.js} +1 -1
  24. package/dist/interface/assets/{ConfigActionSensor-Dx7DcDVr.js → ConfigActionSensor-CoEoqFAY.js} +1 -1
  25. package/dist/interface/assets/{ConfigActionSnapshot-Baj-r4Cd.js → ConfigActionSnapshot-wXdFiyU-.js} +1 -1
  26. package/dist/interface/assets/{ConfigActionVariable-Ccu___aS.js → ConfigActionVariable-BqJvOOHH.js} +1 -1
  27. package/dist/interface/assets/{ConfigConditionIfElse-0hU7UW8q.js → ConfigConditionIfElse-DG2Kgqn5.js} +1 -1
  28. package/dist/interface/assets/{ConfigConditionSensorState-BX19KYLJ.js → ConfigConditionSensorState-BytECo6r.js} +1 -1
  29. package/dist/interface/assets/{ConfigConditionSwitch-D-XUhwcE.js → ConfigConditionSwitch-DaSt9uZE.js} +1 -1
  30. package/dist/interface/assets/{ConfigConditionTime-B6OO8cmh.js → ConfigConditionTime-D42OsshU.js} +1 -1
  31. package/dist/interface/assets/{ConfigSensorValueInput-DZHYQez8.js → ConfigSensorValueInput-BtEmtZSm.js} +1 -1
  32. package/dist/interface/assets/{ConfigTriggerDetection-BNyR5aOG.js → ConfigTriggerDetection-CDH2fzsu.js} +1 -1
  33. package/dist/interface/assets/ConfigTriggerGeofence-Dopegic5.js +1 -0
  34. package/dist/interface/assets/{ConfigTriggerManual-DFSTAuUt.js → ConfigTriggerManual-DAtWfH0-.js} +1 -1
  35. package/dist/interface/assets/{ConfigTriggerMqtt-D_O8RyrQ.js → ConfigTriggerMqtt-CB3_PxqD.js} +1 -1
  36. package/dist/interface/assets/{ConfigTriggerSchedule-BFZnBfCM.js → ConfigTriggerSchedule-BUzOrF23.js} +1 -1
  37. package/dist/interface/assets/{ConfigTriggerSensor-D1Tst2wQ.js → ConfigTriggerSensor-D5kRIb7I.js} +1 -1
  38. package/dist/interface/assets/{ConfigTriggerSystem-BNfatCp8.js → ConfigTriggerSystem-Cud77VMR.js} +1 -1
  39. package/dist/interface/assets/{ConfigTriggerWebhook--nEO_Odl.js → ConfigTriggerWebhook-CeG5R3kV.js} +1 -1
  40. package/dist/interface/assets/Console-DdOD6Pd5.js +1 -0
  41. package/dist/interface/assets/{CuiAutomationRunsDialog-CkMRT1C8.js → CuiAutomationRunsDialog-Cym6xMVJ.js} +1 -1
  42. package/dist/interface/assets/CuiBottomSheet-B3QSHp4-.js +1 -0
  43. package/dist/interface/assets/{CuiBottomSheet-mKu68LHd.js → CuiBottomSheet-BSoMhymR.js} +1 -1
  44. package/dist/interface/assets/{CuiCameraPipCard-Djp8qBvZ.js → CuiCameraPipCard-DGgrxZJd.js} +1 -1
  45. package/dist/interface/assets/CuiCameraRecordings-Bu68AFdM.js +1 -0
  46. package/dist/interface/assets/{CuiCameraShares-B73pWIFh.js → CuiCameraShares-BOhfTcxQ.js} +1 -1
  47. package/dist/interface/assets/CuiCameraTable-C1CHYnda.js +1 -0
  48. package/dist/interface/assets/{CuiCameraTable-DripFD6D.js → CuiCameraTable-D0lc0VAJ.js} +2 -2
  49. package/dist/interface/assets/{CuiChartTable-DyyQV7mt.js → CuiChartTable-DcrFI8tT.js} +1 -1
  50. package/dist/interface/assets/{CuiConsole-UxJwQqNG.js → CuiConsole-ICLBq4Q-.js} +2 -2
  51. package/dist/interface/assets/{CuiDataTable-DZm0I8k7.js → CuiDataTable-BooFPsGH.js} +1 -1
  52. package/dist/interface/assets/{CuiLightControl-CB3l0ZLj.js → CuiLightControl-D1ih2hO-.js} +1 -1
  53. package/dist/interface/assets/{CuiList-DMQgYqaU.js → CuiList-ChI82KjI.js} +1 -1
  54. package/dist/interface/assets/{CuiPluginCard-HpQMNND1.js → CuiPluginCard-DqdSWrwb.js} +2 -2
  55. package/dist/interface/assets/{CuiPluginCategoryChip-C6aEP-ug.js → CuiPluginCategoryChip-DsRcMb72.js} +1 -1
  56. package/dist/interface/assets/{CuiPluginOAuthButton-DpGacvsa.js → CuiPluginOAuthButton-BSvRKUSY.js} +2 -2
  57. package/dist/interface/assets/{CuiPluginTrustBadge-Dl1PEsm6.js → CuiPluginTrustBadge-DXL7N1LC.js} +1 -1
  58. package/dist/interface/assets/CuiQRCode-DHln6Lo9.js +1 -0
  59. package/dist/interface/assets/CuiSchema-B7i2O3Fy.js +1 -0
  60. package/dist/interface/assets/{CuiTopNavbarItem-qPj6XwXr.js → CuiTopNavbarItem-TMfTyt8u.js} +1 -1
  61. package/dist/interface/assets/{Faces-DRWIPDfH.js → Faces-CyTkMqMW.js} +1 -1
  62. package/dist/interface/assets/FirstSteps-B4gb7Sgn.js +1 -0
  63. package/dist/interface/assets/Floorplan-DBwWnuys.js +1 -0
  64. package/dist/interface/assets/{Instances-VC4-anOF.js → Instances-D9fnwItz.js} +1 -1
  65. package/dist/interface/assets/{Logs-DROgZxLH.js → Logs-Brk6fJa0.js} +2 -2
  66. package/dist/interface/assets/{Menu-CmTk2or7.js → Menu-CrdBz1Er.js} +1 -1
  67. package/dist/interface/assets/Metrics-DXMgfNIL.js +9 -0
  68. package/dist/interface/assets/{OAuthDeviceFlow-BrdiDoCh.js → OAuthDeviceFlow-D5hSwHeO.js} +1 -1
  69. package/dist/interface/assets/Plugin-C65oNZ9N.js +1 -0
  70. package/dist/interface/assets/{PluginConsole-CxiW1w6K.js → PluginConsole-Bs3Z5u9-.js} +2 -2
  71. package/dist/interface/assets/PluginDetail-C3KUrHvq.js +2 -0
  72. package/dist/interface/assets/{PluginSchema-BgVZ_4if.js → PluginSchema-D22zRDkZ.js} +1 -1
  73. package/dist/interface/assets/PluginSearch-4ngDmZQ2.js +1 -0
  74. package/dist/interface/assets/PluginSearch-D7XYJzl4.js +2 -0
  75. package/dist/interface/assets/{PluginUpdateProgress-DEcle8-x.js → PluginUpdateProgress-MEdR7mID.js} +1 -1
  76. package/dist/interface/assets/Plugins-DQTlb12n.js +1 -0
  77. package/dist/interface/assets/Recordings-CqBwRvn-.js +1 -0
  78. package/dist/interface/assets/SensorEdit-BM2zHAM7.js +1 -0
  79. package/dist/interface/assets/{SensorHistory-H03yZia0.js → SensorHistory-Dbv2ODqn.js} +1 -1
  80. package/dist/interface/assets/Sensors-B4YzyU7R.js +2 -0
  81. package/dist/interface/assets/{Sensors-DzGV2Ngo.css → Sensors-DETviyjO.css} +1 -1
  82. package/dist/interface/assets/{Settings-9nC18KH8.js → Settings--wgPYOyK.js} +1 -1
  83. package/dist/interface/assets/{SettingsAccount-BTYvhCJP.js → SettingsAccount-BF6Cp8Rt.js} +1 -1
  84. package/dist/interface/assets/SettingsAccount-D7CHP0f1.js +1 -0
  85. package/dist/interface/assets/SettingsAppearance-Ba0jbbVW.js +1 -0
  86. package/dist/interface/assets/SettingsAppearance-BpXZwBjO.js +1 -0
  87. package/dist/interface/assets/{SettingsBackup-Bu48xw4v.js → SettingsBackup-qEYm-6De.js} +1 -1
  88. package/dist/interface/assets/{SettingsList-74c5OMQf.js → SettingsList-1brGZ2E_.js} +1 -1
  89. package/dist/interface/assets/{SettingsMqtt-81rJ4zV6.js → SettingsMqtt-Ds8YpoLA.js} +1 -1
  90. package/dist/interface/assets/SettingsNotifications-Diqpfbrh.js +1 -0
  91. package/dist/interface/assets/{SettingsPermissions-DqyVtVKE.js → SettingsPermissions-GmGacrLc.js} +1 -1
  92. package/dist/interface/assets/{SettingsRecordings-Bxn28Frz.js → SettingsRecordings-CtEm_7PE.js} +1 -1
  93. package/dist/interface/assets/SettingsRemote-CENHI51U.js +2 -0
  94. package/dist/interface/assets/SettingsSystem-YkigO2-V.js +2 -0
  95. package/dist/interface/assets/{SettingsUsers-DUOJN7uO.js → SettingsUsers-BNPa87gu.js} +1 -1
  96. package/dist/interface/assets/{Terminal-45QW5yPE.js → Terminal-uxOHZpUp.js} +3 -3
  97. package/dist/interface/assets/Training-BRZKDa8S.js +1 -0
  98. package/dist/interface/assets/Training-DMNjB3uX.css +1 -0
  99. package/dist/interface/assets/{Updates-B32Pra5E.js → Updates-CbscgL60.js} +1 -1
  100. package/dist/interface/assets/{VariableInput-CyTGQFtz.js → VariableInput-Dqg4sqBD.js} +1 -1
  101. package/dist/interface/assets/{VariableSuggestions-BLlD4F87.js → VariableSuggestions-DZCkPAVs.js} +1 -1
  102. package/dist/interface/assets/{VersionsHandler-CIq6v6lE.js → VersionsHandler-BYFshrhO.js} +2 -2
  103. package/dist/interface/assets/{VirtualSensorCreate-Di2IyYAg.js → VirtualSensorCreate-CQ-C4si3.js} +1 -1
  104. package/dist/interface/assets/{Workers-tb039NGc.js → Workers-DC77SjZQ.js} +2 -2
  105. package/dist/interface/assets/api-Cb8_C_se.js +4 -0
  106. package/dist/interface/assets/{api-4JRK8ya0.js → api-CbYNh0N1.js} +1 -1
  107. package/dist/interface/assets/api-DIyogyx5.css +2 -0
  108. package/dist/interface/assets/{auth-ISkWvJbZ.js → auth-Bev1OdHw.js} +1 -1
  109. package/dist/interface/assets/{automations-CeH81DN-.js → automations-DrpESBB_.js} +1 -1
  110. package/dist/interface/assets/cameraSources-QF2xqMxX.js +1 -0
  111. package/dist/interface/assets/cloudHandoff-BknPGUc0.js +1 -0
  112. package/dist/interface/assets/{config-DthCyQJv.js → config-DCK7k2P4.js} +1 -1
  113. package/dist/interface/assets/{flowSchema-DZ2bDhJt.js → flowSchema-D3Ddm5sW.js} +1 -1
  114. package/dist/interface/assets/{intercomService-Bd71KwsB.js → intercomService-DIwpkwG4.js} +1 -1
  115. package/dist/interface/assets/{main-ExPfCNlz.css → main-Cb5Z8N7b.css} +1 -1
  116. package/dist/interface/assets/main-DVwdxi04.js +3 -0
  117. package/dist/interface/assets/{mqtt-oPORDio9.js → mqtt-COWs_r7k.js} +1 -1
  118. package/dist/interface/assets/{notifications-BirFkpbF.js → notifications-sIv1-H85.js} +1 -1
  119. package/dist/interface/assets/{plugins-vyA7MMhx.js → plugins-CXQj6XQt.js} +1 -1
  120. package/dist/interface/assets/{rooms-MfPQPywT.js → rooms-DScX89Ks.js} +1 -1
  121. package/dist/interface/assets/{sensorIcons-B4H11BbT.js → sensorIcons-CvVtOgZB.js} +1 -1
  122. package/dist/interface/assets/sensorSlots-DsfKs8_k.js +1 -0
  123. package/dist/interface/assets/{sensors-xryx8Wvn.js → sensors-Bf_gYmB5.js} +1 -1
  124. package/dist/interface/assets/{server-BK9gwxH8.js → server-CahE6_Pv.js} +1 -1
  125. package/dist/interface/assets/{theme-DQeAzJ1v.js → theme-DmUc7UHl.js} +1 -1
  126. package/dist/interface/assets/{types-Bcj_K26s.js → types-D4kUDpid.js} +1 -1
  127. package/dist/interface/assets/{types-kN1Tn2Og.js → types-Dse8_nTX.js} +1 -1
  128. package/dist/interface/assets/{types-D626ASim.js → types-hwOSxlNg.js} +1 -1
  129. package/dist/interface/assets/ungrouped-Byxe4LNR.js +1 -0
  130. package/dist/interface/assets/ungrouped-n3OnGhCH.css +1 -0
  131. package/dist/interface/assets/{updates-Dzqxen12.js → updates-C4gAnNY6.js} +1 -1
  132. package/dist/interface/assets/{useAppVersion-JY7cdzlr.js → useAppVersion--b5Zj7tl.js} +1 -1
  133. package/dist/interface/assets/{useBackupRestore-CeShFVWy.js → useBackupRestore-Bx13MgrJ.js} +1 -1
  134. package/dist/interface/assets/{useCameraOptions-BeUNT5Rz.js → useCameraOptions-DN4gJjIl.js} +1 -1
  135. package/dist/interface/assets/{useLogsSocket-DDSuX00j.js → useLogsSocket-DqVa6Hky.js} +1 -1
  136. package/dist/interface/assets/{useNavLayout-DgAgRNq2.js → useNavLayout-CuQ9F9cj.js} +1 -1
  137. package/dist/interface/assets/{usePermissions-DFzwIs8L.js → usePermissions-C1L7m3Nc.js} +1 -1
  138. package/dist/interface/assets/{usePluginUpdates-Bb-LOOyL.js → usePluginUpdates-CvQPy02x.js} +1 -1
  139. package/dist/interface/assets/{usePushRegistration-iverdyzz.js → usePushRegistration-BKvefMFq.js} +1 -1
  140. package/dist/interface/assets/{useServerRestart-BchofDLe.js → useServerRestart-ByN6484v.js} +1 -1
  141. package/dist/interface/assets/{useStreamStatus-BOJt1v1c.js → useStreamStatus-BbtTnidZ.js} +1 -1
  142. package/dist/interface/assets/{useTabSwipe-v0Yet-YZ.js → useTabSwipe-D9udGzPx.js} +1 -1
  143. package/dist/interface/assets/{useUpdateChannel-K9ADk5yx.js → useUpdateChannel-8t3W9dNr.js} +1 -1
  144. package/dist/interface/assets/{useUpdatesSocket-sj1-DmFM.js → useUpdatesSocket-D9s_5T3l.js} +1 -1
  145. package/dist/interface/assets/{useUserOptions-BnF_qBdZ.js → useUserOptions-CEPYkuSm.js} +1 -1
  146. package/dist/interface/assets/{vendor-cameraui-BPX4wReW.js → vendor-cameraui-Dlzn4pyz.js} +26 -26
  147. package/dist/interface/assets/vendor-core-COMSlypG.js +1 -0
  148. package/dist/interface/assets/{vendor-primevue-iEFYdXsu.js → vendor-primevue-DF71EsUM.js} +55 -55
  149. package/dist/interface/ha/{404-DlQnv9jN.js → 404-Bm-oxxip.js} +1 -1
  150. package/dist/interface/ha/{About-BLQJmllv.js → About-CDcN0Q2J.js} +3 -3
  151. package/dist/interface/ha/{Automation-DLMPArOd.js → Automation-BQd4b0ym.js} +102 -102
  152. package/dist/interface/ha/{AutomationImport-Qzz3Ta4D.js → AutomationImport-CX1C76Wb.js} +6 -6
  153. package/dist/interface/ha/{AutomationStore-DNXC9s6h.js → AutomationStore-D4B0KpoW.js} +56 -56
  154. package/dist/interface/ha/{AutomationStoreDetail-CTqydRKj.js → AutomationStoreDetail-B53Giz4B.js} +6 -6
  155. package/dist/interface/ha/{Automations-DRxe1fli.js → Automations-BXlwOElS.js} +124 -124
  156. package/dist/interface/ha/{Camera-OrI4Wf4F.js → Camera-CauwMneE.js} +21 -19
  157. package/dist/interface/ha/{CameraConsole-6yGhoHmu.js → CameraConsole-CmsMjuIR.js} +5 -5
  158. package/dist/interface/ha/{Cameras-DpEaKKDG.js → Cameras-CyHDmgs0.js} +259 -259
  159. package/dist/interface/ha/{Camview-CnPz4cGs.js → Camview-BwwvU5k8.js} +70 -70
  160. package/dist/interface/ha/{Config-Bb2ERyAA.js → Config-C_Zuyeoc.js} +10 -10
  161. package/dist/interface/ha/{ConfigActionCameraControl-CC2tWFz2.js → ConfigActionCameraControl-C1_QyuX8.js} +3 -3
  162. package/dist/interface/ha/{ConfigActionHttp-DBsEL44i.js → ConfigActionHttp-C0d433mh.js} +2 -2
  163. package/dist/interface/ha/{ConfigActionImageInput-Rt3AOJ3I.js → ConfigActionImageInput-BYys2FwC.js} +1 -1
  164. package/dist/interface/ha/{ConfigActionMqtt-BYSSc954.js → ConfigActionMqtt-DznDfzze.js} +4 -4
  165. package/dist/interface/ha/{ConfigActionNotification-DKlIsZJd.js → ConfigActionNotification-CC2qfBLm.js} +3 -3
  166. package/dist/interface/ha/{ConfigActionNotificationControl-D5AVW2tR.js → ConfigActionNotificationControl-3jlm7_A4.js} +2 -2
  167. package/dist/interface/ha/{ConfigActionOutput-DIlu8Ujc.js → ConfigActionOutput-BEf1U3_l.js} +1 -1
  168. package/dist/interface/ha/{ConfigActionPlugin-o1YNBh-g.js → ConfigActionPlugin-C57BUrJD.js} +5 -5
  169. package/dist/interface/ha/{ConfigActionSensor-BEvwg0tf.js → ConfigActionSensor-BkoSPCUJ.js} +5 -5
  170. package/dist/interface/ha/{ConfigActionSnapshot-Bnw0JNNj.js → ConfigActionSnapshot-CC3EpmCq.js} +2 -2
  171. package/dist/interface/ha/{ConfigActionVariable-oGPagsvF.js → ConfigActionVariable-JDyDhSzZ.js} +1 -1
  172. package/dist/interface/ha/{ConfigConditionIfElse-7LCDNDvS.js → ConfigConditionIfElse-BVg-TUpv.js} +3 -3
  173. package/dist/interface/ha/{ConfigConditionSensorState-nO-s7wi6.js → ConfigConditionSensorState-YYeWly1H.js} +4 -4
  174. package/dist/interface/ha/{ConfigConditionSwitch-GrIKkY-P.js → ConfigConditionSwitch-DQHXX-4U.js} +5 -5
  175. package/dist/interface/ha/{ConfigSensorValueInput-Cthp3KXt.js → ConfigSensorValueInput-BuuzQ1nJ.js} +4 -4
  176. package/dist/interface/ha/{ConfigTriggerDetection-CJE9QFaK.js → ConfigTriggerDetection-CUvkAmpJ.js} +12 -12
  177. package/dist/interface/ha/{ConfigTriggerGeofence-Cyeu7Cit.js → ConfigTriggerGeofence-CCHELnfy.js} +7 -7
  178. package/dist/interface/ha/{ConfigTriggerMqtt-D5EoOztE.js → ConfigTriggerMqtt-BfLnCiWZ.js} +1 -1
  179. package/dist/interface/ha/{ConfigTriggerSensor-DYg_HRjO.js → ConfigTriggerSensor-Bi-Jld2G.js} +1 -1
  180. package/dist/interface/ha/{ConfigTriggerSystem-DzpajiyS.js → ConfigTriggerSystem-_HXrWjaJ.js} +2 -2
  181. package/dist/interface/ha/{ConfigTriggerWebhook-IE4PVb4O.js → ConfigTriggerWebhook-CFYsVF_r.js} +1 -1
  182. package/dist/interface/ha/{Console-BYgny5Dy.js → Console-CR95JZFd.js} +8 -8
  183. package/dist/interface/ha/{CuiAutomationRunsDialog-CoYgpbW0.js → CuiAutomationRunsDialog--mpkPFmw.js} +2 -2
  184. package/dist/interface/ha/{CuiBottomSheet-C4cK3fYK.js → CuiBottomSheet-DfFzwDjq.js} +1 -1
  185. package/dist/interface/ha/{CuiCameraRecordings-BAxchc71.js → CuiCameraRecordings-DCIFFbFk.js} +17 -18
  186. package/dist/interface/ha/{CuiCameraShares-CfQr1iyX.js → CuiCameraShares-Dwv_XtX4.js} +2 -2
  187. package/dist/interface/ha/{CuiCameraTable-B60mcEl_.js → CuiCameraTable-L6wd-VYz.js} +2 -2
  188. package/dist/interface/ha/{CuiChartTable-CbUVz-Cj.js → CuiChartTable-CxJR8u6U.js} +42 -42
  189. package/dist/interface/ha/{CuiConsole-DEjAQFwC.js → CuiConsole-CvL9TXZY.js} +20 -20
  190. package/dist/interface/ha/{CuiDataTable-005ptLsa.js → CuiDataTable-Bn80WJXi.js} +6 -6
  191. package/dist/interface/ha/{CuiPluginCard-BWwPLJ6m.js → CuiPluginCard-CtOzPAal.js} +18 -18
  192. package/dist/interface/ha/{CuiPluginOAuthButton-CgmDgRY9.js → CuiPluginOAuthButton-1LgNMLII.js} +3 -3
  193. package/dist/interface/ha/{CuiPluginTrustBadge-BWnP1whX.js → CuiPluginTrustBadge-mHuy3ab9.js} +1 -1
  194. package/dist/interface/ha/{CuiQRCode-ONkk6Wqy.js → CuiQRCode-CloepWte.js} +2 -2
  195. package/dist/interface/ha/{CuiSchema-C3uI1GwG.js → CuiSchema-CJsEWewj.js} +19 -19
  196. package/dist/interface/ha/{CuiTopNavbarItem-Bhws0XkE.js → CuiTopNavbarItem-B2EM-tmz.js} +1 -1
  197. package/dist/interface/ha/{Faces-DuxYlZGd.js → Faces-BMkZfxDm.js} +107 -107
  198. package/dist/interface/ha/{FirstSteps-BAlqShSK.js → FirstSteps-BH0mga3u.js} +11 -11
  199. package/dist/interface/ha/{Floorplan-BVwSNFd6.js → Floorplan-CyfIUI4Z.js} +275 -275
  200. package/dist/interface/ha/{Instances-BM9sRNSP.js → Instances-BwNXc91J.js} +70 -70
  201. package/dist/interface/ha/{Logs-KISz4BU-.js → Logs-CcSiN16r.js} +8 -8
  202. package/dist/interface/ha/{Menu-DYI6PeIn.js → Menu-qdN0OBb7.js} +10 -10
  203. package/dist/interface/ha/{Metrics-BjpKFunA.js → Metrics-ClM5lhvC.js} +89 -89
  204. package/dist/interface/ha/{OAuthDeviceFlow-DG-KUGZj.js → OAuthDeviceFlow-BBr-rER_.js} +3 -3
  205. package/dist/interface/ha/{Plugin-BjWyUUhe.js → Plugin-BBkSXygO.js} +50 -50
  206. package/dist/interface/ha/{PluginConsole-BK3cotea.js → PluginConsole-DqrBnXSX.js} +6 -6
  207. package/dist/interface/ha/{PluginDetail-BDzDeShX.js → PluginDetail-Clu6nv-B.js} +9 -9
  208. package/dist/interface/ha/{PluginSearch-DsFUuPC-.js → PluginSearch-Dn-24FLX.js} +32 -32
  209. package/dist/interface/ha/{PluginUpdateProgress-BMrdkjRq.js → PluginUpdateProgress-CzhHUKDg.js} +3 -3
  210. package/dist/interface/ha/{Plugins-3WPnsHXw.js → Plugins-qYJD5ioU.js} +16 -16
  211. package/dist/interface/ha/{Recordings-0wDF4ArK.js → Recordings-CBIt3vL7.js} +354 -355
  212. package/dist/interface/ha/{SensorEdit-B0L2zIha.js → SensorEdit-BbG6apZA.js} +349 -349
  213. package/dist/interface/ha/{SensorHistory-CQJEY1sW.js → SensorHistory-CqGsnQPW.js} +2 -2
  214. package/dist/interface/ha/{Sensors-BYdBTCLo.js → Sensors-mKWkCDF8.js} +474 -448
  215. package/dist/interface/ha/{Settings-BaqGiBCa.js → Settings-C5J4ubiA.js} +10 -10
  216. package/dist/interface/ha/{SettingsAccount-B0Sth0EF.js → SettingsAccount-tCyZsBxG.js} +39 -39
  217. package/dist/interface/ha/{SettingsAppearance-B_oylmTa.js → SettingsAppearance-DqJp4Clt.js} +6 -6
  218. package/dist/interface/ha/{SettingsBackup-BLmoV5AW.js → SettingsBackup-CHnCKYgz.js} +5 -5
  219. package/dist/interface/ha/{SettingsList-CMX7wMye.js → SettingsList-DsQOPeKW.js} +1 -1
  220. package/dist/interface/ha/{SettingsMqtt-C-sGwxOZ.js → SettingsMqtt-TPIsEcXe.js} +180 -180
  221. package/dist/interface/ha/{SettingsNotifications-tc9FCCUF.js → SettingsNotifications-DH3T_xyh.js} +3 -3
  222. package/dist/interface/ha/{SettingsRecordings-DDs16z2A.js → SettingsRecordings-Ay8lj8Lm.js} +4 -4
  223. package/dist/interface/ha/{SettingsRemote-0c0umjFJ.js → SettingsRemote-CHiBADuu.js} +314 -314
  224. package/dist/interface/ha/{SettingsSystem-DfXxWXQk.js → SettingsSystem-tqs40pUW.js} +8 -8
  225. package/dist/interface/ha/{SettingsUsers-CmjC0zsF.js → SettingsUsers-BUbC_Qc7.js} +39 -39
  226. package/dist/interface/ha/{Terminal-nbUX6PPZ.js → Terminal-f_b-089t.js} +4 -4
  227. package/dist/interface/ha/Training-Dcxo9PFi.js +1479 -0
  228. package/dist/interface/ha/{Updates-UaxBGn6D.js → Updates-aGl5hy8Q.js} +11 -11
  229. package/dist/interface/ha/{VariableInput-0bF2H1Bm.js → VariableInput-yJGbaZEo.js} +1 -1
  230. package/dist/interface/ha/{VersionsHandler-CnXVnfBl.js → VersionsHandler-Q4PfRpbs.js} +10 -10
  231. package/dist/interface/ha/{VirtualSensorCreate-BE60rAkJ.js → VirtualSensorCreate-Gbi6aJBh.js} +8 -8
  232. package/dist/interface/ha/{Workers-CaX3Z3w-.js → Workers-BbBqOc0H.js} +129 -129
  233. package/dist/interface/ha/{api-CmcbBFTx.js → api-DBu4gh4_.js} +8390 -8315
  234. package/dist/interface/ha/{api-S-NnjUWl.js → api-DY0z6Sp_.js} +3 -3
  235. package/dist/interface/ha/{auth-CqYE7s1-.js → auth-C2V-kpRp.js} +38 -38
  236. package/dist/interface/ha/{automationBlueprint-Dmp54JD1.js → automationBlueprint-MGUZJTFY.js} +4 -4
  237. package/dist/interface/ha/cameraui-cards.js +1 -1
  238. package/dist/interface/ha/{cards-MnCBmBIR.js → cards-BA6g_9R5.js} +566 -566
  239. package/dist/interface/ha/{config-C94KN4WM.js → config-BGlhgEOa.js} +15 -15
  240. package/dist/interface/ha/{dist-BQFunPaA.js → dist-BqTZri2H.js} +743 -725
  241. package/dist/interface/ha/{mqtt-HDLqlOJt.js → mqtt-BLKZNA-E.js} +15 -15
  242. package/dist/interface/ha/{notifications-C2_2_NRh.js → notifications-BW0RNMnG.js} +22 -22
  243. package/dist/interface/ha/{pinia-DLNUke3Q.js → pinia-DINxhtY-.js} +168 -165
  244. package/dist/interface/ha/{plugins-l2i4DgqO.js → plugins-Cj-B4Nwy.js} +68 -68
  245. package/dist/interface/ha/{rooms-Bp1ZVAzT.js → rooms-C32i51p-.js} +8 -8
  246. package/dist/interface/ha/{server-BsduJDAB.js → server-CfbE_0Z9.js} +32 -32
  247. package/dist/interface/ha/{types-iZUCCt1P.js → types-Ry6RjBNa.js} +17 -17
  248. package/dist/interface/ha/ungrouped-CO29-tSV.js +1320 -0
  249. package/dist/interface/ha/{updates-CDsPvhpo.js → updates-CZPI8XJ1.js} +37 -37
  250. package/dist/interface/ha/{useAppVersion-BJtSGn4X.js → useAppVersion-9jfqRo_z.js} +1 -1
  251. package/dist/interface/ha/{useLogsSocket-Ck-ZQpQD.js → useLogsSocket-B0E7a3ys.js} +1 -1
  252. package/dist/interface/ha/{useNavLayout-Bn6HYs-i.js → useNavLayout-B2wfeha-.js} +2 -2
  253. package/dist/interface/ha/{useServerRestart-fff_KK9Y.js → useServerRestart-CCH-yMWR.js} +1 -1
  254. package/dist/interface/ha/{useTabSwipe-B1CQZuyT.js → useTabSwipe-D2uqGEvR.js} +1 -1
  255. package/dist/interface/ha/{useUpdateChannel-DUBmGEDe.js → useUpdateChannel--SP3Wjym.js} +2 -2
  256. package/dist/interface/ha/{useUpdatesSocket-DoLb2kcJ.js → useUpdatesSocket-BBbUCMU-.js} +1 -1
  257. package/dist/interface/ha/{useUserOptions-D0kNSHFH.js → useUserOptions-Bh54UAkH.js} +1 -1
  258. package/dist/interface/index.html +28 -27
  259. package/dist/interface/sw.js +1 -1
  260. package/dist/server/package.json +1 -1
  261. package/dist/server/src/api/controllers/training.controller.d.ts +4 -2
  262. package/dist/server/src/api/controllers/training.controller.js +2 -2
  263. package/dist/server/src/api/controllers/training.controller.js.map +1 -1
  264. package/dist/server/src/api/database/record-schemas.d.ts +1 -0
  265. package/dist/server/src/api/database/record-schemas.js +1 -0
  266. package/dist/server/src/api/database/record-schemas.js.map +1 -1
  267. package/dist/server/src/api/routes/training.routes.js +3 -2
  268. package/dist/server/src/api/routes/training.routes.js.map +1 -1
  269. package/dist/server/src/api/schemas/training.schema.d.ts +4 -0
  270. package/dist/server/src/api/schemas/training.schema.js +3 -0
  271. package/dist/server/src/api/schemas/training.schema.js.map +1 -1
  272. package/dist/server/src/api/services/sensors.service.d.ts +1 -0
  273. package/dist/server/src/api/services/sensors.service.js +1 -0
  274. package/dist/server/src/api/services/sensors.service.js.map +1 -1
  275. package/dist/server/src/api/types/index.d.ts +2 -1
  276. package/dist/server/src/camera/decoder/detection-coordinator.js +23 -7
  277. package/dist/server/src/camera/decoder/detection-coordinator.js.map +1 -1
  278. package/dist/server/src/camera/decoder/detection-window.d.ts +5 -0
  279. package/dist/server/src/camera/decoder/detection-window.js +5 -5
  280. package/dist/server/src/camera/decoder/detection-window.js.map +1 -1
  281. package/dist/server/src/camera/decoder/event-manager.d.ts +5 -1
  282. package/dist/server/src/camera/decoder/event-manager.js +21 -14
  283. package/dist/server/src/camera/decoder/event-manager.js.map +1 -1
  284. package/dist/server/src/camera/decoder/training-sink.d.ts +14 -3
  285. package/dist/server/src/camera/decoder/training-sink.js +32 -17
  286. package/dist/server/src/camera/decoder/training-sink.js.map +1 -1
  287. package/dist/server/src/camera/decoder/types.d.ts +1 -1
  288. package/dist/server/src/camera/decoder/types.js +2 -6
  289. package/dist/server/src/camera/decoder/types.js.map +1 -1
  290. package/dist/server/src/manager/trainingCandidateManager.d.ts +2 -3
  291. package/dist/server/src/manager/trainingCandidateManager.js +17 -18
  292. package/dist/server/src/manager/trainingCandidateManager.js.map +1 -1
  293. package/dist/server/src/manager/types.d.ts +5 -0
  294. package/dist/server/src/remote/api/routes/train.d.ts +6 -1
  295. package/dist/server/src/remote/api/routes/train.js +6 -2
  296. package/dist/server/src/remote/api/routes/train.js.map +1 -1
  297. package/dist/server/src/sensors/registry.d.ts +1 -0
  298. package/dist/server/src/sensors/registry.js +10 -0
  299. package/dist/server/src/sensors/registry.js.map +1 -1
  300. package/package.json +1 -1
  301. package/dist/interface/assets/Automation-CDvt2MXN.js +0 -3
  302. package/dist/interface/assets/Automations-2K-7hZfK.js +0 -2
  303. package/dist/interface/assets/Camera-B72IU-UF.js +0 -2
  304. package/dist/interface/assets/Camera-Cm9I0H6c.css +0 -1
  305. package/dist/interface/assets/Camview-KzzN0Q1w.js +0 -1
  306. package/dist/interface/assets/ConfigActionNotification-C2uXIMpm.js +0 -1
  307. package/dist/interface/assets/ConfigTriggerGeofence-Cuq1SnOZ.js +0 -1
  308. package/dist/interface/assets/Console-DkylrXI4.js +0 -1
  309. package/dist/interface/assets/CuiBottomSheet-DILQuWKb.js +0 -1
  310. package/dist/interface/assets/CuiCameraRecordings-Bi0I7jeO.js +0 -1
  311. package/dist/interface/assets/CuiCameraTable-CUdAnRJP.js +0 -1
  312. package/dist/interface/assets/CuiQRCode-D04Onyhk.js +0 -1
  313. package/dist/interface/assets/CuiRecordingsGrid-BhATIjIf.css +0 -1
  314. package/dist/interface/assets/CuiRecordingsGrid-BzyJWpFt.js +0 -1
  315. package/dist/interface/assets/CuiSchema-thjfmEWw.js +0 -1
  316. package/dist/interface/assets/FirstSteps-C6GVpZVr.js +0 -1
  317. package/dist/interface/assets/Floorplan-Q-UYDnrE.js +0 -1
  318. package/dist/interface/assets/Metrics-CYZF-em9.js +0 -9
  319. package/dist/interface/assets/Plugin-DuPHiiYJ.js +0 -1
  320. package/dist/interface/assets/PluginDetail-DWP7_hNa.js +0 -2
  321. package/dist/interface/assets/PluginSearch-1djFQUjL.js +0 -1
  322. package/dist/interface/assets/PluginSearch-Ba-hQHxm.js +0 -2
  323. package/dist/interface/assets/Plugins-BZ3U4pcG.js +0 -1
  324. package/dist/interface/assets/Recordings-CI5MIFR-.js +0 -1
  325. package/dist/interface/assets/SensorEdit-B6s-VZ3F.js +0 -1
  326. package/dist/interface/assets/Sensors-DDPUwbb-.js +0 -2
  327. package/dist/interface/assets/SettingsAccount-CKi0z3Bm.js +0 -1
  328. package/dist/interface/assets/SettingsAppearance-CDbQnSvl.js +0 -1
  329. package/dist/interface/assets/SettingsAppearance-D9Y28zzz.js +0 -1
  330. package/dist/interface/assets/SettingsNotifications-xHV5KiZg.js +0 -1
  331. package/dist/interface/assets/SettingsRemote-7h2dKJlF.js +0 -2
  332. package/dist/interface/assets/SettingsSystem-D-MLhCdN.js +0 -2
  333. package/dist/interface/assets/Training-B5SzDUAC.css +0 -1
  334. package/dist/interface/assets/Training-DWrQVSS0.js +0 -1
  335. package/dist/interface/assets/api-CFf063x3.js +0 -4
  336. package/dist/interface/assets/api-eoOLTOnS.css +0 -2
  337. package/dist/interface/assets/cameraSources-CgAEmb37.js +0 -1
  338. package/dist/interface/assets/cloudHandoff-B_kCnm4R.js +0 -1
  339. package/dist/interface/assets/main--lW4P3A4.js +0 -3
  340. package/dist/interface/assets/ungrouped-C6pQb0X4.css +0 -1
  341. package/dist/interface/assets/ungrouped-C_gJm6d7.js +0 -1
  342. package/dist/interface/assets/vendor-core-D0ANiY7g.js +0 -1
  343. package/dist/interface/ha/CuiRecordingsGrid-D6HHyF1D.js +0 -735
  344. package/dist/interface/ha/Training-GMcD4Qg9.js +0 -1440
  345. package/dist/interface/ha/ungrouped-wz-KNJpA.js +0 -426
@@ -2,28 +2,27 @@ import { D as e, G as t, H as n, Jt as r, U as i, Wt as a, Y as o, _t as s, d as
2
2
  import { t as A } from "./tooltip-BIrD_hC8.js";
3
3
  import { t as j } from "./message-C8U_kMBA.js";
4
4
  import { t as M } from "./tag-CXgC9OZ6.js";
5
- import { Ar as N, B as ee, Cr as P, G as F, J as te, Jn as I, K as L, Mn as R, Mr as ne, Qn as z, Qt as re, R as B, Si as ie, V as ae, Xn as V, _t as H, ar as U, bn as oe, br as se, et as ce, gr as le, h as W, ir as ue, it as de, jr as fe, kr as pe, nr as me, or as G, qr as he, rr as ge, tt as _e, ur as ve, ut as ye, wr as K, yi as be, yr as xe, z as Se, zn as Ce } from "./api-CmcbBFTx.js";
6
- import { F as we, M as Te, z as Ee } from "./protocol-BB4jdtUC-K1r3LFCq.js";
7
- import { h as De, u as Oe } from "./intercomService-jB2mTgsn.js";
8
- import { n as ke } from "./vue-i18n-Dcb07o5U.js";
9
- import { M as Ae, ct as je, nt as Me, tt as Ne } from "./dist-BQFunPaA.js";
10
- import { t as Pe } from "./button-BlYuI0Q7.js";
5
+ import { $n as N, Ar as ee, B as P, Ci as F, Cr as I, G as te, Hn as L, In as R, J as z, Jr as B, K as ne, Mn as re, Mr as V, Nr as ie, Qt as ae, R as oe, V as H, Xn as se, Yn as ce, _t as U, bi as le, bn as ue, br as W, cr as de, et as fe, gr as pe, h as me, ir as he, it as ge, jr as _e, kr as ve, nr as ye, qn as be, sr as xe, tt as Se, ut as Ce, wr as we, yr as Te, z as Ee } from "./api-DBu4gh4_.js";
6
+ import { F as De, M as Oe, z as ke } from "./protocol-BB4jdtUC-K1r3LFCq.js";
7
+ import { h as Ae, u as je } from "./intercomService-jB2mTgsn.js";
8
+ import { n as Me } from "./vue-i18n-Dcb07o5U.js";
9
+ import { M as Ne, ct as G, nt as K, tt as Pe } from "./dist-BqTZri2H.js";
10
+ import { t as Fe } from "./button-BlYuI0Q7.js";
11
11
  import { t as q } from "./inputtext-DGIESrd0.js";
12
- import { a as Fe, t as J } from "./datepicker-BuvKhBWJ.js";
13
- import { t as Ie } from "./close-Eq3txTBS.js";
14
- import { t as Le } from "./select-DjWkRqsI.js";
15
- import { t as Re } from "./progressbar-CIoPoMSe.js";
12
+ import { a as Ie, t as J } from "./datepicker-BuvKhBWJ.js";
13
+ import { t as Le } from "./close-Eq3txTBS.js";
14
+ import { t as Re } from "./select-DjWkRqsI.js";
15
+ import { t as ze } from "./progressbar-CIoPoMSe.js";
16
16
  import { t as Y } from "./multiselect-BbgV_fPx.js";
17
- import { t as ze } from "./textarea-DvLkfUX7.js";
18
- import { i as Be, n as Ve, t as He } from "./eventLabels-B4C1_4vT.js";
19
- import { t as Ue } from "./ring-resize-VS4MSeBv.js";
20
- import { n as We, r as Ge, t as Ke } from "./ungrouped-wz-KNJpA.js";
21
- import { t as qe } from "./utils-DYtBrGDz.js";
22
- import { t as Je } from "./CuiRecordingsGrid-D6HHyF1D.js";
23
- import { t as Ye } from "./settings-EKkSQLzv.js";
24
- import { n as Xe, t as Ze } from "./round-alt-arrow-left-bold-CWEg-ZLF.js";
17
+ import { t as Be } from "./textarea-DvLkfUX7.js";
18
+ import { i as Ve, n as He, t as Ue } from "./eventLabels-B4C1_4vT.js";
19
+ import { t as We } from "./ring-resize-VS4MSeBv.js";
20
+ import { i as Ge, n as Ke, r as qe, t as Je } from "./ungrouped-CO29-tSV.js";
21
+ import { t as Ye } from "./utils-DYtBrGDz.js";
22
+ import { t as Xe } from "./settings-EKkSQLzv.js";
23
+ import { n as Ze, t as Qe } from "./round-alt-arrow-left-bold-CWEg-ZLF.js";
25
24
  //#region node_modules/@camera.ui/sdk/dist/camera/events.js
26
- var Qe = [
25
+ var $e = [
27
26
  "motion",
28
27
  "audio",
29
28
  "contact",
@@ -51,22 +50,22 @@ var Qe = [
51
50
  width: "1.2em",
52
51
  height: "1.2em"
53
52
  };
54
- function $e(e, t) {
53
+ function et(e, t) {
55
54
  return n(), g("svg", X, [...t[0] ||= [x("path", {
56
55
  fill: "currentColor",
57
56
  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"
58
57
  }, null, -1)]]);
59
58
  }
60
- var et = s({
59
+ var tt = s({
61
60
  name: "mage-filter-fill",
62
- render: $e
63
- }), tt = {
61
+ render: et
62
+ }), nt = {
64
63
  viewBox: "0 0 24 24",
65
64
  width: "1.2em",
66
65
  height: "1.2em"
67
66
  };
68
- function nt(e, t) {
69
- return n(), g("svg", tt, [...t[0] ||= [x("path", {
67
+ function rt(e, t) {
68
+ return n(), g("svg", nt, [...t[0] ||= [x("path", {
70
69
  fill: "none",
71
70
  stroke: "currentColor",
72
71
  "stroke-linecap": "round",
@@ -75,33 +74,33 @@ function nt(e, t) {
75
74
  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"
76
75
  }, null, -1)]]);
77
76
  }
78
- var rt = s({
77
+ var it = s({
79
78
  name: "mage-filter",
80
- render: nt
81
- }), Z = {
79
+ render: rt
80
+ }), at = {
82
81
  viewBox: "0 0 24 24",
83
82
  width: "1.2em",
84
83
  height: "1.2em"
85
84
  };
86
- function it(e, t) {
87
- return n(), g("svg", Z, [...t[0] ||= [x("path", {
85
+ function Z(e, t) {
86
+ return n(), g("svg", at, [...t[0] ||= [x("path", {
88
87
  fill: "currentColor",
89
88
  d: "M6 12.45V9.64c1.47.83 3.61 1.36 6 1.36s4.53-.53 6-1.36v2.39c.17-.03.33-.03.5-.03c.5 0 1 .07 1.5.18V7c0-2.21-3.58-4-8-4S4 4.79 4 7v10c0 2.21 3.59 4 8 4h.5c-.26-.63-.41-1.3-.47-2H12c-3.87 0-6-1.5-6-2v-2.23c1.61.78 3.72 1.23 6 1.23h.5c.35-.82.84-1.54 1.45-2.14c-.63.09-1.28.14-1.95.14c-2.42 0-4.7-.6-6-1.55M12 5c3.87 0 6 1.5 6 2s-2.13 2-6 2s-6-1.5-6-2s2.13-2 6-2m6 13.5l1.77-1.77A2.5 2.5 0 1 0 20 20h1.71A3.99 3.99 0 0 1 18 22.5c-2.21 0-4-1.79-4-4s1.79-4 4-4c1.11 0 2.11.45 2.83 1.17L22 14.5v4z"
90
89
  }, null, -1)]]);
91
90
  }
92
- var at = s({
91
+ var ot = s({
93
92
  name: "mdi-database-refresh-outline",
94
- render: it
95
- }), ot = { class: "flex flex-col gap-4" }, st = { class: "text-sm text-pretty" }, ct = {
93
+ render: Z
94
+ }), st = { class: "flex flex-col gap-4" }, ct = { class: "text-sm text-pretty" }, lt = {
96
95
  key: 0,
97
96
  class: "flex flex-col gap-2"
98
- }, lt = {
97
+ }, ut = {
99
98
  key: 0,
100
99
  class: "flex justify-between text-sm text-muted"
101
- }, ut = { key: 0 }, dt = /* @__PURE__ */ T({
100
+ }, dt = { key: 0 }, ft = /* @__PURE__ */ T({
102
101
  __name: "ClipReindex",
103
102
  setup(t, { expose: i }) {
104
- let a = e("dialogRefProps"), { t: o } = ke(), { status: s, isBusy: c, checking: u, refresh: p, start: m, cancel: _ } = z(), v = E(!1), y = E(!1), S = E(0), C = f(() => s.value?.running === !0), w = f(() => {
103
+ let a = e("dialogRefProps"), { t: o } = Me(), { status: s, isBusy: c, checking: u, refresh: p, start: m, cancel: _ } = he(), v = E(!1), y = E(!1), S = E(0), C = f(() => s.value?.running === !0), w = f(() => {
105
104
  if (y.value) {
106
105
  if (!s.value?.total) return o("views.recordings.reindex.up_to_date");
107
106
  let { done: e, total: t, skipped: n } = s.value;
@@ -132,49 +131,49 @@ var at = s({
132
131
  s.value?.running && (v.value = !0);
133
132
  });
134
133
  }), i({ onConfirm: O }), (e, t) => {
135
- let i = Re;
136
- return n(), g("div", ot, [x("span", st, r(d(w)), 1), d(v) || d(C) ? (n(), g("div", ct, [D(i, {
134
+ let i = ze;
135
+ return n(), g("div", st, [x("span", ct, r(d(w)), 1), d(v) || d(C) ? (n(), g("div", lt, [D(i, {
137
136
  mode: d(u) ? "indeterminate" : "determinate",
138
137
  value: d(T),
139
138
  "show-value": !1,
140
139
  class: "h-2"
141
- }, null, 8, ["mode", "value"]), d(C) && !d(u) ? (n(), g("div", lt, [x("span", null, r(e.$t("views.recordings.reindex.progress", {
140
+ }, null, 8, ["mode", "value"]), d(C) && !d(u) ? (n(), g("div", ut, [x("span", null, r(e.$t("views.recordings.reindex.progress", {
142
141
  done: d(s)?.done ?? 0,
143
142
  total: d(s)?.total ?? 0
144
- })), 1), d(s)?.skipped ? (n(), g("span", ut, r(e.$t("views.recordings.reindex.skipped", { count: d(s).skipped })), 1)) : l("", !0)])) : l("", !0)])) : l("", !0)]);
143
+ })), 1), d(s)?.skipped ? (n(), g("span", dt, r(e.$t("views.recordings.reindex.skipped", { count: d(s).skipped })), 1)) : l("", !0)])) : l("", !0)])) : l("", !0)]);
145
144
  };
146
145
  }
147
- }), ft = {
146
+ }), pt = {
148
147
  viewBox: "0 0 24 24",
149
148
  width: "1.2em",
150
149
  height: "1.2em"
151
150
  };
152
- function pt(e, t) {
153
- return n(), g("svg", ft, [...t[0] ||= [x("path", {
151
+ function mt(e, t) {
152
+ return n(), g("svg", pt, [...t[0] ||= [x("path", {
154
153
  fill: "currentColor",
155
154
  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"
156
155
  }, null, -1)]]);
157
156
  }
158
- var mt = s({
157
+ var ht = s({
159
158
  name: "mdi-file-video-outline",
160
- render: pt
161
- }), ht = { class: "flex flex-col gap-6" }, gt = { class: "flex flex-col field-gap" }, _t = { class: "cui-label" }, Q = { class: "flex flex-col field-gap" }, vt = { class: "cui-label" }, $ = { class: "grid grid-cols-1 xs:grid-cols-2 gap-3" }, yt = { class: "flex flex-col gap-1" }, bt = { class: "text-xs text-muted" }, xt = { class: "flex flex-col gap-1" }, St = { class: "text-xs text-muted" }, Ct = { class: "grid grid-cols-1 xs:grid-cols-2 gap-x-6 gap-y-4" }, wt = { class: "flex flex-col field-gap" }, Tt = { class: "cui-label" }, Et = { class: "flex flex-col field-gap" }, Dt = { class: "cui-label" }, Ot = { class: "flex flex-col field-gap" }, kt = { class: "flex items-center gap-3" }, At = { class: "cui-label !mb-0" }, jt = {
159
+ render: mt
160
+ }), gt = { class: "flex flex-col gap-6" }, _t = { class: "flex flex-col field-gap" }, vt = { class: "cui-label" }, yt = { class: "flex flex-col field-gap" }, Q = { class: "cui-label" }, bt = { class: "grid grid-cols-1 xs:grid-cols-2 gap-3" }, $ = { class: "flex flex-col gap-1" }, xt = { class: "text-xs text-muted" }, St = { class: "flex flex-col gap-1" }, Ct = { class: "text-xs text-muted" }, wt = { class: "grid grid-cols-1 xs:grid-cols-2 gap-x-6 gap-y-4" }, Tt = { class: "flex flex-col field-gap" }, Et = { class: "cui-label" }, Dt = { class: "flex flex-col field-gap" }, Ot = { class: "cui-label" }, kt = { class: "flex flex-col field-gap" }, At = { class: "flex items-center gap-3" }, jt = { class: "cui-label !mb-0" }, Mt = {
162
161
  key: 0,
163
162
  class: "ml-auto flex items-center gap-2.5 text-sm tabular-nums"
164
- }, Mt = { class: "font-semibold" }, Nt = { class: "font-semibold" }, Pt = { class: "border border-color rounded-xl card-background overflow-hidden" }, Ft = { class: "flex flex-col gap-3 max-h-[240px] overflow-y-auto p-2.5" }, It = {
163
+ }, Nt = { class: "font-semibold" }, Pt = { class: "font-semibold" }, Ft = { class: "border border-color rounded-xl card-background overflow-hidden" }, It = { class: "flex flex-col gap-3 max-h-[240px] overflow-y-auto p-2.5" }, Lt = {
165
164
  key: 0,
166
165
  class: "flex items-center justify-center gap-2 text-muted text-sm py-6"
167
- }, Lt = {
166
+ }, Rt = {
168
167
  key: 1,
169
168
  class: "text-center text-muted text-sm py-6"
170
- }, Rt = { class: "text-xs text-muted px-0.5" }, zt = { class: "font-mono text-xs truncate flex-1" }, Bt = { class: "text-xs text-muted tabular-nums shrink-0" }, Vt = { class: "font-mono text-xs text-muted tabular-nums shrink-0 min-w-[58px] text-right" }, Ht = 30, Ut = /* @__PURE__ */ T({
169
+ }, zt = { class: "text-xs text-muted px-0.5" }, Bt = { class: "font-mono text-xs truncate flex-1" }, Vt = { class: "text-xs text-muted tabular-nums shrink-0" }, Ht = { class: "font-mono text-xs text-muted tabular-nums shrink-0 min-w-[58px] text-right" }, Ut = 30, Wt = /* @__PURE__ */ T({
171
170
  __name: "ExportRecordings",
172
171
  props: {
173
172
  cameras: {},
174
173
  preselect: {}
175
174
  },
176
175
  setup(i, { expose: a }) {
177
- let o = i, { t: s } = ke(), m = ie(), h = e("dialogRefProps"), { plugin: _ } = Ae("@camera.ui/camera-ui-nvr"), y = E([]), S = E(!1), w = E(o.preselect?.length ? [...o.preselect] : []), T = E("best"), O = E(0), k = E(new Date((/* @__PURE__ */ new Date()).setHours(0, 0, 0, 0))), A = E(/* @__PURE__ */ new Date()), N = f(() => [{
176
+ let o = i, { t: s } = Me(), m = F(), h = e("dialogRefProps"), { plugin: _ } = Ne("@camera.ui/camera-ui-nvr"), y = E([]), S = E(!1), w = E(o.preselect?.length ? [...o.preselect] : []), T = E("best"), O = E(0), k = E(new Date((/* @__PURE__ */ new Date()).setHours(0, 0, 0, 0))), A = E(/* @__PURE__ */ new Date()), N = f(() => [{
178
177
  label: s("views.recordings.export.quality_best"),
179
178
  value: "best"
180
179
  }, {
@@ -195,8 +194,8 @@ var mt = s({
195
194
  ].map((e) => ({
196
195
  label: e === 0 ? s("views.recordings.export.timelapse_off") : e < 60 ? `${e} s` : `${e / 60} min`,
197
196
  value: e
198
- }))), P = f(() => O.value > 0), F = f(() => P.value ? "~" : ""), te = f(() => new Map(o.cameras.map((e) => [e.id, e.name]))), I = f(() => k.value instanceof Date && A.value instanceof Date && k.value < A.value), L = f(() => {
199
- if (!I.value) return [];
197
+ }))), P = f(() => O.value > 0), I = f(() => P.value ? "~" : ""), te = f(() => new Map(o.cameras.map((e) => [e.id, e.name]))), L = f(() => k.value instanceof Date && A.value instanceof Date && k.value < A.value), R = f(() => {
198
+ if (!L.value) return [];
200
199
  let e = [], t = k.value.getTime(), n = A.value.getTime(), r = new Date(k.value);
201
200
  r.setHours(0, 0, 0, 0);
202
201
  let i = new Date(A.value);
@@ -205,24 +204,24 @@ var mt = s({
205
204
  a.setDate(a.getDate() + 1);
206
205
  let o = Math.max(i.getTime(), t), s = Math.min(a.getTime(), n);
207
206
  s > o && e.push({
208
- day: ae(i),
207
+ day: ie(i),
209
208
  startUs: o * 1e3,
210
209
  endUs: s * 1e3
211
210
  }), r.setDate(r.getDate() + 1);
212
211
  }
213
212
  return e;
214
- }), R = f(() => y.value.map((e) => {
215
- let t = te.value.get(e.cameraId) ?? e.cameraId, n = /* @__PURE__ */ new Date(e.startUs / 1e3), r = /* @__PURE__ */ new Date(e.endUs / 1e3), i = n.getHours() === 0 && n.getMinutes() === 0 && e.endUs - e.startUs === 864e8, a = r.getHours() === 0 && r.getMinutes() === 0 ? "24:00" : V(r);
213
+ }), z = f(() => y.value.map((e) => {
214
+ let t = te.value.get(e.cameraId) ?? e.cameraId, n = /* @__PURE__ */ new Date(e.startUs / 1e3), r = /* @__PURE__ */ new Date(e.endUs / 1e3), i = n.getHours() === 0 && n.getMinutes() === 0 && e.endUs - e.startUs === 864e8, a = r.getHours() === 0 && r.getMinutes() === 0 ? "24:00" : ae(r);
216
215
  return {
217
216
  cameraId: e.cameraId,
218
217
  cameraName: t,
219
- name: `${H(t)}_${e.day}${P.value ? "_timelapse" : ""}.mp4`,
220
- span: i ? s("views.recordings.export.whole_day") : `${V(n)}–${a}`,
221
- bytes: P.value ? e.bytes / Ht : e.bytes
218
+ name: `${oe(t)}_${e.day}${P.value ? "_timelapse" : ""}.mp4`,
219
+ span: i ? s("views.recordings.export.whole_day") : `${ae(n)}–${a}`,
220
+ bytes: P.value ? e.bytes / Ut : e.bytes
222
221
  };
223
- })), ne = f(() => {
222
+ })), B = f(() => {
224
223
  let e = /* @__PURE__ */ new Map();
225
- for (let t of R.value) {
224
+ for (let t of z.value) {
226
225
  let n = e.get(t.cameraId);
227
226
  n || (n = {
228
227
  cameraId: t.cameraId,
@@ -232,29 +231,29 @@ var mt = s({
232
231
  }, e.set(t.cameraId, n)), n.files.push(t), n.bytes += t.bytes;
233
232
  }
234
233
  return [...e.values()];
235
- }), z = f(() => R.value.reduce((e, t) => e + t.bytes, 0)), re = f(() => w.value.length === 0 ? s("views.recordings.export.no_cameras") : I.value ? s("views.recordings.export.no_footage") : s("views.recordings.export.no_range"));
236
- function B(e) {
234
+ }), ne = f(() => z.value.reduce((e, t) => e + t.bytes, 0)), re = f(() => w.value.length === 0 ? s("views.recordings.export.no_cameras") : L.value ? s("views.recordings.export.no_footage") : s("views.recordings.export.no_range"));
235
+ function V(e) {
237
236
  return String(e).padStart(2, "0");
238
237
  }
239
- function ae(e) {
240
- return `${e.getFullYear()}-${B(e.getMonth() + 1)}-${B(e.getDate())}`;
238
+ function ie(e) {
239
+ return `${e.getFullYear()}-${V(e.getMonth() + 1)}-${V(e.getDate())}`;
241
240
  }
242
- function V(e) {
243
- return `${B(e.getHours())}:${B(e.getMinutes())}`;
241
+ function ae(e) {
242
+ return `${V(e.getHours())}:${V(e.getMinutes())}`;
244
243
  }
245
- function H(e) {
244
+ function oe(e) {
246
245
  return e.replace(/[^a-zA-Z0-9-_]/g, "_");
247
246
  }
248
- function U(e) {
247
+ function H(e) {
249
248
  if (e <= 0) return "0 MB";
250
249
  let t = e / 1e6;
251
250
  if (t < 1e3) return `${t < 10 ? t.toFixed(1) : Math.round(t)} MB`;
252
251
  let n = e / 1e9;
253
252
  return `${n.toFixed(+(n < 10))} GB`;
254
253
  }
255
- async function oe() {
254
+ async function se() {
256
255
  let e = _.value;
257
- if (!e?.nvrExportEstimate || w.value.length === 0 || L.value.length === 0) {
256
+ if (!e?.nvrExportEstimate || w.value.length === 0 || R.value.length === 0) {
258
257
  y.value = [], S.value = !1;
259
258
  return;
260
259
  }
@@ -262,7 +261,7 @@ var mt = s({
262
261
  try {
263
262
  let t = await e.nvrExportEstimate({
264
263
  cameras: w.value,
265
- slices: L.value,
264
+ slices: R.value,
266
265
  quality: T.value
267
266
  });
268
267
  y.value = t.files ?? [];
@@ -273,7 +272,7 @@ var mt = s({
273
272
  }
274
273
  }
275
274
  async function ce() {
276
- if (!I.value || w.value.length === 0 || L.value.length === 0) return null;
275
+ if (!L.value || w.value.length === 0 || R.value.length === 0) return null;
277
276
  let e = _.value;
278
277
  if (!e?.nvrExportBatch) return m.add({
279
278
  severity: "error",
@@ -282,29 +281,29 @@ var mt = s({
282
281
  }), null;
283
282
  let t = await e.nvrExportBatch({
284
283
  cameras: w.value,
285
- slices: L.value,
284
+ slices: R.value,
286
285
  quality: T.value,
287
286
  timelapseIntervalSec: P.value ? O.value : 0
288
287
  });
289
- await se({
288
+ await W({
290
289
  url: t.url,
291
290
  filename: t.filename
292
291
  });
293
292
  }
294
- return Ee([
293
+ return ke([
295
294
  w,
296
- L,
295
+ R,
297
296
  T
298
- ], oe, {
297
+ ], se, {
299
298
  debounce: 350,
300
299
  immediate: !0,
301
300
  deep: !0
302
301
  }), b(() => {
303
- h.disabled && (h.disabled.value = !I.value || w.value.length === 0 || !S.value && R.value.length === 0);
302
+ h.disabled && (h.disabled.value = !L.value || w.value.length === 0 || !S.value && z.value.length === 0);
304
303
  }), a({ onConfirm: ce }), (e, a) => {
305
- let o = Y, s = J, f = j, m = G, h = Le, _ = M, y = K, b = mt;
306
- return n(), g("div", ht, [
307
- x("div", gt, [x("label", _t, r(e.$t("views.recordings.export.cameras")), 1), D(o, {
304
+ let o = Y, s = J, f = j, m = de, h = Re, _ = M, y = we, b = ht;
305
+ return n(), g("div", gt, [
306
+ x("div", _t, [x("label", vt, r(e.$t("views.recordings.export.cameras")), 1), D(o, {
308
307
  modelValue: d(w),
309
308
  "onUpdate:modelValue": a[0] ||= (e) => u(w) ? w.value = e : null,
310
309
  options: i.cameras,
@@ -319,16 +318,16 @@ var mt = s({
319
318
  "options",
320
319
  "placeholder"
321
320
  ])]),
322
- x("div", Q, [
323
- x("label", vt, r(e.$t("views.recordings.export.range")), 1),
324
- x("div", $, [x("div", yt, [x("span", bt, r(e.$t("views.recordings.export.from")), 1), D(s, {
321
+ x("div", yt, [
322
+ x("label", Q, r(e.$t("views.recordings.export.range")), 1),
323
+ x("div", bt, [x("div", $, [x("span", xt, r(e.$t("views.recordings.export.from")), 1), D(s, {
325
324
  modelValue: d(k),
326
325
  "onUpdate:modelValue": a[1] ||= (e) => u(k) ? k.value = e : null,
327
326
  "show-time": "",
328
327
  "hour-format": "24",
329
328
  fluid: "",
330
329
  "max-date": d(A)
331
- }, null, 8, ["modelValue", "max-date"])]), x("div", xt, [x("span", St, r(e.$t("views.recordings.export.to")), 1), D(s, {
330
+ }, null, 8, ["modelValue", "max-date"])]), x("div", St, [x("span", Ct, r(e.$t("views.recordings.export.to")), 1), D(s, {
332
331
  modelValue: d(A),
333
332
  "onUpdate:modelValue": a[2] ||= (e) => u(A) ? A.value = e : null,
334
333
  "show-time": "",
@@ -336,7 +335,7 @@ var mt = s({
336
335
  fluid: "",
337
336
  "min-date": d(k)
338
337
  }, null, 8, ["modelValue", "min-date"])])]),
339
- d(I) ? (n(), c(f, {
338
+ d(L) ? (n(), c(f, {
340
339
  key: 1,
341
340
  severity: "secondary",
342
341
  variant: "simple",
@@ -356,7 +355,7 @@ var mt = s({
356
355
  _: 1
357
356
  }))
358
357
  ]),
359
- x("div", Ct, [x("div", wt, [x("label", Tt, r(e.$t("views.recordings.export.quality")), 1), D(m, {
358
+ x("div", wt, [x("div", Tt, [x("label", Et, r(e.$t("views.recordings.export.quality")), 1), D(m, {
360
359
  modelValue: d(T),
361
360
  "onUpdate:modelValue": a[3] ||= (e) => u(T) ? T.value = e : null,
362
361
  options: d(N),
@@ -367,7 +366,7 @@ var mt = s({
367
366
  root: { class: "flex w-full" },
368
367
  pcToggleButton: { root: { class: "flex-1" } }
369
368
  }
370
- }, null, 8, ["modelValue", "options"])]), x("div", Et, [x("label", Dt, r(e.$t("views.recordings.export.timelapse")), 1), D(h, {
369
+ }, null, 8, ["modelValue", "options"])]), x("div", Dt, [x("label", Ot, r(e.$t("views.recordings.export.timelapse")), 1), D(h, {
371
370
  modelValue: d(O),
372
371
  "onUpdate:modelValue": a[4] ||= (e) => u(O) ? O.value = e : null,
373
372
  options: d(ee),
@@ -375,43 +374,43 @@ var mt = s({
375
374
  "option-value": "value",
376
375
  class: "w-full"
377
376
  }, null, 8, ["modelValue", "options"])])]),
378
- x("div", Ot, [x("div", kt, [x("label", At, r(e.$t("views.recordings.export.result")), 1), d(R).length ? (n(), g("div", jt, [
379
- x("span", Mt, r(d(R).length) + " " + r(d(R).length === 1 ? e.$t("views.recordings.export.file") : e.$t("views.recordings.export.files")), 1),
377
+ x("div", kt, [x("div", At, [x("label", jt, r(e.$t("views.recordings.export.result")), 1), d(z).length ? (n(), g("div", Mt, [
378
+ x("span", Nt, r(d(z).length) + " " + r(d(z).length === 1 ? e.$t("views.recordings.export.file") : e.$t("views.recordings.export.files")), 1),
380
379
  a[5] ||= x("span", { class: "text-muted" }, "·", -1),
381
- x("span", Nt, r(d(F)) + r(U(d(z))), 1),
380
+ x("span", Pt, r(d(I)) + r(H(d(ne))), 1),
382
381
  D(_, {
383
- value: d(R).length === 1 ? "MP4" : "ZIP",
382
+ value: d(z).length === 1 ? "MP4" : "ZIP",
384
383
  severity: "info"
385
384
  }, null, 8, ["value"])
386
- ])) : l("", !0)]), x("div", Pt, [x("div", Ft, [d(S) && !d(R).length ? (n(), g("div", It, [D(y, {
385
+ ])) : l("", !0)]), x("div", Ft, [x("div", It, [d(S) && !d(z).length ? (n(), g("div", Lt, [D(y, {
387
386
  style: {
388
387
  width: "1rem",
389
388
  height: "1rem"
390
389
  },
391
390
  "stroke-width": "4",
392
391
  class: "m-0"
393
- }), x("span", null, r(e.$t("views.recordings.export.estimating")), 1)])) : d(R).length ? (n(!0), g(v, { key: 2 }, t(d(ne), (e) => (n(), g("div", {
392
+ }), x("span", null, r(e.$t("views.recordings.export.estimating")), 1)])) : d(z).length ? (n(!0), g(v, { key: 2 }, t(d(B), (e) => (n(), g("div", {
394
393
  key: e.cameraId,
395
394
  class: "flex flex-col gap-1"
396
- }, [x("span", Rt, r(e.cameraName) + " · " + r(e.files.length) + " · " + r(d(F)) + r(U(e.bytes)), 1), (n(!0), g(v, null, t(e.files, (e) => (n(), g("div", {
395
+ }, [x("span", zt, r(e.cameraName) + " · " + r(e.files.length) + " · " + r(d(I)) + r(H(e.bytes)), 1), (n(!0), g(v, null, t(e.files, (e) => (n(), g("div", {
397
396
  key: e.name,
398
397
  class: "flex items-center gap-3 card-inner-background border border-color rounded-lg px-3 py-2"
399
398
  }, [
400
399
  D(b, { class: "w-4 h-4 text-muted shrink-0" }),
401
- x("span", zt, r(e.name), 1),
402
- x("span", Bt, r(e.span), 1),
403
- x("span", Vt, r(d(F)) + r(U(e.bytes)), 1)
404
- ]))), 128))]))), 128)) : (n(), g("div", Lt, r(d(re)), 1))])])])
400
+ x("span", Bt, r(e.name), 1),
401
+ x("span", Vt, r(e.span), 1),
402
+ x("span", Ht, r(d(I)) + r(H(e.bytes)), 1)
403
+ ]))), 128))]))), 128)) : (n(), g("div", Rt, r(d(re)), 1))])])])
405
404
  ]);
406
405
  };
407
406
  }
408
- }), Wt = {
407
+ }), Gt = {
409
408
  viewBox: "0 0 24 24",
410
409
  width: "1.2em",
411
410
  height: "1.2em"
412
411
  };
413
- function Gt(e, t) {
414
- return n(), g("svg", Wt, [...t[0] ||= [x("path", {
412
+ function Kt(e, t) {
413
+ return n(), g("svg", Gt, [...t[0] ||= [x("path", {
415
414
  fill: "none",
416
415
  stroke: "currentColor",
417
416
  "stroke-linecap": "round",
@@ -420,16 +419,16 @@ function Gt(e, t) {
420
419
  d: "m6 9l6 6l6-6"
421
420
  }, null, -1)]]);
422
421
  }
423
- var Kt = s({
422
+ var qt = s({
424
423
  name: "tabler-chevron-down",
425
- render: Gt
426
- }), qt = {
424
+ render: Kt
425
+ }), Jt = {
427
426
  viewBox: "0 0 24 24",
428
427
  width: "1.2em",
429
428
  height: "1.2em"
430
429
  };
431
- function Jt(e, t) {
432
- return n(), g("svg", qt, [...t[0] ||= [x("path", {
430
+ function Yt(e, t) {
431
+ return n(), g("svg", Jt, [...t[0] ||= [x("path", {
433
432
  fill: "none",
434
433
  stroke: "currentColor",
435
434
  "stroke-linecap": "round",
@@ -438,40 +437,40 @@ function Jt(e, t) {
438
437
  d: "m6 15l6-6l6 6"
439
438
  }, null, -1)]]);
440
439
  }
441
- var Yt = s({
440
+ var Xt = s({
442
441
  name: "tabler-chevron-up",
443
- render: Jt
444
- }), Xt = { class: "flex flex-col gap-2" }, Zt = { class: "sidebar-section-title" }, Qt = {
442
+ render: Yt
443
+ }), Zt = { class: "flex flex-col gap-2" }, Qt = { class: "sidebar-section-title" }, $t = {
445
444
  key: 0,
446
445
  class: "text-xs text-muted"
447
- }, $t = { class: "flex flex-col gap-2" }, en = { class: "sidebar-section-title" }, tn = { class: "p-input-icon-left w-full" }, nn = { class: "text-xs text-muted" }, rn = { class: "flex flex-col gap-2" }, an = { class: "sidebar-section-title flex items-center gap-1.5" }, on = {
446
+ }, en = { class: "flex flex-col gap-2" }, tn = { class: "sidebar-section-title" }, nn = { class: "p-input-icon-left w-full" }, rn = { class: "text-xs text-muted" }, an = { class: "flex flex-col gap-2" }, on = { class: "sidebar-section-title flex items-center gap-1.5" }, sn = {
448
447
  key: 0,
449
448
  class: "inline-flex items-center gap-1 text-xs text-muted"
450
- }, sn = {
449
+ }, cn = {
451
450
  key: 1,
452
451
  class: "flex flex-col gap-1.5 mt-1"
453
- }, cn = { class: "text-xs text-muted" }, ln = { class: "flex items-center gap-3" }, un = { class: "text-xs font-mono w-8 text-right shrink-0" }, dn = {
452
+ }, ln = { class: "text-xs text-muted" }, un = { class: "flex items-center gap-3" }, dn = { class: "text-xs font-mono w-8 text-right shrink-0" }, fn = {
454
453
  key: 1,
455
454
  class: "flex flex-col gap-2"
456
- }, fn = { class: "sidebar-section-title" }, pn = { class: "flex flex-col gap-2" }, mn = { class: "sidebar-section-title" }, hn = { class: "flex flex-col gap-2" }, gn = { class: "sidebar-section-title" }, _n = { class: "relative rounded-md overflow-hidden" }, vn = {
455
+ }, pn = { class: "sidebar-section-title" }, mn = { class: "flex flex-col gap-2" }, hn = { class: "sidebar-section-title" }, gn = { class: "flex flex-col gap-2" }, _n = { class: "sidebar-section-title" }, vn = { class: "relative rounded-md overflow-hidden" }, yn = {
457
456
  key: 3,
458
457
  class: "sidebar-divider"
459
- }, yn = {
458
+ }, bn = {
460
459
  key: 4,
461
460
  class: "flex flex-col gap-2"
462
- }, bn = { class: "sidebar-section-title" }, xn = { class: "flex items-center gap-3" }, Sn = { class: "text-xs font-mono w-8 text-right shrink-0" }, Cn = { class: "flex flex-col gap-2" }, wn = { class: "sidebar-section-title" }, Tn = { class: "flex flex-wrap gap-1" }, En = { class: "flex flex-col gap-2" }, Dn = {
461
+ }, xn = { class: "sidebar-section-title" }, Sn = { class: "flex items-center gap-3" }, Cn = { class: "text-xs font-mono w-8 text-right shrink-0" }, wn = { class: "flex flex-col gap-2" }, Tn = { class: "sidebar-section-title" }, En = { class: "flex flex-wrap gap-1" }, Dn = { class: "flex flex-col gap-2" }, On = {
463
462
  key: 0,
464
463
  class: "flex flex-col gap-2"
465
- }, On = { class: "flex items-center gap-2 cursor-pointer text-sm" }, kn = {
464
+ }, kn = { class: "flex items-center gap-2 cursor-pointer text-sm" }, An = {
466
465
  key: 0,
467
466
  class: "flex flex-col gap-2 ml-6"
468
- }, An = { class: "filter-logic-divider" }, jn = { class: "flex flex-col gap-2" }, Mn = {
467
+ }, jn = { class: "filter-logic-divider" }, Mn = { class: "flex flex-col gap-2" }, Nn = {
469
468
  key: 0,
470
469
  class: "flex flex-col gap-2"
471
- }, Nn = { class: "filter-logic-divider" }, Pn = { class: "flex flex-col gap-2" }, Fn = {
470
+ }, Pn = { class: "filter-logic-divider" }, Fn = { class: "flex flex-col gap-2" }, In = {
472
471
  key: 0,
473
472
  class: "flex flex-col gap-2"
474
- }, In = { class: "flex items-center gap-2 cursor-pointer text-sm" }, Ln = 288, Rn = /*#__PURE__*/ P(/* @__PURE__ */ T({
473
+ }, Ln = { class: "flex items-center gap-2 cursor-pointer text-sm" }, Rn = 288, zn = /*#__PURE__*/ I(/* @__PURE__ */ T({
475
474
  __name: "RecordingsFilterSidebar",
476
475
  props: {
477
476
  filters: {},
@@ -489,11 +488,11 @@ var Yt = s({
489
488
  "close"
490
489
  ],
491
490
  setup(e, { expose: i, emit: a }) {
492
- let s = /* @__PURE__ */ new Set(["motion", "audio"]), p = e, m = a, { t: b } = ke(), { xlBreakpoint: S } = fe(), { topbarOffset: w, bottombarHeight: T } = ne(), { icons: k, generic: A } = H(), j = k, M = Yt, N = Kt, ee = y("sidebarRef"), P = E(p.filters.semanticQuery ?? ""), F = O({
491
+ let s = /* @__PURE__ */ new Set(["motion", "audio"]), p = e, m = a, { t: b } = Me(), { xlBreakpoint: S } = V(), { topbarOffset: w, bottombarHeight: T } = ie(), { icons: k, generic: A } = U(), j = k, M = Xt, N = qt, ee = y("sidebarRef"), P = E(p.filters.semanticQuery ?? ""), F = O({
493
492
  eventTypes: !0,
494
493
  attributes: !0,
495
494
  sensorEvents: !0
496
- }), te = f(() => p.isOpen ? Ln : 0), I = f(() => {
495
+ }), I = f(() => p.isOpen ? Rn : 0), te = f(() => {
497
496
  let e = [...new Set(p.cameras.map((e) => e.room).filter((e) => !!e))];
498
497
  return e.sort((e, t) => e.localeCompare(t)), e.map((e) => ({
499
498
  id: e,
@@ -505,9 +504,9 @@ var Yt = s({
505
504
  id: e.id,
506
505
  name: e.name
507
506
  }));
508
- }), R = f(() => {
507
+ }), z = f(() => {
509
508
  if (p.filters.cameraIds.length === 1) return p.cameras.find((e) => e.id === p.filters.cameraIds[0])?.name;
510
- }), z = f(() => p.filters.contentKind === "episodes"), re = f(() => [
509
+ }), B = f(() => p.filters.contentKind === "episodes"), ne = f(() => [
511
510
  {
512
511
  label: b("views.recordings.content_kind_all"),
513
512
  value: "all"
@@ -520,13 +519,13 @@ var Yt = s({
520
519
  label: b("views.recordings.content_kind_episodes"),
521
520
  value: "episodes"
522
521
  }
523
- ]), B = f(() => [{
522
+ ]), re = f(() => [{
524
523
  label: b("views.recordings.filter_and"),
525
524
  value: "and"
526
525
  }, {
527
526
  label: b("views.recordings.filter_or"),
528
527
  value: "or"
529
- }]), ie = f(() => [
528
+ }]), ae = f(() => [
530
529
  {
531
530
  label: b("views.recordings.time_1h"),
532
531
  value: "1h"
@@ -543,24 +542,24 @@ var Yt = s({
543
542
  label: b("views.recordings.time_1m"),
544
543
  value: "1m"
545
544
  }
546
- ]), ae = f(() => Me.filter((e) => !s.has(e)).map((e) => ({
545
+ ]), oe = f(() => K.filter((e) => !s.has(e)).map((e) => ({
547
546
  label: b(`views.recordings.type_${e}`),
548
547
  value: e,
549
548
  icon: k[e] ?? A
550
- }))), V = f(() => ({
549
+ }))), H = f(() => ({
551
550
  label: b("views.recordings.type_other"),
552
- value: me,
551
+ value: be,
553
552
  icon: k.other ?? A
554
- })), se = f(() => Qe.map((e) => ({
555
- label: b(Be(e)),
553
+ })), se = f(() => $e.map((e) => ({
554
+ label: b(Ve(e)),
556
555
  value: e,
557
556
  icon: j[e] ?? A
558
- }))), ce = f(() => je.map((e) => ({
559
- label: b(Ve(e)),
557
+ }))), ce = f(() => G.map((e) => ({
558
+ label: b(He(e)),
560
559
  value: e,
561
560
  icon: k[e] ?? A
562
- }))), le = f(() => Ne.map((e) => ({
563
- label: b(He(e)),
561
+ }))), le = f(() => Pe.map((e) => ({
562
+ label: b(Ue(e)),
564
563
  value: e,
565
564
  icon: k[e] ?? A
566
565
  })));
@@ -570,10 +569,10 @@ var Yt = s({
570
569
  [e]: t
571
570
  });
572
571
  }
573
- let ue = we((e) => {
572
+ let fe = De((e) => {
574
573
  W("search", e);
575
574
  }, 300);
576
- function de(e) {
575
+ function pe(e) {
577
576
  let t = new Set(p.cameras.filter((t) => e.length === 0 || e.includes(t.room ?? "")).map((e) => e.id));
578
577
  m("update:filters", {
579
578
  ...p.filters,
@@ -581,7 +580,7 @@ var Yt = s({
581
580
  cameraIds: p.filters.cameraIds.filter((e) => t.has(e))
582
581
  });
583
582
  }
584
- function pe() {
583
+ function me() {
585
584
  let e = P.value.trim();
586
585
  W("semanticQuery", e), m("semantic-search", e);
587
586
  }
@@ -597,61 +596,61 @@ var Yt = s({
597
596
  let t = [...p.filters.sensorEvents], n = t.indexOf(e);
598
597
  n >= 0 ? t.splice(n, 1) : t.push(e), W("sensorEvents", t);
599
598
  }
600
- function ye(e) {
599
+ function ve(e) {
601
600
  let t = [...p.filters.hasAttributes], n = t.indexOf(e);
602
601
  n >= 0 ? t.splice(n, 1) : t.push(e), W("hasAttributes", t);
603
602
  }
604
- function K(e) {
603
+ function ye(e) {
605
604
  F[e] = !F[e];
606
605
  }
607
606
  return h(P, (e) => {
608
607
  !e?.trim() && p.filters.semanticQuery && W("semanticQuery", "");
609
- }), Oe(ee, (e) => {
608
+ }), je(ee, (e) => {
610
609
  let t = e.target;
611
610
  t.closest("#recordings-sidebar-toggle") || t.closest("[data-pc-section=\"overlay\"], [data-pc-section=\"panel\"], .p-connected-overlay") || p.isOpen && (p.isOverlay || !S.value) && m("close");
612
- }), i({ sidebarWidth: te }), (i, a) => {
613
- let s = G, f = q, p = ve, m = ze, h = Pe, y = U, b = Y, S = xe, E = oe, O = Fe;
611
+ }), i({ sidebarWidth: I }), (i, a) => {
612
+ let s = de, f = q, p = R, m = Be, h = Fe, y = xe, b = Y, S = Te, E = ue, O = Ie;
614
613
  return n(), g("nav", {
615
614
  ref_key: "sidebarRef",
616
615
  ref: ee,
617
616
  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",
618
617
  style: _({
619
- width: `${d(te)}px`,
618
+ width: `${d(I)}px`,
620
619
  borderRightWidth: e.isOpen ? "1px" : "0px",
621
620
  paddingBottom: `calc(var(--safe-area-inset-top) + var(--safe-area-inset-bottom) + ${d(T)}px + ${d(w)}px)`
622
621
  })
623
622
  }, [x("div", {
624
623
  class: "flex flex-col gap-4 p-4",
625
- style: _({ width: `${Ln}px` })
624
+ style: _({ width: `${Rn}px` })
626
625
  }, [
627
- x("div", Xt, [
628
- x("label", Zt, r(i.$t("views.recordings.content_kind")), 1),
626
+ x("div", Zt, [
627
+ x("label", Qt, r(i.$t("views.recordings.content_kind")), 1),
629
628
  D(s, {
630
629
  "model-value": e.filters.contentKind,
631
- options: d(re),
630
+ options: d(ne),
632
631
  "option-label": "label",
633
632
  "option-value": "value",
634
633
  "allow-empty": !1,
635
634
  class: "content-kind-toggle",
636
635
  "onUpdate:modelValue": a[0] ||= (e) => W("contentKind", e)
637
636
  }, null, 8, ["model-value", "options"]),
638
- d(z) ? (n(), g("span", Qt, r(i.$t("views.recordings.content_kind_episodes_hint")), 1)) : l("", !0)
637
+ d(B) ? (n(), g("span", $t, r(i.$t("views.recordings.content_kind_episodes_hint")), 1)) : l("", !0)
639
638
  ]),
640
639
  a[23] ||= x("div", { class: "sidebar-divider" }, null, -1),
641
- d(z) ? l("", !0) : (n(), g(v, { key: 0 }, [
642
- x("div", $t, [
643
- x("label", en, r(i.$t("views.recordings.search")), 1),
644
- x("span", tn, [D(f, {
640
+ d(B) ? l("", !0) : (n(), g(v, { key: 0 }, [
641
+ x("div", en, [
642
+ x("label", tn, r(i.$t("views.recordings.search")), 1),
643
+ x("span", nn, [D(f, {
645
644
  "model-value": e.filters.search,
646
645
  placeholder: i.$t("views.recordings.search_placeholder"),
647
646
  class: "w-full text-sm",
648
- "onUpdate:modelValue": a[1] ||= (e) => d(ue)(e)
647
+ "onUpdate:modelValue": a[1] ||= (e) => d(fe)(e)
649
648
  }, null, 8, ["model-value", "placeholder"])]),
650
- x("span", nn, r(i.$t("views.recordings.result_count", { count: e.resultCount })), 1)
649
+ x("span", rn, r(i.$t("views.recordings.result_count", { count: e.resultCount })), 1)
651
650
  ]),
652
651
  a[15] ||= x("div", { class: "sidebar-divider" }, null, -1),
653
- x("div", rn, [
654
- x("label", an, [D(p, { class: "w-3.5 h-3.5" }), C(" " + r(i.$t("views.recordings.semantic_search")), 1)]),
652
+ x("div", an, [
653
+ x("label", on, [D(p, { class: "w-3.5 h-3.5" }), C(" " + r(i.$t("views.recordings.semantic_search")), 1)]),
655
654
  D(m, {
656
655
  modelValue: d(P),
657
656
  "onUpdate:modelValue": a[2] ||= (e) => u(P) ? P.value = e : null,
@@ -672,27 +671,27 @@ var Yt = s({
672
671
  class: "w-full text-xs",
673
672
  loading: e.semanticSearchLoading,
674
673
  disabled: !e.semanticSearchAvailable || !d(P)?.trim(),
675
- onClick: pe
674
+ onClick: me
676
675
  }, null, 8, [
677
676
  "label",
678
677
  "loading",
679
678
  "disabled"
680
679
  ]),
681
- e.semanticCount == null ? l("", !0) : (n(), g("span", on, [D(p, { class: "w-3 h-3" }), C(" " + r(i.$t("views.recordings.semantic_results", { count: e.semanticCount })), 1)])),
682
- e.filters.semanticQuery ? (n(), g("div", sn, [x("label", cn, r(i.$t("views.recordings.min_match_score")), 1), x("div", ln, [D(y, {
680
+ e.semanticCount == null ? l("", !0) : (n(), g("span", sn, [D(p, { class: "w-3 h-3" }), C(" " + r(i.$t("views.recordings.semantic_results", { count: e.semanticCount })), 1)])),
681
+ e.filters.semanticQuery ? (n(), g("div", cn, [x("label", ln, r(i.$t("views.recordings.min_match_score")), 1), x("div", un, [D(y, {
683
682
  "model-value": e.filters.minSemanticScore,
684
683
  min: 0,
685
684
  max: 1,
686
685
  step: .05,
687
686
  class: "flex-1",
688
687
  "onUpdate:modelValue": a[3] ||= (e) => W("minSemanticScore", e)
689
- }, null, 8, ["model-value"]), x("span", un, r(Math.round(e.filters.minSemanticScore * 100)) + "%", 1)])])) : l("", !0)
688
+ }, null, 8, ["model-value"]), x("span", dn, r(Math.round(e.filters.minSemanticScore * 100)) + "%", 1)])])) : l("", !0)
690
689
  ]),
691
690
  a[16] ||= x("div", { class: "sidebar-divider" }, null, -1)
692
691
  ], 64)),
693
- d(I).length > 1 ? (n(), g("div", dn, [x("label", fn, r(i.$t("views.recordings.rooms")), 1), D(b, {
692
+ d(te).length > 1 ? (n(), g("div", fn, [x("label", pn, r(i.$t("views.recordings.rooms")), 1), D(b, {
694
693
  "model-value": e.filters.rooms,
695
- options: d(I),
694
+ options: d(te),
696
695
  "option-label": "name",
697
696
  "option-value": "id",
698
697
  placeholder: i.$t("views.recordings.all_rooms"),
@@ -700,13 +699,13 @@ var Yt = s({
700
699
  "max-selected-labels": 2,
701
700
  "show-toggle-all": !1,
702
701
  pt: { overlay: { style: "position: fixed" } },
703
- "onUpdate:modelValue": a[4] ||= (e) => de(e)
702
+ "onUpdate:modelValue": a[4] ||= (e) => pe(e)
704
703
  }, null, 8, [
705
704
  "model-value",
706
705
  "options",
707
706
  "placeholder"
708
707
  ])])) : l("", !0),
709
- x("div", pn, [x("label", mn, r(i.$t("views.recordings.cameras")), 1), D(b, {
708
+ x("div", mn, [x("label", hn, r(i.$t("views.recordings.cameras")), 1), D(b, {
710
709
  "model-value": e.filters.cameraIds,
711
710
  options: d(L),
712
711
  "option-label": "name",
@@ -722,10 +721,10 @@ var Yt = s({
722
721
  "options",
723
722
  "placeholder"
724
723
  ])]),
725
- d(R) && !d(z) ? (n(), g(v, { key: 2 }, [a[17] ||= x("div", { class: "sidebar-divider" }, null, -1), x("div", hn, [
726
- x("label", gn, r(i.$t("views.recordings.grid_search")), 1),
727
- x("div", _n, [D(S, {
728
- camera: d(R),
724
+ d(z) && !d(B) ? (n(), g(v, { key: 2 }, [a[17] ||= x("div", { class: "sidebar-divider" }, null, -1), x("div", gn, [
725
+ x("label", _n, r(i.$t("views.recordings.grid_search")), 1),
726
+ x("div", vn, [D(S, {
727
+ camera: d(z),
729
728
  "object-fit": "cover"
730
729
  }, null, 8, ["camera"]), D(E, {
731
730
  "model-value": e.filters.gridRegions,
@@ -741,17 +740,17 @@ var Yt = s({
741
740
  onClick: a[7] ||= (e) => W("gridRegions", [])
742
741
  }, null, 8, ["label", "disabled"])
743
742
  ])], 64)) : l("", !0),
744
- d(z) ? l("", !0) : (n(), g("div", vn)),
745
- d(z) ? l("", !0) : (n(), g("div", yn, [x("label", bn, r(i.$t("views.recordings.confidence")), 1), x("div", xn, [D(y, {
743
+ d(B) ? l("", !0) : (n(), g("div", yn)),
744
+ d(B) ? l("", !0) : (n(), g("div", bn, [x("label", xn, r(i.$t("views.recordings.confidence")), 1), x("div", Sn, [D(y, {
746
745
  "model-value": e.filters.minConfidence,
747
746
  min: 0,
748
747
  max: 1,
749
748
  step: .05,
750
749
  class: "flex-1",
751
750
  "onUpdate:modelValue": a[8] ||= (e) => W("minConfidence", e)
752
- }, null, 8, ["model-value"]), x("span", Sn, r(Math.round(e.filters.minConfidence * 100)) + "%", 1)])])),
751
+ }, null, 8, ["model-value"]), x("span", Cn, r(Math.round(e.filters.minConfidence * 100)) + "%", 1)])])),
753
752
  a[24] ||= x("div", { class: "sidebar-divider" }, null, -1),
754
- x("div", Cn, [x("label", wn, r(i.$t("views.recordings.time_range")), 1), x("div", Tn, [(n(!0), g(v, null, t(d(ie), (t) => (n(), c(h, {
753
+ x("div", wn, [x("label", Tn, r(i.$t("views.recordings.time_range")), 1), x("div", En, [(n(!0), g(v, null, t(d(ae), (t) => (n(), c(h, {
755
754
  key: t.value,
756
755
  label: t.label,
757
756
  severity: e.filters.timeRange === t.value ? void 0 : "secondary",
@@ -765,12 +764,12 @@ var Yt = s({
765
764
  "outlined",
766
765
  "onClick"
767
766
  ]))), 128))])]),
768
- d(z) ? l("", !0) : (n(), g(v, { key: 5 }, [
767
+ d(B) ? l("", !0) : (n(), g(v, { key: 5 }, [
769
768
  a[22] ||= x("div", { class: "sidebar-divider" }, null, -1),
770
- x("div", En, [x("button", {
769
+ x("div", Dn, [x("button", {
771
770
  class: "sidebar-section-title flex items-center justify-between w-full cursor-pointer",
772
- onClick: a[9] ||= (e) => K("sensorEvents")
773
- }, [x("span", null, r(i.$t("views.recordings.sensor_events")), 1), (n(), c(o(d(F).sensorEvents ? d(M) : d(N)), { class: "w-4 h-4 text-muted" }))]), d(F).sensorEvents ? (n(), g("div", Dn, [(n(!0), g(v, null, t(d(se), (i) => (n(), g(v, { key: i.value }, [x("label", On, [
771
+ onClick: a[9] ||= (e) => ye("sensorEvents")
772
+ }, [x("span", null, r(i.$t("views.recordings.sensor_events")), 1), (n(), c(o(d(F).sensorEvents ? d(M) : d(N)), { class: "w-4 h-4 text-muted" }))]), d(F).sensorEvents ? (n(), g("div", On, [(n(!0), g(v, null, t(d(se), (i) => (n(), g(v, { key: i.value }, [x("label", kn, [
774
773
  D(O, {
775
774
  "model-value": e.filters.sensorEvents.includes(i.value),
776
775
  binary: !0,
@@ -778,7 +777,7 @@ var Yt = s({
778
777
  }, null, 8, ["model-value", "onUpdate:modelValue"]),
779
778
  (n(), c(o(i.icon), { class: "w-4 h-4 text-muted" })),
780
779
  x("span", null, r(i.label), 1)
781
- ]), i.value === "audio" && e.filters.sensorEvents.includes("audio") ? (n(), g("div", kn, [(n(!0), g(v, null, t(d(ce), (t) => (n(), g("label", {
780
+ ]), i.value === "audio" && e.filters.sensorEvents.includes("audio") ? (n(), g("div", An, [(n(!0), g(v, null, t(d(ce), (t) => (n(), g("label", {
782
781
  key: t.value,
783
782
  class: "flex items-center gap-2 cursor-pointer text-sm"
784
783
  }, [
@@ -790,11 +789,11 @@ var Yt = s({
790
789
  (n(), c(o(t.icon), { class: "w-4 h-4 text-muted" })),
791
790
  x("span", null, r(t.label), 1)
792
791
  ]))), 128))])) : l("", !0)], 64))), 128))])) : l("", !0)]),
793
- x("div", An, [
792
+ x("div", jn, [
794
793
  a[18] ||= x("div", { class: "filter-logic-line" }, null, -1),
795
794
  D(s, {
796
795
  "model-value": e.filters.filterLogicTriggers,
797
- options: d(B),
796
+ options: d(re),
798
797
  "option-label": "label",
799
798
  "option-value": "value",
800
799
  "allow-empty": !1,
@@ -803,10 +802,10 @@ var Yt = s({
803
802
  }, null, 8, ["model-value", "options"]),
804
803
  a[19] ||= x("div", { class: "filter-logic-line" }, null, -1)
805
804
  ]),
806
- x("div", jn, [x("button", {
805
+ x("div", Mn, [x("button", {
807
806
  class: "sidebar-section-title flex items-center justify-between w-full cursor-pointer",
808
- onClick: a[11] ||= (e) => K("eventTypes")
809
- }, [x("span", null, r(i.$t("views.recordings.event_type")), 1), (n(), c(o(d(F).eventTypes ? d(M) : d(N)), { class: "w-4 h-4 text-muted" }))]), d(F).eventTypes ? (n(), g("div", Mn, [(n(!0), g(v, null, t(d(ae), (t) => (n(), g("label", {
807
+ onClick: a[11] ||= (e) => ye("eventTypes")
808
+ }, [x("span", null, r(i.$t("views.recordings.event_type")), 1), (n(), c(o(d(F).eventTypes ? d(M) : d(N)), { class: "w-4 h-4 text-muted" }))]), d(F).eventTypes ? (n(), g("div", Nn, [(n(!0), g(v, null, t(d(oe), (t) => (n(), g("label", {
810
809
  key: t.value,
811
810
  class: "flex items-center gap-2 cursor-pointer text-sm"
812
811
  }, [
@@ -818,11 +817,11 @@ var Yt = s({
818
817
  (n(), c(o(t.icon), { class: "w-4 h-4 text-muted" })),
819
818
  x("span", null, r(t.label), 1)
820
819
  ]))), 128))])) : l("", !0)]),
821
- x("div", Nn, [
820
+ x("div", Pn, [
822
821
  a[20] ||= x("div", { class: "filter-logic-line" }, null, -1),
823
822
  D(s, {
824
823
  "model-value": e.filters.filterLogicAttributes,
825
- options: d(B),
824
+ options: d(re),
826
825
  "option-label": "label",
827
826
  "option-value": "value",
828
827
  "allow-empty": !1,
@@ -831,62 +830,62 @@ var Yt = s({
831
830
  }, null, 8, ["model-value", "options"]),
832
831
  a[21] ||= x("div", { class: "filter-logic-line" }, null, -1)
833
832
  ]),
834
- x("div", Pn, [x("button", {
833
+ x("div", Fn, [x("button", {
835
834
  class: "sidebar-section-title flex items-center justify-between w-full cursor-pointer",
836
- onClick: a[13] ||= (e) => K("attributes")
837
- }, [x("span", null, r(i.$t("views.recordings.attributes")), 1), (n(), c(o(d(F).attributes ? d(M) : d(N)), { class: "w-4 h-4 text-muted" }))]), d(F).attributes ? (n(), g("div", Fn, [(n(!0), g(v, null, t(d(le), (t) => (n(), g("label", {
835
+ onClick: a[13] ||= (e) => ye("attributes")
836
+ }, [x("span", null, r(i.$t("views.recordings.attributes")), 1), (n(), c(o(d(F).attributes ? d(M) : d(N)), { class: "w-4 h-4 text-muted" }))]), d(F).attributes ? (n(), g("div", In, [(n(!0), g(v, null, t(d(le), (t) => (n(), g("label", {
838
837
  key: t.value,
839
838
  class: "flex items-center gap-2 cursor-pointer text-sm"
840
839
  }, [
841
840
  D(O, {
842
841
  "model-value": e.filters.hasAttributes.includes(t.value),
843
842
  binary: !0,
844
- "onUpdate:modelValue": (e) => ye(t.value)
843
+ "onUpdate:modelValue": (e) => ve(t.value)
845
844
  }, null, 8, ["model-value", "onUpdate:modelValue"]),
846
845
  (n(), c(o(t.icon), { class: "w-4 h-4 text-muted" })),
847
846
  x("span", null, r(t.label), 1)
848
- ]))), 128)), x("label", In, [
847
+ ]))), 128)), x("label", Ln, [
849
848
  D(O, {
850
- "model-value": e.filters.eventTypes.includes(d(V).value),
849
+ "model-value": e.filters.eventTypes.includes(d(H).value),
851
850
  binary: !0,
852
- "onUpdate:modelValue": a[14] ||= (e) => he(d(V).value)
851
+ "onUpdate:modelValue": a[14] ||= (e) => he(d(H).value)
853
852
  }, null, 8, ["model-value"]),
854
- (n(), c(o(d(V).icon), { class: "w-4 h-4 text-muted" })),
855
- x("span", null, r(d(V).label), 1)
853
+ (n(), c(o(d(H).icon), { class: "w-4 h-4 text-muted" })),
854
+ x("span", null, r(d(H).label), 1)
856
855
  ])])) : l("", !0)])
857
856
  ], 64))
858
857
  ], 4)], 4);
859
858
  };
860
859
  }
861
- }), [["__scopeId", "data-v-77b6c215"]]), zn = { class: "font-semibold text-xl truncate" }, Bn = { class: "w-full h-full relative" }, Vn = {
860
+ }), [["__scopeId", "data-v-77b6c215"]]), Bn = { class: "font-semibold text-xl truncate" }, Vn = { class: "w-full h-full relative" }, Hn = {
862
861
  key: 0,
863
862
  class: "w-full flex flex-row h-[calc(40px+1rem)] py-2 items-center fixed z-10"
864
- }, Hn = { class: "relative z-2 page-title !m-0" }, Un = {
863
+ }, Un = { class: "relative z-2 page-title !m-0" }, Wn = {
865
864
  key: 1,
866
865
  class: "fixed right-0 z-10 h-[calc(40px+1rem)] py-2 pr-2 flex items-center"
867
- }, Wn = {
866
+ }, Gn = {
868
867
  key: 1,
869
868
  class: "flex justify-center py-4"
870
- }, Gn = {
869
+ }, Kn = {
871
870
  key: 2,
872
871
  class: "flex flex-1 min-h-0 flex-col items-center justify-center w-full gap-4"
873
- }, Kn = { class: "text-muted text-sm" }, qn = 288, Jn = /* @__PURE__ */ T({
872
+ }, qn = { class: "text-muted text-sm" }, Jn = 288, Yn = /* @__PURE__ */ T({
874
873
  __name: "Recordings",
875
874
  setup(e) {
876
- let t = new re(), o = new be(), s = ye(), u = W(), { bottombarHeight: b } = ne(), { status: C, checking: T } = z(), { openEventTrace: O } = _e(), j = ge("@camera.ui/camera-ui-nvr"), M = ie(), { t: P } = ke(), { smBreakpoint: H, xlBreakpoint: U, mdBreakpoint: oe } = fe(), { registerScrollToTop: se } = L();
875
+ let t = new ae(), o = new le(), s = Ce(), u = me(), { bottombarHeight: b } = ie(), { status: C, checking: T } = he(), { openEventTrace: O } = Se(), j = se("@camera.ui/camera-ui-nvr"), M = F(), { t: I } = Me(), { smBreakpoint: U, xlBreakpoint: ue, mdBreakpoint: W } = V(), { registerScrollToTop: de } = ne();
877
876
  if (typeof VideoDecoder < "u") {
878
- let e = ue({ cacheSize: 20 });
879
- i(Ce, e), Te(() => e.dispose());
877
+ let e = ce({ cacheSize: 20 });
878
+ i(L, e), Oe(() => e.dispose());
880
879
  }
881
- let { results: me, isSearching: G, isAvailable: K, hasSearched: xe, search: we, clear: Ee } = I(), { data: Oe } = t.getCamerasQuery({
880
+ let { results: be, isSearching: xe, isAvailable: we, hasSearched: Te, search: De, clear: ke } = ye(), { data: je } = t.getCamerasQuery({
882
881
  page: 1,
883
882
  pageSize: -1
884
- }), { data: Ae } = o.getUserQuery(f(() => u.user?.username ?? "")), je = {
883
+ }), { data: Ne } = o.getUserQuery(f(() => u.user?.username ?? "")), G = {
885
884
  "1h": 36e5,
886
885
  "1d": 864e5,
887
886
  "1w": 6048e5,
888
887
  "1m": 2592e6
889
- }, Me = y("gridRef"), Ne = y("viewMenuRef"), q = E("closed"), Fe = E(!1), J = E({
888
+ }, K = y("gridRef"), Pe = y("viewMenuRef"), q = E("closed"), Ie = E(!1), J = E({
890
889
  contentKind: "all",
891
890
  favoritesOnly: !1,
892
891
  search: "",
@@ -905,61 +904,61 @@ var Yt = s({
905
904
  minConfidence: .5,
906
905
  minSemanticScore: .5,
907
906
  onlyWithRecordings: !0
908
- }), Le = w({
907
+ }), Re = w({
909
908
  state: "ended",
910
909
  hasDetections: !0,
911
910
  withRecordingInfo: !0,
912
911
  hasRecording: !0
913
- }), Re = JSON.stringify(Le.value), Y = E(!1), ze = w([]), Be = E(null), Ve = y("reindexAnchorRef"), { left: He } = De(Ve), Qe = !1, X = f(() => U.value ? !0 : q.value === "opened"), $e = f(() => oe.value), tt = f(() => X.value && $e.value ? !0 : (Me.value?.scrollY ?? 0) > 10 && !C.value?.running), nt = f(() => oe.value ? "0px" : X.value ? `${qn}px` : "0px"), Z = f(() => (Oe.value?.result ?? []).map((e) => ({
912
+ }), ze = JSON.stringify(Re.value), Y = E(!1), Be = w([]), Ve = E(null), He = y("reindexAnchorRef"), { left: Ue } = Ae(He), $e = !1, X = f(() => ue.value ? !0 : q.value === "opened"), et = f(() => W.value), nt = _e(() => K.value?.scrollY ?? 0), rt = f(() => X.value && et.value ? !0 : nt.value && !C.value?.running), at = f(() => W.value ? "0px" : X.value ? `${Jn}px` : "0px"), Z = f(() => (je.value?.result ?? []).map((e) => ({
914
913
  id: e._id,
915
914
  name: e.name,
916
915
  room: e.room
917
- }))), it = f(() => {
916
+ }))), st = f(() => {
918
917
  let e = /* @__PURE__ */ new Map();
919
918
  for (let t of Z.value) e.set(t.id, t.name);
920
919
  return e;
921
- }), ot = f(() => {
920
+ }), ct = f(() => {
922
921
  let e = /* @__PURE__ */ new Map();
923
- for (let t of Oe.value?.result ?? []) e.set(t._id, t);
922
+ for (let t of je.value?.result ?? []) e.set(t._id, t);
924
923
  return e;
925
- }), st = f(() => {
924
+ }), lt = f(() => {
926
925
  let e = J.value.rooms;
927
926
  return (e.length > 0 ? Z.value.filter((t) => e.includes(t.room ?? "")) : Z.value).map((e) => e.id);
928
- }), ct = f(() => J.value.cameraIds.filter((e) => st.value.includes(e))), lt = f(() => st.value);
929
- se(() => Me.value?.scrollToTop());
930
- let { events: ut, isLoading: ft, hasMore: pt, loadMore: mt, loadThumbnails: ht, deleteEvents: gt, pluginUnavailable: _t } = V({
931
- availableCameraIds: lt,
932
- cameraIds: ct,
927
+ }), ut = f(() => J.value.cameraIds.filter((e) => lt.value.includes(e))), dt = f(() => lt.value);
928
+ de(() => K.value?.scrollToTop());
929
+ let { events: pt, isLoading: mt, hasMore: ht, loadMore: gt, loadThumbnails: _t, deleteEvents: vt, pluginUnavailable: yt } = N({
930
+ availableCameraIds: dt,
931
+ cameraIds: ut,
933
932
  realtime: !0,
934
933
  pageSize: 40,
935
- filter: Le,
934
+ filter: Re,
936
935
  withEpisodes: !0
937
936
  }), Q = f(() => {
938
937
  let e = /* @__PURE__ */ new Map();
939
- for (let t of me.value ?? []) {
938
+ for (let t of be.value ?? []) {
940
939
  let n = e.get(t.eventId);
941
940
  (!n || t.score > n) && e.set(t.eventId, t.score);
942
941
  }
943
942
  return e;
944
- }), vt = f(() => xe.value), $ = f(() => {
945
- let e = ut.value.filter((e) => e.state === "ended"), t = J.value;
946
- if (t.timeRange && je[t.timeRange]) {
947
- let n = Date.now() - je[t.timeRange];
943
+ }), bt = f(() => Te.value), $ = f(() => {
944
+ let e = pt.value.filter((e) => e.state === "ended"), t = J.value;
945
+ if (t.timeRange && G[t.timeRange]) {
946
+ let n = Date.now() - G[t.timeRange];
948
947
  e = e.filter((e) => e.startTime >= n);
949
948
  }
950
- return t.gridRegions.length > 0 && (e = e.filter((e) => e.segments.some((e) => e.detections.some((e) => e.box && qe(e.box, t.gridRegions))))), t.favoritesOnly && (e = e.filter((e) => e.favorite)), vt.value && (e = e.filter((e) => {
949
+ return t.gridRegions.length > 0 && (e = e.filter((e) => e.segments.some((e) => e.detections.some((e) => e.box && Ye(e.box, t.gridRegions))))), t.favoritesOnly && (e = e.filter((e) => e.favorite)), bt.value && (e = e.filter((e) => {
951
950
  let n = Q.value.get(e.id);
952
951
  return n != null && n >= t.minSemanticScore;
953
952
  }), e.sort((e, t) => (Q.value.get(t.id) ?? 0) - (Q.value.get(e.id) ?? 0))), e;
954
- }), yt = f(() => J.value.contentKind === "episodes"), bt = f(() => {
953
+ }), xt = f(() => J.value.contentKind === "episodes"), St = f(() => {
955
954
  if (J.value.contentKind === "events") return [];
956
955
  j.storeVersion.value;
957
956
  let e = J.value;
958
- if (!yt.value && (Y.value || vt.value || e.gridRegions.length > 0 || e.search.trim() !== "" || e.eventTypes.length > 0 || e.audioLabels.length > 0 || e.hasAttributes.length > 0 || e.sensorEvents.length > 0 || e.minConfidence !== .5)) return [];
959
- let t = ct.value.length > 0 ? ct.value : lt.value, n = e.timeRange && je[e.timeRange] ? Date.now() - je[e.timeRange] : 0, r = Infinity;
960
- if (e.timeRange === "custom" && e.customDateRange && (n = Math.max(n, e.customDateRange[0].getTime()), r = e.customDateRange[1].getTime()), pt.value && !yt.value) {
957
+ if (!xt.value && (Y.value || bt.value || e.gridRegions.length > 0 || e.search.trim() !== "" || e.eventTypes.length > 0 || e.audioLabels.length > 0 || e.hasAttributes.length > 0 || e.sensorEvents.length > 0 || e.minConfidence !== .5)) return [];
958
+ let t = ut.value.length > 0 ? ut.value : dt.value, n = e.timeRange && G[e.timeRange] ? Date.now() - G[e.timeRange] : 0, r = Infinity;
959
+ if (e.timeRange === "custom" && e.customDateRange && (n = Math.max(n, e.customDateRange[0].getTime()), r = e.customDateRange[1].getTime()), ht.value && !xt.value) {
961
960
  let e = Infinity;
962
- for (let t of ut.value) e = Math.min(e, t.thumbnailAt ?? t.startTime);
961
+ for (let t of pt.value) e = Math.min(e, t.thumbnailAt ?? t.startTime);
963
962
  n = Math.max(n, e);
964
963
  }
965
964
  let i = [];
@@ -969,30 +968,30 @@ var Yt = s({
969
968
  episode: a
970
969
  }));
971
970
  return i;
972
- }), xt = f(() => {
973
- if (yt.value) return [...bt.value].sort((e, t) => We(t) - We(e));
974
- if (Y.value && ze.value.length) return ze.value;
971
+ }), Ct = f(() => {
972
+ if (xt.value) return [...St.value].sort((e, t) => Ke(t) - Ke(e));
973
+ if (Y.value && Be.value.length) return Be.value;
975
974
  let e = $.value.map((e) => ({
976
975
  event: e,
977
976
  key: e.id
978
977
  }));
979
- return bt.value.length && (e.push(...bt.value), e.sort((e, t) => We(t) - We(e))), e;
980
- }), St = f(() => le(void 0, "admin")), { selectionMode: Ct, selectedIds: wt, allSelected: Tt, bulkBusy: Et, enterSelectionMode: Dt, exitSelectionMode: Ot, toggleSelectAll: kt, toggleSelection: At } = B($, (e) => e.id);
981
- function jt() {
982
- let e = [...wt.value];
983
- !e.length || Et.value || s.openTextDialog({
978
+ return St.value.length && (e.push(...St.value), e.sort((e, t) => Ke(t) - Ke(e))), e;
979
+ }), wt = f(() => pe(void 0, "admin")), { selectionMode: Tt, selectedIds: Et, allSelected: Dt, bulkBusy: Ot, enterSelectionMode: kt, exitSelectionMode: At, toggleSelectAll: jt, toggleSelection: Mt } = oe($, (e) => e.id);
980
+ function Nt() {
981
+ let e = [...Et.value];
982
+ !e.length || Ot.value || s.openTextDialog({
984
983
  data: {
985
- title: P("components.dialog.title.confirm"),
986
- contentText: P("views.recordings.delete_selected_confirm", { count: e.length }),
987
- confirmText: P("components.form.button.remove"),
984
+ title: I("components.dialog.title.confirm"),
985
+ contentText: I("views.recordings.delete_selected_confirm", { count: e.length }),
986
+ confirmText: I("components.form.button.remove"),
988
987
  confirmButtonProps: { severity: "danger" }
989
988
  },
990
989
  onConfirm: async () => {
991
- Et.value = !0;
990
+ Ot.value = !0;
992
991
  try {
993
- await gt(e), Ot(), M.add({
992
+ await vt(e), At(), M.add({
994
993
  severity: "success",
995
- detail: P("views.recordings.delete_selected_done", { count: e.length }),
994
+ detail: I("views.recordings.delete_selected_done", { count: e.length }),
996
995
  life: 5e3
997
996
  });
998
997
  } catch (e) {
@@ -1002,26 +1001,26 @@ var Yt = s({
1002
1001
  life: 5e3
1003
1002
  });
1004
1003
  } finally {
1005
- Et.value = !1;
1004
+ Ot.value = !1;
1006
1005
  }
1007
1006
  }
1008
1007
  });
1009
1008
  }
1010
- let Mt = f(() => [
1009
+ let Pt = f(() => [
1011
1010
  {
1012
1011
  key: "ungroup",
1013
- label: P("views.recordings.ungroup"),
1014
- description: P("views.recordings.ungroup_hint"),
1012
+ label: I("views.recordings.ungroup"),
1013
+ description: I("views.recordings.ungroup_hint"),
1015
1014
  toggle: !0,
1016
1015
  toggleState: Y.value,
1017
1016
  onClick: () => {
1018
- Qe = !0, Y.value = !Y.value, u.updateUser({ preferences: { recordings: { ungrouped: Y.value } } });
1017
+ $e = !0, Y.value = !Y.value, u.updateUser({ preferences: { recordings: { ungrouped: Y.value } } });
1019
1018
  }
1020
1019
  },
1021
1020
  {
1022
1021
  key: "onlyWithRecordings",
1023
- label: P("views.recordings.only_with_recordings"),
1024
- description: P("views.recordings.only_with_recordings_hint"),
1022
+ label: I("views.recordings.only_with_recordings"),
1023
+ description: I("views.recordings.only_with_recordings_hint"),
1025
1024
  toggle: !0,
1026
1025
  toggleState: J.value.onlyWithRecordings,
1027
1026
  onClick: () => {
@@ -1033,8 +1032,8 @@ var Yt = s({
1033
1032
  },
1034
1033
  {
1035
1034
  key: "favoritesOnly",
1036
- label: P("views.recordings.favorites_only"),
1037
- description: P("views.recordings.favorites_hint"),
1035
+ label: I("views.recordings.favorites_only"),
1036
+ description: I("views.recordings.favorites_hint"),
1038
1037
  toggle: !0,
1039
1038
  toggleState: J.value.favoritesOnly,
1040
1039
  onClick: () => {
@@ -1045,47 +1044,47 @@ var Yt = s({
1045
1044
  }
1046
1045
  }
1047
1046
  ]);
1048
- function Nt() {
1049
- s.openComponentDialog(dt, { data: {
1050
- title: P("views.recordings.reindex.title"),
1047
+ function Ft() {
1048
+ s.openComponentDialog(ft, { data: {
1049
+ title: I("views.recordings.reindex.title"),
1051
1050
  contentProps: {},
1052
- confirmText: P("views.recordings.reindex.start")
1051
+ confirmText: I("views.recordings.reindex.start")
1053
1052
  } });
1054
1053
  }
1055
- function Pt() {
1056
- s.openComponentDialog(Ut, { data: {
1057
- title: P("views.recordings.export.title"),
1054
+ function It() {
1055
+ s.openComponentDialog(Wt, { data: {
1056
+ title: I("views.recordings.export.title"),
1058
1057
  contentProps: {
1059
1058
  cameras: Z.value,
1060
1059
  preselect: J.value.cameraIds?.length ? J.value.cameraIds : []
1061
1060
  },
1062
- confirmText: P("views.recordings.export.confirm")
1061
+ confirmText: I("views.recordings.export.confirm")
1063
1062
  } });
1064
1063
  }
1065
- function Ft() {
1064
+ function Lt() {
1066
1065
  let e = q.value;
1067
1066
  q.value = e === "opened" ? "closed" : "opened";
1068
1067
  }
1069
- function It() {
1068
+ function Rt() {
1070
1069
  q.value = "closed";
1071
1070
  }
1072
- function Lt(e) {
1073
- !e.semanticQuery?.trim() && J.value.semanticQuery?.trim() && Ee(), J.value = e;
1071
+ function zt(e) {
1072
+ !e.semanticQuery?.trim() && J.value.semanticQuery?.trim() && ke(), J.value = e;
1074
1073
  }
1075
- function Rt(e) {
1074
+ function Bt(e) {
1076
1075
  if (!e.trim()) {
1077
- Ee();
1076
+ ke();
1078
1077
  return;
1079
1078
  }
1080
- we(e);
1079
+ De(e);
1081
1080
  }
1082
- function zt(e) {
1083
- let t = ot.value.get(e.cameraId);
1081
+ function Vt(e) {
1082
+ let t = ct.value.get(e.cameraId);
1084
1083
  t && O(e, t);
1085
1084
  }
1086
- function Bt(e) {
1087
- let t = ot.value.get(e.cameraId);
1088
- t && s.openComponentDialog(ce, {
1085
+ function Ht(e) {
1086
+ let t = ct.value.get(e.cameraId);
1087
+ t && s.openComponentDialog(fe, {
1089
1088
  data: {
1090
1089
  title: t.name,
1091
1090
  dedupeKey: `camera-event:${t._id}:${e.startTime}`,
@@ -1097,7 +1096,7 @@ var Yt = s({
1097
1096
  eventTimestamp: e.startTime
1098
1097
  },
1099
1098
  headerActions: e.segments?.some((e) => e?.description) ? [{
1100
- icon: ve,
1099
+ icon: R,
1101
1100
  toggle: !0,
1102
1101
  onClick: () => {}
1103
1102
  }] : void 0,
@@ -1115,7 +1114,7 @@ var Yt = s({
1115
1114
  } }
1116
1115
  });
1117
1116
  }
1118
- return h(U, (e) => {
1117
+ return h(ue, (e) => {
1119
1118
  e && (q.value = "closed");
1120
1119
  }), h(J, (e) => {
1121
1120
  let t = e.eventTypes.length > 0 || e.sensorEvents.length > 0 || e.audioLabels.length > 0 || e.hasAttributes.length > 0, n = {
@@ -1133,16 +1132,16 @@ var Yt = s({
1133
1132
  hasRecording: e.onlyWithRecordings || void 0,
1134
1133
  favoritesOnly: e.favoritesOnly || void 0
1135
1134
  }, r = JSON.stringify(n);
1136
- r !== Re && (Re = r, Le.value = n);
1135
+ r !== ze && (ze = r, Re.value = n);
1137
1136
  }, {
1138
1137
  deep: !0,
1139
1138
  immediate: !0
1140
- }), h(Ae, (e) => {
1141
- if (!e || Qe) return;
1139
+ }), h(Ne, (e) => {
1140
+ if (!e || $e) return;
1142
1141
  let t = e.preferences?.recordings?.ungrouped;
1143
1142
  t !== void 0 && (Y.value = t);
1144
1143
  }, { immediate: !0 }), h([Y, $], ([e, t]) => {
1145
- ze.value = e ? Ke(t) : [];
1144
+ Be.value = e ? Je(t) : [];
1146
1145
  }), h(() => J.value.cameraIds, (e) => {
1147
1146
  e.length !== 1 && J.value.gridRegions.length > 0 && (J.value = {
1148
1147
  ...J.value,
@@ -1150,13 +1149,13 @@ var Yt = s({
1150
1149
  });
1151
1150
  }), k(() => {
1152
1151
  requestAnimationFrame(() => {
1153
- Fe.value = !0;
1152
+ Ie.value = !0;
1154
1153
  });
1155
1154
  }), (e, t) => {
1156
- let i = F, o = rt, s = et, u = Pe, f = Ye, h = Ze, y = Xe, w = te, E = Ge, O = Je, k = Ue, j = he, M = pe, P = N, I = A;
1155
+ let i = te, o = it, s = tt, u = Fe, f = Xe, h = Qe, y = Ze, w = z, E = Ge, O = qe, k = We, j = B, M = ve, N = ee, F = A;
1157
1156
  return n(), g("div", null, [
1158
1157
  D(i, { position: "center" }, {
1159
- default: p(() => [x("span", zn, r(e.$t("views.recordings.title")), 1)]),
1158
+ default: p(() => [x("span", Bn, r(e.$t("views.recordings.title")), 1)]),
1160
1159
  _: 1
1161
1160
  }),
1162
1161
  D(i, { position: "left" }, {
@@ -1166,7 +1165,7 @@ var Yt = s({
1166
1165
  class: "cui-button p-2 text-color",
1167
1166
  text: "",
1168
1167
  rounded: "",
1169
- onClick: Ft
1168
+ onClick: Lt
1170
1169
  }, {
1171
1170
  icon: p(() => [d(q) === "closed" ? (n(), c(o, {
1172
1171
  key: 0,
@@ -1187,7 +1186,7 @@ var Yt = s({
1187
1186
  class: "cui-button p-2 text-color",
1188
1187
  text: "",
1189
1188
  rounded: "",
1190
- onClick: t[0] ||= (e) => d(Ne)?.toggleMenu(e)
1189
+ onClick: t[0] ||= (e) => d(Pe)?.toggleMenu(e)
1191
1190
  }, {
1192
1191
  icon: p(() => [D(f, {
1193
1192
  width: "100%",
@@ -1197,18 +1196,18 @@ var Yt = s({
1197
1196
  })]),
1198
1197
  _: 1
1199
1198
  }),
1200
- D(Rn, {
1199
+ D(zn, {
1201
1200
  filters: d(J),
1202
1201
  cameras: d(Z),
1203
1202
  "is-open": d(X),
1204
- "is-overlay": d($e),
1205
- "result-count": d(xt).length,
1206
- "semantic-count": d(vt) ? d(Q).size : void 0,
1207
- "semantic-search-available": d(K),
1208
- "semantic-search-loading": d(G),
1209
- "onUpdate:filters": Lt,
1210
- onSemanticSearch: Rt,
1211
- onClose: It
1203
+ "is-overlay": d(et),
1204
+ "result-count": d(Ct).length,
1205
+ "semantic-count": d(bt) ? d(Q).size : void 0,
1206
+ "semantic-search-available": d(we),
1207
+ "semantic-search-loading": d(xe),
1208
+ "onUpdate:filters": zt,
1209
+ onSemanticSearch: Bt,
1210
+ onClose: Rt
1212
1211
  }, null, 8, [
1213
1212
  "filters",
1214
1213
  "cameras",
@@ -1222,30 +1221,30 @@ var Yt = s({
1222
1221
  (n(), c(m, {
1223
1222
  to: "#container",
1224
1223
  defer: ""
1225
- }, [d(X) && d($e) ? (n(), g("div", {
1224
+ }, [d(X) && d(et) ? (n(), g("div", {
1226
1225
  key: 0,
1227
1226
  class: "fixed top-0 left-0 right-0 bottom-0 w-full h-full bg-black/50 z-1",
1228
- onClick: It
1227
+ onClick: Rt
1229
1228
  })) : l("", !0)])),
1230
1229
  x("main", {
1231
1230
  ref_key: "reindexAnchorRef",
1232
- ref: Ve,
1231
+ ref: He,
1233
1232
  class: "relative w-full h-full",
1234
1233
  style: _({
1235
- paddingLeft: d(nt),
1236
- transition: d(Fe) ? "padding-left 200ms" : void 0
1234
+ paddingLeft: d(at),
1235
+ transition: d(Ie) ? "padding-left 200ms" : void 0
1237
1236
  })
1238
- }, [x("div", Bn, [
1239
- d(H) ? l("", !0) : (n(), g("div", Vn, [
1237
+ }, [x("div", Vn, [
1238
+ d(U) ? l("", !0) : (n(), g("div", Hn, [
1240
1239
  t[3] ||= x("div", { class: "ml-2" }, null, -1),
1241
- d(U) ? l("", !0) : (n(), c(u, {
1240
+ d(ue) ? l("", !0) : (n(), c(u, {
1242
1241
  key: 0,
1243
1242
  id: "recordings-sidebar-toggle",
1244
1243
  severity: "secondary",
1245
1244
  class: "mr-2 cui-icon-lg relative z-2",
1246
1245
  text: "",
1247
1246
  rounded: "",
1248
- onClick: Ft
1247
+ onClick: Lt
1249
1248
  }, {
1250
1249
  icon: p(() => [d(X) ? (n(), c(h, {
1251
1250
  key: 0,
@@ -1258,7 +1257,7 @@ var Yt = s({
1258
1257
  }))]),
1259
1258
  _: 1
1260
1259
  })),
1261
- x("h1", Hn, r(e.$t("views.recordings.title")), 1),
1260
+ x("h1", Un, r(e.$t("views.recordings.title")), 1),
1262
1261
  t[4] ||= x("div", { class: "gradient-blur rotate-180 !h-[70px]" }, [
1263
1262
  x("div"),
1264
1263
  x("div"),
@@ -1268,12 +1267,12 @@ var Yt = s({
1268
1267
  x("div")
1269
1268
  ], -1)
1270
1269
  ])),
1271
- d(H) ? l("", !0) : (n(), g("div", Un, [S((n(), c(u, {
1270
+ d(U) ? l("", !0) : (n(), g("div", Wn, [S((n(), c(u, {
1272
1271
  severity: "secondary",
1273
1272
  text: "",
1274
1273
  rounded: "",
1275
1274
  class: "cui-icon-lg relative z-2",
1276
- onClick: t[1] ||= (e) => d(Ne)?.toggleMenu(e)
1275
+ onClick: t[1] ||= (e) => d(Pe)?.toggleMenu(e)
1277
1276
  }, {
1278
1277
  icon: p(() => [D(f, {
1279
1278
  width: "100%",
@@ -1281,33 +1280,33 @@ var Yt = s({
1281
1280
  })]),
1282
1281
  _: 1
1283
1282
  })), [[
1284
- I,
1283
+ F,
1285
1284
  { value: e.$t("views.recordings.view_options") },
1286
1285
  void 0,
1287
1286
  { bottom: !0 }
1288
1287
  ]])])),
1289
1288
  x("div", { class: a(["px-2 h-full w-full flex flex-col", {
1290
- "pt-4": d(H),
1291
- "pt-[calc(40px+2rem)]": !d(H)
1289
+ "pt-4": d(U),
1290
+ "pt-[calc(40px+2rem)]": !d(U)
1292
1291
  }]) }, [
1293
- d(xt).length ? (n(), c(O, {
1292
+ d(Ct).length ? (n(), c(O, {
1294
1293
  key: 0,
1295
1294
  ref_key: "gridRef",
1296
- ref: Me,
1297
- items: d(xt),
1298
- "min-item-width": d(H) ? 160 : 180,
1295
+ ref: K,
1296
+ items: d(Ct),
1297
+ "min-item-width": d(U) ? 160 : 180,
1299
1298
  gap: 8,
1300
- "has-more": d(pt),
1301
- "load-more": d(mt),
1299
+ "has-more": d(ht),
1300
+ "load-more": d(gt),
1302
1301
  "item-key": (e) => e.key,
1303
1302
  class: "flex-1 min-h-0"
1304
1303
  }, {
1305
1304
  item: p(({ item: e }) => [e.episode ? (n(), c(w, {
1306
1305
  key: 0,
1307
1306
  episode: e.episode,
1308
- "camera-by-id": d(ot),
1307
+ "camera-by-id": d(ct),
1309
1308
  fluid: "",
1310
- "click-disabled": d(Ct)
1309
+ "click-disabled": d(Tt)
1311
1310
  }, null, 8, [
1312
1311
  "episode",
1313
1312
  "camera-by-id",
@@ -1315,19 +1314,19 @@ var Yt = s({
1315
1314
  ])) : (n(), c(E, {
1316
1315
  key: 1,
1317
1316
  event: e.event,
1318
- "camera-name": d(it).get(e.event.cameraId),
1319
- camera: d(ot).get(e.event.cameraId),
1320
- "load-thumbnails": d(ht),
1317
+ "camera-name": d(st).get(e.event.cameraId),
1318
+ camera: d(ct).get(e.event.cameraId),
1319
+ "load-thumbnails": d(_t),
1321
1320
  "semantic-score": d(Q).get(e.event.id),
1322
1321
  "seg-index": e.segIndex,
1323
- "selection-mode": d(Ct),
1324
- selected: d(wt).has(e.event.id),
1325
- "sibling-active": e.segIndex !== void 0 && d(Be) === e.event.id,
1326
- onSelect: (t) => d(At)(e.event.id),
1327
- onScrollToEvent: () => Bt(e.event),
1328
- onOpenTrace: () => zt(e.event),
1329
- onMouseenter: (t) => Be.value = e.segIndex === void 0 ? null : e.event.id,
1330
- onMouseleave: t[2] ||= (e) => Be.value = null
1322
+ "selection-mode": d(Tt),
1323
+ selected: d(Et).has(e.event.id),
1324
+ "sibling-active": e.segIndex !== void 0 && d(Ve) === e.event.id,
1325
+ onSelect: (t) => d(Mt)(e.event.id),
1326
+ onScrollToEvent: () => Ht(e.event),
1327
+ onOpenTrace: () => Vt(e.event),
1328
+ onMouseenter: (t) => Ve.value = e.segIndex === void 0 ? null : e.event.id,
1329
+ onMouseleave: t[2] ||= (e) => Ve.value = null
1331
1330
  }, null, 8, [
1332
1331
  "event",
1333
1332
  "camera-name",
@@ -1351,21 +1350,21 @@ var Yt = s({
1351
1350
  "load-more",
1352
1351
  "item-key"
1353
1352
  ])) : l("", !0),
1354
- d(ft) || d(G) ? (n(), g("div", Wn, [D(k, {
1353
+ d(mt) || d(xe) ? (n(), g("div", Gn, [D(k, {
1355
1354
  width: "24px",
1356
1355
  height: "24px",
1357
1356
  class: "text-muted"
1358
1357
  })])) : l("", !0),
1359
- !d($).length && !d(ft) && !d(G) ? (n(), g("div", Gn, [D(j, { class: "w-12 h-12 text-muted" }), x("span", Kn, r(d(_t) ? e.$t("views.recordings.recordings_unavailable") : e.$t("views.recordings.no_recordings")), 1)])) : l("", !0)
1358
+ !d($).length && !d(mt) && !d(xe) ? (n(), g("div", Kn, [D(j, { class: "w-12 h-12 text-muted" }), x("span", qn, r(d(yt) ? e.$t("views.recordings.recordings_unavailable") : e.$t("views.recordings.no_recordings")), 1)])) : l("", !0)
1360
1359
  ], 2)
1361
1360
  ])], 4),
1362
- d(St) && d(Z).length ? (n(), g("div", {
1361
+ d(wt) && d(Z).length ? (n(), g("div", {
1363
1362
  key: 0,
1364
- class: a(["fixed z-10", d(tt) ? "scale-0 opacity-0" : "scale-100 opacity-100"]),
1363
+ class: a(["fixed z-10", d(rt) ? "scale-0 opacity-0" : "scale-100 opacity-100"]),
1365
1364
  style: _({
1366
- left: `calc(${d(He)}px + ${d(nt)} + 0.75rem + var(--safe-area-inset-left))`,
1365
+ left: `calc(${d(Ue)}px + ${d(at)} + 0.75rem + var(--safe-area-inset-left))`,
1367
1366
  bottom: `calc(${d(b)}px + 1.25rem + var(--safe-area-inset-bottom))`,
1368
- transition: d(Fe) ? "left 200ms, transform 200ms ease-in-out, opacity 200ms ease-in-out" : void 0
1367
+ transition: d(Ie) ? "left 200ms, transform 200ms ease-in-out, opacity 200ms ease-in-out" : void 0
1369
1368
  })
1370
1369
  }, [D(u, {
1371
1370
  severity: "secondary",
@@ -1376,27 +1375,27 @@ var Yt = s({
1376
1375
  done: d(C).done,
1377
1376
  total: d(C).total
1378
1377
  }) : e.$t("views.recordings.reindex.button"),
1379
- onClick: Nt
1378
+ onClick: Ft
1380
1379
  }, {
1381
- icon: p(() => [d(C)?.running ? (n(), c(d(Ue), { key: 0 })) : (n(), c(d(at), { key: 1 }))]),
1380
+ icon: p(() => [d(C)?.running ? (n(), c(d(We), { key: 0 })) : (n(), c(d(ot), { key: 1 }))]),
1382
1381
  _: 1
1383
1382
  }, 8, ["disabled", "label"])], 6)) : l("", !0),
1384
- d(Z).length ? (n(), c(P, {
1383
+ d(Z).length ? (n(), c(N, {
1385
1384
  key: 1,
1386
- "force-visible": d(Ct),
1387
- "scroll-y": d(Me)?.scrollY ?? 0
1385
+ "force-visible": d(Tt),
1386
+ "scroll-y": d(K)?.scrollY ?? 0
1388
1387
  }, {
1389
- default: p(() => [d(Ct) ? (n(), g(v, { key: 1 }, [
1388
+ default: p(() => [d(Tt) ? (n(), g(v, { key: 1 }, [
1390
1389
  D(M, {
1391
1390
  grouped: "",
1392
1391
  "tooltip-props": { value: e.$t("components.form.tooltip.cancel_selection") },
1393
1392
  "button-props": { severity: "secondary" },
1394
- icon: d(Ie),
1393
+ icon: d(Le),
1395
1394
  "icon-props": {
1396
1395
  width: "100%",
1397
1396
  height: "100%"
1398
1397
  },
1399
- onClick: d(Ot)
1398
+ onClick: d(At)
1400
1399
  }, null, 8, [
1401
1400
  "tooltip-props",
1402
1401
  "icon",
@@ -1404,14 +1403,14 @@ var Yt = s({
1404
1403
  ]),
1405
1404
  D(M, {
1406
1405
  grouped: "",
1407
- "tooltip-props": { value: d(Tt) ? e.$t("components.form.tooltip.deselect_all") : e.$t("components.form.tooltip.select_all") },
1408
- "button-props": { severity: d(Tt) ? "primary" : "secondary" },
1409
- icon: d(ae),
1406
+ "tooltip-props": { value: d(Dt) ? e.$t("components.form.tooltip.deselect_all") : e.$t("components.form.tooltip.select_all") },
1407
+ "button-props": { severity: d(Dt) ? "primary" : "secondary" },
1408
+ icon: d(H),
1410
1409
  "icon-props": {
1411
1410
  width: "100%",
1412
1411
  height: "100%"
1413
1412
  },
1414
- onClick: d(kt)
1413
+ onClick: d(jt)
1415
1414
  }, null, 8, [
1416
1415
  "tooltip-props",
1417
1416
  "button-props",
@@ -1423,30 +1422,30 @@ var Yt = s({
1423
1422
  "tooltip-props": { value: e.$t("components.form.tooltip.delete_selected") },
1424
1423
  "button-props": {
1425
1424
  severity: "danger",
1426
- disabled: !d(wt).size || d(Et)
1425
+ disabled: !d(Et).size || d(Ot)
1427
1426
  },
1428
- icon: d(ee),
1427
+ icon: d(P),
1429
1428
  "icon-props": {
1430
1429
  width: "100%",
1431
1430
  height: "100%"
1432
1431
  },
1433
- onClick: jt
1432
+ onClick: Nt
1434
1433
  }, null, 8, [
1435
1434
  "tooltip-props",
1436
1435
  "button-props",
1437
1436
  "icon"
1438
1437
  ])
1439
- ], 64)) : (n(), g(v, { key: 0 }, [d(St) && d($).length ? (n(), c(M, {
1438
+ ], 64)) : (n(), g(v, { key: 0 }, [d(wt) && d($).length ? (n(), c(M, {
1440
1439
  key: 0,
1441
1440
  grouped: "",
1442
1441
  "tooltip-props": { value: e.$t("views.recordings.select") },
1443
1442
  "button-props": { severity: "secondary" },
1444
- icon: d(Se),
1443
+ icon: d(Ee),
1445
1444
  "icon-props": {
1446
1445
  width: "100%",
1447
1446
  height: "100%"
1448
1447
  },
1449
- onClick: d(Dt)
1448
+ onClick: d(kt)
1450
1449
  }, null, 8, [
1451
1450
  "tooltip-props",
1452
1451
  "icon",
@@ -1455,19 +1454,19 @@ var Yt = s({
1455
1454
  grouped: "",
1456
1455
  "tooltip-props": { value: e.$t("views.recordings.export.title") },
1457
1456
  "button-props": { class: "text-white" },
1458
- icon: d(de),
1457
+ icon: d(ge),
1459
1458
  "icon-props": {
1460
1459
  width: "26px",
1461
1460
  height: "26px"
1462
1461
  },
1463
- onClick: Pt
1462
+ onClick: It
1464
1463
  }, null, 8, ["tooltip-props", "icon"])], 64))]),
1465
1464
  _: 1
1466
1465
  }, 8, ["force-visible", "scroll-y"])) : l("", !0),
1467
- D(R, {
1466
+ D(re, {
1468
1467
  ref_key: "viewMenuRef",
1469
- ref: Ne,
1470
- items: d(Mt),
1468
+ ref: Pe,
1469
+ items: d(Pt),
1471
1470
  "auto-hide": !1,
1472
1471
  popover: { pt: {
1473
1472
  root: { class: "w-[22rem]" },
@@ -1479,4 +1478,4 @@ var Yt = s({
1479
1478
  }
1480
1479
  });
1481
1480
  //#endregion
1482
- export { Jn as default };
1481
+ export { Yn as default };