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

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 (420) hide show
  1. package/dist/interface/assets/{404-BDvtK1qR.js → 404-YZOLos9r.js} +1 -1
  2. package/dist/interface/assets/{About-B4A35rRx.js → About-HtxMc8JZ.js} +1 -1
  3. package/dist/interface/assets/Assistant-bB8RBo-m.js +1 -0
  4. package/dist/interface/assets/Automation-D3DcUyui.js +3 -0
  5. package/dist/interface/assets/{AutomationImport-CEJdhE_d.js → AutomationImport-Dp_hT6hQ.js} +2 -2
  6. package/dist/interface/assets/AutomationStore-BKR7GXMk.js +2 -0
  7. package/dist/interface/assets/{AutomationStoreDetail-BenRMMtV.js → AutomationStoreDetail-B9yh51WQ.js} +2 -2
  8. package/dist/interface/assets/Automations-BdZZW2eN.js +2 -0
  9. package/dist/interface/assets/Camera-Ct7ndOxr.js +2 -0
  10. package/dist/interface/assets/{CameraConsole-D24yXOQn.js → CameraConsole-BI93OaRt.js} +2 -2
  11. package/dist/interface/assets/Cameras-Ctub8sVt.js +651 -0
  12. package/dist/interface/assets/Camview-BjQdTHNh.js +1 -0
  13. package/dist/interface/assets/{CertificateUpload-26LAL4MY.js → CertificateUpload-xW55NA1Q.js} +1 -1
  14. package/dist/interface/assets/Config-CBTbYd5v.js +2 -0
  15. package/dist/interface/assets/{ConfigActionAssistant-Cl_kr3hp.js → ConfigActionAssistant-B488rOp5.js} +1 -1
  16. package/dist/interface/assets/{ConfigActionCameraControl-CL4vXcNe.js → ConfigActionCameraControl-ZMUuBxOs.js} +1 -1
  17. package/dist/interface/assets/{ConfigActionDelay-DtPgmqWh.js → ConfigActionDelay-BJ11xvOW.js} +1 -1
  18. package/dist/interface/assets/{ConfigActionHttp-DnkZTP5l.js → ConfigActionHttp-DOUo69OR.js} +1 -1
  19. package/dist/interface/assets/{ConfigActionImageInput-3svn6YP9.js → ConfigActionImageInput-BMzuVZW9.js} +1 -1
  20. package/dist/interface/assets/{ConfigActionMqtt-BTsFTLgm.js → ConfigActionMqtt-Co_uksca.js} +1 -1
  21. package/dist/interface/assets/{ConfigActionNotification-Cr4xJrZp.js → ConfigActionNotification-CcZkstYx.js} +1 -1
  22. package/dist/interface/assets/{ConfigActionNotificationControl-Cxkb_g8p.js → ConfigActionNotificationControl--VeucoTw.js} +1 -1
  23. package/dist/interface/assets/{ConfigActionOutput-WTr7FGf_.js → ConfigActionOutput-CyDa1LGA.js} +1 -1
  24. package/dist/interface/assets/{ConfigActionPlugin-BpcJepbD.js → ConfigActionPlugin-Kfg3ZEQF.js} +1 -1
  25. package/dist/interface/assets/{ConfigActionSensor-BgD_F-hD.js → ConfigActionSensor-DhAF0HPw.js} +1 -1
  26. package/dist/interface/assets/{ConfigActionSnapshot-DjR-Z08N.js → ConfigActionSnapshot-zMe3SPvW.js} +1 -1
  27. package/dist/interface/assets/{ConfigActionVariable-gPuPbjpm.js → ConfigActionVariable-BE5q3NwY.js} +1 -1
  28. package/dist/interface/assets/{ConfigConditionIfElse-CUHKJmPx.js → ConfigConditionIfElse-BNIRtSVD.js} +1 -1
  29. package/dist/interface/assets/{ConfigConditionSensorState-D-gPRqMu.js → ConfigConditionSensorState-DTNd-SzI.js} +1 -1
  30. package/dist/interface/assets/{ConfigConditionSwitch-BRf1T5tJ.js → ConfigConditionSwitch-BU5wWMU1.js} +1 -1
  31. package/dist/interface/assets/{ConfigConditionTime-BC0n6sWO.js → ConfigConditionTime-KXTCIVIV.js} +1 -1
  32. package/dist/interface/assets/{ConfigSensorValueInput-BUHapx4M.js → ConfigSensorValueInput-BC1FpMm-.js} +1 -1
  33. package/dist/interface/assets/{ConfigTriggerDetection-Byd6SLGg.js → ConfigTriggerDetection-hIN1hi53.js} +1 -1
  34. package/dist/interface/assets/ConfigTriggerGeofence-Bl2ZacbY.js +1 -0
  35. package/dist/interface/assets/{ConfigTriggerManual-B2dWcFrl.js → ConfigTriggerManual-C5vwxS-e.js} +1 -1
  36. package/dist/interface/assets/{ConfigTriggerMqtt-B_aUDBu4.js → ConfigTriggerMqtt-B4PtWC3E.js} +1 -1
  37. package/dist/interface/assets/{ConfigTriggerSchedule-DAZo1PLj.js → ConfigTriggerSchedule-BZzUdGBa.js} +1 -1
  38. package/dist/interface/assets/{ConfigTriggerSensor-BCqAiPu4.js → ConfigTriggerSensor-D18nwMsj.js} +1 -1
  39. package/dist/interface/assets/{ConfigTriggerSystem-DuBydCiq.js → ConfigTriggerSystem-BhygWLB4.js} +1 -1
  40. package/dist/interface/assets/{ConfigTriggerWebhook-DDsnpwJr.js → ConfigTriggerWebhook-yyuBuhLD.js} +1 -1
  41. package/dist/interface/assets/Console-Cfk9MA9m.js +1 -0
  42. package/dist/interface/assets/CuiAssistantConversation-BHK_i56I.js +5 -0
  43. package/dist/interface/assets/CuiAssistantConversation-lkpZg3ML.css +1 -0
  44. package/dist/interface/assets/{CuiAutomationRunsDialog-C_sMg7E1.js → CuiAutomationRunsDialog-B0ohEHw0.js} +1 -1
  45. package/dist/interface/assets/{CuiBottomSheet-D_0LrjA_.js → CuiBottomSheet-DWefGWK2.js} +1 -1
  46. package/dist/interface/assets/CuiBottomSheet-NgX7VFao.js +1 -0
  47. package/dist/interface/assets/CuiCameraPipCard-C2qaGJlH.js +1 -0
  48. package/dist/interface/assets/CuiCameraRecordings-BTD-CQAg.js +1 -0
  49. package/dist/interface/assets/{CuiCameraShares-BIUB1xMa.js → CuiCameraShares-DcqOcePX.js} +1 -1
  50. package/dist/interface/assets/{CuiCameraTable-D-UhqHk4.js → CuiCameraTable-BOkfp_5M.js} +2 -2
  51. package/dist/interface/assets/CuiCameraTable-KPk46Xcl.js +1 -0
  52. package/dist/interface/assets/{CuiChartTable-CSK4Mzn3.js → CuiChartTable-DP38uBwK.js} +1 -1
  53. package/dist/interface/assets/{CuiConsole-DAbJXJBq.js → CuiConsole-C7xE_nQg.js} +2 -2
  54. package/dist/interface/assets/{CuiDataTable-DgcJsG-K.js → CuiDataTable-CsqH-RB1.js} +1 -1
  55. package/dist/interface/assets/CuiLightControl-ChGYpQAK.js +1 -0
  56. package/dist/interface/assets/{CuiLightControl-DFrZm_sv.css → CuiLightControl-D9sm8NZb.css} +1 -1
  57. package/dist/interface/assets/{CuiList-HdsA9vV1.js → CuiList-DJp0__mV.js} +1 -1
  58. package/dist/interface/assets/CuiPluginCard-CWImTZ6l.js +2 -0
  59. package/dist/interface/assets/{CuiPluginCategoryChip-C7R1jP7r.js → CuiPluginCategoryChip-Ch_upS6Y.js} +1 -1
  60. package/dist/interface/assets/{CuiPluginOAuthButton-BJJw0IaC.js → CuiPluginOAuthButton-DEQ9xILN.js} +2 -2
  61. package/dist/interface/assets/{CuiPluginTrustBadge-Bmm1qYdC.js → CuiPluginTrustBadge-sVWdvHcM.js} +1 -1
  62. package/dist/interface/assets/{CuiQRCode-DTSEFMBt.js → CuiQRCode-DqSF4SkD.js} +1 -1
  63. package/dist/interface/assets/CuiSchema-ytExUVhI.js +1 -0
  64. package/dist/interface/assets/CuiTopNavbarItem-B_KWykgq.js +1 -0
  65. package/dist/interface/assets/Faces-Cb6XMxDC.js +1 -0
  66. package/dist/interface/assets/FirstSteps-QNYTkEJo.js +1 -0
  67. package/dist/interface/assets/Floorplan-DbqADtN1.js +1 -0
  68. package/dist/interface/assets/Instances-DrMzPD65.js +1 -0
  69. package/dist/interface/assets/{Logs-BjcfuMQV.js → Logs-BSPT80vP.js} +2 -2
  70. package/dist/interface/assets/{Menu-BjjnSgdP.js → Menu-HHtuhIS2.js} +1 -1
  71. package/dist/interface/assets/Metrics-CqhUnVRA.js +12 -0
  72. package/dist/interface/assets/{OAuthDeviceFlow-9v-Czy_u.js → OAuthDeviceFlow-Bn1nlWNa.js} +1 -1
  73. package/dist/interface/assets/Plugin-DyOg_fbg.js +1 -0
  74. package/dist/interface/assets/{PluginConsole-C7sO42RG.js → PluginConsole-Cv-uhnPY.js} +2 -2
  75. package/dist/interface/assets/PluginDetail-cpOz7FkA.js +2 -0
  76. package/dist/interface/assets/{PluginSchema-D0eL9H-b.js → PluginSchema-DW3TGeTM.js} +1 -1
  77. package/dist/interface/assets/PluginSearch-BgecD9Ob.js +2 -0
  78. package/dist/interface/assets/PluginSearch-C8xHKikH.js +1 -0
  79. package/dist/interface/assets/{PluginUpdateProgress--MM9D8hs.js → PluginUpdateProgress-n6q6vzyd.js} +1 -1
  80. package/dist/interface/assets/Plugins-CuujWEtM.js +1 -0
  81. package/dist/interface/assets/{RecentEventsFilter-CvIJS8Se.js → RecentEventsFilter-CTR5JK_P.js} +1 -1
  82. package/dist/interface/assets/Recordings-ths9khZr.js +1 -0
  83. package/dist/interface/assets/SensorEdit-BzoIH7QC.js +1 -0
  84. package/dist/interface/assets/{SensorHistory-Efw0bZ-X.js → SensorHistory-9CdOpCPs.js} +1 -1
  85. package/dist/interface/assets/Sensors-CK5uExfU.js +2 -0
  86. package/dist/interface/assets/Settings-DN5hFtw_.js +1 -0
  87. package/dist/interface/assets/SettingsAccount-BCrmon5O.js +1 -0
  88. package/dist/interface/assets/SettingsAccount-CSy1BAIH.js +1 -0
  89. package/dist/interface/assets/{SettingsAccount-si-6gWl5.css → SettingsAccount-CY8YE_cy.css} +1 -1
  90. package/dist/interface/assets/SettingsAppearance-BY1xQMx4.js +1 -0
  91. package/dist/interface/assets/SettingsAppearance-h_XPZfQl.js +1 -0
  92. package/dist/interface/assets/SettingsAssistant-D8FmVbUL.js +1 -0
  93. package/dist/interface/assets/{SettingsBackup-BqKBKis5.js → SettingsBackup-D_weokqu.js} +1 -1
  94. package/dist/interface/assets/{SettingsList-BU191rmt.js → SettingsList-Bq24WTDU.js} +1 -1
  95. package/dist/interface/assets/SettingsMqtt-DCkLIYpF.js +1 -0
  96. package/dist/interface/assets/SettingsNotifications-8TZOUxg2.js +1 -0
  97. package/dist/interface/assets/{SettingsPermissions-sI64FPZG.js → SettingsPermissions-M8u_jrN0.js} +1 -1
  98. package/dist/interface/assets/{SettingsRecordings-CghrKErw.js → SettingsRecordings-C1Kp5xW_.js} +1 -1
  99. package/dist/interface/assets/SettingsRemote-DXlQKwlT.js +2 -0
  100. package/dist/interface/assets/{SettingsSystem-DP1p1Xns.js → SettingsSystem-Cetu2faJ.js} +2 -2
  101. package/dist/interface/assets/{SettingsUsers-Dpej-he1.js → SettingsUsers-CDwtQLdV.js} +1 -1
  102. package/dist/interface/assets/{Terminal-DPRPXCSt.js → Terminal-Dl-aAZME.js} +2 -2
  103. package/dist/interface/assets/{Training-Dwf5rXyC.css → Training-B1oQjAr8.css} +1 -1
  104. package/dist/interface/assets/Training-DdZjXgt1.js +1 -0
  105. package/dist/interface/assets/{Updates-QTvCp1aS.js → Updates-CkB1lXuo.js} +1 -1
  106. package/dist/interface/assets/{VariableInput-DhusSZPw.js → VariableInput-BxPj5wo6.js} +1 -1
  107. package/dist/interface/assets/{VariableSuggestions-Bkzz4Mv3.js → VariableSuggestions-CbizvAkz.js} +1 -1
  108. package/dist/interface/assets/{VersionsHandler-DjNSpSYy.js → VersionsHandler-CePyEUVO.js} +2 -2
  109. package/dist/interface/assets/{VirtualSensorCreate-soGT6h2c.js → VirtualSensorCreate-D_GVoeL7.js} +1 -1
  110. package/dist/interface/assets/Workers-7yiebNkl.js +2 -0
  111. package/dist/interface/assets/api-DK2Bav9D.js +4 -0
  112. package/dist/interface/assets/api-DTCqDA-h.css +2 -0
  113. package/dist/interface/assets/{api-CK2tonlH.js → api-DW2niHRN.js} +1 -1
  114. package/dist/interface/assets/{assistant-BEe1ExZL.js → assistant-BJ6xKcw_.js} +1 -1
  115. package/dist/interface/assets/{auth-QEpUGkWd.js → auth-Dc8bUpc-.js} +1 -1
  116. package/dist/interface/assets/{automations-BBIBV4Uu.js → automations-DXrjbArj.js} +1 -1
  117. package/dist/interface/assets/{cameraSources-Cm18cW9L.js → cameraSources-QJfUDOQJ.js} +1 -1
  118. package/dist/interface/assets/cloudHandoff-DtlquYGZ.js +1 -0
  119. package/dist/interface/assets/{config-vwkU8aqP.js → config-CiQDwB4t.js} +1 -1
  120. package/dist/interface/assets/{flowSchema-rzBroL0H.js → flowSchema-BRTZHQ1w.js} +1 -1
  121. package/dist/interface/assets/{intercomService-Du8V_HxF.js → intercomService-BnA-FQ0Q.js} +1 -1
  122. package/dist/interface/assets/{main-XHFrBKKz.css → main-BoGhBedC.css} +1 -1
  123. package/dist/interface/assets/main-D74mRIxc.js +3 -0
  124. package/dist/interface/assets/mqtt-iD9XHYO_.js +1 -0
  125. package/dist/interface/assets/{notifications-CN6eTJb_.js → notifications-CbAJX7RF.js} +1 -1
  126. package/dist/interface/assets/{plugins-DKtX7zQp.js → plugins-eIUrXNeM.js} +1 -1
  127. package/dist/interface/assets/rooms-BqPyo8jc.js +1 -0
  128. package/dist/interface/assets/{sensorIcons-ztqlMLDc.js → sensorIcons-DQVgryYP.js} +1 -1
  129. package/dist/interface/assets/{sensorSlots-D-uxjuv3.js → sensorSlots-BZCXtnb6.js} +1 -1
  130. package/dist/interface/assets/{sensors-DV2Z0IJt.js → sensors-DttBNEEt.js} +1 -1
  131. package/dist/interface/assets/{server-CfZnIVzn.js → server-DUFhf2c_.js} +1 -1
  132. package/dist/interface/assets/{theme-Bi7qdjBK.js → theme-BMmjtQ4w.js} +1 -1
  133. package/dist/interface/assets/{types-CNLAvgyw.js → types-5rE8Tz0_.js} +1 -1
  134. package/dist/interface/assets/{types-DwbeYXvn.js → types-CXw7CEzu.js} +1 -1
  135. package/dist/interface/assets/{types-DuwD8xp5.js → types-DWTSNJ79.js} +1 -1
  136. package/dist/interface/assets/ungrouped-D56FGIrg.js +1 -0
  137. package/dist/interface/assets/ungrouped-DHMJ9Rg1.css +1 -0
  138. package/dist/interface/assets/{updates-BqCH6Vr8.js → updates-TIPWXKzL.js} +1 -1
  139. package/dist/interface/assets/{useAppVersion-B-rmq3Bb.js → useAppVersion-BIz44Bg4.js} +1 -1
  140. package/dist/interface/assets/{useAssistantActions-Kf-5ijVf.js → useAssistantActions-CLkkw9kB.js} +1 -1
  141. package/dist/interface/assets/useBackupRestore-Crfd592q.js +1 -0
  142. package/dist/interface/assets/{useCameraOptions-Dt2J8sP_.js → useCameraOptions-A97teAIr.js} +1 -1
  143. package/dist/interface/assets/{useKeyboardInset-DtD3I2WC.js → useKeyboardInset-DXVi1dLG.js} +1 -1
  144. package/dist/interface/assets/{useLogsSocket-CEhUQdiY.js → useLogsSocket-BlFxVXjF.js} +1 -1
  145. package/dist/interface/assets/{useNavLayout-CtpYjS5W.js → useNavLayout-C5obaCNv.js} +1 -1
  146. package/dist/interface/assets/{usePermissions-CJzuagwD.js → usePermissions-C8hB_pG1.js} +1 -1
  147. package/dist/interface/assets/{usePluginUpdates-BwoWN5yb.js → usePluginUpdates-DO0-Gk4Q.js} +1 -1
  148. package/dist/interface/assets/{usePushRegistration-ANx4BS6_.js → usePushRegistration-BUttCraQ.js} +1 -1
  149. package/dist/interface/assets/{useServerRestart-7edyD8M0.js → useServerRestart-Cz9eVHUE.js} +1 -1
  150. package/dist/interface/assets/{useStreamStatus-DCSWHdbW.js → useStreamStatus-BhS_MCCB.js} +1 -1
  151. package/dist/interface/assets/{useTabSwipe-DfS3R3uP.js → useTabSwipe-D4k8lm1M.js} +1 -1
  152. package/dist/interface/assets/{useUpdateChannel-Cr9mSIRC.js → useUpdateChannel-D9lhfW0y.js} +1 -1
  153. package/dist/interface/assets/{useUpdatesSocket-B5Rm9syb.js → useUpdatesSocket-DnH9sON5.js} +1 -1
  154. package/dist/interface/assets/{useUserOptions-CJjImz8V.js → useUserOptions-BTRBUuE2.js} +1 -1
  155. package/dist/interface/assets/{vendor-cameraui-BbGOMenD.js → vendor-cameraui-QXD8jkcj.js} +26 -26
  156. package/dist/interface/assets/{vendor-core-tgH2YubJ.js → vendor-core-CnhnyKDl.js} +1 -1
  157. package/dist/interface/assets/{vendor-primevue-DNJJiEZl.js → vendor-primevue-CCUqY55W.js} +207 -207
  158. package/dist/interface/ha/{404-Dl6JtQWv.js → 404-DLhJqxRl.js} +1 -1
  159. package/dist/interface/ha/{About-wjv4kCO3.js → About-DC0i1iE4.js} +3 -3
  160. package/dist/interface/ha/{Assistant-Dpb4IsDC.js → Assistant-BmazMPIg.js} +821 -825
  161. package/dist/interface/ha/{Automation-CqTPjCUh.js → Automation-gabF9YzQ.js} +336 -336
  162. package/dist/interface/ha/{AutomationImport-CvdeneoU.js → AutomationImport-DaqZNs9s.js} +8 -8
  163. package/dist/interface/ha/{AutomationStore-bVPE68io.js → AutomationStore-DzM4huo5.js} +54 -54
  164. package/dist/interface/ha/{AutomationStoreDetail-BYaNUjoH.js → AutomationStoreDetail-CpzQMt_D.js} +7 -7
  165. package/dist/interface/ha/{Automations-BfsYh2A_.js → Automations-Dcm4Us50.js} +81 -81
  166. package/dist/interface/ha/{Camera-C70onr_O.js → Camera-CNK3QR7l.js} +198 -198
  167. package/dist/interface/ha/{CameraConsole-Dg3lV-wq.js → CameraConsole-CpcF0411.js} +5 -5
  168. package/dist/interface/ha/{Cameras-DpM6gt3G.js → Cameras-Cf9rwRyf.js} +293 -294
  169. package/dist/interface/ha/{Camview-CO_bHntH.js → Camview-BFKR2t6C.js} +87 -87
  170. package/dist/interface/ha/{Config-D-cpocuH.js → Config-1XH3zfr2.js} +11 -11
  171. package/dist/interface/ha/{ConfigActionAssistant-DVVVfVvT.js → ConfigActionAssistant-C0-NFoTB.js} +5 -5
  172. package/dist/interface/ha/{ConfigActionCameraControl-BPpzE9-F.js → ConfigActionCameraControl-DNSKZPSZ.js} +5 -5
  173. package/dist/interface/ha/{ConfigActionDelay-zU6H75hY.js → ConfigActionDelay-iZ3lPGzw.js} +1 -1
  174. package/dist/interface/ha/{ConfigActionHttp-BsNy03j4.js → ConfigActionHttp-DVJAcGkl.js} +3 -3
  175. package/dist/interface/ha/{ConfigActionImageInput-JUvNYn0w.js → ConfigActionImageInput-VVbHHHZs.js} +3 -3
  176. package/dist/interface/ha/{ConfigActionMqtt-PZqAKfTo.js → ConfigActionMqtt-N5OUJDzM.js} +4 -4
  177. package/dist/interface/ha/{ConfigActionNotification-DIL7abEm.js → ConfigActionNotification-s142tQoU.js} +6 -6
  178. package/dist/interface/ha/{ConfigActionNotificationControl-BQ2w5yeg.js → ConfigActionNotificationControl-Dh7kaKVP.js} +3 -3
  179. package/dist/interface/ha/{ConfigActionOutput-DVilKhPV.js → ConfigActionOutput-B4HHTg5C.js} +1 -1
  180. package/dist/interface/ha/{ConfigActionPlugin-BUfTEJQ_.js → ConfigActionPlugin-D20G2Dqf.js} +5 -5
  181. package/dist/interface/ha/{ConfigActionSensor-Dzp16VyX.js → ConfigActionSensor-BS3jrFaG.js} +6 -6
  182. package/dist/interface/ha/{ConfigActionSnapshot-CRjD5AMC.js → ConfigActionSnapshot-CInLAcwK.js} +3 -3
  183. package/dist/interface/ha/{ConfigActionVariable-CR8g7gEh.js → ConfigActionVariable-C5vADGNF.js} +2 -2
  184. package/dist/interface/ha/{ConfigConditionIfElse-CHoSgzXF.js → ConfigConditionIfElse-CPeWDD31.js} +4 -4
  185. package/dist/interface/ha/{ConfigConditionSensorState-Dn8_OhQe.js → ConfigConditionSensorState-BM5GmpN6.js} +6 -6
  186. package/dist/interface/ha/{ConfigConditionSwitch-Ds-nqWeU.js → ConfigConditionSwitch-Dmz9FduJ.js} +4 -4
  187. package/dist/interface/ha/{ConfigConditionTime-DWNfEluj.js → ConfigConditionTime-DF6llIJq.js} +2 -2
  188. package/dist/interface/ha/{ConfigSensorValueInput-DwXM9wP1.js → ConfigSensorValueInput-Ch5njvtv.js} +7 -7
  189. package/dist/interface/ha/{ConfigTriggerDetection-D37OkR_u.js → ConfigTriggerDetection-BR2QWNyO.js} +5 -5
  190. package/dist/interface/ha/{ConfigTriggerGeofence-EbXy_y3Q.js → ConfigTriggerGeofence-CaImOjyW.js} +9 -9
  191. package/dist/interface/ha/{ConfigTriggerMqtt-BX6uNEZy.js → ConfigTriggerMqtt-DWz1XwZQ.js} +2 -2
  192. package/dist/interface/ha/{ConfigTriggerSensor-BFGEtBVF.js → ConfigTriggerSensor-lfnhz0im.js} +3 -3
  193. package/dist/interface/ha/{ConfigTriggerSystem-fRnAgUGR.js → ConfigTriggerSystem-CwUhyFAj.js} +3 -3
  194. package/dist/interface/ha/{ConfigTriggerWebhook-DegifRdj.js → ConfigTriggerWebhook-J6Xts7GQ.js} +2 -2
  195. package/dist/interface/ha/{Console-Bo6S5psN.js → Console-BSdKFm6Y.js} +8 -8
  196. package/dist/interface/ha/{CuiAutomationRunsDialog-DXpNJqDE.js → CuiAutomationRunsDialog-BU8sympp.js} +3 -3
  197. package/dist/interface/ha/{CuiBottomSheet-DLkC2OmT.js → CuiBottomSheet-Bnp7ta7V.js} +1 -1
  198. package/dist/interface/ha/{CuiCameraRecordings-9tdkxXiT.js → CuiCameraRecordings-E-mMqKSs.js} +18 -19
  199. package/dist/interface/ha/{CuiCameraShares-BbqY_2b7.js → CuiCameraShares-DcNwd2OC.js} +8 -8
  200. package/dist/interface/ha/{CuiCameraTable-BmH1yAgl.js → CuiCameraTable-DNW9Vm_A.js} +6 -6
  201. package/dist/interface/ha/{CuiChartTable-BjBBI7Fo.js → CuiChartTable-muC7jL2H.js} +6 -6
  202. package/dist/interface/ha/{CuiConsole-By3m4UbE.js → CuiConsole-ND8bcuTg.js} +2 -2
  203. package/dist/interface/ha/{CuiDataTable-C_ndu5My.js → CuiDataTable-CN4T8DgP.js} +13 -13
  204. package/dist/interface/ha/{CuiPluginCard-BLQ1galy.js → CuiPluginCard-nIQiyQvH.js} +31 -31
  205. package/dist/interface/ha/{CuiPluginOAuthButton-BDghklSy.js → CuiPluginOAuthButton-FJ49NfUh.js} +3 -3
  206. package/dist/interface/ha/{CuiPluginTrustBadge-DolANNao.js → CuiPluginTrustBadge-D6eanMyI.js} +2 -2
  207. package/dist/interface/ha/{CuiQRCode-CcjPngXI.js → CuiQRCode-BdJzeeoE.js} +2 -2
  208. package/dist/interface/ha/{CuiSchema-D9JFf0dp.js → CuiSchema-DY0V-8xP.js} +67 -67
  209. package/dist/interface/ha/{CuiTopNavbarItem-DcUEq-4e.js → CuiTopNavbarItem-DT5pAKHp.js} +7 -8
  210. package/dist/interface/ha/{Faces-DjXHzr77.js → Faces-C_svyTrr.js} +92 -92
  211. package/dist/interface/ha/{FirstSteps-CQAP9Siw.js → FirstSteps-yS2M2cor.js} +9 -9
  212. package/dist/interface/ha/{Floorplan-DyaPzlQO.js → Floorplan-DSOeScjI.js} +194 -194
  213. package/dist/interface/ha/{Instances-DWjaU5gj.js → Instances-B4h5EKpF.js} +20 -20
  214. package/dist/interface/ha/{Logs-Dlx-X1NS.js → Logs-BH0Lxvs6.js} +12 -12
  215. package/dist/interface/ha/{Menu-iqEe01qO.js → Menu-COH7QXuE.js} +13 -13
  216. package/dist/interface/ha/{Metrics-Br2Dyvzh.js → Metrics-BtnRqL_I.js} +136 -136
  217. package/dist/interface/ha/{OAuthDeviceFlow-CIGk92FD.js → OAuthDeviceFlow-D2QJ9MnP.js} +8 -8
  218. package/dist/interface/ha/{Plugin-DklIr7j2.js → Plugin-EfUSqwyh.js} +85 -85
  219. package/dist/interface/ha/{PluginConsole-DCfxPtGU.js → PluginConsole-hh_o15f7.js} +4 -4
  220. package/dist/interface/ha/PluginDetail-DFiXGkrY.js +805 -0
  221. package/dist/interface/ha/{PluginSearch-BTKBnjxb.js → PluginSearch-Cdrfubrj.js} +54 -54
  222. package/dist/interface/ha/{PluginUpdateProgress-Dej5AcCt.js → PluginUpdateProgress-BD2g2kVj.js} +3 -3
  223. package/dist/interface/ha/{Plugins-C2fONspm.js → Plugins-qFiHW-Nk.js} +45 -45
  224. package/dist/interface/ha/{RecentEventsFilter-ylgjiDo8.js → RecentEventsFilter-UWrXnvfq.js} +1 -1
  225. package/dist/interface/ha/{Recordings-w39I43cc.js → Recordings-BzeC6tOz.js} +437 -419
  226. package/dist/interface/ha/{SensorEdit-BkKi1l-A.js → SensorEdit-BSgy7lkZ.js} +360 -360
  227. package/dist/interface/ha/{SensorHistory-BGJjMlc3.js → SensorHistory-IDvP8LKH.js} +2 -2
  228. package/dist/interface/ha/{Sensors-D_Wi9XPa.js → Sensors-Diqp4oZ0.js} +96 -97
  229. package/dist/interface/ha/{Settings-Bn7WLWf0.js → Settings-BgDsxAlx.js} +11 -11
  230. package/dist/interface/ha/{SettingsAccount-CRTex-1j.js → SettingsAccount-DBXMQPYk.js} +159 -159
  231. package/dist/interface/ha/{SettingsAppearance-B1qmJnYk.js → SettingsAppearance-VmbjnT3o.js} +6 -6
  232. package/dist/interface/ha/{SettingsAssistant-DDd1X0BC.js → SettingsAssistant-C2R4ZetE.js} +133 -133
  233. package/dist/interface/ha/{SettingsBackup-DZbhSB13.js → SettingsBackup-BqY9TwYn.js} +20 -20
  234. package/dist/interface/ha/{SettingsList-BQdyPe0H.js → SettingsList-CzHcfo2N.js} +4 -4
  235. package/dist/interface/ha/{SettingsMqtt-CSZcY6ht.js → SettingsMqtt-DqV3h3Ow.js} +149 -149
  236. package/dist/interface/ha/{SettingsNotifications-CfEhl0-y.js → SettingsNotifications-yn5fIR_7.js} +6 -6
  237. package/dist/interface/ha/{SettingsRecordings-BnAGDvcH.js → SettingsRecordings-DDs1lyfY.js} +8 -8
  238. package/dist/interface/ha/{SettingsRemote-w86TQVUA.js → SettingsRemote-jBw3l5E0.js} +172 -172
  239. package/dist/interface/ha/{SettingsSystem-CENjHL3k.js → SettingsSystem-BOv9hNlk.js} +9 -9
  240. package/dist/interface/ha/{SettingsUsers-CqSHRklV.js → SettingsUsers-Biv-2F4C.js} +90 -90
  241. package/dist/interface/ha/{Terminal-WsuxG3k-.js → Terminal-CmcrGEV0.js} +4 -4
  242. package/dist/interface/ha/Training-BEzPiXZg.js +1512 -0
  243. package/dist/interface/ha/{Updates-Dl_lLLR2.js → Updates-DJAcmDQJ.js} +12 -12
  244. package/dist/interface/ha/{VariableInput-C8Q81GUt.js → VariableInput-DlYg7t0m.js} +2 -2
  245. package/dist/interface/ha/{VersionsHandler-BOvjesvp.js → VersionsHandler-UnrAWn-b.js} +11 -11
  246. package/dist/interface/ha/{VirtualSensorCreate-sgwATaky.js → VirtualSensorCreate-CssxeaCC.js} +2 -2
  247. package/dist/interface/ha/{Workers-CkDuQ9NG.js → Workers-CLpqLugC.js} +14 -14
  248. package/dist/interface/ha/{accordion-Xem2SzgR.js → accordion-BylV-jUK.js} +2 -2
  249. package/dist/interface/ha/{api-BmYisoxj.js → api-BP7mlzjP.js} +11181 -11736
  250. package/dist/interface/ha/{api-oqpIZTkx.js → api-B_tDa73J.js} +1 -1
  251. package/dist/interface/ha/{assistant-0jE4C19U.js → assistant-Cb6ACguQ.js} +1 -1
  252. package/dist/interface/ha/{auth-B4Msg7R-.js → auth-DOYDRgFm.js} +1 -1
  253. package/dist/interface/ha/{autocomplete-B94Amei3.js → autocomplete-Cp3u2Ywa.js} +4 -4
  254. package/dist/interface/ha/{automationBlueprint-C-12Yjl7.js → automationBlueprint-CbbG_ku4.js} +1 -1
  255. package/dist/interface/ha/cameraui-cards.js +1 -1
  256. package/dist/interface/ha/{cards-BrOcoiQJ.js → cards-BpBP1zVW.js} +1206 -1198
  257. package/dist/interface/ha/{config-IG56wp6m.js → config-DroY1HBs.js} +1 -1
  258. package/dist/interface/ha/{datepicker-B4Azs5zr.js → datepicker-DXk97lTw.js} +4 -4
  259. package/dist/interface/ha/{mqtt-pl13wSmG.js → mqtt-NJTVdd53.js} +1 -1
  260. package/dist/interface/ha/{multiselect-Dp4XDBRR.js → multiselect-BOb4ScAZ.js} +4 -4
  261. package/dist/interface/ha/{notifications-B6wxSmou.js → notifications-BPTvvgvv.js} +1 -1
  262. package/dist/interface/ha/{plugins-BwwaWxye.js → plugins-B29K3nQP.js} +1 -1
  263. package/dist/interface/ha/{rooms-NIzjFYAd.js → rooms-DLw0WUy_.js} +1 -1
  264. package/dist/interface/ha/{select-UR3ZRDew.js → select-DV7p2EDj.js} +4 -4
  265. package/dist/interface/ha/{server-YOLwDVAW.js → server-B4b5_Ecu.js} +1 -1
  266. package/dist/interface/ha/{speeddial-LCbl5g8p.js → speeddial-B5p0fuqL.js} +1 -1
  267. package/dist/interface/ha/{tooltip-Z7VN-E1u.js → tooltip-BDrlgLof.js} +1 -1
  268. package/dist/interface/ha/{types-B8B9MqK0.js → types-DJHHL7nn.js} +1 -1
  269. package/dist/interface/ha/{ungrouped-DttNEB62.js → ungrouped-xyK1QrsM.js} +344 -376
  270. package/dist/interface/ha/{updates-DVhiQhMM.js → updates-XFSu9Tfm.js} +5 -5
  271. package/dist/interface/ha/{useAppVersion-CG4D44Aa.js → useAppVersion-BH3rU1zz.js} +1 -1
  272. package/dist/interface/ha/{useLogsSocket-PKsRDttg.js → useLogsSocket-CaTRzvgU.js} +1 -1
  273. package/dist/interface/ha/{useNavLayout-DoEcPx9Z.js → useNavLayout-DV0_OQx0.js} +1 -1
  274. package/dist/interface/ha/{useServerRestart-CMl589qX.js → useServerRestart-C8tynLUf.js} +1 -1
  275. package/dist/interface/ha/{useTabSwipe-Cmqdn0J5.js → useTabSwipe-CFoLDp3j.js} +1 -1
  276. package/dist/interface/ha/{useUpdateChannel-BBW2EX7N.js → useUpdateChannel-DSG2RTPe.js} +2 -2
  277. package/dist/interface/ha/{useUpdatesSocket-B6ICpKKC.js → useUpdatesSocket-CSQ0g7-6.js} +1 -1
  278. package/dist/interface/ha/{useUserOptions-CzclRfar.js → useUserOptions-CFaCy6L1.js} +1 -1
  279. package/dist/interface/ha/{virtualscroller-C5j7FXj4.js → virtualscroller-B-UQZDMJ.js} +88 -88
  280. package/dist/interface/index.html +34 -34
  281. package/dist/interface/sw.js +1 -1
  282. package/dist/server/package.json +22 -20
  283. package/dist/server/requirements.txt +1 -1
  284. package/dist/server/src/api/controllers/auth.controller.js +5 -6
  285. package/dist/server/src/api/controllers/auth.controller.js.map +1 -1
  286. package/dist/server/src/api/controllers/plugins.controller.js +5 -5
  287. package/dist/server/src/api/controllers/plugins.controller.js.map +1 -1
  288. package/dist/server/src/api/database/checks.js +20 -8
  289. package/dist/server/src/api/database/checks.js.map +1 -1
  290. package/dist/server/src/api/database/selfcheck.js +2 -2
  291. package/dist/server/src/api/database/selfcheck.js.map +1 -1
  292. package/dist/server/src/api/index.js +8 -6
  293. package/dist/server/src/api/index.js.map +1 -1
  294. package/dist/server/src/api/plugins/logger.plugin.js +11 -11
  295. package/dist/server/src/api/plugins/logger.plugin.js.map +1 -1
  296. package/dist/server/src/api/services/twoFactor.service.d.ts +4 -5
  297. package/dist/server/src/api/services/twoFactor.service.js +16 -17
  298. package/dist/server/src/api/services/twoFactor.service.js.map +1 -1
  299. package/dist/server/src/api/types/index.d.ts +0 -1
  300. package/dist/server/src/api/utils/cert.js +128 -135
  301. package/dist/server/src/api/utils/cert.js.map +1 -1
  302. package/dist/server/src/api/utils/form-body.d.ts +2 -0
  303. package/dist/server/src/api/utils/form-body.js +22 -0
  304. package/dist/server/src/api/utils/form-body.js.map +1 -0
  305. package/dist/server/src/api/utils/install-logger.js +12 -12
  306. package/dist/server/src/api/utils/install-logger.js.map +1 -1
  307. package/dist/server/src/api/websocket/nsp/logs.d.ts +7 -3
  308. package/dist/server/src/api/websocket/nsp/logs.js +79 -65
  309. package/dist/server/src/api/websocket/nsp/logs.js.map +1 -1
  310. package/dist/server/src/assistant/history.d.ts +2 -0
  311. package/dist/server/src/assistant/history.js +46 -0
  312. package/dist/server/src/assistant/history.js.map +1 -0
  313. package/dist/server/src/assistant/manager.js +2 -1
  314. package/dist/server/src/assistant/manager.js.map +1 -1
  315. package/dist/server/src/camera/controller.d.ts +1 -0
  316. package/dist/server/src/camera/controller.js +23 -18
  317. package/dist/server/src/camera/controller.js.map +1 -1
  318. package/dist/server/src/camera/decoder/worker.d.ts +3 -0
  319. package/dist/server/src/camera/decoder/worker.js +42 -5
  320. package/dist/server/src/camera/decoder/worker.js.map +1 -1
  321. package/dist/server/src/go2rtc/index.js +2 -2
  322. package/dist/server/src/go2rtc/index.js.map +1 -1
  323. package/dist/server/src/main.js +5 -5
  324. package/dist/server/src/main.js.map +1 -1
  325. package/dist/server/src/manager/discoveryManager.js +2 -2
  326. package/dist/server/src/manager/discoveryManager.js.map +1 -1
  327. package/dist/server/src/remote/services/cloudflare-managed.js +6 -3
  328. package/dist/server/src/remote/services/cloudflare-managed.js.map +1 -1
  329. package/dist/server/src/remote/services/cloudflare.d.ts +0 -1
  330. package/dist/server/src/remote/services/cloudflare.js +9 -20
  331. package/dist/server/src/remote/services/cloudflare.js.map +1 -1
  332. package/dist/server/src/remote/services/cloudflaredBinary.d.ts +3 -2
  333. package/dist/server/src/remote/services/cloudflaredBinary.js +9 -16
  334. package/dist/server/src/remote/services/cloudflaredBinary.js.map +1 -1
  335. package/dist/server/src/rpc/server.js +2 -2
  336. package/dist/server/src/rpc/server.js.map +1 -1
  337. package/dist/server/src/utils/automation-registry/index.js +3 -3
  338. package/dist/server/src/utils/automation-registry/index.js.map +1 -1
  339. package/dist/server/src/utils/colors.d.ts +2 -0
  340. package/dist/server/src/utils/colors.js +8 -0
  341. package/dist/server/src/utils/colors.js.map +1 -0
  342. package/dist/server/src/utils/npm/auth.d.ts +3 -2
  343. package/dist/server/src/utils/npm/auth.js +1 -1
  344. package/dist/server/src/utils/npm/auth.js.map +1 -1
  345. package/dist/server/src/utils/npm/index.d.ts +3 -15
  346. package/dist/server/src/utils/npm/index.js +26 -17
  347. package/dist/server/src/utils/npm/index.js.map +1 -1
  348. package/dist/server/src/utils/npm/registry.d.ts +69 -0
  349. package/dist/server/src/utils/npm/registry.js +240 -0
  350. package/dist/server/src/utils/npm/registry.js.map +1 -0
  351. package/dist/server/src/utils/plugin-registry/index.js +3 -3
  352. package/dist/server/src/utils/plugin-registry/index.js.map +1 -1
  353. package/dist/server/src/utils/process.d.ts +10 -0
  354. package/dist/server/src/utils/process.js +112 -0
  355. package/dist/server/src/utils/process.js.map +1 -0
  356. package/dist/server/src/utils/totp.d.ts +12 -0
  357. package/dist/server/src/utils/totp.js +71 -0
  358. package/dist/server/src/utils/totp.js.map +1 -0
  359. package/dist/server/src/utils/ttl-cache.d.ts +20 -0
  360. package/dist/server/src/utils/ttl-cache.js +63 -0
  361. package/dist/server/src/utils/ttl-cache.js.map +1 -0
  362. package/npm-shrinkwrap.json +6427 -0
  363. package/package.json +22 -20
  364. package/dist/interface/assets/Assistant-BKxssfw-.js +0 -1
  365. package/dist/interface/assets/Automation-CP59cgP7.js +0 -3
  366. package/dist/interface/assets/AutomationStore-BZGR_5Xl.js +0 -2
  367. package/dist/interface/assets/Automations-BpXorYAS.js +0 -2
  368. package/dist/interface/assets/Camera-UBUfaR5a.js +0 -2
  369. package/dist/interface/assets/Cameras-B21Y8MdQ.js +0 -651
  370. package/dist/interface/assets/Camview-BySyPtU5.js +0 -1
  371. package/dist/interface/assets/Config-BGyGmukb.js +0 -2
  372. package/dist/interface/assets/ConfigTriggerGeofence-CkzTFEZn.js +0 -1
  373. package/dist/interface/assets/Console-HXmKYaK_.js +0 -1
  374. package/dist/interface/assets/CuiAssistantConversation-2qrRCsgw.js +0 -5
  375. package/dist/interface/assets/CuiAssistantConversation-DmSdiv1b.css +0 -1
  376. package/dist/interface/assets/CuiBottomSheet-CTr-KHC8.js +0 -1
  377. package/dist/interface/assets/CuiCameraPipCard-BZCayhy_.js +0 -1
  378. package/dist/interface/assets/CuiCameraRecordings-BbaEL2ST.js +0 -1
  379. package/dist/interface/assets/CuiCameraTable-C5tQHs63.js +0 -1
  380. package/dist/interface/assets/CuiLightControl-v6k9hVGl.js +0 -1
  381. package/dist/interface/assets/CuiPluginCard-5MRYJcF2.js +0 -2
  382. package/dist/interface/assets/CuiSchema-BDXeXora.js +0 -1
  383. package/dist/interface/assets/CuiTopNavbarItem-BVknLbRO.js +0 -1
  384. package/dist/interface/assets/Faces-BEpYvbB0.js +0 -1
  385. package/dist/interface/assets/FirstSteps-U93RDOcP.js +0 -1
  386. package/dist/interface/assets/Floorplan-D8XoCNOB.js +0 -1
  387. package/dist/interface/assets/Instances-CFwZotvU.js +0 -1
  388. package/dist/interface/assets/Metrics-Ca_d5CbP.js +0 -12
  389. package/dist/interface/assets/Plugin-BjLw46Sw.js +0 -1
  390. package/dist/interface/assets/PluginDetail-BuLW4lkN.js +0 -2
  391. package/dist/interface/assets/PluginSearch--LLMEeyx.js +0 -2
  392. package/dist/interface/assets/PluginSearch-0akjE0ef.js +0 -1
  393. package/dist/interface/assets/Plugins-26O511gf.js +0 -1
  394. package/dist/interface/assets/Recordings-DQOGeSFm.js +0 -1
  395. package/dist/interface/assets/SensorEdit-DEW5D80x.js +0 -1
  396. package/dist/interface/assets/Sensors-C8yOyAwo.js +0 -2
  397. package/dist/interface/assets/Settings-B-RgMeVm.js +0 -1
  398. package/dist/interface/assets/SettingsAccount-B6aXFx3F.js +0 -1
  399. package/dist/interface/assets/SettingsAccount-_0ccrXYU.js +0 -1
  400. package/dist/interface/assets/SettingsAppearance-CkDwzx6f.js +0 -1
  401. package/dist/interface/assets/SettingsAppearance-DBFE3uVH.js +0 -1
  402. package/dist/interface/assets/SettingsAssistant-DN5OUJqt.js +0 -1
  403. package/dist/interface/assets/SettingsMqtt-hsKZkU-o.js +0 -1
  404. package/dist/interface/assets/SettingsNotifications-DIeiUEAk.js +0 -1
  405. package/dist/interface/assets/SettingsRemote-Doa0aBMC.js +0 -2
  406. package/dist/interface/assets/Training-DYlefOX1.js +0 -1
  407. package/dist/interface/assets/Workers-CUVvTuts.js +0 -2
  408. package/dist/interface/assets/api-B0wYDGQj.css +0 -2
  409. package/dist/interface/assets/api-BNrZVfeD.js +0 -4
  410. package/dist/interface/assets/cloudHandoff-Dnndt2el.js +0 -1
  411. package/dist/interface/assets/main-CRlC4FBY.js +0 -3
  412. package/dist/interface/assets/mqtt-BY6-Hrbv.js +0 -1
  413. package/dist/interface/assets/ring-resize-DyqCo2UN.js +0 -1
  414. package/dist/interface/assets/rooms-BHP4q6yf.js +0 -1
  415. package/dist/interface/assets/ungrouped-DBRZ-Ori.css +0 -1
  416. package/dist/interface/assets/ungrouped-DHLAmt__.js +0 -1
  417. package/dist/interface/assets/useBackupRestore-Dj-ZXODq.js +0 -1
  418. package/dist/interface/ha/PluginDetail-BFfRnkdG.js +0 -230
  419. package/dist/interface/ha/Training-hu_XOYBk.js +0 -1505
  420. package/dist/interface/ha/ring-resize-Dr2PxWIg.js +0 -16
@@ -1,26 +1,23 @@
1
1
  import { Et as e, et as t, f as n, gt as r, i, m as a, rt as o } from "./ripple-ZDATPc2w.js";
2
- import { n as s } from "./virtualscroller-C5j7FXj4.js";
3
- import { D as c, G as l, H as u, Jt as d, K as f, M as p, N as m, Wt as h, Y as g, _t as _, d as v, f as y, gt as b, kt as x, l as S, lt as C, ot as w, p as T, q as E, qt as D, r as O, rt as k, u as A, ut as j, x as M, xt as N, y as P, z as ee } from "./runtime-core.esm-bundler-_TfE0DWz.js";
4
- import { t as te } from "./tooltip-Z7VN-E1u.js";
5
- import { $ as F, Bn as ne, Br as re, En as ie, Fn as ae, Hn as oe, In as se, Mn as ce, Nn as le, Pn as ue, ar as de, bi as fe, br as pe, ca as me, ct as he, dr as ge, er as _e, et as ve, ht as ye, it as be, lt as xe, mr as Se, nt as Ce, o as we, or as Te, rt as Ee, tt as De, ur as Oe, vr as ke, yr as I, zn as L } from "./api-BmYisoxj.js";
6
- import { _ as Ae, o as je } from "./intercomService-B7HkLs6z.js";
7
- import { n as Me } from "./vue-i18n-D5EAy78K.js";
8
- import { i as Ne } from "./alert-outline-FcLLjoOK.js";
9
- import { t as Pe } from "./eventIcons-BFNUgeGr.js";
10
- import { t as Fe } from "./spinner-DIILjDT9.js";
11
- import { t as Ie } from "./button-BouAFgf5.js";
12
- import { M as Le } from "./dist-C6MBHJhs.js";
13
- import { t as Re } from "./inputtext-C_ygnPrC.js";
14
- import { t as ze } from "./select-UR3ZRDew.js";
15
- import { t as Be } from "./ring-resize-Dr2PxWIg.js";
2
+ import { n as s } from "./virtualscroller-B-UQZDMJ.js";
3
+ import { A as c, D as l, G as u, H as d, Jt as f, K as p, M as m, N as h, Wt as g, Y as _, _t as v, d as y, f as b, gt as x, kt as S, l as C, lt as w, ot as ee, p as T, q as E, r as D, rt as O, st as te, u as k, ut as ne, x as A, xt as j, y as M, z as re } from "./runtime-core.esm-bundler-_TfE0DWz.js";
4
+ import { $ as ie, Bn as ae, Br as oe, Cr as se, Gn as ce, Hn as le, Kn as ue, Ln as de, On as fe, Rn as pe, Un as me, _t as he, at as ge, bi as _e, et as ve, hr as ye, it as be, kn as xe, lr as Se, lt as Ce, mr as we, nt as Te, o as Ee, qn as De, rt as Oe, tt as ke, ur as Ae, ut as je, vr as Me, wr as N, zn as Ne } from "./api-BP7mlzjP.js";
5
+ import { A as Pe, _ as Fe, o as Ie } from "./intercomService-B7HkLs6z.js";
6
+ import { n as Le } from "./vue-i18n-D5EAy78K.js";
7
+ import { i as Re } from "./alert-outline-FcLLjoOK.js";
8
+ import { t as ze } from "./eventIcons-BFNUgeGr.js";
9
+ import { t as Be } from "./spinner-DIILjDT9.js";
10
+ import { M as Ve } from "./dist-C6MBHJhs.js";
11
+ import { t as P } from "./inputtext-C_ygnPrC.js";
12
+ import { t as F } from "./select-DV7p2EDj.js";
16
13
  //#region ~icons/tabler/user-edit
17
- var R = {
14
+ var I = {
18
15
  viewBox: "0 0 24 24",
19
16
  width: "1.2em",
20
17
  height: "1.2em"
21
18
  };
22
- function Ve(e, t) {
23
- return u(), T("svg", R, [...t[0] ||= [A("path", {
19
+ function He(e, t) {
20
+ return d(), T("svg", I, [...t[0] ||= [k("path", {
24
21
  fill: "none",
25
22
  stroke: "currentColor",
26
23
  "stroke-linecap": "round",
@@ -29,23 +26,23 @@ function Ve(e, t) {
29
26
  d: "M8 7a4 4 0 1 0 8 0a4 4 0 0 0-8 0M6 21v-2a4 4 0 0 1 4-4h3.5m4.92.61a2.1 2.1 0 0 1 2.97 2.97L18 22h-3v-3z"
30
27
  }, null, -1)]]);
31
28
  }
32
- var He = _({
29
+ var Ue = v({
33
30
  name: "tabler-user-edit",
34
- render: Ve
35
- }), z = { class: "flex flex-col gap-4 w-full" }, B = {
31
+ render: He
32
+ }), L = { class: "flex flex-col gap-4 w-full" }, R = {
36
33
  key: 0,
37
34
  class: "flex justify-center"
38
- }, V = ["src", "alt"], H = { class: "flex flex-col gap-2 w-full" }, U = { class: "cui-label" }, W = { class: "flex flex-col gap-2 w-full" }, G = {
35
+ }, z = ["src", "alt"], B = { class: "flex flex-col gap-2 w-full" }, V = { class: "cui-label" }, H = { class: "flex flex-col gap-2 w-full" }, U = {
39
36
  for: "reassignTarget",
40
37
  class: "cui-label"
41
- }, Ue = /* @__PURE__ */ M({
38
+ }, We = /* @__PURE__ */ A({
42
39
  __name: "FaceReassign",
43
40
  props: {
44
41
  cropUrl: {},
45
42
  oldName: {}
46
43
  },
47
44
  setup(e, { expose: t }) {
48
- let n = e, { t: r } = Me(), { plugin: i } = Le("@camera.ui/camera-ui-nvr"), a = N(null), o = N([]), s = N(!0), c = S(() => n.oldName === "unknown" ? r("views.recordings.reassign_unknown_person") : n.oldName), l = S(() => {
45
+ let n = e, { t: r } = Le(), { plugin: i } = Ve("@camera.ui/camera-ui-nvr"), a = j(null), o = j([]), s = j(!0), c = C(() => n.oldName === "unknown" ? r("views.recordings.reassign_unknown_person") : n.oldName), l = C(() => {
49
46
  let e = o.value.filter((e) => e !== n.oldName).map((e) => ({
50
47
  label: e,
51
48
  value: e
@@ -55,7 +52,7 @@ var He = _({
55
52
  value: ""
56
53
  }), e;
57
54
  });
58
- return ee(async () => {
55
+ return re(async () => {
59
56
  try {
60
57
  let e = await i.value?.listKnownFaces?.();
61
58
  o.value = (e ?? []).map((e) => e.name);
@@ -63,30 +60,30 @@ var He = _({
63
60
  s.value = !1;
64
61
  }
65
62
  }), t({ onConfirm: async () => a.value }), (e, t) => {
66
- let r = Re, i = ze;
67
- return u(), T("div", z, [
68
- n.cropUrl ? (u(), T("div", B, [A("img", {
63
+ let r = P, i = F;
64
+ return d(), T("div", L, [
65
+ n.cropUrl ? (d(), T("div", R, [k("img", {
69
66
  src: n.cropUrl,
70
- alt: x(c),
67
+ alt: S(c),
71
68
  class: "w-36 h-36 rounded-xl object-cover bg-neutral-900"
72
- }, null, 8, V)])) : y("", !0),
73
- A("div", H, [A("label", U, d(e.$t("views.recordings.reassign_current")), 1), P(r, {
74
- "model-value": x(c),
69
+ }, null, 8, z)])) : b("", !0),
70
+ k("div", B, [k("label", V, f(e.$t("views.recordings.reassign_current")), 1), M(r, {
71
+ "model-value": S(c),
75
72
  class: "w-full",
76
73
  fluid: "",
77
74
  disabled: ""
78
75
  }, null, 8, ["model-value"])]),
79
- A("div", W, [A("label", G, d(e.$t("views.recordings.reassign_new")), 1), P(i, {
76
+ k("div", H, [k("label", U, f(e.$t("views.recordings.reassign_new")), 1), M(i, {
80
77
  id: "reassignTarget",
81
- modelValue: x(a),
82
- "onUpdate:modelValue": t[0] ||= (e) => b(a) ? a.value = e : null,
83
- options: x(l),
78
+ modelValue: S(a),
79
+ "onUpdate:modelValue": t[0] ||= (e) => x(a) ? a.value = e : null,
80
+ options: S(l),
84
81
  "option-label": "label",
85
82
  "option-value": "value",
86
83
  class: "w-full",
87
84
  fluid: "",
88
- loading: x(s),
89
- disabled: x(s),
85
+ loading: S(s),
86
+ disabled: S(s),
90
87
  placeholder: e.$t("views.faces.enter_or_pick_name")
91
88
  }, null, 8, [
92
89
  "modelValue",
@@ -98,28 +95,31 @@ var He = _({
98
95
  ]);
99
96
  };
100
97
  }
101
- }), We = ["src"], Ge = {
98
+ }), Ge = {
99
+ key: 0,
100
+ class: "card-skeleton absolute inset-0 rounded-xl"
101
+ }, Ke = {
102
102
  key: 2,
103
103
  class: "w-full h-full flex items-center justify-center bg-neutral-800/80"
104
- }, Ke = { class: "absolute top-0 left-0 right-0 p-2 bg-gradient-to-b from-black/80 to-transparent z-[3]" }, qe = { class: "flex items-center gap-1.5" }, Je = { class: "text-xs font-semibold text-white truncate min-w-0 flex-1" }, Ye = {
104
+ }, qe = { class: "absolute top-0 left-0 right-0 p-2 bg-gradient-to-b from-black/80 to-transparent z-[3]" }, Je = { class: "flex items-center gap-1.5" }, Ye = { class: "text-xs font-semibold text-white truncate min-w-0 flex-1" }, Xe = {
105
105
  key: 0,
106
106
  class: "text-[10px] font-semibold text-white/80 bg-black/60 px-1.5 py-0.5 rounded-md shrink-0"
107
- }, Xe = { class: "text-[10px] text-white/70" }, Ze = { class: "block text-[11px] text-white font-medium truncate bg-black/50 rounded-md px-2 py-0.5" }, Qe = { class: "flex items-center gap-1 min-w-0" }, $e = ["title"], et = {
107
+ }, Ze = ["title"], Qe = ["title", "disabled"], $e = { class: "text-[10px] text-white/70" }, et = ["aria-label"], tt = ["aria-label"], nt = { class: "block text-[11px] text-white font-medium truncate bg-black/50 rounded-md px-2 py-0.5" }, rt = { class: "flex items-center gap-1 min-w-0" }, it = ["title"], at = {
108
108
  key: 0,
109
109
  class: "flex items-center gap-0.5 shrink-0 opacity-85 group-hover:opacity-100 transition-opacity duration-200"
110
- }, tt = ["onClick"], nt = ["src", "alt"], rt = {
110
+ }, ot = ["onClick"], st = ["src", "alt"], ct = {
111
111
  key: 0,
112
112
  class: "text-[10px] text-white/60 font-medium"
113
- }, it = {
113
+ }, lt = {
114
114
  key: 6,
115
115
  class: "absolute inset-0 z-[4] flex items-center justify-center pointer-events-none"
116
- }, at = {
116
+ }, ut = {
117
117
  key: 7,
118
118
  class: "absolute bottom-10 left-1/2 -translate-x-1/2 z-[4] pointer-events-none"
119
- }, ot = {
119
+ }, dt = {
120
120
  class: "text-[10px] font-semibold text-white bg-black/60 px-1.5 py-0.5 rounded-md whitespace-nowrap",
121
121
  style: { "font-variant-numeric": "tabular-nums" }
122
- }, st = 24, ct = 30, lt = 22, ut = 28, dt = 8, ft = /*#__PURE__*/ I(/* @__PURE__ */ M({
122
+ }, ft = 24, pt = 30, mt = 22, ht = 28, gt = 8, _t = 8, W = /*#__PURE__*/ N(/* @__PURE__ */ A({
123
123
  __name: "RecordingCard",
124
124
  props: {
125
125
  event: {},
@@ -139,7 +139,7 @@ var He = _({
139
139
  "openTrace"
140
140
  ],
141
141
  setup(e, { emit: t }) {
142
- let r = e, i = t, o = je(), s = fe(), { t: f } = Me(), p = re(), m = oe("@camera.ui/camera-ui-nvr"), { plugin: _ } = Le("@camera.ui/camera-ui-nvr"), b = ye(), { icons: E } = Pe(), D = m.getCachedThumbnails(r.event.id), M = D ? L(D, r.event, "card", r.segIndex).url ? "loaded" : "empty" : "loading", I = c(ae, void 0), Fe = k("rootRef"), Re = k("previewCanvasRef"), ze = k("footerRef"), Be = k("cardMenuRef"), R = N(!1), Ve = Ce(Fe, () => Bt(), () => $()), z = N(!1), B = N(D ?? null), V = N(M), H = N(!1), U = N(0), W = N(null), G = N(!1), { width: ft } = Ae(ze), pt = S(() => Oe(void 0, "admin")), K = S(() => W.value ?? r.event.favorite ?? !1), q = S(() => {
142
+ let r = e, i = t, o = Ie(), s = _e(), { t: c } = Le(), p = oe(), m = De("@camera.ui/camera-ui-nvr"), { plugin: v } = Ve("@camera.ui/camera-ui-nvr"), x = he(), { icons: w } = ze(), E = m.getCachedThumbnails(r.event.id), te = E ? pe(E, r.event, "card", r.segIndex).url ? "loaded" : "empty" : "loading", A = l(me, void 0), N = O("rootRef"), Fe = O("previewCanvasRef"), Be = O("footerRef"), P = O("cardMenuRef"), F = j(!1), I = j(!1), He = Oe(N, () => Gt(), () => $()), L = j(!1), R = j(E ?? null), z = j(te), B = j(!1), V = j(0), H = j(null), U = j(!1), W = j(0), vt = C(() => we(void 0, "admin")), G = C(() => H.value ?? r.event.favorite ?? !1), K = C(() => {
143
143
  if (r.semanticScore == null) return;
144
144
  let e = Math.max(0, Math.min(1, r.semanticScore));
145
145
  return {
@@ -147,23 +147,23 @@ var He = _({
147
147
  label: `${(e * 100).toFixed(0)}%`,
148
148
  color: e >= .5 ? "bg-green-500/80" : e >= .25 ? "bg-yellow-500/80" : "bg-red-400/80"
149
149
  };
150
- }), J = S(() => B.value ? L(B.value, r.event, "card", r.segIndex) : null), Y = S(() => {
151
- let e = r.segIndex ?? J.value?.segIndex;
150
+ }), q = C(() => R.value ? pe(R.value, r.event, "card", r.segIndex) : null), J = C(() => {
151
+ let e = r.segIndex ?? q.value?.segIndex;
152
152
  return e === void 0 ? void 0 : r.event.segments?.[e];
153
- }), mt = S(() => J.value?.url), ht = S(() => J.value?.label), gt = S(() => J.value?.type ?? r.event.types[0] ?? "motion"), _t = S(() => {
153
+ }), yt = C(() => q.value?.url), bt = C(() => q.value?.label), xt = C(() => q.value?.type ?? r.event.types[0] ?? "motion"), Y = C(() => {
154
154
  if (r.hideSegmentBadge) return;
155
155
  let e = r.event.segments?.length ?? 0;
156
156
  return r.segIndex !== void 0 && e > 1 ? `${r.segIndex + 1}/${e}` : void 0;
157
- }), X = S(() => {
158
- let e = B.value, t = J.value?.url;
157
+ }), X = C(() => {
158
+ let e = R.value, t = q.value?.url;
159
159
  if (!e || !t) return [];
160
160
  let n = [{
161
161
  url: t,
162
- label: J.value?.label,
163
- type: gt.value,
162
+ label: q.value?.label,
163
+ type: xt.value,
164
164
  crop: !1
165
165
  }];
166
- for (let t of ne(e, r.segIndex)) {
166
+ for (let t of ce(e, r.segIndex)) {
167
167
  if (n.some((e) => e.url === t.url)) continue;
168
168
  let e = t.key.split(":")[0];
169
169
  n.push({
@@ -175,9 +175,9 @@ var He = _({
175
175
  });
176
176
  }
177
177
  if (r.segIndex === void 0) for (let t of Object.keys(e.cards ?? e.strips ?? {}).sort((e, t) => Number(e) - Number(t))) {
178
- let i = _e(e.cards?.[t] ?? e.strips?.[t]);
178
+ let i = le(e.cards?.[t] ?? e.strips?.[t]);
179
179
  if (!i || n.some((e) => e.url === i)) continue;
180
- let a = be(r.event, t);
180
+ let a = ge(r.event, t);
181
181
  n.push({
182
182
  url: i,
183
183
  label: a,
@@ -186,27 +186,27 @@ var He = _({
186
186
  });
187
187
  }
188
188
  return n.length > 1 ? n : [];
189
- }), vt = S(() => X.value.length > 1), yt = S(() => X.value.length ? Math.min(U.value, X.value.length - 1) : 0), Z = S(() => vt.value ? X.value[yt.value] : void 0), bt = S(() => !!Z.value?.crop), xt = S(() => Z.value?.url ?? mt.value), St = S(() => Z.value?.label ?? ht.value), Q = S(() => {
190
- let e = Y.value;
191
- return (e ? ce(r.event, e) : [...new Set(r.event.types)]).filter((e) => e !== "motion" && e !== "audio");
192
- }), Ct = S(() => r.cameraName ?? r.event.cameraId), wt = S(() => X.value.map((e) => ({
189
+ }), St = C(() => X.value.length > 1), Ct = C(() => X.value.length ? Math.min(V.value, X.value.length - 1) : 0), Z = C(() => St.value ? X.value[Ct.value] : void 0), wt = C(() => !!Z.value?.crop), Tt = C(() => Z.value?.url ?? yt.value), Et = C(() => Z.value?.label ?? bt.value), Q = C(() => {
190
+ let e = J.value;
191
+ return (e ? ue(r.event, e) : [...new Set(r.event.types)]).filter((e) => e !== "motion" && e !== "audio");
192
+ }), Dt = C(() => r.cameraName ?? r.event.cameraId), Ot = C(() => X.value.map((e) => ({
193
193
  url: e.url,
194
194
  type: e.type
195
- }))), Tt = S(() => Q.value.slice(0, Et.value.icons)), Et = S(() => {
196
- let e = ft.value;
195
+ }))), kt = C(() => Q.value.slice(0, At.value.icons)), At = C(() => {
196
+ let e = W.value;
197
197
  if (!e) return {
198
198
  icons: 2,
199
199
  tiles: 2
200
200
  };
201
- let t = e - dt;
202
- r.selectionMode && (t -= ut);
203
- let n = wt.value.length > 0 ? 52 : 0, i = It(Q.value.length, Math.max(0, t - n), st), a = Q.value.length > 0 ? Math.max(1, i) : 0, o = a * st + (a < Q.value.length ? lt : 0);
201
+ let t = e - gt;
202
+ r.selectionMode && (t -= ht);
203
+ let n = Ot.value.length > 0 ? 52 : 0, i = Vt(Q.value.length, Math.max(0, t - n), ft), a = Q.value.length > 0 ? Math.max(1, i) : 0, o = a * ft + (a < Q.value.length ? mt : 0);
204
204
  return {
205
205
  icons: a,
206
- tiles: It(wt.value.length, Math.max(0, t - o), ct)
206
+ tiles: Vt(Ot.value.length, Math.max(0, t - o), pt)
207
207
  };
208
- }), Dt = S(() => Q.value.slice(Et.value.icons)), Ot = S(() => wt.value.slice(0, Et.value.tiles)), kt = S(() => wt.value.length - Et.value.tiles), At = S(() => {
209
- let e = new Date(Y.value?.firstSeen ?? r.event.thumbnailAt ?? r.event.startTime), t = /* @__PURE__ */ new Date(), n = e.toDateString() === t.toDateString(), i = e.toLocaleTimeString([], {
208
+ }), jt = C(() => Q.value.slice(At.value.icons)), Mt = C(() => Ot.value.slice(0, At.value.tiles)), Nt = C(() => Ot.value.length - At.value.tiles), Pt = C(() => {
209
+ let e = new Date(J.value?.firstSeen ?? r.event.thumbnailAt ?? r.event.startTime), t = /* @__PURE__ */ new Date(), n = e.toDateString() === t.toDateString(), i = e.toLocaleTimeString([], {
210
210
  hour: "2-digit",
211
211
  minute: "2-digit"
212
212
  });
@@ -214,37 +214,40 @@ var He = _({
214
214
  month: "short",
215
215
  day: "numeric"
216
216
  })} ${i}`;
217
- }), jt = S(() => !!(_.value && r.event.endTime && r.event.hasRecording !== !1)), Mt = S(() => I ? R.value ? f("views.recordings.no_preview") : z.value ? I.status.value === "unavailable" ? f("views.recordings.no_preview") : I.status.value === "playing" && I.previewTimeMs.value ? zt(I.previewTimeMs.value) : "" : "" : ""), Nt = S(() => {
217
+ }), Ft = C(() => !!(v.value && r.event.endTime && r.event.hasRecording !== !1)), It = C(() => A ? I.value ? c("views.recordings.no_preview") : L.value ? A.status.value === "unavailable" ? c("views.recordings.no_preview") : A.status.value === "playing" && A.previewTimeMs.value ? Wt(A.previewTimeMs.value) : "" : "" : ""), Lt = C(() => {
218
218
  let e = Z.value;
219
219
  if (e && e.type === "face") return e.label ? e.label : "unknown";
220
- }), Pt = S(() => {
220
+ }), Rt = C(() => {
221
221
  let e = [];
222
- return pt.value && Nt.value !== void 0 && e.push({
222
+ return vt.value && Lt.value !== void 0 && e.push({
223
223
  key: "reassign",
224
- label: f("views.recordings.reassign_face"),
225
- icon: He,
226
- loading: G.value,
227
- onClick: () => Kt()
224
+ label: c("views.recordings.reassign_face"),
225
+ icon: Ue,
226
+ loading: U.value,
227
+ onClick: () => Zt()
228
228
  }), r.camera && e.push({
229
229
  key: "trace",
230
- label: f("views.recordings.open_trace"),
231
- icon: he,
232
- onClick: () => i("openTrace", Y.value?.firstSeen)
230
+ label: c("views.recordings.open_trace"),
231
+ icon: Ce,
232
+ onClick: () => i("openTrace", J.value?.firstSeen)
233
233
  }), e.push({
234
234
  key: "ask",
235
- label: f("views.recordings.ask_assistant"),
236
- icon: Ne,
237
- onClick: () => Ft()
238
- }), jt.value && e.push({
235
+ label: c("views.recordings.ask_assistant"),
236
+ icon: Re,
237
+ onClick: () => Bt()
238
+ }), Ft.value && e.push({
239
239
  key: "download",
240
- label: f("views.recordings.download"),
241
- icon: xe,
242
- loading: H.value,
243
- onClick: () => Yt()
240
+ label: c("views.recordings.download"),
241
+ icon: je,
242
+ loading: B.value,
243
+ onClick: () => en()
244
244
  }), e;
245
245
  });
246
- function Ft() {
247
- let e = f("views.recordings.ask_assistant_prompt", {
246
+ function zt() {
247
+ xe(P.value?.hide);
248
+ }
249
+ function Bt() {
250
+ let e = c("views.recordings.ask_assistant_prompt", {
248
251
  camera: r.cameraName ?? r.camera?.name ?? r.event.cameraId,
249
252
  time: new Date(r.event.startTime).toLocaleString(),
250
253
  id: r.event.id
@@ -254,308 +257,279 @@ var He = _({
254
257
  query: { prompt: e }
255
258
  });
256
259
  }
257
- function It(e, t, n) {
258
- return e === 0 || t < n ? 0 : e * n <= t ? e : Math.max(0, Math.floor((t - lt) / n));
260
+ function Vt(e, t, n) {
261
+ return e === 0 || t < n ? 0 : e * n <= t ? e : Math.max(0, Math.floor((t - mt) / n));
259
262
  }
260
- function Lt(e) {
263
+ function Ht(e) {
261
264
  let t = X.value.length;
262
- t && ($(), U.value = (yt.value + e + t) % t);
265
+ t && ($(), V.value = (Ct.value + e + t) % t);
263
266
  }
264
- function Rt(e, t) {
265
- vt.value && (t.stopPropagation(), $(), U.value = e);
267
+ function Ut(e, t) {
268
+ St.value && (t.stopPropagation(), $(), V.value = e);
266
269
  }
267
270
  function $() {
268
- R.value = !1, I && z.value && (z.value = !1, I.onHoverEnd());
271
+ I.value = !1, A && L.value && (L.value = !1, A.onHoverEnd());
269
272
  }
270
- function zt(e) {
273
+ function Wt(e) {
271
274
  let t = new Date(e);
272
275
  return `${String(t.getHours()).padStart(2, "0")}:${String(t.getMinutes()).padStart(2, "0")}:${String(t.getSeconds()).padStart(2, "0")}`;
273
276
  }
274
- function Bt() {
275
- if (!I || yt.value > 0) return;
276
- let e = Re.value;
277
+ function Gt() {
278
+ if (!A || Ct.value > 0) return;
279
+ let e = Fe.value;
277
280
  if (!e) return;
278
- let t = ue(r.event);
281
+ let t = de(r.event);
279
282
  if (r.event.hasRecording === !1 || !t) {
280
- R.value = !0;
283
+ I.value = !0;
281
284
  return;
282
285
  }
283
- z.value = !0, I.onHoverStart(e, r.event.cameraId, r.event.id, r.event.startTime, t, r.camera?.zones?.privacy, se(r.event));
286
+ L.value = !0, A.onHoverStart(e, r.event.cameraId, r.event.id, r.event.startTime, t, r.camera?.zones?.privacy, ae(r.event));
284
287
  }
285
- function Vt() {
286
- Ve.blocksMouseEnter() || Bt();
288
+ function Kt() {
289
+ He.blocksMouseEnter() || Gt();
287
290
  }
288
- function Ht() {
289
- R.value = !1, I && (z.value = !1, I.onHoverEnd());
291
+ function qt() {
292
+ I.value = !1, A && (L.value = !1, A.onHoverEnd());
290
293
  }
291
- async function Ut(e = 2) {
294
+ async function Jt(e = 2) {
292
295
  let t = await r.loadThumbnails(r.event.id, r.event.startTime);
293
296
  if (t) {
294
- B.value = t;
295
- let e = L(t, r.event, "card");
296
- V.value = e.url ? "loaded" : "empty";
297
- } else if (e > 0) return await new Promise((e) => setTimeout(e, 500)), Ut(e - 1);
298
- else V.value = r.event.state === "active" ? "loading" : "empty";
297
+ R.value = t;
298
+ let e = pe(t, r.event, "card");
299
+ z.value = e.url ? "loaded" : "empty";
300
+ } else if (e > 0) return await new Promise((e) => setTimeout(e, 500)), Jt(e - 1);
301
+ else z.value = r.event.state === "active" ? "loading" : "empty";
299
302
  }
300
- function Wt() {
301
- if (!Ve.consumesClick()) {
303
+ function Yt() {
304
+ if (!He.consumesClick()) {
302
305
  if (r.selectionMode) {
303
306
  i("select");
304
307
  return;
305
308
  }
306
- i("scrollToEvent", Y.value?.firstSeen ?? Ee(r.event));
309
+ i("scrollToEvent", J.value?.firstSeen ?? be(r.event));
307
310
  }
308
311
  }
309
- function Gt(e) {
310
- $(), Be.value?.toggleMenu(e);
312
+ async function Xt(e) {
313
+ $(), F.value || (F.value = !0, await h()), P.value?.toggleMenu(e);
311
314
  }
312
- function Kt() {
313
- let e = Nt.value;
314
- e !== void 0 && b.openComponentDialog(Ue, {
315
+ function Zt() {
316
+ let e = Lt.value;
317
+ e !== void 0 && x.openComponentDialog(We, {
315
318
  data: {
316
- title: f("views.recordings.reassign_face"),
317
- confirmText: f("components.form.button.save"),
319
+ title: c("views.recordings.reassign_face"),
320
+ confirmText: c("components.form.button.save"),
318
321
  contentProps: {
319
322
  cropUrl: Z.value?.url,
320
323
  oldName: e
321
324
  }
322
325
  },
323
- onConfirm: (e) => qt(e)
326
+ onConfirm: (e) => Qt(e)
324
327
  });
325
328
  }
326
- async function qt(e) {
327
- let t = Nt.value;
328
- if (t === void 0 || G.value) return;
329
- let n = Z.value?.faceSeg ?? -1, i = _.value;
329
+ async function Qt(e) {
330
+ let t = Lt.value;
331
+ if (t === void 0 || U.value) return;
332
+ let n = Z.value?.faceSeg ?? -1, i = v.value;
330
333
  if (i?.reassignEventFace) {
331
- G.value = !0;
334
+ U.value = !0;
332
335
  try {
333
- await i.reassignEventFace(r.event.id, n, t, e) > 0 && le(r.event.id), s.add({
336
+ await i.reassignEventFace(r.event.id, n, t, e) > 0 && Ne(r.event.id), s.add({
334
337
  severity: "success",
335
- detail: f("views.recordings.reassign_done"),
338
+ detail: c("views.recordings.reassign_done"),
336
339
  life: 3e3
337
340
  });
338
341
  } catch (e) {
339
342
  s.add({
340
343
  severity: "error",
341
- detail: we(e),
344
+ detail: Ee(e),
342
345
  life: 5e3
343
346
  });
344
347
  } finally {
345
- G.value = !1;
348
+ U.value = !1;
346
349
  }
347
350
  }
348
351
  }
349
- async function Jt() {
350
- let e = !K.value;
351
- W.value = e;
352
+ async function $t() {
353
+ let e = !G.value;
354
+ H.value = e;
352
355
  try {
353
356
  await m.setEventFavorite(r.event.id, e);
354
357
  } catch (e) {
355
- W.value = null, s.add({
358
+ H.value = null, s.add({
356
359
  severity: "error",
357
- detail: we(e),
360
+ detail: Ee(e),
358
361
  life: 5e3
359
362
  });
360
363
  }
361
364
  }
362
- async function Yt() {
363
- if (H.value) return;
364
- let e = _.value;
365
+ async function en() {
366
+ if (B.value) return;
367
+ let e = v.value;
365
368
  if (e?.nvrExport && r.event.endTime) {
366
- H.value = !0;
369
+ B.value = !0;
367
370
  try {
368
371
  let t = await e.nvrExport(r.event.cameraId, r.event.startTime * 1e3, r.event.endTime * 1e3);
369
- await Se({
372
+ await Me({
370
373
  url: t.url,
371
374
  filename: t.filename
372
375
  });
373
376
  } catch (e) {
374
377
  o.error("Download failed:", e), s.add({
375
378
  severity: "error",
376
- summary: f("views.recordings.download_failed"),
377
- detail: we(e),
379
+ summary: c("views.recordings.download_failed"),
380
+ detail: Ee(e),
378
381
  life: 5e3
379
382
  });
380
383
  } finally {
381
- H.value = !1;
384
+ B.value = !1;
382
385
  }
383
386
  }
384
387
  }
385
- return w(() => m.storeVersion.value, () => {
388
+ return ee(() => m.storeVersion.value, () => {
386
389
  let e = m.getCachedThumbnails(r.event.id);
387
390
  if (!e) {
388
- B.value && Ut();
391
+ R.value && Jt();
389
392
  return;
390
393
  }
391
- B.value = e, L(e, r.event, "card").url && (V.value = "loaded");
392
- }), ee(() => {
393
- M === "loading" && Ut();
394
+ R.value = e, pe(e, r.event, "card").url && (z.value = "loaded");
395
+ }), Pe(Be, (e) => {
396
+ let t = e[0]?.contentRect.width ?? 0, n = Math.round(t / _t) * _t;
397
+ n !== W.value && (W.value = n);
398
+ }), re(() => {
399
+ te === "loading" && Jt();
394
400
  }), (t, r) => {
395
- let i = me, o = ke, s = F, c = ve, f = Ie, p = De, m = de, _ = Te, b = ge, S = pe, w = te;
396
- return u(), T("div", {
401
+ let i = se, o = ie, s = ve, c = ke, l = Te, p = Se, m = Ae, h = ye;
402
+ return d(), T("div", {
397
403
  ref_key: "rootRef",
398
- ref: Fe,
404
+ ref: N,
399
405
  class: "recording-card relative group cursor-pointer",
400
- onClick: Wt,
401
- onMouseenter: Vt,
402
- onMouseleave: Ht
403
- }, [A("div", {
404
- class: h(["bg-neutral-900 w-full rounded-xl overflow-hidden relative transition-shadow duration-200", { "ring-2 ring-inset ring-primary/70": e.siblingActive }]),
406
+ onClickCapture: zt,
407
+ onClick: Yt,
408
+ onMouseenter: Kt,
409
+ onMouseleave: qt
410
+ }, [k("div", {
411
+ class: g(["bg-neutral-900 w-full rounded-xl overflow-hidden relative transition-shadow duration-200", { "ring-2 ring-inset ring-primary/70": e.siblingActive }]),
405
412
  style: { "aspect-ratio": "1/1" }
406
413
  }, [
407
- x(V) === "loading" ? (u(), v(i, {
408
- key: 0,
409
- width: "100%",
410
- height: "100%",
411
- class: "rounded-xl"
412
- })) : x(xt) ? (u(), T(O, { key: 1 }, [x(bt) ? (u(), T("img", {
413
- key: 0,
414
- src: x(xt),
415
- "aria-hidden": "true",
416
- class: "absolute inset-0 w-full h-full object-cover blur-xl scale-110 opacity-50 pointer-events-none"
417
- }, null, 8, We)) : y("", !0), P(o, {
418
- src: x(xt),
419
- alt: x(Ct),
414
+ S(z) === "loading" ? (d(), T("div", Ge)) : S(Tt) ? (d(), y(i, {
415
+ key: 1,
416
+ src: S(Tt),
417
+ alt: S(Dt),
420
418
  class: "pointer-events-none w-full h-full transition-transform duration-300 group-hover:scale-105",
421
- "image-style": { objectFit: x(bt) ? "contain" : "cover" },
419
+ "image-style": { objectFit: S(wt) ? "contain" : "cover" },
422
420
  "image-container-class": "w-full h-full"
423
421
  }, null, 8, [
424
422
  "src",
425
423
  "alt",
426
424
  "image-style"
427
- ])], 64)) : (u(), T("div", Ge, [(u(), v(g(x(E)[x(gt)] ?? x(E).motion), { class: "w-10 h-10 text-white/20" }))])),
428
- x(I) ? j((u(), T("canvas", {
425
+ ])) : (d(), T("div", Ke, [(d(), y(_(S(w)[S(xt)] ?? S(w).motion), { class: "w-10 h-10 text-white/20" }))])),
426
+ S(A) ? ne((d(), T("canvas", {
429
427
  key: 3,
430
428
  ref_key: "previewCanvasRef",
431
- ref: Re,
429
+ ref: Fe,
432
430
  class: "absolute inset-0 w-full h-full object-cover pointer-events-none z-[1]"
433
- }, null, 512)), [[n, x(z)]]) : y("", !0),
434
- r[2] ||= A("div", { class: "absolute inset-0 bg-transparent group-hover:bg-black/30 pointer-events-none transition-colors duration-200 z-[2]" }, null, -1),
435
- A("div", Ke, [A("div", qe, [
436
- A("p", Je, d(x(Ct)), 1),
437
- x(_t) ? (u(), T("span", Ye, d(x(_t)), 1)) : y("", !0),
438
- x(q) ? (u(), T("span", {
431
+ }, null, 512)), [[n, S(L)]]) : b("", !0),
432
+ r[2] ||= k("div", { class: "absolute inset-0 bg-transparent group-hover:bg-black/30 pointer-events-none transition-colors duration-200 z-[2]" }, null, -1),
433
+ k("div", qe, [k("div", Je, [
434
+ k("p", Ye, f(S(Dt)), 1),
435
+ S(Y) ? (d(), T("span", Xe, f(S(Y)), 1)) : b("", !0),
436
+ S(K) ? (d(), T("span", {
439
437
  key: 1,
440
- class: h(["text-[10px] font-bold text-white px-1.5 py-0.5 rounded-md shrink-0", x(q).color])
441
- }, d(x(q).label), 3)) : y("", !0),
442
- x(pt) && !e.selectionMode ? j((u(), v(f, {
438
+ class: g(["text-[10px] font-bold text-white px-1.5 py-0.5 rounded-md shrink-0", S(K).color])
439
+ }, f(S(K).label), 3)) : b("", !0),
440
+ S(vt) && !e.selectionMode ? (d(), T("button", {
443
441
  key: 2,
444
- rounded: "",
445
- text: "",
446
- severity: "secondary",
447
- class: "!w-5 !h-5 !p-0 shrink-0 bg-black/60 hover:!bg-black/80",
448
- onClick: a(Jt, ["stop"]),
442
+ title: S(G) ? t.$t("views.recordings.unfavorite") : t.$t("views.recordings.favorite"),
443
+ type: "button",
444
+ class: "card-icon-button w-5 h-5 shrink-0",
445
+ onClick: a($t, ["stop"]),
449
446
  onMouseenter: $
450
- }, {
451
- icon: C(() => [x(K) ? (u(), v(s, {
452
- key: 0,
453
- class: "w-3 h-3 text-yellow-400"
454
- })) : (u(), v(c, {
455
- key: 1,
456
- class: "w-3 h-3 text-white"
457
- }))]),
458
- _: 1
459
- })), [[
460
- w,
461
- { value: x(K) ? t.$t("views.recordings.unfavorite") : t.$t("views.recordings.favorite") },
462
- void 0,
463
- { left: !0 }
464
- ]]) : y("", !0),
465
- x(Pt).length > 0 && !e.selectionMode ? j((u(), v(f, {
447
+ }, [S(G) ? (d(), y(o, {
448
+ key: 0,
449
+ class: "w-3 h-3 text-yellow-400"
450
+ })) : (d(), y(s, {
451
+ key: 1,
452
+ class: "w-3 h-3 text-white"
453
+ }))], 40, Ze)) : b("", !0),
454
+ S(Rt).length > 0 && !e.selectionMode ? (d(), T("button", {
466
455
  key: 3,
467
- rounded: "",
468
- text: "",
469
- severity: "secondary",
470
- loading: x(H) || x(G),
471
- class: "!w-5 !h-5 !p-0 shrink-0 bg-black/60 hover:!bg-black/80",
472
- onClick: a(Gt, ["stop"]),
456
+ title: t.$t("views.recordings.more_actions"),
457
+ type: "button",
458
+ class: "card-icon-button w-5 h-5 shrink-0",
459
+ disabled: S(B) || S(U),
460
+ onClick: a(Xt, ["stop"]),
473
461
  onMouseenter: $
474
- }, {
475
- icon: C(() => [P(p, { class: "w-3 h-3 text-white" })]),
476
- _: 1
477
- }, 8, ["loading"])), [[
478
- w,
479
- { value: t.$t("views.recordings.more_actions") },
480
- void 0,
481
- { left: !0 }
482
- ]]) : y("", !0)
483
- ]), A("p", Xe, d(x(At)), 1)]),
484
- x(X).length > 1 ? (u(), T(O, { key: 4 }, [P(f, {
485
- rounded: "",
486
- text: "",
487
- severity: "secondary",
488
- class: "carousel-nav !absolute left-1 top-1/2 -translate-y-1/2 z-[3] !w-7 !h-7 !p-0 bg-black/40 hover:!bg-black/60 transition-opacity duration-200",
462
+ }, [S(B) || S(U) ? (d(), y(c, {
463
+ key: 0,
464
+ class: "w-3 h-3 text-white"
465
+ })) : (d(), y(l, {
466
+ key: 1,
467
+ class: "w-3 h-3 text-white"
468
+ }))], 40, Qe)) : b("", !0)
469
+ ]), k("p", $e, f(S(Pt)), 1)]),
470
+ S(X).length > 1 ? (d(), T(D, { key: 4 }, [k("button", {
471
+ type: "button",
472
+ class: "card-icon-button carousel-nav absolute left-1 top-1/2 -translate-y-1/2 z-[3] w-7 h-7 transition-opacity duration-200",
489
473
  "aria-label": t.$t("views.recordings.prev_image"),
490
- onClick: r[0] ||= a((e) => Lt(-1), ["stop"]),
474
+ onClick: r[0] ||= a((e) => Ht(-1), ["stop"]),
491
475
  onMouseenter: $
492
- }, {
493
- icon: C(() => [P(m, { class: "w-5 h-5 text-white" })]),
494
- _: 1
495
- }, 8, ["aria-label"]), P(f, {
496
- rounded: "",
497
- text: "",
498
- severity: "secondary",
499
- class: "carousel-nav !absolute right-1 top-1/2 -translate-y-1/2 z-[3] !w-7 !h-7 !p-0 bg-black/40 hover:!bg-black/60 transition-opacity duration-200",
476
+ }, [M(p, { class: "w-5 h-5 text-white" })], 40, et), k("button", {
477
+ type: "button",
478
+ class: "card-icon-button carousel-nav absolute right-1 top-1/2 -translate-y-1/2 z-[3] w-7 h-7 transition-opacity duration-200",
500
479
  "aria-label": t.$t("views.recordings.next_image"),
501
- onClick: r[1] ||= a((e) => Lt(1), ["stop"]),
480
+ onClick: r[1] ||= a((e) => Ht(1), ["stop"]),
502
481
  onMouseenter: $
503
- }, {
504
- icon: C(() => [P(_, { class: "w-5 h-5 text-white" })]),
505
- _: 1
506
- }, 8, ["aria-label"])], 64)) : y("", !0),
507
- x(St) ? (u(), T("div", {
482
+ }, [M(m, { class: "w-5 h-5 text-white" })], 40, tt)], 64)) : b("", !0),
483
+ S(Et) ? (d(), T("div", {
508
484
  key: 5,
509
- class: h(["absolute left-1/2 -translate-x-1/2 z-[3] max-w-[85%] pointer-events-none transition-all duration-200", x(Mt) ? "bottom-16" : "bottom-10"])
510
- }, [A("span", Ze, d(x(St)), 1)], 2)) : y("", !0),
511
- A("div", {
485
+ class: g(["absolute left-1/2 -translate-x-1/2 z-[3] max-w-[85%] pointer-events-none transition-all duration-200", S(It) ? "bottom-16" : "bottom-10"])
486
+ }, [k("span", nt, f(S(Et)), 1)], 2)) : b("", !0),
487
+ k("div", {
512
488
  ref_key: "footerRef",
513
- ref: ze,
489
+ ref: Be,
514
490
  class: "absolute bottom-2 left-2 right-2 flex items-center justify-between gap-2 z-[3]"
515
- }, [A("div", Qe, [
516
- e.selectionMode ? (u(), T("div", {
491
+ }, [k("div", rt, [
492
+ e.selectionMode ? (d(), T("div", {
517
493
  key: 0,
518
- class: h(["w-6 h-6 rounded-full border-2 flex items-center justify-center transition-colors shrink-0", e.selected ? "bg-primary border-primary" : "bg-black/40 border-white/80"])
519
- }, [e.selected ? (u(), v(b, {
494
+ class: g(["w-6 h-6 rounded-full border-2 flex items-center justify-center transition-colors shrink-0", e.selected ? "bg-primary border-primary" : "bg-black/40 border-white/80"])
495
+ }, [e.selected ? (d(), y(h, {
520
496
  key: 0,
521
497
  class: "w-4 h-4 text-white"
522
- })) : y("", !0)], 2)) : y("", !0),
523
- (u(!0), T(O, null, l(x(Tt), (e) => (u(), T("div", {
498
+ })) : b("", !0)], 2)) : b("", !0),
499
+ (d(!0), T(D, null, u(S(kt), (e) => (d(), T("div", {
524
500
  key: e,
525
501
  class: "flex items-center justify-center w-5 h-5 rounded-md bg-black/60 shrink-0"
526
- }, [(u(), v(g(x(E)[e] ?? x(E).motion), { class: "w-3 h-3 text-white/80" }))]))), 128)),
527
- x(Dt).length > 0 ? (u(), T("span", {
502
+ }, [(d(), y(_(S(w)[e] ?? S(w).motion), { class: "w-3 h-3 text-white/80" }))]))), 128)),
503
+ S(jt).length > 0 ? (d(), T("span", {
528
504
  key: 1,
529
- title: x(Dt).join(", "),
505
+ title: S(jt).join(", "),
530
506
  class: "text-[10px] text-white/60 font-medium shrink-0"
531
- }, " +" + d(x(Dt).length), 9, $e)) : y("", !0)
532
- ]), x(Ot).length > 0 || x(kt) > 0 ? (u(), T("div", et, [(u(!0), T(O, null, l(x(Ot), (e, t) => (u(), T("div", {
507
+ }, " +" + f(S(jt).length), 9, it)) : b("", !0)
508
+ ]), S(Mt).length > 0 || S(Nt) > 0 ? (d(), T("div", at, [(d(!0), T(D, null, u(S(Mt), (e, t) => (d(), T("div", {
533
509
  key: t,
534
- class: h(["w-7 h-7 rounded overflow-hidden border bg-neutral-800 cursor-pointer", t === x(yt) ? "border-primary/80" : "border-white/20"]),
535
- onClick: (e) => Rt(t, e)
536
- }, [A("img", {
510
+ class: g(["w-7 h-7 rounded overflow-hidden border bg-neutral-800 cursor-pointer", t === S(Ct) ? "border-primary/80" : "border-white/20"]),
511
+ onClick: (e) => Ut(t, e)
512
+ }, [k("img", {
537
513
  src: e.url,
538
514
  alt: e.type,
539
515
  decoding: "async",
540
516
  loading: "lazy",
541
517
  class: "w-full h-full object-cover"
542
- }, null, 8, nt)], 10, tt))), 128)), x(kt) > 0 ? (u(), T("span", rt, "+" + d(x(kt)), 1)) : y("", !0)])) : y("", !0)], 512),
543
- x(I) && x(z) && x(I).isLoading.value ? (u(), T("div", it, [P(S, {
544
- class: "w-[28px] h-[28px] m-0",
545
- "stroke-width": "6"
546
- })])) : y("", !0),
547
- x(Mt) ? (u(), T("div", at, [A("span", ot, d(x(Mt)), 1)])) : y("", !0)
548
- ], 2), P(ie, {
518
+ }, null, 8, st)], 10, ot))), 128)), S(Nt) > 0 ? (d(), T("span", ct, "+" + f(S(Nt)), 1)) : b("", !0)])) : b("", !0)], 512),
519
+ S(A) && S(L) && S(A).isLoading.value ? (d(), T("div", lt, [M(c, { class: "w-7 h-7 text-white" })])) : b("", !0),
520
+ S(It) ? (d(), T("div", ut, [k("span", dt, f(S(It)), 1)])) : b("", !0)
521
+ ], 2), S(F) ? (d(), y(fe, {
522
+ key: 0,
549
523
  ref_key: "cardMenuRef",
550
- ref: Be,
551
- items: x(Pt),
524
+ ref: P,
525
+ items: S(Rt),
552
526
  popover: { pt: { content: { class: "p-0! rounded-xl! overflow-hidden!" } } }
553
- }, null, 8, ["items"])], 544);
527
+ }, null, 8, ["items"])) : b("", !0)], 544);
554
528
  };
555
529
  }
556
- }), [["__scopeId", "data-v-7ce0bd00"]]), pt = {
530
+ }), [["__scopeId", "data-v-22b538a5"]]), vt = {
557
531
  name: "VirtualScroller",
558
- components: { SpinnerIcon: Fe },
532
+ components: { SpinnerIcon: Be },
559
533
  extends: {
560
534
  name: "BaseVirtualScroller",
561
535
  extends: i,
@@ -694,7 +668,9 @@ var He = _({
694
668
  d_loading: this.loading,
695
669
  loaderArr: [],
696
670
  spacerStyle: {},
697
- contentStyle: {}
671
+ contentStyle: {},
672
+ observedWidth: 0,
673
+ observedHeight: 0
698
674
  };
699
675
  },
700
676
  element: null,
@@ -779,7 +755,7 @@ var He = _({
779
755
  !this.initialized && this.viewInit();
780
756
  },
781
757
  unmounted() {
782
- this.unbindResizeListener(), this.initialized = !1;
758
+ this.unbindResizeListener(), this.unbindSizeObserver(), this.initialized = !1;
783
759
  },
784
760
  methods: {
785
761
  resolveItemKey(e, t) {
@@ -787,7 +763,7 @@ var He = _({
787
763
  return typeof n == "function" ? n(e, t) ?? t : typeof n == "string" && typeof e == "object" && e ? e[n] ?? t : t;
788
764
  },
789
765
  viewInit() {
790
- r(this.element) && (this.setContentEl(this.content), this.init(), this.calculateAutoSize(), this.bindResizeListener(), this.defaultWidth = t(this.element), this.defaultHeight = o(this.element), this.defaultContentWidth = t(this.content), this.defaultContentHeight = o(this.content), this.initialized = !0);
766
+ r(this.element) && (this.setContentEl(this.content), this.bindSizeObserver(), this.init(), this.calculateAutoSize(), this.bindResizeListener(), this.defaultWidth = t(this.element), this.defaultHeight = o(this.element), this.defaultContentWidth = t(this.content), this.defaultContentHeight = o(this.content), this.initialized = !0);
791
767
  },
792
768
  init() {
793
769
  this.disabled || (this.setSize(), this.calculateOptions(), this.setSpacerSize());
@@ -875,13 +851,13 @@ var He = _({
875
851
  };
876
852
  },
877
853
  calculateNumItems() {
878
- let e = this.isBoth(), t = this.isHorizontal(), n = this.itemSize, r = this.getContentPosition(), i = this.element ? this.element.offsetWidth - r.left : 0, a = this.element ? this.element.offsetHeight - r.top : 0, o = (e, t) => Math.ceil(e / (t || e)), s = (e) => Math.ceil(e / 2), c = e ? {
879
- rows: o(a, n[0]),
880
- cols: o(i, n[1])
881
- } : o(t ? i : a, n);
854
+ let e = this.isBoth(), t = this.isHorizontal(), n = this.itemSize, r = this.getContentPosition(), i = this.observedWidth || (this.element ? this.element.offsetWidth : 0), a = this.observedHeight || (this.element ? this.element.offsetHeight : 0), o = i ? i - r.left : 0, s = a ? a - r.top : 0, c = (e, t) => Math.ceil(e / (t || e)), l = (e) => Math.ceil(e / 2), u = e ? {
855
+ rows: c(s, n[0]),
856
+ cols: c(o, n[1])
857
+ } : c(t ? o : s, n);
882
858
  return {
883
- numItemsInViewport: c,
884
- numToleratedItems: this.d_numToleratedItems || (e ? [s(c.rows), s(c.cols)] : s(c))
859
+ numItemsInViewport: u,
860
+ numToleratedItems: this.d_numToleratedItems || (e ? [l(u.rows), l(u.cols)] : l(u))
885
861
  };
886
862
  },
887
863
  calculateOptions() {
@@ -914,15 +890,16 @@ var He = _({
914
890
  },
915
891
  getContentPosition() {
916
892
  if (this.content) {
893
+ if (this.cachedContentPosition && this.cachedContentElement === this.content) return this.cachedContentPosition;
917
894
  let e = getComputedStyle(this.content), t = parseFloat(e.paddingLeft) + Math.max(parseFloat(e.left) || 0, 0), n = parseFloat(e.paddingRight) + Math.max(parseFloat(e.right) || 0, 0), r = parseFloat(e.paddingTop) + Math.max(parseFloat(e.top) || 0, 0), i = parseFloat(e.paddingBottom) + Math.max(parseFloat(e.bottom) || 0, 0);
918
- return {
895
+ return this.cachedContentElement = this.content, this.cachedContentPosition = {
919
896
  left: t,
920
897
  right: n,
921
898
  top: r,
922
899
  bottom: i,
923
900
  x: t + n,
924
901
  y: r + i
925
- };
902
+ }, this.cachedContentPosition;
926
903
  }
927
904
  return {
928
905
  left: 0,
@@ -1061,6 +1038,15 @@ var He = _({
1061
1038
  bindResizeListener() {
1062
1039
  this.resizeListener || (this.resizeListener = this.onResize.bind(this), window.addEventListener("resize", this.resizeListener), window.addEventListener("orientationchange", this.resizeListener));
1063
1040
  },
1041
+ bindSizeObserver() {
1042
+ this.sizeObserver || !this.element || typeof ResizeObserver > "u" || (this.sizeObserver = new ResizeObserver((e) => {
1043
+ let t = e[0]?.borderBoxSize?.[0];
1044
+ this.observedWidth = t ? t.inlineSize : e[0]?.contentRect.width ?? 0, this.observedHeight = t ? t.blockSize : e[0]?.contentRect.height ?? 0;
1045
+ }), this.sizeObserver.observe(this.element));
1046
+ },
1047
+ unbindSizeObserver() {
1048
+ this.sizeObserver &&= (this.sizeObserver.disconnect(), null);
1049
+ },
1064
1050
  unbindResizeListener() {
1065
1051
  this.resizeListener &&= (window.removeEventListener("resize", this.resizeListener), window.removeEventListener("orientationchange", this.resizeListener), null);
1066
1052
  },
@@ -1103,21 +1089,21 @@ var He = _({
1103
1089
  this.content = e;
1104
1090
  }
1105
1091
  }
1106
- }, K = ["tabindex"];
1107
- function q(e, t, n, r, i, a) {
1092
+ }, G = ["tabindex"];
1093
+ function K(e, t, n, r, i, a) {
1108
1094
  let o = E("SpinnerIcon");
1109
- return e.disabled ? (u(), T(O, { key: 1 }, [f(e.$slots, "default"), f(e.$slots, "content", {
1095
+ return e.disabled ? (d(), T(D, { key: 1 }, [p(e.$slots, "default"), p(e.$slots, "content", {
1110
1096
  items: e.items,
1111
1097
  rows: e.items,
1112
1098
  columns: a.loadedColumns
1113
- })], 64)) : (u(), T("div", p({
1099
+ })], 64)) : (d(), T("div", m({
1114
1100
  key: 0,
1115
1101
  ref: a.elementRef,
1116
1102
  class: a.containerClass,
1117
1103
  tabindex: e.tabindex,
1118
1104
  style: e.style
1119
1105
  }, e.ptmi("root"), { onScroll: t[0] ||= (...e) => a.onScroll && a.onScroll(...e) }), [
1120
- f(e.$slots, "content", {
1106
+ p(e.$slots, "content", {
1121
1107
  styleClass: a.contentClass,
1122
1108
  items: a.loadedItems,
1123
1109
  getItemOptions: a.getOptions,
@@ -1132,162 +1118,144 @@ function q(e, t, n, r, i, a) {
1132
1118
  vertical: a.isVertical(),
1133
1119
  horizontal: a.isHorizontal(),
1134
1120
  both: a.isBoth()
1135
- }, () => [A("div", p({
1121
+ }, () => [k("div", m({
1136
1122
  ref: a.contentRef,
1137
1123
  class: a.contentClass,
1138
1124
  style: i.contentStyle
1139
- }, e.ptm("content")), [(u(!0), T(O, null, l(a.loadedItems, (t, n) => f(e.$slots, "item", {
1125
+ }, e.ptm("content")), [(d(!0), T(D, null, u(a.loadedItems, (t, n) => p(e.$slots, "item", {
1140
1126
  item: t,
1141
1127
  options: a.getOptions(n)
1142
1128
  }, void 0, void 0, a.resolveItemKey(t, n))), 128))], 16)]),
1143
- e.showSpacer ? (u(), T("div", p({
1129
+ e.showSpacer ? (d(), T("div", m({
1144
1130
  key: 0,
1145
1131
  class: "p-virtualscroller-spacer",
1146
1132
  style: i.spacerStyle
1147
- }, e.ptm("spacer")), null, 16)) : y("", !0),
1148
- !e.loaderDisabled && e.showLoader && i.d_loading ? (u(), T("div", p({
1133
+ }, e.ptm("spacer")), null, 16)) : b("", !0),
1134
+ !e.loaderDisabled && e.showLoader && i.d_loading ? (d(), T("div", m({
1149
1135
  key: 1,
1150
1136
  class: a.loaderClass
1151
- }, e.ptm("loader")), [e.$slots && e.$slots.loader ? (u(!0), T(O, { key: 0 }, l(i.loaderArr, (t, n) => f(e.$slots, "loader", { options: a.getLoaderOptions(n, a.isBoth() && { numCols: e.d_numItemsInViewport.cols }) }, void 0, void 0, n)), 128)) : y("", !0), f(e.$slots, "loadingicon", {}, () => [P(o, p({
1137
+ }, e.ptm("loader")), [e.$slots && e.$slots.loader ? (d(!0), T(D, { key: 0 }, u(i.loaderArr, (t, n) => p(e.$slots, "loader", { options: a.getLoaderOptions(n, a.isBoth() && { numCols: e.d_numItemsInViewport.cols }) }, void 0, void 0, n)), 128)) : b("", !0), p(e.$slots, "loadingicon", {}, () => [M(o, m({
1152
1138
  spin: "",
1153
1139
  class: "p-virtualscroller-loading-icon"
1154
- }, e.ptm("loadingIcon")), null, 16)])], 16)) : y("", !0)
1155
- ], 16, K));
1140
+ }, e.ptm("loadingIcon")), null, 16)])], 16)) : b("", !0)
1141
+ ], 16, G));
1156
1142
  }
1157
- var J = /*#__PURE__*/ I(pt, [["render", q]]), Y = {
1143
+ var q = /*#__PURE__*/ N(vt, [["render", K]]), J = {
1144
+ aspectRatio: 1,
1145
+ gap: 8,
1146
+ hasMore: !1,
1147
+ loadMore: void 0,
1148
+ itemKey: void 0
1149
+ }, yt = { class: "recordings-row" }, bt = {
1158
1150
  key: 1,
1159
1151
  class: "pointer-events-none absolute bottom-2 left-1/2 -translate-x-1/2 z-10 rounded-full bg-black/60 p-1.5"
1160
- }, mt = /*#__PURE__*/ I(/* @__PURE__ */ M({
1152
+ }, xt = /*#__PURE__*/ N(/* @__PURE__ */ A({
1161
1153
  __name: "CuiRecordingsGrid",
1162
- props: {
1154
+ props: /*@__PURE__*/ c({
1163
1155
  items: {},
1164
1156
  minItemWidth: {},
1165
- aspectRatio: { default: 1 },
1166
- gap: { default: 8 },
1167
- hasMore: {
1168
- type: Boolean,
1169
- default: !1
1170
- },
1171
- loadMore: {
1172
- type: Function,
1173
- default: void 0
1174
- },
1175
- itemKey: {
1176
- type: Function,
1177
- default: void 0
1178
- }
1179
- },
1157
+ aspectRatio: {},
1158
+ gap: {},
1159
+ hasMore: { type: Boolean },
1160
+ loadMore: { type: Function },
1161
+ itemKey: { type: Function }
1162
+ }, J),
1180
1163
  setup(e, { expose: t }) {
1181
- let n = e, r = k("containerRef"), { width: i, height: a } = Ae(r), o = S(() => a.value > 0 ? `${a.value}px` : void 0), s = S(() => {
1164
+ let n = e, r = O("containerRef"), { width: i, height: a } = Fe(r), o = j(0), s = j(!1), c = null, l = !1, f = C(() => a.value > 0 ? `${a.value}px` : void 0), m = C(() => {
1182
1165
  let e = i.value;
1183
- if (!e) return 0;
1184
- let t = n.gap;
1185
- return Math.max(1, Math.floor((e + t) / (n.minItemWidth + t)));
1186
- }), c = S(() => {
1187
- let e = i.value, t = s.value;
1166
+ return e ? Math.max(1, Math.floor((e + n.gap) / (n.minItemWidth + n.gap))) : 0;
1167
+ }), g = C(() => {
1168
+ let e = i.value, t = m.value;
1188
1169
  return !e || !t ? 0 : Math.floor((e - (t - 1) * n.gap) / t);
1189
- }), d = S(() => c.value ? Math.floor(c.value / n.aspectRatio) : 0), p = S(() => d.value ? d.value + n.gap : 0), h = S(() => {
1190
- let e = s.value;
1170
+ }), _ = C(() => g.value ? Math.floor(g.value / n.aspectRatio) : 0), v = C(() => _.value ? _.value + n.gap : 0), x = C(() => {
1171
+ let e = m.value;
1191
1172
  if (!e) return [];
1192
1173
  let t = [];
1193
1174
  for (let r = 0; r < n.items.length; r += e) t.push(n.items.slice(r, r + e));
1194
1175
  return t;
1195
1176
  });
1196
- function g(e) {
1177
+ function E(e) {
1197
1178
  if (n.itemKey) return n.itemKey(e);
1198
1179
  let t = e;
1199
1180
  return t.id ?? t.key ?? JSON.stringify(e);
1200
1181
  }
1201
- function _(e) {
1182
+ function ne(e) {
1202
1183
  let t = e;
1203
- if (t && t.length !== 0) return g(t[0]);
1184
+ if (t && t.length !== 0) return E(t[0]);
1204
1185
  }
1205
- let b = N(!1), E = null;
1206
- async function j() {
1207
- if (b.value || !n.hasMore || !n.loadMore || E !== null && n.items.length === E) return;
1208
- b.value = !0;
1186
+ async function A() {
1187
+ if (s.value || !n.hasMore || !n.loadMore || c !== null && n.items.length === c) return;
1188
+ s.value = !0;
1209
1189
  let e = n.items.length;
1210
1190
  try {
1211
1191
  await Promise.resolve(n.loadMore());
1212
1192
  } finally {
1213
- b.value = !1, E = n.items.length === e ? e : null;
1193
+ s.value = !1, c = n.items.length === e ? e : null;
1214
1194
  }
1215
1195
  }
1216
- let M = N(0);
1217
- function ee(e) {
1196
+ function re(e) {
1218
1197
  let t = e.target;
1219
- if (!t) return;
1220
- M.value = t.scrollTop;
1221
- let n = p.value * 3;
1222
- t.scrollTop + t.clientHeight >= t.scrollHeight - n && j();
1198
+ t && (o.value = t.scrollTop, t.scrollTop + t.clientHeight >= t.scrollHeight - v.value * 3 && A());
1223
1199
  }
1224
- function te() {
1200
+ function ie() {
1225
1201
  (r.value?.querySelector(".recordings-scroll"))?.scrollTo({
1226
1202
  top: 0,
1227
1203
  behavior: "smooth"
1228
1204
  });
1229
1205
  }
1230
- let F = !1;
1231
- return w([
1206
+ return te(() => {
1207
+ let e = r.value;
1208
+ e && g.value && (e.style.setProperty("--cell-w", `${g.value}px`), e.style.setProperty("--cell-h", `${_.value}px`), e.style.setProperty("--cell-gap", `${n.gap}px`));
1209
+ }), ee([
1232
1210
  () => n.items.length,
1233
1211
  a,
1234
- p,
1212
+ v,
1235
1213
  () => n.hasMore
1236
1214
  ], () => {
1237
- F || (F = !0, m(() => {
1238
- if (F = !1, !n.hasMore) return;
1239
- let e = a.value, t = h.value.length * p.value;
1240
- e > 0 && p.value > 0 && t < e + p.value && j();
1215
+ l || (l = !0, h(() => {
1216
+ l = !1, n.hasMore && v.value && a.value && x.value.length * v.value < a.value + v.value && A();
1241
1217
  }));
1242
1218
  }, { flush: "post" }), t({
1243
- scrollToTop: te,
1244
- scrollY: M
1245
- }), (t, n) => {
1246
- let i = J, a = Be;
1247
- return u(), T("div", {
1219
+ scrollToTop: ie,
1220
+ scrollY: o
1221
+ }), (e, t) => {
1222
+ let n = q, i = ke;
1223
+ return d(), T("div", {
1248
1224
  ref_key: "containerRef",
1249
1225
  ref: r,
1250
1226
  class: "recordings-grid-root relative"
1251
- }, [x(h).length > 0 && x(c) > 0 ? (u(), v(i, {
1227
+ }, [S(x).length > 0 && S(g) > 0 ? (d(), y(n, {
1252
1228
  key: 0,
1253
- items: x(h),
1254
- "item-size": x(p),
1255
- "scroll-height": x(o),
1229
+ items: S(x),
1230
+ "item-size": S(v),
1231
+ "scroll-height": S(f),
1232
+ "num-tolerated-items": S(2),
1233
+ "item-key": ne,
1256
1234
  orientation: "vertical",
1257
1235
  class: "recordings-scroll",
1258
- "num-tolerated-items": 2,
1259
- "item-key": _,
1260
- onScroll: ee
1236
+ onScroll: re
1261
1237
  }, {
1262
- item: C(({ item: n }) => [A("div", {
1263
- class: "recordings-row",
1264
- style: D({
1265
- height: `${x(p)}px`,
1266
- gap: `${e.gap}px`
1267
- })
1268
- }, [(u(!0), T(O, null, l(n, (e) => (u(), T("div", {
1269
- key: g(e),
1270
- style: D({
1271
- width: `${x(c)}px`,
1272
- height: `${x(d)}px`
1273
- })
1274
- }, [f(t.$slots, "item", { item: e }, void 0, !0)], 4))), 128))], 4)]),
1238
+ item: w(({ item: t }) => [k("div", yt, [(d(!0), T(D, null, u(t, (t) => (d(), T("div", {
1239
+ key: E(t),
1240
+ class: "recordings-cell"
1241
+ }, [p(e.$slots, "item", { item: t }, void 0, !0)]))), 128))])]),
1275
1242
  _: 3
1276
1243
  }, 8, [
1277
1244
  "items",
1278
1245
  "item-size",
1279
- "scroll-height"
1280
- ])) : y("", !0), x(b) ? (u(), T("div", Y, [P(a, {
1246
+ "scroll-height",
1247
+ "num-tolerated-items"
1248
+ ])) : b("", !0), S(s) ? (d(), T("div", bt, [M(i, {
1281
1249
  width: "18px",
1282
1250
  height: "18px",
1283
1251
  class: "text-white"
1284
- })])) : y("", !0)], 512);
1252
+ })])) : b("", !0)], 512);
1285
1253
  };
1286
1254
  }
1287
- }), [["__scopeId", "data-v-57a2aa74"]]);
1255
+ }), [["__scopeId", "data-v-1270305c"]]);
1288
1256
  //#endregion
1289
1257
  //#region src/components/CuiRecordings/ungrouped.ts
1290
- function ht(e) {
1258
+ function Y(e) {
1291
1259
  if (e.episode) return e.episode.endTime;
1292
1260
  if (e.segIndex !== void 0) {
1293
1261
  let t = e.event.segments?.[e.segIndex];
@@ -1295,7 +1263,7 @@ function ht(e) {
1295
1263
  }
1296
1264
  return e.event.thumbnailAt ?? e.event.startTime;
1297
1265
  }
1298
- function gt(e) {
1266
+ function X(e) {
1299
1267
  let t = [];
1300
1268
  for (let n of e) {
1301
1269
  let e = n.segments ?? [];
@@ -1314,7 +1282,7 @@ function gt(e) {
1314
1282
  });
1315
1283
  });
1316
1284
  }
1317
- return t.sort((e, t) => ht(t) - ht(e)), t;
1285
+ return t.sort((e, t) => Y(t) - Y(e)), t;
1318
1286
  }
1319
1287
  //#endregion
1320
- export { ft as i, ht as n, mt as r, gt as t };
1288
+ export { W as i, Y as n, xt as r, X as t };