@camera.ui/server 2.2.5-beta.4 → 2.2.6

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 (664) hide show
  1. package/dist/interface/assets/{404-YZOLos9r.js → 404-BLVuKvLk.js} +1 -1
  2. package/dist/interface/assets/{About-HtxMc8JZ.js → About-C-AJ0jfI.js} +1 -1
  3. package/dist/interface/assets/Assistant-BJKGIvVo.js +1 -0
  4. package/dist/interface/assets/{Assistant-BMscGKnc.css → Assistant-BQ6Ld-bt.css} +1 -1
  5. package/dist/interface/assets/{Automation-D3DcUyui.js → Automation-C95DzuZb.js} +3 -3
  6. package/dist/interface/assets/{AutomationImport-Dp_hT6hQ.js → AutomationImport-C8VYjDzf.js} +2 -2
  7. package/dist/interface/assets/{AutomationStore-BKR7GXMk.js → AutomationStore-CE4PKRGd.js} +2 -2
  8. package/dist/interface/assets/{AutomationStoreDetail-B9yh51WQ.js → AutomationStoreDetail-DavWfjLv.js} +2 -2
  9. package/dist/interface/assets/Automations-BOP_17Ri.js +2 -0
  10. package/dist/interface/assets/Camera-BW9ikKqh.css +1 -0
  11. package/dist/interface/assets/Camera-C5S7eI9a.js +2 -0
  12. package/dist/interface/assets/{CameraConsole-BI93OaRt.js → CameraConsole-C4AmtcrM.js} +1 -1
  13. package/dist/interface/assets/{Cameras-Ctub8sVt.js → Cameras-DR577Bno.js} +2 -2
  14. package/dist/interface/assets/{Camview-CZct5cnP.css → Camview-Bri_T7Tq.css} +1 -1
  15. package/dist/interface/assets/Camview-CHxKB41T.js +1 -0
  16. package/dist/interface/assets/{CertificateUpload-xW55NA1Q.js → CertificateUpload-BYFKZCP9.js} +1 -1
  17. package/dist/interface/assets/Config-BrDDGWpr.js +2 -0
  18. package/dist/interface/assets/{ConfigActionAssistant-B488rOp5.js → ConfigActionAssistant-YtCVI8LZ.js} +1 -1
  19. package/dist/interface/assets/{ConfigActionCameraControl-ZMUuBxOs.js → ConfigActionCameraControl-Dg_1zOYt.js} +1 -1
  20. package/dist/interface/assets/{ConfigActionDelay-BJ11xvOW.js → ConfigActionDelay-_EqbfWgo.js} +1 -1
  21. package/dist/interface/assets/{ConfigActionHttp-DOUo69OR.js → ConfigActionHttp-BzwLv2tn.js} +1 -1
  22. package/dist/interface/assets/{ConfigActionImageInput-BMzuVZW9.js → ConfigActionImageInput-CLdY2sV4.js} +1 -1
  23. package/dist/interface/assets/{ConfigActionMqtt-Co_uksca.js → ConfigActionMqtt-lGqYshl3.js} +1 -1
  24. package/dist/interface/assets/{ConfigActionNotification-CcZkstYx.js → ConfigActionNotification-D5Dj3EoU.js} +1 -1
  25. package/dist/interface/assets/{ConfigActionNotificationControl--VeucoTw.js → ConfigActionNotificationControl-Dy5fKamr.js} +1 -1
  26. package/dist/interface/assets/{ConfigActionOutput-CyDa1LGA.js → ConfigActionOutput-DzsQ31L0.js} +1 -1
  27. package/dist/interface/assets/{ConfigActionPlugin-Kfg3ZEQF.js → ConfigActionPlugin-BFrBcXvL.js} +1 -1
  28. package/dist/interface/assets/{ConfigActionSensor-DhAF0HPw.js → ConfigActionSensor-CX8ePlan.js} +1 -1
  29. package/dist/interface/assets/{ConfigActionSnapshot-zMe3SPvW.js → ConfigActionSnapshot-BATLRmh6.js} +1 -1
  30. package/dist/interface/assets/{ConfigActionVariable-BE5q3NwY.js → ConfigActionVariable-Dgn5jvaR.js} +1 -1
  31. package/dist/interface/assets/{ConfigConditionIfElse-BNIRtSVD.js → ConfigConditionIfElse-D5IIBjyk.js} +1 -1
  32. package/dist/interface/assets/{ConfigConditionSensorState-DTNd-SzI.js → ConfigConditionSensorState-C0JxBWdG.js} +1 -1
  33. package/dist/interface/assets/{ConfigConditionSwitch-BU5wWMU1.js → ConfigConditionSwitch-Brlgd0XP.js} +1 -1
  34. package/dist/interface/assets/{ConfigConditionTime-KXTCIVIV.js → ConfigConditionTime-CM4bSMyU.js} +1 -1
  35. package/dist/interface/assets/{ConfigSensorValueInput-BC1FpMm-.js → ConfigSensorValueInput-CtuH8dCa.js} +1 -1
  36. package/dist/interface/assets/{ConfigTriggerDetection-hIN1hi53.js → ConfigTriggerDetection-DsL7lLQl.js} +1 -1
  37. package/dist/interface/assets/ConfigTriggerGeofence-CAGIk1_W.js +1 -0
  38. package/dist/interface/assets/{ConfigTriggerManual-C5vwxS-e.js → ConfigTriggerManual-DgkR-GWy.js} +1 -1
  39. package/dist/interface/assets/{ConfigTriggerMqtt-B4PtWC3E.js → ConfigTriggerMqtt-B_iFalAQ.js} +1 -1
  40. package/dist/interface/assets/{ConfigTriggerSchedule-BZzUdGBa.js → ConfigTriggerSchedule-E_QWfNKy.js} +1 -1
  41. package/dist/interface/assets/{ConfigTriggerSensor-D18nwMsj.js → ConfigTriggerSensor-hYNbLXUu.js} +1 -1
  42. package/dist/interface/assets/{ConfigTriggerSystem-BhygWLB4.js → ConfigTriggerSystem-DR1EFpE9.js} +1 -1
  43. package/dist/interface/assets/{ConfigTriggerWebhook-yyuBuhLD.js → ConfigTriggerWebhook-C-B5GGFH.js} +1 -1
  44. package/dist/interface/assets/Console-cIr6lYux.js +1 -0
  45. package/dist/interface/assets/CuiAssistantConversation-Bigl43Ph.js +5 -0
  46. package/dist/interface/assets/CuiAssistantConversation-BmshW6Vc.css +1 -0
  47. package/dist/interface/assets/CuiAutomationRunsDialog-Ci7SWAml.js +1 -0
  48. package/dist/interface/assets/{CuiBottomSheet-DWefGWK2.js → CuiBottomSheet-C2sM2E3M.js} +1 -1
  49. package/dist/interface/assets/CuiBottomSheet-ViBOgklN.js +1 -0
  50. package/dist/interface/assets/CuiCameraPipCard-wdK7xir-.js +1 -0
  51. package/dist/interface/assets/CuiCameraRecordings-BB7bF67B.js +1 -0
  52. package/dist/interface/assets/{CuiCameraShares-DcqOcePX.js → CuiCameraShares-B6jdUBVm.js} +1 -1
  53. package/dist/interface/assets/CuiCameraTable-CHnQFkce.js +1 -0
  54. package/dist/interface/assets/{CuiCameraTable-BOkfp_5M.js → CuiCameraTable-CpBo25Qc.js} +2 -2
  55. package/dist/interface/assets/{CuiChartTable-DP38uBwK.js → CuiChartTable-dIcxGtfl.js} +1 -1
  56. package/dist/interface/assets/{CuiConsole-C7xE_nQg.js → CuiConsole-BGptpT6r.js} +2 -2
  57. package/dist/interface/assets/CuiDataTable-CQmp5mAy.js +1 -0
  58. package/dist/interface/assets/CuiLightControl-wbZi3fA1.js +1 -0
  59. package/dist/interface/assets/{CuiList-DJp0__mV.js → CuiList-Dsu5m0TA.js} +1 -1
  60. package/dist/interface/assets/{CuiMarkdownContent-BUYtK_wD.js → CuiMarkdownContent-BYBQX_aF.js} +1 -1
  61. package/dist/interface/assets/CuiMarkdownContent-DTAm-EDR.js +1 -0
  62. package/dist/interface/assets/CuiPluginCard-BjIc7It9.js +2 -0
  63. package/dist/interface/assets/{CuiPluginCategoryChip-Ch_upS6Y.js → CuiPluginCategoryChip-BtJ_6_gN.js} +1 -1
  64. package/dist/interface/assets/{CuiPluginOAuthButton-DEQ9xILN.js → CuiPluginOAuthButton-Duf35I8K.js} +2 -2
  65. package/dist/interface/assets/{CuiPluginTrustBadge-sVWdvHcM.js → CuiPluginTrustBadge-jxXeRTH2.js} +1 -1
  66. package/dist/interface/assets/{CuiQRCode-DqSF4SkD.js → CuiQRCode-BNchrpoB.js} +1 -1
  67. package/dist/interface/assets/CuiSchema-DGTMkVSe.js +1 -0
  68. package/dist/interface/assets/{CuiTopNavbarItem-B_KWykgq.js → CuiTopNavbarItem-CHtLvn53.js} +1 -1
  69. package/dist/interface/assets/Faces-p18jNfXl.js +1 -0
  70. package/dist/interface/assets/FirstSteps-HzaBMDbH.js +1 -0
  71. package/dist/interface/assets/Floorplan-DYyEx7WO.js +1 -0
  72. package/dist/interface/assets/Instances-Dl-6rL5O.js +1 -0
  73. package/dist/interface/assets/{Logs-BSPT80vP.js → Logs-DsJkuQFq.js} +2 -2
  74. package/dist/interface/assets/{Menu-HHtuhIS2.js → Menu-D_woMkjL.js} +1 -1
  75. package/dist/interface/assets/Metrics-ChVnC6f6.css +1 -0
  76. package/dist/interface/assets/Metrics-l3UwykCM.js +12 -0
  77. package/dist/interface/assets/{OAuthDeviceFlow-Bn1nlWNa.js → OAuthDeviceFlow-CXfILAE1.js} +1 -1
  78. package/dist/interface/assets/Plugin-Ldj3HygQ.js +1 -0
  79. package/dist/interface/assets/Plugin-Qr_Q_Qfi.css +1 -0
  80. package/dist/interface/assets/{PluginConsole-Cv-uhnPY.js → PluginConsole-C96m5zKy.js} +1 -1
  81. package/dist/interface/assets/{PluginDetail-cpOz7FkA.js → PluginDetail-CnfaI1vh.js} +2 -2
  82. package/dist/interface/assets/{PluginSchema-DW3TGeTM.js → PluginSchema-u1bqXU29.js} +1 -1
  83. package/dist/interface/assets/PluginSearch-BiXG3Xk2.js +2 -0
  84. package/dist/interface/assets/PluginSearch-BuE7we1T.js +1 -0
  85. package/dist/interface/assets/{PluginUpdateProgress-n6q6vzyd.js → PluginUpdateProgress-BT4lN9HT.js} +1 -1
  86. package/dist/interface/assets/Plugins-Csx6AXaW.js +1 -0
  87. package/dist/interface/assets/{RecentEventsFilter-CTR5JK_P.js → RecentEventsFilter-Kp_lTOuG.js} +1 -1
  88. package/dist/interface/assets/Recordings-BEKAn6QK.css +1 -0
  89. package/dist/interface/assets/Recordings-D0KTY5cI.js +1 -0
  90. package/dist/interface/assets/SensorEdit-zs-f_o1N.js +1 -0
  91. package/dist/interface/assets/{SensorHistory-9CdOpCPs.js → SensorHistory-Cet35_RO.js} +1 -1
  92. package/dist/interface/assets/Sensors-BLAoalEt.js +2 -0
  93. package/dist/interface/assets/Settings-C-LCDIbK.js +1 -0
  94. package/dist/interface/assets/SettingsAccount-BsN7jGmo.js +1 -0
  95. package/dist/interface/assets/SettingsAccount-DuVyCSE-.js +1 -0
  96. package/dist/interface/assets/{SettingsAppearance-BY1xQMx4.js → SettingsAppearance-BS4EQNjH.js} +1 -1
  97. package/dist/interface/assets/SettingsAppearance-DQcGbYbV.js +1 -0
  98. package/dist/interface/assets/SettingsAssistant-B0PF3Rdg.css +1 -0
  99. package/dist/interface/assets/SettingsAssistant-DViJklFd.js +1 -0
  100. package/dist/interface/assets/{SettingsBackup-D_weokqu.js → SettingsBackup-DBlV1gej.js} +1 -1
  101. package/dist/interface/assets/{SettingsList-Bq24WTDU.js → SettingsList-D8eSwbBY.js} +1 -1
  102. package/dist/interface/assets/SettingsMqtt-JoszJJgV.js +1 -0
  103. package/dist/interface/assets/{SettingsNotifications-8TZOUxg2.js → SettingsNotifications-3veSrxa_.js} +1 -1
  104. package/dist/interface/assets/{SettingsPermissions-M8u_jrN0.js → SettingsPermissions-CJiz0Z7B.js} +1 -1
  105. package/dist/interface/assets/{SettingsRecordings-C1Kp5xW_.js → SettingsRecordings-CLz9Zp47.js} +1 -1
  106. package/dist/interface/assets/SettingsRemote-DUyl8k7I.js +2 -0
  107. package/dist/interface/assets/{SettingsSystem-Cetu2faJ.js → SettingsSystem-txTFGomQ.js} +2 -2
  108. package/dist/interface/assets/{SettingsUsers-CDwtQLdV.js → SettingsUsers-CUp6vQPc.js} +1 -1
  109. package/dist/interface/assets/Terminal-hln2UuSR.js +4 -0
  110. package/dist/interface/assets/Training-Bkn52mPJ.css +1 -0
  111. package/dist/interface/assets/Training-D6lhvUf-.js +1 -0
  112. package/dist/interface/assets/Updates-BwSWt9w7.js +2 -0
  113. package/dist/interface/assets/{VariableInput-BxPj5wo6.js → VariableInput-183LygmK.js} +1 -1
  114. package/dist/interface/assets/{VariableSuggestions-CbizvAkz.js → VariableSuggestions-DwLtlzVz.js} +1 -1
  115. package/dist/interface/assets/{VersionsHandler-CePyEUVO.js → VersionsHandler-DkbkcypK.js} +2 -2
  116. package/dist/interface/assets/{VirtualSensorCreate-D_GVoeL7.js → VirtualSensorCreate-Bn4tgdxA.js} +1 -1
  117. package/dist/interface/assets/Workers-B6b15izn.js +2 -0
  118. package/dist/interface/assets/{account-Bu30He0P.js → account-DwW7pBOb.js} +1 -1
  119. package/dist/interface/assets/{alert-circle-D2fAQwTX.js → alert-circle-BdUVAt1B.js} +1 -1
  120. package/dist/interface/assets/{alert-outline-D7zaSJH_.js → alert-outline-IRxYbw0j.js} +1 -1
  121. package/dist/interface/assets/api-C9mnOxie.js +4 -0
  122. package/dist/interface/assets/api-Cj9a6qPu.css +2 -0
  123. package/dist/interface/assets/{api-DW2niHRN.js → api-h4HRB3ef.js} +1 -1
  124. package/dist/interface/assets/{arrow-left-BGLyEqqa.js → arrow-left-Bk-ZrOVr.js} +1 -1
  125. package/dist/interface/assets/assistant-4hYyIu6D.js +1 -0
  126. package/dist/interface/assets/{assistantModels-D0soYqq7.js → assistantModels-BsSgRsws.js} +1 -1
  127. package/dist/interface/assets/{auth-Dc8bUpc-.js → auth-DFesRtwI.js} +1 -1
  128. package/dist/interface/assets/{automations-DXrjbArj.js → automations-D2bnX8uw.js} +1 -1
  129. package/dist/interface/assets/{back-filled-BPBVnQjx.js → back-filled-D-X19YMO.js} +1 -1
  130. package/dist/interface/assets/{bell-ring-CyCFPUL_.js → bell-ring-DreEHgoT.js} +1 -1
  131. package/dist/interface/assets/{brain-CIJB1ree.js → brain-DuDAg544.js} +1 -1
  132. package/dist/interface/assets/{cameraSources-QJfUDOQJ.js → cameraSources-DmVZWs4-.js} +1 -1
  133. package/dist/interface/assets/{cctv-D6kxZ-lp.js → cctv-DM-C_8_6.js} +1 -1
  134. package/dist/interface/assets/{check-circle-DHAAn6A6.js → check-circle-Bevuw8-0.js} +1 -1
  135. package/dist/interface/assets/{check-circle-outline-BbqeKfIK.js → check-circle-outline-aMxkvksr.js} +1 -1
  136. package/dist/interface/assets/{chevron-down-ZYTrU871.js → chevron-down-CCFn9Z56.js} +1 -1
  137. package/dist/interface/assets/{chevron-up-LQXNz9CE.js → chevron-up-CSImUM3_.js} +1 -1
  138. package/dist/interface/assets/{clock-outline-CKTiLKoR.js → clock-outline-DH3WIEJt.js} +1 -1
  139. package/dist/interface/assets/{close-BbEPZQqa.js → close-CMxyM4v9.js} +1 -1
  140. package/dist/interface/assets/{close-circle-BSUSUs4K.js → close-circle-CfgJCZ9A.js} +1 -1
  141. package/dist/interface/assets/{cloud-check-BTGbrAQ_.js → cloud-check-CbdFLIdR.js} +1 -1
  142. package/dist/interface/assets/cloudHandoff-Ba98bzeq.js +1 -0
  143. package/dist/interface/assets/{config-CiQDwB4t.js → config-DDaCrMSU.js} +1 -1
  144. package/dist/interface/assets/{content-copy-V0DW9ZbH.js → content-copy-Bz49QPOI.js} +1 -1
  145. package/dist/interface/assets/{copy-DsmMEtSH.js → copy-DA6QQHRt.js} +1 -1
  146. package/dist/interface/assets/{cube-scan-DGhUFV1x.js → cube-scan-IiH8zwm2.js} +1 -1
  147. package/dist/interface/assets/database-refresh-outline-CIUDpcuq.js +1 -0
  148. package/dist/interface/assets/{delete-CY8fsIW6.js → delete-Btu-UVx9.js} +1 -1
  149. package/dist/interface/assets/{dist-DNyx_J8o.js → dist-D_qWDAKp.js} +1 -1
  150. package/dist/interface/assets/{dots-vertical-pP1vP0Qa.js → dots-vertical-D496SIss.js} +1 -1
  151. package/dist/interface/assets/{download-CyjJ7yJW.js → download-BSC7lwq_.js} +1 -1
  152. package/dist/interface/assets/esm-Bn9gXwX4.js +1 -0
  153. package/dist/interface/assets/esm-BzM6y2-F.js +1 -0
  154. package/dist/interface/assets/esm-CP3JWrtj.js +1 -0
  155. package/dist/interface/assets/esm-CjAXkqCf.js +1 -0
  156. package/dist/interface/assets/esm-Cqxk-j1S.js +1 -0
  157. package/dist/interface/assets/esm-DFHd3JNU.js +1 -0
  158. package/dist/interface/assets/esm-DfMLJtug.js +1 -0
  159. package/dist/interface/assets/esm-DhDrpq7a.js +1 -0
  160. package/dist/interface/assets/esm-DvhM-SOd.js +1 -0
  161. package/dist/interface/assets/esm-G63bqygQ.js +1 -0
  162. package/dist/interface/assets/esm-Gn-Y59hU.js +1 -0
  163. package/dist/interface/assets/esm-KJSOz2vj.js +1 -0
  164. package/dist/interface/assets/esm-Ryfc94Tm.js +1 -0
  165. package/dist/interface/assets/esm-rSfI5Poy.js +1 -0
  166. package/dist/interface/assets/{eventIcons-cdzqQc0W.js → eventIcons-UQutPG3p.js} +1 -1
  167. package/dist/interface/assets/{eye-off-JCu1iUer.js → eye-off-CSU0U8g7.js} +1 -1
  168. package/dist/interface/assets/{eye-off-outline-GErp76H2.js → eye-off-outline-DCxLRGo_.js} +1 -1
  169. package/dist/interface/assets/{flowSchema-BRTZHQ1w.js → flowSchema-YJtAu9gB.js} +1 -1
  170. package/dist/interface/assets/{help-circle-outline-G43EJuch.js → help-circle-outline-Cr_yNhPi.js} +1 -1
  171. package/dist/interface/assets/{history-CNJREqJG.js → history-anuCbp1T.js} +1 -1
  172. package/dist/interface/assets/{home-B-_OQpZ6.js → home-N3bDR1vX.js} +1 -1
  173. package/dist/interface/assets/{information-outline-Blt4EtWJ.js → information-outline-CMWIvLNB.js} +1 -1
  174. package/dist/interface/assets/{intercomService-BnA-FQ0Q.js → intercomService-CjoJaOZ7.js} +1 -1
  175. package/dist/interface/assets/{lan-C3jliANx.js → lan-CYXjdk7L.js} +1 -1
  176. package/dist/interface/assets/main-C796FmqQ.js +3 -0
  177. package/dist/interface/assets/{main-BoGhBedC.css → main-DVa5U7UB.css} +1 -1
  178. package/dist/interface/assets/{microphone-B6xc9JQ2.js → microphone-BB2pATI_.js} +1 -1
  179. package/dist/interface/assets/{minus-BI5qXFwJ.js → minus-BCp3ZNKO.js} +1 -1
  180. package/dist/interface/assets/{mqtt-iD9XHYO_.js → mqtt-DGBPptzB.js} +1 -1
  181. package/dist/interface/assets/native-CZJE8bTs.js +1 -0
  182. package/dist/interface/assets/native-DKZwialB.js +1 -0
  183. package/dist/interface/assets/{nodeDefinitions-Dop49tx8.js → nodeDefinitions-ByrqsENY.js} +1 -1
  184. package/dist/interface/assets/{notifications-CbAJX7RF.js → notifications-5yeK345h.js} +1 -1
  185. package/dist/interface/assets/{pause-DKzvPG2b.js → pause-BQlxwAW2.js} +1 -1
  186. package/dist/interface/assets/{pencil-DKbi9SsG.js → pencil-CDsNnEXi.js} +1 -1
  187. package/dist/interface/assets/{pencil-outline-CD3Xv98d.js → pencil-outline-CIQL5Kui.js} +1 -1
  188. package/dist/interface/assets/plugin-DSEMkqaK.js +1 -0
  189. package/dist/interface/assets/{plugins-eIUrXNeM.js → plugins-BTOdE_zv.js} +1 -1
  190. package/dist/interface/assets/{plus-CHPYoMO_.js → plus-Bp4q9G7S.js} +1 -1
  191. package/dist/interface/assets/{plus--kDl8ben.js → plus-CySoovdr.js} +1 -1
  192. package/dist/interface/assets/{power-C9wmNlFS.js → power-WmBLDR0-.js} +1 -1
  193. package/dist/interface/assets/{radar-B3ra28GD.js → radar-CyYAmume.js} +1 -1
  194. package/dist/interface/assets/{refresh-DfqyhMOh.js → refresh-CHTA3jVN.js} +1 -1
  195. package/dist/interface/assets/{restore-FMacmqd_.js → restore-C8RNM5yX.js} +1 -1
  196. package/dist/interface/assets/{rooms-BqPyo8jc.js → rooms-BCdm6IAx.js} +1 -1
  197. package/dist/interface/assets/{round-alt-arrow-left-bold-56eF9Bol.js → round-alt-arrow-left-bold-Gh5mi_yR.js} +1 -1
  198. package/dist/interface/assets/{search-BXbDWhLk.js → search-BajCVmOI.js} +1 -1
  199. package/dist/interface/assets/sensorIcons-5Ynqwo3e.js +1 -0
  200. package/dist/interface/assets/{sensorSlots-BZCXtnb6.js → sensorSlots-BF70tpV7.js} +1 -1
  201. package/dist/interface/assets/{sensors-DttBNEEt.js → sensors-CeFEEz8r.js} +1 -1
  202. package/dist/interface/assets/{server-DUFhf2c_.js → server-bhW2Mw4D.js} +1 -1
  203. package/dist/interface/assets/{settings-Cw63SIJl.js → settings-DnksaK7m.js} +1 -1
  204. package/dist/interface/assets/{source-branch-oyzrlfCD.js → source-branch-CzqIPffP.js} +1 -1
  205. package/dist/interface/assets/{theme-BMmjtQ4w.js → theme-DF_XA58O.js} +1 -1
  206. package/dist/interface/assets/{trash-2-BQc04l9M.js → trash-2-DJeEhHf4.js} +1 -1
  207. package/dist/interface/assets/{trash-can-outline-Bk5eENNM.js → trash-can-outline-DrT6iw7I.js} +1 -1
  208. package/dist/interface/assets/{trash-fill-CXk8BmtF.js → trash-fill-Bb_-UicM.js} +1 -1
  209. package/dist/interface/assets/{trash2-2rUvghml.js → trash2-Dsl8gfxq.js} +1 -1
  210. package/dist/interface/assets/{types-CXw7CEzu.js → types-ArGM5-5O.js} +1 -1
  211. package/dist/interface/assets/types-BcAxmlqC.js +1 -0
  212. package/dist/interface/assets/{types-DWTSNJ79.js → types-CklFkUXk.js} +1 -1
  213. package/dist/interface/assets/{undo-Dcf7vcsv.js → undo-DoqJW-k7.js} +1 -1
  214. package/dist/interface/assets/{ungrouped-DHMJ9Rg1.css → ungrouped-BnQIcSQd.css} +1 -1
  215. package/dist/interface/assets/ungrouped-CkIlDUwl.js +1 -0
  216. package/dist/interface/assets/{updates-TIPWXKzL.js → updates-D3x_kPMM.js} +1 -1
  217. package/dist/interface/assets/{upload-nnbfDypK.js → upload-C3w1XH-o.js} +1 -1
  218. package/dist/interface/assets/{upload-B-ZYPekV.js → upload-DtIcwiNC.js} +1 -1
  219. package/dist/interface/assets/{useAppVersion-BIz44Bg4.js → useAppVersion-Dcvu95bZ.js} +1 -1
  220. package/dist/interface/assets/{useAssistantActions-CLkkw9kB.js → useAssistantActions-Cc_O6M9_.js} +1 -1
  221. package/dist/interface/assets/useBackupRestore-xp5KhKVn.js +1 -0
  222. package/dist/interface/assets/{useCameraOptions-A97teAIr.js → useCameraOptions-8I4MTDgj.js} +1 -1
  223. package/dist/interface/assets/useKeyboardInset-C0Lp0UcX.js +1 -0
  224. package/dist/interface/assets/{useLogsSocket-BlFxVXjF.js → useLogsSocket-bpOiLgWT.js} +1 -1
  225. package/dist/interface/assets/{useNavLayout-C5obaCNv.js → useNavLayout-Cjf6Da2u.js} +1 -1
  226. package/dist/interface/assets/{usePermissions-C8hB_pG1.js → usePermissions-BXTw4tII.js} +1 -1
  227. package/dist/interface/assets/{usePluginUpdates-DO0-Gk4Q.js → usePluginUpdates-bOMj-IvL.js} +1 -1
  228. package/dist/interface/assets/{usePushRegistration-BUttCraQ.js → usePushRegistration-HOvLuUVP.js} +2 -2
  229. package/dist/interface/assets/{useServerRestart-Cz9eVHUE.js → useServerRestart-CQN4cdHJ.js} +1 -1
  230. package/dist/interface/assets/{useStreamStatus-BhS_MCCB.js → useStreamStatus-Da7c2Wme.js} +1 -1
  231. package/dist/interface/assets/{useTabSwipe-D4k8lm1M.js → useTabSwipe-fFuyJJBQ.js} +1 -1
  232. package/dist/interface/assets/{useUpdateChannel-D9lhfW0y.js → useUpdateChannel-Ca1RX32u.js} +1 -1
  233. package/dist/interface/assets/{useUpdatesSocket-DnH9sON5.js → useUpdatesSocket-DHZNpLQX.js} +1 -1
  234. package/dist/interface/assets/useUserOptions-BQdOB-Dp.js +1 -0
  235. package/dist/interface/assets/{variable-CcE0ZwTr.js → variable-ywTlRfo5.js} +1 -1
  236. package/dist/interface/assets/{vendor-cameraui-QXD8jkcj.js → vendor-cameraui-CK4yHsJi.js} +45 -45
  237. package/dist/interface/assets/{vendor-capacitor-COL6Kz75.js → vendor-capacitor-Bs_WzL0Q.js} +2 -2
  238. package/dist/interface/assets/{vendor-chart-80wrH3md.js → vendor-chart-DBK083Hu.js} +1 -1
  239. package/dist/interface/assets/{vendor-core-CnhnyKDl.js → vendor-core-B-Q4es-f.js} +1 -1
  240. package/dist/interface/assets/{vendor-dnd-CEJS9JKU.js → vendor-dnd-DGQLvX6Y.js} +1 -1
  241. package/dist/interface/assets/{vendor-draggabilly-BY7O1F_Z.js → vendor-draggabilly-D8CK6M-y.js} +1 -1
  242. package/dist/interface/assets/{vendor-DGke_6M4.js → vendor-gFkr2qsZ.js} +1 -1
  243. package/dist/interface/assets/vendor-gridstack-DtDG3os6.js +3 -0
  244. package/dist/interface/assets/{vendor-markdown-DD4teg2u.js → vendor-markdown-qHIinIUE.js} +1 -1
  245. package/dist/interface/assets/{vendor-primevue-CCUqY55W.js → vendor-primevue-Cmp3VjIC.js} +72 -72
  246. package/dist/interface/assets/{vendor-vueflow-Bmwd2les.js → vendor-vueflow-bSwRZ9X8.js} +1 -1
  247. package/dist/interface/assets/web-BDNQnMmA.js +1 -0
  248. package/dist/interface/assets/web-B_9Qyt8E.js +1 -0
  249. package/dist/interface/assets/web-BhJykCtq.js +1 -0
  250. package/dist/interface/assets/web-BjKL51lK-wWFeZlLg.js +1 -0
  251. package/dist/interface/assets/web-C7nJwIOa.js +1 -0
  252. package/dist/interface/assets/web-CGJsJQDb.js +1 -0
  253. package/dist/interface/assets/web-CJwASxrl.js +1 -0
  254. package/dist/interface/assets/web-CLe0L31Y.js +1 -0
  255. package/dist/interface/assets/web-DEv1hAn1.js +1 -0
  256. package/dist/interface/assets/web-DaeQvsXT.js +1 -0
  257. package/dist/interface/assets/web-H3-wNunW.js +1 -0
  258. package/dist/interface/assets/web-LCdyqJq1.js +1 -0
  259. package/dist/interface/assets/web-XZWYTK65.js +1 -0
  260. package/dist/interface/assets/web-rU5hlxxW.js +1 -0
  261. package/dist/interface/assets/{webhook-oVbP79Yk.js → webhook-CWKf2Qxu.js} +1 -1
  262. package/dist/interface/assets/workbox-window.prod.es5-BEYAF-e-.js +1 -0
  263. package/dist/interface/assets/{zoom-in-GKNy8xA7.js → zoom-in-CHkXAWHy.js} +1 -1
  264. package/dist/interface/ha/{404-DLhJqxRl.js → 404-C0mWQGWl.js} +1 -1
  265. package/dist/interface/ha/{About-DC0i1iE4.js → About-ByE7XErJ.js} +6 -6
  266. package/dist/interface/ha/{Assistant-BmazMPIg.js → Assistant-Z3FTR868.js} +2233 -2099
  267. package/dist/interface/ha/{Automation-gabF9YzQ.js → Automation-COQqTFNw.js} +237 -237
  268. package/dist/interface/ha/{AutomationImport-DaqZNs9s.js → AutomationImport-ueWqMBX9.js} +6 -6
  269. package/dist/interface/ha/{AutomationStore-DzM4huo5.js → AutomationStore-DBO4aZqy.js} +76 -76
  270. package/dist/interface/ha/{AutomationStoreDetail-CpzQMt_D.js → AutomationStoreDetail-DMnYu7hf.js} +19 -19
  271. package/dist/interface/ha/{Automations-Dcm4Us50.js → Automations-CMdbidc0.js} +73 -73
  272. package/dist/interface/ha/{Camera-CNK3QR7l.js → Camera-C28q_3pu.js} +183 -180
  273. package/dist/interface/ha/{CameraConsole-CpcF0411.js → CameraConsole-oMNZfKE6.js} +3 -3
  274. package/dist/interface/ha/{Cameras-Cf9rwRyf.js → Cameras-CsqrLx97.js} +166 -166
  275. package/dist/interface/ha/{Camview-BFKR2t6C.js → Camview-Br0LUakz.js} +389 -389
  276. package/dist/interface/ha/{Config-1XH3zfr2.js → Config-Y5eUNSW7.js} +110 -110
  277. package/dist/interface/ha/{ConfigActionAssistant-C0-NFoTB.js → ConfigActionAssistant-hl-6ZACj.js} +4 -4
  278. package/dist/interface/ha/{ConfigActionCameraControl-DNSKZPSZ.js → ConfigActionCameraControl-DnXlVFWD.js} +3 -3
  279. package/dist/interface/ha/{ConfigActionHttp-DVJAcGkl.js → ConfigActionHttp-BkpkMmRd.js} +2 -2
  280. package/dist/interface/ha/{ConfigActionImageInput-VVbHHHZs.js → ConfigActionImageInput-Dp78_QS_.js} +1 -1
  281. package/dist/interface/ha/{ConfigActionMqtt-N5OUJDzM.js → ConfigActionMqtt-DA_UWb5j.js} +4 -4
  282. package/dist/interface/ha/{ConfigActionNotification-s142tQoU.js → ConfigActionNotification-CQ4Ses3a.js} +3 -3
  283. package/dist/interface/ha/{ConfigActionNotificationControl-Dh7kaKVP.js → ConfigActionNotificationControl-Cb5PNGz-.js} +2 -2
  284. package/dist/interface/ha/{ConfigActionOutput-B4HHTg5C.js → ConfigActionOutput-DLuNHwRb.js} +1 -1
  285. package/dist/interface/ha/{ConfigActionPlugin-D20G2Dqf.js → ConfigActionPlugin-ChKFCNaj.js} +5 -5
  286. package/dist/interface/ha/{ConfigActionSensor-BS3jrFaG.js → ConfigActionSensor-DOutFalW.js} +5 -5
  287. package/dist/interface/ha/{ConfigActionSnapshot-CInLAcwK.js → ConfigActionSnapshot-GWgY6YIN.js} +2 -2
  288. package/dist/interface/ha/{ConfigActionVariable-C5vADGNF.js → ConfigActionVariable-bu-9VYTG.js} +1 -1
  289. package/dist/interface/ha/{ConfigConditionIfElse-CPeWDD31.js → ConfigConditionIfElse-iNp8tlZV.js} +3 -3
  290. package/dist/interface/ha/{ConfigConditionSensorState-BM5GmpN6.js → ConfigConditionSensorState-Dn7kcHpJ.js} +4 -4
  291. package/dist/interface/ha/{ConfigConditionSwitch-Dmz9FduJ.js → ConfigConditionSwitch-DaUlDgo0.js} +5 -5
  292. package/dist/interface/ha/{ConfigSensorValueInput-Ch5njvtv.js → ConfigSensorValueInput-D6m6suqJ.js} +9 -9
  293. package/dist/interface/ha/{ConfigTriggerDetection-BR2QWNyO.js → ConfigTriggerDetection-C5B_DC_L.js} +12 -12
  294. package/dist/interface/ha/{ConfigTriggerGeofence-CaImOjyW.js → ConfigTriggerGeofence-B4WVNcK5.js} +5 -5
  295. package/dist/interface/ha/{ConfigTriggerMqtt-DWz1XwZQ.js → ConfigTriggerMqtt-wnMfk_Un.js} +1 -1
  296. package/dist/interface/ha/{ConfigTriggerSensor-lfnhz0im.js → ConfigTriggerSensor-xFpI5KPu.js} +1 -1
  297. package/dist/interface/ha/{ConfigTriggerSystem-CwUhyFAj.js → ConfigTriggerSystem-YI9WYYVM.js} +2 -2
  298. package/dist/interface/ha/{ConfigTriggerWebhook-J6Xts7GQ.js → ConfigTriggerWebhook-58c2KgUe.js} +2 -2
  299. package/dist/interface/ha/{Console-BSdKFm6Y.js → Console-Coiqh32K.js} +13 -13
  300. package/dist/interface/ha/{CuiAutomationRunsDialog-BU8sympp.js → CuiAutomationRunsDialog-CJ2MGfEY.js} +2 -2
  301. package/dist/interface/ha/{CuiBottomSheet-Bnp7ta7V.js → CuiBottomSheet-BlG9Pl9j.js} +1 -1
  302. package/dist/interface/ha/{CuiCameraRecordings-E-mMqKSs.js → CuiCameraRecordings-DLXEB4Q7.js} +13 -13
  303. package/dist/interface/ha/{CuiCameraShares-DcNwd2OC.js → CuiCameraShares-BCIeaM6u.js} +6 -6
  304. package/dist/interface/ha/{CuiCameraTable-DNW9Vm_A.js → CuiCameraTable-PYYC7sOu.js} +9 -9
  305. package/dist/interface/ha/{CuiChartTable-muC7jL2H.js → CuiChartTable-FQ2iR5Hd.js} +42 -42
  306. package/dist/interface/ha/{CuiConsole-ND8bcuTg.js → CuiConsole-C77k5q_-.js} +6 -6
  307. package/dist/interface/ha/{CuiDataTable-CN4T8DgP.js → CuiDataTable-CIKQLseG.js} +6 -6
  308. package/dist/interface/ha/{CuiPluginCard-nIQiyQvH.js → CuiPluginCard-DZNXKP_P.js} +51 -51
  309. package/dist/interface/ha/{CuiPluginOAuthButton-FJ49NfUh.js → CuiPluginOAuthButton-DVf52_Zc.js} +6 -6
  310. package/dist/interface/ha/{CuiPluginTrustBadge-D6eanMyI.js → CuiPluginTrustBadge-CPljYiM8.js} +3 -3
  311. package/dist/interface/ha/{CuiQRCode-BdJzeeoE.js → CuiQRCode-oe8PLnLj.js} +7 -7
  312. package/dist/interface/ha/{CuiSchema-DY0V-8xP.js → CuiSchema-CQy94ZTs.js} +60 -60
  313. package/dist/interface/ha/{CuiTopNavbarItem-DT5pAKHp.js → CuiTopNavbarItem-D6OHZLQY.js} +5 -5
  314. package/dist/interface/ha/Faces-DxAPvemO.js +1441 -0
  315. package/dist/interface/ha/{FirstSteps-yS2M2cor.js → FirstSteps-ZINTSaeL.js} +67 -67
  316. package/dist/interface/ha/{Floorplan-DSOeScjI.js → Floorplan-DkbL8ppT.js} +300 -300
  317. package/dist/interface/ha/{Instances-B4h5EKpF.js → Instances-totWtqd7.js} +66 -66
  318. package/dist/interface/ha/{Logs-BH0Lxvs6.js → Logs-CzabIFja.js} +11 -11
  319. package/dist/interface/ha/{Menu-COH7QXuE.js → Menu-DcVBOQfw.js} +12 -12
  320. package/dist/interface/ha/{Metrics-BtnRqL_I.js → Metrics-B_SN5hbp.js} +410 -409
  321. package/dist/interface/ha/{OAuthDeviceFlow-D2QJ9MnP.js → OAuthDeviceFlow-B28TPsTQ.js} +7 -7
  322. package/dist/interface/ha/{Plugin-EfUSqwyh.js → Plugin-B2PbbB8d.js} +418 -279
  323. package/dist/interface/ha/{PluginConsole-hh_o15f7.js → PluginConsole-_KeG4FvO.js} +4 -4
  324. package/dist/interface/ha/{PluginDetail-DFiXGkrY.js → PluginDetail-GK_Fx14e.js} +185 -185
  325. package/dist/interface/ha/{PluginSearch-Cdrfubrj.js → PluginSearch-qSy4aqAW.js} +51 -51
  326. package/dist/interface/ha/{PluginUpdateProgress-BD2g2kVj.js → PluginUpdateProgress-C4Q2j6VO.js} +3 -3
  327. package/dist/interface/ha/{Plugins-qFiHW-Nk.js → Plugins-D0tvZHie.js} +64 -64
  328. package/dist/interface/ha/{RecentEventsFilter-UWrXnvfq.js → RecentEventsFilter-9ZkDHD1g.js} +1 -1
  329. package/dist/interface/ha/{Recordings-BzeC6tOz.js → Recordings-CpxJYaAa.js} +510 -489
  330. package/dist/interface/ha/{SensorEdit-BSgy7lkZ.js → SensorEdit-8KtqLXEu.js} +377 -377
  331. package/dist/interface/ha/{SensorHistory-IDvP8LKH.js → SensorHistory-CPTTsdjM.js} +2 -2
  332. package/dist/interface/ha/{Sensors-Diqp4oZ0.js → Sensors-DJt_Hnn2.js} +484 -469
  333. package/dist/interface/ha/{Settings-BgDsxAlx.js → Settings-B-OdG5pG.js} +18 -18
  334. package/dist/interface/ha/{SettingsAccount-DBXMQPYk.js → SettingsAccount-Ba2-2Lbi.js} +175 -175
  335. package/dist/interface/ha/{SettingsAppearance-VmbjnT3o.js → SettingsAppearance-D56HjSuQ.js} +7 -7
  336. package/dist/interface/ha/SettingsAssistant-DglU0auc.js +2025 -0
  337. package/dist/interface/ha/{SettingsBackup-BqY9TwYn.js → SettingsBackup-DZx4McDz.js} +38 -38
  338. package/dist/interface/ha/{SettingsList-CzHcfo2N.js → SettingsList-D9nIGkbE.js} +4 -4
  339. package/dist/interface/ha/{SettingsMqtt-DqV3h3Ow.js → SettingsMqtt-BOszh--k.js} +150 -150
  340. package/dist/interface/ha/{SettingsNotifications-yn5fIR_7.js → SettingsNotifications-DBVpZfp0.js} +118 -118
  341. package/dist/interface/ha/{SettingsRecordings-DDs1lyfY.js → SettingsRecordings-D3oJnizu.js} +9 -9
  342. package/dist/interface/ha/{SettingsRemote-jBw3l5E0.js → SettingsRemote-BOotvcOT.js} +332 -332
  343. package/dist/interface/ha/{SettingsSystem-BOv9hNlk.js → SettingsSystem-Bg11qoQX.js} +10 -10
  344. package/dist/interface/ha/{SettingsUsers-Biv-2F4C.js → SettingsUsers-KpLs9Jnh.js} +92 -92
  345. package/dist/interface/ha/{Terminal-CmcrGEV0.js → Terminal-D6opTHYI.js} +165 -170
  346. package/dist/interface/ha/Training-OB2KOQ7L.js +1694 -0
  347. package/dist/interface/ha/{Updates-DJAcmDQJ.js → Updates-C_OvXJjd.js} +12 -12
  348. package/dist/interface/ha/{VariableInput-DlYg7t0m.js → VariableInput-CfaDp67S.js} +1 -1
  349. package/dist/interface/ha/{VersionsHandler-UnrAWn-b.js → VersionsHandler-D1FVeYUZ.js} +10 -10
  350. package/dist/interface/ha/{VirtualSensorCreate-CssxeaCC.js → VirtualSensorCreate-DJIgMVrt.js} +7 -7
  351. package/dist/interface/ha/{Workers-CLpqLugC.js → Workers-cJMI4mYX.js} +29 -29
  352. package/dist/interface/ha/{api-B_tDa73J.js → api-CDawdL4p.js} +3 -3
  353. package/dist/interface/ha/{api-BP7mlzjP.js → api-D2VzV4is.js} +9943 -9546
  354. package/dist/interface/ha/{assistant-Cb6ACguQ.js → assistant-BmDAfChm.js} +101 -97
  355. package/dist/interface/ha/{auth-DOYDRgFm.js → auth-CvLz9C4w.js} +33 -33
  356. package/dist/interface/ha/{automationBlueprint-CbbG_ku4.js → automationBlueprint-BhNaeOZ1.js} +4 -4
  357. package/dist/interface/ha/{base-C-TYDHjS.js → base-XgWmQghV.js} +14 -3
  358. package/dist/interface/ha/cameraui-cards.js +1 -1
  359. package/dist/interface/ha/{cards-BpBP1zVW.js → cards-MQrnU0T8.js} +1197 -1121
  360. package/dist/interface/ha/{config-DroY1HBs.js → config-t_oAKFkJ.js} +14 -14
  361. package/dist/interface/ha/database-refresh-outline-PiqlCkA7.js +19 -0
  362. package/dist/interface/ha/{dist-BTp4AyuI.js → dist-BIngHzHx.js} +5 -5
  363. package/dist/interface/ha/{dist-C6MBHJhs.js → dist-oFWkn6pD.js} +5 -8
  364. package/dist/interface/ha/{esm-i8Tigknm.js → esm-C9XVFkXu.js} +4 -4
  365. package/dist/interface/ha/{mqtt-NJTVdd53.js → mqtt-C20h1uze.js} +14 -14
  366. package/dist/interface/ha/{native-DBH9ocSq.js → native-BVUxNLM1.js} +4 -4
  367. package/dist/interface/ha/{notifications-BPTvvgvv.js → notifications-Cy9DKiEn.js} +19 -19
  368. package/dist/interface/ha/{pinia-C6gt7A_Q.js → pinia-BokSpDzj.js} +640 -625
  369. package/dist/interface/ha/{plugins-B29K3nQP.js → plugins-jozYyBhV.js} +53 -53
  370. package/dist/interface/ha/{rooms-DLw0WUy_.js → rooms-DyfT3cXp.js} +11 -11
  371. package/dist/interface/ha/{server-B4b5_Ecu.js → server-hCCjQjZE.js} +28 -28
  372. package/dist/interface/ha/{types-DJHHL7nn.js → types-RG0SckNR.js} +49 -38
  373. package/dist/interface/ha/{types-XqA3YJPD.js → types-wLECk3Ml.js} +3 -1
  374. package/dist/interface/ha/{ungrouped-xyK1QrsM.js → ungrouped-BbyfoCQp.js} +121 -121
  375. package/dist/interface/ha/{updates-XFSu9Tfm.js → updates-hUgVDgoD.js} +36 -36
  376. package/dist/interface/ha/{useAppVersion-BH3rU1zz.js → useAppVersion-wNhZDuvR.js} +1 -1
  377. package/dist/interface/ha/useKeyboardInset-Cmbvb_W3.js +27 -0
  378. package/dist/interface/ha/{useLogsSocket-CaTRzvgU.js → useLogsSocket-y9Aex3tJ.js} +1 -1
  379. package/dist/interface/ha/{useNavLayout-DV0_OQx0.js → useNavLayout-Ehb0t34k.js} +2 -2
  380. package/dist/interface/ha/{useServerRestart-C8tynLUf.js → useServerRestart-CRSVcz3z.js} +1 -1
  381. package/dist/interface/ha/{useTabSwipe-CFoLDp3j.js → useTabSwipe-B_bseZkI.js} +1 -1
  382. package/dist/interface/ha/{useUpdateChannel-DSG2RTPe.js → useUpdateChannel-C_GU6lj6.js} +2 -2
  383. package/dist/interface/ha/{useUpdatesSocket-CSQ0g7-6.js → useUpdatesSocket-CYgHb7UX.js} +1 -1
  384. package/dist/interface/ha/{useUserOptions-CFaCy6L1.js → useUserOptions-pVYr-s3O.js} +1 -1
  385. package/dist/interface/ha/{web-D_q41D0i.js → web-CLbVbnCW.js} +5 -5
  386. package/dist/interface/index.html +70 -70
  387. package/dist/interface/sw.js +1 -1
  388. package/dist/server/package.json +30 -30
  389. package/dist/server/requirements.txt +2 -2
  390. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/__init__.py +44 -0
  391. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/camera/config.py +2 -0
  392. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/camera/detection.py +7 -2
  393. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/plugin/__init__.py +42 -0
  394. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/plugin/assistant_models.py +300 -0
  395. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/plugin/contract.py +9 -0
  396. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/plugin/helper.py +21 -0
  397. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/plugin/interfaces.py +80 -4
  398. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/__init__.py +6 -0
  399. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/base.py +2 -0
  400. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/face.py +3 -7
  401. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/face_embedder.py +69 -0
  402. package/dist/server/src/api/controllers/assistant.controller.js +1 -1
  403. package/dist/server/src/api/controllers/assistant.controller.js.map +1 -1
  404. package/dist/server/src/api/controllers/rooms.controller.js +3 -1
  405. package/dist/server/src/api/controllers/rooms.controller.js.map +1 -1
  406. package/dist/server/src/api/database/index.d.ts +1 -1
  407. package/dist/server/src/api/database/index.js +1 -1
  408. package/dist/server/src/api/database/migrations/v2-2-5.d.ts +3 -0
  409. package/dist/server/src/api/database/migrations/v2-2-5.js +19 -0
  410. package/dist/server/src/api/database/migrations/v2-2-5.js.map +1 -0
  411. package/dist/server/src/api/database/record-schemas.d.ts +4 -2
  412. package/dist/server/src/api/database/record-schemas.js +4 -1
  413. package/dist/server/src/api/database/record-schemas.js.map +1 -1
  414. package/dist/server/src/api/database/types.d.ts +6 -1
  415. package/dist/server/src/api/schemas/assistant.schema.d.ts +23 -7
  416. package/dist/server/src/api/schemas/assistant.schema.js +5 -1
  417. package/dist/server/src/api/schemas/assistant.schema.js.map +1 -1
  418. package/dist/server/src/api/schemas/cameras.schema.d.ts +56 -8
  419. package/dist/server/src/api/schemas/cameras.schema.js +4 -3
  420. package/dist/server/src/api/schemas/cameras.schema.js.map +1 -1
  421. package/dist/server/src/api/services/assistant.service.d.ts +1 -1
  422. package/dist/server/src/api/services/assistant.service.js +4 -1
  423. package/dist/server/src/api/services/assistant.service.js.map +1 -1
  424. package/dist/server/src/api/services/cameras.service.d.ts +1 -0
  425. package/dist/server/src/api/services/cameras.service.js +10 -2
  426. package/dist/server/src/api/services/cameras.service.js.map +1 -1
  427. package/dist/server/src/api/websocket/nsp/worker-perf.js +13 -0
  428. package/dist/server/src/api/websocket/nsp/worker-perf.js.map +1 -1
  429. package/dist/server/src/api/websocket/types.d.ts +12 -0
  430. package/dist/server/src/assistant/budget.d.ts +27 -0
  431. package/dist/server/src/assistant/budget.js +118 -0
  432. package/dist/server/src/assistant/budget.js.map +1 -0
  433. package/dist/server/src/assistant/compaction.d.ts +10 -0
  434. package/dist/server/src/assistant/compaction.js +83 -0
  435. package/dist/server/src/assistant/compaction.js.map +1 -0
  436. package/dist/server/src/assistant/docs.js +4 -3
  437. package/dist/server/src/assistant/docs.js.map +1 -1
  438. package/dist/server/src/assistant/history.d.ts +1 -0
  439. package/dist/server/src/assistant/history.js +28 -0
  440. package/dist/server/src/assistant/history.js.map +1 -1
  441. package/dist/server/src/assistant/manager.d.ts +11 -0
  442. package/dist/server/src/assistant/manager.js +262 -63
  443. package/dist/server/src/assistant/manager.js.map +1 -1
  444. package/dist/server/src/assistant/plugin-models.d.ts +34 -0
  445. package/dist/server/src/assistant/plugin-models.js +266 -0
  446. package/dist/server/src/assistant/plugin-models.js.map +1 -0
  447. package/dist/server/src/assistant/prompt.d.ts +7 -1
  448. package/dist/server/src/assistant/prompt.js +75 -11
  449. package/dist/server/src/assistant/prompt.js.map +1 -1
  450. package/dist/server/src/assistant/providers.js +7 -3
  451. package/dist/server/src/assistant/providers.js.map +1 -1
  452. package/dist/server/src/assistant/recap.d.ts +3 -0
  453. package/dist/server/src/assistant/recap.js +65 -0
  454. package/dist/server/src/assistant/recap.js.map +1 -0
  455. package/dist/server/src/assistant/registry.d.ts +16 -1
  456. package/dist/server/src/assistant/registry.js +49 -1
  457. package/dist/server/src/assistant/registry.js.map +1 -1
  458. package/dist/server/src/assistant/retry.js +38 -24
  459. package/dist/server/src/assistant/retry.js.map +1 -1
  460. package/dist/server/src/assistant/router.d.ts +7 -0
  461. package/dist/server/src/assistant/router.js +67 -0
  462. package/dist/server/src/assistant/router.js.map +1 -0
  463. package/dist/server/src/assistant/scheduler.js +8 -1
  464. package/dist/server/src/assistant/scheduler.js.map +1 -1
  465. package/dist/server/src/assistant/skills.d.ts +8 -0
  466. package/dist/server/src/assistant/skills.js +59 -1
  467. package/dist/server/src/assistant/skills.js.map +1 -1
  468. package/dist/server/src/assistant/threads.d.ts +1 -0
  469. package/dist/server/src/assistant/threads.js +7 -1
  470. package/dist/server/src/assistant/threads.js.map +1 -1
  471. package/dist/server/src/assistant/tool-names.js +9 -1
  472. package/dist/server/src/assistant/tool-names.js.map +1 -1
  473. package/dist/server/src/assistant/tool-rank.d.ts +2 -0
  474. package/dist/server/src/assistant/tool-rank.js +48 -0
  475. package/dist/server/src/assistant/tool-rank.js.map +1 -0
  476. package/dist/server/src/assistant/tool-schema.d.ts +3 -0
  477. package/dist/server/src/assistant/tool-schema.js +65 -0
  478. package/dist/server/src/assistant/tool-schema.js.map +1 -0
  479. package/dist/server/src/assistant/tools/api.js +7 -9
  480. package/dist/server/src/assistant/tools/api.js.map +1 -1
  481. package/dist/server/src/assistant/tools/ask.js +1 -2
  482. package/dist/server/src/assistant/tools/ask.js.map +1 -1
  483. package/dist/server/src/assistant/tools/automations.js +3 -5
  484. package/dist/server/src/assistant/tools/automations.js.map +1 -1
  485. package/dist/server/src/assistant/tools/cameras.js +3 -4
  486. package/dist/server/src/assistant/tools/cameras.js.map +1 -1
  487. package/dist/server/src/assistant/tools/docs.js +5 -6
  488. package/dist/server/src/assistant/tools/docs.js.map +1 -1
  489. package/dist/server/src/assistant/tools/instance.js +19 -19
  490. package/dist/server/src/assistant/tools/instance.js.map +1 -1
  491. package/dist/server/src/assistant/tools/memory.js +3 -4
  492. package/dist/server/src/assistant/tools/memory.js.map +1 -1
  493. package/dist/server/src/assistant/tools/metrics.js +1 -2
  494. package/dist/server/src/assistant/tools/metrics.js.map +1 -1
  495. package/dist/server/src/assistant/tools/notifications.js +4 -11
  496. package/dist/server/src/assistant/tools/notifications.js.map +1 -1
  497. package/dist/server/src/assistant/tools/plugins.js +12 -14
  498. package/dist/server/src/assistant/tools/plugins.js.map +1 -1
  499. package/dist/server/src/assistant/tools/report.js +17 -12
  500. package/dist/server/src/assistant/tools/report.js.map +1 -1
  501. package/dist/server/src/assistant/tools/schedules.js +6 -11
  502. package/dist/server/src/assistant/tools/schedules.js.map +1 -1
  503. package/dist/server/src/assistant/tools/sensors.js +63 -4
  504. package/dist/server/src/assistant/tools/sensors.js.map +1 -1
  505. package/dist/server/src/assistant/tools/settings.js +2 -3
  506. package/dist/server/src/assistant/tools/settings.js.map +1 -1
  507. package/dist/server/src/assistant/tools/system.js +3 -5
  508. package/dist/server/src/assistant/tools/system.js.map +1 -1
  509. package/dist/server/src/assistant/tools/terminal.js +4 -5
  510. package/dist/server/src/assistant/tools/terminal.js.map +1 -1
  511. package/dist/server/src/assistant/types.d.ts +10 -1
  512. package/dist/server/src/assistant/uploads.d.ts +2 -1
  513. package/dist/server/src/assistant/uploads.js +25 -3
  514. package/dist/server/src/assistant/uploads.js.map +1 -1
  515. package/dist/server/src/camera/decoder/detection-coordinator.d.ts +5 -0
  516. package/dist/server/src/camera/decoder/detection-coordinator.js +45 -14
  517. package/dist/server/src/camera/decoder/detection-coordinator.js.map +1 -1
  518. package/dist/server/src/camera/decoder/detection-pipeline.js +2 -1
  519. package/dist/server/src/camera/decoder/detection-pipeline.js.map +1 -1
  520. package/dist/server/src/camera/decoder/event-manager.d.ts +27 -4
  521. package/dist/server/src/camera/decoder/event-manager.js +175 -48
  522. package/dist/server/src/camera/decoder/event-manager.js.map +1 -1
  523. package/dist/server/src/camera/decoder/nvr-sink.d.ts +4 -1
  524. package/dist/server/src/camera/decoder/nvr-sink.js +1 -1
  525. package/dist/server/src/camera/decoder/nvr-sink.js.map +1 -1
  526. package/dist/server/src/camera/decoder/perf-tracker.d.ts +10 -0
  527. package/dist/server/src/camera/decoder/perf-tracker.js +20 -0
  528. package/dist/server/src/camera/decoder/perf-tracker.js.map +1 -1
  529. package/dist/server/src/camera/decoder/secondary-stage.d.ts +21 -1
  530. package/dist/server/src/camera/decoder/secondary-stage.js +301 -59
  531. package/dist/server/src/camera/decoder/secondary-stage.js.map +1 -1
  532. package/dist/server/src/camera/decoder/side-queue.d.ts +13 -0
  533. package/dist/server/src/camera/decoder/side-queue.js +53 -0
  534. package/dist/server/src/camera/decoder/side-queue.js.map +1 -0
  535. package/dist/server/src/camera/decoder/sources/buffered-source.d.ts +2 -0
  536. package/dist/server/src/camera/decoder/sources/buffered-source.js +7 -1
  537. package/dist/server/src/camera/decoder/sources/buffered-source.js.map +1 -1
  538. package/dist/server/src/camera/decoder/types.d.ts +11 -1
  539. package/dist/server/src/camera/decoder/types.js +9 -1
  540. package/dist/server/src/camera/decoder/types.js.map +1 -1
  541. package/dist/server/src/camera/sensors/controller.d.ts +1 -0
  542. package/dist/server/src/camera/sensors/controller.js +28 -4
  543. package/dist/server/src/camera/sensors/controller.js.map +1 -1
  544. package/dist/server/src/main.js +11 -2
  545. package/dist/server/src/main.js.map +1 -1
  546. package/dist/server/src/plugins/index.js +5 -4
  547. package/dist/server/src/plugins/index.js.map +1 -1
  548. package/dist/server/src/plugins/runtime/python/proxy/camera_device.py +1 -14
  549. package/dist/server/src/plugins/runtime/python/proxy/sensor.py +14 -1
  550. package/dist/server/src/plugins/runtime/python/proxy/sensor_manager.py +1 -13
  551. package/dist/server/src/rpc/interfaces/detection.d.ts +14 -2
  552. package/dist/server/src/rpc/server.js +1 -0
  553. package/dist/server/src/rpc/server.js.map +1 -1
  554. package/dist/server/src/services/config/index.d.ts +1 -0
  555. package/dist/server/src/services/config/index.js +6 -11
  556. package/dist/server/src/services/config/index.js.map +1 -1
  557. package/dist/server/src/utils/camera.js +8 -5
  558. package/dist/server/src/utils/camera.js.map +1 -1
  559. package/dist/server/src/utils/instance-lock.d.ts +1 -0
  560. package/dist/server/src/utils/instance-lock.js +57 -0
  561. package/dist/server/src/utils/instance-lock.js.map +1 -0
  562. package/dist/server/src/workers/agent.d.ts +2 -0
  563. package/dist/server/src/workers/agent.js +11 -1
  564. package/dist/server/src/workers/agent.js.map +1 -1
  565. package/dist/server/src/workers/manager.js +9 -2
  566. package/dist/server/src/workers/manager.js.map +1 -1
  567. package/dist/server/src/workers/types.d.ts +1 -0
  568. package/npm-shrinkwrap.json +213 -213
  569. package/package.json +30 -30
  570. package/dist/interface/assets/Assistant-bB8RBo-m.js +0 -1
  571. package/dist/interface/assets/Automations-BdZZW2eN.js +0 -2
  572. package/dist/interface/assets/Camera-B4ojNnKb.css +0 -1
  573. package/dist/interface/assets/Camera-Ct7ndOxr.js +0 -2
  574. package/dist/interface/assets/Camview-BjQdTHNh.js +0 -1
  575. package/dist/interface/assets/Config-CBTbYd5v.js +0 -2
  576. package/dist/interface/assets/ConfigTriggerGeofence-Bl2ZacbY.js +0 -1
  577. package/dist/interface/assets/Console-Cfk9MA9m.js +0 -1
  578. package/dist/interface/assets/CuiAssistantConversation-BHK_i56I.js +0 -5
  579. package/dist/interface/assets/CuiAssistantConversation-lkpZg3ML.css +0 -1
  580. package/dist/interface/assets/CuiAutomationRunsDialog-B0ohEHw0.js +0 -1
  581. package/dist/interface/assets/CuiBottomSheet-NgX7VFao.js +0 -1
  582. package/dist/interface/assets/CuiCameraPipCard-C2qaGJlH.js +0 -1
  583. package/dist/interface/assets/CuiCameraRecordings-BTD-CQAg.js +0 -1
  584. package/dist/interface/assets/CuiCameraTable-KPk46Xcl.js +0 -1
  585. package/dist/interface/assets/CuiDataTable-CsqH-RB1.js +0 -1
  586. package/dist/interface/assets/CuiLightControl-ChGYpQAK.js +0 -1
  587. package/dist/interface/assets/CuiMarkdownContent-DSArmS0V.js +0 -1
  588. package/dist/interface/assets/CuiPluginCard-CWImTZ6l.js +0 -2
  589. package/dist/interface/assets/CuiSchema-ytExUVhI.js +0 -1
  590. package/dist/interface/assets/Faces-Cb6XMxDC.js +0 -1
  591. package/dist/interface/assets/FirstSteps-QNYTkEJo.js +0 -1
  592. package/dist/interface/assets/Floorplan-DbqADtN1.js +0 -1
  593. package/dist/interface/assets/Instances-DrMzPD65.js +0 -1
  594. package/dist/interface/assets/Metrics-BUP_-7o7.css +0 -1
  595. package/dist/interface/assets/Metrics-CqhUnVRA.js +0 -12
  596. package/dist/interface/assets/Plugin-BDqNeTCT.css +0 -1
  597. package/dist/interface/assets/Plugin-DyOg_fbg.js +0 -1
  598. package/dist/interface/assets/PluginSearch-BgecD9Ob.js +0 -2
  599. package/dist/interface/assets/PluginSearch-C8xHKikH.js +0 -1
  600. package/dist/interface/assets/Plugins-CuujWEtM.js +0 -1
  601. package/dist/interface/assets/Recordings-9FJqCfdM.css +0 -1
  602. package/dist/interface/assets/Recordings-ths9khZr.js +0 -1
  603. package/dist/interface/assets/SensorEdit-BzoIH7QC.js +0 -1
  604. package/dist/interface/assets/Sensors-CK5uExfU.js +0 -2
  605. package/dist/interface/assets/Settings-DN5hFtw_.js +0 -1
  606. package/dist/interface/assets/SettingsAccount-BCrmon5O.js +0 -1
  607. package/dist/interface/assets/SettingsAccount-CSy1BAIH.js +0 -1
  608. package/dist/interface/assets/SettingsAppearance-h_XPZfQl.js +0 -1
  609. package/dist/interface/assets/SettingsAssistant-BESab92C.css +0 -1
  610. package/dist/interface/assets/SettingsAssistant-D8FmVbUL.js +0 -1
  611. package/dist/interface/assets/SettingsMqtt-DCkLIYpF.js +0 -1
  612. package/dist/interface/assets/SettingsRemote-DXlQKwlT.js +0 -2
  613. package/dist/interface/assets/Terminal-Dl-aAZME.js +0 -4
  614. package/dist/interface/assets/Training-B1oQjAr8.css +0 -1
  615. package/dist/interface/assets/Training-DdZjXgt1.js +0 -1
  616. package/dist/interface/assets/Updates-CkB1lXuo.js +0 -2
  617. package/dist/interface/assets/Workers-7yiebNkl.js +0 -2
  618. package/dist/interface/assets/api-DK2Bav9D.js +0 -4
  619. package/dist/interface/assets/api-DTCqDA-h.css +0 -2
  620. package/dist/interface/assets/assistant-BJ6xKcw_.js +0 -1
  621. package/dist/interface/assets/cloudHandoff-DtlquYGZ.js +0 -1
  622. package/dist/interface/assets/esm-4Hzzm93H.js +0 -1
  623. package/dist/interface/assets/esm-BrFPi5_4.js +0 -1
  624. package/dist/interface/assets/esm-C7pcdfXf.js +0 -1
  625. package/dist/interface/assets/esm-C8bsO829.js +0 -1
  626. package/dist/interface/assets/esm-CXzdnAMk.js +0 -1
  627. package/dist/interface/assets/esm-CZNGZkPu.js +0 -1
  628. package/dist/interface/assets/esm-D0iI7OVb.js +0 -1
  629. package/dist/interface/assets/esm-DKolm6KU.js +0 -1
  630. package/dist/interface/assets/esm-DTywI9gs.js +0 -1
  631. package/dist/interface/assets/esm-DifXcK9i.js +0 -1
  632. package/dist/interface/assets/esm-Dq5o-Xb4.js +0 -1
  633. package/dist/interface/assets/esm-IbQuUZ5l.js +0 -1
  634. package/dist/interface/assets/esm-Xre_AP5i.js +0 -1
  635. package/dist/interface/assets/esm-zYnXHhpH.js +0 -1
  636. package/dist/interface/assets/main-D74mRIxc.js +0 -3
  637. package/dist/interface/assets/native-CAujTO6L.js +0 -1
  638. package/dist/interface/assets/native-sQ88qazf.js +0 -1
  639. package/dist/interface/assets/plugin-D7K50k_y.js +0 -1
  640. package/dist/interface/assets/sensorIcons-DQVgryYP.js +0 -1
  641. package/dist/interface/assets/types-5rE8Tz0_.js +0 -1
  642. package/dist/interface/assets/ungrouped-D56FGIrg.js +0 -1
  643. package/dist/interface/assets/useBackupRestore-Crfd592q.js +0 -1
  644. package/dist/interface/assets/useKeyboardInset-DXVi1dLG.js +0 -1
  645. package/dist/interface/assets/useUserOptions-BTRBUuE2.js +0 -1
  646. package/dist/interface/assets/vendor-gridstack-anPyIu9V.js +0 -3
  647. package/dist/interface/assets/web-3M-ddn4G.js +0 -1
  648. package/dist/interface/assets/web-BY80VGyU.js +0 -1
  649. package/dist/interface/assets/web-B_tUYyM0.js +0 -1
  650. package/dist/interface/assets/web-BjKL51lK-Bb5NYhpJ.js +0 -1
  651. package/dist/interface/assets/web-Bv-4PJGI.js +0 -1
  652. package/dist/interface/assets/web-C3Pk8qeB.js +0 -1
  653. package/dist/interface/assets/web-CLcvGPH6.js +0 -1
  654. package/dist/interface/assets/web-DO8gTOVJ.js +0 -1
  655. package/dist/interface/assets/web-DR5q_DmI.js +0 -1
  656. package/dist/interface/assets/web-DRHbG4Te.js +0 -1
  657. package/dist/interface/assets/web-DaQ8d8yk.js +0 -1
  658. package/dist/interface/assets/web-EVRW5whF.js +0 -1
  659. package/dist/interface/assets/web-S6Dk3UWN.js +0 -1
  660. package/dist/interface/assets/web-pWIp0wf0.js +0 -1
  661. package/dist/interface/assets/workbox-window.prod.es5-Dz5rcO1z.js +0 -1
  662. package/dist/interface/ha/Faces-C_svyTrr.js +0 -1282
  663. package/dist/interface/ha/SettingsAssistant-C2R4ZetE.js +0 -1857
  664. package/dist/interface/ha/Training-BEzPiXZg.js +0 -1512
@@ -1,47 +1,34 @@
1
1
  import { m as e, p as t } from "./ripple-ZDATPc2w.js";
2
2
  import { D as n, G as r, H as i, Jt as a, U as o, Wt as s, Y as c, _t as l, d as u, f as d, gt as f, kt as p, l as m, lt as h, o as g, ot as _, p as v, qt as y, r as b, rt as x, st as S, u as C, ut as w, v as T, wt as E, x as D, xt as O, y as k, yt as A, z as j } from "./runtime-core.esm-bundler-_TfE0DWz.js";
3
- import { t as M } from "./tooltip-BDrlgLof.js";
4
- import { t as N } from "./message-D6dIy_hz.js";
5
- import { t as P } from "./tag-mchuCAPR.js";
6
- import { B as F, Dr as I, Er as L, H as R, In as z, J as B, Jn as ee, Nn as te, On as ne, Or as V, Sr as H, Tr as U, U as re, Un as ie, V as ae, W as oe, Wr as W, Y as se, Yt as ce, Z as le, Zn as G, _i as ue, _n as de, _r as K, _t as fe, ar as pe, bi as me, ca as he, g as ge, ir as _e, kr as ve, mi as ye, mr as be, ot as xe, qn as Se, rr as Ce, st as we, tr as Te, tt as Ee, ut as De, vr as Oe, wr as ke, z as Ae } from "./api-BP7mlzjP.js";
7
- import { F as je, M as Me, z as Ne } from "./protocol-BB4jdtUC-DW3jl2tV.js";
8
- import { h as Pe, u as Fe } from "./intercomService-B7HkLs6z.js";
9
- import { n as Ie } from "./vue-i18n-D5EAy78K.js";
10
- import { C as Le, _ as Re, g as ze } from "./dist-BTp4AyuI.js";
11
- import { i as Be } from "./alert-outline-FcLLjoOK.js";
12
- import { t as Ve } from "./eventIcons-BFNUgeGr.js";
13
- import { t as He } from "./button-BouAFgf5.js";
14
- import { M as Ue } from "./dist-C6MBHJhs.js";
15
- import { t as We } from "./inputtext-C_ygnPrC.js";
16
- import { t as q } from "./checkbox-CAKzZcqk.js";
17
- import { t as Ge } from "./datepicker-DXk97lTw.js";
18
- import { t as Ke } from "./close-CxFbonhd.js";
19
- import { t as J } from "./select-DV7p2EDj.js";
20
- import { t as qe } from "./progressbar-CaUaM8Bt.js";
21
- import { t as Je } from "./multiselect-BOb4ScAZ.js";
22
- import { t as Ye } from "./textarea-ByXnzJzx.js";
23
- import { s as Xe, t as Ze } from "./assistant-Cb6ACguQ.js";
24
- import { i as Qe, n as Y, t as $e } from "./eventLabels-B4C1_4vT.js";
25
- import { i as et, n as tt, r as nt, t as rt } from "./ungrouped-xyK1QrsM.js";
26
- import { t as it } from "./utils-DYtBrGDz.js";
27
- import { t as at } from "./settings-lWJfHaif.js";
28
- import { n as ot, t as st } from "./round-alt-arrow-left-bold-DDy2dLUM.js";
29
- //#region ~icons/mdi/database-refresh-outline
30
- var ct = {
31
- viewBox: "0 0 24 24",
32
- width: "1.2em",
33
- height: "1.2em"
34
- };
35
- function lt(e, t) {
36
- return i(), v("svg", ct, [...t[0] ||= [C("path", {
37
- fill: "currentColor",
38
- 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"
39
- }, null, -1)]]);
40
- }
41
- var ut = l({
42
- name: "mdi-database-refresh-outline",
43
- render: lt
44
- }), dt = { class: "flex flex-col gap-4" }, ft = { class: "text-sm text-pretty" }, X = {
3
+ import { t as ee } from "./tooltip-BDrlgLof.js";
4
+ import { t as M } from "./message-D6dIy_hz.js";
5
+ import { t as N } from "./tag-mchuCAPR.js";
6
+ import { $n as P, Ar as F, B as I, Dn as L, Dr as R, Er as z, Gn as te, H as ne, Hn as B, J as V, Jn as re, Jt as ie, Kr as ae, Mn as oe, Nn as se, Or as ce, R as le, Si as ue, U as de, V as fe, X as H, Zn as pe, ar as U, at as me, br as W, et as he, g as ge, gi as _e, gn as ve, gr as ye, gt as be, ir as xe, jr as Se, kr as Ce, lt as we, ot as Te, q as Ee, ua as De, wr as Oe, yi as ke, yr as Ae, z as je, zn as Me } from "./api-D2VzV4is.js";
7
+ import { F as Ne, M as Pe, z as Fe } from "./protocol-BB4jdtUC-DW3jl2tV.js";
8
+ import { h as Ie, u as Le } from "./intercomService-B7HkLs6z.js";
9
+ import { n as Re } from "./vue-i18n-D5EAy78K.js";
10
+ import { C as ze, _ as Be, g as Ve } from "./dist-BIngHzHx.js";
11
+ import { i as He } from "./alert-outline-FcLLjoOK.js";
12
+ import { t as Ue } from "./eventIcons-BFNUgeGr.js";
13
+ import { t as We } from "./button-BouAFgf5.js";
14
+ import { M as Ge } from "./dist-oFWkn6pD.js";
15
+ import { t as Ke } from "./inputtext-C_ygnPrC.js";
16
+ import { t as G } from "./checkbox-CAKzZcqk.js";
17
+ import { t as qe } from "./datepicker-DXk97lTw.js";
18
+ import { t as Je } from "./close-CxFbonhd.js";
19
+ import { t as K } from "./select-DV7p2EDj.js";
20
+ import { t as Ye } from "./progressbar-CaUaM8Bt.js";
21
+ import { t as Xe } from "./multiselect-BOb4ScAZ.js";
22
+ import { t as Ze } from "./textarea-ByXnzJzx.js";
23
+ import { s as Qe, t as $e } from "./assistant-BmDAfChm.js";
24
+ import { i as et, n as q, t as J } from "./eventLabels-B4C1_4vT.js";
25
+ import { i as tt, n as nt, r as rt, t as it } from "./ungrouped-BbyfoCQp.js";
26
+ import { t as at } from "./utils-DYtBrGDz.js";
27
+ import { t as ot } from "./settings-lWJfHaif.js";
28
+ import { t as st } from "./database-refresh-outline-PiqlCkA7.js";
29
+ import { n as ct, t as lt } from "./round-alt-arrow-left-bold-DDy2dLUM.js";
30
+ //#region src/components/CuiDialog/templates/ClipReindex/ClipReindex.vue?vue&type=script&setup=true&lang.ts
31
+ var ut = { class: "flex flex-col gap-4" }, dt = { class: "text-sm text-pretty" }, ft = {
45
32
  key: 0,
46
33
  class: "flex flex-col gap-2"
47
34
  }, pt = {
@@ -50,7 +37,7 @@ var ut = l({
50
37
  }, mt = { key: 0 }, ht = /* @__PURE__ */ D({
51
38
  __name: "ClipReindex",
52
39
  setup(e, { expose: t }) {
53
- let r = n("dialogRefProps"), { t: o } = Ie(), { status: s, isBusy: c, checking: l, refresh: u, start: f, cancel: h } = G(), g = O(!1), y = O(!1), b = O(0), x = m(() => s.value?.running === !0), w = m(() => {
40
+ let r = n("dialogRefProps"), { t: o } = Re(), { status: s, isBusy: c, checking: l, refresh: u, start: f, cancel: h } = te(), g = O(!1), y = O(!1), b = O(0), x = m(() => s.value?.running === !0), w = m(() => {
54
41
  if (y.value) {
55
42
  if (!s.value?.total) return o("views.recordings.reindex.up_to_date");
56
43
  let { done: e, total: t, skipped: n } = s.value;
@@ -81,8 +68,8 @@ var ut = l({
81
68
  s.value?.running && (g.value = !0);
82
69
  });
83
70
  }), t({ onConfirm: E }), (e, t) => {
84
- let n = qe;
85
- return i(), v("div", dt, [C("span", ft, a(p(w)), 1), p(g) || p(x) ? (i(), v("div", X, [k(n, {
71
+ let n = Ye;
72
+ return i(), v("div", ut, [C("span", dt, a(p(w)), 1), p(g) || p(x) ? (i(), v("div", ft, [k(n, {
86
73
  mode: p(l) ? "indeterminate" : "determinate",
87
74
  value: p(T),
88
75
  "show-value": !1,
@@ -93,43 +80,43 @@ var ut = l({
93
80
  })), 1), p(s)?.skipped ? (i(), v("span", mt, a(e.$t("views.recordings.reindex.skipped", { count: p(s).skipped })), 1)) : d("", !0)])) : d("", !0)])) : d("", !0)]);
94
81
  };
95
82
  }
96
- }), gt = {
83
+ }), Y = {
97
84
  viewBox: "0 0 24 24",
98
85
  width: "1.2em",
99
86
  height: "1.2em"
100
87
  };
101
- function _t(e, t) {
102
- return i(), v("svg", gt, [...t[0] ||= [C("path", {
88
+ function gt(e, t) {
89
+ return i(), v("svg", Y, [...t[0] ||= [C("path", {
103
90
  fill: "currentColor",
104
91
  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"
105
92
  }, null, -1)]]);
106
93
  }
107
- var Z = l({
94
+ var _t = l({
108
95
  name: "mdi-file-video-outline",
109
- render: _t
110
- }), vt = { class: "flex flex-col gap-6" }, yt = { class: "flex flex-col field-gap" }, bt = { class: "cui-label" }, xt = { class: "flex flex-col field-gap" }, St = { class: "cui-label" }, Ct = { class: "grid grid-cols-1 xs:grid-cols-2 gap-3" }, wt = { class: "flex flex-col gap-1" }, Tt = { class: "text-xs text-muted" }, Et = { class: "flex flex-col gap-1" }, Dt = { class: "text-xs text-muted" }, Ot = { class: "grid grid-cols-1 xs:grid-cols-2 gap-x-6 gap-y-4" }, kt = { class: "flex flex-col field-gap" }, At = { class: "cui-label" }, jt = { class: "flex flex-col field-gap" }, Q = { class: "cui-label" }, Mt = { class: "flex flex-col field-gap" }, Nt = { class: "flex items-center gap-3" }, $ = { class: "cui-label !mb-0" }, Pt = {
96
+ render: gt
97
+ }), vt = { class: "flex flex-col gap-6" }, yt = { class: "flex flex-col field-gap" }, X = { class: "cui-label" }, bt = { class: "flex flex-col field-gap" }, xt = { class: "cui-label" }, St = { class: "grid grid-cols-1 xs:grid-cols-2 gap-3" }, Ct = { class: "flex flex-col gap-1" }, wt = { class: "text-xs text-muted" }, Tt = { class: "flex flex-col gap-1" }, Et = { class: "text-xs text-muted" }, Dt = { class: "grid grid-cols-1 xs:grid-cols-2 gap-x-6 gap-y-4" }, Ot = { class: "flex flex-col field-gap" }, kt = { class: "cui-label" }, At = { class: "flex flex-col field-gap" }, jt = { class: "cui-label" }, Mt = { class: "flex flex-col field-gap" }, Nt = { class: "flex items-center gap-3" }, Pt = { class: "cui-label !mb-0" }, Z = {
111
98
  key: 0,
112
99
  class: "ml-auto flex items-center gap-2.5 text-sm tabular-nums"
113
- }, Ft = { class: "font-semibold" }, It = { class: "font-semibold" }, Lt = { class: "border border-color rounded-xl card-background overflow-hidden" }, Rt = { class: "flex flex-col gap-3 max-h-[240px] overflow-y-auto p-2.5" }, zt = {
100
+ }, Ft = { class: "font-semibold" }, It = { class: "font-semibold" }, Q = { class: "border border-color rounded-xl card-background overflow-hidden" }, $ = { class: "flex flex-col gap-3 max-h-[240px] overflow-y-auto p-2.5" }, Lt = {
114
101
  key: 0,
115
102
  class: "flex items-center justify-center gap-2 text-muted text-sm py-6"
116
- }, Bt = {
103
+ }, Rt = {
117
104
  key: 1,
118
105
  class: "text-center text-muted text-sm py-6"
119
- }, Vt = { class: "text-xs text-muted px-0.5" }, Ht = { class: "font-mono text-xs truncate flex-1" }, Ut = { class: "text-xs text-muted tabular-nums shrink-0" }, Wt = { class: "font-mono text-xs text-muted tabular-nums shrink-0 min-w-[58px] text-right" }, Gt = 30, Kt = /* @__PURE__ */ D({
106
+ }, 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__ */ D({
120
107
  __name: "ExportRecordings",
121
108
  props: {
122
109
  cameras: {},
123
110
  preselect: {}
124
111
  },
125
112
  setup(e, { expose: t }) {
126
- let o = e, { t: s } = Ie(), c = me(), l = n("dialogRefProps"), { plugin: g } = Ue("@camera.ui/camera-ui-nvr"), _ = O([]), y = O(!1), x = O(o.preselect?.length ? [...o.preselect] : []), w = O("best"), E = O(0), D = O(new Date((/* @__PURE__ */ new Date()).setHours(0, 0, 0, 0))), A = O(/* @__PURE__ */ new Date()), j = m(() => [{
113
+ let o = e, { t: s } = Re(), c = ue(), l = n("dialogRefProps"), { plugin: g } = Ge("@camera.ui/camera-ui-nvr"), _ = O([]), y = O(!1), x = O(o.preselect?.length ? [...o.preselect] : []), w = O("best"), E = O(0), D = O(new Date((/* @__PURE__ */ new Date()).setHours(0, 0, 0, 0))), A = O(/* @__PURE__ */ new Date()), j = m(() => [{
127
114
  label: s("views.recordings.export.quality_best"),
128
115
  value: "best"
129
116
  }, {
130
117
  label: s("views.recordings.export.quality_smallest"),
131
118
  value: "smallest"
132
- }]), M = m(() => [
119
+ }]), ee = m(() => [
133
120
  0,
134
121
  1,
135
122
  2,
@@ -144,8 +131,8 @@ var Z = l({
144
131
  ].map((e) => ({
145
132
  label: e === 0 ? s("views.recordings.export.timelapse_off") : e < 60 ? `${e} s` : `${e / 60} min`,
146
133
  value: e
147
- }))), F = m(() => E.value > 0), I = m(() => F.value ? "~" : ""), L = m(() => new Map(o.cameras.map((e) => [e.id, e.name]))), R = m(() => D.value instanceof Date && A.value instanceof Date && D.value < A.value), z = m(() => {
148
- if (!R.value) return [];
134
+ }))), P = m(() => E.value > 0), F = m(() => P.value ? "~" : ""), I = m(() => new Map(o.cameras.map((e) => [e.id, e.name]))), L = m(() => D.value instanceof Date && A.value instanceof Date && D.value < A.value), R = m(() => {
135
+ if (!L.value) return [];
149
136
  let e = [], t = D.value.getTime(), n = A.value.getTime(), r = new Date(D.value);
150
137
  r.setHours(0, 0, 0, 0);
151
138
  let i = new Date(A.value);
@@ -154,24 +141,24 @@ var Z = l({
154
141
  a.setDate(a.getDate() + 1);
155
142
  let o = Math.max(i.getTime(), t), s = Math.min(a.getTime(), n);
156
143
  s > o && e.push({
157
- day: U(i),
144
+ day: re(i),
158
145
  startUs: o * 1e3,
159
146
  endUs: s * 1e3
160
147
  }), r.setDate(r.getDate() + 1);
161
148
  }
162
149
  return e;
163
- }), B = m(() => _.value.map((e) => {
164
- let t = L.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" : re(r);
150
+ }), z = m(() => _.value.map((e) => {
151
+ let t = I.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" : ie(r);
165
152
  return {
166
153
  cameraId: e.cameraId,
167
154
  cameraName: t,
168
- name: `${ie(t)}_${e.day}${F.value ? "_timelapse" : ""}.mp4`,
169
- span: i ? s("views.recordings.export.whole_day") : `${re(n)}–${a}`,
170
- bytes: F.value ? e.bytes / Gt : e.bytes
155
+ name: `${ae(t)}_${e.day}${P.value ? "_timelapse" : ""}.mp4`,
156
+ span: i ? s("views.recordings.export.whole_day") : `${ie(n)}–${a}`,
157
+ bytes: P.value ? e.bytes / Ut : e.bytes
171
158
  };
172
- })), ee = m(() => {
159
+ })), te = m(() => {
173
160
  let e = /* @__PURE__ */ new Map();
174
- for (let t of B.value) {
161
+ for (let t of z.value) {
175
162
  let n = e.get(t.cameraId);
176
163
  n || (n = {
177
164
  cameraId: t.cameraId,
@@ -181,29 +168,29 @@ var Z = l({
181
168
  }, e.set(t.cameraId, n)), n.files.push(t), n.bytes += t.bytes;
182
169
  }
183
170
  return [...e.values()];
184
- }), te = m(() => B.value.reduce((e, t) => e + t.bytes, 0)), ne = m(() => x.value.length === 0 ? s("views.recordings.export.no_cameras") : R.value ? s("views.recordings.export.no_footage") : s("views.recordings.export.no_range"));
171
+ }), ne = m(() => z.value.reduce((e, t) => e + t.bytes, 0)), B = m(() => x.value.length === 0 ? s("views.recordings.export.no_cameras") : L.value ? s("views.recordings.export.no_footage") : s("views.recordings.export.no_range"));
185
172
  function V(e) {
186
173
  return String(e).padStart(2, "0");
187
174
  }
188
- function U(e) {
175
+ function re(e) {
189
176
  return `${e.getFullYear()}-${V(e.getMonth() + 1)}-${V(e.getDate())}`;
190
177
  }
191
- function re(e) {
178
+ function ie(e) {
192
179
  return `${V(e.getHours())}:${V(e.getMinutes())}`;
193
180
  }
194
- function ie(e) {
181
+ function ae(e) {
195
182
  return e.replace(/[^a-zA-Z0-9-_]/g, "_");
196
183
  }
197
- function ae(e) {
184
+ function oe(e) {
198
185
  if (e <= 0) return "0 MB";
199
186
  let t = e / 1e6;
200
187
  if (t < 1e3) return `${t < 10 ? t.toFixed(1) : Math.round(t)} MB`;
201
188
  let n = e / 1e9;
202
189
  return `${n.toFixed(+(n < 10))} GB`;
203
190
  }
204
- async function oe() {
191
+ async function se() {
205
192
  let e = g.value;
206
- if (!e?.nvrExportEstimate || x.value.length === 0 || z.value.length === 0) {
193
+ if (!e?.nvrExportEstimate || x.value.length === 0 || R.value.length === 0) {
207
194
  _.value = [], y.value = !1;
208
195
  return;
209
196
  }
@@ -211,7 +198,7 @@ var Z = l({
211
198
  try {
212
199
  let t = await e.nvrExportEstimate({
213
200
  cameras: x.value,
214
- slices: z.value,
201
+ slices: R.value,
215
202
  quality: w.value
216
203
  });
217
204
  _.value = t.files ?? [];
@@ -221,8 +208,8 @@ var Z = l({
221
208
  y.value = !1;
222
209
  }
223
210
  }
224
- async function W() {
225
- if (!R.value || x.value.length === 0 || z.value.length === 0) return null;
211
+ async function ce() {
212
+ if (!L.value || x.value.length === 0 || R.value.length === 0) return null;
226
213
  let e = g.value;
227
214
  if (!e?.nvrExportBatch) return c.add({
228
215
  severity: "error",
@@ -231,29 +218,29 @@ var Z = l({
231
218
  }), null;
232
219
  let t = await e.nvrExportBatch({
233
220
  cameras: x.value,
234
- slices: z.value,
221
+ slices: R.value,
235
222
  quality: w.value,
236
- timelapseIntervalSec: F.value ? E.value : 0
223
+ timelapseIntervalSec: P.value ? E.value : 0
237
224
  });
238
- await Oe({
225
+ await W({
239
226
  url: t.url,
240
227
  filename: t.filename
241
228
  });
242
229
  }
243
- return Ne([
230
+ return Fe([
244
231
  x,
245
- z,
232
+ R,
246
233
  w
247
- ], oe, {
234
+ ], se, {
248
235
  debounce: 350,
249
236
  immediate: !0,
250
237
  deep: !0
251
238
  }), S(() => {
252
- l.disabled && (l.disabled.value = !R.value || x.value.length === 0 || !y.value && B.value.length === 0);
253
- }), t({ onConfirm: W }), (t, n) => {
254
- let o = Je, s = Ge, c = N, l = pe, m = J, g = P, _ = H, S = Z;
239
+ l.disabled && (l.disabled.value = !L.value || x.value.length === 0 || !y.value && z.value.length === 0);
240
+ }), t({ onConfirm: ce }), (t, n) => {
241
+ let o = Xe, s = qe, c = M, l = U, m = K, g = N, _ = Oe, S = _t;
255
242
  return i(), v("div", vt, [
256
- C("div", yt, [C("label", bt, a(t.$t("views.recordings.export.cameras")), 1), k(o, {
243
+ C("div", yt, [C("label", X, a(t.$t("views.recordings.export.cameras")), 1), k(o, {
257
244
  modelValue: p(x),
258
245
  "onUpdate:modelValue": n[0] ||= (e) => f(x) ? x.value = e : null,
259
246
  options: e.cameras,
@@ -268,16 +255,16 @@ var Z = l({
268
255
  "options",
269
256
  "placeholder"
270
257
  ])]),
271
- C("div", xt, [
272
- C("label", St, a(t.$t("views.recordings.export.range")), 1),
273
- C("div", Ct, [C("div", wt, [C("span", Tt, a(t.$t("views.recordings.export.from")), 1), k(s, {
258
+ C("div", bt, [
259
+ C("label", xt, a(t.$t("views.recordings.export.range")), 1),
260
+ C("div", St, [C("div", Ct, [C("span", wt, a(t.$t("views.recordings.export.from")), 1), k(s, {
274
261
  modelValue: p(D),
275
262
  "onUpdate:modelValue": n[1] ||= (e) => f(D) ? D.value = e : null,
276
263
  "show-time": "",
277
264
  "hour-format": "24",
278
265
  fluid: "",
279
266
  "max-date": p(A)
280
- }, null, 8, ["modelValue", "max-date"])]), C("div", Et, [C("span", Dt, a(t.$t("views.recordings.export.to")), 1), k(s, {
267
+ }, null, 8, ["modelValue", "max-date"])]), C("div", Tt, [C("span", Et, a(t.$t("views.recordings.export.to")), 1), k(s, {
281
268
  modelValue: p(A),
282
269
  "onUpdate:modelValue": n[2] ||= (e) => f(A) ? A.value = e : null,
283
270
  "show-time": "",
@@ -285,7 +272,7 @@ var Z = l({
285
272
  fluid: "",
286
273
  "min-date": p(D)
287
274
  }, null, 8, ["modelValue", "min-date"])])]),
288
- p(R) ? (i(), u(c, {
275
+ p(L) ? (i(), u(c, {
289
276
  key: 1,
290
277
  severity: "secondary",
291
278
  variant: "simple",
@@ -305,7 +292,7 @@ var Z = l({
305
292
  _: 1
306
293
  }))
307
294
  ]),
308
- C("div", Ot, [C("div", kt, [C("label", At, a(t.$t("views.recordings.export.quality")), 1), k(l, {
295
+ C("div", Dt, [C("div", Ot, [C("label", kt, a(t.$t("views.recordings.export.quality")), 1), k(l, {
309
296
  modelValue: p(w),
310
297
  "onUpdate:modelValue": n[3] ||= (e) => f(w) ? w.value = e : null,
311
298
  options: p(j),
@@ -316,51 +303,51 @@ var Z = l({
316
303
  root: { class: "flex w-full" },
317
304
  pcToggleButton: { root: { class: "flex-1" } }
318
305
  }
319
- }, null, 8, ["modelValue", "options"])]), C("div", jt, [C("label", Q, a(t.$t("views.recordings.export.timelapse")), 1), k(m, {
306
+ }, null, 8, ["modelValue", "options"])]), C("div", At, [C("label", jt, a(t.$t("views.recordings.export.timelapse")), 1), k(m, {
320
307
  modelValue: p(E),
321
308
  "onUpdate:modelValue": n[4] ||= (e) => f(E) ? E.value = e : null,
322
- options: p(M),
309
+ options: p(ee),
323
310
  "option-label": "label",
324
311
  "option-value": "value",
325
312
  class: "w-full"
326
313
  }, null, 8, ["modelValue", "options"])])]),
327
- C("div", Mt, [C("div", Nt, [C("label", $, a(t.$t("views.recordings.export.result")), 1), p(B).length ? (i(), v("div", Pt, [
328
- C("span", Ft, a(p(B).length) + " " + a(p(B).length === 1 ? t.$t("views.recordings.export.file") : t.$t("views.recordings.export.files")), 1),
314
+ C("div", Mt, [C("div", Nt, [C("label", Pt, a(t.$t("views.recordings.export.result")), 1), p(z).length ? (i(), v("div", Z, [
315
+ C("span", Ft, a(p(z).length) + " " + a(p(z).length === 1 ? t.$t("views.recordings.export.file") : t.$t("views.recordings.export.files")), 1),
329
316
  n[5] ||= C("span", { class: "text-muted" }, "·", -1),
330
- C("span", It, a(p(I)) + a(ae(p(te))), 1),
317
+ C("span", It, a(p(F)) + a(oe(p(ne))), 1),
331
318
  k(g, {
332
- value: p(B).length === 1 ? "MP4" : "ZIP",
319
+ value: p(z).length === 1 ? "MP4" : "ZIP",
333
320
  severity: "info"
334
321
  }, null, 8, ["value"])
335
- ])) : d("", !0)]), C("div", Lt, [C("div", Rt, [p(y) && !p(B).length ? (i(), v("div", zt, [k(_, {
322
+ ])) : d("", !0)]), C("div", Q, [C("div", $, [p(y) && !p(z).length ? (i(), v("div", Lt, [k(_, {
336
323
  style: {
337
324
  width: "1rem",
338
325
  height: "1rem"
339
326
  },
340
327
  "stroke-width": "4",
341
328
  class: "m-0"
342
- }), C("span", null, a(t.$t("views.recordings.export.estimating")), 1)])) : p(B).length ? (i(!0), v(b, { key: 2 }, r(p(ee), (e) => (i(), v("div", {
329
+ }), C("span", null, a(t.$t("views.recordings.export.estimating")), 1)])) : p(z).length ? (i(!0), v(b, { key: 2 }, r(p(te), (e) => (i(), v("div", {
343
330
  key: e.cameraId,
344
331
  class: "flex flex-col gap-1"
345
- }, [C("span", Vt, a(e.cameraName) + " · " + a(e.files.length) + " · " + a(p(I)) + a(ae(e.bytes)), 1), (i(!0), v(b, null, r(e.files, (e) => (i(), v("div", {
332
+ }, [C("span", zt, a(e.cameraName) + " · " + a(e.files.length) + " · " + a(p(F)) + a(oe(e.bytes)), 1), (i(!0), v(b, null, r(e.files, (e) => (i(), v("div", {
346
333
  key: e.name,
347
334
  class: "flex items-center gap-3 card-inner-background border border-color rounded-lg px-3 py-2"
348
335
  }, [
349
336
  k(S, { class: "w-4 h-4 text-muted shrink-0" }),
350
- C("span", Ht, a(e.name), 1),
351
- C("span", Ut, a(e.span), 1),
352
- C("span", Wt, a(p(I)) + a(ae(e.bytes)), 1)
353
- ]))), 128))]))), 128)) : (i(), v("div", Bt, a(p(ne)), 1))])])])
337
+ C("span", Bt, a(e.name), 1),
338
+ C("span", Vt, a(e.span), 1),
339
+ C("span", Ht, a(p(F)) + a(oe(e.bytes)), 1)
340
+ ]))), 128))]))), 128)) : (i(), v("div", Rt, a(p(B)), 1))])])])
354
341
  ]);
355
342
  };
356
343
  }
357
- }), qt = {
344
+ }), Gt = {
358
345
  viewBox: "0 0 24 24",
359
346
  width: "1.2em",
360
347
  height: "1.2em"
361
348
  };
362
- function Jt(e, t) {
363
- return i(), v("svg", qt, [...t[0] ||= [C("path", {
349
+ function Kt(e, t) {
350
+ return i(), v("svg", Gt, [...t[0] ||= [C("path", {
364
351
  fill: "none",
365
352
  stroke: "currentColor",
366
353
  "stroke-linecap": "round",
@@ -369,16 +356,16 @@ function Jt(e, t) {
369
356
  d: "m6 9l6 6l6-6"
370
357
  }, null, -1)]]);
371
358
  }
372
- var Yt = l({
359
+ var qt = l({
373
360
  name: "tabler-chevron-down",
374
- render: Jt
375
- }), Xt = {
361
+ render: Kt
362
+ }), Jt = {
376
363
  viewBox: "0 0 24 24",
377
364
  width: "1.2em",
378
365
  height: "1.2em"
379
366
  };
380
- function Zt(e, t) {
381
- return i(), v("svg", Xt, [...t[0] ||= [C("path", {
367
+ function Yt(e, t) {
368
+ return i(), v("svg", Jt, [...t[0] ||= [C("path", {
382
369
  fill: "none",
383
370
  stroke: "currentColor",
384
371
  "stroke-linecap": "round",
@@ -387,43 +374,40 @@ function Zt(e, t) {
387
374
  d: "m6 15l6-6l6 6"
388
375
  }, null, -1)]]);
389
376
  }
390
- var Qt = l({
377
+ var Xt = l({
391
378
  name: "tabler-chevron-up",
392
- render: Zt
393
- }), $t = { class: "flex flex-col gap-2" }, en = { class: "sidebar-section-title" }, tn = {
394
- key: 0,
395
- class: "text-xs text-muted"
396
- }, nn = { class: "flex flex-col gap-2" }, rn = { class: "sidebar-section-title" }, an = { class: "p-input-icon-left w-full" }, on = { class: "text-xs text-muted" }, sn = { class: "flex flex-col gap-2" }, cn = { class: "sidebar-section-title flex items-center gap-1.5" }, ln = {
379
+ render: Yt
380
+ }), Zt = { class: "flex flex-col gap-2" }, Qt = { class: "sidebar-section-title" }, $t = { class: "text-xs text-muted" }, en = { class: "text-xs text-muted" }, tn = { class: "flex flex-col gap-2" }, nn = { class: "sidebar-section-title" }, rn = { class: "p-input-icon-left w-full" }, an = { class: "text-xs text-muted" }, on = { class: "flex flex-col gap-2" }, sn = { class: "sidebar-section-title flex items-center gap-1.5" }, cn = {
397
381
  key: 0,
398
382
  class: "inline-flex items-center gap-1 text-xs text-muted"
399
- }, un = {
383
+ }, ln = {
400
384
  key: 1,
401
385
  class: "flex flex-col gap-1.5 mt-1"
402
- }, dn = { class: "text-xs text-muted" }, fn = { class: "flex items-center gap-3" }, pn = { class: "text-xs font-mono w-8 text-right shrink-0" }, mn = { class: "flex flex-col gap-2" }, hn = { class: "sidebar-section-title flex items-center gap-1.5" }, gn = {
386
+ }, un = { class: "text-xs text-muted" }, dn = { class: "flex items-center gap-3" }, fn = { class: "text-xs font-mono w-8 text-right shrink-0" }, pn = { class: "flex flex-col gap-2" }, mn = { class: "sidebar-section-title flex items-center gap-1.5" }, hn = {
403
387
  key: 0,
404
388
  class: "text-xs text-muted"
405
- }, _n = {
389
+ }, gn = {
406
390
  key: 2,
407
391
  class: "flex flex-col gap-2"
408
- }, vn = { class: "sidebar-section-title" }, yn = { class: "flex flex-col gap-2" }, bn = { class: "sidebar-section-title" }, xn = { class: "flex flex-col gap-2" }, Sn = { class: "sidebar-section-title" }, Cn = { class: "relative rounded-md overflow-hidden" }, wn = {
392
+ }, _n = { class: "sidebar-section-title" }, vn = { class: "flex flex-col gap-2" }, yn = { class: "sidebar-section-title" }, bn = { class: "flex flex-col gap-2" }, xn = { class: "sidebar-section-title" }, Sn = { class: "relative rounded-md overflow-hidden" }, Cn = {
409
393
  key: 4,
410
394
  class: "sidebar-divider"
411
- }, Tn = {
395
+ }, wn = {
412
396
  key: 5,
413
397
  class: "flex flex-col gap-2"
414
- }, En = { class: "sidebar-section-title" }, Dn = { class: "flex items-center gap-3" }, On = { class: "text-xs font-mono w-8 text-right shrink-0" }, kn = { class: "flex flex-col gap-2" }, An = { class: "sidebar-section-title" }, jn = { class: "flex flex-wrap gap-1" }, Mn = { class: "flex flex-col gap-2" }, Nn = {
398
+ }, Tn = { class: "sidebar-section-title" }, En = { class: "flex items-center gap-3" }, Dn = { class: "text-xs font-mono w-8 text-right shrink-0" }, On = { class: "flex flex-col gap-2" }, kn = { class: "sidebar-section-title" }, An = { class: "flex flex-wrap gap-1" }, jn = { class: "flex flex-col gap-2" }, Mn = {
415
399
  key: 0,
416
400
  class: "flex flex-col gap-2"
417
- }, Pn = { class: "flex items-center gap-2 cursor-pointer text-sm" }, Fn = {
401
+ }, Nn = { class: "flex items-center gap-2 cursor-pointer text-sm" }, Pn = {
418
402
  key: 0,
419
403
  class: "flex flex-col gap-2 ml-6"
420
- }, In = { class: "filter-logic-divider" }, Ln = { class: "flex flex-col gap-2" }, Rn = {
404
+ }, Fn = { class: "filter-logic-divider" }, In = { class: "flex flex-col gap-2" }, Ln = {
421
405
  key: 0,
422
406
  class: "flex flex-col gap-2"
423
- }, zn = { class: "filter-logic-divider" }, Bn = { class: "flex flex-col gap-2" }, Vn = {
407
+ }, Rn = { class: "filter-logic-divider" }, zn = { class: "flex flex-col gap-2" }, Bn = {
424
408
  key: 0,
425
409
  class: "flex flex-col gap-2"
426
- }, Hn = { class: "flex items-center gap-2 cursor-pointer text-sm" }, Un = 288, Wn = /*#__PURE__*/ ke(/* @__PURE__ */ D({
410
+ }, Vn = { class: "flex items-center gap-2 cursor-pointer text-sm" }, Hn = 288, Un = /*#__PURE__*/ z(/* @__PURE__ */ D({
427
411
  __name: "RecordingsFilterSidebar",
428
412
  props: {
429
413
  filters: {},
@@ -431,6 +415,8 @@ var Qt = l({
431
415
  isOpen: { type: Boolean },
432
416
  isOverlay: { type: Boolean },
433
417
  resultCount: {},
418
+ resultTotal: {},
419
+ resultCapped: { type: Boolean },
434
420
  semanticCount: {},
435
421
  semanticSearchAvailable: { type: Boolean },
436
422
  semanticSearchLoading: { type: Boolean },
@@ -445,25 +431,33 @@ var Qt = l({
445
431
  "close"
446
432
  ],
447
433
  setup(n, { expose: o, emit: s }) {
448
- let l = /* @__PURE__ */ new Set(["motion", "audio"]), h = n, g = s, { t: S } = Ie(), { xlBreakpoint: w } = V(), { topbarOffset: E, bottombarHeight: D } = ve(), { icons: j, generic: M } = Ve(), N = j, P = Qt, F = Yt, I = x("sidebarRef"), L = O(h.filters.semanticQuery ?? ""), R = O(""), z = A({
434
+ let l = /* @__PURE__ */ new Set(["motion", "audio"]), h = n, g = s, { t: S } = Re(), { topbarOffset: w, bottombarHeight: E } = Se(), { icons: D, generic: j } = Ue(), ee = D, M = Xt, N = qt, P = x("sidebarRef"), F = O(h.filters.semanticQuery ?? ""), I = O(""), L = A({
449
435
  eventTypes: !0,
450
436
  attributes: !0,
451
437
  sensorEvents: !0
452
- }), B = m(() => h.isOpen ? Un : 0), ee = m(() => {
438
+ }), R = m(() => h.isOpen ? Hn : 0), z = m(() => {
453
439
  let e = [...new Set(h.cameras.map((e) => e.room).filter((e) => !!e))];
454
440
  return e.sort((e, t) => e.localeCompare(t)), e.map((e) => ({
455
441
  id: e,
456
442
  name: e === "Default" ? S("components.form.label.room_default") : e
457
443
  }));
458
- }), ne = m(() => {
444
+ }), te = m(() => {
459
445
  let e = h.filters.rooms;
460
446
  return (e.length > 0 ? h.cameras.filter((t) => e.includes(t.room ?? "")) : h.cameras).map((e) => ({
461
447
  id: e.id,
462
448
  name: e.name
463
449
  }));
464
- }), H = m(() => {
450
+ }), ne = m(() => {
465
451
  if (h.filters.cameraIds.length === 1) return h.cameras.find((e) => e.id === h.filters.cameraIds[0])?.name;
466
- }), U = m(() => h.filters.contentKind === "episodes"), re = m(() => [
452
+ }), V = m(() => h.filters.contentKind === "episodes"), re = m(() => {
453
+ let e = V.value ? "episodes" : "recordings";
454
+ if (h.resultTotal === void 0) return S(`views.recordings.result_count_${e}`, { count: h.resultCount });
455
+ let t = h.resultCapped ? `${h.resultTotal}+` : h.resultTotal;
456
+ return S(`views.recordings.result_count_${e}_of`, {
457
+ count: h.resultCount,
458
+ total: t
459
+ });
460
+ }), ie = m(() => [
467
461
  {
468
462
  label: S("views.recordings.content_kind_all"),
469
463
  value: "all"
@@ -476,13 +470,13 @@ var Qt = l({
476
470
  label: S("views.recordings.content_kind_episodes"),
477
471
  value: "episodes"
478
472
  }
479
- ]), ie = m(() => [{
473
+ ]), ae = m(() => [{
480
474
  label: S("views.recordings.filter_and"),
481
475
  value: "and"
482
476
  }, {
483
477
  label: S("views.recordings.filter_or"),
484
478
  value: "or"
485
- }]), ae = m(() => [
479
+ }]), se = m(() => [
486
480
  {
487
481
  label: S("views.recordings.time_1h"),
488
482
  value: "1h"
@@ -499,37 +493,37 @@ var Qt = l({
499
493
  label: S("views.recordings.time_1m"),
500
494
  value: "1m"
501
495
  }
502
- ]), oe = m(() => Re.filter((e) => !l.has(e)).map((e) => ({
496
+ ]), ce = m(() => Be.filter((e) => !l.has(e)).map((e) => ({
503
497
  label: S(`views.recordings.type_${e}`),
504
498
  value: e,
505
- icon: j[e] ?? M
506
- }))), W = m(() => ({
499
+ icon: D[e] ?? j
500
+ }))), le = m(() => ({
507
501
  label: S("views.recordings.type_other"),
508
- value: Ce,
509
- icon: j.other ?? M
510
- })), se = m(() => ye.map((e) => ({
511
- label: S(Qe(e)),
502
+ value: B,
503
+ icon: D.other ?? j
504
+ })), ue = m(() => _e.map((e) => ({
505
+ label: S(et(e)),
512
506
  value: e,
513
- icon: N[e] ?? M
514
- }))), ce = m(() => Le.map((e) => ({
515
- label: S(Y(e)),
507
+ icon: ee[e] ?? j
508
+ }))), de = m(() => ze.map((e) => ({
509
+ label: S(q(e)),
516
510
  value: e,
517
- icon: j[e] ?? M
518
- }))), le = m(() => ze.map((e) => ({
519
- label: S($e(e)),
511
+ icon: D[e] ?? j
512
+ }))), fe = m(() => Ve.map((e) => ({
513
+ label: S(J(e)),
520
514
  value: e,
521
- icon: j[e] ?? M
515
+ icon: D[e] ?? j
522
516
  })));
523
- function G(e, t) {
517
+ function H(e, t) {
524
518
  g("update:filters", {
525
519
  ...h.filters,
526
520
  [e]: t
527
521
  });
528
522
  }
529
- let ue = je((e) => {
530
- G("search", e);
523
+ let pe = Ne((e) => {
524
+ H("search", e);
531
525
  }, 300);
532
- function fe(e) {
526
+ function me(e) {
533
527
  let t = new Set(h.cameras.filter((t) => e.length === 0 || e.includes(t.room ?? "")).map((e) => e.id));
534
528
  g("update:filters", {
535
529
  ...h.filters,
@@ -537,84 +531,84 @@ var Qt = l({
537
531
  cameraIds: h.filters.cameraIds.filter((e) => t.has(e))
538
532
  });
539
533
  }
540
- function me() {
541
- let e = R.value.trim();
534
+ function W() {
535
+ let e = I.value.trim();
542
536
  e && !h.assistantSearchLoading && g("assistant-search", e);
543
537
  }
544
538
  function he() {
545
- let e = L.value.trim();
546
- G("semanticQuery", e), g("semantic-search", e);
539
+ let e = F.value.trim();
540
+ H("semanticQuery", e), g("semantic-search", e);
547
541
  }
548
542
  function ge(e) {
549
543
  let t = [...h.filters.eventTypes], n = t.indexOf(e);
550
- n >= 0 ? t.splice(n, 1) : t.push(e), G("eventTypes", t);
544
+ n >= 0 ? t.splice(n, 1) : t.push(e), H("eventTypes", t);
551
545
  }
552
- function be(e) {
546
+ function ye(e) {
553
547
  let t = [...h.filters.audioLabels], n = t.indexOf(e);
554
- n >= 0 ? t.splice(n, 1) : t.push(e), G("audioLabels", t);
548
+ n >= 0 ? t.splice(n, 1) : t.push(e), H("audioLabels", t);
555
549
  }
556
- function xe(e) {
550
+ function be(e) {
557
551
  let t = [...h.filters.sensorEvents], n = t.indexOf(e);
558
- n >= 0 ? t.splice(n, 1) : t.push(e), G("sensorEvents", t);
552
+ n >= 0 ? t.splice(n, 1) : t.push(e), H("sensorEvents", t);
559
553
  }
560
- function Se(e) {
554
+ function Ce(e) {
561
555
  let t = [...h.filters.hasAttributes], n = t.indexOf(e);
562
- n >= 0 ? t.splice(n, 1) : t.push(e), G("hasAttributes", t);
556
+ n >= 0 ? t.splice(n, 1) : t.push(e), H("hasAttributes", t);
563
557
  }
564
558
  function we(e) {
565
- z[e] = !z[e];
559
+ L[e] = !L[e];
566
560
  }
567
- return _(L, (e) => {
568
- !e?.trim() && h.filters.semanticQuery && G("semanticQuery", "");
569
- }), Fe(I, (e) => {
561
+ return _(F, (e) => {
562
+ !e?.trim() && h.filters.semanticQuery && H("semanticQuery", "");
563
+ }), Le(P, (e) => {
570
564
  let t = e.target;
571
- t.closest("#recordings-sidebar-toggle") || t.closest("[data-pc-section=\"overlay\"], [data-pc-section=\"panel\"], .p-connected-overlay") || h.isOpen && (h.isOverlay || !w.value) && g("close");
572
- }), o({ sidebarWidth: B }), (o, s) => {
573
- let l = pe, m = We, h = te, g = Ye, _ = He, x = _e, S = Be, w = Je, O = K, A = de, j = q;
565
+ t.closest("#recordings-sidebar-toggle") || t.closest("[data-pc-section=\"overlay\"], [data-pc-section=\"panel\"], .p-connected-overlay") || h.isOpen && h.isOverlay && g("close");
566
+ }), o({ sidebarWidth: R }), (o, s) => {
567
+ let l = U, m = Ke, h = oe, g = Ze, _ = We, x = xe, S = He, D = Xe, O = Ae, A = ve, j = G;
574
568
  return i(), v("nav", {
575
569
  ref_key: "sidebarRef",
576
- ref: I,
570
+ ref: P,
577
571
  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",
578
572
  style: y({
579
- width: `${p(B)}px`,
573
+ width: `${p(R)}px`,
580
574
  borderRightWidth: n.isOpen ? "1px" : "0px",
581
- paddingBottom: `calc(var(--safe-area-inset-top) + var(--safe-area-inset-bottom) + ${p(D)}px + ${p(E)}px)`
575
+ paddingBottom: `calc(var(--safe-area-inset-top) + var(--safe-area-inset-bottom) + ${p(E)}px + ${p(w)}px)`
582
576
  })
583
577
  }, [C("div", {
584
578
  class: "flex flex-col gap-4 p-4",
585
- style: y({ width: `${Un}px` })
579
+ style: y({ width: `${Hn}px` })
586
580
  }, [
587
- C("div", $t, [
588
- C("label", en, a(o.$t("views.recordings.content_kind")), 1),
581
+ C("div", Zt, [
582
+ C("label", Qt, a(o.$t("views.recordings.content_kind")), 1),
589
583
  k(l, {
590
584
  "model-value": n.filters.contentKind,
591
- options: p(re),
585
+ options: p(ie),
592
586
  "option-label": "label",
593
587
  "option-value": "value",
594
588
  "allow-empty": !1,
595
589
  class: "content-kind-toggle",
596
- "onUpdate:modelValue": s[0] ||= (e) => G("contentKind", e)
590
+ "onUpdate:modelValue": s[0] ||= (e) => H("contentKind", e)
597
591
  }, null, 8, ["model-value", "options"]),
598
- p(U) ? (i(), v("span", tn, a(o.$t("views.recordings.content_kind_episodes_hint")), 1)) : d("", !0)
592
+ p(V) ? (i(), v(b, { key: 0 }, [C("span", $t, a(p(re)), 1), C("span", en, a(o.$t("views.recordings.content_kind_episodes_hint")), 1)], 64)) : d("", !0)
599
593
  ]),
600
594
  s[25] ||= C("div", { class: "sidebar-divider" }, null, -1),
601
- p(U) ? d("", !0) : (i(), v(b, { key: 0 }, [
602
- C("div", nn, [
603
- C("label", rn, a(o.$t("views.recordings.search")), 1),
604
- C("span", an, [k(m, {
595
+ p(V) ? d("", !0) : (i(), v(b, { key: 0 }, [
596
+ C("div", tn, [
597
+ C("label", nn, a(o.$t("views.recordings.search")), 1),
598
+ C("span", rn, [k(m, {
605
599
  "model-value": n.filters.search,
606
600
  placeholder: o.$t("views.recordings.search_placeholder"),
607
601
  class: "w-full text-sm",
608
- "onUpdate:modelValue": s[1] ||= (e) => p(ue)(e)
602
+ "onUpdate:modelValue": s[1] ||= (e) => p(pe)(e)
609
603
  }, null, 8, ["model-value", "placeholder"])]),
610
- C("span", on, a(o.$t("views.recordings.result_count", { count: n.resultCount })), 1)
604
+ C("span", an, a(p(re)), 1)
611
605
  ]),
612
606
  s[16] ||= C("div", { class: "sidebar-divider" }, null, -1),
613
- C("div", sn, [
614
- C("label", cn, [k(h, { class: "w-3.5 h-3.5" }), T(" " + a(o.$t("views.recordings.semantic_search")), 1)]),
607
+ C("div", on, [
608
+ C("label", sn, [k(h, { class: "w-3.5 h-3.5" }), T(" " + a(o.$t("views.recordings.semantic_search")), 1)]),
615
609
  k(g, {
616
- modelValue: p(L),
617
- "onUpdate:modelValue": s[2] ||= (e) => f(L) ? L.value = e : null,
610
+ modelValue: p(F),
611
+ "onUpdate:modelValue": s[2] ||= (e) => f(F) ? F.value = e : null,
618
612
  placeholder: o.$t("views.recordings.semantic_search_placeholder"),
619
613
  class: "w-full text-sm semantic-textarea",
620
614
  rows: "3",
@@ -631,34 +625,34 @@ var Qt = l({
631
625
  size: "small",
632
626
  class: "w-full text-xs",
633
627
  loading: n.semanticSearchLoading,
634
- disabled: !n.semanticSearchAvailable || !p(L)?.trim(),
628
+ disabled: !n.semanticSearchAvailable || !p(F)?.trim(),
635
629
  onClick: he
636
630
  }, null, 8, [
637
631
  "label",
638
632
  "loading",
639
633
  "disabled"
640
634
  ]),
641
- n.semanticCount == null ? d("", !0) : (i(), v("span", ln, [k(h, { class: "w-3 h-3" }), T(" " + a(o.$t("views.recordings.semantic_results", { count: n.semanticCount })), 1)])),
642
- n.filters.semanticQuery ? (i(), v("div", un, [C("label", dn, a(o.$t("views.recordings.min_match_score")), 1), C("div", fn, [k(x, {
635
+ n.semanticCount == null ? d("", !0) : (i(), v("span", cn, [k(h, { class: "w-3 h-3" }), T(" " + a(o.$t("views.recordings.semantic_results", { count: n.semanticCount })), 1)])),
636
+ n.filters.semanticQuery ? (i(), v("div", ln, [C("label", un, a(o.$t("views.recordings.min_match_score")), 1), C("div", dn, [k(x, {
643
637
  "model-value": n.filters.minSemanticScore,
644
638
  min: 0,
645
639
  max: 1,
646
640
  step: .05,
647
641
  class: "flex-1",
648
- "onUpdate:modelValue": s[3] ||= (e) => G("minSemanticScore", e)
649
- }, null, 8, ["model-value"]), C("span", pn, a(Math.round(n.filters.minSemanticScore * 100)) + "%", 1)])])) : d("", !0)
642
+ "onUpdate:modelValue": s[3] ||= (e) => H("minSemanticScore", e)
643
+ }, null, 8, ["model-value"]), C("span", fn, a(Math.round(n.filters.minSemanticScore * 100)) + "%", 1)])])) : d("", !0)
650
644
  ]),
651
645
  s[17] ||= C("div", { class: "sidebar-divider" }, null, -1)
652
646
  ], 64)),
653
- n.assistantSearchAvailable ? (i(), v(b, { key: 1 }, [C("div", mn, [
654
- C("label", hn, [k(S, { class: "w-3.5 h-3.5" }), T(" " + a(o.$t("views.recordings.assistant_search")), 1)]),
647
+ n.assistantSearchAvailable ? (i(), v(b, { key: 1 }, [C("div", pn, [
648
+ C("label", mn, [k(S, { class: "w-3.5 h-3.5" }), T(" " + a(o.$t("views.recordings.assistant_search")), 1)]),
655
649
  k(m, {
656
- modelValue: p(R),
657
- "onUpdate:modelValue": s[4] ||= (e) => f(R) ? R.value = e : null,
650
+ modelValue: p(I),
651
+ "onUpdate:modelValue": s[4] ||= (e) => f(I) ? I.value = e : null,
658
652
  placeholder: o.$t("views.recordings.assistant_search_placeholder"),
659
653
  class: "w-full text-sm",
660
654
  disabled: n.assistantSearchLoading,
661
- onKeydown: t(e(me, ["prevent"]), ["enter"])
655
+ onKeydown: t(e(W, ["prevent"]), ["enter"])
662
656
  }, null, 8, [
663
657
  "modelValue",
664
658
  "placeholder",
@@ -672,18 +666,18 @@ var Qt = l({
672
666
  size: "small",
673
667
  class: "w-full text-xs",
674
668
  loading: n.assistantSearchLoading,
675
- disabled: !p(R).trim(),
676
- onClick: me
669
+ disabled: !p(I).trim(),
670
+ onClick: W
677
671
  }, null, 8, [
678
672
  "label",
679
673
  "loading",
680
674
  "disabled"
681
675
  ]),
682
- n.assistantSearchNote ? (i(), v("span", gn, a(n.assistantSearchNote), 1)) : d("", !0)
676
+ n.assistantSearchNote ? (i(), v("span", hn, a(n.assistantSearchNote), 1)) : d("", !0)
683
677
  ]), s[18] ||= C("div", { class: "sidebar-divider" }, null, -1)], 64)) : d("", !0),
684
- p(ee).length > 1 ? (i(), v("div", _n, [C("label", vn, a(o.$t("views.recordings.rooms")), 1), k(w, {
678
+ p(z).length > 1 ? (i(), v("div", gn, [C("label", _n, a(o.$t("views.recordings.rooms")), 1), k(D, {
685
679
  "model-value": n.filters.rooms,
686
- options: p(ee),
680
+ options: p(z),
687
681
  "option-label": "name",
688
682
  "option-value": "id",
689
683
  placeholder: o.$t("views.recordings.all_rooms"),
@@ -691,15 +685,15 @@ var Qt = l({
691
685
  "max-selected-labels": 2,
692
686
  "show-toggle-all": !1,
693
687
  pt: { overlay: { style: "position: fixed" } },
694
- "onUpdate:modelValue": s[5] ||= (e) => fe(e)
688
+ "onUpdate:modelValue": s[5] ||= (e) => me(e)
695
689
  }, null, 8, [
696
690
  "model-value",
697
691
  "options",
698
692
  "placeholder"
699
693
  ])])) : d("", !0),
700
- C("div", yn, [C("label", bn, a(o.$t("views.recordings.cameras")), 1), k(w, {
694
+ C("div", vn, [C("label", yn, a(o.$t("views.recordings.cameras")), 1), k(D, {
701
695
  "model-value": n.filters.cameraIds,
702
- options: p(ne),
696
+ options: p(te),
703
697
  "option-label": "name",
704
698
  "option-value": "id",
705
699
  placeholder: o.$t("views.recordings.all_cameras"),
@@ -707,20 +701,20 @@ var Qt = l({
707
701
  "max-selected-labels": 2,
708
702
  "show-toggle-all": !1,
709
703
  pt: { overlay: { style: "position: fixed" } },
710
- "onUpdate:modelValue": s[6] ||= (e) => G("cameraIds", e)
704
+ "onUpdate:modelValue": s[6] ||= (e) => H("cameraIds", e)
711
705
  }, null, 8, [
712
706
  "model-value",
713
707
  "options",
714
708
  "placeholder"
715
709
  ])]),
716
- p(H) && !p(U) ? (i(), v(b, { key: 3 }, [s[19] ||= C("div", { class: "sidebar-divider" }, null, -1), C("div", xn, [
717
- C("label", Sn, a(o.$t("views.recordings.grid_search")), 1),
718
- C("div", Cn, [k(O, {
719
- camera: p(H),
710
+ p(ne) && !p(V) ? (i(), v(b, { key: 3 }, [s[19] ||= C("div", { class: "sidebar-divider" }, null, -1), C("div", bn, [
711
+ C("label", xn, a(o.$t("views.recordings.grid_search")), 1),
712
+ C("div", Sn, [k(O, {
713
+ camera: p(ne),
720
714
  "object-fit": "cover"
721
715
  }, null, 8, ["camera"]), k(A, {
722
716
  "model-value": n.filters.gridRegions,
723
- "onUpdate:modelValue": s[7] ||= (e) => G("gridRegions", e)
717
+ "onUpdate:modelValue": s[7] ||= (e) => H("gridRegions", e)
724
718
  }, null, 8, ["model-value"])]),
725
719
  k(_, {
726
720
  label: o.$t("views.recordings.grid_clear"),
@@ -729,75 +723,75 @@ var Qt = l({
729
723
  size: "small",
730
724
  class: "w-full text-xs",
731
725
  disabled: n.filters.gridRegions.length === 0,
732
- onClick: s[8] ||= (e) => G("gridRegions", [])
726
+ onClick: s[8] ||= (e) => H("gridRegions", [])
733
727
  }, null, 8, ["label", "disabled"])
734
728
  ])], 64)) : d("", !0),
735
- p(U) ? d("", !0) : (i(), v("div", wn)),
736
- p(U) ? d("", !0) : (i(), v("div", Tn, [C("label", En, a(o.$t("views.recordings.confidence")), 1), C("div", Dn, [k(x, {
729
+ p(V) ? d("", !0) : (i(), v("div", Cn)),
730
+ p(V) ? d("", !0) : (i(), v("div", wn, [C("label", Tn, a(o.$t("views.recordings.confidence")), 1), C("div", En, [k(x, {
737
731
  "model-value": n.filters.minConfidence,
738
732
  min: 0,
739
733
  max: 1,
740
734
  step: .05,
741
735
  class: "flex-1",
742
- "onUpdate:modelValue": s[9] ||= (e) => G("minConfidence", e)
743
- }, null, 8, ["model-value"]), C("span", On, a(Math.round(n.filters.minConfidence * 100)) + "%", 1)])])),
736
+ "onUpdate:modelValue": s[9] ||= (e) => H("minConfidence", e)
737
+ }, null, 8, ["model-value"]), C("span", Dn, a(Math.round(n.filters.minConfidence * 100)) + "%", 1)])])),
744
738
  s[26] ||= C("div", { class: "sidebar-divider" }, null, -1),
745
- C("div", kn, [C("label", An, a(o.$t("views.recordings.time_range")), 1), C("div", jn, [(i(!0), v(b, null, r(p(ae), (e) => (i(), u(_, {
739
+ C("div", On, [C("label", kn, a(o.$t("views.recordings.time_range")), 1), C("div", An, [(i(!0), v(b, null, r(p(se), (e) => (i(), u(_, {
746
740
  key: e.value,
747
741
  label: e.label,
748
742
  severity: n.filters.timeRange === e.value ? void 0 : "secondary",
749
743
  outlined: n.filters.timeRange !== e.value,
750
744
  size: "small",
751
745
  class: "text-xs flex-1 min-w-0",
752
- onClick: (t) => G("timeRange", n.filters.timeRange === e.value ? null : e.value)
746
+ onClick: (t) => H("timeRange", n.filters.timeRange === e.value ? null : e.value)
753
747
  }, null, 8, [
754
748
  "label",
755
749
  "severity",
756
750
  "outlined",
757
751
  "onClick"
758
752
  ]))), 128))])]),
759
- p(U) ? d("", !0) : (i(), v(b, { key: 6 }, [
753
+ p(V) ? d("", !0) : (i(), v(b, { key: 6 }, [
760
754
  s[24] ||= C("div", { class: "sidebar-divider" }, null, -1),
761
- C("div", Mn, [C("button", {
755
+ C("div", jn, [C("button", {
762
756
  class: "sidebar-section-title flex items-center justify-between w-full cursor-pointer",
763
757
  onClick: s[10] ||= (e) => we("sensorEvents")
764
- }, [C("span", null, a(o.$t("views.recordings.sensor_events")), 1), (i(), u(c(p(z).sensorEvents ? p(P) : p(F)), { class: "w-4 h-4 text-muted" }))]), p(z).sensorEvents ? (i(), v("div", Nn, [(i(!0), v(b, null, r(p(se), (e) => (i(), v(b, { key: e.value }, [C("label", Pn, [
758
+ }, [C("span", null, a(o.$t("views.recordings.sensor_events")), 1), (i(), u(c(p(L).sensorEvents ? p(M) : p(N)), { class: "w-4 h-4 text-muted" }))]), p(L).sensorEvents ? (i(), v("div", Mn, [(i(!0), v(b, null, r(p(ue), (e) => (i(), v(b, { key: e.value }, [C("label", Nn, [
765
759
  k(j, {
766
760
  "model-value": n.filters.sensorEvents.includes(e.value),
767
761
  binary: !0,
768
- "onUpdate:modelValue": (t) => xe(e.value)
762
+ "onUpdate:modelValue": (t) => be(e.value)
769
763
  }, null, 8, ["model-value", "onUpdate:modelValue"]),
770
764
  (i(), u(c(e.icon), { class: "w-4 h-4 text-muted" })),
771
765
  C("span", null, a(e.label), 1)
772
- ]), e.value === "audio" && n.filters.sensorEvents.includes("audio") ? (i(), v("div", Fn, [(i(!0), v(b, null, r(p(ce), (e) => (i(), v("label", {
766
+ ]), e.value === "audio" && n.filters.sensorEvents.includes("audio") ? (i(), v("div", Pn, [(i(!0), v(b, null, r(p(de), (e) => (i(), v("label", {
773
767
  key: e.value,
774
768
  class: "flex items-center gap-2 cursor-pointer text-sm"
775
769
  }, [
776
770
  k(j, {
777
771
  "model-value": n.filters.audioLabels.includes(e.value),
778
772
  binary: !0,
779
- "onUpdate:modelValue": (t) => be(e.value)
773
+ "onUpdate:modelValue": (t) => ye(e.value)
780
774
  }, null, 8, ["model-value", "onUpdate:modelValue"]),
781
775
  (i(), u(c(e.icon), { class: "w-4 h-4 text-muted" })),
782
776
  C("span", null, a(e.label), 1)
783
777
  ]))), 128))])) : d("", !0)], 64))), 128))])) : d("", !0)]),
784
- C("div", In, [
778
+ C("div", Fn, [
785
779
  s[20] ||= C("div", { class: "filter-logic-line" }, null, -1),
786
780
  k(l, {
787
781
  "model-value": n.filters.filterLogicTriggers,
788
- options: p(ie),
782
+ options: p(ae),
789
783
  "option-label": "label",
790
784
  "option-value": "value",
791
785
  "allow-empty": !1,
792
786
  class: "filter-logic-toggle",
793
- "onUpdate:modelValue": s[11] ||= (e) => G("filterLogicTriggers", e)
787
+ "onUpdate:modelValue": s[11] ||= (e) => H("filterLogicTriggers", e)
794
788
  }, null, 8, ["model-value", "options"]),
795
789
  s[21] ||= C("div", { class: "filter-logic-line" }, null, -1)
796
790
  ]),
797
- C("div", Ln, [C("button", {
791
+ C("div", In, [C("button", {
798
792
  class: "sidebar-section-title flex items-center justify-between w-full cursor-pointer",
799
793
  onClick: s[12] ||= (e) => we("eventTypes")
800
- }, [C("span", null, a(o.$t("views.recordings.event_type")), 1), (i(), u(c(p(z).eventTypes ? p(P) : p(F)), { class: "w-4 h-4 text-muted" }))]), p(z).eventTypes ? (i(), v("div", Rn, [(i(!0), v(b, null, r(p(oe), (e) => (i(), v("label", {
794
+ }, [C("span", null, a(o.$t("views.recordings.event_type")), 1), (i(), u(c(p(L).eventTypes ? p(M) : p(N)), { class: "w-4 h-4 text-muted" }))]), p(L).eventTypes ? (i(), v("div", Ln, [(i(!0), v(b, null, r(p(ce), (e) => (i(), v("label", {
801
795
  key: e.value,
802
796
  class: "flex items-center gap-2 cursor-pointer text-sm"
803
797
  }, [
@@ -809,70 +803,70 @@ var Qt = l({
809
803
  (i(), u(c(e.icon), { class: "w-4 h-4 text-muted" })),
810
804
  C("span", null, a(e.label), 1)
811
805
  ]))), 128))])) : d("", !0)]),
812
- C("div", zn, [
806
+ C("div", Rn, [
813
807
  s[22] ||= C("div", { class: "filter-logic-line" }, null, -1),
814
808
  k(l, {
815
809
  "model-value": n.filters.filterLogicAttributes,
816
- options: p(ie),
810
+ options: p(ae),
817
811
  "option-label": "label",
818
812
  "option-value": "value",
819
813
  "allow-empty": !1,
820
814
  class: "filter-logic-toggle",
821
- "onUpdate:modelValue": s[13] ||= (e) => G("filterLogicAttributes", e)
815
+ "onUpdate:modelValue": s[13] ||= (e) => H("filterLogicAttributes", e)
822
816
  }, null, 8, ["model-value", "options"]),
823
817
  s[23] ||= C("div", { class: "filter-logic-line" }, null, -1)
824
818
  ]),
825
- C("div", Bn, [C("button", {
819
+ C("div", zn, [C("button", {
826
820
  class: "sidebar-section-title flex items-center justify-between w-full cursor-pointer",
827
821
  onClick: s[14] ||= (e) => we("attributes")
828
- }, [C("span", null, a(o.$t("views.recordings.attributes")), 1), (i(), u(c(p(z).attributes ? p(P) : p(F)), { class: "w-4 h-4 text-muted" }))]), p(z).attributes ? (i(), v("div", Vn, [(i(!0), v(b, null, r(p(le), (e) => (i(), v("label", {
822
+ }, [C("span", null, a(o.$t("views.recordings.attributes")), 1), (i(), u(c(p(L).attributes ? p(M) : p(N)), { class: "w-4 h-4 text-muted" }))]), p(L).attributes ? (i(), v("div", Bn, [(i(!0), v(b, null, r(p(fe), (e) => (i(), v("label", {
829
823
  key: e.value,
830
824
  class: "flex items-center gap-2 cursor-pointer text-sm"
831
825
  }, [
832
826
  k(j, {
833
827
  "model-value": n.filters.hasAttributes.includes(e.value),
834
828
  binary: !0,
835
- "onUpdate:modelValue": (t) => Se(e.value)
829
+ "onUpdate:modelValue": (t) => Ce(e.value)
836
830
  }, null, 8, ["model-value", "onUpdate:modelValue"]),
837
831
  (i(), u(c(e.icon), { class: "w-4 h-4 text-muted" })),
838
832
  C("span", null, a(e.label), 1)
839
- ]))), 128)), C("label", Hn, [
833
+ ]))), 128)), C("label", Vn, [
840
834
  k(j, {
841
- "model-value": n.filters.eventTypes.includes(p(W).value),
835
+ "model-value": n.filters.eventTypes.includes(p(le).value),
842
836
  binary: !0,
843
- "onUpdate:modelValue": s[15] ||= (e) => ge(p(W).value)
837
+ "onUpdate:modelValue": s[15] ||= (e) => ge(p(le).value)
844
838
  }, null, 8, ["model-value"]),
845
- (i(), u(c(p(W).icon), { class: "w-4 h-4 text-muted" })),
846
- C("span", null, a(p(W).label), 1)
839
+ (i(), u(c(p(le).icon), { class: "w-4 h-4 text-muted" })),
840
+ C("span", null, a(p(le).label), 1)
847
841
  ])])) : d("", !0)])
848
842
  ], 64))
849
843
  ], 4)], 4);
850
844
  };
851
845
  }
852
- }), [["__scopeId", "data-v-e863f967"]]), Gn = { class: "font-semibold text-xl truncate" }, Kn = { class: "w-full h-full relative" }, qn = {
846
+ }), [["__scopeId", "data-v-f2bbf9b7"]]), Wn = { class: "font-semibold text-xl truncate" }, Gn = { class: "w-full h-full relative" }, Kn = {
853
847
  key: 0,
854
848
  class: "w-full flex flex-row h-[calc(40px+1rem)] py-2 items-center fixed z-10"
855
- }, Jn = { class: "relative z-2 page-title !m-0" }, Yn = {
849
+ }, qn = { class: "relative z-2 page-title !m-0" }, Jn = {
856
850
  key: 1,
857
851
  class: "fixed right-0 z-10 h-[calc(40px+1rem)] py-2 pr-2 flex items-center"
858
- }, Xn = {
852
+ }, Yn = {
859
853
  key: 2,
860
854
  class: "flex justify-center py-4"
861
- }, Zn = {
855
+ }, Xn = {
862
856
  key: 3,
863
857
  class: "flex flex-1 min-h-0 flex-col items-center justify-center w-full gap-4"
864
- }, Qn = { class: "text-muted text-sm" }, $n = 288, er = /* @__PURE__ */ D({
858
+ }, Zn = { class: "text-muted text-sm" }, Qn = 288, $n = /* @__PURE__ */ D({
865
859
  __name: "Recordings",
866
860
  setup(e) {
867
- let t = new Ze(), n = new ce(), c = new ue(), l = fe(), f = ge(), { bottombarHeight: S } = ve(), { status: T, checking: D } = G(), { openEventTrace: A } = we(), N = Se("@camera.ui/camera-ui-nvr"), P = me(), { t: H, locale: de } = Ie(), { smBreakpoint: K, xlBreakpoint: pe, mdBreakpoint: _e } = V(), { registerScrollToTop: ye } = se();
861
+ let t = new $e(), n = new ie(), r = new ke(), c = be(), l = ge(), { bottombarHeight: f } = Se(), { status: S, checking: T } = te(), { openEventTrace: D } = Te(), A = re("@camera.ui/camera-ui-nvr"), M = ue(), { t: N, locale: z } = Re(), { smBreakpoint: B, xlBreakpoint: U, mdBreakpoint: W } = F(), { registerScrollToTop: _e } = V();
868
862
  if (typeof VideoDecoder < "u") {
869
- let e = ee({ cacheSize: 20 });
870
- o(ie, e), Me(() => e.dispose());
863
+ let e = P({ cacheSize: 20 });
864
+ o(Me, e), Pe(() => e.dispose());
871
865
  }
872
- let { results: Ce, isSearching: Oe, isAvailable: ke, hasSearched: je, search: Ne, clear: Fe } = Te(), { data: Le } = t.getAssistantStatusQuery(), { data: Re } = n.getCamerasQuery({
866
+ let { results: ve, isSearching: xe, isAvailable: Oe, hasSearched: Ae, search: Ne, clear: Fe } = pe(), { data: Le } = t.getAssistantStatusQuery(), { data: ze } = n.getCamerasQuery({
873
867
  page: 1,
874
868
  pageSize: -1
875
- }), { data: ze } = c.getUserQuery(m(() => f.user?.username ?? "")), Be = {
869
+ }), { data: Be } = r.getUserQuery(m(() => l.user?.username ?? "")), Ve = Array.from({ length: 24 }, (e, t) => t), He = {
876
870
  contentKind: "all",
877
871
  favoritesOnly: !1,
878
872
  search: "",
@@ -891,210 +885,221 @@ var Qt = l({
891
885
  minConfidence: .5,
892
886
  minSemanticScore: .5,
893
887
  onlyWithRecordings: !0
894
- }, Ve = {
888
+ }, Ue = {
895
889
  "1h": 36e5,
896
890
  "1d": 864e5,
897
891
  "1w": 6048e5,
898
892
  "1m": 2592e6
899
- }, Ue = x("gridRef"), We = x("viewMenuRef"), q = O("closed"), Ge = O(!1), J = O({ ...Be }), qe = O(!1), Je = O(""), Ye = E({
893
+ }, Ge = x("gridRef"), Ke = x("viewMenuRef"), G = O("closed"), qe = O(!1), K = O({ ...He }), Ye = O(!1), Xe = O(""), Ze = E({
900
894
  hasDetections: !0,
901
895
  withRecordingInfo: !0,
902
896
  hasRecording: !0
903
- }), Qe = JSON.stringify(Ye.value), Y = O(!1), $e = E([]), ct = O(null), lt = x("reindexAnchorRef"), { left: dt } = Pe(lt), ft = !1, X = m(() => pe.value ? !0 : q.value === "opened"), pt = m(() => _e.value), mt = I(() => Ue.value?.scrollY ?? 0), gt = m(() => X.value && pt.value ? !0 : mt.value && !T.value?.running), _t = m(() => _e.value ? "0px" : X.value ? `${$n}px` : "0px"), Z = m(() => (Re.value?.result ?? []).map((e) => ({
897
+ }), et = JSON.stringify(Ze.value), q = O(), J = O(!1), ut = E([]), dt = O(null), ft = x("reindexAnchorRef"), { left: pt } = Ie(ft), mt = !1, Y = m(() => U.value ? !0 : G.value === "opened"), gt = m(() => W.value), _t = Ce(() => Ge.value?.scrollY ?? 0), vt = m(() => Y.value && gt.value ? !0 : _t.value && !S.value?.running), yt = m(() => W.value ? "0px" : Y.value ? `${Qn}px` : "0px"), X = m(() => (ze.value?.result ?? []).map((e) => ({
904
898
  id: e._id,
905
899
  name: e.name,
906
900
  room: e.room
907
- }))), vt = m(() => {
901
+ }))), bt = m(() => {
908
902
  let e = /* @__PURE__ */ new Map();
909
- for (let t of Z.value) e.set(t.id, t.name);
903
+ for (let t of X.value) e.set(t.id, t.name);
910
904
  return e;
911
- }), yt = m(() => {
905
+ }), xt = m(() => {
912
906
  let e = /* @__PURE__ */ new Map();
913
- for (let t of Re.value?.result ?? []) e.set(t._id, t);
907
+ for (let t of ze.value?.result ?? []) e.set(t._id, t);
914
908
  return e;
915
- }), bt = m(() => {
916
- let e = J.value.rooms;
917
- return (e.length > 0 ? Z.value.filter((t) => e.includes(t.room ?? "")) : Z.value).map((e) => e.id);
918
- }), xt = m(() => J.value.cameraIds.filter((e) => bt.value.includes(e))), St = m(() => bt.value);
919
- ye(() => Ue.value?.scrollToTop());
920
- let { events: Ct, isLoading: wt, hasMore: Tt, loadMore: Et, loadThumbnails: Dt, deleteEvents: Ot, reset: kt, loadFailed: At, pluginUnavailable: jt } = z({
921
- availableCameraIds: St,
922
- cameraIds: xt,
909
+ }), St = m(() => {
910
+ let e = K.value.rooms;
911
+ return (e.length > 0 ? X.value.filter((t) => e.includes(t.room ?? "")) : X.value).map((e) => e.id);
912
+ }), Ct = m(() => K.value.cameraIds.filter((e) => St.value.includes(e))), wt = m(() => St.value);
913
+ _e(() => Ge.value?.scrollToTop());
914
+ let { events: Tt, isLoading: Et, hasMore: Dt, stats: Ot, loadMore: kt, loadThumbnails: At, deleteEvents: jt, reset: Mt, loadFailed: Nt, pluginUnavailable: Pt } = se({
915
+ availableCameraIds: wt,
916
+ cameraIds: Ct,
923
917
  realtime: !0,
924
918
  pageSize: 40,
925
- filter: Ye,
926
- withEpisodes: !0
927
- }), Q = m(() => {
919
+ filter: Ze,
920
+ withEpisodes: !0,
921
+ withStats: !0
922
+ }), Z = m(() => {
928
923
  let e = /* @__PURE__ */ new Map();
929
- for (let t of Ce.value ?? []) {
924
+ for (let t of ve.value ?? []) {
930
925
  let n = e.get(t.eventId);
931
926
  (!n || t.score > n) && e.set(t.eventId, t.score);
932
927
  }
933
928
  return e;
934
- }), Mt = m(() => je.value), Nt = m(() => jt.value ? H("views.recordings.recordings_unavailable") : At.value ? H("views.recordings.load_failed") : H("views.recordings.no_recordings")), $ = m(() => {
935
- let e = Ct.value.filter((e) => e.state === "ended" || (e.segments?.length ?? 0) > 0), t = J.value;
936
- if (t.timeRange && Ve[t.timeRange]) {
937
- let n = Date.now() - Ve[t.timeRange];
938
- e = e.filter((e) => e.startTime >= n);
929
+ }), Ft = m(() => Ae.value), It = m(() => Pt.value ? N("views.recordings.recordings_unavailable") : Nt.value ? N("views.recordings.load_failed") : N("views.recordings.no_recordings")), Q = m(() => {
930
+ let e = Tt.value.filter((e) => e.state === "ended" || (e.segments?.length ?? 0) > 0), t = K.value;
931
+ if (q.value !== void 0) {
932
+ let t = q.value;
933
+ e = e.filter((e) => e.startTime >= t);
939
934
  }
940
- return t.gridRegions.length > 0 && (e = e.filter((e) => e.segments.some((e) => e.detections.some((e) => e.box && it(e.box, t.gridRegions))))), t.favoritesOnly && (e = e.filter((e) => e.favorite)), Mt.value && (e = e.filter((e) => {
941
- let n = Q.value.get(e.id);
935
+ return t.gridRegions.length > 0 && (e = e.filter((e) => e.segments.some((e) => e.detections.some((e) => e.box && at(e.box, t.gridRegions))))), t.favoritesOnly && (e = e.filter((e) => e.favorite)), Ft.value && (e = e.filter((e) => {
936
+ let n = Z.value.get(e.id);
942
937
  return n != null && n >= t.minSemanticScore;
943
- }), e.sort((e, t) => (Q.value.get(t.id) ?? 0) - (Q.value.get(e.id) ?? 0))), e;
944
- }), Pt = m(() => J.value.contentKind === "episodes"), Ft = m(() => Le.value?.state === "ready"), It = m(() => {
945
- if (J.value.contentKind === "events") return [];
946
- N.storeVersion.value;
947
- let e = J.value;
948
- if (!Pt.value && (Y.value || Mt.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 [];
949
- let t = xt.value.length > 0 ? xt.value : St.value, n = e.timeRange && Ve[e.timeRange] ? Date.now() - Ve[e.timeRange] : 0, r = Infinity;
950
- if (e.timeRange === "custom" && e.customDateRange && (n = Math.max(n, e.customDateRange[0].getTime()), r = e.customDateRange[1].getTime()), Tt.value && !Pt.value) {
938
+ }), e.sort((e, t) => (Z.value.get(t.id) ?? 0) - (Z.value.get(e.id) ?? 0))), e;
939
+ }), $ = m(() => K.value.contentKind === "episodes"), Lt = m(() => {
940
+ let e = K.value;
941
+ return e.search.trim() !== "" || e.eventTypes.length > 0 || e.audioLabels.length > 0 || e.hasAttributes.length > 0 || e.sensorEvents.length > 0 || e.minConfidence !== .5;
942
+ }), Rt = m(() => Le.value?.state === "ready"), zt = m(() => {
943
+ if (K.value.contentKind === "events") return [];
944
+ A.storeVersion.value;
945
+ let e = K.value;
946
+ if (!$.value && (J.value || Ft.value || e.gridRegions.length > 0 || Lt.value)) return [];
947
+ let t = Ct.value.length > 0 ? Ct.value : wt.value, n = q.value ?? 0, r = Infinity;
948
+ if (e.timeRange === "custom" && e.customDateRange && (n = Math.max(n, e.customDateRange[0].getTime()), r = e.customDateRange[1].getTime()), Dt.value && !$.value) {
951
949
  let e = Infinity;
952
- for (let t of Ct.value) e = Math.min(e, t.thumbnailAt ?? t.startTime);
950
+ for (let t of Tt.value) e = Math.min(e, t.thumbnailAt ?? t.startTime);
953
951
  n = Math.max(n, e);
954
952
  }
955
953
  let i = [];
956
- for (let a of N.getEpisodes()) a.description && (!e.favoritesOnly || a.favorite) && (n && a.endTime < n || a.startTime > r || t.length > 0 && !a.members.some((e) => t.includes(e.cameraId)) || i.push({
954
+ for (let a of A.getEpisodes()) a.description && (!e.favoritesOnly || a.favorite) && (n && a.endTime < n || a.startTime > r || t.length > 0 && !a.members.some((e) => t.includes(e.cameraId)) || i.push({
957
955
  event: void 0,
958
956
  key: `episode:${a.id}`,
959
957
  episode: a
960
958
  }));
961
959
  return i;
962
- }), Lt = m(() => {
963
- if (Pt.value) return [...It.value].sort((e, t) => tt(t) - tt(e));
964
- if (Y.value && $e.value.length) return $e.value;
965
- let e = $.value.map((e) => ({
960
+ }), Bt = m(() => {
961
+ if ($.value) return [...zt.value].sort((e, t) => nt(t) - nt(e));
962
+ if (J.value && ut.value.length) return ut.value;
963
+ let e = Q.value.map((e) => ({
966
964
  event: e,
967
965
  key: e.id
968
966
  }));
969
- return It.value.length && (e.push(...It.value), e.sort((e, t) => tt(t) - tt(e))), e;
970
- }), Rt = m(() => be(void 0, "admin")), zt = m(() => $.value.filter((e) => e.state === "ended")), { selectionMode: Bt, selectedIds: Vt, allSelected: Ht, bulkBusy: Ut, enterSelectionMode: Wt, exitSelectionMode: Gt, toggleSelectAll: qt, toggleSelection: Jt } = Ae(zt, (e) => e.id);
971
- function Yt() {
972
- let e = [...Vt.value];
973
- e.length && !Ut.value && l.openTextDialog({
967
+ return zt.value.length && (e.push(...zt.value), e.sort((e, t) => nt(t) - nt(e))), e;
968
+ }), Vt = m(() => {
969
+ let e = Ot.value, t = K.value;
970
+ if (!e || !Dt.value || Ft.value || t.gridRegions.length > 0 || t.timeRange && q.value === void 0) return;
971
+ if ($.value) return e.episodes;
972
+ if (J.value) return e.segments;
973
+ let n = t.contentKind !== "events" && !Lt.value;
974
+ return e.total + (n ? e.episodes : 0);
975
+ }), Ht = m(() => ye(void 0, "admin")), Ut = m(() => Q.value.filter((e) => e.state === "ended")), { selectionMode: Gt, selectedIds: Kt, allSelected: qt, bulkBusy: Jt, enterSelectionMode: Yt, exitSelectionMode: Xt, toggleSelectAll: Zt, toggleSelection: Qt } = le(Ut, (e) => e.id);
976
+ function $t() {
977
+ let e = [...Kt.value];
978
+ e.length && !Jt.value && c.openTextDialog({
974
979
  data: {
975
- title: H("components.dialog.title.confirm"),
976
- contentText: H("views.recordings.delete_selected_confirm", { count: e.length }),
977
- confirmText: H("components.form.button.remove"),
980
+ title: N("components.dialog.title.confirm"),
981
+ contentText: N("views.recordings.delete_selected_confirm", { count: e.length }),
982
+ confirmText: N("components.form.button.remove"),
978
983
  confirmButtonProps: { severity: "danger" }
979
984
  },
980
985
  onConfirm: async () => {
981
- Ut.value = !0;
986
+ Jt.value = !0;
982
987
  try {
983
- await Ot(e), Gt(), P.add({
988
+ await jt(e), Xt(), M.add({
984
989
  severity: "success",
985
- detail: H("views.recordings.delete_selected_done", { count: e.length }),
990
+ detail: N("views.recordings.delete_selected_done", { count: e.length }),
986
991
  life: 5e3
987
992
  });
988
993
  } catch (e) {
989
- P.add({
994
+ M.add({
990
995
  severity: "error",
991
996
  detail: e?.message ?? String(e),
992
997
  life: 5e3
993
998
  });
994
999
  } finally {
995
- Ut.value = !1;
1000
+ Jt.value = !1;
996
1001
  }
997
1002
  }
998
1003
  });
999
1004
  }
1000
- let Xt = m(() => [
1005
+ let en = m(() => [
1001
1006
  {
1002
1007
  key: "ungroup",
1003
- label: H("views.recordings.ungroup"),
1004
- description: H("views.recordings.ungroup_hint"),
1008
+ label: N("views.recordings.ungroup"),
1009
+ description: N("views.recordings.ungroup_hint"),
1005
1010
  toggle: !0,
1006
- toggleState: Y.value,
1011
+ toggleState: J.value,
1007
1012
  onClick: () => {
1008
- ft = !0, Y.value = !Y.value, f.updateUser({ preferences: { recordings: { ungrouped: Y.value } } });
1013
+ mt = !0, J.value = !J.value, l.updateUser({ preferences: { recordings: { ungrouped: J.value } } });
1009
1014
  }
1010
1015
  },
1011
1016
  {
1012
1017
  key: "onlyWithRecordings",
1013
- label: H("views.recordings.only_with_recordings"),
1014
- description: H("views.recordings.only_with_recordings_hint"),
1018
+ label: N("views.recordings.only_with_recordings"),
1019
+ description: N("views.recordings.only_with_recordings_hint"),
1015
1020
  toggle: !0,
1016
- toggleState: J.value.onlyWithRecordings,
1021
+ toggleState: K.value.onlyWithRecordings,
1017
1022
  onClick: () => {
1018
- J.value = {
1019
- ...J.value,
1020
- onlyWithRecordings: !J.value.onlyWithRecordings
1023
+ K.value = {
1024
+ ...K.value,
1025
+ onlyWithRecordings: !K.value.onlyWithRecordings
1021
1026
  };
1022
1027
  }
1023
1028
  },
1024
- ...Rt.value ? [{
1029
+ ...Ht.value ? [{
1025
1030
  key: "favoritesOnly",
1026
- label: H("views.recordings.favorites_only"),
1027
- description: H("views.recordings.favorites_hint"),
1031
+ label: N("views.recordings.favorites_only"),
1032
+ description: N("views.recordings.favorites_hint"),
1028
1033
  toggle: !0,
1029
- toggleState: J.value.favoritesOnly,
1034
+ toggleState: K.value.favoritesOnly,
1030
1035
  onClick: () => {
1031
- J.value = {
1032
- ...J.value,
1033
- favoritesOnly: !J.value.favoritesOnly
1036
+ K.value = {
1037
+ ...K.value,
1038
+ favoritesOnly: !K.value.favoritesOnly
1034
1039
  };
1035
1040
  }
1036
1041
  }] : []
1037
1042
  ]);
1038
- function Zt() {
1039
- l.openComponentDialog(ht, { data: {
1040
- title: H("views.recordings.reindex.title"),
1043
+ function tn() {
1044
+ c.openComponentDialog(ht, { data: {
1045
+ title: N("views.recordings.reindex.title"),
1041
1046
  contentProps: {},
1042
- confirmText: H("views.recordings.reindex.start")
1047
+ confirmText: N("views.recordings.reindex.start")
1043
1048
  } });
1044
1049
  }
1045
- function Qt() {
1046
- l.openComponentDialog(Kt, { data: {
1047
- title: H("views.recordings.export.title"),
1050
+ function nn() {
1051
+ c.openComponentDialog(Wt, { data: {
1052
+ title: N("views.recordings.export.title"),
1048
1053
  contentProps: {
1049
- cameras: Z.value,
1050
- preselect: J.value.cameraIds?.length ? J.value.cameraIds : []
1054
+ cameras: X.value,
1055
+ preselect: K.value.cameraIds?.length ? K.value.cameraIds : []
1051
1056
  },
1052
- confirmText: H("views.recordings.export.confirm")
1057
+ confirmText: N("views.recordings.export.confirm")
1053
1058
  } });
1054
1059
  }
1055
- function $t() {
1056
- let e = q.value;
1057
- q.value = e === "opened" ? "closed" : "opened";
1060
+ function rn() {
1061
+ let e = G.value;
1062
+ G.value = e === "opened" ? "closed" : "opened";
1058
1063
  }
1059
- function en() {
1060
- q.value = "closed";
1064
+ function an() {
1065
+ G.value = "closed";
1061
1066
  }
1062
- function tn(e) {
1063
- !e.semanticQuery?.trim() && J.value.semanticQuery?.trim() && Fe(), J.value = e;
1067
+ function on(e) {
1068
+ !e.semanticQuery?.trim() && K.value.semanticQuery?.trim() && Fe(), K.value = e;
1064
1069
  }
1065
- async function nn(e) {
1066
- qe.value = !0, Je.value = "";
1070
+ async function sn(e) {
1071
+ Ye.value = !0, Xe.value = "";
1067
1072
  try {
1068
- let t = await Xe(e, de.value, Intl.DateTimeFormat().resolvedOptions().timeZone);
1069
- tn({
1070
- ...Be,
1073
+ let t = await Qe(e, z.value, Intl.DateTimeFormat().resolvedOptions().timeZone);
1074
+ on({
1075
+ ...He,
1071
1076
  ...t.filters,
1072
- favoritesOnly: Rt.value && t.filters.favoritesOnly
1073
- }), rn(t.filters.semanticQuery), Je.value = t.note;
1077
+ favoritesOnly: Ht.value && t.filters.favoritesOnly
1078
+ }), cn(t.filters.semanticQuery), Xe.value = t.note;
1074
1079
  } catch (e) {
1075
- P.add({
1080
+ M.add({
1076
1081
  severity: "error",
1077
- detail: e?.response?.data?.message ?? H("views.recordings.assistant_search_failed"),
1082
+ detail: e?.response?.data?.message ?? N("views.recordings.assistant_search_failed"),
1078
1083
  life: 5e3
1079
1084
  });
1080
1085
  } finally {
1081
- qe.value = !1;
1086
+ Ye.value = !1;
1082
1087
  }
1083
1088
  }
1084
- function rn(e) {
1089
+ function cn(e) {
1085
1090
  if (!e.trim()) {
1086
1091
  Fe();
1087
1092
  return;
1088
1093
  }
1089
1094
  Ne(e);
1090
1095
  }
1091
- function an(e, t) {
1092
- let n = yt.value.get(e.cameraId);
1093
- n && A(e, n, t);
1096
+ function ln(e, t) {
1097
+ let n = xt.value.get(e.cameraId);
1098
+ n && D(e, n, t);
1094
1099
  }
1095
- function on(e, t) {
1096
- let n = yt.value.get(e.cameraId);
1097
- n && l.openComponentDialog(xe, {
1100
+ function un(e, t) {
1101
+ let n = xt.value.get(e.cameraId);
1102
+ n && c.openComponentDialog(me, {
1098
1103
  data: {
1099
1104
  title: n.name,
1100
1105
  dedupeKey: `camera-event:${n._id}:${t}`,
@@ -1106,7 +1111,7 @@ var Qt = l({
1106
1111
  eventTimestamp: t
1107
1112
  },
1108
1113
  headerActions: e.segments?.some((e) => e?.description) ? [{
1109
- icon: te,
1114
+ icon: oe,
1110
1115
  toggle: !0,
1111
1116
  onClick: () => {}
1112
1117
  }] : void 0,
@@ -1124,9 +1129,11 @@ var Qt = l({
1124
1129
  } }
1125
1130
  });
1126
1131
  }
1127
- return _(pe, (e) => {
1128
- e && (q.value = "closed");
1129
- }), _(J, (e) => {
1132
+ return _(U, (e) => {
1133
+ e && (G.value = "closed");
1134
+ }), _(() => K.value.timeRange, (e) => {
1135
+ q.value = e && Ue[e] ? Date.now() - Ue[e] : void 0;
1136
+ }, { immediate: !0 }), _(K, (e) => {
1130
1137
  let t = e.eventTypes.length > 0 || e.sensorEvents.length > 0 || e.audioLabels.length > 0 || e.hasAttributes.length > 0, n = {
1131
1138
  types: e.eventTypes.length > 0 ? e.eventTypes : void 0,
1132
1139
  triggers: e.sensorEvents.length > 0 ? e.sensorEvents : void 0,
@@ -1139,48 +1146,49 @@ var Qt = l({
1139
1146
  hasDetections: !t,
1140
1147
  withRecordingInfo: !0,
1141
1148
  hasRecording: e.onlyWithRecordings || void 0,
1142
- favoritesOnly: e.favoritesOnly || void 0
1149
+ favoritesOnly: e.favoritesOnly || void 0,
1150
+ startedSinceMs: q.value
1143
1151
  }, r = JSON.stringify(n);
1144
- r !== Qe && (Qe = r, Ye.value = n);
1152
+ r !== et && (et = r, Ze.value = n);
1145
1153
  }, {
1146
1154
  deep: !0,
1147
1155
  immediate: !0
1148
- }), _(ze, (e) => {
1149
- if (!e || ft) return;
1156
+ }), _(Be, (e) => {
1157
+ if (!e || mt) return;
1150
1158
  let t = e.preferences?.recordings?.ungrouped;
1151
- t !== void 0 && (Y.value = t);
1152
- }, { immediate: !0 }), _([Y, $], ([e, t]) => {
1153
- $e.value = e ? rt(t) : [];
1154
- }), _(() => J.value.cameraIds, (e) => {
1155
- e.length !== 1 && J.value.gridRegions.length > 0 && (J.value = {
1156
- ...J.value,
1159
+ t !== void 0 && (J.value = t);
1160
+ }, { immediate: !0 }), _([J, Q], ([e, t]) => {
1161
+ ut.value = e ? it(t) : [];
1162
+ }), _(() => K.value.cameraIds, (e) => {
1163
+ e.length !== 1 && K.value.gridRegions.length > 0 && (K.value = {
1164
+ ...K.value,
1157
1165
  gridRegions: []
1158
1166
  });
1159
1167
  }), j(() => {
1160
1168
  requestAnimationFrame(() => {
1161
- Ge.value = !0;
1169
+ qe.value = !0;
1162
1170
  });
1163
1171
  }), (e, t) => {
1164
- let n = B, o = re, c = R, l = He, f = at, m = st, _ = ot, x = le, E = et, O = nt, A = he, j = Ee, N = W, P = U, I = L, z = M;
1172
+ let n = Ee, r = ne, o = fe, c = We, l = ot, m = lt, _ = ct, x = H, E = tt, D = rt, O = De, A = he, j = ae, M = R, N = ce, P = ee;
1165
1173
  return i(), v("div", null, [
1166
1174
  k(n, { position: "center" }, {
1167
- default: h(() => [C("span", Gn, a(e.$t("views.recordings.title")), 1)]),
1175
+ default: h(() => [C("span", Wn, a(e.$t("views.recordings.title")), 1)]),
1168
1176
  _: 1
1169
1177
  }),
1170
1178
  k(n, { position: "left" }, {
1171
- default: h(() => [k(l, {
1179
+ default: h(() => [k(c, {
1172
1180
  id: "recordings-sidebar-toggle",
1173
1181
  severity: "secondary",
1174
1182
  class: "cui-button p-2 text-color",
1175
1183
  text: "",
1176
1184
  rounded: "",
1177
- onClick: $t
1185
+ onClick: rn
1178
1186
  }, {
1179
- icon: h(() => [p(q) === "closed" ? (i(), u(o, {
1187
+ icon: h(() => [p(G) === "closed" ? (i(), u(r, {
1180
1188
  key: 0,
1181
1189
  width: "100%",
1182
1190
  height: "100%"
1183
- })) : (i(), u(c, {
1191
+ })) : (i(), u(o, {
1184
1192
  key: 1,
1185
1193
  width: "100%",
1186
1194
  height: "100%"
@@ -1190,14 +1198,14 @@ var Qt = l({
1190
1198
  _: 1
1191
1199
  }),
1192
1200
  k(n, { position: "right" }, {
1193
- default: h(() => [k(l, {
1201
+ default: h(() => [k(c, {
1194
1202
  severity: "secondary",
1195
1203
  class: "cui-button p-2 text-color",
1196
1204
  text: "",
1197
1205
  rounded: "",
1198
- onClick: t[0] ||= (e) => p(We)?.toggleMenu(e)
1206
+ onClick: t[0] ||= (e) => p(Ke)?.toggleMenu(e)
1199
1207
  }, {
1200
- icon: h(() => [k(f, {
1208
+ icon: h(() => [k(l, {
1201
1209
  width: "100%",
1202
1210
  height: "100%"
1203
1211
  })]),
@@ -1205,28 +1213,32 @@ var Qt = l({
1205
1213
  })]),
1206
1214
  _: 1
1207
1215
  }),
1208
- k(Wn, {
1209
- filters: p(J),
1210
- cameras: p(Z),
1211
- "is-open": p(X),
1212
- "is-overlay": p(pt),
1213
- "result-count": p(Lt).length,
1214
- "semantic-count": p(Mt) ? p(Q).size : void 0,
1215
- "semantic-search-available": p(ke),
1216
- "semantic-search-loading": p(Oe),
1217
- "assistant-search-available": p(Ft),
1218
- "assistant-search-loading": p(qe),
1219
- "assistant-search-note": p(Je),
1220
- "onUpdate:filters": tn,
1221
- onSemanticSearch: rn,
1222
- onAssistantSearch: nn,
1223
- onClose: en
1216
+ k(Un, {
1217
+ filters: p(K),
1218
+ cameras: p(X),
1219
+ "is-open": p(Y),
1220
+ "is-overlay": p(gt),
1221
+ "result-count": p(Bt).length,
1222
+ "result-total": p(Vt),
1223
+ "result-capped": p(Ot)?.capped,
1224
+ "semantic-count": p(Ft) ? p(Z).size : void 0,
1225
+ "semantic-search-available": p(Oe),
1226
+ "semantic-search-loading": p(xe),
1227
+ "assistant-search-available": p(Rt),
1228
+ "assistant-search-loading": p(Ye),
1229
+ "assistant-search-note": p(Xe),
1230
+ "onUpdate:filters": on,
1231
+ onSemanticSearch: cn,
1232
+ onAssistantSearch: sn,
1233
+ onClose: an
1224
1234
  }, null, 8, [
1225
1235
  "filters",
1226
1236
  "cameras",
1227
1237
  "is-open",
1228
1238
  "is-overlay",
1229
1239
  "result-count",
1240
+ "result-total",
1241
+ "result-capped",
1230
1242
  "semantic-count",
1231
1243
  "semantic-search-available",
1232
1244
  "semantic-search-loading",
@@ -1237,32 +1249,32 @@ var Qt = l({
1237
1249
  (i(), u(g, {
1238
1250
  to: "#container",
1239
1251
  defer: ""
1240
- }, [p(X) && p(pt) ? (i(), v("div", {
1252
+ }, [p(Y) && p(gt) ? (i(), v("div", {
1241
1253
  key: 0,
1242
1254
  class: "fixed top-0 left-0 right-0 bottom-0 w-full h-full bg-black/50 z-1",
1243
- onClick: en
1255
+ onClick: an
1244
1256
  })) : d("", !0)])),
1245
1257
  C("main", {
1246
1258
  ref_key: "reindexAnchorRef",
1247
- ref: lt,
1259
+ ref: ft,
1248
1260
  class: "relative w-full h-full",
1249
1261
  style: y({
1250
- paddingLeft: p(_t),
1251
- transition: p(Ge) ? "padding-left 200ms" : void 0
1262
+ paddingLeft: p(yt),
1263
+ transition: p(qe) ? "padding-left 200ms" : void 0
1252
1264
  })
1253
- }, [C("div", Kn, [
1254
- p(K) ? d("", !0) : (i(), v("div", qn, [
1265
+ }, [C("div", Gn, [
1266
+ p(B) ? d("", !0) : (i(), v("div", Kn, [
1255
1267
  t[3] ||= C("div", { class: "ml-2" }, null, -1),
1256
- p(pe) ? d("", !0) : (i(), u(l, {
1268
+ p(U) ? d("", !0) : (i(), u(c, {
1257
1269
  key: 0,
1258
1270
  id: "recordings-sidebar-toggle",
1259
1271
  severity: "secondary",
1260
1272
  class: "mr-2 cui-icon-lg relative z-2",
1261
1273
  text: "",
1262
1274
  rounded: "",
1263
- onClick: $t
1275
+ onClick: rn
1264
1276
  }, {
1265
- icon: h(() => [p(X) ? (i(), u(m, {
1277
+ icon: h(() => [p(Y) ? (i(), u(m, {
1266
1278
  key: 0,
1267
1279
  width: "100%",
1268
1280
  height: "100%"
@@ -1273,7 +1285,7 @@ var Qt = l({
1273
1285
  }))]),
1274
1286
  _: 1
1275
1287
  })),
1276
- C("h1", Jn, a(e.$t("views.recordings.title")), 1),
1288
+ C("h1", qn, a(e.$t("views.recordings.title")), 1),
1277
1289
  t[4] ||= C("div", { class: "gradient-blur rotate-180 !h-[70px]" }, [
1278
1290
  C("div"),
1279
1291
  C("div"),
@@ -1283,46 +1295,46 @@ var Qt = l({
1283
1295
  C("div")
1284
1296
  ], -1)
1285
1297
  ])),
1286
- p(K) ? d("", !0) : (i(), v("div", Yn, [w((i(), u(l, {
1298
+ p(B) ? d("", !0) : (i(), v("div", Jn, [w((i(), u(c, {
1287
1299
  severity: "secondary",
1288
1300
  text: "",
1289
1301
  rounded: "",
1290
1302
  class: "cui-icon-lg relative z-2",
1291
- onClick: t[1] ||= (e) => p(We)?.toggleMenu(e)
1303
+ onClick: t[1] ||= (e) => p(Ke)?.toggleMenu(e)
1292
1304
  }, {
1293
- icon: h(() => [k(f, {
1305
+ icon: h(() => [k(l, {
1294
1306
  width: "100%",
1295
1307
  height: "100%"
1296
1308
  })]),
1297
1309
  _: 1
1298
1310
  })), [[
1299
- z,
1311
+ P,
1300
1312
  { value: e.$t("views.recordings.view_options") },
1301
1313
  void 0,
1302
1314
  { bottom: !0 }
1303
1315
  ]])])),
1304
1316
  C("div", { class: s(["px-2 h-full w-full flex flex-col", {
1305
- "pt-4": p(K),
1306
- "pt-[calc(40px+2rem)]": !p(K)
1317
+ "pt-4": p(B),
1318
+ "pt-[calc(40px+2rem)]": !p(B)
1307
1319
  }]) }, [
1308
- p(Lt).length ? (i(), u(O, {
1320
+ p(Bt).length ? (i(), u(D, {
1309
1321
  key: 0,
1310
1322
  ref_key: "gridRef",
1311
- ref: Ue,
1312
- items: p(Lt),
1313
- "min-item-width": p(K) ? 160 : 180,
1323
+ ref: Ge,
1324
+ items: p(Bt),
1325
+ "min-item-width": p(B) ? 160 : 180,
1314
1326
  gap: 8,
1315
- "has-more": p(Tt),
1316
- "load-more": p(Et),
1327
+ "has-more": p(Dt),
1328
+ "load-more": p(kt),
1317
1329
  "item-key": (e) => e.key,
1318
1330
  class: "flex-1 min-h-0"
1319
1331
  }, {
1320
1332
  item: h(({ item: e }) => [e.episode ? (i(), u(x, {
1321
1333
  key: 0,
1322
1334
  episode: e.episode,
1323
- "camera-by-id": p(yt),
1335
+ "camera-by-id": p(xt),
1324
1336
  fluid: "",
1325
- "click-disabled": p(Bt)
1337
+ "click-disabled": p(Gt)
1326
1338
  }, null, 8, [
1327
1339
  "episode",
1328
1340
  "camera-by-id",
@@ -1330,19 +1342,19 @@ var Qt = l({
1330
1342
  ])) : (i(), u(E, {
1331
1343
  key: 1,
1332
1344
  event: e.event,
1333
- "camera-name": p(vt).get(e.event.cameraId),
1334
- camera: p(yt).get(e.event.cameraId),
1335
- "load-thumbnails": p(Dt),
1336
- "semantic-score": p(Q).get(e.event.id),
1345
+ "camera-name": p(bt).get(e.event.cameraId),
1346
+ camera: p(xt).get(e.event.cameraId),
1347
+ "load-thumbnails": p(At),
1348
+ "semantic-score": p(Z).get(e.event.id),
1337
1349
  "seg-index": e.segIndex,
1338
- "selection-mode": p(Bt) && e.event.state === "ended",
1339
- selected: p(Vt).has(e.event.id),
1340
- "sibling-active": e.segIndex !== void 0 && p(ct) === e.event.id,
1341
- onSelect: (t) => p(Jt)(e.event.id),
1342
- onScrollToEvent: (t) => on(e.event, t),
1343
- onOpenTrace: (t) => an(e.event, t),
1344
- onMouseenter: (t) => ct.value = e.segIndex === void 0 ? null : e.event.id,
1345
- onMouseleave: t[2] ||= (e) => ct.value = null
1350
+ "selection-mode": p(Gt) && e.event.state === "ended",
1351
+ selected: p(Kt).has(e.event.id),
1352
+ "sibling-active": e.segIndex !== void 0 && p(dt) === e.event.id,
1353
+ onSelect: (t) => p(Qt)(e.event.id),
1354
+ onScrollToEvent: (t) => un(e.event, t),
1355
+ onOpenTrace: (t) => ln(e.event, t),
1356
+ onMouseenter: (t) => dt.value = e.segIndex === void 0 ? null : e.event.id,
1357
+ onMouseleave: t[2] ||= (e) => dt.value = null
1346
1358
  }, null, 8, [
1347
1359
  "event",
1348
1360
  "camera-name",
@@ -1365,143 +1377,152 @@ var Qt = l({
1365
1377
  "has-more",
1366
1378
  "load-more",
1367
1379
  "item-key"
1368
- ])) : p(wt) ? (i(), v("div", {
1380
+ ])) : p(Et) ? (i(), u(D, {
1369
1381
  key: 1,
1370
- class: "grid gap-2 flex-1 min-h-0 overflow-hidden content-start",
1371
- style: y({ gridTemplateColumns: `repeat(auto-fill, minmax(${p(K) ? 160 : 180}px, 1fr))` })
1372
- }, [(i(), v(b, null, r(24, (e) => k(A, {
1373
- key: `skeleton-${e}`,
1374
- class: "w-full rounded-xl",
1375
- style: { "aspect-ratio": "1/1" },
1376
- height: "auto"
1377
- })), 64))], 4)) : d("", !0),
1378
- p(wt) && p(Lt).length || p(Oe) ? (i(), v("div", Xn, [k(j, {
1382
+ items: p(Ve),
1383
+ "min-item-width": p(B) ? 160 : 180,
1384
+ gap: 8,
1385
+ "item-key": (e) => e,
1386
+ class: "flex-1 min-h-0 pointer-events-none"
1387
+ }, {
1388
+ item: h(() => [k(O, {
1389
+ width: "100%",
1390
+ height: "100%",
1391
+ class: "rounded-xl"
1392
+ })]),
1393
+ _: 1
1394
+ }, 8, [
1395
+ "items",
1396
+ "min-item-width",
1397
+ "item-key"
1398
+ ])) : d("", !0),
1399
+ p(Et) && p(Bt).length || p(xe) ? (i(), v("div", Yn, [k(A, {
1379
1400
  width: "24px",
1380
1401
  height: "24px",
1381
1402
  class: "text-muted"
1382
1403
  })])) : d("", !0),
1383
- !p($).length && !p(wt) && !p(Oe) ? (i(), v("div", Zn, [
1384
- k(N, { class: "w-12 h-12 text-muted" }),
1385
- C("span", Qn, a(p(Nt)), 1),
1386
- p(At) && !p(jt) ? (i(), u(l, {
1404
+ !p(Q).length && !p(Et) && !p(xe) ? (i(), v("div", Xn, [
1405
+ k(j, { class: "w-12 h-12 text-muted" }),
1406
+ C("span", Zn, a(p(It)), 1),
1407
+ p(Nt) && !p(Pt) ? (i(), u(c, {
1387
1408
  key: 0,
1388
1409
  severity: "secondary",
1389
1410
  class: "cui-button-small",
1390
1411
  label: e.$t("views.recordings.load_failed_retry"),
1391
- onClick: p(kt)
1412
+ onClick: p(Mt)
1392
1413
  }, null, 8, ["label", "onClick"])) : d("", !0)
1393
1414
  ])) : d("", !0)
1394
1415
  ], 2)
1395
1416
  ])], 4),
1396
- p(Rt) && p(Z).length ? (i(), v("div", {
1417
+ p(Ht) && p(X).length ? (i(), v("div", {
1397
1418
  key: 0,
1398
- class: s(["fixed z-10", p(gt) ? "scale-0 opacity-0" : "scale-100 opacity-100"]),
1419
+ class: s(["fixed z-10", p(vt) ? "scale-0 opacity-0" : "scale-100 opacity-100"]),
1399
1420
  style: y({
1400
- left: `calc(${p(dt)}px + ${p(_t)} + 0.75rem + var(--safe-area-inset-left))`,
1401
- bottom: `calc(${p(S)}px + 1.25rem + var(--safe-area-inset-bottom))`,
1402
- transition: p(Ge) ? "left 200ms, transform 200ms ease-in-out, opacity 200ms ease-in-out" : void 0
1421
+ left: `calc(${p(pt)}px + ${p(yt)} + 0.75rem + var(--safe-area-inset-left))`,
1422
+ bottom: `calc(${p(f)}px + 1.25rem + var(--safe-area-inset-bottom))`,
1423
+ transition: p(qe) ? "left 200ms, transform 200ms ease-in-out, opacity 200ms ease-in-out" : void 0
1403
1424
  })
1404
- }, [k(l, {
1425
+ }, [k(c, {
1405
1426
  severity: "secondary",
1406
1427
  rounded: "",
1407
1428
  class: "shadow-lg",
1408
- disabled: p(T)?.running,
1409
- label: p(D) ? e.$t("views.recordings.reindex.checking") : p(T)?.running ? e.$t("views.recordings.reindex.progress", {
1410
- done: p(T).done,
1411
- total: p(T).total
1429
+ disabled: p(S)?.running,
1430
+ label: p(T) ? e.$t("views.recordings.reindex.checking") : p(S)?.running ? e.$t("views.recordings.reindex.progress", {
1431
+ done: p(S).done,
1432
+ total: p(S).total
1412
1433
  }) : e.$t("views.recordings.reindex.button"),
1413
- onClick: Zt
1434
+ onClick: tn
1414
1435
  }, {
1415
- icon: h(() => [p(T)?.running ? (i(), u(p(Ee), { key: 0 })) : (i(), u(p(ut), { key: 1 }))]),
1436
+ icon: h(() => [p(S)?.running ? (i(), u(p(he), { key: 0 })) : (i(), u(p(st), { key: 1 }))]),
1416
1437
  _: 1
1417
1438
  }, 8, ["disabled", "label"])], 6)) : d("", !0),
1418
- p(Z).length ? (i(), u(I, {
1439
+ p(X).length ? (i(), u(N, {
1419
1440
  key: 1,
1420
- "force-visible": p(Bt),
1421
- "scroll-y": p(Ue)?.scrollY ?? 0
1441
+ "force-visible": p(Gt),
1442
+ "scroll-y": p(Ge)?.scrollY ?? 0
1422
1443
  }, {
1423
- default: h(() => [p(Bt) ? (i(), v(b, { key: 1 }, [
1424
- k(P, {
1444
+ default: h(() => [p(Gt) ? (i(), v(b, { key: 1 }, [
1445
+ k(M, {
1425
1446
  grouped: "",
1426
1447
  "tooltip-props": { value: e.$t("components.form.tooltip.cancel_selection") },
1427
1448
  "button-props": { severity: "secondary" },
1428
- icon: p(Ke),
1449
+ icon: p(Je),
1429
1450
  "icon-props": {
1430
1451
  width: "100%",
1431
1452
  height: "100%"
1432
1453
  },
1433
- onClick: p(Gt)
1454
+ onClick: p(Xt)
1434
1455
  }, null, 8, [
1435
1456
  "tooltip-props",
1436
1457
  "icon",
1437
1458
  "onClick"
1438
1459
  ]),
1439
- k(P, {
1460
+ k(M, {
1440
1461
  grouped: "",
1441
- "tooltip-props": { value: p(Ht) ? e.$t("components.form.tooltip.deselect_all") : e.$t("components.form.tooltip.select_all") },
1442
- "button-props": { severity: p(Ht) ? "primary" : "secondary" },
1443
- icon: p(oe),
1462
+ "tooltip-props": { value: p(qt) ? e.$t("components.form.tooltip.deselect_all") : e.$t("components.form.tooltip.select_all") },
1463
+ "button-props": { severity: p(qt) ? "primary" : "secondary" },
1464
+ icon: p(de),
1444
1465
  "icon-props": {
1445
1466
  width: "100%",
1446
1467
  height: "100%"
1447
1468
  },
1448
- onClick: p(qt)
1469
+ onClick: p(Zt)
1449
1470
  }, null, 8, [
1450
1471
  "tooltip-props",
1451
1472
  "button-props",
1452
1473
  "icon",
1453
1474
  "onClick"
1454
1475
  ]),
1455
- k(P, {
1476
+ k(M, {
1456
1477
  grouped: "",
1457
1478
  "tooltip-props": { value: e.$t("components.form.tooltip.delete_selected") },
1458
1479
  "button-props": {
1459
1480
  severity: "danger",
1460
- disabled: !p(Vt).size || p(Ut)
1481
+ disabled: !p(Kt).size || p(Jt)
1461
1482
  },
1462
- icon: p(ae),
1483
+ icon: p(I),
1463
1484
  "icon-props": {
1464
1485
  width: "100%",
1465
1486
  height: "100%"
1466
1487
  },
1467
- onClick: Yt
1488
+ onClick: $t
1468
1489
  }, null, 8, [
1469
1490
  "tooltip-props",
1470
1491
  "button-props",
1471
1492
  "icon"
1472
1493
  ])
1473
- ], 64)) : (i(), v(b, { key: 0 }, [p(Rt) && p($).length ? (i(), u(P, {
1494
+ ], 64)) : (i(), v(b, { key: 0 }, [p(Ht) && p(Q).length ? (i(), u(M, {
1474
1495
  key: 0,
1475
1496
  grouped: "",
1476
1497
  "tooltip-props": { value: e.$t("views.recordings.select") },
1477
1498
  "button-props": { severity: "secondary" },
1478
- icon: p(F),
1499
+ icon: p(je),
1479
1500
  "icon-props": {
1480
1501
  width: "100%",
1481
1502
  height: "100%"
1482
1503
  },
1483
- onClick: p(Wt)
1504
+ onClick: p(Yt)
1484
1505
  }, null, 8, [
1485
1506
  "tooltip-props",
1486
1507
  "icon",
1487
1508
  "onClick"
1488
- ])) : d("", !0), k(P, {
1509
+ ])) : d("", !0), k(M, {
1489
1510
  grouped: "",
1490
1511
  "tooltip-props": { value: e.$t("views.recordings.export.title") },
1491
1512
  "button-props": { class: "text-white" },
1492
- icon: p(De),
1513
+ icon: p(we),
1493
1514
  "icon-props": {
1494
1515
  width: "26px",
1495
1516
  height: "26px"
1496
1517
  },
1497
- onClick: Qt
1518
+ onClick: nn
1498
1519
  }, null, 8, ["tooltip-props", "icon"])], 64))]),
1499
1520
  _: 1
1500
1521
  }, 8, ["force-visible", "scroll-y"])) : d("", !0),
1501
- k(ne, {
1522
+ k(L, {
1502
1523
  ref_key: "viewMenuRef",
1503
- ref: We,
1504
- items: p(Xt),
1524
+ ref: Ke,
1525
+ items: p(en),
1505
1526
  "auto-hide": !1,
1506
1527
  popover: { pt: {
1507
1528
  root: { class: "w-[22rem]" },
@@ -1513,4 +1534,4 @@ var Qt = l({
1513
1534
  }
1514
1535
  });
1515
1536
  //#endregion
1516
- export { er as default };
1537
+ export { $n as default };