@camera.ui/server 2.1.5 → 2.1.7

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 (254) hide show
  1. package/dist/interface/assets/{404-C0XhilKM.js → 404-D0lfw52Y.js} +1 -1
  2. package/dist/interface/assets/{About-DZsTev1Z.js → About-DaaVZ9Cn.js} +1 -1
  3. package/dist/interface/assets/{Automation-DftZGCt6.js → Automation-DQyPNAzK.js} +3 -3
  4. package/dist/interface/assets/{AutomationImport-CWz3wK45.js → AutomationImport-BDD_LuC1.js} +2 -2
  5. package/dist/interface/assets/{AutomationStore-BDgJ0e1s.js → AutomationStore-CeRF0iz6.js} +2 -2
  6. package/dist/interface/assets/{AutomationStoreDetail-BxjQz384.js → AutomationStoreDetail-DcCFUBJf.js} +2 -2
  7. package/dist/interface/assets/{Automations-CYK5CbkM.js → Automations-GMWeSNQv.js} +2 -2
  8. package/dist/interface/assets/Camera-CYxRoESX.js +2 -0
  9. package/dist/interface/assets/{CameraConsole-CNULG_YE.js → CameraConsole-B0crXI59.js} +1 -1
  10. package/dist/interface/assets/Cameras-BZkbEN1q.css +1 -0
  11. package/dist/interface/assets/Cameras-V_twilcC.js +652 -0
  12. package/dist/interface/assets/{Camview-C09leXh7.js → Camview-CSb2iVBf.js} +1 -1
  13. package/dist/interface/assets/{Camview-UCj_OW0s.css → Camview-DxxONfeK.css} +1 -1
  14. package/dist/interface/assets/Config-BKuXgZxF.js +2 -0
  15. package/dist/interface/assets/{ConfigActionCameraControl-BPfBxvxr.js → ConfigActionCameraControl-TFe1_K6j.js} +1 -1
  16. package/dist/interface/assets/{ConfigActionDelay-CZeAJTj7.js → ConfigActionDelay-DjFp5qpw.js} +1 -1
  17. package/dist/interface/assets/{ConfigActionHttp-ipkZdIWF.js → ConfigActionHttp-Cmjz4iAV.js} +1 -1
  18. package/dist/interface/assets/{ConfigActionImageInput-CvETCNjG.js → ConfigActionImageInput-B0Hll2M3.js} +1 -1
  19. package/dist/interface/assets/{ConfigActionMqtt-B8ZNU0UW.js → ConfigActionMqtt-D2boY4u0.js} +1 -1
  20. package/dist/interface/assets/{ConfigActionNotification-B-nC2J6v.js → ConfigActionNotification-7iRd0L5l.js} +1 -1
  21. package/dist/interface/assets/{ConfigActionNotificationControl-DjxS7_ID.js → ConfigActionNotificationControl-DI_t2wHh.js} +1 -1
  22. package/dist/interface/assets/{ConfigActionOutput-QG12dzwm.js → ConfigActionOutput-BTGUzNQW.js} +1 -1
  23. package/dist/interface/assets/{ConfigActionPlugin-Q2Tcpdgm.js → ConfigActionPlugin-CzspRdJx.js} +1 -1
  24. package/dist/interface/assets/{ConfigActionSensor-BTFyt4ER.js → ConfigActionSensor-CPK-s1E2.js} +1 -1
  25. package/dist/interface/assets/{ConfigActionSnapshot-DfnAex92.js → ConfigActionSnapshot-CcSw9Yw-.js} +1 -1
  26. package/dist/interface/assets/{ConfigActionVariable-COrJ-lFp.js → ConfigActionVariable-BCDtM13I.js} +1 -1
  27. package/dist/interface/assets/{ConfigConditionIfElse-Dpc6Cwpf.js → ConfigConditionIfElse-DZJkBeHI.js} +1 -1
  28. package/dist/interface/assets/{ConfigConditionSensorState-BQXY2c2t.js → ConfigConditionSensorState-CxWutq1T.js} +1 -1
  29. package/dist/interface/assets/{ConfigConditionSwitch-BuI8_3Bp.js → ConfigConditionSwitch-DBRR9cW4.js} +1 -1
  30. package/dist/interface/assets/{ConfigConditionTime-0Du7w_QE.js → ConfigConditionTime-B-5s6QW2.js} +1 -1
  31. package/dist/interface/assets/{ConfigSensorValueInput-vY0DCyRn.js → ConfigSensorValueInput-B9MmHF-E.js} +1 -1
  32. package/dist/interface/assets/{ConfigTriggerDetection-ChUtfRtm.js → ConfigTriggerDetection-DlY8ne3V.js} +1 -1
  33. package/dist/interface/assets/ConfigTriggerGeofence-DJt-3FpV.js +1 -0
  34. package/dist/interface/assets/{ConfigTriggerManual-IAo9sbiS.js → ConfigTriggerManual-BSxA9fGt.js} +1 -1
  35. package/dist/interface/assets/{ConfigTriggerMqtt-ZeRfexN1.js → ConfigTriggerMqtt-C7sFSgYi.js} +1 -1
  36. package/dist/interface/assets/{ConfigTriggerSchedule-Ct_AN-xu.js → ConfigTriggerSchedule-fqVY5k3V.js} +1 -1
  37. package/dist/interface/assets/{ConfigTriggerSensor-BJkKOmTg.js → ConfigTriggerSensor-BMZ74d8e.js} +1 -1
  38. package/dist/interface/assets/{ConfigTriggerSystem-DedCuH2F.js → ConfigTriggerSystem-B8zwJpaY.js} +1 -1
  39. package/dist/interface/assets/{ConfigTriggerWebhook-DPz9NPdp.js → ConfigTriggerWebhook-SklqcrZq.js} +1 -1
  40. package/dist/interface/assets/Console-BZB3MZKj.js +1 -0
  41. package/dist/interface/assets/CuiAutomationRunsDialog-N6NFABq2.js +1 -0
  42. package/dist/interface/assets/CuiBottomSheet-BnKYWBBA.js +1 -0
  43. package/dist/interface/assets/{CuiBottomSheet-B25DDhsj.js → CuiBottomSheet-BuK_lFkK.js} +1 -1
  44. package/dist/interface/assets/{CuiCameraPipCard-CeY7Gy9_.js → CuiCameraPipCard-DaJlFY1g.js} +1 -1
  45. package/dist/interface/assets/CuiCameraRecordings-z4WblFJ9.js +1 -0
  46. package/dist/interface/assets/{CuiCameraShares-B5pdZrh3.js → CuiCameraShares-CvKMe_kX.js} +1 -1
  47. package/dist/interface/assets/{CuiCameraTable-BhUWRnwr.js → CuiCameraTable-DOPSHZ28.js} +2 -2
  48. package/dist/interface/assets/CuiCameraTable-_7KwbPyM.js +1 -0
  49. package/dist/interface/assets/{CuiConsole-CAHUWadU.js → CuiConsole-BOfQ5I3b.js} +2 -2
  50. package/dist/interface/assets/CuiDataTable-DBNU5MJ_.js +1 -0
  51. package/dist/interface/assets/{CuiLightControl-8aZiuOCv.js → CuiLightControl-CCwkaMEn.js} +1 -1
  52. package/dist/interface/assets/{CuiList-psx5r57o.js → CuiList-BOMdGNXj.js} +1 -1
  53. package/dist/interface/assets/CuiMarkdownContent-DIycyLeP.js +1 -0
  54. package/dist/interface/assets/{CuiMarkdownContent-BfJOBp3S.js → CuiMarkdownContent-PSq4kE1G.js} +1 -1
  55. package/dist/interface/assets/{CuiPluginCard-BZPiou4m.js → CuiPluginCard-CvNfBRhG.js} +2 -2
  56. package/dist/interface/assets/{CuiPluginCategoryChip-1h2moEVm.js → CuiPluginCategoryChip-JG_8D7Wt.js} +1 -1
  57. package/dist/interface/assets/{CuiPluginOAuthButton-CI5gdHHd.js → CuiPluginOAuthButton-6HQLdlfg.js} +2 -2
  58. package/dist/interface/assets/{CuiPluginTrustBadge-CqkEF6GV.js → CuiPluginTrustBadge-BS9iEcZr.js} +1 -1
  59. package/dist/interface/assets/{CuiQRCode-CQGx_k0S.js → CuiQRCode-Vd-1ssJK.js} +1 -1
  60. package/dist/interface/assets/{CuiRecordingsGrid-CLNQoUbw.js → CuiRecordingsGrid-skKnK074.js} +1 -1
  61. package/dist/interface/assets/CuiSchema-DvY3Bdnz.js +1 -0
  62. package/dist/interface/assets/{CuiTopNavbarItem-BekRyj7O.js → CuiTopNavbarItem-MCdYsYHh.js} +1 -1
  63. package/dist/interface/assets/Faces-DDTbgPtz.js +1 -0
  64. package/dist/interface/assets/{FirstSteps-BTDj1olc.js → FirstSteps-T4ra4jxE.js} +1 -1
  65. package/dist/interface/assets/{Instances-DTqwb5FF.js → Instances-D_Td0oJ-.js} +1 -1
  66. package/dist/interface/assets/{Logs-D8LlWlQ2.js → Logs-DEQlc2WM.js} +2 -2
  67. package/dist/interface/assets/{Menu-Cb5cBA-q.js → Menu-0EVo1-xs.js} +1 -1
  68. package/dist/interface/assets/Metrics-BstlZavQ.css +1 -0
  69. package/dist/interface/assets/Metrics-FFvFP2kR.js +1 -0
  70. package/dist/interface/assets/{OAuthDeviceFlow-CExQxxt6.js → OAuthDeviceFlow--YqcKa9u.js} +1 -1
  71. package/dist/interface/assets/{Plugin-DtkmtFL6.js → Plugin-CKcptqV9.js} +1 -1
  72. package/dist/interface/assets/{PluginConsole-CktnZFCJ.js → PluginConsole-BB_dbd25.js} +1 -1
  73. package/dist/interface/assets/{PluginDetail-t5V-ATem.js → PluginDetail-Y_jg8hAX.js} +2 -2
  74. package/dist/interface/assets/{PluginSchema-DgXUaGQ2.js → PluginSchema-C4dQGJOV.js} +1 -1
  75. package/dist/interface/assets/PluginSearch-D2efYsof.js +1 -0
  76. package/dist/interface/assets/{PluginSearch-D8qXgkEP.js → PluginSearch-gY-PHMyu.js} +2 -2
  77. package/dist/interface/assets/{PluginUpdateProgress-B9GSD9wl.js → PluginUpdateProgress-BjeH5abL.js} +1 -1
  78. package/dist/interface/assets/{Plugins-CMjhJaUC.js → Plugins-Kz1A-VUA.js} +1 -1
  79. package/dist/interface/assets/Recordings-BlBmyZlM.js +1 -0
  80. package/dist/interface/assets/SensorEdit-CZyv_BYp.js +1 -0
  81. package/dist/interface/assets/{SensorHistory-D8xQKiuE.js → SensorHistory-Mr03IqiL.js} +1 -1
  82. package/dist/interface/assets/Sensors-CHbtecpf.js +2 -0
  83. package/dist/interface/assets/{Settings-D8L1oiQx.css → Settings-B1MnGPuf.css} +1 -1
  84. package/dist/interface/assets/Settings-CIv_iZ_m.js +1 -0
  85. package/dist/interface/assets/SettingsAccount-DA67jXmp.js +1 -0
  86. package/dist/interface/assets/SettingsAccount-DPPwXOlM.js +1 -0
  87. package/dist/interface/assets/SettingsAppearance-C92Nlobb.js +1 -0
  88. package/dist/interface/assets/{SettingsAppearance-CCf7QwkP.js → SettingsAppearance-DEQyCR5b.js} +1 -1
  89. package/dist/interface/assets/{SettingsBackup-DSARU1qG.js → SettingsBackup-4y9MuseJ.js} +1 -1
  90. package/dist/interface/assets/{SettingsList-imzWFgaD.js → SettingsList-DqyvUuS3.js} +1 -1
  91. package/dist/interface/assets/{SettingsMqtt-DkEqSLI4.js → SettingsMqtt-CuTZBTrA.js} +1 -1
  92. package/dist/interface/assets/SettingsNotifications-D7Vs6NoU.js +1 -0
  93. package/dist/interface/assets/SettingsPermissions-C_8g_nff.js +1 -0
  94. package/dist/interface/assets/SettingsRecordings-r9AwjQZX.js +1 -0
  95. package/dist/interface/assets/{SettingsRemote-DXw6kYER.js → SettingsRemote-oDVzvhmy.js} +1 -1
  96. package/dist/interface/assets/{SettingsSystem-BctqXTc5.js → SettingsSystem-QfBIPq4i.js} +2 -2
  97. package/dist/interface/assets/SettingsUsers-CqRJ8-7H.js +1 -0
  98. package/dist/interface/assets/{Terminal-CPOkeiZ5.js → Terminal-Xo2uy0RX.js} +3 -3
  99. package/dist/interface/assets/{VariableInput-DfDRe6bt.js → VariableInput-C3Jbe-vC.js} +1 -1
  100. package/dist/interface/assets/{VariableSuggestions-CjlK2Uqx.js → VariableSuggestions-pOrYkqys.js} +1 -1
  101. package/dist/interface/assets/{VersionsHandler-BEWveXqP.js → VersionsHandler-BhBynPF8.js} +1 -1
  102. package/dist/interface/assets/{VirtualSensorCreate-CUTyLWv-.js → VirtualSensorCreate-B3bwlAJz.js} +1 -1
  103. package/dist/interface/assets/{Workers-B_G_FZls.js → Workers-tgzMqP3o.js} +2 -2
  104. package/dist/interface/assets/api-1K2Gzz8B.js +2 -0
  105. package/dist/interface/assets/{api-BrAt3E8w.js → api-B7yg8bdk.js} +1 -1
  106. package/dist/interface/assets/api-Bj4QRftG.css +2 -0
  107. package/dist/interface/assets/auth-y-X5RKO6.js +1 -0
  108. package/dist/interface/assets/{automations-C1EJke-z.js → automations-h1Wvnh36.js} +1 -1
  109. package/dist/interface/assets/cameras.schema-CKnsFYBP.js +1 -0
  110. package/dist/interface/assets/cloudHandoff-qezHiAZI.js +1 -0
  111. package/dist/interface/assets/{config-Bq4jYnKb.js → config-BZTZOfxI.js} +1 -1
  112. package/dist/interface/assets/{flowSchema-okQoWkh6.js → flowSchema-Dxxlrn77.js} +1 -1
  113. package/dist/interface/assets/main-Ei2ORV9y.js +3 -0
  114. package/dist/interface/assets/main-kdyR9bI7.css +1 -0
  115. package/dist/interface/assets/{mqtt-DtPGnb1K.js → mqtt-CCq5JGGk.js} +1 -1
  116. package/dist/interface/assets/{notifications-CtZcAwQu.js → notifications-C8eyTPRM.js} +1 -1
  117. package/dist/interface/assets/{plugins-BK7kZLJw.js → plugins-D0Txz0BA.js} +1 -1
  118. package/dist/interface/assets/round-restart-alt-Bw-T1H6w.js +1 -0
  119. package/dist/interface/assets/round-restart-alt-CmrjVFat.css +1 -0
  120. package/dist/interface/assets/{sensorIcons-C9h8rHR6.js → sensorIcons-r5wmAxeD.js} +1 -1
  121. package/dist/interface/assets/{sensors-Bj4drsO3.js → sensors-MIbrTUSa.js} +1 -1
  122. package/dist/interface/assets/{server-D-ogiovS.js → server-alwZXRo-.js} +1 -1
  123. package/dist/interface/assets/{theme-DGxZC_Ti.js → theme-qmnHJ2WT.js} +1 -1
  124. package/dist/interface/assets/types-BTVMzSuj.js +1 -0
  125. package/dist/interface/assets/{types-B1G3t3XJ.js → types-DBWHsh0W.js} +1 -1
  126. package/dist/interface/assets/{useAppVersion-Ceg42BEw.js → useAppVersion-BRc6OWZP.js} +1 -1
  127. package/dist/interface/assets/{useBackupRestore-BwnYTBUM.js → useBackupRestore-DCO_Pw9q.js} +1 -1
  128. package/dist/interface/assets/{useCameraOptions-BxVd91Ew.js → useCameraOptions-DYZKQx7X.js} +1 -1
  129. package/dist/interface/assets/{useElectron-BNGXeZEx.js → useElectron-CtslU_0f.js} +1 -1
  130. package/dist/interface/assets/{useLogsSocket-0JucMhVY.js → useLogsSocket-DvwkpzT2.js} +1 -1
  131. package/dist/interface/assets/{useNavLayout-CTTy15kG.js → useNavLayout-CTX4KBkz.js} +1 -1
  132. package/dist/interface/assets/{usePermissions-C9kp5HQR.js → usePermissions-DpsfFydh.js} +1 -1
  133. package/dist/interface/assets/{usePluginUpdates-B9k-vTcT.js → usePluginUpdates-CiqRTrjF.js} +1 -1
  134. package/dist/interface/assets/usePushRegistration-Coz8RZob.js +2 -0
  135. package/dist/interface/assets/{useServerRestart-D7dAWdQ6.js → useServerRestart-Bqpn8N4T.js} +1 -1
  136. package/dist/interface/assets/{useStreamStatus-BlV_fFBy.js → useStreamStatus-BWCnwuaj.js} +1 -1
  137. package/dist/interface/assets/{useUpdateChannel-BeP49Gm-.js → useUpdateChannel-Cxm4QR-6.js} +1 -1
  138. package/dist/interface/assets/{useUserOptions-B8UiLDx4.js → useUserOptions-B2LNsU9C.js} +1 -1
  139. package/dist/interface/assets/{vendor-cameraui-GaXYUHUd.js → vendor-cameraui-C6beJsya.js} +44 -44
  140. package/dist/interface/assets/vendor-core-_ft7qIgH.js +1 -0
  141. package/dist/interface/assets/{vendor-markdown-BDjboykr.js → vendor-markdown-Bw_90xkF.js} +2 -2
  142. package/dist/interface/assets/{vendor-primevue-CIRUBYsf.js → vendor-primevue-DfyAPSov.js} +1 -1
  143. package/dist/interface/index.html +25 -25
  144. package/dist/interface/sw.js +1 -1
  145. package/dist/server/package.json +5 -5
  146. package/dist/server/requirements.txt +1 -1
  147. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/__init__.py +4 -0
  148. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/camera/__init__.py +4 -0
  149. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/camera/config.py +3 -0
  150. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/camera/detection.py +26 -1
  151. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/camera/device.py +6 -1
  152. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/camera/events.py +2 -0
  153. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/plugin/notifier.py +6 -0
  154. package/dist/server/src/api/controllers/cameras.controller.d.ts +3 -1
  155. package/dist/server/src/api/controllers/cameras.controller.js +37 -0
  156. package/dist/server/src/api/controllers/cameras.controller.js.map +1 -1
  157. package/dist/server/src/api/controllers/notifications.controller.d.ts +5 -0
  158. package/dist/server/src/api/controllers/notifications.controller.js +27 -0
  159. package/dist/server/src/api/controllers/notifications.controller.js.map +1 -1
  160. package/dist/server/src/api/database/types.d.ts +1 -0
  161. package/dist/server/src/api/routes/cameras.routes.js +24 -1
  162. package/dist/server/src/api/routes/cameras.routes.js.map +1 -1
  163. package/dist/server/src/api/routes/notifications.routes.js +11 -0
  164. package/dist/server/src/api/routes/notifications.routes.js.map +1 -1
  165. package/dist/server/src/api/schemas/cameras.schema.d.ts +43 -0
  166. package/dist/server/src/api/schemas/cameras.schema.js +15 -0
  167. package/dist/server/src/api/schemas/cameras.schema.js.map +1 -1
  168. package/dist/server/src/api/services/cameras.service.d.ts +2 -1
  169. package/dist/server/src/api/services/cameras.service.js +15 -0
  170. package/dist/server/src/api/services/cameras.service.js.map +1 -1
  171. package/dist/server/src/api/services/notifications.service.d.ts +1 -0
  172. package/dist/server/src/api/services/notifications.service.js +3 -0
  173. package/dist/server/src/api/services/notifications.service.js.map +1 -1
  174. package/dist/server/src/api/types/index.d.ts +4 -1
  175. package/dist/server/src/api/websocket/nsp/metrics.d.ts +5 -0
  176. package/dist/server/src/api/websocket/nsp/metrics.js +65 -1
  177. package/dist/server/src/api/websocket/nsp/metrics.js.map +1 -1
  178. package/dist/server/src/api/websocket/nsp/server.d.ts +3 -0
  179. package/dist/server/src/api/websocket/nsp/server.js +17 -0
  180. package/dist/server/src/api/websocket/nsp/server.js.map +1 -1
  181. package/dist/server/src/api/websocket/types.d.ts +26 -0
  182. package/dist/server/src/camera/controller.js +1 -0
  183. package/dist/server/src/camera/controller.js.map +1 -1
  184. package/dist/server/src/camera/decoder/child.d.ts +4 -1
  185. package/dist/server/src/camera/decoder/child.js +19 -0
  186. package/dist/server/src/camera/decoder/child.js.map +1 -1
  187. package/dist/server/src/camera/decoder/detection-coordinator.d.ts +6 -2
  188. package/dist/server/src/camera/decoder/detection-coordinator.js +34 -10
  189. package/dist/server/src/camera/decoder/detection-coordinator.js.map +1 -1
  190. package/dist/server/src/camera/decoder/event-manager.d.ts +3 -1
  191. package/dist/server/src/camera/decoder/event-manager.js +34 -6
  192. package/dist/server/src/camera/decoder/event-manager.js.map +1 -1
  193. package/dist/server/src/camera/decoder/nvr-sink.js +1 -1
  194. package/dist/server/src/camera/decoder/nvr-sink.js.map +1 -1
  195. package/dist/server/src/camera/decoder/{debug/perf-tracker.d.ts → perf-tracker.d.ts} +10 -1
  196. package/dist/server/src/camera/decoder/{debug/perf-tracker.js → perf-tracker.js} +56 -17
  197. package/dist/server/src/camera/decoder/perf-tracker.js.map +1 -0
  198. package/dist/server/src/camera/decoder/types.d.ts +32 -0
  199. package/dist/server/src/camera/decoder/worker.d.ts +2 -0
  200. package/dist/server/src/camera/decoder/worker.js +27 -1
  201. package/dist/server/src/camera/decoder/worker.js.map +1 -1
  202. package/dist/server/src/camera/index.d.ts +2 -1
  203. package/dist/server/src/camera/index.js +3 -0
  204. package/dist/server/src/camera/index.js.map +1 -1
  205. package/dist/server/src/camera/utils/filter.d.ts +3 -0
  206. package/dist/server/src/camera/utils/filter.js +12 -8
  207. package/dist/server/src/camera/utils/filter.js.map +1 -1
  208. package/dist/server/src/manager/notificationManager.d.ts +2 -0
  209. package/dist/server/src/manager/notificationManager.js +23 -1
  210. package/dist/server/src/manager/notificationManager.js.map +1 -1
  211. package/dist/server/src/plugins/runtime/python/proxy/camera_device.py +5 -0
  212. package/dist/server/src/rpc/interfaces/frameworker.d.ts +4 -1
  213. package/dist/server/src/workers/manager.js +2 -0
  214. package/dist/server/src/workers/manager.js.map +1 -1
  215. package/package.json +5 -5
  216. package/dist/interface/assets/Adminpanel-BFKj4r-J.js +0 -1
  217. package/dist/interface/assets/Camera-C7TRw5N0.js +0 -2
  218. package/dist/interface/assets/Cameras-CXWCJWzR.js +0 -652
  219. package/dist/interface/assets/Cameras-DIY20Wlh.css +0 -1
  220. package/dist/interface/assets/Config-DNOXV5ek.js +0 -2
  221. package/dist/interface/assets/ConfigTriggerGeofence-fHTNHtGp.js +0 -1
  222. package/dist/interface/assets/Console-D5hGnmUg.js +0 -1
  223. package/dist/interface/assets/CuiAutomationRunsDialog-BP-FYYXr.js +0 -1
  224. package/dist/interface/assets/CuiBottomSheet-de-zDc6R.js +0 -1
  225. package/dist/interface/assets/CuiCameraRecordings-CqwUqjAU.js +0 -1
  226. package/dist/interface/assets/CuiDataTable-DcyMAPBx.js +0 -1
  227. package/dist/interface/assets/CuiMarkdownContent-73RAjkHa.js +0 -1
  228. package/dist/interface/assets/CuiSchema-U31deYpX.js +0 -1
  229. package/dist/interface/assets/Faces-BEqO99qz.js +0 -1
  230. package/dist/interface/assets/PluginSearch-DDa1Jt8s.js +0 -1
  231. package/dist/interface/assets/Recordings-BP3-OD7P.js +0 -1
  232. package/dist/interface/assets/SensorEdit-B-64Y4xT.js +0 -1
  233. package/dist/interface/assets/Sensors-D5VXCQ6N.js +0 -2
  234. package/dist/interface/assets/Settings-B3INZjRu.js +0 -1
  235. package/dist/interface/assets/SettingsAccount-BEMYyovd.js +0 -1
  236. package/dist/interface/assets/SettingsAccount-CcPLFq2z.js +0 -1
  237. package/dist/interface/assets/SettingsAppearance-BSVGF67s.js +0 -1
  238. package/dist/interface/assets/SettingsNotifications-CE5byZci.js +0 -2
  239. package/dist/interface/assets/SettingsPermissions-DU1XvFFc.js +0 -1
  240. package/dist/interface/assets/SettingsRecordings-CSCgcxrS.js +0 -1
  241. package/dist/interface/assets/SettingsUsers-DoPPk6w5.js +0 -1
  242. package/dist/interface/assets/api-DIm7LItL.css +0 -2
  243. package/dist/interface/assets/api-Da98l_Y7.js +0 -2
  244. package/dist/interface/assets/arrow-right-outline-C24f5mwe.js +0 -1
  245. package/dist/interface/assets/auth-BdsJrXmQ.js +0 -1
  246. package/dist/interface/assets/cameras.schema-BWH_Q16D.js +0 -1
  247. package/dist/interface/assets/cloudHandoff-1DPEACLE.js +0 -1
  248. package/dist/interface/assets/main-6B8o-buJ.css +0 -1
  249. package/dist/interface/assets/main-W_rUAd4i.js +0 -3
  250. package/dist/interface/assets/round-restart-alt-SpAgbSYJ.css +0 -1
  251. package/dist/interface/assets/round-restart-alt-ctiUuhp8.js +0 -1
  252. package/dist/interface/assets/types-BCygqese.js +0 -1
  253. package/dist/interface/assets/vendor-core-DNm82LOv.js +0 -1
  254. package/dist/server/src/camera/decoder/debug/perf-tracker.js.map +0 -1
@@ -1 +0,0 @@
1
- [data-v-9e739954] tr{cursor:pointer!important}
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./ace.config-BNjBs7Fe.js","./rolldown-runtime-C0FnF6B9.js","./vendor-ace-DIEVbs6L.js","./ace-BqKKexH4.js"])))=>i.map(i=>d[i]);
2
- import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{Fr as t,Ft as ee,Vt as n,Zn as r,ci as i,jt as a}from"./vendor-cameraui-GaXYUHUd.js";import{B as te,En as o,Pn as s,st as c}from"./api-Da98l_Y7.js";import{Cn as l,Gn as u,Mn as d,Nn as f,Rt as p,Sn as m,Un as h,Xn as g,Xt as _,Yn as v,Zn as y,Zt as b,_r as x,an as S,cn as C,cr as w,dr as T,gr as E,hn as D,in as O,ir as k,jn as A,mr as j,on as M,pn as N,qn as P,rr as F,tn as I,wn as L,yr as R,zn as z}from"./vendor-BaiDFVEr.js";import{a as ne}from"./useElectron-BNGXeZEx.js";import{p as re}from"./vendor-core-DNm82LOv.js";import{o as ie}from"./vendor-primevue-CIRUBYsf.js";import{t as ae}from"./server-D-ogiovS.js";import{n as B}from"./useServerRestart-D7dAWdQ6.js";import{t as V}from"./theme-DGxZC_Ti.js";import{t as H}from"./config-Bq4jYnKb.js";import{t as oe}from"./back-filled-DcBDBvvP.js";import{n as se,t as ce}from"./zoom-in-Du1IB9oA.js";import{n as le,t as ue}from"./CuiTopNavbarItem-BekRyj7O.js";var U={lang:`yaml`,readOnly:!1,printMargin:!1,borderRadius:!1,border:!0},W={useWorker:!0,wrap:!0,showPrintMargin:!1,tabSize:2,highlightGutterLine:!0,useSoftTabs:!0,dragEnabled:!1,showGutter:!0,scrollPastEnd:.1},de=D({__name:`CuiEditor`,props:l(m({lang:{},readOnly:{type:Boolean},printMargin:{type:[Number,Boolean]},options:{},placeholder:{},borderRadius:{type:Boolean},borderTopRightRadius:{type:Boolean},borderBottomRightRadius:{type:Boolean},borderBottomLeftRadius:{type:Boolean},borderTopLeftRadius:{type:Boolean},border:{type:Boolean}},U),{modelValue:{required:!0},modelModifiers:{}}),emits:l([`init`,`blur`,`input`,`change`,`changeSelectionStyle`,`changeSession`,`copy`,`focus`,`paste`,`update:value`],[`update:modelValue`]),async setup(t,{emit:ee}){let n,r;_(e=>({v3cc736da:E(H),v66726fab:E(ae),v58e243dc:E(ie),v527a6c67:E(B),v244c42c0:E(ne)})),[n,r]=v(()=>p(()=>import(`./ace.config-BNjBs7Fe.js`),__vite__mapDeps([0,1,2]),import.meta.url)),await n,r();let a=([n,r]=v(()=>p(()=>import(`./ace-BqKKexH4.js`).then(t=>e(t.default,1)),__vite__mapDeps([3,2,1]),import.meta.url)),n=await n,r(),n),te=t,o=ee,s=h(t,`modelValue`),c=V(),{theme:l}=re(c),{readOnly:m,options:g,lang:y,printMargin:b,placeholder:x,borderRadius:S,borderBottomLeftRadius:D,borderTopLeftRadius:k,borderTopRightRadius:M,borderBottomRightRadius:N,border:F}=j(te),I=u(`editorRef`),L=T(),R=w(!1),z=w(``),ne=O(()=>S.value||M.value?`10px`:`0px`),ie=O(()=>S.value||N.value?`10px`:`0px`),ae=O(()=>S.value||D.value?`10px`:`0px`),B=O(()=>S.value||k.value?`10px`:`0px`),H=O(()=>F.value?`1px solid var(--border-color)`:`none`);return i(I,()=>{L.value&&L.value.resize(!0)}),P(s,e=>{if(z.value!==e){try{R.value=!0,L.value?.setValue(e,1)}finally{R.value=!1}z.value=e}}),P(y,e=>{L.value?.setOption(`mode`,`ace/mode/`+e)}),P(g,e=>{e&&L.value?.setOptions(e)}),P(x,e=>{e!==void 0&&L.value?.setOption(`placeholder`,e)}),P(m,e=>{L.value?.setReadOnly(e)}),P(b,e=>{L.value?.setOption(`printMargin`,e)}),P(l,e=>{if(L.value){let t=e===`dark`?`twilight`:`github`;L.value.setOption(`theme`,`ace/theme/`+t)}}),A(()=>{I.value&&(L.value=a.edit(I.value,{placeholder:x.value,readOnly:m.value,value:s.value,mode:`ace/mode/`+y.value,theme:l.value===`dark`?`ace/theme/twilight`:`ace/theme/github`,printMargin:b.value,fadeFoldWidgets:!0,...W,...g.value}),L.value.on(`change`,()=>{if(R.value)return;let e=L.value.getValue();z.value=e,s.value=e}),L.value.on(`blur`,e=>{o(`blur`,e)}),L.value.on(`input`,()=>{o(`input`)}),L.value.on(`change`,e=>{o(`change`,e)}),L.value.on(`changeSelectionStyle`,e=>{o(`changeSelectionStyle`,e)}),L.value.on(`changeSession`,e=>{o(`changeSession`,e)}),L.value.on(`copy`,e=>{o(`copy`,e)}),L.value.on(`focus`,e=>{o(`focus`,e)}),L.value.on(`paste`,e=>{o(`paste`,e.text)}),o(`init`,L.value))}),d(()=>{L.value?.removeAllListeners(),L.value?.destroy()}),(e,t)=>(f(),C(`div`,{ref_key:`editorRef`,ref:I,class:`h-full bg-none`},null,512))}}),G={viewBox:`0 0 20 20`,width:`1.2em`,height:`1.2em`};function K(e,t){return f(),C(`svg`,G,[...t[0]||=[S(`path`,{fill:`currentColor`,d:`m15.3 5.3l-6.8 6.8l-2.8-2.8l-1.4 1.4l4.2 4.2l8.2-8.2z`},null,-1)]])}var fe=k({name:`dashicons-saved`,render:K}),pe={class:`relative w-6 h-6`},me={class:`w-full h-full flex items-center justify-center`},q=D({__name:`Config`,props:{navbarWidth:{default:0},navbarLeft:{default:0}},setup(e){let i=new H,l=new ae,u=e,d=ne(),p=c(),{t:m}=t(),{smBreakpoint:h}=o(),{beginServerRestart:_}=B(),v=s(),{uiSettings:T}=re(v),{navbarWidth:D,navbarLeft:k}=j(u),V=O(()=>D.value+k.value),U=w(!1),{data:W,isBusy:G}=i.getConfigQuery(U),{data:K,isBusy:q}=i.getGo2RtcConfigQuery(U),{mutateAsync:he,isPending:ge}=i.patchConfigQuery(),{mutateAsync:_e,isPending:ve}=i.patchGo2RtcConfigQuery(),{mutateAsync:ye,isPending:be}=l.restartServerQuery(),{mutateAsync:xe,isPending:Se}=l.restartGo2RtcQuery(),J=w(`camera.ui`),Y=w(``),X=w(``),Z=w(!1),Ce=w([{label:m(`components.dialog.title.confirm`),icon:fe,buttonProps:{severity:`success`},command:()=>{p.openTextDialog({data:{title:m(`components.dialog.title.confirm`),contentText:m(`components.dialog.message.confirm_restart_server`),confirmText:m(`components.form.button.save_and_restart`),confirmButtonProps:{loading:Q.value},cancelButtonProps:{loading:Q.value}},onConfirm:we})}},{label:m(`components.form.tooltip.zoom_out`),icon:se,command:()=>{Ee()}},{label:m(`components.form.tooltip.zoom_in`),icon:ce,command:()=>{Te()}}]),Q=O(()=>G.value||q.value||ge.value||ve.value||be.value||Se.value),$=O(()=>({fontSize:T.value.config.zoom}));async function we(){try{J.value===`camera.ui`?(await he({configData:Y.value}),await r(500),_(),await ye()):(await _e({configData:X.value}),await r(500),await xe())}catch(e){d.error(e)}}function Te(){T.value.config.zoom!==20&&T.value.config.zoom++}function Ee(){T.value.config.zoom!==8&&T.value.config.zoom--}return P(W,()=>{Y.value=W.value||``},{deep:!0,immediate:!0}),P(K,()=>{X.value=K.value||``},{deep:!0,immediate:!0}),A(async()=>{await r(100),Z.value=!0}),(e,t)=>{let r=oe,i=ee,o=te,s=ue,c=le,l=ie,u=de,d=a,p=n;return f(),C(`div`,null,[N(o,{position:`left`},{default:g(()=>[N(i,{severity:`secondary`,text:``,class:`cui-button p-2 text-color non-draggable-region`,onClick:t[0]||=t=>e.$router.push(`/menu`)},{icon:g(()=>[N(r,{class:`w-6 h-6`})]),_:1})]),_:1}),N(c,{"left-offset":E(V),animate:``},{left:g(()=>[N(s,{type:`button`,label:`camera.ui`,active:E(J)===`camera.ui`,onClick:t[1]||=e=>J.value=`camera.ui`},null,8,[`active`]),N(s,{type:`button`,label:`go2rtc`,active:E(J)===`go2rtc`,onClick:t[2]||=e=>J.value=`go2rtc`},null,8,[`active`])]),_:1},8,[`left-offset`]),N(l,{model:E(Ce),direction:`up`,"transition-delay":80,"tooltip-options":{position:`left`,event:void 0},class:`absolute right-3 bottom-3 z-2`,pt:{root:{style:`pointer-events: none`}}},{button:g(({visible:e,toggleCallback:t})=>[N(i,{severity:`secondary`,class:x([`opacity-40 hover:opacity-100 active:opacity-100 focus:opacity-100 transition pointer-events-auto`,{"opacity-100":e}]),rounded:``,loading:E(Q),onClick:t},{icon:g(()=>[S(`div`,pe,[S(`div`,{class:x([`absolute top-0.5 left-1/2 -translate-x-1/2 w-1.5 h-1.5 rounded-full transform transition-all duration-100 origin-center`,{"w-4 h-[2px] rotate-45 top-1/2 -translate-y-1/2 rounded-none":e}]),style:{backgroundColor:`var(--text-color)`}},null,2),S(`div`,{class:x([`absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-1.5 h-1.5 rounded-full transition-all duration-100`,{"opacity-0 scale-0":e}]),style:{backgroundColor:`var(--text-color)`}},null,2),S(`div`,{class:x([`absolute bottom-0.5 left-1/2 -translate-x-1/2 w-1.5 h-1.5 rounded-full transform transition-all duration-100 origin-center`,{"w-4 h-[2px] -rotate-45 bottom-1/2 translate-y-1/2 rounded-none":e}]),style:{backgroundColor:`var(--text-color)`}},null,2)])]),_:2},1032,[`class`,`loading`,`onClick`])]),item:g(({item:e,toggleCallback:t})=>[y((f(),M(i,L({loading:E(Q),severity:`secondary`},e.buttonProps,{rounded:``,onClick:t}),{icon:g(()=>[(f(),M(z(e.icon)))]),_:2},1040,[`loading`,`onClick`])),[[p,{value:e.label}]])]),_:1},8,[`model`]),S(`div`,{class:`w-full h-full`,style:R({paddingTop:`${E(55)}px`})},[(f(),M(I,null,{fallback:g(()=>[S(`div`,me,[N(d,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])]),default:g(()=>[E(J)===`camera.ui`?y((f(),M(u,{key:0,modelValue:E(Y),"onUpdate:modelValue":t[3]||=e=>F(Y)?Y.value=e:null,lang:`yaml`,options:E($),"read-only":E(Q),border:!E(h),"border-bottom-left-radius":!E(h),"border-bottom-right-radius":!E(h),"border-top-right-radius":!1,"border-top-left-radius":!1},null,8,[`modelValue`,`options`,`read-only`,`border`,`border-bottom-left-radius`,`border-bottom-right-radius`])),[[b,E(Z)]]):y((f(),M(u,{key:1,modelValue:E(X),"onUpdate:modelValue":t[4]||=e=>F(X)?X.value=e:null,lang:`yaml`,options:E($),"read-only":E(Q),border:!E(h),"border-bottom-left-radius":!E(h),"border-bottom-right-radius":!E(h),"border-top-right-radius":!1,"border-top-left-radius":!1},null,8,[`modelValue`,`options`,`read-only`,`border`,`border-bottom-left-radius`,`border-bottom-right-radius`])),[[b,E(Z)]])]),_:1}))],4)])}}});export{q as default};
@@ -1 +0,0 @@
1
- import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{E as t,Fr as n,Ft as ee,M as te}from"./vendor-cameraui-GaXYUHUd.js";import{gt as ne,i as r,mr as i}from"./api-Da98l_Y7.js";import{Fn as re,Gn as a,Nn as o,On as s,Xn as c,an as l,br as u,cn as d,en as ie,fn as f,gr as p,hn as m,in as h,ir as g,pn as _,qn as v}from"./vendor-BaiDFVEr.js";import{L as ae,R as oe,_ as se,j as ce,l as le,z as ue}from"./vendor-primevue-CIRUBYsf.js";import{t as de}from"./information-outline-BQDq8w2t.js";import{i as y,n as b,r as x,t as S}from"./vendor-leaflet-Bcgd-fkG.js";import{t as C}from"./copy-BPT84cDt.js";import{t as w}from"./useUserOptions-B8UiLDx4.js";var T={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function E(e,t){return o(),d(`svg`,T,[...t[0]||=[l(`path`,{fill:`currentColor`,d:`M12 8a4 4 0 0 1 4 4a4 4 0 0 1-4 4a4 4 0 0 1-4-4a4 4 0 0 1 4-4m-8.95 5H1v-2h2.05C3.5 6.83 6.83 3.5 11 3.05V1h2v2.05c4.17.45 7.5 3.78 7.95 7.95H23v2h-2.05c-.45 4.17-3.78 7.5-7.95 7.95V23h-2v-2.05C6.83 20.5 3.5 17.17 3.05 13M12 5a7 7 0 0 0-7 7a7 7 0 0 0 7 7a7 7 0 0 0 7-7a7 7 0 0 0-7-7`},null,-1)]])}var fe=g({name:`mdi-crosshairs-gps`,render:E}),D=e(y(),1);function O(){return{getCurrentPosition:async()=>new Promise((e,t)=>{if(!navigator.geolocation){t(Error(`geolocation unavailable`));return}navigator.geolocation.getCurrentPosition(t=>e({latitude:t.coords.latitude,longitude:t.coords.longitude}),e=>t(e),{enableHighAccuracy:!0,timeout:1e4})})}}var k={class:`flex flex-col gap-4`},A={class:`flex flex-col field-gap`},j={class:`cui-label`},M={class:`flex flex-col field-gap`},N={class:`cui-label`},P={class:`flex flex-col field-gap`},F={class:`cui-label`},I={class:`flex flex-col field-gap`},L={class:`cui-label`},R={class:`flex flex-col gap-3`},z={class:`cui-label`},B={class:`flex flex-col field-gap`},V={class:`cui-label`},pe={class:`flex flex-col field-gap`},me={class:`cui-label`},he={class:`flex flex-col field-gap`},ge={class:`cui-label`},_e={key:0,class:`flex flex-col field-gap`},ve={class:`cui-label`},ye={class:`text-xs text-muted font-medium`},be={key:1,class:`cui-banner cui-banner-warn`},H=m({__name:`ConfigTriggerGeofence`,props:{data:{}},emits:[`update:data`],setup(e,{emit:m}){let g=e,y=m,{t:T}=n(),E=i(),{userOptions:H}=w(),{getCurrentPosition:xe}=O(),Se=[{label:T(`components.automation_nodes.geofence_event_enter`),value:`enter`},{label:T(`components.automation_nodes.geofence_event_leave`),value:`leave`},{label:T(`components.automation_nodes.geofence_event_both`),value:`both`}],U=a(`mapContainerRef`),W=null,G=null,K=null,q=h(()=>`${window.location.origin}/api/automations/location/${g.data.geofenceId||`...`}`),J=h(()=>Object.entries(g.data.geofenceUserSecrets??{}));function Ce(){if(!U.value)return;let e=g.data.latitude||51.505,t=g.data.longitude||-.09;W=D.map(U.value).setView([e,t],15),D.tileLayer(`https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png`,{attribution:`© OpenStreetMap`}).addTo(W);let n=D.icon({iconRetinaUrl:x,iconUrl:b,shadowUrl:S,iconSize:[25,41],iconAnchor:[12,41],popupAnchor:[1,-34],shadowSize:[41,41]});G=D.marker([e,t],{draggable:!0,icon:n}).addTo(W),K=D.circle([e,t],{radius:g.data.radius||200,color:`#3b82f6`,fillOpacity:.15,weight:2}).addTo(W),G.on(`dragend`,()=>{let e=G.getLatLng();y(`update:data`,{latitude:e.lat,longitude:e.lng}),K.setLatLng(e)})}function Y(e,t,n){W&&(W.setView([e,t],n??W.getZoom()),G?.setLatLng([e,t]),K?.setLatLng([e,t]))}function we(e){e!=null&&(y(`update:data`,{latitude:e}),Y(e,g.data.longitude))}function Te(e){e!=null&&(y(`update:data`,{longitude:e}),Y(g.data.latitude,e))}function X(e){e!=null&&($(`radius`,e),K?.setRadius(e))}function Z(){E.add({severity:`error`,summary:T(`components.toast.title_error`),detail:T(`components.automation_nodes.geofence_location_error`),life:4e3})}async function Ee(){try{let{latitude:e,longitude:t}=await xe();y(`update:data`,{latitude:e,longitude:t}),Y(e,t,16)}catch{Z()}}function Q(e){r(e)}function $(e,t){y(`update:data`,{[e]:t})}return v(U,e=>{e&&!W&&Ce()}),s(()=>{W?.remove(),W=null,G=null,K=null}),(n,r)=>{let i=te,a=fe,s=ee,m=se,h=t,g=ce,v=le,y=ue,b=ne,x=ae,S=oe,w=de;return o(),d(`div`,k,[l(`div`,A,[l(`label`,j,u(p(T)(`components.automation_nodes.geofence_zone_name`)),1),_(i,{"model-value":e.data.zoneName,placeholder:p(T)(`components.automation_nodes.geofence_zone_name_placeholder`),class:`w-full`,"onUpdate:modelValue":r[0]||=e=>$(`zoneName`,e)},null,8,[`model-value`,`placeholder`])]),l(`div`,M,[l(`label`,N,u(p(T)(`components.automation_nodes.geofence_map_hint`)),1),l(`div`,{ref_key:`mapContainerRef`,ref:U,class:`rounded-lg overflow-hidden border-[1px] border-color`,style:{height:`220px`}},null,512),_(s,{severity:`secondary`,outlined:``,label:p(T)(`components.automation_nodes.geofence_use_my_location`),class:`cui-button-small w-full`,onClick:Ee},{icon:c(()=>[_(a,{class:`w-4 h-4`})]),_:1},8,[`label`])]),l(`div`,P,[l(`label`,F,u(p(T)(`components.automation_nodes.geofence_latitude`)),1),_(m,{"model-value":e.data.latitude,"min-fraction-digits":4,"max-fraction-digits":6,class:`w-full`,"onUpdate:modelValue":we},null,8,[`model-value`])]),l(`div`,I,[l(`label`,L,u(p(T)(`components.automation_nodes.geofence_longitude`)),1),_(m,{"model-value":e.data.longitude,"min-fraction-digits":4,"max-fraction-digits":6,class:`w-full`,"onUpdate:modelValue":Te},null,8,[`model-value`])]),l(`div`,R,[l(`label`,z,u(p(T)(`components.automation_nodes.geofence_radius`)),1),_(h,{"model-value":e.data.radius||200,min:50,max:5e3,step:50,class:`w-full`,"onUpdate:modelValue":r[1]||=e=>X(Array.isArray(e)?e[0]:e)},null,8,[`model-value`]),_(m,{"model-value":e.data.radius||200,min:50,max:5e3,suffix:` m`,class:`w-full`,"onUpdate:modelValue":X},null,8,[`model-value`])]),l(`div`,B,[l(`label`,V,u(p(T)(`components.automation_nodes.geofence_event`)),1),_(g,{"model-value":e.data.event||`both`,options:Se,"option-label":`label`,"option-value":`value`,class:`w-full`,"onUpdate:modelValue":r[2]||=e=>$(`event`,e)},null,8,[`model-value`])]),l(`div`,pe,[l(`label`,me,u(p(T)(`components.automation_nodes.geofence_users`)),1),_(v,{"model-value":e.data.users,options:p(H),"option-label":`label`,"option-value":`value`,placeholder:p(T)(`components.automation_nodes.geofence_users_placeholder`),class:`w-full`,"onUpdate:modelValue":r[3]||=e=>$(`users`,e)},null,8,[`model-value`,`options`,`placeholder`]),_(y,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:c(()=>[f(u(p(T)(`components.automation_nodes.geofence_users_hint`)),1)]),_:1})]),l(`div`,he,[l(`label`,ge,u(p(T)(`components.automation_nodes.geofence_url`)),1),_(S,null,{default:c(()=>[_(i,{"model-value":p(q),readonly:``,class:`font-mono text-xs`},null,8,[`model-value`]),_(x,null,{default:c(()=>[_(b,{"action-text":p(T)(`components.automation_nodes.webhook_secret_copied`),icon:p(C),"button-props":{severity:`secondary`,text:!0},onAction:r[4]||=e=>Q(p(q))},null,8,[`action-text`,`icon`])]),_:1})]),_:1}),_(y,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:c(()=>[f(u(p(T)(`components.automation_nodes.geofence_url_hint`)),1)]),_:1})]),p(J).length?(o(),d(`div`,_e,[l(`label`,ve,u(p(T)(`components.automation_nodes.geofence_secret`)),1),(o(!0),d(ie,null,re(p(J),([e,t])=>(o(),d(`div`,{key:e,class:`flex flex-col gap-1`},[l(`span`,ye,u(e),1),_(S,null,{default:c(()=>[_(i,{"model-value":t,readonly:``,class:`font-mono text-xs`},null,8,[`model-value`]),_(x,null,{default:c(()=>[_(b,{"action-text":p(T)(`components.automation_nodes.webhook_secret_copied`),icon:p(C),"button-props":{severity:`secondary`,text:!0},onAction:e=>Q(t)},null,8,[`action-text`,`icon`,`onAction`])]),_:2},1024)]),_:2},1024)]))),128)),_(y,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:c(()=>[f(u(p(T)(`components.automation_nodes.geofence_secret_hint`)),1)]),_:1})])):(o(),d(`div`,be,[_(w,{class:`w-5 h-5 shrink-0`}),l(`span`,null,u(p(T)(`components.automation_nodes.geofence_secret_save_hint`)),1)]))])}}});export{H as default};
@@ -1 +0,0 @@
1
- import{Fr as e,Ft as t,M as n,Vt as ee,ea as r,na as i}from"./vendor-cameraui-GaXYUHUd.js";import{B as te,Dr as a,Un as ne,V as o,cn as re,i as s,mr as c,wr as l,xn as u}from"./api-Da98l_Y7.js";import{Fn as ie,Gn as d,Mn as f,Nn as p,Tn as m,Xn as h,Zn as g,_r as ae,an as _,br as v,cn as y,cr as b,dr as x,en as S,fn as C,gr as w,hn as T,in as E,ir as D,jn as O,mr as k,on as A,pn as j,rr as M,sn as N,un as oe,yr as se}from"./vendor-BaiDFVEr.js";import{F as ce,P as le}from"./vendor-primevue-CIRUBYsf.js";import{t as ue}from"./trash2-BLScx4HX.js";import{t as de}from"./search-BZkSqZO5.js";import{t as fe}from"./back-filled-DcBDBvvP.js";import{n as pe,t as me}from"./CuiTopNavbarItem-BekRyj7O.js";import{t as he}from"./arrow-left-C1N6U6kZ.js";var P={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function F(e,t){return p(),y(`svg`,P,[...t[0]||=[_(`g`,{fill:`none`,stroke:`currentColor`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`2`},[_(`path`,{d:`M3 12a9 9 0 0 1 9-9a9.75 9.75 0 0 1 6.74 2.74L21 8`}),_(`path`,{d:`M21 3v5h-5m5 4a9 9 0 0 1-9 9a9.75 9.75 0 0 1-6.74-2.74L3 16`}),_(`path`,{d:`M8 16H3v5`})],-1)]])}var ge=D({name:`lucide-refresh-cw`,render:F}),I={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function L(e,t){return p(),y(`svg`,I,[...t[0]||=[_(`g`,{fill:`none`,stroke:`currentColor`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`2`},[_(`path`,{d:`M12 15V3m9 12v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4`}),_(`path`,{d:`m7 10l5 5l5-5`})],-1)]])}var _e=D({name:`lucide-download`,render:L}),R={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function z(e,t){return p(),y(`svg`,R,[...t[0]||=[_(`g`,{fill:`none`,stroke:`currentColor`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`2`},[_(`rect`,{width:`14`,height:`14`,x:`8`,y:`8`,rx:`2`,ry:`2`}),_(`path`,{d:`M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2`})],-1)]])}var ve=D({name:`lucide-copy`,render:z}),ye={class:`h-full w-full relative`},be={key:0,class:`h-full flex flex-col items-center justify-center gap-4`},xe={class:`text-muted text-sm px-4 text-center`},Se={class:`text-muted`},Ce={class:`opacity-70`},B=T({__name:`Console`,props:{navbarWidth:{default:0},navbarLeft:{default:0}},setup(T){let D=T,P=c(),{t:F}=e(),{registerScrollToTop:I}=o(),{navbarWidth:L,navbarLeft:R}=k(D),z=E(()=>L.value+R.value),B=[`debug`,`log`,`info`,`warn`,`error`],V=b(`logs`),H=b([]),U=x([]),W=b(``),G=b([...B]),K=b(null),q=b(!1),J=d(`mobileSearchInput`),Y=d(`levelMenuRef`),X=b(i.isRecording()),we=b(`web`),Z,Q,Te,Ee=E(()=>B.map(e=>({key:e,label:F(`views.console.level.${e}`),toggle:!0,toggleState:G.value.includes(e),onClick:()=>je(e)}))),De=E(()=>{let e=W.value.trim().toLowerCase();if(V.value===`connection`)return U.value.map(e=>({t:e.t,scope:e.scope,msg:e.detail?`${e.msg} — ${e.detail}`:e.msg})).filter(t=>!e||t.msg.toLowerCase().includes(e)||t.scope.toLowerCase().includes(e));let t=new Set(G.value);return H.value.filter(n=>!(!t.has(n.level)||e&&!n.msg.toLowerCase().includes(e)))});function Oe(e){let t=new Date(e),n=(e,t=2)=>String(e).padStart(t,`0`);return`${n(t.getHours())}:${n(t.getMinutes())}:${n(t.getSeconds())}.${n(t.getMilliseconds(),3)}`}function ke(e){return e===`error`?`text-red-400`:e===`warn`?`text-amber-400`:e===`debug`?`text-sky-400`:`text-color`}function Ae(){V.value=V.value===`logs`?`connection`:`logs`,$()}function je(e){G.value=G.value.includes(e)?G.value.filter(t=>t!==e):[...G.value,e]}function Me(){q.value=!0,m(()=>J.value?.$el?.querySelector(`input`)?.focus())}function Ne(){q.value=!1,W.value=``}async function Pe(){await m(),K.value&&(K.value.scrollTop=K.value.scrollHeight)}function Fe(){K.value?.scrollTo({top:0,behavior:`smooth`})}I(Fe);function $(){H.value=i.entries(),a()&&(U.value=l().journal.list()),Pe()}function Ie(){return{platform:we.value,userAgent:navigator.userAgent,url:window.location.href,generatedAt:new Date().toISOString()}}function Le(){return V.value===`connection`?a()?l().journal.exportText():``:r({entries:H.value,context:Ie()})}async function Re(){await s(Le())?P.add({severity:`success`,summary:F(`views.console.copied`)}):P.add({severity:`error`,summary:F(`views.console.copy_failed`)})}async function ze(){let e=V.value===`connection`?`connection`:`logs`,t=new Blob([Le()],{type:`text/plain`});await u({blob:t,filename:`camera-ui-${e}-${Date.now()}.txt`,mimeType:`text/plain`})}function Be(){V.value===`connection`?a()&&l().journal.clear():i.clear(),$(),P.add({severity:`success`,summary:F(`views.console.cleared`)})}return O(()=>{if($(),Z=i.onEntries(e=>{H.value=e.slice()}),Q=i.onChange(()=>{X.value=i.isRecording()}),a()){let e=l().journal;Te=e.subscribe(()=>{U.value=e.list()})}}),f(()=>{Z?.(),Q?.(),Te?.()}),(e,r)=>{let i=fe,a=t,o=te,s=he,c=me,l=de,u=le,d=n,f=ce,m=ve,b=_e,x=ue,T=pe,E=ne,D=ge,O=re,k=ee;return p(),y(`div`,ye,[j(o,{position:`left`},{default:h(()=>[j(a,{severity:`secondary`,text:``,class:`cui-button p-2 text-color non-draggable-region`,onClick:r[0]||=t=>e.$router.back()},{icon:h(()=>[j(i,{class:`w-6 h-6`})]),_:1})]),_:1}),j(T,{"left-offset":w(z),scrollable:``,animate:``},oe({_:2},[w(q)?{name:`full`,fn:h(()=>[j(c,{class:`sm:hidden`,onClick:Ne},{icon:h(()=>[j(s,{class:`text-sm`})]),_:1}),j(f,{class:`w-full sm:hidden`},{default:h(()=>[j(u,null,{default:h(()=>[j(l,{class:`text-sm`})]),_:1}),j(d,{ref_key:`mobileSearchInput`,ref:J,modelValue:w(W),"onUpdate:modelValue":r[1]||=e=>M(W)?W.value=e:null,placeholder:e.$t(`components.form.placeholder.search`),class:`text-xs h-8 w-full`},null,8,[`modelValue`,`placeholder`])]),_:1})]),key:`0`}:void 0,w(q)?void 0:{name:`left`,fn:h(()=>[j(c,{label:e.$t(w(V)===`logs`?`views.console.source_logs`:`views.console.source_connection`),onClick:Ae},null,8,[`label`]),w(V)===`logs`?(p(),A(c,{key:0,label:e.$t(`views.console.levels`),"menu-open":w(Y)?.isOpen,onClick:r[2]||=e=>w(Y)?.toggleMenu(e)},null,8,[`label`,`menu-open`])):N(``,!0)]),key:`1`},w(q)?void 0:{name:`right`,fn:h(()=>[j(c,{class:`sm:hidden`,onClick:Me},{icon:h(()=>[j(l,{class:`text-sm`})]),_:1}),j(f,{class:`hidden sm:flex`},{default:h(()=>[j(u,null,{default:h(()=>[j(l,{class:`text-sm`})]),_:1}),j(d,{modelValue:w(W),"onUpdate:modelValue":r[3]||=e=>M(W)?W.value=e:null,placeholder:e.$t(`components.form.placeholder.search`),class:`text-xs h-8 w-40`},null,8,[`modelValue`,`placeholder`])]),_:1}),g((p(),A(c,{onClick:Re},{icon:h(()=>[j(m,{class:`text-sm`})]),_:1})),[[k,{value:e.$t(`views.console.copy`)}]]),g((p(),A(c,{onClick:ze},{icon:h(()=>[j(b,{class:`text-sm`})]),_:1})),[[k,{value:e.$t(`views.console.export`)}]]),g((p(),A(c,{onClick:Be},{icon:h(()=>[j(x,{class:`text-sm`})]),_:1})),[[k,{value:e.$t(`views.console.clear`)}]])]),key:`2`}]),1032,[`left-offset`]),_(`div`,{class:`w-full h-full flex flex-col`,style:se({paddingTop:`${w(55)}px`})},[_(`div`,{ref_key:`scrollEl`,ref:K,class:`flex-1 min-h-0 overflow-auto p-2 font-mono text-[11px] leading-snug`},[w(De).length?N(``,!0):(p(),y(`div`,be,[j(E,{class:`w-12 h-12 text-muted`}),_(`span`,xe,v(w(V)===`connection`||w(X)?e.$t(`views.console.empty`):e.$t(`views.console.recording_off`)),1)])),(p(!0),y(S,null,ie(w(De),(e,t)=>(p(),y(`div`,{key:t,class:ae([`whitespace-pre-wrap break-words py-0.5 border-b border-white/5`,ke(e.level)])},[_(`span`,Se,v(Oe(e.t)),1),_(`span`,Ce,[e.level?(p(),y(S,{key:0},[C(`[`+v(e.level.toUpperCase())+`] `,1)],64)):N(``,!0),C(`[`+v(e.scope)+`]`,1)]),C(` `+v(e.msg),1)],2))),128))],512)],4),g((p(),A(a,{severity:`secondary`,rounded:``,class:`absolute right-3 bottom-3 z-11 opacity-60 hover:opacity-100 transition`,onClick:$},{icon:h(()=>[j(D,{class:`text-sm`})]),_:1})),[[k,{value:e.$t(`views.console.refresh`)}]]),j(O,{ref_key:`levelMenuRef`,ref:Y,items:w(Ee),"auto-hide":!1,popover:{pt:{content:{class:`p-0! rounded-xl! overflow-hidden!`}}}},null,8,[`items`])])}}});export{B as default};
@@ -1 +0,0 @@
1
- import{Fr as e,Hr as t,U as n,Vt as r}from"./vendor-cameraui-GaXYUHUd.js";import{Fn as i,Nn as a,Xn as o,Zn as s,_r as c,an as l,br as u,cn as d,cr as f,en as p,fn as m,gr as h,hn as g,in as _,ir as v,on as y,pn as b,sn as x}from"./vendor-BaiDFVEr.js";import{a as S,z as ee}from"./vendor-primevue-CIRUBYsf.js";import{t as C}from"./chevron-down-D111daTn.js";import{t as w}from"./history-SuH8IHAj.js";import{t as T}from"./automations-C1EJke-z.js";import{t as E}from"./nodeDefinitions-DQQlFmPN.js";var D={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function O(e,t){return a(),d(`svg`,D,[...t[0]||=[l(`path`,{fill:`currentColor`,d:`M13 14h-2V9h2m0 9h-2v-2h2M1 21h22L12 2z`},null,-1)]])}var k=v({name:`mdi-alert`,render:O}),A={class:`flex flex-col gap-2 min-w-0`},j={key:1,class:`flex flex-col items-center gap-2 py-10`},M={class:`text-sm text-muted`},N=[`onClick`],P={class:`flex flex-col flex-1 min-w-0`},F={class:`text-sm text-color truncate`},I={class:`text-xs text-muted truncate`},L={class:`flex items-center gap-1`},R={key:0,class:`flex flex-col gap-2 border-t border-surface p-3`},z={class:`flex items-center gap-2 min-w-0`},B={class:`text-sm text-color truncate`},V={key:1,class:`text-xs text-muted shrink-0 ml-auto`},H={key:0,class:`text-xs text-red-500 pl-4 break-words`},U={key:1,class:`flex flex-col gap-1 mt-1`},W={class:`text-xs font-medium text-color`},G=g({__name:`CuiAutomationRunsDialog`,props:{flowId:{}},setup(g){let v=new T,D=g,{t:O}=e(),{data:G,isBusy:K}=v.getAutomationRunsQuery(D.flowId),q=f(new Set),J=_(()=>[...G.value??[]].sort((e,t)=>t.startedAt-e.startedAt));function Y(e){let t=new Set(q.value);t.has(e)?t.delete(e):t.add(e),q.value=t}function X(e){let t=E(e);return t?O(t.labelKey):e}function Z(e){switch(e){case`completed`:return O(`views.automations.run_completed`);case`skipped`:return O(`views.automations.run_skipped`);default:return O(`views.automations.run_error`)}}function Q(e){switch(e){case`completed`:return`bg-green-500`;case`error`:return`bg-red-500`;default:return`bg-surface-400`}}function $(e){return e<1e3?`${Math.max(0,Math.round(e))} ms`:e<6e4?`${(e/1e3).toFixed(1)} s`:`${Math.floor(e/6e4)} min ${Math.round(e%6e4/1e3)} s`}return(e,f)=>{let g=n,_=w,v=S,T=k,E=C,D=ee,G=r;return a(),d(`div`,A,[h(K)?(a(),d(p,{key:0},i(3,e=>b(g,{key:e,height:`56px`})),64)):h(J).length?(a(!0),d(p,{key:2},i(h(J),(e,n)=>(a(),d(`div`,{key:`${e.startedAt}-${n}`,class:`border border-surface rounded-lg overflow-hidden`},[l(`div`,{class:`flex items-center gap-2 p-3 cursor-pointer select-none`,onClick:e=>Y(n)},[b(v,{severity:e.status===`success`?`success`:`danger`,value:e.status===`success`?h(O)(`views.automations.run_success`):h(O)(`views.automations.run_error`),class:`shrink-0`},null,8,[`severity`,`value`]),l(`div`,P,[s((a(),d(`span`,F,[m(u(h(t)(new Date(e.startedAt))),1)])),[[G,{value:new Date(e.startedAt).toLocaleString()}]]),l(`span`,I,u(X(e.triggerType))+` · `+u($(e.finishedAt-e.startedAt)),1)]),e.warnings.length?(a(),y(v,{key:0,severity:`warn`,class:`shrink-0`},{default:o(()=>[l(`div`,L,[b(T,{class:`w-3.5 h-3.5`}),l(`span`,null,u(e.warnings.length),1)])]),_:2},1024)):x(``,!0),b(E,{class:c([`w-4 h-4 shrink-0 text-muted transition-transform`,{"rotate-180":h(q).has(n)}])},null,8,[`class`])],8,N),h(q).has(n)?(a(),d(`div`,R,[e.error?(a(),y(D,{key:0,severity:`error`,class:`text-sm`},{default:o(()=>[m(u(e.error),1)]),_:2},1024)):x(``,!0),(a(!0),d(p,null,i(e.entries,e=>(a(),d(`div`,{key:`${e.nodeId}-${e.startedAt}`,class:`flex flex-col gap-0.5`},[l(`div`,z,[s(l(`span`,{class:c([`w-2 h-2 rounded-full shrink-0`,Q(e.status)])},null,2),[[G,{value:Z(e.status)}]]),l(`span`,B,u(X(e.nodeType)),1),e.handle?(a(),y(v,{key:0,severity:`secondary`,value:e.handle,class:`shrink-0`},null,8,[`value`])):x(``,!0),e.durationMs===void 0?x(``,!0):(a(),d(`span`,V,u($(e.durationMs)),1))]),e.error?(a(),d(`span`,H,u(e.error),1)):x(``,!0)]))),128)),e.warnings.length?(a(),d(`div`,U,[l(`span`,W,u(h(O)(`views.automations.run_warnings`)),1),(a(!0),d(p,null,i(e.warnings,e=>(a(),d(`span`,{key:e,class:`text-xs text-muted break-words`},u(e),1))),128))])):x(``,!0)])):x(``,!0)]))),128)):(a(),d(`div`,j,[b(_,{class:`w-8 h-8 text-muted`}),l(`span`,M,u(h(O)(`views.automations.no_runs`)),1)]))])}}});export{G as default};
@@ -1 +0,0 @@
1
- import{t as e}from"./CuiBottomSheet-B25DDhsj.js";export{e as default};
@@ -1 +0,0 @@
1
- import{A as e,C as t,Ci as n,D as r,E as ee,Fr as i,Ft as te,M as ne,Vt as re,d as a,h as o,i as s,k as ie,vr as c,x as l,yr as u}from"./vendor-cameraui-GaXYUHUd.js";import{Cn as d,G as f,pt as p}from"./api-Da98l_Y7.js";import{Gn as m,Nn as h,Pn as g,Tn as _,Xn as v,Zn as y,an as b,bn as x,br as S,cn as C,cr as w,en as ae,gr as T,hn as E,in as D,ir as O,on as k,pn as A,rr as j,sn as M,zn as N}from"./vendor-BaiDFVEr.js";import{F as oe,P as se,U as ce}from"./vendor-primevue-CIRUBYsf.js";import{t as le}from"./ring-resize-DkY5EgVl.js";import{n as ue,t as de}from"./CuiRecordingsGrid-CLNQoUbw.js";import{t as P}from"./utils-gctUU5q_.js";var F={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function I(e,t){return h(),C(`svg`,F,[...t[0]||=[b(`g`,{fill:`none`,stroke:`currentColor`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`2`},[b(`path`,{d:`m3 3l18 18m-6-10v-1l4.553-2.276A1 1 0 0 1 21 8.618v6.764a1 1 0 0 1-.675.946`}),b(`path`,{d:`M10 6h3a2 2 0 0 1 2 2v3m0 4v1a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h1`})],-1)]])}var fe=O({name:`tabler-video-off`,render:I}),L={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function R(e,t){return h(),C(`svg`,L,[...t[0]||=[b(`path`,{fill:`none`,stroke:`currentColor`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`2`,d:`M16 17a1 1 0 1 0 2 0a1 1 0 1 0-2 0M6 7a1 1 0 1 0 2 0a1 1 0 1 0-2 0m0 11L18 6`},null,-1)]])}var pe=O({name:`tabler-percentage`,render:R}),z={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function B(e,t){return h(),C(`svg`,z,[...t[0]||=[b(`path`,{fill:`none`,stroke:`currentColor`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`2`,d:`M4 7a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2zm12-4v4M8 3v4m-4 4h16m-9 4h1m0 0v3`},null,-1)]])}var me=O({name:`tabler-calendar`,render:B}),V={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function H(e,t){return h(),C(`svg`,V,[...t[0]||=[b(`path`,{fill:`none`,stroke:`currentColor`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`2`,d:`M10 8v8m4-8v8m-6-6h8m-8 4h8M3 7V5a2 2 0 0 1 2-2h2M3 17v2a2 2 0 0 0 2 2h2M17 3h2a2 2 0 0 1 2 2v2m-4 14h2a2 2 0 0 0 2-2v-2`},null,-1)]])}var he=O({name:`tabler-grid-scan`,render:H}),U={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function W(e,t){return h(),C(`svg`,U,[...t[0]||=[b(`path`,{fill:`none`,stroke:`currentColor`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`2`,d:`M3 10a7 7 0 1 0 14 0a7 7 0 1 0-14 0m18 11l-6-6`},null,-1)]])}var ge=O({name:`tabler-search`,render:W}),G={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function K(e,t){return h(),C(`svg`,G,[...t[0]||=[b(`path`,{fill:`none`,stroke:`currentColor`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`2`,d:`M5 12h14M5 12l6 6m-6-6l6-6`},null,-1)]])}var _e=O({name:`tabler-arrow-left`,render:K}),ve={class:`flex flex-col h-full`},ye={class:`recordings-toolbar flex flex-col gap-1 py-1.5`},be={key:0,class:`flex items-center gap-1`},xe={key:0,class:`flex items-center gap-1`},Se={key:1,class:`flex items-center gap-1`},Ce={class:`flex items-center`},we={class:`flex items-center gap-1 shrink-0`},Te={class:`flex items-center`},Ee={class:`max-w-[305px]`},De={class:`w-48 flex flex-col gap-2`},Oe={class:`flex items-center justify-between text-xs`},ke={class:`text-muted`},Ae={class:`font-mono`},je={class:`flex-1 min-h-0 flex flex-col mt-3`},Me={key:1,class:`flex justify-center py-4`},Ne={key:2,class:`flex flex-col items-center justify-center py-10 gap-3`},Pe={class:`text-muted text-sm`},q=d(E({__name:`CuiCameraRecordings`,props:{cameraId:{},cameraName:{},camera:{},compact:{type:Boolean,default:!1}},emits:[`scrollToEvent`],setup(d,{emit:E}){let O=d,F=E,{t:I}=i(),L=x(p,void 0);if(typeof VideoDecoder<`u`){let e=t({cacheSize:10});g(l,e),n(()=>e.dispose())}let{icons:R,generic:z}=f(),B=new Set([`motion`,`audio`]),V=new Set(c),H=[...u.filter(e=>!B.has(e)).map(e=>({label:I(`views.recordings.type_${e}`),value:e,icon:R[e]??z})),...c.map(e=>({label:I(`views.recordings.attr_${e}`),value:e,icon:R[e]??z})),{label:I(`views.recordings.type_other`),value:s,icon:R.other??z}],U=w(!1),W=m(`mobileSearchInputRef`),G=w(``),K=w([]),q=w([]),J=w(),Y=w(0),X=m(`datePopoverRef`),Z=m(`confidencePopoverRef`),Q=D(()=>[O.cameraId]),Fe=D(()=>{let e=K.value.filter(e=>V.has(e)),t=K.value.length>0||q.value.length>0;return{types:K.value.length>0?K.value.filter(e=>!V.has(e)):void 0,triggers:q.value.length>0?q.value:void 0,attributes:e.length>0?e:void 0,search:G.value||void 0,state:`ended`,hasDetections:!t}}),{events:Ie,isLoading:Le,hasMore:Re,loadMore:ze,loadThumbnails:Be}=o({availableCameraIds:Q,cameraIds:Q,realtime:!0,pageSize:30,filter:Fe}),Ve=D(()=>J.value?J.value.toLocaleDateString([],{day:`2-digit`,month:`2-digit`,year:`numeric`}):``),$=D(()=>{let e=Ie.value.filter(e=>e.state===`ended`);if(J.value){let t=J.value,n=new Date(t.getFullYear(),t.getMonth(),t.getDate()).getTime(),r=n+864e5;e=e.filter(e=>e.startTime>=n&&e.startTime<r)}Y.value>0&&(e=e.filter(e=>a(e)>=Y.value));let t=L?.regions.value;return t&&t.length>0&&(e=e.filter(e=>e.segments.some(e=>e.detections.some(e=>e.box&&P(e.box,t))))),e});function He(){L&&(L.active.value=!L.active.value,L.active.value||(L.regions.value=[]))}function Ue(){U.value=!0,_(()=>W.value?.$el?.querySelector(`input`)?.focus())}function We(){U.value=!1,G.value=``}return(t,n)=>{let i=_e,a=te,o=ge,s=se,c=ne,l=oe,u=he,f=me,p=pe,m=r,g=ce,_=e,x=ie,w=ee,E=ue,D=le,O=fe,P=re;return h(),C(`div`,ve,[b(`div`,ye,[T(U)?(h(),C(`div`,be,[A(a,{text:``,rounded:``,severity:`secondary`,class:`shrink-0 cui-icon-md`,onClick:We},{icon:v(()=>[A(i,{width:`100%`,height:`100%`})]),_:1}),A(l,{class:`flex-1 min-w-0`},{default:v(()=>[A(s,null,{default:v(()=>[A(o,{class:`w-3.5 h-3.5`})]),_:1}),A(c,{ref_key:`mobileSearchInputRef`,ref:W,modelValue:T(G),"onUpdate:modelValue":n[0]||=e=>j(G)?G.value=e:null,placeholder:t.$t(`views.recordings.search_placeholder`),class:`w-full !text-xs !py-1.5`},null,8,[`modelValue`,`placeholder`])]),_:1})])):(h(),C(ae,{key:1},[d.compact?(h(),C(`div`,xe,[A(l,{class:`flex-1 min-w-0`},{default:v(()=>[A(s,null,{default:v(()=>[A(o,{class:`w-3.5 h-3.5`})]),_:1}),A(c,{modelValue:T(G),"onUpdate:modelValue":n[1]||=e=>j(G)?G.value=e:null,placeholder:t.$t(`views.recordings.search_placeholder`),class:`w-full !text-xs !py-1.5`},null,8,[`modelValue`,`placeholder`])]),_:1}),T(L)?y((h(),k(a,{key:0,text:``,rounded:``,class:`cui-icon-md shrink-0`,severity:T(L).active.value?`primary`:`secondary`,onClick:He},{icon:v(()=>[A(u,{width:`100%`,height:`100%`})]),_:1},8,[`severity`])),[[P,{value:t.$t(`views.recordings.grid_search`)},void 0,{top:!0}]]):M(``,!0),y((h(),k(a,{text:``,rounded:``,class:`cui-icon-md shrink-0`,severity:T(J)?`primary`:`secondary`,onClick:n[2]||=e=>T(X)?.toggle(e)},{icon:v(()=>[A(f,{width:`100%`,height:`100%`})]),_:1},8,[`severity`])),[[P,{value:T(J)?T(Ve):t.$t(`views.recordings.date`)},void 0,{top:!0}]]),y((h(),k(a,{text:``,rounded:``,class:`cui-icon-md shrink-0`,severity:T(Y)>0?`primary`:`secondary`,onClick:n[3]||=e=>T(Z)?.toggle(e)},{icon:v(()=>[A(p,{width:`100%`,height:`100%`})]),_:1},8,[`severity`])),[[P,{value:t.$t(`views.recordings.confidence`)},void 0,{top:!0}]])])):M(``,!0),d.compact?M(``,!0):(h(),C(`div`,Se,[A(m,{modelValue:T(K),"onUpdate:modelValue":n[4]||=e=>j(K)?K.value=e:null,options:H,"option-label":`label`,"option-value":`value`,multiple:``,pt:{root:{class:`flex gap-0.5`},pcToggleButton:{root:{class:`!px-2 !py-1.5 !text-xs`}}}},{option:v(({option:e})=>[y((h(),C(`div`,Ce,[(h(),k(N(e.icon),{class:`w-3.5 h-3.5`}))])),[[P,e.label,void 0,{top:!0}]])]),_:1},8,[`modelValue`]),A(g,{class:`ml-auto`,layout:`vertical`}),b(`div`,we,[T(L)?y((h(),k(a,{key:0,text:``,rounded:``,class:`cui-icon-md`,severity:T(L).active.value?`primary`:`secondary`,onClick:He},{icon:v(()=>[A(u,{width:`100%`,height:`100%`})]),_:1},8,[`severity`])),[[P,{value:t.$t(`views.recordings.grid_search`)},void 0,{top:!0}]]):M(``,!0),y((h(),k(a,{text:``,rounded:``,class:`cui-icon-md`,severity:T(J)?`primary`:`secondary`,onClick:n[5]||=e=>T(X)?.toggle(e)},{icon:v(()=>[A(f,{width:`100%`,height:`100%`})]),_:1},8,[`severity`])),[[P,{value:T(J)?T(Ve):t.$t(`views.recordings.date`)},void 0,{top:!0}]]),y((h(),k(a,{text:``,rounded:``,class:`cui-icon-md`,severity:T(Y)>0?`primary`:`secondary`,onClick:n[6]||=e=>T(Z)?.toggle(e)},{icon:v(()=>[A(p,{width:`100%`,height:`100%`})]),_:1},8,[`severity`])),[[P,{value:t.$t(`views.recordings.confidence`)},void 0,{top:!0}]]),A(l,{class:`hidden xl:flex`},{default:v(()=>[A(s,null,{default:v(()=>[A(o,{class:`w-3.5 h-3.5`})]),_:1}),A(c,{modelValue:T(G),"onUpdate:modelValue":n[7]||=e=>j(G)?G.value=e:null,placeholder:t.$t(`views.recordings.search_placeholder`),class:`!text-xs !py-1.5 !w-36`},null,8,[`modelValue`,`placeholder`])]),_:1}),y((h(),k(a,{text:``,rounded:``,severity:`secondary`,class:`xl:hidden cui-icon-md`,onClick:Ue},{icon:v(()=>[A(o,{width:`100%`,height:`100%`})]),_:1})),[[P,{value:t.$t(`views.recordings.search`)},void 0,{top:!0}]])])])),d.compact?(h(),k(m,{key:2,modelValue:T(K),"onUpdate:modelValue":n[8]||=e=>j(K)?K.value=e:null,options:H,"option-label":`label`,"option-value":`value`,fluid:``,multiple:``,pt:{root:{class:`flex gap-0.5 flex-wrap`},pcToggleButton:{root:{class:`!px-2 !py-1.5 !text-xs`}}}},{option:v(({option:e})=>[y((h(),C(`div`,Te,[(h(),k(N(e.icon),{class:`w-3.5 h-3.5`}))])),[[P,e.label,void 0,{top:!0}]])]),_:1},8,[`modelValue`])):M(``,!0)],64))]),A(x,{ref_key:`datePopoverRef`,ref:X,class:`border-none`,pt:{content:{class:`p-0`}}},{default:v(()=>[b(`div`,Ee,[A(_,{modelValue:T(J),"onUpdate:modelValue":n[9]||=e=>j(J)?J.value=e:null,"max-date":new Date,inline:``,"clear-button-props":{class:`hidden`},class:`hover:text-primary active:text-primary focus:text-primary text-muted-color`,pt:{pcInputText:{root:{class:`text-sm !text-color`}},inputIconContainer:{class:`transition-all text-current`}}},null,8,[`modelValue`,`max-date`]),T(J)?(h(),k(a,{key:0,label:t.$t(`views.recordings.grid_clear`),severity:`secondary`,outlined:``,size:`small`,class:`text-xs mt-2`,fluid:``,onClick:n[10]||=e=>J.value=void 0},null,8,[`label`])):M(``,!0)])]),_:1},512),A(x,{ref_key:`confidencePopoverRef`,ref:Z,pt:{content:{class:`p-3`}}},{default:v(()=>[b(`div`,De,[b(`div`,Oe,[b(`span`,ke,S(t.$t(`views.recordings.confidence`)),1),b(`span`,Ae,S(Math.round(T(Y)*100))+`%`,1)]),A(w,{modelValue:T(Y),"onUpdate:modelValue":n[11]||=e=>j(Y)?Y.value=e:null,min:0,max:1,step:.05,class:`w-full`},null,8,[`modelValue`]),T(Y)>0?(h(),k(a,{key:0,label:t.$t(`views.recordings.grid_clear`),severity:`secondary`,outlined:``,size:`small`,class:`text-xs`,fluid:``,onClick:n[12]||=e=>Y.value=0},null,8,[`label`])):M(``,!0)])]),_:1},512),b(`div`,je,[T($).length?(h(),k(de,{key:0,items:T($),"min-item-width":150,gap:8,"has-more":T(Re),"load-more":T(ze),"item-key":e=>e.id,class:`flex-1 min-h-0`},{item:v(({item:e})=>[A(E,{event:e,"camera-name":d.cameraName,camera:d.camera,"load-thumbnails":T(Be),onScrollToEvent:n[13]||=e=>F(`scrollToEvent`,e)},null,8,[`event`,`camera-name`,`camera`,`load-thumbnails`])]),_:1},8,[`items`,`has-more`,`load-more`,`item-key`])):M(``,!0),T(Le)?(h(),C(`div`,Me,[A(D,{width:`24px`,height:`24px`,class:`text-muted`})])):M(``,!0),!T($).length&&!T(Le)?(h(),C(`div`,Ne,[A(O,{class:`w-12 h-12 text-muted opacity-30`}),b(`p`,Pe,S(t.$t(`views.recordings.no_recordings`)),1)])):M(``,!0)])])}}}),[[`__scopeId`,`data-v-72885550`]]);export{q as default};
@@ -1 +0,0 @@
1
- import{Qr as e,ci as t}from"./vendor-cameraui-GaXYUHUd.js";import{Cn as n,Pn as r,Sr as i}from"./api-Da98l_Y7.js";import{Fn as a,Gn as o,In as s,Nn as c,Sn as l,Tn as u,Xn as d,_n as f,cn as p,cr as m,gr as h,hn as g,in as _,jn as v,pn as y,qn as b,qt as x,sn as S,un as C,vr as w,wn as T}from"./vendor-BaiDFVEr.js";import{p as E}from"./vendor-core-DNm82LOv.js";import{h as D}from"./vendor-primevue-CIRUBYsf.js";import{t as O}from"./arrow-right-outline-C24f5mwe.js";var k={paginatorTemplate:i},A={key:0,class:`pointer-events-none absolute right-[0px] top-[-10px] z-2`},j=n(g({inheritAttrs:!1,__name:`CuiDataTable`,props:l({value:{},rows:{},paginator:{type:Boolean},paginatorTemplate:{}},k),setup(n){let i=n,l=r(),{uiSettings:g}=E(l),k=o(`root`),j=m(!1),M=_(()=>i.rows??g.value.interface.tableRows),N=_(()=>i.paginator||(i.value?.length??0)>M.value);function P(){let e=k.value?.querySelector(`.p-datatable-table-container`);j.value=e?e.scrollWidth-e.clientWidth-Math.ceil(e.scrollLeft)>1:!1}return e(k,`scroll`,P,{capture:!0,passive:!0}),t(k,P),b(()=>i.value,()=>u(P)),v(()=>u(P)),(e,t)=>{let r=O,i=D;return c(),p(`div`,{ref_key:`root`,ref:k,class:`cui-datatable relative w-full`},[y(x,{name:`fade`},{default:d(()=>[h(j)?(c(),p(`div`,A,[y(r,{width:`20px`,height:`20px`,class:`opacity-15`})])):S(``,!0)]),_:1}),y(i,T(e.$attrs,{value:n.value,rows:h(M),paginator:h(N),"paginator-template":n.paginatorTemplate}),C({_:2},[a(e.$slots,(t,n)=>({name:n,fn:d(t=>[s(e.$slots,n,w(f(t??{})),void 0,!0)])}))]),1040,[`value`,`rows`,`paginator`,`paginator-template`])],512)}}}),[[`__scopeId`,`data-v-5fc70962`]]);export{j as t};
@@ -1 +0,0 @@
1
- import{t as e}from"./CuiMarkdownContent-BfJOBp3S.js";export{e as default};
@@ -1 +0,0 @@
1
- import{o as e}from"./rolldown-runtime-C0FnF6B9.js";import{Br as t,Ft as n,H as r,M as i,Vt as a}from"./vendor-cameraui-GaXYUHUd.js";import{Cn as o,Sn as s,_n as c,gt as l,ht as ee,i as u,o as d}from"./api-Da98l_Y7.js";import{$t as f,Cn as p,Fn as m,Gn as h,In as g,Ln as _,Nn as v,Pn as y,Un as b,Xn as x,Zn as S,Zt as C,_r as w,an as T,b as E,bn as D,br as O,cn as k,cr as A,en as j,fn as M,gr as N,h as te,hn as P,in as F,ir as I,mr as L,on as R,pn as z,qn as B,qt as V,rr as H,sn as U,v as W,wn as G,y as K}from"./vendor-BaiDFVEr.js";import{a as q}from"./useElectron-BNGXeZEx.js";import{_ as ne,a as re,c as J,d as Y,f as X,g as ie,h as ae,l as oe,m as Z,n as se,o as Q,p as ce,r as le,s as ue,t as $,u as de,v as fe,y as pe}from"./types-BCygqese.js";import{p as me}from"./vendor-core-DNm82LOv.js";import{D as he,E as ge,G as _e,H as ve,K as ye,L as be,O as xe,R as Se,T as Ce,W as we,_ as Te,i as Ee,j as De,k as Oe,l as ke,s as Ae,z as je}from"./vendor-primevue-CIRUBYsf.js";import{t as Me}from"./close-BNAWPz0y.js";import{t as Ne}from"./theme-DGxZC_Ti.js";var Pe=P({__name:`CuiChipGroup`,props:p({selectedClass:{},disabled:{type:Boolean},mandatory:{type:Boolean},multiple:{type:Boolean}},{modelValue:{required:!1},modelModifiers:{}}),emits:[`update:modelValue`],setup(e){let t=e,n=b(e,`modelValue`),{selectedClass:r,disabled:i,mandatory:a,multiple:o}=L(t);function s(e){if(!i.value)if(o.value){let t=[...Array.isArray(n.value)?n.value:[]];t.includes(e)?(!a.value||t.length>1)&&(t=t.filter(t=>t!==e)):t.push(e),n.value=t}else n.value===e?a.value||(n.value=void 0):n.value=e}return y(`chipGroup`,{modelValue:n,selectedClass:r,disabled:i,mandatory:a,updateSelected:s}),(e,t)=>(v(),k(`div`,{class:w([`flex flex-wrap gap-2`,{"opacity-60 pointer-events-none":N(i)}])},[g(e.$slots,`default`)],2))}}),Fe={key:0,class:`absolute left-1 top-1/2 transform -translate-y-1/2 flex items-center justify-center cui-icon-sm`},Ie=o(P({__name:`CuiChip`,props:{value:{},removable:{type:Boolean},disabled:{type:Boolean},size:{},filter:{type:Boolean}},setup(e){let{value:t,removable:n,disabled:r,size:i,filter:a}=L(e),o=D(`chipGroup`),s=F(()=>!!(r.value||o?.disabled.value)),l=F(()=>{if(!o)return!1;let e=o.modelValue.value;return Array.isArray(e)?e.includes(t.value):e===t.value}),ee=F(()=>l.value?o?.selectedClass.value:void 0);function u(){s.value||o?.updateSelected(t.value)}return(e,t)=>{let r=c,o=Ce;return v(),R(o,{removable:N(n),disabled:N(s),class:w([`cui-chip inline-flex cursor-pointer transition-all rounded-full py-1 px-2 relative justify-center items-center`,[{"cui-chip-selected":N(l),"cui-chip-disabled":N(s),"cui-chip-small":N(i)===`small`,"cui-chip-medium":N(i)===`medium`,"cui-chip-large":N(i)===`large`,"pl-7":N(a)&&N(l)},N(ee)]]),onClick:u},{default:x(()=>[z(V,{name:`fade`},{default:x(()=>[N(a)&&N(l)?(v(),k(`div`,Fe,[z(r,{width:`100%`,height:`100%`})])):U(``,!0)]),_:1}),g(e.$slots,`default`,{},void 0,!0),g(e.$slots,`append`,{},void 0,!0)]),_:3},8,[`removable`,`disabled`,`class`])}}}),[[`__scopeId`,`data-v-d10419fb`]]),Le={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function Re(e,t){return v(),k(`svg`,Le,[...t[0]||=[T(`path`,{fill:`currentColor`,d:`M17 13h-4v4h-2v-4H7v-2h4V7h2v4h4m-5-9A10 10 0 0 0 2 12a10 10 0 0 0 10 10a10 10 0 0 0 10-10A10 10 0 0 0 12 2`},null,-1)]])}var ze=I({name:`mdi-plus-circle`,render:Re}),Be={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function Ve(e,t){return v(),k(`svg`,Be,[...t[0]||=[T(`path`,{fill:`currentColor`,d:`M13 9h-2V7h2m0 10h-2v-6h2m-1-9A10 10 0 0 0 2 12a10 10 0 0 0 10 10a10 10 0 0 0 10-10A10 10 0 0 0 12 2`},null,-1)]])}var He=I({name:`mdi-information`,render:Ve}),Ue=e(te(),1),We={key:0,class:`flex flex-col field-gap`},Ge=[`for`],Ke={key:1,class:`flex flex-col field-gap`},qe=[`for`],Je=[`for`],Ye=[`for`],Xe={class:`flex items-center gap-4`},Ze={class:`flex flex-col field-switch-gap`},Qe=[`for`],$e=[`for`],et={key:8,class:`flex flex-col gap-6 border border-color-inner rounded-lg p-4`},tt={key:0,class:`flex items-center`},nt={class:`text-color text-sm`},rt={class:`flex gap-2 items-center w-full`},it={class:`text-color`},at={class:`w-full h-full flex flex-col gap-6`},ot={class:`flex flex-row w-full items-center justify-center mt-3`},st=P({__name:`CuiSchemaField`,props:p({schemaField:{},configKey:{},arrayItem:{},loading:{type:Boolean,default:!1}},{modelValue:{type:Object,required:!0},modelModifiers:{}}),emits:p([`onAction`,`onSubmit`,`onTrigger`],[`update:modelValue`]),setup(e,{emit:o}){let c=e,d=o,p=b(e,`modelValue`),h=Ne(),{theme:g}=me(h),{schemaField:y,configKey:C}=L(c),w=A(0),E=A(0),D=A(y.value.opened?[C.value]:[]),te=t(async()=>{if(Z(y.value)&&y.value.format===`qrCode`){let e;return e=g.value===`dark`?{dark:`#FFFFFFFF`,light:`#FF000000`}:{dark:`#404040FF`,light:`#FFFFFFFF`},await Ue.toDataURL(q.value||``,{margin:.5,type:`image/png`,color:e,scale:10})}},void 0,{lazy:!0}),P=F(()=>{if(!Y(y.value))return[];let e=y.value.enumLabels;return y.value.enum.map(t=>({label:e?.[t]??t,value:t}))}),I=F(()=>{if(Z(y.value)&&y.value.format===`image`)return q.value}),q=F({get:()=>(w.value,Q(p.value,C.value)),set:e=>{let t=y.value,n=e;Y(t)?n=t.multiple?Array.isArray(e)?e:[e]:e&&e.toString():Z(t)?n=e==null?``:e.toString():X(t)?n=typeof e==`number`?e:parseFloat(e)||0:J(t)&&(n=e===`true`||e===!0),pe(p.value,C.value,n),w.value++}});function ne(e){if(!e.step)return 3;let t=String(e.step),n=t.indexOf(`.`);return n===-1?0:t.length-n-1}function re(e,t){let n=Q(e,t);return Array.isArray(n)?n:[]}function se(e){let t=Q(p.value,e),n=Array.isArray(t)?[...t]:[];ue(y.value)&&y.value.items&&(n.push(le(y.value.items)),pe(p.value,e,n),E.value++)}function $(e,t){let n=Q(p.value,e);if(Array.isArray(n)){let r=[...n];r.splice(t,1),pe(p.value,e,r),E.value++,d(`onTrigger`)}}return B(p,()=>{w.value++},{deep:!0}),(t,o)=>{let c=s,h=Ee,g=i,b=Ae,w=l,A=be,F=Me,L=n,B=Se,Q=je,le=Te,de=ye,fe=De,pe=ke,me=_(`CuiSchemaField`,!0),_e=He,ve=xe,Ce=ze,we=Oe,Ne=he,Pe=ge,Fe=r,Ie=a;return v(),k(`div`,null,[N(Z)(N(y))&&N(y).format===`qrCode`?(v(),k(`div`,We,[T(`label`,{for:N(C),class:`cui-label`},O(N(y).title),9,Ge),z(c,{src:N(te),class:`mb-3`,"image-container-class":`w-full h-full`},null,8,[`src`])])):U(``,!0),N(Z)(N(y))&&N(y).format===`image`?(v(),k(`div`,Ke,[T(`label`,{for:N(C),class:`cui-label`},O(N(y).title),9,qe),z(c,{src:N(I),class:`mb-3`,"image-container-class":`w-full h-full`},null,8,[`src`])])):N(ie)(N(y))?(v(),R(N(K),{key:2,modelValue:N(q),"onUpdate:modelValue":o[2]||=e=>H(q)?q.value=e:null,modelModifiers:{trim:!0},name:N(C),as:`div`,class:`flex flex-col field-gap`},{default:x(({field:n,errors:r})=>[T(`label`,{for:N(C),class:`cui-label`},O(N(y).title),9,Je),z(B,null,{default:x(()=>[N(y).format===`textarea`?(v(),R(h,G({key:0},n,{class:`w-full`,invalid:r.length>0,readonly:N(y).readonly,placeholder:N(y).placeholder,rows:`4`,"auto-resize":``}),null,16,[`invalid`,`readonly`,`placeholder`])):N(y).format===`password`?(v(),R(b,G({key:2,"model-value":N(q),invalid:r.length>0,readonly:N(y).readonly},n,{feedback:!1,"toggle-mask":``}),null,16,[`model-value`,`invalid`,`readonly`])):(v(),R(g,G({key:1},n,{invalid:r.length>0,readonly:N(y).readonly,placeholder:N(y).placeholder,loading:e.loading,type:`text`}),null,16,[`invalid`,`readonly`,`placeholder`,`loading`])),N(y).readonly?(v(),R(A,{key:3},{default:x(()=>[z(w,{"action-text":t.$t(`components.form.tooltip.copied`),icon:N(ee),"button-props":{severity:`secondary`,text:!0},onAction:o[0]||=e=>N(u)(String(N(q)??``))},null,8,[`action-text`,`icon`])]),_:1})):U(``,!0),e.arrayItem?(v(),R(A,{key:4},{default:x(()=>[z(L,{text:``,severity:`secondary`,loading:e.loading,onClick:o[1]||=t=>$(e.arrayItem.key,e.arrayItem.index)},{icon:x(()=>[z(F)]),_:1},8,[`loading`])]),_:1})):U(``,!0)]),_:2},1024),z(V,{name:`fade`},{default:x(()=>[z(N(W),{name:N(C),class:`cui-input-error`},null,8,[`name`])]),_:1}),!r.length&&N(y).description?(v(),R(Q,{key:0,severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:x(()=>[M(O(N(y).description),1)]),_:1})):U(``,!0)]),_:1},8,[`modelValue`,`name`])):N(X)(N(y))?(v(),R(N(K),{key:3,"model-value":N(q),name:N(C),as:`div`,class:`flex flex-col field-gap`},{default:x(({field:n,errors:r})=>[T(`label`,{for:N(C),class:`cui-label`},O(N(y).title),9,Ye),z(B,null,{default:x(()=>[z(le,G(n,{modelValue:N(q),"onUpdate:modelValue":o[3]||=e=>H(q)?q.value=e:null,invalid:r.length>0,readonly:N(y).readonly,step:N(y).step||1,min:N(y).minimum,max:N(y).maximum,"max-fraction-digits":ne(N(y)),"show-buttons":!N(y).readonly,"use-grouping":!1,loading:e.loading,onValueChange:o[4]||=e=>q.value=e??void 0,onInput:o[5]||=e=>q.value=e.value??void 0}),null,16,[`modelValue`,`invalid`,`readonly`,`step`,`min`,`max`,`max-fraction-digits`,`show-buttons`,`loading`]),N(y).readonly?(v(),R(A,{key:0},{default:x(()=>[z(w,{"action-text":t.$t(`components.form.tooltip.copied`),icon:N(ee),"button-props":{severity:`secondary`,text:!0},onAction:o[6]||=e=>N(u)(String(N(q)??``))},null,8,[`action-text`,`icon`])]),_:1})):U(``,!0),e.arrayItem?(v(),R(A,{key:1},{default:x(()=>[z(L,{text:``,rounded:``,severity:`danger`,loading:e.loading,onClick:o[7]||=t=>$(e.arrayItem.key,e.arrayItem.index)},{icon:x(()=>[z(F)]),_:1},8,[`loading`])]),_:1})):U(``,!0)]),_:2},1024),z(V,{name:`fade`},{default:x(()=>[z(N(W),{name:N(C),class:`cui-input-error`},null,8,[`name`])]),_:1}),!r.length&&N(y).description?(v(),R(Q,{key:0,severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:x(()=>[M(O(N(y).description),1)]),_:1})):U(``,!0)]),_:1},8,[`model-value`,`name`])):N(J)(N(y))?(v(),R(N(K),{key:4,"model-value":N(q),value:!0,"unchecked-value":!1,type:`checkbox`,name:N(C),as:`div`,class:`flex flex-col field-gap cui-toggle-switch`},{default:x(({field:t,errors:n})=>[T(`div`,Xe,[T(`div`,Ze,[T(`label`,{for:N(C),class:`cui-label-switch`},O(N(y).title),9,Qe),z(Q,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:x(()=>[M(O(N(y).description),1)]),_:1}),z(V,{name:`fade`},{default:x(()=>[z(N(W),{name:N(C),class:`cui-input-switch-error`},null,8,[`name`])]),_:1})]),z(de,G({"model-value":N(q)},t,{invalid:n.length>0,loading:e.loading,class:`ml-auto shrink-0`,onValueChange:o[8]||=e=>q.value=e}),null,16,[`model-value`,`invalid`,`loading`])])]),_:1},8,[`model-value`,`name`])):N(Y)(N(y))?(v(),R(N(K),{key:5,"model-value":N(q),name:N(C),as:`div`,class:`flex flex-col field-gap`},{default:x(({field:t,errors:n})=>[T(`label`,{for:N(C),class:`cui-label`},O(N(y).title),9,$e),z(B,null,{default:x(()=>[N(y).multiple?(v(),R(pe,G({key:1},t,{"model-value":N(q),options:N(P),"option-label":`label`,"option-value":`value`,invalid:n.length>0,disabled:N(y).readonly,placeholder:N(y).placeholder,"show-clear":!N(y).required&&!N(y).readonly,"show-toggle-all":!1,"max-selected-labels":3,loading:e.loading,onValueChange:o[10]||=e=>q.value=e}),null,16,[`model-value`,`options`,`invalid`,`disabled`,`placeholder`,`show-clear`,`loading`])):(v(),R(fe,G({key:0},t,{"model-value":N(q),options:N(P),"option-label":`label`,"option-value":`value`,invalid:n.length>0,disabled:N(y).readonly,placeholder:N(y).placeholder,loading:e.loading,onValueChange:o[9]||=e=>q.value=e}),null,16,[`model-value`,`options`,`invalid`,`disabled`,`placeholder`,`loading`])),e.arrayItem?(v(),R(A,{key:2},{default:x(()=>[z(L,{text:``,rounded:``,severity:`danger`,loading:e.loading,onClick:o[11]||=t=>$(e.arrayItem.key,e.arrayItem.index)},{icon:x(()=>[z(F)]),_:1},8,[`loading`])]),_:1})):U(``,!0)]),_:2},1024),z(V,{name:`fade`},{default:x(()=>[z(N(W),{name:N(C),class:`cui-input-error`},null,8,[`name`])]),_:1}),!n.length&&N(y).description?(v(),R(Q,{key:0,severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:x(()=>[M(O(N(y).description),1)]),_:1})):U(``,!0)]),_:1},8,[`model-value`,`name`])):N(oe)(N(y))?(v(),k(j,{key:6},[z(L,{fluid:``,class:`mt-3 mb-1 cui-button-medium`,severity:N(y).color,loading:e.loading,label:N(y).title,onClick:o[12]||=f(e=>d(`onAction`,{key:N(C)}),[`prevent`])},null,8,[`severity`,`loading`,`label`]),N(y).description?(v(),R(Q,{key:0,severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:x(()=>[M(O(N(y).description),1)]),_:1})):U(``,!0)],64)):N(ae)(N(y))?(v(),k(j,{key:7},[z(L,{fluid:``,class:`mt-3 mb-1 cui-button-medium`,severity:N(y).color,loading:e.loading,label:N(y).title,onClick:o[13]||=f(e=>d(`onSubmit`,{key:N(y).key}),[`prevent`])},null,8,[`severity`,`loading`,`label`]),N(y).description?(v(),R(Q,{key:0,severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:x(()=>[M(O(N(y).description),1)]),_:1})):U(``,!0)],64)):N(ce)(N(y))&&N(y).properties?(v(),k(`div`,et,[e.arrayItem?(v(),k(`div`,tt,[T(`span`,nt,O(N(y).title),1),z(L,{text:``,rounded:``,severity:`danger`,class:`cui-icon-md ml-auto`,loading:e.loading,onClick:o[14]||=t=>$(e.arrayItem.key,e.arrayItem.index)},{icon:x(()=>[z(F)]),_:1},8,[`loading`])])):U(``,!0),(v(!0),k(j,null,m(N(y).properties,t=>(v(),R(me,{key:t.key,modelValue:p.value,"onUpdate:modelValue":o[15]||=e=>p.value=e,"schema-field":t,"config-key":`${N(C)}.${t.key}`,loading:e.loading,onOnAction:o[16]||=e=>d(`onAction`,e),onOnSubmit:o[17]||=e=>d(`onSubmit`,e)},null,8,[`modelValue`,`schema-field`,`config-key`,`loading`]))),128))])):N(ue)(N(y))&&N(y).items?(v(),R(Fe,{key:9,class:`cui-card border-color-inner`,pt:{body:{class:`p-1`}}},{content:x(()=>[(v(),R(Pe,{key:N(E),value:N(D),"onUpdate:value":o[24]||=e=>H(D)?D.value=e:null,multiple:``},{default:x(()=>[z(Ne,{value:N(C)??`0`,class:`border-none`},{default:x(()=>[z(ve,null,{default:x(()=>[T(`div`,rt,[N(y).description?S((v(),R(_e,{key:0,class:`text-muted`},null,512)),[[Ie,{value:N(y).description}]]):U(``,!0),T(`span`,it,O(N(y).title||N(C)),1),e.arrayItem?(v(),R(L,{key:1,text:``,rounded:``,severity:`danger`,class:`cui-icon-md ml-auto mr-2`,loading:e.loading,onClick:o[18]||=t=>$(e.arrayItem.key,e.arrayItem.index)},{icon:x(()=>[z(F,{width:`100%`,height:`100%`})]),_:1},8,[`loading`])):U(``,!0)])]),_:1}),z(we,null,{default:x(()=>[T(`div`,at,[(v(!0),k(j,null,m(re(p.value,N(C)),(t,n)=>(v(),R(me,{key:`item-${n}`,modelValue:p.value,"onUpdate:modelValue":o[19]||=e=>p.value=e,"schema-field":N(y).items,"config-key":`${N(C)}[${n}]`,"array-item":{key:N(C),index:n},loading:e.loading,onOnAction:o[20]||=e=>d(`onAction`,e),onOnSubmit:o[21]||=e=>d(`onSubmit`,e),onOnTrigger:o[22]||=()=>E.value++},null,8,[`modelValue`,`schema-field`,`config-key`,`array-item`,`loading`]))),128)),T(`div`,ot,[z(L,{text:``,rounded:``,class:`cui-icon-md`,loading:e.loading,onClick:o[23]||=f(e=>se(N(C)),[`prevent`])},{icon:x(()=>[z(Ce,{width:`100%`,height:`100%`})]),_:1},8,[`loading`])])])]),_:1})]),_:1},8,[`value`])]),_:1},8,[`value`]))]),_:1})):U(``,!0)])}}}),ct={key:0,class:`flex flex-col gap-6`},lt={key:1,class:`flex flex-col gap-6`},ut=P({__name:`CuiSchema`,props:{schemaForm:{},loading:{type:Boolean,default:!1},disableButton:{type:Boolean},saveButton:{type:Boolean,default:!0},saveButtonLabel:{},saveButtonColor:{},showButton:{type:Boolean,default:!1}},emits:[`onSubmit`,`onAction`,`onFormSubmit`,`changeGroup`],setup(e,{expose:t,emit:r}){let i=e,a=r,{schemaForm:o,loading:s,saveButton:c,saveButtonLabel:l,showButton:ee,disableButton:u,saveButtonColor:f}=L(i),p=q(),g=h(`formRef`),_=A(``),y=A(!1),b=A({}),w=F(()=>re(o.value.schema)),D=F(()=>{let e=[];return o.value.schema.forEach(t=>{t.group&&!t.hidden&&!e.includes(t.group)&&e.push(t.group)}),e});B(D,e=>{e.length?e.includes(_.value)||(_.value=e[0]):_.value&&=``},{immediate:!0});let te=F(()=>ne(o.value.schema,_.value)),P=F(()=>fe(o.value.schema,_.value)),I=F(()=>o.value.schema.filter(e=>!e.group&&!e.hidden));function V(e){return o.value.schema.filter(t=>t.group===e&&!t.hidden)}function W(e){let t=Z(e)&&e.format===`qrCode`,n=Z(e)&&e.format===`image`,r=oe(e)||ae(e);return!t&&!n&&!r}function K(e){return`condition`in e&&e.condition&&!$(e.condition,b.value)?!1:!e.hidden||e.hidden&&W(e)}async function J(){return await g.value?.validate()}function Y(e){a(`onAction`,e)}async function X(e){let t=await J();t?.valid&&t?.values?(y.value=!1,a(`onSubmit`,{key:e.key,payload:t.values})):(y.value=!0,p.error(`result`,t))}async function ie(){let e=await J();e?.valid&&e?.values?(y.value=!1,a(`onFormSubmit`,e.values)):(y.value=!0,p.error(`Form validation failed:`,e))}function Q(){g.value?.resetForm()}return B([o,g],([])=>{g.value&&(!de(g.value.values,o.value.schema)||y.value)&&(b.value=g.value.values),o.value.config&&Object.keys(o.value.config).length?b.value={...se(o.value.schema),...d(o.value.config)}:b.value=se(o.value.schema)},{immediate:!0,deep:!0}),B(_,e=>{e&&a(`changeGroup`,e)}),t({reset:Q,validate:J}),(e,t)=>{let r=Ie,i=Pe,a=st,d=ve,p=we,h=_e,y=n;return v(),k(`div`,null,[z(N(E),{ref_key:`formRef`,ref:g,"validation-schema":N(w),onSubmit:ie},{default:x(()=>[N(D).length?(v(),k(`div`,ct,[z(i,{modelValue:N(_),"onUpdate:modelValue":t[0]||=e=>H(_)?_.value=e:null,mandatory:``},{default:x(()=>[(v(!0),k(j,null,m(N(D),e=>(v(),R(r,{key:e,size:`small`,value:e},{default:x(()=>[M(O(e),1)]),_:2},1032,[`value`]))),128))]),_:1},8,[`modelValue`]),z(h,{value:N(_),"onUpdate:value":t[2]||=e=>H(_)?_.value=e:null,scrollable:``,class:`w-full h-full`},{default:x(()=>[z(p,{class:`p-0`},{default:x(()=>[(v(!0),k(j,null,m(N(D),(e,n)=>(v(),R(d,{key:n,value:e,"as-child":``},{default:x(n=>[S(T(`div`,G({class:n.class},{ref_for:!0},n.a11yAttrs,{class:`flex flex-col gap-6`}),[(v(!0),k(j,null,m(V(e),e=>(v(),k(j,{key:e.key},[K(e)?S((v(),R(a,{key:0,modelValue:N(b),"onUpdate:modelValue":t[1]||=e=>H(b)?b.value=e:null,"schema-field":e,"config-key":e.key,loading:N(s),onOnAction:Y,onOnSubmit:X},null,8,[`modelValue`,`schema-field`,`config-key`,`loading`])),[[C,!e.hidden]]):U(``,!0)],64))),128))],16),[[C,n.active]])]),_:2},1032,[`value`]))),128))]),_:1})]),_:1},8,[`value`]),(v(!0),k(j,null,m(N(I),e=>(v(),k(j,{key:e.key},[K(e)?S((v(),R(a,{key:0,modelValue:N(b),"onUpdate:modelValue":t[3]||=e=>H(b)?b.value=e:null,"schema-field":e,"config-key":e.key,loading:N(s),onOnAction:Y,onOnSubmit:X},null,8,[`modelValue`,`schema-field`,`config-key`,`loading`])),[[C,!e.hidden]]):U(``,!0)],64))),128))])):(v(),k(`div`,lt,[(v(!0),k(j,null,m(N(o).schema,e=>(v(),k(j,{key:e.key},[K(e)?S((v(),R(a,{key:0,modelValue:N(b),"onUpdate:modelValue":t[4]||=e=>H(b)?b.value=e:null,"schema-field":e,"config-key":e.key,loading:N(s),onOnAction:Y,onOnSubmit:X},null,8,[`modelValue`,`schema-field`,`config-key`,`loading`])),[[C,!e.hidden]]):U(``,!0)],64))),128))])),!N(te)&&N(P)&&N(c)||N(ee)?(v(),R(y,{key:2,fluid:``,class:`mt-7 cui-button-medium`,severity:N(f),type:`submit`,loading:N(s),disabled:N(u),label:N(l)||e.$t(`components.form.button.save`)},null,8,[`severity`,`loading`,`disabled`,`label`])):U(``,!0)]),_:1},8,[`validation-schema`])])}}});export{Pe as a,Ie as i,He as n,ze as r,ut as t};
@@ -1 +0,0 @@
1
- import{Fr as e,Ft as t,H as n,M as r,Mr as i,Or as a,U as o,Vt as ee,c as s,y as c}from"./vendor-cameraui-GaXYUHUd.js";import{An as l,B as u,En as d,I as f,L as p,R as m,Tn as h,Vn as g,_n as te,mr as _,st as v,u as y,wn as ne,z as re}from"./api-Da98l_Y7.js";import{$t as b,Fn as x,Gn as ie,Nn as S,Xn as C,Zn as w,_r as T,an as E,br as D,cn as O,cr as k,en as A,gr as j,hn as M,in as N,ir as P,on as F,pn as I,qn as L,rr as R,sn as z,yr as B}from"./vendor-BaiDFVEr.js";import{D as ae,E as oe,O as se,j as ce,k as le,w as V}from"./vendor-primevue-CIRUBYsf.js";import{t as ue}from"./close-BNAWPz0y.js";import{t as de}from"./minus-RI3VlDe8.js";import{n as fe,t as pe}from"./eye-off-CaRq7Ks2.js";import{t as H}from"./plugins-BK7kZLJw.js";import{t as me}from"./delete-BF6keuqy.js";import{t as he}from"./back-filled-DcBDBvvP.js";import{t as ge}from"./plus-CA5o30dE.js";var U={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function W(e,t){return S(),O(`svg`,U,[...t[0]||=[E(`path`,{fill:`currentColor`,d:`M13 8a4 4 0 0 1-4 4a4 4 0 0 1-4-4a4 4 0 0 1 4-4a4 4 0 0 1 4 4m4 10v2H1v-2c0-2.21 3.58-4 8-4s8 1.79 8 4m3.5-3.5V16H19v-1.5zm-2-5H17V9a3 3 0 0 1 3-3a3 3 0 0 1 3 3c0 .97-.5 1.88-1.29 2.41l-.3.19c-.57.4-.91 1.01-.91 1.7v.2H19v-.2c0-1.19.6-2.3 1.59-2.95l.29-.19c.39-.26.62-.69.62-1.16A1.5 1.5 0 0 0 20 7.5A1.5 1.5 0 0 0 18.5 9z`},null,-1)]])}var _e=P({name:`mdi-account-question`,render:W}),ve={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function G(e,t){return S(),O(`svg`,ve,[...t[0]||=[E(`path`,{fill:`currentColor`,d:`M15 14c-2.67 0-8 1.33-8 4v2h16v-2c0-2.67-5.33-4-8-4m-9-4V7H4v3H1v2h3v3h2v-3h3v-2m6 2a4 4 0 0 0 4-4a4 4 0 0 0-4-4a4 4 0 0 0-4 4a4 4 0 0 0 4 4`},null,-1)]])}var ye=P({name:`mdi-account-plus`,render:G}),be={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function K(e,t){return S(),O(`svg`,be,[...t[0]||=[E(`path`,{fill:`none`,stroke:`currentColor`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`2`,d:`M5 12h14`},null,-1)]])}var xe=P({name:`tabler-minus`,render:K}),Se={class:`aspect-square overflow-hidden flex items-center justify-center bg-black/5 dark:bg-black/30`},Ce=[`src`],we=[`src`],Te={class:`font-medium truncate`},q={class:`text-xs text-muted`},Ee={class:`bg-neutral-900 w-full rounded-xl overflow-hidden relative border-[1px] border-color shadow-lg`,style:{"aspect-ratio":`1 / 1`}},De=[`src`],Oe={key:1,class:`w-full h-full flex items-center justify-center bg-neutral-800/80`},ke=[`src`],Ae={class:`absolute top-0 left-0 right-0 p-2 bg-gradient-to-b from-black/60 to-transparent`},J={class:`flex items-center justify-between`},je={class:`text-xs text-white/70`},Me={key:2,class:`absolute bottom-2 left-2 pointer-events-none`},Ne={key:3,class:`absolute bottom-0 left-0 right-0 p-1.5 bg-gradient-to-t from-black/60 to-transparent flex items-center justify-center gap-1 dark-mode`},Pe=M({__name:`CuiFaceCard`,props:{variant:{},thumbnail:{},name:{},imageCount:{},cameraName:{},timestamp:{},confidence:{},compact:{type:Boolean},showRemove:{type:Boolean},selectionMode:{type:Boolean},selected:{type:Boolean},assignValue:{},assignOptions:{}},emits:[`click`,`assign`,`assign-prompt`,`skip`,`remove`,`ignore`,`restore`],setup(e){let r=e,i=y(),a=N(()=>r.confidence?r.confidence>=.9?`text-green-400`:r.confidence>=.7?`text-yellow-400`:`text-red-400`:`text-white/50`),o=N(()=>r.timestamp?new Date(r.timestamp).toLocaleTimeString([],{hour:`2-digit`,minute:`2-digit`}):``);return(r,s)=>{let c=n,l=te,u=fe,d=t,f=xe,p=ye,m=pe,h=me,g=ee;return e.variant===`known`?(S(),F(c,{key:0,class:`cui-card transition-shadow cursor-pointer hover:shadow-md`,onClick:s[0]||=e=>r.$emit(`click`)},{header:C(()=>[E(`div`,Se,[e.thumbnail?(S(),O(`img`,{key:0,src:e.thumbnail,class:`w-full h-full object-cover`},null,8,Ce)):(S(),O(`img`,{key:1,src:j(i),class:`w-1/2 h-1/2 object-contain`},null,8,we))])]),content:C(()=>[E(`div`,Te,D(e.name),1),E(`div`,q,D(e.imageCount)+` `+D(r.$t(`views.faces.images`)),1)]),_:1})):(S(),O(`div`,{key:1,class:T([`relative`,e.selectionMode?`cursor-pointer`:`cursor-default`]),onClick:s[6]||=t=>e.selectionMode&&r.$emit(`click`)},[E(`div`,Ee,[e.thumbnail?(S(),O(`img`,{key:0,src:e.thumbnail,class:`w-full h-full object-cover`},null,8,De)):(S(),O(`div`,Oe,[E(`img`,{src:j(i),class:`w-1/3 h-1/3 object-contain opacity-20`},null,8,ke)])),E(`div`,Ae,[E(`div`,J,[E(`span`,je,D(j(o)),1),e.confidence?(S(),O(`span`,{key:0,class:T([`text-xs font-medium`,j(a)])},D(Math.round(e.confidence*100))+`%`,3)):z(``,!0)])]),e.selectionMode?(S(),O(`div`,Me,[E(`div`,{class:T([`w-6 h-6 rounded-full border-2 flex items-center justify-center transition-colors`,e.selected?`bg-primary border-primary`:`bg-black/40 border-white/80`])},[e.selected?(S(),F(l,{key:0,class:`w-4 h-4 text-white`})):z(``,!0)],2)])):z(``,!0),e.selectionMode?z(``,!0):(S(),O(`div`,Ne,[e.variant===`ignored`?w((S(),F(d,{key:0,severity:`secondary`,rounded:``,size:`small`,class:`cui-icon-sm text-white`,onClick:s[1]||=b(e=>r.$emit(`restore`),[`stop`])},{icon:C(()=>[I(u,{width:`100%`,height:`100%`})]),_:1})),[[g,r.$t(`views.faces.restore`),void 0,{top:!0}]]):(S(),O(A,{key:1},[e.showRemove?w((S(),F(d,{key:0,severity:`secondary`,rounded:``,size:`small`,class:`cui-icon-sm text-white`,onClick:s[2]||=b(e=>r.$emit(`remove`),[`stop`])},{icon:C(()=>[I(f,{class:`w-4 h-4`})]),_:1})),[[g,r.$t(`views.faces.remove_from_cluster`),void 0,{top:!0}]]):w((S(),F(d,{key:1,severity:`secondary`,rounded:``,size:`small`,class:`cui-icon-sm text-white`,onClick:s[3]||=b(e=>r.$emit(`assign-prompt`),[`stop`])},{icon:C(()=>[I(p,{width:`100%`,height:`100%`})]),_:1})),[[g,r.$t(`views.faces.assign`),void 0,{top:!0}]]),w((S(),F(d,{severity:`secondary`,rounded:``,size:`small`,class:`cui-icon-sm text-white`,onClick:s[4]||=b(e=>r.$emit(`ignore`),[`stop`])},{icon:C(()=>[I(m,{width:`100%`,height:`100%`})]),_:1})),[[g,r.$t(`views.faces.ignore`),void 0,{top:!0}]]),w((S(),F(d,{severity:`danger`,rounded:``,size:`small`,class:`cui-icon-sm text-white`,onClick:s[5]||=b(e=>r.$emit(`skip`),[`stop`])},{icon:C(()=>[I(h,{width:`100%`,height:`100%`})]),_:1})),[[g,r.$t(`views.faces.discard`),void 0,{top:!0}]])],64))]))])],2))}}}),Fe={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function Ie(e,t){return S(),O(`svg`,Fe,[...t[0]||=[E(`path`,{fill:`currentColor`,d:`M17.65 6.35A7.96 7.96 0 0 0 12 4a8 8 0 0 0-8 8a8 8 0 0 0 8 8c3.73 0 6.84-2.55 7.73-6h-2.08A5.99 5.99 0 0 1 12 18a6 6 0 0 1-6-6a6 6 0 0 1 6-6c1.66 0 3.14.69 4.22 1.78L13 11h7V4z`},null,-1)]])}var Le=P({name:`mdi-refresh`,render:Ie}),Re={key:0,class:`text-sm text-muted mb-4`},ze={key:1,class:`grid grid-cols-3 gap-2`},Be=[`src`],Ve={key:2,class:`text-muted text-sm text-center py-8`},Y=M({__name:`FaceDetail`,props:{face:{},onRemoveImage:{type:Function},onDeletePerson:{type:Function}},setup(e,{expose:n}){let r=e,i=N(()=>r.face);return n({onConfirm:async()=>(r.onDeletePerson(),!0)}),(n,r)=>{let a=ue,o=t;return S(),O(`div`,null,[j(i).imageCount?(S(),O(`div`,Re,D(j(i).imageCount)+` `+D(n.$t(`views.faces.training_images`)),1)):z(``,!0),j(i).images.length?(S(),O(`div`,ze,[(S(!0),O(A,null,x(j(i).images,(t,n)=>(S(),O(`div`,{key:n,class:`relative aspect-square rounded-2xl overflow-hidden bg-surface-100 dark:bg-surface-800`},[E(`img`,{src:t.src,class:`w-full h-full object-cover`},null,8,Be),t.confidence?(S(),O(`div`,{key:0,class:T([`absolute bottom-0.5 right-0.5 text-[10px] font-medium px-1 rounded bg-black/60`,t.confidence>=.9?`text-green-400`:t.confidence>=.7?`text-yellow-400`:`text-red-400`])},D(Math.round(t.confidence*100))+`% `,3)):z(``,!0),I(o,{severity:`danger`,rounded:``,class:`!absolute top-1 right-1 cui-icon-sm text-white`,onClick:t=>e.onRemoveImage(n)},{icon:C(()=>[I(a,{width:`100%`,height:`100%`})]),_:1},8,[`onClick`])]))),128))])):(S(),O(`div`,Ve,D(n.$t(`views.faces.no_known_faces`)),1))])}}}),He={class:`flex flex-col gap-2 w-full`},Ue={for:`personName`,class:`cui-label`},X=M({__name:`FaceNewPerson`,props:{knownNames:{}},setup(e,{expose:t}){let n=e,r=k(``),i=k([]);function a(e){let t=e.query.toLowerCase();i.value=(n.knownNames??[]).filter(e=>e.toLowerCase().includes(t))}return t({onConfirm:async()=>r.value.trim()||null}),(e,t)=>{let n=V;return S(),O(`div`,He,[E(`label`,Ue,D(e.$t(`views.faces.name`)),1),I(n,{id:`personName`,modelValue:j(r),"onUpdate:modelValue":t[0]||=e=>R(r)?r.value=e:null,suggestions:j(i),class:`w-full`,fluid:``,placeholder:e.$t(`views.faces.enter_name`),autofocus:``,onComplete:a},null,8,[`modelValue`,`suggestions`,`placeholder`])])}}}),We={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function Ge(e,t){return S(),O(`svg`,We,[...t[0]||=[E(`path`,{fill:`none`,stroke:`currentColor`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`2`,d:`M4 17v2a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2M7 9l5-5l5 5m-5-5v12`},null,-1)]])}var Z=P({name:`tabler-upload`,render:Ge}),Q=[`image/jpeg`,`image/png`,`image/webp`],$={class:`flex flex-col gap-6`},Ke={class:`cui-label`},qe={class:`cui-label`},Je={key:0},Ye={class:`text-sm text-muted`},Xe={key:1},Ze=[`src`],Qe=[`accept`],$e={key:0,class:`text-xs text-red-500 mt-1`},et={class:`flex items-center justify-center mt-2 text-xs text-muted`},tt=M({__name:`FaceUpload`,props:{onEnroll:{type:Function}},setup(t,{expose:n}){let o=new H,ee=t,{t:s}=e(),{data:c}=o.getPluginsExtensionsQuery({page:1,pageSize:-1}),l=k(``),u=k(``),d=k(``),f=k(null),p=k(``),m=k(),h=N(()=>(c.value?.result??[]).filter(e=>a(e.contract,i.FaceDetection)).map(e=>({label:e.displayName,value:e.pluginName})));function g(){m.value?.click()}function te(e){let t=e.target.files?.[0];t&&y(t)}function _(e){let t=e.dataTransfer?.files[0];t&&y(t)}function v(e){return Q.includes(e.type)?e.size>10485760?s(`views.faces.file_too_large`,{maxSize:10}):null:s(`views.faces.invalid_format`)}function y(e){p.value=``;let t=v(e);if(t){p.value=t,f.value=null,d.value=``;return}let n=new FileReader;n.onload=()=>{f.value=new Uint8Array(n.result)},n.readAsArrayBuffer(e);let r=new FileReader;r.onload=()=>{d.value=r.result},r.readAsDataURL(e)}return L(h,e=>{!u.value&&e.length===1&&(u.value=e[0].value)},{immediate:!0}),n({onConfirm:async()=>!l.value||!u.value||!f.value?null:(await ee.onEnroll(l.value,f.value,u.value),!0)}),(e,t)=>{let n=r,i=ce,a=Z;return S(),O(`div`,$,[E(`div`,null,[E(`label`,Ke,D(e.$t(`views.faces.name`)),1),I(n,{modelValue:j(l),"onUpdate:modelValue":t[0]||=e=>R(l)?l.value=e:null,modelModifiers:{trim:!0},placeholder:e.$t(`views.faces.enter_name`),class:`w-full`,autofocus:``},null,8,[`modelValue`,`placeholder`])]),E(`div`,null,[E(`label`,qe,D(e.$t(`views.faces.face_plugin`)),1),I(i,{modelValue:j(u),"onUpdate:modelValue":t[1]||=e=>R(u)?u.value=e:null,options:j(h),"option-label":`label`,"option-value":`value`,placeholder:e.$t(`views.faces.select_plugin`),class:`w-full`},null,8,[`modelValue`,`options`,`placeholder`])]),E(`div`,null,[t[3]||=E(`label`,{class:`cui-label mb-1`},`Image`,-1),E(`div`,{class:`border-2 border-dashed border-surface-300 dark:border-surface-600 rounded-lg p-6 text-center cursor-pointer hover:border-primary transition-colors`,onClick:g,onDragover:t[2]||=b(()=>{},[`prevent`]),onDrop:b(_,[`prevent`])},[j(d)?(S(),O(`div`,Xe,[E(`img`,{src:j(d),class:`max-h-48 mx-auto rounded`},null,8,Ze)])):(S(),O(`div`,Je,[I(a,{class:`w-8 h-8 text-muted mx-auto mb-2`}),E(`div`,Ye,D(e.$t(`views.faces.drop_image`)),1)]))],32),E(`input`,{ref_key:`fileInput`,ref:m,type:`file`,accept:j(Q).join(`,`),class:`hidden`,onChange:te},null,40,Qe),j(p)?(S(),O(`div`,$e,D(j(p)),1)):z(``,!0),E(`div`,et,[E(`span`,null,`(`+D(j(10))+`MB, `+D(j(Q).join(`, `))+`)`,1)])])])}}}),nt={class:`flex flex-col`},rt={key:0,class:`flex items-center justify-between`},it={class:`page-title`},at={class:`p-3`},ot={key:0,class:`flex flex-1 min-h-0 flex-col items-center justify-center w-full gap-4`},st={class:`text-muted text-sm`},ct={class:`mb-6 p-px`},lt={class:`flex items-center justify-between mb-3`},ut={class:`card-title m-0!`},dt={key:1,class:`text-muted text-sm`},ft={class:`mb-6 p-px`},pt={class:`flex items-center justify-between mb-3`},mt={class:`card-title m-0!`},ht={class:`flex flex-col gap-3`},gt={class:`flex items-center gap-3 w-full`},_t=[`onClick`],vt={class:`w-10 h-10 rounded-full overflow-hidden bg-surface-100 dark:bg-surface-800 shrink-0`},yt=[`src`],bt={class:`font-medium`},xt={class:`flex items-center gap-3 w-full`},St={class:`w-10 h-10 rounded-full overflow-hidden bg-surface-100 dark:bg-surface-800 shrink-0 flex items-center justify-center`},Ct={class:`flex flex-col`},wt={class:`font-medium`},Tt={class:`text-muted text-sm font-normal`},Et={class:`flex items-center gap-3 w-full`},Dt={class:`w-10 h-10 rounded-full overflow-hidden bg-surface-100 dark:bg-surface-800 shrink-0 flex items-center justify-center`},Ot={class:`flex flex-col`},kt={class:`font-medium`},At={class:`text-muted text-sm font-normal`},jt={key:0,class:`text-muted text-sm`},Mt=M({__name:`Faces`,setup(r){let i=v(),a=_(),{t:y}=e(),{smBreakpoint:M}=d(),{width:P}=l(),L=c(),R=L.clusteredUnknowns,ce=ie(`knownSkeletonRef`),V=k(!1),fe=N(()=>[...R.value.clusters.flatMap(e=>e.faces),...R.value.ungrouped]),{selectionMode:H,selectedIds:U,selectedItems:W,allSelected:ve,bulkBusy:G,enterSelectionMode:be,exitSelectionMode:K,toggleSelectAll:Se,toggleSelection:Ce}=f(fe,e=>e.id),we=N(()=>{let e=new Set(R.value.clusters.flatMap(e=>e.faces.map(e=>e.id)));return[...U.value].filter(t=>e.has(t))}),Te=N(()=>{P.value;let e=M.value?140:160,t=ce.value?.clientWidth??P.value;return Math.floor((t+12)/(e+12))||4});function q(e){let t=0;for(let n of e)U.value.has(n.id)&&t++;return t===0?`none`:t===e.length?`all`:`some`}function Ee(e){let t=new Set(U.value),n=e.every(e=>t.has(e.id));for(let r of e)n?t.delete(r.id):t.add(r.id);U.value=t}async function De(){V.value=!0;try{let e=await L.rescanFaces();e>0?a.add({severity:`success`,detail:y(`views.faces.rescan_complete`,{count:e}),life:3e3}):a.add({severity:`info`,detail:y(`views.faces.rescan_no_matches`),life:3e3})}catch(e){a.add({severity:`error`,detail:e,life:3e3})}finally{V.value=!1}}async function Oe(e){let t=k([]);try{t.value=(await L.getFaceImages(e.name)).map(e=>{let t=s(e.jpeg);return t?{id:e.id,src:t,confidence:e.confidence??0}:null}).filter(Boolean)}catch{}let n=i.openComponentDialog(Y,{data:{title:e.name,contentProps:{face:N(()=>({...e,images:t.value,imageCount:t.value.length})),onRemoveImage:async n=>{let r=t.value[n];if(r)try{await L.removeFaceImage(e.name,r.id),t.value.splice(n,1),a.add({severity:`success`,detail:y(`views.faces.image_removed`),life:3e3}),await L.refresh(!0)}catch(e){a.add({severity:`error`,detail:e,life:3e3})}},onDeletePerson:async()=>{try{await L.deleteFace(e.name),a.add({severity:`success`,detail:y(`views.faces.person_deleted`),life:3e3}),n.close(),await L.refresh(!0)}catch(e){a.add({severity:`error`,detail:e,life:3e3})}}},confirmText:y(`views.faces.delete_person`),confirmButtonProps:{severity:`danger`}}})}function ke(){i.openComponentDialog(tt,{data:{title:y(`views.faces.add_face`),confirmText:y(`views.faces.enroll`),contentProps:{onEnroll:async(e,t,n)=>{await L.enrollFace(e,t,n),a.add({severity:`success`,detail:y(`views.faces.face_enrolled`),life:3e3}),await L.refresh(!0)}}}})}async function Ae(e,t){let n=e.faces.map(e=>e.id);if(t===`__new__`){J(n);return}try{await L.enrollCluster(t,n),a.add({severity:`success`,detail:y(`views.faces.face_assigned`),life:3e3})}catch(e){a.add({severity:`error`,detail:e,life:3e3})}}function J(e){i.openComponentDialog(X,{data:{title:y(`views.faces.enter_person_name`),confirmText:y(`views.faces.enroll`),contentProps:{knownNames:L.knownFaces.value.map(e=>e.name)}},onConfirm:async t=>{try{await L.enrollCluster(t,e),a.add({severity:`success`,detail:y(`views.faces.face_enrolled`),life:3e3})}catch(e){a.add({severity:`error`,detail:e,life:3e3})}}})}async function je(e){try{await L.deleteUnknownFacesByCluster(e.clusterId)}catch(e){a.add({severity:`error`,detail:e,life:3e3})}}async function Me(e){try{await L.deleteUnknownFace(e.id)}catch(e){a.add({severity:`error`,detail:e,life:3e3})}}async function Ne(e){try{await L.removeFromCluster(e.id)}catch(e){a.add({severity:`error`,detail:e,life:3e3})}}async function Fe(e){try{await L.ignoreFaces([e.id]),a.add({severity:`success`,detail:y(`views.faces.face_ignored`),life:3e3})}catch(e){a.add({severity:`error`,detail:e,life:3e3})}}async function Ie(e){try{await L.ignoreCluster(e.clusterId),a.add({severity:`success`,detail:y(`views.faces.face_ignored`),life:3e3})}catch(e){a.add({severity:`error`,detail:e,life:3e3})}}async function Re(){let e=W.value.map(e=>e.id);if(e.length){G.value=!0;try{await L.ignoreFaces(e),a.add({severity:`success`,detail:y(`views.faces.face_ignored`),life:3e3}),K()}catch(e){a.add({severity:`error`,detail:e,life:3e3})}finally{G.value=!1}}}async function ze(e){try{await L.unignoreFaces([e.id]),a.add({severity:`success`,detail:y(`views.faces.face_restored`),life:3e3})}catch(e){a.add({severity:`error`,detail:e,life:3e3})}}function Be(e){i.openComponentDialog(X,{data:{title:y(`views.faces.assign`),confirmText:y(`views.faces.enroll`),contentProps:{knownNames:L.knownFaces.value.map(e=>e.name)}},onConfirm:async t=>{try{await L.enrollFromEvent(t,e.id),a.add({severity:`success`,detail:y(`views.faces.face_assigned`),life:3e3}),await L.refresh(!0)}catch(e){a.add({severity:`error`,detail:e,life:3e3})}}})}function Ve(){let e=W.value.map(e=>e.id);e.length&&i.openComponentDialog(X,{data:{title:y(`views.faces.assign`),confirmText:y(`views.faces.enroll`),contentProps:{knownNames:L.knownFaces.value.map(e=>e.name)}},onConfirm:async t=>{G.value=!0;try{await L.enrollCluster(t,e),a.add({severity:`success`,detail:y(`views.faces.face_assigned`),life:3e3}),K()}catch(e){a.add({severity:`error`,detail:e,life:3e3})}finally{G.value=!1}}})}async function He(){let e=we.value;if(e.length){G.value=!0;try{await L.removeFacesFromCluster(e),K()}catch(e){a.add({severity:`error`,detail:e,life:3e3})}finally{G.value=!1}}}async function Ue(){let e=W.value.map(e=>e.id);if(e.length){G.value=!0;try{await L.deleteUnknownFaces(e),K()}catch(e){a.add({severity:`error`,detail:e,life:3e3})}finally{G.value=!1}}}async function We(){try{await L.deleteUngroupedUnknownFaces(),a.add({severity:`success`,detail:y(`views.faces.all_unknown_cleared`),life:3e3})}catch(e){a.add({severity:`error`,detail:e,life:3e3})}}return(e,r)=>{let i=Le,a=t,c=he,l=u,d=o,f=g,_=Pe,v=te,y=de,ie=ye,k=pe,N=me,P=se,W=le,J=ae,Y=oe,X=n,Ge=_e,Z=ne,Q=h,$=ee;return S(),O(`div`,nt,[j(M)?z(``,!0):(S(),O(`div`,rt,[E(`h1`,it,D(e.$t(`views.faces.title`)),1),j(L).knownFaces.value.length?w((S(),F(a,{key:0,severity:`secondary`,text:``,rounded:``,class:`cui-icon-lg relative z-2`,loading:j(V),onClick:De},{icon:C(()=>[I(i,{width:`100%`,height:`100%`})]),_:1},8,[`loading`])),[[$,{value:e.$t(`views.faces.rescan_events`)},void 0,{bottom:!0}]]):z(``,!0)])),I(l,{position:`left`},{default:C(()=>[I(a,{severity:`secondary`,text:``,class:`cui-button p-2 text-color non-draggable-region`,onClick:r[0]||=t=>e.$router.push(`/menu`)},{icon:C(()=>[I(c,{class:`w-6 h-6`})]),_:1})]),_:1}),I(l,{position:`right`},{default:C(()=>[j(L).knownFaces.value.length?(S(),F(a,{key:0,severity:`secondary`,class:`cui-button p-2 text-color`,text:``,rounded:``,loading:j(V),onClick:De},{icon:C(()=>[I(i,{width:`100%`,height:`100%`})]),_:1},8,[`loading`])):z(``,!0)]),_:1}),j(L).isLoading.value?(S(),O(`section`,{key:1,ref_key:`knownSkeletonRef`,ref:ce,class:`mb-6 p-px`},[I(d,{height:`16px`,width:`140px`,class:`mb-3`}),E(`div`,{class:`grid w-full gap-3 p-px`,style:B({gridTemplateColumns:`repeat(auto-fill, minmax(${j(M)?`140px`:`160px`}, 1fr))`})},[(S(!0),O(A,null,x(j(Te),e=>(S(),O(`div`,{key:e,class:`cui-card overflow-hidden`},[I(d,{class:`aspect-square`,width:`100%`,height:`100%`}),E(`div`,at,[I(d,{height:`14px`,width:`70%`,class:`mb-1`}),I(d,{height:`12px`,width:`40%`})])]))),128))],4)],512)):(S(),O(A,{key:2},[!j(L).knownFaces.value.length&&!j(L).unknownFaces.value.length&&!j(L).ignoredFaces.value.length?(S(),O(`div`,ot,[I(f,{class:`w-12 h-12 text-muted`}),E(`span`,st,D(e.$t(`views.faces.no_faces_yet`)),1)])):(S(),O(A,{key:1},[E(`section`,ct,[E(`div`,lt,[E(`span`,ut,D(e.$t(`views.faces.known_faces`))+` (`+D(j(L).knownFaces.value.length)+`)`,1)]),j(L).knownFaces.value.length?(S(),O(`div`,{key:0,class:`grid w-full gap-3 p-px`,style:B({gridTemplateColumns:`repeat(auto-fill, minmax(${j(M)?`140px`:`160px`}, 1fr))`})},[(S(!0),O(A,null,x(j(L).knownFaces.value,e=>(S(),F(_,{key:e.name,variant:`known`,thumbnail:j(s)(e.thumbnail),name:e.name,"image-count":e.imageCount,onClick:t=>Oe(e)},null,8,[`thumbnail`,`name`,`image-count`,`onClick`]))),128))],4)):(S(),O(`div`,dt,D(e.$t(`views.faces.no_known_faces`)),1))]),E(`section`,ft,[E(`div`,pt,[E(`span`,mt,D(e.$t(`views.faces.unknown_faces`))+` (`+D(j(L).unknownFaces.value.length)+`)`,1)]),E(`div`,ht,[j(R).clusters.length?(S(),F(X,{key:0,class:`cui-card border-color-inner h-auto!`,pt:{body:{class:`pb-0`}}},{content:C(()=>[I(Y,{multiple:``},{default:C(()=>[(S(!0),O(A,null,x(j(R).clusters,(t,n)=>(S(),F(J,{key:t.clusterId,value:t.clusterId,class:T({"border-b-0":n===j(R).clusters.length-1})},{default:C(()=>[I(P,{class:T({"px-0 pt-0":n===0,"px-0":n!==0,"pb-5":n===j(R).clusters.length-1})},{default:C(()=>[E(`span`,gt,[j(H)?(S(),O(`div`,{key:0,class:`shrink-0`,onClick:b(e=>Ee(t.faces),[`stop`])},[E(`div`,{class:T([`w-6 h-6 rounded-full border-2 flex items-center justify-center transition-colors cursor-pointer`,q(t.faces)===`none`?`border-surface-400 dark:border-surface-500`:`bg-primary border-primary`])},[q(t.faces)===`all`?(S(),F(v,{key:0,class:`w-4 h-4 text-white`})):q(t.faces)===`some`?(S(),F(y,{key:1,class:`w-4 h-4 text-white`})):z(``,!0)],2)],8,_t)):z(``,!0),E(`div`,vt,[t.bestThumbnail?(S(),O(`img`,{key:0,src:t.bestThumbnail,class:`w-full h-full object-cover`},null,8,yt)):z(``,!0)]),E(`span`,bt,D(t.faces.length)+` `+D(e.$t(`views.faces.faces_in_cluster`)),1),E(`span`,{class:`ml-auto flex items-center gap-1 mr-2`,onClick:r[1]||=b(()=>{},[`stop`])},[w((S(),F(a,{severity:`secondary`,text:``,rounded:``,class:`cui-icon-lg`,onClick:e=>Ae(t,`__new__`)},{icon:C(()=>[I(ie,{class:`w-4 h-4`})]),_:1},8,[`onClick`])),[[$,e.$t(`views.faces.assign_cluster`),void 0,{top:!0}]]),w((S(),F(a,{severity:`secondary`,text:``,rounded:``,class:`cui-icon-lg`,onClick:e=>Ie(t)},{icon:C(()=>[I(k,{class:`w-4 h-4`})]),_:1},8,[`onClick`])),[[$,e.$t(`views.faces.ignore_cluster`),void 0,{top:!0}]]),w((S(),F(a,{severity:`danger`,text:``,rounded:``,class:`cui-icon-lg`,onClick:e=>je(t)},{icon:C(()=>[I(N,{width:`100%`,height:`100%`})]),_:1},8,[`onClick`])),[[$,e.$t(`views.faces.discard`),void 0,{top:!0}]])])])]),_:2},1032,[`class`]),I(W,{pt:{content:{class:{"px-0":!0,"pb-5":n===j(R).clusters.length-1}}}},{default:C(()=>[E(`div`,{class:`grid w-full gap-3`,style:B({gridTemplateColumns:`repeat(auto-fill, minmax(${j(M)?`120px`:`140px`}, 1fr))`})},[(S(!0),O(A,null,x(t.faces,e=>(S(),F(_,{key:e.id,variant:`unknown`,"show-remove":``,thumbnail:j(s)(e.thumbnail),timestamp:e.timestamp,confidence:e.confidence,"selection-mode":j(H),selected:j(U).has(e.id),onClick:t=>j(Ce)(e.id),onAssignPrompt:t=>Be(e),onRemove:t=>Ne(e),onIgnore:t=>Fe(e),onSkip:t=>Me(e)},null,8,[`thumbnail`,`timestamp`,`confidence`,`selection-mode`,`selected`,`onClick`,`onAssignPrompt`,`onRemove`,`onIgnore`,`onSkip`]))),128))],4)]),_:2},1032,[`pt`])]),_:2},1032,[`value`,`class`]))),128))]),_:1})]),_:1})):z(``,!0),j(R).ungrouped.length?(S(),F(X,{key:1,class:`cui-card border-color-inner h-auto!`,pt:{body:{class:`pb-0`}}},{content:C(()=>[I(Y,null,{default:C(()=>[I(J,{value:`__ungrouped__`,class:`border-b-0`},{default:C(()=>[I(P,{class:`px-0 pt-0 pb-5`},{default:C(()=>[E(`span`,xt,[j(H)?(S(),O(`div`,{key:0,class:`shrink-0`,onClick:r[2]||=b(e=>Ee(j(R).ungrouped),[`stop`])},[E(`div`,{class:T([`w-6 h-6 rounded-full border-2 flex items-center justify-center transition-colors cursor-pointer`,q(j(R).ungrouped)===`none`?`border-surface-400 dark:border-surface-500`:`bg-primary border-primary`])},[q(j(R).ungrouped)===`all`?(S(),F(v,{key:0,class:`w-4 h-4 text-white`})):q(j(R).ungrouped)===`some`?(S(),F(y,{key:1,class:`w-4 h-4 text-white`})):z(``,!0)],2)])):z(``,!0),E(`div`,St,[I(Ge,{class:`w-5 h-5 text-muted`})]),E(`span`,Ct,[E(`span`,wt,D(e.$t(`views.faces.ungrouped`))+` (`+D(j(R).ungrouped.length)+`)`,1),E(`span`,Tt,D(e.$t(`views.faces.ungrouped_hint`)),1)]),E(`span`,{class:`ml-auto flex items-center gap-1 mr-2`,onClick:r[3]||=b(()=>{},[`stop`])},[w((S(),F(a,{severity:`danger`,text:``,rounded:``,class:`cui-icon-lg`,onClick:We},{icon:C(()=>[I(N,{width:`100%`,height:`100%`})]),_:1})),[[$,e.$t(`views.faces.discard`),void 0,{top:!0}]])])])]),_:1}),I(W,{pt:{content:{class:`px-0 pb-5`}}},{default:C(()=>[E(`div`,{class:`grid w-full gap-3`,style:B({gridTemplateColumns:`repeat(auto-fill, minmax(${j(M)?`120px`:`140px`}, 1fr))`})},[(S(!0),O(A,null,x(j(R).ungrouped,e=>(S(),F(_,{key:e.id,variant:`unknown`,thumbnail:j(s)(e.thumbnail),timestamp:e.timestamp,confidence:e.confidence,"selection-mode":j(H),selected:j(U).has(e.id),onClick:t=>j(Ce)(e.id),onAssignPrompt:t=>Be(e),onIgnore:t=>Fe(e),onSkip:t=>Me(e)},null,8,[`thumbnail`,`timestamp`,`confidence`,`selection-mode`,`selected`,`onClick`,`onAssignPrompt`,`onIgnore`,`onSkip`]))),128))],4)]),_:1})]),_:1})]),_:1})]),_:1})):z(``,!0),j(L).ignoredFaces.value.length?(S(),F(X,{key:2,class:`cui-card border-color-inner h-auto!`,pt:{body:{class:`pb-0`}}},{content:C(()=>[I(Y,null,{default:C(()=>[I(J,{value:`__ignored__`,class:`border-b-0`},{default:C(()=>[I(P,{class:`px-0 pt-0 pb-5`},{default:C(()=>[E(`span`,Et,[E(`div`,Dt,[I(k,{class:`w-5 h-5 text-muted`})]),E(`span`,Ot,[E(`span`,kt,D(e.$t(`views.faces.ignored_faces`))+` (`+D(j(L).ignoredFaces.value.length)+`)`,1),E(`span`,At,D(e.$t(`views.faces.ignored_hint`)),1)])])]),_:1}),I(W,{pt:{content:{class:`px-0 pb-5`}}},{default:C(()=>[E(`div`,{class:`grid w-full gap-3`,style:B({gridTemplateColumns:`repeat(auto-fill, minmax(${j(M)?`120px`:`140px`}, 1fr))`})},[(S(!0),O(A,null,x(j(L).ignoredFaces.value,e=>(S(),F(_,{key:e.id,variant:`ignored`,thumbnail:j(s)(e.thumbnail),timestamp:e.timestamp,onRestore:t=>ze(e)},null,8,[`thumbnail`,`timestamp`,`onRestore`]))),128))],4)]),_:1})]),_:1})]),_:1})]),_:1})):z(``,!0)]),!j(L).unknownFaces.value.length&&!j(L).ignoredFaces.value.length?(S(),O(`div`,jt,D(e.$t(`views.faces.no_unknown_faces`)),1)):z(``,!0)])],64))],64)),I(Q,{"force-visible":j(H)},{default:C(()=>[j(H)?(S(),O(A,{key:1},[I(Z,{grouped:``,"tooltip-props":{value:e.$t(`components.form.tooltip.cancel_selection`)},"button-props":{severity:`secondary`},icon:j(ue),"icon-props":{width:`100%`,height:`100%`},onClick:j(K)},null,8,[`tooltip-props`,`icon`,`onClick`]),I(Z,{grouped:``,"tooltip-props":{value:j(ve)?e.$t(`components.form.tooltip.deselect_all`):e.$t(`components.form.tooltip.select_all`)},"button-props":{severity:j(ve)?`primary`:`secondary`},icon:j(re),"icon-props":{width:`100%`,height:`100%`},onClick:j(Se)},null,8,[`tooltip-props`,`button-props`,`icon`,`onClick`]),I(Z,{grouped:``,"tooltip-props":{value:e.$t(`views.faces.assign`)},"button-props":{severity:`secondary`,disabled:!j(U).size||j(G)},icon:j(ye),"icon-props":{width:`100%`,height:`100%`},onClick:Ve},null,8,[`tooltip-props`,`button-props`,`icon`]),I(Z,{grouped:``,"tooltip-props":{value:e.$t(`views.faces.remove_from_cluster`)},"button-props":{severity:`secondary`,disabled:!j(we).length||j(G)},icon:j(xe),"icon-props":{width:`100%`,height:`100%`},onClick:He},null,8,[`tooltip-props`,`button-props`,`icon`]),I(Z,{grouped:``,"tooltip-props":{value:e.$t(`views.faces.ignore`)},"button-props":{severity:`secondary`,disabled:!j(U).size||j(G)},icon:j(pe),"icon-props":{width:`100%`,height:`100%`},onClick:Re},null,8,[`tooltip-props`,`button-props`,`icon`]),I(Z,{grouped:``,"tooltip-props":{value:e.$t(`views.faces.discard`)},"button-props":{severity:`danger`,disabled:!j(U).size||j(G)},icon:j(m),"icon-props":{width:`100%`,height:`100%`},onClick:Ue},null,8,[`tooltip-props`,`button-props`,`icon`])],64)):(S(),O(A,{key:0},[j(fe).length?(S(),F(Z,{key:0,grouped:``,"tooltip-props":{value:e.$t(`views.faces.select`)},"button-props":{severity:`secondary`},icon:j(p),"icon-props":{width:`100%`,height:`100%`},onClick:j(be)},null,8,[`tooltip-props`,`icon`,`onClick`])):z(``,!0),I(Z,{grouped:``,"tooltip-props":{value:e.$t(`views.faces.add_face`)},"button-props":{class:`text-white`},icon:j(ge),"icon-props":{width:`30px`,height:`30px`},onClick:ke},null,8,[`tooltip-props`,`icon`])],64))]),_:1},8,[`force-visible`])])}}});export{Mt as default};
@@ -1 +0,0 @@
1
- import{t as e}from"./PluginSearch-D8qXgkEP.js";export{e as default};
@@ -1 +0,0 @@
1
- import{A as e,C as t,Ci as n,D as r,E as i,Fr as a,Ft as o,L as s,M as c,Nr as l,Oi as u,Ur as d,Vt as f,a as p,h as m,i as h,jt as g,vr as _,w as v,wi as ee,wr as te,wt as y,x as b,yr as x}from"./vendor-cameraui-GaXYUHUd.js";import{B as ne,Cn as S,Dn as C,En as w,G as re,H as T,I as E,L as D,R as ie,Rn as O,Tn as ae,U as k,Ut as oe,V as A,_t as se,bn as ce,cn as le,dr as ue,fn as de,g as fe,hn as pe,mr as me,nt as he,rt as ge,st as _e,wn as ve,xn as j,z as ye}from"./api-Da98l_Y7.js";import{Fn as M,Gn as be,Jn as xe,Nn as N,Pn as Se,Xn as P,Zn as Ce,_r as we,an as F,bn as I,br as L,cn as R,cr as z,dr as Te,en as B,fn as V,gr as H,hn as Ee,in as U,ir as W,jn as De,nn as Oe,on as G,or as ke,pn as K,qn as q,rr as J,sn as Y,yr as Ae,zn as X}from"./vendor-BaiDFVEr.js";import{a as je,i as Me,j as Ne,l as Z,z as Pe}from"./vendor-primevue-CIRUBYsf.js";import{t as Fe}from"./close-BNAWPz0y.js";import{t as Ie}from"./ring-resize-DkY5EgVl.js";import{n as Le,t as Re}from"./CuiRecordingsGrid-CLNQoUbw.js";import{t as ze}from"./utils-gctUU5q_.js";import{t as Be}from"./settings-BUEZ5iRE.js";import{n as Ve,t as He}from"./round-alt-arrow-left-bold-BxX4ufd0.js";var Ue={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function Q(e,t){return N(),R(`svg`,Ue,[...t[0]||=[F(`path`,{fill:`currentColor`,d:`M22 18.605a.75.75 0 0 1-.75.75h-5.1a2.93 2.93 0 0 1-5.66 0H2.75a.75.75 0 1 1 0-1.5h7.74a2.93 2.93 0 0 1 5.66 0h5.1a.75.75 0 0 1 .75.75m0-13.21a.75.75 0 0 1-.75.75H18.8a2.93 2.93 0 0 1-5.66 0H2.75a.75.75 0 1 1 0-1.5h10.39a2.93 2.93 0 0 1 5.66 0h2.45a.74.74 0 0 1 .75.75m0 6.6a.74.74 0 0 1-.75.75H9.55a2.93 2.93 0 0 1-5.66 0H2.75a.75.75 0 1 1 0-1.5h1.14a2.93 2.93 0 0 1 5.66 0h11.7a.75.75 0 0 1 .75.75`},null,-1)]])}var We=W({name:`mage-filter-fill`,render:Q}),Ge={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function Ke(e,t){return N(),R(`svg`,Ge,[...t[0]||=[F(`path`,{fill:`none`,stroke:`currentColor`,"stroke-linecap":`round`,"stroke-miterlimit":`10`,"stroke-width":`1.5`,d:`M21.25 12H8.895m-4.361 0H2.75m18.5 6.607h-5.748m-4.361 0H2.75m18.5-13.214h-3.105m-4.361 0H2.75m13.214 2.18a2.18 2.18 0 1 0 0-4.36a2.18 2.18 0 0 0 0 4.36Zm-9.25 6.607a2.18 2.18 0 1 0 0-4.36a2.18 2.18 0 0 0 0 4.36Zm6.607 6.608a2.18 2.18 0 1 0 0-4.361a2.18 2.18 0 0 0 0 4.36Z`},null,-1)]])}var qe=W({name:`mage-filter`,render:Ke}),Je={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function Ye(e,t){return N(),R(`svg`,Je,[...t[0]||=[F(`path`,{fill:`currentColor`,d:`m14 2l6 6v12a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2zm4 18V9h-5V4H6v16zm-2-2l-2.5-1.7V18H8v-5h5.5v1.7L16 13z`},null,-1)]])}var Xe=W({name:`mdi-file-video-outline`,render:Ye}),Ze={class:`flex flex-col gap-6`},Qe={class:`flex flex-col field-gap`},$e={class:`cui-label`},et={class:`flex flex-col field-gap`},tt={class:`cui-label`},$={class:`grid grid-cols-1 xs:grid-cols-2 gap-3`},nt={class:`flex flex-col gap-1`},rt={class:`text-xs text-muted`},it={class:`flex flex-col gap-1`},at={class:`text-xs text-muted`},ot={class:`grid grid-cols-1 xs:grid-cols-2 gap-x-6 gap-y-4`},st={class:`flex flex-col field-gap`},ct={class:`cui-label`},lt={class:`flex flex-col field-gap`},ut={class:`cui-label`},dt={class:`flex flex-col field-gap`},ft={class:`flex items-center gap-3`},pt={class:`cui-label !mb-0`},mt={key:0,class:`ml-auto flex items-center gap-2.5 text-sm tabular-nums`},ht={class:`font-semibold`},gt={class:`font-semibold`},_t={class:`border border-color rounded-xl card-background overflow-hidden`},vt={class:`flex flex-col gap-3 max-h-[240px] overflow-y-auto p-2.5`},yt={key:0,class:`flex items-center justify-center gap-2 text-muted text-sm py-6`},bt={key:1,class:`text-center text-muted text-sm py-6`},xt={class:`text-xs text-muted px-0.5`},St={class:`font-mono text-xs truncate flex-1`},Ct={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`},Tt=30,Et=Ee({__name:`ExportRecordings`,props:{cameras:{},preselect:{}},setup(t,{expose:n}){let i=t,{t:o}=a(),s=me(),c=I(`dialogRefProps`),{plugin:l}=y(`@camera.ui/camera-ui-nvr`),d=z([]),f=z(!1),p=z(i.preselect?.length?[...i.preselect]:[]),m=z(`best`),h=z(0),_=z(new Date(new Date().setHours(0,0,0,0))),v=z(new Date),ee=U(()=>[{label:o(`views.recordings.export.quality_best`),value:`best`},{label:o(`views.recordings.export.quality_smallest`),value:`smallest`}]),te=U(()=>[0,1,2,5,10,30,60,120,180,240,300].map(e=>({label:e===0?o(`views.recordings.export.timelapse_off`):e<60?`${e} s`:`${e/60} min`,value:e}))),b=U(()=>h.value>0),x=U(()=>b.value?`~`:``),ne=U(()=>new Map(i.cameras.map(e=>[e.id,e.name]))),S=U(()=>_.value instanceof Date&&v.value instanceof Date&&_.value<v.value),C=U(()=>{if(!S.value)return[];let e=[],t=_.value.getTime(),n=v.value.getTime(),r=new Date(_.value);r.setHours(0,0,0,0);let i=new Date(v.value);for(i.setHours(0,0,0,0);r.getTime()<=i.getTime();){let i=new Date(r),a=new Date(r);a.setDate(a.getDate()+1);let o=Math.max(i.getTime(),t),s=Math.min(a.getTime(),n);s>o&&e.push({day:ie(i),startUs:o*1e3,endUs:s*1e3}),r.setDate(r.getDate()+1)}return e}),w=U(()=>d.value.map(e=>{let t=ne.value.get(e.cameraId)??e.cameraId,n=new Date(e.startUs/1e3),r=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`:O(r);return{cameraId:e.cameraId,cameraName:t,name:`${ae(t)}_${e.day}${b.value?`_timelapse`:``}.mp4`,span:i?o(`views.recordings.export.whole_day`):`${O(n)}–${a}`,bytes:b.value?e.bytes/Tt:e.bytes}})),re=U(()=>{let e=new Map;for(let t of w.value){let n=e.get(t.cameraId);n||(n={cameraId:t.cameraId,cameraName:t.cameraName,files:[],bytes:0},e.set(t.cameraId,n)),n.files.push(t),n.bytes+=t.bytes}return[...e.values()]}),T=U(()=>w.value.reduce((e,t)=>e+t.bytes,0)),E=U(()=>p.value.length===0?o(`views.recordings.export.no_cameras`):S.value?o(`views.recordings.export.no_footage`):o(`views.recordings.export.no_range`));function D(e){return String(e).padStart(2,`0`)}function ie(e){return`${e.getFullYear()}-${D(e.getMonth()+1)}-${D(e.getDate())}`}function O(e){return`${D(e.getHours())}:${D(e.getMinutes())}`}function ae(e){return e.replace(/[^a-zA-Z0-9-_]/g,`_`)}function k(e){if(e<=0)return`0 MB`;let t=e/1e6;if(t<1e3)return`${t<10?t.toFixed(1):Math.round(t)} MB`;let n=e/1e9;return`${n.toFixed(+(n<10))} GB`}async function oe(){let e=l.value;if(!e?.nvrExportEstimate||p.value.length===0||C.value.length===0){d.value=[],f.value=!1;return}f.value=!0;try{let t=await e.nvrExportEstimate({cameras:p.value,slices:C.value,quality:m.value});d.value=t.files??[]}catch{d.value=[]}finally{f.value=!1}}async function A(){if(!S.value||p.value.length===0||C.value.length===0)return null;let e=l.value;if(!e?.nvrExportBatch)return s.add({severity:`error`,detail:o(`views.recordings.export.plugin_missing`),life:3e3}),null;let t=await e.nvrExportBatch({cameras:p.value,slices:C.value,quality:m.value,timelapseIntervalSec:b.value?h.value:0});await j({url:t.url,filename:t.filename})}return u([p,C,m],oe,{debounce:350,immediate:!0,deep:!0}),xe(()=>{c.disabled&&(c.disabled.value=!S.value||p.value.length===0||!f.value&&w.value.length===0)}),n({onConfirm:A}),(n,i)=>{let a=Z,o=e,s=Pe,c=r,l=Ne,u=je,d=g,y=Xe;return N(),R(`div`,Ze,[F(`div`,Qe,[F(`label`,$e,L(n.$t(`views.recordings.export.cameras`)),1),K(a,{modelValue:H(p),"onUpdate:modelValue":i[0]||=e=>J(p)?p.value=e:null,options:t.cameras,"option-label":`name`,"option-value":`id`,display:`chip`,filter:``,placeholder:n.$t(`views.recordings.export.cameras_placeholder`),class:`w-full`},null,8,[`modelValue`,`options`,`placeholder`])]),F(`div`,et,[F(`label`,tt,L(n.$t(`views.recordings.export.range`)),1),F(`div`,$,[F(`div`,nt,[F(`span`,rt,L(n.$t(`views.recordings.export.from`)),1),K(o,{modelValue:H(_),"onUpdate:modelValue":i[1]||=e=>J(_)?_.value=e:null,"show-time":``,"hour-format":`24`,fluid:``,"max-date":H(v)},null,8,[`modelValue`,`max-date`])]),F(`div`,it,[F(`span`,at,L(n.$t(`views.recordings.export.to`)),1),K(o,{modelValue:H(v),"onUpdate:modelValue":i[2]||=e=>J(v)?v.value=e:null,"show-time":``,"hour-format":`24`,fluid:``,"min-date":H(_)},null,8,[`modelValue`,`min-date`])])]),H(S)?(N(),G(s,{key:1,severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:P(()=>[V(L(n.$t(`views.recordings.export.range_hint`)),1)]),_:1})):(N(),G(s,{key:0,severity:`error`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:P(()=>[V(L(n.$t(`views.recordings.export.invalid_range`)),1)]),_:1}))]),F(`div`,ot,[F(`div`,st,[F(`label`,ct,L(n.$t(`views.recordings.export.quality`)),1),K(c,{modelValue:H(m),"onUpdate:modelValue":i[3]||=e=>J(m)?m.value=e:null,options:H(ee),"option-label":`label`,"option-value":`value`,"allow-empty":!1,pt:{root:{class:`flex w-full`},pcToggleButton:{root:{class:`flex-1`}}}},null,8,[`modelValue`,`options`])]),F(`div`,lt,[F(`label`,ut,L(n.$t(`views.recordings.export.timelapse`)),1),K(l,{modelValue:H(h),"onUpdate:modelValue":i[4]||=e=>J(h)?h.value=e:null,options:H(te),"option-label":`label`,"option-value":`value`,class:`w-full`},null,8,[`modelValue`,`options`])])]),F(`div`,dt,[F(`div`,ft,[F(`label`,pt,L(n.$t(`views.recordings.export.result`)),1),H(w).length?(N(),R(`div`,mt,[F(`span`,ht,L(H(w).length)+` `+L(H(w).length===1?n.$t(`views.recordings.export.file`):n.$t(`views.recordings.export.files`)),1),i[5]||=F(`span`,{class:`text-muted`},`·`,-1),F(`span`,gt,L(H(x))+L(k(H(T))),1),K(u,{value:H(w).length===1?`MP4`:`ZIP`,severity:`info`},null,8,[`value`])])):Y(``,!0)]),F(`div`,_t,[F(`div`,vt,[H(f)&&!H(w).length?(N(),R(`div`,yt,[K(d,{style:{width:`1rem`,height:`1rem`},"stroke-width":`4`,class:`m-0`}),F(`span`,null,L(n.$t(`views.recordings.export.estimating`)),1)])):H(w).length?(N(!0),R(B,{key:2},M(H(re),e=>(N(),R(`div`,{key:e.cameraId,class:`flex flex-col gap-1`},[F(`span`,xt,L(e.cameraName)+` · `+L(e.files.length)+` · `+L(H(x))+L(k(e.bytes)),1),(N(!0),R(B,null,M(e.files,e=>(N(),R(`div`,{key:e.name,class:`flex items-center gap-3 card-inner-background border border-color rounded-lg px-3 py-2`},[K(y,{class:`w-4 h-4 text-muted shrink-0`}),F(`span`,St,L(e.name),1),F(`span`,Ct,L(e.span),1),F(`span`,wt,L(H(x))+L(k(e.bytes)),1)]))),128))]))),128)):(N(),R(`div`,bt,L(H(E)),1))])])])])}}}),Dt={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function Ot(e,t){return N(),R(`svg`,Dt,[...t[0]||=[F(`path`,{fill:`none`,stroke:`currentColor`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`2`,d:`m6 9l6 6l6-6`},null,-1)]])}var kt=W({name:`tabler-chevron-down`,render:Ot}),At={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function jt(e,t){return N(),R(`svg`,At,[...t[0]||=[F(`path`,{fill:`none`,stroke:`currentColor`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`2`,d:`m6 15l6-6l6 6`},null,-1)]])}var Mt=W({name:`tabler-chevron-up`,render:jt}),Nt={class:`flex flex-col gap-2`},Pt={class:`sidebar-section-title`},Ft={class:`p-input-icon-left w-full`},It={class:`text-xs text-muted`},Lt={class:`flex flex-col gap-2`},Rt={class:`sidebar-section-title flex items-center gap-1.5`},zt={key:0,class:`inline-flex items-center gap-1 text-xs text-muted`},Bt={key:1,class:`flex flex-col gap-1.5 mt-1`},Vt={class:`text-xs text-muted`},Ht={class:`flex items-center gap-3`},Ut={class:`text-xs font-mono w-8 text-right shrink-0`},Wt={class:`flex flex-col gap-2`},Gt={class:`sidebar-section-title`},Kt={class:`flex flex-col gap-2`},qt={class:`sidebar-section-title`},Jt={class:`relative rounded-md overflow-hidden`},Yt={class:`flex flex-col gap-2`},Xt={class:`sidebar-section-title`},Zt={class:`flex items-center gap-3`},Qt={class:`text-xs font-mono w-8 text-right shrink-0`},$t={class:`flex flex-col gap-2`},en={class:`sidebar-section-title`},tn={class:`flex flex-wrap gap-1`},nn={class:`flex flex-col gap-2`},rn={key:0,class:`flex flex-col gap-2`},an={class:`flex items-center gap-2 cursor-pointer text-sm`},on={key:0,class:`flex flex-col gap-2 ml-6`},sn={class:`filter-logic-divider`},cn={class:`flex flex-col gap-2`},ln={key:0,class:`flex flex-col gap-2`},un={class:`filter-logic-divider`},dn={class:`flex flex-col gap-2`},fn={key:0,class:`flex flex-col gap-2`},pn={class:`flex items-center gap-2 cursor-pointer text-sm`},mn=288,hn=S(Ee({__name:`RecordingsFilterSidebar`,props:{filters:{},cameras:{},isOpen:{type:Boolean},isOverlay:{type:Boolean},resultCount:{},semanticCount:{},semanticSearchAvailable:{type:Boolean},semanticSearchLoading:{type:Boolean}},emits:[`update:filters`,`semantic-search`,`close`],setup(e,{expose:t,emit:n}){let u={doorbell:`views.recordings.audio_doorbell`,glass_break:`views.recordings.audio_glass_break`,siren:`views.recordings.audio_siren`,speaking:`views.recordings.audio_speaking`,gunshot:`views.recordings.audio_gunshot`,dog_bark:`views.recordings.audio_dog_bark`,baby_cry:`views.recordings.audio_baby_cry`,alarm:`views.recordings.audio_alarm`,scream:`views.recordings.audio_scream`,cat:`views.recordings.audio_cat`,car_alarm:`views.recordings.audio_car_alarm`,smoke_alarm:`views.recordings.audio_smoke_alarm`},f={face:`views.recordings.attr_face`,license_plate:`views.recordings.attr_license_plate`},p={motion:`views.recordings.sensor_motion`,audio:`views.recordings.sensor_audio`,contact:`views.recordings.sensor_contact`,doorbell:`views.recordings.sensor_doorbell`,switch:`views.recordings.sensor_switch`,light:`views.recordings.sensor_light`,siren:`views.recordings.sensor_siren`,security_system:`views.recordings.sensor_security_system`,"line-crossing":`views.recordings.sensor_line_crossing`},m=new Set([`motion`,`audio`]),g=e,v=n,{t:y}=a(),{xlBreakpoint:b}=w(),{topbarHeight:ne,bottombarHeight:S}=C(),{icons:T,generic:E}=re(),D=T,ie=Mt,O=kt,ae=be(`sidebarRef`),k=z(g.filters.semanticQuery??``),A=ke({eventTypes:!0,attributes:!0,sensorEvents:!0}),se=U(()=>g.isOpen?mn:0),le=U(()=>g.cameras.map(e=>({id:e.id,name:e.name}))),ue=U(()=>{if(g.filters.cameraIds.length===1)return g.cameras.find(e=>e.id===g.filters.cameraIds[0])?.name}),fe=U(()=>[{label:y(`views.recordings.filter_and`),value:`and`},{label:y(`views.recordings.filter_or`),value:`or`}]),pe=U(()=>[{label:y(`views.recordings.time_1h`),value:`1h`},{label:y(`views.recordings.time_1d`),value:`1d`},{label:y(`views.recordings.time_1w`),value:`1w`},{label:y(`views.recordings.time_1m`),value:`1m`}]),me=U(()=>x.filter(e=>!m.has(e)).map(e=>({label:y(`views.recordings.type_${e}`),value:e,icon:T[e]??E}))),he=U(()=>({label:y(`views.recordings.type_other`),value:h,icon:T.other??E})),ge=U(()=>l.map(e=>({label:y(p[e]??`views.recordings.sensor_${e}`),value:e,icon:D[e]??E}))),_e=U(()=>te.map(e=>({label:y(u[e]??e),value:e,icon:T[e]??E}))),ve=U(()=>_.map(e=>({label:y(f[e]??`views.recordings.attr_${e}`),value:e,icon:T[e]??E})));function j(e,t){v(`update:filters`,{...g.filters,[e]:t})}let ye=ee(e=>{j(`search`,e)},300);function xe(){let e=k.value.trim();j(`semanticQuery`,e),v(`semantic-search`,e)}function Se(e){let t=[...g.filters.eventTypes],n=t.indexOf(e);n>=0?t.splice(n,1):t.push(e),j(`eventTypes`,t)}function P(e){let t=[...g.filters.audioLabels],n=t.indexOf(e);n>=0?t.splice(n,1):t.push(e),j(`audioLabels`,t)}function Ce(e){let t=[...g.filters.sensorEvents],n=t.indexOf(e);n>=0?t.splice(n,1):t.push(e),j(`sensorEvents`,t)}function we(e){let t=[...g.filters.hasAttributes],n=t.indexOf(e);n>=0?t.splice(n,1):t.push(e),j(`hasAttributes`,t)}function I(e){A[e]=!A[e]}return q(k,e=>{!e?.trim()&&g.filters.semanticQuery&&j(`semanticQuery`,``)}),d(ae,e=>{let t=e.target;t.closest(`#recordings-sidebar-toggle`)||t.closest(`[data-pc-section="overlay"], [data-pc-section="panel"], .p-connected-overlay`)||g.isOpen&&(g.isOverlay||!b.value)&&v(`close`)}),t({sidebarWidth:se}),(t,n)=>{let a=c,l=de,u=Me,d=o,f=i,p=Z,m=ce,h=oe,g=s,_=r;return N(),R(`nav`,{ref_key:`sidebarRef`,ref:ae,class:`recordings-sidebar fixed transition-all duration-200 overflow-x-hidden overflow-y-auto md:!pl-0 pl-safe pb-safe flex flex-col z-4`,style:Ae({width:`${H(se)}px`,borderRightWidth:e.isOpen?`1px`:`0px`,paddingBottom:`calc(env(safe-area-inset-top, 0px) + env(safe-area-inset-bottom, 0px) + ${H(S)}px + ${H(ne)}px)`})},[F(`div`,{class:`flex flex-col gap-4 p-4`,style:Ae({width:`${mn}px`})},[F(`div`,Nt,[F(`label`,Pt,L(t.$t(`views.recordings.search`)),1),F(`span`,Ft,[K(a,{"model-value":e.filters.search,placeholder:t.$t(`views.recordings.search_placeholder`),class:`w-full text-sm`,"onUpdate:modelValue":n[0]||=e=>H(ye)(e)},null,8,[`model-value`,`placeholder`])]),F(`span`,It,L(t.$t(`views.recordings.result_count`,{count:e.resultCount})),1)]),n[18]||=F(`div`,{class:`sidebar-divider`},null,-1),F(`div`,Lt,[F(`label`,Rt,[K(l,{class:`w-3.5 h-3.5`}),V(` `+L(t.$t(`views.recordings.semantic_search`)),1)]),K(u,{modelValue:H(k),"onUpdate:modelValue":n[1]||=e=>J(k)?k.value=e:null,placeholder:t.$t(`views.recordings.semantic_search_placeholder`),class:`w-full text-sm semantic-textarea`,rows:`3`,disabled:!e.semanticSearchAvailable},null,8,[`modelValue`,`placeholder`,`disabled`]),K(d,{label:t.$t(`views.recordings.semantic_search_button`),severity:`secondary`,outlined:``,size:`small`,class:`w-full text-xs`,loading:e.semanticSearchLoading,disabled:!e.semanticSearchAvailable||!H(k)?.trim(),onClick:xe},null,8,[`label`,`loading`,`disabled`]),e.semanticCount==null?Y(``,!0):(N(),R(`span`,zt,[K(l,{class:`w-3 h-3`}),V(` `+L(t.$t(`views.recordings.semantic_results`,{count:e.semanticCount})),1)])),e.filters.semanticQuery?(N(),R(`div`,Bt,[F(`label`,Vt,L(t.$t(`views.recordings.min_match_score`)),1),F(`div`,Ht,[K(f,{"model-value":e.filters.minSemanticScore,min:0,max:1,step:.05,class:`flex-1`,"onUpdate:modelValue":n[2]||=e=>j(`minSemanticScore`,e)},null,8,[`model-value`]),F(`span`,Ut,L(Math.round(e.filters.minSemanticScore*100))+`%`,1)])])):Y(``,!0)]),n[19]||=F(`div`,{class:`sidebar-divider`},null,-1),F(`div`,Wt,[F(`label`,Gt,L(t.$t(`views.recordings.cameras`)),1),K(p,{"model-value":e.filters.cameraIds,options:H(le),"option-label":`name`,"option-value":`id`,placeholder:t.$t(`views.recordings.all_cameras`),class:`w-full text-sm`,"max-selected-labels":2,"show-toggle-all":!1,pt:{overlay:{style:`position: fixed`}},"onUpdate:modelValue":n[3]||=e=>j(`cameraIds`,e)},null,8,[`model-value`,`options`,`placeholder`])]),H(ue)?(N(),R(B,{key:0},[n[13]||=F(`div`,{class:`sidebar-divider`},null,-1),F(`div`,Kt,[F(`label`,qt,L(t.$t(`views.recordings.grid_search`)),1),F(`div`,Jt,[K(m,{camera:H(ue),"object-fit":`cover`},null,8,[`camera`]),K(h,{"model-value":e.filters.gridRegions,"onUpdate:modelValue":n[4]||=e=>j(`gridRegions`,e)},null,8,[`model-value`])]),K(d,{label:t.$t(`views.recordings.grid_clear`),severity:`secondary`,outlined:``,size:`small`,class:`w-full text-xs`,disabled:e.filters.gridRegions.length===0,onClick:n[5]||=e=>j(`gridRegions`,[])},null,8,[`label`,`disabled`])])],64)):Y(``,!0),n[20]||=F(`div`,{class:`sidebar-divider`},null,-1),F(`div`,Yt,[F(`label`,Xt,L(t.$t(`views.recordings.confidence`)),1),F(`div`,Zt,[K(f,{"model-value":e.filters.minConfidence,min:0,max:1,step:.05,class:`flex-1`,"onUpdate:modelValue":n[6]||=e=>j(`minConfidence`,e)},null,8,[`model-value`]),F(`span`,Qt,L(Math.round(e.filters.minConfidence*100))+`%`,1)])]),n[21]||=F(`div`,{class:`sidebar-divider`},null,-1),F(`div`,$t,[F(`label`,en,L(t.$t(`views.recordings.time_range`)),1),F(`div`,tn,[(N(!0),R(B,null,M(H(pe),t=>(N(),G(d,{key:t.value,label:t.label,severity:e.filters.timeRange===t.value?void 0:`secondary`,outlined:e.filters.timeRange!==t.value,size:`small`,class:`text-xs flex-1 min-w-0`,onClick:n=>j(`timeRange`,e.filters.timeRange===t.value?null:t.value)},null,8,[`label`,`severity`,`outlined`,`onClick`]))),128))])]),n[22]||=F(`div`,{class:`sidebar-divider`},null,-1),F(`div`,nn,[F(`button`,{class:`sidebar-section-title flex items-center justify-between w-full cursor-pointer`,onClick:n[7]||=e=>I(`sensorEvents`)},[F(`span`,null,L(t.$t(`views.recordings.sensor_events`)),1),(N(),G(X(H(A).sensorEvents?H(ie):H(O)),{class:`w-4 h-4 text-muted`}))]),H(A).sensorEvents?(N(),R(`div`,rn,[(N(!0),R(B,null,M(H(ge),t=>(N(),R(B,{key:t.value},[F(`label`,an,[K(g,{"model-value":e.filters.sensorEvents.includes(t.value),binary:!0,"onUpdate:modelValue":e=>Ce(t.value)},null,8,[`model-value`,`onUpdate:modelValue`]),(N(),G(X(t.icon),{class:`w-4 h-4 text-muted`})),F(`span`,null,L(t.label),1)]),t.value===`audio`&&e.filters.sensorEvents.includes(`audio`)?(N(),R(`div`,on,[(N(!0),R(B,null,M(H(_e),t=>(N(),R(`label`,{key:t.value,class:`flex items-center gap-2 cursor-pointer text-sm`},[K(g,{"model-value":e.filters.audioLabels.includes(t.value),binary:!0,"onUpdate:modelValue":e=>P(t.value)},null,8,[`model-value`,`onUpdate:modelValue`]),(N(),G(X(t.icon),{class:`w-4 h-4 text-muted`})),F(`span`,null,L(t.label),1)]))),128))])):Y(``,!0)],64))),128))])):Y(``,!0)]),F(`div`,sn,[n[14]||=F(`div`,{class:`filter-logic-line`},null,-1),K(_,{"model-value":e.filters.filterLogicTriggers,options:H(fe),"option-label":`label`,"option-value":`value`,"allow-empty":!1,class:`filter-logic-toggle`,"onUpdate:modelValue":n[8]||=e=>j(`filterLogicTriggers`,e)},null,8,[`model-value`,`options`]),n[15]||=F(`div`,{class:`filter-logic-line`},null,-1)]),F(`div`,cn,[F(`button`,{class:`sidebar-section-title flex items-center justify-between w-full cursor-pointer`,onClick:n[9]||=e=>I(`eventTypes`)},[F(`span`,null,L(t.$t(`views.recordings.event_type`)),1),(N(),G(X(H(A).eventTypes?H(ie):H(O)),{class:`w-4 h-4 text-muted`}))]),H(A).eventTypes?(N(),R(`div`,ln,[(N(!0),R(B,null,M(H(me),t=>(N(),R(`label`,{key:t.value,class:`flex items-center gap-2 cursor-pointer text-sm`},[K(g,{"model-value":e.filters.eventTypes.includes(t.value),binary:!0,"onUpdate:modelValue":e=>Se(t.value)},null,8,[`model-value`,`onUpdate:modelValue`]),(N(),G(X(t.icon),{class:`w-4 h-4 text-muted`})),F(`span`,null,L(t.label),1)]))),128))])):Y(``,!0)]),F(`div`,un,[n[16]||=F(`div`,{class:`filter-logic-line`},null,-1),K(_,{"model-value":e.filters.filterLogicAttributes,options:H(fe),"option-label":`label`,"option-value":`value`,"allow-empty":!1,class:`filter-logic-toggle`,"onUpdate:modelValue":n[10]||=e=>j(`filterLogicAttributes`,e)},null,8,[`model-value`,`options`]),n[17]||=F(`div`,{class:`filter-logic-line`},null,-1)]),F(`div`,dn,[F(`button`,{class:`sidebar-section-title flex items-center justify-between w-full cursor-pointer`,onClick:n[11]||=e=>I(`attributes`)},[F(`span`,null,L(t.$t(`views.recordings.attributes`)),1),(N(),G(X(H(A).attributes?H(ie):H(O)),{class:`w-4 h-4 text-muted`}))]),H(A).attributes?(N(),R(`div`,fn,[(N(!0),R(B,null,M(H(ve),t=>(N(),R(`label`,{key:t.value,class:`flex items-center gap-2 cursor-pointer text-sm`},[K(g,{"model-value":e.filters.hasAttributes.includes(t.value),binary:!0,"onUpdate:modelValue":e=>we(t.value)},null,8,[`model-value`,`onUpdate:modelValue`]),(N(),G(X(t.icon),{class:`w-4 h-4 text-muted`})),F(`span`,null,L(t.label),1)]))),128)),F(`label`,pn,[K(g,{"model-value":e.filters.eventTypes.includes(H(he).value),binary:!0,"onUpdate:modelValue":n[12]||=e=>Se(H(he).value)},null,8,[`model-value`]),(N(),G(X(H(he).icon),{class:`w-4 h-4 text-muted`})),F(`span`,null,L(H(he).label),1)])])):Y(``,!0)])],4)],4)}}}),[[`__scopeId`,`data-v-517bc60a`]]),gn={class:`font-semibold text-xl truncate`},_n={class:`w-full h-full relative`},vn={key:0,class:`w-full flex flex-row h-[calc(40px+1rem)] py-2 items-center fixed z-10`},yn={class:`relative z-2 page-title !m-0`},bn={key:1,class:`fixed right-0 z-10 h-[calc(40px+1rem)] py-2 pr-2 flex items-center`},xn={key:1,class:`flex justify-center py-4`},Sn={key:2,class:`flex flex-1 min-h-0 flex-col items-center justify-center w-full gap-4`},Cn={class:`text-muted text-sm`},wn=288,Tn=Ee({__name:`Recordings`,setup(e){let r=new se,i=new ue,s=_e(),c=fe(),{openEpisodePlayer:l}=k(),u=p(`@camera.ui/camera-ui-nvr`),d=me(),{t:h}=a(),{smBreakpoint:g,xlBreakpoint:_,mdBreakpoint:ee}=w(),{registerScrollToTop:te}=A();if(typeof VideoDecoder<`u`){let e=t({cacheSize:20});Se(b,e),n(()=>e.dispose())}let{results:y,isSearching:x,isAvailable:S,hasSearched:C,search:re,clear:oe}=v(),{data:ce}=r.getCamerasQuery({page:1,pageSize:-1}),{data:j}=i.getUserQuery(U(()=>c.user?.username??``)),M={"1h":36e5,"1d":864e5,"1w":6048e5,"1m":2592e6},xe=be(`gridRef`),I=be(`viewMenuRef`),V=z(`closed`),Ee=z(!1),W=z({search:``,semanticQuery:``,filterLogicTriggers:`or`,filterLogicAttributes:`or`,cameraIds:[],timeRange:null,customDateRange:null,eventTypes:[],audioLabels:[],hasAttributes:[],sensorEvents:[],gridRegions:[],minConfidence:.5,minSemanticScore:.5,onlyWithRecordings:!0}),ke=Te({state:`ended`,hasDetections:!0,withRecordingInfo:!0,hasRecording:!0}),J=JSON.stringify(ke.value),X=z(!1),je=Te([]),Me=z(null),Ne=!1,Z=U(()=>_.value?!0:V.value===`opened`),Pe=U(()=>ee.value),Ue=U(()=>ee.value?`0px`:Z.value?`${wn}px`:`0px`),Q=U(()=>(ce.value?.result??[]).map(e=>({id:e._id,name:e.name}))),Ge=U(()=>{let e=new Map;for(let t of Q.value)e.set(t.id,t.name);return e}),Ke=U(()=>{let e=new Map;for(let t of ce.value?.result??[])e.set(t._id,t);return e}),Je=U(()=>W.value.cameraIds),Ye=U(()=>Q.value.map(e=>e.id));te(()=>xe.value?.scrollToTop());let{events:Xe,isLoading:Ze,hasMore:Qe,loadMore:$e,loadThumbnails:et,deleteEvents:tt}=m({availableCameraIds:Ye,cameraIds:Je,realtime:!0,pageSize:40,filter:ke,withEpisodes:!0}),$=U(()=>{let e=new Map;for(let t of y.value??[]){let n=e.get(t.eventId);(!n||t.score>n)&&e.set(t.eventId,t.score)}return e}),nt=U(()=>C.value),rt=U(()=>{let e=Xe.value.filter(e=>e.state===`ended`),t=W.value;if(t.timeRange&&M[t.timeRange]){let n=Date.now()-M[t.timeRange];e=e.filter(e=>e.startTime>=n)}if(t.gridRegions.length>0&&(e=e.filter(e=>e.segments.some(e=>e.detections.some(e=>e.box&&ze(e.box,t.gridRegions))))),nt.value){let n=t.minSemanticScore*.23+.15;e=e.filter(e=>{let t=$.value.get(e.id);return t!=null&&t>=n}),e.sort((e,t)=>($.value.get(t.id)??0)-($.value.get(e.id)??0))}return e}),it=U(()=>{if(X.value||nt.value)return[];u.storeVersion.value;let e=W.value;if(e.gridRegions.length>0)return[];let t=Je.value.length>0?Je.value:Ye.value,n=e.timeRange&&M[e.timeRange]?Date.now()-M[e.timeRange]:0;if(Qe.value){let e=1/0;for(let t of Xe.value)e=Math.min(e,t.thumbnailAt??t.startTime);n=Math.max(n,e)}let r=[];for(let e of u.getEpisodes())e.description&&(n&&e.endTime<n||t.length>0&&!e.members.some(e=>t.includes(e.cameraId))||r.push({event:void 0,key:`episode:${e.id}`,episode:e}));return r});function at(e){return e.episode?e.episode.endTime:e.event.thumbnailAt??e.event.startTime}let ot=U(()=>{if(X.value&&je.value.length)return je.value;let e=rt.value.map(e=>({event:e,key:e.id}));return it.value.length&&(e.push(...it.value),e.sort((e,t)=>at(t)-at(e))),e}),st=U(()=>pe(void 0,`admin`)),{selectionMode:ct,selectedIds:lt,allSelected:ut,bulkBusy:dt,enterSelectionMode:ft,exitSelectionMode:pt,toggleSelectAll:mt,toggleSelection:ht}=E(rt,e=>e.id);function gt(){let e=[...lt.value];!e.length||dt.value||s.openTextDialog({data:{title:h(`components.dialog.title.confirm`),contentText:h(`views.recordings.delete_selected_confirm`,{count:e.length}),confirmText:h(`components.form.button.remove`),confirmButtonProps:{severity:`danger`}},onConfirm:async()=>{dt.value=!0;try{await tt(e),pt(),d.add({severity:`success`,detail:h(`views.recordings.delete_selected_done`,{count:e.length}),life:5e3})}catch(e){d.add({severity:`error`,detail:e?.message??String(e),life:5e3})}finally{dt.value=!1}}})}let _t=U(()=>[{key:`ungroup`,label:h(`views.recordings.ungroup`),description:h(`views.recordings.ungroup_hint`),toggle:!0,toggleState:X.value,onClick:()=>{Ne=!0,X.value=!X.value,c.updateUser({preferences:{recordings:{ungrouped:X.value}}})}},{key:`onlyWithRecordings`,label:h(`views.recordings.only_with_recordings`),description:h(`views.recordings.only_with_recordings_hint`),toggle:!0,toggleState:W.value.onlyWithRecordings,onClick:()=>{W.value={...W.value,onlyWithRecordings:!W.value.onlyWithRecordings}}}]);function vt(){s.openComponentDialog(Et,{data:{title:h(`views.recordings.export.title`),contentProps:{cameras:Q.value,preselect:W.value.cameraIds?.length?W.value.cameraIds:[]},confirmText:h(`views.recordings.export.confirm`)}})}function yt(){let e=V.value;V.value=e===`opened`?`closed`:`opened`}function bt(){V.value=`closed`}function xt(e){let t=[];for(let n of e){let e=n.segments??[];if(e.length<=1){t.push({event:n,key:n.id});continue}e.forEach((e,r)=>{e&&t.push({event:n,key:`${n.id}:seg:${r}`,segIndex:r})})}return t}function St(e){!e.semanticQuery?.trim()&&W.value.semanticQuery?.trim()&&oe(),W.value=e}function Ct(e){if(!e.trim()){oe();return}re(e)}async function wt(e){let t=u.getEpisode(e);t||=(await u.loadEpisodes({limit:50}),u.getEpisode(e)),t&&l(t,Ke.value)}function Tt(e){let t=Ke.value.get(e.cameraId);t&&s.openComponentDialog(he,{data:{title:t.name,stayActive:!0,hideCancelButton:!0,hideConfirmButton:!0,contentProps:{camera:t,eventTimestamp:e.startTime},headerActions:e.segments?.some(e=>e?.description)?[{icon:de,toggle:!0,onClick:()=>{}}]:void 0,draggable:!0,blockDragOnSelectors:[`.p-dialog-body`],dismissableMask:!1,modal:!1,dialogContentClass:`!px-0 h-full`,goTo:`/cameras/${t.name}?startTs=${e.startTime}`},dialogSize:{desktop:{maxWidth:`800px`,maxHeight:`calc(100vh - max(1rem, env(safe-area-inset-top, 0px)) - max(1rem, env(safe-area-inset-bottom, 0px)))`,width:`50vw`}}})}return q(_,e=>{e&&(V.value=`closed`)}),q(W,e=>{let t=e.eventTypes.length>0||e.sensorEvents.length>0||e.audioLabels.length>0||e.hasAttributes.length>0,n={types:e.eventTypes.length>0?e.eventTypes:void 0,triggers:e.sensorEvents.length>0?e.sensorEvents:void 0,triggerLabels:e.audioLabels.length>0?e.audioLabels:void 0,attributes:e.hasAttributes.length>0?e.hasAttributes:void 0,filterLogicTriggers:t?e.filterLogicTriggers:void 0,filterLogicAttributes:t?e.filterLogicAttributes:void 0,search:e.search||void 0,minConfidence:e.minConfidence>0?e.minConfidence:void 0,state:`ended`,hasDetections:!t,withRecordingInfo:!0,hasRecording:e.onlyWithRecordings||void 0},r=JSON.stringify(n);r!==J&&(J=r,ke.value=n)},{deep:!0,immediate:!0}),q(j,e=>{if(!e||Ne)return;let t=e.preferences?.recordings?.ungrouped;t!==void 0&&(X.value=t)},{immediate:!0}),q([X,rt],([e,t])=>{je.value=e?xt(t):[]}),q(()=>W.value.cameraIds,e=>{e.length!==1&&W.value.gridRegions.length>0&&(W.value={...W.value,gridRegions:[]})}),De(()=>{requestAnimationFrame(()=>{Ee.value=!0})}),(e,t)=>{let n=ne,r=qe,i=We,a=o,s=Be,c=He,l=Ve,u=T,d=Le,p=Re,m=Ie,h=O,v=ve,ee=ae,te=f;return N(),R(`div`,null,[K(n,{position:`center`},{default:P(()=>[F(`span`,gn,L(e.$t(`views.recordings.title`)),1)]),_:1}),K(n,{position:`left`},{default:P(()=>[K(a,{id:`recordings-sidebar-toggle`,severity:`secondary`,class:`cui-button p-2 text-color`,text:``,rounded:``,onClick:yt},{icon:P(()=>[H(V)===`closed`?(N(),G(r,{key:0,width:`100%`,height:`100%`})):(N(),G(i,{key:1,width:`100%`,height:`100%`}))]),_:1})]),_:1}),K(n,{position:`right`},{default:P(()=>[K(a,{severity:`secondary`,class:`cui-button p-2 text-color`,text:``,rounded:``,onClick:t[0]||=e=>H(I)?.toggleMenu(e)},{icon:P(()=>[K(s,{width:`100%`,height:`100%`})]),_:1})]),_:1}),K(hn,{filters:H(W),cameras:H(Q),"is-open":H(Z),"is-overlay":H(Pe),"result-count":H(ot).length,"semantic-count":H(nt)?H($).size:void 0,"semantic-search-available":H(S),"semantic-search-loading":H(x),"onUpdate:filters":St,onSemanticSearch:Ct,onClose:bt},null,8,[`filters`,`cameras`,`is-open`,`is-overlay`,`result-count`,`semantic-count`,`semantic-search-available`,`semantic-search-loading`]),(N(),G(Oe,{to:`#container`,defer:``},[H(Z)&&H(Pe)?(N(),R(`div`,{key:0,class:`fixed top-0 left-0 right-0 bottom-0 w-full h-full bg-black/50 z-1`,onClick:bt})):Y(``,!0)])),F(`main`,{class:`relative w-full h-full`,style:Ae({paddingLeft:H(Ue),transition:H(Ee)?`padding-left 200ms`:void 0})},[F(`div`,_n,[H(g)?Y(``,!0):(N(),R(`div`,vn,[t[3]||=F(`div`,{class:`ml-2`},null,-1),H(_)?Y(``,!0):(N(),G(a,{key:0,id:`recordings-sidebar-toggle`,severity:`secondary`,class:`mr-2 cui-icon-lg relative z-2`,text:``,rounded:``,onClick:yt},{icon:P(()=>[H(Z)?(N(),G(c,{key:0,width:`100%`,height:`100%`})):(N(),G(l,{key:1,width:`100%`,height:`100%`}))]),_:1})),F(`h1`,yn,L(e.$t(`views.recordings.title`)),1),t[4]||=F(`div`,{class:`gradient-blur rotate-180 !h-[70px]`},[F(`div`),F(`div`),F(`div`),F(`div`),F(`div`),F(`div`)],-1)])),H(g)?Y(``,!0):(N(),R(`div`,bn,[Ce((N(),G(a,{severity:`secondary`,text:``,rounded:``,class:`cui-icon-lg relative z-2`,onClick:t[1]||=e=>H(I)?.toggleMenu(e)},{icon:P(()=>[K(s,{width:`100%`,height:`100%`})]),_:1})),[[te,{value:e.$t(`views.recordings.view_options`)},void 0,{bottom:!0}]])])),F(`div`,{class:we([`px-2 h-full w-full flex flex-col`,{"pt-4":H(g),"pt-[calc(40px+2rem)]":!H(g)}])},[H(ot).length?(N(),G(p,{key:0,ref_key:`gridRef`,ref:xe,items:H(ot),"min-item-width":H(g)?160:180,gap:8,"has-more":H(Qe),"load-more":H($e),"item-key":e=>e.key,class:`flex-1 min-h-0`},{item:P(({item:e})=>[e.episode?(N(),G(u,{key:0,episode:e.episode,"camera-by-id":H(Ke),fluid:``,"click-disabled":H(ct)},null,8,[`episode`,`camera-by-id`,`click-disabled`])):(N(),G(d,{key:1,event:e.event,"camera-name":H(Ge).get(e.event.cameraId),camera:H(Ke).get(e.event.cameraId),"load-thumbnails":H(et),"semantic-score":H($).get(e.event.id),"seg-index":e.segIndex,"selection-mode":H(ct),selected:H(lt).has(e.event.id),"sibling-active":e.segIndex!==void 0&&H(Me)===e.event.id,onSelect:t=>H(ht)(e.event.id),onScrollToEvent:()=>Tt(e.event),onOpenEpisode:wt,onMouseenter:t=>Me.value=e.segIndex===void 0?null:e.event.id,onMouseleave:t[2]||=e=>Me.value=null},null,8,[`event`,`camera-name`,`camera`,`load-thumbnails`,`semantic-score`,`seg-index`,`selection-mode`,`selected`,`sibling-active`,`onSelect`,`onScrollToEvent`,`onMouseenter`]))]),_:1},8,[`items`,`min-item-width`,`has-more`,`load-more`,`item-key`])):Y(``,!0),H(Ze)||H(x)?(N(),R(`div`,xn,[K(m,{width:`24px`,height:`24px`,class:`text-muted`})])):Y(``,!0),!H(rt).length&&!H(Ze)&&!H(x)?(N(),R(`div`,Sn,[K(h,{class:`w-12 h-12 text-muted`}),F(`span`,Cn,L(e.$t(`views.recordings.no_recordings`)),1)])):Y(``,!0)],2)])],4),H(Q).length?(N(),G(ee,{key:0,"force-visible":H(ct),"scroll-y":H(xe)?.scrollY??0},{default:P(()=>[H(ct)?(N(),R(B,{key:1},[K(v,{grouped:``,"tooltip-props":{value:e.$t(`components.form.tooltip.cancel_selection`)},"button-props":{severity:`secondary`},icon:H(Fe),"icon-props":{width:`100%`,height:`100%`},onClick:H(pt)},null,8,[`tooltip-props`,`icon`,`onClick`]),K(v,{grouped:``,"tooltip-props":{value:H(ut)?e.$t(`components.form.tooltip.deselect_all`):e.$t(`components.form.tooltip.select_all`)},"button-props":{severity:H(ut)?`primary`:`secondary`},icon:H(ye),"icon-props":{width:`100%`,height:`100%`},onClick:H(mt)},null,8,[`tooltip-props`,`button-props`,`icon`,`onClick`]),K(v,{grouped:``,"tooltip-props":{value:e.$t(`components.form.tooltip.delete_selected`)},"button-props":{severity:`danger`,disabled:!H(lt).size||H(dt)},icon:H(ie),"icon-props":{width:`100%`,height:`100%`},onClick:gt},null,8,[`tooltip-props`,`button-props`,`icon`])],64)):(N(),R(B,{key:0},[H(st)&&H(rt).length?(N(),G(v,{key:0,grouped:``,"tooltip-props":{value:e.$t(`views.recordings.select`)},"button-props":{severity:`secondary`},icon:H(D),"icon-props":{width:`100%`,height:`100%`},onClick:H(ft)},null,8,[`tooltip-props`,`icon`,`onClick`])):Y(``,!0),K(v,{grouped:``,"tooltip-props":{value:e.$t(`views.recordings.export.title`)},"button-props":{class:`text-white`},icon:H(ge),"icon-props":{width:`26px`,height:`26px`},onClick:vt},null,8,[`tooltip-props`,`icon`])],64))]),_:1},8,[`force-visible`,`scroll-y`])):Y(``,!0),K(le,{ref_key:`viewMenuRef`,ref:I,items:H(_t),"auto-hide":!1,popover:{pt:{root:{class:`w-[22rem]`},content:{class:`p-0! rounded-xl! overflow-hidden!`}}}},null,8,[`items`])])}}});export{Tn as default};
@@ -1 +0,0 @@
1
- import{$n as e,Cr as t,Fr as n,J as r,K as i,M as a,Q as o,X as s,Z as c,_r as l,at as u,br as d,ct as f,dr as p,dt as m,er as h,et as ee,hr as g,it as te,jr as _,lt as ne,mr as re,nr as v,ot as ie,pr as ae,q as oe,rr as y,sr as b,st as x,tr as S,tt as C,ur as w,xr as T}from"./vendor-cameraui-GaXYUHUd.js";import{Cn as E,hn as D}from"./api-Da98l_Y7.js";import{Fn as se,Nn as O,Sn as k,Xn as A,_r as j,an as M,br as N,cn as P,cr as F,en as I,fn as L,gr as R,hn as z,in as B,mr as V,on as H,pn as U,rr as W,sn as G,yr as K,zn as q}from"./vendor-BaiDFVEr.js";import{K as J,T as ce,l as le,z as ue}from"./vendor-primevue-CIRUBYsf.js";import{a as de,c as fe,d as pe,f as me,i as he,l as ge,m as _e,n as ve,o as ye,p as be,r as xe,s as Se,t as Ce,u as we}from"./CuiLightControl-8aZiuOCv.js";import{t as Y}from"./sensorIcons-C9h8rHR6.js";var Te={disabled:!1,size:`medium`},Ee={class:`cui-measurement-info__header`},De={class:`cui-measurement-info__icon`},Oe={class:`cui-measurement-info__info`},ke={key:0,class:`cui-measurement-info__label`},Ae={class:`cui-measurement-info__value`},je=E(z({__name:`CuiMeasurementInfo`,props:k({type:{},unit:{},current:{},label:{},disabled:{type:Boolean},size:{}},Te),setup(e){let{type:t}=V(e),n=B(()=>Y(t.value));return(t,r)=>(O(),P(`div`,{class:j([`cui-measurement-info`,[`cui-measurement-info--${e.size}`,{"cui-measurement-info--disabled":e.disabled}]])},[M(`div`,Ee,[M(`div`,De,[(O(),H(q(R(n)),{class:`cui-measurement-info__icon-svg`}))]),M(`div`,Oe,[e.label?(O(),P(`span`,ke,N(e.label),1)):G(``,!0),M(`span`,Ae,N(e.current==null?`--`:`${e.current} ${e.unit}`),1)])])],2))}}),[[`__scopeId`,`data-v-3344cbd6`]]),Me={detected:!1,disabled:!1,size:`medium`},Ne={class:`cui-binary-sensor__header`},Pe={class:`cui-binary-sensor__icon`},Fe={class:`cui-binary-sensor__info`},Ie={key:0,class:`cui-binary-sensor__label`},Le=E(z({__name:`CuiBinarySensor`,props:k({type:{},detected:{type:Boolean},label:{},disabled:{type:Boolean},size:{}},Me),setup(e){let t=e,{t:r}=n(),{type:i,detected:a}=V(t),o=B(()=>Y(i.value)),s=B(()=>({color:`rgb(239, 68, 68)`,filter:`drop-shadow(0 0 6px rgba(239, 68, 68, 0.5))`})),c=B(()=>({color:`var(--text-secondary-color)`})),l=B(()=>a.value?`cui-binary-sensor__status--detected`:`cui-binary-sensor__status--clear`),u=B(()=>a.value?`cui-binary-sensor__indicator--detected`:`cui-binary-sensor__indicator--clear`);return(t,n)=>(O(),P(`div`,{class:j([`cui-binary-sensor`,[`cui-binary-sensor--${e.size}`,{"cui-binary-sensor--disabled":e.disabled,"cui-binary-sensor--clear":!R(a),"cui-binary-sensor--detected":R(a)}]])},[M(`div`,Ne,[M(`div`,Pe,[(O(),H(q(R(o)),{class:`cui-binary-sensor__icon-svg`,style:K(R(a)?R(s):R(c))},null,8,[`style`]))]),M(`div`,Fe,[e.label?(O(),P(`span`,Ie,N(e.label),1)):G(``,!0),M(`span`,{class:j([`cui-binary-sensor__status`,R(l)])},N(R(a)?R(r)(`components.binary_sensor.detected`):R(r)(`components.binary_sensor.clear`)),3)]),M(`div`,{class:j([`cui-binary-sensor__indicator`,R(u)])},null,2)])],2))}}),[[`__scopeId`,`data-v-c89ce8e7`]]),Re={detected:!1,size:`medium`},ze={class:`cui-detection-info__header`},Be={class:`cui-detection-info__icon`},Ve={class:`cui-detection-info__info`},He={key:0,class:`cui-detection-info__label`},Ue={key:0,class:`cui-detection-info__decibels`},We=E(z({__name:`CuiDetectionSensorInfo`,props:k({type:{},label:{},detected:{type:Boolean},labels:{},decibels:{},size:{}},Re),setup(e){let t=e,{t:r}=n(),i={color:`rgb(251, 146, 60)`,filter:`drop-shadow(0 0 8px rgba(251, 146, 60, 0.6))`},a=B(()=>{if(!t.detected)return r(`components.detection_sensor.idle`);let e=(t.labels??[]).filter(Boolean);return e.length?e.join(`, `):r(`components.detection_sensor.detected`)});return(t,n)=>(O(),P(`div`,{class:j([`cui-detection-info`,[`cui-detection-info--${e.size}`,{"cui-detection-info--active":e.detected}]])},[M(`div`,ze,[M(`div`,Be,[(O(),H(q(R(Y)(e.type)),{class:`cui-detection-info__icon-svg`,style:K(e.detected?i:void 0)},null,8,[`style`]))]),M(`div`,Ve,[e.label?(O(),P(`span`,He,N(e.label),1)):G(``,!0),M(`span`,{class:j([`cui-detection-info__status`,e.detected?`cui-detection-info__status--active`:`cui-detection-info__status--idle`])},N(R(a)),3)]),e.decibels===void 0?G(``,!0):(O(),P(`span`,Ue,N(Math.round(e.decibels))+` dB`,1)),M(`div`,{class:j([`cui-detection-info__indicator`,e.detected?`cui-detection-info__indicator--active`:`cui-detection-info__indicator--idle`])},null,2)])],2))}}),[[`__scopeId`,`data-v-f3272b7a`]]),X=new Set([_.Motion,_.Object,_.Audio,_.Face,_.LicensePlate,_.Classifier]),Z=new Set([_.Gas,_.CarbonMonoxide,_.Heat,_.Cold,_.Vibration,_.Tamper,_.Problem,_.Power]),Q=new Map([[_.Illuminance,`lx`],[_.CarbonDioxide,`ppm`]]),Ge=new Set([...X,...Z,...Q.keys(),_.Light,_.Switch,_.Lock,_.Siren,_.SecuritySystem,_.Garage,_.Doorbell,_.Contact,_.Occupancy,_.Smoke,_.Leak,_.Temperature,_.Humidity,_.Battery]);function Ke(e){return Ge.has(e)}var qe=z({__name:`CuiSensorControl`,props:{sensor:{},disabled:{type:Boolean}},setup(n){function a(e){return Z.has(e.type)}function m(e){return Q.get(e.type)}function E(e){return X.has(e.type)}function D(e){let t=e.getProperty(`detections`)??[];return[...new Set(t.map(e=>e.label??e.attribute).filter(e=>!!e))]}return(se,k)=>{let A=Ce,j=ve,M=xe,N=he,P=de,F=pe,I=ye,L=Se,z=fe,B=ge,V=we,U=me,W=be,K=_e,q=Le,J=je;return R(ee)(n.sensor)?(O(),H(A,{key:0,label:n.sensor.displayName.value,on:n.sensor.getProperty(R(p).On)??!1,brightness:n.sensor.getProperty(R(p).Brightness)??100,"has-brightness":n.sensor.hasCapability(`brightness`),disabled:n.disabled,size:`small`,class:`card-border`,"onUpdate:on":k[0]||=e=>n.sensor.setProperty(R(p).On,e),"onUpdate:brightness":k[1]||=e=>n.sensor.setProperty(R(p).Brightness,e)},null,8,[`label`,`on`,`brightness`,`has-brightness`,`disabled`])):R(f)(n.sensor)?(O(),H(j,{key:1,label:n.sensor.displayName.value,on:n.sensor.getProperty(R(h).On)??!1,disabled:n.disabled,size:`small`,class:`card-border`,"onUpdate:on":k[2]||=e=>n.sensor.setProperty(R(h).On,e)},null,8,[`label`,`on`,`disabled`])):R(C)(n.sensor)?(O(),H(M,{key:2,label:n.sensor.displayName.value,"current-state":n.sensor.getProperty(R(w).CurrentState)??2,"target-state":n.sensor.getProperty(R(w).TargetState)??0,disabled:n.disabled,size:`small`,class:`card-border`,"onUpdate:targetState":k[3]||=e=>n.sensor.setProperty(R(w).TargetState,e)},null,8,[`label`,`current-state`,`target-state`,`disabled`])):R(ie)(n.sensor)?(O(),H(N,{key:3,label:n.sensor.displayName.value,active:n.sensor.getProperty(R(v).Active)??!1,volume:n.sensor.getProperty(R(v).Volume)??100,"has-volume":n.sensor.hasCapability(`volume`),disabled:n.disabled,size:`small`,class:`card-border`,"onUpdate:active":k[4]||=e=>n.sensor.setProperty(R(v).Active,e),"onUpdate:volume":k[5]||=e=>n.sensor.setProperty(R(v).Volume,e)},null,8,[`label`,`active`,`volume`,`has-volume`,`disabled`])):R(u)(n.sensor)?(O(),H(P,{key:4,label:n.sensor.displayName.value,"current-state":n.sensor.getProperty(R(y).CurrentState)??3,"target-state":n.sensor.getProperty(R(y).TargetState)??3,disabled:n.disabled,size:`small`,class:`card-border`,"onUpdate:targetState":k[6]||=e=>n.sensor.setProperty(R(y).TargetState,e)},null,8,[`label`,`current-state`,`target-state`,`disabled`])):R(s)(n.sensor)?(O(),H(F,{key:5,label:n.sensor.displayName.value,"current-state":n.sensor.getProperty(R(g).CurrentState)??1,"target-state":n.sensor.getProperty(R(g).TargetState)??1,"obstruction-detected":n.sensor.getProperty(R(g).ObstructionDetected)??!1,disabled:n.disabled,size:`small`,class:`card-border`,"onUpdate:targetState":k[7]||=e=>n.sensor.setProperty(R(g).TargetState,e)},null,8,[`label`,`current-state`,`target-state`,`obstruction-detected`,`disabled`])):R(r)(n.sensor)?(O(),H(I,{key:6,label:n.sensor.displayName.value,ring:n.sensor.getProperty(R(l).Ring)??!1,disabled:n.disabled,size:`small`,class:`card-border`,onTrigger:k[8]||=()=>n.sensor.setProperty(R(l).Ring,!0)},null,8,[`label`,`ring`,`disabled`])):R(oe)(n.sensor)?(O(),H(L,{key:7,label:n.sensor.displayName.value,detected:n.sensor.getProperty(R(d).Detected)??!1,size:`small`,class:`card-border`},null,8,[`label`,`detected`])):R(te)(n.sensor)?(O(),H(z,{key:8,label:n.sensor.displayName.value,detected:n.sensor.getProperty(R(b).Detected)??!1,size:`small`,class:`card-border`},null,8,[`label`,`detected`])):R(x)(n.sensor)?(O(),H(B,{key:9,label:n.sensor.displayName.value,detected:n.sensor.getProperty(R(S).Detected)??!1,size:`small`,class:`card-border`},null,8,[`label`,`detected`])):R(o)(n.sensor)?(O(),H(V,{key:10,label:n.sensor.displayName.value,detected:n.sensor.getProperty(R(ae).Detected)??!1,size:`small`,class:`card-border`},null,8,[`label`,`detected`])):R(ne)(n.sensor)?(O(),H(U,{key:11,label:n.sensor.displayName.value,current:n.sensor.getProperty(R(e).Current),size:`small`,class:`card-border`},null,8,[`label`,`current`])):R(c)(n.sensor)?(O(),H(W,{key:12,label:n.sensor.displayName.value,current:n.sensor.getProperty(R(re).Current),size:`small`,class:`card-border`},null,8,[`label`,`current`])):R(i)(n.sensor)?(O(),H(K,{key:13,label:n.sensor.displayName.value,level:n.sensor.getProperty(R(T).Level)??100,charging:n.sensor.getProperty(R(T).Charging)??`NOT_CHARGING`,low:n.sensor.getProperty(R(T).Low)??!1,size:`small`,class:`card-border`},null,8,[`label`,`level`,`charging`,`low`])):a(n.sensor)?(O(),H(q,{key:14,type:n.sensor.type,label:n.sensor.displayName.value,detected:n.sensor.getProperty(`detected`)??!1,size:`small`,class:`card-border`},null,8,[`type`,`label`,`detected`])):m(n.sensor)?(O(),H(J,{key:15,type:n.sensor.type,label:n.sensor.displayName.value,current:n.sensor.getProperty(`current`)??void 0,unit:m(n.sensor),size:`small`,class:`card-border`},null,8,[`type`,`label`,`current`,`unit`])):E(n.sensor)?(O(),H(We,{key:16,type:n.sensor.type,label:n.sensor.displayName.value,detected:n.sensor.getProperty(`detected`)??!1,labels:D(n.sensor),decibels:n.sensor.type===R(_).Audio?n.sensor.getProperty(R(t).Decibels)??void 0:void 0,size:`small`,class:`card-border`},null,8,[`type`,`label`,`detected`,`labels`,`decibels`])):G(``,!0)}}}),Je={class:`flex flex-col gap-4 w-full`},$={key:0,class:`flex flex-col field-gap`},Ye={class:`cui-label`},Xe={class:`flex flex-col field-gap`},Ze={for:`sensorDisplayName`,class:`cui-label`},Qe={class:`flex flex-col field-gap`},$e={class:`cui-label`},et={key:0,class:`flex flex-wrap gap-2`},tt={key:1,class:`flex items-center gap-4 cui-toggle-switch`},nt={class:`flex flex-col min-w-0`},rt={class:`cui-label-switch`},it={class:`text-xs text-muted`},at=z({__name:`SensorEdit`,props:{sensor:{},cameraOptions:{}},setup(e,{expose:t}){let n=e,r=F(n.sensor.displayName||n.sensor.name),i=F([...n.sensor.assignedCameraIds]),o=F(n.sensor.exposed),{sensors:s}=m(),c=B(()=>D(void 0,`admin`)),l=B(()=>n.cameraOptions.filter(e=>n.sensor.assignedCameraIds.includes(e.value))),u=B(()=>Ke(n.sensor.type)),d=B(()=>s.value.find(e=>e.id===n.sensor.id));return t({onConfirm:async()=>({displayName:r.value||n.sensor.name,assignedCameraIds:i.value,exposed:o.value})}),(t,n)=>{let s=ue,f=a,p=ce,m=le,h=J;return O(),P(`div`,Je,[R(u)?(O(),P(`div`,$,[M(`label`,Ye,N(t.$t(`views.sensors.control`)),1),R(d)?(O(),H(qe,{key:0,sensor:R(d),disabled:!R(c)},null,8,[`sensor`,`disabled`])):(O(),H(s,{key:1,severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:A(()=>[L(N(t.$t(`views.sensors.control_offline`)),1)]),_:1}))])):G(``,!0),M(`div`,Xe,[M(`label`,Ze,N(t.$t(`components.camera_options.sensor_display_name`)),1),U(f,{id:`sensorDisplayName`,modelValue:R(r),"onUpdate:modelValue":n[0]||=e=>W(r)?r.value=e:null,modelModifiers:{trim:!0},class:`w-full`},null,8,[`modelValue`])]),M(`div`,Qe,[M(`label`,$e,N(t.$t(`views.sensors.assigned_cameras`)),1),e.sensor.assignmentLocked?(O(),P(`div`,et,[(O(!0),P(I,null,se(R(l),e=>(O(),H(p,{key:e.value,label:e.label},null,8,[`label`]))),128))])):(O(),H(m,{key:1,modelValue:R(i),"onUpdate:modelValue":n[1]||=e=>W(i)?i.value=e:null,options:e.cameraOptions,"option-label":`label`,"option-value":`value`,placeholder:t.$t(`views.sensors.assigned_cameras_placeholder`),class:`w-full`},null,8,[`modelValue`,`options`,`placeholder`])),U(s,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:A(()=>[L(N(e.sensor.assignmentLocked?t.$t(`views.sensors.assigned_cameras_locked_hint`):t.$t(`views.sensors.assigned_cameras_hint`)),1)]),_:1})]),e.sensor.cameraBound?G(``,!0):(O(),P(`div`,tt,[M(`div`,nt,[M(`label`,rt,N(t.$t(`views.sensors.exposed`)),1),M(`span`,it,N(t.$t(`views.sensors.exposed_hint`)),1)]),U(h,{modelValue:R(o),"onUpdate:modelValue":n[2]||=e=>W(o)?o.value=e:null,class:`ml-auto shrink-0`},null,8,[`modelValue`])]))])}}});export{at as default};
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./SensorEdit-B-64Y4xT.js","./vendor-cameraui-GaXYUHUd.js","./rolldown-runtime-C0FnF6B9.js","./vendor-BaiDFVEr.js","./api-Da98l_Y7.js","./useElectron-BNGXeZEx.js","./vendor-zod-Dbq0fBXY.js","./types-BCygqese.js","./lightbulb-outline-ClK17CO6.js","./vendor-core-DNm82LOv.js","./vendor-primevue-CIRUBYsf.js","./vendor-dnd-ChrDrMuz.js","./close-BNAWPz0y.js","./vendor-draggabilly-DSeIE_bQ.js","./api-DIm7LItL.css","./CuiLightControl-8aZiuOCv.js","./bell-ring-DSX81yd4.js","./home-CUykMSBW.js","./cube-scan-DOe6W9mW.js","./CuiLightControl-DFrZm_sv.css","./sensorIcons-C9h8rHR6.js","./SensorEdit-ono85O3c.css","./SensorHistory-D8xQKiuE.js","./sensors-Bj4drsO3.js","./history-SuH8IHAj.js","./VirtualSensorCreate-CUTyLWv-.js"])))=>i.map(i=>d[i]);
2
- import{Fr as e,Ft as t,H as n,L as ee,Lt as te,M as ne,Vt as re,dt as r,jr as i,jt as ie}from"./vendor-cameraui-GaXYUHUd.js";import{B as ae,Cn as a,En as oe,Gn as se,I as ce,L as le,Pn as ue,Tn as de,_n as fe,_t as pe,cn as me,ct as o,hn as he,mr as ge,st as _e,wn as ve,z as ye,zn as be}from"./api-Da98l_Y7.js";import{$t as s,Fn as xe,Gn as Se,Nn as c,Rt as l,Xn as u,Zn as d,_r as f,an as p,br as m,cn as h,cr as g,en as _,gr as v,hn as y,in as b,ir as x,on as S,pn as C,rr as Ce,sn as w,yr as T,zn as we}from"./vendor-BaiDFVEr.js";import{p as E}from"./vendor-core-DNm82LOv.js";import{F as Te,P as Ee,S as De,T as Oe}from"./vendor-primevue-CIRUBYsf.js";import{t as ke}from"./close-BNAWPz0y.js";import{n as Ae,t as je}from"./eye-off-CaRq7Ks2.js";import{t as D}from"./sensors-Bj4drsO3.js";import{t as Me}from"./trash-can-outline-DLKniIWM.js";import{t as Ne}from"./CuiDataTable-DcyMAPBx.js";import{t as Pe}from"./history-SuH8IHAj.js";import{t as Fe}from"./search-BZkSqZO5.js";import{n as Ie,t as Le}from"./sensorIcons-C9h8rHR6.js";import{t as Re}from"./back-filled-DcBDBvvP.js";import{t as ze}from"./plus-CA5o30dE.js";import{t as Be}from"./settings-BUEZ5iRE.js";import{t as Ve}from"./table-2-line-B-z0xvbG.js";var O={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function k(e,t){return c(),h(`svg`,O,[...t[0]||=[p(`path`,{fill:`currentColor`,d:`M2 5.27L3.28 4L20 20.72L18.73 22l-3.08-3.08c-1.15.38-2.37.58-3.65.58c-5 0-9.27-3.11-11-7.5c.69-1.76 1.79-3.31 3.19-4.54zM12 9a3 3 0 0 1 3 3a3 3 0 0 1-.17 1L11 9.17A3 3 0 0 1 12 9m0-4.5c5 0 9.27 3.11 11 7.5a11.8 11.8 0 0 1-4 5.19l-1.42-1.43A9.86 9.86 0 0 0 20.82 12A9.82 9.82 0 0 0 12 6.5c-1.09 0-2.16.18-3.16.5L7.3 5.47c1.44-.62 3.03-.97 4.7-.97M3.18 12A9.82 9.82 0 0 0 12 17.5c.69 0 1.37-.07 2-.21L11.72 15A3.064 3.064 0 0 1 9 12.28L5.6 8.87c-.99.85-1.82 1.91-2.42 3.13`},null,-1)]])}var He=x({name:`mdi-eye-off-outline`,render:k}),Ue={class:`flex flex-col`},We={key:0,class:`page-title`},Ge={class:`flex gap-2 mb-4`},Ke={key:1,class:`flex flex-1 min-h-0 flex-col items-center justify-center w-full gap-4 py-16`},qe={key:2,class:`flex flex-1 min-h-0 flex-col items-center justify-center w-full gap-4 py-20`},Je={class:`text-muted text-sm`},Ye={key:3,class:`flex min-h-0 flex-col`},Xe=[`onClick`],Ze={class:`flex flex-col gap-3`},Qe={class:`flex items-center gap-3 min-w-0`},$e={class:`flex flex-col min-w-0 flex-1`},et={class:`flex items-center gap-2 min-w-0`},tt={class:`font-bold text-color truncate`},nt={class:`text-xs text-muted truncate`},rt={class:`flex items-center gap-1 min-w-0`},it={class:`flex items-center gap-1 ml-auto`},at={key:1,class:`shrink-0`},ot={key:0,class:`flex items-center justify-end mt-4`},st={key:4,class:`flex min-h-0 flex-col`},ct={class:`flex items-center justify-center`},lt={class:`flex flex-col min-w-0`},ut={class:`flex items-center gap-2 min-w-0`},dt={class:`font-bold text-color truncate`},ft={key:0,class:`text-xs text-muted truncate`},pt={class:`flex items-center justify-end gap-1`},mt={key:2,class:`shrink-0`},ht={key:0,class:`flex items-center justify-end mt-4`},A=a(y({__name:`Sensors`,setup(a){let y=o(()=>l(()=>import(`./SensorEdit-B-64Y4xT.js`),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21]),import.meta.url)),x=o(()=>l(()=>import(`./SensorHistory-D8xQKiuE.js`),__vite__mapDeps([22,1,2,3,23,4,5,6,7,8,9,10,11,12,13,14,24]),import.meta.url)),O=o(()=>l(()=>import(`./VirtualSensorCreate-CUTyLWv-.js`),__vite__mapDeps([25,1,2,3,4,5,6,7,8,9,10,11,12,13,14]),import.meta.url)),k={color:`rgb(251, 146, 60)`,filter:`drop-shadow(0 0 6px rgba(251, 146, 60, 0.6))`},A=new Set([i.Motion,i.Object,i.Audio,i.Face,i.LicensePlate,i.Classifier,i.Contact,i.Occupancy,i.Smoke,i.Leak,i.Gas,i.CarbonMonoxide,i.Heat,i.Cold,i.Vibration,i.Tamper,i.Problem,i.Power]),j=new D,M=new pe,N=_e(),P=ge(),{t:F}=e(),{smBreakpoint:I}=oe(),L=ue(),{uiSettings:R}=E(L),{sensors:z}=r(),{data:gt,isBusy:_t}=j.getSensorsQuery(),{data:vt}=M.getCamerasQuery({page:1,pageSize:-1}),{mutateAsync:yt,isPending:bt}=j.createVirtualSensorQuery(),{mutateAsync:xt}=j.patchSensorQuery(),{mutateAsync:St,isPending:Ct}=j.deleteSensorQuery(),{mutateAsync:wt}=j.bulkDeleteSensorsQuery(),{mutateAsync:Tt}=j.bulkPatchSensorsQuery(),Et={bodyRow:{class:`text-sm text-secondary`},column:{columnTitle:{class:`text-sm`}},datatable:{class:`z-0`}},Dt=Se(`menuRef`),B=g(``),V=g(!1),H=b(()=>he(void 0,`admin`)),U=b(()=>gt.value??[]),Ot=b(()=>U.value.filter(e=>e.assignmentLocked).length),kt=b(()=>[{key:`hideCameraBound`,label:F(`views.sensors.hide_camera_bound`),description:F(`views.sensors.hide_camera_bound_hint`),badge:Ot.value?String(Ot.value):void 0,toggle:!0,toggleState:R.value.sensors.hideCameraBound,onClick:()=>R.value.sensors.hideCameraBound=!R.value.sensors.hideCameraBound}]),At=b(()=>(vt.value?.result??[]).map(e=>({label:e.name,value:e._id}))),W=b(()=>{let e=B.value.toLowerCase().trim();return U.value.map(e=>({sensor:e,label:e.displayName||e.name,typeLabel:F(`components.camera_options.sensor_type_${e.type}`),pluginLabel:e.virtual?F(`views.sensors.owner_virtual`):e.pluginName,assignedLabel:e.assignedCameraIds.map(e=>At.value.find(t=>t.value===e)?.label).filter(Boolean).join(`, `)})).filter(e=>!R.value.sensors.hideCameraBound||!e.sensor.assignmentLocked).filter(t=>!e||[t.label,t.typeLabel,t.pluginLabel,t.assignedLabel].some(t=>t.toLowerCase().includes(e))).sort((e,t)=>e.label.localeCompare(t.label))}),G=b(()=>V.value?W.value:W.value.filter(e=>!e.sensor.hidden)),K=b(()=>W.value.filter(e=>e.sensor.hidden).length),q=b(()=>R.value.sensors.view),jt=b(()=>new Map(z.value.map(e=>[e.id,e]))),{selectionMode:J,selectedIds:Mt,selectedItems:Y,allSelected:Nt,bulkBusy:X,enterSelectionMode:Pt,exitSelectionMode:Ft,toggleSelectAll:It,toggleSelection:Lt}=ce(()=>G.value,e=>e.sensor.id),Rt=b(()=>Y.value.filter(e=>$(e.sensor)));function zt(){R.value.sensors.view=q.value===`cards`?`table`:`cards`}function Z(e){let t=jt.value.get(e.id),n=n=>t?t.getProperty(n):e.properties?.[n];switch(e.type){case i.Light:case i.Switch:return!!n(`on`);case i.Siren:return!!n(`active`);case i.Doorbell:return!!n(`ring`);case i.Garage:case i.Lock:return n(`currentState`)===0;case i.SecuritySystem:return n(`currentState`)===4;case i.Battery:return!!n(`low`);default:return A.has(String(e.type))&&!!n(`detected`)}}function Q(e){return e.sensor.hidden?`opacity-50`:``}function $(e){return e.virtual||!e.connected}function Bt(e){if(J.value){Lt(e.sensor.id);return}!H.value||e.sensor.hidden||N.openComponentDialog(y,{data:{title:e.label,confirmText:F(`components.form.button.save`),contentProps:{sensor:e.sensor,cameraOptions:At.value}},onConfirm:async t=>{t&&await xt({id:e.sensor.id,data:t})}})}function Vt(e){N.openComponentDialog(x,{data:{title:`${e.displayName||e.name} · ${F(`views.sensors.history`)}`,hideConfirmButton:!0,contentProps:{sensorId:e.id,sensorType:String(e.type)}}})}async function Ht(e,t){await xt({id:e.id,data:{hidden:t}})}function Ut(e,t,n){t.length&&P.add({severity:`error`,summary:F(`views.sensors.bulk_failed`,{count:t.length}),detail:t.join(`, `),life:8e3}),e&&P.add({severity:`success`,detail:F(n,{count:e}),life:5e3})}async function Wt(e){let t=[...Y.value];X.value=!0;try{let{succeeded:n,failed:ee}=await Tt({ids:t.map(e=>e.sensor.id),data:{hidden:e}}),te=t.filter(e=>ee.some(t=>t.id===e.sensor.id)).map(e=>e.label);Ft(),Ut(n.length,te,e?`views.sensors.hide_selected_done`:`views.sensors.unhide_selected_done`)}catch(e){P.add({severity:`error`,detail:e?.response?.data?.message??e?.message??String(e),life:5e3})}finally{X.value=!1}}function Gt(){let e=[...Rt.value];N.openTextDialog({data:{title:F(`components.dialog.title.confirm`),contentText:F(`views.sensors.delete_selected_confirm`,{count:e.length}),confirmText:F(`components.form.button.remove`),confirmButtonProps:{severity:`danger`}},onConfirm:async()=>{X.value=!0;try{let{skipped:t}=await wt({ids:e.map(e=>e.sensor.id)}),n=e.filter(e=>t.includes(e.sensor.id)).map(e=>e.label);Ft(),Ut(e.length-n.length,n,`views.sensors.delete_selected_done`)}finally{X.value=!1}}})}function Kt(){N.openComponentDialog(O,{data:{title:F(`views.sensors.create_virtual`),confirmText:F(`components.form.button.save`),loading:bt,contentProps:{}},onConfirm:async e=>{e&&await yt({data:e})}})}function qt(e){N.openTextDialog({data:{title:F(`views.sensors.delete`),contentText:F(`views.sensors.delete_confirm`),confirmText:F(`components.form.button.remove`),loading:Ct,confirmButtonProps:{severity:`danger`}},onConfirm:async()=>{await St({id:e.id})}})}return(e,r)=>{let i=Re,a=t,oe=ae,ce=Fe,ue=Ee,pe=ne,o=Te,he=Be,ge=me,_e=ie,Se=se,l=fe,g=He,y=te,b=Ie,x=Pe,E=Ae,D=je,O=Me,A=n,j=ee,M=De,N=Oe,P=Ne,L=ve,R=de,z=re;return c(),h(`div`,Ue,[v(I)?w(``,!0):(c(),h(`h1`,We,m(v(F)(`views.sensors.title`)),1)),C(oe,{position:`left`},{default:u(()=>[C(a,{severity:`secondary`,text:``,class:`cui-button p-2 text-color non-draggable-region`,onClick:r[0]||=t=>e.$router.push(`/menu`)},{icon:u(()=>[C(i,{class:`w-6 h-6`})]),_:1})]),_:1}),p(`div`,Ge,[C(o,{class:`flex-1`},{default:u(()=>[C(ue,null,{default:u(()=>[C(ce,{class:`w-4 h-4`})]),_:1}),C(pe,{modelValue:v(B),"onUpdate:modelValue":r[1]||=e=>Ce(B)?B.value=e:null,placeholder:v(F)(`views.sensors.search`),class:`w-full`},null,8,[`modelValue`,`placeholder`])]),_:1}),d((c(),S(a,{severity:`secondary`,outlined:``,class:`cui-button shrink-0`,onClick:r[2]||=e=>v(Dt)?.toggleMenu(e)},{icon:u(()=>[C(he,{class:`w-4.5 h-4.5`})]),_:1})),[[z,{value:v(F)(`views.sensors.settings`)},void 0,{left:!0}]]),C(ge,{ref_key:`menuRef`,ref:Dt,items:v(kt),"auto-hide":!1,popover:{pt:{root:{class:`w-[22rem]`},content:{class:`p-0! rounded-xl! overflow-hidden!`}}}},null,8,[`items`])]),v(_t)?(c(),h(`div`,Ke,[C(_e,{"stroke-width":`5`,class:`w-[30px] h-[30px]`})])):v(W).length?v(q)===`cards`?(c(),h(`div`,Ye,[p(`div`,{class:`grid w-full gap-2`,style:T({gridTemplateColumns:`repeat(auto-fill, minmax(${v(I)?`100%`:`300px`}, 1fr))`})},[(c(!0),h(_,null,xe(v(G),e=>(c(),h(`div`,{key:e.sensor.id,class:`relative`},[v(J)?(c(),h(`div`,{key:0,class:`absolute inset-0 z-4 cursor-pointer`,onClick:t=>v(Lt)(e.sensor.id)},null,8,Xe)):w(``,!0),C(A,{class:f([`cui-card h-full`,[Q(e),{"cursor-pointer":v(H)&&!e.sensor.hidden}]]),onClick:t=>Bt(e)},{content:u(()=>[p(`div`,Ze,[p(`div`,Qe,[v(J)?(c(),h(`div`,{key:0,class:f([`w-6 h-6 rounded-full border-2 flex items-center justify-center transition-colors shrink-0`,v(Mt).has(e.sensor.id)?`bg-primary border-primary`:`border-color`])},[v(Mt).has(e.sensor.id)?(c(),S(l,{key:0,class:`w-4 h-4 text-white`})):w(``,!0)],2)):w(``,!0),(c(),S(we(v(Le)(e.sensor.type)),{class:f([`w-6 h-6 shrink-0 transition-colors`,{"text-muted":!Z(e.sensor)}]),style:T(Z(e.sensor)?k:void 0)},null,8,[`class`,`style`])),p(`div`,$e,[p(`div`,et,[p(`span`,tt,m(e.label),1),e.sensor.exposed?w(``,!0):d((c(),S(g,{key:0,class:`w-4 h-4 shrink-0 text-muted`},null,512)),[[z,v(F)(`views.sensors.not_exposed`)]])]),p(`span`,nt,m(e.typeLabel)+` · `+m(e.pluginLabel),1)]),d(C(y,{class:`shrink-0`,style:T({background:e.sensor.connected?`green`:`gray`})},null,8,[`style`]),[[z,{value:e.sensor.connected?v(F)(`views.sensors.connected`):v(F)(`views.sensors.disconnected`)}]])]),p(`div`,rt,[e.sensor.assignmentLocked?d((c(),S(b,{key:0,class:`w-3.5 h-3.5 shrink-0 text-muted`},null,512)),[[z,v(F)(`views.sensors.assigned_cameras_locked_hint`)]]):w(``,!0),p(`span`,{class:f([`text-xs truncate`,e.assignedLabel?`text-muted`:`text-muted italic`])},m(e.assignedLabel||v(F)(`views.sensors.unassigned`)),3),p(`div`,it,[d((c(),S(a,{text:``,rounded:``,severity:`secondary`,class:`cui-icon-sm shrink-0`,onClick:s(t=>Vt(e.sensor),[`stop`])},{icon:u(()=>[C(x,{width:`100%`,height:`100%`})]),_:1},8,[`onClick`])),[[z,v(F)(`views.sensors.history`),void 0,{left:!0}]]),v(H)?d((c(),S(a,{key:0,text:``,rounded:``,severity:`secondary`,class:`cui-icon-sm shrink-0`,onClick:s(t=>Ht(e.sensor,!e.sensor.hidden),[`stop`])},{icon:u(()=>[e.sensor.hidden?(c(),S(E,{key:0,width:`100%`,height:`100%`,class:`text-muted`})):(c(),S(D,{key:1,width:`100%`,height:`100%`,class:`text-muted`}))]),_:2},1032,[`onClick`])),[[z,e.sensor.hidden?v(F)(`views.sensors.unhide`):v(F)(`views.sensors.hide`),void 0,{left:!0}]]):w(``,!0),v(H)?d((c(),h(`span`,at,[C(a,{text:``,rounded:``,severity:`danger`,class:`cui-icon-sm`,disabled:!$(e.sensor),onClick:s(t=>qt(e.sensor),[`stop`])},{icon:u(()=>[C(O,{width:`100%`,height:`100%`})]),_:1},8,[`disabled`,`onClick`])])),[[z,$(e.sensor)?v(F)(`views.sensors.delete`):v(F)(`views.sensors.delete_connected`),void 0,{left:!0}]]):w(``,!0)])])])]),_:2},1032,[`class`,`onClick`])]))),128))],4),v(K)>0?(c(),h(`div`,ot,[C(a,{severity:`secondary`,class:`cui-button-medium`,label:v(V)?v(F)(`views.sensors.hide_hidden`):`${v(F)(`views.sensors.show_hidden`)} (${v(K)})`,onClick:r[3]||=e=>V.value=!v(V)},null,8,[`label`])])):w(``,!0)])):(c(),h(`div`,st,[C(A,{class:`cui-card`},{content:u(()=>[C(P,{value:v(G),"striped-rows":``,pt:Et,class:`w-full`,onRowClick:r[5]||=e=>Bt(e.data)},{default:u(()=>[v(J)?(c(),S(M,{key:0,header:``,"header-class":`p-2 pl-4 w-8 max-w-8`,class:`p-2 pl-4 w-8 max-w-8`},{body:u(({data:e})=>[C(j,{"model-value":v(Mt).has(e.sensor.id),binary:``,size:`small`,onClick:r[4]||=s(()=>{},[`stop`]),"onUpdate:modelValue":t=>v(Lt)(e.sensor.id)},null,8,[`model-value`,`onUpdate:modelValue`])]),_:1})):w(``,!0),C(M,{header:``,"header-class":`p-2 pl-4 w-5 max-w-5`,class:`p-2 pl-4 w-5 max-w-5`},{body:u(({data:e})=>[p(`div`,ct,[d(C(y,{style:T({background:e.sensor.connected?`green`:`gray`})},null,8,[`style`]),[[z,{value:e.sensor.connected?v(F)(`views.sensors.connected`):v(F)(`views.sensors.disconnected`)}]])])]),_:1}),C(M,{field:`label`,header:v(F)(`views.sensors.name`),sortable:``,"header-class":`p-2`,class:`p-2 w-full min-w-[180px] max-w-0`},{body:u(({data:e})=>[p(`div`,{class:f([`flex items-center gap-2 min-w-0`,Q(e)])},[(c(),S(we(v(Le)(e.sensor.type)),{class:f([`w-5 h-5 shrink-0 transition-colors`,{"text-muted":!Z(e.sensor)}]),style:T(Z(e.sensor)?k:void 0)},null,8,[`class`,`style`])),p(`div`,lt,[p(`div`,ut,[p(`span`,dt,m(e.label),1),e.sensor.exposed?w(``,!0):d((c(),S(g,{key:0,class:`w-4 h-4 shrink-0 text-muted`},null,512)),[[z,v(F)(`views.sensors.not_exposed`)]])]),v(I)?(c(),h(`span`,ft,m(e.typeLabel)+` · `+m(e.pluginLabel),1)):w(``,!0)])],2)]),_:1},8,[`header`]),v(I)?w(``,!0):(c(),S(M,{key:1,field:`typeLabel`,header:v(F)(`views.sensors.type`),sortable:``,"header-class":`p-2 whitespace-nowrap`,class:`p-2 whitespace-nowrap`},{body:u(({data:e})=>[p(`span`,{class:f([`text-xs text-muted whitespace-nowrap`,Q(e)])},m(e.typeLabel),3)]),_:1},8,[`header`])),v(I)?w(``,!0):(c(),S(M,{key:2,field:`pluginLabel`,header:v(F)(`views.sensors.plugin`),sortable:``,"header-class":`p-2 whitespace-nowrap`,class:`p-2 whitespace-nowrap`},{body:u(({data:e})=>[C(N,{label:e.pluginLabel,class:f([`text-xs whitespace-nowrap`,Q(e)])},null,8,[`label`,`class`])]),_:1},8,[`header`])),C(M,{field:`assignedLabel`,header:v(F)(`views.sensors.assigned_cameras`),sortable:``,"header-class":`p-2 whitespace-nowrap`,class:`p-2 min-w-[140px]`},{body:u(({data:e})=>[p(`div`,{class:f([`flex items-center gap-1 min-w-0`,Q(e)])},[e.sensor.assignmentLocked?d((c(),S(b,{key:0,class:`w-3.5 h-3.5 shrink-0 text-muted`},null,512)),[[z,v(F)(`views.sensors.assigned_cameras_locked_hint`)]]):w(``,!0),p(`span`,{class:f([`text-xs truncate`,e.assignedLabel?`text-muted`:`text-muted italic`])},m(e.assignedLabel||v(F)(`views.sensors.unassigned`)),3)],2)]),_:1},8,[`header`]),C(M,{header:``,"header-class":`p-2 pr-4 w-28`,class:`p-2 pr-4 w-28`},{body:u(({data:e})=>[p(`div`,pt,[d((c(),S(a,{text:``,rounded:``,severity:`secondary`,class:`cui-icon-sm shrink-0`,onClick:s(t=>Vt(e.sensor),[`stop`])},{icon:u(()=>[C(x,{width:`100%`,height:`100%`})]),_:1},8,[`onClick`])),[[z,v(F)(`views.sensors.history`),void 0,{left:!0}]]),v(H)&&!e.sensor.hidden?d((c(),S(a,{key:0,text:``,rounded:``,severity:`secondary`,class:`cui-icon-sm shrink-0`,onClick:s(t=>Ht(e.sensor,!0),[`stop`])},{icon:u(()=>[C(D,{width:`100%`,height:`100%`,class:`text-muted`})]),_:1},8,[`onClick`])),[[z,v(F)(`views.sensors.hide`),void 0,{left:!0}]]):v(H)?d((c(),S(a,{key:1,text:``,rounded:``,severity:`secondary`,class:`cui-icon-sm shrink-0`,onClick:s(t=>Ht(e.sensor,!1),[`stop`])},{icon:u(()=>[C(E,{width:`100%`,height:`100%`,class:`text-muted`})]),_:1},8,[`onClick`])),[[z,v(F)(`views.sensors.unhide`),void 0,{left:!0}]]):w(``,!0),v(H)?d((c(),h(`span`,mt,[C(a,{text:``,rounded:``,severity:`danger`,class:`cui-icon-sm`,disabled:!$(e.sensor),onClick:s(t=>qt(e.sensor),[`stop`])},{icon:u(()=>[C(O,{width:`100%`,height:`100%`})]),_:1},8,[`disabled`,`onClick`])])),[[z,$(e.sensor)?v(F)(`views.sensors.delete`):v(F)(`views.sensors.delete_connected`),void 0,{left:!0}]]):w(``,!0)])]),_:1})]),_:1},8,[`value`]),v(K)>0?(c(),h(`div`,ht,[C(a,{severity:`secondary`,class:`cui-button-medium`,label:v(V)?v(F)(`views.sensors.hide_hidden`):`${v(F)(`views.sensors.show_hidden`)} (${v(K)})`,onClick:r[6]||=e=>V.value=!v(V)},null,8,[`label`])])):w(``,!0)]),_:1})])):(c(),h(`div`,qe,[C(Se,{class:`w-12 h-12 text-muted`}),p(`span`,Je,m(v(U).length?v(F)(`views.sensors.no_matches`):v(F)(`views.sensors.no_sensors`)),1)])),v(H)?(c(),S(R,{key:5,"force-visible":v(J)},{default:u(()=>[v(J)?(c(),h(_,{key:1},[C(L,{grouped:``,"tooltip-props":{value:e.$t(`components.form.tooltip.cancel_selection`)},"button-props":{severity:`secondary`},icon:v(ke),"icon-props":{width:`100%`,height:`100%`},onClick:v(Ft)},null,8,[`tooltip-props`,`icon`,`onClick`]),C(L,{grouped:``,"tooltip-props":{value:e.$t(`components.form.tooltip.select_all`)},"button-props":{severity:v(Nt)?`primary`:`secondary`},icon:v(ye),"icon-props":{width:`100%`,height:`100%`},onClick:v(It)},null,8,[`tooltip-props`,`button-props`,`icon`,`onClick`]),C(L,{grouped:``,"tooltip-props":{value:v(F)(`views.sensors.hide_selected`)},"button-props":{severity:`secondary`,disabled:!v(Y).length||v(X)},icon:v(je),"icon-props":{width:`100%`,height:`100%`},onClick:r[7]||=e=>Wt(!0)},null,8,[`tooltip-props`,`button-props`,`icon`]),C(L,{grouped:``,"tooltip-props":{value:v(F)(`views.sensors.unhide_selected`)},"button-props":{severity:`secondary`,disabled:!v(Y).length||v(X)},icon:v(Ae),"icon-props":{width:`100%`,height:`100%`},onClick:r[8]||=e=>Wt(!1)},null,8,[`tooltip-props`,`button-props`,`icon`]),C(L,{grouped:``,"tooltip-props":{value:v(F)(`views.sensors.delete_selected`)},"button-props":{severity:`danger`,disabled:!v(Rt).length||v(X)},icon:v(Me),"icon-props":{width:`100%`,height:`100%`},onClick:Gt},null,8,[`tooltip-props`,`button-props`,`icon`])],64)):(c(),h(_,{key:0},[v(G).length?(c(),S(L,{key:0,grouped:``,"tooltip-props":{value:v(F)(`views.sensors.select`)},"button-props":{severity:`secondary`},icon:v(le),"icon-props":{width:`100%`,height:`100%`},onClick:v(Pt)},null,8,[`tooltip-props`,`icon`,`onClick`])):w(``,!0),C(L,{grouped:``,"tooltip-props":{value:v(q)===`cards`?v(F)(`views.sensors.view_table`):v(F)(`views.sensors.view_cards`)},"button-props":{severity:`secondary`},icon:v(q)===`cards`?v(Ve):v(be),"icon-props":{width:`100%`,height:`100%`},onClick:zt},null,8,[`tooltip-props`,`icon`]),C(L,{grouped:``,"tooltip-props":{value:v(F)(`views.sensors.create_virtual`)},"button-props":{class:`text-white`},icon:v(ze),"icon-props":{width:`30px`,height:`30px`},onClick:Kt},null,8,[`tooltip-props`,`icon`])],64))]),_:1},8,[`force-visible`])):w(``,!0)])}}}),[[`__scopeId`,`data-v-d07d5dd5`]]);export{A as default};
@@ -1 +0,0 @@
1
- import{Ft as e,Ur as t,Yr as n,ci as r,jt as i,pi as a,si as o,wi as s}from"./vendor-cameraui-GaXYUHUd.js";import{B as c,C as l,Cn as u,Dn as d,En as f,Mn as p,Nn as m,On as h,Pn as g,b as _,hn as v,jn as y}from"./api-Da98l_Y7.js";import{Fn as b,Gn as x,Ln as S,Nn as C,Tn as w,Xn as T,_r as E,an as D,br as O,cn as k,cr as A,en as j,gr as M,hn as N,in as P,jn as F,mr as I,on as L,pn as R,qn as z,sn as B,yr as V,zn as ee}from"./vendor-BaiDFVEr.js";import{p as te,u as H}from"./vendor-core-DNm82LOv.js";import{t as U}from"./back-filled-DcBDBvvP.js";import{n as W,t as ne}from"./round-alt-arrow-left-bold-BxX4ufd0.js";var G={},K={class:`w-full h-full flex items-center justify-center`};function q(e,t){let n=i;return C(),k(`div`,K,[R(n,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])}var re=u(G,[[`render`,q]]),J={key:0},Y={key:1},X={class:`overflow-hidden w-full`},Z={class:`ml-2 flex flex-row items-center justify-between`},Q={class:`text-start flex-1`},ie={class:`text-sm font-bold max-w-100 truncate`},ae={key:0,class:`text-sm text-muted font-normal`},oe=u(N({__name:`CuiSubNavItem`,props:{label:{},to:{},description:{},icon:{},activeIcon:{}},setup(t){let{icon:n,activeIcon:r,label:i,description:a,to:o}=I(t);return(t,s)=>{let c=e,l=S(`RouterLink`);return C(),L(l,{to:M(o)},{default:T(({isExactActive:e})=>[R(c,{text:``,severity:`secondary`,class:E([`subnavitem-button w-full h-[120px] flex items-start justify-start p-6 bg-none text-color hover:!text-primary active:!text-primary focus:!text-primary rounded-none`,{"active !text-primary":e}]),fluid:``},{default:T(()=>[M(n)&&!e||!M(r)?(C(),k(`div`,J,[R(M(n),{class:`w-[24px] h-[24px]`})])):M(r)&&e?(C(),k(`div`,Y,[R(M(r),{class:`w-[24px] h-[24px]`})])):B(``,!0),D(`div`,X,[D(`div`,Z,[D(`div`,Q,[D(`div`,ie,O(M(i)),1),M(a)?(C(),k(`div`,ae,O(M(a)),1)):B(``,!0)])])])]),_:2},1032,[`class`])]),_:1},8,[`to`])}}}),[[`__scopeId`,`data-v-a5399c04`]]),$={CLOSED:0,EXPANDED:288},se=u(N({__name:`CuiSubNavbar`,setup(e,{expose:n}){let i=H(),{bus:a}=y(),{xlBreakpoint:o,mdBreakpoint:c}=f(),{bottombarHeight:l,subbarState:u,navbarState:p,topbarHeight:m}=d(),h=x(`subnavbarRef`),g=A(`closed`),S=P(()=>o.value?`opened`:g.value),T=P(()=>S.value===`closed`?$.CLOSED:$.EXPANDED),E=P(()=>_.find(e=>e.name===`Settings`).children.filter(e=>e.meta?.settingsBar&&v(e))),N=P(()=>[`personal`,`system`].map(e=>({key:e,routes:E.value.filter(t=>(t.meta.settingsBar.group??`personal`)===e)})).filter(e=>e.routes.length>0));function I(){g.value=`closed`,a.emit({subbarState:`closed`})}function R(){w(()=>{let e=h.value?.querySelector(`.subnavitem-button.active`);e&&e.scrollIntoView({block:`center`,behavior:`smooth`})})}let B=s(R,100);return t(h,e=>{let t=e.target,n=t.closest(`#menu-icon`),r=t.closest(`#submenu-icon`),i=t.closest(`#navbar-icon`);!n&&!r&&!i&&I()}),r(h,()=>{B()}),z(u,e=>{e&&e!==g.value&&(g.value=e)},{immediate:!0}),z(i.currentRoute,(e,t)=>{e.path!==t.path&&I()}),z(p,e=>{e===`opened`&&c.value&&I()}),F(()=>{R()}),n({subnavbarState:S}),(e,t)=>{let n=oe;return C(),k(`nav`,{ref_key:`subnavbarRef`,ref:h,class:`cui-subnavbar fixed transition-all duration-200 overflow-x-hidden overflow-y-scroll md:!pl-0 pl-safe pb-safe w-full h-full flex flex-col`,style:V({width:`${M(T)}px`,borderRightWidth:M(S)===`opened`?`1px`:`0px`,paddingBottom:`calc(env(safe-area-inset-top, 0px) + env(safe-area-inset-bottom, 0px) + ${M(l)}px + ${M(m)}px)`})},[(C(!0),k(j,null,b(M(N),t=>(C(),k(j,{key:t.key},[D(`span`,{class:`shrink-0 pl-4 pt-4 pb-1 text-[11px] font-semibold uppercase tracking-widest text-muted`,style:V({width:`${M($).EXPANDED}px`})},O(e.$t(`views.settings.section_${t.key}`)),5),(C(!0),k(j,null,b(t.routes,t=>(C(),L(n,{key:t.name,icon:t.meta.settingsBar.icon.default,"active-icon":t.meta.settingsBar.icon.active,to:t.path,label:e.$t(`navigation.${(t.meta?.name).toLowerCase()}`),description:e.$t(`navigation_description.${t.meta?.description}`),class:`cui-list-item !m-0 !p-0 shrink-0`,style:V({width:`${M($).EXPANDED}px`})},null,8,[`icon`,`active-icon`,`to`,`label`,`description`,`style`]))),128))],64))),128))],4)}}}),[[`__scopeId`,`data-v-e9d37de4`]]),ce={class:`font-semibold text-xl truncate`},le={class:`w-full h-full relative`},ue={key:0,class:`w-full flex flex-row h-[calc(40px+1rem)] py-2 items-center fixed z-2`},de={class:`relative z-2 page-title !m-0`},fe=N({__name:`Settings`,setup(t){let r=H(),i=p(),{bus:s}=y(),{isTouch:u}=h(),{mdBreakpoint:d,xlBreakpoint:b,smBreakpoint:w}=f(),j=l(),{routerLoading:N}=te(j),F=_.find(e=>e.name===`Settings`).children.filter(e=>v(e)&&e.meta?.settingsBar),I=x(`subnavbarRef`),G=x(`containerRef`),K=A(!0),q=P(()=>r.currentRoute.value.path===`/settings`),{isSwiping:J,direction:Y}=u.value?a(G,{threshold:50,onSwipeStart(e){let t=e.target;([`INPUT`,`TEXTAREA`,`SELECT`,`BUTTON`].includes(t.tagName)||t.closest(`.p-datatable`))&&(K.value=!1)},onSwipeEnd(){K.value=!0}}):o(G,{threshold:50,onSwipeStart(e){let t=e.target;([`INPUT`,`TEXTAREA`,`SELECT`,`BUTTON`].includes(t.tagName)||t.closest(`.p-datatable`))&&(K.value=!1)},onSwipeEnd(){K.value=!0}}),X=n(I),Z=P(()=>I.value?.subnavbarState??`closed`);function Q(){let e=Z.value===`opened`?`closed`:`opened`;s.emit({subbarState:e})}return z(w,e=>{if(!e&&q.value){let e=g().uiSettings.interface.selectedSettingsView;r.replace(`/settings/${m.includes(e)?e:`account`}`)}}),z([J,Y],()=>{if(J.value&&K.value&&!q.value){let e=F.findIndex(e=>e.path===r.currentRoute.value.path.split(`/settings/`)[1]);switch(Y.value){case`right`:{let t=F[e-1];t&&r.push({path:t.path})}break;case`left`:{let t=F[e+1];t&&r.push({path:t.path})}}}}),(t,n)=>{let r=c,a=U,o=e,s=se,l=ne,u=W,f=re,p=S(`RouterView`);return C(),k(`div`,null,[R(r,{position:`center`},{default:T(()=>[D(`span`,ce,O(t.$t(`views.settings.title_${t.$route.meta?.name}`)),1)]),_:1}),R(r,{position:`left`},{default:T(()=>[R(o,{severity:`secondary`,text:``,class:`cui-button p-2 text-color non-draggable-region`,onClick:n[0]||=e=>t.$router.push(M(q)?`/menu`:`/settings`)},{icon:T(()=>[R(a,{class:`w-6 h-6`})]),_:1})]),_:1}),M(w)?B(``,!0):(C(),L(s,{key:0,ref_key:`subnavbarRef`,ref:I,class:`z-4 min-w-0`},null,512)),D(`main`,{class:`relative w-full h-full`,style:V({paddingLeft:M(d)?`0px`:`${M(X).width.value}px`})},[D(`div`,le,[M(w)?B(``,!0):(C(),k(`div`,ue,[n[1]||=D(`div`,{class:`ml-2`},null,-1),M(b)?B(``,!0):(C(),L(o,{key:0,id:`submenu-icon`,severity:`secondary`,class:`mr-2 cui-icon-lg relative z-2`,text:``,rounded:``,onClick:Q},{icon:T(()=>[M(Z)===`opened`?(C(),L(l,{key:0,width:`100%`,height:`100%`})):(C(),L(u,{key:1,width:`100%`,height:`100%`}))]),_:1})),D(`h1`,de,O(t.$t(`views.settings.title_${t.$route.meta?.name}`)),1),n[2]||=D(`div`,{class:`gradient-blur rotate-180 !h-[70px]`},[D(`div`),D(`div`),D(`div`),D(`div`),D(`div`),D(`div`)],-1)])),D(`div`,{ref_key:`containerRef`,ref:G,class:E([`px-2 h-full w-full`,{"py-4":M(w),"pt-[calc(40px+2rem)] pb-2":!M(w)}])},[M(N)&&M(i).showRouterLoadingSub.value?(C(),L(f,{key:0,class:`w-full h-full relative overflow-x-hidden`})):(C(),L(p,{key:1},{default:T(({Component:e})=>[(C(),L(ee(e),{class:`h-full`}))]),_:1}))],2)])],4)])}}});export{fe as default};
@@ -1 +0,0 @@
1
- import{t as e}from"./SettingsAccount-CcPLFq2z.js";export{e as default};
@@ -1 +0,0 @@
1
- import{Fr as e,Ft as t,H as n,M as r,Vt as i,jt as a}from"./vendor-cameraui-GaXYUHUd.js";import{Bn as o,Cn as s,D as c,R as l,Vn as u,g as d,gt as ee,h as f,ht as te,i as p,ir as m,j as h,l as ne,ln as re,mr as g,st as ie}from"./api-Da98l_Y7.js";import{Fn as ae,Gn as oe,Nn as _,Xn as v,Zn as se,an as y,b as ce,bn as b,br as x,cn as S,cr as C,dr as le,en as ue,fn as de,gr as w,hn as T,in as E,ir as D,jn as O,mr as k,on as A,pn as j,qt as M,rr as N,sn as P,v as F,wn as I,y as L,zn as fe}from"./vendor-BaiDFVEr.js";import{n as R,r as z}from"./vendor-zod-Dbq0fBXY.js";import{p as pe}from"./vendor-core-DNm82LOv.js";import{K as me,L as he,R as ge,S as _e,a as ve,s as ye,u as be,z as xe}from"./vendor-primevue-CIRUBYsf.js";import{t as Se}from"./CuiDataTable-DcyMAPBx.js";import{t as Ce}from"./CuiQRCode-CQGx_k0S.js";import{t as B}from"./auth-BdsJrXmQ.js";var V={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function H(e,t){return _(),S(`svg`,V,[...t[0]||=[y(`path`,{fill:`currentColor`,d:`m17 7l-1.41 1.41L18.17 11H8v2h10.17l-2.58 2.58L17 17l5-5M4 5h8V3H4c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h8v-2H4z`},null,-1)]])}var we=D({name:`mdi-logout`,render:H}),U={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function W(e,t){return _(),S(`svg`,U,[...t[0]||=[y(`path`,{fill:`currentColor`,d:`M7 14c-1.1 0-2-.9-2-2s.9-2 2-2s2 .9 2 2s-.9 2-2 2m5.6-4c-.8-2.3-3-4-5.6-4c-3.3 0-6 2.7-6 6s2.7 6 6 6c2.6 0 4.8-1.7 5.6-4H16v4h4v-4h3v-4z`},null,-1)]])}var Te=D({name:`mdi-key`,render:W}),G={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function K(e,t){return _(),S(`svg`,G,[...t[0]||=[y(`path`,{fill:`currentColor`,d:`M17 19H7V5h10m0-4H7c-1.11 0-2 .89-2 2v18a2 2 0 0 0 2 2h10a2 2 0 0 0 2-2V3a2 2 0 0 0-2-2`},null,-1)]])}var Ee=D({name:`mdi-cellphone`,render:K}),De={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function Oe(e,t){return _(),S(`svg`,De,[...t[0]||=[y(`path`,{fill:`currentColor`,d:`M22 18v4h-4v-3h-3v-3h-3l-2.26-2.26c-.55.17-1.13.26-1.74.26a6 6 0 0 1-6-6a6 6 0 0 1 6-6a6 6 0 0 1 6 6c0 .61-.09 1.19-.26 1.74zM7 5a2 2 0 0 0-2 2a2 2 0 0 0 2 2a2 2 0 0 0 2-2a2 2 0 0 0-2-2`},null,-1)]])}var ke=D({name:`mdi-key-variant`,render:Oe}),Ae={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function je(e,t){return _(),S(`svg`,Ae,[...t[0]||=[y(`path`,{fill:`currentColor`,d:`M4 6h16v10H4m16 2a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2H4c-1.11 0-2 .89-2 2v10a2 2 0 0 0 2 2H0v2h24v-2z`},null,-1)]])}var Me=D({name:`mdi-laptop`,render:je}),Ne={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function Pe(e,t){return _(),S(`svg`,Ne,[...t[0]||=[y(`path`,{fill:`currentColor`,d:`M21 17H3V5h18m0-2H3a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h5v2h8v-2h5a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2`},null,-1)]])}var Fe=D({name:`mdi-television`,render:Pe}),Ie={class:`flex flex-col gap-6`},Le={class:`token-box`},Re={class:`token-value`},ze=s(T({__name:`ApiTokenCreated`,props:{token:{}},setup(n,{expose:r}){let a=n,o=g(),{t:s}=e(),{token:c}=k(a);async function l(){await p(c.value)?o.add({severity:`success`,detail:s(`components.toast.copied`),life:1500}):o.add({severity:`error`,detail:s(`components.toast.copy_failed`),life:3e3})}async function u(){}return r({onConfirm:u}),(e,n)=>{let r=xe,a=t,o=i;return _(),S(`div`,Ie,[j(r,{severity:`warn`},{default:v(()=>[de(x(e.$t(`views.settings.api_tokens.created_warning`)),1)]),_:1}),y(`div`,Le,[y(`span`,Re,x(w(c)),1),se((_(),A(a,{text:``,rounded:``,class:`cui-icon-md shrink-0`,onClick:l},{icon:v(()=>[j(w(te),{width:`100%`,height:`100%`})]),_:1})),[[o,{value:e.$t(`components.form.button.copy`)}]])])])}}}),[[`__scopeId`,`data-v-591cfcb4`]]),Be={class:`flex flex-col gap-2 w-full`},Ve={for:`apiTokenName`,class:`cui-label`},He={key:0,class:`text-xs text-red-500`},Ue=T({__name:`CreateApiToken`,props:{existingNames:{}},setup(e,{expose:t}){let n=e,i=C(``),a=E(()=>n.existingNames.includes(i.value.trim()));return t({onConfirm:async()=>{let e=i.value.trim();return!e||a.value?null:e}}),(e,t)=>{let n=r;return _(),S(`div`,Be,[y(`label`,Ve,x(e.$t(`views.settings.api_tokens.name_label`)),1),j(n,{id:`apiTokenName`,modelValue:w(i),"onUpdate:modelValue":t[0]||=e=>N(i)?i.value=e:null,class:`w-full`,placeholder:e.$t(`views.settings.api_tokens.name_placeholder`),autofocus:``,invalid:w(a)},null,8,[`modelValue`,`placeholder`,`invalid`]),w(a)?(_(),S(`span`,He,x(e.$t(`views.settings.api_tokens.name_exists`)),1)):P(``,!0)])}}}),We={class:`flex flex-col gap-6`},Ge={class:`backup-codes-grid`},Ke=s(T({__name:`TwoFactorBackupCodes`,props:{backupCodes:{}},setup(e,{expose:t}){let{backupCodes:n}=k(e);async function r(){}return t({onConfirm:r}),(e,t)=>{let r=xe;return _(),S(`div`,We,[j(r,{severity:`warn`},{default:v(()=>[de(x(e.$t(`views.settings.security.backup_warning`)),1)]),_:1}),y(`div`,Ge,[(_(!0),S(ue,null,ae(w(n),e=>(_(),S(`span`,{key:e,class:`backup-code`},x(e),1))),128))])])}}}),[[`__scopeId`,`data-v-0761a2ae`]]),qe={class:`flex flex-col gap-6`},Je={class:`text-muted`},Ye={class:`flex flex-col gap-2 justify-center items-center mt-5`},Xe={class:`cui-label`},Ze=T({__name:`TwoFactorDisable`,setup(t,{expose:n}){let r=new B,i=g(),{t:a}=e(),o=b(`dialogRefProps`),{mutateAsync:s,isPending:c}=r.disable2FAQuery(),l=C(``),u=E(()=>!!(o.loading?.value||c.value)),d=E(()=>l.value.length<6);async function ee(){if(l.value.length<6)return null;try{await s({code:l.value}),i.add({severity:`success`,detail:a(`views.settings.security.2fa_disabled_success`),life:3e3})}catch(e){return i.add({severity:`error`,detail:e,life:3e3}),null}}return n({isLoading:u,isDisabled:d,onConfirm:ee}),(e,t)=>{let n=be;return _(),S(`div`,qe,[y(`p`,Je,x(e.$t(`views.settings.security.disable_confirm`)),1),y(`div`,Ye,[y(`label`,Xe,x(e.$t(`views.settings.security.enter_code`)),1),j(n,{modelValue:w(l),"onUpdate:modelValue":t[0]||=e=>N(l)?l.value=e:null,length:6,"integer-only":``,class:`justify-center`},null,8,[`modelValue`])])])}}}),q={class:`flex flex-col gap-6`},J={class:`text-muted`},Y={class:`flex flex-col gap-2 justify-center items-center mt-5`},X={class:`cui-label`},Qe=T({__name:`TwoFactorRegenerate`,props:{onBackupCodesGenerated:{type:Function}},setup(t,{expose:n}){let r=new B,i=t,a=g(),{t:o}=e(),s=b(`dialogRefProps`),{mutateAsync:c,isPending:l}=r.regenerateBackupCodesQuery(),u=C(``),d=E(()=>!!(s.loading?.value||l.value)),ee=E(()=>u.value.length<6);async function f(){if(u.value.length<6)return null;try{let e=await c({code:u.value});a.add({severity:`success`,detail:o(`views.settings.security.backup_regenerated`),life:3e3}),i.onBackupCodesGenerated&&i.onBackupCodesGenerated(e.backupCodes)}catch(e){return a.add({severity:`error`,detail:e,life:3e3}),null}}return n({isLoading:d,isDisabled:ee,onConfirm:f}),(e,t)=>{let n=be;return _(),S(`div`,q,[y(`p`,J,x(e.$t(`views.settings.security.regenerate_confirm`)),1),y(`div`,Y,[y(`label`,X,x(e.$t(`views.settings.security.enter_code`)),1),j(n,{modelValue:w(u),"onUpdate:modelValue":t[0]||=e=>N(u)?u.value=e:null,length:6,"integer-only":``,class:`justify-center`},null,8,[`modelValue`])])])}}}),$e={class:`flex flex-col w-full gap-6`},et={class:`relative`},tt={class:`image-upload rounded-full z-1`},nt={for:`file-input`},rt={class:`card-title`},it={class:`flex flex-col gap-6`},at={for:`username`,class:`cui-label`},ot={class:`card-title`},st={class:`flex flex-col gap-6`},ct={for:`password`,class:`cui-label`},lt={for:`passwordConfirm`,class:`cui-label`},ut={class:`relative`},dt={class:`image-upload rounded-full z-1`},ft={for:`file-input`},pt={class:`card-title`},mt={class:`flex flex-col gap-6`},ht={class:`flex flex-col field-gap`},gt={for:`username`,class:`cui-label`},_t={class:`flex flex-row items-end justify-end`},vt={class:`card-title`},yt={for:`password`,class:`cui-label`},bt={for:`passwordConfirm`,class:`cui-label`},xt={class:`flex flex-row items-end justify-end`},St={class:`card-title`},Ct={key:0,class:`flex justify-center py-6`},wt={key:`initial`,class:`flex flex-col gap-6`},Tt={class:`flex flex-col gap-1`},Et={class:`tfa-row-title`},Dt={class:`tfa-row-description`},Ot={key:`loading`,class:`flex flex-col items-center py-8 gap-3`},kt={class:`text-sm text-muted`},At={key:`setup`,class:`tfa-setup`},jt={class:`tfa-setup-qr`},Mt={class:`text-sm text-muted text-center mt-3`},Nt={class:`flex flex-col gap-5 flex-1`},Pt={class:`flex flex-col field-gap`},Ft={class:`cui-label`},It={class:`flex flex-col field-gap`},Lt={class:`cui-label`},Rt={class:`flex gap-2 justify-end`},zt={key:`enabled`,class:`flex flex-col gap-6`},Bt={class:`tfa-row tfa-row-enabled`},Vt={class:`tfa-status-icon`},Ht={class:`tfa-row-content`},Ut={class:`tfa-row-title`},Wt={key:0,class:`tfa-backup-info`},Gt={class:`flex gap-2 justify-end`},Kt={key:0},qt={class:`card-title`},Jt={class:`flex items-center gap-4`},Yt={class:`flex flex-col field-switch-gap min-w-0`},Xt={class:`text-sm font-bold text-color`},Zt={class:`card-title`},Qt={class:`flex flex-col gap-6`},$t={class:`text-sm text-muted`},en={class:`text-muted text-sm`},tn={class:`flex items-center gap-3`},nn={class:`flex flex-col min-w-0`},rn={class:`text-sm font-semibold text-color truncate`},an={class:`text-xs text-muted truncate font-mono`},on={class:`text-xs text-muted`},sn={class:`flex flex-row items-end justify-end gap-2`},cn={class:`card-title`},ln={class:`flex flex-col gap-6`},un={class:`text-muted text-sm`},dn={class:`flex items-center gap-3`},fn={class:`flex flex-col min-w-0`},pn={class:`flex items-center gap-2`},mn={class:`text-sm font-semibold text-color truncate`},hn={class:`text-xs text-muted truncate`},gn={key:0,class:`flex flex-row items-end justify-end gap-2`},Z=s(T({__name:`SettingsAccount`,props:{firststeps:{type:Boolean}},setup(s,{expose:ae}){let b=new B,T=s,D=ie(),V=g(),{t:H}=e(),{firststeps:U}=k(T),W=d(),{user:G}=pe(W),{data:K,isLoading:De}=b.toggleQueryActivator(`get2FAStatusQuery`,!U.value).get2FAStatusQuery(),{mutateAsync:Oe,isPending:Ae}=b.setup2FAQuery(),{mutateAsync:je,isPending:Ne}=b.enable2FAQuery(),{data:Pe,isBusy:Ie}=b.toggleQueryActivator(`listSessionsQuery`,!U.value).listSessionsQuery({page:1,pageSize:-1}),{mutateAsync:Le}=b.revokeSessionQuery(),{mutateAsync:Re}=b.revokeOtherSessionsQuery(),{data:Be,isBusy:Ve}=b.toggleQueryActivator(`listApiTokensQuery`,!U.value).listApiTokensQuery(),{mutateAsync:He,isPending:We}=b.createApiTokenQuery(),{mutateAsync:Ge}=b.revokeApiTokenQuery(),qe=R({password:c,passwordConfirm:z().min(1)}).refine(e=>e.password===e.passwordConfirm,{message:`Passwords do not match`,path:[`passwordConfirm`]}),Je=R({username:z().min(1),password:c,passwordConfirm:z().min(1)}).refine(e=>e.password===e.passwordConfirm,{message:`Passwords do not match`,path:[`passwordConfirm`]}),Ye=oe(`formRef`),Xe=oe(`passwordFormRef`),q=le(),J=C(`avatar`),Y=C(G.value?.username??``),X=C(!1),Z=C(!1),Q=C(null),$=C(``),_n=C(null),vn=C(!1),yn=C(null);C(!1);let bn=C(!1),xn=C(!1),Sn=E(()=>!1),Cn={bodyRow:{class:`text-sm text-secondary`},column:{columnTitle:{class:`text-sm`}}},wn=E(()=>(Pe.value??[]).filter(e=>!e.is_current).length),Tn=E(()=>!Q.value?.secret||!G.value?.username?``:`otpauth://totp/${encodeURIComponent(`camera.ui:${G.value.username}`)}?secret=${Q.value.secret}&issuer=camera.ui`);async function En(){Q.value?.secret&&await p(Q.value.secret)}function Dn(e){return e===`tv`?Fe:e===`native`?Ee:Me}async function On(e){_n.value=e;try{await Le({id:e})}catch(e){V.add({severity:`error`,detail:e,life:3e3})}finally{_n.value=null}}function kn(){D.openComponentDialog(Ue,{data:{title:H(`views.settings.api_tokens.create`),confirmText:H(`views.settings.api_tokens.create_confirm`),contentProps:{existingNames:(Be.value??[]).map(e=>e.name)}},onConfirm:async e=>{if(e)try{An((await He({name:e})).token)}catch(e){V.add({severity:`error`,detail:e,life:3e3})}}})}function An(e){D.openComponentDialog(ze,{data:{title:H(`views.settings.api_tokens.created_title`),confirmText:H(`components.form.button.close`),hideCancelButton:!0,contentProps:{token:e}}})}function jn(e){D.openTextDialog({data:{title:H(`views.settings.api_tokens.revoke_title`),contentText:H(`views.settings.api_tokens.revoke_confirm`,{name:e.name}),confirmText:H(`views.settings.api_tokens.revoke`),confirmButtonProps:{severity:`danger`}},onConfirm:async()=>{yn.value=e.id;try{await Ge({id:e.id})}catch(e){V.add({severity:`error`,detail:e,life:3e3})}finally{yn.value=null}}})}function Mn(){D.openTextDialog({data:{title:H(`views.settings.active_sessions.revoke_others_title`),contentText:H(`views.settings.active_sessions.revoke_others_confirm`,{count:wn.value}),confirmText:H(`views.settings.active_sessions.revoke`),confirmButtonProps:{severity:`danger`}},onConfirm:async()=>{vn.value=!0;try{await Re()}catch(e){V.add({severity:`error`,detail:e,life:3e3})}finally{vn.value=!1}}})}async function Nn(){try{Q.value=await Oe()}catch(e){V.add({severity:`error`,detail:e,life:3e3})}}function Pn(){Q.value=null,$.value=``}async function Fn(){try{let e=await je({code:$.value});Q.value=null,$.value=``,V.add({severity:`success`,detail:H(`views.settings.security.2fa_enabled_success`),life:3e3}),Rn(e.backupCodes)}catch(e){V.add({severity:`error`,detail:e,life:3e3})}}function In(){D.openComponentDialog(Ze,{data:{title:H(`views.settings.security.disable_2fa`),confirmText:H(`views.settings.security.disable_2fa`),confirmButtonProps:{severity:`danger`},contentProps:{}}})}function Ln(){D.openComponentDialog(Qe,{data:{title:H(`views.settings.security.regenerate_backup`),confirmText:H(`views.settings.security.regenerate_backup`),contentProps:{onBackupCodesGenerated:e=>{Rn(e)}}}})}function Rn(e){D.openComponentDialog(Ke,{data:{title:H(`views.settings.security.backup_codes`),confirmText:H(`components.form.button.close`),hideCancelButton:!0,contentProps:{backupCodes:e}}})}async function zn(e){let t=e.target?.files;q.value=t?.[0],J.value=await f(e)??J.value}async function Bn(){X.value=!0;try{let e;q.value&&(e=new FormData,e.append(`upload`,q.value));let t=G.value?.username!==Y.value;if(t)await W.updateUser({username:Y.value},e);else if(e)await W.updateUser(void 0,e);else{X.value=!1;return}V.add({severity:`success`,detail:H(`components.toast.profile_updated`),life:3e3}),q.value=void 0,t&&W.logout()}catch{}X.value=!1}async function Vn(e){Z.value=!0;try{await W.updateUser({password:e.password,passwordConfirm:e.passwordConfirm}),V.add({severity:`success`,detail:H(`components.toast.password_updated`),life:3e3}),Xe.value?.resetForm(),W.logout()}catch(e){V.add({severity:`error`,detail:e,life:3e3})}Z.value=!1}async function Hn(){}async function Un(e){if(e!==bn.value){if(e){V.add({severity:`info`,detail:H(`views.settings.biometric.enable_hint`),life:3e3});return}xn.value=!0;try{await h(m()),bn.value=!1,V.add({severity:`success`,detail:H(`views.settings.biometric.cleared`),life:3e3})}finally{xn.value=!1}}}return O(()=>{Hn()}),ae({formRef:Ye}),(e,s)=>{let c=re,d=r,f=ge,p=n,m=ye,h=t,g=a,ie=Ce,ae=ee,oe=he,b=be,C=o,le=Te,T=u,E=xe,D=me,O=_e,k=l,R=Se,z=ve,pe=we,B=i;return _(),S(`div`,null,[y(`div`,$e,[w(U)?(_(),A(w(ce),{key:0,ref_key:`formRef`,ref:Ye,"validation-schema":w(Je),class:`flex flex-col w-full gap-6`},{default:v(()=>[y(`div`,et,[y(`div`,tt,[y(`label`,nt,[j(c,{src:w(J),size:64,"show-border":!1,class:`cursor-pointer`},null,8,[`src`]),y(`input`,{id:`file-input`,type:`file`,class:`hidden`,accept:`image/png,image/jpeg,image/jpg`,onChange:s[0]||=e=>zn(e)},null,32)])]),y(`span`,rt,x(e.$t(`views.settings.profile`)),1),j(p,{class:`cui-card`},{content:v(()=>[y(`div`,it,[j(w(L),{"model-value":w(G)?.username,name:`username`,as:`div`,class:`flex flex-col field-gap`},{default:v(({field:t,errors:n})=>[y(`label`,at,x(e.$t(`components.form.label.username`)),1),j(f,null,{default:v(()=>[j(d,I(t,{invalid:n.length>0,type:`text`}),null,16,[`invalid`])]),_:2},1024),j(M,{name:`fade`},{default:v(()=>[j(w(F),{name:`username`,class:`cui-input-error`})]),_:1})]),_:1},8,[`model-value`])])]),_:1})]),y(`div`,null,[y(`span`,ot,x(e.$t(`views.settings.password`)),1),j(p,{class:`cui-card`},{content:v(()=>[y(`div`,st,[j(w(L),{name:`password`,as:`div`,class:`flex flex-col field-gap`},{default:v(({field:t,errors:n})=>[y(`label`,ct,x(e.$t(`components.form.label.new_password`)),1),j(f,null,{default:v(()=>[j(m,I({invalid:n.length>0},t,{feedback:!1,"toggle-mask":``}),null,16,[`invalid`])]),_:2},1024),j(M,{name:`fade`},{default:v(()=>[j(w(F),{name:`password`,class:`cui-input-error`})]),_:1})]),_:1}),j(w(L),{name:`passwordConfirm`,as:`div`,class:`flex flex-col field-gap`},{default:v(({field:t,errors:n})=>[y(`label`,lt,x(e.$t(`components.form.label.new_password_confirm`)),1),j(f,null,{default:v(()=>[j(m,I({invalid:n.length>0},t,{feedback:!1,"toggle-mask":``}),null,16,[`invalid`])]),_:2},1024),j(M,{name:`fade`},{default:v(()=>[j(w(F),{name:`passwordConfirm`,class:`cui-input-error`})]),_:1})]),_:1})])]),_:1})])]),_:1},8,[`validation-schema`])):(_(),S(ue,{key:1},[y(`div`,ut,[y(`div`,dt,[y(`label`,ft,[j(c,{src:w(J),size:64,"show-border":!1,class:`cursor-pointer`},null,8,[`src`]),y(`input`,{id:`file-input`,type:`file`,class:`hidden`,accept:`image/png,image/jpeg,image/jpg`,onChange:s[1]||=e=>zn(e)},null,32)])]),y(`span`,pt,x(e.$t(`views.settings.profile`)),1),j(p,{class:`cui-card`},{content:v(()=>[y(`div`,mt,[y(`div`,ht,[y(`label`,gt,x(e.$t(`components.form.label.username`)),1),j(f,null,{default:v(()=>[j(d,{modelValue:w(Y),"onUpdate:modelValue":s[2]||=e=>N(Y)?Y.value=e:null,loading:w(X),type:`text`},null,8,[`modelValue`,`loading`])]),_:1})]),y(`div`,_t,[j(h,{loading:w(X),class:`cui-button-medium`,label:e.$t(`components.form.button.update_profile`),onClick:Bn},null,8,[`loading`,`label`])])])]),_:1})]),y(`div`,null,[y(`span`,vt,x(e.$t(`views.settings.password`)),1),j(p,{class:`cui-card`},{content:v(()=>[j(w(ce),{ref_key:`passwordFormRef`,ref:Xe,"validation-schema":w(qe),class:`flex flex-col gap-6`,onSubmit:s[3]||=e=>Vn(e)},{default:v(()=>[j(w(L),{name:`password`,as:`div`,class:`flex flex-col field-gap`},{default:v(({field:t,errors:n})=>[y(`label`,yt,x(e.$t(`components.form.label.new_password`)),1),j(f,null,{default:v(()=>[j(m,I({invalid:n.length>0},t,{loading:w(Z),feedback:!1,"toggle-mask":``}),null,16,[`invalid`,`loading`])]),_:2},1024),j(M,{name:`fade`},{default:v(()=>[j(w(F),{name:`password`,class:`cui-input-error`})]),_:1})]),_:1}),j(w(L),{name:`passwordConfirm`,as:`div`,class:`flex flex-col field-gap`},{default:v(({field:t,errors:n})=>[y(`label`,bt,x(e.$t(`components.form.label.new_password_confirm`)),1),j(f,null,{default:v(()=>[j(m,I({invalid:n.length>0},t,{loading:w(Z),feedback:!1,"toggle-mask":``}),null,16,[`invalid`,`loading`])]),_:2},1024),j(M,{name:`fade`},{default:v(()=>[j(w(F),{name:`passwordConfirm`,class:`cui-input-error`})]),_:1})]),_:1}),y(`div`,xt,[j(h,{type:`submit`,loading:w(Z),class:`cui-button-medium`,label:e.$t(`components.form.button.change_password`)},null,8,[`loading`,`label`])])]),_:1},8,[`validation-schema`])]),_:1})]),y(`div`,null,[y(`span`,St,x(e.$t(`views.settings.security.title`)),1),j(p,{class:`cui-card`},{content:v(()=>[w(De)?(_(),S(`div`,Ct,[j(g,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):(_(),A(M,{key:1,name:`fade`,mode:`out-in`},{default:v(()=>[!w(K)?.enabled&&!w(Q)&&!w(Ae)?(_(),S(`div`,wt,[y(`div`,Tt,[y(`span`,Et,x(e.$t(`views.settings.security.2fa_title`)),1),y(`span`,Dt,x(e.$t(`views.settings.security.2fa_description`)),1)]),j(h,{class:`cui-button-medium ml-auto`,label:e.$t(`views.settings.security.setup_2fa`),onClick:Nn},null,8,[`label`])])):!w(K)?.enabled&&w(Ae)?(_(),S(`div`,Ot,[j(g,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`}),y(`span`,kt,x(e.$t(`views.settings.security.generating_qr`)),1)])):!w(K)?.enabled&&w(Q)?(_(),S(`div`,At,[y(`div`,jt,[j(ie,{value:w(Tn),size:160,"logo-size":36},null,8,[`value`]),y(`p`,Mt,x(e.$t(`views.settings.security.scan_qr`)),1)]),y(`div`,Nt,[y(`div`,Pt,[y(`label`,Ft,x(e.$t(`views.settings.security.manual_entry`)),1),j(f,null,{default:v(()=>[j(d,{"model-value":w(Q)?.secret,readonly:``,class:`font-mono text-sm`},null,8,[`model-value`]),j(oe,null,{default:v(()=>[j(ae,{"action-text":e.$t(`components.form.tooltip.copied`),icon:w(te),"button-props":{severity:`secondary`,text:!0},onAction:En},null,8,[`action-text`,`icon`])]),_:1})]),_:1})]),y(`div`,It,[y(`label`,Lt,x(e.$t(`views.settings.security.enter_code`)),1),j(b,{modelValue:w($),"onUpdate:modelValue":s[4]||=e=>N($)?$.value=e:null,length:6,"integer-only":``},null,8,[`modelValue`])]),y(`div`,Rt,[j(h,{severity:`secondary`,class:`cui-button-medium`,label:e.$t(`components.form.button.cancel`),onClick:Pn},null,8,[`label`]),j(h,{class:`cui-button-medium`,label:e.$t(`views.settings.security.enable_2fa`),loading:w(Ne),disabled:w($).length<6,onClick:Fn},null,8,[`label`,`loading`,`disabled`])])])])):(_(),S(`div`,zt,[y(`div`,Bt,[y(`div`,Vt,[j(C,{class:`w-5 h-5`})]),y(`div`,Ht,[y(`span`,Ut,x(e.$t(`views.settings.security.2fa_enabled`)),1)])]),w(K)?.backupCodesCount===void 0?P(``,!0):(_(),S(`div`,Wt,[j(le,{class:`w-4 h-4`}),y(`span`,null,x(e.$t(`views.settings.security.backup_codes_remaining`,{count:w(K).backupCodesCount})),1)])),y(`div`,Gt,[j(h,{severity:`secondary`,class:`cui-button-medium`,label:e.$t(`views.settings.security.regenerate_backup`),onClick:Ln},null,8,[`label`]),j(h,{severity:`danger`,class:`cui-button-medium`,label:e.$t(`views.settings.security.disable_2fa`),onClick:In},null,8,[`label`])])]))]),_:1}))]),_:1})]),w(Sn)?(_(),S(`div`,Kt,[y(`span`,qt,x(e.$t(`views.settings.biometric.title`)),1),j(p,{class:`cui-card`},{content:v(()=>[y(`div`,Jt,[j(T,{class:`shrink-0 w-6 h-6 text-color`}),y(`div`,Yt,[y(`span`,Xt,x(e.$t(`views.settings.biometric.label`)),1),j(E,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:v(()=>[de(x(e.$t(`views.settings.biometric.description`)),1)]),_:1})]),j(D,{"model-value":w(bn),loading:w(xn),class:`ml-auto shrink-0`,"onUpdate:modelValue":Un},null,8,[`model-value`,`loading`])])]),_:1})])):P(``,!0),y(`div`,null,[y(`span`,Zt,x(e.$t(`views.settings.api_tokens.title`)),1),j(p,{class:`cui-card`},{content:v(()=>[y(`div`,Qt,[y(`span`,$t,x(e.$t(`views.settings.api_tokens.info`)),1),j(R,{value:w(Be)??[],"data-key":`id`,loading:w(Ve),pt:Cn,"striped-rows":``,scrollable:``},{loading:v(()=>[j(g,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})]),empty:v(()=>[y(`span`,en,x(e.$t(`views.settings.api_tokens.empty`)),1)]),default:v(()=>[j(O,{field:`name`,header:e.$t(`views.settings.api_tokens.name_label`),"header-class":`p-2 h-7 min-h-7 max-h-7`,class:`p-2 h-7 min-h-7 max-h-7`},{body:v(({data:e})=>[y(`div`,tn,[j(w(ke),{class:`cui-session-icon`}),y(`div`,nn,[y(`span`,rn,x(e.name),1),y(`span`,an,x(e.token_hint),1)])])]),_:1},8,[`header`]),j(O,{field:`last_seen_at`,header:e.$t(`views.settings.api_tokens.last_used`),"header-class":`p-2 h-7 min-h-7 max-h-7`,class:`p-2 h-7 min-h-7 max-h-7`},{body:v(({data:t})=>[y(`span`,on,x(t.last_seen_at>t.created_at?w(ne)(t.last_seen_at):e.$t(`views.settings.api_tokens.never`)),1)]),_:1},8,[`header`]),j(O,{field:`action`,"header-class":`p-2 h-7 min-h-7 max-h-7`,class:`p-2 h-7 min-h-7 max-h-7 text-right`},{body:v(({data:t})=>[se((_(),A(h,{severity:`danger`,text:``,rounded:``,class:`cui-icon-md`,loading:w(yn)===t.id,onClick:e=>jn(t)},{icon:v(()=>[j(k,{width:`100%`,height:`100%`})]),_:1},8,[`loading`,`onClick`])),[[B,{value:e.$t(`views.settings.api_tokens.revoke`)}]])]),_:1})]),_:1},8,[`value`,`loading`]),y(`div`,sn,[j(h,{loading:w(We),class:`cui-button-medium mr-4 md:mr-0`,label:e.$t(`views.settings.api_tokens.create`),onClick:kn},null,8,[`loading`,`label`])])])]),_:1})]),y(`div`,null,[y(`span`,cn,x(e.$t(`views.settings.active_sessions.title`)),1),j(p,{class:`cui-card`},{content:v(()=>[y(`div`,ln,[j(R,{value:w(Pe)??[],"data-key":`id`,loading:w(Ie),pt:Cn,"striped-rows":``,scrollable:``},{loading:v(()=>[j(g,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})]),empty:v(()=>[y(`span`,un,x(e.$t(`views.settings.active_sessions.empty`)),1)]),default:v(()=>[j(O,{field:`device`,header:e.$t(`views.settings.title_device`),"header-class":`p-2 h-7 min-h-7 max-h-7`,class:`p-2 h-7 min-h-7 max-h-7`},{body:v(({data:t})=>[y(`div`,dn,[(_(),A(fe(Dn(t.device.kind)),{class:`cui-session-icon`})),y(`div`,fn,[y(`div`,pn,[y(`span`,mn,x(t.device.name),1),t.is_current?(_(),A(z,{key:0,severity:`success`,value:e.$t(`views.settings.active_sessions.this_device`),class:`cui-session-tag`},null,8,[`value`])):P(``,!0)]),y(`span`,hn,x(t.device.ip||`—`),1)])])]),_:1},8,[`header`]),j(O,{field:`action`,"header-class":`p-2 h-7 min-h-7 max-h-7`,class:`p-2 h-7 min-h-7 max-h-7 text-right`},{body:v(({data:t})=>[t.is_current?P(``,!0):se((_(),A(h,{key:0,severity:`danger`,text:``,rounded:``,class:`cui-icon-md`,loading:w(_n)===t.id,onClick:e=>On(t.id)},{icon:v(()=>[j(pe,{width:`100%`,height:`100%`})]),_:1},8,[`loading`,`onClick`])),[[B,{value:e.$t(`views.settings.active_sessions.revoke`)}]])]),_:1})]),_:1},8,[`value`,`loading`]),w(wn)>0?(_(),S(`div`,gn,[j(h,{loading:w(vn),class:`cui-button-medium mr-4 md:mr-0`,label:e.$t(`views.settings.active_sessions.revoke_all_others`,{count:w(wn)}),onClick:Mn},null,8,[`loading`,`label`])])):P(``,!0)])]),_:1})])],64))])])}}}),[[`__scopeId`,`data-v-de51a7b1`]]);export{Z as t};
@@ -1 +0,0 @@
1
- import{t as e}from"./SettingsAppearance-CCf7QwkP.js";export{e as default};
@@ -1,2 +0,0 @@
1
- const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./esm-TRigYTsA.js","./vendor-capacitor-4nn-eF9U.js","./vendor-BaiDFVEr.js","./rolldown-runtime-C0FnF6B9.js","./dist-Yc5s0_JB.js"])))=>i.map(i=>d[i]);
2
- import{A as e,Fr as t,Ft as n,H as r,M as ee,Vt as te,jt as ne}from"./vendor-cameraui-GaXYUHUd.js";import{hn as i,ir as a,mr as o}from"./api-Da98l_Y7.js";import{Fn as re,Ln as ie,Nn as s,Qt as ae,Rt as c,Xn as l,Zn as oe,an as u,br as d,cn as f,cr as p,en as m,fn as h,gr as g,hn as _,in as v,jn as y,on as b,or as x,pn as S,qn as C,sn as w}from"./vendor-BaiDFVEr.js";import{a as T,t as E}from"./useElectron-BNGXeZEx.js";import{K as se,S as ce,T as le,U as ue,z as de}from"./vendor-primevue-CIRUBYsf.js";import{t as D}from"./notifications-CtZcAwQu.js";import{t as fe}from"./delete-BF6keuqy.js";import{t as pe}from"./CuiDataTable-DcyMAPBx.js";import{t as me}from"./usePermissions-C9kp5HQR.js";T(`PushRegistration`);var O=`cui.push.registrations`;p(!1);var k=null;function he(){return{registerForPush:async()=>{},forgetIfThisDevice:async(e,t)=>{if(!e)return;let n=await j(e);!n||n.deviceId!==t||(await M(e),await P(e))},isServerSynced:async e=>e?await j(e)!==null:!1}}async function A(){try{let{Preferences:e}=await c(async()=>{let{Preferences:e}=await import(`./esm-TRigYTsA.js`);return{Preferences:e}},__vite__mapDeps([0,1,2,3]),import.meta.url),{value:t}=await e.get({key:O});return t?JSON.parse(t):{}}catch{return{}}}async function ge(e){try{let{Preferences:t}=await c(async()=>{let{Preferences:e}=await import(`./esm-TRigYTsA.js`);return{Preferences:e}},__vite__mapDeps([0,1,2,3]),import.meta.url);await t.set({key:O,value:JSON.stringify(e)})}catch{}}async function j(e){return(await A())[e]??null}async function M(e){let t=await A();t[e]&&(delete t[e],await ge(t))}function N(){return k??=(async()=>{try{let{Capacitor:e,registerPlugin:t}=await c(async()=>{let{Capacitor:e,registerPlugin:t}=await import(`./dist-Yc5s0_JB.js`);return{Capacitor:e,registerPlugin:t}},__vite__mapDeps([4,2,3]),import.meta.url);return e.isPluginAvailable(`PushCrypto`)?{plugin:t(`PushCrypto`)}:{plugin:null}}catch{return{plugin:null}}})(),k}async function P(e){try{let{plugin:t}=await N();await t?.deleteKey({serverId:e})}catch{}}var _e={class:`flex flex-col w-full gap-6`},ve={class:`card-title`},ye={class:`flex flex-col gap-6`},be={class:`text-sm`},xe={key:1,class:`flex items-center justify-center py-8`},Se={class:`flex items-center gap-4`},Ce={class:`flex flex-col field-switch-gap`},we={class:`cui-label-switch`},Te={key:0,class:`flex items-center gap-4`},Ee={class:`flex flex-col field-switch-gap min-w-0`},De={class:`cui-label-switch`},Oe={key:1,class:`flex items-center gap-4`},ke={class:`flex flex-col field-switch-gap min-w-0`},Ae={class:`cui-label-switch`},je={key:2,class:`flex flex-col gap-2`},Me={class:`flex items-center gap-4`},Ne={class:`flex flex-col field-switch-gap`},Pe={class:`cui-label-switch`},Fe={key:0,class:`grid grid-cols-1 sm:grid-cols-3 gap-3 mt-2`},Ie={class:`flex flex-col field-gap`},Le={for:`qh-from`,class:`cui-label`},Re={class:`flex flex-col field-gap`},ze={for:`qh-to`,class:`cui-label`},Be={class:`flex flex-col field-gap`},Ve={for:`qh-tz`,class:`cui-label`},He={key:0},Ue={class:`card-title`},We={class:`flex flex-col gap-6`},Ge={class:`text-sm`},Ke={key:0,class:`flex items-center justify-center py-8`},qe={key:1,class:`text-sm text-muted text-center py-8`},Je={key:2,class:`flex flex-col gap-3`},Ye={class:`flex items-center gap-4`},Xe={class:`flex flex-col field-switch-gap`},Ze={class:`cui-label-switch`},Qe={key:1},$e={class:`card-title`},et={class:`flex flex-col gap-6`},tt={class:`text-sm`},nt={key:0,class:`flex items-center justify-center py-8`},rt={key:1,class:`text-sm text-muted text-center py-8`},it={key:2,class:`flex flex-col gap-3`},at={class:`flex items-center gap-4`},ot={class:`flex flex-col field-switch-gap`},st={class:`cui-label-switch`},ct={key:2},lt={class:`card-title`},ut={class:`flex flex-col gap-6`},dt={class:`text-sm`},ft={key:0,class:`flex items-center justify-center py-8`},pt={key:1,class:`text-sm text-muted text-center py-8`},mt={key:3,class:`flex justify-end gap-2`},F=_({__name:`SettingsNotifications`,setup(c){let _=new D,{t:T,te:O}=t(),k=o(),A=i(void 0,`admin`),{registerForPush:ge,forgetIfThisDevice:j,isServerSynced:M}=he(),{isElectronApp:N,electron:P}=E(),{states:F,refresh:ht}=me(),{data:I,isLoading:gt}=_.getSettingsQuery(),{data:L,isLoading:_t}=_.listDevicesQuery(()=>!0),{data:R,isLoading:z}=_.listSourcesQuery(),{mutate:vt,isPending:yt}=_.setSettingsQuery(),{mutateAsync:bt}=_.setSettingsQuerySilent(),{mutate:xt}=_.revokeDeviceQuery(),{mutate:B}=_.updateDeviceQuery(),V=Intl.DateTimeFormat().resolvedOptions().timeZone||`UTC`,H=p(null),U=p(``),W=p(!1),G=p(!1),K=p(!1),q=p(!0),J=p(!1),Y=p(null),X=x({}),Z=p(null),St=v(()=>!!H.value&&JSON.stringify(H.value)!==U.value),Q=v(()=>!!H.value?.enabled),Ct=v(()=>yt.value),wt=v(()=>Ot(H.value?.quietHours?.from)),Tt=v(()=>Ot(H.value?.quietHours?.to));function $(e){e&&(H.value=JSON.parse(JSON.stringify(e)),U.value=JSON.stringify(e))}function Et(){$(I.value)}function Dt(e){H.value&&(e?H.value.quietHours={from:`22:00`,to:`07:00`,timezone:V}:delete H.value.quietHours)}function Ot(e){if(!e)return null;let[t,n]=e.split(`:`).map(Number);if(!Number.isFinite(t)||!Number.isFinite(n))return null;let r=new Date;return r.setHours(t,n,0,0),r}function kt(e){return e?`${String(e.getHours()).padStart(2,`0`)}:${String(e.getMinutes()).padStart(2,`0`)}`:`00:00`}function At(e,t){H.value?.quietHours&&(H.value.quietHours[e]=kt(t))}function jt(e){return H.value?.systemTypes?.[e]!==!1}function Mt(e,t){H.value&&(H.value.systemTypes||(H.value.systemTypes={}),t?delete H.value.systemTypes[e]:H.value.systemTypes[e]=!1)}function Nt(e){return H.value?.sources?.[e]!==!1}function Pt(e,t){H.value&&(H.value.sources||(H.value.sources={}),t?delete H.value.sources[e]:H.value.sources[e]=!1)}function Ft(e){let t=`views.settings.notifications.system_types.${e.type.replaceAll(`.`,`_`)}`;return O(t)?T(t):e.label}function It(){H.value&&vt({settings:H.value},{onSuccess:e=>$(e)})}async function Lt(e){if(!(!H.value||!I.value)){W.value=!0;try{$(await bt({settings:{...I.value,enabled:e}}))}catch(e){k.add({severity:`error`,detail:e,life:3e3})}finally{W.value=!1}}}async function Rt(){let e=a();G.value=e?await M(e):!1}async function zt(){if(!(!N||!P))try{q.value=await P.invoke(`get-desktop-notifications`)}catch{}}async function Bt(e){if(P){J.value=!0;try{q.value=await P.invoke(`set-desktop-notifications`,e)}catch(e){k.add({severity:`error`,detail:e,life:3e3})}finally{J.value=!1}}}async function Vt(){K.value=!0;try{await ge(),await Rt(),await _.queryClient.invalidateQueries({queryKey:[`notifications`,`devices`]})}catch(e){k.add({severity:`error`,detail:e,life:3e3})}finally{K.value=!1}}function Ht(e){Y.value=e;let t=a();xt({deviceId:e},{onSuccess:async()=>{t&&await j(t,e),Rt()},onSettled:()=>Y.value=null})}function Ut(e){let t=X[e.id];if(t==null)return;let n=t.trim();if(!n||n===e.name){delete X[e.id];return}Z.value=e.id,B({deviceId:e.id,patch:{name:n}},{onSuccess:()=>delete X[e.id],onSettled:()=>Z.value=null})}function Wt(e,t){Z.value=e,B({deviceId:e,patch:{active:t}},{onSettled:()=>Z.value=null})}return C(I,$,{immediate:!0}),y(()=>{N&&zt(),ht()}),(t,i)=>{let a=ie(`RouterLink`),o=de,c=ne,p=se,_=n,v=e,y=ee,x=r,C=ue,T=ce,E=le,D=fe,me=pe,O=te;return s(),f(`div`,null,[u(`div`,_e,[u(`div`,null,[u(`span`,ve,d(t.$t(`views.settings.notifications.general`)),1),S(x,{class:`cui-card`},{content:l(()=>[u(`div`,ye,[u(`span`,be,d(t.$t(`views.settings.notifications.general_info`)),1),g(F).notifications===`denied`?(s(),b(o,{key:0,severity:`warn`,size:`small`},{default:l(()=>[h(d(t.$t(`views.settings.notifications.os_permission_denied`))+` `,1),S(a,{to:`/settings/permissions`,class:`underline`},{default:l(()=>[h(d(t.$t(`views.settings.notifications.os_permission_link`)),1)]),_:1})]),_:1})):w(``,!0),g(gt)&&!g(H)?(s(),f(`div`,xe,[S(c,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):g(H)?(s(),f(m,{key:2},[u(`div`,Se,[u(`div`,Ce,[u(`label`,we,d(t.$t(`views.settings.notifications.enable`)),1),S(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:l(()=>[h(d(t.$t(`views.settings.notifications.enable_info`)),1)]),_:1})]),S(p,{"model-value":g(H).enabled,loading:g(W),class:`ml-auto shrink-0`,"onUpdate:modelValue":Lt},null,8,[`model-value`,`loading`])]),g(!1)&&g(H).enabled?(s(),f(`div`,Te,[u(`div`,Ee,[u(`label`,De,d(t.$t(`views.settings.notifications.this_device`)),1),S(o,{severity:g(G)?`secondary`:`warn`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:l(()=>[h(d(g(G)?t.$t(`views.settings.notifications.this_device_synced`):t.$t(`views.settings.notifications.this_device_unsynced`)),1)]),_:1},8,[`severity`])]),S(_,{severity:g(G)?`secondary`:void 0,loading:g(K),class:`cui-button-small ml-auto shrink-0`,label:g(G)?t.$t(`views.settings.notifications.resync`):t.$t(`views.settings.notifications.sync`),onClick:Vt},null,8,[`severity`,`loading`,`label`])])):g(N)&&g(H).enabled?(s(),f(`div`,Oe,[u(`div`,ke,[u(`label`,Ae,d(t.$t(`views.settings.notifications.this_device`)),1),S(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:l(()=>[h(d(t.$t(`views.settings.notifications.this_device_desktop`)),1)]),_:1})]),S(p,{"model-value":g(q),loading:g(J),class:`ml-auto shrink-0`,"onUpdate:modelValue":Bt},null,8,[`model-value`,`loading`])])):w(``,!0),g(H).enabled?(s(),f(`div`,je,[u(`div`,Me,[u(`div`,Ne,[u(`label`,Pe,d(t.$t(`views.settings.notifications.quiet_hours`)),1),S(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:l(()=>[h(d(t.$t(`views.settings.notifications.quiet_hours_info`)),1)]),_:1})]),S(p,{"model-value":!!g(H).quietHours,class:`ml-auto shrink-0`,"onUpdate:modelValue":Dt},null,8,[`model-value`])]),g(H).quietHours?(s(),f(`div`,Fe,[u(`div`,Ie,[u(`label`,Le,d(t.$t(`views.settings.notifications.from`)),1),S(v,{"input-id":`qh-from`,"model-value":g(wt),"time-only":``,"show-icon":``,"icon-display":`input`,class:`w-full`,"onUpdate:modelValue":i[0]||=e=>At(`from`,e)},null,8,[`model-value`])]),u(`div`,Re,[u(`label`,ze,d(t.$t(`views.settings.notifications.to`)),1),S(v,{"input-id":`qh-to`,"model-value":g(Tt),"time-only":``,"show-icon":``,"icon-display":`input`,class:`w-full`,"onUpdate:modelValue":i[1]||=e=>At(`to`,e)},null,8,[`model-value`])]),u(`div`,Be,[u(`label`,Ve,d(t.$t(`views.settings.notifications.timezone`)),1),S(y,{id:`qh-tz`,modelValue:g(H).quietHours.timezone,"onUpdate:modelValue":i[2]||=e=>g(H).quietHours.timezone=e,placeholder:g(V)},null,8,[`modelValue`,`placeholder`])])])):w(``,!0)])):w(``,!0)],64)):w(``,!0)])]),_:1})]),g(Q)&&g(A)?(s(),f(`div`,He,[u(`span`,Ue,d(t.$t(`views.settings.notifications.system_notifications`)),1),S(x,{class:`cui-card`},{content:l(()=>[u(`div`,We,[u(`span`,Ge,d(t.$t(`views.settings.notifications.system_notifications_info`)),1),g(z)&&!g(R)?(s(),f(`div`,Ke,[S(c,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):g(R)?.system?.length?(s(),f(`div`,Je,[(s(!0),f(m,null,re(g(R).system,(e,t)=>(s(),f(`div`,{key:e.type},[u(`div`,Ye,[u(`div`,Xe,[u(`label`,Ze,d(Ft(e)),1),e.description?(s(),b(o,{key:0,severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:l(()=>[h(d(e.description),1)]),_:2},1024)):w(``,!0)]),S(p,{"model-value":jt(e.type),class:`ml-auto shrink-0`,"onUpdate:modelValue":t=>Mt(e.type,t)},null,8,[`model-value`,`onUpdate:modelValue`])]),t<g(R).system.length-1?(s(),b(C,{key:0,class:`my-2`})):w(``,!0)]))),128))])):(s(),f(`div`,qe,d(t.$t(`views.settings.notifications.no_system_types`)),1))])]),_:1})])):w(``,!0),g(Q)?(s(),f(`div`,Qe,[u(`span`,$e,d(t.$t(`views.settings.notifications.plugin_notifications`)),1),S(x,{class:`cui-card`},{content:l(()=>[u(`div`,et,[u(`span`,tt,d(t.$t(`views.settings.notifications.plugin_notifications_info`)),1),g(z)&&!g(R)?(s(),f(`div`,nt,[S(c,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):g(R)?.plugins?.length?(s(),f(`div`,it,[(s(!0),f(m,null,re(g(R).plugins,(e,t)=>(s(),f(`div`,{key:e.id},[u(`div`,at,[u(`div`,ot,[u(`label`,st,d(e.name),1)]),S(p,{"model-value":Nt(e.id),class:`ml-auto shrink-0`,"onUpdate:modelValue":t=>Pt(e.id,t)},null,8,[`model-value`,`onUpdate:modelValue`])]),t<g(R).plugins.length-1?(s(),b(C,{key:0,class:`my-2`})):w(``,!0)]))),128))])):(s(),f(`div`,rt,d(t.$t(`views.settings.notifications.no_plugin_sources`)),1))])]),_:1})])):w(``,!0),g(Q)?(s(),f(`div`,ct,[u(`span`,lt,d(t.$t(`views.settings.notifications.devices`)),1),S(x,{class:`cui-card`},{content:l(()=>[u(`div`,ut,[u(`span`,dt,d(t.$t(`views.settings.notifications.devices_info`)),1),g(_t)&&!g(L)?(s(),f(`div`,ft,[S(c,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):g(L)?.length?(s(),b(me,{key:2,value:g(L),"striped-rows":``},{default:l(()=>[S(T,{field:`name`,header:t.$t(`views.settings.notifications.col_name`)},{body:l(({data:e})=>[S(y,{"model-value":g(X)[e.id]??e.name,disabled:g(Z)===e.id,class:`w-full max-w-xs min-w-[150px]`,"onUpdate:modelValue":t=>g(X)[e.id]=t??``,onBlur:t=>Ut(e),onKeyup:ae(t=>Ut(e),[`enter`])},null,8,[`model-value`,`disabled`,`onUpdate:modelValue`,`onBlur`,`onKeyup`])]),_:1},8,[`header`]),S(T,{field:`pluginName`,header:t.$t(`views.settings.notifications.col_plugin`)},{body:l(({data:e})=>[S(E,{label:e.pluginName,class:`text-xs`},null,8,[`label`])]),_:1},8,[`header`]),S(T,{field:`active`,header:t.$t(`views.settings.notifications.col_active`),style:{width:`7rem`}},{body:l(({data:e})=>[S(p,{"model-value":e.active,loading:g(Z)===e.id,"onUpdate:modelValue":t=>Wt(e.id,t)},null,8,[`model-value`,`loading`,`onUpdate:modelValue`])]),_:1},8,[`header`]),S(T,{field:`actions`,header:``,style:{width:`6rem`}},{body:l(({data:e})=>[oe((s(),b(_,{severity:`danger`,text:``,rounded:``,class:`cui-icon-md`,loading:g(Y)===e.id,onClick:t=>Ht(e.id)},{icon:l(()=>[S(D,{width:`100%`,height:`100%`})]),_:1},8,[`loading`,`onClick`])),[[O,{value:t.$t(`views.settings.notifications.revoke`)}]])]),_:1})]),_:1},8,[`value`])):(s(),f(`div`,pt,d(t.$t(`views.settings.notifications.no_devices`)),1))])]),_:1})])):w(``,!0),g(H)&&g(St)?(s(),f(`div`,mt,[S(_,{severity:`secondary`,outlined:``,class:`cui-button-medium`,disabled:g(Ct),label:t.$t(`views.settings.notifications.reset`),onClick:Et},null,8,[`disabled`,`label`]),S(_,{severity:`success`,class:`cui-button-medium`,loading:g(Ct),label:t.$t(`views.settings.notifications.save`),onClick:It},null,8,[`loading`,`label`])])):w(``,!0)])])}}});export{F as default};
@@ -1 +0,0 @@
1
- import{Ft as e,H as t,Qr as n}from"./vendor-cameraui-GaXYUHUd.js";import{Fn as r,Nn as i,Xn as a,an as o,br as s,cn as c,cr as l,en as u,fn as d,gr as f,hn as p,jn as m,on as h,pn as g,sn as _}from"./vendor-BaiDFVEr.js";import{a as v,z as y}from"./vendor-primevue-CIRUBYsf.js";import{t as b}from"./usePermissions-C9kp5HQR.js";var x={class:`flex flex-col w-full gap-6`},S={class:`card-title`},C={class:`flex flex-col gap-6`},w={class:`text-sm`},T={class:`flex flex-col field-switch-gap min-w-0`},E={class:`cui-label-switch`},D={class:`flex items-center gap-2 ml-auto shrink-0`},O=p({__name:`SettingsPermissions`,setup(p){let{states:O,canOpenSettings:k,refresh:A,request:j,openSettings:M}=b(),N=[{name:`microphone`},{name:`location`},{name:`notifications`}],P=l(null);function F(e){return e===`granted`?`success`:e===`denied`?`danger`:e===`prompt`?`warn`:`secondary`}async function I(e){P.value=e;try{await j(e)}finally{P.value=null}}return n(document,`visibilitychange`,()=>{document.visibilityState===`visible`&&A()}),m(()=>{A()}),(n,l)=>{let p=y,m=v,b=e,A=t;return i(),c(`div`,null,[o(`div`,x,[o(`div`,null,[o(`span`,S,s(n.$t(`views.settings.permissions.general`)),1),g(A,{class:`cui-card`},{content:a(()=>[o(`div`,C,[o(`span`,w,s(n.$t(`views.settings.permissions.general_info`)),1),(i(),c(u,null,r(N,e=>o(`div`,{key:e.name,class:`flex items-center gap-4`},[o(`div`,T,[o(`label`,E,s(n.$t(`views.settings.permissions.${e.name}`)),1),g(p,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:a(()=>[d(s(n.$t(`views.settings.permissions.${e.name}_info`)),1)]),_:2},1024),f(O)[e.name]===`denied`&&!f(k)?(i(),h(p,{key:0,severity:`warn`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:a(()=>[d(s(n.$t(`views.settings.permissions.browser_hint`)),1)]),_:1})):_(``,!0)]),o(`div`,D,[g(m,{severity:F(f(O)[e.name]),value:n.$t(`views.settings.permissions.state_${f(O)[e.name]}`)},null,8,[`severity`,`value`]),f(O)[e.name]===`prompt`||f(O)[e.name]===`unknown`?(i(),h(b,{key:0,loading:f(P)===e.name,class:`cui-button-small`,label:n.$t(`views.settings.permissions.request`),onClick:t=>I(e.name)},null,8,[`loading`,`label`,`onClick`])):f(O)[e.name]===`denied`&&f(k)?(i(),h(b,{key:1,severity:`secondary`,class:`cui-button-small`,label:n.$t(`views.settings.permissions.open_settings`),onClick:f(M)},null,8,[`label`,`onClick`])):_(``,!0)])])),64))])]),_:1})])])])}}});export{O as default};
@@ -1 +0,0 @@
1
- import{Fr as e,H as t,Lt as n,Tt as r,Vt as ee,b as i,jt as te,xt as a}from"./vendor-cameraui-GaXYUHUd.js";import{Wt as ne,_t as o,mr as s}from"./api-Da98l_Y7.js";import{Nn as c,Xn as l,Zn as re,an as u,br as d,cn as f,fn as p,gr as m,hn as h,in as g,on as _,pn as v,qn as y,sn as b,yr as ie}from"./vendor-BaiDFVEr.js";import{S as ae,T as oe}from"./vendor-primevue-CIRUBYsf.js";import{t as se}from"./CuiSchema-U31deYpX.js";import{t as ce}from"./CuiDataTable-DcyMAPBx.js";import{t as le}from"./alert-outline-GrD7-zHq.js";import{l as x,n as ue,o as S,r as de,s as fe}from"./vendor-chart-DtwjR6yw.js";import{t as pe}from"./CuiPluginOAuthButton-CI5gdHHd.js";var C={class:`flex flex-col w-full gap-6`},w={key:0,class:`cui-banner cui-banner-error`},T={key:1,class:`cui-banner cui-banner-warn`},E={key:2,class:`cui-banner cui-banner-warn`},D={class:`card-title`},O={class:`flex items-center justify-between gap-4`},k={class:`min-w-0`},A={class:`text-sm`},j={class:`text-xs text-muted-color mt-1`},M={class:`card-title`},N={key:0,class:`flex items-center justify-center py-8`},P={key:1,class:`text-sm text-muted text-center py-8`},F={key:2,class:`flex flex-col sm:flex-row items-center gap-6`},I={class:`shrink-0`,style:{width:`180px`,height:`180px`}},L={class:`text-color`},R={class:`font-medium`},z={class:`card-title`},B={key:1,class:`flex items-center justify-center py-8`},me={key:2,class:`text-sm text-muted text-center py-8`},he={class:`card-title`},ge={key:0,class:`flex items-center justify-center py-8`},_e={key:1,class:`text-sm text-muted text-center py-8`},ve={class:`flex items-center justify-center`},ye={class:`font-medium block max-w-[200px] truncate`},be={class:`text-muted text-sm`},V=`@camera.ui/camera-ui-nvr`,H=h({__name:`SettingsRecordings`,setup(h){S.register(fe,de,x);let H=new o,{t:U}=e(),W=s(),{stats:G,isLoading:K,refresh:q}=i(),{state:J}=a(V),{isConnected:xe,isLoading:Y,config:X,getConfig:Se,setConfig:Ce,setValue:we,submitValue:Te}=r(V),Ee=g(()=>{switch(J.value.status){case`connected`:return U(`components.oauth.connected_as`,{email:J.value.userEmail||`—`});case`awaiting_user`:case`polling`:return U(`components.oauth.tooltip_authorizing`);case`error`:return U(`components.oauth.error_generic`);default:return U(`views.settings.recordings.license_disconnected`)}}),{data:De}=H.getCamerasQuery({page:1,pageSize:-1}),Z={bodyRow:{class:`text-sm text-secondary`},column:{columnTitle:{class:`text-sm`}}},Oe=g(()=>{let e=new Map;for(let t of De.value?.result??[])e.set(t._id,t.name);return e}),Q=g(()=>G.value?.cameras?Object.entries(G.value.cameras).map(([e,t])=>({id:e,name:Oe.value.get(e)||e,usedBytes:t.usedBytes,segmentCount:t.segmentCount,oldestDay:t.oldestDay,newestDay:t.newestDay,daysCount:t.daysCount,bandwidthMBh:t.bandwidthMBh,recordingMode:t.recordingMode,isRecording:t.isRecording})).sort((e,t)=>t.usedBytes-e.usedBytes):[]),ke=g(()=>G.value?[{label:U(`views.settings.recordings.disk_total`),value:$(G.value.diskTotalGB)},{label:U(`views.settings.recordings.nvr_usage`),value:$(G.value.nvrUsedGB)},{label:U(`views.settings.recordings.quota`),value:G.value.nvrQuotaGB>0?$(G.value.nvrQuotaGB):U(`views.settings.recordings.unlimited`)},{label:U(`views.settings.recordings.retention`),value:G.value.retentionDays>0?U(`views.settings.recordings.days_count`,{count:G.value.retentionDays}):U(`views.settings.recordings.unlimited`)},{label:U(`views.settings.recordings.disk_free`),value:`${$(G.value.diskFreeGB)} (${G.value.diskFreePercent.toFixed(1)}%)`}]:[]),Ae=g(()=>{let e=G.value?.nvrUsedGB??0,t=G.value?.diskFreeGB??0,n=Math.max(0,(G.value?.diskUsedGB??0)-e),r=e===0&&n===0&&t===0;return{labels:[U(`views.settings.recordings.chart_nvr`),U(`views.settings.recordings.chart_other`),U(`views.settings.recordings.chart_free`)],datasets:[{data:r?[0,0,1]:[e,n,t],backgroundColor:[`#df2a4c`,`rgba(223,42,76,0.35)`,`rgba(223,42,76,0.10)`],borderWidth:0}]}}),je=g(()=>({responsive:!0,maintainAspectRatio:!0,cutout:`65%`,animation:!1,plugins:{legend:{display:!1},tooltip:{callbacks:{label:e=>`${e.label}: ${$(e.parsed)}`}}}}));async function Me(e){try{await we(e.key,void 0),W.add({severity:`success`,detail:U(`components.toast.config_updated`),life:3e3}),q()}catch(e){W.add({severity:`error`,detail:e,life:3e3})}}async function Ne(e){try{let t=await Te(e.key,e.payload);t?.toast?W.add({severity:t.toast.type,detail:t.toast.message,life:3e3}):W.add({severity:`success`,detail:U(`components.toast.config_updated`),life:3e3}),q()}catch(e){W.add({severity:`error`,detail:e,life:3e3})}}async function Pe(e){try{await Ce(e),W.add({severity:`success`,detail:U(`components.toast.config_updated`),life:3e3}),q()}catch(e){W.add({severity:`error`,detail:e,life:3e3})}}function $(e){return e>=1e3?`${(e/1e3).toFixed(2)} TB`:e>=1?`${e.toFixed(2)} GB`:`${(e*1e3).toFixed(0)} MB`}function Fe(e){return e>=0xe8d4a51000?`${(e/0xe8d4a51000).toFixed(2)} TB`:e>=1e9?`${(e/1e9).toFixed(2)} GB`:e>=1e6?`${(e/1e6).toFixed(0)} MB`:`${(e/1e3).toFixed(0)} KB`}function Ie(e){let t=e*24/1e3;return t>=1?`${t.toFixed(1)} GB/d`:`${(t*1e3).toFixed(0)} MB/d`}return y(xe,async e=>{e&&await Se()},{immediate:!0}),(e,r)=>{let i=ne,a=le,o=t,s=te,h=ae,g=ce,y=n,x=oe,S=ee;return c(),f(`div`,null,[u(`div`,C,[m(G)&&m(G).paused===!0?(c(),f(`div`,w,[v(i,{class:`shrink-0 w-5 h-5`}),u(`span`,null,d(e.$t(`views.settings.recordings.disk_critical`)),1)])):m(G)&&m(G).diskFreePercent>0&&m(G).diskFreePercent<8?(c(),f(`div`,T,[v(a,{class:`shrink-0 w-5 h-5`}),u(`span`,null,d(e.$t(`views.settings.recordings.disk_warning`)),1)])):b(``,!0),m(G)&&m(G).smallVolume?(c(),f(`div`,E,[v(a,{class:`shrink-0 w-5 h-5`}),u(`span`,null,d(e.$t(`views.settings.recordings.disk_small_volume`)),1)])):b(``,!0),u(`div`,null,[u(`span`,D,d(e.$t(`views.settings.recordings.license_title`)),1),v(o,{class:`cui-card`},{content:l(()=>[u(`div`,O,[u(`div`,k,[u(`p`,A,d(m(Ee)),1),u(`p`,j,d(e.$t(`views.settings.recordings.license_description`)),1)]),v(pe,{"plugin-name":V,class:`flex-shrink-0`})])]),_:1})]),u(`div`,null,[u(`span`,M,d(e.$t(`views.settings.recordings.storage_overview`)),1),v(o,{class:`cui-card`},{content:l(()=>[m(K)&&!m(G)?(c(),f(`div`,N,[v(s,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):m(G)?(c(),f(`div`,F,[u(`div`,I,[v(m(ue),{data:m(Ae),options:m(je)},null,8,[`data`,`options`])]),v(g,{value:m(ke),pt:Z,"striped-rows":``,"show-headers":!1,class:`w-full`},{default:l(()=>[v(h,{field:`label`},{body:l(({data:e})=>[u(`span`,L,d(e.label),1)]),_:1}),v(h,{field:`value`,style:{"text-align":`right`}},{body:l(({data:e})=>[u(`span`,R,d(e.value),1)]),_:1})]),_:1},8,[`value`])])):(c(),f(`div`,P,d(e.$t(`views.settings.recordings.not_available`)),1))]),_:1})]),u(`div`,null,[u(`span`,z,d(e.$t(`views.settings.recordings.global_settings`)),1),v(o,{class:`cui-card`},{content:l(()=>[m(X)?(c(),_(se,{key:0,"schema-form":{schema:m(X).schema,config:m(X).config},loading:m(Y),"save-button-color":`success`,onOnAction:Me,onOnSubmit:Ne,onOnFormSubmit:Pe},null,8,[`schema-form`,`loading`])):m(K)||m(Y)?(c(),f(`div`,B,[v(s,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):(c(),f(`div`,me,d(e.$t(`views.settings.recordings.not_available`)),1))]),_:1})]),u(`div`,null,[u(`span`,he,d(e.$t(`views.settings.recordings.camera_storage`)),1),v(o,{class:`cui-card`},{content:l(()=>[m(K)&&!m(G)?(c(),f(`div`,ge,[v(s,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):m(G)?(c(),_(g,{key:2,value:m(Q),pt:Z,"striped-rows":``,scrollable:``},{empty:l(()=>[u(`span`,be,d(e.$t(`views.settings.recordings.no_cameras`)),1)]),default:l(()=>[v(h,{field:`status`,header:``,style:{width:`3rem`}},{body:l(({data:t})=>[u(`div`,ve,[re(v(y,{style:ie({background:t.isRecording?`green`:`gray`})},null,8,[`style`]),[[S,{value:t.isRecording?e.$t(`views.settings.recordings.status_recording`):e.$t(`views.settings.recordings.status_stopped`)}]])])]),_:1}),v(h,{field:`name`,header:e.$t(`views.settings.recordings.col_camera`)},{body:l(({data:e})=>[u(`span`,ye,d(e.name),1)]),_:1},8,[`header`]),v(h,{field:`size`,header:e.$t(`views.settings.recordings.col_size`)},{body:l(({data:e})=>[p(d(Fe(e.usedBytes)),1)]),_:1},8,[`header`]),v(h,{field:`daysCount`,header:e.$t(`views.settings.recordings.col_days`)},null,8,[`header`]),v(h,{field:`rate`,header:e.$t(`views.settings.recordings.col_rate`)},{body:l(({data:e})=>[p(d(e.bandwidthMBh>0?Ie(e.bandwidthMBh):`-`),1)]),_:1},8,[`header`]),v(h,{field:`recordingMode`,header:e.$t(`views.settings.recordings.col_mode`)},{body:l(({data:e})=>[v(x,{label:e.recordingMode,class:`text-xs`},null,8,[`label`])]),_:1},8,[`header`])]),_:1},8,[`value`])):(c(),f(`div`,_e,d(e.$t(`views.settings.recordings.not_available`)),1))]),_:1})])])])}}});export{H as default};