@camera.ui/server 2.1.0 → 2.1.2

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 (384) hide show
  1. package/dist/interface/assets/{404-mKz7xfYl.js → 404-pb2fRn1r.js} +1 -1
  2. package/dist/interface/assets/{About-C3mKJiWW.js → About-eljMnDub.js} +1 -1
  3. package/dist/interface/assets/{Adminpanel-KkWHp8Mh.js → Adminpanel-BtQdiyre.js} +1 -1
  4. package/dist/interface/assets/Automation-DOiLJcU_.js +3 -0
  5. package/dist/interface/assets/AutomationImport-DflZNRBB.js +2 -0
  6. package/dist/interface/assets/AutomationStore-qF_NTNUf.js +2 -0
  7. package/dist/interface/assets/AutomationStoreDetail-CUw-jBBR.js +2 -0
  8. package/dist/interface/assets/Automations-DBjwNb3F.js +2 -0
  9. package/dist/interface/assets/Camera-BfvpjkW3.js +2 -0
  10. package/dist/interface/assets/{CameraConsole-Bj9mszzp.js → CameraConsole-CEARcJYc.js} +1 -1
  11. package/dist/interface/assets/{Cameras-BVFxn9Ef.js → Cameras-C0oHuoTR.js} +2 -2
  12. package/dist/interface/assets/Camview-DArvg940.js +1 -0
  13. package/dist/interface/assets/{Camview-DEURwPYt.css → Camview-mLCaY0ld.css} +1 -1
  14. package/dist/interface/assets/Config-Ccp5Acpv.js +2 -0
  15. package/dist/interface/assets/{ConfigActionCameraControl-B80iDDds.js → ConfigActionCameraControl-De0qb88r.js} +1 -1
  16. package/dist/interface/assets/{ConfigActionDelay-ChhenlQV.js → ConfigActionDelay-nDK4i-AL.js} +1 -1
  17. package/dist/interface/assets/{ConfigActionHttp-09PkDYgp.js → ConfigActionHttp-DX-vapgv.js} +1 -1
  18. package/dist/interface/assets/{ConfigActionImageInput-FDMVc5FH.js → ConfigActionImageInput-CS7U7BsI.js} +1 -1
  19. package/dist/interface/assets/{ConfigActionMqtt-4gLcAM0C.js → ConfigActionMqtt-82swCx_F.js} +1 -1
  20. package/dist/interface/assets/{ConfigActionNotification-DmIQhrC2.js → ConfigActionNotification-t-1zN_1y.js} +1 -1
  21. package/dist/interface/assets/{ConfigActionNotificationControl-Df4BdM3c.js → ConfigActionNotificationControl-jz3ez2Uq.js} +1 -1
  22. package/dist/interface/assets/{ConfigActionOutput-CNKeWFvE.js → ConfigActionOutput-B6uJheX1.js} +1 -1
  23. package/dist/interface/assets/{ConfigActionPlugin-CWfEabyz.js → ConfigActionPlugin-LyOIrZnv.js} +1 -1
  24. package/dist/interface/assets/ConfigActionSensor-BTqc1inw.js +1 -0
  25. package/dist/interface/assets/{ConfigActionSnapshot-CM8xar0h.js → ConfigActionSnapshot-DdPy_Ubu.js} +1 -1
  26. package/dist/interface/assets/{ConfigActionVariable-B8tiVULt.js → ConfigActionVariable-Csf7jPOm.js} +1 -1
  27. package/dist/interface/assets/{ConfigConditionIfElse-CtF5exKE.js → ConfigConditionIfElse-BvzwZ70p.js} +1 -1
  28. package/dist/interface/assets/{ConfigConditionSensorState-B4hRgQdg.js → ConfigConditionSensorState-lI9dzHiT.js} +1 -1
  29. package/dist/interface/assets/{ConfigConditionSwitch-ZhpDw8ZY.js → ConfigConditionSwitch-DJU2JC-3.js} +1 -1
  30. package/dist/interface/assets/{ConfigConditionTime-EF84vg1f.js → ConfigConditionTime-BxE2CJMA.js} +1 -1
  31. package/dist/interface/assets/{ConfigSensorValueInput-DNxw4rt3.js → ConfigSensorValueInput-DW4er753.js} +1 -1
  32. package/dist/interface/assets/{ConfigTriggerDetection-BmxUG87T.js → ConfigTriggerDetection-DpC8V8K8.js} +1 -1
  33. package/dist/interface/assets/ConfigTriggerGeofence-DTzax7bc.js +1 -0
  34. package/dist/interface/assets/{ConfigTriggerManual-t-J-HbqF.js → ConfigTriggerManual-CtjnnQb1.js} +1 -1
  35. package/dist/interface/assets/{ConfigTriggerMqtt-BD1iizF-.js → ConfigTriggerMqtt-C7J22EMe.js} +1 -1
  36. package/dist/interface/assets/{ConfigTriggerSchedule-CBPaopJK.js → ConfigTriggerSchedule-DnYDDz3F.js} +1 -1
  37. package/dist/interface/assets/{ConfigTriggerSensor-CXmxhiPM.js → ConfigTriggerSensor-vhwPNmPj.js} +1 -1
  38. package/dist/interface/assets/{ConfigTriggerSystem-CfFnKyIn.js → ConfigTriggerSystem-D1JulYVd.js} +1 -1
  39. package/dist/interface/assets/{ConfigTriggerWebhook-gqcxnQdl.js → ConfigTriggerWebhook-BrKFtq7o.js} +1 -1
  40. package/dist/interface/assets/Console-C6yUdEaM.js +1 -0
  41. package/dist/interface/assets/CuiAutomationRunsDialog-C4i7y1Re.js +1 -0
  42. package/dist/interface/assets/CuiBottomSheet-C2zU_iyj.js +1 -0
  43. package/dist/interface/assets/{CuiBottomSheet-BcDAO9At.js → CuiBottomSheet-C_1_moNo.js} +1 -1
  44. package/dist/interface/assets/{CuiCameraPipCard-C7822oZM.js → CuiCameraPipCard-CZ-oDxzy.js} +1 -1
  45. package/dist/interface/assets/CuiCameraRecordings-mY_giLEi.js +1 -0
  46. package/dist/interface/assets/CuiCameraShares-XwN5kuC7.js +1 -0
  47. package/dist/interface/assets/{CuiCameraTable-BdXITi6O.js → CuiCameraTable-BeeHLaiQ.js} +2 -2
  48. package/dist/interface/assets/CuiConsole-B7R7U9UZ.js +5 -0
  49. package/dist/interface/assets/CuiDataTable-CQhCu0px.js +1 -0
  50. package/dist/interface/assets/CuiDataTable-DbkFXZeg.css +1 -0
  51. package/dist/interface/assets/CuiLightControl-CEpcKss7.js +1 -0
  52. package/dist/interface/assets/{CuiMarkdownContent-Bjs3wRnq.js → CuiMarkdownContent-C2uBepC1.js} +1 -1
  53. package/dist/interface/assets/CuiMarkdownContent-QxLR7_qs.js +1 -0
  54. package/dist/interface/assets/CuiPluginCard-1dSDwOCf.js +2 -0
  55. package/dist/interface/assets/{CuiPluginCard-D_6UFFZW.css → CuiPluginCard-rkhmuumi.css} +1 -1
  56. package/dist/interface/assets/{CuiPluginCategoryChip-C9l5I9v3.js → CuiPluginCategoryChip-JkdbQU4X.js} +1 -1
  57. package/dist/interface/assets/CuiPluginOAuthButton-LYMFfb3v.js +2 -0
  58. package/dist/interface/assets/{CuiPluginTrustBadge-BkdNlrZ7.js → CuiPluginTrustBadge-sZF0UKMD.js} +1 -1
  59. package/dist/interface/assets/{CuiQRCode-D8CKX4s9.js → CuiQRCode-B4ysluWR.js} +1 -1
  60. package/dist/interface/assets/CuiRecordingsGrid-CkwE3jcR.js +1 -0
  61. package/dist/interface/assets/CuiSchema-DKATswRc.js +1 -0
  62. package/dist/interface/assets/{CuiTopNavbarItem-C-ZiLXkp.js → CuiTopNavbarItem-rMsWME9B.js} +1 -1
  63. package/dist/interface/assets/Faces-BeeZrFV-.js +1 -0
  64. package/dist/interface/assets/FirstSteps-DWT6Tt_T.js +1 -0
  65. package/dist/interface/assets/Instances-CJlFo8ni.js +1 -0
  66. package/dist/interface/assets/Logs-8onUmCYX.js +6 -0
  67. package/dist/interface/assets/{Menu-CvpQ9fHV.js → Menu-DP0aMICW.js} +1 -1
  68. package/dist/interface/assets/OAuthDeviceFlow-CcSkntGk.js +1 -0
  69. package/dist/interface/assets/Plugin-8dbt_8iG.js +1 -0
  70. package/dist/interface/assets/{PluginConsole-DUnPciNz.js → PluginConsole-JFcH_ZW0.js} +2 -2
  71. package/dist/interface/assets/PluginDetail-C9dR9jrw.js +2 -0
  72. package/dist/interface/assets/{PluginSchema-CQARvB5H.js → PluginSchema-Gfn_csMP.js} +1 -1
  73. package/dist/interface/assets/PluginSearch-BVAtgBZs.js +1 -0
  74. package/dist/interface/assets/PluginSearch-HEf_6CrR.js +2 -0
  75. package/dist/interface/assets/PluginUpdateProgress-DaI9bwSV.js +1 -0
  76. package/dist/interface/assets/Plugins-CQJhji6o.js +1 -0
  77. package/dist/interface/assets/Recordings-80Xd1V3L.css +1 -0
  78. package/dist/interface/assets/Recordings-AD78njIA.js +1 -0
  79. package/dist/interface/assets/SensorEdit-ono85O3c.css +1 -0
  80. package/dist/interface/assets/SensorEdit-rC02usEO.js +1 -0
  81. package/dist/interface/assets/{SensorHistory-oWCb8Kia.js → SensorHistory-2TmYLaL4.js} +1 -1
  82. package/dist/interface/assets/Sensors-CFfII3-e.css +1 -0
  83. package/dist/interface/assets/Sensors-Vwr7MYz6.js +2 -0
  84. package/dist/interface/assets/Settings-8yG5ny5r.js +1 -0
  85. package/dist/interface/assets/SettingsAccount-BBsivYFf.js +1 -0
  86. package/dist/interface/assets/SettingsAccount-CN9Xcgt-.js +1 -0
  87. package/dist/interface/assets/SettingsAppearance-Qh1cw9iX.js +1 -0
  88. package/dist/interface/assets/SettingsAppearance-WQtOksbk.js +1 -0
  89. package/dist/interface/assets/SettingsBackup-DNDDU6a1.js +1 -0
  90. package/dist/interface/assets/SettingsList-tFKUMnsB.js +1 -0
  91. package/dist/interface/assets/{SettingsMqtt-pH6KmHhv.js → SettingsMqtt-BYVV1Mew.js} +1 -1
  92. package/dist/interface/assets/SettingsNotifications-BVGmt0eF.js +2 -0
  93. package/dist/interface/assets/{SettingsPermissions-CDpVmRY2.js → SettingsPermissions-BPqDIjVt.js} +1 -1
  94. package/dist/interface/assets/SettingsRecordings-B4DDJSKe.js +1 -0
  95. package/dist/interface/assets/SettingsRemote-Bib7kXto.js +1 -0
  96. package/dist/interface/assets/SettingsSystem-DIe7CSgH.js +2 -0
  97. package/dist/interface/assets/SettingsUsers-BtT17FNe.js +1 -0
  98. package/dist/interface/assets/{Terminal-DSRLOAKR.js → Terminal-DuJHIlLe.js} +3 -3
  99. package/dist/interface/assets/{VariableInput-rbKenccv.js → VariableInput-CkXZ00Gc.js} +1 -1
  100. package/dist/interface/assets/{VariableSuggestions-DDyxhww6.js → VariableSuggestions-BD1kOG5f.js} +1 -1
  101. package/dist/interface/assets/VersionsHandler-D9sDkGXx.js +7 -0
  102. package/dist/interface/assets/{VirtualSensorCreate-_9QdFeEj.js → VirtualSensorCreate-DcwJ_w-l.js} +1 -1
  103. package/dist/interface/assets/{Workers-DmZkFylb.css → Workers-7hKMBU4w.css} +1 -1
  104. package/dist/interface/assets/Workers-fV_NEZ7U.js +2 -0
  105. package/dist/interface/assets/{account-C5mHt2Ep.js → account-CY80SLLf.js} +1 -1
  106. package/dist/interface/assets/{alert-circle-Cu_kjPlA.js → alert-circle-pDGfnZ4K.js} +1 -1
  107. package/dist/interface/assets/{alert-outline-DXHNnhoP.js → alert-outline-CeoXcnQc.js} +1 -1
  108. package/dist/interface/assets/api-Draww2tC.js +2 -0
  109. package/dist/interface/assets/{api-BijLH5JF.js → api-Mny5Elfn.js} +1 -1
  110. package/dist/interface/assets/api-eELh8KCM.css +2 -0
  111. package/dist/interface/assets/{arrow-left-DPtWmM6S.js → arrow-left-D9jDhvK5.js} +1 -1
  112. package/dist/interface/assets/{arrow-right-outline-BY1ggGA1.js → arrow-right-outline-DF7tkKYk.js} +1 -1
  113. package/dist/interface/assets/{auth-CSrkzvBq.js → auth-9_Jjlsh0.js} +1 -1
  114. package/dist/interface/assets/{automations-5YkU18M0.js → automations-BfsdbSPC.js} +1 -1
  115. package/dist/interface/assets/{back-filled-r7bN5ObT.js → back-filled-DUUGErMw.js} +1 -1
  116. package/dist/interface/assets/{bell-ring-C470qCAb.js → bell-ring-DV73JIre.js} +1 -1
  117. package/dist/interface/assets/{cameras.schema-BQ3CdtV5.js → cameras.schema-DMY4SYte.js} +1 -1
  118. package/dist/interface/assets/{cctv-BKVOVZCR.js → cctv-jy5ROx0o.js} +1 -1
  119. package/dist/interface/assets/{check-circle-Ce_sbfPZ.js → check-circle-FwoylV5-.js} +1 -1
  120. package/dist/interface/assets/{chevron-down-CjSTp091.js → chevron-down-umZ7i0mG.js} +1 -1
  121. package/dist/interface/assets/{chevron-right-B3j6hI1Q.js → chevron-right-AhqYJOFy.js} +1 -1
  122. package/dist/interface/assets/{clock-outline-BgcDXoyp.js → clock-outline-CbvOAMhO.js} +1 -1
  123. package/dist/interface/assets/{close-CQoGQHOF.js → close-CtaDF28n.js} +1 -1
  124. package/dist/interface/assets/{close-circle-DYhkXsRj.js → close-circle-FZ8IxGd4.js} +1 -1
  125. package/dist/interface/assets/{cloud-check-CVx221dJ.js → cloud-check-CFSukfAF.js} +1 -1
  126. package/dist/interface/assets/cloudHandoff-BQsDy9yp.js +1 -0
  127. package/dist/interface/assets/{config-BqiDMRVk.js → config-BZphegxi.js} +1 -1
  128. package/dist/interface/assets/{copy-yhHCVVOa.js → copy-CFA_pDRv.js} +1 -1
  129. package/dist/interface/assets/cube-scan-DEuMi23T.js +1 -0
  130. package/dist/interface/assets/{delete-xWUQUP2x.js → delete-921w_nKy.js} +1 -1
  131. package/dist/interface/assets/{deployed-code-update-CHr3gyW9.js → deployed-code-update-CYS6eKfa.js} +1 -1
  132. package/dist/interface/assets/{dist-DVb-CALh.js → dist-BwEXwXSw.js} +1 -1
  133. package/dist/interface/assets/{download-PLxvyB7s.js → download-C-LzNRmM.js} +1 -1
  134. package/dist/interface/assets/esm-B1LZs0VG.js +1 -0
  135. package/dist/interface/assets/esm-BB4SBaek.js +1 -0
  136. package/dist/interface/assets/esm-BGA8Ydne.js +1 -0
  137. package/dist/interface/assets/esm-BHI_KH7L.js +1 -0
  138. package/dist/interface/assets/esm-BQ0EuuZe.js +1 -0
  139. package/dist/interface/assets/esm-Bfb-tuKt.js +1 -0
  140. package/dist/interface/assets/esm-BzR_6ma5.js +1 -0
  141. package/dist/interface/assets/esm-CCIqNfsh.js +1 -0
  142. package/dist/interface/assets/esm-CSMN-8o1.js +1 -0
  143. package/dist/interface/assets/esm-CxWbrBxP.js +1 -0
  144. package/dist/interface/assets/esm-DBTrmJK6.js +1 -0
  145. package/dist/interface/assets/esm-DRswZUWf.js +1 -0
  146. package/dist/interface/assets/esm-Dk7gxPHs.js +1 -0
  147. package/dist/interface/assets/esm-P0RCkAtk.js +1 -0
  148. package/dist/interface/assets/{eye-off-C8kzsdYU.js → eye-off-DESV3QdF.js} +1 -1
  149. package/dist/interface/assets/{flowSchema-C6FlHoK2.js → flowSchema-_RiPAgMv.js} +1 -1
  150. package/dist/interface/assets/{history-QBEPNc4X.js → history-60iCpGvQ.js} +1 -1
  151. package/dist/interface/assets/{home-af3W_y8U.js → home-w5iY2RUg.js} +1 -1
  152. package/dist/interface/assets/{information-outline-BPCsozSU.js → information-outline-CvBsGtDu.js} +1 -1
  153. package/dist/interface/assets/{lightbulb-outline-ccTlGyvW.js → lightbulb-outline-DLrnCPG5.js} +1 -1
  154. package/dist/interface/assets/main-CV7qCZ5i.js +3 -0
  155. package/dist/interface/assets/{main-aZt-Pooz.css → main-DJb49Tjp.css} +1 -1
  156. package/dist/interface/assets/{microphone-5exHwwyq.js → microphone-DUVI-s2_.js} +1 -1
  157. package/dist/interface/assets/mqtt-BPfLOT7L.js +1 -0
  158. package/dist/interface/assets/native-Cr4dkfqy.js +1 -0
  159. package/dist/interface/assets/native-D1Vvlhds.js +1 -0
  160. package/dist/interface/assets/{nodeDefinitions-CRrkU6zR.js → nodeDefinitions-BecZ8I2Q.js} +1 -1
  161. package/dist/interface/assets/{notifications-DCAiomoR.js → notifications-CK6XQBF-.js} +1 -1
  162. package/dist/interface/assets/{pencil-outline-M9I4mCJO.js → pencil-outline-BrOrbuzc.js} +1 -1
  163. package/dist/interface/assets/plugin-937qnq7E.js +1 -0
  164. package/dist/interface/assets/{plugins-D4am8tba.js → plugins-BU7TQh_f.js} +1 -1
  165. package/dist/interface/assets/{plus-CGIx-WV8.js → plus-CL6KSxf8.js} +1 -1
  166. package/dist/interface/assets/{plus-CrfQUUEC.js → plus-Dd-XLT76.js} +1 -1
  167. package/dist/interface/assets/{power-VnZM2-0c.js → power-lCbm_7y7.js} +1 -1
  168. package/dist/interface/assets/{ring-resize-CodGa6wQ.js → ring-resize-CEqUkpxT.js} +1 -1
  169. package/dist/interface/assets/{round-alt-arrow-left-bold-DTrlW4yx.js → round-alt-arrow-left-bold-CwaLYdW5.js} +1 -1
  170. package/dist/interface/assets/round-restart-alt-BFgY3k77.js +1 -0
  171. package/dist/interface/assets/round-restart-alt-SpAgbSYJ.css +1 -0
  172. package/dist/interface/assets/{search-miJXZGQz.js → search-CT2BLw7G.js} +1 -1
  173. package/dist/interface/assets/sensorIcons-DtJEfoU4.js +1 -0
  174. package/dist/interface/assets/{sensors-D1OCrbIC.js → sensors-DjgfMS8S.js} +1 -1
  175. package/dist/interface/assets/{server-CUfmbg3m.js → server-BSYs0zoo.js} +1 -1
  176. package/dist/interface/assets/{settings-DY0TJSAM.js → settings-CzS4dvIO.js} +1 -1
  177. package/dist/interface/assets/{source-branch-nw9fwXin.js → source-branch-C6p1G3a9.js} +1 -1
  178. package/dist/interface/assets/table-2-line-_VC4NuFA.js +1 -0
  179. package/dist/interface/assets/theme-Dr_YO8-0.js +1 -0
  180. package/dist/interface/assets/{trash-2-B-di2M48.js → trash-2-DcOYT3oH.js} +1 -1
  181. package/dist/interface/assets/{trash-can-outline-BbZkHoW7.js → trash-can-outline-cphfB8Jh.js} +1 -1
  182. package/dist/interface/assets/{trash-fill-Bgen5QTD.js → trash-fill-CRBaUdPn.js} +1 -1
  183. package/dist/interface/assets/{trash2-BP__fHgN.js → trash2-CvhB8xOW.js} +1 -1
  184. package/dist/interface/assets/{types-B25Yynej.js → types-3mdj4rRK.js} +1 -1
  185. package/dist/interface/assets/types-BGMvANrz.js +1 -0
  186. package/dist/interface/assets/{upload-CNYrnwuV.js → upload-DeN3O-ua.js} +1 -1
  187. package/dist/interface/assets/{useAppVersion-Cp7Ehmiv.js → useAppVersion-UIA6seZv.js} +1 -1
  188. package/dist/interface/assets/{useBackupRestore-CL04IH-G.js → useBackupRestore-E3pVEOvA.js} +1 -1
  189. package/dist/interface/assets/{useCameraOptions-DFe9A6XU.js → useCameraOptions-Dx-zyqdH.js} +1 -1
  190. package/dist/interface/assets/{useCardSelection-B3B2qPHO.js → useCardSelection-DGPLn1ZH.js} +1 -1
  191. package/dist/interface/assets/{useElectron-KnqvZz0q.js → useElectron-BXVcamD0.js} +1 -1
  192. package/dist/interface/assets/useLogsSocket-DSxzAvQF.js +1 -0
  193. package/dist/interface/assets/{usePermissions-C3D3JcPH.js → usePermissions-B_C-zX5H.js} +1 -1
  194. package/dist/interface/assets/usePluginUpdates-QU3U82S_.js +1 -0
  195. package/dist/interface/assets/{useServerRestart-Ck0mdqmf.js → useServerRestart-BxDBO7k-.js} +1 -1
  196. package/dist/interface/assets/{useStreamStatus-C4AA8JUq.js → useStreamStatus-DY4NM_Ua.js} +1 -1
  197. package/dist/interface/assets/useUserOptions-BL53bECb.js +1 -0
  198. package/dist/interface/assets/{variable-CbNySf4s.js → variable-oLSsiEtj.js} +1 -1
  199. package/dist/interface/assets/{vendor-CSg6_Jfu.js → vendor-JQXDMBA-.js} +2 -2
  200. package/dist/interface/assets/vendor-cameraui-DojVuZ2L.js +2326 -0
  201. package/dist/interface/assets/{vendor-capacitor-C-8IYzpJ.js → vendor-capacitor-CDwgXF4b.js} +2 -2
  202. package/dist/interface/assets/{vendor-chart-CoQ9HTE3.js → vendor-chart-KrNcA52y.js} +1 -1
  203. package/dist/interface/assets/vendor-core-ZDcIKAw9.js +1 -0
  204. package/dist/interface/assets/{vendor-dnd-DQF7Aoap.js → vendor-dnd-Jch9IvL6.js} +1 -1
  205. package/dist/interface/assets/{vendor-draggabilly-Cghb3aIb.js → vendor-draggabilly-Cn-knCpG.js} +1 -1
  206. package/dist/interface/assets/{vendor-markdown-DWwrEE67.js → vendor-markdown-BhFLJolW.js} +1 -1
  207. package/dist/interface/assets/{vendor-primevue-JQ8abUl5.js → vendor-primevue-C0acGg0Y.js} +85 -371
  208. package/dist/interface/assets/{vendor-vueflow-crUU2mAI.js → vendor-vueflow-DQrTmoNS.js} +1 -1
  209. package/dist/interface/assets/web-BQtDHNew.js +1 -0
  210. package/dist/interface/assets/web-BY9kjyTj.js +1 -0
  211. package/dist/interface/assets/web-BcQtDSat.js +1 -0
  212. package/dist/interface/assets/web-BgrRQzLO.js +1 -0
  213. package/dist/interface/assets/web-BjKL51lK-CJYmHsnY.js +1 -0
  214. package/dist/interface/assets/web-BxvsJylk.js +1 -0
  215. package/dist/interface/assets/web-C-3iwDhG.js +1 -0
  216. package/dist/interface/assets/web-C9XOwu07.js +1 -0
  217. package/dist/interface/assets/web-CPCxRDtw.js +1 -0
  218. package/dist/interface/assets/web-D0U5B2i2.js +1 -0
  219. package/dist/interface/assets/web-DtxjXJdS.js +1 -0
  220. package/dist/interface/assets/web-Duf-oV4e.js +1 -0
  221. package/dist/interface/assets/web-jy45nBi_.js +1 -0
  222. package/dist/interface/assets/web-vWx_-Iq5.js +1 -0
  223. package/dist/interface/assets/{webhook-B7YgiSrF.js → webhook-CMAB4nTl.js} +1 -1
  224. package/dist/interface/assets/workbox-window.prod.es5-Dlqax_Po.js +1 -0
  225. package/dist/interface/assets/{zoom-in-D7BJNotF.js → zoom-in-STm8SNt2.js} +1 -1
  226. package/dist/interface/index.html +42 -43
  227. package/dist/interface/sw.js +1 -1
  228. package/dist/server/package.json +13 -13
  229. package/dist/server/requirements.txt +1 -1
  230. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/__init__.py +20 -0
  231. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/camera/config.py +20 -0
  232. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/__init__.py +40 -0
  233. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/base.py +20 -0
  234. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/carbon_dioxide.py +91 -0
  235. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/carbon_monoxide.py +90 -0
  236. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/cold.py +90 -0
  237. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/gas.py +90 -0
  238. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/heat.py +90 -0
  239. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/illuminance.py +91 -0
  240. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/power.py +90 -0
  241. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/problem.py +90 -0
  242. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/tamper.py +90 -0
  243. package/dist/server/src/_camera_ui_tools/camera_ui_sdk/sensor/vibration.py +90 -0
  244. package/dist/server/src/api/database/record-schemas.d.ts +10 -0
  245. package/dist/server/src/api/schemas/cameras.schema.d.ts +325 -5
  246. package/dist/server/src/api/schemas/cameras.schema.js +24 -2
  247. package/dist/server/src/api/schemas/cameras.schema.js.map +1 -1
  248. package/dist/server/src/api/schemas/sensors.schema.d.ts +10 -0
  249. package/dist/server/src/api/schemas/users.schema.d.ts +70 -0
  250. package/dist/server/src/api/services/plugins.service.d.ts +2 -1
  251. package/dist/server/src/api/services/plugins.service.js +59 -15
  252. package/dist/server/src/api/services/plugins.service.js.map +1 -1
  253. package/dist/server/src/api/types/index.d.ts +7 -0
  254. package/dist/server/src/api/websocket/nsp/plugins.d.ts +1 -0
  255. package/dist/server/src/api/websocket/nsp/plugins.js +4 -0
  256. package/dist/server/src/api/websocket/nsp/plugins.js.map +1 -1
  257. package/dist/server/src/camera/decoder/detection-coordinator.d.ts +6 -0
  258. package/dist/server/src/camera/decoder/detection-coordinator.js +67 -7
  259. package/dist/server/src/camera/decoder/detection-coordinator.js.map +1 -1
  260. package/dist/server/src/camera/decoder/detection-pipeline.d.ts +16 -1
  261. package/dist/server/src/camera/decoder/detection-pipeline.js +92 -14
  262. package/dist/server/src/camera/decoder/detection-pipeline.js.map +1 -1
  263. package/dist/server/src/camera/decoder/event-manager.d.ts +4 -1
  264. package/dist/server/src/camera/decoder/event-manager.js +29 -1
  265. package/dist/server/src/camera/decoder/event-manager.js.map +1 -1
  266. package/dist/server/src/camera/decoder/frame-scaler.d.ts +21 -0
  267. package/dist/server/src/camera/decoder/frame-scaler.js +82 -10
  268. package/dist/server/src/camera/decoder/frame-scaler.js.map +1 -1
  269. package/dist/server/src/camera/decoder/secondary-stage.js +19 -16
  270. package/dist/server/src/camera/decoder/secondary-stage.js.map +1 -1
  271. package/dist/server/src/camera/decoder/stationary-suppressor.d.ts +7 -0
  272. package/dist/server/src/camera/decoder/stationary-suppressor.js +66 -4
  273. package/dist/server/src/camera/decoder/stationary-suppressor.js.map +1 -1
  274. package/dist/server/src/camera/sensors/controller.js +6 -0
  275. package/dist/server/src/camera/sensors/controller.js.map +1 -1
  276. package/dist/server/src/sensors/registry.d.ts +6 -1
  277. package/dist/server/src/sensors/registry.js +78 -26
  278. package/dist/server/src/sensors/registry.js.map +1 -1
  279. package/dist/server/src/sensors/sensor.d.ts +2 -2
  280. package/dist/server/src/sensors/sensor.js +14 -2
  281. package/dist/server/src/sensors/sensor.js.map +1 -1
  282. package/dist/server/src/workers/manager.js +2 -0
  283. package/dist/server/src/workers/manager.js.map +1 -1
  284. package/package.json +13 -13
  285. package/dist/interface/assets/Automation-BdSjkwoL.js +0 -3
  286. package/dist/interface/assets/AutomationImport-DEp2P3xa.js +0 -2
  287. package/dist/interface/assets/AutomationStore-4NQAyOXd.js +0 -2
  288. package/dist/interface/assets/AutomationStoreDetail-D8NZLRu9.js +0 -2
  289. package/dist/interface/assets/Automations-D7kh-T-O.js +0 -2
  290. package/dist/interface/assets/Camera-DsvE1bWd.js +0 -2
  291. package/dist/interface/assets/Camview-BXDwJtBf.js +0 -1
  292. package/dist/interface/assets/Config-CJgmsr2e.js +0 -2
  293. package/dist/interface/assets/ConfigActionSensor-pv3k-l2v.js +0 -1
  294. package/dist/interface/assets/ConfigTriggerGeofence-CDbA6_Wv.js +0 -1
  295. package/dist/interface/assets/Console-CPcfNsup.js +0 -1
  296. package/dist/interface/assets/CuiAutomationRunsDialog-Bx3LtjMJ.js +0 -1
  297. package/dist/interface/assets/CuiBottomSheet-Qt8m2uSx.js +0 -1
  298. package/dist/interface/assets/CuiCameraRecordings-DJG6J1nY.js +0 -1
  299. package/dist/interface/assets/CuiCameraShares-C3SATbiV.js +0 -1
  300. package/dist/interface/assets/CuiDataTable-BGleWv6B.css +0 -1
  301. package/dist/interface/assets/CuiDataTable-DdNoneMB.js +0 -1
  302. package/dist/interface/assets/CuiLightControl-bH7WQXAY.js +0 -1
  303. package/dist/interface/assets/CuiMarkdownContent-Do8-vIl7.js +0 -1
  304. package/dist/interface/assets/CuiPluginCard-B50TjvIq.js +0 -2
  305. package/dist/interface/assets/CuiPluginOAuthButton-Aanenlqx.js +0 -2
  306. package/dist/interface/assets/CuiRecordingsGrid-D9IF3B-S.js +0 -1
  307. package/dist/interface/assets/CuiSchema-B8J8G314.js +0 -1
  308. package/dist/interface/assets/Faces-B8d8W6cq.js +0 -1
  309. package/dist/interface/assets/FirstSteps-DWB8ZhqT.js +0 -1
  310. package/dist/interface/assets/Instances-DCE3ixbf.js +0 -1
  311. package/dist/interface/assets/Logs-DJL3FHsG.js +0 -6
  312. package/dist/interface/assets/OAuthDeviceFlow-9kYvqgyg.js +0 -1
  313. package/dist/interface/assets/Plugin-HIED8ziU.js +0 -1
  314. package/dist/interface/assets/PluginDetail-Ba9VDO53.js +0 -2
  315. package/dist/interface/assets/PluginSearch-B3y83uDW.js +0 -2
  316. package/dist/interface/assets/PluginSearch-BKVIwJVF.js +0 -1
  317. package/dist/interface/assets/Plugins-mdsFKDQ8.js +0 -1
  318. package/dist/interface/assets/Recordings-DO1BPBKp.css +0 -1
  319. package/dist/interface/assets/Recordings-GVzdhE19.js +0 -1
  320. package/dist/interface/assets/SensorEdit-COOOaB-l.js +0 -1
  321. package/dist/interface/assets/Sensors-De6n66ER.js +0 -2
  322. package/dist/interface/assets/Sensors-DfE07b1Q.css +0 -1
  323. package/dist/interface/assets/Settings-BipPaBUB.js +0 -1
  324. package/dist/interface/assets/SettingsAccount-809sRaa9.js +0 -1
  325. package/dist/interface/assets/SettingsAccount-Bmteep-6.js +0 -1
  326. package/dist/interface/assets/SettingsAppearance-CJWlk9_1.js +0 -1
  327. package/dist/interface/assets/SettingsAppearance-Cobtww9z.js +0 -1
  328. package/dist/interface/assets/SettingsBackup-Bbp3fEuS.js +0 -1
  329. package/dist/interface/assets/SettingsList-DFJifGkE.js +0 -1
  330. package/dist/interface/assets/SettingsNotifications-Dt_gxxoj.js +0 -2
  331. package/dist/interface/assets/SettingsRecordings-1i4sNZ8u.js +0 -1
  332. package/dist/interface/assets/SettingsRemote-HDCH_D5s.js +0 -1
  333. package/dist/interface/assets/SettingsSystem-jDQ9m8jt.js +0 -2
  334. package/dist/interface/assets/SettingsUsers-CFzURSfg.js +0 -1
  335. package/dist/interface/assets/VersionsHandler-CBAnjOWO.js +0 -7
  336. package/dist/interface/assets/Workers-DQZ0QoEN.js +0 -2
  337. package/dist/interface/assets/alarm-light-outline-jCTfmz5t.js +0 -1
  338. package/dist/interface/assets/api-CwjboJ6S.css +0 -2
  339. package/dist/interface/assets/api-DpZpuR8_.js +0 -2
  340. package/dist/interface/assets/cloudHandoff-D8flqTzb.js +0 -1
  341. package/dist/interface/assets/cube-scan-Ccxismvr.js +0 -1
  342. package/dist/interface/assets/esm-B4MXP42m.js +0 -1
  343. package/dist/interface/assets/esm-BW9m3dy4.js +0 -1
  344. package/dist/interface/assets/esm-BZ3gh7Fj.js +0 -1
  345. package/dist/interface/assets/esm-Blvz9SsB.js +0 -1
  346. package/dist/interface/assets/esm-CJXU9jaA.js +0 -1
  347. package/dist/interface/assets/esm-Cqqu_mer.js +0 -1
  348. package/dist/interface/assets/esm-CtKbLoV_.js +0 -1
  349. package/dist/interface/assets/esm-CwzNi2iW.js +0 -1
  350. package/dist/interface/assets/esm-KnO8wJyB.js +0 -1
  351. package/dist/interface/assets/esm-Lt6R0RFn.js +0 -1
  352. package/dist/interface/assets/esm-MvRctfDP.js +0 -1
  353. package/dist/interface/assets/esm-W4LX4Rpq.js +0 -1
  354. package/dist/interface/assets/esm-l57LNUWu.js +0 -1
  355. package/dist/interface/assets/esm-xofhyA8r.js +0 -1
  356. package/dist/interface/assets/main-Csclhnoq.js +0 -3
  357. package/dist/interface/assets/mqtt-DklPP2x5.js +0 -1
  358. package/dist/interface/assets/native-Cpj7zrLp.js +0 -1
  359. package/dist/interface/assets/native-D--k2WN1.js +0 -1
  360. package/dist/interface/assets/plugin-D3FpjfF8.js +0 -1
  361. package/dist/interface/assets/round-restart-alt-CdweDM5-.js +0 -1
  362. package/dist/interface/assets/round-restart-alt-D3sTGG7n.css +0 -1
  363. package/dist/interface/assets/theme-ClwavgWz.js +0 -1
  364. package/dist/interface/assets/types-D9YcubIy.js +0 -1
  365. package/dist/interface/assets/useLogsSocket-BxI3NbRJ.js +0 -5
  366. package/dist/interface/assets/useUserOptions-BpEZlRAL.js +0 -1
  367. package/dist/interface/assets/vendor-cameraui-Cgb5z6NJ.js +0 -2040
  368. package/dist/interface/assets/vendor-core-BJsSXMFQ.js +0 -1
  369. package/dist/interface/assets/web-BX3axHeB.js +0 -1
  370. package/dist/interface/assets/web-BcHmbPny.js +0 -1
  371. package/dist/interface/assets/web-BjKL51lK-BQjyRtns.js +0 -1
  372. package/dist/interface/assets/web-C8w-z-xR.js +0 -1
  373. package/dist/interface/assets/web-CHdniv8I.js +0 -1
  374. package/dist/interface/assets/web-CWBhY0Av.js +0 -1
  375. package/dist/interface/assets/web-Cf1yYy4u.js +0 -1
  376. package/dist/interface/assets/web-Ct6Vkr6F.js +0 -1
  377. package/dist/interface/assets/web-DARDw7d8.js +0 -1
  378. package/dist/interface/assets/web-DKBMdBSA.js +0 -1
  379. package/dist/interface/assets/web-Ddzvp-fv.js +0 -1
  380. package/dist/interface/assets/web-Dymr_MpD.js +0 -1
  381. package/dist/interface/assets/web-XIuTPdFc.js +0 -1
  382. package/dist/interface/assets/web-lrnXIJTz.js +0 -1
  383. package/dist/interface/assets/workbox-window.prod.es5-BkFwsIPp.js +0 -1
  384. /package/dist/interface/assets/{useLogsSocket-CoA-Nq-_.css → CuiConsole-CoA-Nq-_.css} +0 -0
@@ -0,0 +1 @@
1
+ import{Ar as e,Br as t,C as n,D as r,Mr as i,Mt as a,Ot as o,P as s,Rt as c,Ti as l,b as u,bi as d,d as f,f as p,gr as m,hr as h,k as g,l as _,p as ee,r as v,s as y,w as te,xi as ne,xr as re,xt as ie}from"./vendor-cameraui-DojVuZ2L.js";import{B as b,H as x,Lt as S,Q as C,V as w,Z as ae,_n as oe,an as se,ar as ce,dn as T,fn as E,ft as le,hn as D,kn as O,mn as k,nt as ue,tn as de,vn as A,yn as fe}from"./api-Draww2tC.js";import{Fn as j,Gn as pe,Jn as me,Nn as M,Pn as he,Xn as N,Zn as ge,_r as _e,an as P,bn as F,br as I,cn as L,cr as R,dr as z,en as B,fn as V,gr as H,hn as U,in as W,ir as G,jn as ve,nn as ye,on as K,or as q,pn as J,qn as Y,rr as X,sn as Z,yr as be,zn as Q}from"./vendor-JQXDMBA-.js";import{a as xe,i as Se,j as Ce,l as we,z as Te}from"./vendor-primevue-C0acGg0Y.js";import{t as Ee}from"./ring-resize-CEqUkpxT.js";import{n as De,t as Oe}from"./CuiRecordingsGrid-CkwE3jcR.js";import{t as ke}from"./settings-CzS4dvIO.js";import{n as Ae,t as je}from"./round-alt-arrow-left-bold-CwaLYdW5.js";var Me={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function Ne(e,t){return M(),L(`svg`,Me,[...t[0]||=[P(`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 Pe=G({name:`mage-filter-fill`,render:Ne}),Fe={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function $(e,t){return M(),L(`svg`,Fe,[...t[0]||=[P(`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 Ie=G({name:`mage-filter`,render:$}),Le={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function Re(e,t){return M(),L(`svg`,Le,[...t[0]||=[P(`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 ze=G({name:`mdi-file-video-outline`,render:Re}),Be={class:`flex flex-col gap-6`},Ve={class:`flex flex-col field-gap`},He={class:`cui-label`},Ue={class:`flex flex-col field-gap`},We={class:`cui-label`},Ge={class:`grid grid-cols-1 xs:grid-cols-2 gap-3`},Ke={class:`flex flex-col gap-1`},qe={class:`text-xs text-muted`},Je={class:`flex flex-col gap-1`},Ye={class:`text-xs text-muted`},Xe={class:`grid grid-cols-1 xs:grid-cols-2 gap-x-6 gap-y-4`},Ze={class:`flex flex-col field-gap`},Qe={class:`cui-label`},$e={class:`flex flex-col field-gap`},et={class:`cui-label`},tt={class:`flex flex-col field-gap`},nt={class:`flex items-center gap-3`},rt={class:`cui-label !mb-0`},it={key:0,class:`ml-auto flex items-center gap-2.5 text-sm tabular-nums`},at={class:`font-semibold`},ot={class:`font-semibold`},st={class:`border border-color rounded-xl card-background overflow-hidden`},ct={class:`flex flex-col gap-3 max-h-[240px] overflow-y-auto p-2.5`},lt={key:0,class:`flex items-center justify-center gap-2 text-muted text-sm py-6`},ut={key:1,class:`text-center text-muted text-sm py-6`},dt={class:`text-xs text-muted px-0.5`},ft={class:`font-mono text-xs truncate flex-1`},pt={class:`text-xs text-muted tabular-nums shrink-0`},mt={class:`font-mono text-xs text-muted tabular-nums shrink-0 min-w-[58px] text-right`},ht=30,gt=U({__name:`ExportRecordings`,props:{cameras:{},preselect:{}},setup(e,{expose:t}){let n=e,{t:a}=i(),s=ce(),c=F(`dialogRefProps`),{plugin:u}=ie(`@camera.ui/camera-ui-nvr`),d=R([]),f=R(!1),p=R(n.preselect?.length?[...n.preselect]:[]),m=R(`best`),h=R(0),g=R(new Date(new Date().setHours(0,0,0,0))),_=R(new Date),ee=W(()=>[{label:a(`views.recordings.export.quality_best`),value:`best`},{label:a(`views.recordings.export.quality_smallest`),value:`smallest`}]),v=W(()=>[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}))),y=W(()=>h.value>0),ne=W(()=>y.value?`~`:``),re=W(()=>new Map(n.cameras.map(e=>[e.id,e.name]))),b=W(()=>g.value instanceof Date&&_.value instanceof Date&&g.value<_.value),x=W(()=>{if(!b.value)return[];let e=[],t=g.value.getTime(),n=_.value.getTime(),r=new Date(g.value);r.setHours(0,0,0,0);let i=new Date(_.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:se(i),startUs:o*1e3,endUs:s*1e3}),r.setDate(r.getDate()+1)}return e}),S=W(()=>d.value.map(e=>{let t=re.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`:T(r);return{cameraId:e.cameraId,cameraName:t,name:`${le(t)}_${e.day}${y.value?`_timelapse`:``}.mp4`,span:i?a(`views.recordings.export.whole_day`):`${T(n)}–${o}`,bytes:y.value?e.bytes/ht:e.bytes}})),C=W(()=>{let e=new Map;for(let t of S.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()]}),w=W(()=>S.value.reduce((e,t)=>e+t.bytes,0)),ae=W(()=>p.value.length===0?a(`views.recordings.export.no_cameras`):b.value?a(`views.recordings.export.no_footage`):a(`views.recordings.export.no_range`));function oe(e){return String(e).padStart(2,`0`)}function se(e){return`${e.getFullYear()}-${oe(e.getMonth()+1)}-${oe(e.getDate())}`}function T(e){return`${oe(e.getHours())}:${oe(e.getMinutes())}`}function le(e){return e.replace(/[^a-zA-Z0-9-_]/g,`_`)}function D(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 O(){let e=u.value;if(!e?.nvrExportEstimate||p.value.length===0||x.value.length===0){d.value=[],f.value=!1;return}f.value=!0;try{let t=await e.nvrExportEstimate({cameras:p.value,slices:x.value,quality:m.value});d.value=t.files??[]}catch{d.value=[]}finally{f.value=!1}}async function k(){if(!b.value||p.value.length===0||x.value.length===0)return null;let e=u.value;if(!e?.nvrExportBatch)return s.add({severity:`error`,detail:a(`views.recordings.export.plugin_missing`),life:3e3}),null;let t=await e.nvrExportBatch({cameras:p.value,slices:x.value,quality:m.value,timelapseIntervalSec:y.value?h.value:0});await E({url:t.url,filename:t.filename})}return l([p,x,m],O,{debounce:350,immediate:!0,deep:!0}),me(()=>{c.disabled&&(c.disabled.value=!b.value||p.value.length===0||!f.value&&S.value.length===0)}),t({onConfirm:k}),(t,n)=>{let i=we,a=r,s=Te,c=te,l=Ce,u=xe,d=o,y=ze;return M(),L(`div`,Be,[P(`div`,Ve,[P(`label`,He,I(t.$t(`views.recordings.export.cameras`)),1),J(i,{modelValue:H(p),"onUpdate:modelValue":n[0]||=e=>X(p)?p.value=e:null,options:e.cameras,"option-label":`name`,"option-value":`id`,display:`chip`,filter:``,placeholder:t.$t(`views.recordings.export.cameras_placeholder`),class:`w-full`},null,8,[`modelValue`,`options`,`placeholder`])]),P(`div`,Ue,[P(`label`,We,I(t.$t(`views.recordings.export.range`)),1),P(`div`,Ge,[P(`div`,Ke,[P(`span`,qe,I(t.$t(`views.recordings.export.from`)),1),J(a,{modelValue:H(g),"onUpdate:modelValue":n[1]||=e=>X(g)?g.value=e:null,"show-time":``,"hour-format":`24`,fluid:``,"max-date":H(_)},null,8,[`modelValue`,`max-date`])]),P(`div`,Je,[P(`span`,Ye,I(t.$t(`views.recordings.export.to`)),1),J(a,{modelValue:H(_),"onUpdate:modelValue":n[2]||=e=>X(_)?_.value=e:null,"show-time":``,"hour-format":`24`,fluid:``,"min-date":H(g)},null,8,[`modelValue`,`min-date`])])]),H(b)?(M(),K(s,{key:1,severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:N(()=>[V(I(t.$t(`views.recordings.export.range_hint`)),1)]),_:1})):(M(),K(s,{key:0,severity:`error`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:N(()=>[V(I(t.$t(`views.recordings.export.invalid_range`)),1)]),_:1}))]),P(`div`,Xe,[P(`div`,Ze,[P(`label`,Qe,I(t.$t(`views.recordings.export.quality`)),1),J(c,{modelValue:H(m),"onUpdate:modelValue":n[3]||=e=>X(m)?m.value=e:null,options:H(ee),"option-label":`label`,"option-value":`value`,"allow-empty":!1,pt:{root:{class:`flex w-full`},pcToggleButton:{root:{class:`flex-1`}}}},null,8,[`modelValue`,`options`])]),P(`div`,$e,[P(`label`,et,I(t.$t(`views.recordings.export.timelapse`)),1),J(l,{modelValue:H(h),"onUpdate:modelValue":n[4]||=e=>X(h)?h.value=e:null,options:H(v),"option-label":`label`,"option-value":`value`,class:`w-full`},null,8,[`modelValue`,`options`])])]),P(`div`,tt,[P(`div`,nt,[P(`label`,rt,I(t.$t(`views.recordings.export.result`)),1),H(S).length?(M(),L(`div`,it,[P(`span`,at,I(H(S).length)+` `+I(H(S).length===1?t.$t(`views.recordings.export.file`):t.$t(`views.recordings.export.files`)),1),n[5]||=P(`span`,{class:`text-muted`},`·`,-1),P(`span`,ot,I(H(ne))+I(D(H(w))),1),J(u,{value:H(S).length===1?`MP4`:`ZIP`,severity:`info`},null,8,[`value`])])):Z(``,!0)]),P(`div`,st,[P(`div`,ct,[H(f)&&!H(S).length?(M(),L(`div`,lt,[J(d,{style:{width:`1rem`,height:`1rem`},"stroke-width":`4`,class:`m-0`}),P(`span`,null,I(t.$t(`views.recordings.export.estimating`)),1)])):H(S).length?(M(!0),L(B,{key:2},j(H(C),e=>(M(),L(`div`,{key:e.cameraId,class:`flex flex-col gap-1`},[P(`span`,dt,I(e.cameraName)+` · `+I(e.files.length)+` · `+I(H(ne))+I(D(e.bytes)),1),(M(!0),L(B,null,j(e.files,e=>(M(),L(`div`,{key:e.name,class:`flex items-center gap-3 card-inner-background border border-color rounded-lg px-3 py-2`},[J(y,{class:`w-4 h-4 text-muted shrink-0`}),P(`span`,ft,I(e.name),1),P(`span`,pt,I(e.span),1),P(`span`,mt,I(H(ne))+I(D(e.bytes)),1)]))),128))]))),128)):(M(),L(`div`,ut,I(H(ae)),1))])])])])}}}),_t={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function vt(e,t){return M(),L(`svg`,_t,[...t[0]||=[P(`path`,{fill:`none`,stroke:`currentColor`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`2`,d:`m6 9l6 6l6-6`},null,-1)]])}var yt=G({name:`tabler-chevron-down`,render:vt}),bt={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function xt(e,t){return M(),L(`svg`,bt,[...t[0]||=[P(`path`,{fill:`none`,stroke:`currentColor`,"stroke-linecap":`round`,"stroke-linejoin":`round`,"stroke-width":`2`,d:`m6 15l6-6l6 6`},null,-1)]])}var St=G({name:`tabler-chevron-up`,render:xt}),Ct={class:`flex flex-col gap-2`},wt={class:`sidebar-section-title`},Tt={class:`p-input-icon-left w-full`},Et={class:`text-xs text-muted`},Dt={class:`flex flex-col gap-2`},Ot={class:`sidebar-section-title flex items-center gap-1.5`},kt={key:0,class:`inline-flex items-center gap-1 text-xs text-muted`},At={key:1,class:`flex flex-col gap-1.5 mt-1`},jt={class:`text-xs text-muted`},Mt={class:`flex items-center gap-3`},Nt={class:`text-xs font-mono w-8 text-right shrink-0`},Pt={class:`flex flex-col gap-2`},Ft={class:`sidebar-section-title`},It={class:`flex flex-col gap-2`},Lt={class:`sidebar-section-title`},Rt={class:`relative rounded-md overflow-hidden`},zt={class:`flex flex-col gap-2`},Bt={class:`sidebar-section-title`},Vt={class:`flex items-center gap-3`},Ht={class:`text-xs font-mono w-8 text-right shrink-0`},Ut={class:`flex flex-col gap-2`},Wt={class:`sidebar-section-title`},Gt={class:`flex flex-wrap gap-1`},Kt={class:`flex flex-col gap-2`},qt={key:0,class:`flex flex-col gap-2`},Jt={class:`flex items-center gap-2 cursor-pointer text-sm`},Yt={key:0,class:`flex flex-col gap-2 ml-6`},Xt={class:`filter-logic-divider`},Zt={class:`flex flex-col gap-2`},Qt={key:0,class:`flex flex-col gap-2`},$t={class:`filter-logic-divider`},en={class:`flex flex-col gap-2`},tn={key:0,class:`flex flex-col gap-2`},nn={class:`flex items-center gap-2 cursor-pointer text-sm`},rn=288,an=k(U({__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(r,{expose:o,emit:c}){let l={doorbell:`views.recordings.audio_doorbell`,glass_break:`views.recordings.audio_glass_break`,siren:`views.recordings.audio_siren`,speaking:`views.recordings.audio_speaking`,gunshot:`views.recordings.audio_gunshot`,dog_bark:`views.recordings.audio_dog_bark`,baby_cry:`views.recordings.audio_baby_cry`,alarm:`views.recordings.audio_alarm`,scream:`views.recordings.audio_scream`,cat:`views.recordings.audio_cat`,car_alarm:`views.recordings.audio_car_alarm`,smoke_alarm:`views.recordings.audio_smoke_alarm`},u={face:`views.recordings.attr_face`,license_plate:`views.recordings.attr_license_plate`},d={motion:`views.recordings.sensor_motion`,audio:`views.recordings.sensor_audio`,contact:`views.recordings.sensor_contact`,doorbell:`views.recordings.sensor_doorbell`,switch:`views.recordings.sensor_switch`,light:`views.recordings.sensor_light`,siren:`views.recordings.sensor_siren`,security_system:`views.recordings.sensor_security_system`,"line-crossing":`views.recordings.sensor_line_crossing`},f=new Set([`motion`,`audio`]),p=r,_=c,{t:v}=i(),{xlBreakpoint:y}=oe(),{topbarHeight:ie,bottombarHeight:b}=A(),{icons:C,generic:w}=x(),ae=C,ce=St,E=yt,le=pe(`sidebarRef`),D=R(p.filters.semanticQuery??``),O=q({eventTypes:!0,attributes:!0,sensorEvents:!0}),k=W(()=>p.isOpen?rn:0),ue=W(()=>p.cameras.map(e=>({id:e.id,name:e.name}))),de=W(()=>{if(p.filters.cameraIds.length===1)return p.cameras.find(e=>e.id===p.filters.cameraIds[0])?.name}),fe=W(()=>[{label:v(`views.recordings.filter_and`),value:`and`},{label:v(`views.recordings.filter_or`),value:`or`}]),me=W(()=>[{label:v(`views.recordings.time_1h`),value:`1h`},{label:v(`views.recordings.time_1d`),value:`1d`},{label:v(`views.recordings.time_1w`),value:`1w`},{label:v(`views.recordings.time_1m`),value:`1m`}]),he=W(()=>m.filter(e=>!f.has(e)).map(e=>({label:v(`views.recordings.type_${e}`),value:e,icon:C[e]??w}))),N=W(()=>({label:v(`views.recordings.type_other`),value:ee,icon:C.other??w})),ge=W(()=>e.map(e=>({label:v(d[e]??`views.recordings.sensor_${e}`),value:e,icon:ae[e]??w}))),_e=W(()=>re.map(e=>({label:v(l[e]??e),value:e,icon:C[e]??w}))),F=W(()=>h.map(e=>({label:v(u[e]??`views.recordings.attr_${e}`),value:e,icon:C[e]??w})));function z(e,t){_(`update:filters`,{...p.filters,[e]:t})}let U=ne(e=>{z(`search`,e)},300);function G(){let e=D.value.trim();z(`semanticQuery`,e),_(`semantic-search`,e)}function ve(e){let t=[...p.filters.eventTypes],n=t.indexOf(e);n>=0?t.splice(n,1):t.push(e),z(`eventTypes`,t)}function ye(e){let t=[...p.filters.audioLabels],n=t.indexOf(e);n>=0?t.splice(n,1):t.push(e),z(`audioLabels`,t)}function xe(e){let t=[...p.filters.sensorEvents],n=t.indexOf(e);n>=0?t.splice(n,1):t.push(e),z(`sensorEvents`,t)}function Ce(e){let t=[...p.filters.hasAttributes],n=t.indexOf(e);n>=0?t.splice(n,1):t.push(e),z(`hasAttributes`,t)}function Te(e){O[e]=!O[e]}return Y(D,e=>{!e?.trim()&&p.filters.semanticQuery&&z(`semanticQuery`,``)}),t(le,e=>{let t=e.target;t.closest(`#recordings-sidebar-toggle`)||t.closest(`[data-pc-section="overlay"], [data-pc-section="panel"], .p-connected-overlay`)||p.isOpen&&(p.isOverlay||!y.value)&&_(`close`)}),o({sidebarWidth:k}),(e,t)=>{let i=g,o=se,c=Se,l=a,u=n,d=we,f=T,p=S,m=s,h=te;return M(),L(`nav`,{ref_key:`sidebarRef`,ref:le,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:be({width:`${H(k)}px`,borderRightWidth:r.isOpen?`1px`:`0px`,paddingBottom:`calc(env(safe-area-inset-top, 0px) + env(safe-area-inset-bottom, 0px) + ${H(b)}px + ${H(ie)}px)`})},[P(`div`,{class:`flex flex-col gap-4 p-4`,style:be({width:`${rn}px`})},[P(`div`,Ct,[P(`label`,wt,I(e.$t(`views.recordings.search`)),1),P(`span`,Tt,[J(i,{"model-value":r.filters.search,placeholder:e.$t(`views.recordings.search_placeholder`),class:`w-full text-sm`,"onUpdate:modelValue":t[0]||=e=>H(U)(e)},null,8,[`model-value`,`placeholder`])]),P(`span`,Et,I(e.$t(`views.recordings.result_count`,{count:r.resultCount})),1)]),t[18]||=P(`div`,{class:`sidebar-divider`},null,-1),P(`div`,Dt,[P(`label`,Ot,[J(o,{class:`w-3.5 h-3.5`}),V(` `+I(e.$t(`views.recordings.semantic_search`)),1)]),J(c,{modelValue:H(D),"onUpdate:modelValue":t[1]||=e=>X(D)?D.value=e:null,placeholder:e.$t(`views.recordings.semantic_search_placeholder`),class:`w-full text-sm semantic-textarea`,rows:`3`,disabled:!r.semanticSearchAvailable},null,8,[`modelValue`,`placeholder`,`disabled`]),J(l,{label:e.$t(`views.recordings.semantic_search_button`),severity:`secondary`,outlined:``,size:`small`,class:`w-full text-xs`,loading:r.semanticSearchLoading,disabled:!r.semanticSearchAvailable||!H(D)?.trim(),onClick:G},null,8,[`label`,`loading`,`disabled`]),r.semanticCount==null?Z(``,!0):(M(),L(`span`,kt,[J(o,{class:`w-3 h-3`}),V(` `+I(e.$t(`views.recordings.semantic_results`,{count:r.semanticCount})),1)])),r.filters.semanticQuery?(M(),L(`div`,At,[P(`label`,jt,I(e.$t(`views.recordings.min_match_score`)),1),P(`div`,Mt,[J(u,{"model-value":r.filters.minSemanticScore,min:0,max:1,step:.05,class:`flex-1`,"onUpdate:modelValue":t[2]||=e=>z(`minSemanticScore`,e)},null,8,[`model-value`]),P(`span`,Nt,I(Math.round(r.filters.minSemanticScore*100))+`%`,1)])])):Z(``,!0)]),t[19]||=P(`div`,{class:`sidebar-divider`},null,-1),P(`div`,Pt,[P(`label`,Ft,I(e.$t(`views.recordings.cameras`)),1),J(d,{"model-value":r.filters.cameraIds,options:H(ue),"option-label":`name`,"option-value":`id`,placeholder:e.$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":t[3]||=e=>z(`cameraIds`,e)},null,8,[`model-value`,`options`,`placeholder`])]),H(de)?(M(),L(B,{key:0},[t[13]||=P(`div`,{class:`sidebar-divider`},null,-1),P(`div`,It,[P(`label`,Lt,I(e.$t(`views.recordings.grid_search`)),1),P(`div`,Rt,[J(f,{camera:H(de),"object-fit":`cover`},null,8,[`camera`]),J(p,{"model-value":r.filters.gridRegions,"onUpdate:modelValue":t[4]||=e=>z(`gridRegions`,e)},null,8,[`model-value`])]),J(l,{label:e.$t(`views.recordings.grid_clear`),severity:`secondary`,outlined:``,size:`small`,class:`w-full text-xs`,disabled:r.filters.gridRegions.length===0,onClick:t[5]||=e=>z(`gridRegions`,[])},null,8,[`label`,`disabled`])])],64)):Z(``,!0),t[20]||=P(`div`,{class:`sidebar-divider`},null,-1),P(`div`,zt,[P(`label`,Bt,I(e.$t(`views.recordings.confidence`)),1),P(`div`,Vt,[J(u,{"model-value":r.filters.minConfidence,min:0,max:1,step:.05,class:`flex-1`,"onUpdate:modelValue":t[6]||=e=>z(`minConfidence`,e)},null,8,[`model-value`]),P(`span`,Ht,I(Math.round(r.filters.minConfidence*100))+`%`,1)])]),t[21]||=P(`div`,{class:`sidebar-divider`},null,-1),P(`div`,Ut,[P(`label`,Wt,I(e.$t(`views.recordings.time_range`)),1),P(`div`,Gt,[(M(!0),L(B,null,j(H(me),e=>(M(),K(l,{key:e.value,label:e.label,severity:r.filters.timeRange===e.value?void 0:`secondary`,outlined:r.filters.timeRange!==e.value,size:`small`,class:`text-xs flex-1 min-w-0`,onClick:t=>z(`timeRange`,r.filters.timeRange===e.value?null:e.value)},null,8,[`label`,`severity`,`outlined`,`onClick`]))),128))])]),t[22]||=P(`div`,{class:`sidebar-divider`},null,-1),P(`div`,Kt,[P(`button`,{class:`sidebar-section-title flex items-center justify-between w-full cursor-pointer`,onClick:t[7]||=e=>Te(`sensorEvents`)},[P(`span`,null,I(e.$t(`views.recordings.sensor_events`)),1),(M(),K(Q(H(O).sensorEvents?H(ce):H(E)),{class:`w-4 h-4 text-muted`}))]),H(O).sensorEvents?(M(),L(`div`,qt,[(M(!0),L(B,null,j(H(ge),e=>(M(),L(B,{key:e.value},[P(`label`,Jt,[J(m,{"model-value":r.filters.sensorEvents.includes(e.value),binary:!0,"onUpdate:modelValue":t=>xe(e.value)},null,8,[`model-value`,`onUpdate:modelValue`]),(M(),K(Q(e.icon),{class:`w-4 h-4 text-muted`})),P(`span`,null,I(e.label),1)]),e.value===`audio`&&r.filters.sensorEvents.includes(`audio`)?(M(),L(`div`,Yt,[(M(!0),L(B,null,j(H(_e),e=>(M(),L(`label`,{key:e.value,class:`flex items-center gap-2 cursor-pointer text-sm`},[J(m,{"model-value":r.filters.audioLabels.includes(e.value),binary:!0,"onUpdate:modelValue":t=>ye(e.value)},null,8,[`model-value`,`onUpdate:modelValue`]),(M(),K(Q(e.icon),{class:`w-4 h-4 text-muted`})),P(`span`,null,I(e.label),1)]))),128))])):Z(``,!0)],64))),128))])):Z(``,!0)]),P(`div`,Xt,[t[14]||=P(`div`,{class:`filter-logic-line`},null,-1),J(h,{"model-value":r.filters.filterLogicTriggers,options:H(fe),"option-label":`label`,"option-value":`value`,"allow-empty":!1,class:`filter-logic-toggle`,"onUpdate:modelValue":t[8]||=e=>z(`filterLogicTriggers`,e)},null,8,[`model-value`,`options`]),t[15]||=P(`div`,{class:`filter-logic-line`},null,-1)]),P(`div`,Zt,[P(`button`,{class:`sidebar-section-title flex items-center justify-between w-full cursor-pointer`,onClick:t[9]||=e=>Te(`eventTypes`)},[P(`span`,null,I(e.$t(`views.recordings.event_type`)),1),(M(),K(Q(H(O).eventTypes?H(ce):H(E)),{class:`w-4 h-4 text-muted`}))]),H(O).eventTypes?(M(),L(`div`,Qt,[(M(!0),L(B,null,j(H(he),e=>(M(),L(`label`,{key:e.value,class:`flex items-center gap-2 cursor-pointer text-sm`},[J(m,{"model-value":r.filters.eventTypes.includes(e.value),binary:!0,"onUpdate:modelValue":t=>ve(e.value)},null,8,[`model-value`,`onUpdate:modelValue`]),(M(),K(Q(e.icon),{class:`w-4 h-4 text-muted`})),P(`span`,null,I(e.label),1)]))),128))])):Z(``,!0)]),P(`div`,$t,[t[16]||=P(`div`,{class:`filter-logic-line`},null,-1),J(h,{"model-value":r.filters.filterLogicAttributes,options:H(fe),"option-label":`label`,"option-value":`value`,"allow-empty":!1,class:`filter-logic-toggle`,"onUpdate:modelValue":t[10]||=e=>z(`filterLogicAttributes`,e)},null,8,[`model-value`,`options`]),t[17]||=P(`div`,{class:`filter-logic-line`},null,-1)]),P(`div`,en,[P(`button`,{class:`sidebar-section-title flex items-center justify-between w-full cursor-pointer`,onClick:t[11]||=e=>Te(`attributes`)},[P(`span`,null,I(e.$t(`views.recordings.attributes`)),1),(M(),K(Q(H(O).attributes?H(ce):H(E)),{class:`w-4 h-4 text-muted`}))]),H(O).attributes?(M(),L(`div`,tn,[(M(!0),L(B,null,j(H(F),e=>(M(),L(`label`,{key:e.value,class:`flex items-center gap-2 cursor-pointer text-sm`},[J(m,{"model-value":r.filters.hasAttributes.includes(e.value),binary:!0,"onUpdate:modelValue":t=>Ce(e.value)},null,8,[`model-value`,`onUpdate:modelValue`]),(M(),K(Q(e.icon),{class:`w-4 h-4 text-muted`})),P(`span`,null,I(e.label),1)]))),128)),P(`label`,nn,[J(m,{"model-value":r.filters.eventTypes.includes(H(N).value),binary:!0,"onUpdate:modelValue":t[12]||=e=>ve(H(N).value)},null,8,[`model-value`]),(M(),K(Q(H(N).icon),{class:`w-4 h-4 text-muted`})),P(`span`,null,I(H(N).label),1)])])):Z(``,!0)])],4)],4)}}}),[[`__scopeId`,`data-v-517bc60a`]]),on={class:`font-semibold text-xl truncate`},sn={class:`w-full h-full relative`},cn={key:0,class:`w-full flex flex-row h-[calc(40px+1rem)] py-2 items-center fixed z-10`},ln={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`},dn={key:1,class:`flex justify-center py-4`},fn={key:2,class:`flex flex-1 min-h-0 flex-col items-center justify-center w-full gap-4`},pn={class:`text-muted text-sm`},mn=288,hn=10,gn=11,_n=U({__name:`Recordings`,setup(e){let t=new le,n=ue(),{t:r}=i(),{smBreakpoint:o,xlBreakpoint:s,mdBreakpoint:l}=oe(),{isTouch:m}=fe(),{registerScrollToTop:h}=w();if(!m.value&&typeof VideoDecoder<`u`){let e=p({cacheSize:20});he(v,e),d(()=>e.dispose())}let{results:g,isSearching:ee,isAvailable:te,hasSearched:ne,search:re,clear:ie}=f(),{data:x}=t.getCamerasQuery({page:1,pageSize:-1}),S={"1h":36e5,"1d":864e5,"1w":6048e5,"1m":2592e6},ce=pe(`gridRef`),T=pe(`viewMenuRef`),E=R(`closed`),k=R(!1),A=R({search:``,semanticQuery:``,filterLogicTriggers:`or`,filterLogicAttributes:`or`,cameraIds:[],timeRange:null,customDateRange:null,eventTypes:[],audioLabels:[],hasAttributes:[],sensorEvents:[],gridRegions:[],minConfidence:.5,minSemanticScore:.5,onlyWithRecordings:!0}),j=z({state:`ended`,hasDetections:!0,withRecordingInfo:!0,hasRecording:!0}),me=JSON.stringify(j.value),F=R(!1),B=z([]),V=W(()=>s.value?!0:E.value===`opened`),U=W(()=>l.value),G=W(()=>l.value?`0px`:V.value?`${mn}px`:`0px`),q=W(()=>(x.value?.result??[]).map(e=>({id:e._id,name:e.name}))),X=W(()=>{let e=new Map;for(let t of q.value)e.set(t.id,t.name);return e}),Q=W(()=>{let e=new Map;for(let t of x.value?.result??[])e.set(t._id,t);return e}),xe=W(()=>A.value.cameraIds),Se=W(()=>q.value.map(e=>e.id));h(()=>ce.value?.scrollToTop());let{events:Ce,isLoading:we,hasMore:Te,loadMore:Me,loadThumbnails:Ne,getCachedThumbnails:Fe}=u({availableCameraIds:Se,cameraIds:xe,realtime:!0,pageSize:40,filter:j}),$=W(()=>{let e=new Map;for(let t of g.value??[]){let n=e.get(t.eventId);(!n||t.score>n)&&e.set(t.eventId,t.score)}return e}),Le=W(()=>ne.value),Re=W(()=>{let e=Ce.value.filter(e=>e.state===`ended`),t=A.value;if(t.timeRange&&S[t.timeRange]){let n=Date.now()-S[t.timeRange];e=e.filter(e=>e.startTime>=n)}if(t.gridRegions.length>0&&(e=e.filter(e=>e.segments.some(e=>e.detections.some(e=>e.box&&We(e.box,t.gridRegions))))),Le.value){let n=t.minSemanticScore*.23+.15;e=e.filter(e=>{let t=$.value.get(e.id);return t!=null&&t>=n}),e.sort((e,t)=>($.value.get(t.id)??0)-($.value.get(e.id)??0))}return e}),ze=W(()=>F.value&&B.value.length?B.value:Re.value.map(e=>({event:e,key:e.id}))),Be=W(()=>[{key:`ungroup`,label:r(`views.recordings.ungroup`),description:r(`views.recordings.ungroup_hint`),toggle:!0,toggleState:F.value,onClick:()=>{F.value=!F.value}},{key:`onlyWithRecordings`,label:r(`views.recordings.only_with_recordings`),description:r(`views.recordings.only_with_recordings_hint`),toggle:!0,toggleState:A.value.onlyWithRecordings,onClick:()=>{A.value={...A.value,onlyWithRecordings:!A.value.onlyWithRecordings}}}]);function Ve(){n.openComponentDialog(gt,{data:{title:r(`views.recordings.export.title`),contentProps:{cameras:q.value,preselect:A.value.cameraIds?.length?A.value.cameraIds:[]},confirmText:r(`views.recordings.export.confirm`)}})}function He(){let e=E.value;E.value=e===`opened`?`closed`:`opened`}function Ue(){E.value=`closed`}function We(e,t){if(t.length===0)return!0;let n=1/hn,r=1/gn,i=e.x/n,a=(e.x+e.width)/n,o=e.y/r,s=(e.y+e.height)/r;for(let e of t)if(a>e.col&&i<e.col+e.w&&s>e.row&&o<e.row+e.h)return!0;return!1}function Ge(e,t){let n=[];if(e.attributes)for(let[r,i]of Object.entries(e.attributes)){let e=_(i);if(!e)continue;let a=r.indexOf(`:`);n.push({key:`${t.id}:attr:${r}`,url:e,type:a>=0?r.substring(0,a):r,label:a>=0?r.substring(a+1):void 0})}if(e.detections)for(let[r,i]of Object.entries(e.detections)){let e=_(i);if(!e)continue;let a=r.includes(`:`)?r.split(`:`).slice(1).join(`:`):r;n.push({key:`${t.id}:det:${r}`,url:e,type:a})}if(e.scenes)for(let[r,i]of Object.entries(e.scenes)){let e=_(i);e&&n.push({key:`${t.id}:scene:${r}`,url:e,type:`scene`})}let r=new Set;return n.filter(e=>!r.has(e.url)&&(r.add(e.url),!0))}function Ke(e){let t=[];for(let n of e){let e=Fe(n.id);if(!e){t.push({event:n,key:n.id});continue}let r=Ge(e,n),i=y(e,n);if(i.url){let e=r.findIndex(e=>e.url===i.url);e>0&&r.unshift(...r.splice(e,1))}r.length<=1?t.push({event:n,key:n.id}):r.forEach((e,r)=>{t.push({event:n,key:r===0?n.id:e.key,thumbnailOverride:{url:e.url,type:e.type,label:e.label}})})}return t}function qe(e){!e.semanticQuery?.trim()&&A.value.semanticQuery?.trim()&&ie(),A.value=e}function Je(e){if(!e.trim()){ie();return}re(e)}function Ye(e){let t=Q.value.get(e.cameraId);t&&n.openComponentDialog(ae,{data:{title:t.name,stayActive:!0,hideCancelButton:!0,hideConfirmButton:!0,contentProps:{camera:t,eventTimestamp:e.startTime},headerActions:e.segments?.some(e=>e?.description)?[{icon:se,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 Y(s,e=>{e&&(E.value=`closed`)}),Y(A,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!==me&&(me=r,j.value=n)},{deep:!0,immediate:!0}),Y(F,e=>{e?B.value=Ke(Re.value):B.value=[]}),Y(Re,e=>{if(!F.value)return;let t=new Set(e.map(e=>e.id)),n=new Set(B.value.map(e=>e.event.id)),r=B.value.filter(e=>t.has(e.event.id)),i=e.filter(e=>!n.has(e.id));i.length&&(r=[...Ke(i),...r]),B.value=r}),Y(()=>A.value.cameraIds,e=>{e.length!==1&&A.value.gridRegions.length>0&&(A.value={...A.value,gridRegions:[]})}),ve(()=>{requestAnimationFrame(()=>{k.value=!0})}),(e,t)=>{let n=b,r=Ie,i=Pe,l=a,u=ke,d=je,f=Ae,p=De,m=Oe,h=Ee,g=O,_=D,v=c;return M(),L(`div`,null,[J(n,{position:`center`},{default:N(()=>[P(`span`,on,I(e.$t(`views.recordings.title`)),1)]),_:1}),J(n,{position:`left`},{default:N(()=>[J(l,{id:`recordings-sidebar-toggle`,severity:`secondary`,class:`cui-button p-2 text-color`,text:``,rounded:``,onClick:He},{icon:N(()=>[H(E)===`closed`?(M(),K(r,{key:0,width:`100%`,height:`100%`})):(M(),K(i,{key:1,width:`100%`,height:`100%`}))]),_:1})]),_:1}),J(n,{position:`right`},{default:N(()=>[J(l,{severity:`secondary`,class:`cui-button p-2 text-color`,text:``,rounded:``,onClick:t[0]||=e=>H(T)?.toggleMenu(e)},{icon:N(()=>[J(u,{width:`100%`,height:`100%`})]),_:1})]),_:1}),J(an,{filters:H(A),cameras:H(q),"is-open":H(V),"is-overlay":H(U),"result-count":H(ze).length,"semantic-count":H(Le)?H($).size:void 0,"semantic-search-available":H(te),"semantic-search-loading":H(ee),"onUpdate:filters":qe,onSemanticSearch:Je,onClose:Ue},null,8,[`filters`,`cameras`,`is-open`,`is-overlay`,`result-count`,`semantic-count`,`semantic-search-available`,`semantic-search-loading`]),(M(),K(ye,{to:`#container`,defer:``},[H(V)&&H(U)?(M(),L(`div`,{key:0,class:`fixed top-0 left-0 right-0 bottom-0 w-full h-full bg-black/50 z-1`,onClick:Ue})):Z(``,!0)])),P(`main`,{class:`relative w-full h-full`,style:be({paddingLeft:H(G),transition:H(k)?`padding-left 200ms`:void 0})},[P(`div`,sn,[H(o)?Z(``,!0):(M(),L(`div`,cn,[t[2]||=P(`div`,{class:`ml-2`},null,-1),H(s)?Z(``,!0):(M(),K(l,{key:0,id:`recordings-sidebar-toggle`,severity:`secondary`,class:`mr-2 cui-icon-lg relative z-2`,text:``,rounded:``,onClick:He},{icon:N(()=>[H(V)?(M(),K(d,{key:0,width:`100%`,height:`100%`})):(M(),K(f,{key:1,width:`100%`,height:`100%`}))]),_:1})),P(`h1`,ln,I(e.$t(`views.recordings.title`)),1),t[3]||=P(`div`,{class:`gradient-blur rotate-180 !h-[70px]`},[P(`div`),P(`div`),P(`div`),P(`div`),P(`div`),P(`div`)],-1)])),H(o)?Z(``,!0):(M(),L(`div`,un,[ge((M(),K(l,{severity:`secondary`,text:``,rounded:``,class:`cui-icon-lg relative z-2`,onClick:t[1]||=e=>H(T)?.toggleMenu(e)},{icon:N(()=>[J(u,{width:`100%`,height:`100%`})]),_:1})),[[v,{value:e.$t(`views.recordings.view_options`)},void 0,{bottom:!0}]])])),P(`div`,{class:_e([`px-2 h-full w-full flex flex-col`,{"pt-4":H(o),"pt-[calc(40px+2rem)]":!H(o)}])},[H(ze).length?(M(),K(m,{key:0,ref_key:`gridRef`,ref:ce,items:H(ze),"min-item-width":H(o)?160:180,gap:8,"has-more":H(Te),"load-more":H(Me),"item-key":e=>e.key,class:`flex-1 min-h-0`},{item:N(({item:e})=>[J(p,{event:e.event,"camera-name":H(X).get(e.event.cameraId),camera:H(Q).get(e.event.cameraId),"load-thumbnails":H(Ne),"semantic-score":H($).get(e.event.id),"thumbnail-override":e.thumbnailOverride,onScrollToEvent:()=>Ye(e.event)},null,8,[`event`,`camera-name`,`camera`,`load-thumbnails`,`semantic-score`,`thumbnail-override`,`onScrollToEvent`])]),_:1},8,[`items`,`min-item-width`,`has-more`,`load-more`,`item-key`])):Z(``,!0),H(we)||H(ee)?(M(),L(`div`,dn,[J(h,{width:`24px`,height:`24px`,class:`text-muted`})])):Z(``,!0),!H(Re).length&&!H(we)&&!H(ee)?(M(),L(`div`,fn,[J(g,{class:`w-12 h-12 text-muted`}),P(`span`,pn,I(e.$t(`views.recordings.no_recordings`)),1)])):Z(``,!0)],2)])],4),H(q).length?(M(),K(_,{key:0,"tooltip-props":{value:e.$t(`views.recordings.export.title`)},"button-props":{class:`text-white`},icon:H(C),"icon-props":{width:`26px`,height:`26px`},"force-visible":``,onClick:Ve},null,8,[`tooltip-props`,`icon`])):Z(``,!0),J(de,{ref_key:`viewMenuRef`,ref:T,items:H(Be),"auto-hide":!1,popover:{pt:{root:{class:`w-[22rem]`},content:{class:`p-0! rounded-xl! overflow-hidden!`}}}},null,8,[`items`])])}}});export{_n as default};
@@ -0,0 +1 @@
1
+ .cui-measurement-info[data-v-3344cbd6]{border-radius:.5rem;flex-direction:column;gap:.5rem;padding:.75rem;display:flex}.cui-measurement-info--disabled[data-v-3344cbd6]{opacity:.6}.cui-measurement-info__header[data-v-3344cbd6]{align-items:center;gap:.5rem;display:flex}.cui-measurement-info__icon[data-v-3344cbd6]{justify-content:center;align-items:center;width:1.75rem;height:1.75rem;display:flex}.cui-measurement-info__icon-svg[data-v-3344cbd6]{width:1.5rem;height:1.5rem;color:var(--text-secondary-color)}.cui-measurement-info__info[data-v-3344cbd6]{flex-direction:column;flex:1;gap:0;display:flex}.cui-measurement-info__label[data-v-3344cbd6]{color:var(--text-color);font-size:.875rem;font-weight:500}.cui-measurement-info__value[data-v-3344cbd6]{color:var(--text-secondary-color);font-size:.75rem;font-weight:500}.cui-measurement-info--small[data-v-3344cbd6]{gap:.375rem;padding:.5rem}.cui-measurement-info--small .cui-measurement-info__icon[data-v-3344cbd6]{width:1.25rem;height:1.25rem}.cui-measurement-info--small .cui-measurement-info__icon-svg[data-v-3344cbd6]{width:1.125rem;height:1.125rem}.cui-measurement-info--small .cui-measurement-info__label[data-v-3344cbd6]{font-size:.75rem}.cui-measurement-info--small .cui-measurement-info__value[data-v-3344cbd6]{font-size:.625rem}.cui-measurement-info--large[data-v-3344cbd6]{gap:.75rem;padding:1rem}.cui-measurement-info--large .cui-measurement-info__icon[data-v-3344cbd6]{width:2.25rem;height:2.25rem}.cui-measurement-info--large .cui-measurement-info__icon-svg[data-v-3344cbd6]{width:2rem;height:2rem}.cui-measurement-info--large .cui-measurement-info__label[data-v-3344cbd6]{font-size:1rem}.cui-measurement-info--large .cui-measurement-info__value[data-v-3344cbd6]{font-size:.875rem}.cui-binary-sensor[data-v-c89ce8e7]{border-radius:.5rem;flex-direction:column;gap:.5rem;padding:.75rem;display:flex}.cui-binary-sensor--disabled[data-v-c89ce8e7]{opacity:.6}.cui-binary-sensor__header[data-v-c89ce8e7]{align-items:center;gap:.5rem;display:flex}.cui-binary-sensor__icon[data-v-c89ce8e7]{justify-content:center;align-items:center;width:1.75rem;height:1.75rem;display:flex}.cui-binary-sensor__icon-svg[data-v-c89ce8e7]{width:1.5rem;height:1.5rem;transition:color .2s,filter .2s}.cui-binary-sensor__info[data-v-c89ce8e7]{flex-direction:column;flex:1;gap:0;display:flex}.cui-binary-sensor__label[data-v-c89ce8e7]{color:var(--text-color);font-size:.875rem;font-weight:500}.cui-binary-sensor__status[data-v-c89ce8e7]{font-size:.75rem;font-weight:500}.cui-binary-sensor__status--detected[data-v-c89ce8e7]{color:#ef4444}.cui-binary-sensor__status--clear[data-v-c89ce8e7]{color:var(--text-secondary-color)}.cui-binary-sensor__indicator[data-v-c89ce8e7]{border-radius:50%;width:.5rem;height:.5rem;transition:background-color .2s}.cui-binary-sensor__indicator--detected[data-v-c89ce8e7]{background-color:#ef4444;animation:1.5s ease-in-out infinite pulse-indicator-c89ce8e7;box-shadow:0 0 6px #ef444499}.cui-binary-sensor__indicator--clear[data-v-c89ce8e7]{background-color:var(--text-secondary-color)}@keyframes pulse-indicator-c89ce8e7{0%,to{opacity:1}50%{opacity:.5}}.cui-binary-sensor--small[data-v-c89ce8e7]{gap:.375rem;padding:.5rem}.cui-binary-sensor--small .cui-binary-sensor__icon[data-v-c89ce8e7]{width:1.25rem;height:1.25rem}.cui-binary-sensor--small .cui-binary-sensor__icon-svg[data-v-c89ce8e7]{width:1.125rem;height:1.125rem}.cui-binary-sensor--small .cui-binary-sensor__label[data-v-c89ce8e7]{font-size:.75rem}.cui-binary-sensor--small .cui-binary-sensor__status[data-v-c89ce8e7]{font-size:.625rem}.cui-binary-sensor--small .cui-binary-sensor__indicator[data-v-c89ce8e7]{width:.375rem;height:.375rem}.cui-binary-sensor--large[data-v-c89ce8e7]{gap:.75rem;padding:1rem}.cui-binary-sensor--large .cui-binary-sensor__icon[data-v-c89ce8e7]{width:2.25rem;height:2.25rem}.cui-binary-sensor--large .cui-binary-sensor__icon-svg[data-v-c89ce8e7]{width:2rem;height:2rem}.cui-binary-sensor--large .cui-binary-sensor__label[data-v-c89ce8e7]{font-size:1rem}.cui-binary-sensor--large .cui-binary-sensor__status[data-v-c89ce8e7]{font-size:.875rem}.cui-binary-sensor--large .cui-binary-sensor__indicator[data-v-c89ce8e7]{width:.625rem;height:.625rem}.cui-detection-info[data-v-f3272b7a]{border-radius:.5rem;flex-direction:column;gap:.5rem;padding:.75rem;display:flex}.cui-detection-info__header[data-v-f3272b7a]{align-items:center;gap:.5rem;display:flex}.cui-detection-info__icon[data-v-f3272b7a]{justify-content:center;align-items:center;width:1.75rem;height:1.75rem;display:flex}.cui-detection-info__icon-svg[data-v-f3272b7a]{width:1.5rem;height:1.5rem;color:var(--text-secondary-color);transition:color .2s,filter .2s}.cui-detection-info__info[data-v-f3272b7a]{flex-direction:column;flex:1;min-width:0;display:flex}.cui-detection-info__label[data-v-f3272b7a]{color:var(--text-color);font-size:.875rem;font-weight:500}.cui-detection-info__status[data-v-f3272b7a]{text-overflow:ellipsis;white-space:nowrap;font-size:.75rem;font-weight:500;overflow:hidden}.cui-detection-info__status--active[data-v-f3272b7a]{color:#fb923c}.cui-detection-info__status--idle[data-v-f3272b7a]{color:var(--text-secondary-color)}.cui-detection-info__decibels[data-v-f3272b7a]{color:var(--text-secondary-color);flex-shrink:0;font-size:.75rem}.cui-detection-info__indicator[data-v-f3272b7a]{border-radius:50%;flex-shrink:0;width:.5rem;height:.5rem;transition:background-color .2s}.cui-detection-info__indicator--active[data-v-f3272b7a]{background-color:#fb923c;animation:1.5s ease-in-out infinite pulse-indicator-f3272b7a;box-shadow:0 0 6px #fb923c99}.cui-detection-info__indicator--idle[data-v-f3272b7a]{background-color:var(--border-color)}@keyframes pulse-indicator-f3272b7a{0%,to{opacity:1}50%{opacity:.5}}.cui-detection-info--small[data-v-f3272b7a]{gap:.375rem;padding:.5rem}.cui-detection-info--small .cui-detection-info__icon[data-v-f3272b7a]{width:1.25rem;height:1.25rem}.cui-detection-info--small .cui-detection-info__icon-svg[data-v-f3272b7a]{width:1.125rem;height:1.125rem}.cui-detection-info--small .cui-detection-info__label[data-v-f3272b7a]{font-size:.75rem}.cui-detection-info--small .cui-detection-info__status[data-v-f3272b7a]{font-size:.625rem}.cui-detection-info--small .cui-detection-info__indicator[data-v-f3272b7a]{width:.375rem;height:.375rem}
@@ -0,0 +1 @@
1
+ import{$n as e,G as t,J as n,Mr as r,Or as i,Q as a,Qn as o,U as s,W as c,Xn as l,Y as u,Z as d,Zn as f,_r as p,at as m,br as ee,cr as h,ct as g,dr as te,er as _,fr as v,ir as ne,it as y,k as b,mr as x,nt as re,ot as ie,q as ae,rt as oe,sr as S,tt as C,ur as w,vr as T}from"./vendor-cameraui-DojVuZ2L.js";import{mn as E,on as D}from"./api-Draww2tC.js";import{Fn as se,Nn as O,Sn as k,Xn as A,_r as j,an as M,br as N,cn as P,cr as F,en as I,fn as L,gr as R,hn as z,in as B,mr as V,on as H,pn as U,rr as W,sn as G,yr as K,zn as q}from"./vendor-JQXDMBA-.js";import{K as J,T as ce,l as le,z as ue}from"./vendor-primevue-C0acGg0Y.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-CEpcKss7.js";import{t as Y}from"./sensorIcons-DtJEfoU4.js";var Te={disabled:!1,size:`medium`},Ee={class:`cui-measurement-info__header`},De={class:`cui-measurement-info__icon`},Oe={class:`cui-measurement-info__info`},ke={key:0,class:`cui-measurement-info__label`},Ae={class:`cui-measurement-info__value`},je=E(z({__name:`CuiMeasurementInfo`,props:k({type:{},unit:{},current:{},label:{},disabled:{type:Boolean},size:{}},Te),setup(e){let{type:t}=V(e),n=B(()=>Y(t.value));return(t,r)=>(O(),P(`div`,{class:j([`cui-measurement-info`,[`cui-measurement-info--${e.size}`,{"cui-measurement-info--disabled":e.disabled}]])},[M(`div`,Ee,[M(`div`,De,[(O(),H(q(R(n)),{class:`cui-measurement-info__icon-svg`}))]),M(`div`,Oe,[e.label?(O(),P(`span`,ke,N(e.label),1)):G(``,!0),M(`span`,Ae,N(e.current==null?`--`:`${e.current} ${e.unit}`),1)])])],2))}}),[[`__scopeId`,`data-v-3344cbd6`]]),Me={detected:!1,disabled:!1,size:`medium`},Ne={class:`cui-binary-sensor__header`},Pe={class:`cui-binary-sensor__icon`},Fe={class:`cui-binary-sensor__info`},Ie={key:0,class:`cui-binary-sensor__label`},Le=E(z({__name:`CuiBinarySensor`,props:k({type:{},detected:{type:Boolean},label:{},disabled:{type:Boolean},size:{}},Me),setup(e){let t=e,{t:n}=r(),{type:i,detected:a}=V(t),o=B(()=>Y(i.value)),s=B(()=>({color:`rgb(239, 68, 68)`,filter:`drop-shadow(0 0 6px rgba(239, 68, 68, 0.5))`})),c=B(()=>({color:`var(--text-secondary-color)`})),l=B(()=>a.value?`cui-binary-sensor__status--detected`:`cui-binary-sensor__status--clear`),u=B(()=>a.value?`cui-binary-sensor__indicator--detected`:`cui-binary-sensor__indicator--clear`);return(t,r)=>(O(),P(`div`,{class:j([`cui-binary-sensor`,[`cui-binary-sensor--${e.size}`,{"cui-binary-sensor--disabled":e.disabled,"cui-binary-sensor--clear":!R(a),"cui-binary-sensor--detected":R(a)}]])},[M(`div`,Ne,[M(`div`,Pe,[(O(),H(q(R(o)),{class:`cui-binary-sensor__icon-svg`,style:K(R(a)?R(s):R(c))},null,8,[`style`]))]),M(`div`,Fe,[e.label?(O(),P(`span`,Ie,N(e.label),1)):G(``,!0),M(`span`,{class:j([`cui-binary-sensor__status`,R(l)])},N(R(a)?R(n)(`components.binary_sensor.detected`):R(n)(`components.binary_sensor.clear`)),3)]),M(`div`,{class:j([`cui-binary-sensor__indicator`,R(u)])},null,2)])],2))}}),[[`__scopeId`,`data-v-c89ce8e7`]]),Re={detected:!1,size:`medium`},ze={class:`cui-detection-info__header`},Be={class:`cui-detection-info__icon`},Ve={class:`cui-detection-info__info`},He={key:0,class:`cui-detection-info__label`},Ue={key:0,class:`cui-detection-info__decibels`},We=E(z({__name:`CuiDetectionSensorInfo`,props:k({type:{},label:{},detected:{type:Boolean},labels:{},decibels:{},size:{}},Re),setup(e){let t=e,{t:n}=r(),i={color:`rgb(251, 146, 60)`,filter:`drop-shadow(0 0 8px rgba(251, 146, 60, 0.6))`},a=B(()=>{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(),P(`div`,{class:j([`cui-detection-info`,[`cui-detection-info--${e.size}`,{"cui-detection-info--active":e.detected}]])},[M(`div`,ze,[M(`div`,Be,[(O(),H(q(R(Y)(e.type)),{class:`cui-detection-info__icon-svg`,style:K(e.detected?i:void 0)},null,8,[`style`]))]),M(`div`,Ve,[e.label?(O(),P(`span`,He,N(e.label),1)):G(``,!0),M(`span`,{class:j([`cui-detection-info__status`,e.detected?`cui-detection-info__status--active`:`cui-detection-info__status--idle`])},N(R(a)),3)]),e.decibels===void 0?G(``,!0):(O(),P(`span`,Ue,N(Math.round(e.decibels))+` dB`,1)),M(`div`,{class:j([`cui-detection-info__indicator`,e.detected?`cui-detection-info__indicator--active`:`cui-detection-info__indicator--idle`])},null,2)])],2))}}),[[`__scopeId`,`data-v-f3272b7a`]]),X=new Set([i.Motion,i.Object,i.Audio,i.Face,i.LicensePlate,i.Classifier]),Z=new Set([i.Gas,i.CarbonMonoxide,i.Heat,i.Cold,i.Vibration,i.Tamper,i.Problem,i.Power]),Q=new Map([[i.Illuminance,`lx`],[i.CarbonDioxide,`ppm`]]),Ge=new Set([...X,...Z,...Q.keys(),i.Light,i.Switch,i.Lock,i.Siren,i.SecuritySystem,i.Garage,i.Doorbell,i.Contact,i.Occupancy,i.Smoke,i.Leak,i.Temperature,i.Humidity,i.Battery]);function Ke(e){return Ge.has(e)}var qe=z({__name:`CuiSensorControl`,props:{sensor:{},disabled:{type:Boolean}},setup(r){function g(e){return Z.has(e.type)}function b(e){return Q.get(e.type)}function E(e){return X.has(e.type)}function D(e){let t=e.getProperty(`detections`)??[];return[...new Set(t.map(e=>e.label??e.attribute).filter(e=>!!e))]}return(se,k)=>{let A=Ce,j=ve,M=xe,N=he,P=de,F=pe,I=ye,L=Se,z=fe,B=ge,V=we,U=me,W=be,K=_e,q=Le,J=je;return R(d)(r.sensor)?(O(),H(A,{key:0,label:r.sensor.displayName.value,on:r.sensor.getProperty(R(h).On)??!1,brightness:r.sensor.getProperty(R(h).Brightness)??100,"has-brightness":r.sensor.hasCapability(`brightness`),disabled:r.disabled,size:`small`,class:`card-border`,"onUpdate:on":k[0]||=e=>r.sensor.setProperty(R(h).On,e),"onUpdate:brightness":k[1]||=e=>r.sensor.setProperty(R(h).Brightness,e)},null,8,[`label`,`on`,`brightness`,`has-brightness`,`disabled`])):R(m)(r.sensor)?(O(),H(j,{key:1,label:r.sensor.displayName.value,on:r.sensor.getProperty(R(f).On)??!1,disabled:r.disabled,size:`small`,class:`card-border`,"onUpdate:on":k[2]||=e=>r.sensor.setProperty(R(f).On,e)},null,8,[`label`,`on`,`disabled`])):R(a)(r.sensor)?(O(),H(M,{key:2,label:r.sensor.displayName.value,"current-state":r.sensor.getProperty(R(S).CurrentState)??2,"target-state":r.sensor.getProperty(R(S).TargetState)??0,disabled:r.disabled,size:`small`,class:`card-border`,"onUpdate:targetState":k[3]||=e=>r.sensor.setProperty(R(S).TargetState,e)},null,8,[`label`,`current-state`,`target-state`,`disabled`])):R(oe)(r.sensor)?(O(),H(N,{key:3,label:r.sensor.displayName.value,active:r.sensor.getProperty(R(e).Active)??!1,volume:r.sensor.getProperty(R(e).Volume)??100,"has-volume":r.sensor.hasCapability(`volume`),disabled:r.disabled,size:`small`,class:`card-border`,"onUpdate:active":k[4]||=t=>r.sensor.setProperty(R(e).Active,t),"onUpdate:volume":k[5]||=t=>r.sensor.setProperty(R(e).Volume,t)},null,8,[`label`,`active`,`volume`,`has-volume`,`disabled`])):R(re)(r.sensor)?(O(),H(P,{key:4,label:r.sensor.displayName.value,"current-state":r.sensor.getProperty(R(_).CurrentState)??3,"target-state":r.sensor.getProperty(R(_).TargetState)??3,disabled:r.disabled,size:`small`,class:`card-border`,"onUpdate:targetState":k[6]||=e=>r.sensor.setProperty(R(_).TargetState,e)},null,8,[`label`,`current-state`,`target-state`,`disabled`])):R(ae)(r.sensor)?(O(),H(F,{key:5,label:r.sensor.displayName.value,"current-state":r.sensor.getProperty(R(v).CurrentState)??1,"target-state":r.sensor.getProperty(R(v).TargetState)??1,"obstruction-detected":r.sensor.getProperty(R(v).ObstructionDetected)??!1,disabled:r.disabled,size:`small`,class:`card-border`,"onUpdate:targetState":k[7]||=e=>r.sensor.setProperty(R(v).TargetState,e)},null,8,[`label`,`current-state`,`target-state`,`obstruction-detected`,`disabled`])):R(t)(r.sensor)?(O(),H(I,{key:6,label:r.sensor.displayName.value,ring:r.sensor.getProperty(R(x).Ring)??!1,disabled:r.disabled,size:`small`,class:`card-border`,onTrigger:k[8]||=()=>r.sensor.setProperty(R(x).Ring,!0)},null,8,[`label`,`ring`,`disabled`])):R(c)(r.sensor)?(O(),H(L,{key:7,label:r.sensor.displayName.value,detected:r.sensor.getProperty(R(p).Detected)??!1,size:`small`,class:`card-border`},null,8,[`label`,`detected`])):R(C)(r.sensor)?(O(),H(z,{key:8,label:r.sensor.displayName.value,detected:r.sensor.getProperty(R(ne).Detected)??!1,size:`small`,class:`card-border`},null,8,[`label`,`detected`])):R(y)(r.sensor)?(O(),H(B,{key:9,label:r.sensor.displayName.value,detected:r.sensor.getProperty(R(o).Detected)??!1,size:`small`,class:`card-border`},null,8,[`label`,`detected`])):R(u)(r.sensor)?(O(),H(V,{key:10,label:r.sensor.displayName.value,detected:r.sensor.getProperty(R(w).Detected)??!1,size:`small`,class:`card-border`},null,8,[`label`,`detected`])):R(ie)(r.sensor)?(O(),H(U,{key:11,label:r.sensor.displayName.value,current:r.sensor.getProperty(R(l).Current),size:`small`,class:`card-border`},null,8,[`label`,`current`])):R(n)(r.sensor)?(O(),H(W,{key:12,label:r.sensor.displayName.value,current:r.sensor.getProperty(R(te).Current),size:`small`,class:`card-border`},null,8,[`label`,`current`])):R(s)(r.sensor)?(O(),H(K,{key:13,label:r.sensor.displayName.value,level:r.sensor.getProperty(R(T).Level)??100,charging:r.sensor.getProperty(R(T).Charging)??`NOT_CHARGING`,low:r.sensor.getProperty(R(T).Low)??!1,size:`small`,class:`card-border`},null,8,[`label`,`level`,`charging`,`low`])):g(r.sensor)?(O(),H(q,{key:14,type:r.sensor.type,label:r.sensor.displayName.value,detected:r.sensor.getProperty(`detected`)??!1,size:`small`,class:`card-border`},null,8,[`type`,`label`,`detected`])):b(r.sensor)?(O(),H(J,{key:15,type:r.sensor.type,label:r.sensor.displayName.value,current:r.sensor.getProperty(`current`)??void 0,unit:b(r.sensor),size:`small`,class:`card-border`},null,8,[`type`,`label`,`current`,`unit`])):E(r.sensor)?(O(),H(We,{key:16,type:r.sensor.type,label:r.sensor.displayName.value,detected:r.sensor.getProperty(`detected`)??!1,labels:D(r.sensor),decibels:r.sensor.type===R(i).Audio?r.sensor.getProperty(R(ee).Decibels)??void 0:void 0,size:`small`,class:`card-border`},null,8,[`type`,`label`,`detected`,`labels`,`decibels`])):G(``,!0)}}}),Je={class:`flex flex-col gap-4 w-full`},$={key:0,class:`flex flex-col field-gap`},Ye={class:`cui-label`},Xe={class:`flex flex-col field-gap`},Ze={for:`sensorDisplayName`,class:`cui-label`},Qe={class:`flex flex-col field-gap`},$e={class:`cui-label`},et={key:0,class:`flex flex-wrap gap-2`},tt={key:1,class:`flex items-center gap-4 cui-toggle-switch`},nt={class:`flex flex-col min-w-0`},rt={class:`cui-label-switch`},it={class:`text-xs text-muted`},at=z({__name:`SensorEdit`,props:{sensor:{},cameraOptions:{}},setup(e,{expose:t}){let n=e,r=F(n.sensor.displayName||n.sensor.name),i=F([...n.sensor.assignedCameraIds]),a=F(n.sensor.exposed),{sensors:o}=g(),s=B(()=>D(void 0,`admin`)),c=B(()=>n.cameraOptions.filter(e=>n.sensor.assignedCameraIds.includes(e.value))),l=B(()=>Ke(n.sensor.type)),u=B(()=>o.value.find(e=>e.id===n.sensor.id));return t({onConfirm:async()=>({displayName:r.value||n.sensor.name,assignedCameraIds:i.value,exposed:a.value})}),(t,n)=>{let o=ue,d=b,f=ce,p=le,m=J;return O(),P(`div`,Je,[R(l)?(O(),P(`div`,$,[M(`label`,Ye,N(t.$t(`views.sensors.control`)),1),R(u)?(O(),H(qe,{key:0,sensor:R(u),disabled:!R(s)},null,8,[`sensor`,`disabled`])):(O(),H(o,{key:1,severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:A(()=>[L(N(t.$t(`views.sensors.control_offline`)),1)]),_:1}))])):G(``,!0),M(`div`,Xe,[M(`label`,Ze,N(t.$t(`components.camera_options.sensor_display_name`)),1),U(d,{id:`sensorDisplayName`,modelValue:R(r),"onUpdate:modelValue":n[0]||=e=>W(r)?r.value=e:null,modelModifiers:{trim:!0},class:`w-full`},null,8,[`modelValue`])]),M(`div`,Qe,[M(`label`,$e,N(t.$t(`views.sensors.assigned_cameras`)),1),e.sensor.assignmentLocked?(O(),P(`div`,et,[(O(!0),P(I,null,se(R(c),e=>(O(),H(f,{key:e.value,label:e.label},null,8,[`label`]))),128))])):(O(),H(p,{key:1,modelValue:R(i),"onUpdate:modelValue":n[1]||=e=>W(i)?i.value=e:null,options:e.cameraOptions,"option-label":`label`,"option-value":`value`,placeholder:t.$t(`views.sensors.assigned_cameras_placeholder`),class:`w-full`},null,8,[`modelValue`,`options`,`placeholder`])),U(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:A(()=>[L(N(e.sensor.assignmentLocked?t.$t(`views.sensors.assigned_cameras_locked_hint`):t.$t(`views.sensors.assigned_cameras_hint`)),1)]),_:1})]),e.sensor.cameraBound?G(``,!0):(O(),P(`div`,tt,[M(`div`,nt,[M(`label`,rt,N(t.$t(`views.sensors.exposed`)),1),M(`span`,it,N(t.$t(`views.sensors.exposed_hint`)),1)]),U(m,{modelValue:R(a),"onUpdate:modelValue":n[2]||=e=>W(a)?a.value=e:null,class:`ml-auto shrink-0`},null,8,[`modelValue`])]))])}}});export{at as default};
@@ -1 +1 @@
1
- import{I as e,kr as t}from"./vendor-cameraui-Cgb5z6NJ.js";import{Fn as n,Nn as r,an as i,br as a,cn as o,cr as s,en as c,gr as l,hn as u,jn as d,pn as f}from"./vendor-CSg6_Jfu.js";import{n as p}from"./sensors-D1OCrbIC.js";import{t as m}from"./history-QBEPNc4X.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=u({__name:`SensorHistory`,props:{sensorId:{},sensorType:{}},setup(u){let C=u,{t:w,te:T}=t(),E=s([]),D=s(!0);d(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,s)=>{let u=e,d=m;return r(),o(`div`,h,[l(D)?(r(),o(`div`,g,[(r(),o(c,null,n(6,e=>f(u,{key:e,height:`40px`,class:`rounded-md`})),64))])):l(E).length?(r(!0),o(c,{key:1},n(l(E),(e,t)=>(r(),o(`div`,{key:t,class:`flex items-center gap-3 p-2 rounded-md border-color`},[i(`div`,_,[i(`span`,v,a(O(e.property)),1),i(`span`,y,a(A(e.timestamp)),1)]),i(`span`,b,a(k(e.value)),1)]))),128)):(r(),o(`div`,x,[f(d,{class:`w-10 h-10 text-muted`}),i(`span`,S,a(t.$t(`views.sensors.history_empty`)),1)]))])}}});export{C as default};
1
+ import{B as e,Mr as t}from"./vendor-cameraui-DojVuZ2L.js";import{Fn as n,Nn as r,an as i,br as a,cn as o,cr as s,en as c,gr as l,hn as u,jn as d,pn as f}from"./vendor-JQXDMBA-.js";import{n as p}from"./sensors-DjgfMS8S.js";import{t as m}from"./history-60iCpGvQ.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=u({__name:`SensorHistory`,props:{sensorId:{},sensorType:{}},setup(u){let C=u,{t:w,te:T}=t(),E=s([]),D=s(!0);d(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,s)=>{let u=e,d=m;return r(),o(`div`,h,[l(D)?(r(),o(`div`,g,[(r(),o(c,null,n(6,e=>f(u,{key:e,height:`40px`,class:`rounded-md`})),64))])):l(E).length?(r(!0),o(c,{key:1},n(l(E),(e,t)=>(r(),o(`div`,{key:t,class:`flex items-center gap-3 p-2 rounded-md border-color`},[i(`div`,_,[i(`span`,v,a(O(e.property)),1),i(`span`,y,a(A(e.timestamp)),1)]),i(`span`,b,a(k(e.value)),1)]))),128)):(r(),o(`div`,x,[f(d,{class:`w-10 h-10 text-muted`}),i(`span`,S,a(t.$t(`views.sensors.history_empty`)),1)]))])}}});export{C as default};
@@ -0,0 +1 @@
1
+ [data-v-bec4b32c] tr{cursor:pointer!important}
@@ -0,0 +1,2 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./SensorEdit-rC02usEO.js","./vendor-cameraui-DojVuZ2L.js","./rolldown-runtime-C0FnF6B9.js","./vendor-JQXDMBA-.js","./api-Draww2tC.js","./useElectron-BXVcamD0.js","./vendor-zod-Dbq0fBXY.js","./types-BGMvANrz.js","./lightbulb-outline-DLrnCPG5.js","./vendor-core-ZDcIKAw9.js","./vendor-primevue-C0acGg0Y.js","./vendor-dnd-Jch9IvL6.js","./close-CtaDF28n.js","./vendor-draggabilly-Cn-knCpG.js","./api-eELh8KCM.css","./CuiLightControl-CEpcKss7.js","./bell-ring-DV73JIre.js","./home-w5iY2RUg.js","./cube-scan-DEuMi23T.js","./CuiLightControl-DFrZm_sv.css","./sensorIcons-DtJEfoU4.js","./SensorEdit-ono85O3c.css","./SensorHistory-2TmYLaL4.js","./sensors-DjgfMS8S.js","./history-60iCpGvQ.js","./VirtualSensorCreate-DcwJ_w-l.js"])))=>i.map(i=>d[i]);
2
+ import{Mr as e,Mt as t,Or as n,Ot as r,P as ee,Pt as te,Rt as ne,ct as re,k as ie,z as ae}from"./vendor-cameraui-DojVuZ2L.js";import{An as oe,B as se,L as ce,Tn as i,Wn as le,_n as ue,ar as de,cn as fe,ft as pe,gn as me,hn as he,mn as ge,nt as _e,on as ve,rt as a,tn as ye,z as be}from"./api-Draww2tC.js";import{$t as o,Fn as xe,Gn as Se,Nn as s,Rt as c,Xn as l,Zn as u,_r as d,an as f,br as p,cn as m,cr as h,en as g,gr as _,hn as v,in as y,ir as b,on as x,pn as S,rr as Ce,sn as C,yr as w,zn as we}from"./vendor-JQXDMBA-.js";import{p as Te}from"./vendor-core-ZDcIKAw9.js";import{F as Ee,P as De,S as Oe,T as ke}from"./vendor-primevue-C0acGg0Y.js";import{t as Ae}from"./close-CtaDF28n.js";import{t as T}from"./sensors-DjgfMS8S.js";import{t as je}from"./trash-can-outline-cphfB8Jh.js";import{t as Me}from"./CuiDataTable-CQhCu0px.js";import{t as Ne}from"./history-60iCpGvQ.js";import{t as Pe}from"./search-CT2BLw7G.js";import{n as Fe,t as Ie}from"./sensorIcons-DtJEfoU4.js";import{t as Le}from"./back-filled-DUUGErMw.js";import{t as Re}from"./plus-Dd-XLT76.js";import{t as ze}from"./settings-CzS4dvIO.js";import{t as E}from"./useCardSelection-DGPLn1ZH.js";import{n as Be,t as Ve}from"./eye-off-DESV3QdF.js";import{t as He}from"./table-2-line-_VC4NuFA.js";var D={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function O(e,t){return s(),m(`svg`,D,[...t[0]||=[f(`path`,{fill:`currentColor`,d:`M2 5.27L3.28 4L20 20.72L18.73 22l-3.08-3.08c-1.15.38-2.37.58-3.65.58c-5 0-9.27-3.11-11-7.5c.69-1.76 1.79-3.31 3.19-4.54zM12 9a3 3 0 0 1 3 3a3 3 0 0 1-.17 1L11 9.17A3 3 0 0 1 12 9m0-4.5c5 0 9.27 3.11 11 7.5a11.8 11.8 0 0 1-4 5.19l-1.42-1.43A9.86 9.86 0 0 0 20.82 12A9.82 9.82 0 0 0 12 6.5c-1.09 0-2.16.18-3.16.5L7.3 5.47c1.44-.62 3.03-.97 4.7-.97M3.18 12A9.82 9.82 0 0 0 12 17.5c.69 0 1.37-.07 2-.21L11.72 15A3.064 3.064 0 0 1 9 12.28L5.6 8.87c-.99.85-1.82 1.91-2.42 3.13`},null,-1)]])}var Ue=b({name:`mdi-eye-off-outline`,render:O}),We={class:`flex flex-col`},Ge={key:0,class:`page-title`},Ke={class:`flex gap-2 mb-4`},qe={key:1,class:`flex flex-1 min-h-0 flex-col items-center justify-center w-full gap-4 py-16`},Je={key:2,class:`flex flex-1 min-h-0 flex-col items-center justify-center w-full gap-4 py-20`},Ye={class:`text-muted text-sm`},Xe={key:3,class:`flex min-h-0 flex-col`},Ze=[`onClick`],Qe={class:`absolute top-3 left-3 pointer-events-none`},$e={class:`flex flex-col gap-3`},et={class:`flex items-center gap-3 min-w-0`},tt={class:`flex flex-col min-w-0 flex-1`},nt={class:`flex items-center gap-2 min-w-0`},rt={class:`font-bold text-color truncate`},it={class:`text-xs text-muted truncate`},at={class:`flex items-center gap-1 min-w-0`},ot={class:`flex items-center gap-1 ml-auto`},st={key:1,class:`shrink-0`},ct={key:0,class:`flex items-center justify-end mt-4`},lt={key:4,class:`flex min-h-0 flex-col`},ut={class:`flex items-center justify-center`},dt={class:`flex flex-col min-w-0`},ft={class:`flex items-center gap-2 min-w-0`},pt={class:`font-bold text-color truncate`},mt={key:0,class:`text-xs text-muted truncate`},ht={class:`flex items-center justify-end gap-1`},gt={key:2,class:`shrink-0`},_t={key:0,class:`flex items-center justify-end mt-4`},k=ge(v({__name:`Sensors`,setup(ge){let v=a(()=>c(()=>import(`./SensorEdit-rC02usEO.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)),b=a(()=>c(()=>import(`./SensorHistory-2TmYLaL4.js`),__vite__mapDeps([22,1,2,3,23,4,5,6,7,8,9,10,11,12,13,14,24]),import.meta.url)),D=a(()=>c(()=>import(`./VirtualSensorCreate-DcwJ_w-l.js`),__vite__mapDeps([25,1,2,3,4,5,6,7,8,9,10,11,12,13,14]),import.meta.url)),O={color:`rgb(251, 146, 60)`,filter:`drop-shadow(0 0 6px rgba(251, 146, 60, 0.6))`},k=new Set([n.Motion,n.Object,n.Audio,n.Face,n.LicensePlate,n.Classifier,n.Contact,n.Occupancy,n.Smoke,n.Leak,n.Gas,n.CarbonMonoxide,n.Heat,n.Cold,n.Vibration,n.Tamper,n.Problem,n.Power]),A=new T,j=new pe,M=_e(),vt=de(),{t:N}=e(),{smBreakpoint:P}=ue(),F=i(),{uiSettings:I}=Te(F),{sensors:L}=re(),{data:yt,isBusy:bt}=A.getSensorsQuery(),{data:xt}=j.getCamerasQuery({page:1,pageSize:-1}),{mutateAsync:St,isPending:Ct}=A.createVirtualSensorQuery(),{mutateAsync:R}=A.patchSensorQuery(),{mutateAsync:wt,isPending:Tt}=A.deleteSensorQuery(),Et={bodyRow:{class:`text-sm text-secondary`},column:{columnTitle:{class:`text-sm`}},datatable:{class:`z-0`}},Dt=Se(`menuRef`),z=h(``),B=h(!1),V=y(()=>ve(void 0,`admin`)),H=y(()=>yt.value??[]),Ot=y(()=>H.value.filter(e=>e.assignmentLocked).length),kt=y(()=>[{key:`hideCameraBound`,label:N(`views.sensors.hide_camera_bound`),description:N(`views.sensors.hide_camera_bound_hint`),badge:Ot.value?String(Ot.value):void 0,toggle:!0,toggleState:I.value.sensors.hideCameraBound,onClick:()=>I.value.sensors.hideCameraBound=!I.value.sensors.hideCameraBound}]),At=y(()=>(xt.value?.result??[]).map(e=>({label:e.name,value:e._id}))),U=y(()=>{let e=z.value.toLowerCase().trim();return H.value.map(e=>({sensor:e,label:e.displayName||e.name,typeLabel:N(`components.camera_options.sensor_type_${e.type}`),pluginLabel:e.virtual?N(`views.sensors.owner_virtual`):e.pluginName,assignedLabel:e.assignedCameraIds.map(e=>At.value.find(t=>t.value===e)?.label).filter(Boolean).join(`, `)})).filter(e=>!I.value.sensors.hideCameraBound||!e.sensor.assignmentLocked).filter(t=>!e||[t.label,t.typeLabel,t.pluginLabel,t.assignedLabel].some(t=>t.toLowerCase().includes(e))).sort((e,t)=>e.label.localeCompare(t.label))}),W=y(()=>B.value?U.value:U.value.filter(e=>!e.sensor.hidden)),G=y(()=>U.value.filter(e=>e.sensor.hidden).length),K=y(()=>I.value.sensors.view),jt=y(()=>new Map(L.value.map(e=>[e.id,e]))),{selectionMode:q,selectedIds:J,selectedItems:Y,allSelected:Mt,bulkBusy:X,enterSelectionMode:Nt,exitSelectionMode:Pt,toggleSelectAll:Ft,toggleSelection:It}=E(()=>W.value,e=>e.sensor.id),Lt=y(()=>Y.value.filter(e=>$(e.sensor)));function Rt(){I.value.sensors.view=K.value===`cards`?`table`:`cards`}function Z(e){let t=jt.value.get(e.id),r=n=>t?t.getProperty(n):e.properties?.[n];switch(e.type){case n.Light:case n.Switch:return!!r(`on`);case n.Siren:return!!r(`active`);case n.Doorbell:return!!r(`ring`);case n.Garage:case n.Lock:return r(`currentState`)===0;case n.SecuritySystem:return r(`currentState`)===4;case n.Battery:return!!r(`low`);default:return k.has(String(e.type))&&!!r(`detected`)}}function Q(e){return e.sensor.hidden?`opacity-50`:``}function $(e){return e.virtual||!e.connected}function zt(e){if(q.value){It(e.sensor.id);return}!V.value||e.sensor.hidden||M.openComponentDialog(v,{data:{title:e.label,confirmText:N(`components.form.button.save`),contentProps:{sensor:e.sensor,cameraOptions:At.value}},onConfirm:async t=>{t&&await R({id:e.sensor.id,data:t})}})}function Bt(e){M.openComponentDialog(b,{data:{title:`${e.displayName||e.name} · ${N(`views.sensors.history`)}`,hideConfirmButton:!0,contentProps:{sensorId:e.id,sensorType:String(e.type)}}})}async function Vt(e,t){await R({id:e.id,data:{hidden:t}})}async function Ht(e,t){let n=[],r=0;X.value=!0;try{await Promise.all(e.map(async e=>{try{await t(e),r++}catch{n.push(e.label)}}))}finally{X.value=!1}return{done:r,failed:n}}function Ut(e,t,n){t.length&&vt.add({severity:`error`,summary:N(`views.sensors.bulk_failed`,{count:t.length}),detail:t.join(`, `),life:8e3}),e&&vt.add({severity:`success`,detail:N(n,{count:e}),life:5e3})}async function Wt(e){let{done:t,failed:n}=await Ht([...Y.value],t=>R({id:t.sensor.id,data:{hidden:e}}));Pt(),Ut(t,n,e?`views.sensors.hide_selected_done`:`views.sensors.unhide_selected_done`)}function Gt(){let e=[...Lt.value];M.openTextDialog({data:{title:N(`components.dialog.title.confirm`),contentText:N(`views.sensors.delete_selected_confirm`,{count:e.length}),confirmText:N(`components.form.button.remove`),confirmButtonProps:{severity:`danger`}},onConfirm:async()=>{let{done:t,failed:n}=await Ht(e,e=>wt({id:e.sensor.id}));Pt(),Ut(t,n,`views.sensors.delete_selected_done`)}})}function Kt(){M.openComponentDialog(D,{data:{title:N(`views.sensors.create_virtual`),confirmText:N(`components.form.button.save`),loading:Ct,contentProps:{}},onConfirm:async e=>{e&&await St({data:e})}})}function qt(e){M.openTextDialog({data:{title:N(`views.sensors.delete`),contentText:N(`views.sensors.delete_confirm`),confirmText:N(`components.form.button.remove`),loading:Tt,confirmButtonProps:{severity:`danger`}},onConfirm:async()=>{await wt({id:e.id})}})}return(e,n)=>{let re=Le,i=t,ue=se,de=Pe,pe=De,ge=ie,_e=Ee,ve=ze,a=ye,Se=r,c=le,h=fe,v=Ue,y=te,b=Fe,Te=Ne,T=Be,E=Ve,D=je,k=ae,A=ee,j=Oe,M=ke,vt=Me,F=he,I=me,L=ne;return s(),m(`div`,We,[_(P)?C(``,!0):(s(),m(`h1`,Ge,p(_(N)(`views.sensors.title`)),1)),S(ue,{position:`left`},{default:l(()=>[S(i,{severity:`secondary`,text:``,class:`cui-button p-2 text-color non-draggable-region`,onClick:n[0]||=t=>e.$router.push(`/menu`)},{icon:l(()=>[S(re,{class:`w-6 h-6`})]),_:1})]),_:1}),f(`div`,Ke,[S(_e,{class:`flex-1`},{default:l(()=>[S(pe,null,{default:l(()=>[S(de,{class:`w-4 h-4`})]),_:1}),S(ge,{modelValue:_(z),"onUpdate:modelValue":n[1]||=e=>Ce(z)?z.value=e:null,placeholder:_(N)(`views.sensors.search`),class:`w-full`},null,8,[`modelValue`,`placeholder`])]),_:1}),u((s(),x(i,{severity:`secondary`,outlined:``,class:`cui-button shrink-0`,onClick:n[2]||=e=>_(Dt)?.toggleMenu(e)},{icon:l(()=>[S(ve,{class:`w-4.5 h-4.5`})]),_:1})),[[L,{value:_(N)(`views.sensors.settings`)},void 0,{left:!0}]]),S(a,{ref_key:`menuRef`,ref:Dt,items:_(kt),"auto-hide":!1,popover:{pt:{root:{class:`w-[22rem]`},content:{class:`p-0! rounded-xl! overflow-hidden!`}}}},null,8,[`items`])]),_(bt)?(s(),m(`div`,qe,[S(Se,{"stroke-width":`5`,class:`w-[30px] h-[30px]`})])):_(U).length?_(K)===`cards`?(s(),m(`div`,Xe,[f(`div`,{class:`grid w-full gap-2`,style:w({gridTemplateColumns:`repeat(auto-fill, minmax(${_(P)?`100%`:`300px`}, 1fr))`})},[(s(!0),m(g,null,xe(_(W),e=>(s(),m(`div`,{key:e.sensor.id,class:`relative`},[_(q)?(s(),m(`div`,{key:0,class:`absolute inset-0 z-4 cursor-pointer`,onClick:t=>_(It)(e.sensor.id)},[f(`div`,Qe,[f(`div`,{class:d([`w-5 h-5 rounded-full border-2 flex items-center justify-center transition-colors`,_(J).has(e.sensor.id)?`bg-primary border-primary`:`bg-black/5 border-neutral-300 dark:bg-white/10 dark:border-neutral-500`])},[_(J).has(e.sensor.id)?(s(),x(h,{key:0,class:`w-3.5 h-3.5 text-white`})):C(``,!0)],2)])],8,Ze)):C(``,!0),S(k,{class:d([`cui-card h-full`,[Q(e),{"cursor-pointer":_(V)&&!e.sensor.hidden}]]),onClick:t=>zt(e)},{content:l(()=>[f(`div`,$e,[f(`div`,et,[(s(),x(we(_(Ie)(e.sensor.type)),{class:d([`w-6 h-6 shrink-0 transition-colors`,{"text-muted":!Z(e.sensor)}]),style:w(Z(e.sensor)?O:void 0)},null,8,[`class`,`style`])),f(`div`,tt,[f(`div`,nt,[f(`span`,rt,p(e.label),1),e.sensor.exposed?C(``,!0):u((s(),x(v,{key:0,class:`w-4 h-4 shrink-0 text-muted`},null,512)),[[L,_(N)(`views.sensors.not_exposed`)]])]),f(`span`,it,p(e.typeLabel)+` · `+p(e.pluginLabel),1)]),u(S(y,{class:`shrink-0`,style:w({background:e.sensor.connected?`green`:`gray`})},null,8,[`style`]),[[L,{value:e.sensor.connected?_(N)(`views.sensors.connected`):_(N)(`views.sensors.disconnected`)}]])]),f(`div`,at,[e.sensor.assignmentLocked?u((s(),x(b,{key:0,class:`w-3.5 h-3.5 shrink-0 text-muted`},null,512)),[[L,_(N)(`views.sensors.assigned_cameras_locked_hint`)]]):C(``,!0),f(`span`,{class:d([`text-xs truncate`,e.assignedLabel?`text-muted`:`text-muted italic`])},p(e.assignedLabel||_(N)(`views.sensors.unassigned`)),3),f(`div`,ot,[u((s(),x(i,{text:``,rounded:``,severity:`secondary`,class:`cui-icon-sm shrink-0`,onClick:o(t=>Bt(e.sensor),[`stop`])},{icon:l(()=>[S(Te,{width:`100%`,height:`100%`})]),_:1},8,[`onClick`])),[[L,_(N)(`views.sensors.history`),void 0,{left:!0}]]),_(V)?u((s(),x(i,{key:0,text:``,rounded:``,severity:`secondary`,class:`cui-icon-sm shrink-0`,onClick:o(t=>Vt(e.sensor,!e.sensor.hidden),[`stop`])},{icon:l(()=>[e.sensor.hidden?(s(),x(T,{key:0,width:`100%`,height:`100%`,class:`text-muted`})):(s(),x(E,{key:1,width:`100%`,height:`100%`,class:`text-muted`}))]),_:2},1032,[`onClick`])),[[L,e.sensor.hidden?_(N)(`views.sensors.unhide`):_(N)(`views.sensors.hide`),void 0,{left:!0}]]):C(``,!0),_(V)?u((s(),m(`span`,st,[S(i,{text:``,rounded:``,severity:`danger`,class:`cui-icon-sm`,disabled:!$(e.sensor),onClick:o(t=>qt(e.sensor),[`stop`])},{icon:l(()=>[S(D,{width:`100%`,height:`100%`})]),_:1},8,[`disabled`,`onClick`])])),[[L,$(e.sensor)?_(N)(`views.sensors.delete`):_(N)(`views.sensors.delete_connected`),void 0,{left:!0}]]):C(``,!0)])])])]),_:2},1032,[`class`,`onClick`])]))),128))],4),_(G)>0?(s(),m(`div`,ct,[S(i,{severity:`secondary`,class:`cui-button-medium`,label:_(B)?_(N)(`views.sensors.hide_hidden`):`${_(N)(`views.sensors.show_hidden`)} (${_(G)})`,onClick:n[3]||=e=>B.value=!_(B)},null,8,[`label`])])):C(``,!0)])):(s(),m(`div`,lt,[S(k,{class:`cui-card`},{content:l(()=>[S(vt,{value:_(W),"striped-rows":``,pt:Et,class:`w-full`,onRowClick:n[5]||=e=>zt(e.data)},{default:l(()=>[_(q)?(s(),x(j,{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:l(({data:e})=>[S(A,{"model-value":_(J).has(e.sensor.id),binary:``,size:`small`,onClick:n[4]||=o(()=>{},[`stop`]),"onUpdate:modelValue":t=>_(It)(e.sensor.id)},null,8,[`model-value`,`onUpdate:modelValue`])]),_:1})):C(``,!0),S(j,{header:``,"header-class":`p-2 pl-4 w-5 max-w-5`,class:`p-2 pl-4 w-5 max-w-5`},{body:l(({data:e})=>[f(`div`,ut,[u(S(y,{style:w({background:e.sensor.connected?`green`:`gray`})},null,8,[`style`]),[[L,{value:e.sensor.connected?_(N)(`views.sensors.connected`):_(N)(`views.sensors.disconnected`)}]])])]),_:1}),S(j,{field:`label`,header:_(N)(`views.sensors.name`),sortable:``,"header-class":`p-2`,class:`p-2 w-full min-w-[180px] max-w-0`},{body:l(({data:e})=>[f(`div`,{class:d([`flex items-center gap-2 min-w-0`,Q(e)])},[(s(),x(we(_(Ie)(e.sensor.type)),{class:d([`w-5 h-5 shrink-0 transition-colors`,{"text-muted":!Z(e.sensor)}]),style:w(Z(e.sensor)?O:void 0)},null,8,[`class`,`style`])),f(`div`,dt,[f(`div`,ft,[f(`span`,pt,p(e.label),1),e.sensor.exposed?C(``,!0):u((s(),x(v,{key:0,class:`w-4 h-4 shrink-0 text-muted`},null,512)),[[L,_(N)(`views.sensors.not_exposed`)]])]),_(P)?(s(),m(`span`,mt,p(e.typeLabel)+` · `+p(e.pluginLabel),1)):C(``,!0)])],2)]),_:1},8,[`header`]),_(P)?C(``,!0):(s(),x(j,{key:1,field:`typeLabel`,header:_(N)(`views.sensors.type`),sortable:``,"header-class":`p-2 whitespace-nowrap`,class:`p-2 whitespace-nowrap`},{body:l(({data:e})=>[f(`span`,{class:d([`text-xs text-muted whitespace-nowrap`,Q(e)])},p(e.typeLabel),3)]),_:1},8,[`header`])),_(P)?C(``,!0):(s(),x(j,{key:2,field:`pluginLabel`,header:_(N)(`views.sensors.plugin`),sortable:``,"header-class":`p-2 whitespace-nowrap`,class:`p-2 whitespace-nowrap`},{body:l(({data:e})=>[S(M,{label:e.pluginLabel,class:d([`text-xs whitespace-nowrap`,Q(e)])},null,8,[`label`,`class`])]),_:1},8,[`header`])),S(j,{field:`assignedLabel`,header:_(N)(`views.sensors.assigned_cameras`),sortable:``,"header-class":`p-2 whitespace-nowrap`,class:`p-2 min-w-[140px]`},{body:l(({data:e})=>[f(`div`,{class:d([`flex items-center gap-1 min-w-0`,Q(e)])},[e.sensor.assignmentLocked?u((s(),x(b,{key:0,class:`w-3.5 h-3.5 shrink-0 text-muted`},null,512)),[[L,_(N)(`views.sensors.assigned_cameras_locked_hint`)]]):C(``,!0),f(`span`,{class:d([`text-xs truncate`,e.assignedLabel?`text-muted`:`text-muted italic`])},p(e.assignedLabel||_(N)(`views.sensors.unassigned`)),3)],2)]),_:1},8,[`header`]),S(j,{header:``,"header-class":`p-2 pr-4 w-28`,class:`p-2 pr-4 w-28`},{body:l(({data:e})=>[f(`div`,ht,[u((s(),x(i,{text:``,rounded:``,severity:`secondary`,class:`cui-icon-sm shrink-0`,onClick:o(t=>Bt(e.sensor),[`stop`])},{icon:l(()=>[S(Te,{width:`100%`,height:`100%`})]),_:1},8,[`onClick`])),[[L,_(N)(`views.sensors.history`),void 0,{left:!0}]]),_(V)&&!e.sensor.hidden?u((s(),x(i,{key:0,text:``,rounded:``,severity:`secondary`,class:`cui-icon-sm shrink-0`,onClick:o(t=>Vt(e.sensor,!0),[`stop`])},{icon:l(()=>[S(E,{width:`100%`,height:`100%`,class:`text-muted`})]),_:1},8,[`onClick`])),[[L,_(N)(`views.sensors.hide`),void 0,{left:!0}]]):_(V)?u((s(),x(i,{key:1,text:``,rounded:``,severity:`secondary`,class:`cui-icon-sm shrink-0`,onClick:o(t=>Vt(e.sensor,!1),[`stop`])},{icon:l(()=>[S(T,{width:`100%`,height:`100%`,class:`text-muted`})]),_:1},8,[`onClick`])),[[L,_(N)(`views.sensors.unhide`),void 0,{left:!0}]]):C(``,!0),_(V)?u((s(),m(`span`,gt,[S(i,{text:``,rounded:``,severity:`danger`,class:`cui-icon-sm`,disabled:!$(e.sensor),onClick:o(t=>qt(e.sensor),[`stop`])},{icon:l(()=>[S(D,{width:`100%`,height:`100%`})]),_:1},8,[`disabled`,`onClick`])])),[[L,$(e.sensor)?_(N)(`views.sensors.delete`):_(N)(`views.sensors.delete_connected`),void 0,{left:!0}]]):C(``,!0)])]),_:1})]),_:1},8,[`value`]),_(G)>0?(s(),m(`div`,_t,[S(i,{severity:`secondary`,class:`cui-button-medium`,label:_(B)?_(N)(`views.sensors.hide_hidden`):`${_(N)(`views.sensors.show_hidden`)} (${_(G)})`,onClick:n[6]||=e=>B.value=!_(B)},null,8,[`label`])])):C(``,!0)]),_:1})])):(s(),m(`div`,Je,[S(c,{class:`w-12 h-12 text-muted`}),f(`span`,Ye,p(_(H).length?_(N)(`views.sensors.no_matches`):_(N)(`views.sensors.no_sensors`)),1)])),_(V)?(s(),x(I,{key:5,"force-visible":_(q)},{default:l(()=>[_(q)?(s(),m(g,{key:1},[S(F,{grouped:``,"tooltip-props":{value:e.$t(`components.form.tooltip.cancel_selection`)},"button-props":{severity:`secondary`},icon:_(Ae),"icon-props":{width:`100%`,height:`100%`},onClick:_(Pt)},null,8,[`tooltip-props`,`icon`,`onClick`]),S(F,{grouped:``,"tooltip-props":{value:e.$t(`components.form.tooltip.select_all`)},"button-props":{severity:_(Mt)?`primary`:`secondary`},icon:_(be),"icon-props":{width:`100%`,height:`100%`},onClick:_(Ft)},null,8,[`tooltip-props`,`button-props`,`icon`,`onClick`]),S(F,{grouped:``,"tooltip-props":{value:_(N)(`views.sensors.hide_selected`)},"button-props":{severity:`secondary`,disabled:!_(Y).length||_(X)},icon:_(Ve),"icon-props":{width:`100%`,height:`100%`},onClick:n[7]||=e=>Wt(!0)},null,8,[`tooltip-props`,`button-props`,`icon`]),S(F,{grouped:``,"tooltip-props":{value:_(N)(`views.sensors.unhide_selected`)},"button-props":{severity:`secondary`,disabled:!_(Y).length||_(X)},icon:_(Be),"icon-props":{width:`100%`,height:`100%`},onClick:n[8]||=e=>Wt(!1)},null,8,[`tooltip-props`,`button-props`,`icon`]),S(F,{grouped:``,"tooltip-props":{value:_(N)(`views.sensors.delete_selected`)},"button-props":{severity:`danger`,disabled:!_(Lt).length||_(X)},icon:_(je),"icon-props":{width:`100%`,height:`100%`},onClick:Gt},null,8,[`tooltip-props`,`button-props`,`icon`])],64)):(s(),m(g,{key:0},[_(W).length?(s(),x(F,{key:0,grouped:``,"tooltip-props":{value:_(N)(`views.sensors.select`)},"button-props":{severity:`secondary`},icon:_(ce),"icon-props":{width:`100%`,height:`100%`},onClick:_(Nt)},null,8,[`tooltip-props`,`icon`,`onClick`])):C(``,!0),S(F,{grouped:``,"tooltip-props":{value:_(K)===`cards`?_(N)(`views.sensors.view_table`):_(N)(`views.sensors.view_cards`)},"button-props":{severity:`secondary`},icon:_(K)===`cards`?_(He):_(oe),"icon-props":{width:`100%`,height:`100%`},onClick:Rt},null,8,[`tooltip-props`,`icon`]),S(F,{grouped:``,"tooltip-props":{value:_(N)(`views.sensors.create_virtual`)},"button-props":{class:`text-white`},icon:_(Re),"icon-props":{width:`30px`,height:`30px`},onClick:Kt},null,8,[`tooltip-props`,`icon`])],64))]),_:1},8,[`force-visible`])):C(``,!0)])}}}),[[`__scopeId`,`data-v-bec4b32c`]]);export{k as default};
@@ -0,0 +1 @@
1
+ import{Br as e,Kr as t,Mt as n,Ot as r,ai as i,ii as a,ui as o,xi as s}from"./vendor-cameraui-DojVuZ2L.js";import{B as c,Cn as l,Sn as u,Tn as d,_n as f,b as p,mn as m,on as h,vn as g,w as _,wn as v,yn as y}from"./api-Draww2tC.js";import{Fn as b,Gn as x,Ln as S,Nn as C,Tn as w,Xn as T,_r as E,an as D,br as O,cn as k,cr as A,en as j,gr as M,hn as N,in as P,jn as F,mr as I,on as L,pn as R,qn as z,sn as B,yr as V,zn as ee}from"./vendor-JQXDMBA-.js";import{p as H,u as U}from"./vendor-core-ZDcIKAw9.js";import{t as W}from"./back-filled-DUUGErMw.js";import{n as te,t as ne}from"./round-alt-arrow-left-bold-CwaLYdW5.js";var G={},K={class:`w-full h-full flex items-center justify-center`};function q(e,t){let n=r;return C(),k(`div`,K,[R(n,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])}var re=m(G,[[`render`,q]]),J={key:0},Y={key:1},X={class:`overflow-hidden w-full`},Z={class:`ml-2 flex flex-row items-center justify-between`},Q={class:`text-start flex-1`},ie={class:`text-sm font-bold max-w-100 truncate`},ae={key:0,class:`text-sm text-muted font-normal`},oe=m(N({__name:`CuiSubNavItem`,props:{label:{},to:{},description:{},icon:{},activeIcon:{}},setup(e){let{icon:t,activeIcon:r,label:i,description:a,to:o}=I(e);return(e,s)=>{let c=n,l=S(`RouterLink`);return C(),L(l,{to:M(o)},{default:T(({isExactActive:e})=>[R(c,{text:``,severity:`secondary`,class:E([`subnavitem-button w-full h-[120px] flex items-start justify-start p-6 bg-none text-color hover:!text-primary active:!text-primary focus:!text-primary rounded-none`,{"active !text-primary":e}]),fluid:``},{default:T(()=>[M(t)&&!e||!M(r)?(C(),k(`div`,J,[R(M(t),{class:`w-[24px] h-[24px]`})])):M(r)&&e?(C(),k(`div`,Y,[R(M(r),{class:`w-[24px] h-[24px]`})])):B(``,!0),D(`div`,X,[D(`div`,Z,[D(`div`,Q,[D(`div`,ie,O(M(i)),1),M(a)?(C(),k(`div`,ae,O(M(a)),1)):B(``,!0)])])])]),_:2},1032,[`class`])]),_:1},8,[`to`])}}}),[[`__scopeId`,`data-v-a5399c04`]]),$={CLOSED:0,EXPANDED:288},se=m(N({__name:`CuiSubNavbar`,setup(t,{expose:n}){let r=U(),{bus:a}=u(),{xlBreakpoint:o,mdBreakpoint:c}=f(),{bottombarHeight:l,subbarState:d,navbarState:m,topbarHeight:_}=g(),v=x(`subnavbarRef`),y=A(`closed`),S=P(()=>o.value?`opened`:y.value),T=P(()=>S.value===`closed`?$.CLOSED:$.EXPANDED),E=P(()=>p.find(e=>e.name===`Settings`).children.filter(e=>e.meta?.settingsBar&&h(e)));function D(){y.value=`closed`,a.emit({subbarState:`closed`})}function O(){w(()=>{let e=v.value?.querySelector(`.subnavitem-button.active`);e&&e.scrollIntoView({block:`center`,behavior:`smooth`})})}let N=s(O,100);return e(v,e=>{let t=e.target,n=t.closest(`#menu-icon`),r=t.closest(`#submenu-icon`),i=t.closest(`#navbar-icon`);!n&&!r&&!i&&D()}),i(v,()=>{N()}),z(d,e=>{e&&e!==y.value&&(y.value=e)},{immediate:!0}),z(r.currentRoute,(e,t)=>{e.path!==t.path&&D()}),z(m,e=>{e===`opened`&&c.value&&D()}),F(()=>{O()}),n({subnavbarState:S}),(e,t)=>{let n=oe;return C(),k(`nav`,{ref_key:`subnavbarRef`,ref:v,class:`cui-subnavbar fixed transition-all duration-200 overflow-x-hidden overflow-y-scroll md:!pl-0 pl-safe pb-safe w-full h-full flex flex-col`,style:V({width:`${M(T)}px`,borderRightWidth:M(S)===`opened`?`1px`:`0px`,paddingBottom:`calc(env(safe-area-inset-top, 0px) + env(safe-area-inset-bottom, 0px) + ${M(l)}px + ${M(_)}px)`})},[(C(!0),k(j,null,b(M(E),t=>(C(),L(n,{key:t.name,icon:t.meta.settingsBar.icon.default,"active-icon":t.meta.settingsBar.icon.active,to:t.path,label:e.$t(`navigation.${(t.meta?.name).toLowerCase()}`),description:e.$t(`navigation_description.${t.meta?.description}`),class:`cui-list-item !m-0 !p-0 shrink-0`,style:V({width:`${M($).EXPANDED}px`})},null,8,[`icon`,`active-icon`,`to`,`label`,`description`,`style`]))),128))],4)}}}),[[`__scopeId`,`data-v-dd32f99b`]]),ce={class:`font-semibold text-xl truncate`},le={class:`w-full h-full relative`},ue={key:0,class:`w-full flex flex-row h-[calc(40px+1rem)] py-2 items-center fixed z-2`},de={class:`relative z-2 page-title !m-0`},fe=N({__name:`Settings`,setup(e){let r=U(),i=l(),{bus:s}=u(),{isTouch:m}=y(),{mdBreakpoint:g,xlBreakpoint:b,smBreakpoint:w}=f(),j=_(),{routerLoading:N}=H(j),F=p.find(e=>e.name===`Settings`).children.filter(e=>h(e)&&e.meta?.settingsBar),I=x(`subnavbarRef`),G=x(`containerRef`),K=A(!0),q=P(()=>r.currentRoute.value.path===`/settings`),{isSwiping:J,direction:Y}=m.value?o(G,{threshold:50,onSwipeStart(e){let t=e.target;([`INPUT`,`TEXTAREA`,`SELECT`,`BUTTON`].includes(t.tagName)||t.closest(`.p-datatable`))&&(K.value=!1)},onSwipeEnd(){K.value=!0}}):a(G,{threshold:50,onSwipeStart(e){let t=e.target;([`INPUT`,`TEXTAREA`,`SELECT`,`BUTTON`].includes(t.tagName)||t.closest(`.p-datatable`))&&(K.value=!1)},onSwipeEnd(){K.value=!0}}),X=t(I),Z=P(()=>I.value?.subnavbarState??`closed`);function Q(){let e=Z.value===`opened`?`closed`:`opened`;s.emit({subbarState:e})}return z(w,e=>{if(!e&&q.value){let e=d().uiSettings.interface.selectedSettingsView;r.replace(`/settings/${v.includes(e)?e:`account`}`)}}),z([J,Y],()=>{if(J.value&&K.value&&!q.value){let e=F.findIndex(e=>e.path===r.currentRoute.value.path.split(`/settings/`)[1]);switch(Y.value){case`right`:{let t=F[e-1];t&&r.push({path:t.path})}break;case`left`:{let t=F[e+1];t&&r.push({path:t.path})}}}}),(e,t)=>{let r=c,a=W,o=n,s=se,l=ne,u=te,d=re,f=S(`RouterView`);return C(),k(`div`,null,[R(r,{position:`center`},{default:T(()=>[D(`span`,ce,O(e.$t(`views.settings.title_${e.$route.meta?.name}`)),1)]),_:1}),R(r,{position:`left`},{default:T(()=>[R(o,{severity:`secondary`,text:``,class:`cui-button p-2 text-color non-draggable-region`,onClick:t[0]||=t=>e.$router.push(M(q)?`/menu`:`/settings`)},{icon:T(()=>[R(a,{class:`w-6 h-6`})]),_:1})]),_:1}),M(w)?B(``,!0):(C(),L(s,{key:0,ref_key:`subnavbarRef`,ref:I,class:`z-4 min-w-0`},null,512)),D(`main`,{class:`relative w-full h-full`,style:V({paddingLeft:M(g)?`0px`:`${M(X).width.value}px`})},[D(`div`,le,[M(w)?B(``,!0):(C(),k(`div`,ue,[t[1]||=D(`div`,{class:`ml-2`},null,-1),M(b)?B(``,!0):(C(),L(o,{key:0,id:`submenu-icon`,severity:`secondary`,class:`mr-2 cui-icon-lg relative z-2`,text:``,rounded:``,onClick:Q},{icon:T(()=>[M(Z)===`opened`?(C(),L(l,{key:0,width:`100%`,height:`100%`})):(C(),L(u,{key:1,width:`100%`,height:`100%`}))]),_:1})),D(`h1`,de,O(e.$t(`views.settings.title_${e.$route.meta?.name}`)),1),t[2]||=D(`div`,{class:`gradient-blur rotate-180 !h-[70px]`},[D(`div`),D(`div`),D(`div`),D(`div`),D(`div`),D(`div`)],-1)])),D(`div`,{ref_key:`containerRef`,ref:G,class:E([`px-2 h-full w-full`,{"py-4":M(w),"pt-[calc(40px+2rem)] pb-2":!M(w)}])},[M(N)&&M(i).showRouterLoadingSub.value?(C(),L(d,{key:0,class:`w-full h-full relative overflow-x-hidden`})):(C(),L(f,{key:1},{default:T(({Component:e})=>[(C(),L(ee(e),{class:`h-full`}))]),_:1}))],2)])],4)])}}});export{fe as default};
@@ -0,0 +1 @@
1
+ import{t as e}from"./SettingsAccount-CN9Xcgt-.js";export{e as default};
@@ -0,0 +1 @@
1
+ import{Mr as e,Mt as t,Ot as n,Rt as r,k as i,z as a}from"./vendor-cameraui-DojVuZ2L.js";import{M as o,Mn as s,O as c,R as l,Yn as u,ar as d,dt as ee,g as f,h as p,i as m,jn as te,l as ne,mn as h,nn as re,nt as ie,ut as ae}from"./api-Draww2tC.js";import{Fn as oe,Gn as se,Nn as g,Xn as _,Zn as ce,an as v,b as le,bn as y,br as b,cn as x,cr as S,dr as ue,en as de,fn as fe,gr as C,hn as w,in as T,ir as E,jn as D,mr as O,on as k,pn as A,qt as j,rr as M,sn as N,v as P,wn as F,y as I,zn as pe}from"./vendor-JQXDMBA-.js";import{n as L,r as R}from"./vendor-zod-Dbq0fBXY.js";import{p as me}from"./vendor-core-ZDcIKAw9.js";import{K as he,L as ge,R as _e,S as ve,a as ye,s as be,u as z,z as xe}from"./vendor-primevue-C0acGg0Y.js";import{t as Se}from"./CuiDataTable-CQhCu0px.js";import{t as Ce}from"./CuiQRCode-B4ysluWR.js";import{t as B}from"./auth-9_Jjlsh0.js";var V={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function H(e,t){return g(),x(`svg`,V,[...t[0]||=[v(`path`,{fill:`currentColor`,d:`m17 7l-1.41 1.41L18.17 11H8v2h10.17l-2.58 2.58L17 17l5-5M4 5h8V3H4c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h8v-2H4z`},null,-1)]])}var we=E({name:`mdi-logout`,render:H}),U={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function W(e,t){return g(),x(`svg`,U,[...t[0]||=[v(`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=E({name:`mdi-key`,render:W}),G={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function K(e,t){return g(),x(`svg`,G,[...t[0]||=[v(`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=E({name:`mdi-cellphone`,render:K}),De={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function Oe(e,t){return g(),x(`svg`,De,[...t[0]||=[v(`path`,{fill:`currentColor`,d:`M22 18v4h-4v-3h-3v-3h-3l-2.26-2.26c-.55.17-1.13.26-1.74.26a6 6 0 0 1-6-6a6 6 0 0 1 6-6a6 6 0 0 1 6 6c0 .61-.09 1.19-.26 1.74zM7 5a2 2 0 0 0-2 2a2 2 0 0 0 2 2a2 2 0 0 0 2-2a2 2 0 0 0-2-2`},null,-1)]])}var ke=E({name:`mdi-key-variant`,render:Oe}),Ae={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function je(e,t){return g(),x(`svg`,Ae,[...t[0]||=[v(`path`,{fill:`currentColor`,d:`M4 6h16v10H4m16 2a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2H4c-1.11 0-2 .89-2 2v10a2 2 0 0 0 2 2H0v2h24v-2z`},null,-1)]])}var Me=E({name:`mdi-laptop`,render:je}),Ne={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function Pe(e,t){return g(),x(`svg`,Ne,[...t[0]||=[v(`path`,{fill:`currentColor`,d:`M21 17H3V5h18m0-2H3a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h5v2h8v-2h5a2 2 0 0 0 2-2V5a2 2 0 0 0-2-2`},null,-1)]])}var Fe=E({name:`mdi-television`,render:Pe}),Ie={class:`flex flex-col gap-6`},Le={class:`token-box`},Re={class:`token-value`},ze=h(w({__name:`ApiTokenCreated`,props:{token:{}},setup(n,{expose:i}){let a=n,o=d(),{t:s}=e(),{token:c}=O(a);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 i({onConfirm:u}),(e,n)=>{let i=xe,a=t,o=r;return g(),x(`div`,Ie,[A(i,{severity:`warn`},{default:_(()=>[fe(b(e.$t(`views.settings.api_tokens.created_warning`)),1)]),_:1}),v(`div`,Le,[v(`span`,Re,b(C(c)),1),ce((g(),k(a,{text:``,rounded:``,class:`cui-icon-md shrink-0`,onClick:l},{icon:_(()=>[A(C(ae),{width:`100%`,height:`100%`})]),_:1})),[[o,{value:e.$t(`components.form.button.copy`)}]])])])}}}),[[`__scopeId`,`data-v-591cfcb4`]]),Be={class:`flex flex-col gap-2 w-full`},Ve={for:`apiTokenName`,class:`cui-label`},He={key:0,class:`text-xs text-red-500`},Ue=w({__name:`CreateApiToken`,props:{existingNames:{}},setup(e,{expose:t}){let n=e,r=S(``),a=T(()=>n.existingNames.includes(r.value.trim()));return t({onConfirm:async()=>{let e=r.value.trim();return!e||a.value?null:e}}),(e,t)=>{let n=i;return g(),x(`div`,Be,[v(`label`,Ve,b(e.$t(`views.settings.api_tokens.name_label`)),1),A(n,{id:`apiTokenName`,modelValue:C(r),"onUpdate:modelValue":t[0]||=e=>M(r)?r.value=e:null,class:`w-full`,placeholder:e.$t(`views.settings.api_tokens.name_placeholder`),autofocus:``,invalid:C(a)},null,8,[`modelValue`,`placeholder`,`invalid`]),C(a)?(g(),x(`span`,He,b(e.$t(`views.settings.api_tokens.name_exists`)),1)):N(``,!0)])}}}),We={class:`flex flex-col gap-6`},Ge={class:`backup-codes-grid`},Ke=h(w({__name:`TwoFactorBackupCodes`,props:{backupCodes:{}},setup(e,{expose:t}){let{backupCodes:n}=O(e);async function r(){}return t({onConfirm:r}),(e,t)=>{let r=xe;return g(),x(`div`,We,[A(r,{severity:`warn`},{default:_(()=>[fe(b(e.$t(`views.settings.security.backup_warning`)),1)]),_:1}),v(`div`,Ge,[(g(!0),x(de,null,oe(C(n),e=>(g(),x(`span`,{key:e,class:`backup-code`},b(e),1))),128))])])}}}),[[`__scopeId`,`data-v-0761a2ae`]]),qe={class:`flex flex-col gap-6`},Je={class:`text-muted`},Ye={class:`flex flex-col gap-2 justify-center items-center mt-5`},Xe={class:`cui-label`},Ze=w({__name:`TwoFactorDisable`,setup(t,{expose:n}){let r=new B,i=d(),{t:a}=e(),o=y(`dialogRefProps`),{mutateAsync:s,isPending:c}=r.disable2FAQuery(),l=S(``),u=T(()=>!!(o.loading?.value||c.value)),ee=T(()=>l.value.length<6);async function f(){if(l.value.length<6)return null;try{await s({code:l.value}),i.add({severity:`success`,detail:a(`views.settings.security.2fa_disabled_success`),life:3e3})}catch(e){return i.add({severity:`error`,detail:e,life:3e3}),null}}return n({isLoading:u,isDisabled:ee,onConfirm:f}),(e,t)=>{let n=z;return g(),x(`div`,qe,[v(`p`,Je,b(e.$t(`views.settings.security.disable_confirm`)),1),v(`div`,Ye,[v(`label`,Xe,b(e.$t(`views.settings.security.enter_code`)),1),A(n,{modelValue:C(l),"onUpdate:modelValue":t[0]||=e=>M(l)?l.value=e:null,length:6,"integer-only":``,class:`justify-center`},null,8,[`modelValue`])])])}}}),q={class:`flex flex-col gap-6`},J={class:`text-muted`},Y={class:`flex flex-col gap-2 justify-center items-center mt-5`},X={class:`cui-label`},Qe=w({__name:`TwoFactorRegenerate`,props:{onBackupCodesGenerated:{type:Function}},setup(t,{expose:n}){let r=new B,i=t,a=d(),{t:o}=e(),s=y(`dialogRefProps`),{mutateAsync:c,isPending:l}=r.regenerateBackupCodesQuery(),u=S(``),ee=T(()=>!!(s.loading?.value||l.value)),f=T(()=>u.value.length<6);async function p(){if(u.value.length<6)return null;try{let e=await c({code:u.value});a.add({severity:`success`,detail:o(`views.settings.security.backup_regenerated`),life:3e3}),i.onBackupCodesGenerated&&i.onBackupCodesGenerated(e.backupCodes)}catch(e){return a.add({severity:`error`,detail:e,life:3e3}),null}}return n({isLoading:ee,isDisabled:f,onConfirm:p}),(e,t)=>{let n=z;return g(),x(`div`,q,[v(`p`,J,b(e.$t(`views.settings.security.regenerate_confirm`)),1),v(`div`,Y,[v(`label`,X,b(e.$t(`views.settings.security.enter_code`)),1),A(n,{modelValue:C(u),"onUpdate:modelValue":t[0]||=e=>M(u)?u.value=e:null,length:6,"integer-only":``,class:`justify-center`},null,8,[`modelValue`])])])}}}),$e={class:`flex flex-col w-full gap-6`},et={class:`relative`},tt={class:`image-upload rounded-full z-1`},nt={for:`file-input`},rt={class:`card-title`},it={class:`flex flex-col gap-6`},at={for:`username`,class:`cui-label`},ot={class:`card-title`},st={class:`flex flex-col gap-6`},ct={for:`password`,class:`cui-label`},lt={for:`passwordConfirm`,class:`cui-label`},ut={class:`relative`},dt={class:`image-upload rounded-full z-1`},ft={for:`file-input`},pt={class:`card-title`},mt={class:`flex flex-col gap-6`},ht={class:`flex flex-col field-gap`},gt={for:`username`,class:`cui-label`},_t={class:`flex flex-row items-end justify-end`},vt={class:`card-title`},yt={for:`password`,class:`cui-label`},bt={for:`passwordConfirm`,class:`cui-label`},xt={class:`flex flex-row items-end justify-end`},St={class:`card-title`},Ct={key:0,class:`flex justify-center py-6`},wt={key:`initial`,class:`flex flex-col gap-6`},Tt={class:`flex flex-col gap-1`},Et={class:`tfa-row-title`},Dt={class:`tfa-row-description`},Ot={key:`loading`,class:`flex flex-col items-center py-8 gap-3`},kt={class:`text-sm text-muted`},At={key:`setup`,class:`tfa-setup`},jt={class:`tfa-setup-qr`},Mt={class:`text-sm text-muted text-center mt-3`},Nt={class:`flex flex-col gap-5 flex-1`},Pt={class:`flex flex-col field-gap`},Ft={class:`cui-label`},It={class:`flex flex-col field-gap`},Lt={class:`cui-label`},Rt={class:`flex gap-2 justify-end`},zt={key:`enabled`,class:`flex flex-col gap-6`},Bt={class:`tfa-row tfa-row-enabled`},Vt={class:`tfa-status-icon`},Ht={class:`tfa-row-content`},Ut={class:`tfa-row-title`},Wt={key:0,class:`tfa-backup-info`},Gt={class:`flex gap-2 justify-end`},Kt={key:0},qt={class:`card-title`},Jt={class:`flex items-center gap-4`},Yt={class:`flex flex-col field-switch-gap min-w-0`},Xt={class:`text-sm font-bold text-color`},Zt={class:`card-title`},Qt={class:`flex flex-col gap-6`},$t={class:`text-sm text-muted`},en={class:`text-muted text-sm`},tn={class:`flex items-center gap-3`},nn={class:`flex flex-col min-w-0`},rn={class:`text-sm font-semibold text-color truncate`},an={class:`text-xs text-muted truncate font-mono`},on={class:`text-xs text-muted`},sn={class:`flex flex-row items-end justify-end gap-2`},cn={class:`card-title`},ln={class:`flex flex-col gap-6`},un={class:`text-muted text-sm`},dn={class:`flex items-center gap-3`},fn={class:`flex flex-col min-w-0`},pn={class:`flex items-center gap-2`},mn={class:`text-sm font-semibold text-color truncate`},hn={class:`text-xs text-muted truncate`},gn={key:0,class:`flex flex-row items-end justify-end gap-2`},Z=h(w({__name:`SettingsAccount`,props:{firststeps:{type:Boolean}},setup(h,{expose:oe}){let y=new B,w=h,E=ie(),V=d(),{t:H}=e(),{firststeps:U}=O(w),W=f(),{user:G}=me(W),{data:K,isLoading:De}=y.toggleQueryActivator(`get2FAStatusQuery`,!U.value).get2FAStatusQuery(),{mutateAsync:Oe,isPending:Ae}=y.setup2FAQuery(),{mutateAsync:je,isPending:Ne}=y.enable2FAQuery(),{data:Pe,isBusy:Ie}=y.toggleQueryActivator(`listSessionsQuery`,!U.value).listSessionsQuery({page:1,pageSize:-1}),{mutateAsync:Le}=y.revokeSessionQuery(),{mutateAsync:Re}=y.revokeOtherSessionsQuery(),{data:Be,isBusy:Ve}=y.toggleQueryActivator(`listApiTokensQuery`,!U.value).listApiTokensQuery(),{mutateAsync:He,isPending:We}=y.createApiTokenQuery(),{mutateAsync:Ge}=y.revokeApiTokenQuery(),qe=L({password:c,passwordConfirm:R().min(1)}).refine(e=>e.password===e.passwordConfirm,{message:`Passwords do not match`,path:[`passwordConfirm`]}),Je=L({username:R().min(1),password:c,passwordConfirm:R().min(1)}).refine(e=>e.password===e.passwordConfirm,{message:`Passwords do not match`,path:[`passwordConfirm`]}),Ye=se(`formRef`),Xe=se(`passwordFormRef`),q=ue(),J=S(`avatar`),Y=S(G.value?.username??``),X=S(!1),Z=S(!1),Q=S(null),$=S(``),_n=S(null),vn=S(!1),yn=S(null);S(!1);let bn=S(!1),xn=S(!1),Sn=T(()=>!1),Cn={bodyRow:{class:`text-sm text-secondary`},column:{columnTitle:{class:`text-sm`}}},wn=T(()=>(Pe.value??[]).filter(e=>!e.is_current).length),Tn=T(()=>!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`?Fe:e===`native`?Ee:Me}async function On(e){_n.value=e;try{await Le({id:e})}catch(e){V.add({severity:`error`,detail:e,life:3e3})}finally{_n.value=null}}function kn(){E.openComponentDialog(Ue,{data:{title:H(`views.settings.api_tokens.create`),confirmText:H(`views.settings.api_tokens.create_confirm`),contentProps:{existingNames:(Be.value??[]).map(e=>e.name)}},onConfirm:async e=>{if(e)try{An((await He({name:e})).token)}catch(e){V.add({severity:`error`,detail:e,life:3e3})}}})}function An(e){E.openComponentDialog(ze,{data:{title:H(`views.settings.api_tokens.created_title`),confirmText:H(`components.form.button.close`),hideCancelButton:!0,contentProps:{token:e}}})}function jn(e){E.openTextDialog({data:{title:H(`views.settings.api_tokens.revoke_title`),contentText:H(`views.settings.api_tokens.revoke_confirm`,{name:e.name}),confirmText:H(`views.settings.api_tokens.revoke`),confirmButtonProps:{severity:`danger`}},onConfirm:async()=>{yn.value=e.id;try{await Ge({id:e.id})}catch(e){V.add({severity:`error`,detail:e,life:3e3})}finally{yn.value=null}}})}function Mn(){E.openTextDialog({data:{title:H(`views.settings.active_sessions.revoke_others_title`),contentText:H(`views.settings.active_sessions.revoke_others_confirm`,{count:wn.value}),confirmText:H(`views.settings.active_sessions.revoke`),confirmButtonProps:{severity:`danger`}},onConfirm:async()=>{vn.value=!0;try{await Re()}catch(e){V.add({severity:`error`,detail:e,life:3e3})}finally{vn.value=!1}}})}async function Nn(){try{Q.value=await Oe()}catch(e){V.add({severity:`error`,detail:e,life:3e3})}}function Pn(){Q.value=null,$.value=``}async function Fn(){try{let e=await je({code:$.value});Q.value=null,$.value=``,V.add({severity:`success`,detail:H(`views.settings.security.2fa_enabled_success`),life:3e3}),Rn(e.backupCodes)}catch(e){V.add({severity:`error`,detail:e,life:3e3})}}function In(){E.openComponentDialog(Ze,{data:{title:H(`views.settings.security.disable_2fa`),confirmText:H(`views.settings.security.disable_2fa`),confirmButtonProps:{severity:`danger`},contentProps:{}}})}function Ln(){E.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){E.openComponentDialog(Ke,{data:{title:H(`views.settings.security.backup_codes`),confirmText:H(`components.form.button.close`),hideCancelButton:!0,contentProps:{backupCodes:e}}})}async function zn(e){let t=e.target?.files;q.value=t?.[0],J.value=await 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}),Xe.value?.resetForm(),W.logout()}catch(e){V.add({severity:`error`,detail:e,life:3e3})}Z.value=!1}async function Hn(){}async function Un(e){if(e!==bn.value){if(e){V.add({severity:`info`,detail:H(`views.settings.biometric.enable_hint`),life:3e3});return}xn.value=!0;try{await o(u()),bn.value=!1,V.add({severity:`success`,detail:H(`views.settings.biometric.cleared`),life:3e3})}finally{xn.value=!1}}}return D(()=>{Hn()}),oe({formRef:Ye}),(e,o)=>{let c=re,u=i,d=_e,f=a,p=be,m=t,h=n,ie=Ce,oe=ee,se=ge,y=z,S=te,ue=Te,w=s,T=xe,E=he,D=ve,O=l,L=Se,R=ye,me=we,B=r;return g(),x(`div`,null,[v(`div`,$e,[C(U)?(g(),k(C(le),{key:0,ref_key:`formRef`,ref:Ye,"validation-schema":C(Je),class:`flex flex-col w-full gap-6`},{default:_(()=>[v(`div`,et,[v(`div`,tt,[v(`label`,nt,[A(c,{src:C(J),size:64,"show-border":!1,class:`cursor-pointer`},null,8,[`src`]),v(`input`,{id:`file-input`,type:`file`,class:`hidden`,accept:`image/png,image/jpeg,image/jpg`,onChange:o[0]||=e=>zn(e)},null,32)])]),v(`span`,rt,b(e.$t(`views.settings.profile`)),1),A(f,{class:`cui-card`},{content:_(()=>[v(`div`,it,[A(C(I),{"model-value":C(G)?.username,name:`username`,as:`div`,class:`flex flex-col field-gap`},{default:_(({field:t,errors:n})=>[v(`label`,at,b(e.$t(`components.form.label.username`)),1),A(d,null,{default:_(()=>[A(u,F(t,{invalid:n.length>0,type:`text`}),null,16,[`invalid`])]),_:2},1024),A(j,{name:`fade`},{default:_(()=>[A(C(P),{name:`username`,class:`cui-input-error`})]),_:1})]),_:1},8,[`model-value`])])]),_:1})]),v(`div`,null,[v(`span`,ot,b(e.$t(`views.settings.password`)),1),A(f,{class:`cui-card`},{content:_(()=>[v(`div`,st,[A(C(I),{name:`password`,as:`div`,class:`flex flex-col field-gap`},{default:_(({field:t,errors:n})=>[v(`label`,ct,b(e.$t(`components.form.label.new_password`)),1),A(d,null,{default:_(()=>[A(p,F({invalid:n.length>0},t,{feedback:!1,"toggle-mask":``}),null,16,[`invalid`])]),_:2},1024),A(j,{name:`fade`},{default:_(()=>[A(C(P),{name:`password`,class:`cui-input-error`})]),_:1})]),_:1}),A(C(I),{name:`passwordConfirm`,as:`div`,class:`flex flex-col field-gap`},{default:_(({field:t,errors:n})=>[v(`label`,lt,b(e.$t(`components.form.label.new_password_confirm`)),1),A(d,null,{default:_(()=>[A(p,F({invalid:n.length>0},t,{feedback:!1,"toggle-mask":``}),null,16,[`invalid`])]),_:2},1024),A(j,{name:`fade`},{default:_(()=>[A(C(P),{name:`passwordConfirm`,class:`cui-input-error`})]),_:1})]),_:1})])]),_:1})])]),_:1},8,[`validation-schema`])):(g(),x(de,{key:1},[v(`div`,ut,[v(`div`,dt,[v(`label`,ft,[A(c,{src:C(J),size:64,"show-border":!1,class:`cursor-pointer`},null,8,[`src`]),v(`input`,{id:`file-input`,type:`file`,class:`hidden`,accept:`image/png,image/jpeg,image/jpg`,onChange:o[1]||=e=>zn(e)},null,32)])]),v(`span`,pt,b(e.$t(`views.settings.profile`)),1),A(f,{class:`cui-card`},{content:_(()=>[v(`div`,mt,[v(`div`,ht,[v(`label`,gt,b(e.$t(`components.form.label.username`)),1),A(d,null,{default:_(()=>[A(u,{modelValue:C(Y),"onUpdate:modelValue":o[2]||=e=>M(Y)?Y.value=e:null,loading:C(X),type:`text`},null,8,[`modelValue`,`loading`])]),_:1})]),v(`div`,_t,[A(m,{loading:C(X),class:`cui-button-medium`,label:e.$t(`components.form.button.update_profile`),onClick:Bn},null,8,[`loading`,`label`])])])]),_:1})]),v(`div`,null,[v(`span`,vt,b(e.$t(`views.settings.password`)),1),A(f,{class:`cui-card`},{content:_(()=>[A(C(le),{ref_key:`passwordFormRef`,ref:Xe,"validation-schema":C(qe),class:`flex flex-col gap-6`,onSubmit:o[3]||=e=>Vn(e)},{default:_(()=>[A(C(I),{name:`password`,as:`div`,class:`flex flex-col field-gap`},{default:_(({field:t,errors:n})=>[v(`label`,yt,b(e.$t(`components.form.label.new_password`)),1),A(d,null,{default:_(()=>[A(p,F({invalid:n.length>0},t,{loading:C(Z),feedback:!1,"toggle-mask":``}),null,16,[`invalid`,`loading`])]),_:2},1024),A(j,{name:`fade`},{default:_(()=>[A(C(P),{name:`password`,class:`cui-input-error`})]),_:1})]),_:1}),A(C(I),{name:`passwordConfirm`,as:`div`,class:`flex flex-col field-gap`},{default:_(({field:t,errors:n})=>[v(`label`,bt,b(e.$t(`components.form.label.new_password_confirm`)),1),A(d,null,{default:_(()=>[A(p,F({invalid:n.length>0},t,{loading:C(Z),feedback:!1,"toggle-mask":``}),null,16,[`invalid`,`loading`])]),_:2},1024),A(j,{name:`fade`},{default:_(()=>[A(C(P),{name:`passwordConfirm`,class:`cui-input-error`})]),_:1})]),_:1}),v(`div`,xt,[A(m,{type:`submit`,loading:C(Z),class:`cui-button-medium`,label:e.$t(`components.form.button.change_password`)},null,8,[`loading`,`label`])])]),_:1},8,[`validation-schema`])]),_:1})]),v(`div`,null,[v(`span`,St,b(e.$t(`views.settings.security.title`)),1),A(f,{class:`cui-card`},{content:_(()=>[C(De)?(g(),x(`div`,Ct,[A(h,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):(g(),k(j,{key:1,name:`fade`,mode:`out-in`},{default:_(()=>[!C(K)?.enabled&&!C(Q)&&!C(Ae)?(g(),x(`div`,wt,[v(`div`,Tt,[v(`span`,Et,b(e.$t(`views.settings.security.2fa_title`)),1),v(`span`,Dt,b(e.$t(`views.settings.security.2fa_description`)),1)]),A(m,{class:`cui-button-medium ml-auto`,label:e.$t(`views.settings.security.setup_2fa`),onClick:Nn},null,8,[`label`])])):!C(K)?.enabled&&C(Ae)?(g(),x(`div`,Ot,[A(h,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`}),v(`span`,kt,b(e.$t(`views.settings.security.generating_qr`)),1)])):!C(K)?.enabled&&C(Q)?(g(),x(`div`,At,[v(`div`,jt,[A(ie,{value:C(Tn),size:160,"logo-size":36},null,8,[`value`]),v(`p`,Mt,b(e.$t(`views.settings.security.scan_qr`)),1)]),v(`div`,Nt,[v(`div`,Pt,[v(`label`,Ft,b(e.$t(`views.settings.security.manual_entry`)),1),A(d,null,{default:_(()=>[A(u,{"model-value":C(Q)?.secret,readonly:``,class:`font-mono text-sm`},null,8,[`model-value`]),A(se,null,{default:_(()=>[A(oe,{"action-text":e.$t(`components.form.tooltip.copied`),icon:C(ae),"button-props":{severity:`secondary`,text:!0},onAction:En},null,8,[`action-text`,`icon`])]),_:1})]),_:1})]),v(`div`,It,[v(`label`,Lt,b(e.$t(`views.settings.security.enter_code`)),1),A(y,{modelValue:C($),"onUpdate:modelValue":o[4]||=e=>M($)?$.value=e:null,length:6,"integer-only":``},null,8,[`modelValue`])]),v(`div`,Rt,[A(m,{severity:`secondary`,class:`cui-button-medium`,label:e.$t(`components.form.button.cancel`),onClick:Pn},null,8,[`label`]),A(m,{class:`cui-button-medium`,label:e.$t(`views.settings.security.enable_2fa`),loading:C(Ne),disabled:C($).length<6,onClick:Fn},null,8,[`label`,`loading`,`disabled`])])])])):(g(),x(`div`,zt,[v(`div`,Bt,[v(`div`,Vt,[A(S,{class:`w-5 h-5`})]),v(`div`,Ht,[v(`span`,Ut,b(e.$t(`views.settings.security.2fa_enabled`)),1)])]),C(K)?.backupCodesCount===void 0?N(``,!0):(g(),x(`div`,Wt,[A(ue,{class:`w-4 h-4`}),v(`span`,null,b(e.$t(`views.settings.security.backup_codes_remaining`,{count:C(K).backupCodesCount})),1)])),v(`div`,Gt,[A(m,{severity:`secondary`,class:`cui-button-medium`,label:e.$t(`views.settings.security.regenerate_backup`),onClick:Ln},null,8,[`label`]),A(m,{severity:`danger`,class:`cui-button-medium`,label:e.$t(`views.settings.security.disable_2fa`),onClick:In},null,8,[`label`])])]))]),_:1}))]),_:1})]),C(Sn)?(g(),x(`div`,Kt,[v(`span`,qt,b(e.$t(`views.settings.biometric.title`)),1),A(f,{class:`cui-card`},{content:_(()=>[v(`div`,Jt,[A(w,{class:`shrink-0 w-6 h-6 text-color`}),v(`div`,Yt,[v(`span`,Xt,b(e.$t(`views.settings.biometric.label`)),1),A(T,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:_(()=>[fe(b(e.$t(`views.settings.biometric.description`)),1)]),_:1})]),A(E,{"model-value":C(bn),loading:C(xn),class:`ml-auto shrink-0`,"onUpdate:modelValue":Un},null,8,[`model-value`,`loading`])])]),_:1})])):N(``,!0),v(`div`,null,[v(`span`,Zt,b(e.$t(`views.settings.api_tokens.title`)),1),A(f,{class:`cui-card`},{content:_(()=>[v(`div`,Qt,[v(`span`,$t,b(e.$t(`views.settings.api_tokens.info`)),1),A(L,{value:C(Be)??[],"data-key":`id`,loading:C(Ve),pt:Cn,"striped-rows":``,scrollable:``},{loading:_(()=>[A(h,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})]),empty:_(()=>[v(`span`,en,b(e.$t(`views.settings.api_tokens.empty`)),1)]),default:_(()=>[A(D,{field:`name`,header:e.$t(`views.settings.api_tokens.name_label`),"header-class":`p-2 h-7 min-h-7 max-h-7`,class:`p-2 h-7 min-h-7 max-h-7`},{body:_(({data:e})=>[v(`div`,tn,[A(C(ke),{class:`cui-session-icon`}),v(`div`,nn,[v(`span`,rn,b(e.name),1),v(`span`,an,b(e.token_hint),1)])])]),_:1},8,[`header`]),A(D,{field:`last_seen_at`,header:e.$t(`views.settings.api_tokens.last_used`),"header-class":`p-2 h-7 min-h-7 max-h-7`,class:`p-2 h-7 min-h-7 max-h-7`},{body:_(({data:t})=>[v(`span`,on,b(t.last_seen_at>t.created_at?C(ne)(t.last_seen_at):e.$t(`views.settings.api_tokens.never`)),1)]),_:1},8,[`header`]),A(D,{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:_(({data:t})=>[ce((g(),k(m,{severity:`danger`,text:``,rounded:``,class:`cui-icon-md`,loading:C(yn)===t.id,onClick:e=>jn(t)},{icon:_(()=>[A(O,{width:`100%`,height:`100%`})]),_:1},8,[`loading`,`onClick`])),[[B,{value:e.$t(`views.settings.api_tokens.revoke`)}]])]),_:1})]),_:1},8,[`value`,`loading`]),v(`div`,sn,[A(m,{loading:C(We),class:`cui-button-medium mr-4 md:mr-0`,label:e.$t(`views.settings.api_tokens.create`),onClick:kn},null,8,[`loading`,`label`])])])]),_:1})]),v(`div`,null,[v(`span`,cn,b(e.$t(`views.settings.active_sessions.title`)),1),A(f,{class:`cui-card`},{content:_(()=>[v(`div`,ln,[A(L,{value:C(Pe)??[],"data-key":`id`,loading:C(Ie),pt:Cn,"striped-rows":``,scrollable:``},{loading:_(()=>[A(h,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})]),empty:_(()=>[v(`span`,un,b(e.$t(`views.settings.active_sessions.empty`)),1)]),default:_(()=>[A(D,{field:`device`,header:e.$t(`views.settings.title_device`),"header-class":`p-2 h-7 min-h-7 max-h-7`,class:`p-2 h-7 min-h-7 max-h-7`},{body:_(({data:t})=>[v(`div`,dn,[(g(),k(pe(Dn(t.device.kind)),{class:`cui-session-icon`})),v(`div`,fn,[v(`div`,pn,[v(`span`,mn,b(t.device.name),1),t.is_current?(g(),k(R,{key:0,severity:`success`,value:e.$t(`views.settings.active_sessions.this_device`),class:`cui-session-tag`},null,8,[`value`])):N(``,!0)]),v(`span`,hn,b(t.device.ip||`—`),1)])])]),_:1},8,[`header`]),A(D,{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:_(({data:t})=>[t.is_current?N(``,!0):ce((g(),k(m,{key:0,severity:`danger`,text:``,rounded:``,class:`cui-icon-md`,loading:C(_n)===t.id,onClick:e=>On(t.id)},{icon:_(()=>[A(me,{width:`100%`,height:`100%`})]),_:1},8,[`loading`,`onClick`])),[[B,{value:e.$t(`views.settings.active_sessions.revoke`)}]])]),_:1})]),_:1},8,[`value`,`loading`]),C(wn)>0?(g(),x(`div`,gn,[A(m,{loading:C(vn),class:`cui-button-medium mr-4 md:mr-0`,label:e.$t(`views.settings.active_sessions.revoke_all_others`,{count:C(wn)}),onClick:Mn},null,8,[`loading`,`label`])])):N(``,!0)])]),_:1})])],64))])])}}}),[[`__scopeId`,`data-v-de51a7b1`]]);export{Z as t};
@@ -0,0 +1 @@
1
+ import{t as e}from"./SettingsAppearance-WQtOksbk.js";export{e as default};
@@ -0,0 +1 @@
1
+ import{Mr as e,Qi as t,z as n}from"./vendor-cameraui-DojVuZ2L.js";import{Tn as r,_ as i,on as ee,tr as a,v as o,wn as s}from"./api-Draww2tC.js";import{Mn as te,Nn as c,Xn as l,an as u,br as d,cn as f,cr as p,fn as m,gr as h,hn as ne,in as g,pn as _,rr as v,sn as y}from"./vendor-JQXDMBA-.js";import{p as b}from"./vendor-core-ZDcIKAw9.js";import{K as re,j as ie,z as ae}from"./vendor-primevue-C0acGg0Y.js";import{t as oe}from"./theme-Dr_YO8-0.js";var se={class:`flex flex-col w-full gap-6`},x={key:0},S={class:`card-title`},C={class:`flex flex-col gap-6`},w={class:`flex flex-col field-gap`},T={class:`cui-label`},E={class:`w-full flex flex-col gap-2`},D={class:`flex flex-col field-gap cui-toggle-switch`},O={class:`flex items-center gap-4`},k={class:`flex flex-col field-switch-gap`},A={class:`cui-label-switch`},j={key:1},M={class:`card-title`},N={class:`flex flex-col gap-6`},P={class:`flex flex-col field-gap`},F={class:`cui-label`},I={class:`card-title`},L={class:`flex flex-col gap-6`},R={class:`flex flex-col field-gap`},z={class:`cui-label`},B={key:0,class:`flex flex-col field-gap`},V={class:`cui-label`},H={class:`flex flex-col field-gap`},U={class:`cui-label`},W={class:`w-full flex flex-col gap-2`},G={class:`flex flex-col field-gap cui-toggle-switch`},K={class:`flex items-center gap-4`},ce={class:`flex flex-col field-switch-gap`},le={class:`cui-label-switch`},ue={class:`card-title`},de={class:`w-full flex flex-col gap-2`},fe={class:`flex flex-col field-gap cui-toggle-switch`},pe={class:`flex items-center gap-4`},me={class:`flex flex-col field-switch-gap`},he={class:`cui-label-switch`},ge={class:`flex flex-col field-gap cui-toggle-switch`},_e={class:`flex items-center gap-4`},ve={class:`flex flex-col field-switch-gap`},ye={class:`cui-label-switch`},q=ne({__name:`SettingsAppearance`,setup(ne){let{t:q}=e(),be=i(),{language:J,languageOptions:xe}=b(be),Se=oe(),{colors:Ce,theme:Y,autoMode:X}=b(Se),we=r(),{uiSettings:Z}=b(we),Q=p(t.isRecording()),$=p(t.isDebug()),Te=[5,10,15,25,50,100],Ee=g(()=>o().map(e=>({label:q(`navigation.${e.meta.name}`),value:e.path}))),De=g(()=>s.map(e=>({label:q(`navigation.${e}`),value:e}))),Oe=t.onChange(()=>{Q.value=t.isRecording(),$.value=t.isDebug()});function ke(e){t.setRecording(e),e||t.clear()}function Ae(e){t.setDebug(e)}return te(Oe),(e,t)=>{let r=ie,i=ae,o=re,s=n;return c(),f(`div`,null,[u(`div`,se,[h(a)()?y(``,!0):(c(),f(`div`,x,[u(`span`,S,d(e.$t(`views.settings.theme`)),1),_(s,{class:`cui-card`},{content:l(()=>[u(`div`,C,[u(`div`,w,[u(`label`,T,d(e.$t(`components.form.label.theme`)),1),_(r,{modelValue:h(Y),"onUpdate:modelValue":t[0]||=e=>v(Y)?Y.value=e:null,options:h(Ce),disabled:h(X)},null,8,[`modelValue`,`options`,`disabled`])]),u(`div`,E,[u(`div`,D,[u(`div`,O,[u(`div`,k,[u(`label`,A,d(e.$t(`components.form.label.system_preference`)),1),_(i,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:l(()=>[m(d(e.$t(`components.form.hint.system_preference`)),1)]),_:1})]),_(o,{modelValue:h(X),"onUpdate:modelValue":t[1]||=e=>v(X)?X.value=e:null,class:`ml-auto shrink-0`},null,8,[`modelValue`])])])])])]),_:1})])),h(a)()?y(``,!0):(c(),f(`div`,j,[u(`span`,M,d(e.$t(`views.settings.locale`)),1),_(s,{class:`cui-card`},{content:l(()=>[u(`div`,N,[u(`div`,P,[u(`label`,F,d(e.$t(`components.form.label.language`)),1),_(r,{modelValue:h(J),"onUpdate:modelValue":t[2]||=e=>v(J)?J.value=e:null,options:h(xe),"option-label":`label`,"option-value":`value`},null,8,[`modelValue`,`options`])])])]),_:1})])),u(`div`,null,[u(`span`,I,d(e.$t(`views.settings.interface`)),1),_(s,{class:`cui-card`},{content:l(()=>[u(`div`,L,[u(`div`,R,[u(`label`,z,d(e.$t(`components.form.label.default_landing_page`)),1),_(r,{modelValue:h(Z).interface.landingPage,"onUpdate:modelValue":t[3]||=e=>h(Z).interface.landingPage=e,options:h(Ee),"option-label":`label`,"option-value":`value`},null,8,[`modelValue`,`options`]),_(i,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:l(()=>[m(d(e.$t(`components.form.hint.default_landing_page`)),1)]),_:1})]),(`hasPermission`in e?e.hasPermission:h(ee))(void 0,`admin`)?(c(),f(`div`,B,[u(`label`,V,d(e.$t(`components.form.label.default_settings_page`)),1),_(r,{modelValue:h(Z).interface.selectedSettingsView,"onUpdate:modelValue":t[4]||=e=>h(Z).interface.selectedSettingsView=e,options:h(De),"option-label":`label`,"option-value":`value`},null,8,[`modelValue`,`options`]),_(i,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:l(()=>[m(d(e.$t(`components.form.hint.default_settings_page`)),1)]),_:1})])):y(``,!0),u(`div`,H,[u(`label`,U,d(e.$t(`components.form.label.table_rows`)),1),_(r,{modelValue:h(Z).interface.tableRows,"onUpdate:modelValue":t[5]||=e=>h(Z).interface.tableRows=e,options:Te},null,8,[`modelValue`]),_(i,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:l(()=>[m(d(e.$t(`components.form.hint.table_rows`)),1)]),_:1})]),u(`div`,W,[u(`div`,G,[u(`div`,K,[u(`div`,ce,[u(`label`,le,d(e.$t(`components.form.label.navbar_stay_collapsed`)),1),_(i,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:l(()=>[m(d(e.$t(`components.form.hint.navbar_stay_collapsed`)),1)]),_:1})]),_(o,{modelValue:h(Z).interface.navbarStayCollapsed,"onUpdate:modelValue":t[6]||=e=>h(Z).interface.navbarStayCollapsed=e,class:`ml-auto shrink-0`},null,8,[`modelValue`])])])])])]),_:1})]),u(`div`,null,[u(`span`,ue,d(e.$t(`views.settings.debugging`)),1),_(s,{class:`cui-card`},{content:l(()=>[u(`div`,de,[u(`div`,fe,[u(`div`,pe,[u(`div`,me,[u(`label`,he,d(e.$t(`components.form.label.debug_verbose`)),1),_(i,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:l(()=>[m(d(e.$t(`components.form.hint.debug_verbose`)),1)]),_:1})]),_(o,{"model-value":h($),class:`ml-auto shrink-0`,"onUpdate:modelValue":Ae},null,8,[`model-value`])])]),u(`div`,ge,[u(`div`,_e,[u(`div`,ve,[u(`label`,ye,d(e.$t(`components.form.label.record_logs`)),1),_(i,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:l(()=>[m(d(e.$t(`components.form.hint.record_logs`)),1)]),_:1})]),_(o,{"model-value":h(Q),class:`ml-auto shrink-0`,"onUpdate:modelValue":ke},null,8,[`model-value`])])])])]),_:1})])])])}}});export{q as t};
@@ -0,0 +1 @@
1
+ import{Mr as e,Mt as t,Ot as n,Rt as r,k as i,z as a}from"./vendor-cameraui-DojVuZ2L.js";import{ar as o,fn as s,nt as c,s as l}from"./api-Draww2tC.js";import{$t as u,Fn as d,Gn as f,Nn as p,Xn as m,Zn as h,an as g,br as _,cn as v,cr as y,dr as b,en as x,fn as S,gr as C,hn as w,in as T,ir as E,jn as D,mr as O,on as k,or as ee,pn as A,sn as j,zn as M}from"./vendor-JQXDMBA-.js";import{K as N,M as P,U as F,_ as I,j as L,z as R}from"./vendor-primevue-C0acGg0Y.js";import{a as z,c as te,i as ne,n as re,o as ie,r as ae,s as oe}from"./useBackupRestore-E3pVEOvA.js";import{t as se}from"./trash-can-outline-cphfB8Jh.js";import{t as B}from"./close-circle-FZ8IxGd4.js";import{t as ce}from"./download-C-LzNRmM.js";var V={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function H(e,t){return p(),v(`svg`,V,[...t[0]||=[g(`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=E({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`},le=w({__name:`CuiUploadFiles`,props:{multiple:{type:Boolean,default:!1},accept:{},icon:{default:U}},emits:[`files-uploaded`],setup(e,{expose:n,emit:r}){let i=e,a=r,{accept:o,multiple:s}=O(i),c=f(`fileInputRef`),l=b([]),d=y(!1),h=y(!1);function x(e){let t=l.value.findIndex(t=>t.name===e);t>-1&&(l.value.splice(t,1),T())}function S(e){if(d.value=!1,h.value=!1,l.value=[],e.dataTransfer)if(!s.value&&e.dataTransfer.files.length>1)h.value=!0;else{for(let[,t]of Object.entries(e.dataTransfer.files))l.value.push(t);a(`files-uploaded`,l.value)}}function w(e){h.value=!1,l.value=[];let t=e.target;if(t&&t.files)if(!s.value&&t.files?.length>1)h.value=!0;else{for(let[,e]of Object.entries(t.files))l.value.push(e);a(`files-uploaded`,l.value)}}function T(){c.value&&(c.value.value=``)}function E(){l.value=[],T()}return n({reset:E}),(n,r)=>{let i=B,a=t,s=F,f=P;return p(),v(`div`,{class:`file-upload-box`,onDrop:r[0]||=u(e=>S(e),[`prevent`]),onDragover:r[1]||=u(e=>d.value=!0,[`prevent`]),onDragenter:r[2]||=u(e=>d.value=!0,[`prevent`]),onDragleave:r[3]||=u(e=>d.value=!1,[`prevent`])},[g(`div`,W,[g(`div`,G,[(p(),k(M(e.icon),{class:`w-15 h-15`})),g(`label`,K,_(n.$t(`components.upload_files.drop_or_select_file`)),1),g(`input`,{id:`restoreInput`,ref_key:`fileInputRef`,ref:c,type:`file`,class:`hidden`,accept:C(o),onChange:w},null,40,q),C(h)?(p(),v(`p`,J,_(n.$t(`components.upload_files.only_one_file_allowed`)),1)):j(``,!0)]),C(l).length>0?(p(),k(f,{key:0,items:C(l),"item-size":50,"scroll-height":`50px`,"scroll-width":`100%`,class:`w-full`},{item:m(({item:e})=>[(p(),v(`div`,{key:e.name,class:`w-full flex flex-row items-center justify-start p-2`},[A(a,{text:``,rounded:``,severity:`danger`,class:`cui-icon-md shrink-0`,onClick:t=>x(e.name)},{icon:m(()=>[A(i,{width:`100%`,height:`100%`})]),_:1},8,[`onClick`]),g(`b`,Y,_(e.name),1),g(`span`,X,`(`+_(e.size)+` bytes)`,1)])),C(l).length>1?(p(),k(s,{key:0,class:`m-0 py-4`})):j(``,!0)]),_:1},8,[`items`])):j(``,!0)])],32)}}}),ue={class:`flex flex-col w-full gap-6`},de={class:`card-title`},fe={class:`flex flex-col gap-6`},pe={class:`text-sm`},me={class:`card-title`},he={class:`flex flex-col gap-6`},ge={class:`text-sm`},_e={class:`card-title`},ve={key:0,class:`flex w-full items-center justify-center py-6`},ye={key:1,class:`flex flex-col gap-6`},be={class:`flex items-center gap-4`},xe={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`},Z={class:`flex gap-1 ml-auto shrink-0`},Q=w({__name:`SettingsBackup`,setup(u){let w=c(),E=o(),{t:O,locale:M}=e(),P=f(`filesRef`),F=b([]),B=y(!1),V=y(!0),H=y(!1),U=y(!1),W=y(null),G=y([]),K=y(``),q=y(),J=ee({enabled:!1,interval:`daily`,time:`03:00`,weekday:0,dayOfMonth:1,retention:7,destinationPath:``}),Y=T(()=>/^([01]\d|2[0-3]):[0-5]\d$/.test(J.time)),X=T(()=>[`daily`,`weekly`,`monthly`].map(e=>({label:O(`views.settings.backup_interval_${e}`),value:e}))),Q=T(()=>Array.from({length:7},(e,t)=>({label:new Intl.DateTimeFormat(M.value,{weekday:`long`}).format(new Date(Date.UTC(2024,0,7+t,12))),value:t}))),Ue=T(()=>{if(!q.value)return O(`views.settings.backup_last_run`,{info:O(`views.settings.backup_last_run_never`)});let e=new Date(q.value.timestamp).toLocaleString(),t=q.value.status===`success`?`✓`:`✗ ${q.value.message??``}`;return O(`views.settings.backup_last_run`,{info:`${e} ${t}`})});async function We(){B.value=!0;try{let e={};if(localStorage.getItem(`ui`)){let t=localStorage.getItem(`ui`);e.ui=JSON.parse(t)}if(localStorage.getItem(`language`)&&(e.language=localStorage.getItem(`language`)),localStorage.getItem(`theme`)){let t=localStorage.getItem(`theme`);e.theme=JSON.parse(t)}let t=Date.now(),n=await ne(e);await s({blob:new Blob([n]),filename:`cameraui-backup-${t}.tar.gz`,mimeType:`application/gzip`})}catch(e){E.add({severity:`error`,detail:l(e),life:3e3})}B.value=!1}function Ge(){w.openTextDialog({data:{title:O(`components.dialog.title.confirm`),contentText:O(`components.dialog.message.confirm_restore`),confirmText:O(`components.form.button.restore_and_restart`),loading:B},onConfirm:Ke})}async function Ke(){let e=F.value[0];e&&(B.value=!0,await re().run(e),P.value?.reset(),B.value=!1)}function qe(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){E.add({severity:`error`,detail:l(e),life:3e3})}finally{V.value=!1}}async function Je(){if(Y.value){H.value=!0;try{let e=await oe({...J});q.value=e.lastRun,E.add({severity:`success`,detail:O(`components.toast.backup_scheduler_saved`),life:3e3})}catch(e){E.add({severity:`error`,detail:l(e),life:3e3})}finally{H.value=!1}}}async function Ye(){U.value=!0;try{let e=await te();q.value=e,E.add({severity:`success`,detail:O(`components.toast.backup_created`),life:3e3})}catch(e){E.add({severity:`error`,detail:l(e),life:3e3})}finally{U.value=!1,await $()}}async function Xe(e){W.value=e.filename;try{let t=await z(e.filename);await s({blob:new Blob([t]),filename:e.filename,mimeType:`application/gzip`})}catch(e){E.add({severity:`error`,detail:l(e),life:3e3})}finally{W.value=null}}function Ze(e){w.openTextDialog({data:{title:O(`components.dialog.title.confirm`),contentText:O(`components.dialog.message.confirm_delete_backup`,{filename:e.filename}),confirmText:O(`components.form.button.remove`)},onConfirm:async()=>{try{await ae(e.filename),E.add({severity:`success`,detail:O(`components.toast.backup_deleted`),life:3e3}),await $()}catch(e){E.add({severity:`error`,detail:l(e),life:3e3})}}})}return D($),(e,o)=>{let s=t,c=a,l=le,u=n,f=N,y=L,b=i,w=I,T=R,E=ce,D=se,O=r;return p(),v(`div`,null,[g(`div`,ue,[g(`div`,null,[g(`span`,de,_(e.$t(`views.settings.create_backup`)),1),A(c,{class:`cui-card`},{content:m(()=>[g(`div`,fe,[g(`span`,pe,_(e.$t(`views.settings.create_backup_info`)),1),A(s,{loading:C(B),class:`ml-auto cui-button-medium`,label:e.$t(`components.form.button.download_backup_archive`),onClick:We},null,8,[`loading`,`label`])])]),_:1})]),g(`div`,null,[g(`span`,me,_(e.$t(`views.settings.restore_backup`)),1),A(c,{class:`cui-card`},{content:m(()=>[g(`div`,he,[g(`span`,ge,_(e.$t(`views.settings.restore_backup_info`)),1),A(l,{ref_key:`filesRef`,ref:P,accept:`application/gzip, .tar, .tar.gz`,onFilesUploaded:o[0]||=e=>F.value=e},null,512),A(s,{loading:C(B),disabled:!C(F).length,class:`ml-auto cui-button-medium`,label:e.$t(`components.form.button.restore_backup_archive`),onClick:Ge},null,8,[`loading`,`disabled`,`label`])])]),_:1})]),g(`div`,null,[g(`span`,_e,_(e.$t(`views.settings.scheduled_backup`)),1),A(c,{class:`cui-card`},{content:m(()=>[C(V)?(p(),v(`div`,ve,[A(u,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):(p(),v(`div`,ye,[g(`div`,be,[g(`div`,xe,[g(`span`,Se,_(e.$t(`views.settings.scheduled_backup_info`)),1),g(`span`,Ce,_(C(Ue)),1)]),A(f,{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?(p(),v(x,{key:0},[g(`div`,we,[g(`div`,Te,[g(`label`,Ee,_(e.$t(`views.settings.backup_interval`)),1),A(y,{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`])]),g(`div`,De,[g(`label`,Oe,_(e.$t(`views.settings.backup_time`)),1),A(b,{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`?(p(),v(`div`,ke,[g(`label`,Ae,_(e.$t(`views.settings.backup_weekday`)),1),A(y,{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`])])):j(``,!0),C(J).interval===`monthly`?(p(),v(`div`,je,[g(`label`,Me,_(e.$t(`views.settings.backup_day_of_month`)),1),A(w,{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`])])):j(``,!0),g(`div`,Ne,[g(`label`,Pe,_(e.$t(`views.settings.backup_retention`)),1),A(w,{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`]),A(T,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:m(()=>[S(_(e.$t(`views.settings.backup_retention_hint`)),1)]),_:1})])]),g(`div`,Fe,[g(`label`,Ie,_(e.$t(`views.settings.backup_destination`)),1),A(b,{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`]),A(T,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:m(()=>[S(_(e.$t(`views.settings.backup_destination_hint`)),1)]),_:1})])],64)):j(``,!0),g(`div`,Le,[A(s,{severity:`secondary`,outlined:``,loading:C(U),disabled:C(H),class:`ml-auto cui-button-medium`,label:e.$t(`components.form.button.run_now`),onClick:Ye},null,8,[`loading`,`disabled`,`label`]),A(s,{loading:C(H),disabled:C(U)||!C(Y),class:`cui-button-medium`,label:e.$t(`components.form.button.save`),onClick:Je},null,8,[`loading`,`disabled`,`label`])]),C(G).length?(p(),v(`div`,Re,[g(`span`,ze,_(e.$t(`views.settings.backup_existing`)),1),(p(!0),v(x,null,d(C(G),t=>(p(),v(`div`,{key:t.filename,class:`flex items-center gap-3 py-1 min-w-0`},[g(`div`,Be,[g(`span`,Ve,_(t.filename),1),g(`span`,He,_(new Date(t.timestamp).toLocaleString())+` · `+_(qe(t.size)),1)]),g(`div`,Z,[h((p(),k(s,{text:``,rounded:``,severity:`secondary`,class:`cui-icon-md`,disabled:C(W)===t.filename,onClick:e=>Xe(t)},{icon:m(()=>[A(E,{width:`100%`,height:`100%`})]),_:1},8,[`disabled`,`onClick`])),[[O,{value:e.$t(`components.form.button.download`)},void 0,{top:!0}]]),h((p(),k(s,{text:``,rounded:``,severity:`danger`,class:`cui-icon-md`,onClick:e=>Ze(t)},{icon:m(()=>[A(D,{width:`100%`,height:`100%`})]),_:1},8,[`onClick`])),[[O,{value:e.$t(`components.form.button.remove`)},void 0,{top:!0}]])])]))),128))])):j(``,!0)]))]),_:1})])])])}}});export{Q as default};
@@ -0,0 +1 @@
1
+ import{Mr as e}from"./vendor-cameraui-DojVuZ2L.js";import{b as t,on as n,rn as r}from"./api-Draww2tC.js";import{Fn as i,Nn as a,Xn as o,br as s,cn as c,en as l,fn as u,gr as d,hn as f,in as p,on as m,pn as h,zn as g}from"./vendor-JQXDMBA-.js";import{n as _,t as v}from"./chevron-right-AhqYJOFy.js";var y=f({__name:`SettingsList`,setup(f){let{t:y}=e(),b=p(()=>t.find(e=>e.name===`Settings`).children.filter(e=>e.meta?.settingsBar&&n(e)).map(e=>({to:`/settings/${e.path}`,label:y(`navigation.${e.meta.name.toLowerCase()}`),icon:e.meta.settingsBar.icon.default})));return(e,t)=>{let n=v,f=r,p=_;return a(),c(`div`,null,[h(p,{size:`large`,dividers:``,class:`!h-auto`},{default:o(()=>[(a(!0),c(l,null,i(d(b),e=>(a(),m(f,{key:e.to,to:e.to},{prepend:o(()=>[(a(),m(g(e.icon),{class:`w-5 h-5 text-muted`}))]),append:o(()=>[h(n,{class:`w-5 h-5 text-muted`})]),default:o(()=>[u(` `+s(e.label)+` `,1)]),_:2},1032,[`to`]))),128))]),_:1})])}}});export{y as default};
@@ -1 +1 @@
1
- import{F as e,O as t,Ot as ee,kr as n,wt as te}from"./vendor-cameraui-Cgb5z6NJ.js";import{Un as r,Zn as i,i as a,it as ne,o,rt as s}from"./api-DpZpuR8_.js";import{Nn as c,Xn as l,an as u,b as re,br as d,cn as f,cr as p,en as m,fn as h,gr as g,hn as _,in as v,on as y,pn as b,qn as x,qt as S,rr as ie,sn as C,v as w,wn as T,y as E}from"./vendor-CSg6_Jfu.js";import{q as D}from"./types-D9YcubIy.js";import{B as ae,M as oe,R as se,_ as ce,a as le,i as ue,q as de,s as fe,z as pe}from"./vendor-primevue-JQ8abUl5.js";import{t as O}from"./mqtt-DklPP2x5.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`},Re={class:`flex flex-col sm:flex-row gap-6`},B={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=_({__name:`SettingsMqtt`,setup(_){let D=new O,V=i(),{t:H}=n(),{data:U}=D.getMqttInfoQuery(),W=D.patchMqttInfoMutation(),G=D.testMqttConnectionMutation(),K=r(`/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=p(null),J=p(``),Y=p(null),X=v(()=>U.value?.passwordSet??!1),Z=v(()=>Y.value??U.value?.status??null),nt=v(()=>{switch(Z.value?.state){case`connected`:return`success`;case`connecting`:case`reconnecting`:return`warn`;case`error`:return`danger`;default:return`secondary`}}),rt=v(()=>{let e=Z.value?.state??`disabled`;return H(`views.settings.mqtt_state_${e}`)}),it=v(()=>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=v(()=>`mqtt://${window.location.hostname}:${q.value?.broker.port??1883}`);function $(){let e=o(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 x(U,e=>{e&&!q.value&&(q.value=o(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,r)=>{let i=te,o=ae,p=le,_=e,v=de,x=oe,D=t,O=ce,V=fe,H=ne,U=se,K=pe,Y=ue,Z=ee;return c(),f(`div`,k,[g(q)?(c(),f(`div`,j,[u(`div`,null,[u(`span`,M,d(n.$t(`views.settings.status`)),1),b(_,{class:`cui-card`},{content:l(()=>[u(`div`,N,[u(`div`,P,[u(`span`,F,d(n.$t(`views.settings.mqtt_broker`)),1),b(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint truncate`},{default:l(()=>[h(d(g(it)),1)]),_:1})]),b(p,{class:`ml-auto shrink-0`,severity:g(nt),value:g(rt)},null,8,[`severity`,`value`])])]),_:1})]),b(g(re),{class:`flex flex-col w-full gap-6`,"validation-schema":g(me),onSubmit:at},{default:l(()=>[u(`div`,null,[u(`span`,I,d(n.$t(`views.settings.mqtt_broker`)),1),b(_,{class:`cui-card`},{content:l(()=>[u(`div`,L,[u(`div`,R,[u(`div`,z,[u(`label`,he,d(n.$t(`components.form.label.enabled`)),1),b(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:l(()=>[h(d(n.$t(`views.settings.mqtt_enabled_info`)),1)]),_:1})]),b(v,{modelValue:g(q).enabled,"onUpdate:modelValue":r[0]||=e=>g(q).enabled=e,class:`ml-auto shrink-0`},null,8,[`modelValue`])]),u(`div`,ge,[u(`label`,_e,d(n.$t(`views.settings.mqtt_mode_label`)),1),b(x,{modelValue:g(q).mode,"onUpdate:modelValue":r[1]||=e=>g(q).mode=e,options:tt,"option-label":`label`,"option-value":`value`},null,8,[`modelValue`]),g(q).mode===`embedded`?(c(),y(o,{key:0,severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:l(()=>[h(d(n.$t(`views.settings.mqtt_mode_embedded_info`)),1)]),_:1})):C(``,!0)]),g(q).mode===`external`?(c(),f(m,{key:0},[u(`div`,ve,[b(g(E),{modelValue:g(q).host,"onUpdate:modelValue":r[2]||=e=>g(q).host=e,modelModifiers:{trim:!0},name:`host`,as:`div`,class:`flex flex-col field-gap flex-1 min-w-0`},{default:l(({field:e,errors:t})=>[u(`label`,ye,d(n.$t(`views.settings.mqtt_host_label`)),1),b(D,T(e,{invalid:t.length>0,type:`text`,placeholder:`192.168.1.10`,class:`w-full`}),null,16,[`invalid`]),b(S,{name:`fade`},{default:l(()=>[b(g(w),{name:`host`,class:`cui-input-error`})]),_:1})]),_:1},8,[`modelValue`]),u(`div`,be,[u(`label`,xe,d(n.$t(`views.settings.mqtt_port_label`)),1),b(O,{modelValue:g(q).port,"onUpdate:modelValue":r[3]||=e=>g(q).port=e,min:1,max:65535,"use-grouping":!1,fluid:``},null,8,[`modelValue`])])]),u(`div`,Se,[u(`label`,Ce,d(n.$t(`views.settings.mqtt_protocol_label`)),1),b(x,{modelValue:g(q).protocol,"onUpdate:modelValue":r[4]||=e=>g(q).protocol=e,options:et,"option-label":`label`,"option-value":`value`},null,8,[`modelValue`])]),u(`div`,we,[u(`div`,Te,[u(`label`,Ee,d(n.$t(`views.settings.mqtt_username_label`)),1),b(D,{modelValue:g(q).username,"onUpdate:modelValue":r[5]||=e=>g(q).username=e,modelModifiers:{trim:!0},type:`text`,autocomplete:`off`,class:`w-full`},null,8,[`modelValue`])]),u(`div`,De,[u(`label`,Oe,d(n.$t(`views.settings.mqtt_password_label`)),1),b(V,{modelValue:g(J),"onUpdate:modelValue":r[6]||=e=>ie(J)?J.value=e:null,feedback:!1,"toggle-mask":``,fluid:``,autocomplete:`new-password`,placeholder:g(X)?`••••••••`:``},null,8,[`modelValue`,`placeholder`]),g(X)?(c(),y(o,{key:0,severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:l(()=>[h(d(n.$t(`views.settings.mqtt_password_keep_hint`)),1)]),_:1})):C(``,!0)])])],64)):(c(),f(m,{key:1},[u(`div`,ke,[u(`label`,Ae,d(n.$t(`views.settings.mqtt_broker_address`)),1),b(K,null,{default:l(()=>[b(D,{"model-value":g(Q),readonly:``,class:`font-mono text-xs`},null,8,[`model-value`]),b(U,null,{default:l(()=>[b(H,{"action-text":n.$t(`components.form.tooltip.copied`),icon:g(s),"button-props":{severity:`secondary`,text:!0},onAction:r[7]||=e=>g(a)(g(Q))},null,8,[`action-text`,`icon`])]),_:1})]),_:1}),b(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:l(()=>[h(d(n.$t(`views.settings.mqtt_broker_address_hint`)),1)]),_:1})]),u(`div`,je,[u(`div`,Me,[u(`label`,Ne,d(n.$t(`views.settings.mqtt_port_label`)),1),b(O,{modelValue:g(q).broker.port,"onUpdate:modelValue":r[8]||=e=>g(q).broker.port=e,min:1,max:65535,"use-grouping":!1,fluid:``},null,8,[`modelValue`])]),u(`div`,Pe,[u(`label`,Fe,d(n.$t(`views.settings.mqtt_username_label`)),1),b(D,{modelValue:g(q).broker.username,"onUpdate:modelValue":r[9]||=e=>g(q).broker.username=e,modelModifiers:{trim:!0},type:`text`,autocomplete:`off`,class:`w-full`},null,8,[`modelValue`])]),u(`div`,Ie,[u(`label`,Le,d(n.$t(`views.settings.mqtt_password_label`)),1),b(K,null,{default:l(()=>[b(V,{modelValue:g(q).broker.password,"onUpdate:modelValue":r[10]||=e=>g(q).broker.password=e,feedback:!1,"toggle-mask":``,fluid:``,autocomplete:`off`},null,8,[`modelValue`]),b(U,null,{default:l(()=>[b(H,{"action-text":n.$t(`components.form.tooltip.copied`),icon:g(s),"button-props":{severity:`secondary`,text:!0},onAction:r[11]||=e=>g(a)(g(q).broker.password??``)},null,8,[`action-text`,`icon`])]),_:1})]),_:1})])])],64)),u(`div`,Re,[b(g(E),{modelValue:g(q).clientId,"onUpdate:modelValue":r[12]||=e=>g(q).clientId=e,modelModifiers:{trim:!0},name:`clientId`,as:`div`,class:`flex flex-col field-gap flex-1`},{default:l(({field:e,errors:t})=>[u(`label`,B,d(n.$t(`views.settings.mqtt_client_id_label`)),1),b(D,T(e,{invalid:t.length>0,type:`text`}),null,16,[`invalid`]),b(S,{name:`fade`},{default:l(()=>[b(g(w),{name:`clientId`,class:`cui-input-error`})]),_:1})]),_:1},8,[`modelValue`]),b(g(E),{modelValue:g(q).topicPrefix,"onUpdate:modelValue":r[13]||=e=>g(q).topicPrefix=e,modelModifiers:{trim:!0},name:`topicPrefix`,as:`div`,class:`flex flex-col field-gap flex-1`},{default:l(({field:e,errors:t})=>[u(`label`,ze,d(n.$t(`views.settings.mqtt_topic_prefix_label`)),1),b(D,T(e,{invalid:t.length>0,type:`text`}),null,16,[`invalid`]),b(S,{name:`fade`},{default:l(()=>[b(g(w),{name:`topicPrefix`,class:`cui-input-error`})]),_:1}),b(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:l(()=>[h(d(n.$t(`views.settings.mqtt_topic_prefix_info`)),1)]),_:1})]),_:1},8,[`modelValue`])]),g(q).mode===`external`&&g(q).protocol===`mqtts`?(c(),f(m,{key:2},[u(`div`,Be,[u(`div`,Ve,[u(`label`,He,d(n.$t(`views.settings.mqtt_tls_reject_unauthorized`)),1),b(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:l(()=>[h(d(n.$t(`views.settings.mqtt_tls_reject_unauthorized_info`)),1)]),_:1})]),b(v,{modelValue:g(q).tls.rejectUnauthorized,"onUpdate:modelValue":r[14]||=e=>g(q).tls.rejectUnauthorized=e,class:`ml-auto shrink-0`},null,8,[`modelValue`])]),u(`div`,Ue,[u(`label`,We,d(n.$t(`views.settings.mqtt_tls_ca_label`)),1),b(Y,{modelValue:g(q).tls.ca,"onUpdate:modelValue":r[15]||=e=>g(q).tls.ca=e,rows:`3`,"auto-resize":``,class:`font-mono text-xs`},null,8,[`modelValue`])]),u(`div`,Ge,[u(`label`,Ke,d(n.$t(`views.settings.mqtt_tls_cert_label`)),1),b(Y,{modelValue:g(q).tls.cert,"onUpdate:modelValue":r[16]||=e=>g(q).tls.cert=e,rows:`3`,"auto-resize":``,class:`font-mono text-xs`},null,8,[`modelValue`])]),u(`div`,qe,[u(`label`,Je,d(n.$t(`views.settings.mqtt_tls_key_label`)),1),b(Y,{modelValue:g(q).tls.key,"onUpdate:modelValue":r[17]||=e=>g(q).tls.key=e,rows:`3`,"auto-resize":``,class:`font-mono text-xs`},null,8,[`modelValue`])])],64)):C(``,!0),u(`div`,Ye,[u(`div`,Xe,[u(`label`,Ze,d(n.$t(`views.settings.mqtt_ha_discovery`)),1),b(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:l(()=>[h(d(n.$t(`views.settings.mqtt_ha_discovery_info`)),1)]),_:1})]),b(v,{modelValue:g(q).haDiscovery.enabled,"onUpdate:modelValue":r[18]||=e=>g(q).haDiscovery.enabled=e,class:`ml-auto shrink-0`},null,8,[`modelValue`])]),g(q).haDiscovery.enabled?(c(),y(g(E),{key:3,modelValue:g(q).haDiscovery.prefix,"onUpdate:modelValue":r[19]||=e=>g(q).haDiscovery.prefix=e,modelModifiers:{trim:!0},name:`haDiscovery.prefix`,as:`div`,class:`flex flex-col field-gap`},{default:l(({field:e,errors:t})=>[u(`label`,Qe,d(n.$t(`views.settings.mqtt_ha_prefix_label`)),1),b(D,T(e,{invalid:t.length>0,type:`text`,placeholder:`homeassistant`}),null,16,[`invalid`]),b(S,{name:`fade`},{default:l(()=>[b(g(w),{name:`haDiscovery.prefix`,class:`cui-input-error`})]),_:1}),b(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:l(()=>[h(d(n.$t(`views.settings.mqtt_ha_prefix_info`)),1)]),_:1})]),_:1},8,[`modelValue`])):C(``,!0),u(`div`,$e,[b(Z,{type:`button`,severity:`secondary`,loading:g(G).isPending.value,disabled:g(q).mode===`external`&&!g(q).host,class:`cui-button-medium`,label:n.$t(`views.settings.mqtt_test`),onClick:ot},null,8,[`loading`,`disabled`,`label`]),b(Z,{type:`submit`,loading:g(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`])])):(c(),f(`div`,A,[b(i,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})]))])}}});export{V as default};
1
+ import{Mr as e,Mt as t,Ot as n,k as ee,z as te}from"./vendor-cameraui-DojVuZ2L.js";import{Zn as r,ar as i,dt as ne,i as a,o,ut as s}from"./api-Draww2tC.js";import{Nn as c,Xn as l,an as u,b as re,br as d,cn as f,cr as p,en as m,fn as h,gr as g,hn as _,in as v,on as y,pn as b,qn as x,qt as S,rr as ie,sn as C,v as w,wn as T,y as E}from"./vendor-JQXDMBA-.js";import{q as D}from"./types-BGMvANrz.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-C0acGg0Y.js";import{t as O}from"./mqtt-BPfLOT7L.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`},B={class:`flex flex-col field-gap w-full sm:w-40 shrink-0`},be={for:`port`,class:`cui-label`},xe={class:`flex flex-col field-gap`},Se={for:`protocol`,class:`cui-label`},Ce={class:`flex flex-col sm:flex-row gap-6`},we={class:`flex flex-col field-gap flex-1 min-w-0`},Te={for:`username`,class:`cui-label`},Ee={class:`flex flex-col field-gap flex-1 min-w-0`},De={for:`password`,class:`cui-label`},Oe={class:`flex flex-col field-gap`},ke={for:`brokerAddress`,class:`cui-label`},Ae={class:`flex flex-col sm:flex-row gap-6`},je={class:`flex flex-col field-gap w-full sm:w-40 shrink-0`},Me={for:`brokerPort`,class:`cui-label`},Ne={class:`flex flex-col field-gap flex-1 min-w-0`},Pe={for:`brokerUsername`,class:`cui-label`},Fe={class:`flex flex-col field-gap flex-1 min-w-0`},Ie={for:`brokerPassword`,class:`cui-label`},Le={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=_({__name:`SettingsMqtt`,setup(_){let D=new O,V=i(),{t:H}=e(),{data:U}=D.getMqttInfoQuery(),W=D.patchMqttInfoMutation(),G=D.testMqttConnectionMutation(),K=r(`/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=p(null),J=p(``),Y=p(null),X=v(()=>U.value?.passwordSet??!1),Z=v(()=>Y.value??U.value?.status??null),nt=v(()=>{switch(Z.value?.state){case`connected`:return`success`;case`connecting`:case`reconnecting`:return`warn`;case`error`:return`danger`;default:return`secondary`}}),rt=v(()=>{let e=Z.value?.state??`disabled`;return H(`views.settings.mqtt_state_${e}`)}),it=v(()=>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=v(()=>`mqtt://${window.location.hostname}:${q.value?.broker.port??1883}`);function $(){let e=o(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 x(U,e=>{e&&!q.value&&(q.value=o(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{}}),(e,r)=>{let i=n,o=pe,p=le,_=te,v=ae,x=de,D=ee,O=ce,V=fe,H=ne,U=oe,K=se,Y=ue,Z=t;return c(),f(`div`,k,[g(q)?(c(),f(`div`,j,[u(`div`,null,[u(`span`,M,d(e.$t(`views.settings.status`)),1),b(_,{class:`cui-card`},{content:l(()=>[u(`div`,N,[u(`div`,P,[u(`span`,F,d(e.$t(`views.settings.mqtt_broker`)),1),b(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint truncate`},{default:l(()=>[h(d(g(it)),1)]),_:1})]),b(p,{class:`ml-auto shrink-0`,severity:g(nt),value:g(rt)},null,8,[`severity`,`value`])])]),_:1})]),b(g(re),{class:`flex flex-col w-full gap-6`,"validation-schema":g(me),onSubmit:at},{default:l(()=>[u(`div`,null,[u(`span`,I,d(e.$t(`views.settings.mqtt_broker`)),1),b(_,{class:`cui-card`},{content:l(()=>[u(`div`,L,[u(`div`,R,[u(`div`,z,[u(`label`,he,d(e.$t(`components.form.label.enabled`)),1),b(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:l(()=>[h(d(e.$t(`views.settings.mqtt_enabled_info`)),1)]),_:1})]),b(v,{modelValue:g(q).enabled,"onUpdate:modelValue":r[0]||=e=>g(q).enabled=e,class:`ml-auto shrink-0`},null,8,[`modelValue`])]),u(`div`,ge,[u(`label`,_e,d(e.$t(`views.settings.mqtt_mode_label`)),1),b(x,{modelValue:g(q).mode,"onUpdate:modelValue":r[1]||=e=>g(q).mode=e,options:tt,"option-label":`label`,"option-value":`value`},null,8,[`modelValue`]),g(q).mode===`embedded`?(c(),y(o,{key:0,severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:l(()=>[h(d(e.$t(`views.settings.mqtt_mode_embedded_info`)),1)]),_:1})):C(``,!0)]),g(q).mode===`external`?(c(),f(m,{key:0},[u(`div`,ve,[b(g(E),{modelValue:g(q).host,"onUpdate:modelValue":r[2]||=e=>g(q).host=e,modelModifiers:{trim:!0},name:`host`,as:`div`,class:`flex flex-col field-gap flex-1 min-w-0`},{default:l(({field:t,errors:n})=>[u(`label`,ye,d(e.$t(`views.settings.mqtt_host_label`)),1),b(D,T(t,{invalid:n.length>0,type:`text`,placeholder:`192.168.1.10`,class:`w-full`}),null,16,[`invalid`]),b(S,{name:`fade`},{default:l(()=>[b(g(w),{name:`host`,class:`cui-input-error`})]),_:1})]),_:1},8,[`modelValue`]),u(`div`,B,[u(`label`,be,d(e.$t(`views.settings.mqtt_port_label`)),1),b(O,{modelValue:g(q).port,"onUpdate:modelValue":r[3]||=e=>g(q).port=e,min:1,max:65535,"use-grouping":!1,fluid:``},null,8,[`modelValue`])])]),u(`div`,xe,[u(`label`,Se,d(e.$t(`views.settings.mqtt_protocol_label`)),1),b(x,{modelValue:g(q).protocol,"onUpdate:modelValue":r[4]||=e=>g(q).protocol=e,options:et,"option-label":`label`,"option-value":`value`},null,8,[`modelValue`])]),u(`div`,Ce,[u(`div`,we,[u(`label`,Te,d(e.$t(`views.settings.mqtt_username_label`)),1),b(D,{modelValue:g(q).username,"onUpdate:modelValue":r[5]||=e=>g(q).username=e,modelModifiers:{trim:!0},type:`text`,autocomplete:`off`,class:`w-full`},null,8,[`modelValue`])]),u(`div`,Ee,[u(`label`,De,d(e.$t(`views.settings.mqtt_password_label`)),1),b(V,{modelValue:g(J),"onUpdate:modelValue":r[6]||=e=>ie(J)?J.value=e:null,feedback:!1,"toggle-mask":``,fluid:``,autocomplete:`new-password`,placeholder:g(X)?`••••••••`:``},null,8,[`modelValue`,`placeholder`]),g(X)?(c(),y(o,{key:0,severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:l(()=>[h(d(e.$t(`views.settings.mqtt_password_keep_hint`)),1)]),_:1})):C(``,!0)])])],64)):(c(),f(m,{key:1},[u(`div`,Oe,[u(`label`,ke,d(e.$t(`views.settings.mqtt_broker_address`)),1),b(K,null,{default:l(()=>[b(D,{"model-value":g(Q),readonly:``,class:`font-mono text-xs`},null,8,[`model-value`]),b(U,null,{default:l(()=>[b(H,{"action-text":e.$t(`components.form.tooltip.copied`),icon:g(s),"button-props":{severity:`secondary`,text:!0},onAction:r[7]||=e=>g(a)(g(Q))},null,8,[`action-text`,`icon`])]),_:1})]),_:1}),b(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:l(()=>[h(d(e.$t(`views.settings.mqtt_broker_address_hint`)),1)]),_:1})]),u(`div`,Ae,[u(`div`,je,[u(`label`,Me,d(e.$t(`views.settings.mqtt_port_label`)),1),b(O,{modelValue:g(q).broker.port,"onUpdate:modelValue":r[8]||=e=>g(q).broker.port=e,min:1,max:65535,"use-grouping":!1,fluid:``},null,8,[`modelValue`])]),u(`div`,Ne,[u(`label`,Pe,d(e.$t(`views.settings.mqtt_username_label`)),1),b(D,{modelValue:g(q).broker.username,"onUpdate:modelValue":r[9]||=e=>g(q).broker.username=e,modelModifiers:{trim:!0},type:`text`,autocomplete:`off`,class:`w-full`},null,8,[`modelValue`])]),u(`div`,Fe,[u(`label`,Ie,d(e.$t(`views.settings.mqtt_password_label`)),1),b(K,null,{default:l(()=>[b(V,{modelValue:g(q).broker.password,"onUpdate:modelValue":r[10]||=e=>g(q).broker.password=e,feedback:!1,"toggle-mask":``,fluid:``,autocomplete:`off`},null,8,[`modelValue`]),b(U,null,{default:l(()=>[b(H,{"action-text":e.$t(`components.form.tooltip.copied`),icon:g(s),"button-props":{severity:`secondary`,text:!0},onAction:r[11]||=e=>g(a)(g(q).broker.password??``)},null,8,[`action-text`,`icon`])]),_:1})]),_:1})])])],64)),u(`div`,Le,[b(g(E),{modelValue:g(q).clientId,"onUpdate:modelValue":r[12]||=e=>g(q).clientId=e,modelModifiers:{trim:!0},name:`clientId`,as:`div`,class:`flex flex-col field-gap flex-1`},{default:l(({field:t,errors:n})=>[u(`label`,Re,d(e.$t(`views.settings.mqtt_client_id_label`)),1),b(D,T(t,{invalid:n.length>0,type:`text`}),null,16,[`invalid`]),b(S,{name:`fade`},{default:l(()=>[b(g(w),{name:`clientId`,class:`cui-input-error`})]),_:1})]),_:1},8,[`modelValue`]),b(g(E),{modelValue:g(q).topicPrefix,"onUpdate:modelValue":r[13]||=e=>g(q).topicPrefix=e,modelModifiers:{trim:!0},name:`topicPrefix`,as:`div`,class:`flex flex-col field-gap flex-1`},{default:l(({field:t,errors:n})=>[u(`label`,ze,d(e.$t(`views.settings.mqtt_topic_prefix_label`)),1),b(D,T(t,{invalid:n.length>0,type:`text`}),null,16,[`invalid`]),b(S,{name:`fade`},{default:l(()=>[b(g(w),{name:`topicPrefix`,class:`cui-input-error`})]),_:1}),b(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:l(()=>[h(d(e.$t(`views.settings.mqtt_topic_prefix_info`)),1)]),_:1})]),_:1},8,[`modelValue`])]),g(q).mode===`external`&&g(q).protocol===`mqtts`?(c(),f(m,{key:2},[u(`div`,Be,[u(`div`,Ve,[u(`label`,He,d(e.$t(`views.settings.mqtt_tls_reject_unauthorized`)),1),b(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:l(()=>[h(d(e.$t(`views.settings.mqtt_tls_reject_unauthorized_info`)),1)]),_:1})]),b(v,{modelValue:g(q).tls.rejectUnauthorized,"onUpdate:modelValue":r[14]||=e=>g(q).tls.rejectUnauthorized=e,class:`ml-auto shrink-0`},null,8,[`modelValue`])]),u(`div`,Ue,[u(`label`,We,d(e.$t(`views.settings.mqtt_tls_ca_label`)),1),b(Y,{modelValue:g(q).tls.ca,"onUpdate:modelValue":r[15]||=e=>g(q).tls.ca=e,rows:`3`,"auto-resize":``,class:`font-mono text-xs`},null,8,[`modelValue`])]),u(`div`,Ge,[u(`label`,Ke,d(e.$t(`views.settings.mqtt_tls_cert_label`)),1),b(Y,{modelValue:g(q).tls.cert,"onUpdate:modelValue":r[16]||=e=>g(q).tls.cert=e,rows:`3`,"auto-resize":``,class:`font-mono text-xs`},null,8,[`modelValue`])]),u(`div`,qe,[u(`label`,Je,d(e.$t(`views.settings.mqtt_tls_key_label`)),1),b(Y,{modelValue:g(q).tls.key,"onUpdate:modelValue":r[17]||=e=>g(q).tls.key=e,rows:`3`,"auto-resize":``,class:`font-mono text-xs`},null,8,[`modelValue`])])],64)):C(``,!0),u(`div`,Ye,[u(`div`,Xe,[u(`label`,Ze,d(e.$t(`views.settings.mqtt_ha_discovery`)),1),b(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:l(()=>[h(d(e.$t(`views.settings.mqtt_ha_discovery_info`)),1)]),_:1})]),b(v,{modelValue:g(q).haDiscovery.enabled,"onUpdate:modelValue":r[18]||=e=>g(q).haDiscovery.enabled=e,class:`ml-auto shrink-0`},null,8,[`modelValue`])]),g(q).haDiscovery.enabled?(c(),y(g(E),{key:3,modelValue:g(q).haDiscovery.prefix,"onUpdate:modelValue":r[19]||=e=>g(q).haDiscovery.prefix=e,modelModifiers:{trim:!0},name:`haDiscovery.prefix`,as:`div`,class:`flex flex-col field-gap`},{default:l(({field:t,errors:n})=>[u(`label`,Qe,d(e.$t(`views.settings.mqtt_ha_prefix_label`)),1),b(D,T(t,{invalid:n.length>0,type:`text`,placeholder:`homeassistant`}),null,16,[`invalid`]),b(S,{name:`fade`},{default:l(()=>[b(g(w),{name:`haDiscovery.prefix`,class:`cui-input-error`})]),_:1}),b(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:l(()=>[h(d(e.$t(`views.settings.mqtt_ha_prefix_info`)),1)]),_:1})]),_:1},8,[`modelValue`])):C(``,!0),u(`div`,$e,[b(Z,{type:`button`,severity:`secondary`,loading:g(G).isPending.value,disabled:g(q).mode===`external`&&!g(q).host,class:`cui-button-medium`,label:e.$t(`views.settings.mqtt_test`),onClick:ot},null,8,[`loading`,`disabled`,`label`]),b(Z,{type:`submit`,loading:g(W).isPending.value,class:`cui-button-medium ml-auto`,label:e.$t(`components.form.button.save`)},null,8,[`loading`,`label`])])])]),_:1})])]),_:1},8,[`validation-schema`])])):(c(),f(`div`,A,[b(i,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})]))])}}});export{V as default};
@@ -0,0 +1,2 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["./esm-DRswZUWf.js","./vendor-capacitor-CDwgXF4b.js","./vendor-JQXDMBA-.js","./rolldown-runtime-C0FnF6B9.js","./dist-BwEXwXSw.js"])))=>i.map(i=>d[i]);
2
+ import{D as e,Mr as t,Mt as n,Ot as r,Rt as ee,k as te,z as ne}from"./vendor-cameraui-DojVuZ2L.js";import{Yn as i,ar as a,on as o}from"./api-Draww2tC.js";import{Fn as re,Ln as ie,Nn as s,Qt as ae,Rt as c,Xn as l,Zn as oe,an as u,br as d,cn as f,cr as p,en as m,fn as h,gr as g,hn as _,in as v,jn as y,on as b,or as x,pn as S,qn as C,sn as w}from"./vendor-JQXDMBA-.js";import{a as T,t as E}from"./useElectron-BXVcamD0.js";import{K as se,S as ce,T as le,U as ue,z as de}from"./vendor-primevue-C0acGg0Y.js";import{t as D}from"./notifications-CK6XQBF-.js";import{t as fe}from"./delete-921w_nKy.js";import{t as pe}from"./CuiDataTable-CQhCu0px.js";import{t as me}from"./usePermissions-B_C-zX5H.js";T(`PushRegistration`);var O=`cui.push.registrations`;p(!1);var k=null;function he(){return{registerForPush:async()=>{},forgetIfThisDevice:async(e,t)=>{if(!e)return;let n=await j(e);!n||n.deviceId!==t||(await M(e),await P(e))},isServerSynced:async e=>e?await j(e)!==null:!1}}async function A(){try{let{Preferences:e}=await c(async()=>{let{Preferences:e}=await import(`./esm-DRswZUWf.js`);return{Preferences:e}},__vite__mapDeps([0,1,2,3]),import.meta.url),{value:t}=await e.get({key:O});return t?JSON.parse(t):{}}catch{return{}}}async function ge(e){try{let{Preferences:t}=await c(async()=>{let{Preferences:e}=await import(`./esm-DRswZUWf.js`);return{Preferences:e}},__vite__mapDeps([0,1,2,3]),import.meta.url);await t.set({key:O,value:JSON.stringify(e)})}catch{}}async function j(e){return(await A())[e]??null}async function M(e){let t=await A();t[e]&&(delete t[e],await ge(t))}function N(){return k??=(async()=>{try{let{Capacitor:e,registerPlugin:t}=await c(async()=>{let{Capacitor:e,registerPlugin:t}=await import(`./dist-BwEXwXSw.js`);return{Capacitor:e,registerPlugin:t}},__vite__mapDeps([4,2,3]),import.meta.url);return e.isPluginAvailable(`PushCrypto`)?{plugin:t(`PushCrypto`)}:{plugin:null}}catch{return{plugin:null}}})(),k}async function P(e){try{let{plugin:t}=await N();await t?.deleteKey({serverId:e})}catch{}}var _e={class:`flex flex-col w-full gap-6`},ve={class:`card-title`},ye={class:`flex flex-col gap-6`},be={class:`text-sm`},xe={key:1,class:`flex items-center justify-center py-8`},Se={class:`flex items-center gap-4`},Ce={class:`flex flex-col field-switch-gap`},we={class:`cui-label-switch`},Te={key:0,class:`flex items-center gap-4`},Ee={class:`flex flex-col field-switch-gap min-w-0`},De={class:`cui-label-switch`},Oe={key:1,class:`flex items-center gap-4`},ke={class:`flex flex-col field-switch-gap min-w-0`},Ae={class:`cui-label-switch`},je={key:2,class:`flex flex-col gap-2`},Me={class:`flex items-center gap-4`},Ne={class:`flex flex-col field-switch-gap`},Pe={class:`cui-label-switch`},Fe={key:0,class:`grid grid-cols-1 sm:grid-cols-3 gap-3 mt-2`},Ie={class:`flex flex-col field-gap`},Le={for:`qh-from`,class:`cui-label`},Re={class:`flex flex-col field-gap`},ze={for:`qh-to`,class:`cui-label`},Be={class:`flex flex-col field-gap`},Ve={for:`qh-tz`,class:`cui-label`},He={key:0},Ue={class:`card-title`},We={class:`flex flex-col gap-6`},Ge={class:`text-sm`},Ke={key:0,class:`flex items-center justify-center py-8`},qe={key:1,class:`text-sm text-muted text-center py-8`},Je={key:2,class:`flex flex-col gap-3`},Ye={class:`flex items-center gap-4`},Xe={class:`flex flex-col field-switch-gap`},Ze={class:`cui-label-switch`},Qe={key:1},$e={class:`card-title`},et={class:`flex flex-col gap-6`},tt={class:`text-sm`},nt={key:0,class:`flex items-center justify-center py-8`},rt={key:1,class:`text-sm text-muted text-center py-8`},it={key:2,class:`flex flex-col gap-3`},at={class:`flex items-center gap-4`},ot={class:`flex flex-col field-switch-gap`},st={class:`cui-label-switch`},ct={key:2},lt={class:`card-title`},ut={class:`flex flex-col gap-6`},dt={class:`text-sm`},ft={key:0,class:`flex items-center justify-center py-8`},pt={key:1,class:`text-sm text-muted text-center py-8`},mt={key:3,class:`flex justify-end gap-2`},F=_({__name:`SettingsNotifications`,setup(c){let _=new D,{t:T,te:O}=t(),k=a(),A=o(void 0,`admin`),{registerForPush:ge,forgetIfThisDevice:j,isServerSynced:M}=he(),{isElectronApp:N,electron:P}=E(),{states:F,refresh:ht}=me(),{data:I,isLoading:gt}=_.getSettingsQuery(),{data:L,isLoading:_t}=_.listDevicesQuery(()=>!0),{data:R,isLoading:z}=_.listSourcesQuery(),{mutate:vt,isPending:yt}=_.setSettingsQuery(),{mutateAsync:bt}=_.setSettingsQuerySilent(),{mutate:xt}=_.revokeDeviceQuery(),{mutate:B}=_.updateDeviceQuery(),V=Intl.DateTimeFormat().resolvedOptions().timeZone||`UTC`,H=p(null),U=p(``),W=p(!1),G=p(!1),K=p(!1),q=p(!0),J=p(!1),Y=p(null),X=x({}),Z=p(null),St=v(()=>!!H.value&&JSON.stringify(H.value)!==U.value),Q=v(()=>!!H.value?.enabled),Ct=v(()=>yt.value),wt=v(()=>Ot(H.value?.quietHours?.from)),Tt=v(()=>Ot(H.value?.quietHours?.to));function $(e){e&&(H.value=JSON.parse(JSON.stringify(e)),U.value=JSON.stringify(e))}function Et(){$(I.value)}function Dt(e){H.value&&(e?H.value.quietHours={from:`22:00`,to:`07:00`,timezone:V}:delete H.value.quietHours)}function Ot(e){if(!e)return null;let[t,n]=e.split(`:`).map(Number);if(!Number.isFinite(t)||!Number.isFinite(n))return null;let r=new Date;return r.setHours(t,n,0,0),r}function kt(e){return e?`${String(e.getHours()).padStart(2,`0`)}:${String(e.getMinutes()).padStart(2,`0`)}`:`00:00`}function At(e,t){H.value?.quietHours&&(H.value.quietHours[e]=kt(t))}function jt(e){return H.value?.systemTypes?.[e]!==!1}function Mt(e,t){H.value&&(H.value.systemTypes||(H.value.systemTypes={}),t?delete H.value.systemTypes[e]:H.value.systemTypes[e]=!1)}function Nt(e){return H.value?.sources?.[e]!==!1}function Pt(e,t){H.value&&(H.value.sources||(H.value.sources={}),t?delete H.value.sources[e]:H.value.sources[e]=!1)}function Ft(e){let t=`views.settings.notifications.system_types.${e.type.replaceAll(`.`,`_`)}`;return O(t)?T(t):e.label}function It(){H.value&&vt({settings:H.value},{onSuccess:e=>$(e)})}async function Lt(e){if(!(!H.value||!I.value)){W.value=!0;try{$(await bt({settings:{...I.value,enabled:e}}))}catch(e){k.add({severity:`error`,detail:e,life:3e3})}finally{W.value=!1}}}async function Rt(){let e=i();G.value=e?await M(e):!1}async function zt(){if(!(!N||!P))try{q.value=await P.invoke(`get-desktop-notifications`)}catch{}}async function Bt(e){if(P){J.value=!0;try{q.value=await P.invoke(`set-desktop-notifications`,e)}catch(e){k.add({severity:`error`,detail:e,life:3e3})}finally{J.value=!1}}}async function Vt(){K.value=!0;try{await ge(),await Rt(),await _.queryClient.invalidateQueries({queryKey:[`notifications`,`devices`]})}catch(e){k.add({severity:`error`,detail:e,life:3e3})}finally{K.value=!1}}function Ht(e){Y.value=e;let t=i();xt({deviceId:e},{onSuccess:async()=>{t&&await j(t,e),Rt()},onSettled:()=>Y.value=null})}function Ut(e){let t=X[e.id];if(t==null)return;let n=t.trim();if(!n||n===e.name){delete X[e.id];return}Z.value=e.id,B({deviceId:e.id,patch:{name:n}},{onSuccess:()=>delete X[e.id],onSettled:()=>Z.value=null})}function Wt(e,t){Z.value=e,B({deviceId:e,patch:{active:t}},{onSettled:()=>Z.value=null})}return C(I,$,{immediate:!0}),y(()=>{N&&zt(),ht()}),(t,i)=>{let a=ie(`RouterLink`),o=de,c=r,p=se,_=n,v=e,y=te,x=ne,C=ue,T=ce,E=le,D=fe,me=pe,O=ee;return s(),f(`div`,null,[u(`div`,_e,[u(`div`,null,[u(`span`,ve,d(t.$t(`views.settings.notifications.general`)),1),S(x,{class:`cui-card`},{content:l(()=>[u(`div`,ye,[u(`span`,be,d(t.$t(`views.settings.notifications.general_info`)),1),g(F).notifications===`denied`?(s(),b(o,{key:0,severity:`warn`,size:`small`},{default:l(()=>[h(d(t.$t(`views.settings.notifications.os_permission_denied`))+` `,1),S(a,{to:`/settings/permissions`,class:`underline`},{default:l(()=>[h(d(t.$t(`views.settings.notifications.os_permission_link`)),1)]),_:1})]),_:1})):w(``,!0),g(gt)&&!g(H)?(s(),f(`div`,xe,[S(c,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):g(H)?(s(),f(m,{key:2},[u(`div`,Se,[u(`div`,Ce,[u(`label`,we,d(t.$t(`views.settings.notifications.enable`)),1),S(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:l(()=>[h(d(t.$t(`views.settings.notifications.enable_info`)),1)]),_:1})]),S(p,{"model-value":g(H).enabled,loading:g(W),class:`ml-auto shrink-0`,"onUpdate:modelValue":Lt},null,8,[`model-value`,`loading`])]),g(!1)&&g(H).enabled?(s(),f(`div`,Te,[u(`div`,Ee,[u(`label`,De,d(t.$t(`views.settings.notifications.this_device`)),1),S(o,{severity:g(G)?`secondary`:`warn`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:l(()=>[h(d(g(G)?t.$t(`views.settings.notifications.this_device_synced`):t.$t(`views.settings.notifications.this_device_unsynced`)),1)]),_:1},8,[`severity`])]),S(_,{severity:g(G)?`secondary`:void 0,loading:g(K),class:`cui-button-small ml-auto shrink-0`,label:g(G)?t.$t(`views.settings.notifications.resync`):t.$t(`views.settings.notifications.sync`),onClick:Vt},null,8,[`severity`,`loading`,`label`])])):g(N)&&g(H).enabled?(s(),f(`div`,Oe,[u(`div`,ke,[u(`label`,Ae,d(t.$t(`views.settings.notifications.this_device`)),1),S(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:l(()=>[h(d(t.$t(`views.settings.notifications.this_device_desktop`)),1)]),_:1})]),S(p,{"model-value":g(q),loading:g(J),class:`ml-auto shrink-0`,"onUpdate:modelValue":Bt},null,8,[`model-value`,`loading`])])):w(``,!0),g(H).enabled?(s(),f(`div`,je,[u(`div`,Me,[u(`div`,Ne,[u(`label`,Pe,d(t.$t(`views.settings.notifications.quiet_hours`)),1),S(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:l(()=>[h(d(t.$t(`views.settings.notifications.quiet_hours_info`)),1)]),_:1})]),S(p,{"model-value":!!g(H).quietHours,class:`ml-auto shrink-0`,"onUpdate:modelValue":Dt},null,8,[`model-value`])]),g(H).quietHours?(s(),f(`div`,Fe,[u(`div`,Ie,[u(`label`,Le,d(t.$t(`views.settings.notifications.from`)),1),S(v,{"input-id":`qh-from`,"model-value":g(wt),"time-only":``,"show-icon":``,"icon-display":`input`,class:`w-full`,"onUpdate:modelValue":i[0]||=e=>At(`from`,e)},null,8,[`model-value`])]),u(`div`,Re,[u(`label`,ze,d(t.$t(`views.settings.notifications.to`)),1),S(v,{"input-id":`qh-to`,"model-value":g(Tt),"time-only":``,"show-icon":``,"icon-display":`input`,class:`w-full`,"onUpdate:modelValue":i[1]||=e=>At(`to`,e)},null,8,[`model-value`])]),u(`div`,Be,[u(`label`,Ve,d(t.$t(`views.settings.notifications.timezone`)),1),S(y,{id:`qh-tz`,modelValue:g(H).quietHours.timezone,"onUpdate:modelValue":i[2]||=e=>g(H).quietHours.timezone=e,placeholder:g(V)},null,8,[`modelValue`,`placeholder`])])])):w(``,!0)])):w(``,!0)],64)):w(``,!0)])]),_:1})]),g(Q)&&g(A)?(s(),f(`div`,He,[u(`span`,Ue,d(t.$t(`views.settings.notifications.system_notifications`)),1),S(x,{class:`cui-card`},{content:l(()=>[u(`div`,We,[u(`span`,Ge,d(t.$t(`views.settings.notifications.system_notifications_info`)),1),g(z)&&!g(R)?(s(),f(`div`,Ke,[S(c,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):g(R)?.system?.length?(s(),f(`div`,Je,[(s(!0),f(m,null,re(g(R).system,(e,t)=>(s(),f(`div`,{key:e.type},[u(`div`,Ye,[u(`div`,Xe,[u(`label`,Ze,d(Ft(e)),1),e.description?(s(),b(o,{key:0,severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:l(()=>[h(d(e.description),1)]),_:2},1024)):w(``,!0)]),S(p,{"model-value":jt(e.type),class:`ml-auto shrink-0`,"onUpdate:modelValue":t=>Mt(e.type,t)},null,8,[`model-value`,`onUpdate:modelValue`])]),t<g(R).system.length-1?(s(),b(C,{key:0,class:`my-2`})):w(``,!0)]))),128))])):(s(),f(`div`,qe,d(t.$t(`views.settings.notifications.no_system_types`)),1))])]),_:1})])):w(``,!0),g(Q)?(s(),f(`div`,Qe,[u(`span`,$e,d(t.$t(`views.settings.notifications.plugin_notifications`)),1),S(x,{class:`cui-card`},{content:l(()=>[u(`div`,et,[u(`span`,tt,d(t.$t(`views.settings.notifications.plugin_notifications_info`)),1),g(z)&&!g(R)?(s(),f(`div`,nt,[S(c,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):g(R)?.plugins?.length?(s(),f(`div`,it,[(s(!0),f(m,null,re(g(R).plugins,(e,t)=>(s(),f(`div`,{key:e.id},[u(`div`,at,[u(`div`,ot,[u(`label`,st,d(e.name),1)]),S(p,{"model-value":Nt(e.id),class:`ml-auto shrink-0`,"onUpdate:modelValue":t=>Pt(e.id,t)},null,8,[`model-value`,`onUpdate:modelValue`])]),t<g(R).plugins.length-1?(s(),b(C,{key:0,class:`my-2`})):w(``,!0)]))),128))])):(s(),f(`div`,rt,d(t.$t(`views.settings.notifications.no_plugin_sources`)),1))])]),_:1})])):w(``,!0),g(Q)?(s(),f(`div`,ct,[u(`span`,lt,d(t.$t(`views.settings.notifications.devices`)),1),S(x,{class:`cui-card`},{content:l(()=>[u(`div`,ut,[u(`span`,dt,d(t.$t(`views.settings.notifications.devices_info`)),1),g(_t)&&!g(L)?(s(),f(`div`,ft,[S(c,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):g(L)?.length?(s(),b(me,{key:2,value:g(L),"striped-rows":``},{default:l(()=>[S(T,{field:`name`,header:t.$t(`views.settings.notifications.col_name`)},{body:l(({data:e})=>[S(y,{"model-value":g(X)[e.id]??e.name,disabled:g(Z)===e.id,class:`w-full max-w-xs min-w-[150px]`,"onUpdate:modelValue":t=>g(X)[e.id]=t??``,onBlur:t=>Ut(e),onKeyup:ae(t=>Ut(e),[`enter`])},null,8,[`model-value`,`disabled`,`onUpdate:modelValue`,`onBlur`,`onKeyup`])]),_:1},8,[`header`]),S(T,{field:`pluginName`,header:t.$t(`views.settings.notifications.col_plugin`)},{body:l(({data:e})=>[S(E,{label:e.pluginName,class:`text-xs`},null,8,[`label`])]),_:1},8,[`header`]),S(T,{field:`active`,header:t.$t(`views.settings.notifications.col_active`),style:{width:`7rem`}},{body:l(({data:e})=>[S(p,{"model-value":e.active,loading:g(Z)===e.id,"onUpdate:modelValue":t=>Wt(e.id,t)},null,8,[`model-value`,`loading`,`onUpdate:modelValue`])]),_:1},8,[`header`]),S(T,{field:`actions`,header:``,style:{width:`6rem`}},{body:l(({data:e})=>[oe((s(),b(_,{severity:`danger`,text:``,rounded:``,class:`cui-icon-md`,loading:g(Y)===e.id,onClick:t=>Ht(e.id)},{icon:l(()=>[S(D,{width:`100%`,height:`100%`})]),_:1},8,[`loading`,`onClick`])),[[O,{value:t.$t(`views.settings.notifications.revoke`)}]])]),_:1})]),_:1},8,[`value`])):(s(),f(`div`,pt,d(t.$t(`views.settings.notifications.no_devices`)),1))])]),_:1})])):w(``,!0),g(H)&&g(St)?(s(),f(`div`,mt,[S(_,{severity:`secondary`,outlined:``,class:`cui-button-medium`,disabled:g(Ct),label:t.$t(`views.settings.notifications.reset`),onClick:Et},null,8,[`disabled`,`label`]),S(_,{severity:`success`,class:`cui-button-medium`,loading:g(Ct),label:t.$t(`views.settings.notifications.save`),onClick:It},null,8,[`loading`,`label`])])):w(``,!0)])])}}});export{F as default};
@@ -1 +1 @@
1
- import{F as e,Kr as t,Ot as n}from"./vendor-cameraui-Cgb5z6NJ.js";import{Fn as r,Nn as i,Xn as a,an as o,br as s,cn as c,cr as l,en as u,fn as d,gr as f,hn as p,jn as m,on as h,pn as g,sn as _}from"./vendor-CSg6_Jfu.js";import{B as v,a as y}from"./vendor-primevue-JQ8abUl5.js";import{t as b}from"./usePermissions-C3D3JcPH.js";var x={class:`flex flex-col w-full gap-6`},S={class:`card-title`},C={class:`flex flex-col gap-6`},w={class:`text-sm`},T={class:`flex flex-col field-switch-gap min-w-0`},E={class:`cui-label-switch`},D={class:`flex items-center gap-2 ml-auto shrink-0`},O=p({__name:`SettingsPermissions`,setup(p){let{states:O,canOpenSettings:k,refresh:A,request:j,openSettings:M}=b(),N=[{name:`microphone`},{name:`location`},{name:`notifications`}],P=l(null);function F(e){return e===`granted`?`success`:e===`denied`?`danger`:e===`prompt`?`warn`:`secondary`}async function I(e){P.value=e;try{await j(e)}finally{P.value=null}}return t(document,`visibilitychange`,()=>{document.visibilityState===`visible`&&A()}),m(()=>{A()}),(t,l)=>{let p=v,m=y,b=n,A=e;return i(),c(`div`,null,[o(`div`,x,[o(`div`,null,[o(`span`,S,s(t.$t(`views.settings.permissions.general`)),1),g(A,{class:`cui-card`},{content:a(()=>[o(`div`,C,[o(`span`,w,s(t.$t(`views.settings.permissions.general_info`)),1),(i(),c(u,null,r(N,e=>o(`div`,{key:e.name,class:`flex items-center gap-4`},[o(`div`,T,[o(`label`,E,s(t.$t(`views.settings.permissions.${e.name}`)),1),g(p,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:a(()=>[d(s(t.$t(`views.settings.permissions.${e.name}_info`)),1)]),_:2},1024),f(O)[e.name]===`denied`&&!f(k)?(i(),h(p,{key:0,severity:`warn`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:a(()=>[d(s(t.$t(`views.settings.permissions.browser_hint`)),1)]),_:1})):_(``,!0)]),o(`div`,D,[g(m,{severity:F(f(O)[e.name]),value:t.$t(`views.settings.permissions.state_${f(O)[e.name]}`)},null,8,[`severity`,`value`]),f(O)[e.name]===`prompt`||f(O)[e.name]===`unknown`?(i(),h(b,{key:0,loading:f(P)===e.name,class:`cui-button-small`,label:t.$t(`views.settings.permissions.request`),onClick:t=>I(e.name)},null,8,[`loading`,`label`,`onClick`])):f(O)[e.name]===`denied`&&f(k)?(i(),h(b,{key:1,severity:`secondary`,class:`cui-button-small`,label:t.$t(`views.settings.permissions.open_settings`),onClick:f(M)},null,8,[`label`,`onClick`])):_(``,!0)])])),64))])]),_:1})])])])}}});export{O as default};
1
+ import{Mt as e,Yr as t,z as n}from"./vendor-cameraui-DojVuZ2L.js";import{Fn as r,Nn as i,Xn as a,an as o,br as s,cn as c,cr as l,en as u,fn as d,gr as f,hn as p,jn as m,on as h,pn as g,sn as _}from"./vendor-JQXDMBA-.js";import{a as v,z as y}from"./vendor-primevue-C0acGg0Y.js";import{t as b}from"./usePermissions-B_C-zX5H.js";var x={class:`flex flex-col w-full gap-6`},S={class:`card-title`},C={class:`flex flex-col gap-6`},w={class:`text-sm`},T={class:`flex flex-col field-switch-gap min-w-0`},E={class:`cui-label-switch`},D={class:`flex items-center gap-2 ml-auto shrink-0`},O=p({__name:`SettingsPermissions`,setup(p){let{states:O,canOpenSettings:k,refresh:A,request:j,openSettings:M}=b(),N=[{name:`microphone`},{name:`location`},{name:`notifications`}],P=l(null);function F(e){return e===`granted`?`success`:e===`denied`?`danger`:e===`prompt`?`warn`:`secondary`}async function I(e){P.value=e;try{await j(e)}finally{P.value=null}}return t(document,`visibilitychange`,()=>{document.visibilityState===`visible`&&A()}),m(()=>{A()}),(t,l)=>{let p=y,m=v,b=e,A=n;return i(),c(`div`,null,[o(`div`,x,[o(`div`,null,[o(`span`,S,s(t.$t(`views.settings.permissions.general`)),1),g(A,{class:`cui-card`},{content:a(()=>[o(`div`,C,[o(`span`,w,s(t.$t(`views.settings.permissions.general_info`)),1),(i(),c(u,null,r(N,e=>o(`div`,{key:e.name,class:`flex items-center gap-4`},[o(`div`,T,[o(`label`,E,s(t.$t(`views.settings.permissions.${e.name}`)),1),g(p,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:a(()=>[d(s(t.$t(`views.settings.permissions.${e.name}_info`)),1)]),_:2},1024),f(O)[e.name]===`denied`&&!f(k)?(i(),h(p,{key:0,severity:`warn`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:a(()=>[d(s(t.$t(`views.settings.permissions.browser_hint`)),1)]),_:1})):_(``,!0)]),o(`div`,D,[g(m,{severity:F(f(O)[e.name]),value:t.$t(`views.settings.permissions.state_${f(O)[e.name]}`)},null,8,[`severity`,`value`]),f(O)[e.name]===`prompt`||f(O)[e.name]===`unknown`?(i(),h(b,{key:0,loading:f(P)===e.name,class:`cui-button-small`,label:t.$t(`views.settings.permissions.request`),onClick:t=>I(e.name)},null,8,[`loading`,`label`,`onClick`])):f(O)[e.name]===`denied`&&f(k)?(i(),h(b,{key:1,severity:`secondary`,class:`cui-button-small`,label:t.$t(`views.settings.permissions.open_settings`),onClick:f(M)},null,8,[`label`,`onClick`])):_(``,!0)])])),64))])]),_:1})])])])}}});export{O as default};
@@ -0,0 +1 @@
1
+ import{Mr as e,Ot as t,Pt as n,Rt as r,St as ee,h as i,vt as a,z as te}from"./vendor-cameraui-DojVuZ2L.js";import{Rt as o,ar as s,ft as c}from"./api-Draww2tC.js";import{Nn as l,Xn as u,Zn as ne,an as d,br as f,cn as p,fn as m,gr as h,hn as g,in as _,on as v,pn as y,qn as b,sn as x,yr as re}from"./vendor-JQXDMBA-.js";import{S as ie,T as ae}from"./vendor-primevue-C0acGg0Y.js";import{t as oe}from"./CuiSchema-DKATswRc.js";import{t as se}from"./CuiDataTable-CQhCu0px.js";import{t as ce}from"./alert-outline-CeoXcnQc.js";import{l as S,n as le,o as C,r as ue,s as de}from"./vendor-chart-KrNcA52y.js";import{t as fe}from"./CuiPluginOAuthButton-LYMFfb3v.js";var w={class:`flex flex-col w-full gap-6`},T={key:0,class:`cui-banner cui-banner-error`},E={key:1,class:`cui-banner cui-banner-warn`},D={key:2,class:`cui-banner cui-banner-warn`},O={class:`card-title`},k={class:`flex items-center justify-between gap-4`},A={class:`min-w-0`},j={class:`text-sm`},M={class:`text-xs text-muted-color mt-1`},N={class:`card-title`},P={key:0,class:`flex items-center justify-center py-8`},F={key:1,class:`text-sm text-muted text-center py-8`},I={key:2,class:`flex flex-col sm:flex-row items-center gap-6`},L={class:`shrink-0`,style:{width:`180px`,height:`180px`}},R={class:`text-color`},z={class:`font-medium`},B={class:`card-title`},V={key:1,class:`flex items-center justify-center py-8`},pe={key:2,class:`text-sm text-muted text-center py-8`},me={class:`card-title`},he={key:0,class:`flex items-center justify-center py-8`},ge={key:1,class:`text-sm text-muted text-center py-8`},_e={class:`flex items-center justify-center`},ve={class:`font-medium`},ye={class:`text-muted text-sm`},H=`@camera.ui/camera-ui-nvr`,U=g({__name:`SettingsRecordings`,setup(g){C.register(de,ue,S);let U=new c,{t:W}=e(),G=s(),{stats:K,isLoading:q,refresh:J}=i(),{state:Y}=a(H),{isConnected:be,isLoading:X,config:Z,getConfig:xe,setConfig:Se,setValue:Ce,submitValue:we}=ee(H),Te=_(()=>{switch(Y.value.status){case`connected`:return W(`components.oauth.connected_as`,{email:Y.value.userEmail||`—`});case`awaiting_user`:case`polling`:return W(`components.oauth.tooltip_authorizing`);case`error`:return W(`components.oauth.error_generic`);default:return W(`views.settings.recordings.license_disconnected`)}}),{data:Ee}=U.getCamerasQuery({page:1,pageSize:-1}),Q={bodyRow:{class:`text-sm text-secondary`},column:{columnTitle:{class:`text-sm`}}},De=_(()=>{let e=new Map;for(let t of Ee.value?.result??[])e.set(t._id,t.name);return e}),Oe=_(()=>K.value?.cameras?Object.entries(K.value.cameras).map(([e,t])=>({id:e,name:De.value.get(e)||e,usedBytes:t.usedBytes,segmentCount:t.segmentCount,oldestDay:t.oldestDay,newestDay:t.newestDay,daysCount:t.daysCount,bandwidthMBh:t.bandwidthMBh,recordingMode:t.recordingMode,isRecording:t.isRecording})).sort((e,t)=>t.usedBytes-e.usedBytes):[]),ke=_(()=>K.value?[{label:W(`views.settings.recordings.disk_total`),value:$(K.value.diskTotalGB)},{label:W(`views.settings.recordings.nvr_usage`),value:$(K.value.nvrUsedGB)},{label:W(`views.settings.recordings.quota`),value:K.value.nvrQuotaGB>0?$(K.value.nvrQuotaGB):W(`views.settings.recordings.unlimited`)},{label:W(`views.settings.recordings.retention`),value:K.value.retentionDays>0?W(`views.settings.recordings.days_count`,{count:K.value.retentionDays}):W(`views.settings.recordings.unlimited`)},{label:W(`views.settings.recordings.disk_free`),value:`${$(K.value.diskFreeGB)} (${K.value.diskFreePercent.toFixed(1)}%)`}]:[]),Ae=_(()=>{let e=K.value?.nvrUsedGB??0,t=K.value?.diskFreeGB??0,n=Math.max(0,(K.value?.diskUsedGB??0)-e),r=e===0&&n===0&&t===0;return{labels:[W(`views.settings.recordings.chart_nvr`),W(`views.settings.recordings.chart_other`),W(`views.settings.recordings.chart_free`)],datasets:[{data:r?[0,0,1]:[e,n,t],backgroundColor:[`#df2a4c`,`rgba(223,42,76,0.35)`,`rgba(223,42,76,0.10)`],borderWidth:0}]}}),je=_(()=>({responsive:!0,maintainAspectRatio:!0,cutout:`65%`,animation:!1,plugins:{legend:{display:!1},tooltip:{callbacks:{label:e=>`${e.label}: ${$(e.parsed)}`}}}}));async function Me(e){try{await Ce(e.key,void 0),G.add({severity:`success`,detail:W(`components.toast.config_updated`),life:3e3}),J()}catch(e){G.add({severity:`error`,detail:e,life:3e3})}}async function Ne(e){try{let t=await we(e.key,e.payload);t?.toast?G.add({severity:t.toast.type,detail:t.toast.message,life:3e3}):G.add({severity:`success`,detail:W(`components.toast.config_updated`),life:3e3}),J()}catch(e){G.add({severity:`error`,detail:e,life:3e3})}}async function Pe(e){try{await Se(e),G.add({severity:`success`,detail:W(`components.toast.config_updated`),life:3e3}),J()}catch(e){G.add({severity:`error`,detail:e,life:3e3})}}function $(e){return e>=1e3?`${(e/1e3).toFixed(2)} TB`:e>=1?`${e.toFixed(2)} GB`:`${(e*1e3).toFixed(0)} MB`}function Fe(e){return e>=0xe8d4a51000?`${(e/0xe8d4a51000).toFixed(2)} TB`:e>=1e9?`${(e/1e9).toFixed(2)} GB`:e>=1e6?`${(e/1e6).toFixed(0)} MB`:`${(e/1e3).toFixed(0)} KB`}function Ie(e){let t=e*24/1e3;return t>=1?`${t.toFixed(1)} GB/d`:`${(t*1e3).toFixed(0)} MB/d`}return b(be,async e=>{e&&await xe()},{immediate:!0}),(e,ee)=>{let i=o,a=ce,s=te,c=t,g=ie,_=se,b=n,S=ae,C=r;return l(),p(`div`,null,[d(`div`,w,[h(K)&&h(K).paused===!0?(l(),p(`div`,T,[y(i,{class:`shrink-0 w-5 h-5`}),d(`span`,null,f(e.$t(`views.settings.recordings.disk_critical`)),1)])):h(K)&&h(K).diskFreePercent>0&&h(K).diskFreePercent<8?(l(),p(`div`,E,[y(a,{class:`shrink-0 w-5 h-5`}),d(`span`,null,f(e.$t(`views.settings.recordings.disk_warning`)),1)])):x(``,!0),h(K)&&h(K).smallVolume?(l(),p(`div`,D,[y(a,{class:`shrink-0 w-5 h-5`}),d(`span`,null,f(e.$t(`views.settings.recordings.disk_small_volume`)),1)])):x(``,!0),d(`div`,null,[d(`span`,O,f(e.$t(`views.settings.recordings.license_title`)),1),y(s,{class:`cui-card`},{content:u(()=>[d(`div`,k,[d(`div`,A,[d(`p`,j,f(h(Te)),1),d(`p`,M,f(e.$t(`views.settings.recordings.license_description`)),1)]),y(fe,{"plugin-name":H,class:`flex-shrink-0`})])]),_:1})]),d(`div`,null,[d(`span`,N,f(e.$t(`views.settings.recordings.storage_overview`)),1),y(s,{class:`cui-card`},{content:u(()=>[h(q)&&!h(K)?(l(),p(`div`,P,[y(c,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):h(K)?(l(),p(`div`,I,[d(`div`,L,[y(h(le),{data:h(Ae),options:h(je)},null,8,[`data`,`options`])]),y(_,{value:h(ke),pt:Q,"striped-rows":``,"show-headers":!1,class:`w-full`},{default:u(()=>[y(g,{field:`label`},{body:u(({data:e})=>[d(`span`,R,f(e.label),1)]),_:1}),y(g,{field:`value`,style:{"text-align":`right`}},{body:u(({data:e})=>[d(`span`,z,f(e.value),1)]),_:1})]),_:1},8,[`value`])])):(l(),p(`div`,F,f(e.$t(`views.settings.recordings.not_available`)),1))]),_:1})]),d(`div`,null,[d(`span`,B,f(e.$t(`views.settings.recordings.global_settings`)),1),y(s,{class:`cui-card`},{content:u(()=>[h(Z)?(l(),v(oe,{key:0,"schema-form":{schema:h(Z).schema,config:h(Z).config},loading:h(X),"save-button-color":`success`,onOnAction:Me,onOnSubmit:Ne,onOnFormSubmit:Pe},null,8,[`schema-form`,`loading`])):h(q)||h(X)?(l(),p(`div`,V,[y(c,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):(l(),p(`div`,pe,f(e.$t(`views.settings.recordings.not_available`)),1))]),_:1})]),d(`div`,null,[d(`span`,me,f(e.$t(`views.settings.recordings.camera_storage`)),1),y(s,{class:`cui-card`},{content:u(()=>[h(q)&&!h(K)?(l(),p(`div`,he,[y(c,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):h(K)?(l(),v(_,{key:2,value:h(Oe),pt:Q,"striped-rows":``,scrollable:``},{empty:u(()=>[d(`span`,ye,f(e.$t(`views.settings.recordings.no_cameras`)),1)]),default:u(()=>[y(g,{field:`status`,header:``,style:{width:`3rem`}},{body:u(({data:t})=>[d(`div`,_e,[ne(y(b,{style:re({background:t.isRecording?`green`:`gray`})},null,8,[`style`]),[[C,{value:t.isRecording?e.$t(`views.settings.recordings.status_recording`):e.$t(`views.settings.recordings.status_stopped`)}]])])]),_:1}),y(g,{field:`name`,header:e.$t(`views.settings.recordings.col_camera`)},{body:u(({data:e})=>[d(`span`,ve,f(e.name),1)]),_:1},8,[`header`]),y(g,{field:`size`,header:e.$t(`views.settings.recordings.col_size`)},{body:u(({data:e})=>[m(f(Fe(e.usedBytes)),1)]),_:1},8,[`header`]),y(g,{field:`daysCount`,header:e.$t(`views.settings.recordings.col_days`)},null,8,[`header`]),y(g,{field:`rate`,header:e.$t(`views.settings.recordings.col_rate`)},{body:u(({data:e})=>[m(f(e.bandwidthMBh>0?Ie(e.bandwidthMBh):`-`),1)]),_:1},8,[`header`]),y(g,{field:`recordingMode`,header:e.$t(`views.settings.recordings.col_mode`)},{body:u(({data:e})=>[y(S,{label:e.recordingMode,class:`text-xs`},null,8,[`label`])]),_:1},8,[`header`])]),_:1},8,[`value`])):(l(),p(`div`,ge,f(e.$t(`views.settings.recordings.not_available`)),1))]),_:1})])])])}}});export{U as default};
@@ -0,0 +1 @@
1
+ import{Mr as e,Mt as t,Ot as n,Rt as r,k as ee,z as te}from"./vendor-cameraui-DojVuZ2L.js";import{In as i,Ln as ne,ar as a,dr as o,dt as re,i as s,it as ie,mn as ae,mr as c,nt as oe,o as l,or as u,rr as d,ut as se}from"./api-Draww2tC.js";import{Nn as f,On as ce,U as p,Xn as m,Zn as le,_r as ue,an as h,b as de,br as g,cn as _,cr as v,en as y,fn as b,gr as x,hn as S,in as C,ir as w,on as T,pn as E,q as fe,qn as D,qt as O,rr as k,sn as A,v as j,wn as pe,y as M,zn as me}from"./vendor-JQXDMBA-.js";import{a as he}from"./useElectron-BXVcamD0.js";import{B as N,z as P}from"./types-BGMvANrz.js";import{K as ge,L as _e,R as ve,a as ye,j as be,l as xe,s as Se,z as Ce}from"./vendor-primevue-C0acGg0Y.js";import{t as we}from"./server-BSYs0zoo.js";import{t as Te}from"./CuiQRCode-B4ysluWR.js";var Ee={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function F(e,t){return f(),_(`svg`,Ee,[...t[0]||=[h(`path`,{fill:`currentColor`,d:`M20.454 21.87L17.612 19H6.5q-1.896 0-3.198-1.302T2 14.5q0-1.829 1.226-3.098t2.87-1.368q.018-.373.208-.925q.19-.553.438-.951l-3.88-3.881l.707-.708l17.593 17.593zm.454-3.812L8.78 5.937q.875-.523 1.612-.73T12 5q2.502 0 4.251 1.749T18 11v1h.616q1.436.046 2.41 1.055T22 15.5q0 .687-.25 1.332t-.842 1.226`},null,-1)]])}var De=w({name:`material-symbols-light-cloud-off`,render:F}),Oe={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function ke(e,t){return f(),_(`svg`,Oe,[...t[0]||=[h(`path`,{fill:`currentColor`,d:`m9.55 18l-5.7-5.7l1.425-1.425L9.55 15.15l9.175-9.175L20.15 7.4z`},null,-1)]])}var Ae=w({name:`material-symbols-check`,render:ke}),je={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function I(e,t){return f(),_(`svg`,je,[...t[0]||=[h(`path`,{fill:`currentColor`,d:`M20.5 16H15v-1h4c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2H5c-1.1 0-2 .9-2 2v9c0 1.1.9 2 2 2h4v1H3.5c-.83 0-1.5.67-1.5 1.5v3c0 .83.67 1.5 1.5 1.5h17c.83 0 1.5-.67 1.5-1.5v-3c0-.83-.67-1.5-1.5-1.5M5 4h14v9H5zm10 16H5v-2h10zm3 0c-.55 0-1-.45-1-1s.45-1 1-1s1 .45 1 1s-.45 1-1 1`,class:`b`},null,-1)]])}var Me=w({name:`boxicons-computer-filled`,render:I}),Ne={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function Pe(e,t){return f(),_(`svg`,Ne,[...t[0]||=[h(`path`,{fill:`currentColor`,d:`M17.9 17.39c-.26-.8-1.01-1.39-1.9-1.39h-1v-3a1 1 0 0 0-1-1H8v-2h2a1 1 0 0 0 1-1V7h2a2 2 0 0 0 2-2v-.41a7.984 7.984 0 0 1 2.9 12.8M11 19.93c-3.95-.49-7-3.85-7-7.93c0-.62.08-1.22.21-1.79L9 15v1a2 2 0 0 0 2 2m1-16A10 10 0 0 0 2 12a10 10 0 0 0 10 10a10 10 0 0 0 10-10A10 10 0 0 0 12 2`},null,-1)]])}var Fe=w({name:`mdi-earth`,render:Pe}),Ie={viewBox:`0 0 24 24`,width:`1.2em`,height:`1.2em`};function Le(e,t){return f(),_(`svg`,Ie,[...t[0]||=[h(`path`,{fill:`currentColor`,d:`M10 2c-1.11 0-2 .89-2 2v3c0 1.11.89 2 2 2h1v2H2v2h4v2H5c-1.11 0-2 .89-2 2v3c0 1.11.89 2 2 2h4c1.11 0 2-.89 2-2v-3c0-1.11-.89-2-2-2H8v-2h8v2h-1c-1.11 0-2 .89-2 2v3c0 1.11.89 2 2 2h4c1.11 0 2-.89 2-2v-3c0-1.11-.89-2-2-2h-1v-2h4v-2h-9V9h1c1.11 0 2-.89 2-2V4c0-1.11-.89-2-2-2zm0 2h4v3h-4zM5 17h4v3H5zm10 0h4v3h-4z`},null,-1)]])}var Re=w({name:`mdi-lan`,render:Le});async function ze({signal:e}){return(await c.get(`/remote`,{signal:e})).data}async function Be(e){return(await c.patch(`/remote`,e)).data}async function Ve(e){return(await c.post(`/remote/pair/init`,e?{name:e}:{})).data}async function He({name:e}={}){return(await c.post(`/remote/pair/poll`,e?{name:e}:{})).data}async function Ue(){await c.delete(`/remote/unregister`)}async function We({signal:e}){return(await c.get(`/remote/status`,{signal:e})).data}async function Ge(e){await c.patch(`/remote/name`,{name:e})}async function Ke({signal:e}){return(await c.get(`/remote/tunnel`,{signal:e})).data}async function L({signal:e}={}){return(await c.get(`/remote/connection-info`,{signal:e})).data}async function R(e){return(await c.post(`/remote/test/${e}`)).data}async function qe({signal:e}={}){return(await c.get(`/remote/cloudflare/managed/status`,{signal:e})).data}async function Je(e){await c.post(`/remote/cloudflare/managed/connect`,{hostname:e})}async function Ye(){await c.post(`/remote/cloudflare/managed/cancel`)}async function Xe(){await c.post(`/remote/cloudflare/managed/disconnect`)}async function Ze(){await c.post(`/remote/cloudflare/managed/logout`)}var Qe=class{_queryClient=fe();t=u.global.t;toast=a();queryActivator=v([{name:`getRemoteInfoQuery`,enabled:!0},{name:`getRegistrationStatusQuery`,enabled:!0},{name:`getTunnelStatusQuery`,enabled:!0},{name:`getConnectionInfoQuery`,enabled:!0},{name:`getCloudflareManagedStatusQuery`,enabled:!0}]);get queryClient(){return this._queryClient}getRemoteInfoQuery(){return d({queryKey:[`remote`],queryFn:({signal:e})=>ze({signal:e}),enabled:()=>this.queryActivator.value.some(e=>e.name===`getRemoteInfoQuery`&&e.enabled),staleTime:1e3})}patchRemoteInfoQuery(){return p({mutationFn:Be,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`remote`],exact:!0}),this.toast.add({severity:`success`,detail:this.t(`components.toast.remote_updated`),life:3e3})}})}getRegistrationStatusQuery(){return d({queryKey:[`remote`,`status`],queryFn:({signal:e})=>We({signal:e}),enabled:()=>this.queryActivator.value.some(e=>e.name===`getRegistrationStatusQuery`&&e.enabled),staleTime:1e3})}pairInitMutation(){return p({mutationFn:Ve})}pairPollMutation(){return p({mutationFn:He,onSuccess:async e=>{e.state===`confirmed`&&(await this._queryClient.refetchQueries({queryKey:[`remote`],exact:!0}),await this._queryClient.refetchQueries({queryKey:[`remote`,`status`],exact:!0}),this.toast.add({severity:`success`,detail:this.t(`components.toast.remote_registered`),life:3e3}))}})}unregisterServerQuery(){return p({mutationFn:Ue,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`remote`],exact:!0}),await this._queryClient.refetchQueries({queryKey:[`remote`,`status`],exact:!0}),this.toast.add({severity:`success`,detail:this.t(`components.toast.remote_unregistered`),life:3e3})}})}getTunnelStatusQuery(){return d({queryKey:[`remote`,`tunnel`],queryFn:({signal:e})=>Ke({signal:e}),enabled:()=>this.queryActivator.value.some(e=>e.name===`getTunnelStatusQuery`&&e.enabled),refetchInterval:3e4,staleTime:1e4})}updateServerNameQuery(){return p({mutationFn:Ge,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`remote`,`status`],exact:!0}),this.toast.add({severity:`success`,detail:this.t(`components.toast.server_name_updated`),life:3e3})}})}getConnectionInfoQuery(){return d({queryKey:[`remote`,`connection-info`],queryFn:({signal:e})=>L({signal:e}),enabled:()=>this.queryActivator.value.some(e=>e.name===`getConnectionInfoQuery`&&e.enabled),refetchInterval:1e4})}testRemoteModeMutation(){return p({mutationFn:R})}getCloudflareManagedStatusQuery(){return d({queryKey:[`remote`,`cloudflare`,`managed`],queryFn:({signal:e})=>qe({signal:e}),enabled:()=>this.queryActivator.value.some(e=>e.name===`getCloudflareManagedStatusQuery`&&e.enabled),refetchInterval:e=>{let t=e.state.data?.state;return t===`awaiting_login`||t===`creating_tunnel`||t===`setting_dns`?2e3:!1},refetchOnWindowFocus:!0,staleTime:1e3})}cloudflareManagedConnectMutation(){return p({mutationFn:Je,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`remote`,`cloudflare`,`managed`],exact:!0})}})}cloudflareManagedCancelMutation(){return p({mutationFn:Ye,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`remote`,`cloudflare`,`managed`],exact:!0})}})}cloudflareManagedDisconnectMutation(){return p({mutationFn:Xe,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`remote`],exact:!0}),await this._queryClient.refetchQueries({queryKey:[`remote`,`cloudflare`,`managed`],exact:!0})}})}cloudflareManagedLogoutMutation(){return p({mutationFn:Ze,onSuccess:async()=>{await this._queryClient.refetchQueries({queryKey:[`remote`],exact:!0}),await this._queryClient.refetchQueries({queryKey:[`remote`,`cloudflare`,`managed`],exact:!0})}})}toggleQueryActivator(e,t){let n=this.queryActivator.value.find(t=>t.name===e);return n&&(n.enabled=t),this}},$e=N,et=P,tt={class:`w-full h-full`},nt={key:0,class:`w-full h-full flex items-center justify-center`},rt={key:1,class:`flex flex-col w-full gap-6`},it={key:0},at={class:`card-title`},ot={class:`flex items-center gap-4`},st={class:`flex flex-col field-switch-gap min-w-0`},ct={class:`text-sm font-bold text-color`},lt={class:`card-title`},ut={class:`flex flex-col gap-6`},dt={class:`flex items-center gap-4`},ft={class:`flex flex-col field-switch-gap`},pt={for:`enabled`,class:`cui-label-switch`},mt={class:`flex flex-col field-gap`},ht={for:`serverName`,class:`cui-label`},gt={class:`flex items-center gap-4`},_t={class:`flex flex-col field-switch-gap`},vt={class:`text-sm`},yt={class:`ml-auto shrink-0`},bt={key:1,class:`text-sm font-bold text-amber-500`},xt={key:2,class:`text-sm font-bold`},St={key:0,class:`flex items-center gap-4`},Ct={class:`flex flex-col field-switch-gap`},wt={class:`text-sm`},Tt={class:`ml-auto shrink-0`},Et={key:`pairing`,class:`cui-toggle-switch flex flex-col gap-4`},Dt={class:`cui-pair-layout`},Ot={class:`cui-pair-qr`},kt={class:`flex flex-col gap-4 flex-1 min-w-0`},At={class:`flex flex-col field-gap`},jt={class:`cui-label`},Mt={class:`flex flex-col field-gap`},Nt={class:`cui-label`},Pt={class:`flex items-center gap-3`},Ft={class:`text-sm`},It={class:`flex items-center gap-4`},Lt={class:`flex`},Rt={class:`card-title`},zt={class:`flex flex-col gap-6`},Bt={class:`flex items-center gap-4`},Vt={class:`flex flex-col field-switch-gap`},Ht={for:`directEnabled`,class:`cui-label-switch`},Ut={class:`flex flex-col field-gap`},Wt={class:`cui-label`},Gt={for:`directMode`,class:`cui-label`},Kt={key:0,class:`cui-toggle-switch flex flex-col gap-4`},qt={class:`flex flex-col field-gap`},Jt={for:`cloudflareVariant`,class:`cui-label`},Yt={key:0,class:`flex items-center gap-3`},Xt={class:`flex flex-col field-gap`},Zt={for:`cloudflareHostname`,class:`cui-label`},Qt={class:`flex flex-col field-gap`},$t={for:`cloudflareToken`,class:`cui-label`},en={class:`flex items-center gap-3`},tn={class:`flex flex-col field-gap`},nn={for:`cloudflareHostnameManaged`,class:`cui-label`},rn={class:`flex items-center gap-3`},an={key:0,class:`cf-login-setup`},on={class:`cf-login-qr`},sn={class:`flex flex-col gap-4 flex-1 min-w-0`},cn={class:`flex flex-col field-gap`},ln={class:`cui-label`},un={class:`flex items-center gap-3`},dn={class:`text-sm`},fn={key:1,class:`flex items-center gap-3`},pn={class:`text-sm`},mn={key:2,class:`flex items-center gap-3`},hn={class:`text-sm`},gn={class:`flex flex-col field-gap`},_n={class:`cui-label`},vn={key:0,class:`flex flex-col field-gap`},yn={class:`cui-label`},bn={class:`flex items-center gap-3`},xn={key:1,class:`cui-toggle-switch flex flex-col gap-4`},Sn={for:`customDomain.url`,class:`cui-label`},Cn={class:`flex items-center gap-3`},wn={class:`card-title`},Tn={class:`flex flex-col gap-6`},En={class:`text-sm`},Dn={for:`serverAddresses`,class:`cui-label`},On=ae(S({__name:`SettingsRemote`,setup(ae){let c=new we,u=new Qe,d=he(),p=oe(),S=a(),{t:w}=e(),{data:fe,isBusy:N}=c.getServerInfoQuery(),{data:P,isBusy:Ee}=u.getRemoteInfoQuery(),{data:F,isBusy:Oe}=u.getRegistrationStatusQuery(),{data:ke,isLoading:je}=u.getTunnelStatusQuery(),{data:I}=u.getConnectionInfoQuery(),{mutateAsync:Ne,isPending:Pe}=c.patchSystemInfoQuery(),{mutateAsync:Ie,isPending:Le}=u.patchRemoteInfoQuery(),{mutateAsync:ze,isPending:Be}=u.pairInitMutation(),{mutateAsync:Ve}=u.pairPollMutation(),{mutateAsync:He,isPending:Ue}=u.unregisterServerQuery(),{mutateAsync:We,isPending:Ge}=u.updateServerNameQuery(),{mutateAsync:Ke,isPending:L}=u.testRemoteModeMutation(),{data:R}=u.getCloudflareManagedStatusQuery(),{mutateAsync:qe,isPending:Je}=u.cloudflareManagedConnectMutation(),{mutateAsync:Ye,isPending:Xe}=u.cloudflareManagedCancelMutation(),{mutateAsync:Ze,isPending:On}=u.cloudflareManagedDisconnectMutation(),{mutateAsync:kn,isPending:An}=u.cloudflareManagedLogoutMutation(),z=v(),B=v(),V=v(``),H=v(``),U=v(`quick`),W=v(``),G=v(``),jn=v(!1),K=v(null),q=v(``),Mn=v(null),Nn=v(2),Pn=v(``),J=null,Y=null,X=C(()=>Pe.value||Le.value||N.value||Ee.value||Oe.value||Ue.value),Fn=C(()=>!!(B.value?.enabled||B.value?.directEnabled)),In=C(()=>P.value?.directOverride??{active:!1,fallback:!1}),Z=C(()=>F.value?.isRegistered??!1),Ln=C(()=>F.value?.needsReauth??!1),Rn=C(()=>!X.value),zn=C(()=>{if(!Rn.value)return!1;let e=V.value.trim();return!e||e.length>100?!1:e!==(F.value?.serverName??``)}),Bn=C(()=>{if(!B.value)return!1;if(B.value.directMode===`customDomain`){let e=H.value.trim();if(!e)return!1;try{new URL(e)}catch{return!1}return e!==(P.value?.remoteSettings.customDomain.url??``)}if(B.value.directMode===`cloudflare`){let e=P.value?.remoteSettings.cloudflare,t=P.value?.remoteSettings.directMode!==`cloudflare`,n=U.value;if(n===`quick`)return t||e?.mode!==`quick`;let r=W.value.trim();if(!r||!/^[a-z0-9.-]+\.[a-z]{2,}$/i.test(r))return!1;if(n===`token`){let n=G.value.trim();if(!n&&!jn.value)return!1;let ee=n.length>0;return t||e?.mode!==`token`||e?.hostname!==r||ee}return n===`managed`?t||e?.mode!==`managed`||e?.hostname!==r:!1}return B.value.directMode!==P.value?.remoteSettings.directMode}),Vn=C(()=>[{value:`cloudflare`,label:w(`components.form.label.cloudflare`),description:w(`components.form.hint.cloudflare_mode_info`)},{value:`customDomain`,label:w(`components.form.label.custom_domain`),description:w(`components.form.hint.custom_domain_mode_info`)}]),Hn=C(()=>Vn.value.find(e=>e.value===B.value?.directMode)?.description??``),Un=C(()=>[{value:`quick`,label:w(`components.form.label.cloudflare_variant_quick`),description:w(`components.form.hint.cloudflare_variant_quick`)},{value:`token`,label:w(`components.form.label.cloudflare_variant_token`),description:w(`components.form.hint.cloudflare_variant_token`)},{value:`managed`,label:w(`components.form.label.cloudflare_variant_managed`),description:w(`components.form.hint.cloudflare_variant_managed`)}]),Wn=C(()=>Un.value.find(e=>e.value===U.value)?.description??``),Gn=C(()=>{if(U.value===`quick`)return!0;let e=P.value?.remoteSettings.cloudflare;return e?.mode===U.value&&!!e?.hostname}),Q=C(()=>R.value?.state??`idle`),Kn=C(()=>{if(Q.value!==`idle`)return!1;let e=W.value.trim();return!!e&&/^[a-z0-9.-]+\.[a-z]{2,}$/i.test(e)}),qn=C(()=>{let e=I.value?.currentConnection.type??`lan`;return w(`views.settings.connection_type.${e}`)}),Jn=C(()=>{let e=I.value?.currentConnection.type;return e===`cloud`?i:e===`external`?Fe:e===`local`?Me:Re}),Yn=C(()=>{let e=I.value?.currentConnection.type;return e===`cloud`?`text-warning`:e===`external`?`text-info`:e===`local`?`text-primary`:`text-success`});async function Xn(){let e=V.value.trim();if(e)try{await We(e)}catch{}}function Zn(){p.openTextDialog({data:{title:w(`components.dialog.title.unregister_server`),confirmText:w(`components.form.button.unregister`),contentText:w(`components.dialog.message.confirm_unregister_server`),loading:X},onConfirm:async()=>{try{await He()}catch{}}})}function Qn(){J&&=(clearTimeout(J),null),Y&&=(clearInterval(Y),null)}function $(){Qn(),K.value=null,q.value=``,Mn.value=null,Pn.value=``}function $n(e){let t=Math.max(0,Math.floor(e/1e3));return`${Math.floor(t/60)}:${(t%60).toString().padStart(2,`0`)}`}function er(){Y&&clearInterval(Y);let e=()=>{if(!Mn.value)return;let e=Mn.value-Date.now();if(e<=0){$(),S.add({severity:`warn`,detail:w(`components.toast.pair_expired`),life:3e3});return}Pn.value=$n(e)};e(),Y=setInterval(e,1e3)}function tr(){J&&clearTimeout(J),J=setTimeout(nr,Nn.value*1e3)}async function nr(){if(!K.value)return;let e=K.value;try{let t=await Ve({name:V.value.trim()||void 0});if(!K.value||K.value!==e)return;if(t.state===`confirmed`){$();return}if(t.state===`expired`){$(),S.add({severity:`warn`,detail:w(`components.toast.pair_expired`),life:3e3});return}if(t.state===`denied`){$(),S.add({severity:`warn`,detail:w(`components.toast.pair_denied`),life:3e3});return}t.state===`slow_down`&&(Nn.value=Math.min(Nn.value+2,10)),tr()}catch(t){if(!K.value||K.value!==e)return;d.error(`pair poll failed:`,t),tr()}}async function rr(){$();try{let e=V.value.trim();if(e&&e!==(F.value?.serverName??``))try{await We(e)}catch{}let t=await ze(e||void 0);K.value=t.userCode,q.value=t.verificationUriComplete,Mn.value=Date.now()+t.expiresIn*1e3,Nn.value=Math.max(1,t.pollInterval),er(),tr()}catch(e){S.add({severity:`error`,detail:e,life:3e3})}}function ir(){$()}async function ar(){if(K.value)try{await s(K.value)}catch{}}async function or(){if(q.value)try{await s(q.value)}catch{}}function sr(){q.value&&window.open(q.value,`_blank`,`noopener`)}function cr(e){let t=window.location.host===o||!1,n;n=e?`components.dialog.message.confirm_enable_cloud`:t?`components.dialog.message.confirm_disable_cloud_remote`:`components.dialog.message.confirm_disable_cloud_local`,p.openTextDialog({data:{title:w(`components.dialog.title.confirm`),contentText:w(n),confirmText:w(e?`components.form.button.enable`:`components.form.button.disable`),loading:X,confirmButtonProps:e?void 0:{severity:`danger`}},onConfirm:async()=>{try{await Ie(e?{enabled:!0}:{enabled:!1})}catch{B.value&&(B.value.enabled=!e)}},onCancel:()=>{B.value&&(B.value.enabled=!e)}})}function lr(e){Ie({directEnabled:e}).catch(()=>{B.value&&(B.value.directEnabled=!e)})}function ur(e){B.value&&(B.value.directMode=e)}function dr(e){U.value=e}async function fr(){let e=W.value.trim();if(e)try{await Ie({directMode:`cloudflare`,cloudflare:{mode:`managed`,hostname:e}}),await qe(e)}catch{}}async function pr(){try{await Ye()}catch{}}async function mr(){try{await Ze()}catch{}}async function hr(){try{await kn()}catch{}}async function gr(e){try{await s(e)}catch{}}function _r(e){window.open(e,`_blank`,`noopener`)}async function vr(e){try{let t=await Ke(e);t.ok?S.add({severity:`success`,detail:w(`components.toast.remote_test_success`),life:3e3}):S.add({severity:`error`,detail:w(`components.toast.remote_test_failed`,{message:t.message??``}),life:5e3})}catch(e){S.add({severity:`error`,detail:w(`components.toast.remote_test_failed`,{message:e?.message??``}),life:5e3})}}async function yr(e){let t={directMode:e.directMode};if(e.directMode===`customDomain`)t.customDomain={url:H.value.trim()};else if(e.directMode===`cloudflare`){let e=U.value;if(e===`quick`)t.cloudflare={mode:`quick`,hostname:null,token:null};else if(e===`token`){let e=G.value.trim();t.cloudflare={mode:`token`,hostname:W.value.trim(),...e?{token:e}:{}}}else e===`managed`&&(t.cloudflare={mode:`managed`,hostname:W.value.trim(),token:null})}try{await Ie(t)}catch{}}async function br(e){try{await Ne(e)}catch{}}return D(()=>F.value?.serverName,e=>{e&&(V.value=e)},{immediate:!0}),D(Z,e=>{e&&K.value&&$()}),D(fe,e=>{if(e){let t=l(e);z.value={...t,serverAddresses:(t.serverAddresses||[]).filter(Boolean)}}},{deep:!0,immediate:!0}),D(P,e=>{if(e){let t=l(e);B.value={...t.remoteSettings},H.value=t.remoteSettings.customDomain.url??``;let n=t.remoteSettings.cloudflare;U.value=n?.mode??`quick`,W.value=n?.hostname??``,G.value=``,jn.value=t.cloudflareTokenSet??!1}},{deep:!0,immediate:!0}),ce(()=>{Qn()}),(e,i)=>{let a=n,o=Ce,s=te,ae=ge,c=ee,oe=Ae,l=t,u=_e,d=ve,ce=ye,p=Te,v=re,S=ne,C=De,w=be,D=Se,he=xe,N=r;return f(),_(`div`,tt,[!x(z)||!x(B)?(f(),_(`div`,nt,[E(a,{class:`w-[30px] h-[30px] m-0`,"stroke-width":`5`})])):(f(),_(`div`,rt,[x(I)?(f(),_(`div`,it,[h(`span`,at,g(e.$t(`views.settings.connection_status`)),1),E(s,{class:`cui-card`},{content:m(()=>[h(`div`,ot,[(f(),T(me(x(Jn)),{class:ue([`shrink-0 w-6 h-6`,x(Yn)])},null,8,[`class`])),h(`div`,st,[h(`span`,ct,g(x(qn)),1),E(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint truncate`},{default:m(()=>[b(g(x(I).currentConnection.address),1)]),_:1})])])]),_:1})])):A(``,!0),E(x(de),{ref:`remoteFormRef`,class:`flex flex-col w-full gap-6`,"validation-schema":x($e),onSubmit:i[18]||=e=>yr(e)},{default:m(()=>[h(`div`,null,[h(`span`,lt,g(e.$t(`views.settings.cloud`)),1),E(s,{class:`cui-card`},{content:m(()=>[h(`div`,ut,[E(x(M),{"model-value":x(B).enabled,value:!0,"unchecked-value":!1,type:`checkbox`,name:`enabled`,as:`div`,class:`flex flex-col field-gap cui-toggle-switch`},{default:m(({field:t,errors:n})=>[h(`div`,dt,[h(`div`,ft,[h(`label`,pt,g(e.$t(`components.form.label.enabled`)),1),E(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:m(()=>[b(g(e.$t(`components.form.hint.cloud_access_enabled_info`)),1)]),_:1}),E(O,{name:`fade`},{default:m(()=>[E(x(j),{name:`enabled`,class:`cui-input-switch-error`})]),_:1})]),E(ae,pe({"model-value":x(B).enabled},t,{invalid:n.length>0,loading:x(X),class:`ml-auto shrink-0`,onValueChange:i[0]||=e=>x(B).enabled=e,"onUpdate:modelValue":i[1]||=e=>cr(e)}),null,16,[`model-value`,`invalid`,`loading`])])]),_:1},8,[`model-value`]),h(`div`,mt,[h(`label`,ht,g(e.$t(`views.settings.server_name_label`)),1),E(d,null,{default:m(()=>[E(c,{id:`serverName`,modelValue:x(V),"onUpdate:modelValue":i[2]||=e=>k(V)?V.value=e:null,modelModifiers:{trim:!0},disabled:!x(Rn),loading:x(X),type:`text`,maxlength:100},null,8,[`modelValue`,`disabled`,`loading`]),E(u,null,{default:m(()=>[le((f(),T(l,{text:``,severity:`secondary`,loading:x(Ge),disabled:!x(zn),type:`button`,onClick:Xn},{icon:m(()=>[E(oe)]),_:1},8,[`loading`,`disabled`])),[[N,{value:e.$t(`components.form.button.save`)}]])]),_:1})]),_:1}),E(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:m(()=>[b(g(e.$t(`views.settings.server_name_info`)),1)]),_:1})]),h(`div`,gt,[h(`div`,_t,[h(`span`,vt,g(e.$t(`views.settings.status`)),1),E(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:m(()=>[b(g(e.$t(`views.settings.status_info`)),1)]),_:1})]),h(`div`,yt,[x(X)?(f(),T(a,{key:0,class:`w-[15px] h-[15px] m-0`,"stroke-width":`5`})):x(Ln)?(f(),_(`span`,bt,g(e.$t(`views.settings.needs_reauth`)),1)):(f(),_(`span`,xt,g(x(Z)?e.$t(`views.settings.registered`):e.$t(`views.settings.not_registered`)),1))])]),x(Z)?(f(),_(`div`,St,[h(`div`,Ct,[h(`span`,wt,g(e.$t(`views.settings.tunnel_status`)),1),E(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:m(()=>[b(g(e.$t(`views.settings.tunnel_status_info`)),1)]),_:1})]),h(`div`,Tt,[x(je)?(f(),T(a,{key:0,class:`w-[15px] h-[15px] m-0`,"stroke-width":`5`})):(f(),T(ce,{key:1,severity:x(ke)?.connected?`success`:`secondary`,value:x(ke)?.connected?e.$t(`views.settings.tunnel_connected`):e.$t(`views.settings.tunnel_disconnected`)},null,8,[`severity`,`value`]))])])):A(``,!0),E(O,{name:`fade`,mode:`out-in`},{default:m(()=>[x(K)?(f(),_(`div`,Et,[E(o,{severity:`error`,variant:`simple`,size:`small`,class:`text-primary`},{default:m(()=>[b(g(e.$t(`views.settings.pair_instructions`)),1)]),_:1}),h(`div`,Dt,[h(`div`,Ot,[E(p,{value:x(q),size:180,"logo-size":36},null,8,[`value`])]),h(`div`,kt,[h(`div`,At,[h(`label`,jt,g(e.$t(`views.settings.pair_code`)),1),E(d,null,{default:m(()=>[E(c,{"model-value":x(K),readonly:``,class:`font-mono text-lg text-center tracking-widest`},null,8,[`model-value`]),E(u,null,{default:m(()=>[E(v,{"action-text":e.$t(`components.form.tooltip.copied`),icon:x(se),"button-props":{severity:`secondary`,text:!0},onAction:ar},null,8,[`action-text`,`icon`])]),_:1})]),_:1}),E(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:m(()=>[b(g(e.$t(`views.settings.pair_code_hint`)),1)]),_:1})]),h(`div`,Mt,[h(`label`,Nt,g(e.$t(`views.settings.pair_url`)),1),E(d,null,{default:m(()=>[E(c,{"model-value":x(q),readonly:``,class:`font-mono text-sm`},null,8,[`model-value`]),E(u,null,{default:m(()=>[E(v,{"action-text":e.$t(`components.form.tooltip.copied`),icon:x(se),"button-props":{severity:`secondary`,text:!0},onAction:or},null,8,[`action-text`,`icon`])]),_:1}),E(u,null,{default:m(()=>[le((f(),T(l,{type:`button`,severity:`secondary`,text:``,onClick:sr},{icon:m(()=>[E(x(ie))]),_:1})),[[N,{value:e.$t(`components.form.button.open_in_browser`)}]])]),_:1})]),_:1})]),h(`div`,Pt,[E(a,{class:`w-[20px] h-[20px] m-0`,"stroke-width":`5`}),h(`span`,Ft,g(e.$t(`views.settings.pair_waiting`,{remaining:x(Pn)})),1),E(l,{type:`button`,severity:`secondary`,class:`cui-button-small ml-auto`,label:e.$t(`components.form.button.cancel`),onClick:ir},null,8,[`label`])])])])])):A(``,!0)]),_:1}),h(`div`,It,[h(`div`,Lt,[le((f(),T(l,{severity:`secondary`,rounded:``,class:`cui-icon-lg text-color`,disabled:!x(Z),onClick:i[3]||=t=>e.$router.absUrl(x(`https://cloud.cameraui.com`),!0)},{icon:m(()=>[x(Z)?(f(),T(S,{key:0,width:`100%`,height:`100%`})):(f(),T(C,{key:1,width:`100%`,height:`100%`}))]),_:1},8,[`disabled`])),[[N,{value:x(Z)?e.$t(`views.settings.registered`):e.$t(`views.settings.not_registered`)}]])]),i[21]||=h(`div`,{class:`ml-auto`},null,-1),!x(Z)&&!x(K)?(f(),T(l,{key:0,loading:x(Be),class:`cui-button-medium`,label:e.$t(`components.form.button.register_server`),onClick:rr},null,8,[`loading`,`label`])):A(``,!0),x(Ln)&&!x(K)?(f(),T(l,{key:1,loading:x(Be),severity:`warn`,class:`cui-button-medium`,label:e.$t(`components.form.button.reconnect_server`),onClick:rr},null,8,[`loading`,`label`])):A(``,!0),x(Z)?(f(),T(l,{key:2,loading:x(X),severity:x(Ln)?`secondary`:void 0,text:x(Ln),class:`cui-button-medium`,label:e.$t(`components.form.button.unregister_server`),onClick:Zn},null,8,[`loading`,`severity`,`text`,`label`])):A(``,!0)])])]),_:1})]),h(`div`,null,[h(`span`,Rt,g(e.$t(`views.settings.direct_connection`)),1),E(s,{class:`cui-card`},{content:m(()=>[h(`div`,zt,[E(x(M),{"model-value":x(B).directEnabled,value:!0,"unchecked-value":!1,type:`checkbox`,name:`directEnabled`,as:`div`,class:`flex flex-col field-gap cui-toggle-switch`},{default:m(({field:t,errors:n})=>[h(`div`,Bt,[h(`div`,Vt,[h(`label`,Ht,g(e.$t(`components.form.label.enabled`)),1),E(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-switch-hint`},{default:m(()=>[b(g(e.$t(`views.settings.direct_connection_info`)),1)]),_:1}),E(O,{name:`fade`},{default:m(()=>[E(x(j),{name:`directEnabled`,class:`cui-input-switch-error`})]),_:1})]),E(ae,pe({"model-value":x(Fn)},t,{invalid:n.length>0,loading:x(X),disabled:x(B).enabled,class:`ml-auto shrink-0`,onValueChange:i[4]||=e=>x(B).directEnabled=e,"onUpdate:modelValue":i[5]||=e=>lr(e)}),null,16,[`model-value`,`invalid`,`loading`,`disabled`])]),E(O,{name:`fade`},{default:m(()=>[x(In).active?(f(),T(o,{key:0,variant:`simple`,size:`small`,class:`cui-input-switch-hint text-primary`},{default:m(()=>[b(g(x(In).fallback?e.$t(`views.settings.direct_override_fallback`):e.$t(`views.settings.direct_override_active`)),1)]),_:1})):A(``,!0)]),_:1})]),_:1},8,[`model-value`]),x(Fn)?(f(),_(y,{key:0},[h(`div`,Ut,[h(`label`,Wt,g(e.$t(`views.settings.external_url`)),1),E(c,{readonly:``,type:`text`,value:x(I)?.externalUrl??e.$t(`components.form.label.disconnected`)},null,8,[`value`]),E(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:m(()=>[b(g(e.$t(`views.settings.external_url_info`)),1)]),_:1})]),E(x(M),{"model-value":x(B).directMode,name:`directMode`,as:`div`,class:`flex flex-col field-gap`},{default:m(({errors:t})=>[h(`label`,Gt,g(e.$t(`views.settings.connection_method`)),1),E(w,{"model-value":x(B).directMode,options:x(Vn),"option-label":`label`,"option-value":`value`,invalid:t.length>0,loading:x(X),"onUpdate:modelValue":i[6]||=e=>ur(e)},null,8,[`model-value`,`options`,`invalid`,`loading`]),E(O,{name:`fade`},{default:m(()=>[E(x(j),{name:`directMode`,class:`cui-input-error`})]),_:1}),E(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:m(()=>[b(g(x(Hn)),1)]),_:1})]),_:1},8,[`model-value`]),x(B).directMode===`cloudflare`?(f(),_(`div`,Kt,[h(`div`,qt,[h(`label`,Jt,g(e.$t(`components.form.label.cloudflare_variant`)),1),E(w,{"model-value":x(U),options:x(Un),"option-label":`label`,"option-value":`value`,loading:x(X),"onUpdate:modelValue":i[7]||=e=>dr(e)},null,8,[`model-value`,`options`,`loading`]),E(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:m(()=>[b(g(x(Wn)),1)]),_:1})]),x(U)===`quick`?(f(),_(`div`,Yt,[E(l,{type:`button`,severity:`secondary`,loading:x(L),class:`cui-button-small`,label:e.$t(`components.form.button.test_connection`),onClick:i[8]||=e=>vr(`cloudflare`)},null,8,[`loading`,`label`])])):x(U)===`token`?(f(),_(y,{key:1},[h(`div`,Xt,[h(`label`,Zt,g(e.$t(`components.form.label.hostname`)),1),E(c,{id:`cloudflareHostname`,modelValue:x(W),"onUpdate:modelValue":i[9]||=e=>k(W)?W.value=e:null,modelModifiers:{trim:!0},loading:x(X),type:`text`,placeholder:`nvr.example.com`,maxlength:253},null,8,[`modelValue`,`loading`]),E(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:m(()=>[b(g(e.$t(`components.form.hint.cloudflare_hostname_info`)),1)]),_:1})]),h(`div`,Qt,[h(`label`,$t,g(e.$t(`components.form.label.tunnel_token`)),1),E(D,{id:`cloudflareToken`,modelValue:x(G),"onUpdate:modelValue":i[10]||=e=>k(G)?G.value=e:null,modelModifiers:{trim:!0},loading:x(X),feedback:!1,"toggle-mask":``,fluid:``,placeholder:x(jn)?`••••••••••••`:`eyJ...`},null,8,[`modelValue`,`loading`,`placeholder`]),E(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:m(()=>[b(g(x(jn)?e.$t(`components.form.hint.cloudflare_token_already_set`):e.$t(`components.form.hint.cloudflare_token_info`)),1)]),_:1})]),h(`div`,en,[E(l,{type:`button`,severity:`secondary`,loading:x(L),disabled:!x(Gn),class:`cui-button-small`,label:e.$t(`components.form.button.test_connection`),onClick:i[11]||=e=>vr(`cloudflare`)},null,8,[`loading`,`disabled`,`label`])])],64)):x(U)===`managed`?(f(),T(O,{key:2,name:`fade`,mode:`out-in`},{default:m(()=>[(f(),_(`div`,{key:x(Q),class:`flex flex-col gap-4`},[x(Q)===`idle`?(f(),_(y,{key:0},[h(`div`,tn,[h(`label`,nn,g(e.$t(`components.form.label.hostname`)),1),E(c,{id:`cloudflareHostnameManaged`,modelValue:x(W),"onUpdate:modelValue":i[12]||=e=>k(W)?W.value=e:null,modelModifiers:{trim:!0},loading:x(X),type:`text`,placeholder:`nvr.example.com`,maxlength:253},null,8,[`modelValue`,`loading`]),E(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:m(()=>[b(g(e.$t(`components.form.hint.cloudflare_hostname_info`)),1)]),_:1})]),x(R)?.lastError?(f(),T(o,{key:0,severity:`error`,variant:`simple`,size:`small`},{default:m(()=>[b(g(x(R).lastError),1)]),_:1})):A(``,!0),h(`div`,rn,[E(l,{type:`button`,loading:x(Je),disabled:!x(Kn),class:`cui-button-medium`,label:e.$t(`components.form.button.connect_cloudflare`),onClick:fr},null,8,[`loading`,`disabled`,`label`])])],64)):x(Q)===`awaiting_login`?(f(),_(y,{key:1},[x(R)?.loginUrl?(f(),_(`div`,an,[h(`div`,on,[E(p,{value:x(R).loginUrl,size:160,"logo-size":32},null,8,[`value`])]),h(`div`,sn,[E(o,{variant:`simple`,size:`small`,class:`text-primary`},{default:m(()=>[b(g(e.$t(`components.form.hint.cloudflare_managed_awaiting_login`,{hostname:x(W)})),1)]),_:1}),h(`div`,cn,[h(`label`,ln,g(e.$t(`components.form.label.cloudflare_url`)),1),E(d,null,{default:m(()=>[E(c,{"model-value":x(R).loginUrl,readonly:``,class:`font-mono text-sm`},null,8,[`model-value`]),E(u,null,{default:m(()=>[E(v,{"action-text":e.$t(`components.form.tooltip.copied`),icon:x(se),"button-props":{severity:`secondary`,text:!0},onAction:i[13]||=e=>gr(x(R).loginUrl)},null,8,[`action-text`,`icon`])]),_:1}),E(u,null,{default:m(()=>[le((f(),T(l,{type:`button`,severity:`secondary`,text:``,onClick:i[14]||=e=>_r(x(R).loginUrl)},{icon:m(()=>[E(x(ie))]),_:1})),[[N,{value:e.$t(`components.form.button.open_in_browser`)}]])]),_:1})]),_:1})]),h(`div`,un,[E(a,{class:`w-[20px] h-[20px] m-0`,"stroke-width":`5`}),h(`span`,dn,g(e.$t(`views.settings.cloudflare_login_waiting`)),1),E(l,{type:`button`,severity:`secondary`,loading:x(Xe),class:`cui-button-small ml-auto`,label:e.$t(`components.form.button.cancel`),onClick:pr},null,8,[`loading`,`label`])])])])):(f(),_(`div`,fn,[E(a,{class:`w-[20px] h-[20px] m-0`,"stroke-width":`5`}),h(`span`,pn,g(e.$t(`views.settings.cloudflare_login_waiting`)),1),E(l,{type:`button`,severity:`secondary`,loading:x(Xe),class:`cui-button-small ml-auto`,label:e.$t(`components.form.button.cancel`),onClick:pr},null,8,[`loading`,`label`])]))],64)):x(Q)===`creating_tunnel`||x(Q)===`setting_dns`?(f(),_(`div`,mn,[E(a,{class:`w-[20px] h-[20px] m-0`,"stroke-width":`5`}),h(`span`,hn,g(x(Q)===`creating_tunnel`?e.$t(`components.form.hint.cloudflare_managed_creating_tunnel`):e.$t(`components.form.hint.cloudflare_managed_setting_dns`,{hostname:x(W)})),1),E(l,{type:`button`,severity:`secondary`,loading:x(Xe),class:`cui-button-small ml-auto`,label:e.$t(`components.form.button.cancel`),onClick:pr},null,8,[`loading`,`label`])])):x(Q)===`running`?(f(),_(y,{key:3},[h(`div`,gn,[h(`label`,_n,g(e.$t(`components.form.label.hostname`)),1),E(c,{readonly:``,value:`https://${x(R)?.hostname??``}`,type:`text`},null,8,[`value`]),E(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:m(()=>[b(g(e.$t(`components.form.hint.cloudflare_hostname_info`)),1)]),_:1})]),x(R)?.tunnelId?(f(),_(`div`,vn,[h(`label`,yn,g(e.$t(`components.form.label.tunnel_id`)),1),E(c,{readonly:``,value:x(R).tunnelId,type:`text`},null,8,[`value`]),E(o,{severity:`secondary`,variant:`simple`,size:`small`,class:`cui-input-hint`},{default:m(()=>[b(g(e.$t(`components.form.hint.cloudflare_tunnel_id_info`)),1)]),_:1})])):A(``,!0),h(`div`,bn,[E(l,{type:`button`,severity:`secondary`,loading:x(L),class:`cui-button-small`,label:e.$t(`components.form.button.test_connection`),onClick:i[15]||=e=>vr(`cloudflare`)},null,8,[`loading`,`label`]),E(l,{type:`button`,severity:`secondary`,loading:x(On),class:`cui-button-small ml-auto`,label:e.$t(`components.form.button.disconnect`),onClick:mr},null,8,[`loading`,`label`]),E(l,{type:`button`,severity:`danger`,loading:x(An),class:`cui-button-small`,label:e.$t(`components.form.button.logout`),onClick:hr},null,8,[`loading`,`label`])])],64)):A(``,!0)]))]),_:1})):A(``,!0)])):x(B).directMode===`customDomain`?(f(),_(`div`,xn,[E(x(M),{modelValue:x(H),"onUpdate:modelValue":i[16]||=e=>k(H)?H.value=e:null,modelModifiers:{trim:!0},loading:x(X),name:`customDomain.url`,as:`div`,class:`flex flex-col field-gap`},{default:m(({field:t,errors:n})=>[h(`label`,Sn,g(e.$t(`components.form.label.url`)),1),E(c,pe(t,{invalid:n.length>0,loading:x(X),type:`text`,placeholder:`https://my.example.com`}),null,16,[`invalid`,`loading`]),E(O,{name:`fade`},{default:m(()=>[E(x(j),{name:`customDomain.url`,class:`cui-input-error`})]),_:1})]),_:1},8,[`modelValue`,`loading`]),h(`div`,Cn,[E(l,{type:`button`,severity:`secondary`,loading:x(L),disabled:!x(H),class:`cui-button-small`,label:e.$t(`components.form.button.test_connection`),onClick:i[17]||=e=>vr(`customDomain`)},null,8,[`loading`,`disabled`,`label`])])])):A(``,!0),E(l,{type:`submit`,loading:x(X),disabled:!x(Bn),class:`cui-button-medium ml-auto`,label:e.$t(`components.form.button.save`)},null,8,[`loading`,`disabled`,`label`])],64)):A(``,!0)])]),_:1})])]),_:1},8,[`validation-schema`]),E(x(de),{ref:`serverFormRef`,class:`flex flex-col w-full gap-6`,"validation-schema":x(et),onSubmit:i[20]||=e=>br(e)},{default:m(()=>[h(`div`,null,[h(`span`,wn,g(e.$t(`views.settings.network`)),1),E(s,{class:`cui-card`},{content:m(()=>[h(`div`,Tn,[h(`span`,En,g(e.$t(`views.settings.network_info`)),1),E(x(M),{"model-value":x(z).serverAddresses,name:`serverAddresses`,as:`div`,class:`flex flex-col field-gap`},{default:m(({field:t,errors:n})=>[h(`label`,Dn,g(e.$t(`components.form.label.server_addresses`)),1),E(d,null,{default:m(()=>[E(he,pe(t,{"model-value":x(z).serverAddresses,options:x(fe)?.availableAddresses||[],invalid:n.length>0,loading:x(X),"max-selected-labels":2,"show-toggle-all":!1,"show-clear":``,"option-label":`address`,"option-value":`address`,type:`text`,display:`chip`,onValueChange:i[19]||=e=>x(z).serverAddresses=e}),null,16,[`model-value`,`options`,`invalid`,`loading`])]),_:2},1024),E(O,{name:`fade`},{default:m(()=>[E(x(j),{name:`serverAddresses`,class:`cui-input-error`})]),_:1})]),_:1},8,[`model-value`]),E(l,{type:`submit`,loading:x(X),class:`cui-button-medium ml-auto`,label:e.$t(`components.form.button.save`)},null,8,[`loading`,`label`])])]),_:1})])]),_:1},8,[`validation-schema`])]))])}}}),[[`__scopeId`,`data-v-788da547`]]);export{On as default};