@camera.ui/server 2.2.5-beta.3 → 2.2.5

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 (645) hide show
  1. package/dist/interface/assets/{404-YZOLos9r.js → 404-CiOxoqnT.js} +1 -1
  2. package/dist/interface/assets/{About-HtxMc8JZ.js → About-DWOlfWEm.js} +1 -1
  3. package/dist/interface/assets/Assistant-B1xdMAkA.js +1 -0
  4. package/dist/interface/assets/{Assistant-BMscGKnc.css → Assistant-CXx7EY1W.css} +1 -1
  5. package/dist/interface/assets/{Automation-D3DcUyui.js → Automation-BJgwUkUB.js} +3 -3
  6. package/dist/interface/assets/{AutomationImport-Dp_hT6hQ.js → AutomationImport-9GRAndAt.js} +2 -2
  7. package/dist/interface/assets/{AutomationStore-BKR7GXMk.js → AutomationStore-D_HR2Xby.js} +2 -2
  8. package/dist/interface/assets/{AutomationStoreDetail-B9yh51WQ.js → AutomationStoreDetail-B9MxV2py.js} +2 -2
  9. package/dist/interface/assets/Automations-Bpw8olkc.js +2 -0
  10. package/dist/interface/assets/Camera-BpFfZDaS.js +2 -0
  11. package/dist/interface/assets/{CameraConsole-BI93OaRt.js → CameraConsole-BKPTLSTO.js} +1 -1
  12. package/dist/interface/assets/{Cameras-Ctub8sVt.js → Cameras-DcrVCgLy.js} +2 -2
  13. package/dist/interface/assets/Camview-C16pyCZk.js +1 -0
  14. package/dist/interface/assets/{Camview-CZct5cnP.css → Camview-DasO326h.css} +1 -1
  15. package/dist/interface/assets/{CertificateUpload-xW55NA1Q.js → CertificateUpload-BYFKZCP9.js} +1 -1
  16. package/dist/interface/assets/Config-BmEL5EaW.js +2 -0
  17. package/dist/interface/assets/{ConfigActionAssistant-B488rOp5.js → ConfigActionAssistant-DM4tIhoa.js} +1 -1
  18. package/dist/interface/assets/{ConfigActionCameraControl-ZMUuBxOs.js → ConfigActionCameraControl-Deo0eDPS.js} +1 -1
  19. package/dist/interface/assets/{ConfigActionDelay-BJ11xvOW.js → ConfigActionDelay-_EqbfWgo.js} +1 -1
  20. package/dist/interface/assets/{ConfigActionHttp-DOUo69OR.js → ConfigActionHttp-BxJmoshF.js} +1 -1
  21. package/dist/interface/assets/{ConfigActionImageInput-BMzuVZW9.js → ConfigActionImageInput-KrzXFQDm.js} +1 -1
  22. package/dist/interface/assets/{ConfigActionMqtt-Co_uksca.js → ConfigActionMqtt-BoYBomRC.js} +1 -1
  23. package/dist/interface/assets/{ConfigActionNotification-CcZkstYx.js → ConfigActionNotification-CSAOijDt.js} +1 -1
  24. package/dist/interface/assets/{ConfigActionNotificationControl--VeucoTw.js → ConfigActionNotificationControl-BOdyKiOs.js} +1 -1
  25. package/dist/interface/assets/{ConfigActionOutput-CyDa1LGA.js → ConfigActionOutput-CwsPcnd_.js} +1 -1
  26. package/dist/interface/assets/{ConfigActionPlugin-Kfg3ZEQF.js → ConfigActionPlugin-D3wyULpp.js} +1 -1
  27. package/dist/interface/assets/{ConfigActionSensor-DhAF0HPw.js → ConfigActionSensor-BmeaIxYY.js} +1 -1
  28. package/dist/interface/assets/{ConfigActionSnapshot-zMe3SPvW.js → ConfigActionSnapshot-DbyFKcYr.js} +1 -1
  29. package/dist/interface/assets/{ConfigActionVariable-BE5q3NwY.js → ConfigActionVariable-cThGJ1Pc.js} +1 -1
  30. package/dist/interface/assets/{ConfigConditionIfElse-BNIRtSVD.js → ConfigConditionIfElse-BugkJeXR.js} +1 -1
  31. package/dist/interface/assets/{ConfigConditionSensorState-DTNd-SzI.js → ConfigConditionSensorState-Bf-mMf4E.js} +1 -1
  32. package/dist/interface/assets/{ConfigConditionSwitch-BU5wWMU1.js → ConfigConditionSwitch-DcpFoYET.js} +1 -1
  33. package/dist/interface/assets/{ConfigConditionTime-KXTCIVIV.js → ConfigConditionTime-CM4bSMyU.js} +1 -1
  34. package/dist/interface/assets/{ConfigSensorValueInput-BC1FpMm-.js → ConfigSensorValueInput-CgAI34__.js} +1 -1
  35. package/dist/interface/assets/{ConfigTriggerDetection-hIN1hi53.js → ConfigTriggerDetection-BWK6gfwM.js} +1 -1
  36. package/dist/interface/assets/ConfigTriggerGeofence-Cm3CU7Tl.js +1 -0
  37. package/dist/interface/assets/{ConfigTriggerManual-C5vwxS-e.js → ConfigTriggerManual-DgkR-GWy.js} +1 -1
  38. package/dist/interface/assets/{ConfigTriggerMqtt-B4PtWC3E.js → ConfigTriggerMqtt-BMFjTAso.js} +1 -1
  39. package/dist/interface/assets/{ConfigTriggerSchedule-BZzUdGBa.js → ConfigTriggerSchedule-E_QWfNKy.js} +1 -1
  40. package/dist/interface/assets/{ConfigTriggerSensor-D18nwMsj.js → ConfigTriggerSensor-DOdJkZRo.js} +1 -1
  41. package/dist/interface/assets/{ConfigTriggerSystem-BhygWLB4.js → ConfigTriggerSystem-BFDIbZsE.js} +1 -1
  42. package/dist/interface/assets/{ConfigTriggerWebhook-yyuBuhLD.js → ConfigTriggerWebhook-DDoUEVHb.js} +1 -1
  43. package/dist/interface/assets/Console-BIj7cIqO.js +1 -0
  44. package/dist/interface/assets/CuiAssistantConversation-CRNCKRHz.js +5 -0
  45. package/dist/interface/assets/{CuiAssistantConversation-lkpZg3ML.css → CuiAssistantConversation-DQ0wOJvV.css} +1 -1
  46. package/dist/interface/assets/CuiAutomationRunsDialog-DMUfNcsf.js +1 -0
  47. package/dist/interface/assets/CuiBottomSheet-CYi5c3fP.js +1 -0
  48. package/dist/interface/assets/{CuiBottomSheet-DWefGWK2.js → CuiBottomSheet-FwsPnJ3n.js} +1 -1
  49. package/dist/interface/assets/{CuiCameraPipCard-C2qaGJlH.js → CuiCameraPipCard-Cb_Qbly6.js} +1 -1
  50. package/dist/interface/assets/CuiCameraRecordings-BeciatDY.js +1 -0
  51. package/dist/interface/assets/{CuiCameraShares-DcqOcePX.js → CuiCameraShares-CSFwIYsg.js} +1 -1
  52. package/dist/interface/assets/CuiCameraTable-BgL5FZso.js +1 -0
  53. package/dist/interface/assets/{CuiCameraTable-BOkfp_5M.js → CuiCameraTable-DBRfGX3I.js} +2 -2
  54. package/dist/interface/assets/{CuiChartTable-DP38uBwK.js → CuiChartTable-CtasoxMM.js} +1 -1
  55. package/dist/interface/assets/{CuiConsole-C7xE_nQg.js → CuiConsole-DQbAafiz.js} +2 -2
  56. package/dist/interface/assets/CuiDataTable-JlD7Agky.js +1 -0
  57. package/dist/interface/assets/{CuiLightControl-ChGYpQAK.js → CuiLightControl-CLYl5pfN.js} +1 -1
  58. package/dist/interface/assets/{CuiList-DJp0__mV.js → CuiList-Dsu5m0TA.js} +1 -1
  59. package/dist/interface/assets/{CuiMarkdownContent-BUYtK_wD.js → CuiMarkdownContent-BYBQX_aF.js} +1 -1
  60. package/dist/interface/assets/CuiMarkdownContent-DTAm-EDR.js +1 -0
  61. package/dist/interface/assets/{CuiPluginCard-CWImTZ6l.js → CuiPluginCard-CC1oXY16.js} +2 -2
  62. package/dist/interface/assets/{CuiPluginCategoryChip-Ch_upS6Y.js → CuiPluginCategoryChip-B2bR5LQa.js} +1 -1
  63. package/dist/interface/assets/{CuiPluginOAuthButton-DEQ9xILN.js → CuiPluginOAuthButton-DfEjfcY-.js} +2 -2
  64. package/dist/interface/assets/{CuiPluginTrustBadge-sVWdvHcM.js → CuiPluginTrustBadge-C6CW6Soh.js} +1 -1
  65. package/dist/interface/assets/{CuiQRCode-DqSF4SkD.js → CuiQRCode-DGKBhDib.js} +1 -1
  66. package/dist/interface/assets/CuiSchema-pAAVh28m.js +1 -0
  67. package/dist/interface/assets/{CuiTopNavbarItem-B_KWykgq.js → CuiTopNavbarItem-ve-3Dsc3.js} +1 -1
  68. package/dist/interface/assets/Faces-1xd5yGuO.js +1 -0
  69. package/dist/interface/assets/{FirstSteps-QNYTkEJo.js → FirstSteps-E9cMqa0a.js} +1 -1
  70. package/dist/interface/assets/Floorplan-BovV_ATh.js +1 -0
  71. package/dist/interface/assets/Instances-BbxyB7vR.js +1 -0
  72. package/dist/interface/assets/{Logs-BSPT80vP.js → Logs-BhRactvQ.js} +2 -2
  73. package/dist/interface/assets/{Menu-HHtuhIS2.js → Menu-DMCmUVDs.js} +1 -1
  74. package/dist/interface/assets/Metrics-BgXrNl38.js +12 -0
  75. package/dist/interface/assets/Metrics-ChVnC6f6.css +1 -0
  76. package/dist/interface/assets/{OAuthDeviceFlow-Bn1nlWNa.js → OAuthDeviceFlow-BMEwVkIa.js} +1 -1
  77. package/dist/interface/assets/Plugin-CDNywaVE.js +1 -0
  78. package/dist/interface/assets/Plugin-Qr_Q_Qfi.css +1 -0
  79. package/dist/interface/assets/{PluginConsole-Cv-uhnPY.js → PluginConsole-C4Ba_U_1.js} +1 -1
  80. package/dist/interface/assets/{PluginDetail-cpOz7FkA.js → PluginDetail-13OWIzdd.js} +2 -2
  81. package/dist/interface/assets/{PluginSchema-DW3TGeTM.js → PluginSchema-DN0cSU8s.js} +1 -1
  82. package/dist/interface/assets/PluginSearch-sPkO8aH3.js +2 -0
  83. package/dist/interface/assets/PluginSearch-xNIlfXk4.js +1 -0
  84. package/dist/interface/assets/{PluginUpdateProgress-n6q6vzyd.js → PluginUpdateProgress-CeWuRp3Z.js} +1 -1
  85. package/dist/interface/assets/Plugins-C8yjhxnQ.js +1 -0
  86. package/dist/interface/assets/{RecentEventsFilter-CTR5JK_P.js → RecentEventsFilter-Kp_lTOuG.js} +1 -1
  87. package/dist/interface/assets/Recordings-BHT8Vvv_.js +1 -0
  88. package/dist/interface/assets/Recordings-DwuojaAw.css +1 -0
  89. package/dist/interface/assets/SensorEdit-C-yJdJuP.js +1 -0
  90. package/dist/interface/assets/{SensorHistory-9CdOpCPs.js → SensorHistory-ClAcOgHj.js} +1 -1
  91. package/dist/interface/assets/Sensors-Cza4Et2c.js +2 -0
  92. package/dist/interface/assets/Settings-Cj0leoGd.js +1 -0
  93. package/dist/interface/assets/SettingsAccount-COkcBBSz.js +1 -0
  94. package/dist/interface/assets/SettingsAccount-DjrJdssy.js +1 -0
  95. package/dist/interface/assets/{SettingsAppearance-BY1xQMx4.js → SettingsAppearance-CJt4xJEW.js} +1 -1
  96. package/dist/interface/assets/SettingsAppearance-D20YW7Vq.js +1 -0
  97. package/dist/interface/assets/SettingsAssistant-CDdbbG-c.css +1 -0
  98. package/dist/interface/assets/SettingsAssistant-DKWDp1AI.js +1 -0
  99. package/dist/interface/assets/{SettingsBackup-D_weokqu.js → SettingsBackup-DIJmci05.js} +1 -1
  100. package/dist/interface/assets/{SettingsList-Bq24WTDU.js → SettingsList-Cb_dLy5T.js} +1 -1
  101. package/dist/interface/assets/SettingsMqtt-LIuCRPT5.js +1 -0
  102. package/dist/interface/assets/{SettingsNotifications-8TZOUxg2.js → SettingsNotifications-CZxqqH_8.js} +1 -1
  103. package/dist/interface/assets/{SettingsPermissions-M8u_jrN0.js → SettingsPermissions-CJiz0Z7B.js} +1 -1
  104. package/dist/interface/assets/{SettingsRecordings-C1Kp5xW_.js → SettingsRecordings-BEpwMh-y.js} +1 -1
  105. package/dist/interface/assets/SettingsRemote-DRt-N_yA.js +2 -0
  106. package/dist/interface/assets/{SettingsSystem-Cetu2faJ.js → SettingsSystem-Cncdpx8T.js} +2 -2
  107. package/dist/interface/assets/{SettingsUsers-CDwtQLdV.js → SettingsUsers-DZkz8WlI.js} +1 -1
  108. package/dist/interface/assets/Terminal-U4yfJN3O.js +4 -0
  109. package/dist/interface/assets/Training-Bkn52mPJ.css +1 -0
  110. package/dist/interface/assets/Training-DfgE_dA8.js +1 -0
  111. package/dist/interface/assets/Updates-cCvbFq3w.js +2 -0
  112. package/dist/interface/assets/{VariableInput-BxPj5wo6.js → VariableInput-PVsqGYW0.js} +1 -1
  113. package/dist/interface/assets/{VariableSuggestions-CbizvAkz.js → VariableSuggestions-DwLtlzVz.js} +1 -1
  114. package/dist/interface/assets/{VersionsHandler-CePyEUVO.js → VersionsHandler-Df7dhddp.js} +2 -2
  115. package/dist/interface/assets/{VirtualSensorCreate-D_GVoeL7.js → VirtualSensorCreate-FTKANjd-.js} +1 -1
  116. package/dist/interface/assets/Workers-Ba37_3cY.js +2 -0
  117. package/dist/interface/assets/{account-Bu30He0P.js → account-DwW7pBOb.js} +1 -1
  118. package/dist/interface/assets/{alert-circle-D2fAQwTX.js → alert-circle-BdUVAt1B.js} +1 -1
  119. package/dist/interface/assets/{alert-outline-D7zaSJH_.js → alert-outline-IRxYbw0j.js} +1 -1
  120. package/dist/interface/assets/api-C1mraOYr.js +4 -0
  121. package/dist/interface/assets/{api-DW2niHRN.js → api-DpqXhwcx.js} +1 -1
  122. package/dist/interface/assets/api-z8ZVnoOl.css +2 -0
  123. package/dist/interface/assets/{arrow-left-BGLyEqqa.js → arrow-left-Bk-ZrOVr.js} +1 -1
  124. package/dist/interface/assets/assistant-Lz3mFLDo.js +1 -0
  125. package/dist/interface/assets/{assistantModels-D0soYqq7.js → assistantModels-BsSgRsws.js} +1 -1
  126. package/dist/interface/assets/{auth-Dc8bUpc-.js → auth-L7_5vsJs.js} +1 -1
  127. package/dist/interface/assets/{automations-DXrjbArj.js → automations-D1XFFSrm.js} +1 -1
  128. package/dist/interface/assets/{back-filled-BPBVnQjx.js → back-filled-D-X19YMO.js} +1 -1
  129. package/dist/interface/assets/{bell-ring-CyCFPUL_.js → bell-ring-DreEHgoT.js} +1 -1
  130. package/dist/interface/assets/{brain-CIJB1ree.js → brain-DuDAg544.js} +1 -1
  131. package/dist/interface/assets/{cameraSources-QJfUDOQJ.js → cameraSources-DEGJDtmK.js} +1 -1
  132. package/dist/interface/assets/{cctv-D6kxZ-lp.js → cctv-DM-C_8_6.js} +1 -1
  133. package/dist/interface/assets/{check-circle-DHAAn6A6.js → check-circle-Bevuw8-0.js} +1 -1
  134. package/dist/interface/assets/{check-circle-outline-BbqeKfIK.js → check-circle-outline-aMxkvksr.js} +1 -1
  135. package/dist/interface/assets/{chevron-down-ZYTrU871.js → chevron-down-CCFn9Z56.js} +1 -1
  136. package/dist/interface/assets/{chevron-up-LQXNz9CE.js → chevron-up-CSImUM3_.js} +1 -1
  137. package/dist/interface/assets/{clock-outline-CKTiLKoR.js → clock-outline-DH3WIEJt.js} +1 -1
  138. package/dist/interface/assets/{close-BbEPZQqa.js → close-CMxyM4v9.js} +1 -1
  139. package/dist/interface/assets/{close-circle-BSUSUs4K.js → close-circle-CfgJCZ9A.js} +1 -1
  140. package/dist/interface/assets/{cloud-check-BTGbrAQ_.js → cloud-check-CbdFLIdR.js} +1 -1
  141. package/dist/interface/assets/cloudHandoff-DkUx4m3P.js +1 -0
  142. package/dist/interface/assets/{config-CiQDwB4t.js → config-CVqy37fG.js} +1 -1
  143. package/dist/interface/assets/{content-copy-V0DW9ZbH.js → content-copy-Bz49QPOI.js} +1 -1
  144. package/dist/interface/assets/{copy-DsmMEtSH.js → copy-DA6QQHRt.js} +1 -1
  145. package/dist/interface/assets/{cube-scan-DGhUFV1x.js → cube-scan-IiH8zwm2.js} +1 -1
  146. package/dist/interface/assets/database-refresh-outline-CIUDpcuq.js +1 -0
  147. package/dist/interface/assets/{delete-CY8fsIW6.js → delete-Btu-UVx9.js} +1 -1
  148. package/dist/interface/assets/{dist-DNyx_J8o.js → dist-D_qWDAKp.js} +1 -1
  149. package/dist/interface/assets/{dots-vertical-pP1vP0Qa.js → dots-vertical-D496SIss.js} +1 -1
  150. package/dist/interface/assets/{download-CyjJ7yJW.js → download-BSC7lwq_.js} +1 -1
  151. package/dist/interface/assets/esm-0kxqa_1s.js +1 -0
  152. package/dist/interface/assets/esm-4p_M5mFV.js +1 -0
  153. package/dist/interface/assets/esm-8G-vO1KQ.js +1 -0
  154. package/dist/interface/assets/esm-8cB56ICb.js +1 -0
  155. package/dist/interface/assets/esm-B92csSEb.js +1 -0
  156. package/dist/interface/assets/esm-BHiNTIiN.js +1 -0
  157. package/dist/interface/assets/esm-Bu9PMLmw.js +1 -0
  158. package/dist/interface/assets/esm-CS6Ra46d.js +1 -0
  159. package/dist/interface/assets/esm-CWvQWALL.js +1 -0
  160. package/dist/interface/assets/esm-D2UDrwmt.js +1 -0
  161. package/dist/interface/assets/esm-D8OHF2X1.js +1 -0
  162. package/dist/interface/assets/esm-DrXkS8eG.js +1 -0
  163. package/dist/interface/assets/esm-pfoHiO1a.js +1 -0
  164. package/dist/interface/assets/esm-tJSCF7Vh.js +1 -0
  165. package/dist/interface/assets/{eventIcons-cdzqQc0W.js → eventIcons-UQutPG3p.js} +1 -1
  166. package/dist/interface/assets/{eye-off-JCu1iUer.js → eye-off-CSU0U8g7.js} +1 -1
  167. package/dist/interface/assets/{eye-off-outline-GErp76H2.js → eye-off-outline-DCxLRGo_.js} +1 -1
  168. package/dist/interface/assets/{flowSchema-BRTZHQ1w.js → flowSchema-CppNBDy1.js} +1 -1
  169. package/dist/interface/assets/{help-circle-outline-G43EJuch.js → help-circle-outline-Cr_yNhPi.js} +1 -1
  170. package/dist/interface/assets/{history-CNJREqJG.js → history-anuCbp1T.js} +1 -1
  171. package/dist/interface/assets/{home-B-_OQpZ6.js → home-N3bDR1vX.js} +1 -1
  172. package/dist/interface/assets/{information-outline-Blt4EtWJ.js → information-outline-CMWIvLNB.js} +1 -1
  173. package/dist/interface/assets/{intercomService-BnA-FQ0Q.js → intercomService-CjoJaOZ7.js} +1 -1
  174. package/dist/interface/assets/{lan-C3jliANx.js → lan-CYXjdk7L.js} +1 -1
  175. package/dist/interface/assets/main-BK3kmiG2.js +3 -0
  176. package/dist/interface/assets/{main-BoGhBedC.css → main-Bo0Lb1y2.css} +1 -1
  177. package/dist/interface/assets/{microphone-B6xc9JQ2.js → microphone-BB2pATI_.js} +1 -1
  178. package/dist/interface/assets/{minus-BI5qXFwJ.js → minus-BCp3ZNKO.js} +1 -1
  179. package/dist/interface/assets/{mqtt-iD9XHYO_.js → mqtt-BENV9Fx4.js} +1 -1
  180. package/dist/interface/assets/native-BEkWOGyD.js +1 -0
  181. package/dist/interface/assets/native-ugMg173F.js +1 -0
  182. package/dist/interface/assets/{nodeDefinitions-Dop49tx8.js → nodeDefinitions-ByrqsENY.js} +1 -1
  183. package/dist/interface/assets/{notifications-CbAJX7RF.js → notifications-By40oPng.js} +1 -1
  184. package/dist/interface/assets/{pause-DKzvPG2b.js → pause-BQlxwAW2.js} +1 -1
  185. package/dist/interface/assets/{pencil-DKbi9SsG.js → pencil-CDsNnEXi.js} +1 -1
  186. package/dist/interface/assets/{pencil-outline-CD3Xv98d.js → pencil-outline-CIQL5Kui.js} +1 -1
  187. package/dist/interface/assets/plugin-eafNQWg2.js +1 -0
  188. package/dist/interface/assets/{plugins-eIUrXNeM.js → plugins-09rEDbMz.js} +1 -1
  189. package/dist/interface/assets/{plus-CHPYoMO_.js → plus-Bp4q9G7S.js} +1 -1
  190. package/dist/interface/assets/{plus--kDl8ben.js → plus-CySoovdr.js} +1 -1
  191. package/dist/interface/assets/{power-C9wmNlFS.js → power-WmBLDR0-.js} +1 -1
  192. package/dist/interface/assets/{radar-B3ra28GD.js → radar-CyYAmume.js} +1 -1
  193. package/dist/interface/assets/{refresh-DfqyhMOh.js → refresh-CHTA3jVN.js} +1 -1
  194. package/dist/interface/assets/{restore-FMacmqd_.js → restore-C8RNM5yX.js} +1 -1
  195. package/dist/interface/assets/{rooms-BqPyo8jc.js → rooms-LBxn-Uuu.js} +1 -1
  196. package/dist/interface/assets/{round-alt-arrow-left-bold-56eF9Bol.js → round-alt-arrow-left-bold-Gh5mi_yR.js} +1 -1
  197. package/dist/interface/assets/{search-BXbDWhLk.js → search-BajCVmOI.js} +1 -1
  198. package/dist/interface/assets/sensorIcons-Csu5s0uk.js +1 -0
  199. package/dist/interface/assets/{sensorSlots-BZCXtnb6.js → sensorSlots-CtbKmsGG.js} +1 -1
  200. package/dist/interface/assets/{sensors-DttBNEEt.js → sensors-CbzNs18A.js} +1 -1
  201. package/dist/interface/assets/{server-DUFhf2c_.js → server-Btp5KILd.js} +1 -1
  202. package/dist/interface/assets/{settings-Cw63SIJl.js → settings-DnksaK7m.js} +1 -1
  203. package/dist/interface/assets/{source-branch-oyzrlfCD.js → source-branch-CzqIPffP.js} +1 -1
  204. package/dist/interface/assets/{theme-BMmjtQ4w.js → theme-GhzGwpqd.js} +1 -1
  205. package/dist/interface/assets/{trash-2-BQc04l9M.js → trash-2-DJeEhHf4.js} +1 -1
  206. package/dist/interface/assets/{trash-can-outline-Bk5eENNM.js → trash-can-outline-DrT6iw7I.js} +1 -1
  207. package/dist/interface/assets/{trash-fill-CXk8BmtF.js → trash-fill-Bb_-UicM.js} +1 -1
  208. package/dist/interface/assets/{trash2-2rUvghml.js → trash2-Dsl8gfxq.js} +1 -1
  209. package/dist/interface/assets/types-BAwhu9iv.js +1 -0
  210. package/dist/interface/assets/{types-DWTSNJ79.js → types-CklFkUXk.js} +1 -1
  211. package/dist/interface/assets/{types-CXw7CEzu.js → types-D8QWPhe-.js} +1 -1
  212. package/dist/interface/assets/{undo-Dcf7vcsv.js → undo-DoqJW-k7.js} +1 -1
  213. package/dist/interface/assets/ungrouped-BMk56E3L.js +1 -0
  214. package/dist/interface/assets/{ungrouped-DHMJ9Rg1.css → ungrouped-BnQIcSQd.css} +1 -1
  215. package/dist/interface/assets/{updates-TIPWXKzL.js → updates-CGo0T4sn.js} +1 -1
  216. package/dist/interface/assets/{upload-nnbfDypK.js → upload-C3w1XH-o.js} +1 -1
  217. package/dist/interface/assets/{upload-B-ZYPekV.js → upload-DtIcwiNC.js} +1 -1
  218. package/dist/interface/assets/{useAppVersion-BIz44Bg4.js → useAppVersion-CJlexqyz.js} +1 -1
  219. package/dist/interface/assets/{useAssistantActions-CLkkw9kB.js → useAssistantActions-Cc_O6M9_.js} +1 -1
  220. package/dist/interface/assets/useBackupRestore-_s8vS5WF.js +1 -0
  221. package/dist/interface/assets/{useCameraOptions-A97teAIr.js → useCameraOptions-CFISVNgk.js} +1 -1
  222. package/dist/interface/assets/{useKeyboardInset-DXVi1dLG.js → useKeyboardInset-DkUn62i7.js} +1 -1
  223. package/dist/interface/assets/{useLogsSocket-BlFxVXjF.js → useLogsSocket-D-ndWAg0.js} +1 -1
  224. package/dist/interface/assets/{useNavLayout-C5obaCNv.js → useNavLayout-CG0X_3kt.js} +1 -1
  225. package/dist/interface/assets/{usePermissions-C8hB_pG1.js → usePermissions-BXTw4tII.js} +1 -1
  226. package/dist/interface/assets/{usePluginUpdates-DO0-Gk4Q.js → usePluginUpdates-nW_dt66E.js} +1 -1
  227. package/dist/interface/assets/{usePushRegistration-BUttCraQ.js → usePushRegistration-DCqOAxR4.js} +2 -2
  228. package/dist/interface/assets/{useServerRestart-Cz9eVHUE.js → useServerRestart-CxJGxAcU.js} +1 -1
  229. package/dist/interface/assets/{useStreamStatus-BhS_MCCB.js → useStreamStatus-CXb1HbAq.js} +1 -1
  230. package/dist/interface/assets/{useTabSwipe-D4k8lm1M.js → useTabSwipe-DHb8__wU.js} +1 -1
  231. package/dist/interface/assets/{useUpdateChannel-D9lhfW0y.js → useUpdateChannel-BR4PMh1R.js} +1 -1
  232. package/dist/interface/assets/{useUpdatesSocket-DnH9sON5.js → useUpdatesSocket-DKDRZhvc.js} +1 -1
  233. package/dist/interface/assets/useUserOptions-lyc4WJ4L.js +1 -0
  234. package/dist/interface/assets/{variable-CcE0ZwTr.js → variable-ywTlRfo5.js} +1 -1
  235. package/dist/interface/assets/{vendor-cameraui-QXD8jkcj.js → vendor-cameraui-CK4yHsJi.js} +45 -45
  236. package/dist/interface/assets/{vendor-capacitor-COL6Kz75.js → vendor-capacitor-f9ShAzys.js} +2 -2
  237. package/dist/interface/assets/{vendor-chart-80wrH3md.js → vendor-chart-DBK083Hu.js} +1 -1
  238. package/dist/interface/assets/{vendor-core-CnhnyKDl.js → vendor-core-B-Q4es-f.js} +1 -1
  239. package/dist/interface/assets/{vendor-dnd-CEJS9JKU.js → vendor-dnd-DGQLvX6Y.js} +1 -1
  240. package/dist/interface/assets/{vendor-draggabilly-BY7O1F_Z.js → vendor-draggabilly-D8CK6M-y.js} +1 -1
  241. package/dist/interface/assets/{vendor-DGke_6M4.js → vendor-gFkr2qsZ.js} +1 -1
  242. package/dist/interface/assets/vendor-gridstack-DtDG3os6.js +3 -0
  243. package/dist/interface/assets/{vendor-markdown-DD4teg2u.js → vendor-markdown-qHIinIUE.js} +1 -1
  244. package/dist/interface/assets/{vendor-primevue-CCUqY55W.js → vendor-primevue-Cmp3VjIC.js} +72 -72
  245. package/dist/interface/assets/{vendor-vueflow-Bmwd2les.js → vendor-vueflow-bSwRZ9X8.js} +1 -1
  246. package/dist/interface/assets/web-3OOGlctS.js +1 -0
  247. package/dist/interface/assets/web-5NFVd9gs.js +1 -0
  248. package/dist/interface/assets/web-A4yovlXr.js +1 -0
  249. package/dist/interface/assets/web-BBC3YoWX.js +1 -0
  250. package/dist/interface/assets/web-B_9Qyt8E.js +1 -0
  251. package/dist/interface/assets/web-BjKL51lK-DUIsII0n.js +1 -0
  252. package/dist/interface/assets/web-C2-YAfsx.js +1 -0
  253. package/dist/interface/assets/web-CUL_MhvM.js +1 -0
  254. package/dist/interface/assets/web-CZVCXYLV.js +1 -0
  255. package/dist/interface/assets/web-DJ-LUxlV.js +1 -0
  256. package/dist/interface/assets/web-DNsEGLGS.js +1 -0
  257. package/dist/interface/assets/web-DZsU0QT_.js +1 -0
  258. package/dist/interface/assets/web-MoyOTbiU.js +1 -0
  259. package/dist/interface/assets/web-avRH_3t7.js +1 -0
  260. package/dist/interface/assets/{webhook-oVbP79Yk.js → webhook-CWKf2Qxu.js} +1 -1
  261. package/dist/interface/assets/workbox-window.prod.es5-BEYAF-e-.js +1 -0
  262. package/dist/interface/assets/{zoom-in-GKNy8xA7.js → zoom-in-CHkXAWHy.js} +1 -1
  263. package/dist/interface/ha/{404-DLhJqxRl.js → 404-B2T8Gktj.js} +1 -1
  264. package/dist/interface/ha/{About-DC0i1iE4.js → About-CrTKzU9_.js} +6 -6
  265. package/dist/interface/ha/{Assistant-BmazMPIg.js → Assistant-BDHJmYx_.js} +823 -820
  266. package/dist/interface/ha/{Automation-gabF9YzQ.js → Automation-Czo5EsAg.js} +337 -337
  267. package/dist/interface/ha/{AutomationImport-DaqZNs9s.js → AutomationImport-CuFAQbiX.js} +6 -6
  268. package/dist/interface/ha/{AutomationStore-DzM4huo5.js → AutomationStore-D-6x0JIt.js} +16 -16
  269. package/dist/interface/ha/{AutomationStoreDetail-CpzQMt_D.js → AutomationStoreDetail-Dad4q1MN.js} +19 -19
  270. package/dist/interface/ha/{Automations-Dcm4Us50.js → Automations-C-oGM5SR.js} +71 -71
  271. package/dist/interface/ha/{Camera-CNK3QR7l.js → Camera-CerkQGbZ.js} +214 -214
  272. package/dist/interface/ha/{CameraConsole-CpcF0411.js → CameraConsole-hRGwbjsD.js} +3 -3
  273. package/dist/interface/ha/{Cameras-Cf9rwRyf.js → Cameras-Bk5TFXA8.js} +92 -92
  274. package/dist/interface/ha/{Camview-BFKR2t6C.js → Camview-CsKKqxxY.js} +382 -382
  275. package/dist/interface/ha/{Config-1XH3zfr2.js → Config-Vl4-K3A_.js} +11 -11
  276. package/dist/interface/ha/{ConfigActionAssistant-C0-NFoTB.js → ConfigActionAssistant-OWUX8glZ.js} +4 -4
  277. package/dist/interface/ha/{ConfigActionCameraControl-DNSKZPSZ.js → ConfigActionCameraControl-DEaOot8w.js} +3 -3
  278. package/dist/interface/ha/{ConfigActionHttp-DVJAcGkl.js → ConfigActionHttp-CSr2BpKL.js} +2 -2
  279. package/dist/interface/ha/{ConfigActionImageInput-VVbHHHZs.js → ConfigActionImageInput--O8Tyca-.js} +1 -1
  280. package/dist/interface/ha/{ConfigActionMqtt-N5OUJDzM.js → ConfigActionMqtt-DQJ4-gs2.js} +4 -4
  281. package/dist/interface/ha/{ConfigActionNotification-s142tQoU.js → ConfigActionNotification-wR8CCA_T.js} +3 -3
  282. package/dist/interface/ha/{ConfigActionNotificationControl-Dh7kaKVP.js → ConfigActionNotificationControl-DNMrHwPz.js} +2 -2
  283. package/dist/interface/ha/{ConfigActionOutput-B4HHTg5C.js → ConfigActionOutput-C-LVFxFP.js} +1 -1
  284. package/dist/interface/ha/{ConfigActionPlugin-D20G2Dqf.js → ConfigActionPlugin-BCREAkNo.js} +5 -5
  285. package/dist/interface/ha/{ConfigActionSensor-BS3jrFaG.js → ConfigActionSensor-D48CQ6qR.js} +5 -5
  286. package/dist/interface/ha/{ConfigActionSnapshot-CInLAcwK.js → ConfigActionSnapshot-DpDy88Mg.js} +2 -2
  287. package/dist/interface/ha/{ConfigActionVariable-C5vADGNF.js → ConfigActionVariable-D9BxmwvB.js} +1 -1
  288. package/dist/interface/ha/{ConfigConditionIfElse-CPeWDD31.js → ConfigConditionIfElse-CW42tQFY.js} +3 -3
  289. package/dist/interface/ha/{ConfigConditionSensorState-BM5GmpN6.js → ConfigConditionSensorState-BZpij7kB.js} +4 -4
  290. package/dist/interface/ha/{ConfigConditionSwitch-Dmz9FduJ.js → ConfigConditionSwitch-DlTuJ9Sf.js} +5 -5
  291. package/dist/interface/ha/{ConfigSensorValueInput-Ch5njvtv.js → ConfigSensorValueInput-2QLHESlE.js} +5 -5
  292. package/dist/interface/ha/{ConfigTriggerDetection-BR2QWNyO.js → ConfigTriggerDetection-DPmUkmUJ.js} +3 -3
  293. package/dist/interface/ha/{ConfigTriggerGeofence-CaImOjyW.js → ConfigTriggerGeofence--T9OXhGl.js} +2 -2
  294. package/dist/interface/ha/{ConfigTriggerMqtt-DWz1XwZQ.js → ConfigTriggerMqtt-fZn_X6yY.js} +1 -1
  295. package/dist/interface/ha/{ConfigTriggerSensor-lfnhz0im.js → ConfigTriggerSensor-_3O6iBFX.js} +1 -1
  296. package/dist/interface/ha/{ConfigTriggerSystem-CwUhyFAj.js → ConfigTriggerSystem-CC9lqi8Q.js} +2 -2
  297. package/dist/interface/ha/{ConfigTriggerWebhook-J6Xts7GQ.js → ConfigTriggerWebhook-BuBcgXqf.js} +1 -1
  298. package/dist/interface/ha/{Console-BSdKFm6Y.js → Console-DNc49UEt.js} +13 -13
  299. package/dist/interface/ha/{CuiAutomationRunsDialog-BU8sympp.js → CuiAutomationRunsDialog-Dj_iiZht.js} +2 -2
  300. package/dist/interface/ha/{CuiBottomSheet-Bnp7ta7V.js → CuiBottomSheet-DG7wOV7m.js} +1 -1
  301. package/dist/interface/ha/{CuiCameraRecordings-E-mMqKSs.js → CuiCameraRecordings-BlOZTfQ4.js} +12 -12
  302. package/dist/interface/ha/{CuiCameraShares-DcNwd2OC.js → CuiCameraShares-BOn-mobi.js} +2 -2
  303. package/dist/interface/ha/{CuiCameraTable-DNW9Vm_A.js → CuiCameraTable-D50FLiK8.js} +9 -9
  304. package/dist/interface/ha/{CuiChartTable-muC7jL2H.js → CuiChartTable-CfcVRvdZ.js} +42 -42
  305. package/dist/interface/ha/{CuiConsole-ND8bcuTg.js → CuiConsole-UpN0Wihm.js} +6 -6
  306. package/dist/interface/ha/{CuiDataTable-CN4T8DgP.js → CuiDataTable-CpADXKNF.js} +6 -6
  307. package/dist/interface/ha/{CuiPluginCard-nIQiyQvH.js → CuiPluginCard-CT6ZfL9o.js} +52 -52
  308. package/dist/interface/ha/{CuiPluginOAuthButton-FJ49NfUh.js → CuiPluginOAuthButton-BJVKd6Ac.js} +6 -6
  309. package/dist/interface/ha/{CuiPluginTrustBadge-D6eanMyI.js → CuiPluginTrustBadge-gb9GI24w.js} +3 -3
  310. package/dist/interface/ha/{CuiQRCode-BdJzeeoE.js → CuiQRCode-DqKDx9zR.js} +7 -7
  311. package/dist/interface/ha/{CuiSchema-DY0V-8xP.js → CuiSchema-CHeJkx0k.js} +129 -129
  312. package/dist/interface/ha/{CuiTopNavbarItem-DT5pAKHp.js → CuiTopNavbarItem-CFeI6ZYU.js} +5 -5
  313. package/dist/interface/ha/Faces-CTfvhhCj.js +1441 -0
  314. package/dist/interface/ha/{FirstSteps-yS2M2cor.js → FirstSteps-C-WXJ8IL.js} +80 -80
  315. package/dist/interface/ha/{Floorplan-DSOeScjI.js → Floorplan-CDKTYN7B.js} +307 -307
  316. package/dist/interface/ha/{Instances-B4h5EKpF.js → Instances-n23yvN3L.js} +62 -62
  317. package/dist/interface/ha/{Logs-BH0Lxvs6.js → Logs-Dfm0BWOQ.js} +10 -10
  318. package/dist/interface/ha/{Menu-COH7QXuE.js → Menu-76kvdAEF.js} +15 -15
  319. package/dist/interface/ha/{Metrics-BtnRqL_I.js → Metrics-lnivlTWm.js} +101 -100
  320. package/dist/interface/ha/{OAuthDeviceFlow-D2QJ9MnP.js → OAuthDeviceFlow-4ChaymHu.js} +7 -7
  321. package/dist/interface/ha/{Plugin-EfUSqwyh.js → Plugin-BV8YA8aN.js} +486 -347
  322. package/dist/interface/ha/{PluginConsole-hh_o15f7.js → PluginConsole-csf1Km7f.js} +4 -4
  323. package/dist/interface/ha/{PluginDetail-DFiXGkrY.js → PluginDetail-DTff6cbA.js} +185 -185
  324. package/dist/interface/ha/{PluginSearch-Cdrfubrj.js → PluginSearch-CdjxmFPN.js} +116 -116
  325. package/dist/interface/ha/{PluginUpdateProgress-BD2g2kVj.js → PluginUpdateProgress-ClyF4pbA.js} +3 -3
  326. package/dist/interface/ha/{Plugins-qFiHW-Nk.js → Plugins-_xOrqP36.js} +34 -34
  327. package/dist/interface/ha/{RecentEventsFilter-UWrXnvfq.js → RecentEventsFilter-9ZkDHD1g.js} +1 -1
  328. package/dist/interface/ha/{Recordings-BzeC6tOz.js → Recordings-dTZv0pkp.js} +483 -458
  329. package/dist/interface/ha/{SensorEdit-BSgy7lkZ.js → SensorEdit-DDRkZjmm.js} +40 -40
  330. package/dist/interface/ha/{SensorHistory-IDvP8LKH.js → SensorHistory-DSGlRITr.js} +2 -2
  331. package/dist/interface/ha/{Sensors-Diqp4oZ0.js → Sensors-DjhGRUzM.js} +477 -462
  332. package/dist/interface/ha/{Settings-BgDsxAlx.js → Settings-DYuvz4de.js} +17 -17
  333. package/dist/interface/ha/{SettingsAccount-DBXMQPYk.js → SettingsAccount-DQAo8SnK.js} +146 -146
  334. package/dist/interface/ha/{SettingsAppearance-VmbjnT3o.js → SettingsAppearance-_tbhpUA0.js} +8 -8
  335. package/dist/interface/ha/{SettingsAssistant-C2R4ZetE.js → SettingsAssistant-DSf-dYuD.js} +656 -533
  336. package/dist/interface/ha/{SettingsBackup-BqY9TwYn.js → SettingsBackup-wLOa7xtw.js} +40 -40
  337. package/dist/interface/ha/{SettingsList-CzHcfo2N.js → SettingsList-CYujivw5.js} +4 -4
  338. package/dist/interface/ha/{SettingsMqtt-DqV3h3Ow.js → SettingsMqtt-DbxJ-h3J.js} +115 -115
  339. package/dist/interface/ha/{SettingsNotifications-yn5fIR_7.js → SettingsNotifications-DO2-KJvq.js} +118 -118
  340. package/dist/interface/ha/{SettingsRecordings-DDs1lyfY.js → SettingsRecordings-C47i1UhI.js} +9 -9
  341. package/dist/interface/ha/{SettingsRemote-jBw3l5E0.js → SettingsRemote-BPvb-KLI.js} +335 -335
  342. package/dist/interface/ha/{SettingsSystem-BOv9hNlk.js → SettingsSystem-BJPrv9JE.js} +9 -9
  343. package/dist/interface/ha/{SettingsUsers-Biv-2F4C.js → SettingsUsers-CcpCz6Y1.js} +89 -89
  344. package/dist/interface/ha/{Terminal-CmcrGEV0.js → Terminal-DT7-WNH1.js} +16 -16
  345. package/dist/interface/ha/Training-CqGBf8k1.js +1694 -0
  346. package/dist/interface/ha/{Updates-DJAcmDQJ.js → Updates-CgdrqX6R.js} +13 -13
  347. package/dist/interface/ha/{VariableInput-DlYg7t0m.js → VariableInput-DOzSFgxT.js} +1 -1
  348. package/dist/interface/ha/{VersionsHandler-UnrAWn-b.js → VersionsHandler-ItklhE2t.js} +10 -10
  349. package/dist/interface/ha/{VirtualSensorCreate-CssxeaCC.js → VirtualSensorCreate-DbS3VqHC.js} +2 -2
  350. package/dist/interface/ha/{Workers-CLpqLugC.js → Workers-6PU7yUv1.js} +36 -36
  351. package/dist/interface/ha/{api-BP7mlzjP.js → api-Dv3Lk_g5.js} +8832 -8608
  352. package/dist/interface/ha/{api-B_tDa73J.js → api-anWolhVj.js} +3 -3
  353. package/dist/interface/ha/{assistant-Cb6ACguQ.js → assistant-B3m0Kgev.js} +101 -97
  354. package/dist/interface/ha/{auth-DOYDRgFm.js → auth-CAkpM_7A.js} +33 -33
  355. package/dist/interface/ha/{automationBlueprint-CbbG_ku4.js → automationBlueprint-DwVvbKbw.js} +4 -4
  356. package/dist/interface/ha/cameraui-cards.js +1 -1
  357. package/dist/interface/ha/{cards-BpBP1zVW.js → cards-B0qagpBw.js} +743 -667
  358. package/dist/interface/ha/{config-DroY1HBs.js → config-C20itAPE.js} +14 -14
  359. package/dist/interface/ha/database-refresh-outline-PiqlCkA7.js +19 -0
  360. package/dist/interface/ha/{dist-BTp4AyuI.js → dist-BIngHzHx.js} +5 -5
  361. package/dist/interface/ha/{dist-C6MBHJhs.js → dist-oFWkn6pD.js} +5 -8
  362. package/dist/interface/ha/{mqtt-NJTVdd53.js → mqtt-C6JvkA5E.js} +14 -14
  363. package/dist/interface/ha/{notifications-BPTvvgvv.js → notifications-gLmNZxwZ.js} +19 -19
  364. package/dist/interface/ha/{pinia-C6gt7A_Q.js → pinia-Du8AM917.js} +639 -625
  365. package/dist/interface/ha/{plugins-B29K3nQP.js → plugins-6x0kBuQb.js} +53 -53
  366. package/dist/interface/ha/{rooms-DLw0WUy_.js → rooms-C-mLT6mX.js} +11 -11
  367. package/dist/interface/ha/{server-B4b5_Ecu.js → server-DuikIt69.js} +28 -28
  368. package/dist/interface/ha/{types-DJHHL7nn.js → types-C0NcQ4Cz.js} +49 -38
  369. package/dist/interface/ha/{types-XqA3YJPD.js → types-wLECk3Ml.js} +3 -1
  370. package/dist/interface/ha/{ungrouped-xyK1QrsM.js → ungrouped-ooCH0Izh.js} +120 -120
  371. package/dist/interface/ha/{updates-XFSu9Tfm.js → updates-H8MlOQLC.js} +36 -36
  372. package/dist/interface/ha/{useAppVersion-BH3rU1zz.js → useAppVersion-DAUCV_cn.js} +1 -1
  373. package/dist/interface/ha/{useLogsSocket-CaTRzvgU.js → useLogsSocket-BOLAXPuD.js} +1 -1
  374. package/dist/interface/ha/{useNavLayout-DV0_OQx0.js → useNavLayout-B7VoHzM1.js} +2 -2
  375. package/dist/interface/ha/{useServerRestart-C8tynLUf.js → useServerRestart-qSH0bqwY.js} +1 -1
  376. package/dist/interface/ha/{useTabSwipe-CFoLDp3j.js → useTabSwipe-DYzG_gVG.js} +1 -1
  377. package/dist/interface/ha/{useUpdateChannel-DSG2RTPe.js → useUpdateChannel-CK7JiWbG.js} +2 -2
  378. package/dist/interface/ha/{useUpdatesSocket-CSQ0g7-6.js → useUpdatesSocket-DrqkGMuR.js} +1 -1
  379. package/dist/interface/ha/{useUserOptions-CFaCy6L1.js → useUserOptions-BteVUdaT.js} +1 -1
  380. package/dist/interface/index.html +70 -70
  381. package/dist/interface/sw.js +1 -1
  382. package/dist/server/package.json +28 -28
  383. package/dist/server/requirements.txt +2 -2
  384. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/__init__.py +44 -0
  385. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/camera/config.py +2 -0
  386. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/camera/detection.py +7 -2
  387. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/plugin/__init__.py +42 -0
  388. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/plugin/assistant_models.py +300 -0
  389. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/plugin/contract.py +9 -0
  390. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/plugin/helper.py +21 -0
  391. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/plugin/interfaces.py +80 -4
  392. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/__init__.py +6 -0
  393. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/base.py +2 -0
  394. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/face.py +3 -7
  395. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/face_embedder.py +69 -0
  396. package/dist/server/src/api/controllers/assistant.controller.js +1 -1
  397. package/dist/server/src/api/controllers/assistant.controller.js.map +1 -1
  398. package/dist/server/src/api/database/index.d.ts +1 -1
  399. package/dist/server/src/api/database/index.js +1 -1
  400. package/dist/server/src/api/database/migrations/v2-2-5.d.ts +3 -0
  401. package/dist/server/src/api/database/migrations/v2-2-5.js +19 -0
  402. package/dist/server/src/api/database/migrations/v2-2-5.js.map +1 -0
  403. package/dist/server/src/api/database/record-schemas.d.ts +4 -2
  404. package/dist/server/src/api/database/record-schemas.js +4 -1
  405. package/dist/server/src/api/database/record-schemas.js.map +1 -1
  406. package/dist/server/src/api/database/types.d.ts +5 -1
  407. package/dist/server/src/api/schemas/assistant.schema.d.ts +21 -7
  408. package/dist/server/src/api/schemas/assistant.schema.js +4 -1
  409. package/dist/server/src/api/schemas/assistant.schema.js.map +1 -1
  410. package/dist/server/src/api/schemas/cameras.schema.d.ts +56 -8
  411. package/dist/server/src/api/schemas/cameras.schema.js +4 -3
  412. package/dist/server/src/api/schemas/cameras.schema.js.map +1 -1
  413. package/dist/server/src/api/services/assistant.service.d.ts +1 -1
  414. package/dist/server/src/api/services/assistant.service.js +4 -1
  415. package/dist/server/src/api/services/assistant.service.js.map +1 -1
  416. package/dist/server/src/api/services/cameras.service.js +2 -2
  417. package/dist/server/src/api/services/cameras.service.js.map +1 -1
  418. package/dist/server/src/api/websocket/nsp/logs.js +3 -3
  419. package/dist/server/src/api/websocket/nsp/logs.js.map +1 -1
  420. package/dist/server/src/api/websocket/nsp/worker-perf.js +13 -0
  421. package/dist/server/src/api/websocket/nsp/worker-perf.js.map +1 -1
  422. package/dist/server/src/api/websocket/types.d.ts +12 -0
  423. package/dist/server/src/assistant/budget.d.ts +27 -0
  424. package/dist/server/src/assistant/budget.js +118 -0
  425. package/dist/server/src/assistant/budget.js.map +1 -0
  426. package/dist/server/src/assistant/compaction.d.ts +10 -0
  427. package/dist/server/src/assistant/compaction.js +83 -0
  428. package/dist/server/src/assistant/compaction.js.map +1 -0
  429. package/dist/server/src/assistant/docs.js +4 -3
  430. package/dist/server/src/assistant/docs.js.map +1 -1
  431. package/dist/server/src/assistant/history.d.ts +1 -0
  432. package/dist/server/src/assistant/history.js +28 -0
  433. package/dist/server/src/assistant/history.js.map +1 -1
  434. package/dist/server/src/assistant/manager.d.ts +10 -0
  435. package/dist/server/src/assistant/manager.js +261 -62
  436. package/dist/server/src/assistant/manager.js.map +1 -1
  437. package/dist/server/src/assistant/plugin-models.d.ts +34 -0
  438. package/dist/server/src/assistant/plugin-models.js +266 -0
  439. package/dist/server/src/assistant/plugin-models.js.map +1 -0
  440. package/dist/server/src/assistant/prompt.d.ts +7 -1
  441. package/dist/server/src/assistant/prompt.js +75 -11
  442. package/dist/server/src/assistant/prompt.js.map +1 -1
  443. package/dist/server/src/assistant/providers.js +7 -3
  444. package/dist/server/src/assistant/providers.js.map +1 -1
  445. package/dist/server/src/assistant/recap.d.ts +3 -0
  446. package/dist/server/src/assistant/recap.js +65 -0
  447. package/dist/server/src/assistant/recap.js.map +1 -0
  448. package/dist/server/src/assistant/registry.d.ts +16 -1
  449. package/dist/server/src/assistant/registry.js +49 -1
  450. package/dist/server/src/assistant/registry.js.map +1 -1
  451. package/dist/server/src/assistant/retry.js +38 -24
  452. package/dist/server/src/assistant/retry.js.map +1 -1
  453. package/dist/server/src/assistant/router.d.ts +7 -0
  454. package/dist/server/src/assistant/router.js +67 -0
  455. package/dist/server/src/assistant/router.js.map +1 -0
  456. package/dist/server/src/assistant/skills.d.ts +8 -0
  457. package/dist/server/src/assistant/skills.js +59 -1
  458. package/dist/server/src/assistant/skills.js.map +1 -1
  459. package/dist/server/src/assistant/threads.d.ts +1 -0
  460. package/dist/server/src/assistant/threads.js +7 -1
  461. package/dist/server/src/assistant/threads.js.map +1 -1
  462. package/dist/server/src/assistant/tool-names.js +9 -1
  463. package/dist/server/src/assistant/tool-names.js.map +1 -1
  464. package/dist/server/src/assistant/tool-rank.d.ts +2 -0
  465. package/dist/server/src/assistant/tool-rank.js +48 -0
  466. package/dist/server/src/assistant/tool-rank.js.map +1 -0
  467. package/dist/server/src/assistant/tool-schema.d.ts +3 -0
  468. package/dist/server/src/assistant/tool-schema.js +65 -0
  469. package/dist/server/src/assistant/tool-schema.js.map +1 -0
  470. package/dist/server/src/assistant/tools/api.js +7 -9
  471. package/dist/server/src/assistant/tools/api.js.map +1 -1
  472. package/dist/server/src/assistant/tools/ask.js +1 -2
  473. package/dist/server/src/assistant/tools/ask.js.map +1 -1
  474. package/dist/server/src/assistant/tools/automations.js +3 -5
  475. package/dist/server/src/assistant/tools/automations.js.map +1 -1
  476. package/dist/server/src/assistant/tools/cameras.js +3 -4
  477. package/dist/server/src/assistant/tools/cameras.js.map +1 -1
  478. package/dist/server/src/assistant/tools/docs.js +5 -6
  479. package/dist/server/src/assistant/tools/docs.js.map +1 -1
  480. package/dist/server/src/assistant/tools/instance.js +19 -19
  481. package/dist/server/src/assistant/tools/instance.js.map +1 -1
  482. package/dist/server/src/assistant/tools/memory.js +3 -4
  483. package/dist/server/src/assistant/tools/memory.js.map +1 -1
  484. package/dist/server/src/assistant/tools/metrics.js +1 -2
  485. package/dist/server/src/assistant/tools/metrics.js.map +1 -1
  486. package/dist/server/src/assistant/tools/notifications.js +4 -11
  487. package/dist/server/src/assistant/tools/notifications.js.map +1 -1
  488. package/dist/server/src/assistant/tools/plugins.js +12 -14
  489. package/dist/server/src/assistant/tools/plugins.js.map +1 -1
  490. package/dist/server/src/assistant/tools/report.js +17 -12
  491. package/dist/server/src/assistant/tools/report.js.map +1 -1
  492. package/dist/server/src/assistant/tools/schedules.js +6 -11
  493. package/dist/server/src/assistant/tools/schedules.js.map +1 -1
  494. package/dist/server/src/assistant/tools/sensors.js +63 -4
  495. package/dist/server/src/assistant/tools/sensors.js.map +1 -1
  496. package/dist/server/src/assistant/tools/settings.js +2 -3
  497. package/dist/server/src/assistant/tools/settings.js.map +1 -1
  498. package/dist/server/src/assistant/tools/system.js +3 -5
  499. package/dist/server/src/assistant/tools/system.js.map +1 -1
  500. package/dist/server/src/assistant/tools/terminal.js +4 -5
  501. package/dist/server/src/assistant/tools/terminal.js.map +1 -1
  502. package/dist/server/src/assistant/types.d.ts +10 -1
  503. package/dist/server/src/assistant/uploads.d.ts +2 -1
  504. package/dist/server/src/assistant/uploads.js +25 -3
  505. package/dist/server/src/assistant/uploads.js.map +1 -1
  506. package/dist/server/src/camera/decoder/detection-coordinator.d.ts +5 -0
  507. package/dist/server/src/camera/decoder/detection-coordinator.js +45 -14
  508. package/dist/server/src/camera/decoder/detection-coordinator.js.map +1 -1
  509. package/dist/server/src/camera/decoder/detection-pipeline.js +2 -1
  510. package/dist/server/src/camera/decoder/detection-pipeline.js.map +1 -1
  511. package/dist/server/src/camera/decoder/event-manager.d.ts +27 -4
  512. package/dist/server/src/camera/decoder/event-manager.js +175 -48
  513. package/dist/server/src/camera/decoder/event-manager.js.map +1 -1
  514. package/dist/server/src/camera/decoder/nvr-sink.d.ts +4 -1
  515. package/dist/server/src/camera/decoder/nvr-sink.js +1 -1
  516. package/dist/server/src/camera/decoder/nvr-sink.js.map +1 -1
  517. package/dist/server/src/camera/decoder/perf-tracker.d.ts +10 -0
  518. package/dist/server/src/camera/decoder/perf-tracker.js +20 -0
  519. package/dist/server/src/camera/decoder/perf-tracker.js.map +1 -1
  520. package/dist/server/src/camera/decoder/secondary-stage.d.ts +21 -1
  521. package/dist/server/src/camera/decoder/secondary-stage.js +301 -59
  522. package/dist/server/src/camera/decoder/secondary-stage.js.map +1 -1
  523. package/dist/server/src/camera/decoder/side-queue.d.ts +13 -0
  524. package/dist/server/src/camera/decoder/side-queue.js +53 -0
  525. package/dist/server/src/camera/decoder/side-queue.js.map +1 -0
  526. package/dist/server/src/camera/decoder/sources/buffered-source.d.ts +2 -0
  527. package/dist/server/src/camera/decoder/sources/buffered-source.js +7 -1
  528. package/dist/server/src/camera/decoder/sources/buffered-source.js.map +1 -1
  529. package/dist/server/src/camera/decoder/types.d.ts +11 -1
  530. package/dist/server/src/camera/decoder/types.js +9 -1
  531. package/dist/server/src/camera/decoder/types.js.map +1 -1
  532. package/dist/server/src/camera/sensors/controller.d.ts +1 -0
  533. package/dist/server/src/camera/sensors/controller.js +28 -4
  534. package/dist/server/src/camera/sensors/controller.js.map +1 -1
  535. package/dist/server/src/main.js +11 -2
  536. package/dist/server/src/main.js.map +1 -1
  537. package/dist/server/src/plugins/runtime/python/proxy/camera_device.py +1 -14
  538. package/dist/server/src/plugins/runtime/python/proxy/sensor.py +14 -1
  539. package/dist/server/src/plugins/runtime/python/proxy/sensor_manager.py +1 -13
  540. package/dist/server/src/rpc/interfaces/detection.d.ts +14 -2
  541. package/dist/server/src/rpc/server.js +1 -0
  542. package/dist/server/src/rpc/server.js.map +1 -1
  543. package/dist/server/src/services/config/index.d.ts +1 -0
  544. package/dist/server/src/services/config/index.js +6 -11
  545. package/dist/server/src/services/config/index.js.map +1 -1
  546. package/dist/server/src/utils/camera.js +8 -5
  547. package/dist/server/src/utils/camera.js.map +1 -1
  548. package/dist/server/src/utils/instance-lock.d.ts +1 -0
  549. package/dist/server/src/utils/instance-lock.js +57 -0
  550. package/dist/server/src/utils/instance-lock.js.map +1 -0
  551. package/dist/server/src/workers/agent.d.ts +2 -0
  552. package/dist/server/src/workers/agent.js +11 -1
  553. package/dist/server/src/workers/agent.js.map +1 -1
  554. package/dist/server/src/workers/manager.js +9 -2
  555. package/dist/server/src/workers/manager.js.map +1 -1
  556. package/dist/server/src/workers/types.d.ts +1 -0
  557. package/npm-shrinkwrap.json +209 -209
  558. package/package.json +28 -28
  559. package/dist/interface/assets/Assistant-bB8RBo-m.js +0 -1
  560. package/dist/interface/assets/Automations-BdZZW2eN.js +0 -2
  561. package/dist/interface/assets/Camera-Ct7ndOxr.js +0 -2
  562. package/dist/interface/assets/Camview-BjQdTHNh.js +0 -1
  563. package/dist/interface/assets/Config-CBTbYd5v.js +0 -2
  564. package/dist/interface/assets/ConfigTriggerGeofence-Bl2ZacbY.js +0 -1
  565. package/dist/interface/assets/Console-Cfk9MA9m.js +0 -1
  566. package/dist/interface/assets/CuiAssistantConversation-BHK_i56I.js +0 -5
  567. package/dist/interface/assets/CuiAutomationRunsDialog-B0ohEHw0.js +0 -1
  568. package/dist/interface/assets/CuiBottomSheet-NgX7VFao.js +0 -1
  569. package/dist/interface/assets/CuiCameraRecordings-BTD-CQAg.js +0 -1
  570. package/dist/interface/assets/CuiCameraTable-KPk46Xcl.js +0 -1
  571. package/dist/interface/assets/CuiDataTable-CsqH-RB1.js +0 -1
  572. package/dist/interface/assets/CuiMarkdownContent-DSArmS0V.js +0 -1
  573. package/dist/interface/assets/CuiSchema-ytExUVhI.js +0 -1
  574. package/dist/interface/assets/Faces-Cb6XMxDC.js +0 -1
  575. package/dist/interface/assets/Floorplan-DbqADtN1.js +0 -1
  576. package/dist/interface/assets/Instances-DrMzPD65.js +0 -1
  577. package/dist/interface/assets/Metrics-BUP_-7o7.css +0 -1
  578. package/dist/interface/assets/Metrics-CqhUnVRA.js +0 -12
  579. package/dist/interface/assets/Plugin-BDqNeTCT.css +0 -1
  580. package/dist/interface/assets/Plugin-DyOg_fbg.js +0 -1
  581. package/dist/interface/assets/PluginSearch-BgecD9Ob.js +0 -2
  582. package/dist/interface/assets/PluginSearch-C8xHKikH.js +0 -1
  583. package/dist/interface/assets/Plugins-CuujWEtM.js +0 -1
  584. package/dist/interface/assets/Recordings-9FJqCfdM.css +0 -1
  585. package/dist/interface/assets/Recordings-ths9khZr.js +0 -1
  586. package/dist/interface/assets/SensorEdit-BzoIH7QC.js +0 -1
  587. package/dist/interface/assets/Sensors-CK5uExfU.js +0 -2
  588. package/dist/interface/assets/Settings-DN5hFtw_.js +0 -1
  589. package/dist/interface/assets/SettingsAccount-BCrmon5O.js +0 -1
  590. package/dist/interface/assets/SettingsAccount-CSy1BAIH.js +0 -1
  591. package/dist/interface/assets/SettingsAppearance-h_XPZfQl.js +0 -1
  592. package/dist/interface/assets/SettingsAssistant-BESab92C.css +0 -1
  593. package/dist/interface/assets/SettingsAssistant-D8FmVbUL.js +0 -1
  594. package/dist/interface/assets/SettingsMqtt-DCkLIYpF.js +0 -1
  595. package/dist/interface/assets/SettingsRemote-DXlQKwlT.js +0 -2
  596. package/dist/interface/assets/Terminal-Dl-aAZME.js +0 -4
  597. package/dist/interface/assets/Training-B1oQjAr8.css +0 -1
  598. package/dist/interface/assets/Training-DdZjXgt1.js +0 -1
  599. package/dist/interface/assets/Updates-CkB1lXuo.js +0 -2
  600. package/dist/interface/assets/Workers-7yiebNkl.js +0 -2
  601. package/dist/interface/assets/api-DK2Bav9D.js +0 -4
  602. package/dist/interface/assets/api-DTCqDA-h.css +0 -2
  603. package/dist/interface/assets/assistant-BJ6xKcw_.js +0 -1
  604. package/dist/interface/assets/cloudHandoff-DtlquYGZ.js +0 -1
  605. package/dist/interface/assets/esm-4Hzzm93H.js +0 -1
  606. package/dist/interface/assets/esm-BrFPi5_4.js +0 -1
  607. package/dist/interface/assets/esm-C7pcdfXf.js +0 -1
  608. package/dist/interface/assets/esm-C8bsO829.js +0 -1
  609. package/dist/interface/assets/esm-CXzdnAMk.js +0 -1
  610. package/dist/interface/assets/esm-CZNGZkPu.js +0 -1
  611. package/dist/interface/assets/esm-D0iI7OVb.js +0 -1
  612. package/dist/interface/assets/esm-DKolm6KU.js +0 -1
  613. package/dist/interface/assets/esm-DTywI9gs.js +0 -1
  614. package/dist/interface/assets/esm-DifXcK9i.js +0 -1
  615. package/dist/interface/assets/esm-Dq5o-Xb4.js +0 -1
  616. package/dist/interface/assets/esm-IbQuUZ5l.js +0 -1
  617. package/dist/interface/assets/esm-Xre_AP5i.js +0 -1
  618. package/dist/interface/assets/esm-zYnXHhpH.js +0 -1
  619. package/dist/interface/assets/main-D74mRIxc.js +0 -3
  620. package/dist/interface/assets/native-CAujTO6L.js +0 -1
  621. package/dist/interface/assets/native-sQ88qazf.js +0 -1
  622. package/dist/interface/assets/plugin-D7K50k_y.js +0 -1
  623. package/dist/interface/assets/sensorIcons-DQVgryYP.js +0 -1
  624. package/dist/interface/assets/types-5rE8Tz0_.js +0 -1
  625. package/dist/interface/assets/ungrouped-D56FGIrg.js +0 -1
  626. package/dist/interface/assets/useBackupRestore-Crfd592q.js +0 -1
  627. package/dist/interface/assets/useUserOptions-BTRBUuE2.js +0 -1
  628. package/dist/interface/assets/vendor-gridstack-anPyIu9V.js +0 -3
  629. package/dist/interface/assets/web-3M-ddn4G.js +0 -1
  630. package/dist/interface/assets/web-BY80VGyU.js +0 -1
  631. package/dist/interface/assets/web-B_tUYyM0.js +0 -1
  632. package/dist/interface/assets/web-BjKL51lK-Bb5NYhpJ.js +0 -1
  633. package/dist/interface/assets/web-Bv-4PJGI.js +0 -1
  634. package/dist/interface/assets/web-C3Pk8qeB.js +0 -1
  635. package/dist/interface/assets/web-CLcvGPH6.js +0 -1
  636. package/dist/interface/assets/web-DO8gTOVJ.js +0 -1
  637. package/dist/interface/assets/web-DR5q_DmI.js +0 -1
  638. package/dist/interface/assets/web-DRHbG4Te.js +0 -1
  639. package/dist/interface/assets/web-DaQ8d8yk.js +0 -1
  640. package/dist/interface/assets/web-EVRW5whF.js +0 -1
  641. package/dist/interface/assets/web-S6Dk3UWN.js +0 -1
  642. package/dist/interface/assets/web-pWIp0wf0.js +0 -1
  643. package/dist/interface/assets/workbox-window.prod.es5-Dz5rcO1z.js +0 -1
  644. package/dist/interface/ha/Faces-C_svyTrr.js +0 -1282
  645. package/dist/interface/ha/Training-BEzPiXZg.js +0 -1512
@@ -1,56 +1,43 @@
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";
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 { Ar as P, B as F, Bn as I, Dr as L, Er as R, H as z, J as te, Kn as ne, Kr as B, Nn as V, On as re, Or as H, Pn as ie, Qn as ae, Si as U, U as oe, Un as W, V as se, W as ce, Y as G, Yn as le, Yt as ue, Z as de, _n as fe, _t as pe, ar as me, br as he, er as ge, g as _e, gi as ve, gr as ye, jr as be, kr as xe, or as Se, ot as Ce, st as we, tt as Te, ua as Ee, ut as De, wr as Oe, yi as ke, yr as Ae, z as je } from "./api-Dv3Lk_g5.js";
7
+ import { F as Me, M as Ne, z as Pe } from "./protocol-BB4jdtUC-DW3jl2tV.js";
8
+ import { h as Fe, u as Ie } from "./intercomService-B7HkLs6z.js";
9
+ import { n as Le } from "./vue-i18n-D5EAy78K.js";
10
+ import { C as Re, _ as ze, g as Be } from "./dist-BIngHzHx.js";
11
+ import { i as Ve } from "./alert-outline-FcLLjoOK.js";
12
+ import { t as He } from "./eventIcons-BFNUgeGr.js";
13
+ import { t as Ue } from "./button-BouAFgf5.js";
14
+ import { M as We } from "./dist-oFWkn6pD.js";
15
+ import { t as Ge } from "./inputtext-C_ygnPrC.js";
16
+ import { t as K } from "./checkbox-CAKzZcqk.js";
17
+ import { t as Ke } from "./datepicker-DXk97lTw.js";
18
+ import { t as qe } from "./close-CxFbonhd.js";
19
+ import { t as q } from "./select-DV7p2EDj.js";
20
+ import { t as Je } from "./progressbar-CaUaM8Bt.js";
21
+ import { t as Ye } from "./multiselect-BOb4ScAZ.js";
22
+ import { t as Xe } from "./textarea-ByXnzJzx.js";
23
+ import { s as Ze, t as Qe } from "./assistant-B3m0Kgev.js";
24
+ import { i as $e, n as J, t as Y } from "./eventLabels-B4C1_4vT.js";
25
+ import { i as et, n as tt, r as nt, t as rt } from "./ungrouped-ooCH0Izh.js";
26
26
  import { t as it } from "./utils-DYtBrGDz.js";
27
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 = {
28
+ import { t as ot } from "./database-refresh-outline-PiqlCkA7.js";
29
+ import { n as st, t as ct } 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 lt = { class: "flex flex-col gap-4" }, ut = { class: "text-sm text-pretty" }, dt = {
45
32
  key: 0,
46
33
  class: "flex flex-col gap-2"
47
- }, pt = {
34
+ }, ft = {
48
35
  key: 0,
49
36
  class: "flex justify-between text-sm text-muted"
50
- }, mt = { key: 0 }, ht = /* @__PURE__ */ D({
37
+ }, pt = { key: 0 }, mt = /* @__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 } = Le(), { status: s, isBusy: c, checking: l, refresh: u, start: f, cancel: h } = ne(), 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,55 +68,55 @@ 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 = Je;
72
+ return i(), v("div", lt, [C("span", ut, a(p(w)), 1), p(g) || p(x) ? (i(), v("div", dt, [k(n, {
86
73
  mode: p(l) ? "indeterminate" : "determinate",
87
74
  value: p(T),
88
75
  "show-value": !1,
89
76
  class: "h-2"
90
- }, null, 8, ["mode", "value"]), p(x) && !p(l) ? (i(), v("div", pt, [C("span", null, a(e.$t("views.recordings.reindex.progress", {
77
+ }, null, 8, ["mode", "value"]), p(x) && !p(l) ? (i(), v("div", ft, [C("span", null, a(e.$t("views.recordings.reindex.progress", {
91
78
  done: p(s)?.done ?? 0,
92
79
  total: p(s)?.total ?? 0
93
- })), 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)]);
80
+ })), 1), p(s)?.skipped ? (i(), v("span", pt, 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
+ }), X = {
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 ht(e, t) {
89
+ return i(), v("svg", X, [...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 gt = 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: ht
97
+ }), _t = { class: "flex flex-col gap-6" }, vt = { class: "flex flex-col field-gap" }, Z = { class: "cui-label" }, yt = { class: "flex flex-col field-gap" }, bt = { class: "cui-label" }, xt = { class: "grid grid-cols-1 xs:grid-cols-2 gap-3" }, St = { class: "flex flex-col gap-1" }, Ct = { class: "text-xs text-muted" }, wt = { class: "flex flex-col gap-1" }, Tt = { class: "text-xs text-muted" }, Et = { class: "grid grid-cols-1 xs:grid-cols-2 gap-x-6 gap-y-4" }, Dt = { class: "flex flex-col field-gap" }, Ot = { class: "cui-label" }, kt = { class: "flex flex-col field-gap" }, At = { class: "cui-label" }, jt = { class: "flex flex-col field-gap" }, Mt = { class: "flex items-center gap-3" }, Nt = { class: "cui-label !mb-0" }, Q = {
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
+ }, Pt = { class: "font-semibold" }, Ft = { class: "font-semibold" }, $ = { class: "border border-color rounded-xl card-background overflow-hidden" }, It = { class: "flex flex-col gap-3 max-h-[240px] overflow-y-auto p-2.5" }, Lt = {
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 } = Le(), c = U(), l = n("dialogRefProps"), { plugin: g } = We("@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" : H(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: `${ie(t)}_${e.day}${P.value ? "_timelapse" : ""}.mp4`,
156
+ span: i ? s("views.recordings.export.whole_day") : `${H(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,14 +168,14 @@ 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 H(e) {
192
179
  return `${V(e.getHours())}:${V(e.getMinutes())}`;
193
180
  }
194
181
  function ie(e) {
@@ -203,7 +190,7 @@ var Z = l({
203
190
  }
204
191
  async function oe() {
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 ?? [];
@@ -222,7 +209,7 @@ var Z = l({
222
209
  }
223
210
  }
224
211
  async function W() {
225
- if (!R.value || x.value.length === 0 || z.value.length === 0) return null;
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 he({
239
226
  url: t.url,
240
227
  filename: t.filename
241
228
  });
242
229
  }
243
- return Ne([
230
+ return Pe([
244
231
  x,
245
- z,
232
+ R,
246
233
  w
247
234
  ], oe, {
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);
239
+ l.disabled && (l.disabled.value = !L.value || x.value.length === 0 || !y.value && z.value.length === 0);
253
240
  }), t({ onConfirm: W }), (t, n) => {
254
- let o = Je, s = Ge, c = N, l = pe, m = J, g = P, _ = H, S = Z;
255
- return i(), v("div", vt, [
256
- C("div", yt, [C("label", bt, a(t.$t("views.recordings.export.cameras")), 1), k(o, {
241
+ let o = Ye, s = Ke, c = M, l = Se, m = q, g = N, _ = Oe, S = gt;
242
+ return i(), v("div", _t, [
243
+ C("div", vt, [C("label", Z, 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", yt, [
259
+ C("label", bt, a(t.$t("views.recordings.export.range")), 1),
260
+ C("div", xt, [C("div", St, [C("span", Ct, 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", wt, [C("span", Tt, 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", Et, [C("div", Dt, [C("label", Ot, 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", kt, [C("label", At, 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", jt, [C("div", Mt, [C("label", Nt, a(t.$t("views.recordings.export.result")), 1), p(z).length ? (i(), v("div", Q, [
315
+ C("span", Pt, 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", Ft, a(p(F)) + a(ae(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", $, [C("div", It, [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(ae(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(ae(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,49 @@ 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 = {
379
+ render: Yt
380
+ }), Zt = { class: "flex flex-col gap-2" }, Qt = { class: "sidebar-section-title" }, $t = {
394
381
  key: 0,
395
382
  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 = {
383
+ }, en = { class: "flex flex-col gap-2" }, tn = { class: "sidebar-section-title" }, nn = { class: "p-input-icon-left w-full" }, rn = {
384
+ key: 0,
385
+ class: "text-xs text-muted"
386
+ }, an = {
387
+ key: 1,
388
+ class: "text-xs text-muted"
389
+ }, on = { class: "flex flex-col gap-2" }, sn = { class: "sidebar-section-title flex items-center gap-1.5" }, cn = {
397
390
  key: 0,
398
391
  class: "inline-flex items-center gap-1 text-xs text-muted"
399
- }, un = {
392
+ }, ln = {
400
393
  key: 1,
401
394
  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 = {
395
+ }, 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
396
  key: 0,
404
397
  class: "text-xs text-muted"
405
- }, _n = {
398
+ }, gn = {
406
399
  key: 2,
407
400
  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 = {
401
+ }, _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
402
  key: 4,
410
403
  class: "sidebar-divider"
411
- }, Tn = {
404
+ }, wn = {
412
405
  key: 5,
413
406
  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 = {
407
+ }, 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
408
  key: 0,
416
409
  class: "flex flex-col gap-2"
417
- }, Pn = { class: "flex items-center gap-2 cursor-pointer text-sm" }, Fn = {
410
+ }, Nn = { class: "flex items-center gap-2 cursor-pointer text-sm" }, Pn = {
418
411
  key: 0,
419
412
  class: "flex flex-col gap-2 ml-6"
420
- }, In = { class: "filter-logic-divider" }, Ln = { class: "flex flex-col gap-2" }, Rn = {
413
+ }, Fn = { class: "filter-logic-divider" }, In = { class: "flex flex-col gap-2" }, Ln = {
421
414
  key: 0,
422
415
  class: "flex flex-col gap-2"
423
- }, zn = { class: "filter-logic-divider" }, Bn = { class: "flex flex-col gap-2" }, Vn = {
416
+ }, Rn = { class: "filter-logic-divider" }, zn = { class: "flex flex-col gap-2" }, Bn = {
424
417
  key: 0,
425
418
  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({
419
+ }, Vn = { class: "flex items-center gap-2 cursor-pointer text-sm" }, Hn = 288, Un = /*#__PURE__*/ R(/* @__PURE__ */ D({
427
420
  __name: "RecordingsFilterSidebar",
428
421
  props: {
429
422
  filters: {},
@@ -431,6 +424,8 @@ var Qt = l({
431
424
  isOpen: { type: Boolean },
432
425
  isOverlay: { type: Boolean },
433
426
  resultCount: {},
427
+ resultTotal: {},
428
+ resultCapped: { type: Boolean },
434
429
  semanticCount: {},
435
430
  semanticSearchAvailable: { type: Boolean },
436
431
  semanticSearchLoading: { type: Boolean },
@@ -445,25 +440,25 @@ var Qt = l({
445
440
  "close"
446
441
  ],
447
442
  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({
443
+ let l = /* @__PURE__ */ new Set(["motion", "audio"]), h = n, g = s, { t: S } = Le(), { topbarOffset: w, bottombarHeight: E } = be(), { icons: D, generic: j } = He(), ee = D, M = Xt, N = qt, P = x("sidebarRef"), F = O(h.filters.semanticQuery ?? ""), I = O(""), L = A({
449
444
  eventTypes: !0,
450
445
  attributes: !0,
451
446
  sensorEvents: !0
452
- }), B = m(() => h.isOpen ? Un : 0), ee = m(() => {
447
+ }), R = m(() => h.isOpen ? Hn : 0), z = m(() => {
453
448
  let e = [...new Set(h.cameras.map((e) => e.room).filter((e) => !!e))];
454
449
  return e.sort((e, t) => e.localeCompare(t)), e.map((e) => ({
455
450
  id: e,
456
451
  name: e === "Default" ? S("components.form.label.room_default") : e
457
452
  }));
458
- }), ne = m(() => {
453
+ }), te = m(() => {
459
454
  let e = h.filters.rooms;
460
455
  return (e.length > 0 ? h.cameras.filter((t) => e.includes(t.room ?? "")) : h.cameras).map((e) => ({
461
456
  id: e.id,
462
457
  name: e.name
463
458
  }));
464
- }), H = m(() => {
459
+ }), ne = m(() => {
465
460
  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(() => [
461
+ }), B = m(() => h.filters.contentKind === "episodes"), re = m(() => [
467
462
  {
468
463
  label: S("views.recordings.content_kind_all"),
469
464
  value: "all"
@@ -476,13 +471,13 @@ var Qt = l({
476
471
  label: S("views.recordings.content_kind_episodes"),
477
472
  value: "episodes"
478
473
  }
479
- ]), ie = m(() => [{
474
+ ]), H = m(() => [{
480
475
  label: S("views.recordings.filter_and"),
481
476
  value: "and"
482
477
  }, {
483
478
  label: S("views.recordings.filter_or"),
484
479
  value: "or"
485
- }]), ae = m(() => [
480
+ }]), ie = m(() => [
486
481
  {
487
482
  label: S("views.recordings.time_1h"),
488
483
  value: "1h"
@@ -499,26 +494,26 @@ var Qt = l({
499
494
  label: S("views.recordings.time_1m"),
500
495
  value: "1m"
501
496
  }
502
- ]), oe = m(() => Re.filter((e) => !l.has(e)).map((e) => ({
497
+ ]), ae = m(() => ze.filter((e) => !l.has(e)).map((e) => ({
503
498
  label: S(`views.recordings.type_${e}`),
504
499
  value: e,
505
- icon: j[e] ?? M
506
- }))), W = m(() => ({
500
+ icon: D[e] ?? j
501
+ }))), U = m(() => ({
507
502
  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)),
503
+ value: W,
504
+ icon: D.other ?? j
505
+ })), oe = m(() => ve.map((e) => ({
506
+ label: S($e(e)),
512
507
  value: e,
513
- icon: N[e] ?? M
514
- }))), ce = m(() => Le.map((e) => ({
515
- label: S(Y(e)),
508
+ icon: ee[e] ?? j
509
+ }))), se = m(() => Re.map((e) => ({
510
+ label: S(J(e)),
516
511
  value: e,
517
- icon: j[e] ?? M
518
- }))), le = m(() => ze.map((e) => ({
519
- label: S($e(e)),
512
+ icon: D[e] ?? j
513
+ }))), ce = m(() => Be.map((e) => ({
514
+ label: S(Y(e)),
520
515
  value: e,
521
- icon: j[e] ?? M
516
+ icon: D[e] ?? j
522
517
  })));
523
518
  function G(e, t) {
524
519
  g("update:filters", {
@@ -526,10 +521,10 @@ var Qt = l({
526
521
  [e]: t
527
522
  });
528
523
  }
529
- let ue = je((e) => {
524
+ let le = Me((e) => {
530
525
  G("search", e);
531
526
  }, 300);
532
- function fe(e) {
527
+ function ue(e) {
533
528
  let t = new Set(h.cameras.filter((t) => e.length === 0 || e.includes(t.room ?? "")).map((e) => e.id));
534
529
  g("update:filters", {
535
530
  ...h.filters,
@@ -537,55 +532,55 @@ var Qt = l({
537
532
  cameraIds: h.filters.cameraIds.filter((e) => t.has(e))
538
533
  });
539
534
  }
540
- function me() {
541
- let e = R.value.trim();
535
+ function de() {
536
+ let e = I.value.trim();
542
537
  e && !h.assistantSearchLoading && g("assistant-search", e);
543
538
  }
544
- function he() {
545
- let e = L.value.trim();
539
+ function pe() {
540
+ let e = F.value.trim();
546
541
  G("semanticQuery", e), g("semantic-search", e);
547
542
  }
548
- function ge(e) {
543
+ function he(e) {
549
544
  let t = [...h.filters.eventTypes], n = t.indexOf(e);
550
545
  n >= 0 ? t.splice(n, 1) : t.push(e), G("eventTypes", t);
551
546
  }
552
- function be(e) {
547
+ function ge(e) {
553
548
  let t = [...h.filters.audioLabels], n = t.indexOf(e);
554
549
  n >= 0 ? t.splice(n, 1) : t.push(e), G("audioLabels", t);
555
550
  }
556
- function xe(e) {
551
+ function _e(e) {
557
552
  let t = [...h.filters.sensorEvents], n = t.indexOf(e);
558
553
  n >= 0 ? t.splice(n, 1) : t.push(e), G("sensorEvents", t);
559
554
  }
560
- function Se(e) {
555
+ function ye(e) {
561
556
  let t = [...h.filters.hasAttributes], n = t.indexOf(e);
562
557
  n >= 0 ? t.splice(n, 1) : t.push(e), G("hasAttributes", t);
563
558
  }
564
- function we(e) {
565
- z[e] = !z[e];
559
+ function xe(e) {
560
+ L[e] = !L[e];
566
561
  }
567
- return _(L, (e) => {
562
+ return _(F, (e) => {
568
563
  !e?.trim() && h.filters.semanticQuery && G("semanticQuery", "");
569
- }), Fe(I, (e) => {
564
+ }), Ie(P, (e) => {
570
565
  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;
566
+ t.closest("#recordings-sidebar-toggle") || t.closest("[data-pc-section=\"overlay\"], [data-pc-section=\"panel\"], .p-connected-overlay") || h.isOpen && h.isOverlay && g("close");
567
+ }), o({ sidebarWidth: R }), (o, s) => {
568
+ let l = Se, m = Ge, h = V, g = Xe, _ = Ue, x = me, S = Ve, D = Ye, O = Ae, A = fe, j = K;
574
569
  return i(), v("nav", {
575
570
  ref_key: "sidebarRef",
576
- ref: I,
571
+ ref: P,
577
572
  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
573
  style: y({
579
- width: `${p(B)}px`,
574
+ width: `${p(R)}px`,
580
575
  borderRightWidth: n.isOpen ? "1px" : "0px",
581
- paddingBottom: `calc(var(--safe-area-inset-top) + var(--safe-area-inset-bottom) + ${p(D)}px + ${p(E)}px)`
576
+ paddingBottom: `calc(var(--safe-area-inset-top) + var(--safe-area-inset-bottom) + ${p(E)}px + ${p(w)}px)`
582
577
  })
583
578
  }, [C("div", {
584
579
  class: "flex flex-col gap-4 p-4",
585
- style: y({ width: `${Un}px` })
580
+ style: y({ width: `${Hn}px` })
586
581
  }, [
587
- C("div", $t, [
588
- C("label", en, a(o.$t("views.recordings.content_kind")), 1),
582
+ C("div", Zt, [
583
+ C("label", Qt, a(o.$t("views.recordings.content_kind")), 1),
589
584
  k(l, {
590
585
  "model-value": n.filters.contentKind,
591
586
  options: p(re),
@@ -595,26 +590,29 @@ var Qt = l({
595
590
  class: "content-kind-toggle",
596
591
  "onUpdate:modelValue": s[0] ||= (e) => G("contentKind", e)
597
592
  }, null, 8, ["model-value", "options"]),
598
- p(U) ? (i(), v("span", tn, a(o.$t("views.recordings.content_kind_episodes_hint")), 1)) : d("", !0)
593
+ p(B) ? (i(), v("span", $t, a(o.$t("views.recordings.content_kind_episodes_hint")), 1)) : d("", !0)
599
594
  ]),
600
595
  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, {
596
+ p(B) ? d("", !0) : (i(), v(b, { key: 0 }, [
597
+ C("div", en, [
598
+ C("label", tn, a(o.$t("views.recordings.search")), 1),
599
+ C("span", nn, [k(m, {
605
600
  "model-value": n.filters.search,
606
601
  placeholder: o.$t("views.recordings.search_placeholder"),
607
602
  class: "w-full text-sm",
608
- "onUpdate:modelValue": s[1] ||= (e) => p(ue)(e)
603
+ "onUpdate:modelValue": s[1] ||= (e) => p(le)(e)
609
604
  }, null, 8, ["model-value", "placeholder"])]),
610
- C("span", on, a(o.$t("views.recordings.result_count", { count: n.resultCount })), 1)
605
+ n.resultTotal === void 0 ? (i(), v("span", an, a(o.$t("views.recordings.result_count", { count: n.resultCount })), 1)) : (i(), v("span", rn, a(o.$t("views.recordings.result_count_of", {
606
+ count: n.resultCount,
607
+ total: n.resultCapped ? `${n.resultTotal}+` : n.resultTotal
608
+ })), 1))
611
609
  ]),
612
610
  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)]),
611
+ C("div", on, [
612
+ C("label", sn, [k(h, { class: "w-3.5 h-3.5" }), T(" " + a(o.$t("views.recordings.semantic_search")), 1)]),
615
613
  k(g, {
616
- modelValue: p(L),
617
- "onUpdate:modelValue": s[2] ||= (e) => f(L) ? L.value = e : null,
614
+ modelValue: p(F),
615
+ "onUpdate:modelValue": s[2] ||= (e) => f(F) ? F.value = e : null,
618
616
  placeholder: o.$t("views.recordings.semantic_search_placeholder"),
619
617
  class: "w-full text-sm semantic-textarea",
620
618
  rows: "3",
@@ -631,34 +629,34 @@ var Qt = l({
631
629
  size: "small",
632
630
  class: "w-full text-xs",
633
631
  loading: n.semanticSearchLoading,
634
- disabled: !n.semanticSearchAvailable || !p(L)?.trim(),
635
- onClick: he
632
+ disabled: !n.semanticSearchAvailable || !p(F)?.trim(),
633
+ onClick: pe
636
634
  }, null, 8, [
637
635
  "label",
638
636
  "loading",
639
637
  "disabled"
640
638
  ]),
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, {
639
+ 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)])),
640
+ 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
641
  "model-value": n.filters.minSemanticScore,
644
642
  min: 0,
645
643
  max: 1,
646
644
  step: .05,
647
645
  class: "flex-1",
648
646
  "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)
647
+ }, null, 8, ["model-value"]), C("span", fn, a(Math.round(n.filters.minSemanticScore * 100)) + "%", 1)])])) : d("", !0)
650
648
  ]),
651
649
  s[17] ||= C("div", { class: "sidebar-divider" }, null, -1)
652
650
  ], 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)]),
651
+ n.assistantSearchAvailable ? (i(), v(b, { key: 1 }, [C("div", pn, [
652
+ C("label", mn, [k(S, { class: "w-3.5 h-3.5" }), T(" " + a(o.$t("views.recordings.assistant_search")), 1)]),
655
653
  k(m, {
656
- modelValue: p(R),
657
- "onUpdate:modelValue": s[4] ||= (e) => f(R) ? R.value = e : null,
654
+ modelValue: p(I),
655
+ "onUpdate:modelValue": s[4] ||= (e) => f(I) ? I.value = e : null,
658
656
  placeholder: o.$t("views.recordings.assistant_search_placeholder"),
659
657
  class: "w-full text-sm",
660
658
  disabled: n.assistantSearchLoading,
661
- onKeydown: t(e(me, ["prevent"]), ["enter"])
659
+ onKeydown: t(e(de, ["prevent"]), ["enter"])
662
660
  }, null, 8, [
663
661
  "modelValue",
664
662
  "placeholder",
@@ -672,18 +670,18 @@ var Qt = l({
672
670
  size: "small",
673
671
  class: "w-full text-xs",
674
672
  loading: n.assistantSearchLoading,
675
- disabled: !p(R).trim(),
676
- onClick: me
673
+ disabled: !p(I).trim(),
674
+ onClick: de
677
675
  }, null, 8, [
678
676
  "label",
679
677
  "loading",
680
678
  "disabled"
681
679
  ]),
682
- n.assistantSearchNote ? (i(), v("span", gn, a(n.assistantSearchNote), 1)) : d("", !0)
680
+ n.assistantSearchNote ? (i(), v("span", hn, a(n.assistantSearchNote), 1)) : d("", !0)
683
681
  ]), 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, {
682
+ p(z).length > 1 ? (i(), v("div", gn, [C("label", _n, a(o.$t("views.recordings.rooms")), 1), k(D, {
685
683
  "model-value": n.filters.rooms,
686
- options: p(ee),
684
+ options: p(z),
687
685
  "option-label": "name",
688
686
  "option-value": "id",
689
687
  placeholder: o.$t("views.recordings.all_rooms"),
@@ -691,15 +689,15 @@ var Qt = l({
691
689
  "max-selected-labels": 2,
692
690
  "show-toggle-all": !1,
693
691
  pt: { overlay: { style: "position: fixed" } },
694
- "onUpdate:modelValue": s[5] ||= (e) => fe(e)
692
+ "onUpdate:modelValue": s[5] ||= (e) => ue(e)
695
693
  }, null, 8, [
696
694
  "model-value",
697
695
  "options",
698
696
  "placeholder"
699
697
  ])])) : d("", !0),
700
- C("div", yn, [C("label", bn, a(o.$t("views.recordings.cameras")), 1), k(w, {
698
+ C("div", vn, [C("label", yn, a(o.$t("views.recordings.cameras")), 1), k(D, {
701
699
  "model-value": n.filters.cameraIds,
702
- options: p(ne),
700
+ options: p(te),
703
701
  "option-label": "name",
704
702
  "option-value": "id",
705
703
  placeholder: o.$t("views.recordings.all_cameras"),
@@ -713,10 +711,10 @@ var Qt = l({
713
711
  "options",
714
712
  "placeholder"
715
713
  ])]),
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),
714
+ p(ne) && !p(B) ? (i(), v(b, { key: 3 }, [s[19] ||= C("div", { class: "sidebar-divider" }, null, -1), C("div", bn, [
715
+ C("label", xn, a(o.$t("views.recordings.grid_search")), 1),
716
+ C("div", Sn, [k(O, {
717
+ camera: p(ne),
720
718
  "object-fit": "cover"
721
719
  }, null, 8, ["camera"]), k(A, {
722
720
  "model-value": n.filters.gridRegions,
@@ -732,17 +730,17 @@ var Qt = l({
732
730
  onClick: s[8] ||= (e) => G("gridRegions", [])
733
731
  }, null, 8, ["label", "disabled"])
734
732
  ])], 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, {
733
+ p(B) ? d("", !0) : (i(), v("div", Cn)),
734
+ p(B) ? d("", !0) : (i(), v("div", wn, [C("label", Tn, a(o.$t("views.recordings.confidence")), 1), C("div", En, [k(x, {
737
735
  "model-value": n.filters.minConfidence,
738
736
  min: 0,
739
737
  max: 1,
740
738
  step: .05,
741
739
  class: "flex-1",
742
740
  "onUpdate:modelValue": s[9] ||= (e) => G("minConfidence", e)
743
- }, null, 8, ["model-value"]), C("span", On, a(Math.round(n.filters.minConfidence * 100)) + "%", 1)])])),
741
+ }, null, 8, ["model-value"]), C("span", Dn, a(Math.round(n.filters.minConfidence * 100)) + "%", 1)])])),
744
742
  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(_, {
743
+ C("div", On, [C("label", kn, a(o.$t("views.recordings.time_range")), 1), C("div", An, [(i(!0), v(b, null, r(p(ie), (e) => (i(), u(_, {
746
744
  key: e.value,
747
745
  label: e.label,
748
746
  severity: n.filters.timeRange === e.value ? void 0 : "secondary",
@@ -756,36 +754,36 @@ var Qt = l({
756
754
  "outlined",
757
755
  "onClick"
758
756
  ]))), 128))])]),
759
- p(U) ? d("", !0) : (i(), v(b, { key: 6 }, [
757
+ p(B) ? d("", !0) : (i(), v(b, { key: 6 }, [
760
758
  s[24] ||= C("div", { class: "sidebar-divider" }, null, -1),
761
- C("div", Mn, [C("button", {
759
+ C("div", jn, [C("button", {
762
760
  class: "sidebar-section-title flex items-center justify-between w-full cursor-pointer",
763
- 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, [
761
+ onClick: s[10] ||= (e) => xe("sensorEvents")
762
+ }, [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(oe), (e) => (i(), v(b, { key: e.value }, [C("label", Nn, [
765
763
  k(j, {
766
764
  "model-value": n.filters.sensorEvents.includes(e.value),
767
765
  binary: !0,
768
- "onUpdate:modelValue": (t) => xe(e.value)
766
+ "onUpdate:modelValue": (t) => _e(e.value)
769
767
  }, null, 8, ["model-value", "onUpdate:modelValue"]),
770
768
  (i(), u(c(e.icon), { class: "w-4 h-4 text-muted" })),
771
769
  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", {
770
+ ]), e.value === "audio" && n.filters.sensorEvents.includes("audio") ? (i(), v("div", Pn, [(i(!0), v(b, null, r(p(se), (e) => (i(), v("label", {
773
771
  key: e.value,
774
772
  class: "flex items-center gap-2 cursor-pointer text-sm"
775
773
  }, [
776
774
  k(j, {
777
775
  "model-value": n.filters.audioLabels.includes(e.value),
778
776
  binary: !0,
779
- "onUpdate:modelValue": (t) => be(e.value)
777
+ "onUpdate:modelValue": (t) => ge(e.value)
780
778
  }, null, 8, ["model-value", "onUpdate:modelValue"]),
781
779
  (i(), u(c(e.icon), { class: "w-4 h-4 text-muted" })),
782
780
  C("span", null, a(e.label), 1)
783
781
  ]))), 128))])) : d("", !0)], 64))), 128))])) : d("", !0)]),
784
- C("div", In, [
782
+ C("div", Fn, [
785
783
  s[20] ||= C("div", { class: "filter-logic-line" }, null, -1),
786
784
  k(l, {
787
785
  "model-value": n.filters.filterLogicTriggers,
788
- options: p(ie),
786
+ options: p(H),
789
787
  "option-label": "label",
790
788
  "option-value": "value",
791
789
  "allow-empty": !1,
@@ -794,26 +792,26 @@ var Qt = l({
794
792
  }, null, 8, ["model-value", "options"]),
795
793
  s[21] ||= C("div", { class: "filter-logic-line" }, null, -1)
796
794
  ]),
797
- C("div", Ln, [C("button", {
795
+ C("div", In, [C("button", {
798
796
  class: "sidebar-section-title flex items-center justify-between w-full cursor-pointer",
799
- 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", {
797
+ onClick: s[12] ||= (e) => xe("eventTypes")
798
+ }, [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(ae), (e) => (i(), v("label", {
801
799
  key: e.value,
802
800
  class: "flex items-center gap-2 cursor-pointer text-sm"
803
801
  }, [
804
802
  k(j, {
805
803
  "model-value": n.filters.eventTypes.includes(e.value),
806
804
  binary: !0,
807
- "onUpdate:modelValue": (t) => ge(e.value)
805
+ "onUpdate:modelValue": (t) => he(e.value)
808
806
  }, null, 8, ["model-value", "onUpdate:modelValue"]),
809
807
  (i(), u(c(e.icon), { class: "w-4 h-4 text-muted" })),
810
808
  C("span", null, a(e.label), 1)
811
809
  ]))), 128))])) : d("", !0)]),
812
- C("div", zn, [
810
+ C("div", Rn, [
813
811
  s[22] ||= C("div", { class: "filter-logic-line" }, null, -1),
814
812
  k(l, {
815
813
  "model-value": n.filters.filterLogicAttributes,
816
- options: p(ie),
814
+ options: p(H),
817
815
  "option-label": "label",
818
816
  "option-value": "value",
819
817
  "allow-empty": !1,
@@ -822,57 +820,57 @@ var Qt = l({
822
820
  }, null, 8, ["model-value", "options"]),
823
821
  s[23] ||= C("div", { class: "filter-logic-line" }, null, -1)
824
822
  ]),
825
- C("div", Bn, [C("button", {
823
+ C("div", zn, [C("button", {
826
824
  class: "sidebar-section-title flex items-center justify-between w-full cursor-pointer",
827
- 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", {
825
+ onClick: s[14] ||= (e) => xe("attributes")
826
+ }, [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(ce), (e) => (i(), v("label", {
829
827
  key: e.value,
830
828
  class: "flex items-center gap-2 cursor-pointer text-sm"
831
829
  }, [
832
830
  k(j, {
833
831
  "model-value": n.filters.hasAttributes.includes(e.value),
834
832
  binary: !0,
835
- "onUpdate:modelValue": (t) => Se(e.value)
833
+ "onUpdate:modelValue": (t) => ye(e.value)
836
834
  }, null, 8, ["model-value", "onUpdate:modelValue"]),
837
835
  (i(), u(c(e.icon), { class: "w-4 h-4 text-muted" })),
838
836
  C("span", null, a(e.label), 1)
839
- ]))), 128)), C("label", Hn, [
837
+ ]))), 128)), C("label", Vn, [
840
838
  k(j, {
841
- "model-value": n.filters.eventTypes.includes(p(W).value),
839
+ "model-value": n.filters.eventTypes.includes(p(U).value),
842
840
  binary: !0,
843
- "onUpdate:modelValue": s[15] ||= (e) => ge(p(W).value)
841
+ "onUpdate:modelValue": s[15] ||= (e) => he(p(U).value)
844
842
  }, 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)
843
+ (i(), u(c(p(U).icon), { class: "w-4 h-4 text-muted" })),
844
+ C("span", null, a(p(U).label), 1)
847
845
  ])])) : d("", !0)])
848
846
  ], 64))
849
847
  ], 4)], 4);
850
848
  };
851
849
  }
852
- }), [["__scopeId", "data-v-e863f967"]]), Gn = { class: "font-semibold text-xl truncate" }, Kn = { class: "w-full h-full relative" }, qn = {
850
+ }), [["__scopeId", "data-v-859e8134"]]), Wn = { class: "font-semibold text-xl truncate" }, Gn = { class: "w-full h-full relative" }, Kn = {
853
851
  key: 0,
854
852
  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 = {
853
+ }, qn = { class: "relative z-2 page-title !m-0" }, Jn = {
856
854
  key: 1,
857
855
  class: "fixed right-0 z-10 h-[calc(40px+1rem)] py-2 pr-2 flex items-center"
858
- }, Xn = {
856
+ }, Yn = {
859
857
  key: 2,
860
858
  class: "flex justify-center py-4"
861
- }, Zn = {
859
+ }, Xn = {
862
860
  key: 3,
863
861
  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({
862
+ }, Zn = { class: "text-muted text-sm" }, Qn = 288, $n = /* @__PURE__ */ D({
865
863
  __name: "Recordings",
866
864
  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();
865
+ let t = new Qe(), n = new ue(), r = new ke(), c = pe(), l = _e(), { bottombarHeight: f } = be(), { status: S, checking: T } = ne(), { openEventTrace: D } = we(), A = le("@camera.ui/camera-ui-nvr"), M = U(), { t: N, locale: R } = Le(), { smBreakpoint: W, xlBreakpoint: fe, mdBreakpoint: me } = P(), { registerScrollToTop: he } = G();
868
866
  if (typeof VideoDecoder < "u") {
869
- let e = ee({ cacheSize: 20 });
870
- o(ie, e), Me(() => e.dispose());
867
+ let e = ge({ cacheSize: 20 });
868
+ o(I, e), Ne(() => e.dispose());
871
869
  }
872
- let { results: Ce, isSearching: Oe, isAvailable: ke, hasSearched: je, search: Ne, clear: Fe } = Te(), { data: Le } = t.getAssistantStatusQuery(), { data: Re } = n.getCamerasQuery({
870
+ let { results: ve, isSearching: Se, isAvailable: Oe, hasSearched: Ae, search: Me, clear: Pe } = ae(), { data: Ie } = t.getAssistantStatusQuery(), { data: Re } = n.getCamerasQuery({
873
871
  page: 1,
874
872
  pageSize: -1
875
- }), { data: ze } = c.getUserQuery(m(() => f.user?.username ?? "")), Be = {
873
+ }), { data: ze } = r.getUserQuery(m(() => l.user?.username ?? "")), Be = Array.from({ length: 24 }, (e, t) => t), Ve = {
876
874
  contentKind: "all",
877
875
  favoritesOnly: !1,
878
876
  search: "",
@@ -891,210 +889,221 @@ var Qt = l({
891
889
  minConfidence: .5,
892
890
  minSemanticScore: .5,
893
891
  onlyWithRecordings: !0
894
- }, Ve = {
892
+ }, He = {
895
893
  "1h": 36e5,
896
894
  "1d": 864e5,
897
895
  "1w": 6048e5,
898
896
  "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({
897
+ }, We = x("gridRef"), Ge = x("viewMenuRef"), K = O("closed"), Ke = O(!1), q = O({ ...Ve }), Je = O(!1), Ye = O(""), Xe = E({
900
898
  hasDetections: !0,
901
899
  withRecordingInfo: !0,
902
900
  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) => ({
901
+ }), $e = JSON.stringify(Xe.value), J = O(), Y = O(!1), lt = E([]), ut = O(null), dt = x("reindexAnchorRef"), { left: ft } = Fe(dt), pt = !1, X = m(() => fe.value ? !0 : K.value === "opened"), ht = m(() => me.value), gt = xe(() => We.value?.scrollY ?? 0), _t = m(() => X.value && ht.value ? !0 : gt.value && !S.value?.running), vt = m(() => me.value ? "0px" : X.value ? `${Qn}px` : "0px"), Z = m(() => (Re.value?.result ?? []).map((e) => ({
904
902
  id: e._id,
905
903
  name: e.name,
906
904
  room: e.room
907
- }))), vt = m(() => {
905
+ }))), yt = m(() => {
908
906
  let e = /* @__PURE__ */ new Map();
909
907
  for (let t of Z.value) e.set(t.id, t.name);
910
908
  return e;
911
- }), yt = m(() => {
909
+ }), bt = m(() => {
912
910
  let e = /* @__PURE__ */ new Map();
913
911
  for (let t of Re.value?.result ?? []) e.set(t._id, t);
914
912
  return e;
915
- }), bt = m(() => {
916
- let e = J.value.rooms;
913
+ }), xt = m(() => {
914
+ let e = q.value.rooms;
917
915
  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,
916
+ }), St = m(() => q.value.cameraIds.filter((e) => xt.value.includes(e))), Ct = m(() => xt.value);
917
+ he(() => We.value?.scrollToTop());
918
+ let { events: wt, isLoading: Tt, hasMore: Et, stats: Dt, loadMore: Ot, loadThumbnails: kt, deleteEvents: At, reset: jt, loadFailed: Mt, pluginUnavailable: Nt } = ie({
919
+ availableCameraIds: Ct,
920
+ cameraIds: St,
923
921
  realtime: !0,
924
922
  pageSize: 40,
925
- filter: Ye,
926
- withEpisodes: !0
923
+ filter: Xe,
924
+ withEpisodes: !0,
925
+ withStats: !0
927
926
  }), Q = m(() => {
928
927
  let e = /* @__PURE__ */ new Map();
929
- for (let t of Ce.value ?? []) {
928
+ for (let t of ve.value ?? []) {
930
929
  let n = e.get(t.eventId);
931
930
  (!n || t.score > n) && e.set(t.eventId, t.score);
932
931
  }
933
932
  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);
933
+ }), Pt = m(() => Ae.value), Ft = m(() => Nt.value ? N("views.recordings.recordings_unavailable") : Mt.value ? N("views.recordings.load_failed") : N("views.recordings.no_recordings")), $ = m(() => {
934
+ let e = wt.value.filter((e) => e.state === "ended" || (e.segments?.length ?? 0) > 0), t = q.value;
935
+ if (J.value !== void 0) {
936
+ let t = J.value;
937
+ e = e.filter((e) => e.startTime >= t);
939
938
  }
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) => {
939
+ 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)), Pt.value && (e = e.filter((e) => {
941
940
  let n = Q.value.get(e.id);
942
941
  return n != null && n >= t.minSemanticScore;
943
942
  }), 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) {
943
+ }), It = m(() => q.value.contentKind === "episodes"), Lt = m(() => {
944
+ let e = q.value;
945
+ return e.search.trim() !== "" || e.eventTypes.length > 0 || e.audioLabels.length > 0 || e.hasAttributes.length > 0 || e.sensorEvents.length > 0 || e.minConfidence !== .5;
946
+ }), Rt = m(() => Ie.value?.state === "ready"), zt = m(() => {
947
+ if (q.value.contentKind === "events") return [];
948
+ A.storeVersion.value;
949
+ let e = q.value;
950
+ if (!It.value && (Y.value || Pt.value || e.gridRegions.length > 0 || Lt.value)) return [];
951
+ let t = St.value.length > 0 ? St.value : Ct.value, n = J.value ?? 0, r = Infinity;
952
+ if (e.timeRange === "custom" && e.customDateRange && (n = Math.max(n, e.customDateRange[0].getTime()), r = e.customDateRange[1].getTime()), Et.value && !It.value) {
951
953
  let e = Infinity;
952
- for (let t of Ct.value) e = Math.min(e, t.thumbnailAt ?? t.startTime);
954
+ for (let t of wt.value) e = Math.min(e, t.thumbnailAt ?? t.startTime);
953
955
  n = Math.max(n, e);
954
956
  }
955
957
  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({
958
+ 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
959
  event: void 0,
958
960
  key: `episode:${a.id}`,
959
961
  episode: a
960
962
  }));
961
963
  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;
964
+ }), Bt = m(() => {
965
+ if (It.value) return [...zt.value].sort((e, t) => tt(t) - tt(e));
966
+ if (Y.value && lt.value.length) return lt.value;
965
967
  let e = $.value.map((e) => ({
966
968
  event: e,
967
969
  key: e.id
968
970
  }));
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({
971
+ return zt.value.length && (e.push(...zt.value), e.sort((e, t) => tt(t) - tt(e))), e;
972
+ }), Vt = m(() => {
973
+ let e = Dt.value, t = q.value;
974
+ if (!e || !Et.value || Pt.value || t.gridRegions.length > 0 || t.timeRange && J.value === void 0) return;
975
+ if (It.value) return e.episodes;
976
+ if (Y.value) return e.segments;
977
+ let n = t.contentKind !== "events" && !Lt.value;
978
+ return e.total + (n ? e.episodes : 0);
979
+ }), Ht = m(() => ye(void 0, "admin")), Ut = m(() => $.value.filter((e) => e.state === "ended")), { selectionMode: Gt, selectedIds: Kt, allSelected: qt, bulkBusy: Jt, enterSelectionMode: Yt, exitSelectionMode: Xt, toggleSelectAll: Zt, toggleSelection: Qt } = je(Ut, (e) => e.id);
980
+ function $t() {
981
+ let e = [...Kt.value];
982
+ e.length && !Jt.value && c.openTextDialog({
974
983
  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"),
984
+ title: N("components.dialog.title.confirm"),
985
+ contentText: N("views.recordings.delete_selected_confirm", { count: e.length }),
986
+ confirmText: N("components.form.button.remove"),
978
987
  confirmButtonProps: { severity: "danger" }
979
988
  },
980
989
  onConfirm: async () => {
981
- Ut.value = !0;
990
+ Jt.value = !0;
982
991
  try {
983
- await Ot(e), Gt(), P.add({
992
+ await At(e), Xt(), M.add({
984
993
  severity: "success",
985
- detail: H("views.recordings.delete_selected_done", { count: e.length }),
994
+ detail: N("views.recordings.delete_selected_done", { count: e.length }),
986
995
  life: 5e3
987
996
  });
988
997
  } catch (e) {
989
- P.add({
998
+ M.add({
990
999
  severity: "error",
991
1000
  detail: e?.message ?? String(e),
992
1001
  life: 5e3
993
1002
  });
994
1003
  } finally {
995
- Ut.value = !1;
1004
+ Jt.value = !1;
996
1005
  }
997
1006
  }
998
1007
  });
999
1008
  }
1000
- let Xt = m(() => [
1009
+ let en = m(() => [
1001
1010
  {
1002
1011
  key: "ungroup",
1003
- label: H("views.recordings.ungroup"),
1004
- description: H("views.recordings.ungroup_hint"),
1012
+ label: N("views.recordings.ungroup"),
1013
+ description: N("views.recordings.ungroup_hint"),
1005
1014
  toggle: !0,
1006
1015
  toggleState: Y.value,
1007
1016
  onClick: () => {
1008
- ft = !0, Y.value = !Y.value, f.updateUser({ preferences: { recordings: { ungrouped: Y.value } } });
1017
+ pt = !0, Y.value = !Y.value, l.updateUser({ preferences: { recordings: { ungrouped: Y.value } } });
1009
1018
  }
1010
1019
  },
1011
1020
  {
1012
1021
  key: "onlyWithRecordings",
1013
- label: H("views.recordings.only_with_recordings"),
1014
- description: H("views.recordings.only_with_recordings_hint"),
1022
+ label: N("views.recordings.only_with_recordings"),
1023
+ description: N("views.recordings.only_with_recordings_hint"),
1015
1024
  toggle: !0,
1016
- toggleState: J.value.onlyWithRecordings,
1025
+ toggleState: q.value.onlyWithRecordings,
1017
1026
  onClick: () => {
1018
- J.value = {
1019
- ...J.value,
1020
- onlyWithRecordings: !J.value.onlyWithRecordings
1027
+ q.value = {
1028
+ ...q.value,
1029
+ onlyWithRecordings: !q.value.onlyWithRecordings
1021
1030
  };
1022
1031
  }
1023
1032
  },
1024
- ...Rt.value ? [{
1033
+ ...Ht.value ? [{
1025
1034
  key: "favoritesOnly",
1026
- label: H("views.recordings.favorites_only"),
1027
- description: H("views.recordings.favorites_hint"),
1035
+ label: N("views.recordings.favorites_only"),
1036
+ description: N("views.recordings.favorites_hint"),
1028
1037
  toggle: !0,
1029
- toggleState: J.value.favoritesOnly,
1038
+ toggleState: q.value.favoritesOnly,
1030
1039
  onClick: () => {
1031
- J.value = {
1032
- ...J.value,
1033
- favoritesOnly: !J.value.favoritesOnly
1040
+ q.value = {
1041
+ ...q.value,
1042
+ favoritesOnly: !q.value.favoritesOnly
1034
1043
  };
1035
1044
  }
1036
1045
  }] : []
1037
1046
  ]);
1038
- function Zt() {
1039
- l.openComponentDialog(ht, { data: {
1040
- title: H("views.recordings.reindex.title"),
1047
+ function tn() {
1048
+ c.openComponentDialog(mt, { data: {
1049
+ title: N("views.recordings.reindex.title"),
1041
1050
  contentProps: {},
1042
- confirmText: H("views.recordings.reindex.start")
1051
+ confirmText: N("views.recordings.reindex.start")
1043
1052
  } });
1044
1053
  }
1045
- function Qt() {
1046
- l.openComponentDialog(Kt, { data: {
1047
- title: H("views.recordings.export.title"),
1054
+ function nn() {
1055
+ c.openComponentDialog(Wt, { data: {
1056
+ title: N("views.recordings.export.title"),
1048
1057
  contentProps: {
1049
1058
  cameras: Z.value,
1050
- preselect: J.value.cameraIds?.length ? J.value.cameraIds : []
1059
+ preselect: q.value.cameraIds?.length ? q.value.cameraIds : []
1051
1060
  },
1052
- confirmText: H("views.recordings.export.confirm")
1061
+ confirmText: N("views.recordings.export.confirm")
1053
1062
  } });
1054
1063
  }
1055
- function $t() {
1056
- let e = q.value;
1057
- q.value = e === "opened" ? "closed" : "opened";
1064
+ function rn() {
1065
+ let e = K.value;
1066
+ K.value = e === "opened" ? "closed" : "opened";
1058
1067
  }
1059
- function en() {
1060
- q.value = "closed";
1068
+ function an() {
1069
+ K.value = "closed";
1061
1070
  }
1062
- function tn(e) {
1063
- !e.semanticQuery?.trim() && J.value.semanticQuery?.trim() && Fe(), J.value = e;
1071
+ function on(e) {
1072
+ !e.semanticQuery?.trim() && q.value.semanticQuery?.trim() && Pe(), q.value = e;
1064
1073
  }
1065
- async function nn(e) {
1066
- qe.value = !0, Je.value = "";
1074
+ async function sn(e) {
1075
+ Je.value = !0, Ye.value = "";
1067
1076
  try {
1068
- let t = await Xe(e, de.value, Intl.DateTimeFormat().resolvedOptions().timeZone);
1069
- tn({
1070
- ...Be,
1077
+ let t = await Ze(e, R.value, Intl.DateTimeFormat().resolvedOptions().timeZone);
1078
+ on({
1079
+ ...Ve,
1071
1080
  ...t.filters,
1072
- favoritesOnly: Rt.value && t.filters.favoritesOnly
1073
- }), rn(t.filters.semanticQuery), Je.value = t.note;
1081
+ favoritesOnly: Ht.value && t.filters.favoritesOnly
1082
+ }), cn(t.filters.semanticQuery), Ye.value = t.note;
1074
1083
  } catch (e) {
1075
- P.add({
1084
+ M.add({
1076
1085
  severity: "error",
1077
- detail: e?.response?.data?.message ?? H("views.recordings.assistant_search_failed"),
1086
+ detail: e?.response?.data?.message ?? N("views.recordings.assistant_search_failed"),
1078
1087
  life: 5e3
1079
1088
  });
1080
1089
  } finally {
1081
- qe.value = !1;
1090
+ Je.value = !1;
1082
1091
  }
1083
1092
  }
1084
- function rn(e) {
1093
+ function cn(e) {
1085
1094
  if (!e.trim()) {
1086
- Fe();
1095
+ Pe();
1087
1096
  return;
1088
1097
  }
1089
- Ne(e);
1098
+ Me(e);
1090
1099
  }
1091
- function an(e, t) {
1092
- let n = yt.value.get(e.cameraId);
1093
- n && A(e, n, t);
1100
+ function ln(e, t) {
1101
+ let n = bt.value.get(e.cameraId);
1102
+ n && D(e, n, t);
1094
1103
  }
1095
- function on(e, t) {
1096
- let n = yt.value.get(e.cameraId);
1097
- n && l.openComponentDialog(xe, {
1104
+ function un(e, t) {
1105
+ let n = bt.value.get(e.cameraId);
1106
+ n && c.openComponentDialog(Ce, {
1098
1107
  data: {
1099
1108
  title: n.name,
1100
1109
  dedupeKey: `camera-event:${n._id}:${t}`,
@@ -1106,7 +1115,7 @@ var Qt = l({
1106
1115
  eventTimestamp: t
1107
1116
  },
1108
1117
  headerActions: e.segments?.some((e) => e?.description) ? [{
1109
- icon: te,
1118
+ icon: V,
1110
1119
  toggle: !0,
1111
1120
  onClick: () => {}
1112
1121
  }] : void 0,
@@ -1124,9 +1133,11 @@ var Qt = l({
1124
1133
  } }
1125
1134
  });
1126
1135
  }
1127
- return _(pe, (e) => {
1128
- e && (q.value = "closed");
1129
- }), _(J, (e) => {
1136
+ return _(fe, (e) => {
1137
+ e && (K.value = "closed");
1138
+ }), _(() => q.value.timeRange, (e) => {
1139
+ J.value = e && He[e] ? Date.now() - He[e] : void 0;
1140
+ }, { immediate: !0 }), _(q, (e) => {
1130
1141
  let t = e.eventTypes.length > 0 || e.sensorEvents.length > 0 || e.audioLabels.length > 0 || e.hasAttributes.length > 0, n = {
1131
1142
  types: e.eventTypes.length > 0 ? e.eventTypes : void 0,
1132
1143
  triggers: e.sensorEvents.length > 0 ? e.sensorEvents : void 0,
@@ -1139,48 +1150,49 @@ var Qt = l({
1139
1150
  hasDetections: !t,
1140
1151
  withRecordingInfo: !0,
1141
1152
  hasRecording: e.onlyWithRecordings || void 0,
1142
- favoritesOnly: e.favoritesOnly || void 0
1153
+ favoritesOnly: e.favoritesOnly || void 0,
1154
+ startedSinceMs: J.value
1143
1155
  }, r = JSON.stringify(n);
1144
- r !== Qe && (Qe = r, Ye.value = n);
1156
+ r !== $e && ($e = r, Xe.value = n);
1145
1157
  }, {
1146
1158
  deep: !0,
1147
1159
  immediate: !0
1148
1160
  }), _(ze, (e) => {
1149
- if (!e || ft) return;
1161
+ if (!e || pt) return;
1150
1162
  let t = e.preferences?.recordings?.ungrouped;
1151
1163
  t !== void 0 && (Y.value = t);
1152
1164
  }, { 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,
1165
+ lt.value = e ? rt(t) : [];
1166
+ }), _(() => q.value.cameraIds, (e) => {
1167
+ e.length !== 1 && q.value.gridRegions.length > 0 && (q.value = {
1168
+ ...q.value,
1157
1169
  gridRegions: []
1158
1170
  });
1159
1171
  }), j(() => {
1160
1172
  requestAnimationFrame(() => {
1161
- Ge.value = !0;
1173
+ Ke.value = !0;
1162
1174
  });
1163
1175
  }), (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;
1176
+ let n = te, r = oe, o = z, c = Ue, l = at, m = ct, _ = st, x = de, E = et, D = nt, O = Ee, A = Te, j = B, M = L, N = H, P = ee;
1165
1177
  return i(), v("div", null, [
1166
1178
  k(n, { position: "center" }, {
1167
- default: h(() => [C("span", Gn, a(e.$t("views.recordings.title")), 1)]),
1179
+ default: h(() => [C("span", Wn, a(e.$t("views.recordings.title")), 1)]),
1168
1180
  _: 1
1169
1181
  }),
1170
1182
  k(n, { position: "left" }, {
1171
- default: h(() => [k(l, {
1183
+ default: h(() => [k(c, {
1172
1184
  id: "recordings-sidebar-toggle",
1173
1185
  severity: "secondary",
1174
1186
  class: "cui-button p-2 text-color",
1175
1187
  text: "",
1176
1188
  rounded: "",
1177
- onClick: $t
1189
+ onClick: rn
1178
1190
  }, {
1179
- icon: h(() => [p(q) === "closed" ? (i(), u(o, {
1191
+ icon: h(() => [p(K) === "closed" ? (i(), u(r, {
1180
1192
  key: 0,
1181
1193
  width: "100%",
1182
1194
  height: "100%"
1183
- })) : (i(), u(c, {
1195
+ })) : (i(), u(o, {
1184
1196
  key: 1,
1185
1197
  width: "100%",
1186
1198
  height: "100%"
@@ -1190,14 +1202,14 @@ var Qt = l({
1190
1202
  _: 1
1191
1203
  }),
1192
1204
  k(n, { position: "right" }, {
1193
- default: h(() => [k(l, {
1205
+ default: h(() => [k(c, {
1194
1206
  severity: "secondary",
1195
1207
  class: "cui-button p-2 text-color",
1196
1208
  text: "",
1197
1209
  rounded: "",
1198
- onClick: t[0] ||= (e) => p(We)?.toggleMenu(e)
1210
+ onClick: t[0] ||= (e) => p(Ge)?.toggleMenu(e)
1199
1211
  }, {
1200
- icon: h(() => [k(f, {
1212
+ icon: h(() => [k(l, {
1201
1213
  width: "100%",
1202
1214
  height: "100%"
1203
1215
  })]),
@@ -1205,28 +1217,32 @@ var Qt = l({
1205
1217
  })]),
1206
1218
  _: 1
1207
1219
  }),
1208
- k(Wn, {
1209
- filters: p(J),
1220
+ k(Un, {
1221
+ filters: p(q),
1210
1222
  cameras: p(Z),
1211
1223
  "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
1224
+ "is-overlay": p(ht),
1225
+ "result-count": p(Bt).length,
1226
+ "result-total": p(Vt),
1227
+ "result-capped": p(Dt)?.capped,
1228
+ "semantic-count": p(Pt) ? p(Q).size : void 0,
1229
+ "semantic-search-available": p(Oe),
1230
+ "semantic-search-loading": p(Se),
1231
+ "assistant-search-available": p(Rt),
1232
+ "assistant-search-loading": p(Je),
1233
+ "assistant-search-note": p(Ye),
1234
+ "onUpdate:filters": on,
1235
+ onSemanticSearch: cn,
1236
+ onAssistantSearch: sn,
1237
+ onClose: an
1224
1238
  }, null, 8, [
1225
1239
  "filters",
1226
1240
  "cameras",
1227
1241
  "is-open",
1228
1242
  "is-overlay",
1229
1243
  "result-count",
1244
+ "result-total",
1245
+ "result-capped",
1230
1246
  "semantic-count",
1231
1247
  "semantic-search-available",
1232
1248
  "semantic-search-loading",
@@ -1237,30 +1253,30 @@ var Qt = l({
1237
1253
  (i(), u(g, {
1238
1254
  to: "#container",
1239
1255
  defer: ""
1240
- }, [p(X) && p(pt) ? (i(), v("div", {
1256
+ }, [p(X) && p(ht) ? (i(), v("div", {
1241
1257
  key: 0,
1242
1258
  class: "fixed top-0 left-0 right-0 bottom-0 w-full h-full bg-black/50 z-1",
1243
- onClick: en
1259
+ onClick: an
1244
1260
  })) : d("", !0)])),
1245
1261
  C("main", {
1246
1262
  ref_key: "reindexAnchorRef",
1247
- ref: lt,
1263
+ ref: dt,
1248
1264
  class: "relative w-full h-full",
1249
1265
  style: y({
1250
- paddingLeft: p(_t),
1251
- transition: p(Ge) ? "padding-left 200ms" : void 0
1266
+ paddingLeft: p(vt),
1267
+ transition: p(Ke) ? "padding-left 200ms" : void 0
1252
1268
  })
1253
- }, [C("div", Kn, [
1254
- p(K) ? d("", !0) : (i(), v("div", qn, [
1269
+ }, [C("div", Gn, [
1270
+ p(W) ? d("", !0) : (i(), v("div", Kn, [
1255
1271
  t[3] ||= C("div", { class: "ml-2" }, null, -1),
1256
- p(pe) ? d("", !0) : (i(), u(l, {
1272
+ p(fe) ? d("", !0) : (i(), u(c, {
1257
1273
  key: 0,
1258
1274
  id: "recordings-sidebar-toggle",
1259
1275
  severity: "secondary",
1260
1276
  class: "mr-2 cui-icon-lg relative z-2",
1261
1277
  text: "",
1262
1278
  rounded: "",
1263
- onClick: $t
1279
+ onClick: rn
1264
1280
  }, {
1265
1281
  icon: h(() => [p(X) ? (i(), u(m, {
1266
1282
  key: 0,
@@ -1273,7 +1289,7 @@ var Qt = l({
1273
1289
  }))]),
1274
1290
  _: 1
1275
1291
  })),
1276
- C("h1", Jn, a(e.$t("views.recordings.title")), 1),
1292
+ C("h1", qn, a(e.$t("views.recordings.title")), 1),
1277
1293
  t[4] ||= C("div", { class: "gradient-blur rotate-180 !h-[70px]" }, [
1278
1294
  C("div"),
1279
1295
  C("div"),
@@ -1283,46 +1299,46 @@ var Qt = l({
1283
1299
  C("div")
1284
1300
  ], -1)
1285
1301
  ])),
1286
- p(K) ? d("", !0) : (i(), v("div", Yn, [w((i(), u(l, {
1302
+ p(W) ? d("", !0) : (i(), v("div", Jn, [w((i(), u(c, {
1287
1303
  severity: "secondary",
1288
1304
  text: "",
1289
1305
  rounded: "",
1290
1306
  class: "cui-icon-lg relative z-2",
1291
- onClick: t[1] ||= (e) => p(We)?.toggleMenu(e)
1307
+ onClick: t[1] ||= (e) => p(Ge)?.toggleMenu(e)
1292
1308
  }, {
1293
- icon: h(() => [k(f, {
1309
+ icon: h(() => [k(l, {
1294
1310
  width: "100%",
1295
1311
  height: "100%"
1296
1312
  })]),
1297
1313
  _: 1
1298
1314
  })), [[
1299
- z,
1315
+ P,
1300
1316
  { value: e.$t("views.recordings.view_options") },
1301
1317
  void 0,
1302
1318
  { bottom: !0 }
1303
1319
  ]])])),
1304
1320
  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)
1321
+ "pt-4": p(W),
1322
+ "pt-[calc(40px+2rem)]": !p(W)
1307
1323
  }]) }, [
1308
- p(Lt).length ? (i(), u(O, {
1324
+ p(Bt).length ? (i(), u(D, {
1309
1325
  key: 0,
1310
1326
  ref_key: "gridRef",
1311
- ref: Ue,
1312
- items: p(Lt),
1313
- "min-item-width": p(K) ? 160 : 180,
1327
+ ref: We,
1328
+ items: p(Bt),
1329
+ "min-item-width": p(W) ? 160 : 180,
1314
1330
  gap: 8,
1315
- "has-more": p(Tt),
1316
- "load-more": p(Et),
1331
+ "has-more": p(Et),
1332
+ "load-more": p(Ot),
1317
1333
  "item-key": (e) => e.key,
1318
1334
  class: "flex-1 min-h-0"
1319
1335
  }, {
1320
1336
  item: h(({ item: e }) => [e.episode ? (i(), u(x, {
1321
1337
  key: 0,
1322
1338
  episode: e.episode,
1323
- "camera-by-id": p(yt),
1339
+ "camera-by-id": p(bt),
1324
1340
  fluid: "",
1325
- "click-disabled": p(Bt)
1341
+ "click-disabled": p(Gt)
1326
1342
  }, null, 8, [
1327
1343
  "episode",
1328
1344
  "camera-by-id",
@@ -1330,19 +1346,19 @@ var Qt = l({
1330
1346
  ])) : (i(), u(E, {
1331
1347
  key: 1,
1332
1348
  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),
1349
+ "camera-name": p(yt).get(e.event.cameraId),
1350
+ camera: p(bt).get(e.event.cameraId),
1351
+ "load-thumbnails": p(kt),
1336
1352
  "semantic-score": p(Q).get(e.event.id),
1337
1353
  "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
1354
+ "selection-mode": p(Gt) && e.event.state === "ended",
1355
+ selected: p(Kt).has(e.event.id),
1356
+ "sibling-active": e.segIndex !== void 0 && p(ut) === e.event.id,
1357
+ onSelect: (t) => p(Qt)(e.event.id),
1358
+ onScrollToEvent: (t) => un(e.event, t),
1359
+ onOpenTrace: (t) => ln(e.event, t),
1360
+ onMouseenter: (t) => ut.value = e.segIndex === void 0 ? null : e.event.id,
1361
+ onMouseleave: t[2] ||= (e) => ut.value = null
1346
1362
  }, null, 8, [
1347
1363
  "event",
1348
1364
  "camera-name",
@@ -1365,112 +1381,121 @@ var Qt = l({
1365
1381
  "has-more",
1366
1382
  "load-more",
1367
1383
  "item-key"
1368
- ])) : p(wt) ? (i(), v("div", {
1384
+ ])) : p(Tt) ? (i(), u(D, {
1369
1385
  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, {
1386
+ items: p(Be),
1387
+ "min-item-width": p(W) ? 160 : 180,
1388
+ gap: 8,
1389
+ "item-key": (e) => e,
1390
+ class: "flex-1 min-h-0 pointer-events-none"
1391
+ }, {
1392
+ item: h(() => [k(O, {
1393
+ width: "100%",
1394
+ height: "100%",
1395
+ class: "rounded-xl"
1396
+ })]),
1397
+ _: 1
1398
+ }, 8, [
1399
+ "items",
1400
+ "min-item-width",
1401
+ "item-key"
1402
+ ])) : d("", !0),
1403
+ p(Tt) && p(Bt).length || p(Se) ? (i(), v("div", Yn, [k(A, {
1379
1404
  width: "24px",
1380
1405
  height: "24px",
1381
1406
  class: "text-muted"
1382
1407
  })])) : 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, {
1408
+ !p($).length && !p(Tt) && !p(Se) ? (i(), v("div", Xn, [
1409
+ k(j, { class: "w-12 h-12 text-muted" }),
1410
+ C("span", Zn, a(p(Ft)), 1),
1411
+ p(Mt) && !p(Nt) ? (i(), u(c, {
1387
1412
  key: 0,
1388
1413
  severity: "secondary",
1389
1414
  class: "cui-button-small",
1390
1415
  label: e.$t("views.recordings.load_failed_retry"),
1391
- onClick: p(kt)
1416
+ onClick: p(jt)
1392
1417
  }, null, 8, ["label", "onClick"])) : d("", !0)
1393
1418
  ])) : d("", !0)
1394
1419
  ], 2)
1395
1420
  ])], 4),
1396
- p(Rt) && p(Z).length ? (i(), v("div", {
1421
+ p(Ht) && p(Z).length ? (i(), v("div", {
1397
1422
  key: 0,
1398
- class: s(["fixed z-10", p(gt) ? "scale-0 opacity-0" : "scale-100 opacity-100"]),
1423
+ class: s(["fixed z-10", p(_t) ? "scale-0 opacity-0" : "scale-100 opacity-100"]),
1399
1424
  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
1425
+ left: `calc(${p(ft)}px + ${p(vt)} + 0.75rem + var(--safe-area-inset-left))`,
1426
+ bottom: `calc(${p(f)}px + 1.25rem + var(--safe-area-inset-bottom))`,
1427
+ transition: p(Ke) ? "left 200ms, transform 200ms ease-in-out, opacity 200ms ease-in-out" : void 0
1403
1428
  })
1404
- }, [k(l, {
1429
+ }, [k(c, {
1405
1430
  severity: "secondary",
1406
1431
  rounded: "",
1407
1432
  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
1433
+ disabled: p(S)?.running,
1434
+ label: p(T) ? e.$t("views.recordings.reindex.checking") : p(S)?.running ? e.$t("views.recordings.reindex.progress", {
1435
+ done: p(S).done,
1436
+ total: p(S).total
1412
1437
  }) : e.$t("views.recordings.reindex.button"),
1413
- onClick: Zt
1438
+ onClick: tn
1414
1439
  }, {
1415
- icon: h(() => [p(T)?.running ? (i(), u(p(Ee), { key: 0 })) : (i(), u(p(ut), { key: 1 }))]),
1440
+ icon: h(() => [p(S)?.running ? (i(), u(p(Te), { key: 0 })) : (i(), u(p(ot), { key: 1 }))]),
1416
1441
  _: 1
1417
1442
  }, 8, ["disabled", "label"])], 6)) : d("", !0),
1418
- p(Z).length ? (i(), u(I, {
1443
+ p(Z).length ? (i(), u(N, {
1419
1444
  key: 1,
1420
- "force-visible": p(Bt),
1421
- "scroll-y": p(Ue)?.scrollY ?? 0
1445
+ "force-visible": p(Gt),
1446
+ "scroll-y": p(We)?.scrollY ?? 0
1422
1447
  }, {
1423
- default: h(() => [p(Bt) ? (i(), v(b, { key: 1 }, [
1424
- k(P, {
1448
+ default: h(() => [p(Gt) ? (i(), v(b, { key: 1 }, [
1449
+ k(M, {
1425
1450
  grouped: "",
1426
1451
  "tooltip-props": { value: e.$t("components.form.tooltip.cancel_selection") },
1427
1452
  "button-props": { severity: "secondary" },
1428
- icon: p(Ke),
1453
+ icon: p(qe),
1429
1454
  "icon-props": {
1430
1455
  width: "100%",
1431
1456
  height: "100%"
1432
1457
  },
1433
- onClick: p(Gt)
1458
+ onClick: p(Xt)
1434
1459
  }, null, 8, [
1435
1460
  "tooltip-props",
1436
1461
  "icon",
1437
1462
  "onClick"
1438
1463
  ]),
1439
- k(P, {
1464
+ k(M, {
1440
1465
  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),
1466
+ "tooltip-props": { value: p(qt) ? e.$t("components.form.tooltip.deselect_all") : e.$t("components.form.tooltip.select_all") },
1467
+ "button-props": { severity: p(qt) ? "primary" : "secondary" },
1468
+ icon: p(ce),
1444
1469
  "icon-props": {
1445
1470
  width: "100%",
1446
1471
  height: "100%"
1447
1472
  },
1448
- onClick: p(qt)
1473
+ onClick: p(Zt)
1449
1474
  }, null, 8, [
1450
1475
  "tooltip-props",
1451
1476
  "button-props",
1452
1477
  "icon",
1453
1478
  "onClick"
1454
1479
  ]),
1455
- k(P, {
1480
+ k(M, {
1456
1481
  grouped: "",
1457
1482
  "tooltip-props": { value: e.$t("components.form.tooltip.delete_selected") },
1458
1483
  "button-props": {
1459
1484
  severity: "danger",
1460
- disabled: !p(Vt).size || p(Ut)
1485
+ disabled: !p(Kt).size || p(Jt)
1461
1486
  },
1462
- icon: p(ae),
1487
+ icon: p(se),
1463
1488
  "icon-props": {
1464
1489
  width: "100%",
1465
1490
  height: "100%"
1466
1491
  },
1467
- onClick: Yt
1492
+ onClick: $t
1468
1493
  }, null, 8, [
1469
1494
  "tooltip-props",
1470
1495
  "button-props",
1471
1496
  "icon"
1472
1497
  ])
1473
- ], 64)) : (i(), v(b, { key: 0 }, [p(Rt) && p($).length ? (i(), u(P, {
1498
+ ], 64)) : (i(), v(b, { key: 0 }, [p(Ht) && p($).length ? (i(), u(M, {
1474
1499
  key: 0,
1475
1500
  grouped: "",
1476
1501
  "tooltip-props": { value: e.$t("views.recordings.select") },
@@ -1480,12 +1505,12 @@ var Qt = l({
1480
1505
  width: "100%",
1481
1506
  height: "100%"
1482
1507
  },
1483
- onClick: p(Wt)
1508
+ onClick: p(Yt)
1484
1509
  }, null, 8, [
1485
1510
  "tooltip-props",
1486
1511
  "icon",
1487
1512
  "onClick"
1488
- ])) : d("", !0), k(P, {
1513
+ ])) : d("", !0), k(M, {
1489
1514
  grouped: "",
1490
1515
  "tooltip-props": { value: e.$t("views.recordings.export.title") },
1491
1516
  "button-props": { class: "text-white" },
@@ -1494,14 +1519,14 @@ var Qt = l({
1494
1519
  width: "26px",
1495
1520
  height: "26px"
1496
1521
  },
1497
- onClick: Qt
1522
+ onClick: nn
1498
1523
  }, null, 8, ["tooltip-props", "icon"])], 64))]),
1499
1524
  _: 1
1500
1525
  }, 8, ["force-visible", "scroll-y"])) : d("", !0),
1501
- k(ne, {
1526
+ k(re, {
1502
1527
  ref_key: "viewMenuRef",
1503
- ref: We,
1504
- items: p(Xt),
1528
+ ref: Ge,
1529
+ items: p(en),
1505
1530
  "auto-hide": !1,
1506
1531
  popover: { pt: {
1507
1532
  root: { class: "w-[22rem]" },
@@ -1513,4 +1538,4 @@ var Qt = l({
1513
1538
  }
1514
1539
  });
1515
1540
  //#endregion
1516
- export { er as default };
1541
+ export { $n as default };