@camera.ui/server 2.1.10 → 2.1.11

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 (622) hide show
  1. package/dist/interface/assets/404-B4_ZWIGx.js +1 -0
  2. package/dist/interface/assets/About-Cd8Ipr7a.js +1 -0
  3. package/dist/interface/assets/Automation-COZFDnKK.js +3 -0
  4. package/dist/interface/assets/AutomationImport-BTkkRikE.js +2 -0
  5. package/dist/interface/assets/AutomationStore-VdGEOwci.js +2 -0
  6. package/dist/interface/assets/AutomationStoreDetail-BQ2fER7x.js +2 -0
  7. package/dist/interface/assets/Automations-QmfGIQXO.js +2 -0
  8. package/dist/interface/assets/Camera-g95slrO0.js +2 -0
  9. package/dist/interface/assets/CameraConsole-KqRFGZzT.js +7 -0
  10. package/dist/interface/assets/Cameras-BO4SDgY0.js +652 -0
  11. package/dist/interface/assets/Camview-yzOY3cnD.js +1 -0
  12. package/dist/interface/assets/CertificateUpload-Dd4Ec7bt.js +1 -0
  13. package/dist/interface/assets/Config-Db-Eh4Lf.js +2 -0
  14. package/dist/interface/assets/{ConfigActionCameraControl-As2qXvnd.js → ConfigActionCameraControl-CbG-HEuU.js} +1 -1
  15. package/dist/interface/assets/ConfigActionDelay-BoGIhNHr.js +1 -0
  16. package/dist/interface/assets/ConfigActionHttp-DyPo2XvQ.js +1 -0
  17. package/dist/interface/assets/ConfigActionImageInput-C9aYztb6.js +1 -0
  18. package/dist/interface/assets/ConfigActionMqtt-kQz9Y9OZ.js +1 -0
  19. package/dist/interface/assets/ConfigActionNotification-CbhQpAqn.js +1 -0
  20. package/dist/interface/assets/{ConfigActionNotificationControl-ClFMom6m.js → ConfigActionNotificationControl-DEOv_FGO.js} +1 -1
  21. package/dist/interface/assets/ConfigActionOutput-CGtG-8PF.js +1 -0
  22. package/dist/interface/assets/ConfigActionPlugin-C8v0CWrz.js +1 -0
  23. package/dist/interface/assets/ConfigActionSensor-CESXnRuQ.js +1 -0
  24. package/dist/interface/assets/ConfigActionSnapshot-TVhjeFKP.js +1 -0
  25. package/dist/interface/assets/ConfigActionVariable-DwRFwopb.js +1 -0
  26. package/dist/interface/assets/ConfigConditionIfElse-CmtoYTUU.js +1 -0
  27. package/dist/interface/assets/ConfigConditionSensorState-3B9Sjxdb.js +1 -0
  28. package/dist/interface/assets/ConfigConditionSwitch-CA-tuT-G.js +1 -0
  29. package/dist/interface/assets/ConfigConditionTime-Djq2yOCr.js +1 -0
  30. package/dist/interface/assets/{ConfigSensorValueInput-yTiHhlXG.js → ConfigSensorValueInput-DZ7r71aU.js} +1 -1
  31. package/dist/interface/assets/ConfigTriggerDetection-B62txb4H.js +1 -0
  32. package/dist/interface/assets/{ConfigTriggerGeofence-B2Cqi5Id.js → ConfigTriggerGeofence-sbEglk8c.js} +1 -1
  33. package/dist/interface/assets/ConfigTriggerManual-nrYy4xBP.js +1 -0
  34. package/dist/interface/assets/ConfigTriggerMqtt-CK8FEVxs.js +1 -0
  35. package/dist/interface/assets/ConfigTriggerSchedule-DN3Tl7f4.js +1 -0
  36. package/dist/interface/assets/ConfigTriggerSensor-DBXrlYyS.js +1 -0
  37. package/dist/interface/assets/{ConfigTriggerSystem-D4cx1GqI.js → ConfigTriggerSystem-QFLNb9GC.js} +1 -1
  38. package/dist/interface/assets/ConfigTriggerWebhook-46mdJk6X.js +1 -0
  39. package/dist/interface/assets/Console-B78qXoaH.js +1 -0
  40. package/dist/interface/assets/CuiAutomationRunsDialog-BvtQfpTx.js +1 -0
  41. package/dist/interface/assets/CuiBottomSheet-BjkvcU8T.js +1 -0
  42. package/dist/interface/assets/CuiBottomSheet-UiJcO4M3.js +1 -0
  43. package/dist/interface/assets/CuiCameraPipCard-BOky075i.js +1 -0
  44. package/dist/interface/assets/CuiCameraRecordings-BzbwSK8-.css +1 -0
  45. package/dist/interface/assets/CuiCameraRecordings-DIBgpGaS.js +1 -0
  46. package/dist/interface/assets/CuiCameraShares-46_p-wPD.js +1 -0
  47. package/dist/interface/assets/CuiCameraTable-BXm5THd1.js +2 -0
  48. package/dist/interface/assets/CuiCameraTable-DwRywA0z.js +1 -0
  49. package/dist/interface/assets/CuiChartTable-ByHWgFTc.js +1 -0
  50. package/dist/interface/assets/{CuiChartTable-CqKo74Tf.css → CuiChartTable-DCGY-zVy.css} +1 -1
  51. package/dist/interface/assets/{CuiConsole-DUswVhFC.js → CuiConsole-BOyrbC0a.js} +2 -2
  52. package/dist/interface/assets/CuiDataTable-BDyku8Vr.js +1 -0
  53. package/dist/interface/assets/CuiLightControl-CsK2cn7L.js +1 -0
  54. package/dist/interface/assets/CuiList-D1d-S_-K.js +1 -0
  55. package/dist/interface/assets/CuiMarkdownContent-CckAX6Ci.js +1 -0
  56. package/dist/interface/assets/{CuiMarkdownContent-PSq4kE1G.js → CuiMarkdownContent-bAQw35id.js} +1 -1
  57. package/dist/interface/assets/CuiPluginCard-C-1ZhHi8.js +2 -0
  58. package/dist/interface/assets/CuiPluginCategoryChip-CCnZkkL5.js +1 -0
  59. package/dist/interface/assets/CuiPluginOAuthButton-CTKbdFZJ.js +2 -0
  60. package/dist/interface/assets/{CuiPluginTrustBadge-Bc1dQgX8.js → CuiPluginTrustBadge-B_1b1iYf.js} +1 -1
  61. package/dist/interface/assets/CuiQRCode-B0CF6e-5.js +1 -0
  62. package/dist/interface/assets/CuiSchema-CxRd72K7.js +1 -0
  63. package/dist/interface/assets/CuiTopNavbarItem-Bs4iRb31.js +1 -0
  64. package/dist/interface/assets/Faces-kl1hwT5M.js +1 -0
  65. package/dist/interface/assets/FirstSteps-BYGvfH-S.js +1 -0
  66. package/dist/interface/assets/Floorplan-DNd9aQv3.js +1 -0
  67. package/dist/interface/assets/Floorplan-Da5gt435.css +1 -0
  68. package/dist/interface/assets/Instances-aZApGeHu.js +1 -0
  69. package/dist/interface/assets/Logs-Bnq3wEXS.js +6 -0
  70. package/dist/interface/assets/Menu-M1PaPt5e.js +1 -0
  71. package/dist/interface/assets/Metrics-D5UHs6wj.js +9 -0
  72. package/dist/interface/assets/OAuthDeviceFlow-o2Irbs3_.js +1 -0
  73. package/dist/interface/assets/Plugin-CEpSsNQA.js +1 -0
  74. package/dist/interface/assets/PluginConsole-f5xf7P3Y.js +7 -0
  75. package/dist/interface/assets/PluginDetail-Ca-NJcL1.js +2 -0
  76. package/dist/interface/assets/PluginSchema-DMjDPtOB.js +1 -0
  77. package/dist/interface/assets/PluginSearch-DurGrb4n.js +1 -0
  78. package/dist/interface/assets/PluginSearch-Tmg5vCQF.js +2 -0
  79. package/dist/interface/assets/PluginUpdateProgress-FVY9RtmB.js +1 -0
  80. package/dist/interface/assets/Plugins-ocuSdXhB.js +1 -0
  81. package/dist/interface/assets/Recordings-CtSj2RuO.js +1 -0
  82. package/dist/interface/assets/Recordings-D4NzYCO9.css +1 -0
  83. package/dist/interface/assets/SensorEdit-CcD4LvZr.js +1 -0
  84. package/dist/interface/assets/SensorHistory-5nCWisih.js +1 -0
  85. package/dist/interface/assets/{Sensors-BUpob7LU.css → Sensors-BsLHVGqk.css} +1 -1
  86. package/dist/interface/assets/Sensors-CWjmo27p.js +2 -0
  87. package/dist/interface/assets/Settings-DsxjHlTb.js +1 -0
  88. package/dist/interface/assets/SettingsAccount-DQm9vFIT.js +1 -0
  89. package/dist/interface/assets/SettingsAccount-DekJwq5r.js +1 -0
  90. package/dist/interface/assets/SettingsAppearance-B7mm_vGf.js +1 -0
  91. package/dist/interface/assets/SettingsAppearance-Dc5qomCw.js +1 -0
  92. package/dist/interface/assets/SettingsBackup-xZ6fRlMp.js +1 -0
  93. package/dist/interface/assets/SettingsList-M3eOiLIi.js +1 -0
  94. package/dist/interface/assets/SettingsMqtt-D8grttey.js +1 -0
  95. package/dist/interface/assets/SettingsNotifications-BtFyN8J3.js +1 -0
  96. package/dist/interface/assets/SettingsPermissions-g6ppqzcI.js +1 -0
  97. package/dist/interface/assets/SettingsRecordings-DVEsPab-.js +1 -0
  98. package/dist/interface/assets/SettingsRemote-Dqs-d-Xk.js +2 -0
  99. package/dist/interface/assets/SettingsSystem-EaqPKfS_.js +2 -0
  100. package/dist/interface/assets/SettingsUsers-B3m7YHzN.js +1 -0
  101. package/dist/interface/assets/Terminal-BXQKgvte.js +4 -0
  102. package/dist/interface/assets/Updates-Difs3xzH.js +2 -0
  103. package/dist/interface/assets/VariableInput-DNlqv5NS.js +1 -0
  104. package/dist/interface/assets/{VariableSuggestions-BGxZxS6U.js → VariableSuggestions-cR1Q4nfD.js} +1 -1
  105. package/dist/interface/assets/VersionsHandler-BHyZgGCP.js +7 -0
  106. package/dist/interface/assets/VirtualSensorCreate-CSzlXcHk.js +1 -0
  107. package/dist/interface/assets/Workers-L7PPidAd.js +2 -0
  108. package/dist/interface/assets/{account-DuSFtIHf.js → account-BW_r05fC.js} +1 -1
  109. package/dist/interface/assets/ace-BSiU5ylo.js +1 -0
  110. package/dist/interface/assets/{ace.config-BNjBs7Fe.js → ace.config-DIcQ8yOb.js} +1 -1
  111. package/dist/interface/assets/{alert-circle-C2AU59aR.js → alert-circle-We_nDFAy.js} +1 -1
  112. package/dist/interface/assets/alert-outline-KxFvd3i6.js +1 -0
  113. package/dist/interface/assets/api-Bpl4Sd0_.js +1 -0
  114. package/dist/interface/assets/api-CEbDxsSY.css +2 -0
  115. package/dist/interface/assets/api-ou2-S3Z9.js +2 -0
  116. package/dist/interface/assets/arrow-left-V1y_rwzT.js +1 -0
  117. package/dist/interface/assets/auth-O2tHbgZf.js +1 -0
  118. package/dist/interface/assets/automations-C3f5HUy2.js +1 -0
  119. package/dist/interface/assets/{back-filled-DcBDBvvP.js → back-filled-MAIFvJqE.js} +1 -1
  120. package/dist/interface/assets/{bell-ring-DSX81yd4.js → bell-ring-DBCDVZQy.js} +1 -1
  121. package/dist/interface/assets/{brain-7IVdhMyV.js → brain-Bqf50oqB.js} +1 -1
  122. package/dist/interface/assets/cameras.schema-BzSBpeUl.js +1 -0
  123. package/dist/interface/assets/cctv-Tng3HqLa.js +1 -0
  124. package/dist/interface/assets/check-circle-DNTQ812v.js +1 -0
  125. package/dist/interface/assets/chevron-down-DqCuosKP.js +1 -0
  126. package/dist/interface/assets/{clock-outline-DF1wLNzs.js → clock-outline-DwnISu0k.js} +1 -1
  127. package/dist/interface/assets/{close-BNAWPz0y.js → close-ChGy_BeH.js} +1 -1
  128. package/dist/interface/assets/{close-circle-zhDWvz98.js → close-circle-B9jFTQT1.js} +1 -1
  129. package/dist/interface/assets/{cloud-check-pUK1Fpt9.js → cloud-check-DABrVuto.js} +1 -1
  130. package/dist/interface/assets/cloudHandoff-ChRx5fsr.js +1 -0
  131. package/dist/interface/assets/config-BIxANITl.js +1 -0
  132. package/dist/interface/assets/content-copy-CsUEmnFS.js +1 -0
  133. package/dist/interface/assets/{copy-BPT84cDt.js → copy-CzGo5Njh.js} +1 -1
  134. package/dist/interface/assets/{cube-scan-DOe6W9mW.js → cube-scan-BR5la6Qx.js} +1 -1
  135. package/dist/interface/assets/delete-CiJ6ng5_.js +1 -0
  136. package/dist/interface/assets/{dist-Yc5s0_JB.js → dist-2BkH6KaN.js} +1 -1
  137. package/dist/interface/assets/download-CaV8-tw6.js +1 -0
  138. package/dist/interface/assets/esm-BbJ0evRe.js +1 -0
  139. package/dist/interface/assets/esm-BhHeaCLC.js +1 -0
  140. package/dist/interface/assets/esm-BoDnt3g2.js +1 -0
  141. package/dist/interface/assets/esm-BvXpx-4p.js +1 -0
  142. package/dist/interface/assets/esm-BvcRUTNT.js +1 -0
  143. package/dist/interface/assets/esm-C0UOpApX.js +1 -0
  144. package/dist/interface/assets/esm-C43w04L-.js +1 -0
  145. package/dist/interface/assets/esm-CdrLDSBm.js +1 -0
  146. package/dist/interface/assets/esm-Cwg8vrH-.js +1 -0
  147. package/dist/interface/assets/esm-DKQwb4z2.js +1 -0
  148. package/dist/interface/assets/esm-DcJy8m_I.js +1 -0
  149. package/dist/interface/assets/esm-Dp7jb0si.js +1 -0
  150. package/dist/interface/assets/esm-cbRd6tNR.js +1 -0
  151. package/dist/interface/assets/esm-iDhBQslT.js +1 -0
  152. package/dist/interface/assets/{eye-off-CaRq7Ks2.js → eye-off-DAhBNvxJ.js} +1 -1
  153. package/dist/interface/assets/eye-off-outline-Bj1tXD9w.js +1 -0
  154. package/dist/interface/assets/{flowSchema-B_Otn6RU.js → flowSchema-Cu_f8mZr.js} +1 -1
  155. package/dist/interface/assets/{history-SuH8IHAj.js → history-F0qTKQGT.js} +1 -1
  156. package/dist/interface/assets/home-DEKGoPL_.js +1 -0
  157. package/dist/interface/assets/{information-outline-BQDq8w2t.js → information-outline-CQ5e79wc.js} +1 -1
  158. package/dist/interface/assets/{intercomService-BpTOoSQi.js → intercomService-JoKcW49f.js} +1 -1
  159. package/dist/interface/assets/{lan-BP0NuDr7.js → lan-D9PCM8iA.js} +1 -1
  160. package/dist/interface/assets/{lightbulb-outline-ClK17CO6.js → lightbulb-outline-BtraGBwO.js} +1 -1
  161. package/dist/interface/assets/{main-CFQGq2Yn.css → main-BF8Mg561.css} +1 -1
  162. package/dist/interface/assets/main-CT2dZ3bR.js +3 -0
  163. package/dist/interface/assets/{microphone-C0weJY9W.js → microphone-CGwzrMxl.js} +1 -1
  164. package/dist/interface/assets/minus-HH0UdIjG.js +1 -0
  165. package/dist/interface/assets/mqtt-D_ToI2JF.js +1 -0
  166. package/dist/interface/assets/native-BNjvFMoD.js +1 -0
  167. package/dist/interface/assets/native-XKbagpr7.js +1 -0
  168. package/dist/interface/assets/{nodeDefinitions-c5rXs9EW.js → nodeDefinitions-D6zhuw60.js} +1 -1
  169. package/dist/interface/assets/notifications-BZCPhbuG.js +1 -0
  170. package/dist/interface/assets/{pencil-outline-D7aD4cCo.js → pencil-outline-B5N-eyTy.js} +1 -1
  171. package/dist/interface/assets/plugin-BStPT8lW.js +1 -0
  172. package/dist/interface/assets/plugins-DXYT--j6.js +1 -0
  173. package/dist/interface/assets/{plus-CA5o30dE.js → plus-Ct9djYce.js} +1 -1
  174. package/dist/interface/assets/plus-CxnlTOHI.js +1 -0
  175. package/dist/interface/assets/power-C-XO8yWI.js +1 -0
  176. package/dist/interface/assets/radar-8nK_pSbi.js +1 -0
  177. package/dist/interface/assets/{refresh-Ds2EayhZ.js → refresh-CygeIRWu.js} +1 -1
  178. package/dist/interface/assets/restore-D_Dq23W9.js +1 -0
  179. package/dist/interface/assets/{ring-resize-DkY5EgVl.js → ring-resize-DsW_XYdA.js} +1 -1
  180. package/dist/interface/assets/rooms-BXXhWbYq.js +1 -0
  181. package/dist/interface/assets/{round-alt-arrow-left-bold-CfccdiWp.js → round-alt-arrow-left-bold-2FHg8vBl.js} +1 -1
  182. package/dist/interface/assets/{search-BZkSqZO5.js → search-Ck7b7yvI.js} +1 -1
  183. package/dist/interface/assets/{sensorIcons-CP5EQZ60.js → sensorIcons-tORVN7ay.js} +1 -1
  184. package/dist/interface/assets/sensors-ud0INKWh.js +1 -0
  185. package/dist/interface/assets/server-_f9tZajz.js +1 -0
  186. package/dist/interface/assets/{settings-BUEZ5iRE.js → settings-Bw6giVLH.js} +1 -1
  187. package/dist/interface/assets/{source-branch-ztDB0e13.js → source-branch-K7YOvHCE.js} +1 -1
  188. package/dist/interface/assets/theme-t4dIArYy.js +1 -0
  189. package/dist/interface/assets/{trash-2-DMMlSPXn.js → trash-2-eaKaSMof.js} +1 -1
  190. package/dist/interface/assets/trash-can-outline-_aiv_oEu.js +1 -0
  191. package/dist/interface/assets/{trash-fill-DevIK050.js → trash-fill-OkxLbTTj.js} +1 -1
  192. package/dist/interface/assets/{trash2-BLScx4HX.js → trash2-Czz-2j5D.js} +1 -1
  193. package/dist/interface/assets/{types-G1_espGV.js → types-CCCcoJBr.js} +1 -1
  194. package/dist/interface/assets/{types-bCt9IrFD.js → types-D889aM6c.js} +1 -1
  195. package/dist/interface/assets/types-Dg1X10xd.js +1 -0
  196. package/dist/interface/assets/undo-RdNzlJdm.js +1 -0
  197. package/dist/interface/assets/ungrouped-Pn6rAXZt.js +1 -0
  198. package/dist/interface/assets/{CuiRecordingsGrid-EAumRo5E.css → ungrouped-uv64nr5n.css} +1 -1
  199. package/dist/interface/assets/{updates-CVapvGAI.js → updates-i-Ukebxe.js} +1 -1
  200. package/dist/interface/assets/upload-DCTSXaJV.js +1 -0
  201. package/dist/interface/assets/upload-D_9SZvdG.js +1 -0
  202. package/dist/interface/assets/{useAppVersion-SrF7tGCe.js → useAppVersion-DY0h_lct.js} +1 -1
  203. package/dist/interface/assets/useBackupRestore-BcAR3KYA.js +1 -0
  204. package/dist/interface/assets/{useCameraOptions-zsIqf0i9.js → useCameraOptions-C-rXBi8d.js} +1 -1
  205. package/dist/interface/assets/{useLogsSocket-DSltWBh4.js → useLogsSocket-Bigb4u3j.js} +1 -1
  206. package/dist/interface/assets/{useNavLayout-BhlxDHV7.js → useNavLayout-C9FWniNC.js} +1 -1
  207. package/dist/interface/assets/{usePermissions-4HqGU99G.js → usePermissions-C_4RPiE4.js} +1 -1
  208. package/dist/interface/assets/{usePluginUpdates-CKH0Hb87.js → usePluginUpdates-CQwLK3om.js} +1 -1
  209. package/dist/interface/assets/{usePushRegistration-DAE3goyn.js → usePushRegistration-sYPibp5s.js} +2 -2
  210. package/dist/interface/assets/useServerRestart-B0Cfu10q.js +1 -0
  211. package/dist/interface/assets/{useStreamStatus-B3QIWjDE.js → useStreamStatus-BLXdLAvK.js} +1 -1
  212. package/dist/interface/assets/{useTabSwipe-BYFLQ9EY.js → useTabSwipe-C3qfclkm.js} +1 -1
  213. package/dist/interface/assets/useUpdateChannel-DvO5NQPE.js +1 -0
  214. package/dist/interface/assets/{useUpdatesSocket-CoxkS7Hr.js → useUpdatesSocket-C6wTDGIg.js} +1 -1
  215. package/dist/interface/assets/useUserOptions-B9T46skV.js +1 -0
  216. package/dist/interface/assets/{variable-CCMnQpL2.js → variable-CYzMRxrK.js} +1 -1
  217. package/dist/interface/assets/vendor-AX0A8AMd.js +20 -0
  218. package/dist/interface/assets/{vendor-ace-DIEVbs6L.js → vendor-ace-Bxj8w-af.js} +11 -11
  219. package/dist/interface/assets/vendor-cameraui-OySaGjmo.js +2326 -0
  220. package/dist/interface/assets/{vendor-capacitor-4nn-eF9U.js → vendor-capacitor-B-ykF6jr.js} +2 -2
  221. package/dist/interface/assets/vendor-chart-C-1xJhJN.js +3 -0
  222. package/dist/interface/assets/vendor-core-BZ52eUwC.js +1 -0
  223. package/dist/interface/assets/{vendor-dnd-ChrDrMuz.js → vendor-dnd-onyWAbsd.js} +1 -1
  224. package/dist/interface/assets/{vendor-draggabilly-DSeIE_bQ.js → vendor-draggabilly-B7q3Src-.js} +1 -1
  225. package/dist/interface/assets/{vendor-gridstack-DsRWLz0m.css → vendor-gridstack-7uZBsdEh.css} +1 -1
  226. package/dist/interface/assets/vendor-gridstack-C5hqQCSi.js +3 -0
  227. package/dist/interface/assets/{vendor-leaflet-Bcgd-fkG.js → vendor-leaflet-aXJ6sRgf.js} +1 -1
  228. package/dist/interface/assets/{vendor-markdown-Bw_90xkF.js → vendor-markdown-pUmink8s.js} +4 -4
  229. package/dist/interface/assets/{vendor-primevue-DMAuiM9b.js → vendor-primevue-CvHDsVi_.js} +61 -61
  230. package/dist/interface/assets/vendor-vueflow-8uLknwcA.js +26 -0
  231. package/dist/interface/assets/vendor-xterm-Bor91IHm.js +85 -0
  232. package/dist/interface/assets/{vendor-zod-Dbq0fBXY.js → vendor-zod-B0ZFM2Pr.js} +1 -1
  233. package/dist/interface/assets/web-BFaZfzEP.js +1 -0
  234. package/dist/interface/assets/web-BdoMdiEl.js +1 -0
  235. package/dist/interface/assets/web-BjKL51lK-BiZEVgwj.js +1 -0
  236. package/dist/interface/assets/web-Bo0giiE9.js +1 -0
  237. package/dist/interface/assets/web-Bq6cS9c5.js +1 -0
  238. package/dist/interface/assets/web-Ckkk3gWT.js +1 -0
  239. package/dist/interface/assets/web-CsH298dH.js +1 -0
  240. package/dist/interface/assets/web-Cti9cQXr.js +1 -0
  241. package/dist/interface/assets/web-CtlJwfNS.js +1 -0
  242. package/dist/interface/assets/web-DUuNw0Ig.js +1 -0
  243. package/dist/interface/assets/web-Dz9QrW1k.js +1 -0
  244. package/dist/interface/assets/web-MA3uDo37.js +1 -0
  245. package/dist/interface/assets/web-UiUgCX6p.js +1 -0
  246. package/dist/interface/assets/web-zisLysQx.js +1 -0
  247. package/dist/interface/assets/{webhook-DQiZUPv8.js → webhook-CPF2kUgU.js} +1 -1
  248. package/dist/interface/assets/workbox-window.prod.es5-CocanelX.js +1 -0
  249. package/dist/interface/assets/{zoom-in-Du1IB9oA.js → zoom-in-D-OIVcXF.js} +1 -1
  250. package/dist/interface/index.html +50 -48
  251. package/dist/interface/sw.js +1 -1
  252. package/dist/server/package.json +16 -25
  253. package/dist/server/requirements.txt +4 -4
  254. package/dist/server/src/_camera_ui_tools/camera_ui_common/common_utils/signal_handler.py +2 -6
  255. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/__init__.py +8 -0
  256. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/camera/config.py +4 -0
  257. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/manager/__init__.py +91 -1
  258. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/plugin/__init__.py +2 -0
  259. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/plugin/contract.py +3 -0
  260. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/plugin/interfaces.py +40 -1
  261. package/dist/server/src/api/controllers/auth.controller.d.ts +0 -1
  262. package/dist/server/src/api/controllers/auth.controller.js +1 -18
  263. package/dist/server/src/api/controllers/auth.controller.js.map +1 -1
  264. package/dist/server/src/api/controllers/floorplan.controller.d.ts +11 -0
  265. package/dist/server/src/api/controllers/floorplan.controller.js +27 -0
  266. package/dist/server/src/api/controllers/floorplan.controller.js.map +1 -0
  267. package/dist/server/src/api/controllers/remote.controller.d.ts +0 -1
  268. package/dist/server/src/api/controllers/remote.controller.js +2 -12
  269. package/dist/server/src/api/controllers/remote.controller.js.map +1 -1
  270. package/dist/server/src/api/controllers/rooms.controller.d.ts +18 -0
  271. package/dist/server/src/api/controllers/rooms.controller.js +48 -0
  272. package/dist/server/src/api/controllers/rooms.controller.js.map +1 -0
  273. package/dist/server/src/api/controllers/sensors.controller.d.ts +1 -2
  274. package/dist/server/src/api/controllers/sensors.controller.js +0 -14
  275. package/dist/server/src/api/controllers/sensors.controller.js.map +1 -1
  276. package/dist/server/src/api/controllers/server.controller.d.ts +3 -0
  277. package/dist/server/src/api/controllers/server.controller.js +56 -1
  278. package/dist/server/src/api/controllers/server.controller.js.map +1 -1
  279. package/dist/server/src/api/database/constants.d.ts +2 -0
  280. package/dist/server/src/api/database/constants.js +2 -0
  281. package/dist/server/src/api/database/constants.js.map +1 -1
  282. package/dist/server/src/api/database/index.d.ts +4 -2
  283. package/dist/server/src/api/database/index.js +17 -6
  284. package/dist/server/src/api/database/index.js.map +1 -1
  285. package/dist/server/src/api/database/migrations/v2-1-15.d.ts +3 -0
  286. package/dist/server/src/api/database/migrations/v2-1-15.js +160 -0
  287. package/dist/server/src/api/database/migrations/v2-1-15.js.map +1 -0
  288. package/dist/server/src/api/database/migrations/v2-1-16.d.ts +3 -0
  289. package/dist/server/src/api/database/migrations/v2-1-16.js +36 -0
  290. package/dist/server/src/api/database/migrations/v2-1-16.js.map +1 -0
  291. package/dist/server/src/api/database/record-schemas.d.ts +65 -1
  292. package/dist/server/src/api/database/record-schemas.js +74 -0
  293. package/dist/server/src/api/database/record-schemas.js.map +1 -1
  294. package/dist/server/src/api/database/types.d.ts +68 -0
  295. package/dist/server/src/api/index.js +4 -0
  296. package/dist/server/src/api/index.js.map +1 -1
  297. package/dist/server/src/api/routes/floorplan.routes.d.ts +2 -0
  298. package/dist/server/src/api/routes/floorplan.routes.js +29 -0
  299. package/dist/server/src/api/routes/floorplan.routes.js.map +1 -0
  300. package/dist/server/src/api/routes/index.js +4 -0
  301. package/dist/server/src/api/routes/index.js.map +1 -1
  302. package/dist/server/src/api/routes/rooms.routes.d.ts +2 -0
  303. package/dist/server/src/api/routes/rooms.routes.js +40 -0
  304. package/dist/server/src/api/routes/rooms.routes.js.map +1 -0
  305. package/dist/server/src/api/routes/sensors.routes.js +1 -12
  306. package/dist/server/src/api/routes/sensors.routes.js.map +1 -1
  307. package/dist/server/src/api/routes/server.routes.js +33 -0
  308. package/dist/server/src/api/routes/server.routes.js.map +1 -1
  309. package/dist/server/src/api/schemas/cameras.schema.d.ts +33 -4
  310. package/dist/server/src/api/schemas/cameras.schema.js +17 -1
  311. package/dist/server/src/api/schemas/cameras.schema.js.map +1 -1
  312. package/dist/server/src/api/schemas/config.schema.d.ts +0 -12
  313. package/dist/server/src/api/schemas/config.schema.js +1 -10
  314. package/dist/server/src/api/schemas/config.schema.js.map +1 -1
  315. package/dist/server/src/api/schemas/floorplan.schema.d.ts +110 -0
  316. package/dist/server/src/api/schemas/floorplan.schema.js +61 -0
  317. package/dist/server/src/api/schemas/floorplan.schema.js.map +1 -0
  318. package/dist/server/src/api/schemas/rooms.schema.d.ts +12 -0
  319. package/dist/server/src/api/schemas/rooms.schema.js +14 -0
  320. package/dist/server/src/api/schemas/rooms.schema.js.map +1 -0
  321. package/dist/server/src/api/schemas/sensors.schema.d.ts +0 -8
  322. package/dist/server/src/api/schemas/sensors.schema.js +1 -6
  323. package/dist/server/src/api/schemas/sensors.schema.js.map +1 -1
  324. package/dist/server/src/api/schemas/users.schema.d.ts +8 -8
  325. package/dist/server/src/api/services/backup.service.js +4 -5
  326. package/dist/server/src/api/services/backup.service.js.map +1 -1
  327. package/dist/server/src/api/services/cameras.service.d.ts +7 -0
  328. package/dist/server/src/api/services/cameras.service.js +41 -12
  329. package/dist/server/src/api/services/cameras.service.js.map +1 -1
  330. package/dist/server/src/api/services/floorplan.service.d.ts +19 -0
  331. package/dist/server/src/api/services/floorplan.service.js +173 -0
  332. package/dist/server/src/api/services/floorplan.service.js.map +1 -0
  333. package/dist/server/src/api/services/plugins.service.js +6 -5
  334. package/dist/server/src/api/services/plugins.service.js.map +1 -1
  335. package/dist/server/src/api/services/rooms.service.d.ts +17 -0
  336. package/dist/server/src/api/services/rooms.service.js +121 -0
  337. package/dist/server/src/api/services/rooms.service.js.map +1 -0
  338. package/dist/server/src/api/services/sensors.service.d.ts +2 -1
  339. package/dist/server/src/api/services/sensors.service.js +24 -5
  340. package/dist/server/src/api/services/sensors.service.js.map +1 -1
  341. package/dist/server/src/api/services/server.service.js +6 -1
  342. package/dist/server/src/api/services/server.service.js.map +1 -1
  343. package/dist/server/src/api/services/updates.service.d.ts +2 -0
  344. package/dist/server/src/api/services/updates.service.js +25 -10
  345. package/dist/server/src/api/services/updates.service.js.map +1 -1
  346. package/dist/server/src/api/types/index.d.ts +1 -5
  347. package/dist/server/src/api/utils/cert.d.ts +1 -0
  348. package/dist/server/src/api/utils/cert.js +58 -29
  349. package/dist/server/src/api/utils/cert.js.map +1 -1
  350. package/dist/server/src/api/utils/constants.d.ts +3 -0
  351. package/dist/server/src/api/utils/constants.js +3 -0
  352. package/dist/server/src/api/utils/constants.js.map +1 -1
  353. package/dist/server/src/api/utils/custom-cert.d.ts +48 -0
  354. package/dist/server/src/api/utils/custom-cert.js +193 -0
  355. package/dist/server/src/api/utils/custom-cert.js.map +1 -0
  356. package/dist/server/src/api/websocket/index.js +3 -1
  357. package/dist/server/src/api/websocket/index.js.map +1 -1
  358. package/dist/server/src/api/websocket/nsp/sensors.d.ts +14 -0
  359. package/dist/server/src/api/websocket/nsp/sensors.js +83 -0
  360. package/dist/server/src/api/websocket/nsp/sensors.js.map +1 -0
  361. package/dist/server/src/api/websocket/types.d.ts +1 -1
  362. package/dist/server/src/camera/controller.js +3 -2
  363. package/dist/server/src/camera/controller.js.map +1 -1
  364. package/dist/server/src/camera/decoder/child.js +3 -0
  365. package/dist/server/src/camera/decoder/child.js.map +1 -1
  366. package/dist/server/src/camera/decoder/detection-coordinator.d.ts +4 -2
  367. package/dist/server/src/camera/decoder/detection-coordinator.js +36 -12
  368. package/dist/server/src/camera/decoder/detection-coordinator.js.map +1 -1
  369. package/dist/server/src/camera/decoder/event-manager.js +24 -4
  370. package/dist/server/src/camera/decoder/event-manager.js.map +1 -1
  371. package/dist/server/src/camera/decoder/event-thumbnailer.js +0 -2
  372. package/dist/server/src/camera/decoder/event-thumbnailer.js.map +1 -1
  373. package/dist/server/src/camera/decoder/frame-scaler.js +3 -2
  374. package/dist/server/src/camera/decoder/frame-scaler.js.map +1 -1
  375. package/dist/server/src/camera/decoder/hardware.d.ts +1 -0
  376. package/dist/server/src/camera/decoder/hardware.js +11 -0
  377. package/dist/server/src/camera/decoder/hardware.js.map +1 -1
  378. package/dist/server/src/camera/decoder/nvr-sink.d.ts +4 -0
  379. package/dist/server/src/camera/decoder/nvr-sink.js +1 -1
  380. package/dist/server/src/camera/decoder/nvr-sink.js.map +1 -1
  381. package/dist/server/src/camera/decoder/sources/audio-source.js +0 -1
  382. package/dist/server/src/camera/decoder/sources/audio-source.js.map +1 -1
  383. package/dist/server/src/camera/decoder/worker.js +7 -5
  384. package/dist/server/src/camera/decoder/worker.js.map +1 -1
  385. package/dist/server/src/go2rtc/index.js +10 -2
  386. package/dist/server/src/go2rtc/index.js.map +1 -1
  387. package/dist/server/src/main.js +18 -11
  388. package/dist/server/src/main.js.map +1 -1
  389. package/dist/server/src/manager/coreManager.d.ts +7 -4
  390. package/dist/server/src/manager/coreManager.js +19 -1
  391. package/dist/server/src/manager/coreManager.js.map +1 -1
  392. package/dist/server/src/manager/downloadManager.d.ts +1 -0
  393. package/dist/server/src/manager/downloadManager.js +30 -4
  394. package/dist/server/src/manager/downloadManager.js.map +1 -1
  395. package/dist/server/src/plugins/runtime/base.d.ts +2 -1
  396. package/dist/server/src/plugins/runtime/base.js +16 -4
  397. package/dist/server/src/plugins/runtime/base.js.map +1 -1
  398. package/dist/server/src/plugins/runtime/node/child.js +3 -0
  399. package/dist/server/src/plugins/runtime/node/child.js.map +1 -1
  400. package/dist/server/src/plugins/runtime/node/index.js +2 -2
  401. package/dist/server/src/plugins/runtime/node/index.js.map +1 -1
  402. package/dist/server/src/plugins/runtime/node/proxy/cameraDevice.js +39 -28
  403. package/dist/server/src/plugins/runtime/node/proxy/cameraDevice.js.map +1 -1
  404. package/dist/server/src/plugins/runtime/node/proxy/limiter.d.ts +1 -0
  405. package/dist/server/src/plugins/runtime/node/proxy/limiter.js +21 -0
  406. package/dist/server/src/plugins/runtime/node/proxy/limiter.js.map +1 -0
  407. package/dist/server/src/plugins/runtime/node/proxy/sensorManager.d.ts +3 -1
  408. package/dist/server/src/plugins/runtime/node/proxy/sensorManager.js +63 -47
  409. package/dist/server/src/plugins/runtime/node/proxy/sensorManager.js.map +1 -1
  410. package/dist/server/src/plugins/runtime/python/proxy/camera_device.py +5 -0
  411. package/dist/server/src/plugins/runtime/python/proxy/limiter.py +14 -0
  412. package/dist/server/src/plugins/runtime/python/proxy/sensor.py +4 -0
  413. package/dist/server/src/plugins/runtime/python/proxy/sensor_manager.py +35 -1
  414. package/dist/server/src/plugins/runtime/python/rpc/typings.py +4 -1
  415. package/dist/server/src/plugins/worker.js +1 -0
  416. package/dist/server/src/plugins/worker.js.map +1 -1
  417. package/dist/server/src/rpc/index.js +2 -2
  418. package/dist/server/src/rpc/index.js.map +1 -1
  419. package/dist/server/src/rpc/interfaces/core.d.ts +19 -2
  420. package/dist/server/src/rpc/interfaces/sensor.d.ts +29 -1
  421. package/dist/server/src/rpc/namespaces.d.ts +4 -0
  422. package/dist/server/src/rpc/namespaces.js +5 -0
  423. package/dist/server/src/rpc/namespaces.js.map +1 -1
  424. package/dist/server/src/rpc/server.js +4 -4
  425. package/dist/server/src/rpc/server.js.map +1 -1
  426. package/dist/server/src/sensors/discovery.d.ts +29 -0
  427. package/dist/server/src/sensors/discovery.js +149 -0
  428. package/dist/server/src/sensors/discovery.js.map +1 -0
  429. package/dist/server/src/sensors/registry.d.ts +2 -2
  430. package/dist/server/src/sensors/registry.js +31 -10
  431. package/dist/server/src/sensors/registry.js.map +1 -1
  432. package/dist/server/src/services/config/constants.js +1 -2
  433. package/dist/server/src/services/config/constants.js.map +1 -1
  434. package/dist/server/src/services/config/defaults.d.ts +1 -2
  435. package/dist/server/src/services/config/defaults.js +0 -6
  436. package/dist/server/src/services/config/defaults.js.map +1 -1
  437. package/dist/server/src/services/config/index.d.ts +10 -0
  438. package/dist/server/src/services/config/index.js +94 -35
  439. package/dist/server/src/services/config/index.js.map +1 -1
  440. package/dist/server/src/services/config/types.d.ts +0 -7
  441. package/dist/server/src/utils/camera.d.ts +1 -0
  442. package/dist/server/src/utils/camera.js +7 -0
  443. package/dist/server/src/utils/camera.js.map +1 -1
  444. package/dist/server/src/utils/crash.d.ts +2 -0
  445. package/dist/server/src/utils/crash.js +14 -0
  446. package/dist/server/src/utils/crash.js.map +1 -0
  447. package/dist/server/src/utils/process-exit.d.ts +5 -0
  448. package/dist/server/src/utils/process-exit.js +11 -0
  449. package/dist/server/src/utils/process-exit.js.map +1 -0
  450. package/dist/server/src/workers/agent.js +3 -0
  451. package/dist/server/src/workers/agent.js.map +1 -1
  452. package/dist/server/src/workers/capabilities/frame-decoding.js +12 -1
  453. package/dist/server/src/workers/capabilities/frame-decoding.js.map +1 -1
  454. package/package.json +16 -25
  455. package/dist/interface/assets/404-BLNSh-sA.js +0 -1
  456. package/dist/interface/assets/About-ZakRzon7.js +0 -1
  457. package/dist/interface/assets/Automation-DoVhkuVY.js +0 -3
  458. package/dist/interface/assets/AutomationImport-DVxK1R1y.js +0 -2
  459. package/dist/interface/assets/AutomationStore-DaNO9_9S.js +0 -2
  460. package/dist/interface/assets/AutomationStoreDetail-CTDCEaIz.js +0 -2
  461. package/dist/interface/assets/Automations-mdnUitWx.js +0 -2
  462. package/dist/interface/assets/Camera-B3cv5IVC.js +0 -2
  463. package/dist/interface/assets/CameraConsole-C32X5I91.js +0 -7
  464. package/dist/interface/assets/Cameras-Drv48-Eb.js +0 -652
  465. package/dist/interface/assets/Camview-Bvy39jSt.js +0 -1
  466. package/dist/interface/assets/Config-B-LDdaS6.js +0 -2
  467. package/dist/interface/assets/ConfigActionDelay-Cj3yWfEV.js +0 -1
  468. package/dist/interface/assets/ConfigActionHttp-PlS5vI0v.js +0 -1
  469. package/dist/interface/assets/ConfigActionImageInput-BHflOA-T.js +0 -1
  470. package/dist/interface/assets/ConfigActionMqtt-DByOwVPe.js +0 -1
  471. package/dist/interface/assets/ConfigActionNotification-D_8_lp96.js +0 -1
  472. package/dist/interface/assets/ConfigActionOutput-YTAw-Are.js +0 -1
  473. package/dist/interface/assets/ConfigActionPlugin-lF2IH2Bo.js +0 -1
  474. package/dist/interface/assets/ConfigActionSensor-DQZW_Jxr.js +0 -1
  475. package/dist/interface/assets/ConfigActionSnapshot-CHxIQ5J0.js +0 -1
  476. package/dist/interface/assets/ConfigActionVariable-0VLGuhwP.js +0 -1
  477. package/dist/interface/assets/ConfigConditionIfElse-D-Ibn8QL.js +0 -1
  478. package/dist/interface/assets/ConfigConditionSensorState-BKSGYRdv.js +0 -1
  479. package/dist/interface/assets/ConfigConditionSwitch-CzkEyWb1.js +0 -1
  480. package/dist/interface/assets/ConfigConditionTime-BFKsDI_t.js +0 -1
  481. package/dist/interface/assets/ConfigTriggerDetection-DFTgRaE0.js +0 -1
  482. package/dist/interface/assets/ConfigTriggerManual-BDK6OYxg.js +0 -1
  483. package/dist/interface/assets/ConfigTriggerMqtt-BZO14RrW.js +0 -1
  484. package/dist/interface/assets/ConfigTriggerSchedule-sMkzMLgn.js +0 -1
  485. package/dist/interface/assets/ConfigTriggerSensor-D6W_exDW.js +0 -1
  486. package/dist/interface/assets/ConfigTriggerWebhook-DxZziGkL.js +0 -1
  487. package/dist/interface/assets/Console-DjA3ZPU_.js +0 -1
  488. package/dist/interface/assets/CuiAutomationRunsDialog-B4ABK72A.js +0 -1
  489. package/dist/interface/assets/CuiBottomSheet-D1zDWsoK.js +0 -1
  490. package/dist/interface/assets/CuiBottomSheet-N9MHq4yZ.js +0 -1
  491. package/dist/interface/assets/CuiCameraPipCard-CnWs2fAC.js +0 -1
  492. package/dist/interface/assets/CuiCameraRecordings-AA-sBtb4.css +0 -1
  493. package/dist/interface/assets/CuiCameraRecordings-CahW-f8_.js +0 -1
  494. package/dist/interface/assets/CuiCameraShares-B2RdPWWh.js +0 -1
  495. package/dist/interface/assets/CuiCameraTable-4ikGv8QA.js +0 -1
  496. package/dist/interface/assets/CuiCameraTable-BKBvhRDc.js +0 -2
  497. package/dist/interface/assets/CuiChartTable-Lvz9Zq0k.js +0 -1
  498. package/dist/interface/assets/CuiDataTable-CIP95jVF.js +0 -1
  499. package/dist/interface/assets/CuiLightControl-CvfWo8mY.js +0 -1
  500. package/dist/interface/assets/CuiList-CajC6jpE.js +0 -1
  501. package/dist/interface/assets/CuiMarkdownContent-DIycyLeP.js +0 -1
  502. package/dist/interface/assets/CuiPluginCard-CQS8C87-.js +0 -2
  503. package/dist/interface/assets/CuiPluginCategoryChip-DCNG8zl1.js +0 -1
  504. package/dist/interface/assets/CuiPluginOAuthButton-CvZrOWr8.js +0 -2
  505. package/dist/interface/assets/CuiQRCode-CjLcB644.js +0 -1
  506. package/dist/interface/assets/CuiRecordingsGrid-DrpErbux.js +0 -1
  507. package/dist/interface/assets/CuiSchema-DG8peseE.js +0 -1
  508. package/dist/interface/assets/CuiTopNavbarItem-Dq3Esl1S.js +0 -1
  509. package/dist/interface/assets/Faces-D0yRgOMj.js +0 -1
  510. package/dist/interface/assets/FirstSteps-BW8AVmd4.js +0 -1
  511. package/dist/interface/assets/Instances-BgXJvs0_.js +0 -1
  512. package/dist/interface/assets/Logs-DH3rWnlV.js +0 -6
  513. package/dist/interface/assets/Menu-D9FVgjwT.js +0 -1
  514. package/dist/interface/assets/Metrics-7bYWyGWU.js +0 -9
  515. package/dist/interface/assets/OAuthDeviceFlow-BS0FQbZh.js +0 -1
  516. package/dist/interface/assets/Plugin-ZwkTp6C4.js +0 -1
  517. package/dist/interface/assets/PluginConsole-Dt39TWaO.js +0 -7
  518. package/dist/interface/assets/PluginDetail-D7ZtOG9Y.js +0 -2
  519. package/dist/interface/assets/PluginSchema-8T7EBq-Z.js +0 -1
  520. package/dist/interface/assets/PluginSearch-DN3o0wfs.js +0 -1
  521. package/dist/interface/assets/PluginSearch-eRDCvu_8.js +0 -2
  522. package/dist/interface/assets/PluginUpdateProgress-CxjpzkGa.js +0 -1
  523. package/dist/interface/assets/Plugins-DVsMpyvr.js +0 -1
  524. package/dist/interface/assets/Recordings-BKxSEiQo.js +0 -1
  525. package/dist/interface/assets/Recordings-cR4_6aGN.css +0 -1
  526. package/dist/interface/assets/SensorEdit-BmaMQKEa.js +0 -1
  527. package/dist/interface/assets/SensorHistory-CmOAk-tD.js +0 -1
  528. package/dist/interface/assets/Sensors-x08al7Je.js +0 -2
  529. package/dist/interface/assets/Settings-Cp1lzG1i.js +0 -1
  530. package/dist/interface/assets/SettingsAccount-BwCNddkW.js +0 -1
  531. package/dist/interface/assets/SettingsAccount-DC9AxqHe.js +0 -1
  532. package/dist/interface/assets/SettingsAppearance-CMzzDZCX.js +0 -1
  533. package/dist/interface/assets/SettingsAppearance-Dr8hJloI.js +0 -1
  534. package/dist/interface/assets/SettingsBackup-Dc8pDM3Y.js +0 -1
  535. package/dist/interface/assets/SettingsList-3peF3gFZ.js +0 -1
  536. package/dist/interface/assets/SettingsMqtt-k-cHaOoA.js +0 -1
  537. package/dist/interface/assets/SettingsNotifications-BJHYlSKX.js +0 -1
  538. package/dist/interface/assets/SettingsPermissions-CymqvfR9.js +0 -1
  539. package/dist/interface/assets/SettingsRecordings-gWTD_djR.js +0 -1
  540. package/dist/interface/assets/SettingsRemote-BWAhI1Gw.js +0 -2
  541. package/dist/interface/assets/SettingsSystem-BGBUQvjg.js +0 -2
  542. package/dist/interface/assets/SettingsUsers-B_Ri5OrM.js +0 -1
  543. package/dist/interface/assets/Terminal-eYxvgFHE.js +0 -4
  544. package/dist/interface/assets/Updates-CweZekTf.js +0 -2
  545. package/dist/interface/assets/VariableInput-CM6T3pUW.js +0 -1
  546. package/dist/interface/assets/VersionsHandler-BWIiBPPa.js +0 -7
  547. package/dist/interface/assets/VirtualSensorCreate-CFQC2-9D.js +0 -1
  548. package/dist/interface/assets/Workers-B-sp43t3.js +0 -2
  549. package/dist/interface/assets/ace-BqKKexH4.js +0 -1
  550. package/dist/interface/assets/alert-outline-GrD7-zHq.js +0 -1
  551. package/dist/interface/assets/api-CG0j1twy.js +0 -1
  552. package/dist/interface/assets/api-CVOj5SYs.css +0 -2
  553. package/dist/interface/assets/api-C_bOaXk2.js +0 -2
  554. package/dist/interface/assets/arrow-left-C1N6U6kZ.js +0 -1
  555. package/dist/interface/assets/auth-BPSOBTDX.js +0 -1
  556. package/dist/interface/assets/automations-BrtwUIUz.js +0 -1
  557. package/dist/interface/assets/cameras.schema-CoIOnGzE.js +0 -1
  558. package/dist/interface/assets/check-circle-Do_mBN_A.js +0 -1
  559. package/dist/interface/assets/chevron-down-D111daTn.js +0 -1
  560. package/dist/interface/assets/cloudHandoff-BiFzJEYx.js +0 -1
  561. package/dist/interface/assets/config-BjldP5A6.js +0 -1
  562. package/dist/interface/assets/content-copy-CLkJTA4w.js +0 -1
  563. package/dist/interface/assets/delete-BF6keuqy.js +0 -1
  564. package/dist/interface/assets/download-BCPfm6aN.js +0 -1
  565. package/dist/interface/assets/esm-B3yVlCMw.js +0 -1
  566. package/dist/interface/assets/esm-BKQ7CQK7.js +0 -1
  567. package/dist/interface/assets/esm-BiSE05P9.js +0 -1
  568. package/dist/interface/assets/esm-BoPthGAl.js +0 -1
  569. package/dist/interface/assets/esm-C2ALrdyx.js +0 -1
  570. package/dist/interface/assets/esm-CKEGzys4.js +0 -1
  571. package/dist/interface/assets/esm-CctiCHtK.js +0 -1
  572. package/dist/interface/assets/esm-Cqq81lnk.js +0 -1
  573. package/dist/interface/assets/esm-CyrLQTu0.js +0 -1
  574. package/dist/interface/assets/esm-D6O-eZYo.js +0 -1
  575. package/dist/interface/assets/esm-DG1f0qwo.js +0 -1
  576. package/dist/interface/assets/esm-DGegIZMF.js +0 -1
  577. package/dist/interface/assets/esm-JGwpHVqo.js +0 -1
  578. package/dist/interface/assets/esm-TRigYTsA.js +0 -1
  579. package/dist/interface/assets/home-CUykMSBW.js +0 -1
  580. package/dist/interface/assets/main-BG-VCb--.js +0 -3
  581. package/dist/interface/assets/minus-RI3VlDe8.js +0 -1
  582. package/dist/interface/assets/mqtt-DSPPQwxJ.js +0 -1
  583. package/dist/interface/assets/native-B01iGjCh.js +0 -1
  584. package/dist/interface/assets/native-D381pxlG.js +0 -1
  585. package/dist/interface/assets/notifications-DEEM2oP2.js +0 -1
  586. package/dist/interface/assets/plugin-W20ihuog.js +0 -1
  587. package/dist/interface/assets/plugins-DBBFdZKH.js +0 -1
  588. package/dist/interface/assets/plus-DHwFyXkb.js +0 -1
  589. package/dist/interface/assets/power-C9UIp2oO.js +0 -1
  590. package/dist/interface/assets/sensors-CKTPsYYH.js +0 -1
  591. package/dist/interface/assets/server-B_MuqJ5z.js +0 -1
  592. package/dist/interface/assets/table-2-line-B-z0xvbG.js +0 -1
  593. package/dist/interface/assets/theme-FztlStyg.js +0 -1
  594. package/dist/interface/assets/trash-can-outline-DLKniIWM.js +0 -1
  595. package/dist/interface/assets/types-BHAzjgi3.js +0 -1
  596. package/dist/interface/assets/upload-ClkX9wUX.js +0 -1
  597. package/dist/interface/assets/useBackupRestore-Tc23Huvm.js +0 -1
  598. package/dist/interface/assets/useServerRestart-DoLrF47t.js +0 -1
  599. package/dist/interface/assets/useUpdateChannel-DWEw-ZyB.js +0 -1
  600. package/dist/interface/assets/useUserOptions-DCDeuz2p.js +0 -1
  601. package/dist/interface/assets/vendor-BaiDFVEr.js +0 -23
  602. package/dist/interface/assets/vendor-cameraui-4iwjOYwz.js +0 -2326
  603. package/dist/interface/assets/vendor-chart-DtwjR6yw.js +0 -3
  604. package/dist/interface/assets/vendor-core-gJradu21.js +0 -1
  605. package/dist/interface/assets/vendor-gridstack-qw2ro2uB.js +0 -3
  606. package/dist/interface/assets/vendor-vueflow-CLJNLJXc.js +0 -26
  607. package/dist/interface/assets/vendor-xterm-BafMBqaV.js +0 -91
  608. package/dist/interface/assets/web-BNRwhIOt.js +0 -1
  609. package/dist/interface/assets/web-BPkOXv4d.js +0 -1
  610. package/dist/interface/assets/web-BZIx_2d3.js +0 -1
  611. package/dist/interface/assets/web-BjKL51lK-BwChM7zd.js +0 -1
  612. package/dist/interface/assets/web-BkmtZjSt.js +0 -1
  613. package/dist/interface/assets/web-C6RgriWz.js +0 -1
  614. package/dist/interface/assets/web-CQFMLa0a.js +0 -1
  615. package/dist/interface/assets/web-CZGnd6VE.js +0 -1
  616. package/dist/interface/assets/web-Cfzay11X.js +0 -1
  617. package/dist/interface/assets/web-DAgBwKL-.js +0 -1
  618. package/dist/interface/assets/web-DgVHh5ek.js +0 -1
  619. package/dist/interface/assets/web-DlSXwZBR.js +0 -1
  620. package/dist/interface/assets/web-eDYxVGH7.js +0 -1
  621. package/dist/interface/assets/web-h4k3EoRQ.js +0 -1
  622. package/dist/interface/assets/workbox-window.prod.es5-CcJiPjAS.js +0 -1
@@ -0,0 +1,2 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./VersionsHandler-BHyZgGCP.js","./vendor-cameraui-OySaGjmo.js","./rolldown-runtime-C0FnF6B9.js","./vendor-AX0A8AMd.js","./api-ou2-S3Z9.js","./intercomService-JoKcW49f.js","./vendor-zod-B0ZFM2Pr.js","./types-Dg1X10xd.js","./lightbulb-outline-BtraGBwO.js","./vendor-core-BZ52eUwC.js","./vendor-primevue-CvHDsVi_.js","./vendor-dnd-onyWAbsd.js","./close-ChGy_BeH.js","./vendor-draggabilly-B7q3Src-.js","./api-CEbDxsSY.css","./server-_f9tZajz.js","./useServerRestart-B0Cfu10q.js","./alert-circle-We_nDFAy.js","./plugins-DXYT--j6.js","./CuiConsole-BOyrbC0a.js","./content-copy-CsUEmnFS.js","./vendor-xterm-Bor91IHm.js","./vendor-xterm-BrP-ENHg.css","./CuiConsole-CoA-Nq-_.css","./useLogsSocket-Bigb4u3j.js","./CuiMarkdownContent-bAQw35id.js","./vendor-markdown-pUmink8s.js","./vendor-markdown-DtOhvyRx.css","./platformLabels-D-cF6OTP.js","./config-BIxANITl.js","./useUpdateChannel-DvO5NQPE.js","./PluginDetail-Ca-NJcL1.js","./check-circle-DNTQ812v.js","./home-DEKGoPL_.js","./clock-outline-DwnISu0k.js","./source-branch-K7YOvHCE.js","./CuiPluginTrustBadge-B_1b1iYf.js","./CuiPluginTrustBadge-QHTLaN1n.css","./account-BW_r05fC.js","./CuiPluginCategoryChip-CCnZkkL5.js","./bell-ring-DBCDVZQy.js","./cctv-Tng3HqLa.js","./brain-Bqf50oqB.js","./CuiPluginCategoryChip-CdGrTCxH.css","./download-CaV8-tw6.js","./PluginDetail-BYqji8yN.css"])))=>i.map(i=>d[i]);
2
+ import{Bt as e,F as t,K as n,Rt as ee,Wt as r,zr as i}from"./vendor-cameraui-OySaGjmo.js";import{N as a,On as o,Tn as s,c,ct as l,kn as u,l as d,lt as f}from"./api-ou2-S3Z9.js";import{$t as p,Kn as m,Mn as h,Pn as g,Qt as _,Rt as v,Xn as y,Yn as b,Zt as x,an as S,dn as C,fn as w,gr as T,hr as E,in as D,mn as O,nr as k,on as A,rn as j,rr as M,sn as N,sr as P,yn as te,yr as F}from"./vendor-AX0A8AMd.js";import{L as ne,R as re,U as ie,a as I,d as ae,j as oe}from"./vendor-primevue-CvHDsVi_.js";import{t as se}from"./close-ChGy_BeH.js";import{t as ce}from"./plugins-DXYT--j6.js";import{t as L}from"./clock-outline-DwnISu0k.js";import{t as R}from"./CuiPluginTrustBadge-B_1b1iYf.js";import{i as z,n as le,r as ue,t as B}from"./CuiPluginCategoryChip-CCnZkkL5.js";import{t as V}from"./download-CaV8-tw6.js";var H={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function U(e,t){return h(),N(`svg`,H,[...t[0]||=[D(`path`,{fill:`currentColor`,d:`M13 15.6c.3.2.7.2 1 0l5-2.9v.3c.7 0 1.4.1 2 .4v-1.8l1-.6c.5-.3.6-.9.4-1.4l-1.5-2.5c-.1-.2-.2-.4-.4-.5l-7.9-4.4c-.2-.1-.4-.2-.6-.2s-.4.1-.6.2L3.6 6.6c-.2.1-.4.2-.5.4L1.6 9.6c-.3.5-.1 1.1.4 1.4c.3.2.7.2 1 0v5.5c0 .4.2.7.5.9l7.9 4.4c.2.1.4.2.6.2s.4-.1.6-.2l.9-.5c-.3-.6-.4-1.3-.5-2m-2 0l-6-3.4V9.2l6 3.4zm9.1-9.6l-6.3 3.6l-.6-1l6.3-3.6zM12 10.8V4.2l6 3.3zm8 4.2v3h3v2h-3v3h-2v-3h-3v-2h3v-3z`},null,-1)]])}var de=M({name:`mdi-package-variant-plus`,render:U}),W={class:`plugin-store-card-body`},G={class:`flex items-start gap-3 min-w-0`},K={class:`plugin-store-icon flex-shrink-0`},q={class:`min-w-0 flex-1`},J={class:`flex items-center gap-2 min-w-0`},fe={class:`font-medium text-base truncate`},pe={class:`text-sm text-muted truncate`},me={class:`plugin-store-card-description`},Y={class:`flex flex-wrap items-center gap-x-3 gap-y-1 mt-auto pt-2`},X={key:2,class:`plugin-store-meta`},Z={key:3,class:`plugin-store-meta`},Q={class:`flex gap-1`},he=u(O({__name:`CuiPluginStoreCard`,props:{plugin:{},inProgress:{type:Boolean}},emits:[`open`,`install`],setup(e,{emit:t}){let n=e,s=t,{t:l}=i(),u=j(()=>n.plugin),f=j(()=>{let e=u.value.downloads?.weekly;return typeof e==`number`?l(`components.plugin_search.downloads_per_week`,{count:c(e)}):void 0}),p=j(()=>u.value.lastUpdated?d(u.value.lastUpdated):void 0);return(t,n)=>{let i=o,c=R,l=I,d=B,m=V,g=L,v=a,O=ee,k=z,j=r;return h(),N(`div`,{class:T([`plugin-store-card shadow-sm transition-default card-background custom-scrollbar`,{"opacity-50 in-progress":e.inProgress}]),role:`button`,tabindex:`0`,onClick:n[4]||=e=>s(`open`,E(u)),onKeydown:n[5]||=x(e=>s(`open`,E(u)),[`enter`])},[D(`div`,W,[D(`div`,G,[D(`div`,K,[w(i,{src:E(u).logo,alt:`Plugin logo`,class:`block w-full h-full`,"image-container-class":`w-full h-full`,"image-class":`object-contain`},null,8,[`src`])]),D(`div`,q,[D(`div`,J,[D(`h4`,fe,F(E(u).displayName),1),w(c,{trust:E(u).trust,"show-label":!1,class:`flex-shrink-0`},null,8,[`trust`])]),D(`div`,pe,F(E(u).pluginName),1)])]),D(`p`,me,F(E(u).tagline||E(u).description),1),D(`div`,Y,[E(u).compatible===!1?y((h(),S(l,{key:0,severity:`warn`,value:t.$t(`components.plugin_search.incompatible`)},null,8,[`value`])),[[j,{value:t.$t(`components.plugin_search.incompatible_system`)},void 0,{top:!0}]]):A(``,!0),E(u).protocolCompat===`serverTooOld`?y((h(),S(l,{key:1,severity:`warn`,value:t.$t(`components.plugin_search.requires_newer_server`)},null,8,[`value`])),[[j,{value:t.$t(`components.plugin_search.requires_newer_server_hint`)},void 0,{top:!0}]]):A(``,!0),w(d,{category:E(u).category},null,8,[`category`]),E(f)?(h(),N(`span`,X,[w(m,{class:`plugin-store-meta-icon`}),C(` `+F(E(f)),1)])):A(``,!0),E(p)?(h(),N(`span`,Z,[w(g,{class:`plugin-store-meta-icon`}),C(` `+F(t.$t(`components.plugin_search.updated_ago`,{time:E(p)})),1)])):A(``,!0)])]),D(`div`,{class:`plugin-store-card-actions`,onClick:n[3]||=_(()=>{},[`stop`])},[D(`div`,Q,[E(u).links?.repository||E(u).links?.homepage?y((h(),S(O,{key:0,text:``,rounded:``,severity:`secondary`,class:`cui-icon-md`,onClick:n[0]||=e=>t.$router.absUrl(E(u).links?.repository||E(u).links?.homepage,!0)},{icon:b(()=>[w(v,{width:`100%`,height:`100%`})]),_:1})),[[j,{value:`Github`},void 0,{top:!0}]]):A(``,!0),E(u).links?.npm?y((h(),S(O,{key:1,text:``,rounded:``,severity:`secondary`,class:`cui-icon-md`,onClick:n[1]||=e=>t.$router.absUrl(E(u).links.npm,!0)},{icon:b(()=>[w(k,{width:`100%`,height:`100%`})]),_:1})),[[j,{value:`NPM`},void 0,{top:!0}]]):A(``,!0)]),w(O,{class:`cui-button-medium ml-auto`,label:t.$t(`components.form.button.install`),disabled:e.inProgress,onClick:n[2]||=e=>s(`install`,E(u))},null,8,[`label`,`disabled`])])],34)}}}),[[`__scopeId`,`data-v-870f576c`]]),ge={class:`cui-label`},_e={class:`flex flex-wrap gap-2 mt-4`},ve={key:0,class:`mt-6`},ye={class:`featured-row custom-scrollbar mt-3`},be={class:`flex flex-row items-center justify-center w-full mt-8`},xe={key:3,class:`text-center py-10`},Se={class:`text-muted mb-2`},Ce={class:`text-muted`},we={key:4,class:`w-full`},Te={key:5,class:`w-full plugin-list`},$=u(O({__name:`PluginSearch`,setup(a,{expose:o}){let c=f(()=>v(()=>import(`./VersionsHandler-BHyZgGCP.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,22,23,24,25,26,27,28,29,30]),import.meta.url)),u=f(()=>v(()=>import(`./PluginDetail-Ca-NJcL1.js`),__vite__mapDeps([31,1,2,3,4,5,6,7,8,9,10,11,12,13,14,32,17,18,33,34,35,36,37,38,25,26,27,39,40,41,42,43,44,28,45]),import.meta.url)),d=new ce,x=l(),{t:C}=i(),T=te(`dialogRefProps`),O=P(``),M=P({}),I=P([]),L=P(`all`),R=P(`all`),z=P(`name`),B=P(!1),{data:V,isBusy:H,refetch:U}=d.searchPluginsQuery(M,{page:1,pageSize:-1},B),{data:W,isBusy:G,refetch:K}=d.getPluginsProgressQuery({page:1,pageSize:-1}),q=j(()=>H.value||G.value),J=j(()=>!!(T.loading?.value||q.value)),fe=j(()=>[{label:C(`components.plugin_search.filter_all_categories`),value:`all`},...ue.map(e=>({label:C(le[e].labelKey),value:e}))]),pe=j(()=>[{label:C(`components.plugin_search.filter_all_trust`),value:`all`},{label:C(`components.plugin_search.trust_official`),value:`official`},{label:C(`components.plugin_search.trust_verified`),value:`verified`},{label:C(`components.plugin_search.trust_community`),value:`community`}]),me=j(()=>[{label:C(`components.plugin_search.sort_name`),value:`name`},{label:C(`components.plugin_search.sort_downloads`),value:`downloads`},{label:C(`components.plugin_search.sort_updated`),value:`updated`}]),Y=j(()=>{let e=I.value.slice();return L.value!==`all`&&(e=e.filter(e=>e.category===L.value)),R.value!==`all`&&(e=e.filter(e=>e.trust===R.value)),e.sort((e,t)=>{switch(z.value){case`downloads`:return(t.downloads?.weekly??0)-(e.downloads?.weekly??0);case`updated`:return new Date(t.lastUpdated??0).getTime()-new Date(e.lastUpdated??0).getTime();default:return(e.displayName||e.pluginName).localeCompare(t.displayName||t.pluginName)}}),e}),X=j(()=>Y.value.filter(e=>e.featured)),Z=j(()=>Y.value.filter(e=>!e.featured));function Q(e){return W.value?.result.some(t=>t.pluginName===e)}function $(e){e?.preventDefault(),M.value.pluginname=O.value??``}function Ee(){O.value=``,M.value={},L.value=`all`,R.value=`all`,z.value=`name`,$()}function De(){B.value=!0,Promise.all([U(),K()]).finally(()=>{B.value=!1})}function Oe(e){x.openComponentDialog(c,{data:{title:C(`components.dialog.title.install`),loading:J,contentProps:{target:E(e),installVersion:`latest`}}})}function ke(e){x.openComponentDialog(u,{data:{title:C(`components.dialog.title.details`),confirmText:C(`components.form.button.install`),contentProps:{plugin:E(e)}}})}return m(V,e=>{e?.result&&(I.value=e.result.filter(e=>!e.installPath))},{immediate:!0,deep:!0}),o({isLoading:J}),(i,a)=>{let o=t,c=se,l=ee,u=ne,d=re,f=oe,m=he,v=s,x=e,C=ae,T=ie,j=de,M=n,P=r;return h(),N(`div`,null,[D(`form`,{onSubmit:_($,[`prevent`])},[D(`label`,ge,F(i.$t(`components.form.label.name`)),1),w(d,null,{default:b(()=>[w(o,{modelValue:E(O),"onUpdate:modelValue":a[0]||=e=>k(O)?O.value=e:null,modelModifiers:{trim:!0},loading:E(q),placeholder:`camera-ui-`,type:`text`},null,8,[`modelValue`,`loading`]),w(u,null,{default:b(()=>[w(l,{text:``,rounded:``,severity:`secondary`,class:`cui-icon-md`,onClick:Ee},{icon:b(()=>[w(c,{width:`100%`,height:`100%`})]),_:1})]),_:1})]),_:1})],32),D(`div`,_e,[w(f,{modelValue:E(L),"onUpdate:modelValue":a[1]||=e=>k(L)?L.value=e:null,options:E(fe),"option-label":`label`,"option-value":`value`,class:`flex-1 min-w-[140px]`,placeholder:i.$t(`components.plugin_search.filter_category`)},null,8,[`modelValue`,`options`,`placeholder`]),w(f,{modelValue:E(R),"onUpdate:modelValue":a[2]||=e=>k(R)?R.value=e:null,options:E(pe),"option-label":`label`,"option-value":`value`,class:`flex-1 min-w-[140px]`,placeholder:i.$t(`components.plugin_search.filter_trust`)},null,8,[`modelValue`,`options`,`placeholder`]),w(f,{modelValue:E(z),"onUpdate:modelValue":a[3]||=e=>k(z)?z.value=e:null,options:E(me),"option-label":`label`,"option-value":`value`,class:`flex-1 min-w-[140px]`,placeholder:i.$t(`components.plugin_search.sort_by`)},null,8,[`modelValue`,`options`,`placeholder`])]),!E(q)&&E(X).length?(h(),N(`div`,ve,[D(`h3`,null,F(i.$t(`components.plugin_search.featured`)),1),D(`div`,ye,[(h(!0),N(p,null,g(E(X),e=>(h(),N(`div`,{key:e.pluginName,class:`featured-item`},[w(m,{plugin:e,"in-progress":Q(e.pluginName),onOpen:ke,onInstall:Oe},null,8,[`plugin`,`in-progress`])]))),128))])])):A(``,!0),D(`div`,be,[D(`h3`,null,F(i.$t(`components.plugin_search.plugins`)),1),y((h(),S(l,{text:``,rounded:``,severity:`secondary`,class:`cui-icon-md ml-auto`,onClick:De},{icon:b(()=>[w(v,{width:`100%`,height:`100%`})]),_:1})),[[P,{value:i.$t(`components.plugin_search.refresh`)},void 0,{left:!0}]]),w(x,{size:`small`,class:`ml-2 rounded-full`,value:String(E(Z).length)},null,8,[`value`])]),E(q)?(h(),S(C,{key:1,mode:`indeterminate`,class:`my-3 !h-[1px]`})):(h(),S(T,{key:2,class:`m-0 py-3`})),!E(q)&&!E(Z).length?(h(),N(`div`,xe,[D(`div`,Se,[w(j,{class:`w-12 h-12 mx-auto opacity-30`})]),D(`p`,Ce,F(i.$t(`views.plugins.no_plugins`)),1)])):E(q)?(h(),N(`div`,we,[(h(),N(p,null,g(6,e=>w(M,{key:e,class:`mb-2`,height:`132px`})),64))])):(h(),N(`div`,Te,[(h(!0),N(p,null,g(E(Z),e=>y((h(),S(m,{key:e.pluginName,plugin:e,"in-progress":Q(e.pluginName),onOpen:ke,onInstall:Oe},null,8,[`plugin`,`in-progress`])),[[P,{value:Q(e.pluginName)?i.$t(`components.plugin_search.in_progress`):void 0}]])),128))]))])}}}),[[`__scopeId`,`data-v-8faee7ef`]]);export{$ as t};
@@ -0,0 +1 @@
1
+ import{Mn as e}from"./api-ou2-S3Z9.js";import{An as t,Kn as n,Mn as r,Wn as i,fn as a,hr as o,in as s,mn as c,on as l,rn as u,sn as d,wn as f,yr as p}from"./vendor-AX0A8AMd.js";import{t as m}from"./alert-circle-We_nDFAy.js";import{t as h}from"./CuiConsole-BOyrbC0a.js";import{t as g}from"./usePluginUpdates-CQwLK3om.js";var _={class:`w-full h-full flex flex-col gap-3`},v={key:0,class:`flex items-start gap-3 px-4 py-3 rounded-xl bg-red-500/10 border border-red-500/30 shrink-0`},y={class:`text-sm text-red-400 break-all`},b={class:`w-full flex-1 min-h-0 relative`},x=c({__name:`PluginUpdateProgress`,props:{pluginName:{}},setup(c){let x=c,{mdBreakpoint:S}=e(),{runOf:C}=g(),w=i(`consoleRef`),T=0,E=u(()=>C(x.pluginName)),D=u(()=>({fontSize:S.value?12:14}));function O(){let e=E.value?.lines??[];for(;T<e.length;T++)w.value?.writeTerminal(e[T])}return n(()=>E.value?.lines.length,()=>O()),t(async()=>{await f(),O()}),(e,t)=>{let n=m,i=h;return r(),d(`div`,_,[o(E)?.status===`error`?(r(),d(`div`,v,[a(n,{class:`w-5 h-5 shrink-0 text-red-400 mt-0.5`}),s(`span`,y,p(o(E).error),1)])):l(``,!0),s(`div`,b,[a(i,{ref_key:`consoleRef`,ref:w,options:o(D),class:`bg-black !w-full`,"ignore-breakpoint":``},null,8,[`options`])])])}}});export{x as default};
@@ -0,0 +1 @@
1
+ import{B as e,Bt as t,F as n,G as r,K as i,Pt as a,Rt as ee,Wt as o,zr as s}from"./vendor-cameraui-OySaGjmo.js";import{$n as c,An as te,B as ne,Bn as l,I as u,In as d,Kn as f,L as re,Mn as p,R as m,Wn as ie,ct as ae,jn as oe,mn as se,rr as h,xn as g,xr as ce,z as le}from"./api-ou2-S3Z9.js";import{$t as _,En as v,In as ue,Kn as de,Kt as fe,Mn as y,Pn as pe,Wn as b,Xn as x,Yn as S,an as C,dn as me,fn as w,hr as T,in as E,jn as he,mn as D,nr as ge,on as O,pr as k,rn as A,rr as j,sn as M,sr as N,vr as _e,yr as P}from"./vendor-AX0A8AMd.js";import{p as ve}from"./vendor-core-BZ52eUwC.js";import{F as ye,P as be,S as xe,z as Se}from"./vendor-primevue-CvHDsVi_.js";import{t as Ce}from"./close-ChGy_BeH.js";import{t as we}from"./useUpdatesSocket-C6wTDGIg.js";import{a as Te,i as Ee,l as De,n as Oe,r as F,t as ke}from"./plugins-DXYT--j6.js";import{t as Ae}from"./CuiDataTable-BDyku8Vr.js";import{t as je}from"./search-Ck7b7yvI.js";import{t as I}from"./PluginSearch-Tmg5vCQF.js";import{t as Me}from"./usePluginUpdates-CQwLK3om.js";import{t as Ne}from"./config-BIxANITl.js";import{t as Pe}from"./back-filled-MAIFvJqE.js";import{t as Fe}from"./plus-Ct9djYce.js";import{t as Ie}from"./settings-Bw6giVLH.js";import{a as Le,i as Re,n as ze,o as Be,r as Ve,s as He,t as Ue}from"./CuiPluginCard-C-1ZhHi8.js";var We={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function Ge(e,t){return y(),M(`svg`,We,[...t[0]||=[E(`path`,{fill:`currentColor`,d:`M12 16a2 2 0 0 1 2 2a2 2 0 0 1-2 2a2 2 0 0 1-2-2a2 2 0 0 1 2-2m0-6a2 2 0 0 1 2 2a2 2 0 0 1-2 2a2 2 0 0 1-2-2a2 2 0 0 1 2-2m0-6a2 2 0 0 1 2 2a2 2 0 0 1-2 2a2 2 0 0 1-2-2a2 2 0 0 1 2-2`},null,-1)]])}var Ke=j({name:`mdi-dots-vertical`,render:Ge}),L={class:`flex items-center justify-end gap-1`},qe=D({__name:`CuiPluginTableActions`,props:{plugin:{}},setup(e){let{plugin:t}=k(e),{pluginUpdate:n,queued:r,updating:i,isLoading:s,items:te,openDialog:ne,handleInlineUpdate:l}=ze(t),u=b(`menuRef`);return(e,t)=>{let d=a,f=ee,re=h,p=Ke,m=o;return y(),M(`div`,L,[T(n)?.updateAvailable||T(i)?x((y(),C(f,{key:0,text:``,rounded:``,class:`cui-icon-md`,onClick:T(l)},{icon:S(()=>[T(i)?(y(),C(d,{key:0,class:`w-4! h-4! m-0`,"stroke-width":`6`})):(y(),C(T(c),{key:1,width:`100%`,height:`100%`}))]),_:1},8,[`onClick`])),[[m,{value:T(i)?e.$t(T(r)?`components.plugin_card.update_queued`:`components.plugin_card.update_running`):e.$t(`components.plugin_card.update_now`,{version:T(n)?.latestVersion})},void 0,{top:!0}]]):O(``,!0),x((y(),C(f,{severity:`secondary`,text:``,rounded:``,class:`cui-icon-md`,onClick:t[0]||=e=>T(ne)(`console`)},{icon:S(()=>[w(re,{width:`100%`,height:`100%`})]),_:1})),[[m,{value:e.$t(`components.form.tooltip.console`)},void 0,{top:!0}]]),w(f,{severity:`secondary`,text:``,rounded:``,class:`cui-icon-md`,disabled:T(s),onClick:T(u)?.toggleMenu},{icon:S(()=>[w(p,{width:`100%`,height:`100%`})]),_:1},8,[`disabled`,`onClick`]),w(se,{ref_key:`menuRef`,ref:u,items:T(te),popover:{pt:{content:{class:`p-0! rounded-xl! overflow-hidden!`}}}},null,8,[`items`])])}}}),Je=D({__name:`CuiPluginStatusBadge`,props:{pluginName:{}},setup(e){let n=Ve(e.pluginName);return v(()=>{n.connect()}),(e,r)=>{let i=t,a=o;return x((y(),C(i,{style:_e({background:T(n).statusColor.value})},null,8,[`style`])),[[a,{value:e.$t(`components.plugin_card.status_${T(n).status.value}`)},void 0,{top:!0}]])}}}),R={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function Ye(e,t){return y(),M(`svg`,R,[...t[0]||=[E(`path`,{fill:`none`,stroke:`currentColor`,"stroke-width":`2`,d:`M4 9h16M9 4v16m-4 0h14a1 1 0 0 0 1-1V5a1 1 0 0 0-1-1H5a1 1 0 0 0-1 1v14a1 1 0 0 0 1 1Z`},null,-1)]])}var Xe=j({name:`mingcute-table-2-line`,render:Ye}),Ze={class:`flex flex-col`},Qe={key:0,class:`page-title`},$e={class:`flex gap-2 mb-4`},et={key:1,class:`flex flex-1 min-h-0 flex-col items-center justify-center w-full gap-4`},tt={class:`text-muted text-sm`},nt={class:`flex items-center justify-center`},rt={class:`flex items-center gap-3 min-w-0`},it={class:`font-bold text-color text-sm truncate`},at={class:`text-xs text-muted truncate`},ot={class:`flex flex-col`},st={class:`text-sm`},ct={key:0,class:`text-xs text-green-500`},z=D({__name:`Plugins`,setup(t){let a=new ke,h=new Ne,v=ae(),D=ce(),{t:k}=s(),{smBreakpoint:j}=p(),{width:ze,height:Ve}=d(),{startUpdate:We}=Me(),Ge=we(),Ke=l(),{uiSettings:L}=ve(Ke),{data:R,isBusy:Ye}=a.getPluginsQuery({page:1,pageSize:-1}),{data:z}=h.getConfigQuery(!0),{mutateAsync:lt}=h.patchConfigQuery(),ut=b(`menuRef`),B=N(``),V=N({}),H=N(!1),{selectionMode:U,selectedIds:W,selectedItems:G,allSelected:dt,bulkBusy:K,enterSelectionMode:ft,exitSelectionMode:q,toggleSelectAll:pt,toggleSelection:mt}=u(()=>X.value,e=>e.pluginName),J=A(()=>Ge.status.value?.runActive===!0),ht=A(()=>[{key:`betaVersions`,label:k(`views.plugins.beta_versions`),description:k(`views.plugins.beta_versions_hint`),toggle:!0,toggleState:z.value?.plugins?.betaVersions??!1,onClick:kt},{key:`allowBuildScripts`,label:k(`views.plugins.allow_build_scripts`),description:k(`views.plugins.allow_build_scripts_hint`),toggle:!0,toggleState:z.value?.plugins?.allowBuildScripts??!1,onClick:Ot}]),gt=A(()=>Ye.value&&!R.value),Y=A(()=>L.value.plugins.view),X=A(()=>{let e=R.value?.result??[],t=B.value.toLowerCase().trim();return t?e.filter(e=>e.pluginName.toLowerCase().includes(t)||e.displayName?.toLowerCase().includes(t)):e}),Z=A(()=>(R.value?.result??[]).filter(e=>V.value[e.pluginName]?.updateAvailable)),_t=A(()=>G.value.filter(e=>V.value[e.pluginName]?.updateAvailable)),vt=A(()=>(j.value?1:Math.max(1,Math.floor(ze.value/450)))*Math.max(1,Math.ceil(Ve.value/(Be.HEIGHT+8))));function yt(){L.value.plugins.view=Y.value===`cards`?`table`:`cards`}async function bt(){let e=R.value?.result??[];await Promise.all(e.map(async e=>{V.value[e.pluginName]=await a.queryClient.fetchQuery({queryKey:[`plugins`,e.pluginName,`update`],queryFn:({signal:t})=>De({pluginName:e.pluginName,signal:t}),staleTime:6e4}).catch(()=>void 0)}))}async function Q(){await a.queryClient.refetchQueries({queryKey:[`pluginsList`]}),await a.queryClient.refetchQueries({queryKey:[`plugins`]}),await bt()}async function xt(e){let t=e.map(e=>({plugin:e,version:V.value[e.pluginName]?.latestVersion})).filter(e=>!!e.version);if(!t.length)return{done:0,failed:[]};let n=Ee({plugins:t.map(e=>({pluginname:e.plugin.pluginName,pluginversion:e.version}))}),r=[],i=0;return await Promise.all(t.map(async({plugin:e,version:t})=>{await We(e.pluginName,t,async()=>{let t=(await n).failed.find(t=>t.id===e.pluginName);if(t)throw Error(t.error)})?i++:r.push(e.displayName||e.pluginName)})),{done:i,failed:r}}async function St(){if(H.value)return;H.value=!0;let e=0,t=[];try{({done:e,failed:t}=await xt([...Z.value]))}finally{H.value=!1}await Q(),t.length&&D.add({severity:`error`,summary:k(`views.plugins.update_all_failed`,{count:t.length}),detail:t.join(`, `),life:8e3}),e&&D.add({severity:`success`,detail:k(`views.plugins.update_all_done`,{count:e}),life:5e3})}function $(e,t,n){t.length&&D.add({severity:`error`,summary:k(`views.plugins.bulk_failed`,{count:t.length}),detail:t.join(`, `),life:8e3}),e&&D.add({severity:`success`,detail:k(n,{count:e}),life:5e3})}function Ct(e,t){return e.filter(e=>t.some(t=>t.id===e.pluginName)).map(e=>e.displayName||e.pluginName)}async function wt(){K.value=!0;let e=0,t=[];try{({done:e,failed:t}=await xt([..._t.value]))}finally{K.value=!1}await Q(),q(),$(e,t,`views.plugins.update_all_done`)}async function Tt(){let e=[...G.value];K.value=!0;try{let t=await F({pluginNames:e.map(e=>e.pluginName)});await Q(),q(),$(t.succeeded.length,Ct(e,t.failed),`views.plugins.enable_selected_done`)}catch(e){D.add({severity:`error`,detail:e?.response?.data?.message??e?.message??String(e),life:5e3})}finally{K.value=!1}}async function Et(){let e=[...G.value];K.value=!0;try{let t=await Oe({pluginNames:e.map(e=>e.pluginName)});await Q(),q(),$(t.succeeded.length,Ct(e,t.failed),`views.plugins.disable_selected_done`)}catch(e){D.add({severity:`error`,detail:e?.response?.data?.message??e?.message??String(e),life:5e3})}finally{K.value=!1}}function Dt(){let e=[...G.value];v.openTextDialog({data:{title:k(`components.dialog.title.confirm`),contentText:k(`views.plugins.uninstall_selected_confirm`,{count:e.length}),confirmText:k(`components.form.button.uninstall`),confirmButtonProps:{severity:`danger`}},onConfirm:async()=>{K.value=!0;try{let t=await Te({pluginNames:e.map(e=>e.pluginName)});await Q(),q(),$(t.succeeded.length,Ct(e,t.failed),`views.plugins.uninstall_selected_done`)}catch(e){D.add({severity:`error`,detail:e?.response?.data?.message??e?.message??String(e),life:5e3})}finally{K.value=!1}}})}async function Ot(){let e=z.value;if(!e||typeof e==`string`)return;let t={...e,plugins:{...e.plugins,allowBuildScripts:!e.plugins?.allowBuildScripts}};await lt({configData:JSON.stringify(t)})}async function kt(){let e=z.value;if(!e||typeof e==`string`)return;let t={...e,plugins:{...e.plugins,betaVersions:!e.plugins?.betaVersions}};await lt({configData:JSON.stringify(t)})}function At(){v.openComponentDialog(I,{data:{title:k(`components.dialog.title.search_plugin`),contentProps:{},hideConfirmButton:!0,fullscreen:!0}})}de(()=>R.value?.result,e=>{e?.length&&bt()},{immediate:!0});let jt=a.queryClient.getQueryCache().subscribe(e=>{let[t,n,r]=e.query.queryKey;if(t!==`plugins`||r!==`update`||typeof n!=`string`)return;let i=e.query.state.data;i&&(V.value[n]=i)});return he(jt),(t,a)=>{let s=Se,l=Pe,u=ee,d=ne,p=je,ae=be,h=n,ce=ye,v=Ie,de=se,b=i,he=ie,D=e,A=xe,N=Je,ve=He,we=ue(`RouterLink`),Te=qe,Ee=Ae,De=r,Oe=Ue,F=te,ke=oe,I=o;return y(),M(`div`,Ze,[T(j)?O(``,!0):(y(),M(`h1`,Qe,P(t.$t(`views.${String(t.$route.name).toLowerCase()}.title`)),1)),T(J)?(y(),C(s,{key:1,severity:`warn`,class:`mb-4`,closable:!1},{default:S(()=>[me(P(T(k)(`views.plugins.updates_run_active`)),1)]),_:1})):O(``,!0),w(d,{position:`left`},{default:S(()=>[w(u,{severity:`secondary`,text:``,class:`cui-button p-2 text-color non-draggable-region`,onClick:a[0]||=e=>t.$router.push(`/menu`)},{icon:S(()=>[w(l,{class:`w-6 h-6`})]),_:1})]),_:1}),E(`div`,$e,[w(ce,{class:`flex-1`},{default:S(()=>[w(ae,null,{default:S(()=>[w(p,{class:`w-4 h-4`})]),_:1}),w(h,{modelValue:T(B),"onUpdate:modelValue":a[1]||=e=>ge(B)?B.value=e:null,placeholder:T(k)(`views.plugins.search`),class:`w-full`},null,8,[`modelValue`,`placeholder`])]),_:1}),(`hasPermission`in t?t.hasPermission:T(g))(void 0,`admin`)?(y(),M(_,{key:0},[x((y(),C(u,{severity:`secondary`,outlined:``,class:`cui-button shrink-0`,onClick:a[2]||=e=>T(ut)?.toggleMenu(e)},{icon:S(()=>[w(v,{class:`w-4.5 h-4.5`})]),_:1})),[[I,{value:T(k)(`views.plugins.settings`)},void 0,{left:!0}]]),T(Z).length?x((y(),C(u,{key:0,class:`cui-button shrink-0 whitespace-nowrap`,loading:T(H),disabled:T(J),label:T(j)?String(T(Z).length):T(k)(`views.plugins.update_all`,{count:T(Z).length}),onClick:St},{icon:S(()=>[w(T(c),{class:`w-4.5 h-4.5`})]),_:1},8,[`loading`,`disabled`,`label`])),[[I,{value:T(k)(`views.plugins.update_all_hint`)},void 0,{left:!0}]]):O(``,!0),w(de,{ref_key:`menuRef`,ref:ut,items:T(ht),"auto-hide":!1,popover:{pt:{root:{class:`w-[22rem]`},content:{class:`p-0! rounded-xl! overflow-hidden!`}}}},null,8,[`items`])],64)):O(``,!0)]),w(fe,{name:`fade-2`,mode:`out-in`},{default:S(()=>[T(gt)?(y(),M(`div`,{key:`loading`,class:`grid w-full gap-2`,style:_e({gridTemplateColumns:`repeat(auto-fill, minmax(${T(j)?`100%`:`450px`}, 1fr))`})},[(y(!0),M(_,null,pe(T(vt),e=>(y(),C(b,{key:e,height:`${T(Be).HEIGHT}px`,class:`cui-card`},null,8,[`height`]))),128))],4)):!T(X).length||!(`hasPermission`in t?t.hasPermission:T(g))(void 0,`admin`)?(y(),M(`div`,et,[w(he,{class:`w-12 h-12 text-muted`}),E(`span`,tt,P(t.$t(`views.plugins.no_plugins`)),1)])):T(Y)===`table`?(y(),C(De,{key:`table`,class:`cui-card h-auto! self-start`},{content:S(()=>[w(Ee,{value:T(X),paginator:``,"striped-rows":``,class:`w-full`},{default:S(()=>[T(U)?(y(),C(A,{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:S(({data:e})=>[w(D,{"model-value":T(W).has(e.pluginName),binary:``,size:`small`,"onUpdate:modelValue":t=>T(mt)(e.pluginName)},null,8,[`model-value`,`onUpdate:modelValue`])]),_:1})):O(``,!0),w(A,{header:``,"header-class":`p-2 pl-4 w-5 max-w-5`,class:`p-2 pl-4 w-5 max-w-5`},{body:S(({data:e})=>[E(`div`,nt,[w(N,{"plugin-name":e.pluginName},null,8,[`plugin-name`])])]),_:1}),w(A,{field:`displayName`,header:T(k)(`views.plugins.plugin`),"header-class":`p-2 min-w-48`,class:`p-2 min-w-48`},{body:S(({data:e})=>[w(we,{to:`/plugins/${e.pluginName}`,class:`flex flex-col min-w-0`},{default:S(()=>[E(`div`,rt,[E(`span`,it,P(e.displayName||e.pluginName),1),T(V)[e.pluginName]?.updateAvailable?x((y(),C(ve,{key:0,class:`text-green-500 shrink-0`},null,512)),[[I,{value:t.$t(`components.form.tooltip.update_available`)}]]):O(``,!0)]),E(`span`,at,P(e.pluginName),1)]),_:2},1032,[`to`])]),_:1},8,[`header`]),w(A,{field:`installedVersion`,header:T(k)(`views.plugins.version`),"header-class":`p-2`,class:`p-2`},{body:S(({data:e})=>[E(`div`,ot,[E(`span`,st,`v`+P(e.installedVersion||e.latestVersion),1),T(V)[e.pluginName]?.updateAvailable?(y(),M(`span`,ct,`v`+P(T(V)[e.pluginName]?.latestVersion),1)):O(``,!0)])]),_:1},8,[`header`]),w(A,{"header-class":`p-2 w-32`,class:`p-2 w-32`},{body:S(({data:e})=>[w(Te,{plugin:e},null,8,[`plugin`])]),_:1})]),_:1},8,[`value`])]),_:1})):(y(),M(`div`,{key:`content`,class:`grid w-full gap-2`,style:_e({gridTemplateColumns:`repeat(auto-fill, minmax(${T(j)?`100%`:`450px`}, 1fr))`})},[(y(!0),M(_,null,pe(T(X),e=>(y(),C(Oe,{key:e.pluginName,plugin:e,"selection-mode":T(U),selected:T(W).has(e.pluginName),onSelect:t=>T(mt)(e.pluginName)},null,8,[`plugin`,`selection-mode`,`selected`,`onSelect`]))),128))],4))]),_:1}),(`hasPermission`in t?t.hasPermission:T(g))(void 0,`admin`)?(y(),C(ke,{key:2,"force-visible":T(U)},{default:S(()=>[T(U)?(y(),M(_,{key:1},[w(F,{grouped:``,"tooltip-props":{value:t.$t(`components.form.tooltip.cancel_selection`)},"button-props":{severity:`secondary`},icon:T(Ce),"icon-props":{width:`100%`,height:`100%`},onClick:T(q)},null,8,[`tooltip-props`,`icon`,`onClick`]),w(F,{grouped:``,"tooltip-props":{value:T(dt)?t.$t(`components.form.tooltip.deselect_all`):t.$t(`components.form.tooltip.select_all`)},"button-props":{severity:T(dt)?`primary`:`secondary`},icon:T(le),"icon-props":{width:`100%`,height:`100%`},onClick:T(pt)},null,8,[`tooltip-props`,`button-props`,`icon`,`onClick`]),w(F,{grouped:``,"tooltip-props":{value:T(k)(`views.plugins.update_selected`)},"button-props":{severity:`secondary`,disabled:!T(_t).length||T(K)||T(J)},icon:T(c),"icon-props":{width:`100%`,height:`100%`},onClick:wt},null,8,[`tooltip-props`,`button-props`,`icon`]),w(F,{grouped:``,"tooltip-props":{value:T(k)(`views.plugins.enable_selected`)},"button-props":{severity:`secondary`,disabled:!T(W).size||T(K)||T(J)},icon:T(Re),"icon-props":{width:`100%`,height:`100%`},onClick:Tt},null,8,[`tooltip-props`,`button-props`,`icon`]),w(F,{grouped:``,"tooltip-props":{value:T(k)(`views.plugins.disable_selected`)},"button-props":{severity:`secondary`,disabled:!T(W).size||T(K)||T(J)},icon:T(Le),"icon-props":{width:`100%`,height:`100%`},onClick:Et},null,8,[`tooltip-props`,`button-props`,`icon`]),w(F,{grouped:``,"tooltip-props":{value:T(k)(`views.plugins.uninstall_selected`)},"button-props":{severity:`danger`,disabled:!T(W).size||T(K)||T(J)},icon:T(m),"icon-props":{width:`100%`,height:`100%`},onClick:Dt},null,8,[`tooltip-props`,`button-props`,`icon`])],64)):(y(),M(_,{key:0},[T(X).length?(y(),C(F,{key:0,grouped:``,"tooltip-props":{value:T(k)(`views.plugins.select`)},"button-props":{severity:`secondary`},icon:T(re),"icon-props":{width:`100%`,height:`100%`},onClick:T(ft)},null,8,[`tooltip-props`,`icon`,`onClick`])):O(``,!0),w(F,{grouped:``,"tooltip-props":{value:T(Y)===`cards`?T(k)(`views.plugins.view_table`):T(k)(`views.plugins.view_cards`)},"button-props":{severity:`secondary`},icon:T(Y)===`cards`?T(Xe):T(f),"icon-props":{width:`100%`,height:`100%`},onClick:yt},null,8,[`tooltip-props`,`icon`]),w(F,{grouped:``,"tooltip-props":{value:t.$t(`views.plugins.search_plugins`)},"button-props":{class:`text-white`},icon:T(Fe),"icon-props":{width:`30px`,height:`30px`},onClick:At},null,8,[`tooltip-props`,`icon`])],64))]),_:1},8,[`force-visible`])):O(``,!0)])}}});export{z as default};
@@ -0,0 +1 @@
1
+ import{A as e,B as t,D as n,Dt as r,F as i,Lr as a,N as o,Ni as s,O as c,Oi as l,Or as u,Pt as d,Qr as f,Rt as p,S as m,Sr as h,Wt as g,_,a as v,k as y,ki as b,qr as x,s as S,w as ee,xr as C,zr as te}from"./vendor-cameraui-OySaGjmo.js";import{An as w,B as T,Dn as ne,En as re,G as ie,Gn as E,H as D,I as ae,It as oe,L as se,Mn as ce,Nn as le,R as ue,U as O,V as de,ct as fe,g as pe,it as me,jn as he,kn as ge,mn as _e,rt as ve,tn as ye,vn as be,vr as k,xn as xe,xr as Se,z as Ce}from"./api-ou2-S3Z9.js";import{$t as A,An as we,Kn as j,Mn as M,Nn as Te,Pn as N,Rn as P,Wn as Ee,Xn as De,Yn as F,an as I,ar as Oe,dn as ke,fn as L,gr as Ae,hr as R,in as z,mn as B,nr as V,on as H,qn as je,rn as U,rr as W,sn as G,sr as K,tn as Me,ur as Ne,vr as Pe,yn as Fe,yr as q}from"./vendor-AX0A8AMd.js";import{a as J,d as Ie,i as Le,j as Y,l as Re,z as ze}from"./vendor-primevue-CvHDsVi_.js";import{t as Be}from"./close-ChGy_BeH.js";import{a as Ve,n as He,r as Ue}from"./eventLabels-BsPoPWS9.js";import{t as We}from"./ring-resize-DsW_XYdA.js";import{i as Ge,n as Ke,r as qe,t as Je}from"./ungrouped-Pn6rAXZt.js";import{t as Ye}from"./utils-gctUU5q_.js";import{t as Xe}from"./settings-Bw6giVLH.js";import{n as Ze,t as Qe}from"./round-alt-arrow-left-bold-2FHg8vBl.js";var X={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function $e(e,t){return M(),G(`svg`,X,[...t[0]||=[z(`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 et=W({name:`mage-filter-fill`,render:$e}),tt={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function nt(e,t){return M(),G(`svg`,tt,[...t[0]||=[z(`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 rt=W({name:`mage-filter`,render:nt}),Z={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function it(e,t){return M(),G(`svg`,Z,[...t[0]||=[z(`path`,{fill:`currentColor`,d:`M6 12.45V9.64c1.47.83 3.61 1.36 6 1.36s4.53-.53 6-1.36v2.39c.17-.03.33-.03.5-.03c.5 0 1 .07 1.5.18V7c0-2.21-3.58-4-8-4S4 4.79 4 7v10c0 2.21 3.59 4 8 4h.5c-.26-.63-.41-1.3-.47-2H12c-3.87 0-6-1.5-6-2v-2.23c1.61.78 3.72 1.23 6 1.23h.5c.35-.82.84-1.54 1.45-2.14c-.63.09-1.28.14-1.95.14c-2.42 0-4.7-.6-6-1.55M12 5c3.87 0 6 1.5 6 2s-2.13 2-6 2s-6-1.5-6-2s2.13-2 6-2m6 13.5l1.77-1.77A2.5 2.5 0 1 0 20 20h1.71A3.99 3.99 0 0 1 18 22.5c-2.21 0-4-1.79-4-4s1.79-4 4-4c1.11 0 2.11.45 2.83 1.17L22 14.5v4z`},null,-1)]])}var at=W({name:`mdi-database-refresh-outline`,render:it}),ot={class:`flex flex-col gap-4`},st={class:`text-sm text-pretty`},ct={key:0,class:`flex flex-col gap-2`},lt={key:0,class:`flex justify-between text-sm text-muted`},ut={key:0},dt=B({__name:`ClipReindex`,setup(e,{expose:t}){let n=Fe(`dialogRefProps`),{t:r}=te(),{status:i,isBusy:a,checking:o,refresh:s,start:c,cancel:l}=S(),u=K(!1),d=K(!1),f=K(0),p=U(()=>i.value?.running===!0),m=U(()=>{if(d.value){if(!i.value?.total)return r(`views.recordings.reindex.up_to_date`);let{done:e,total:t,skipped:n}=i.value;return n?r(`views.recordings.reindex.result_failed`,{done:e,total:t,skipped:n}):r(`views.recordings.reindex.result`,{done:e,total:t})}return o.value?r(`views.recordings.reindex.checking`):p.value?r(`views.recordings.reindex.running_intro`):r(`views.recordings.reindex.intro`)}),h=U(()=>{if(d.value)return f.value;let e=i.value?.total??0;return e<=0?0:Math.min(100,Math.round(((i.value?.done??0)+(i.value?.skipped??0))/e*100))});async function g(){return p.value?l():(u.value=!0,c()),null}return j(p,(e,t)=>{!t||e||!u.value||(d.value=!0,f.value=i.value?.total?100:0,i.value?.total||requestAnimationFrame(()=>f.value=100))}),je(()=>{n.hideConfirmButton&&(n.hideConfirmButton.value=d.value),n.confirmText&&(n.confirmText.value=p.value?r(`views.recordings.reindex.stop`):r(`views.recordings.reindex.start`)),n.confirmButtonProps&&(n.confirmButtonProps.value=p.value?{severity:`danger`}:{}),n.disabled&&(n.disabled.value=a.value)}),we(()=>{i.value?.running&&(u.value=!0),s().then(()=>{i.value?.running&&(u.value=!0)})}),t({onConfirm:g}),(e,t)=>{let n=Ie;return M(),G(`div`,ot,[z(`span`,st,q(R(m)),1),R(u)||R(p)?(M(),G(`div`,ct,[L(n,{mode:R(o)?`indeterminate`:`determinate`,value:R(h),"show-value":!1,class:`h-2`},null,8,[`mode`,`value`]),R(p)&&!R(o)?(M(),G(`div`,lt,[z(`span`,null,q(e.$t(`views.recordings.reindex.progress`,{done:R(i)?.done??0,total:R(i)?.total??0})),1),R(i)?.skipped?(M(),G(`span`,ut,q(e.$t(`views.recordings.reindex.skipped`,{count:R(i).skipped})),1)):H(``,!0)])):H(``,!0)])):H(``,!0)])}}}),ft={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function pt(e,t){return M(),G(`svg`,ft,[...t[0]||=[z(`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 mt=W({name:`mdi-file-video-outline`,render:pt}),ht={class:`flex flex-col gap-6`},gt={class:`flex flex-col field-gap`},_t={class:`cui-label`},Q={class:`flex flex-col field-gap`},vt={class:`cui-label`},$={class:`grid grid-cols-1 xs:grid-cols-2 gap-3`},yt={class:`flex flex-col gap-1`},bt={class:`text-xs text-muted`},xt={class:`flex flex-col gap-1`},St={class:`text-xs text-muted`},Ct={class:`grid grid-cols-1 xs:grid-cols-2 gap-x-6 gap-y-4`},wt={class:`flex flex-col field-gap`},Tt={class:`cui-label`},Et={class:`flex flex-col field-gap`},Dt={class:`cui-label`},Ot={class:`flex flex-col field-gap`},kt={class:`flex items-center gap-3`},At={class:`cui-label !mb-0`},jt={key:0,class:`ml-auto flex items-center gap-2.5 text-sm tabular-nums`},Mt={class:`font-semibold`},Nt={class:`font-semibold`},Pt={class:`border border-color rounded-xl card-background overflow-hidden`},Ft={class:`flex flex-col gap-3 max-h-[240px] overflow-y-auto p-2.5`},It={key:0,class:`flex items-center justify-center gap-2 text-muted text-sm py-6`},Lt={key:1,class:`text-center text-muted text-sm py-6`},Rt={class:`text-xs text-muted px-0.5`},zt={class:`font-mono text-xs truncate flex-1`},Bt={class:`text-xs text-muted tabular-nums shrink-0`},Vt={class:`font-mono text-xs text-muted tabular-nums shrink-0 min-w-[58px] text-right`},Ht=30,Ut=B({__name:`ExportRecordings`,props:{cameras:{},preselect:{}},setup(t,{expose:n}){let i=t,{t:a}=te(),c=Se(),l=Fe(`dialogRefProps`),{plugin:u}=r(`@camera.ui/camera-ui-nvr`),f=K([]),p=K(!1),m=K(i.preselect?.length?[...i.preselect]:[]),h=K(`best`),g=K(0),_=K(new Date(new Date().setHours(0,0,0,0))),v=K(new Date),y=U(()=>[{label:a(`views.recordings.export.quality_best`),value:`best`},{label:a(`views.recordings.export.quality_smallest`),value:`smallest`}]),b=U(()=>[0,1,2,5,10,30,60,120,180,240,300].map(e=>({label:e===0?a(`views.recordings.export.timelapse_off`):e<60?`${e} s`:`${e/60} min`,value:e}))),x=U(()=>g.value>0),S=U(()=>x.value?`~`:``),ee=U(()=>new Map(i.cameras.map(e=>[e.id,e.name]))),C=U(()=>_.value instanceof Date&&v.value instanceof Date&&_.value<v.value),w=U(()=>{if(!C.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:ae(i),startUs:o*1e3,endUs:s*1e3}),r.setDate(r.getDate()+1)}return e}),T=U(()=>f.value.map(e=>{let t=ee.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,o=r.getHours()===0&&r.getMinutes()===0?`24:00`:oe(r);return{cameraId:e.cameraId,cameraName:t,name:`${se(t)}_${e.day}${x.value?`_timelapse`:``}.mp4`,span:i?a(`views.recordings.export.whole_day`):`${oe(n)}–${o}`,bytes:x.value?e.bytes/Ht:e.bytes}})),re=U(()=>{let e=new Map;for(let t of T.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()]}),ie=U(()=>T.value.reduce((e,t)=>e+t.bytes,0)),E=U(()=>m.value.length===0?a(`views.recordings.export.no_cameras`):C.value?a(`views.recordings.export.no_footage`):a(`views.recordings.export.no_range`));function D(e){return String(e).padStart(2,`0`)}function ae(e){return`${e.getFullYear()}-${D(e.getMonth()+1)}-${D(e.getDate())}`}function oe(e){return`${D(e.getHours())}:${D(e.getMinutes())}`}function se(e){return e.replace(/[^a-zA-Z0-9-_]/g,`_`)}function ce(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 le(){let e=u.value;if(!e?.nvrExportEstimate||m.value.length===0||w.value.length===0){f.value=[],p.value=!1;return}p.value=!0;try{let t=await e.nvrExportEstimate({cameras:m.value,slices:w.value,quality:h.value});f.value=t.files??[]}catch{f.value=[]}finally{p.value=!1}}async function ue(){if(!C.value||m.value.length===0||w.value.length===0)return null;let e=u.value;if(!e?.nvrExportBatch)return c.add({severity:`error`,detail:a(`views.recordings.export.plugin_missing`),life:3e3}),null;let t=await e.nvrExportBatch({cameras:m.value,slices:w.value,quality:h.value,timelapseIntervalSec:x.value?g.value:0});await ne({url:t.url,filename:t.filename})}return s([m,w,h],le,{debounce:350,immediate:!0,deep:!0}),je(()=>{l.disabled&&(l.disabled.value=!C.value||m.value.length===0||!p.value&&T.value.length===0)}),n({onConfirm:ue}),(n,r)=>{let i=Re,a=o,s=ze,c=e,l=Y,u=J,f=d,x=mt;return M(),G(`div`,ht,[z(`div`,gt,[z(`label`,_t,q(n.$t(`views.recordings.export.cameras`)),1),L(i,{modelValue:R(m),"onUpdate:modelValue":r[0]||=e=>V(m)?m.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`])]),z(`div`,Q,[z(`label`,vt,q(n.$t(`views.recordings.export.range`)),1),z(`div`,$,[z(`div`,yt,[z(`span`,bt,q(n.$t(`views.recordings.export.from`)),1),L(a,{modelValue:R(_),"onUpdate:modelValue":r[1]||=e=>V(_)?_.value=e:null,"show-time":``,"hour-format":`24`,fluid:``,"max-date":R(v)},null,8,[`modelValue`,`max-date`])]),z(`div`,xt,[z(`span`,St,q(n.$t(`views.recordings.export.to`)),1),L(a,{modelValue:R(v),"onUpdate:modelValue":r[2]||=e=>V(v)?v.value=e:null,"show-time":``,"hour-format":`24`,fluid:``,"min-date":R(_)},null,8,[`modelValue`,`min-date`])])]),R(C)?(M(),I(s,{key:1,severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:F(()=>[ke(q(n.$t(`views.recordings.export.range_hint`)),1)]),_:1})):(M(),I(s,{key:0,severity:`error`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:F(()=>[ke(q(n.$t(`views.recordings.export.invalid_range`)),1)]),_:1}))]),z(`div`,Ct,[z(`div`,wt,[z(`label`,Tt,q(n.$t(`views.recordings.export.quality`)),1),L(c,{modelValue:R(h),"onUpdate:modelValue":r[3]||=e=>V(h)?h.value=e:null,options:R(y),"option-label":`label`,"option-value":`value`,"allow-empty":!1,pt:{root:{class:`flex w-full`},pcToggleButton:{root:{class:`flex-1`}}}},null,8,[`modelValue`,`options`])]),z(`div`,Et,[z(`label`,Dt,q(n.$t(`views.recordings.export.timelapse`)),1),L(l,{modelValue:R(g),"onUpdate:modelValue":r[4]||=e=>V(g)?g.value=e:null,options:R(b),"option-label":`label`,"option-value":`value`,class:`w-full`},null,8,[`modelValue`,`options`])])]),z(`div`,Ot,[z(`div`,kt,[z(`label`,At,q(n.$t(`views.recordings.export.result`)),1),R(T).length?(M(),G(`div`,jt,[z(`span`,Mt,q(R(T).length)+` `+q(R(T).length===1?n.$t(`views.recordings.export.file`):n.$t(`views.recordings.export.files`)),1),r[5]||=z(`span`,{class:`text-muted`},`·`,-1),z(`span`,Nt,q(R(S))+q(ce(R(ie))),1),L(u,{value:R(T).length===1?`MP4`:`ZIP`,severity:`info`},null,8,[`value`])])):H(``,!0)]),z(`div`,Pt,[z(`div`,Ft,[R(p)&&!R(T).length?(M(),G(`div`,It,[L(f,{style:{width:`1rem`,height:`1rem`},"stroke-width":`4`,class:`m-0`}),z(`span`,null,q(n.$t(`views.recordings.export.estimating`)),1)])):R(T).length?(M(!0),G(A,{key:2},N(R(re),e=>(M(),G(`div`,{key:e.cameraId,class:`flex flex-col gap-1`},[z(`span`,Rt,q(e.cameraName)+` · `+q(e.files.length)+` · `+q(R(S))+q(ce(e.bytes)),1),(M(!0),G(A,null,N(e.files,e=>(M(),G(`div`,{key:e.name,class:`flex items-center gap-3 card-inner-background border border-color rounded-lg px-3 py-2`},[L(x,{class:`w-4 h-4 text-muted shrink-0`}),z(`span`,zt,q(e.name),1),z(`span`,Bt,q(e.span),1),z(`span`,Vt,q(R(S))+q(ce(e.bytes)),1)]))),128))]))),128)):(M(),G(`div`,Lt,q(R(E)),1))])])])])}}}),Wt={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function Gt(e,t){return M(),G(`svg`,Wt,[...t[0]||=[z(`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:Gt}),qt={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function Jt(e,t){return M(),G(`svg`,qt,[...t[0]||=[z(`path`,{fill:`none`,stroke:`currentColor`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`2`,d:`m6 15l6-6l6 6`},null,-1)]])}var Yt=W({name:`tabler-chevron-up`,render:Jt}),Xt={class:`flex flex-col gap-2`},Zt={class:`sidebar-section-title`},Qt={key:0,class:`text-xs text-muted`},$t={class:`flex flex-col gap-2`},en={class:`sidebar-section-title`},tn={class:`p-input-icon-left w-full`},nn={class:`text-xs text-muted`},rn={class:`flex flex-col gap-2`},an={class:`sidebar-section-title flex items-center gap-1.5`},on={key:0,class:`inline-flex items-center gap-1 text-xs text-muted`},sn={key:1,class:`flex flex-col gap-1.5 mt-1`},cn={class:`text-xs text-muted`},ln={class:`flex items-center gap-3`},un={class:`text-xs font-mono w-8 text-right shrink-0`},dn={key:1,class:`flex flex-col gap-2`},fn={class:`sidebar-section-title`},pn={class:`flex flex-col gap-2`},mn={class:`sidebar-section-title`},hn={class:`flex flex-col gap-2`},gn={class:`sidebar-section-title`},_n={class:`relative rounded-md overflow-hidden`},vn={key:3,class:`sidebar-divider`},yn={key:4,class:`flex flex-col gap-2`},bn={class:`sidebar-section-title`},xn={class:`flex items-center gap-3`},Sn={class:`text-xs font-mono w-8 text-right shrink-0`},Cn={class:`flex flex-col gap-2`},wn={class:`sidebar-section-title`},Tn={class:`flex flex-wrap gap-1`},En={class:`flex flex-col gap-2`},Dn={key:0,class:`flex flex-col gap-2`},On={class:`flex items-center gap-2 cursor-pointer text-sm`},kn={key:0,class:`flex flex-col gap-2 ml-6`},An={class:`filter-logic-divider`},jn={class:`flex flex-col gap-2`},Mn={key:0,class:`flex flex-col gap-2`},Nn={class:`filter-logic-divider`},Pn={class:`flex flex-col gap-2`},Fn={key:0,class:`flex flex-col gap-2`},In={class:`flex items-center gap-2 cursor-pointer text-sm`},Ln=288,Rn=ge(B({__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(n,{expose:r,emit:o}){let s=new Set([`motion`,`audio`]),c=n,l=o,{t:d}=te(),{xlBreakpoint:f}=ce(),{topbarOffset:g,bottombarHeight:_}=le(),{icons:v,generic:S}=ie(),ee=v,w=Yt,T=Kt,ne=Ee(`sidebarRef`),E=K(c.filters.semanticQuery??``),D=Oe({eventTypes:!0,attributes:!0,sensorEvents:!0}),ae=U(()=>c.isOpen?Ln:0),oe=U(()=>{let e=[...new Set(c.cameras.map(e=>e.room).filter(e=>!!e))];return e.sort((e,t)=>e.localeCompare(t)),e.map(e=>({id:e,name:e===`Default`?d(`components.form.label.room_default`):e}))}),se=U(()=>{let e=c.filters.rooms;return(e.length>0?c.cameras.filter(t=>e.includes(t.room??``)):c.cameras).map(e=>({id:e.id,name:e.name}))}),ue=U(()=>{if(c.filters.cameraIds.length===1)return c.cameras.find(e=>e.id===c.filters.cameraIds[0])?.name}),O=U(()=>c.filters.contentKind===`episodes`),de=U(()=>[{label:d(`views.recordings.content_kind_all`),value:`all`},{label:d(`views.recordings.content_kind_events`),value:`events`},{label:d(`views.recordings.content_kind_episodes`),value:`episodes`}]),fe=U(()=>[{label:d(`views.recordings.filter_and`),value:`and`},{label:d(`views.recordings.filter_or`),value:`or`}]),pe=U(()=>[{label:d(`views.recordings.time_1h`),value:`1h`},{label:d(`views.recordings.time_1d`),value:`1d`},{label:d(`views.recordings.time_1w`),value:`1w`},{label:d(`views.recordings.time_1m`),value:`1m`}]),me=U(()=>h.filter(e=>!s.has(e)).map(e=>({label:d(`views.recordings.type_${e}`),value:e,icon:v[e]??S}))),he=U(()=>({label:d(`views.recordings.type_other`),value:m,icon:v.other??S})),ge=U(()=>a.map(e=>({label:d(Ve(e)),value:e,icon:ee[e]??S}))),_e=U(()=>u.map(e=>({label:d(Ue(e)),value:e,icon:v[e]??S}))),ve=U(()=>C.map(e=>({label:d(He(e)),value:e,icon:v[e]??S})));function k(e,t){l(`update:filters`,{...c.filters,[e]:t})}let xe=b(e=>{k(`search`,e)},300);function Se(e){let t=new Set(c.cameras.filter(t=>e.length===0||e.includes(t.room??``)).map(e=>e.id));l(`update:filters`,{...c.filters,rooms:e,cameraIds:c.filters.cameraIds.filter(e=>t.has(e))})}function Ce(){let e=E.value.trim();k(`semanticQuery`,e),l(`semantic-search`,e)}function we(e){let t=[...c.filters.eventTypes],n=t.indexOf(e);n>=0?t.splice(n,1):t.push(e),k(`eventTypes`,t)}function Te(e){let t=[...c.filters.audioLabels],n=t.indexOf(e);n>=0?t.splice(n,1):t.push(e),k(`audioLabels`,t)}function De(e){let t=[...c.filters.sensorEvents],n=t.indexOf(e);n>=0?t.splice(n,1):t.push(e),k(`sensorEvents`,t)}function F(e){let t=[...c.filters.hasAttributes],n=t.indexOf(e);n>=0?t.splice(n,1):t.push(e),k(`hasAttributes`,t)}function Ae(e){D[e]=!D[e]}return j(E,e=>{!e?.trim()&&c.filters.semanticQuery&&k(`semanticQuery`,``)}),x(ne,e=>{let t=e.target;t.closest(`#recordings-sidebar-toggle`)||t.closest(`[data-pc-section="overlay"], [data-pc-section="panel"], .p-connected-overlay`)||c.isOpen&&(c.isOverlay||!f.value)&&l(`close`)}),r({sidebarWidth:ae}),(r,a)=>{let o=e,s=i,c=be,l=Le,u=p,d=y,f=Re,m=re,h=ye,v=t;return M(),G(`nav`,{ref_key:`sidebarRef`,ref:ne,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:Pe({width:`${R(ae)}px`,borderRightWidth:n.isOpen?`1px`:`0px`,paddingBottom:`calc(env(safe-area-inset-top, 0px) + env(safe-area-inset-bottom, 0px) + ${R(_)}px + ${R(g)}px)`})},[z(`div`,{class:`flex flex-col gap-4 p-4`,style:Pe({width:`${Ln}px`})},[z(`div`,Xt,[z(`label`,Zt,q(r.$t(`views.recordings.content_kind`)),1),L(o,{"model-value":n.filters.contentKind,options:R(de),"option-label":`label`,"option-value":`value`,"allow-empty":!1,class:`content-kind-toggle`,"onUpdate:modelValue":a[0]||=e=>k(`contentKind`,e)},null,8,[`model-value`,`options`]),R(O)?(M(),G(`span`,Qt,q(r.$t(`views.recordings.content_kind_episodes_hint`)),1)):H(``,!0)]),a[23]||=z(`div`,{class:`sidebar-divider`},null,-1),R(O)?H(``,!0):(M(),G(A,{key:0},[z(`div`,$t,[z(`label`,en,q(r.$t(`views.recordings.search`)),1),z(`span`,tn,[L(s,{"model-value":n.filters.search,placeholder:r.$t(`views.recordings.search_placeholder`),class:`w-full text-sm`,"onUpdate:modelValue":a[1]||=e=>R(xe)(e)},null,8,[`model-value`,`placeholder`])]),z(`span`,nn,q(r.$t(`views.recordings.result_count`,{count:n.resultCount})),1)]),a[15]||=z(`div`,{class:`sidebar-divider`},null,-1),z(`div`,rn,[z(`label`,an,[L(c,{class:`w-3.5 h-3.5`}),ke(` `+q(r.$t(`views.recordings.semantic_search`)),1)]),L(l,{modelValue:R(E),"onUpdate:modelValue":a[2]||=e=>V(E)?E.value=e:null,placeholder:r.$t(`views.recordings.semantic_search_placeholder`),class:`w-full text-sm semantic-textarea`,rows:`3`,disabled:!n.semanticSearchAvailable},null,8,[`modelValue`,`placeholder`,`disabled`]),L(u,{label:r.$t(`views.recordings.semantic_search_button`),severity:`secondary`,outlined:``,size:`small`,class:`w-full text-xs`,loading:n.semanticSearchLoading,disabled:!n.semanticSearchAvailable||!R(E)?.trim(),onClick:Ce},null,8,[`label`,`loading`,`disabled`]),n.semanticCount==null?H(``,!0):(M(),G(`span`,on,[L(c,{class:`w-3 h-3`}),ke(` `+q(r.$t(`views.recordings.semantic_results`,{count:n.semanticCount})),1)])),n.filters.semanticQuery?(M(),G(`div`,sn,[z(`label`,cn,q(r.$t(`views.recordings.min_match_score`)),1),z(`div`,ln,[L(d,{"model-value":n.filters.minSemanticScore,min:0,max:1,step:.05,class:`flex-1`,"onUpdate:modelValue":a[3]||=e=>k(`minSemanticScore`,e)},null,8,[`model-value`]),z(`span`,un,q(Math.round(n.filters.minSemanticScore*100))+`%`,1)])])):H(``,!0)]),a[16]||=z(`div`,{class:`sidebar-divider`},null,-1)],64)),R(oe).length>1?(M(),G(`div`,dn,[z(`label`,fn,q(r.$t(`views.recordings.rooms`)),1),L(f,{"model-value":n.filters.rooms,options:R(oe),"option-label":`name`,"option-value":`id`,placeholder:r.$t(`views.recordings.all_rooms`),class:`w-full text-sm`,"max-selected-labels":2,"show-toggle-all":!1,pt:{overlay:{style:`position: fixed`}},"onUpdate:modelValue":a[4]||=e=>Se(e)},null,8,[`model-value`,`options`,`placeholder`])])):H(``,!0),z(`div`,pn,[z(`label`,mn,q(r.$t(`views.recordings.cameras`)),1),L(f,{"model-value":n.filters.cameraIds,options:R(se),"option-label":`name`,"option-value":`id`,placeholder:r.$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":a[5]||=e=>k(`cameraIds`,e)},null,8,[`model-value`,`options`,`placeholder`])]),R(ue)&&!R(O)?(M(),G(A,{key:2},[a[17]||=z(`div`,{class:`sidebar-divider`},null,-1),z(`div`,hn,[z(`label`,gn,q(r.$t(`views.recordings.grid_search`)),1),z(`div`,_n,[L(m,{camera:R(ue),"object-fit":`cover`},null,8,[`camera`]),L(h,{"model-value":n.filters.gridRegions,"onUpdate:modelValue":a[6]||=e=>k(`gridRegions`,e)},null,8,[`model-value`])]),L(u,{label:r.$t(`views.recordings.grid_clear`),severity:`secondary`,outlined:``,size:`small`,class:`w-full text-xs`,disabled:n.filters.gridRegions.length===0,onClick:a[7]||=e=>k(`gridRegions`,[])},null,8,[`label`,`disabled`])])],64)):H(``,!0),R(O)?H(``,!0):(M(),G(`div`,vn)),R(O)?H(``,!0):(M(),G(`div`,yn,[z(`label`,bn,q(r.$t(`views.recordings.confidence`)),1),z(`div`,xn,[L(d,{"model-value":n.filters.minConfidence,min:0,max:1,step:.05,class:`flex-1`,"onUpdate:modelValue":a[8]||=e=>k(`minConfidence`,e)},null,8,[`model-value`]),z(`span`,Sn,q(Math.round(n.filters.minConfidence*100))+`%`,1)])])),a[24]||=z(`div`,{class:`sidebar-divider`},null,-1),z(`div`,Cn,[z(`label`,wn,q(r.$t(`views.recordings.time_range`)),1),z(`div`,Tn,[(M(!0),G(A,null,N(R(pe),e=>(M(),I(u,{key:e.value,label:e.label,severity:n.filters.timeRange===e.value?void 0:`secondary`,outlined:n.filters.timeRange!==e.value,size:`small`,class:`text-xs flex-1 min-w-0`,onClick:t=>k(`timeRange`,n.filters.timeRange===e.value?null:e.value)},null,8,[`label`,`severity`,`outlined`,`onClick`]))),128))])]),R(O)?H(``,!0):(M(),G(A,{key:5},[a[22]||=z(`div`,{class:`sidebar-divider`},null,-1),z(`div`,En,[z(`button`,{class:`sidebar-section-title flex items-center justify-between w-full cursor-pointer`,onClick:a[9]||=e=>Ae(`sensorEvents`)},[z(`span`,null,q(r.$t(`views.recordings.sensor_events`)),1),(M(),I(P(R(D).sensorEvents?R(w):R(T)),{class:`w-4 h-4 text-muted`}))]),R(D).sensorEvents?(M(),G(`div`,Dn,[(M(!0),G(A,null,N(R(ge),e=>(M(),G(A,{key:e.value},[z(`label`,On,[L(v,{"model-value":n.filters.sensorEvents.includes(e.value),binary:!0,"onUpdate:modelValue":t=>De(e.value)},null,8,[`model-value`,`onUpdate:modelValue`]),(M(),I(P(e.icon),{class:`w-4 h-4 text-muted`})),z(`span`,null,q(e.label),1)]),e.value===`audio`&&n.filters.sensorEvents.includes(`audio`)?(M(),G(`div`,kn,[(M(!0),G(A,null,N(R(_e),e=>(M(),G(`label`,{key:e.value,class:`flex items-center gap-2 cursor-pointer text-sm`},[L(v,{"model-value":n.filters.audioLabels.includes(e.value),binary:!0,"onUpdate:modelValue":t=>Te(e.value)},null,8,[`model-value`,`onUpdate:modelValue`]),(M(),I(P(e.icon),{class:`w-4 h-4 text-muted`})),z(`span`,null,q(e.label),1)]))),128))])):H(``,!0)],64))),128))])):H(``,!0)]),z(`div`,An,[a[18]||=z(`div`,{class:`filter-logic-line`},null,-1),L(o,{"model-value":n.filters.filterLogicTriggers,options:R(fe),"option-label":`label`,"option-value":`value`,"allow-empty":!1,class:`filter-logic-toggle`,"onUpdate:modelValue":a[10]||=e=>k(`filterLogicTriggers`,e)},null,8,[`model-value`,`options`]),a[19]||=z(`div`,{class:`filter-logic-line`},null,-1)]),z(`div`,jn,[z(`button`,{class:`sidebar-section-title flex items-center justify-between w-full cursor-pointer`,onClick:a[11]||=e=>Ae(`eventTypes`)},[z(`span`,null,q(r.$t(`views.recordings.event_type`)),1),(M(),I(P(R(D).eventTypes?R(w):R(T)),{class:`w-4 h-4 text-muted`}))]),R(D).eventTypes?(M(),G(`div`,Mn,[(M(!0),G(A,null,N(R(me),e=>(M(),G(`label`,{key:e.value,class:`flex items-center gap-2 cursor-pointer text-sm`},[L(v,{"model-value":n.filters.eventTypes.includes(e.value),binary:!0,"onUpdate:modelValue":t=>we(e.value)},null,8,[`model-value`,`onUpdate:modelValue`]),(M(),I(P(e.icon),{class:`w-4 h-4 text-muted`})),z(`span`,null,q(e.label),1)]))),128))])):H(``,!0)]),z(`div`,Nn,[a[20]||=z(`div`,{class:`filter-logic-line`},null,-1),L(o,{"model-value":n.filters.filterLogicAttributes,options:R(fe),"option-label":`label`,"option-value":`value`,"allow-empty":!1,class:`filter-logic-toggle`,"onUpdate:modelValue":a[12]||=e=>k(`filterLogicAttributes`,e)},null,8,[`model-value`,`options`]),a[21]||=z(`div`,{class:`filter-logic-line`},null,-1)]),z(`div`,Pn,[z(`button`,{class:`sidebar-section-title flex items-center justify-between w-full cursor-pointer`,onClick:a[13]||=e=>Ae(`attributes`)},[z(`span`,null,q(r.$t(`views.recordings.attributes`)),1),(M(),I(P(R(D).attributes?R(w):R(T)),{class:`w-4 h-4 text-muted`}))]),R(D).attributes?(M(),G(`div`,Fn,[(M(!0),G(A,null,N(R(ve),e=>(M(),G(`label`,{key:e.value,class:`flex items-center gap-2 cursor-pointer text-sm`},[L(v,{"model-value":n.filters.hasAttributes.includes(e.value),binary:!0,"onUpdate:modelValue":t=>F(e.value)},null,8,[`model-value`,`onUpdate:modelValue`]),(M(),I(P(e.icon),{class:`w-4 h-4 text-muted`})),z(`span`,null,q(e.label),1)]))),128)),z(`label`,In,[L(v,{"model-value":n.filters.eventTypes.includes(R(he).value),binary:!0,"onUpdate:modelValue":a[14]||=e=>we(R(he).value)},null,8,[`model-value`]),(M(),I(P(R(he).icon),{class:`w-4 h-4 text-muted`})),z(`span`,null,q(R(he).label),1)])])):H(``,!0)])],64))],4)],4)}}}),[[`__scopeId`,`data-v-dd31ab16`]]),zn={class:`font-semibold text-xl truncate`},Bn={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`},Hn={class:`relative z-2 page-title !m-0`},Un={key:1,class:`fixed right-0 z-10 h-[calc(40px+1rem)] py-2 pr-2 flex items-center`},Wn={key:1,class:`flex justify-center py-4`},Gn={key:2,class:`flex flex-1 min-h-0 flex-col items-center justify-center w-full gap-4`},Kn={class:`text-muted text-sm`},qn=288,Jn=B({__name:`Recordings`,setup(e){let t=new oe,r=new k,i=fe(),a=pe(),{bottombarHeight:o}=le(),{status:s,checking:u}=S(),{openEpisodePlayer:d}=O(),m=n(`@camera.ui/camera-ui-nvr`),h=Se(),{t:y}=te(),{smBreakpoint:b,xlBreakpoint:x,mdBreakpoint:C}=ce(),{registerScrollToTop:ne}=de();if(typeof VideoDecoder<`u`){let e=v({cacheSize:20});Te(ee,e),l(()=>e.dispose())}let{results:re,isSearching:ie,isAvailable:ge,hasSearched:ye,search:N,clear:P}=c(),{data:Oe}=t.getCamerasQuery({page:1,pageSize:-1}),{data:ke}=r.getUserQuery(U(()=>a.user?.username??``)),B={"1h":36e5,"1d":864e5,"1w":6048e5,"1m":2592e6},V=Ee(`gridRef`),je=Ee(`viewMenuRef`),W=K(`closed`),Fe=K(!1),J=K({contentKind:`all`,search:``,semanticQuery:``,filterLogicTriggers:`or`,filterLogicAttributes:`or`,rooms:[],cameraIds:[],timeRange:null,customDateRange:null,eventTypes:[],audioLabels:[],hasAttributes:[],sensorEvents:[],gridRegions:[],minConfidence:.5,minSemanticScore:.5,onlyWithRecordings:!0}),Ie=Ne({state:`ended`,hasDetections:!0,withRecordingInfo:!0,hasRecording:!0}),Le=JSON.stringify(Ie.value),Y=K(!1),Re=Ne([]),ze=K(null),Ve=Ee(`reindexAnchorRef`),{left:He}=f(Ve),Ue=!1,X=U(()=>x.value?!0:W.value===`opened`),$e=U(()=>C.value),tt=U(()=>X.value&&$e.value?!0:(V.value?.scrollY??0)>10&&!s.value?.running),nt=U(()=>C.value?`0px`:X.value?`${qn}px`:`0px`),Z=U(()=>(Oe.value?.result??[]).map(e=>({id:e._id,name:e.name,room:e.room}))),it=U(()=>{let e=new Map;for(let t of Z.value)e.set(t.id,t.name);return e}),ot=U(()=>{let e=new Map;for(let t of Oe.value?.result??[])e.set(t._id,t);return e}),st=U(()=>{let e=J.value.rooms;return(e.length>0?Z.value.filter(t=>e.includes(t.room??``)):Z.value).map(e=>e.id)}),ct=U(()=>J.value.cameraIds.filter(e=>st.value.includes(e))),lt=U(()=>st.value);ne(()=>V.value?.scrollToTop());let{events:ut,isLoading:ft,hasMore:pt,loadMore:mt,loadThumbnails:ht,deleteEvents:gt,pluginUnavailable:_t}=_({availableCameraIds:lt,cameraIds:ct,realtime:!0,pageSize:40,filter:Ie,withEpisodes:!0}),Q=U(()=>{let e=new Map;for(let t of re.value??[]){let n=e.get(t.eventId);(!n||t.score>n)&&e.set(t.eventId,t.score)}return e}),vt=U(()=>ye.value),$=U(()=>{let e=ut.value.filter(e=>e.state===`ended`),t=J.value;if(t.timeRange&&B[t.timeRange]){let n=Date.now()-B[t.timeRange];e=e.filter(e=>e.startTime>=n)}return t.gridRegions.length>0&&(e=e.filter(e=>e.segments.some(e=>e.detections.some(e=>e.box&&Ye(e.box,t.gridRegions))))),vt.value&&(e=e.filter(e=>{let n=Q.value.get(e.id);return n!=null&&n>=t.minSemanticScore}),e.sort((e,t)=>(Q.value.get(t.id)??0)-(Q.value.get(e.id)??0))),e}),yt=U(()=>J.value.contentKind===`episodes`),bt=U(()=>{if(J.value.contentKind===`events`)return[];m.storeVersion.value;let e=J.value;if(!yt.value&&(Y.value||vt.value||e.gridRegions.length>0||e.search.trim()!==``||e.eventTypes.length>0||e.audioLabels.length>0||e.hasAttributes.length>0||e.sensorEvents.length>0||e.minConfidence!==.5))return[];let t=ct.value.length>0?ct.value:lt.value,n=e.timeRange&&B[e.timeRange]?Date.now()-B[e.timeRange]:0,r=1/0;if(e.timeRange===`custom`&&e.customDateRange&&(n=Math.max(n,e.customDateRange[0].getTime()),r=e.customDateRange[1].getTime()),pt.value&&!yt.value){let e=1/0;for(let t of ut.value)e=Math.min(e,t.thumbnailAt??t.startTime);n=Math.max(n,e)}let i=[];for(let e of m.getEpisodes())e.description&&(n&&e.endTime<n||e.startTime>r||t.length>0&&!e.members.some(e=>t.includes(e.cameraId))||i.push({event:void 0,key:`episode:${e.id}`,episode:e}));return i}),xt=U(()=>{if(yt.value)return[...bt.value].sort((e,t)=>Ke(t)-Ke(e));if(Y.value&&Re.value.length)return Re.value;let e=$.value.map(e=>({event:e,key:e.id}));return bt.value.length&&(e.push(...bt.value),e.sort((e,t)=>Ke(t)-Ke(e))),e}),St=U(()=>xe(void 0,`admin`)),{selectionMode:Ct,selectedIds:wt,allSelected:Tt,bulkBusy:Et,enterSelectionMode:Dt,exitSelectionMode:Ot,toggleSelectAll:kt,toggleSelection:At}=ae($,e=>e.id);function jt(){let e=[...wt.value];!e.length||Et.value||i.openTextDialog({data:{title:y(`components.dialog.title.confirm`),contentText:y(`views.recordings.delete_selected_confirm`,{count:e.length}),confirmText:y(`components.form.button.remove`),confirmButtonProps:{severity:`danger`}},onConfirm:async()=>{Et.value=!0;try{await gt(e),Ot(),h.add({severity:`success`,detail:y(`views.recordings.delete_selected_done`,{count:e.length}),life:5e3})}catch(e){h.add({severity:`error`,detail:e?.message??String(e),life:5e3})}finally{Et.value=!1}}})}let Mt=U(()=>[{key:`ungroup`,label:y(`views.recordings.ungroup`),description:y(`views.recordings.ungroup_hint`),toggle:!0,toggleState:Y.value,onClick:()=>{Ue=!0,Y.value=!Y.value,a.updateUser({preferences:{recordings:{ungrouped:Y.value}}})}},{key:`onlyWithRecordings`,label:y(`views.recordings.only_with_recordings`),description:y(`views.recordings.only_with_recordings_hint`),toggle:!0,toggleState:J.value.onlyWithRecordings,onClick:()=>{J.value={...J.value,onlyWithRecordings:!J.value.onlyWithRecordings}}}]);function Nt(){i.openComponentDialog(dt,{data:{title:y(`views.recordings.reindex.title`),contentProps:{},confirmText:y(`views.recordings.reindex.start`)}})}function Pt(){i.openComponentDialog(Ut,{data:{title:y(`views.recordings.export.title`),contentProps:{cameras:Z.value,preselect:J.value.cameraIds?.length?J.value.cameraIds:[]},confirmText:y(`views.recordings.export.confirm`)}})}function Ft(){let e=W.value;W.value=e===`opened`?`closed`:`opened`}function It(){W.value=`closed`}function Lt(e){!e.semanticQuery?.trim()&&J.value.semanticQuery?.trim()&&P(),J.value=e}function Rt(e){if(!e.trim()){P();return}N(e)}async function zt(e){let t=m.getEpisode(e);t||=(await m.loadEpisodes({limit:50}),m.getEpisode(e)),t&&d(t,ot.value)}function Bt(e){let t=ot.value.get(e.cameraId);t&&i.openComponentDialog(ve,{data:{title:t.name,dedupeKey:`camera-event:${t._id}:${e.startTime}`,stayActive:!0,hideCancelButton:!0,hideConfirmButton:!0,contentProps:{camera:t,eventTimestamp:e.startTime},headerActions:e.segments?.some(e=>e?.description)?[{icon:be,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 j(x,e=>{e&&(W.value=`closed`)}),j(J,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!==Le&&(Le=r,Ie.value=n)},{deep:!0,immediate:!0}),j(ke,e=>{if(!e||Ue)return;let t=e.preferences?.recordings?.ungrouped;t!==void 0&&(Y.value=t)},{immediate:!0}),j([Y,$],([e,t])=>{Re.value=e?Je(t):[]}),j(()=>J.value.cameraIds,e=>{e.length!==1&&J.value.gridRegions.length>0&&(J.value={...J.value,gridRegions:[]})}),we(()=>{requestAnimationFrame(()=>{Fe.value=!0})}),(e,t)=>{let n=T,r=rt,i=et,a=p,c=Xe,l=Qe,d=Ze,f=D,m=Ge,h=qe,_=We,v=E,y=w,S=he,ee=g;return M(),G(`div`,null,[L(n,{position:`center`},{default:F(()=>[z(`span`,zn,q(e.$t(`views.recordings.title`)),1)]),_:1}),L(n,{position:`left`},{default:F(()=>[L(a,{id:`recordings-sidebar-toggle`,severity:`secondary`,class:`cui-button p-2 text-color`,text:``,rounded:``,onClick:Ft},{icon:F(()=>[R(W)===`closed`?(M(),I(r,{key:0,width:`100%`,height:`100%`})):(M(),I(i,{key:1,width:`100%`,height:`100%`}))]),_:1})]),_:1}),L(n,{position:`right`},{default:F(()=>[L(a,{severity:`secondary`,class:`cui-button p-2 text-color`,text:``,rounded:``,onClick:t[0]||=e=>R(je)?.toggleMenu(e)},{icon:F(()=>[L(c,{width:`100%`,height:`100%`})]),_:1})]),_:1}),L(Rn,{filters:R(J),cameras:R(Z),"is-open":R(X),"is-overlay":R($e),"result-count":R(xt).length,"semantic-count":R(vt)?R(Q).size:void 0,"semantic-search-available":R(ge),"semantic-search-loading":R(ie),"onUpdate:filters":Lt,onSemanticSearch:Rt,onClose:It},null,8,[`filters`,`cameras`,`is-open`,`is-overlay`,`result-count`,`semantic-count`,`semantic-search-available`,`semantic-search-loading`]),(M(),I(Me,{to:`#container`,defer:``},[R(X)&&R($e)?(M(),G(`div`,{key:0,class:`fixed top-0 left-0 right-0 bottom-0 w-full h-full bg-black/50 z-1`,onClick:It})):H(``,!0)])),z(`main`,{ref_key:`reindexAnchorRef`,ref:Ve,class:`relative w-full h-full`,style:Pe({paddingLeft:R(nt),transition:R(Fe)?`padding-left 200ms`:void 0})},[z(`div`,Bn,[R(b)?H(``,!0):(M(),G(`div`,Vn,[t[3]||=z(`div`,{class:`ml-2`},null,-1),R(x)?H(``,!0):(M(),I(a,{key:0,id:`recordings-sidebar-toggle`,severity:`secondary`,class:`mr-2 cui-icon-lg relative z-2`,text:``,rounded:``,onClick:Ft},{icon:F(()=>[R(X)?(M(),I(l,{key:0,width:`100%`,height:`100%`})):(M(),I(d,{key:1,width:`100%`,height:`100%`}))]),_:1})),z(`h1`,Hn,q(e.$t(`views.recordings.title`)),1),t[4]||=z(`div`,{class:`gradient-blur rotate-180 !h-[70px]`},[z(`div`),z(`div`),z(`div`),z(`div`),z(`div`),z(`div`)],-1)])),R(b)?H(``,!0):(M(),G(`div`,Un,[De((M(),I(a,{severity:`secondary`,text:``,rounded:``,class:`cui-icon-lg relative z-2`,onClick:t[1]||=e=>R(je)?.toggleMenu(e)},{icon:F(()=>[L(c,{width:`100%`,height:`100%`})]),_:1})),[[ee,{value:e.$t(`views.recordings.view_options`)},void 0,{bottom:!0}]])])),z(`div`,{class:Ae([`px-2 h-full w-full flex flex-col`,{"pt-4":R(b),"pt-[calc(40px+2rem)]":!R(b)}])},[R(xt).length?(M(),I(h,{key:0,ref_key:`gridRef`,ref:V,items:R(xt),"min-item-width":R(b)?160:180,gap:8,"has-more":R(pt),"load-more":R(mt),"item-key":e=>e.key,class:`flex-1 min-h-0`},{item:F(({item:e})=>[e.episode?(M(),I(f,{key:0,episode:e.episode,"camera-by-id":R(ot),fluid:``,"click-disabled":R(Ct)},null,8,[`episode`,`camera-by-id`,`click-disabled`])):(M(),I(m,{key:1,event:e.event,"camera-name":R(it).get(e.event.cameraId),camera:R(ot).get(e.event.cameraId),"load-thumbnails":R(ht),"semantic-score":R(Q).get(e.event.id),"seg-index":e.segIndex,"selection-mode":R(Ct),selected:R(wt).has(e.event.id),"sibling-active":e.segIndex!==void 0&&R(ze)===e.event.id,onSelect:t=>R(At)(e.event.id),onScrollToEvent:()=>Bt(e.event),onOpenEpisode:zt,onMouseenter:t=>ze.value=e.segIndex===void 0?null:e.event.id,onMouseleave:t[2]||=e=>ze.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`])):H(``,!0),R(ft)||R(ie)?(M(),G(`div`,Wn,[L(_,{width:`24px`,height:`24px`,class:`text-muted`})])):H(``,!0),!R($).length&&!R(ft)&&!R(ie)?(M(),G(`div`,Gn,[L(v,{class:`w-12 h-12 text-muted`}),z(`span`,Kn,q(R(_t)?e.$t(`views.recordings.recordings_unavailable`):e.$t(`views.recordings.no_recordings`)),1)])):H(``,!0)],2)])],4),R(St)&&R(Z).length?(M(),G(`div`,{key:0,class:Ae([`fixed z-10`,R(tt)?`scale-0 opacity-0`:`scale-100 opacity-100`]),style:Pe({left:`calc(${R(He)}px + ${R(nt)} + 0.75rem + env(safe-area-inset-left, 0px))`,bottom:`calc(${R(o)}px + 1.25rem + env(safe-area-inset-bottom, 0px))`,transition:R(Fe)?`left 200ms, transform 200ms ease-in-out, opacity 200ms ease-in-out`:void 0})},[L(a,{severity:`secondary`,rounded:``,class:`shadow-lg`,disabled:R(s)?.running,label:R(u)?e.$t(`views.recordings.reindex.checking`):R(s)?.running?e.$t(`views.recordings.reindex.progress`,{done:R(s).done,total:R(s).total}):e.$t(`views.recordings.reindex.button`),onClick:Nt},{icon:F(()=>[R(s)?.running?(M(),I(R(We),{key:0})):(M(),I(R(at),{key:1}))]),_:1},8,[`disabled`,`label`])],6)):H(``,!0),R(Z).length?(M(),I(S,{key:1,"force-visible":R(Ct),"scroll-y":R(V)?.scrollY??0},{default:F(()=>[R(Ct)?(M(),G(A,{key:1},[L(y,{grouped:``,"tooltip-props":{value:e.$t(`components.form.tooltip.cancel_selection`)},"button-props":{severity:`secondary`},icon:R(Be),"icon-props":{width:`100%`,height:`100%`},onClick:R(Ot)},null,8,[`tooltip-props`,`icon`,`onClick`]),L(y,{grouped:``,"tooltip-props":{value:R(Tt)?e.$t(`components.form.tooltip.deselect_all`):e.$t(`components.form.tooltip.select_all`)},"button-props":{severity:R(Tt)?`primary`:`secondary`},icon:R(Ce),"icon-props":{width:`100%`,height:`100%`},onClick:R(kt)},null,8,[`tooltip-props`,`button-props`,`icon`,`onClick`]),L(y,{grouped:``,"tooltip-props":{value:e.$t(`components.form.tooltip.delete_selected`)},"button-props":{severity:`danger`,disabled:!R(wt).size||R(Et)},icon:R(ue),"icon-props":{width:`100%`,height:`100%`},onClick:jt},null,8,[`tooltip-props`,`button-props`,`icon`])],64)):(M(),G(A,{key:0},[R(St)&&R($).length?(M(),I(y,{key:0,grouped:``,"tooltip-props":{value:e.$t(`views.recordings.select`)},"button-props":{severity:`secondary`},icon:R(se),"icon-props":{width:`100%`,height:`100%`},onClick:R(Dt)},null,8,[`tooltip-props`,`icon`,`onClick`])):H(``,!0),L(y,{grouped:``,"tooltip-props":{value:e.$t(`views.recordings.export.title`)},"button-props":{class:`text-white`},icon:R(me),"icon-props":{width:`26px`,height:`26px`},onClick:Pt},null,8,[`tooltip-props`,`icon`])],64))]),_:1},8,[`force-visible`,`scroll-y`])):H(``,!0),L(_e,{ref_key:`viewMenuRef`,ref:je,items:R(Mt),"auto-hide":!1,popover:{pt:{root:{class:`w-[22rem]`},content:{class:`p-0! rounded-xl! overflow-hidden!`}}}},null,8,[`items`])])}}});export{Jn as default};
@@ -0,0 +1 @@
1
+ .recordings-sidebar[data-v-dd31ab16]{background:var(--subnavbar-background);border-right-style:solid;border-right-color:var(--border-color);height:100%}.sidebar-section-title[data-v-dd31ab16]{text-transform:uppercase;color:var(--text-muted-color);letter-spacing:.05em;background:0 0;border:none;padding:0;font-size:.7rem;font-weight:700}.sidebar-divider[data-v-dd31ab16]{border-top:1px solid var(--border-color)}.filter-logic-divider[data-v-dd31ab16]{align-items:center;gap:.5rem;display:flex}.filter-logic-line[data-v-dd31ab16]{background:var(--border-color);flex:1;height:1px}[data-v-dd31ab16] .filter-logic-toggle{flex-shrink:0}[data-v-dd31ab16] .filter-logic-toggle .p-togglebutton{letter-spacing:.05em;text-transform:uppercase;min-width:0;padding:.15rem .5rem;font-size:.6rem;font-weight:700}[data-v-dd31ab16] .content-kind-toggle{display:flex}[data-v-dd31ab16] .content-kind-toggle .p-togglebutton{flex:1;min-width:0;padding:.3rem .5rem;font-size:.75rem}.semantic-textarea[data-v-dd31ab16]{resize:vertical;min-height:2.5rem}
@@ -0,0 +1 @@
1
+ import{$ as e,Dr as t,F as n,Fr as r,Tr as i,X as a,Y as o,Z as s,_r as c,ar as l,br as u,ct as d,dt as f,et as p,ft as m,gr as h,ir as ee,it as te,lt as g,mr as _,mt as v,nr as y,or as b,pr as x,rr as S,rt as ne,st as re,tt as ie,ur as ae,ut as oe,vr as C,wr as w,zr as T}from"./vendor-cameraui-OySaGjmo.js";import{kn as E,xn as D}from"./api-ou2-S3Z9.js";import{$t as se,Mn as O,Pn as k,Rn as A,Yn as j,an as M,dn as N,fn as P,gr as F,hr as I,in as L,mn as R,nr as z,on as B,pr as V,rn as H,sn as U,sr as W,vr as G,xn as K,yr as q}from"./vendor-AX0A8AMd.js";import{K as J,T as ce,l as le,z as ue}from"./vendor-primevue-CvHDsVi_.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-CsK2cn7L.js";import{t as Y}from"./sensorIcons-tORVN7ay.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(R({__name:`CuiMeasurementInfo`,props:K({type:{},unit:{},current:{},label:{},disabled:{type:Boolean},size:{}},Te),setup(e){let{type:t}=V(e),n=H(()=>Y(t.value));return(t,r)=>(O(),U(`div`,{class:F([`cui-measurement-info`,[`cui-measurement-info--${e.size}`,{"cui-measurement-info--disabled":e.disabled}]])},[L(`div`,Ee,[L(`div`,De,[(O(),M(A(I(n)),{class:`cui-measurement-info__icon-svg`}))]),L(`div`,Oe,[e.label?(O(),U(`span`,ke,q(e.label),1)):B(``,!0),L(`span`,Ae,q(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(R({__name:`CuiBinarySensor`,props:K({type:{},detected:{type:Boolean},label:{},disabled:{type:Boolean},size:{}},Me),setup(e){let t=e,{t:n}=T(),{type:r,detected:i}=V(t),a=H(()=>Y(r.value)),o=H(()=>({color:`rgb(239, 68, 68)`,filter:`drop-shadow(0 0 6px rgba(239, 68, 68, 0.5))`})),s=H(()=>({color:`var(--text-secondary-color)`})),c=H(()=>i.value?`cui-binary-sensor__status--detected`:`cui-binary-sensor__status--clear`),l=H(()=>i.value?`cui-binary-sensor__indicator--detected`:`cui-binary-sensor__indicator--clear`);return(t,r)=>(O(),U(`div`,{class:F([`cui-binary-sensor`,[`cui-binary-sensor--${e.size}`,{"cui-binary-sensor--disabled":e.disabled,"cui-binary-sensor--clear":!I(i),"cui-binary-sensor--detected":I(i)}]])},[L(`div`,Ne,[L(`div`,Pe,[(O(),M(A(I(a)),{class:`cui-binary-sensor__icon-svg`,style:G(I(i)?I(o):I(s))},null,8,[`style`]))]),L(`div`,Fe,[e.label?(O(),U(`span`,Ie,q(e.label),1)):B(``,!0),L(`span`,{class:F([`cui-binary-sensor__status`,I(c)])},q(I(i)?I(n)(`components.binary_sensor.detected`):I(n)(`components.binary_sensor.clear`)),3)]),L(`div`,{class:F([`cui-binary-sensor__indicator`,I(l)])},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(R({__name:`CuiDetectionSensorInfo`,props:K({type:{},label:{},detected:{type:Boolean},labels:{},decibels:{},size:{}},Re),setup(e){let t=e,{t:n}=T(),r={color:`rgb(251, 146, 60)`,filter:`drop-shadow(0 0 8px rgba(251, 146, 60, 0.6))`},i=H(()=>{if(!t.detected)return n(`components.detection_sensor.idle`);let e=(t.labels??[]).filter(Boolean);return e.length?e.join(`, `):n(`components.detection_sensor.detected`)});return(t,n)=>(O(),U(`div`,{class:F([`cui-detection-info`,[`cui-detection-info--${e.size}`,{"cui-detection-info--active":e.detected}]])},[L(`div`,ze,[L(`div`,Be,[(O(),M(A(I(Y)(e.type)),{class:`cui-detection-info__icon-svg`,style:G(e.detected?r:void 0)},null,8,[`style`]))]),L(`div`,Ve,[e.label?(O(),U(`span`,He,q(e.label),1)):B(``,!0),L(`span`,{class:F([`cui-detection-info__status`,e.detected?`cui-detection-info__status--active`:`cui-detection-info__status--idle`])},q(I(i)),3)]),e.decibels===void 0?B(``,!0):(O(),U(`span`,Ue,q(Math.round(e.decibels))+` dB`,1)),L(`div`,{class:F([`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([r.Motion,r.Object,r.Audio,r.Face,r.LicensePlate,r.Classifier]),Z=new Set([r.Gas,r.CarbonMonoxide,r.Heat,r.Cold,r.Vibration,r.Tamper,r.Problem,r.Power]),Q=new Map([[r.Illuminance,`lx`],[r.CarbonDioxide,`ppm`]]),Ge=new Set([...X,...Z,...Q.keys(),r.Light,r.Switch,r.Lock,r.Siren,r.SecuritySystem,r.Garage,r.Doorbell,r.Contact,r.Occupancy,r.Smoke,r.Leak,r.Temperature,r.Humidity,r.Battery]);function Ke(e){return Ge.has(e)}var qe=R({__name:`CuiSensorControl`,props:{sensor:{},disabled:{type:Boolean}},setup(n){function v(e){return Z.has(e.type)}function T(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,N=xe,P=he,F=de,L=pe,R=ye,z=Se,V=fe,H=ge,U=we,W=me,G=be,K=_e,q=Le,J=je;return I(ne)(n.sensor)?(O(),M(A,{key:0,label:n.sensor.displayName.value,on:n.sensor.getProperty(I(_).On)??!1,brightness:n.sensor.getProperty(I(_).Brightness)??100,"has-brightness":n.sensor.hasCapability(`brightness`),disabled:n.disabled,size:`small`,class:`card-border`,"onUpdate:on":k[0]||=e=>n.sensor.setProperty(I(_).On,e),"onUpdate:brightness":k[1]||=e=>n.sensor.setProperty(I(_).Brightness,e)},null,8,[`label`,`on`,`brightness`,`has-brightness`,`disabled`])):I(f)(n.sensor)?(O(),M(j,{key:1,label:n.sensor.displayName.value,on:n.sensor.getProperty(I(S).On)??!1,disabled:n.disabled,size:`small`,class:`card-border`,"onUpdate:on":k[2]||=e=>n.sensor.setProperty(I(S).On,e)},null,8,[`label`,`on`,`disabled`])):I(te)(n.sensor)?(O(),M(N,{key:2,label:n.sensor.displayName.value,"current-state":n.sensor.getProperty(I(x).CurrentState)??2,"target-state":n.sensor.getProperty(I(x).TargetState)??0,disabled:n.disabled,size:`small`,class:`card-border`,"onUpdate:targetState":k[3]||=e=>n.sensor.setProperty(I(x).TargetState,e)},null,8,[`label`,`current-state`,`target-state`,`disabled`])):I(g)(n.sensor)?(O(),M(P,{key:3,label:n.sensor.displayName.value,active:n.sensor.getProperty(I(l).Active)??!1,volume:n.sensor.getProperty(I(l).Volume)??100,"has-volume":n.sensor.hasCapability(`volume`),disabled:n.disabled,size:`small`,class:`card-border`,"onUpdate:active":k[4]||=e=>n.sensor.setProperty(I(l).Active,e),"onUpdate:volume":k[5]||=e=>n.sensor.setProperty(I(l).Volume,e)},null,8,[`label`,`active`,`volume`,`has-volume`,`disabled`])):I(d)(n.sensor)?(O(),M(F,{key:4,label:n.sensor.displayName.value,"current-state":n.sensor.getProperty(I(b).CurrentState)??3,"target-state":n.sensor.getProperty(I(b).TargetState)??3,disabled:n.disabled,size:`small`,class:`card-border`,"onUpdate:targetState":k[6]||=e=>n.sensor.setProperty(I(b).TargetState,e)},null,8,[`label`,`current-state`,`target-state`,`disabled`])):I(e)(n.sensor)?(O(),M(L,{key:5,label:n.sensor.displayName.value,"current-state":n.sensor.getProperty(I(C).CurrentState)??1,"target-state":n.sensor.getProperty(I(C).TargetState)??1,"obstruction-detected":n.sensor.getProperty(I(C).ObstructionDetected)??!1,disabled:n.disabled,size:`small`,class:`card-border`,"onUpdate:targetState":k[7]||=e=>n.sensor.setProperty(I(C).TargetState,e)},null,8,[`label`,`current-state`,`target-state`,`obstruction-detected`,`disabled`])):I(s)(n.sensor)?(O(),M(R,{key:6,label:n.sensor.displayName.value,ring:n.sensor.getProperty(I(u).Ring)??!1,disabled:n.disabled,size:`small`,class:`card-border`,onTrigger:k[8]||=()=>n.sensor.setProperty(I(u).Ring,!0)},null,8,[`label`,`ring`,`disabled`])):I(a)(n.sensor)?(O(),M(z,{key:7,label:n.sensor.displayName.value,detected:n.sensor.getProperty(I(w).Detected)??!1,size:`small`,class:`card-border`},null,8,[`label`,`detected`])):I(re)(n.sensor)?(O(),M(V,{key:8,label:n.sensor.displayName.value,detected:n.sensor.getProperty(I(ae).Detected)??!1,size:`small`,class:`card-border`},null,8,[`label`,`detected`])):I(oe)(n.sensor)?(O(),M(H,{key:9,label:n.sensor.displayName.value,detected:n.sensor.getProperty(I(ee).Detected)??!1,size:`small`,class:`card-border`},null,8,[`label`,`detected`])):I(ie)(n.sensor)?(O(),M(U,{key:10,label:n.sensor.displayName.value,detected:n.sensor.getProperty(I(h).Detected)??!1,size:`small`,class:`card-border`},null,8,[`label`,`detected`])):I(m)(n.sensor)?(O(),M(W,{key:11,label:n.sensor.displayName.value,current:n.sensor.getProperty(I(y).Current),size:`small`,class:`card-border`},null,8,[`label`,`current`])):I(p)(n.sensor)?(O(),M(G,{key:12,label:n.sensor.displayName.value,current:n.sensor.getProperty(I(c).Current),size:`small`,class:`card-border`},null,8,[`label`,`current`])):I(o)(n.sensor)?(O(),M(K,{key:13,label:n.sensor.displayName.value,level:n.sensor.getProperty(I(i).Level)??100,charging:n.sensor.getProperty(I(i).Charging)??`NOT_CHARGING`,low:n.sensor.getProperty(I(i).Low)??!1,size:`small`,class:`card-border`},null,8,[`label`,`level`,`charging`,`low`])):v(n.sensor)?(O(),M(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`])):T(n.sensor)?(O(),M(J,{key:15,type:n.sensor.type,label:n.sensor.displayName.value,current:n.sensor.getProperty(`current`)??void 0,unit:T(n.sensor),size:`small`,class:`card-border`},null,8,[`type`,`label`,`current`,`unit`])):E(n.sensor)?(O(),M(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===I(r).Audio?n.sensor.getProperty(I(t).Decibels)??void 0:void 0,size:`small`,class:`card-border`},null,8,[`type`,`label`,`detected`,`labels`,`decibels`])):B(``,!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={key:1,class:`flex flex-col field-gap`},$e={for:`sensorNativeId`,class:`cui-label`},et={class:`flex flex-col field-gap`},tt={class:`cui-label`},nt={key:0,class:`flex flex-wrap gap-2`},rt={key:2,class:`flex items-center gap-4 cui-toggle-switch`},it={class:`flex flex-col min-w-0`},at={class:`cui-label-switch`},ot={class:`text-xs text-muted`},st=R({__name:`SensorEdit`,props:{sensor:{},cameraOptions:{}},setup(e,{expose:t}){let r=e,i=W(r.sensor.displayName||r.sensor.name),a=W([...r.sensor.assignedCameraIds]),o=W(r.sensor.exposed),{sensors:s}=v(),c=H(()=>D(void 0,`admin`)),l=H(()=>r.cameraOptions.filter(e=>r.sensor.assignedCameraIds.includes(e.value))),u=H(()=>Ke(r.sensor.type)),d=H(()=>s.value.find(e=>e.id===r.sensor.id));return t({onConfirm:async()=>({displayName:i.value||r.sensor.name,assignedCameraIds:a.value,exposed:o.value})}),(t,r)=>{let s=ue,f=n,p=ce,m=le,h=J;return O(),U(`div`,Je,[I(u)?(O(),U(`div`,$,[L(`label`,Ye,q(t.$t(`views.sensors.control`)),1),I(d)?(O(),M(qe,{key:0,sensor:I(d),disabled:!I(c)},null,8,[`sensor`,`disabled`])):(O(),M(s,{key:1,severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:j(()=>[N(q(t.$t(`views.sensors.control_offline`)),1)]),_:1}))])):B(``,!0),L(`div`,Xe,[L(`label`,Ze,q(t.$t(`components.camera_options.sensor_display_name`)),1),P(f,{id:`sensorDisplayName`,modelValue:I(i),"onUpdate:modelValue":r[0]||=e=>z(i)?i.value=e:null,modelModifiers:{trim:!0},class:`w-full`},null,8,[`modelValue`])]),e.sensor.nativeId?(O(),U(`div`,Qe,[L(`label`,$e,q(t.$t(`views.sensors.native_id`)),1),P(f,{id:`sensorNativeId`,"model-value":e.sensor.nativeId,readonly:``,class:`w-full font-mono text-sm`},null,8,[`model-value`])])):B(``,!0),L(`div`,et,[L(`label`,tt,q(t.$t(`views.sensors.assigned_cameras`)),1),e.sensor.assignmentLocked?(O(),U(`div`,nt,[(O(!0),U(se,null,k(I(l),e=>(O(),M(p,{key:e.value,label:e.label},null,8,[`label`]))),128))])):(O(),M(m,{key:1,modelValue:I(a),"onUpdate:modelValue":r[1]||=e=>z(a)?a.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`])),P(s,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:j(()=>[N(q(e.sensor.assignmentLocked?t.$t(`views.sensors.assigned_cameras_locked_hint`):t.$t(`views.sensors.assigned_cameras_hint`)),1)]),_:1})]),e.sensor.cameraBound?B(``,!0):(O(),U(`div`,rt,[L(`div`,it,[L(`label`,at,q(t.$t(`views.sensors.exposed`)),1),L(`span`,ot,q(t.$t(`views.sensors.exposed_hint`)),1)]),P(h,{modelValue:I(o),"onUpdate:modelValue":r[2]||=e=>z(o)?o.value=e:null,class:`ml-auto shrink-0`},null,8,[`modelValue`])]))])}}});export{st as default};
@@ -0,0 +1 @@
1
+ import{K as e,zr as t}from"./vendor-cameraui-OySaGjmo.js";import{$t as n,An as r,Mn as i,Pn as a,fn as o,hr as s,in as c,mn as l,sn as u,sr as d,yr as f}from"./vendor-AX0A8AMd.js";import{n as p}from"./sensors-ud0INKWh.js";import{t as m}from"./history-F0qTKQGT.js";var h={class:`flex flex-col gap-2 w-full min-h-[200px] max-h-[60vh] overflow-y-auto`},g={key:0,class:`flex flex-col gap-2`},_={class:`flex flex-col flex-1 min-w-0`},v={class:`text-sm font-medium truncate`},y={class:`text-xs text-muted`},b={class:`text-sm font-mono shrink-0`},x={key:2,class:`flex flex-1 flex-col items-center justify-center gap-3 py-10`},S={class:`text-muted text-sm`},C=l({__name:`SensorHistory`,props:{sensorId:{},sensorType:{}},setup(l){let C=l,{t:w,te:T}=t(),E=d([]),D=d(!0);r(async()=>{try{E.value=await p({id:C.sensorId})}catch{E.value=[]}finally{D.value=!1}});function O(e){let t=`components.automation_nodes.sensor_property_${e}`;return T(t)?w(t):e}function k(e){return e==null?`–`:String(e)}function A(e){return new Date(e).toLocaleString()}return(t,r)=>{let l=e,d=m;return i(),u(`div`,h,[s(D)?(i(),u(`div`,g,[(i(),u(n,null,a(6,e=>o(l,{key:e,height:`40px`,class:`rounded-md`})),64))])):s(E).length?(i(!0),u(n,{key:1},a(s(E),(e,t)=>(i(),u(`div`,{key:t,class:`flex items-center gap-3 p-2 rounded-md border-color`},[c(`div`,_,[c(`span`,v,f(O(e.property)),1),c(`span`,y,f(A(e.timestamp)),1)]),c(`span`,b,f(k(e.value)),1)]))),128)):(i(),u(`div`,x,[o(d,{class:`w-10 h-10 text-muted`}),c(`span`,S,f(t.$t(`views.sensors.history_empty`)),1)]))])}}});export{C as default};
@@ -1 +1 @@
1
- [data-v-2b87a3b5] tr{cursor:pointer!important}[data-v-2b87a3b5] .cui-col-center .p-datatable-column-header-content{justify-content:center}
1
+ [data-v-c2e0b31d] tr{cursor:pointer!important}[data-v-c2e0b31d] .cui-col-center .p-datatable-column-header-content{justify-content:center}
@@ -0,0 +1,2 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./SensorEdit-CcD4LvZr.js","./vendor-cameraui-OySaGjmo.js","./rolldown-runtime-C0FnF6B9.js","./vendor-AX0A8AMd.js","./api-ou2-S3Z9.js","./intercomService-JoKcW49f.js","./vendor-zod-B0ZFM2Pr.js","./types-Dg1X10xd.js","./lightbulb-outline-BtraGBwO.js","./vendor-core-BZ52eUwC.js","./vendor-primevue-CvHDsVi_.js","./vendor-dnd-onyWAbsd.js","./close-ChGy_BeH.js","./vendor-draggabilly-B7q3Src-.js","./api-CEbDxsSY.css","./CuiLightControl-CsK2cn7L.js","./bell-ring-DBCDVZQy.js","./home-DEKGoPL_.js","./cube-scan-BR5la6Qx.js","./CuiLightControl-DFrZm_sv.css","./sensorIcons-tORVN7ay.js","./SensorEdit-ono85O3c.css","./SensorHistory-5nCWisih.js","./sensors-ud0INKWh.js","./history-F0qTKQGT.js","./VirtualSensorCreate-CSzlXcHk.js"])))=>i.map(i=>d[i]);
2
+ import{B as e,Bt as t,F as n,Fr as r,G as ee,Oi as i,Pt as te,Rt as ne,Wt as re,mt as ie,zr as a}from"./vendor-cameraui-OySaGjmo.js";import{An as ae,B as oe,Bn as se,I as o,It as ce,L as le,Mn as ue,Qn as de,ct as fe,jn as pe,kn as s,lt as c,mn as me,pr as l,xn as he,xr as ge,z as _e}from"./api-ou2-S3Z9.js";import{$t as ve,An as u,J as d,Kn as f,Mn as p,Qn as m,Qt as h,Rn as ye,Rt as g,Wn as be,Xn as _,Yn as v,an as y,ar as xe,dn as b,fn as x,gr as S,hr as C,in as w,jn as Se,mn as T,nr as Ce,on as E,or as D,rn as O,sn as k,sr as A,vr as we,yr as j}from"./vendor-AX0A8AMd.js";import{p as M}from"./vendor-core-BZ52eUwC.js";import{F as Te,P as Ee,S as De,T as Oe}from"./vendor-primevue-CvHDsVi_.js";import{t as ke}from"./close-ChGy_BeH.js";import{t as Ae}from"./sensors-ud0INKWh.js";import{t as je}from"./trash-can-outline-_aiv_oEu.js";import{t as Me}from"./CuiDataTable-BDyku8Vr.js";import{t as Ne}from"./history-F0qTKQGT.js";import{t as Pe}from"./ring-resize-DsW_XYdA.js";import{t as Fe}from"./search-Ck7b7yvI.js";import{n as Ie,t as Le}from"./sensorIcons-tORVN7ay.js";import{t as Re}from"./back-filled-MAIFvJqE.js";import{t as ze}from"./plus-Ct9djYce.js";import{t as Be}from"./settings-Bw6giVLH.js";import{t as Ve}from"./radar-8nK_pSbi.js";import{t as He}from"./eye-off-outline-Bj1tXD9w.js";var N=5e3,P=xe({isLoading:!0,sensors:[],isScanning:!1,error:null}),F=null,I=null,L=!1,R=0,z=null;function Ue(){P.isLoading=!0,P.sensors=[],P.isScanning=!1,P.error=null}function B(){return I||(F=m(!0),F.run(()=>{let e=l(`/sensors`);I=e,e.onReady(()=>{V()}),f(e.connected,(e,t)=>{!e&&t&&(L=!1)}),e.on(`sensors:discovered`,e=>{P.sensors=[...P.sensors.filter(t=>t.pluginId!==e.source),...e.sensors]}),e.on(`sensors:scanning`,e=>{P.isScanning=e.isScanning}),e.on(`sensors:adopted`,e=>{P.sensors=P.sensors.filter(t=>t.pluginId!==e.pluginId||t.id!==e.id)})}),I)}async function V(){if(!I||L)return{success:L,sensors:P.sensors,isScanning:P.isScanning};try{let e=await I.request(`sensors:subscribe`,{});return L=e.success,e.sensors&&(P.sensors=e.sensors),e.isScanning!==void 0&&(P.isScanning=e.isScanning),P.isLoading=!1,e}catch(e){return P.isLoading=!1,P.error=e instanceof Error?e.message:`subscribe failed`,{success:!1}}}async function H(){if(!I||!L)return{success:!0};try{let e=await I.request(`sensors:unsubscribe`,{});return L=!e.success,e}catch{return{success:!1}}}function U(){L&&H(),F?.stop(),F=null,I=null,L=!1,Ue()}function We(){z&&=(clearTimeout(z),null),R++;function e(){B(),I?.connected.value&&!L&&V()}function t(){L&&H()}async function n(){if(!I?.ready.value)return{success:!1,error:`Not connected`};P.sensors=[],P.isScanning=!0;try{let e=await I.request(`sensors:rescan`,{});return e.success||(P.isScanning=!1),e}catch(e){return P.isScanning=!1,{success:!1,error:e instanceof Error?e.message:`rescan failed`}}}async function r(e){if(!I?.ready.value)return{success:!1,error:`Not connected`};let{pluginId:t,pluginName:n,...r}=e;try{return await I.request(`sensors:adopt`,{pluginId:t,sensor:r})}catch(e){return{success:!1,error:e instanceof Error?e.message:`adopt failed`}}}let ee=O(()=>[...P.sensors].sort((e,t)=>e.name.localeCompare(t.name)));return i(()=>{R--,!(R>0)&&(R=0,z=setTimeout(()=>{R<=0&&(U(),z=null)},N))}),{state:D(P),isConnected:O(()=>I?.connected.value??!1),isLoading:O(()=>P.isLoading),sensors:O(()=>P.sensors),isScanning:O(()=>P.isScanning),error:O(()=>P.error),sortedSensors:ee,connect:e,disconnect:t,subscribe:V,unsubscribe:H,forceRescan:n,adoptSensor:r}}var Ge={class:`flex flex-col`},Ke={key:0,class:`page-title`},qe={class:`flex gap-2 mb-4`},Je={key:1,class:`flex flex-1 min-h-0 flex-col items-center justify-center w-full gap-4 py-16`},Ye={key:2,class:`flex flex-1 min-h-0 flex-col items-center justify-center w-full gap-4 py-20`},Xe={class:`text-muted text-sm`},Ze={key:3,class:`flex min-h-0 flex-col`},Qe={class:`card-title`},$e={class:`flex items-center justify-center`},et={class:`flex items-center gap-2 min-w-0`},tt={class:`flex flex-col min-w-0`},nt={class:`flex items-center gap-2 min-w-0`},rt={class:`font-bold text-color truncate`},it={key:0,class:`text-xs text-muted truncate`},at={key:1,class:`text-xs text-muted truncate font-mono`},ot={key:0,class:`text-xs text-muted truncate font-mono block`},st={key:1,class:`text-xs text-muted`},ct={class:`text-xs text-muted whitespace-nowrap`},lt={class:`flex items-center justify-center gap-1 min-w-0`},ut={class:`flex items-center justify-end gap-1`},dt={key:0,class:`shrink-0`},ft={key:4,class:`flex min-h-0 flex-col mt-6`},pt={class:`card-title`},mt={class:`flex items-center justify-center`},ht={class:`flex items-center gap-2 min-w-0`},gt={class:`flex flex-col min-w-0`},_t={class:`font-bold text-color truncate`},vt={class:`text-xs text-muted truncate font-mono`},yt={class:`text-xs text-muted whitespace-nowrap`},bt={key:1,class:`flex flex-col items-center justify-center py-6 gap-2`},xt={class:`text-muted text-sm`},St={class:`flex flex-wrap items-center gap-2 mt-4`},Ct=s(T({__name:`Sensors`,setup(i){let s=c(()=>g(()=>import(`./SensorEdit-CcD4LvZr.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)),l=c(()=>g(()=>import(`./SensorHistory-5nCWisih.js`),__vite__mapDeps([22,1,2,3,23,4,5,6,7,8,9,10,11,12,13,14,24]),import.meta.url)),m=c(()=>g(()=>import(`./VirtualSensorCreate-CSzlXcHk.js`),__vite__mapDeps([25,1,2,3,4,5,6,7,8,9,10,11,12,13,14]),import.meta.url)),xe={color:`rgb(251, 146, 60)`,filter:`drop-shadow(0 0 6px rgba(251, 146, 60, 0.6))`},T=new Set([r.Motion,r.Object,r.Audio,r.Face,r.LicensePlate,r.Classifier,r.Contact,r.Occupancy,r.Smoke,r.Leak,r.Gas,r.CarbonMonoxide,r.Heat,r.Cold,r.Vibration,r.Tamper,r.Problem,r.Power]),D=new Ae,N=new ce,P=fe(),F=We(),I=d(),L=ge(),{t:R}=a(),{smBreakpoint:z}=ue(),Ue=se(),{uiSettings:B}=M(Ue),{sensors:V}=ie(),{data:H,isBusy:U}=D.getSensorsQuery(),{data:Ct}=N.getCamerasQuery({page:1,pageSize:-1}),{mutateAsync:wt,isPending:Tt}=D.createVirtualSensorQuery(),{mutateAsync:Et}=D.patchSensorQuery(),{mutateAsync:Dt,isPending:Ot}=D.deleteSensorQuery(),{mutateAsync:kt}=D.bulkDeleteSensorsQuery(),At={bodyRow:{class:`text-sm text-secondary`},column:{columnTitle:{class:`text-sm`}},datatable:{class:`z-0`}},jt=be(`menuRef`),W=A(``),G=A(!1),K=O(()=>he(void 0,`admin`)),q=O(()=>H.value??[]),Mt=O(()=>q.value.filter(e=>e.assignmentLocked).length),Nt=O(()=>[{key:`hideCameraBound`,label:R(`views.sensors.hide_camera_bound`),description:R(`views.sensors.hide_camera_bound_hint`),badge:Mt.value?String(Mt.value):void 0,toggle:!0,toggleState:B.value.sensors.hideCameraBound,onClick:()=>B.value.sensors.hideCameraBound=!B.value.sensors.hideCameraBound}]),Pt=O(()=>(Ct.value?.result??[]).map(e=>({label:e.name,value:e._id}))),J=O(()=>{let e=W.value.toLowerCase().trim();return q.value.map(e=>({sensor:e,label:e.displayName||e.name,typeLabel:R(`components.camera_options.sensor_type_${e.type}`),nativeLabel:e.nativeId??``,pluginLabel:e.virtual?R(`views.sensors.owner_virtual`):e.pluginName,assignedLabel:e.assignedCameraIds.map(e=>Pt.value.find(t=>t.value===e)?.label).filter(Boolean).join(`, `)})).filter(e=>!B.value.sensors.hideCameraBound||!e.sensor.assignmentLocked).filter(t=>!e||[t.label,t.typeLabel,t.nativeLabel,t.pluginLabel,t.assignedLabel].some(t=>t.toLowerCase().includes(e))).sort((e,t)=>e.label.localeCompare(t.label))}),Y=O(()=>F.isScanning.value),X=O(()=>{let e=W.value.toLowerCase().trim();return F.sortedSensors.value.filter(t=>!e||[t.name,t.id,t.pluginName,t.room??``].some(t=>t.toLowerCase().includes(e)))}),Ft=O(()=>new Map(V.value.map(e=>[e.id,e]))),{selectionMode:Z,selectedIds:It,selectedItems:Lt,allSelected:Rt,bulkBusy:Q,enterSelectionMode:zt,exitSelectionMode:Bt,toggleSelectAll:Vt,toggleSelection:Ht}=o(()=>J.value,e=>e.sensor.id),Ut=O(()=>Lt.value.filter(e=>$(e.sensor)));function Wt(e){P.openTextDialog({data:{title:R(`views.sensors.adopt_title`),contentText:R(`views.sensors.adopt_confirm`,{name:e.name,plugin:e.pluginName}),confirmText:R(`components.form.button.add`),loading:G},onConfirm:async()=>{G.value=!0;try{let t=await F.adoptSensor(e);if(!t.success){L.add({severity:`error`,summary:R(`views.sensors.adopt_title`),detail:t.error,life:3e3});return}await I.refetchQueries({queryKey:[`sensorsList`]}),L.add({severity:`success`,detail:R(`views.sensors.adopted`,{name:e.name}),life:3e3})}finally{G.value=!1}}})}async function Gt(){let e=await F.forceRescan();e.success||L.add({severity:`error`,summary:R(`views.sensors.rescan`),detail:e.error,life:3e3})}function Kt(e){let t=Ft.value.get(e.id),n=n=>t?t.getProperty(n):e.properties?.[n];switch(e.type){case r.Light:case r.Switch:return!!n(`on`);case r.Siren:return!!n(`active`);case r.Doorbell:return!!n(`ring`);case r.Garage:case r.Lock:return n(`currentState`)===0;case r.SecuritySystem:return n(`currentState`)===4;case r.Battery:return!!n(`low`);default:return T.has(String(e.type))&&!!n(`detected`)}}function $(e){return e.virtual||!e.connected}function qt(e){if(Z.value){Ht(e.sensor.id);return}K.value&&P.openComponentDialog(s,{data:{title:e.label,confirmText:R(`components.form.button.save`),contentProps:{sensor:e.sensor,cameraOptions:Pt.value}},onConfirm:async t=>{t&&await Et({id:e.sensor.id,data:t})}})}function Jt(e){P.openComponentDialog(l,{data:{title:`${e.displayName||e.name} · ${R(`views.sensors.history`)}`,hideConfirmButton:!0,contentProps:{sensorId:e.id,sensorType:String(e.type)}}})}function Yt(e,t,n){t.length&&L.add({severity:`error`,summary:R(`views.sensors.bulk_failed`,{count:t.length}),detail:t.join(`, `),life:8e3}),e&&L.add({severity:`success`,detail:R(n,{count:e}),life:5e3})}function Xt(){let e=[...Ut.value];P.openTextDialog({data:{title:R(`components.dialog.title.confirm`),contentText:R(`views.sensors.delete_selected_confirm`,{count:e.length}),confirmText:R(`components.form.button.remove`),confirmButtonProps:{severity:`danger`}},onConfirm:async()=>{Q.value=!0;try{let{skipped:t}=await kt({ids:e.map(e=>e.sensor.id)}),n=e.filter(e=>t.includes(e.sensor.id)).map(e=>e.label);Bt(),Yt(e.length-n.length,n,`views.sensors.delete_selected_done`)}finally{Q.value=!1}}})}function Zt(){P.openComponentDialog(m,{data:{title:R(`views.sensors.create_virtual`),confirmText:R(`components.form.button.save`),loading:Tt,contentProps:{}},onConfirm:async e=>{e&&await wt({data:e})}})}function Qt(e){P.openTextDialog({data:{title:R(`views.sensors.delete`),contentText:R(`views.sensors.delete_confirm`),confirmText:R(`components.form.button.remove`),loading:Ot,confirmButtonProps:{severity:`danger`}},onConfirm:async()=>{await Dt({id:e.id})}})}return f(Y,(e,t)=>{t&&!e&&I.refetchQueries({queryKey:[`sensorsList`]})}),u(()=>{K.value&&F.connect()}),Se(()=>{K.value&&F.unsubscribe()}),(r,i)=>{let ie=Re,a=ne,se=oe,o=Fe,ce=Ee,ue=n,fe=Te,s=Be,c=me,l=te,he=de,ge=e,u=De,d=t,f=He,m=Oe,g=Ie,be=Ne,Se=je,T=Me,D=ee,O=Pe,A=Ve,M=ae,Ae=pe,N=re;return p(),k(`div`,Ge,[C(z)?E(``,!0):(p(),k(`h1`,Ke,j(C(R)(`views.sensors.title`)),1)),x(se,{position:`left`},{default:v(()=>[x(a,{severity:`secondary`,text:``,class:`cui-button p-2 text-color non-draggable-region`,onClick:i[0]||=e=>r.$router.push(`/menu`)},{icon:v(()=>[x(ie,{class:`w-6 h-6`})]),_:1})]),_:1}),w(`div`,qe,[x(fe,{class:`flex-1`},{default:v(()=>[x(ce,null,{default:v(()=>[x(o,{class:`w-4 h-4`})]),_:1}),x(ue,{modelValue:C(W),"onUpdate:modelValue":i[1]||=e=>Ce(W)?W.value=e:null,placeholder:C(R)(`views.sensors.search`),class:`w-full`},null,8,[`modelValue`,`placeholder`])]),_:1}),_((p(),y(a,{severity:`secondary`,outlined:``,class:`cui-button shrink-0`,onClick:i[2]||=e=>C(jt)?.toggleMenu(e)},{icon:v(()=>[x(s,{class:`w-4.5 h-4.5`})]),_:1})),[[N,{value:C(R)(`views.sensors.settings`)},void 0,{left:!0}]]),x(c,{ref_key:`menuRef`,ref:jt,items:C(Nt),"auto-hide":!1,popover:{pt:{root:{class:`w-[22rem]`},content:{class:`p-0! rounded-xl! overflow-hidden!`}}}},null,8,[`items`])]),C(U)?(p(),k(`div`,Je,[x(l,{"stroke-width":`5`,class:`w-[30px] h-[30px]`})])):!C(J).length&&!C(X).length&&!C(Y)?(p(),k(`div`,Ye,[x(he,{class:`w-12 h-12 text-muted`}),w(`span`,Xe,j(C(q).length?C(R)(`views.sensors.no_matches`):C(R)(`views.sensors.no_sensors`)),1)])):C(J).length?(p(),k(`div`,Ze,[w(`span`,Qe,j(C(R)(`views.sensors.adopted_title`)),1),x(D,{class:`cui-card`},{content:v(()=>[x(T,{value:C(J),"striped-rows":``,pt:At,class:`w-full`,onRowClick:i[4]||=e=>qt(e.data)},{default:v(()=>[C(Z)?(p(),y(u,{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:v(({data:e})=>[x(ge,{"model-value":C(It).has(e.sensor.id),binary:``,size:`small`,onClick:i[3]||=h(()=>{},[`stop`]),"onUpdate:modelValue":t=>C(Ht)(e.sensor.id)},null,8,[`model-value`,`onUpdate:modelValue`])]),_:1})):E(``,!0),x(u,{header:``,"header-class":`p-2 pl-4 w-5 max-w-5`,class:`p-2 pl-4 w-5 max-w-5`},{body:v(({data:e})=>[w(`div`,$e,[_(x(d,{style:we({background:e.sensor.connected?`green`:`gray`})},null,8,[`style`]),[[N,{value:e.sensor.connected?C(R)(`views.sensors.connected`):C(R)(`views.sensors.disconnected`)}]])])]),_:1}),x(u,{field:`label`,header:C(R)(`views.sensors.name`),sortable:``,"header-class":`p-2`,class:`p-2 w-[40%] min-w-[180px] max-w-0`},{body:v(({data:e})=>[w(`div`,et,[(p(),y(ye(C(Le)(e.sensor.type)),{class:S([`w-5 h-5 shrink-0 transition-colors`,{"text-muted":!Kt(e.sensor)}]),style:we(Kt(e.sensor)?xe:void 0)},null,8,[`class`,`style`])),w(`div`,tt,[w(`div`,nt,[_((p(),k(`span`,rt,[b(j(e.label),1)])),[[N,e.label]]),e.sensor.exposed?E(``,!0):_((p(),y(f,{key:0,class:`w-4 h-4 shrink-0 text-muted`},null,512)),[[N,C(R)(`views.sensors.not_exposed`)]])]),C(z)?(p(),k(`span`,it,j(e.typeLabel)+` · `+j(e.pluginLabel),1)):E(``,!0),C(z)&&e.nativeLabel?_((p(),k(`span`,at,[b(j(e.nativeLabel),1)])),[[N,e.nativeLabel]]):E(``,!0)])])]),_:1},8,[`header`]),C(z)?E(``,!0):(p(),y(u,{key:1,field:`nativeLabel`,header:C(R)(`views.sensors.native_id`),sortable:``,"header-class":`p-2 whitespace-nowrap cui-col-center`,class:`p-2 w-[28%] min-w-[160px] max-w-0 text-center`},{body:v(({data:e})=>[e.nativeLabel?_((p(),k(`span`,ot,[b(j(e.nativeLabel),1)])),[[N,e.nativeLabel]]):(p(),k(`span`,st,`—`))]),_:1},8,[`header`])),C(z)?E(``,!0):(p(),y(u,{key:2,field:`typeLabel`,header:C(R)(`views.sensors.type`),sortable:``,"header-class":`p-2 whitespace-nowrap cui-col-center`,class:`p-2 whitespace-nowrap text-center`},{body:v(({data:e})=>[w(`span`,ct,j(e.typeLabel),1)]),_:1},8,[`header`])),C(z)?E(``,!0):(p(),y(u,{key:3,field:`pluginLabel`,header:C(R)(`views.sensors.plugin`),sortable:``,"header-class":`p-2 whitespace-nowrap cui-col-center`,class:`p-2 whitespace-nowrap text-center`},{body:v(({data:e})=>[x(m,{label:e.pluginLabel,class:`text-xs whitespace-nowrap`},null,8,[`label`])]),_:1},8,[`header`])),x(u,{field:`assignedLabel`,header:C(R)(`views.sensors.assigned_cameras`),sortable:``,"header-class":`p-2 whitespace-nowrap cui-col-center`,class:`p-2 min-w-[140px] text-center`},{body:v(({data:e})=>[w(`div`,lt,[e.sensor.assignmentLocked?_((p(),y(g,{key:0,class:`w-3.5 h-3.5 shrink-0 text-muted`},null,512)),[[N,C(R)(`views.sensors.assigned_cameras_locked_hint`)]]):E(``,!0),w(`span`,{class:S([`text-xs truncate`,e.assignedLabel?`text-muted`:`text-muted italic`])},j(e.assignedLabel||C(R)(`views.sensors.unassigned`)),3)])]),_:1},8,[`header`]),x(u,{header:``,"header-class":`p-2 pr-4 w-28`,class:`p-2 pr-4 w-28`},{body:v(({data:e})=>[w(`div`,ut,[_((p(),y(a,{text:``,rounded:``,severity:`secondary`,class:`cui-icon-sm shrink-0`,onClick:h(t=>Jt(e.sensor),[`stop`])},{icon:v(()=>[x(be,{width:`100%`,height:`100%`})]),_:1},8,[`onClick`])),[[N,C(R)(`views.sensors.history`),void 0,{left:!0}]]),C(K)?_((p(),k(`span`,dt,[x(a,{text:``,rounded:``,severity:`danger`,class:`cui-icon-sm`,disabled:!$(e.sensor),onClick:h(t=>Qt(e.sensor),[`stop`])},{icon:v(()=>[x(Se,{width:`100%`,height:`100%`})]),_:1},8,[`disabled`,`onClick`])])),[[N,$(e.sensor)?C(R)(`views.sensors.delete`):C(R)(`views.sensors.delete_connected`),void 0,{left:!0}]]):E(``,!0)])]),_:1})]),_:1},8,[`value`])]),_:1})])):E(``,!0),C(K)&&!C(U)?(p(),k(`div`,ft,[w(`span`,pt,j(C(R)(`views.sensors.discovered_title`)),1),x(D,{class:`cui-card`},{content:v(()=>[C(X).length?(p(),y(T,{key:0,value:C(X),"striped-rows":``,pt:At,class:S([`w-full`,{"opacity-60 pointer-events-none":C(G)}]),onRowClick:i[5]||=e=>Wt(e.data)},{default:v(()=>[x(u,{header:``,"header-class":`p-2 pl-4 w-5 max-w-5`,class:`p-2 pl-4 w-5 max-w-5`},{body:v(()=>[w(`div`,mt,[_(x(d,{style:{background:`orange`}},null,512),[[N,{value:C(R)(`views.sensors.status_discovered`)}]])])]),_:1}),x(u,{field:`name`,header:C(R)(`views.sensors.name`),sortable:``,"header-class":`p-2`,class:`p-2 w-full min-w-[200px] max-w-0`},{body:v(({data:e})=>[w(`div`,ht,[(p(),y(ye(C(Le)(e.type)),{class:`w-5 h-5 shrink-0 text-muted`})),w(`div`,gt,[_((p(),k(`span`,_t,[b(j(e.name),1)])),[[N,e.name]]),_((p(),k(`span`,vt,[b(j(e.id),1)])),[[N,e.id]])])])]),_:1},8,[`header`]),C(z)?E(``,!0):(p(),y(u,{key:0,field:`type`,header:C(R)(`views.sensors.type`),sortable:``,"header-class":`p-2 whitespace-nowrap`,class:`p-2 whitespace-nowrap`},{body:v(({data:e})=>[w(`span`,yt,j(C(R)(`components.camera_options.sensor_type_${e.type}`)),1)]),_:1},8,[`header`])),C(z)?E(``,!0):(p(),y(u,{key:1,field:`room`,header:C(R)(`components.form.label.room`),sortable:``,"header-class":`p-2 whitespace-nowrap`,class:`p-2 whitespace-nowrap`},{body:v(({data:e})=>[e.room?(p(),y(m,{key:0,label:e.room,class:`text-xs whitespace-nowrap`},null,8,[`label`])):E(``,!0)]),_:1},8,[`header`])),x(u,{field:`pluginName`,header:C(R)(`views.sensors.plugin`),sortable:``,"header-class":`p-2 pr-4 whitespace-nowrap`,class:`p-2 pr-4 whitespace-nowrap`},{body:v(({data:e})=>[x(m,{label:e.pluginName,class:`text-xs whitespace-nowrap`},null,8,[`label`])]),_:1},8,[`header`])]),_:1},8,[`value`,`class`])):(p(),k(`div`,bt,[C(Y)?(p(),y(O,{key:0,width:`24px`,height:`24px`,class:`text-muted`})):(p(),y(A,{key:1,width:`32px`,height:`32px`,class:`text-muted`})),w(`span`,xt,j(C(Y)?C(R)(`views.sensors.scanning`):C(R)(`views.sensors.no_discovered`)),1)])),w(`div`,St,[i[6]||=w(`div`,{class:`ml-auto`},null,-1),x(a,{severity:`secondary`,class:`cui-button-medium`,label:C(R)(`views.sensors.rescan`),loading:C(Y),onClick:Gt},null,8,[`label`,`loading`])])]),_:1})])):E(``,!0),C(K)?(p(),y(Ae,{key:5,"force-visible":C(Z)},{default:v(()=>[C(Z)?(p(),k(ve,{key:1},[x(M,{grouped:``,"tooltip-props":{value:r.$t(`components.form.tooltip.cancel_selection`)},"button-props":{severity:`secondary`},icon:C(ke),"icon-props":{width:`100%`,height:`100%`},onClick:C(Bt)},null,8,[`tooltip-props`,`icon`,`onClick`]),x(M,{grouped:``,"tooltip-props":{value:r.$t(`components.form.tooltip.select_all`)},"button-props":{severity:C(Rt)?`primary`:`secondary`},icon:C(_e),"icon-props":{width:`100%`,height:`100%`},onClick:C(Vt)},null,8,[`tooltip-props`,`button-props`,`icon`,`onClick`]),x(M,{grouped:``,"tooltip-props":{value:C(R)(`views.sensors.delete_selected`)},"button-props":{severity:`danger`,disabled:!C(Ut).length||C(Q)},icon:C(je),"icon-props":{width:`100%`,height:`100%`},onClick:Xt},null,8,[`tooltip-props`,`button-props`,`icon`])],64)):(p(),k(ve,{key:0},[C(J).length?(p(),y(M,{key:0,grouped:``,"tooltip-props":{value:C(R)(`views.sensors.select`)},"button-props":{severity:`secondary`},icon:C(le),"icon-props":{width:`100%`,height:`100%`},onClick:C(zt)},null,8,[`tooltip-props`,`icon`,`onClick`])):E(``,!0),x(M,{grouped:``,"tooltip-props":{value:C(R)(`views.sensors.create_virtual`)},"button-props":{class:`text-white`},icon:C(ze),"icon-props":{width:`30px`,height:`30px`},onClick:Zt},null,8,[`tooltip-props`,`icon`])],64))]),_:1},8,[`force-visible`])):E(``,!0)])}}}),[[`__scopeId`,`data-v-c2e0b31d`]]);export{Ct as default};
@@ -0,0 +1 @@
1
+ import{Pt as e,Rt as t,ei as n,ki as r,pi as i,qr as a}from"./vendor-cameraui-OySaGjmo.js";import{B as o,Bn as s,C as c,Ln as l,Mn as u,Nn as d,Rn as f,b as p,kn as m,xn as h,zn as g}from"./api-ou2-S3Z9.js";import{$t as _,An as v,In as y,Kn as b,Mn as x,Pn as S,Rn as C,Wn as w,Yn as T,an as E,fn as D,gr as O,hr as k,in as A,mn as j,on as M,pr as N,rn as P,sn as F,sr as I,vr as L,wn as R,yr as z}from"./vendor-AX0A8AMd.js";import{p as B,u as V}from"./vendor-core-BZ52eUwC.js";import{t as H}from"./back-filled-MAIFvJqE.js";import{t as U}from"./useTabSwipe-C3qfclkm.js";import{n as W,t as G}from"./round-alt-arrow-left-bold-2FHg8vBl.js";var K={},q={class:`w-full h-full flex items-center justify-center`};function J(t,n){let r=e;return x(),F(`div`,q,[D(r,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])}var Y=m(K,[[`render`,J]]),X={key:0},Z={key:1},Q={class:`overflow-hidden w-full`},ee={class:`ml-2 flex flex-row items-center justify-between`},te={class:`text-start flex-1`},ne={class:`text-sm font-bold max-w-100 truncate`},re={key:0,class:`text-sm text-muted font-normal`},ie=m(j({__name:`CuiSubNavItem`,props:{label:{},to:{},description:{},icon:{},activeIcon:{}},setup(e){let{icon:n,activeIcon:r,label:i,description:a,to:o}=N(e);return(e,s)=>{let c=t,l=y(`RouterLink`);return x(),E(l,{to:k(o)},{default:T(({isExactActive:e})=>[D(c,{text:``,severity:`secondary`,class:O([`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(()=>[k(n)&&!e||!k(r)?(x(),F(`div`,X,[D(k(n),{class:`w-[24px] h-[24px]`})])):k(r)&&e?(x(),F(`div`,Z,[D(k(r),{class:`w-[24px] h-[24px]`})])):M(``,!0),A(`div`,Q,[A(`div`,ee,[A(`div`,te,[A(`div`,ne,z(k(i)),1),k(a)?(x(),F(`div`,re,z(k(a)),1)):M(``,!0)])])])]),_:2},1032,[`class`])]),_:1},8,[`to`])}}}),[[`__scopeId`,`data-v-a5399c04`]]),$={CLOSED:0,EXPANDED:288},ae=m(j({__name:`CuiSubNavbar`,setup(e,{expose:t}){let n=V(),{bus:o}=l(),{xlBreakpoint:s,mdBreakpoint:c}=u(),{bottombarHeight:f,subbarState:m,navbarState:g,topbarOffset:y}=d(),C=w(`subnavbarRef`),T=I(`closed`),D=P(()=>s.value?`opened`:T.value),O=P(()=>D.value===`closed`?$.CLOSED:$.EXPANDED),j=P(()=>p.find(e=>e.name===`Settings`).children.filter(e=>e.meta?.settingsBar&&h(e))),M=P(()=>[`personal`,`system`].map(e=>({key:e,routes:j.value.filter(t=>(t.meta.settingsBar.group??`personal`)===e)})).filter(e=>e.routes.length>0));function N(){T.value=`closed`,o.emit({subbarState:`closed`})}function B(){R(()=>{let e=C.value?.querySelector(`.subnavitem-button.active`);e&&e.scrollIntoView({block:`center`,behavior:`smooth`})})}let H=r(B,100);return a(C,e=>{let t=e.target,n=t.closest(`#menu-icon`),r=t.closest(`#submenu-icon`),i=t.closest(`#navbar-icon`);!n&&!r&&!i&&N()}),i(C,()=>{H()}),b(m,e=>{e&&e!==T.value&&(T.value=e)},{immediate:!0}),b(n.currentRoute,(e,t)=>{e.path!==t.path&&N()}),b(g,e=>{e===`opened`&&c.value&&N()}),v(()=>{B()}),t({subnavbarState:D}),(e,t)=>{let n=ie;return x(),F(`nav`,{ref_key:`subnavbarRef`,ref:C,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:L({width:`${k(O)}px`,borderRightWidth:k(D)===`opened`?`1px`:`0px`,paddingBottom:`calc(env(safe-area-inset-top, 0px) + env(safe-area-inset-bottom, 0px) + ${k(f)}px + ${k(y)}px)`})},[(x(!0),F(_,null,S(k(M),t=>(x(),F(_,{key:t.key},[A(`span`,{class:`shrink-0 pl-4 pt-4 pb-1 text-[11px] font-semibold uppercase tracking-widest text-muted`,style:L({width:`${k($).EXPANDED}px`})},z(e.$t(`views.settings.section_${t.key}`)),5),(x(!0),F(_,null,S(t.routes,t=>(x(),E(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:L({width:`${k($).EXPANDED}px`})},null,8,[`icon`,`active-icon`,`to`,`label`,`description`,`style`]))),128))],64))),128))],4)}}}),[[`__scopeId`,`data-v-962a92c6`]]),oe={class:`font-semibold text-xl truncate`},se={class:`w-full h-full relative`},ce={key:0,class:`w-full flex flex-row h-[calc(40px+1rem)] py-2 items-center fixed z-2`},le={class:`relative z-2 page-title !m-0`},ue=j({__name:`Settings`,setup(e){let r=V(),i=f(),{bus:a}=l(),{mdBreakpoint:d,xlBreakpoint:m,smBreakpoint:_}=u(),v=c(),{routerLoading:S}=B(v),j=[`personal`,`system`].flatMap(e=>p.find(e=>e.name===`Settings`).children.filter(t=>h(t)&&t.meta?.settingsBar&&(t.meta.settingsBar.group??`personal`)===e)),N=w(`subnavbarRef`),I=w(`containerRef`),R=P(()=>r.currentRoute.value.path===`/settings`);U(I,e=>{if(R.value)return;let t=j.findIndex(e=>e.path===r.currentRoute.value.path.split(`/settings/`)[1]),n=e===`right`?j[t-1]:j[t+1];n&&r.push({path:n.path})});let K=n(N),q=P(()=>N.value?.subnavbarState??`closed`);function J(){let e=q.value===`opened`?`closed`:`opened`;a.emit({subbarState:e})}return b(_,e=>{if(!e&&R.value){let e=s().uiSettings.interface.selectedSettingsView;r.replace(`/settings/${g.includes(e)?e:`account`}`)}}),(e,n)=>{let r=o,a=H,s=t,c=ae,l=G,u=W,f=Y,p=y(`RouterView`);return x(),F(`div`,null,[D(r,{position:`center`},{default:T(()=>[A(`span`,oe,z(e.$t(`views.settings.title_${e.$route.meta?.name}`)),1)]),_:1}),D(r,{position:`left`},{default:T(()=>[D(s,{severity:`secondary`,text:``,class:`cui-button p-2 text-color non-draggable-region`,onClick:n[0]||=t=>e.$router.push(k(R)?`/menu`:`/settings`)},{icon:T(()=>[D(a,{class:`w-6 h-6`})]),_:1})]),_:1}),k(_)?M(``,!0):(x(),E(c,{key:0,ref_key:`subnavbarRef`,ref:N,class:`z-4 min-w-0`},null,512)),A(`main`,{class:`relative w-full h-full`,style:L({paddingLeft:k(d)?`0px`:`${k(K).width.value}px`})},[A(`div`,se,[k(_)?M(``,!0):(x(),F(`div`,ce,[n[1]||=A(`div`,{class:`ml-2`},null,-1),k(m)?M(``,!0):(x(),E(s,{key:0,id:`submenu-icon`,severity:`secondary`,class:`mr-2 cui-icon-lg relative z-2`,text:``,rounded:``,onClick:J},{icon:T(()=>[k(q)===`opened`?(x(),E(l,{key:0,width:`100%`,height:`100%`})):(x(),E(u,{key:1,width:`100%`,height:`100%`}))]),_:1})),A(`h1`,le,z(e.$t(`views.settings.title_${e.$route.meta?.name}`)),1),n[2]||=A(`div`,{class:`gradient-blur rotate-180 !h-[70px]`},[A(`div`),A(`div`),A(`div`),A(`div`),A(`div`),A(`div`)],-1)])),A(`div`,{ref_key:`containerRef`,ref:I,class:O([`px-2 h-full w-full`,{"py-4":k(_),"pt-[calc(40px+2rem)] pb-2":!k(_)}])},[k(S)&&k(i).showRouterLoadingSub.value?(x(),E(f,{key:0,class:`w-full h-full relative overflow-x-hidden`})):(x(),E(p,{key:1},{default:T(({Component:e})=>[(x(),E(C(e),{class:`h-full`}))]),_:1}))],2)])],4)])}}});export{ue as default};
@@ -0,0 +1 @@
1
+ import{t as e}from"./SettingsAccount-DekJwq5r.js";export{e as default};
@@ -0,0 +1 @@
1
+ import{F as e,G as t,Pt as n,Rt as r,Wt as i,zr as a}from"./vendor-cameraui-OySaGjmo.js";import{D as o,Jn as s,R as c,_t as l,ct as u,dr as d,g as f,gt as ee,h as p,hn as te,i as m,j as h,kn as g,l as ne,qn as re,xr as _}from"./api-ou2-S3Z9.js";import{$t as ie,An as ae,Cn as v,Kt as y,Mn as b,Pn as oe,Rn as se,Wn as ce,Xn as le,Yn as x,an as S,b as ue,dn as de,fn as C,hr as w,in as T,mn as E,nr as D,on as O,pr as fe,rn as k,rr as A,sn as j,sr as M,ur as N,v as P,y as F,yn as I,yr as L}from"./vendor-AX0A8AMd.js";import{n as R,r as z}from"./vendor-zod-B0ZFM2Pr.js";import{p as pe}from"./vendor-core-BZ52eUwC.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-CvHDsVi_.js";import{t as Se}from"./CuiDataTable-BDyku8Vr.js";import{t as Ce}from"./CuiQRCode-B0CF6e-5.js";import{n as we,t as B}from"./auth-O2tHbgZf.js";var V={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function H(e,t){return b(),j(`svg`,V,[...t[0]||=[T(`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=A({name:`mdi-key`,render:H}),U={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function W(e,t){return b(),j(`svg`,U,[...t[0]||=[T(`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=A({name:`mdi-cellphone`,render:W}),G={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function K(e,t){return b(),j(`svg`,G,[...t[0]||=[T(`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 De=A({name:`mdi-key-variant`,render:K}),Oe={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function ke(e,t){return b(),j(`svg`,Oe,[...t[0]||=[T(`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 Ae=A({name:`mdi-laptop`,render:ke}),je={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function Me(e,t){return b(),j(`svg`,je,[...t[0]||=[T(`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 Ne=A({name:`mdi-television`,render:Me}),Pe={class:`flex flex-col gap-6`},Fe={class:`token-box`},Ie={class:`token-value`},Le=g(E({__name:`ApiTokenCreated`,props:{token:{}},setup(e,{expose:t}){let n=e,o=_(),{t:s}=a(),{token:c}=fe(n);async function l(){await m(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 t({onConfirm:u}),(e,t)=>{let n=xe,a=r,o=i;return b(),j(`div`,Pe,[C(n,{severity:`warn`},{default:x(()=>[de(L(e.$t(`views.settings.api_tokens.created_warning`)),1)]),_:1}),T(`div`,Fe,[T(`span`,Ie,L(w(c)),1),le((b(),S(a,{text:``,rounded:``,class:`cui-icon-md shrink-0`,onClick:l},{icon:x(()=>[C(w(ee),{width:`100%`,height:`100%`})]),_:1})),[[o,{value:e.$t(`components.form.button.copy`)}]])])])}}}),[[`__scopeId`,`data-v-591cfcb4`]]),Re={class:`flex flex-col gap-2 w-full`},ze={for:`apiTokenName`,class:`cui-label`},Be={key:0,class:`text-xs text-red-500`},Ve=E({__name:`CreateApiToken`,props:{existingNames:{}},setup(t,{expose:n}){let r=t,i=M(``),a=k(()=>r.existingNames.includes(i.value.trim()));return n({onConfirm:async()=>{let e=i.value.trim();return!e||a.value?null:e}}),(t,n)=>{let r=e;return b(),j(`div`,Re,[T(`label`,ze,L(t.$t(`views.settings.api_tokens.name_label`)),1),C(r,{id:`apiTokenName`,modelValue:w(i),"onUpdate:modelValue":n[0]||=e=>D(i)?i.value=e:null,class:`w-full`,placeholder:t.$t(`views.settings.api_tokens.name_placeholder`),autofocus:``,invalid:w(a)},null,8,[`modelValue`,`placeholder`,`invalid`]),w(a)?(b(),j(`span`,Be,L(t.$t(`views.settings.api_tokens.name_exists`)),1)):O(``,!0)])}}}),He={class:`flex flex-col gap-6`},Ue={class:`backup-codes-grid`},We=g(E({__name:`TwoFactorBackupCodes`,props:{backupCodes:{}},setup(e,{expose:t}){let{backupCodes:n}=fe(e);async function r(){}return t({onConfirm:r}),(e,t)=>{let r=xe;return b(),j(`div`,He,[C(r,{severity:`warn`},{default:x(()=>[de(L(e.$t(`views.settings.security.backup_warning`)),1)]),_:1}),T(`div`,Ue,[(b(!0),j(ie,null,oe(w(n),e=>(b(),j(`span`,{key:e,class:`backup-code`},L(e),1))),128))])])}}}),[[`__scopeId`,`data-v-0761a2ae`]]),Ge={class:`flex flex-col gap-6`},Ke={class:`text-muted`},qe={class:`flex flex-col gap-2 justify-center items-center mt-5`},Je={class:`cui-label`},Ye=E({__name:`TwoFactorDisable`,setup(e,{expose:t}){let n=new B,r=_(),{t:i}=a(),o=I(`dialogRefProps`),{mutateAsync:s,isPending:c}=n.disable2FAQuery(),l=M(``),u=k(()=>!!(o.loading?.value||c.value)),d=k(()=>l.value.length<6);async function f(){if(l.value.length<6)return null;try{await s({code:l.value}),r.add({severity:`success`,detail:i(`views.settings.security.2fa_disabled_success`),life:3e3})}catch(e){return r.add({severity:`error`,detail:e,life:3e3}),null}}return t({isLoading:u,isDisabled:d,onConfirm:f}),(e,t)=>{let n=be;return b(),j(`div`,Ge,[T(`p`,Ke,L(e.$t(`views.settings.security.disable_confirm`)),1),T(`div`,qe,[T(`label`,Je,L(e.$t(`views.settings.security.enter_code`)),1),C(n,{modelValue:w(l),"onUpdate:modelValue":t[0]||=e=>D(l)?l.value=e:null,length:6,"integer-only":``,class:`justify-center`},null,8,[`modelValue`])])])}}}),Xe={class:`flex flex-col gap-6`},Ze={class:`text-muted`},q={class:`flex flex-col gap-2 justify-center items-center mt-5`},J={class:`cui-label`},Qe=E({__name:`TwoFactorRegenerate`,props:{onBackupCodesGenerated:{type:Function}},setup(e,{expose:t}){let n=new B,r=e,i=_(),{t:o}=a(),s=I(`dialogRefProps`),{mutateAsync:c,isPending:l}=n.regenerateBackupCodesQuery(),u=M(``),d=k(()=>!!(s.loading?.value||l.value)),f=k(()=>u.value.length<6);async function ee(){if(u.value.length<6)return null;try{let e=await c({code:u.value});i.add({severity:`success`,detail:o(`views.settings.security.backup_regenerated`),life:3e3}),r.onBackupCodesGenerated&&r.onBackupCodesGenerated(e.backupCodes)}catch(e){return i.add({severity:`error`,detail:e,life:3e3}),null}}return t({isLoading:d,isDisabled:f,onConfirm:ee}),(e,t)=>{let n=be;return b(),j(`div`,Xe,[T(`p`,Ze,L(e.$t(`views.settings.security.regenerate_confirm`)),1),T(`div`,q,[T(`label`,J,L(e.$t(`views.settings.security.enter_code`)),1),C(n,{modelValue:w(u),"onUpdate:modelValue":t[0]||=e=>D(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`},Y=g(E({__name:`SettingsAccount`,props:{firststeps:{type:Boolean}},setup(g,{expose:oe}){let E=new B,A=g,I=u(),V=_(),{t:H}=a(),{firststeps:U}=fe(A),W=f(),{user:G}=pe(W),{data:K,isLoading:Oe}=E.toggleQueryActivator(`get2FAStatusQuery`,!U.value).get2FAStatusQuery(),{mutateAsync:ke,isPending:je}=E.setup2FAQuery(),{mutateAsync:Me,isPending:Pe}=E.enable2FAQuery(),{data:Fe,isBusy:Ie}=E.toggleQueryActivator(`listSessionsQuery`,!U.value).listSessionsQuery({page:1,pageSize:-1}),{mutateAsync:Re}=E.revokeSessionQuery(),{mutateAsync:ze}=E.revokeOtherSessionsQuery(),{data:Be,isBusy:He}=E.toggleQueryActivator(`listApiTokensQuery`,!U.value).listApiTokensQuery(),{mutateAsync:Ue,isPending:Ge}=E.createApiTokenQuery(),{mutateAsync:Ke}=E.revokeApiTokenQuery(),qe=R({password:o,passwordConfirm:z().min(1)}).refine(e=>e.password===e.passwordConfirm,{message:`Passwords do not match`,path:[`passwordConfirm`]}),Je=R({username:z().min(1),password:o,passwordConfirm:z().min(1)}).refine(e=>e.password===e.passwordConfirm,{message:`Passwords do not match`,path:[`passwordConfirm`]}),Xe=ce(`formRef`),Ze=ce(`passwordFormRef`),q=N(),J=M(`avatar`),Y=M(G.value?.username??``),X=M(!1),Z=M(!1),Q=M(null),$=M(``),_n=M(null),vn=M(!1),yn=M(null);M(!1);let bn=M(!1),xn=M(!1),Sn=k(()=>!1),Cn={bodyRow:{class:`text-sm text-secondary`},column:{columnTitle:{class:`text-sm`}}},wn=k(()=>(Fe.value??[]).filter(e=>!e.is_current).length),Tn=k(()=>!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 m(Q.value.secret)}function Dn(e){return e===`tv`?Ne:e===`native`?Ee:Ae}async function On(e){_n.value=e;try{await Re({id:e})}catch(e){V.add({severity:`error`,detail:e,life:3e3})}finally{_n.value=null}}function kn(){I.openComponentDialog(Ve,{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 Ue({name:e})).token)}catch(e){V.add({severity:`error`,detail:e,life:3e3})}}})}function An(e){I.openComponentDialog(Le,{data:{title:H(`views.settings.api_tokens.created_title`),confirmText:H(`components.form.button.close`),hideCancelButton:!0,contentProps:{token:e}}})}function jn(e){I.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 Ke({id:e.id})}catch(e){V.add({severity:`error`,detail:e,life:3e3})}finally{yn.value=null}}})}function Mn(){I.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 ze()}catch(e){V.add({severity:`error`,detail:e,life:3e3})}finally{vn.value=!1}}})}async function Nn(){try{Q.value=await ke()}catch(e){V.add({severity:`error`,detail:e,life:3e3})}}function Pn(){Q.value=null,$.value=``}async function Fn(){try{let e=await Me({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(){I.openComponentDialog(Ye,{data:{title:H(`views.settings.security.disable_2fa`),confirmText:H(`views.settings.security.disable_2fa`),confirmButtonProps:{severity:`danger`},contentProps:{}}})}function Ln(){I.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){I.openComponentDialog(We,{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 p(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}),Ze.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(d()),bn.value=!1,V.add({severity:`success`,detail:H(`views.settings.biometric.cleared`),life:3e3})}finally{xn.value=!1}}}return ae(()=>{Hn()}),oe({formRef:Xe}),(a,o)=>{let u=te,d=e,f=ge,p=t,m=ye,h=r,g=n,_=Ce,ae=l,oe=he,ce=be,E=re,fe=Te,k=s,A=xe,M=me,N=_e,I=c,R=Se,z=ve,pe=we,B=i;return b(),j(`div`,null,[T(`div`,$e,[w(U)?(b(),S(w(ue),{key:0,ref_key:`formRef`,ref:Xe,"validation-schema":w(Je),class:`flex flex-col w-full gap-6`},{default:x(()=>[T(`div`,et,[T(`div`,tt,[T(`label`,nt,[C(u,{src:w(J),size:64,"show-border":!1,class:`cursor-pointer`},null,8,[`src`]),T(`input`,{id:`file-input`,type:`file`,class:`hidden`,accept:`image/png,image/jpeg,image/jpg`,onChange:o[0]||=e=>zn(e)},null,32)])]),T(`span`,rt,L(a.$t(`views.settings.profile`)),1),C(p,{class:`cui-card`},{content:x(()=>[T(`div`,it,[C(w(F),{"model-value":w(G)?.username,name:`username`,as:`div`,class:`flex flex-col field-gap`},{default:x(({field:e,errors:t})=>[T(`label`,at,L(a.$t(`components.form.label.username`)),1),C(f,null,{default:x(()=>[C(d,v(e,{invalid:t.length>0,type:`text`}),null,16,[`invalid`])]),_:2},1024),C(y,{name:`fade`},{default:x(()=>[C(w(P),{name:`username`,class:`cui-input-error`})]),_:1})]),_:1},8,[`model-value`])])]),_:1})]),T(`div`,null,[T(`span`,ot,L(a.$t(`views.settings.password`)),1),C(p,{class:`cui-card`},{content:x(()=>[T(`div`,st,[C(w(F),{name:`password`,as:`div`,class:`flex flex-col field-gap`},{default:x(({field:e,errors:t})=>[T(`label`,ct,L(a.$t(`components.form.label.new_password`)),1),C(f,null,{default:x(()=>[C(m,v({invalid:t.length>0},e,{feedback:!1,"toggle-mask":``}),null,16,[`invalid`])]),_:2},1024),C(y,{name:`fade`},{default:x(()=>[C(w(P),{name:`password`,class:`cui-input-error`})]),_:1})]),_:1}),C(w(F),{name:`passwordConfirm`,as:`div`,class:`flex flex-col field-gap`},{default:x(({field:e,errors:t})=>[T(`label`,lt,L(a.$t(`components.form.label.new_password_confirm`)),1),C(f,null,{default:x(()=>[C(m,v({invalid:t.length>0},e,{feedback:!1,"toggle-mask":``}),null,16,[`invalid`])]),_:2},1024),C(y,{name:`fade`},{default:x(()=>[C(w(P),{name:`passwordConfirm`,class:`cui-input-error`})]),_:1})]),_:1})])]),_:1})])]),_:1},8,[`validation-schema`])):(b(),j(ie,{key:1},[T(`div`,ut,[T(`div`,dt,[T(`label`,ft,[C(u,{src:w(J),size:64,"show-border":!1,class:`cursor-pointer`},null,8,[`src`]),T(`input`,{id:`file-input`,type:`file`,class:`hidden`,accept:`image/png,image/jpeg,image/jpg`,onChange:o[1]||=e=>zn(e)},null,32)])]),T(`span`,pt,L(a.$t(`views.settings.profile`)),1),C(p,{class:`cui-card`},{content:x(()=>[T(`div`,mt,[T(`div`,ht,[T(`label`,gt,L(a.$t(`components.form.label.username`)),1),C(f,null,{default:x(()=>[C(d,{modelValue:w(Y),"onUpdate:modelValue":o[2]||=e=>D(Y)?Y.value=e:null,loading:w(X),type:`text`},null,8,[`modelValue`,`loading`])]),_:1})]),T(`div`,_t,[C(h,{loading:w(X),class:`cui-button-medium`,label:a.$t(`components.form.button.update_profile`),onClick:Bn},null,8,[`loading`,`label`])])])]),_:1})]),T(`div`,null,[T(`span`,vt,L(a.$t(`views.settings.password`)),1),C(p,{class:`cui-card`},{content:x(()=>[C(w(ue),{ref_key:`passwordFormRef`,ref:Ze,"validation-schema":w(qe),class:`flex flex-col gap-6`,onSubmit:o[3]||=e=>Vn(e)},{default:x(()=>[C(w(F),{name:`password`,as:`div`,class:`flex flex-col field-gap`},{default:x(({field:e,errors:t})=>[T(`label`,yt,L(a.$t(`components.form.label.new_password`)),1),C(f,null,{default:x(()=>[C(m,v({invalid:t.length>0},e,{loading:w(Z),feedback:!1,"toggle-mask":``}),null,16,[`invalid`,`loading`])]),_:2},1024),C(y,{name:`fade`},{default:x(()=>[C(w(P),{name:`password`,class:`cui-input-error`})]),_:1})]),_:1}),C(w(F),{name:`passwordConfirm`,as:`div`,class:`flex flex-col field-gap`},{default:x(({field:e,errors:t})=>[T(`label`,bt,L(a.$t(`components.form.label.new_password_confirm`)),1),C(f,null,{default:x(()=>[C(m,v({invalid:t.length>0},e,{loading:w(Z),feedback:!1,"toggle-mask":``}),null,16,[`invalid`,`loading`])]),_:2},1024),C(y,{name:`fade`},{default:x(()=>[C(w(P),{name:`passwordConfirm`,class:`cui-input-error`})]),_:1})]),_:1}),T(`div`,xt,[C(h,{type:`submit`,loading:w(Z),class:`cui-button-medium`,label:a.$t(`components.form.button.change_password`)},null,8,[`loading`,`label`])])]),_:1},8,[`validation-schema`])]),_:1})]),T(`div`,null,[T(`span`,St,L(a.$t(`views.settings.security.title`)),1),C(p,{class:`cui-card`},{content:x(()=>[w(Oe)?(b(),j(`div`,Ct,[C(g,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):(b(),S(y,{key:1,name:`fade`,mode:`out-in`},{default:x(()=>[!w(K)?.enabled&&!w(Q)&&!w(je)?(b(),j(`div`,wt,[T(`div`,Tt,[T(`span`,Et,L(a.$t(`views.settings.security.2fa_title`)),1),T(`span`,Dt,L(a.$t(`views.settings.security.2fa_description`)),1)]),C(h,{class:`cui-button-medium ml-auto`,label:a.$t(`views.settings.security.setup_2fa`),onClick:Nn},null,8,[`label`])])):!w(K)?.enabled&&w(je)?(b(),j(`div`,Ot,[C(g,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`}),T(`span`,kt,L(a.$t(`views.settings.security.generating_qr`)),1)])):!w(K)?.enabled&&w(Q)?(b(),j(`div`,At,[T(`div`,jt,[C(_,{value:w(Tn),size:160,"logo-size":36},null,8,[`value`]),T(`p`,Mt,L(a.$t(`views.settings.security.scan_qr`)),1)]),T(`div`,Nt,[T(`div`,Pt,[T(`label`,Ft,L(a.$t(`views.settings.security.manual_entry`)),1),C(f,null,{default:x(()=>[C(d,{"model-value":w(Q)?.secret,readonly:``,class:`font-mono text-sm`},null,8,[`model-value`]),C(oe,null,{default:x(()=>[C(ae,{"action-text":a.$t(`components.form.tooltip.copied`),icon:w(ee),"button-props":{severity:`secondary`,text:!0},onAction:En},null,8,[`action-text`,`icon`])]),_:1})]),_:1})]),T(`div`,It,[T(`label`,Lt,L(a.$t(`views.settings.security.enter_code`)),1),C(ce,{modelValue:w($),"onUpdate:modelValue":o[4]||=e=>D($)?$.value=e:null,length:6,"integer-only":``},null,8,[`modelValue`])]),T(`div`,Rt,[C(h,{severity:`secondary`,class:`cui-button-medium`,label:a.$t(`components.form.button.cancel`),onClick:Pn},null,8,[`label`]),C(h,{class:`cui-button-medium`,label:a.$t(`views.settings.security.enable_2fa`),loading:w(Pe),disabled:w($).length<6,onClick:Fn},null,8,[`label`,`loading`,`disabled`])])])])):(b(),j(`div`,zt,[T(`div`,Bt,[T(`div`,Vt,[C(E,{class:`w-5 h-5`})]),T(`div`,Ht,[T(`span`,Ut,L(a.$t(`views.settings.security.2fa_enabled`)),1)])]),w(K)?.backupCodesCount===void 0?O(``,!0):(b(),j(`div`,Wt,[C(fe,{class:`w-4 h-4`}),T(`span`,null,L(a.$t(`views.settings.security.backup_codes_remaining`,{count:w(K).backupCodesCount})),1)])),T(`div`,Gt,[C(h,{severity:`secondary`,class:`cui-button-medium`,label:a.$t(`views.settings.security.regenerate_backup`),onClick:Ln},null,8,[`label`]),C(h,{severity:`danger`,class:`cui-button-medium`,label:a.$t(`views.settings.security.disable_2fa`),onClick:In},null,8,[`label`])])]))]),_:1}))]),_:1})]),w(Sn)?(b(),j(`div`,Kt,[T(`span`,qt,L(a.$t(`views.settings.biometric.title`)),1),C(p,{class:`cui-card`},{content:x(()=>[T(`div`,Jt,[C(k,{class:`shrink-0 w-6 h-6 text-color`}),T(`div`,Yt,[T(`span`,Xt,L(a.$t(`views.settings.biometric.label`)),1),C(A,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:x(()=>[de(L(a.$t(`views.settings.biometric.description`)),1)]),_:1})]),C(M,{"model-value":w(bn),loading:w(xn),class:`ml-auto shrink-0`,"onUpdate:modelValue":Un},null,8,[`model-value`,`loading`])])]),_:1})])):O(``,!0),T(`div`,null,[T(`span`,Zt,L(a.$t(`views.settings.api_tokens.title`)),1),C(p,{class:`cui-card`},{content:x(()=>[T(`div`,Qt,[T(`span`,$t,L(a.$t(`views.settings.api_tokens.info`)),1),C(R,{value:w(Be)??[],"data-key":`id`,loading:w(He),pt:Cn,"striped-rows":``,scrollable:``},{loading:x(()=>[C(g,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})]),empty:x(()=>[T(`span`,en,L(a.$t(`views.settings.api_tokens.empty`)),1)]),default:x(()=>[C(N,{field:`name`,header:a.$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:x(({data:e})=>[T(`div`,tn,[C(w(De),{class:`cui-session-icon`}),T(`div`,nn,[T(`span`,rn,L(e.name),1),T(`span`,an,L(e.token_hint),1)])])]),_:1},8,[`header`]),C(N,{field:`last_seen_at`,header:a.$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:x(({data:e})=>[T(`span`,on,L(e.last_seen_at>e.created_at?w(ne)(e.last_seen_at):a.$t(`views.settings.api_tokens.never`)),1)]),_:1},8,[`header`]),C(N,{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:x(({data:e})=>[le((b(),S(h,{severity:`danger`,text:``,rounded:``,class:`cui-icon-md`,loading:w(yn)===e.id,onClick:t=>jn(e)},{icon:x(()=>[C(I,{width:`100%`,height:`100%`})]),_:1},8,[`loading`,`onClick`])),[[B,{value:a.$t(`views.settings.api_tokens.revoke`)}]])]),_:1})]),_:1},8,[`value`,`loading`]),T(`div`,sn,[C(h,{loading:w(Ge),class:`cui-button-medium mr-4 md:mr-0`,label:a.$t(`views.settings.api_tokens.create`),onClick:kn},null,8,[`loading`,`label`])])])]),_:1})]),T(`div`,null,[T(`span`,cn,L(a.$t(`views.settings.active_sessions.title`)),1),C(p,{class:`cui-card`},{content:x(()=>[T(`div`,ln,[C(R,{value:w(Fe)??[],"data-key":`id`,loading:w(Ie),pt:Cn,"striped-rows":``,scrollable:``},{loading:x(()=>[C(g,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})]),empty:x(()=>[T(`span`,un,L(a.$t(`views.settings.active_sessions.empty`)),1)]),default:x(()=>[C(N,{field:`device`,header:a.$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:x(({data:e})=>[T(`div`,dn,[(b(),S(se(Dn(e.device.kind)),{class:`cui-session-icon`})),T(`div`,fn,[T(`div`,pn,[T(`span`,mn,L(e.device.name),1),e.is_current?(b(),S(z,{key:0,severity:`success`,value:a.$t(`views.settings.active_sessions.this_device`),class:`cui-session-tag`},null,8,[`value`])):O(``,!0)]),T(`span`,hn,L(e.device.ip||`—`),1)])])]),_:1},8,[`header`]),C(N,{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:x(({data:e})=>[e.is_current?O(``,!0):le((b(),S(h,{key:0,severity:`danger`,text:``,rounded:``,class:`cui-icon-md`,loading:w(_n)===e.id,onClick:t=>On(e.id)},{icon:x(()=>[C(pe,{width:`100%`,height:`100%`})]),_:1},8,[`loading`,`onClick`])),[[B,{value:a.$t(`views.settings.active_sessions.revoke`)}]])]),_:1})]),_:1},8,[`value`,`loading`]),w(wn)>0?(b(),j(`div`,gn,[C(h,{loading:w(vn),class:`cui-button-medium mr-4 md:mr-0`,label:a.$t(`views.settings.active_sessions.revoke_all_others`,{count:w(wn)}),onClick:Mn},null,8,[`loading`,`label`])])):O(``,!0)])]),_:1})])],64))])])}}}),[[`__scopeId`,`data-v-de51a7b1`]]);export{Y as t};
@@ -0,0 +1 @@
1
+ import{t as e}from"./SettingsAppearance-Dc5qomCw.js";export{e as default};
@@ -0,0 +1 @@
1
+ import{G as e,sa as t,zr as n}from"./vendor-cameraui-OySaGjmo.js";import{Bn as r,_ as i,_r as a,v as o,xn as ee,zn as s}from"./api-ou2-S3Z9.js";import{$t as te,Mn as c,Pn as ne,Yn as l,dn as u,fn as d,hr as f,in as p,jn as re,mn as m,nr as h,on as g,rn as _,sn as v,sr as y,yr as b}from"./vendor-AX0A8AMd.js";import{p as x}from"./vendor-core-BZ52eUwC.js";import{K as ie,j as ae,z as oe}from"./vendor-primevue-CvHDsVi_.js";import{n as se,r as ce}from"./useNavLayout-C9FWniNC.js";import{n as le}from"./theme-t4dIArYy.js";var S={class:`flex flex-col w-full gap-6`},C={key:0},w={class:`card-title`},T={class:`flex flex-col gap-6`},E={class:`flex flex-col field-gap`},D={class:`cui-label`},O={class:`w-full flex flex-col gap-2`},k={class:`flex flex-col field-gap cui-toggle-switch`},A={class:`flex items-center gap-4`},j={class:`flex flex-col field-switch-gap`},M={class:`cui-label-switch`},N={key:1},P={class:`card-title`},F={class:`flex flex-col gap-6`},I={class:`flex flex-col field-gap`},L={class:`cui-label`},R={key:2},z={class:`card-title`},B={class:`flex flex-col gap-6`},V={class:`flex flex-col field-gap`},H={class:`cui-label`},U={key:0,class:`flex flex-col field-gap`},W={class:`cui-label`},ue={class:`flex flex-col field-gap`},de={class:`cui-label`},fe={class:`w-full flex flex-col gap-2`},pe={class:`flex flex-col field-gap cui-toggle-switch`},me={class:`flex items-center gap-4`},he={class:`flex flex-col field-switch-gap`},ge={class:`cui-label-switch`},_e={key:3},ve={class:`card-title`},ye={class:`w-full flex flex-col gap-2`},be={class:`flex flex-col field-gap cui-toggle-switch`},xe={class:`flex items-center gap-4`},Se={class:`flex flex-col field-switch-gap`},Ce={class:`cui-label-switch`},we={class:`flex items-center gap-4`},Te={class:`flex flex-col field-switch-gap`},Ee={class:`cui-label-switch`},De={class:`card-title`},Oe={class:`w-full flex flex-col gap-2`},ke={class:`flex flex-col field-gap cui-toggle-switch`},Ae={class:`flex items-center gap-4`},je={class:`flex flex-col field-switch-gap`},Me={class:`cui-label-switch`},Ne={class:`flex flex-col field-gap cui-toggle-switch`},Pe={class:`flex items-center gap-4`},Fe={class:`flex flex-col field-switch-gap`},Ie={class:`cui-label-switch`},G=m({__name:`SettingsAppearance`,props:{compact:{type:Boolean,default:!1}},setup(m){let{t:G}=n(),{settingsInNav:K,isCollapsible:Le,setCollapsible:Re,setSettingsInNav:ze}=ce(),Be=i(),{language:q,languageOptions:Ve}=x(Be),He=le(),{colors:Ue,theme:J,autoMode:Y}=x(He),We=r(),{uiSettings:X}=x(We),Z=y(t.isRecording()),Q=y(t.isDebug()),$=[5,10,15,25,50,100],Ge=_(()=>[...se,...K.value?[`settings`]:[]]),Ke=_(()=>o().map(e=>({label:G(`navigation.${e.meta.name}`),value:e.path}))),qe=_(()=>s.map(e=>({label:G(`navigation.${e}`),value:e}))),Je=t.onChange(()=>{Z.value=t.isRecording(),Q.value=t.isDebug()});function Ye(e){t.setRecording(e),e||t.clear()}function Xe(e){t.setDebug(e)}return re(Je),(t,n)=>{let r=ae,i=oe,o=ie,s=e;return c(),v(`div`,null,[p(`div`,S,[f(a)()?g(``,!0):(c(),v(`div`,C,[p(`span`,w,b(t.$t(`views.settings.theme`)),1),d(s,{class:`cui-card`},{content:l(()=>[p(`div`,T,[p(`div`,E,[p(`label`,D,b(t.$t(`components.form.label.theme`)),1),d(r,{modelValue:f(J),"onUpdate:modelValue":n[0]||=e=>h(J)?J.value=e:null,options:f(Ue),disabled:f(Y)},null,8,[`modelValue`,`options`,`disabled`])]),p(`div`,O,[p(`div`,k,[p(`div`,A,[p(`div`,j,[p(`label`,M,b(t.$t(`components.form.label.system_preference`)),1),d(i,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:l(()=>[u(b(t.$t(`components.form.hint.system_preference`)),1)]),_:1})]),d(o,{modelValue:f(Y),"onUpdate:modelValue":n[1]||=e=>h(Y)?Y.value=e:null,class:`ml-auto shrink-0`},null,8,[`modelValue`])])])])])]),_:1})])),f(a)()?g(``,!0):(c(),v(`div`,N,[p(`span`,P,b(t.$t(`views.settings.locale`)),1),d(s,{class:`cui-card`},{content:l(()=>[p(`div`,F,[p(`div`,I,[p(`label`,L,b(t.$t(`components.form.label.language`)),1),d(r,{modelValue:f(q),"onUpdate:modelValue":n[2]||=e=>h(q)?q.value=e:null,options:f(Ve),"option-label":`label`,"option-value":`value`},null,8,[`modelValue`,`options`])])])]),_:1})])),m.compact?g(``,!0):(c(),v(`div`,R,[p(`span`,z,b(t.$t(`views.settings.interface`)),1),d(s,{class:`cui-card`},{content:l(()=>[p(`div`,B,[p(`div`,V,[p(`label`,H,b(t.$t(`components.form.label.default_landing_page`)),1),d(r,{modelValue:f(X).interface.landingPage,"onUpdate:modelValue":n[3]||=e=>f(X).interface.landingPage=e,options:f(Ke),"option-label":`label`,"option-value":`value`},null,8,[`modelValue`,`options`]),d(i,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:l(()=>[u(b(t.$t(`components.form.hint.default_landing_page`)),1)]),_:1})]),(`hasPermission`in t?t.hasPermission:f(ee))(void 0,`admin`)?(c(),v(`div`,U,[p(`label`,W,b(t.$t(`components.form.label.default_settings_page`)),1),d(r,{modelValue:f(X).interface.selectedSettingsView,"onUpdate:modelValue":n[4]||=e=>f(X).interface.selectedSettingsView=e,options:f(qe),"option-label":`label`,"option-value":`value`},null,8,[`modelValue`,`options`]),d(i,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:l(()=>[u(b(t.$t(`components.form.hint.default_settings_page`)),1)]),_:1})])):g(``,!0),p(`div`,ue,[p(`label`,de,b(t.$t(`components.form.label.table_rows`)),1),d(r,{modelValue:f(X).interface.tableRows,"onUpdate:modelValue":n[5]||=e=>f(X).interface.tableRows=e,options:$},null,8,[`modelValue`]),d(i,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:l(()=>[u(b(t.$t(`components.form.hint.table_rows`)),1)]),_:1})]),p(`div`,fe,[p(`div`,pe,[p(`div`,me,[p(`div`,he,[p(`label`,ge,b(t.$t(`components.form.label.navbar_stay_collapsed`)),1),d(i,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:l(()=>[u(b(t.$t(`components.form.hint.navbar_stay_collapsed`)),1)]),_:1})]),d(o,{modelValue:f(X).interface.navbarStayCollapsed,"onUpdate:modelValue":n[6]||=e=>f(X).interface.navbarStayCollapsed=e,class:`ml-auto shrink-0`},null,8,[`modelValue`])])])])])]),_:1})])),m.compact?g(``,!0):(c(),v(`div`,_e,[p(`span`,ve,b(t.$t(`views.settings.navigation`)),1),d(s,{class:`cui-card`},{content:l(()=>[p(`div`,ye,[p(`div`,be,[p(`div`,xe,[p(`div`,Se,[p(`label`,Ce,b(t.$t(`components.form.label.nav_settings_in_nav`)),1),d(i,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:l(()=>[u(b(t.$t(`components.form.hint.nav_settings_in_nav`)),1)]),_:1})]),d(o,{"model-value":f(K),class:`ml-auto shrink-0`,"onUpdate:modelValue":n[7]||=e=>f(ze)(e)},null,8,[`model-value`])])]),(c(!0),v(te,null,ne(f(Ge),e=>(c(),v(`div`,{key:e,class:`flex flex-col field-gap cui-toggle-switch`},[p(`div`,we,[p(`div`,Te,[p(`label`,Ee,b(t.$t(`components.form.label.nav_group_collapsible`,{group:t.$t(`navigation.group_${e}`)})),1),d(i,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:l(()=>[u(b(t.$t(`components.form.hint.nav_group_collapsible`,{group:t.$t(`navigation.group_${e}`)})),1)]),_:2},1024)]),d(o,{"model-value":f(Le)(e),class:`ml-auto shrink-0`,"onUpdate:modelValue":t=>f(Re)(e,t)},null,8,[`model-value`,`onUpdate:modelValue`])])]))),128))])]),_:1})])),p(`div`,null,[p(`span`,De,b(t.$t(`views.settings.debugging`)),1),d(s,{class:`cui-card`},{content:l(()=>[p(`div`,Oe,[p(`div`,ke,[p(`div`,Ae,[p(`div`,je,[p(`label`,Me,b(t.$t(`components.form.label.debug_verbose`)),1),d(i,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:l(()=>[u(b(t.$t(`components.form.hint.debug_verbose`)),1)]),_:1})]),d(o,{"model-value":f(Q),class:`ml-auto shrink-0`,"onUpdate:modelValue":Xe},null,8,[`model-value`])])]),p(`div`,Ne,[p(`div`,Pe,[p(`div`,Fe,[p(`label`,Ie,b(t.$t(`components.form.label.record_logs`)),1),d(i,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:l(()=>[u(b(t.$t(`components.form.hint.record_logs`)),1)]),_:1})]),d(o,{"model-value":f(Z),class:`ml-auto shrink-0`,"onUpdate:modelValue":Ye},null,8,[`model-value`])])])])]),_:1})])])])}}});export{G as t};
@@ -0,0 +1 @@
1
+ import{F as e,G as t,Pt as n,Rt as r,Wt as i,zr as a}from"./vendor-cameraui-OySaGjmo.js";import{Dn as o,ct as s,s as c,xr as l}from"./api-ou2-S3Z9.js";import{$t as u,An as d,Mn as f,Pn as p,Qt as m,Rn as h,Wn as g,Xn as _,Yn as v,an as y,ar as b,dn as x,fn as S,hr as C,in as w,mn as T,on as E,pr as D,rn as O,rr as k,sn as A,sr as j,ur as M,yr as N}from"./vendor-AX0A8AMd.js";import{K as ee,M as P,U as F,_ as te,j as I,z as L}from"./vendor-primevue-CvHDsVi_.js";import{a as R,c as z,i as ne,n as re,o as ie,r as ae,s as oe}from"./useBackupRestore-BcAR3KYA.js";import{t as se}from"./theme-t4dIArYy.js";import{t as ce}from"./trash-can-outline-_aiv_oEu.js";import{t as B}from"./close-circle-B9jFTQT1.js";import{t as le}from"./download-CaV8-tw6.js";var V={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function H(e,t){return f(),A(`svg`,V,[...t[0]||=[w(`path`,{fill:`currentColor`,d:`M14 2H6c-1.1 0-2 .9-2 2v16c0 1.1.89 2 1.99 2H15v-8h5V8zm-1 7V3.5L18.5 9zm4 12.66V16h5.66v2h-2.24l2.95 2.95l-1.41 1.41L19 19.41v2.24h-2z`},null,-1)]])}var U=k({name:`ic-baseline-file-open`,render:H}),W={class:`flex flex-col gap-6 p-4 items-center justify-center w-full`},G={class:`flex flex-col justify-center items-center`},K={for:`restoreInput`,class:`cursor-pointer text-center`},q=[`accept`],J={key:0,class:`text-red`},Y={class:`mx-2`},X={class:`text-muted`},ue=T({__name:`CuiUploadFiles`,props:{multiple:{type:Boolean,default:!1},accept:{},icon:{default:U}},emits:[`files-uploaded`],setup(e,{expose:t,emit:n}){let i=e,a=n,{accept:o,multiple:s}=D(i),c=g(`fileInputRef`),l=M([]),u=j(!1),d=j(!1);function p(e){let t=l.value.findIndex(t=>t.name===e);t>-1&&(l.value.splice(t,1),x())}function _(e){if(u.value=!1,d.value=!1,l.value=[],e.dataTransfer){if(!s.value&&e.dataTransfer.files.length>1)d.value=!0;else{for(let[,t]of Object.entries(e.dataTransfer.files))l.value.push(t);a(`files-uploaded`,l.value)}}}function b(e){d.value=!1,l.value=[];let t=e.target;if(t&&t.files){if(!s.value&&t.files?.length>1)d.value=!0;else{for(let[,e]of Object.entries(t.files))l.value.push(e);a(`files-uploaded`,l.value)}}}function x(){c.value&&(c.value.value=``)}function T(){l.value=[],x()}return t({reset:T}),(t,n)=>{let i=B,a=r,s=F,g=P;return f(),A(`div`,{class:`file-upload-box`,onDrop:n[0]||=m(e=>_(e),[`prevent`]),onDragover:n[1]||=m(e=>u.value=!0,[`prevent`]),onDragenter:n[2]||=m(e=>u.value=!0,[`prevent`]),onDragleave:n[3]||=m(e=>u.value=!1,[`prevent`])},[w(`div`,W,[w(`div`,G,[(f(),y(h(e.icon),{class:`w-15 h-15`})),w(`label`,K,N(t.$t(`components.upload_files.drop_or_select_file`)),1),w(`input`,{id:`restoreInput`,ref_key:`fileInputRef`,ref:c,type:`file`,class:`hidden`,accept:C(o),onChange:b},null,40,q),C(d)?(f(),A(`p`,J,N(t.$t(`components.upload_files.only_one_file_allowed`)),1)):E(``,!0)]),C(l).length>0?(f(),y(g,{key:0,items:C(l),"item-size":50,"scroll-height":`50px`,"scroll-width":`100%`,class:`w-full`},{item:v(({item:e})=>[(f(),A(`div`,{key:e.name,class:`w-full flex flex-row items-center justify-start p-2`},[S(a,{text:``,rounded:``,severity:`danger`,class:`cui-icon-md shrink-0`,onClick:t=>p(e.name)},{icon:v(()=>[S(i,{width:`100%`,height:`100%`})]),_:1},8,[`onClick`]),w(`b`,Y,N(e.name),1),w(`span`,X,`(`+N(e.size)+` bytes)`,1)])),C(l).length>1?(f(),y(s,{key:0,class:`m-0 py-4`})):E(``,!0)]),_:1},8,[`items`])):E(``,!0)])],32)}}}),de={class:`flex flex-col w-full gap-6`},fe={class:`card-title`},pe={class:`flex flex-col gap-6`},me={class:`text-sm`},he={class:`card-title`},ge={class:`flex flex-col gap-6`},_e={class:`text-sm`},ve={class:`card-title`},ye={key:0,class:`flex w-full items-center justify-center py-6`},be={key:1,class:`flex flex-col gap-6`},xe={class:`flex items-center gap-4`},Z={class:`flex flex-col gap-1 min-w-0`},Se={class:`text-sm`},Ce={class:`text-xs text-muted`},we={class:`grid grid-cols-1 sm:grid-cols-2 gap-4`},Te={class:`flex flex-col field-gap`},Ee={for:`backupInterval`,class:`cui-label`},De={class:`flex flex-col field-gap`},Oe={for:`backupTime`,class:`cui-label`},ke={key:0,class:`flex flex-col field-gap`},Ae={for:`backupWeekday`,class:`cui-label`},je={key:1,class:`flex flex-col field-gap`},Me={for:`backupDayOfMonth`,class:`cui-label`},Ne={class:`flex flex-col field-gap`},Pe={for:`backupRetention`,class:`cui-label`},Fe={class:`flex flex-col field-gap`},Ie={for:`backupDestination`,class:`cui-label`},Le={class:`flex items-center gap-2`},Re={key:1,class:`flex flex-col gap-2`},ze={class:`text-sm font-semibold border-b-[1px] border-color pb-2`},Be={class:`flex flex-col min-w-0`},Ve={class:`text-sm truncate`},He={class:`text-xs text-muted`},Ue={class:`flex gap-1 ml-auto shrink-0`},Q=T({__name:`SettingsBackup`,setup(m){let h=s(),T=l(),{t:D,locale:k}=a(),P=g(`filesRef`),F=M([]),B=j(!1),V=j(!0),H=j(!1),U=j(!1),W=j(null),G=j([]),K=j(``),q=j(),J=b({enabled:!1,interval:`daily`,time:`03:00`,weekday:0,dayOfMonth:1,retention:7,destinationPath:``}),Y=O(()=>/^([01]\d|2[0-3]):[0-5]\d$/.test(J.time)),X=O(()=>[`daily`,`weekly`,`monthly`].map(e=>({label:D(`views.settings.backup_interval_${e}`),value:e}))),Q=O(()=>Array.from({length:7},(e,t)=>({label:new Intl.DateTimeFormat(k.value,{weekday:`long`}).format(new Date(Date.UTC(2024,0,7+t,12))),value:t}))),We=O(()=>{if(!q.value)return D(`views.settings.backup_last_run`,{info:D(`views.settings.backup_last_run_never`)});let e=new Date(q.value.timestamp).toLocaleString(),t=q.value.status===`success`?`✓`:`✗ ${q.value.message??``}`;return D(`views.settings.backup_last_run`,{info:`${e} ${t}`})});async function Ge(){B.value=!0;try{let e={},t=localStorage.getItem(`ui`);if(t)try{e.ui=JSON.parse(t)}catch{}let n=localStorage.getItem(`language`);n&&(e.language=n),localStorage.getItem(`theme`)&&(e.theme=se());let r=Date.now(),i=await ne(e);await o({blob:new Blob([i]),filename:`cameraui-backup-${r}.tar.gz`,mimeType:`application/gzip`})}catch(e){T.add({severity:`error`,detail:c(e),life:3e3})}B.value=!1}function Ke(){h.openTextDialog({data:{title:D(`components.dialog.title.confirm`),contentText:D(`components.dialog.message.confirm_restore`),confirmText:D(`components.form.button.restore_and_restart`),loading:B},onConfirm:qe})}async function qe(){let e=F.value[0];e&&(B.value=!0,await re().run(e),P.value?.reset(),B.value=!1)}function Je(e){if(e<1024)return`${e} B`;let t=[`KB`,`MB`,`GB`,`TB`],n=e,r=-1;do n/=1024,r++;while(n>=1024&&r<t.length-1);return`${n.toFixed(1)} ${t[r]}`}async function $(){try{let e=await ie(),{lastRun:t,...n}=e.settings;Object.assign(J,n),q.value=t,G.value=e.backups,K.value=e.defaultDestination}catch(e){T.add({severity:`error`,detail:c(e),life:3e3})}finally{V.value=!1}}async function Ye(){if(Y.value){H.value=!0;try{let e=await oe({...J});q.value=e.lastRun,T.add({severity:`success`,detail:D(`components.toast.backup_scheduler_saved`),life:3e3})}catch(e){T.add({severity:`error`,detail:c(e),life:3e3})}finally{H.value=!1}}}async function Xe(){U.value=!0;try{let e=await z();q.value=e,T.add({severity:`success`,detail:D(`components.toast.backup_created`),life:3e3})}catch(e){T.add({severity:`error`,detail:c(e),life:3e3})}finally{U.value=!1,await $()}}async function Ze(e){W.value=e.filename;try{let t=await R(e.filename);await o({blob:new Blob([t]),filename:e.filename,mimeType:`application/gzip`})}catch(e){T.add({severity:`error`,detail:c(e),life:3e3})}finally{W.value=null}}function Qe(e){h.openTextDialog({data:{title:D(`components.dialog.title.confirm`),contentText:D(`components.dialog.message.confirm_delete_backup`,{filename:e.filename}),confirmText:D(`components.form.button.remove`)},onConfirm:async()=>{try{await ae(e.filename),T.add({severity:`success`,detail:D(`components.toast.backup_deleted`),life:3e3}),await $()}catch(e){T.add({severity:`error`,detail:c(e),life:3e3})}}})}return d($),(a,o)=>{let s=r,c=t,l=ue,d=n,m=ee,h=I,g=e,b=te,T=L,D=le,O=ce,k=i;return f(),A(`div`,null,[w(`div`,de,[w(`div`,null,[w(`span`,fe,N(a.$t(`views.settings.create_backup`)),1),S(c,{class:`cui-card`},{content:v(()=>[w(`div`,pe,[w(`span`,me,N(a.$t(`views.settings.create_backup_info`)),1),S(s,{loading:C(B),class:`ml-auto cui-button-medium`,label:a.$t(`components.form.button.download_backup_archive`),onClick:Ge},null,8,[`loading`,`label`])])]),_:1})]),w(`div`,null,[w(`span`,he,N(a.$t(`views.settings.restore_backup`)),1),S(c,{class:`cui-card`},{content:v(()=>[w(`div`,ge,[w(`span`,_e,N(a.$t(`views.settings.restore_backup_info`)),1),S(l,{ref_key:`filesRef`,ref:P,accept:`application/gzip, .tar, .tar.gz`,onFilesUploaded:o[0]||=e=>F.value=e},null,512),S(s,{loading:C(B),disabled:!C(F).length,class:`ml-auto cui-button-medium`,label:a.$t(`components.form.button.restore_backup_archive`),onClick:Ke},null,8,[`loading`,`disabled`,`label`])])]),_:1})]),w(`div`,null,[w(`span`,ve,N(a.$t(`views.settings.scheduled_backup`)),1),S(c,{class:`cui-card`},{content:v(()=>[C(V)?(f(),A(`div`,ye,[S(d,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):(f(),A(`div`,be,[w(`div`,xe,[w(`div`,Z,[w(`span`,Se,N(a.$t(`views.settings.scheduled_backup_info`)),1),w(`span`,Ce,N(C(We)),1)]),S(m,{modelValue:C(J).enabled,"onUpdate:modelValue":o[1]||=e=>C(J).enabled=e,disabled:C(H),class:`ml-auto shrink-0`},null,8,[`modelValue`,`disabled`])]),C(J).enabled?(f(),A(u,{key:0},[w(`div`,we,[w(`div`,Te,[w(`label`,Ee,N(a.$t(`views.settings.backup_interval`)),1),S(h,{modelValue:C(J).interval,"onUpdate:modelValue":o[2]||=e=>C(J).interval=e,"input-id":`backupInterval`,options:C(X),"option-label":`label`,"option-value":`value`,disabled:C(H)},null,8,[`modelValue`,`options`,`disabled`])]),w(`div`,De,[w(`label`,Oe,N(a.$t(`views.settings.backup_time`)),1),S(g,{id:`backupTime`,modelValue:C(J).time,"onUpdate:modelValue":o[3]||=e=>C(J).time=e,placeholder:`03:00`,disabled:C(H),invalid:!C(Y)},null,8,[`modelValue`,`disabled`,`invalid`])]),C(J).interval===`weekly`?(f(),A(`div`,ke,[w(`label`,Ae,N(a.$t(`views.settings.backup_weekday`)),1),S(h,{modelValue:C(J).weekday,"onUpdate:modelValue":o[4]||=e=>C(J).weekday=e,"input-id":`backupWeekday`,options:C(Q),"option-label":`label`,"option-value":`value`,disabled:C(H)},null,8,[`modelValue`,`options`,`disabled`])])):E(``,!0),C(J).interval===`monthly`?(f(),A(`div`,je,[w(`label`,Me,N(a.$t(`views.settings.backup_day_of_month`)),1),S(b,{modelValue:C(J).dayOfMonth,"onUpdate:modelValue":o[5]||=e=>C(J).dayOfMonth=e,"input-id":`backupDayOfMonth`,min:1,max:28,"show-buttons":``,"use-grouping":!1,disabled:C(H)},null,8,[`modelValue`,`disabled`])])):E(``,!0),w(`div`,Ne,[w(`label`,Pe,N(a.$t(`views.settings.backup_retention`)),1),S(b,{modelValue:C(J).retention,"onUpdate:modelValue":o[6]||=e=>C(J).retention=e,"input-id":`backupRetention`,min:1,max:60,"show-buttons":``,"use-grouping":!1,disabled:C(H)},null,8,[`modelValue`,`disabled`]),S(T,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:v(()=>[x(N(a.$t(`views.settings.backup_retention_hint`)),1)]),_:1})])]),w(`div`,Fe,[w(`label`,Ie,N(a.$t(`views.settings.backup_destination`)),1),S(g,{id:`backupDestination`,modelValue:C(J).destinationPath,"onUpdate:modelValue":o[7]||=e=>C(J).destinationPath=e,placeholder:C(K),disabled:C(H)},null,8,[`modelValue`,`placeholder`,`disabled`]),S(T,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:v(()=>[x(N(a.$t(`views.settings.backup_destination_hint`)),1)]),_:1})])],64)):E(``,!0),w(`div`,Le,[S(s,{severity:`secondary`,outlined:``,loading:C(U),disabled:C(H),class:`ml-auto cui-button-medium`,label:a.$t(`components.form.button.run_now`),onClick:Xe},null,8,[`loading`,`disabled`,`label`]),S(s,{loading:C(H),disabled:C(U)||!C(Y),class:`cui-button-medium`,label:a.$t(`components.form.button.save`),onClick:Ye},null,8,[`loading`,`disabled`,`label`])]),C(G).length?(f(),A(`div`,Re,[w(`span`,ze,N(a.$t(`views.settings.backup_existing`)),1),(f(!0),A(u,null,p(C(G),e=>(f(),A(`div`,{key:e.filename,class:`flex items-center gap-3 py-1 min-w-0`},[w(`div`,Be,[w(`span`,Ve,N(e.filename),1),w(`span`,He,N(new Date(e.timestamp).toLocaleString())+` · `+N(Je(e.size)),1)]),w(`div`,Ue,[_((f(),y(s,{text:``,rounded:``,severity:`secondary`,class:`cui-icon-md`,disabled:C(W)===e.filename,onClick:t=>Ze(e)},{icon:v(()=>[S(D,{width:`100%`,height:`100%`})]),_:1},8,[`disabled`,`onClick`])),[[k,{value:a.$t(`components.form.button.download`)},void 0,{top:!0}]]),_((f(),y(s,{text:``,rounded:``,severity:`danger`,class:`cui-icon-md`,onClick:t=>Qe(e)},{icon:v(()=>[S(O,{width:`100%`,height:`100%`})]),_:1},8,[`onClick`])),[[k,{value:a.$t(`components.form.button.remove`)},void 0,{top:!0}]])])]))),128))])):E(``,!0)]))]),_:1})])])])}}});export{Q as default};
@@ -0,0 +1 @@
1
+ import{zr as e}from"./vendor-cameraui-OySaGjmo.js";import{b as t,bn as n,gn as r,xn as i}from"./api-ou2-S3Z9.js";import{$t as a,Mn as o,Pn as s,Rn as c,Yn as l,an as u,dn as d,fn as f,hr as p,in as m,mn as h,rn as g,sn as _,yr as v}from"./vendor-AX0A8AMd.js";import{t as y}from"./CuiList-D1d-S_-K.js";var b={class:`card-title`},x=h({__name:`SettingsList`,setup(h){let{t:x}=e(),S=g(()=>t.find(e=>e.name===`Settings`).children.filter(e=>e.meta?.settingsBar&&i(e)).map(e=>({to:`/settings/${e.path}`,label:x(`navigation.${e.meta.name.toLowerCase()}`),icon:e.meta.settingsBar.icon.default,group:e.meta.settingsBar.group??`personal`}))),C=g(()=>[`personal`,`system`].map(e=>({key:e,items:S.value.filter(t=>t.group===e)})).filter(e=>e.items.length>0));return(e,t)=>{let i=n,h=r,g=y;return o(),_(`div`,null,[(o(!0),_(a,null,s(p(C),t=>(o(),_(a,{key:t.key},[m(`span`,b,v(e.$t(`views.settings.section_${t.key}`)),1),f(g,{size:`large`,dividers:``,class:`!h-auto mb-4`},{default:l(()=>[(o(!0),_(a,null,s(t.items,e=>(o(),u(h,{key:e.to,to:e.to},{prepend:l(()=>[(o(),u(c(e.icon),{class:`w-5 h-5 text-muted`}))]),append:l(()=>[f(i,{class:`w-5 h-5 text-muted`})]),default:l(()=>[d(` `+v(e.label)+` `,1)]),_:2},1032,[`to`]))),128))]),_:2},1024)],64))),128))])}}});export{x as default};
@@ -0,0 +1 @@
1
+ import{F as e,G as t,Pt as ee,Rt as te,zr as n}from"./vendor-cameraui-OySaGjmo.js";import{_t as ne,gt as r,i,o as a,pr as o,xr as s}from"./api-ou2-S3Z9.js";import{$t as c,Cn as l,Kn as u,Kt as d,Mn as f,Yn as p,an as m,b as re,dn as h,fn as g,hr as _,in as v,mn as y,nr as ie,on as b,rn as x,sn as S,sr as C,v as w,y as T,yr as E}from"./vendor-AX0A8AMd.js";import{J as D}from"./types-Dg1X10xd.js";import{K as ae,L as oe,R as se,_ as ce,a as le,i as ue,j as de,s as fe,z as pe}from"./vendor-primevue-CvHDsVi_.js";import{t as O}from"./mqtt-D_ToI2JF.js";var me=D,k={class:`w-full h-full`},A={key:0,class:`w-full h-full flex items-center justify-center`},j={key:1,class:`flex flex-col w-full gap-6`},M={class:`card-title`},N={class:`flex items-center gap-4`},P={class:`flex flex-col field-switch-gap min-w-0`},F={class:`text-sm font-bold text-color`},I={class:`card-title`},L={class:`flex flex-col gap-6`},R={class:`flex items-center gap-4 cui-toggle-switch`},z={class:`flex flex-col field-switch-gap`},he={for:`enabled`,class:`cui-label-switch`},ge={class:`flex flex-col field-gap`},_e={for:`mode`,class:`cui-label`},ve={class:`flex flex-col sm:flex-row gap-6`},ye={for:`host`,class:`cui-label`},be={class:`flex flex-col field-gap w-full sm:w-40 shrink-0`},xe={for:`port`,class:`cui-label`},Se={class:`flex flex-col field-gap`},Ce={for:`protocol`,class:`cui-label`},we={class:`flex flex-col sm:flex-row gap-6`},Te={class:`flex flex-col field-gap flex-1 min-w-0`},Ee={for:`username`,class:`cui-label`},De={class:`flex flex-col field-gap flex-1 min-w-0`},Oe={for:`password`,class:`cui-label`},ke={class:`flex flex-col field-gap`},Ae={for:`brokerAddress`,class:`cui-label`},je={class:`flex flex-col sm:flex-row gap-6`},Me={class:`flex flex-col field-gap w-full sm:w-40 shrink-0`},Ne={for:`brokerPort`,class:`cui-label`},Pe={class:`flex flex-col field-gap flex-1 min-w-0`},Fe={for:`brokerUsername`,class:`cui-label`},Ie={class:`flex flex-col field-gap flex-1 min-w-0`},Le={for:`brokerPassword`,class:`cui-label`},B={class:`flex flex-col sm:flex-row gap-6`},Re={for:`clientId`,class:`cui-label`},ze={for:`topicPrefix`,class:`cui-label`},Be={class:`flex items-center gap-4 cui-toggle-switch`},Ve={class:`flex flex-col field-switch-gap`},He={for:`rejectUnauthorized`,class:`cui-label-switch`},Ue={class:`flex flex-col field-gap`},We={for:`tlsCa`,class:`cui-label`},Ge={class:`flex flex-col field-gap`},Ke={for:`tlsCert`,class:`cui-label`},qe={class:`flex flex-col field-gap`},Je={for:`tlsKey`,class:`cui-label`},Ye={class:`flex items-center gap-4 cui-toggle-switch`},Xe={class:`flex flex-col field-switch-gap`},Ze={for:`haDiscovery`,class:`cui-label-switch`},Qe={for:`haDiscovery.prefix`,class:`cui-label`},$e={class:`flex items-center gap-3`},V=y({__name:`SettingsMqtt`,setup(y){let D=new O,V=s(),{t:H}=n(),{data:U}=D.getMqttInfoQuery(),W=D.patchMqttInfoMutation(),G=D.testMqttConnectionMutation(),K=o(`/server`),et=[{label:`mqtt:// (TCP)`,value:`mqtt`},{label:`mqtts:// (TLS)`,value:`mqtts`}],tt=[{label:H(`views.settings.mqtt_mode_external`),value:`external`},{label:H(`views.settings.mqtt_mode_embedded`),value:`embedded`}],q=C(null),J=C(``),Y=C(null),X=x(()=>U.value?.passwordSet??!1),Z=x(()=>Y.value??U.value?.status??null),nt=x(()=>{switch(Z.value?.state){case`connected`:return`success`;case`connecting`:case`reconnecting`:return`warn`;case`error`:return`danger`;default:return`secondary`}}),rt=x(()=>{let e=Z.value?.state??`disabled`;return H(`views.settings.mqtt_state_${e}`)}),it=x(()=>Z.value?.lastError?Z.value.lastError:Z.value?.broker?.running?H(`views.settings.mqtt_broker_running`,{port:Z.value.broker.port}):H(`views.settings.mqtt_status_info`)),Q=x(()=>`mqtt://${window.location.hostname}:${q.value?.broker.port??1883}`);function $(){let e=a(q.value),t={enabled:e.enabled,mode:e.mode,broker:{port:e.broker.port,username:e.broker.username?.trim()?e.broker.username.trim():null,password:e.broker.password?.trim()?e.broker.password:null},host:e.host?.trim()?e.host.trim():null,port:e.port,protocol:e.protocol,username:e.username?.trim()?e.username.trim():null,clientId:e.clientId,topicPrefix:e.topicPrefix,tls:{rejectUnauthorized:e.tls.rejectUnauthorized,ca:e.tls.ca?.trim()?e.tls.ca:null,cert:e.tls.cert?.trim()?e.tls.cert:null,key:e.tls.key?.trim()?e.tls.key:null},haDiscovery:{enabled:e.haDiscovery.enabled,prefix:e.haDiscovery.prefix}};return J.value&&(t.password=J.value),t}async function at(){q.value&&(await W.mutateAsync($()),J.value=``)}async function ot(){if(!q.value)return;let e=await G.mutateAsync($());e.ok?V.add({severity:`success`,detail:H(`components.toast.mqtt_test_success`),life:3e3}):V.add({severity:`error`,detail:H(`components.toast.mqtt_test_failed`,{message:e.message??``}),life:5e3})}return u(U,e=>{e&&!q.value&&(q.value=a(e.settings))},{immediate:!0}),K.on(`mqtt-status`,e=>{Y.value=e}),K.onReady(async()=>{try{let e=await K.request(`get-mqtt-status`);e&&(Y.value=e)}catch{}}),(n,a)=>{let o=ee,s=pe,u=le,y=t,x=ae,C=de,D=e,O=ce,V=fe,H=ne,U=oe,K=se,Y=ue,Z=te;return f(),S(`div`,k,[_(q)?(f(),S(`div`,j,[v(`div`,null,[v(`span`,M,E(n.$t(`views.settings.status`)),1),g(y,{class:`cui-card`},{content:p(()=>[v(`div`,N,[v(`div`,P,[v(`span`,F,E(n.$t(`views.settings.mqtt_broker`)),1),g(s,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint truncate`},{default:p(()=>[h(E(_(it)),1)]),_:1})]),g(u,{class:`ml-auto shrink-0`,severity:_(nt),value:_(rt)},null,8,[`severity`,`value`])])]),_:1})]),g(_(re),{class:`flex flex-col w-full gap-6`,"validation-schema":_(me),onSubmit:at},{default:p(()=>[v(`div`,null,[v(`span`,I,E(n.$t(`views.settings.mqtt_broker`)),1),g(y,{class:`cui-card`},{content:p(()=>[v(`div`,L,[v(`div`,R,[v(`div`,z,[v(`label`,he,E(n.$t(`components.form.label.enabled`)),1),g(s,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:p(()=>[h(E(n.$t(`views.settings.mqtt_enabled_info`)),1)]),_:1})]),g(x,{modelValue:_(q).enabled,"onUpdate:modelValue":a[0]||=e=>_(q).enabled=e,class:`ml-auto shrink-0`},null,8,[`modelValue`])]),v(`div`,ge,[v(`label`,_e,E(n.$t(`views.settings.mqtt_mode_label`)),1),g(C,{modelValue:_(q).mode,"onUpdate:modelValue":a[1]||=e=>_(q).mode=e,options:tt,"option-label":`label`,"option-value":`value`},null,8,[`modelValue`]),_(q).mode===`embedded`?(f(),m(s,{key:0,severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:p(()=>[h(E(n.$t(`views.settings.mqtt_mode_embedded_info`)),1)]),_:1})):b(``,!0)]),_(q).mode===`external`?(f(),S(c,{key:0},[v(`div`,ve,[g(_(T),{modelValue:_(q).host,"onUpdate:modelValue":a[2]||=e=>_(q).host=e,modelModifiers:{trim:!0},name:`host`,as:`div`,class:`flex flex-col field-gap flex-1 min-w-0`},{default:p(({field:e,errors:t})=>[v(`label`,ye,E(n.$t(`views.settings.mqtt_host_label`)),1),g(D,l(e,{invalid:t.length>0,type:`text`,placeholder:`192.168.1.10`,class:`w-full`}),null,16,[`invalid`]),g(d,{name:`fade`},{default:p(()=>[g(_(w),{name:`host`,class:`cui-input-error`})]),_:1})]),_:1},8,[`modelValue`]),v(`div`,be,[v(`label`,xe,E(n.$t(`views.settings.mqtt_port_label`)),1),g(O,{modelValue:_(q).port,"onUpdate:modelValue":a[3]||=e=>_(q).port=e,min:1,max:65535,"use-grouping":!1,fluid:``},null,8,[`modelValue`])])]),v(`div`,Se,[v(`label`,Ce,E(n.$t(`views.settings.mqtt_protocol_label`)),1),g(C,{modelValue:_(q).protocol,"onUpdate:modelValue":a[4]||=e=>_(q).protocol=e,options:et,"option-label":`label`,"option-value":`value`},null,8,[`modelValue`])]),v(`div`,we,[v(`div`,Te,[v(`label`,Ee,E(n.$t(`views.settings.mqtt_username_label`)),1),g(D,{modelValue:_(q).username,"onUpdate:modelValue":a[5]||=e=>_(q).username=e,modelModifiers:{trim:!0},type:`text`,autocomplete:`off`,class:`w-full`},null,8,[`modelValue`])]),v(`div`,De,[v(`label`,Oe,E(n.$t(`views.settings.mqtt_password_label`)),1),g(V,{modelValue:_(J),"onUpdate:modelValue":a[6]||=e=>ie(J)?J.value=e:null,feedback:!1,"toggle-mask":``,fluid:``,autocomplete:`new-password`,placeholder:_(X)?`••••••••`:``},null,8,[`modelValue`,`placeholder`]),_(X)?(f(),m(s,{key:0,severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:p(()=>[h(E(n.$t(`views.settings.mqtt_password_keep_hint`)),1)]),_:1})):b(``,!0)])])],64)):(f(),S(c,{key:1},[v(`div`,ke,[v(`label`,Ae,E(n.$t(`views.settings.mqtt_broker_address`)),1),g(K,null,{default:p(()=>[g(D,{"model-value":_(Q),readonly:``,class:`font-mono text-xs`},null,8,[`model-value`]),g(U,null,{default:p(()=>[g(H,{"action-text":n.$t(`components.form.tooltip.copied`),icon:_(r),"button-props":{severity:`secondary`,text:!0},onAction:a[7]||=e=>_(i)(_(Q))},null,8,[`action-text`,`icon`])]),_:1})]),_:1}),g(s,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:p(()=>[h(E(n.$t(`views.settings.mqtt_broker_address_hint`)),1)]),_:1})]),v(`div`,je,[v(`div`,Me,[v(`label`,Ne,E(n.$t(`views.settings.mqtt_port_label`)),1),g(O,{modelValue:_(q).broker.port,"onUpdate:modelValue":a[8]||=e=>_(q).broker.port=e,min:1,max:65535,"use-grouping":!1,fluid:``},null,8,[`modelValue`])]),v(`div`,Pe,[v(`label`,Fe,E(n.$t(`views.settings.mqtt_username_label`)),1),g(D,{modelValue:_(q).broker.username,"onUpdate:modelValue":a[9]||=e=>_(q).broker.username=e,modelModifiers:{trim:!0},type:`text`,autocomplete:`off`,class:`w-full`},null,8,[`modelValue`])]),v(`div`,Ie,[v(`label`,Le,E(n.$t(`views.settings.mqtt_password_label`)),1),g(K,null,{default:p(()=>[g(V,{modelValue:_(q).broker.password,"onUpdate:modelValue":a[10]||=e=>_(q).broker.password=e,feedback:!1,"toggle-mask":``,fluid:``,autocomplete:`off`},null,8,[`modelValue`]),g(U,null,{default:p(()=>[g(H,{"action-text":n.$t(`components.form.tooltip.copied`),icon:_(r),"button-props":{severity:`secondary`,text:!0},onAction:a[11]||=e=>_(i)(_(q).broker.password??``)},null,8,[`action-text`,`icon`])]),_:1})]),_:1})])])],64)),v(`div`,B,[g(_(T),{modelValue:_(q).clientId,"onUpdate:modelValue":a[12]||=e=>_(q).clientId=e,modelModifiers:{trim:!0},name:`clientId`,as:`div`,class:`flex flex-col field-gap flex-1`},{default:p(({field:e,errors:t})=>[v(`label`,Re,E(n.$t(`views.settings.mqtt_client_id_label`)),1),g(D,l(e,{invalid:t.length>0,type:`text`}),null,16,[`invalid`]),g(d,{name:`fade`},{default:p(()=>[g(_(w),{name:`clientId`,class:`cui-input-error`})]),_:1})]),_:1},8,[`modelValue`]),g(_(T),{modelValue:_(q).topicPrefix,"onUpdate:modelValue":a[13]||=e=>_(q).topicPrefix=e,modelModifiers:{trim:!0},name:`topicPrefix`,as:`div`,class:`flex flex-col field-gap flex-1`},{default:p(({field:e,errors:t})=>[v(`label`,ze,E(n.$t(`views.settings.mqtt_topic_prefix_label`)),1),g(D,l(e,{invalid:t.length>0,type:`text`}),null,16,[`invalid`]),g(d,{name:`fade`},{default:p(()=>[g(_(w),{name:`topicPrefix`,class:`cui-input-error`})]),_:1}),g(s,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:p(()=>[h(E(n.$t(`views.settings.mqtt_topic_prefix_info`)),1)]),_:1})]),_:1},8,[`modelValue`])]),_(q).mode===`external`&&_(q).protocol===`mqtts`?(f(),S(c,{key:2},[v(`div`,Be,[v(`div`,Ve,[v(`label`,He,E(n.$t(`views.settings.mqtt_tls_reject_unauthorized`)),1),g(s,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:p(()=>[h(E(n.$t(`views.settings.mqtt_tls_reject_unauthorized_info`)),1)]),_:1})]),g(x,{modelValue:_(q).tls.rejectUnauthorized,"onUpdate:modelValue":a[14]||=e=>_(q).tls.rejectUnauthorized=e,class:`ml-auto shrink-0`},null,8,[`modelValue`])]),v(`div`,Ue,[v(`label`,We,E(n.$t(`views.settings.mqtt_tls_ca_label`)),1),g(Y,{modelValue:_(q).tls.ca,"onUpdate:modelValue":a[15]||=e=>_(q).tls.ca=e,rows:`3`,"auto-resize":``,class:`font-mono text-xs`},null,8,[`modelValue`])]),v(`div`,Ge,[v(`label`,Ke,E(n.$t(`views.settings.mqtt_tls_cert_label`)),1),g(Y,{modelValue:_(q).tls.cert,"onUpdate:modelValue":a[16]||=e=>_(q).tls.cert=e,rows:`3`,"auto-resize":``,class:`font-mono text-xs`},null,8,[`modelValue`])]),v(`div`,qe,[v(`label`,Je,E(n.$t(`views.settings.mqtt_tls_key_label`)),1),g(Y,{modelValue:_(q).tls.key,"onUpdate:modelValue":a[17]||=e=>_(q).tls.key=e,rows:`3`,"auto-resize":``,class:`font-mono text-xs`},null,8,[`modelValue`])])],64)):b(``,!0),v(`div`,Ye,[v(`div`,Xe,[v(`label`,Ze,E(n.$t(`views.settings.mqtt_ha_discovery`)),1),g(s,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:p(()=>[h(E(n.$t(`views.settings.mqtt_ha_discovery_info`)),1)]),_:1})]),g(x,{modelValue:_(q).haDiscovery.enabled,"onUpdate:modelValue":a[18]||=e=>_(q).haDiscovery.enabled=e,class:`ml-auto shrink-0`},null,8,[`modelValue`])]),_(q).haDiscovery.enabled?(f(),m(_(T),{key:3,modelValue:_(q).haDiscovery.prefix,"onUpdate:modelValue":a[19]||=e=>_(q).haDiscovery.prefix=e,modelModifiers:{trim:!0},name:`haDiscovery.prefix`,as:`div`,class:`flex flex-col field-gap`},{default:p(({field:e,errors:t})=>[v(`label`,Qe,E(n.$t(`views.settings.mqtt_ha_prefix_label`)),1),g(D,l(e,{invalid:t.length>0,type:`text`,placeholder:`homeassistant`}),null,16,[`invalid`]),g(d,{name:`fade`},{default:p(()=>[g(_(w),{name:`haDiscovery.prefix`,class:`cui-input-error`})]),_:1}),g(s,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:p(()=>[h(E(n.$t(`views.settings.mqtt_ha_prefix_info`)),1)]),_:1})]),_:1},8,[`modelValue`])):b(``,!0),v(`div`,$e,[g(Z,{type:`button`,severity:`secondary`,loading:_(G).isPending.value,disabled:_(q).mode===`external`&&!_(q).host,class:`cui-button-medium`,label:n.$t(`views.settings.mqtt_test`),onClick:ot},null,8,[`loading`,`disabled`,`label`]),g(Z,{type:`submit`,loading:_(W).isPending.value,class:`cui-button-medium ml-auto`,label:n.$t(`components.form.button.save`)},null,8,[`loading`,`label`])])])]),_:1})])]),_:1},8,[`validation-schema`])])):(f(),S(`div`,A,[g(o,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})]))])}}});export{V as default};
@@ -0,0 +1 @@
1
+ import{F as e,G as t,N as n,Pt as r,Rt as ee,Wt as te,zr as i}from"./vendor-cameraui-OySaGjmo.js";import{dr as a,xn as o,xr as s}from"./api-ou2-S3Z9.js";import{$t as c,An as l,In as ne,Kn as u,Mn as d,Pn as re,Xn as ie,Yn as f,Zt as ae,an as p,ar as m,dn as h,fn as g,hr as _,in as v,mn as y,on as b,rn as x,sn as S,sr as C,yr as w}from"./vendor-AX0A8AMd.js";import{i as T}from"./intercomService-JoKcW49f.js";import{K as oe,S as se,T as ce,U as le,z as ue}from"./vendor-primevue-CvHDsVi_.js";import{t as E}from"./notifications-BZCPhbuG.js";import{t as D}from"./usePushRegistration-sYPibp5s.js";import{t as de}from"./delete-CiJ6ng5_.js";import{t as fe}from"./CuiDataTable-BDyku8Vr.js";import{t as O}from"./usePermissions-C_4RPiE4.js";var pe={class:`flex flex-col w-full gap-6`},me={class:`card-title`},he={class:`flex flex-col gap-6`},ge={class:`text-sm`},_e={key:1,class:`flex items-center justify-center py-8`},ve={class:`flex items-center gap-4`},ye={class:`flex flex-col field-switch-gap`},be={class:`cui-label-switch`},xe={key:0,class:`flex items-center gap-4`},Se={class:`flex flex-col field-switch-gap min-w-0`},Ce={class:`cui-label-switch`},we={key:1,class:`flex items-center gap-4`},Te={class:`flex flex-col field-switch-gap min-w-0`},Ee={class:`cui-label-switch`},De={key:2,class:`flex flex-col gap-2`},Oe={class:`flex items-center gap-4`},ke={class:`flex flex-col field-switch-gap`},Ae={class:`cui-label-switch`},je={key:0,class:`grid grid-cols-1 sm:grid-cols-3 gap-3 mt-2`},Me={class:`flex flex-col field-gap`},Ne={for:`qh-from`,class:`cui-label`},Pe={class:`flex flex-col field-gap`},Fe={for:`qh-to`,class:`cui-label`},Ie={class:`flex flex-col field-gap`},Le={for:`qh-tz`,class:`cui-label`},Re={key:0},ze={class:`card-title`},Be={class:`flex flex-col gap-6`},Ve={class:`text-sm`},He={key:0,class:`flex items-center justify-center py-8`},Ue={key:1,class:`text-sm text-muted text-center py-8`},We={key:2,class:`flex flex-col gap-3`},Ge={class:`flex items-center gap-4`},Ke={class:`flex flex-col field-switch-gap`},qe={class:`cui-label-switch`},Je={key:1},Ye={class:`card-title`},Xe={class:`flex flex-col gap-6`},Ze={class:`text-sm`},Qe={key:0,class:`flex items-center justify-center py-8`},$e={key:1,class:`text-sm text-muted text-center py-8`},et={key:2,class:`flex flex-col gap-3`},tt={class:`flex items-center gap-4`},nt={class:`flex flex-col field-switch-gap`},rt={class:`cui-label-switch`},it={key:2},at={class:`card-title`},ot={class:`flex flex-col gap-6`},st={class:`text-sm`},ct={key:0,class:`flex items-center justify-center py-8`},lt={key:1,class:`text-sm text-muted text-center py-8`},ut={key:3,class:`flex justify-end gap-2`},k=y({__name:`SettingsNotifications`,setup(y){let k=new E,{t:A,te:dt}=i(),j=s(),ft=o(void 0,`admin`),{registerForPush:pt,forgetIfThisDevice:mt,getSyncState:ht,restoreMarker:gt}=D(),{isElectronApp:M,electron:N}=T(),{states:_t,refresh:vt}=O(),{data:P,isLoading:yt}=k.getSettingsQuery(),{data:F,isLoading:bt}=k.listDevicesQuery(()=>!0),{data:I,isLoading:L}=k.listSourcesQuery(),{mutate:xt,isPending:St}=k.setSettingsQuery(),{mutateAsync:Ct}=k.setSettingsQuerySilent(),{mutate:wt}=k.revokeDeviceQuery(),{mutate:R}=k.updateDeviceQuery(),z=Intl.DateTimeFormat().resolvedOptions().timeZone||`UTC`,B=C(null),V=C(``),H=C(!1),U=C(!1),W=C(!1),G=C(!0),K=C(!1),q=C(null),J=m({}),Y=C(null),Tt=x(()=>!!B.value&&JSON.stringify(B.value)!==V.value),X=x(()=>!!B.value?.enabled),Z=x(()=>St.value),Et=x(()=>$(B.value?.quietHours?.from)),Dt=x(()=>$(B.value?.quietHours?.to));function Q(e){e&&(B.value=JSON.parse(JSON.stringify(e)),V.value=JSON.stringify(e))}function Ot(){Q(P.value)}function kt(e){B.value&&(e?B.value.quietHours={from:`22:00`,to:`07:00`,timezone:z}:delete B.value.quietHours)}function $(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 At(e){return e?`${String(e.getHours()).padStart(2,`0`)}:${String(e.getMinutes()).padStart(2,`0`)}`:`00:00`}function jt(e,t){B.value?.quietHours&&(B.value.quietHours[e]=At(t))}function Mt(e){return B.value?.systemTypes?.[e]!==!1}function Nt(e,t){B.value&&(B.value.systemTypes||(B.value.systemTypes={}),t?delete B.value.systemTypes[e]:B.value.systemTypes[e]=!1)}function Pt(e){return B.value?.sources?.[e]!==!1}function Ft(e,t){B.value&&(B.value.sources||(B.value.sources={}),t?delete B.value.sources[e]:B.value.sources[e]=!1)}function It(e){let t=`views.settings.notifications.system_types.${e.type.replaceAll(`.`,`_`)}`;return dt(t)?A(t):e.label}function Lt(){B.value&&xt({settings:B.value},{onSuccess:e=>Q(e)})}async function Rt(e){if(!(!B.value||!P.value)){H.value=!0;try{Q(await Ct({settings:{...P.value,enabled:e}}))}catch(e){j.add({severity:`error`,detail:e,life:3e3})}finally{H.value=!1}}}async function zt(){let e=a(),t=e?await ht(e,F.value):{status:`unknown`};U.value=t.status===`registered`,t.status===`registered`&&t.device&&e&&await gt(e,t.device.id)}async function Bt(){if(!(!M||!N))try{G.value=await N.invoke(`get-desktop-notifications`)}catch{}}async function Vt(e){if(N){K.value=!0;try{G.value=await N.invoke(`set-desktop-notifications`,e)}catch(e){j.add({severity:`error`,detail:e,life:3e3})}finally{K.value=!1}}}async function Ht(){W.value=!0;try{await pt(),await zt(),await k.queryClient.invalidateQueries({queryKey:[`notifications`,`devices`]})}catch(e){j.add({severity:`error`,detail:e,life:3e3})}finally{W.value=!1}}function Ut(e){q.value=e;let t=a();wt({deviceId:e},{onSuccess:async()=>{t&&await mt(t,e),zt()},onSettled:()=>q.value=null})}function Wt(e){let t=J[e.id];if(t==null)return;let n=t.trim();if(!n||n===e.name){delete J[e.id];return}Y.value=e.id,R({deviceId:e.id,patch:{name:n}},{onSuccess:()=>delete J[e.id],onSettled:()=>Y.value=null})}function Gt(e,t){Y.value=e,R({deviceId:e,patch:{active:t}},{onSettled:()=>Y.value=null})}return u(P,Q,{immediate:!0}),u(F,()=>!1,{immediate:!0}),l(()=>{M&&Bt(),vt()}),(i,a)=>{let o=ne(`RouterLink`),s=ue,l=r,u=oe,m=ee,y=n,x=e,C=t,T=le,E=se,D=ce,O=de,k=fe,A=te;return d(),S(`div`,null,[v(`div`,pe,[v(`div`,null,[v(`span`,me,w(i.$t(`views.settings.notifications.general`)),1),g(C,{class:`cui-card`},{content:f(()=>[v(`div`,he,[v(`span`,ge,w(i.$t(`views.settings.notifications.general_info`)),1),_(_t).notifications===`denied`?(d(),p(s,{key:0,severity:`warn`,size:`small`},{default:f(()=>[h(w(i.$t(`views.settings.notifications.os_permission_denied`))+` `,1),g(o,{to:`/settings/permissions`,class:`underline`},{default:f(()=>[h(w(i.$t(`views.settings.notifications.os_permission_link`)),1)]),_:1})]),_:1})):b(``,!0),_(yt)&&!_(B)?(d(),S(`div`,_e,[g(l,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):_(B)?(d(),S(c,{key:2},[v(`div`,ve,[v(`div`,ye,[v(`label`,be,w(i.$t(`views.settings.notifications.enable`)),1),g(s,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:f(()=>[h(w(i.$t(`views.settings.notifications.enable_info`)),1)]),_:1})]),g(u,{"model-value":_(B).enabled,loading:_(H),class:`ml-auto shrink-0`,"onUpdate:modelValue":Rt},null,8,[`model-value`,`loading`])]),_(!1)&&_(B).enabled?(d(),S(`div`,xe,[v(`div`,Se,[v(`label`,Ce,w(i.$t(`views.settings.notifications.this_device`)),1),g(s,{severity:_(U)?`secondary`:`warn`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:f(()=>[h(w(_(U)?i.$t(`views.settings.notifications.this_device_synced`):i.$t(`views.settings.notifications.this_device_unsynced`)),1)]),_:1},8,[`severity`])]),g(m,{severity:_(U)?`secondary`:void 0,loading:_(W),class:`cui-button-small ml-auto shrink-0`,label:_(U)?i.$t(`views.settings.notifications.resync`):i.$t(`views.settings.notifications.sync`),onClick:Ht},null,8,[`severity`,`loading`,`label`])])):_(M)&&_(B).enabled?(d(),S(`div`,we,[v(`div`,Te,[v(`label`,Ee,w(i.$t(`views.settings.notifications.this_device`)),1),g(s,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:f(()=>[h(w(i.$t(`views.settings.notifications.this_device_desktop`)),1)]),_:1})]),g(u,{"model-value":_(G),loading:_(K),class:`ml-auto shrink-0`,"onUpdate:modelValue":Vt},null,8,[`model-value`,`loading`])])):b(``,!0),_(B).enabled?(d(),S(`div`,De,[v(`div`,Oe,[v(`div`,ke,[v(`label`,Ae,w(i.$t(`views.settings.notifications.quiet_hours`)),1),g(s,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:f(()=>[h(w(i.$t(`views.settings.notifications.quiet_hours_info`)),1)]),_:1})]),g(u,{"model-value":!!_(B).quietHours,class:`ml-auto shrink-0`,"onUpdate:modelValue":kt},null,8,[`model-value`])]),_(B).quietHours?(d(),S(`div`,je,[v(`div`,Me,[v(`label`,Ne,w(i.$t(`views.settings.notifications.from`)),1),g(y,{"input-id":`qh-from`,"model-value":_(Et),"time-only":``,"show-icon":``,"icon-display":`input`,class:`w-full`,"onUpdate:modelValue":a[0]||=e=>jt(`from`,e)},null,8,[`model-value`])]),v(`div`,Pe,[v(`label`,Fe,w(i.$t(`views.settings.notifications.to`)),1),g(y,{"input-id":`qh-to`,"model-value":_(Dt),"time-only":``,"show-icon":``,"icon-display":`input`,class:`w-full`,"onUpdate:modelValue":a[1]||=e=>jt(`to`,e)},null,8,[`model-value`])]),v(`div`,Ie,[v(`label`,Le,w(i.$t(`views.settings.notifications.timezone`)),1),g(x,{id:`qh-tz`,modelValue:_(B).quietHours.timezone,"onUpdate:modelValue":a[2]||=e=>_(B).quietHours.timezone=e,placeholder:_(z)},null,8,[`modelValue`,`placeholder`])])])):b(``,!0)])):b(``,!0)],64)):b(``,!0)])]),_:1})]),_(X)&&_(ft)?(d(),S(`div`,Re,[v(`span`,ze,w(i.$t(`views.settings.notifications.system_notifications`)),1),g(C,{class:`cui-card`},{content:f(()=>[v(`div`,Be,[v(`span`,Ve,w(i.$t(`views.settings.notifications.system_notifications_info`)),1),_(L)&&!_(I)?(d(),S(`div`,He,[g(l,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):_(I)?.system?.length?(d(),S(`div`,We,[(d(!0),S(c,null,re(_(I).system,(e,t)=>(d(),S(`div`,{key:e.type},[v(`div`,Ge,[v(`div`,Ke,[v(`label`,qe,w(It(e)),1),e.description?(d(),p(s,{key:0,severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:f(()=>[h(w(e.description),1)]),_:2},1024)):b(``,!0)]),g(u,{"model-value":Mt(e.type),class:`ml-auto shrink-0`,"onUpdate:modelValue":t=>Nt(e.type,t)},null,8,[`model-value`,`onUpdate:modelValue`])]),t<_(I).system.length-1?(d(),p(T,{key:0,class:`my-2`})):b(``,!0)]))),128))])):(d(),S(`div`,Ue,w(i.$t(`views.settings.notifications.no_system_types`)),1))])]),_:1})])):b(``,!0),_(X)?(d(),S(`div`,Je,[v(`span`,Ye,w(i.$t(`views.settings.notifications.plugin_notifications`)),1),g(C,{class:`cui-card`},{content:f(()=>[v(`div`,Xe,[v(`span`,Ze,w(i.$t(`views.settings.notifications.plugin_notifications_info`)),1),_(L)&&!_(I)?(d(),S(`div`,Qe,[g(l,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):_(I)?.plugins?.length?(d(),S(`div`,et,[(d(!0),S(c,null,re(_(I).plugins,(e,t)=>(d(),S(`div`,{key:e.id},[v(`div`,tt,[v(`div`,nt,[v(`label`,rt,w(e.name),1)]),g(u,{"model-value":Pt(e.id),class:`ml-auto shrink-0`,"onUpdate:modelValue":t=>Ft(e.id,t)},null,8,[`model-value`,`onUpdate:modelValue`])]),t<_(I).plugins.length-1?(d(),p(T,{key:0,class:`my-2`})):b(``,!0)]))),128))])):(d(),S(`div`,$e,w(i.$t(`views.settings.notifications.no_plugin_sources`)),1))])]),_:1})])):b(``,!0),_(X)?(d(),S(`div`,it,[v(`span`,at,w(i.$t(`views.settings.notifications.devices`)),1),g(C,{class:`cui-card`},{content:f(()=>[v(`div`,ot,[v(`span`,st,w(i.$t(`views.settings.notifications.devices_info`)),1),_(bt)&&!_(F)?(d(),S(`div`,ct,[g(l,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):_(F)?.length?(d(),p(k,{key:2,value:_(F),"striped-rows":``},{default:f(()=>[g(E,{field:`name`,header:i.$t(`views.settings.notifications.col_name`)},{body:f(({data:e})=>[g(x,{"model-value":_(J)[e.id]??e.name,disabled:_(Y)===e.id,class:`w-full max-w-xs min-w-[150px]`,"onUpdate:modelValue":t=>_(J)[e.id]=t??``,onBlur:t=>Wt(e),onKeyup:ae(t=>Wt(e),[`enter`])},null,8,[`model-value`,`disabled`,`onUpdate:modelValue`,`onBlur`,`onKeyup`])]),_:1},8,[`header`]),g(E,{field:`pluginName`,header:i.$t(`views.settings.notifications.col_plugin`)},{body:f(({data:e})=>[g(D,{label:e.pluginName,class:`text-xs`},null,8,[`label`])]),_:1},8,[`header`]),g(E,{field:`active`,header:i.$t(`views.settings.notifications.col_active`),style:{width:`7rem`}},{body:f(({data:e})=>[g(u,{"model-value":e.active,loading:_(Y)===e.id,"onUpdate:modelValue":t=>Gt(e.id,t)},null,8,[`model-value`,`loading`,`onUpdate:modelValue`])]),_:1},8,[`header`]),g(E,{field:`actions`,header:``,style:{width:`6rem`}},{body:f(({data:e})=>[ie((d(),p(m,{severity:`danger`,text:``,rounded:``,class:`cui-icon-md`,loading:_(q)===e.id,onClick:t=>Ut(e.id)},{icon:f(()=>[g(O,{width:`100%`,height:`100%`})]),_:1},8,[`loading`,`onClick`])),[[A,{value:i.$t(`views.settings.notifications.revoke`)}]])]),_:1})]),_:1},8,[`value`])):(d(),S(`div`,lt,w(i.$t(`views.settings.notifications.no_devices`)),1))])]),_:1})])):b(``,!0),_(B)&&_(Tt)?(d(),S(`div`,ut,[g(m,{severity:`secondary`,outlined:``,class:`cui-button-medium`,disabled:_(Z),label:i.$t(`views.settings.notifications.reset`),onClick:Ot},null,8,[`disabled`,`label`]),g(m,{severity:`success`,class:`cui-button-medium`,loading:_(Z),label:i.$t(`views.settings.notifications.save`),onClick:Lt},null,8,[`loading`,`label`])])):b(``,!0)])])}}});export{k as default};
@@ -0,0 +1 @@
1
+ import{G as e,Rt as t,ri as n}from"./vendor-cameraui-OySaGjmo.js";import{$t as r,An as i,Mn as a,Pn as o,Yn as s,an as c,dn as l,fn as u,hr as d,in as f,mn as p,on as m,sn as h,sr as g,yr as _}from"./vendor-AX0A8AMd.js";import{a as v,z as y}from"./vendor-primevue-CvHDsVi_.js";import{t as b}from"./usePermissions-C_4RPiE4.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=g(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()}),i(()=>{A()}),(n,i)=>{let p=y,g=v,b=t,A=e;return a(),h(`div`,null,[f(`div`,x,[f(`div`,null,[f(`span`,S,_(n.$t(`views.settings.permissions.general`)),1),u(A,{class:`cui-card`},{content:s(()=>[f(`div`,C,[f(`span`,w,_(n.$t(`views.settings.permissions.general_info`)),1),(a(),h(r,null,o(N,e=>f(`div`,{key:e.name,class:`flex items-center gap-4`},[f(`div`,T,[f(`label`,E,_(n.$t(`views.settings.permissions.${e.name}`)),1),u(p,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:s(()=>[l(_(n.$t(`views.settings.permissions.${e.name}_info`)),1)]),_:2},1024),d(O)[e.name]===`denied`&&!d(k)?(a(),c(p,{key:0,severity:`warn`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:s(()=>[l(_(n.$t(`views.settings.permissions.browser_hint`)),1)]),_:1})):m(``,!0)]),f(`div`,D,[u(g,{severity:F(d(O)[e.name]),value:n.$t(`views.settings.permissions.state_${d(O)[e.name]}`)},null,8,[`severity`,`value`]),d(O)[e.name]===`prompt`||d(O)[e.name]===`unknown`?(a(),c(b,{key:0,loading:d(P)===e.name,class:`cui-button-small`,label:n.$t(`views.settings.permissions.request`),onClick:t=>I(e.name)},null,8,[`loading`,`label`,`onClick`])):d(O)[e.name]===`denied`&&d(k)?(a(),c(b,{key:1,severity:`secondary`,class:`cui-button-small`,label:n.$t(`views.settings.permissions.open_settings`),onClick:d(M)},null,8,[`label`,`onClick`])):m(``,!0)])])),64))])]),_:1})])])])}}});export{O as default};
@@ -0,0 +1 @@
1
+ import{G as e,Ot as t,Pt as n,b as r,wt as i,zr as a}from"./vendor-cameraui-OySaGjmo.js";import{nn as o,xr as s}from"./api-ou2-S3Z9.js";import{An as c,Kn as l,Mn as u,Yn as d,an as f,dn as p,fn as m,hr as h,in as g,mn as _,on as v,rn as y,sn as b,sr as x,yr as S}from"./vendor-AX0A8AMd.js";import{z as ee}from"./vendor-primevue-CvHDsVi_.js";import{t as C}from"./CuiSchema-CxRd72K7.js";import{t as w}from"./alert-outline-KxFvd3i6.js";import{t as te}from"./CuiPluginOAuthButton-CTKbdFZJ.js";var T={class:`flex flex-col w-full gap-6`},E={key:0,class:`cui-banner cui-banner-error`},D={key:1,class:`cui-banner cui-banner-warn`},O={key:2,class:`cui-banner cui-banner-warn`},k={class:`card-title`},A={class:`flex items-center justify-between gap-4`},j={class:`min-w-0`},M={class:`text-sm`},N={class:`text-xs text-muted-color mt-1`},P={key:5},F={class:`card-title`},I={key:0,class:`flex items-center justify-center py-8`},L={key:1,class:`text-sm text-muted text-center py-8`},R=`@camera.ui/camera-ui-nvr`,z=_({__name:`SettingsRecordings`,setup(_){let{t:z}=a(),B=s(),{stats:V,isLoading:H,refresh:U}=r(),{state:W,refresh:G}=i(R),{isConnected:K,isLoading:q,config:J,getConfig:Y,setConfig:X,setValue:Z,submitValue:Q}=t(R),$=x(!1),ne=y(()=>({License:z(`views.settings.recordings.group_info_license`),Storage:z(`views.settings.recordings.group_info_storage`),"Face Recognition":z(`views.settings.recordings.group_info_faces`),GenAI:z(`views.settings.recordings.group_info_genai`),Moments:z(`views.settings.recordings.group_info_moments`),Episodes:z(`views.settings.recordings.group_info_episodes`)})),re=y(()=>{switch(W.value.status){case`connected`:return z(`components.oauth.connected_as`,{email:W.value.userEmail||`—`});case`awaiting_user`:case`polling`:return z(`components.oauth.tooltip_authorizing`);case`error`:return z(`components.oauth.error_generic`);default:return z(`views.settings.recordings.license_disconnected`)}});async function ie(e){try{await Z(e.key,void 0),B.add({severity:`success`,detail:z(`components.toast.config_updated`),life:3e3}),U()}catch(e){B.add({severity:`error`,detail:e,life:3e3})}}async function ae(e){try{let t=await Q(e.key,e.payload);t?.toast?B.add({severity:t.toast.type,detail:t.toast.message,life:3e3}):B.add({severity:`success`,detail:z(`components.toast.config_updated`),life:3e3}),U()}catch(e){B.add({severity:`error`,detail:e,life:3e3})}}async function oe(e){try{await X(e),B.add({severity:`success`,detail:z(`components.toast.config_updated`),life:3e3}),U()}catch(e){B.add({severity:`error`,detail:e,life:3e3})}}return l(K,async e=>{e&&await Y()},{immediate:!0}),c(async()=>{try{await G()}finally{$.value=!0}}),(t,r)=>{let i=o,a=w,s=ee,c=e,l=n;return u(),b(`div`,null,[g(`div`,T,[h(V)&&h(V).paused===!0?(u(),b(`div`,E,[m(i,{class:`shrink-0 w-5 h-5`}),g(`span`,null,S(t.$t(`views.settings.recordings.disk_critical`)),1)])):h(V)&&h(V).diskFreePercent>0&&h(V).diskFreePercent<8?(u(),b(`div`,D,[m(a,{class:`shrink-0 w-5 h-5`}),g(`span`,null,S(t.$t(`views.settings.recordings.disk_warning`)),1)])):v(``,!0),h(V)&&h(V).smallVolume?(u(),b(`div`,O,[m(a,{class:`shrink-0 w-5 h-5`}),g(`span`,null,S(t.$t(`views.settings.recordings.disk_small_volume`)),1)])):v(``,!0),h($)&&h(W).status!==`connected`?(u(),f(s,{key:3,severity:`warn`,size:`small`},{default:d(()=>[p(S(t.$t(`views.settings.recordings.cloud_login_hint`)),1)]),_:1})):v(``,!0),g(`div`,null,[g(`span`,k,S(t.$t(`views.settings.recordings.license_title`)),1),m(c,{class:`cui-card`},{content:d(()=>[g(`div`,A,[g(`div`,j,[g(`p`,M,S(h(re)),1),g(`p`,N,S(t.$t(`views.settings.recordings.license_description`)),1)]),m(te,{"plugin-name":R,class:`flex-shrink-0`})])]),_:1})]),h(J)?(u(),f(C,{key:4,"schema-form":{schema:h(J).schema,config:h(J).config},loading:h(q),"groups-as-cards":``,"group-descriptions":h(ne),onOnAction:ie,onOnSubmit:ae,onOnFormSubmit:oe},null,8,[`schema-form`,`loading`,`group-descriptions`])):(u(),b(`div`,P,[g(`span`,F,S(t.$t(`views.settings.recordings.global_settings`)),1),m(c,{class:`cui-card`},{content:d(()=>[h(H)||h(q)?(u(),b(`div`,I,[m(l,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):(u(),b(`div`,L,S(t.$t(`views.settings.recordings.not_available`)),1))]),_:1})]))])])}}});export{z as default};